stitchkit 0.104.2 → 0.105.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 (429) hide show
  1. package/CHANGELOG.md +372 -13
  2. package/darwin-native.cjs +4 -2
  3. package/dist/agent-runtime/browser-control-contract.d.ts +32 -2
  4. package/dist/agent-runtime/browser-control-contract.d.ts.map +1 -1
  5. package/dist/agent-runtime/browser-controller.d.ts +21 -3
  6. package/dist/agent-runtime/browser-controller.d.ts.map +1 -1
  7. package/dist/agent-runtime/coding-shell-process.d.ts.map +1 -1
  8. package/dist/agent-runtime/coding-tool-refusals.d.ts +1 -0
  9. package/dist/agent-runtime/coding-tool-refusals.d.ts.map +1 -1
  10. package/dist/agent-runtime/coding-tool-shell.d.ts.map +1 -1
  11. package/dist/agent-runtime/compaction.d.ts.map +1 -1
  12. package/dist/agent-runtime/contained-write.d.ts.map +1 -1
  13. package/dist/agent-runtime/control-schema.d.ts +48 -1
  14. package/dist/agent-runtime/control-schema.d.ts.map +1 -1
  15. package/dist/agent-runtime/deferred-tool-search.d.ts +3 -2
  16. package/dist/agent-runtime/deferred-tool-search.d.ts.map +1 -1
  17. package/dist/agent-runtime/harness-control.d.ts.map +1 -1
  18. package/dist/agent-runtime/harness-realtime.d.ts +34 -4
  19. package/dist/agent-runtime/harness-realtime.d.ts.map +1 -1
  20. package/dist/agent-runtime/runtime-recovery.d.ts.map +1 -1
  21. package/dist/agent-runtime/runtime-state.d.ts.map +1 -1
  22. package/dist/agent-runtime/sandbox-contract.d.ts.map +1 -1
  23. package/dist/agent-runtime/sandbox-process-owner.d.ts +9 -1
  24. package/dist/agent-runtime/sandbox-process-owner.d.ts.map +1 -1
  25. package/dist/agent-runtime/sandbox.d.ts +32 -1
  26. package/dist/agent-runtime/sandbox.d.ts.map +1 -1
  27. package/dist/agent-runtime/schedule-records.d.ts.map +1 -1
  28. package/dist/agent-runtime/schedules.d.ts.map +1 -1
  29. package/dist/agent-runtime/store-events.d.ts +9 -4
  30. package/dist/agent-runtime/store-events.d.ts.map +1 -1
  31. package/dist/agent-runtime/testing.d.ts.map +1 -1
  32. package/dist/application/diagnostic-journal-contract.d.ts +50 -0
  33. package/dist/application/diagnostic-journal-contract.d.ts.map +1 -1
  34. package/dist/application/diagnostic-journal-generations.d.ts +24 -0
  35. package/dist/application/diagnostic-journal-generations.d.ts.map +1 -0
  36. package/dist/application/diagnostic-journal-manager.d.ts.map +1 -1
  37. package/dist/application/diagnostic-journal-open.d.ts +10 -0
  38. package/dist/application/diagnostic-journal-open.d.ts.map +1 -0
  39. package/dist/application/diagnostic-journal-quarantine.d.ts +28 -0
  40. package/dist/application/diagnostic-journal-quarantine.d.ts.map +1 -0
  41. package/dist/application/diagnostic-journal-read-contract.d.ts +73 -3
  42. package/dist/application/diagnostic-journal-read-contract.d.ts.map +1 -1
  43. package/dist/application/diagnostic-journal-reader.d.ts +17 -2
  44. package/dist/application/diagnostic-journal-reader.d.ts.map +1 -1
  45. package/dist/application/diagnostic-journal-recovery.d.ts +18 -2
  46. package/dist/application/diagnostic-journal-recovery.d.ts.map +1 -1
  47. package/dist/application/diagnostic-journal-storage.d.ts +6 -2
  48. package/dist/application/diagnostic-journal-storage.d.ts.map +1 -1
  49. package/dist/application/diagnostic-journal-tail.d.ts +12 -0
  50. package/dist/application/diagnostic-journal-tail.d.ts.map +1 -0
  51. package/dist/application/diagnostic-journal.d.ts +3 -0
  52. package/dist/application/diagnostic-journal.d.ts.map +1 -1
  53. package/dist/application/directory-inbox-accept.d.ts +3 -3
  54. package/dist/application/directory-inbox-accept.d.ts.map +1 -1
  55. package/dist/application/directory-inbox-contract.d.ts +38 -10
  56. package/dist/application/directory-inbox-contract.d.ts.map +1 -1
  57. package/dist/application/directory-inbox-delivery.d.ts +3 -3
  58. package/dist/application/directory-inbox-delivery.d.ts.map +1 -1
  59. package/dist/application/directory-inbox-files.d.ts +17 -2
  60. package/dist/application/directory-inbox-files.d.ts.map +1 -1
  61. package/dist/application/directory-inbox-state.d.ts +1 -1
  62. package/dist/application/directory-inbox-state.d.ts.map +1 -1
  63. package/dist/application/directory-inbox.d.ts +1 -1
  64. package/dist/application/directory-inbox.d.ts.map +1 -1
  65. package/dist/application/file-state-store.d.ts +21 -1
  66. package/dist/application/file-state-store.d.ts.map +1 -1
  67. package/dist/application/grammy.d.ts.map +1 -1
  68. package/dist/application/kernel-contract.d.ts.map +1 -1
  69. package/dist/application/revision-signal.d.ts.map +1 -1
  70. package/dist/application/state-store.d.ts +3 -0
  71. package/dist/application/state-store.d.ts.map +1 -1
  72. package/dist/browser/api-error.d.ts +38 -0
  73. package/dist/browser/api-error.d.ts.map +1 -0
  74. package/dist/browser/chunked-upload.d.ts.map +1 -1
  75. package/dist/browser/client-executors.d.ts.map +1 -1
  76. package/dist/browser/client-url.d.ts.map +1 -1
  77. package/dist/browser/contract-stream.d.ts.map +1 -1
  78. package/dist/browser/http.d.ts +0 -25
  79. package/dist/browser/http.d.ts.map +1 -1
  80. package/dist/browser/resumable.d.ts.map +1 -1
  81. package/dist/contract/define-validation.d.ts +0 -1
  82. package/dist/contract/define-validation.d.ts.map +1 -1
  83. package/dist/contract/define.d.ts.map +1 -1
  84. package/dist/contract/errors-factory.d.ts.map +1 -1
  85. package/dist/contract/errors.d.ts +15 -18
  86. package/dist/contract/errors.d.ts.map +1 -1
  87. package/dist/contract/normalize.d.ts.map +1 -1
  88. package/dist/durability/effect.d.ts.map +1 -1
  89. package/dist/durability/scheduler.d.ts.map +1 -1
  90. package/dist/entrypoints/agent-runtime/browser.js +29 -18
  91. package/dist/entrypoints/agent-runtime/coding-tools.js +8 -7
  92. package/dist/entrypoints/agent-runtime/harness.js +15 -14
  93. package/dist/entrypoints/agent-runtime/realtime.d.ts +1 -1
  94. package/dist/entrypoints/agent-runtime/realtime.d.ts.map +1 -1
  95. package/dist/entrypoints/agent-runtime/realtime.js +119 -54
  96. package/dist/entrypoints/agent-runtime/sandbox.js +23 -17
  97. package/dist/entrypoints/agent-runtime/sqlite/bun.js +4 -3
  98. package/dist/entrypoints/agent-runtime/sqlite/node.js +4 -3
  99. package/dist/entrypoints/agent-runtime/testing.js +8 -6
  100. package/dist/entrypoints/agent-runtime.js +37 -38
  101. package/dist/entrypoints/application/diagnostic-journal.js +305 -111
  102. package/dist/entrypoints/application/directory-inbox.js +174 -77
  103. package/dist/entrypoints/application/grammy.js +5 -2
  104. package/dist/entrypoints/application/opentelemetry.js +2 -2
  105. package/dist/entrypoints/application.d.ts +2 -2
  106. package/dist/entrypoints/application.d.ts.map +1 -1
  107. package/dist/entrypoints/application.js +17 -8
  108. package/dist/entrypoints/cli/publish.d.ts +16 -0
  109. package/dist/entrypoints/cli/publish.d.ts.map +1 -0
  110. package/dist/entrypoints/cli/publish.js +527 -0
  111. package/dist/entrypoints/cli.d.ts +1 -2
  112. package/dist/entrypoints/cli.d.ts.map +1 -1
  113. package/dist/entrypoints/cli.js +59 -966
  114. package/dist/entrypoints/contract.js +3 -3
  115. package/dist/entrypoints/files/packaging.js +153 -64
  116. package/dist/entrypoints/files.d.ts +1 -0
  117. package/dist/entrypoints/files.d.ts.map +1 -1
  118. package/dist/entrypoints/files.js +17 -10
  119. package/dist/entrypoints/index.d.ts +2 -1
  120. package/dist/entrypoints/index.d.ts.map +1 -1
  121. package/dist/entrypoints/index.js +31 -60
  122. package/dist/entrypoints/node.js +8 -8
  123. package/dist/entrypoints/observability.js +3 -3
  124. package/dist/entrypoints/primitives.js +67 -83
  125. package/dist/entrypoints/process.d.ts +1 -1
  126. package/dist/entrypoints/process.d.ts.map +1 -1
  127. package/dist/entrypoints/process.js +2 -2
  128. package/dist/entrypoints/react.js +4 -2
  129. package/dist/entrypoints/remote.js +37 -13
  130. package/dist/entrypoints/server.js +18 -16
  131. package/dist/entrypoints/telegram/screens.js +5 -3
  132. package/dist/entrypoints/telegram.js +31 -46
  133. package/dist/entrypoints/testing.d.ts +1 -1
  134. package/dist/entrypoints/testing.d.ts.map +1 -1
  135. package/dist/entrypoints/testing.js +444 -448
  136. package/dist/entrypoints/tools/connections.js +268 -105
  137. package/dist/entrypoints/tools/contract.js +2 -2
  138. package/dist/entrypoints/tools/invoker.js +8 -7
  139. package/dist/entrypoints/tools/mcp.d.ts +2 -2
  140. package/dist/entrypoints/tools/mcp.d.ts.map +1 -1
  141. package/dist/entrypoints/tools/mcp.js +10 -9
  142. package/dist/entrypoints/tools.d.ts +0 -1
  143. package/dist/entrypoints/tools.d.ts.map +1 -1
  144. package/dist/entrypoints/tools.js +118 -53
  145. package/dist/entrypoints/tracking.js +2 -3
  146. package/dist/files/boundary.d.ts +2 -2
  147. package/dist/files/boundary.d.ts.map +1 -1
  148. package/dist/files/chunk-spool.d.ts.map +1 -1
  149. package/dist/files/file-io.d.ts +2 -2
  150. package/dist/files/file-io.d.ts.map +1 -1
  151. package/dist/files/native-packaging-layout.d.ts +50 -4
  152. package/dist/files/native-packaging-layout.d.ts.map +1 -1
  153. package/dist/files/native-packaging.d.ts +78 -17
  154. package/dist/files/native-packaging.d.ts.map +1 -1
  155. package/dist/{index-r5hsgkz5.js → index-0gs4ymfj.js} +6 -3
  156. package/dist/{index-zax7resm.js → index-0gxvns6s.js} +1 -13
  157. package/dist/index-0s4xebbg.js +8 -0
  158. package/dist/{index-r4r70zmh.js → index-12zsej7b.js} +5 -2
  159. package/dist/{index-kemm0ej5.js → index-1pwwan01.js} +65 -22
  160. package/dist/{index-vgkbcnkc.js → index-299sm5tr.js} +1 -1
  161. package/dist/{index-2vnh05w4.js → index-2k91mewf.js} +31 -74
  162. package/dist/{index-269zqj8m.js → index-2rc6jd9n.js} +28 -12
  163. package/dist/{index-wh0ecvyk.js → index-37asdw3a.js} +1 -1
  164. package/dist/index-3h0ztg0z.js +285 -0
  165. package/dist/{index-g95fk660.js → index-4vsby8n8.js} +8 -15
  166. package/dist/index-556g5hsh.js +17 -0
  167. package/dist/{index-adhgd4pe.js → index-5p55xreg.js} +2 -2
  168. package/dist/index-5w6t91ze.js +47 -0
  169. package/dist/{index-9pw0a51a.js → index-6yxhe58g.js} +40 -7
  170. package/dist/{index-6d9xaxw1.js → index-8ks9b85e.js} +33 -5
  171. package/dist/{index-bhb950qs.js → index-916yh4e2.js} +25 -12
  172. package/dist/index-9tqbxv5p.js +44 -0
  173. package/dist/{index-5csmzesf.js → index-azx12jgv.js} +4 -3
  174. package/dist/{index-mbnnw3f2.js → index-b0kddvzw.js} +15 -5
  175. package/dist/{index-n5yqxd3d.js → index-b0w7rbpt.js} +23 -2
  176. package/dist/index-b56nnscm.js +132 -0
  177. package/dist/{index-0ndk4555.js → index-c0hffcmj.js} +2 -2
  178. package/dist/{index-pptyv13k.js → index-c17xcx4k.js} +42 -6
  179. package/dist/{index-g2j7pnak.js → index-cmzvhhtd.js} +5 -2
  180. package/dist/index-cq59agna.js +51 -0
  181. package/dist/{index-ssmd41kh.js → index-d2h99n7d.js} +1 -1
  182. package/dist/{index-z94wht4y.js → index-dky0dcmf.js} +34 -5
  183. package/dist/{index-za6j7nwy.js → index-dsnjzb62.js} +104 -51
  184. package/dist/index-eemvahkc.js +21 -0
  185. package/dist/index-ef8gdaq0.js +105 -0
  186. package/dist/{index-fa4wg312.js → index-f199nfq5.js} +10 -6
  187. package/dist/{index-ck71tbcf.js → index-fsw1ybf3.js} +11 -15
  188. package/dist/{index-f330qqyg.js → index-g2vfg7ak.js} +217 -63
  189. package/dist/{index-fk18k56k.js → index-gr5g3xfw.js} +11 -18
  190. package/dist/{index-jn9g8xdt.js → index-hjvje0pf.js} +6 -4
  191. package/dist/{index-x928baz2.js → index-j9gxbztg.js} +18 -14
  192. package/dist/index-kfjkb396.js +37 -0
  193. package/dist/{index-6drst9sg.js → index-ksfagmyz.js} +45 -345
  194. package/dist/index-m616f0yz.js +120 -0
  195. package/dist/{index-fm1c1a08.js → index-m6w6jtda.js} +40 -21
  196. package/dist/{index-ptn0g0gj.js → index-ma963wz7.js} +21 -20
  197. package/dist/{index-bakgedh8.js → index-msfpyy2f.js} +2 -4
  198. package/dist/{index-ywppsaby.js → index-n1nszyk0.js} +23 -34
  199. package/dist/{index-v14qqmys.js → index-n4689krb.js} +1 -1
  200. package/dist/{index-a0zzh8ak.js → index-pz3y6b6g.js} +3 -3
  201. package/dist/{index-43p08g7t.js → index-pzb63z66.js} +12 -8
  202. package/dist/{index-h97tqqp1.js → index-qaet40b2.js} +5 -3
  203. package/dist/{index-t1sr4aks.js → index-qaqbdm7s.js} +52 -6
  204. package/dist/{index-77nxk6ay.js → index-r393tnfp.js} +16 -10
  205. package/dist/{index-kb8styz3.js → index-rpzewktb.js} +15 -5
  206. package/dist/{index-27a2pj09.js → index-sj28htvf.js} +1 -1
  207. package/dist/index-szybbezc.js +455 -0
  208. package/dist/{index-2hyavjjj.js → index-wbhdzxar.js} +3 -3
  209. package/dist/{index-4e0ah203.js → index-wdy68sh6.js} +47 -24
  210. package/dist/{index-hbd32c6a.js → index-wqmvtnkp.js} +38 -89
  211. package/dist/{index-hp9d77wk.js → index-x7w1z6pf.js} +15 -4
  212. package/dist/{index-20yvtn9a.js → index-yt7gyg5x.js} +1 -1
  213. package/dist/{index-cvda079a.js → index-yvfk3y36.js} +12 -2
  214. package/dist/{index-5z6jn897.js → index-z23rfxhj.js} +1 -1
  215. package/dist/internal/abort-race.d.ts +8 -2
  216. package/dist/internal/abort-race.d.ts.map +1 -1
  217. package/dist/internal/atomic-file.d.ts +55 -9
  218. package/dist/internal/atomic-file.d.ts.map +1 -1
  219. package/dist/internal/atomic-publication.d.ts +39 -4
  220. package/dist/internal/atomic-publication.d.ts.map +1 -1
  221. package/dist/internal/atomic-staging.d.ts +46 -0
  222. package/dist/internal/atomic-staging.d.ts.map +1 -0
  223. package/dist/internal/bounded-file-read.d.ts +19 -11
  224. package/dist/internal/bounded-file-read.d.ts.map +1 -1
  225. package/dist/internal/bounded-lines.d.ts.map +1 -1
  226. package/dist/internal/close-after.d.ts +11 -0
  227. package/dist/internal/close-after.d.ts.map +1 -0
  228. package/dist/internal/deadline.d.ts +10 -0
  229. package/dist/internal/deadline.d.ts.map +1 -1
  230. package/dist/internal/exclusive-lock-read.d.ts +10 -12
  231. package/dist/internal/exclusive-lock-read.d.ts.map +1 -1
  232. package/dist/internal/exclusive-lock.d.ts +2 -2
  233. package/dist/internal/exclusive-lock.d.ts.map +1 -1
  234. package/dist/internal/file-observation.d.ts +14 -0
  235. package/dist/internal/file-observation.d.ts.map +1 -0
  236. package/dist/internal/json-data.d.ts +22 -5
  237. package/dist/internal/json-data.d.ts.map +1 -1
  238. package/dist/internal/positive-integer.d.ts +9 -0
  239. package/dist/internal/positive-integer.d.ts.map +1 -0
  240. package/dist/internal/process-instance.d.ts +35 -5
  241. package/dist/internal/process-instance.d.ts.map +1 -1
  242. package/dist/internal/secure-fetch.d.ts.map +1 -1
  243. package/dist/internal/timers.d.ts +11 -0
  244. package/dist/internal/timers.d.ts.map +1 -0
  245. package/dist/internal/with-exclusive-lock.d.ts +5 -4
  246. package/dist/internal/with-exclusive-lock.d.ts.map +1 -1
  247. package/dist/observability/bounded-sink.d.ts.map +1 -1
  248. package/dist/primitives/canonical-json.d.ts +23 -2
  249. package/dist/primitives/canonical-json.d.ts.map +1 -1
  250. package/dist/primitives/delivery.d.ts.map +1 -1
  251. package/dist/primitives/index.d.ts +1 -1
  252. package/dist/primitives/index.d.ts.map +1 -1
  253. package/dist/primitives/money.d.ts.map +1 -1
  254. package/dist/process/cleanup.d.ts +6 -1
  255. package/dist/process/cleanup.d.ts.map +1 -1
  256. package/dist/process/command-lifetime.d.ts +4 -0
  257. package/dist/process/command-lifetime.d.ts.map +1 -1
  258. package/dist/process/command-owner.d.ts.map +1 -1
  259. package/dist/process/command.d.ts +4 -0
  260. package/dist/process/command.d.ts.map +1 -1
  261. package/dist/process/contract.d.ts +67 -2
  262. package/dist/process/contract.d.ts.map +1 -1
  263. package/dist/process/group.d.ts +40 -3
  264. package/dist/process/group.d.ts.map +1 -1
  265. package/dist/process/launch.d.ts +12 -1
  266. package/dist/process/launch.d.ts.map +1 -1
  267. package/dist/process/terminate.d.ts +39 -0
  268. package/dist/process/terminate.d.ts.map +1 -0
  269. package/dist/react/query-client.d.ts.map +1 -1
  270. package/dist/realtime/rejection.d.ts.map +1 -1
  271. package/dist/server/contract-stream.d.ts.map +1 -1
  272. package/dist/server/handler-state.d.ts.map +1 -1
  273. package/dist/server/implement.d.ts.map +1 -1
  274. package/dist/server/request-body.d.ts +0 -1
  275. package/dist/server/request-body.d.ts.map +1 -1
  276. package/dist/server/unix-client.d.ts.map +1 -1
  277. package/dist/telegram/broadcast-delivery.d.ts.map +1 -1
  278. package/dist/telegram/broadcast-failure.d.ts +10 -2
  279. package/dist/telegram/broadcast-failure.d.ts.map +1 -1
  280. package/dist/telegram/operator-channel.d.ts.map +1 -1
  281. package/dist/telegram/screens/outcome.d.ts.map +1 -1
  282. package/dist/testing/surface-conformance.d.ts +1 -1
  283. package/dist/testing/surface-conformance.d.ts.map +1 -1
  284. package/dist/testing/surface-manifest.d.ts +0 -6
  285. package/dist/testing/surface-manifest.d.ts.map +1 -1
  286. package/dist/tools/agent.d.ts +1 -1
  287. package/dist/tools/agent.d.ts.map +1 -1
  288. package/dist/tools/cli/args.d.ts +1 -1
  289. package/dist/tools/cli/args.d.ts.map +1 -1
  290. package/dist/tools/cli/help.d.ts.map +1 -1
  291. package/dist/tools/cli/invoke.d.ts +2 -2
  292. package/dist/tools/cli/invoke.d.ts.map +1 -1
  293. package/dist/tools/cli/profile.d.ts.map +1 -1
  294. package/dist/tools/cli/publication-assets.d.ts.map +1 -1
  295. package/dist/tools/cli/publication-contract.d.ts +8 -0
  296. package/dist/tools/cli/publication-contract.d.ts.map +1 -1
  297. package/dist/tools/cli/publication-control.d.ts.map +1 -1
  298. package/dist/tools/cli/publication-storage.d.ts +23 -2
  299. package/dist/tools/cli/publication-storage.d.ts.map +1 -1
  300. package/dist/tools/cli/publication.d.ts +8 -1
  301. package/dist/tools/cli/publication.d.ts.map +1 -1
  302. package/dist/tools/connections/errors.d.ts +18 -6
  303. package/dist/tools/connections/errors.d.ts.map +1 -1
  304. package/dist/tools/connections/limits.d.ts +8 -2
  305. package/dist/tools/connections/limits.d.ts.map +1 -1
  306. package/dist/tools/connections/mcp-client.d.ts.map +1 -1
  307. package/dist/tools/connections/mcp-envelope.d.ts.map +1 -1
  308. package/dist/tools/connections/openapi.d.ts.map +1 -1
  309. package/dist/tools/connections/schema-budget.d.ts +1 -1
  310. package/dist/tools/connections/schema-budget.d.ts.map +1 -1
  311. package/dist/tools/connections/sse-session.d.ts.map +1 -1
  312. package/dist/tools/execute-args.d.ts.map +1 -1
  313. package/dist/tools/execute-result.d.ts.map +1 -1
  314. package/dist/tools/internal/surface-projector.d.ts +17 -3
  315. package/dist/tools/internal/surface-projector.d.ts.map +1 -1
  316. package/dist/tools/internal/tool-error-projection.d.ts +16 -0
  317. package/dist/tools/internal/tool-error-projection.d.ts.map +1 -0
  318. package/dist/tools/internal/tool-view.d.ts.map +1 -1
  319. package/dist/tools/invoker.d.ts.map +1 -1
  320. package/dist/tools/list-names.d.ts +3 -2
  321. package/dist/tools/list-names.d.ts.map +1 -1
  322. package/dist/tools/manifest.d.ts +3 -2
  323. package/dist/tools/manifest.d.ts.map +1 -1
  324. package/dist/tools/mcp/handler.d.ts +7 -0
  325. package/dist/tools/mcp/handler.d.ts.map +1 -1
  326. package/dist/tools/mcp/mount.d.ts +18 -2
  327. package/dist/tools/mcp/mount.d.ts.map +1 -1
  328. package/dist/tools/mcp/prepare.d.ts +3 -3
  329. package/dist/tools/mcp/prepare.d.ts.map +1 -1
  330. package/dist/tools/mcp/register.d.ts.map +1 -1
  331. package/dist/tools/mcp/runtime-tools.d.ts.map +1 -1
  332. package/dist/tools/mcp/stdio-signals.d.ts +14 -0
  333. package/dist/tools/mcp/stdio-signals.d.ts.map +1 -1
  334. package/dist/tools/mcp/stdio.d.ts +7 -0
  335. package/dist/tools/mcp/stdio.d.ts.map +1 -1
  336. package/dist/tools/operations/async-operation-runtime-tools.d.ts.map +1 -1
  337. package/dist/tools/operations/async-operation-runtime-types.d.ts +3 -3
  338. package/dist/tools/operations/async-operation-runtime-types.d.ts.map +1 -1
  339. package/dist/tools/operations/define-wait-tool.d.ts +1 -1
  340. package/dist/tools/operations/define-wait-tool.d.ts.map +1 -1
  341. package/dist/tools/operations/wait-core.d.ts +0 -6
  342. package/dist/tools/operations/wait-core.d.ts.map +1 -1
  343. package/dist/tools/registry.d.ts +1 -1
  344. package/dist/tools/registry.d.ts.map +1 -1
  345. package/dist/tools/remote.d.ts +1 -1
  346. package/dist/tools/remote.d.ts.map +1 -1
  347. package/dist/tools/{runtime-tool-execution.d.ts → runtime-tool-declaration.d.ts} +32 -9
  348. package/dist/tools/runtime-tool-declaration.d.ts.map +1 -0
  349. package/dist/tools/runtime-tool-mcp.d.ts +6 -15
  350. package/dist/tools/runtime-tool-mcp.d.ts.map +1 -1
  351. package/dist/tools/runtime-tool.d.ts +14 -12
  352. package/dist/tools/runtime-tool.d.ts.map +1 -1
  353. package/dist/tools/schema/coerce.d.ts +4 -0
  354. package/dist/tools/schema/coerce.d.ts.map +1 -1
  355. package/dist/tools/schema/flatten-join.d.ts.map +1 -1
  356. package/dist/tools/surface.d.ts +7 -11
  357. package/dist/tools/surface.d.ts.map +1 -1
  358. package/dist/tools/transfer/define-download-tool.d.ts +1 -1
  359. package/dist/tools/transfer/define-download-tool.d.ts.map +1 -1
  360. package/dist/tools/transfer/define-upload-tool.d.ts +1 -1
  361. package/dist/tools/transfer/define-upload-tool.d.ts.map +1 -1
  362. package/dist/tools/transfer/define-view-file-tool.d.ts +1 -1
  363. package/dist/tools/transfer/define-view-file-tool.d.ts.map +1 -1
  364. package/dist/tools/transfer/managed-file-error.d.ts.map +1 -1
  365. package/dist/tools/transfer/view-file-contract.d.ts.map +1 -1
  366. package/dist/tools/transfer/view-file.d.ts +1 -1
  367. package/dist/tools/transfer/view-file.d.ts.map +1 -1
  368. package/dist/tools/transports.d.ts +3 -2
  369. package/dist/tools/transports.d.ts.map +1 -1
  370. package/llms/agent-runtime-browser.txt +10 -4
  371. package/llms/agent-runtime-harness.txt +32 -31
  372. package/llms/agent-runtime-react.txt +1 -1
  373. package/llms/agent-runtime-realtime.txt +14 -5
  374. package/llms/agent-runtime-sandbox.txt +3 -11
  375. package/llms/agent-runtime.3.txt +2 -2
  376. package/llms/agent-runtime.txt +0 -9
  377. package/llms/application.2.txt +3 -12
  378. package/llms/application.3.txt +7 -4
  379. package/llms/application.txt +44 -15
  380. package/llms/cli-publish.txt +29 -0
  381. package/llms/cli.2.txt +9 -11
  382. package/llms/cli.txt +26 -14
  383. package/llms/declaration.txt +0 -9
  384. package/llms/files-packaging.txt +16 -8
  385. package/llms/files.txt +4 -2
  386. package/llms/geo.txt +0 -9
  387. package/llms/live.txt +4 -13
  388. package/llms/observability.txt +31 -5
  389. package/llms/primitives.txt +38 -20
  390. package/llms/process.txt +287 -157
  391. package/llms/react-keyboard.txt +0 -9
  392. package/llms/react.txt +0 -18
  393. package/llms/server.4.txt +1 -1
  394. package/llms/server.5.txt +1 -1
  395. package/llms/server.txt +1 -1
  396. package/llms/stitchkit.txt +6 -7
  397. package/llms/telegram-screens.txt +2 -2
  398. package/llms/testing.txt +0 -1
  399. package/llms/tools-mcp.txt +2 -3
  400. package/llms/tools.2.txt +12 -0
  401. package/llms/tools.3.txt +5 -6
  402. package/llms/tools.txt +6 -4
  403. package/llms/upgrading-0.37.0-0.50.0.txt +947 -0
  404. package/llms/{upgrading-0.44.0-0.61.0.txt → upgrading-0.53.0-0.67.0.txt} +576 -506
  405. package/llms/{upgrading-0.62.0-0.80.0.txt → upgrading-0.68.0-0.94.0.txt} +562 -576
  406. package/llms/{upgrading-0.81.0-0.104.0.txt → upgrading-0.95.0-0.105.0.txt} +452 -567
  407. package/llms/upgrading.txt +4 -4
  408. package/llms-full.txt +1029 -409
  409. package/llms.txt +24 -24
  410. package/native-assets.json +11 -3
  411. package/package.json +6 -6
  412. package/dist/agent-runtime/harness-tools.d.ts +0 -11
  413. package/dist/agent-runtime/harness-tools.d.ts.map +0 -1
  414. package/dist/entrypoints/agent-runtime/harness-tools.d.ts +0 -2
  415. package/dist/entrypoints/agent-runtime/harness-tools.d.ts.map +0 -1
  416. package/dist/entrypoints/agent-runtime/harness-tools.js +0 -32
  417. package/dist/index-1a6jtnd9.js +0 -88
  418. package/dist/index-8a9ksm91.js +0 -95
  419. package/dist/index-a3wma1hk.js +0 -48
  420. package/dist/index-jd470k6q.js +0 -109
  421. package/dist/index-n1dqr7gf.js +0 -20
  422. package/dist/index-nggfa2yn.js +0 -34
  423. package/dist/index-s4evrmp5.js +0 -98
  424. package/dist/index-ze1eph1k.js +0 -20
  425. package/dist/tools/connections/error-projection.d.ts +0 -4
  426. package/dist/tools/connections/error-projection.d.ts.map +0 -1
  427. package/dist/tools/runtime-tool-execution.d.ts.map +0 -1
  428. package/llms/agent-runtime-harness-tools.txt +0 -25
  429. package/llms/upgrading-0.37.0-0.44.0.txt +0 -444
@@ -1,4 +1,8 @@
1
1
  import { z } from 'zod';
2
+ /**
3
+ * A damaged region found while reading a journal: file, offset, line, reason, whether it is at
4
+ * the tail, and how many bytes were skipped.
5
+ */
2
6
  export declare const DiagnosticJournalAnomalySchema: z.ZodReadonly<z.ZodObject<{
3
7
  file: z.ZodString;
4
8
  offset: z.ZodNumber;
@@ -19,7 +23,12 @@ export declare const DiagnosticJournalAnomalySchema: z.ZodReadonly<z.ZodObject<{
19
23
  terminated: z.ZodBoolean;
20
24
  skippedBytes: z.ZodNumber;
21
25
  }, z.core.$strict>>;
26
+ /** A damaged region found while reading a journal; reading goes on after it. */
22
27
  export type DiagnosticJournalAnomaly = z.infer<typeof DiagnosticJournalAnomalySchema>;
28
+ /**
29
+ * Builds the Zod schema of one read result for your event schema: a `frame` carrying a parsed
30
+ * event, or an `anomaly`.
31
+ */
23
32
  export declare function createDiagnosticJournalReadResultSchema<SCHEMA extends z.ZodType>(eventSchema: SCHEMA): z.ZodDiscriminatedUnion<[z.ZodReadonly<z.ZodObject<{
24
33
  file: z.ZodString;
25
34
  offset: z.ZodNumber;
@@ -55,7 +64,36 @@ export declare function createDiagnosticJournalReadResultSchema<SCHEMA extends z
55
64
  skippedBytes: z.ZodNumber;
56
65
  }, z.core.$strict>>;
57
66
  }, z.core.$strict>>], "type">;
67
+ /**
68
+ * One item yielded by `readDiagnosticJournal`: a `frame` with its event and location, or an
69
+ * `anomaly` for a damaged region.
70
+ */
58
71
  export type DiagnosticJournalReadResult<SCHEMA extends z.ZodType> = z.output<ReturnType<typeof createDiagnosticJournalReadResultSchema<SCHEMA>>>;
72
+ /**
73
+ * Why opening a journal could not keep a file in place: a torn active file with no retention slot
74
+ * to rotate it into, a retained name that is not a regular file, or a file that could not be read.
75
+ */
76
+ export declare const DiagnosticJournalStartupRefusalReasonSchema: z.ZodEnum<{
77
+ "not-a-regular-file": "not-a-regular-file";
78
+ "torn-without-retention-slot": "torn-without-retention-slot";
79
+ unreadable: "unreadable";
80
+ }>;
81
+ /** The inferred value of {@link DiagnosticJournalStartupRefusalReasonSchema}. */
82
+ export type DiagnosticJournalStartupRefusalReason = z.infer<typeof DiagnosticJournalStartupRefusalReasonSchema>;
83
+ /**
84
+ * How many quarantined files one status lists. The rest are counted in `quarantinedUnlisted`, so a
85
+ * directory holding thousands of them cannot grow the status without bound.
86
+ */
87
+ export declare const DIAGNOSTIC_JOURNAL_LISTED_QUARANTINE_LIMIT = 32;
88
+ /**
89
+ * Counts from checking a journal at startup: files checked, anomalies found, bytes skipped, the
90
+ * first and last anomaly, and the quarantined files beside the journal.
91
+ *
92
+ * Stability: this schema follows the maturity of `stitchkit/application` (evolving). It is
93
+ * `.strict()`, so a reader parsing with an older copy refuses a status that carries a key it does
94
+ * not know: every change to its shape, an added optional field included, is listed under
95
+ * `⚠️ Breaking changes` in the changelog for consumers that embed it in their own protocol.
96
+ */
59
97
  export declare const DiagnosticJournalRecoveryStatusSchema: z.ZodReadonly<z.ZodObject<{
60
98
  filesChecked: z.ZodNumber;
61
99
  anomalies: z.ZodNumber;
@@ -100,11 +138,43 @@ export declare const DiagnosticJournalRecoveryStatusSchema: z.ZodReadonly<z.ZodO
100
138
  terminated: z.ZodBoolean;
101
139
  skippedBytes: z.ZodNumber;
102
140
  }, z.core.$strict>>>;
141
+ quarantined: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodReadonly<z.ZodObject<{
142
+ file: z.ZodString;
143
+ quarantinedAs: z.ZodString;
144
+ reason: z.ZodOptional<z.ZodEnum<{
145
+ "not-a-regular-file": "not-a-regular-file";
146
+ "torn-without-retention-slot": "torn-without-retention-slot";
147
+ unreadable: "unreadable";
148
+ }>>;
149
+ code: z.ZodOptional<z.ZodString>;
150
+ }, z.core.$strict>>>>>;
151
+ quarantinedUnlisted: z.ZodOptional<z.ZodNumber>;
103
152
  }, z.core.$strict>>;
153
+ /**
154
+ * Counts from checking a journal at startup: files checked, anomalies found, bytes skipped,
155
+ * the first and last anomaly, and the quarantined files beside the journal.
156
+ */
104
157
  export type DiagnosticJournalRecoveryStatus = z.infer<typeof DiagnosticJournalRecoveryStatusSchema>;
105
- /** A single-file retention policy cannot preserve the torn file during startup rotation. */
158
+ /** What a startup refusal names: the file, the reason and what was observed or failed. */
159
+ export interface DiagnosticJournalRecoveryErrorOptions {
160
+ readonly reason: DiagnosticJournalStartupRefusalReason;
161
+ readonly file: string;
162
+ /** The inspection of a torn file, when the refusal is `torn-without-retention-slot`. */
163
+ readonly recovery?: DiagnosticJournalRecoveryStatus;
164
+ /** The refusal stands because moving the file aside failed; `cause` holds both errors. */
165
+ readonly quarantineFailed?: boolean;
166
+ readonly cause?: unknown;
167
+ }
168
+ /**
169
+ * Opening a journal refused a file it could not keep in place. Thrown under
170
+ * `onStartupRefusal: 'fail'`, and under `'quarantine'` when moving the file aside failed (then
171
+ * `quarantineFailed` is true). No evidence is removed and the lock is released.
172
+ */
106
173
  export declare class DiagnosticJournalRecoveryError extends Error {
107
- readonly recovery: DiagnosticJournalRecoveryStatus;
108
- constructor(recovery: DiagnosticJournalRecoveryStatus);
174
+ readonly reason: DiagnosticJournalStartupRefusalReason;
175
+ readonly file: string;
176
+ readonly recovery?: DiagnosticJournalRecoveryStatus;
177
+ readonly quarantineFailed: boolean;
178
+ constructor(options: DiagnosticJournalRecoveryErrorOptions);
109
179
  }
110
180
  //# sourceMappingURL=diagnostic-journal-read-contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-journal-read-contract.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-read-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;mBAgB9B,CAAC;AACd,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,wBAAgB,uCAAuC,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EAC9E,WAAW,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAepB;AACD,MAAM,MAAM,2BAA2B,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAC1E,UAAU,CAAC,OAAO,uCAAuC,CAAC,MAAM,CAAC,CAAC,CACnE,CAAC;AAEF,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBASrC,CAAC;AACd,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CACnD,OAAO,qCAAqC,CAC7C,CAAC;AAEF,4FAA4F;AAC5F,qBAAa,8BAA+B,SAAQ,KAAK;aAC3B,QAAQ,EAAE,+BAA+B;IAArE,YAA4B,QAAQ,EAAE,+BAA+B,EAGpE;CACF"}
1
+ {"version":3,"file":"diagnostic-journal-read-contract.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-read-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB;;;GAGG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;mBAgB9B,CAAC;AACd,gFAAgF;AAChF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF;;;GAGG;AACH,wBAAgB,uCAAuC,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EAC9E,WAAW,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAepB;AACD;;;GAGG;AACH,MAAM,MAAM,2BAA2B,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAC1E,UAAU,CAAC,OAAO,uCAAuC,CAAC,MAAM,CAAC,CAAC,CACnE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2CAA2C;;;;EAItD,CAAC;AACH,iFAAiF;AACjF,MAAM,MAAM,qCAAqC,GAAG,CAAC,CAAC,KAAK,CACzD,OAAO,2CAA2C,CACnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0CAA0C,KAAK,CAAC;AAmB7D;;;;;;;;GAQG;AACH,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAsBrC,CAAC;AACd;;;GAGG;AACH,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CACnD,OAAO,qCAAqC,CAC7C,CAAC;AAEF,0FAA0F;AAC1F,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,MAAM,EAAE,qCAAqC,CAAC;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,QAAQ,CAAC,QAAQ,CAAC,EAAE,+BAA+B,CAAC;IACpD,0FAA0F;IAC1F,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AASD;;;;GAIG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,QAAQ,CAAC,MAAM,EAAE,qCAAqC,CAAC;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,+BAA+B,CAAC;IACpD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IAEnC,YAAY,OAAO,EAAE,qCAAqC,EAWzD;CACF"}
@@ -1,5 +1,9 @@
1
1
  import { z } from 'zod';
2
- import { type DiagnosticJournalReadResult } from './diagnostic-journal-read-contract.js';
2
+ import { createDiagnosticJournalReadResultSchema, type DiagnosticJournalReadResult } from './diagnostic-journal-read-contract.js';
3
+ /**
4
+ * Config for `readDiagnosticJournal`: the files to read in order, the schema each event must
5
+ * match, and a per-line byte limit.
6
+ */
3
7
  export interface DiagnosticJournalReaderConfig<SCHEMA extends z.ZodType> {
4
8
  /** Explicit operator-owned files, read in this order; missing files are I/O errors. */
5
9
  readonly paths: readonly string[];
@@ -8,6 +12,17 @@ export interface DiagnosticJournalReaderConfig<SCHEMA extends z.ZodType> {
8
12
  readonly maxLineBytes: number;
9
13
  readonly signal?: AbortSignal;
10
14
  }
11
- /** One finite file snapshot at a time. Corrupt rows are data; filesystem failures throw. */
15
+ export interface LineLocation {
16
+ readonly file: string;
17
+ readonly offset: number;
18
+ readonly line: number;
19
+ readonly bytes: number;
20
+ readonly terminated: boolean;
21
+ readonly position: 'tail' | 'interior';
22
+ }
23
+ export declare function decodeLine<SCHEMA extends z.ZodType>(schema: ReturnType<typeof createDiagnosticJournalReadResultSchema<SCHEMA>>, location: LineLocation, body: Uint8Array | undefined): DiagnosticJournalReadResult<SCHEMA>[];
24
+ /**
25
+ * One finite file snapshot at a time. Corrupt rows are data; filesystem failures throw.
26
+ */
12
27
  export declare function readDiagnosticJournal<SCHEMA extends z.ZodType>(config: DiagnosticJournalReaderConfig<SCHEMA>): AsyncGenerator<DiagnosticJournalReadResult<SCHEMA>, void, unknown>;
13
28
  //# sourceMappingURL=diagnostic-journal-reader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-journal-reader.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-reader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAGL,KAAK,2BAA2B,EACjC,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,6BAA6B,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO;IACrE,uFAAuF;IACvF,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAoFD,4FAA4F;AAC5F,wBAAuB,qBAAqB,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EACnE,MAAM,EAAE,6BAA6B,CAAC,MAAM,CAAC,GAC5C,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAsFpE"}
1
+ {"version":3,"file":"diagnostic-journal-reader.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-reader.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,uCAAuC,EAEvC,KAAK,2BAA2B,EACjC,MAAM,oCAAoC,CAAC;AAE5C;;;GAGG;AACH,MAAM,WAAW,6BAA6B,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO;IACrE,uFAAuF;IACvF,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC;CACxC;AAED,wBAAgB,UAAU,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EACjD,MAAM,EAAE,UAAU,CAAC,OAAO,uCAAuC,CAAC,MAAM,CAAC,CAAC,EAC1E,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,UAAU,GAAG,SAAS,GAC3B,2BAA2B,CAAC,MAAM,CAAC,EAAE,CA+CvC;AAED;;GAEG;AACH,wBAAuB,qBAAqB,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EACnE,MAAM,EAAE,6BAA6B,CAAC,MAAM,CAAC,GAC5C,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAsFpE"}
@@ -1,4 +1,20 @@
1
+ import type { DiagnosticJournalStartupScan } from './diagnostic-journal-contract.js';
1
2
  import { type DiagnosticJournalRecoveryStatus } from './diagnostic-journal-read-contract.js';
2
- /** Disk evidence is the persistent source; only counters and two locations are retained. */
3
- export declare function inspectDiagnosticJournalRecovery(paths: readonly string[], maxLineBytes: number): Promise<DiagnosticJournalRecoveryStatus>;
3
+ interface RecoveryInspection {
4
+ readonly paths: readonly string[];
5
+ readonly maxLineBytes: number;
6
+ readonly scan: DiagnosticJournalStartupScan;
7
+ /**
8
+ * A file that could not be read to its end. Its findings are dropped and it is not counted
9
+ * as checked; the handler throws to refuse, or returns once the file is out of the way.
10
+ */
11
+ readonly onUnreadable?: (file: string, error: unknown) => Promise<void>;
12
+ }
13
+ /**
14
+ * Disk evidence is the persistent source; only counters and two locations are retained.
15
+ * `tails` checks the final line of every file, which is where a crash tears a
16
+ * journal; `full` reads and validates every line of every file.
17
+ */
18
+ export declare function inspectDiagnosticJournalRecovery(inspection: RecoveryInspection): Promise<DiagnosticJournalRecoveryStatus>;
19
+ export {};
4
20
  //# sourceMappingURL=diagnostic-journal-recovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-journal-recovery.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-recovery.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,+BAA+B,EAErC,MAAM,oCAAoC,CAAC;AAG5C,4FAA4F;AAC5F,wBAAsB,gCAAgC,CACpD,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,+BAA+B,CAAC,CAuB1C"}
1
+ {"version":3,"file":"diagnostic-journal-recovery.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-recovery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAEL,KAAK,+BAA+B,EAErC,MAAM,oCAAoC,CAAC;AAI5C,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;IAC5C;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzE;AAQD;;;;GAIG;AACH,wBAAsB,gCAAgC,CACpD,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAAC,+BAA+B,CAAC,CAsC1C"}
@@ -1,5 +1,5 @@
1
- import type { DiagnosticJournalFailurePhase, DiagnosticJournalLockPolicy } from './diagnostic-journal-contract.js';
2
- import { type DiagnosticJournalRecoveryStatus } from './diagnostic-journal-read-contract.js';
1
+ import type { DiagnosticJournalFailurePhase, DiagnosticJournalLockPolicy, DiagnosticJournalStartupRefusalPolicy, DiagnosticJournalStartupScan } from './diagnostic-journal-contract.js';
2
+ import type { DiagnosticJournalRecoveryStatus } from './diagnostic-journal-read-contract.js';
3
3
  export interface DiagnosticJournalStorageSnapshot {
4
4
  readonly currentFileBytes: number;
5
5
  readonly retainedFiles: number;
@@ -27,6 +27,10 @@ interface RotatingStorageConfig {
27
27
  readonly maxFiles: number;
28
28
  readonly mode: number;
29
29
  readonly lock: DiagnosticJournalLockPolicy;
30
+ readonly scan: DiagnosticJournalStartupScan;
31
+ readonly onStartupRefusal: DiagnosticJournalStartupRefusalPolicy;
32
+ /** The process epoch; it names the files this open moves aside. */
33
+ readonly epoch: string;
30
34
  readonly machineIdentity?: string;
31
35
  }
32
36
  /** One exclusive local writer. The lock is deliberately not a cross-crash lease. */
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-journal-storage.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-storage.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,oCAAoC,CAAC;AAG5C,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,+BAA+B,CAAC;CACrD;AAED,MAAM,WAAW,oCACf,SAAQ,gCAAgC;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,kFAAkF;IAClF,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAAC;IACzE,QAAQ,IAAI,gCAAgC,CAAC;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,qBAAa,6BAA8B,SAAQ,KAAK;aAEpC,KAAK,EAAE,6BAA6B;IADtD,YACkB,KAAK,EAAE,6BAA6B,EACpD,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,EAIvB;CACF;AAED,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AA4CD,oFAAoF;AACpF,wBAAsB,sCAAsC,CAC1D,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,wBAAwB,CAAC,CA8KnC"}
1
+ {"version":3,"file":"diagnostic-journal-storage.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-storage.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,6BAA6B,EAC7B,2BAA2B,EAC3B,qCAAqC,EACrC,4BAA4B,EAC7B,MAAM,+BAA+B,CAAC;AAYvC,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAC;AAG1F,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,+BAA+B,CAAC;CACrD;AAED,MAAM,WAAW,oCACf,SAAQ,gCAAgC;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,kFAAkF;IAClF,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAAC;IACzE,QAAQ,IAAI,gCAAgC,CAAC;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,qBAAa,6BAA8B,SAAQ,KAAK;aAEpC,KAAK,EAAE,6BAA6B;IADtD,YACkB,KAAK,EAAE,6BAA6B,EACpD,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,EAIvB;CACF;AAED,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,qCAAqC,CAAC;IACjE,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAgCD,oFAAoF;AACpF,wBAAsB,sCAAsC,CAC1D,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,wBAAwB,CAAC,CAyLnC"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ import { type DiagnosticJournalReadResult } from './diagnostic-journal-read-contract.js';
3
+ declare const jsonSchema: z.ZodJSONSchema;
4
+ /**
5
+ * The result of reading only the final line of each file, as the full reader
6
+ * would have reported it. Nothing before that line is parsed or validated: a
7
+ * file is read once in large blocks to count its line feeds, which is what puts
8
+ * the line number and byte offset on a finding.
9
+ */
10
+ export declare function readDiagnosticJournalTails(paths: readonly string[], maxLineBytes: number): AsyncGenerator<DiagnosticJournalReadResult<typeof jsonSchema>>;
11
+ export {};
12
+ //# sourceMappingURL=diagnostic-journal-tail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostic-journal-tail.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal-tail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,oCAAoC,CAAC;AAI5C,QAAA,MAAM,UAAU,iBAAW,CAAC;AAG5B;;;;;GAKG;AACH,wBAAuB,0BAA0B,CAC/C,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,YAAY,EAAE,MAAM,GACnB,cAAc,CAAC,2BAA2B,CAAC,OAAO,UAAU,CAAC,CAAC,CAiDhE"}
@@ -8,6 +8,9 @@ import { type DiagnosticJournal, type DiagnosticJournalConfig } from './diagnost
8
8
  * behind. By default an operator removes it after proving the previous owner is gone; `lock:
9
9
  * 'reclaim-stale'` makes the journal prove that itself, which is what an unattended service
10
10
  * restarted by its supervisor needs.
11
+ *
12
+ * Opening moves a file it cannot keep in place aside and starts (`onStartupRefusal`, default
13
+ * `quarantine`); `getStatus().recovery` names what it found and moved.
11
14
  */
12
15
  export declare function createDiagnosticJournal<SCHEMA extends z.ZodType>(config: DiagnosticJournalConfig<SCHEMA>): Promise<DiagnosticJournal<z.input<SCHEMA>>>;
13
16
  //# sourceMappingURL=diagnostic-journal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-journal.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAI7B,MAAM,+BAA+B,CAAC;AAIvC;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EACpE,MAAM,EAAE,uBAAuB,CAAC,MAAM,CAAC,GACtC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAqB7C"}
1
+ {"version":3,"file":"diagnostic-journal.d.ts","sourceRoot":"","sources":["../../src/application/diagnostic-journal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAM7B,MAAM,+BAA+B,CAAC;AAIvC;;;;;;;;;;;GAWG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,EACpE,MAAM,EAAE,uBAAuB,CAAC,MAAM,CAAC,GACtC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CA2B7C"}
@@ -2,12 +2,12 @@ import type { z } from 'zod';
2
2
  import { type DirectoryInboxAccept, type DirectoryInboxAcceptResult } from './directory-inbox-contract.js';
3
3
  import { type InboxFiles } from './directory-inbox-files.js';
4
4
  import type { InboxStateAccess } from './directory-inbox-state.js';
5
- export declare function createInboxAccept<TEntry>(options: {
5
+ export declare function createInboxAccept<TEntry, TInput>(options: {
6
6
  access: InboxStateAccess;
7
7
  files: () => InboxFiles;
8
8
  accepting: () => boolean;
9
- schema: z.ZodType<TEntry>;
9
+ schema: z.ZodType<TEntry, TInput>;
10
10
  maxEntryBytes: number;
11
11
  maxPendingEntries: number;
12
- }): (input: DirectoryInboxAccept<TEntry>) => Promise<DirectoryInboxAcceptResult>;
12
+ }): (input: DirectoryInboxAccept<TInput>) => Promise<DirectoryInboxAcceptResult>;
13
13
  //# sourceMappingURL=directory-inbox-accept.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"directory-inbox-accept.d.ts","sourceRoot":"","sources":["../../src/application/directory-inbox-accept.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAEhC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,UAAU,EAGhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE;IACjD,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,MAAM,UAAU,CAAC;IACxB,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,WACsB,oBAAoB,CAAC,MAAM,CAAC,KAAG,OAAO,CAAC,0BAA0B,CAAC,CAkCxF"}
1
+ {"version":3,"file":"directory-inbox-accept.d.ts","sourceRoot":"","sources":["../../src/application/directory-inbox-accept.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,EAEhC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,UAAU,EAGhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IACzD,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,MAAM,UAAU,CAAC;IACxB,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,WACsB,oBAAoB,CAAC,MAAM,CAAC,KAAG,OAAO,CAAC,0BAA0B,CAAC,CAgCxF"}
@@ -1,11 +1,23 @@
1
1
  import { z } from 'zod';
2
2
  import type { ManagedResource, ManagedResourceDependency } from './resource.js';
3
3
  import type { StateStore } from './state-store.js';
4
+ /**
5
+ * The identity of an inbox entry: `source` and `key`; a second entry with the same pair is a
6
+ * duplicate.
7
+ */
4
8
  export declare const DirectoryInboxIdentitySchema: z.ZodObject<{
5
9
  source: z.ZodString;
6
10
  key: z.ZodString;
7
11
  }, z.core.$strict>;
12
+ /**
13
+ * The identity of an inbox entry: `source` and `key`; a second entry with the same pair is a
14
+ * duplicate.
15
+ */
8
16
  export type DirectoryInboxIdentity = z.infer<typeof DirectoryInboxIdentitySchema>;
17
+ /**
18
+ * Result of accepting an entry: `accepted` for a new one, `duplicate` when that identity was
19
+ * already taken, plus the file name.
20
+ */
9
21
  export declare const DirectoryInboxAcceptResultSchema: z.ZodObject<{
10
22
  status: z.ZodEnum<{
11
23
  accepted: "accepted";
@@ -13,9 +25,17 @@ export declare const DirectoryInboxAcceptResultSchema: z.ZodObject<{
13
25
  }>;
14
26
  filename: z.ZodString;
15
27
  }, z.core.$strict>;
28
+ /**
29
+ * Result of accepting an entry: `accepted` for a new one, `duplicate` when that identity was
30
+ * already taken, plus the file name.
31
+ */
16
32
  export type DirectoryInboxAcceptResult = z.infer<typeof DirectoryInboxAcceptResultSchema>;
17
- export interface DirectoryInboxAccept<TEntry> extends DirectoryInboxIdentity {
18
- readonly entry: TEntry;
33
+ /**
34
+ * A programmatic entry: what the schema accepts as input, stored as given and parsed on
35
+ * delivery.
36
+ */
37
+ export interface DirectoryInboxAccept<TInput> extends DirectoryInboxIdentity {
38
+ readonly entry: TInput;
19
39
  }
20
40
  export declare const DirectoryInboxRejectionReasonSchema: z.ZodEnum<{
21
41
  "attempt-limit": "attempt-limit";
@@ -80,10 +100,11 @@ export interface DirectoryInboxDelivery<TEntry> {
80
100
  /** Aborted when the application is forced down mid-delivery. */
81
101
  readonly signal: AbortSignal;
82
102
  }
83
- export interface DirectoryInboxConfig<TEntry> {
103
+ export interface DirectoryInboxConfig<TEntry, TInput = TEntry> {
84
104
  readonly id: string;
85
105
  readonly directory: string;
86
- readonly schema: z.ZodType<TEntry>;
106
+ /** Parses every stored entry on delivery; `accept` takes its input type. */
107
+ readonly schema: z.ZodType<TEntry, TInput>;
87
108
  /** Throwing leaves the entry for a later attempt. */
88
109
  readonly handle: (delivery: DirectoryInboxDelivery<TEntry>) => void | Promise<void>;
89
110
  readonly dependsOn?: readonly ManagedResourceDependency[];
@@ -100,7 +121,11 @@ export interface DirectoryInboxConfig<TEntry> {
100
121
  readonly maxEntryBytes?: number;
101
122
  /** Programmatic acceptance refuses a full inbox without creating a file. Default 1 000. */
102
123
  readonly maxPendingEntries?: number;
103
- /** Receipts and rejections kept. Default 1 000. */
124
+ /**
125
+ * Receipts and rejections kept, each list. Default 1 000. Every state update
126
+ * reads, validates and rewrites the whole state, so its cost grows with this
127
+ * number: keep it as small as duplicate detection needs.
128
+ */
104
129
  readonly retain?: number;
105
130
  /** An entry was set aside into `<directory>/rejected/`, with the reason. */
106
131
  readonly onRejected?: (rejection: DirectoryInboxRejection) => void | Promise<void>;
@@ -110,16 +135,16 @@ export interface DirectoryInboxConfig<TEntry> {
110
135
  */
111
136
  readonly onError?: (error: unknown) => void | Promise<void>;
112
137
  }
113
- export interface DirectoryInbox<TEntry = unknown> {
138
+ export interface DirectoryInbox<TInput = unknown> {
114
139
  /** Durably buffer an entry before activation; duplicates never replace the first payload. */
115
- accept(input: DirectoryInboxAccept<TEntry>): Promise<DirectoryInboxAcceptResult>;
140
+ accept(input: DirectoryInboxAccept<TInput>): Promise<DirectoryInboxAcceptResult>;
116
141
  /** Deliver every entry due now; resolves with how many were handled. */
117
142
  flush(): Promise<number>;
118
143
  state(): Promise<DirectoryInboxState>;
119
144
  }
120
- export interface DirectoryInboxResource<TEntry = unknown> extends ManagedResource {
145
+ export interface DirectoryInboxResource<TInput = unknown> extends ManagedResource {
121
146
  start(): Promise<{
122
- readonly value: DirectoryInbox<TEntry>;
147
+ readonly value: DirectoryInbox<TInput>;
123
148
  }>;
124
149
  }
125
150
  /** What the next step does with one entry of the directory. */
@@ -160,7 +185,10 @@ export declare function releaseEntry(state: DirectoryInboxState, claim: Director
160
185
  /** A expired or replaced owner cannot complete, reject, renew or release an entry. */
161
186
  export declare function ownsClaim(state: DirectoryInboxState, claim: DirectoryInboxClaim, now: Date): boolean;
162
187
  export declare function renewEntry(state: DirectoryInboxState, claim: DirectoryInboxClaim, now: Date, leaseMs: number): DirectoryInboxState;
163
- /** Records about entries that are gone from the directory, except a live lease. */
188
+ /**
189
+ * Records about entries that are gone from the directory, except a live lease; the same state
190
+ * when none is.
191
+ */
164
192
  export declare function forgetMissing(state: DirectoryInboxState, present: ReadonlySet<string>, now: Date): DirectoryInboxState;
165
193
  export {};
166
194
  //# sourceMappingURL=directory-inbox-contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"directory-inbox-contract.d.ts","sourceRoot":"","sources":["../../src/application/directory-inbox-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directory-inbox-contract.d.ts","sourceRoot":"","sources":["../../src/application/directory-inbox-contract.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { type DirectoryInboxClaim, type DirectoryInboxConfig } from './directory-inbox-contract.js';
2
- import type { InboxFiles } from './directory-inbox-files.js';
2
+ import { type InboxFiles } from './directory-inbox-files.js';
3
3
  import { type InboxStateAccess } from './directory-inbox-state.js';
4
- export declare function createInboxDelivery<TEntry>(options: {
5
- config: DirectoryInboxConfig<TEntry>;
4
+ export declare function createInboxDelivery<TEntry, TInput>(options: {
5
+ config: DirectoryInboxConfig<TEntry, TInput>;
6
6
  access: InboxStateAccess;
7
7
  files: () => InboxFiles;
8
8
  clock: () => Date;
@@ -1 +1 @@
1
- {"version":3,"file":"directory-inbox-delivery.d.ts","sourceRoot":"","sources":["../../src/application/directory-inbox-delivery.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAM1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAInF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE;IACnD,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,MAAM,UAAU,CAAC;IACxB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,WAAW,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,WAEsB,mBAAmB,KAAG,OAAO,CAAC,OAAO,CAAC,CAmH5D"}
1
+ {"version":3,"file":"directory-inbox-delivery.d.ts","sourceRoot":"","sources":["../../src/application/directory-inbox-delivery.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAM1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAmB,KAAK,UAAU,EAAkB,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAInF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAC3D,MAAM,EAAE,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,MAAM,UAAU,CAAC;IACxB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,WAAW,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,WAEsB,mBAAmB,KAAG,OAAO,CAAC,OAAO,CAAC,CAiI5D"}
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { type FileObservation } from '../internal/bounded-file-read.js';
2
+ import type { FileObservation } from '../internal/file-observation.js';
3
3
  import { type DirectoryInboxIdentity } from './directory-inbox-contract.js';
4
4
  import type { StateStoreUpdateContext } from './state-store.js';
5
5
  export type InboxRead<TEntry> = {
@@ -13,9 +13,24 @@ export type InboxRead<TEntry> = {
13
13
  observation?: FileObservation;
14
14
  } | null;
15
15
  export declare const missingInboxFile: (error: unknown) => boolean;
16
+ /**
17
+ * A failure of one entry's own file. The pass reports it and moves on to the
18
+ * next entry; any other failure belongs to the state store or the directory and
19
+ * ends the pass.
20
+ */
21
+ export declare class InboxEntryError extends Error {
22
+ readonly key: string;
23
+ constructor(key: string, cause: unknown);
24
+ }
16
25
  export declare function inboxFilename(identity: DirectoryInboxIdentity): string;
17
26
  export declare function sameInboxIdentity(a: DirectoryInboxIdentity | undefined, b: DirectoryInboxIdentity): boolean;
18
- export declare function encodeInboxEntry<TEntry>(identity: DirectoryInboxIdentity, entry: TEntry, schema: z.ZodType<TEntry>, maxBytes: number): string;
27
+ /**
28
+ * The envelope of a programmatic entry. The schema validates the entry, and
29
+ * what is stored is the entry itself — the schema's input — because delivery
30
+ * parses the stored file with the schema again and a transforming schema would
31
+ * not accept its own output.
32
+ */
33
+ export declare function encodeInboxEntry<TEntry, TInput>(identity: DirectoryInboxIdentity, entry: TInput, schema: z.ZodType<TEntry, TInput>, maxBytes: number): string;
19
34
  export declare function createInboxFiles(directory: string, maxBytes: number): Promise<{
20
35
  names(limit?: number): Promise<string[]>;
21
36
  read<TEntry>(key: string, schema: z.ZodType<TEntry>): Promise<InboxRead<TEntry>>;
@@ -1 +1 @@
1
- {"version":3,"file":"directory-inbox-files.d.ts","sourceRoot":"","sources":["../../src/application/directory-inbox-files.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,KAAK,sBAAsB,EAE5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAY7D,MAAM,MAAM,SAAS,CAAC,MAAM,IACxB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAAC,WAAW,EAAE,eAAe,CAAA;CAAE,GAClF;IACE,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B,GACD,IAAI,CAAC;AAET,eAAO,MAAM,gBAAgB,UAAW,OAAO,KAAG,OACoB,CAAC;AAEvE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,CAQtE;AAED,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,sBAAsB,GAAG,SAAS,EACrC,CAAC,EAAE,sBAAsB,GACxB,OAAO,CAET;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EACrC,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EACzB,QAAQ,EAAE,MAAM,GACf,MAAM,CAeR;AAED,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;kBA0BlD,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;SASnC,MAAM,OAAO,MAAM,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;0BAuD1D,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;iBAezE,MAAM,SACJ,MAAM,WACJ,uBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC;gBAgBT,MAAM,WACF,uBAAuB,gBAClB,eAAe,GAC5B,OAAO,CAAC,IAAI,CAAC;kBAUT,MAAM,WACF,uBAAuB,gBAClB,eAAe,GAC5B,OAAO,CAAC,IAAI,CAAC;GAgBnB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"directory-inbox-files.d.ts","sourceRoot":"","sources":["../../src/application/directory-inbox-files.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EACL,KAAK,sBAAsB,EAE5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAY7D,MAAM,MAAM,SAAS,CAAC,MAAM,IACxB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAAC,WAAW,EAAE,eAAe,CAAA;CAAE,GAClF;IACE,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B,GACD,IAAI,CAAC;AAET,eAAO,MAAM,gBAAgB,UAAW,OAAO,KAAG,OACoB,CAAC;AAEvE;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAEtC,QAAQ,CAAC,GAAG,EAAE,MAAM;IADtB,YACW,GAAG,EAAE,MAAM,EACpB,KAAK,EAAE,OAAO,EAIf;CACF;AA8CD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,sBAAsB,GAAG,MAAM,CAQtE;AAED,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,sBAAsB,GAAG,SAAS,EACrC,CAAC,EAAE,sBAAsB,GACxB,OAAO,CAET;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAC7C,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EACjC,QAAQ,EAAE,MAAM,GACf,MAAM,CAgBR;AAED,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;kBA0BlD,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;SASnC,MAAM,OAAO,MAAM,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;0BA0D1D,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;iBAezE,MAAM,SACJ,MAAM,WACJ,uBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC;gBAgBT,MAAM,WACF,uBAAuB,gBAClB,eAAe,GAC5B,OAAO,CAAC,IAAI,CAAC;kBAMT,MAAM,WACF,uBAAuB,gBAClB,eAAe,GAC5B,OAAO,CAAC,IAAI,CAAC;GAyBnB;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { FileObservation } from '../internal/bounded-file-read.js';
1
+ import type { FileObservation } from '../internal/file-observation.js';
2
2
  import { type DirectoryInboxRejection, type DirectoryInboxState } from './directory-inbox-contract.js';
3
3
  import type { InboxFiles } from './directory-inbox-files.js';
4
4
  import type { StateStore, StateStoreUpdate, StateStoreUpdateContext } from './state-store.js';
@@ -1 +1 @@
1
- {"version":3,"file":"directory-inbox-state.d.ts","sourceRoot":"","sources":["../../src/application/directory-inbox-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAGzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE3F,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,OAAO,EACZ,UAAU,EAAE,CACV,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,uBAAuB,KAE9B,gBAAgB,CAAC,mBAAmB,EAAE,OAAO,CAAC,GAC9C,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,GAC1D,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,IAAI,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACtC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAQzF;AAED,gGAAgG;AAChG,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,uBAAuB,EAC7D,WAAW,CAAC,EAAE,eAAe,GAC5B,OAAO,CAAC,IAAI,CAAC,CAsBf"}
1
+ {"version":3,"file":"directory-inbox-state.d.ts","sourceRoot":"","sources":["../../src/application/directory-inbox-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAGzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE3F,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,OAAO,EACZ,UAAU,EAAE,CACV,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,uBAAuB,KAE9B,gBAAgB,CAAC,mBAAmB,EAAE,OAAO,CAAC,GAC9C,OAAO,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,GAC1D,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,IAAI,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACtC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAezF;AAED,gGAAgG;AAChG,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,uBAAuB,EAC7D,WAAW,CAAC,EAAE,eAAe,GAC5B,OAAO,CAAC,IAAI,CAAC,CAsBf"}
@@ -1,4 +1,4 @@
1
1
  import { type DirectoryInboxConfig, type DirectoryInboxResource } from './directory-inbox-contract.js';
2
2
  /** One file-backed intake engine for atomically dropped and programmatically accepted entries. */
3
- export declare function createDirectoryInbox<TEntry>(config: DirectoryInboxConfig<TEntry>): DirectoryInboxResource<TEntry>;
3
+ export declare function createDirectoryInbox<TEntry, TInput = TEntry>(config: DirectoryInboxConfig<TEntry, TInput>): DirectoryInboxResource<TInput>;
4
4
  //# sourceMappingURL=directory-inbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"directory-inbox.d.ts","sourceRoot":"","sources":["../../src/application/directory-inbox.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAG5B,MAAM,4BAA4B,CAAC;AAkCpC,kGAAkG;AAClG,wBAAgB,oBAAoB,CAAC,MAAM,EACzC,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,GACnC,sBAAsB,CAAC,MAAM,CAAC,CAuJhC"}
1
+ {"version":3,"file":"directory-inbox.d.ts","sourceRoot":"","sources":["../../src/application/directory-inbox.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAG5B,MAAM,4BAA4B,CAAC;AA8CpC,kGAAkG;AAClG,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAC1D,MAAM,EAAE,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3C,sBAAsB,CAAC,MAAM,CAAC,CAoKhC"}
@@ -1,4 +1,6 @@
1
1
  import type { z } from 'zod';
2
+ import { writeAtomicFileData } from '../internal/atomic-file.js';
3
+ import { withExclusiveLock } from '../internal/with-exclusive-lock.js';
2
4
  import type { StateStore } from './state-store.js';
3
5
  export interface FileStateStoreCorruption {
4
6
  readonly path: string;
@@ -11,7 +13,25 @@ export interface FileStateStoreOptions<TState> {
11
13
  readonly onCorrupt?: (failure: FileStateStoreCorruption) => void | Promise<void>;
12
14
  /** Maximum wait to acquire the lock; never revokes a live transition. Default 10 s. */
13
15
  readonly lockTimeoutMs?: number;
16
+ /**
17
+ * Largest state file a read accepts, in bytes; a larger file is refused before
18
+ * it is parsed and is not treated as corruption. Every update reads, validates
19
+ * and rewrites the whole file, so state that grows toward this size makes each
20
+ * update proportionally slower. Default 64 MiB.
21
+ */
22
+ readonly maxBytes?: number;
14
23
  }
15
- /** One durable atomic state transition under the canonical process-instance lock. */
24
+ /** The write and the lock a store runs on; the seam where tests count work. */
25
+ export interface FileStateStoreIO {
26
+ readonly write: typeof writeAtomicFileData;
27
+ readonly lock: typeof withExclusiveLock;
28
+ }
29
+ /**
30
+ * One durable atomic state transition under the canonical process-instance lock.
31
+ * A transition whose resulting state encodes to the bytes it started from
32
+ * changes nothing and writes nothing.
33
+ */
16
34
  export declare function createFileStateStore<TState>(path: string, options: FileStateStoreOptions<TState>): StateStore<TState>;
35
+ /** {@link createFileStateStore} over an explicit write and lock. */
36
+ export declare function createFileStateStoreOn<TState>(path: string, options: FileStateStoreOptions<TState>, io: FileStateStoreIO): StateStore<TState>;
17
37
  //# sourceMappingURL=file-state-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-state-store.d.ts","sourceRoot":"","sources":["../../src/application/file-state-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAI7B,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,eAAe,CAAC;AAEzE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB,CAAC,MAAM;IAC3C,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,uFAAuF;IACvF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,uFAAuF;IACvF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAKD,qFAAqF;AACrF,wBAAgB,oBAAoB,CAAC,MAAM,EACzC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,GACrC,UAAU,CAAC,MAAM,CAAC,CAmEpB"}
1
+ {"version":3,"file":"file-state-store.d.ts","sourceRoot":"","sources":["../../src/application/file-state-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAI9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,eAAe,CAAC;AAEzE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB,CAAC,MAAM;IAC3C,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,uFAAuF;IACvF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,uFAAuF;IACvF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,+EAA+E;AAC/E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,OAAO,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,OAAO,iBAAiB,CAAC;CACzC;AAUD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EACzC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,GACrC,UAAU,CAAC,MAAM,CAAC,CAEpB;AAED,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,MAAM,EAC3C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,EACtC,EAAE,EAAE,gBAAgB,GACnB,UAAU,CAAC,MAAM,CAAC,CAyEpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"grammy.d.ts","sourceRoot":"","sources":["../../src/application/grammy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC/B,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,2BAA2B,CAAC,CAAC,SAAS,OAAO;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAED,6FAA6F;AAC7F,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAgCD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,EACrD,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC,GACrC,eAAe,CA4EjB;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9F,MAAM,WAAW,2BAA2B,CAAC,CAAC,SAAS,OAAO;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,OAAO;IACtD,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,YAAY,CACV,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,oBAAoB,CAAC,EAAE,oBAAoB,GAC1C,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAaD;;;;;;;;;;;GAWG;AACH,qBAAa,6BAA8B,SAAQ,QAAQ,CAAC,8BAA8B,CAAC;IACzF,cAOC;CACF;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,OAAO,EAC3D,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC,GACrC,qBAAqB,CAAC,CAAC,CAAC,CAiE1B"}
1
+ {"version":3,"file":"grammy.d.ts","sourceRoot":"","sources":["../../src/application/grammy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC/B,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,2BAA2B,CAAC,CAAC,SAAS,OAAO;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAED,6FAA6F;AAC7F,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAgCD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,OAAO,EACrD,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC,GACrC,eAAe,CA4EjB;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9F,MAAM,WAAW,2BAA2B,CAAC,CAAC,SAAS,OAAO;IAC5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC1D,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,OAAO;IACtD,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,YAAY,CACV,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,oBAAoB,CAAC,EAAE,oBAAoB,GAC1C,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAaD;;;;;;;;;;;GAWG;AACH,qBAAa,6BAA8B,SAAQ,QAAQ,CAAC,8BAA8B,CAAC;IACzF,cAMC;CACF;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,OAAO,EAC3D,MAAM,EAAE,2BAA2B,CAAC,CAAC,CAAC,GACrC,qBAAqB,CAAC,CAAC,CAAC,CAiE1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-contract.d.ts","sourceRoot":"","sources":["../../src/application/kernel-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernel-contract.d.ts","sourceRoot":"","sources":["../../src/application/kernel-contract.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"revision-signal.d.ts","sourceRoot":"","sources":["../../src/application/revision-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,yBAAyB;;;EAA6B,CAAC;AACpE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,+BAA+B;;;;;;EAM1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,eAAO,MAAM,8BAA8B;;;;;;;;;mBAM9B,CAAC;AACd,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,iCAAiC;;;;;;mBAMjC,CAAC;AACd,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;mBAiB5B,CAAC;AACd,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,MAAM,WAAW,mBAAmB;IAClC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,0DAA0D;AAC1D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,mBAAmB,CAAC;CACtE;AAED,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sCAAsC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,OAAO,IAAI,2BAA2B,CAAC;IACvC;;;;;OAKG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC5F,KAAK,IAAI,sBAAsB,CAAC;IAChC,WAAW,IAAI,sBAAsB,CAAC;CACvC;AAaD,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAoHjF"}
1
+ {"version":3,"file":"revision-signal.d.ts","sourceRoot":"","sources":["../../src/application/revision-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,yBAAyB;;;EAA6B,CAAC;AACpE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,+BAA+B;;;;;;EAM1C,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF,eAAO,MAAM,8BAA8B;;;;;;;;;mBAM9B,CAAC;AACd,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,iCAAiC;;;;;;mBAMjC,CAAC;AACd,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iCAAiC,CAAC,CAAC;AAE5F,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;mBAiB5B,CAAC;AACd,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,MAAM,WAAW,mBAAmB;IAClC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,0DAA0D;AAC1D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,mBAAmB,CAAC;CACtE;AAED,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sCAAsC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,OAAO,IAAI,2BAA2B,CAAC;IACvC;;;;;OAKG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC5F,KAAK,IAAI,sBAAsB,CAAC;IAChC,WAAW,IAAI,sBAAsB,CAAC;CACvC;AAaD,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAoHjF"}
@@ -15,6 +15,9 @@ export interface StateStoreUpdateContext {
15
15
  * on the store, rather than building it from public `read` and `write` calls,
16
16
  * is what lets file and database adapters protect two application processes
17
17
  * from silently overwriting one another.
18
+ *
19
+ * A transition whose resulting state equals the state it started from changes nothing: an
20
+ * adapter may commit no write for it.
18
21
  */
19
22
  export interface StateStore<TState> {
20
23
  read(): Promise<TState | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../../src/application/state-store.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,WAAW,gBAAgB,CAAC,MAAM,EAAE,OAAO;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,2EAA2E;AAC3E,MAAM,WAAW,uBAAuB;IACtC,8EAA8E;IAC9E,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU,CAAC,MAAM;IAChC,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/B,MAAM,CAAC,OAAO,EACZ,UAAU,EAAE,CACV,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,OAAO,EAAE,uBAAuB,KAC7B,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAClF,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB"}
1
+ {"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../../src/application/state-store.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,WAAW,gBAAgB,CAAC,MAAM,EAAE,OAAO;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,2EAA2E;AAC3E,MAAM,WAAW,uBAAuB;IACtC,8EAA8E;IAC9E,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU,CAAC,MAAM;IAChC,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/B,MAAM,CAAC,OAAO,EACZ,UAAU,EAAE,CACV,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,OAAO,EAAE,uBAAuB,KAC7B,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAClF,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB"}