@akterjs/effect 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (798) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +43 -2
  3. package/dist/contract/actor/actor-already-exists.errors.d.mts +8 -0
  4. package/dist/contract/actor/actor-already-exists.errors.mjs +4 -0
  5. package/dist/contract/actor/actor-definition.pure.d.mts +21 -0
  6. package/dist/contract/actor/actor-definition.pure.mjs +106 -0
  7. package/dist/contract/actor/actor-erased.errors.d.mts +8 -0
  8. package/dist/contract/actor/actor-erased.errors.mjs +4 -0
  9. package/dist/contract/actor/actor-names.pure.d.mts +11 -0
  10. package/dist/contract/actor/actor-names.pure.mjs +51 -0
  11. package/dist/contract/actor/actor-not-created.errors.d.mts +8 -0
  12. package/dist/contract/actor/actor-not-created.errors.mjs +4 -0
  13. package/dist/contract/actor/actor-not-registered.errors.d.mts +8 -0
  14. package/dist/contract/actor/actor-not-registered.errors.mjs +4 -0
  15. package/dist/contract/actor/actor-registry.service.d.mts +16 -0
  16. package/dist/contract/actor/actor-registry.service.mjs +21 -0
  17. package/dist/contract/actor/actor.contract.d.mts +238 -0
  18. package/dist/contract/actor/actor.contract.mjs +1 -0
  19. package/dist/contract/actor/host-interface.pure.d.mts +23 -0
  20. package/dist/contract/actor/host-interface.pure.mjs +39 -0
  21. package/dist/contract/actor/reserved-member.errors.d.mts +9 -0
  22. package/dist/contract/actor/reserved-member.errors.mjs +7 -0
  23. package/dist/contract/akter.service.d.mts +75 -0
  24. package/dist/contract/akter.service.mjs +134 -0
  25. package/dist/contract/caller/authentication.api.d.mts +6 -0
  26. package/dist/contract/caller/authentication.api.mjs +5 -0
  27. package/dist/contract/caller/caller-admission.pure.d.mts +27 -0
  28. package/dist/contract/caller/caller-admission.pure.mjs +59 -0
  29. package/dist/contract/caller/caller-not-allowed.errors.d.mts +16 -0
  30. package/dist/contract/caller/caller-not-allowed.errors.mjs +18 -0
  31. package/dist/contract/caller/caller.schema.d.mts +7 -0
  32. package/dist/contract/caller/caller.schema.mjs +8 -0
  33. package/dist/contract/caller/current-caller.service.d.mts +7 -0
  34. package/dist/contract/caller/current-caller.service.mjs +4 -0
  35. package/dist/contract/caller/principal.schema.d.mts +13 -0
  36. package/dist/contract/caller/principal.schema.mjs +10 -0
  37. package/dist/contract/caller/unauthenticated.errors.d.mts +8 -0
  38. package/dist/contract/caller/unauthenticated.errors.mjs +4 -0
  39. package/dist/contract/client/actor-client.adapter.d.mts +42 -0
  40. package/dist/contract/client/actor-client.adapter.mjs +90 -0
  41. package/dist/contract/client/actor-client.contract.d.mts +30 -0
  42. package/dist/contract/client/actor-client.contract.mjs +1 -0
  43. package/dist/contract/client/actor-rpc.contract.d.mts +33 -0
  44. package/dist/contract/client/actor-rpc.contract.mjs +16 -0
  45. package/dist/contract/client/actor-unavailable.errors.d.mts +9 -0
  46. package/dist/contract/client/actor-unavailable.errors.mjs +7 -0
  47. package/dist/contract/client/client-failure.contract.d.mts +28 -0
  48. package/dist/contract/client/client-failure.contract.mjs +28 -0
  49. package/dist/contract/client/invalid-request.errors.d.mts +9 -0
  50. package/dist/contract/client/invalid-request.errors.mjs +7 -0
  51. package/dist/contract/client/storage-limit.errors.d.mts +16 -0
  52. package/dist/contract/client/storage-limit.errors.mjs +14 -0
  53. package/dist/contract/command/command-id-expired.errors.d.mts +11 -0
  54. package/dist/contract/command/command-id-expired.errors.mjs +9 -0
  55. package/dist/contract/command/command-id.schema.d.mts +3 -0
  56. package/dist/contract/command/command-id.schema.mjs +4 -0
  57. package/dist/contract/command/command.contract.d.mts +117 -0
  58. package/dist/contract/command/command.contract.mjs +111 -0
  59. package/dist/contract/command/outbox-id.pure.d.mts +9 -0
  60. package/dist/contract/command/outbox-id.pure.mjs +14 -0
  61. package/dist/contract/command/outbox.schema.d.mts +9 -0
  62. package/dist/contract/command/outbox.schema.mjs +10 -0
  63. package/dist/contract/command/timer.schema.d.mts +20 -0
  64. package/dist/contract/command/timer.schema.mjs +14 -0
  65. package/dist/contract/computer/checkpoint-expired.errors.d.mts +12 -0
  66. package/dist/contract/computer/checkpoint-expired.errors.mjs +8 -0
  67. package/dist/contract/computer/computer-client-failure.contract.d.mts +16 -0
  68. package/dist/contract/computer/computer-client-failure.contract.mjs +1 -0
  69. package/dist/contract/computer/computer-client.adapter.d.mts +21 -0
  70. package/dist/contract/computer/computer-client.adapter.mjs +70 -0
  71. package/dist/contract/computer/computer-client.contract.d.mts +56 -0
  72. package/dist/contract/computer/computer-client.contract.mjs +1 -0
  73. package/dist/contract/computer/computer-held.errors.d.mts +13 -0
  74. package/dist/contract/computer/computer-held.errors.mjs +11 -0
  75. package/dist/contract/computer/computer-limit.errors.d.mts +15 -0
  76. package/dist/contract/computer/computer-limit.errors.mjs +13 -0
  77. package/dist/contract/computer/computer-lost.errors.d.mts +12 -0
  78. package/dist/contract/computer/computer-lost.errors.mjs +8 -0
  79. package/dist/contract/computer/computer-not-found.errors.d.mts +9 -0
  80. package/dist/contract/computer/computer-not-found.errors.mjs +5 -0
  81. package/dist/contract/computer/computer.schema.d.mts +122 -0
  82. package/dist/contract/computer/computer.schema.mjs +117 -0
  83. package/dist/contract/computer/computers-unavailable.errors.d.mts +9 -0
  84. package/dist/contract/computer/computers-unavailable.errors.mjs +5 -0
  85. package/dist/contract/computer/files/computer-files.schema.d.mts +28 -0
  86. package/dist/contract/computer/files/computer-files.schema.mjs +24 -0
  87. package/dist/contract/computer/rpc/computer-rpc.contract.d.mts +108 -0
  88. package/dist/contract/computer/rpc/computer-rpc.contract.mjs +117 -0
  89. package/dist/contract/computer/step/computer-step.contract.d.mts +21 -0
  90. package/dist/contract/computer/step/computer-step.contract.mjs +89 -0
  91. package/dist/contract/computer/step/computer-step.schema.d.mts +69 -0
  92. package/dist/contract/computer/step/computer-step.schema.mjs +71 -0
  93. package/dist/contract/computer/step/step-failure.schema.d.mts +13 -0
  94. package/dist/contract/computer/step/step-failure.schema.mjs +24 -0
  95. package/dist/contract/computer/step/step-not-found.errors.d.mts +9 -0
  96. package/dist/contract/computer/step/step-not-found.errors.mjs +5 -0
  97. package/dist/contract/description/published-contract.pure.d.mts +51 -0
  98. package/dist/contract/description/published-contract.pure.mjs +75 -0
  99. package/dist/contract/file/access/file-access-denied.errors.d.mts +11 -0
  100. package/dist/contract/file/access/file-access-denied.errors.mjs +9 -0
  101. package/dist/contract/file/access/file-access.contract.d.mts +35 -0
  102. package/dist/contract/file/access/file-access.contract.mjs +32 -0
  103. package/dist/contract/file/actor-files.contract.d.mts +50 -0
  104. package/dist/contract/file/actor-files.contract.mjs +1 -0
  105. package/dist/contract/file/blob-transfer.errors.d.mts +9 -0
  106. package/dist/contract/file/blob-transfer.errors.mjs +7 -0
  107. package/dist/contract/file/file-client-failure.contract.d.mts +24 -0
  108. package/dist/contract/file/file-client-failure.contract.mjs +1 -0
  109. package/dist/contract/file/file-client.adapter.d.mts +17 -0
  110. package/dist/contract/file/file-client.adapter.mjs +21 -0
  111. package/dist/contract/file/file-client.contract.d.mts +14 -0
  112. package/dist/contract/file/file-client.contract.mjs +1 -0
  113. package/dist/contract/file/file-listing.pure.d.mts +6 -0
  114. package/dist/contract/file/file-listing.pure.mjs +18 -0
  115. package/dist/contract/file/file-not-found.errors.d.mts +8 -0
  116. package/dist/contract/file/file-not-found.errors.mjs +4 -0
  117. package/dist/contract/file/file-path.pure.d.mts +4 -0
  118. package/dist/contract/file/file-path.pure.mjs +38 -0
  119. package/dist/contract/file/files-unavailable.errors.d.mts +8 -0
  120. package/dist/contract/file/files-unavailable.errors.mjs +4 -0
  121. package/dist/contract/file/invalid-file-request.errors.d.mts +9 -0
  122. package/dist/contract/file/invalid-file-request.errors.mjs +7 -0
  123. package/dist/contract/file/rpc/file-rpc.contract.d.mts +88 -0
  124. package/dist/contract/file/rpc/file-rpc.contract.mjs +117 -0
  125. package/dist/contract/file/rpc/file-too-large.errors.d.mts +13 -0
  126. package/dist/contract/file/rpc/file-too-large.errors.mjs +11 -0
  127. package/dist/contract/file/rpc/rpc-file-clients.layer.d.mts +10 -0
  128. package/dist/contract/file/rpc/rpc-file-clients.layer.mjs +95 -0
  129. package/dist/contract/fork/fork-rpc.contract.d.mts +40 -0
  130. package/dist/contract/fork/fork-rpc.contract.mjs +26 -0
  131. package/dist/contract/history/actor-journal.service.d.mts +58 -0
  132. package/dist/contract/history/actor-journal.service.mjs +67 -0
  133. package/dist/contract/history/history-entry.pure.d.mts +79 -0
  134. package/dist/contract/history/history-entry.pure.mjs +95 -0
  135. package/dist/contract/hosted/handler-failed.errors.d.mts +16 -0
  136. package/dist/contract/hosted/handler-failed.errors.mjs +14 -0
  137. package/dist/contract/hosted/handler-failure.pure.d.mts +21 -0
  138. package/dist/contract/hosted/handler-failure.pure.mjs +86 -0
  139. package/dist/contract/hosted/hosted-actor.service.d.mts +23 -0
  140. package/dist/contract/hosted/hosted-actor.service.mjs +64 -0
  141. package/dist/contract/hosted/hosted-command.service.d.mts +20 -0
  142. package/dist/contract/hosted/hosted-command.service.mjs +88 -0
  143. package/dist/contract/hosted/hosted-create.service.d.mts +17 -0
  144. package/dist/contract/hosted/hosted-create.service.mjs +67 -0
  145. package/dist/contract/hosted/hosted-error.contract.d.mts +11 -0
  146. package/dist/contract/hosted/hosted-error.contract.mjs +1 -0
  147. package/dist/contract/hosted/hosted-failure.schema.d.mts +18 -0
  148. package/dist/contract/hosted/hosted-failure.schema.mjs +31 -0
  149. package/dist/contract/hosted/hosted-outcome.contract.d.mts +18 -0
  150. package/dist/contract/hosted/hosted-outcome.contract.mjs +1 -0
  151. package/dist/contract/hosted/hosted-query.service.d.mts +16 -0
  152. package/dist/contract/hosted/hosted-query.service.mjs +42 -0
  153. package/dist/contract/hosted/hosted-request.pure.d.mts +61 -0
  154. package/dist/contract/hosted/hosted-request.pure.mjs +91 -0
  155. package/dist/contract/job/job-id.pure.d.mts +11 -0
  156. package/dist/contract/job/job-id.pure.mjs +20 -0
  157. package/dist/contract/job/job-patches.contract.d.mts +32 -0
  158. package/dist/contract/job/job-patches.contract.mjs +45 -0
  159. package/dist/contract/job/job-signal.schema.d.mts +13 -0
  160. package/dist/contract/job/job-signal.schema.mjs +16 -0
  161. package/dist/contract/job/reserved-payload-field.errors.d.mts +10 -0
  162. package/dist/contract/job/reserved-payload-field.errors.mjs +8 -0
  163. package/dist/contract/job/started-job.schema.d.mts +7 -0
  164. package/dist/contract/job/started-job.schema.mjs +8 -0
  165. package/dist/contract/json-codec.pure.d.mts +7 -0
  166. package/dist/contract/json-codec.pure.mjs +14 -0
  167. package/dist/contract/room.contract.d.mts +75 -0
  168. package/dist/contract/room.contract.mjs +36 -0
  169. package/dist/contract/secret/actor-secrets.adapter.d.mts +33 -0
  170. package/dist/contract/secret/actor-secrets.adapter.mjs +38 -0
  171. package/dist/contract/secret/invalid-secret-name.errors.d.mts +10 -0
  172. package/dist/contract/secret/invalid-secret-name.errors.mjs +8 -0
  173. package/dist/contract/secret/secret-unavailable.errors.d.mts +11 -0
  174. package/dist/contract/secret/secret-unavailable.errors.mjs +10 -0
  175. package/dist/contract/secret/secret.schema.d.mts +25 -0
  176. package/dist/contract/secret/secret.schema.mjs +34 -0
  177. package/dist/contract/spend/billing-unavailable.errors.d.mts +12 -0
  178. package/dist/contract/spend/billing-unavailable.errors.mjs +8 -0
  179. package/dist/contract/spend/spend-cap-reached.errors.d.mts +17 -0
  180. package/dist/contract/spend/spend-cap-reached.errors.mjs +15 -0
  181. package/dist/contract/state/actor-state.pure.d.mts +38 -0
  182. package/dist/contract/state/actor-state.pure.mjs +153 -0
  183. package/dist/contract/state/actor-state.service.d.mts +45 -0
  184. package/dist/contract/state/actor-state.service.mjs +18 -0
  185. package/dist/contract/state/state-migration.pure.d.mts +11 -0
  186. package/dist/contract/state/state-migration.pure.mjs +23 -0
  187. package/dist/contract/state/state-read.pure.d.mts +12 -0
  188. package/dist/contract/state/state-read.pure.mjs +22 -0
  189. package/dist/contract/state/state-unreadable.errors.d.mts +9 -0
  190. package/dist/contract/state/state-unreadable.errors.mjs +7 -0
  191. package/dist/host/actor/actor-database.service.d.mts +46 -0
  192. package/dist/host/actor/actor-database.service.mjs +112 -0
  193. package/dist/host/actor/actor-exclusive.pure.d.mts +7 -0
  194. package/dist/host/actor/actor-exclusive.pure.mjs +16 -0
  195. package/dist/host/actor/actor-records.sql.d.mts +29 -0
  196. package/dist/host/actor/actor-records.sql.mjs +26 -0
  197. package/dist/host/actor/reserved-name.errors.d.mts +10 -0
  198. package/dist/host/actor/reserved-name.errors.mjs +8 -0
  199. package/dist/host/actor/reserved-names.pure.d.mts +15 -0
  200. package/dist/host/actor/reserved-names.pure.mjs +20 -0
  201. package/dist/host/actor/room.actor.d.mts +4 -0
  202. package/dist/host/actor/room.actor.mjs +36 -0
  203. package/dist/host/blob/blob-frames.pure.d.mts +7 -0
  204. package/dist/host/blob/blob-frames.pure.mjs +28 -0
  205. package/dist/host/blob/blob-grant.schema.d.mts +14 -0
  206. package/dist/host/blob/blob-grant.schema.mjs +15 -0
  207. package/dist/host/blob/blob-grants.service.d.mts +28 -0
  208. package/dist/host/blob/blob-grants.service.mjs +129 -0
  209. package/dist/host/blob/blob-keyring.service.d.mts +18 -0
  210. package/dist/host/blob/blob-keyring.service.mjs +4 -0
  211. package/dist/host/blob/blob-range.pure.d.mts +13 -0
  212. package/dist/host/blob/blob-range.pure.mjs +23 -0
  213. package/dist/host/blob/blob-sealing.contract.d.mts +37 -0
  214. package/dist/host/blob/blob-sealing.contract.mjs +1 -0
  215. package/dist/host/blob/blob-sealing.service.d.mts +11 -0
  216. package/dist/host/blob/blob-sealing.service.mjs +16 -0
  217. package/dist/host/blob/export/blob-archive.sql.d.mts +21 -0
  218. package/dist/host/blob/export/blob-archive.sql.mjs +75 -0
  219. package/dist/host/blob/export/blob-export-holds.sql.d.mts +49 -0
  220. package/dist/host/blob/export/blob-export-holds.sql.mjs +25 -0
  221. package/dist/host/blob/plain-blob-sealing.pure.d.mts +5 -0
  222. package/dist/host/blob/plain-blob-sealing.pure.mjs +55 -0
  223. package/dist/host/blob/reference/blob-catalog.sql.d.mts +40 -0
  224. package/dist/host/blob/reference/blob-catalog.sql.mjs +145 -0
  225. package/dist/host/blob/reference/blob-coordinator.pure.d.mts +10 -0
  226. package/dist/host/blob/reference/blob-coordinator.pure.mjs +153 -0
  227. package/dist/host/blob/reference/blob-file-page.sql.d.mts +13 -0
  228. package/dist/host/blob/reference/blob-file-page.sql.mjs +21 -0
  229. package/dist/host/blob/reference/blob-forks.sql.d.mts +21 -0
  230. package/dist/host/blob/reference/blob-forks.sql.mjs +40 -0
  231. package/dist/host/blob/reference/blob-lineage.sql.d.mts +14 -0
  232. package/dist/host/blob/reference/blob-lineage.sql.mjs +24 -0
  233. package/dist/host/blob/reference/blob-reads.pure.d.mts +15 -0
  234. package/dist/host/blob/reference/blob-reads.pure.mjs +97 -0
  235. package/dist/host/blob/reference/blob-receipts.sql.d.mts +71 -0
  236. package/dist/host/blob/reference/blob-receipts.sql.mjs +176 -0
  237. package/dist/host/blob/reference/blob-transfer-adopt.pure.d.mts +21 -0
  238. package/dist/host/blob/reference/blob-transfer-adopt.pure.mjs +68 -0
  239. package/dist/host/blob/reference/blob-transfer-fork.pure.d.mts +15 -0
  240. package/dist/host/blob/reference/blob-transfer-fork.pure.mjs +125 -0
  241. package/dist/host/blob/reference/blob-transfer-upkeep.pure.d.mts +18 -0
  242. package/dist/host/blob/reference/blob-transfer-upkeep.pure.mjs +54 -0
  243. package/dist/host/blob/reference/blob-transfer.pure.d.mts +85 -0
  244. package/dist/host/blob/reference/blob-transfer.pure.mjs +1 -0
  245. package/dist/host/blob/sealed-blob-sealing.pure.d.mts +10 -0
  246. package/dist/host/blob/sealed-blob-sealing.pure.mjs +130 -0
  247. package/dist/host/blob/stream/blob-directory.pure.d.mts +18 -0
  248. package/dist/host/blob/stream/blob-directory.pure.mjs +84 -0
  249. package/dist/host/blob/stream/blob-length.pure.d.mts +9 -0
  250. package/dist/host/blob/stream/blob-length.pure.mjs +19 -0
  251. package/dist/host/blob/stream/blob-writing.pure.d.mts +8 -0
  252. package/dist/host/blob/stream/blob-writing.pure.mjs +15 -0
  253. package/dist/host/command/batch/command-batch.sql.d.mts +61 -0
  254. package/dist/host/command/batch/command-batch.sql.mjs +100 -0
  255. package/dist/host/command/command-context.adapter.d.mts +47 -0
  256. package/dist/host/command/command-context.adapter.mjs +90 -0
  257. package/dist/host/command/command-id-age.pure.d.mts +13 -0
  258. package/dist/host/command/command-id-age.pure.mjs +31 -0
  259. package/dist/host/command/command-id-reuse.pure.d.mts +28 -0
  260. package/dist/host/command/command-id-reuse.pure.mjs +38 -0
  261. package/dist/host/command/command-id-reused.errors.d.mts +13 -0
  262. package/dist/host/command/command-id-reused.errors.mjs +11 -0
  263. package/dist/host/command/command-journal.sql.d.mts +84 -0
  264. package/dist/host/command/command-journal.sql.mjs +74 -0
  265. package/dist/host/command/command-rejected.errors.d.mts +8 -0
  266. package/dist/host/command/command-rejected.errors.mjs +4 -0
  267. package/dist/host/command/command-replay.service.d.mts +62 -0
  268. package/dist/host/command/command-replay.service.mjs +140 -0
  269. package/dist/host/command/command-reply.pure.d.mts +8 -0
  270. package/dist/host/command/command-reply.pure.mjs +12 -0
  271. package/dist/host/command/command-runner.service.d.mts +68 -0
  272. package/dist/host/command/command-runner.service.mjs +215 -0
  273. package/dist/host/command/files/command-file-inputs.sql.d.mts +51 -0
  274. package/dist/host/command/files/command-file-inputs.sql.mjs +59 -0
  275. package/dist/host/command/history-pruned.errors.d.mts +10 -0
  276. package/dist/host/command/history-pruned.errors.mjs +8 -0
  277. package/dist/host/command/replay/replay-cursor-stalled.errors.d.mts +9 -0
  278. package/dist/host/command/replay/replay-cursor-stalled.errors.mjs +7 -0
  279. package/dist/host/command/replay/replay-cursor.pure.d.mts +7 -0
  280. package/dist/host/command/replay/replay-cursor.pure.mjs +12 -0
  281. package/dist/host/computer/computer-steps.sql.d.mts +14 -0
  282. package/dist/host/computer/computer-steps.sql.mjs +76 -0
  283. package/dist/host/computer/job-computers.service.d.mts +20 -0
  284. package/dist/host/computer/job-computers.service.mjs +59 -0
  285. package/dist/host/computer/local-computer-files.layer.d.mts +11 -0
  286. package/dist/host/computer/local-computer-files.layer.mjs +69 -0
  287. package/dist/host/computer/local-computer-log.layer.d.mts +23 -0
  288. package/dist/host/computer/local-computer-log.layer.mjs +64 -0
  289. package/dist/host/computer/local-computer-records.layer.d.mts +190 -0
  290. package/dist/host/computer/local-computer-records.layer.mjs +99 -0
  291. package/dist/host/computer/local-computer.schema.d.mts +69 -0
  292. package/dist/host/computer/local-computer.schema.mjs +29 -0
  293. package/dist/host/computer/local-computers.adapter.d.mts +18 -0
  294. package/dist/host/computer/local-computers.adapter.mjs +248 -0
  295. package/dist/host/computer/local-step.layer.d.mts +30 -0
  296. package/dist/host/computer/local-step.layer.mjs +119 -0
  297. package/dist/host/file/actor-file-storage.sql.d.mts +15 -0
  298. package/dist/host/file/actor-file-storage.sql.mjs +82 -0
  299. package/dist/host/file/actor-files.sql.d.mts +9 -0
  300. package/dist/host/file/actor-files.sql.mjs +3 -0
  301. package/dist/host/file/blob-home-lock.pure.d.mts +8 -0
  302. package/dist/host/file/blob-home-lock.pure.mjs +10 -0
  303. package/dist/host/file/blob-home.sql.d.mts +19 -0
  304. package/dist/host/file/blob-home.sql.mjs +30 -0
  305. package/dist/host/file/local-blob-home.service.d.mts +16 -0
  306. package/dist/host/file/local-blob-home.service.mjs +43 -0
  307. package/dist/host/file/local-blob-owner.sql.d.mts +30 -0
  308. package/dist/host/file/local-blob-owner.sql.mjs +68 -0
  309. package/dist/host/file/local-file-upkeep.pure.d.mts +12 -0
  310. package/dist/host/file/local-file-upkeep.pure.mjs +41 -0
  311. package/dist/host/file/replay-file-storage.sql.d.mts +7 -0
  312. package/dist/host/file/replay-file-storage.sql.mjs +26 -0
  313. package/dist/host/fork/actor-fork.sql.d.mts +52 -0
  314. package/dist/host/fork/actor-fork.sql.mjs +42 -0
  315. package/dist/host/fork/fork-computers.adapter.d.mts +43 -0
  316. package/dist/host/fork/fork-computers.adapter.mjs +193 -0
  317. package/dist/host/hash/blob-hashing.service.d.mts +10 -0
  318. package/dist/host/hash/blob-hashing.service.mjs +4 -0
  319. package/dist/host/job/job-durables.sql.d.mts +44 -0
  320. package/dist/host/job/job-durables.sql.mjs +136 -0
  321. package/dist/host/job/job-engine.adapter.d.mts +33 -0
  322. package/dist/host/job/job-engine.adapter.mjs +258 -0
  323. package/dist/host/job/job-journal.sql.d.mts +85 -0
  324. package/dist/host/job/job-journal.sql.mjs +109 -0
  325. package/dist/host/job/job-results.service.d.mts +37 -0
  326. package/dist/host/job/job-results.service.mjs +63 -0
  327. package/dist/host/job/job-runs.pure.d.mts +103 -0
  328. package/dist/host/job/job-runs.pure.mjs +193 -0
  329. package/dist/host/job/undelivered-result.pure.d.mts +49 -0
  330. package/dist/host/job/undelivered-result.pure.mjs +147 -0
  331. package/dist/host/layout/actor-layout.sql.d.mts +8 -0
  332. package/dist/host/layout/actor-layout.sql.mjs +33 -0
  333. package/dist/host/layout/layout-version.errors.d.mts +10 -0
  334. package/dist/host/layout/layout-version.errors.mjs +8 -0
  335. package/dist/host/layout/layout-version.pure.d.mts +10 -0
  336. package/dist/host/layout/layout-version.pure.mjs +14 -0
  337. package/dist/host/migration/actor-migrations.service.d.mts +46 -0
  338. package/dist/host/migration/actor-migrations.service.mjs +143 -0
  339. package/dist/host/migration/migration-edited.errors.d.mts +9 -0
  340. package/dist/host/migration/migration-edited.errors.mjs +7 -0
  341. package/dist/host/migration/migration-failed.errors.d.mts +12 -0
  342. package/dist/host/migration/migration-failed.errors.mjs +10 -0
  343. package/dist/host/migration/migration-failure.pure.d.mts +9 -0
  344. package/dist/host/migration/migration-failure.pure.mjs +19 -0
  345. package/dist/host/migration/migration-hasher.adapter.d.mts +15 -0
  346. package/dist/host/migration/migration-hasher.adapter.mjs +40 -0
  347. package/dist/host/migration/migration-missing.errors.d.mts +9 -0
  348. package/dist/host/migration/migration-missing.errors.mjs +7 -0
  349. package/dist/host/migration/migration-plan.pure.d.mts +20 -0
  350. package/dist/host/migration/migration-plan.pure.mjs +32 -0
  351. package/dist/host/outbox/actor-outbox.sql.d.mts +33 -0
  352. package/dist/host/outbox/actor-outbox.sql.mjs +28 -0
  353. package/dist/host/outbox/outbox-acknowledgements.sql.d.mts +12 -0
  354. package/dist/host/outbox/outbox-acknowledgements.sql.mjs +47 -0
  355. package/dist/host/outbox/outbox-runner.service.d.mts +37 -0
  356. package/dist/host/outbox/outbox-runner.service.mjs +155 -0
  357. package/dist/host/query/query-policy.pure.d.mts +15 -0
  358. package/dist/host/query/query-policy.pure.mjs +12 -0
  359. package/dist/host/query/query-runner.service.d.mts +42 -0
  360. package/dist/host/query/query-runner.service.mjs +72 -0
  361. package/dist/host/sqlite/actor-connections.pure.d.mts +26 -0
  362. package/dist/host/sqlite/actor-connections.pure.mjs +4 -0
  363. package/dist/host/sqlite/sqlite-connection.adapter.d.mts +22 -0
  364. package/dist/host/sqlite/sqlite-connection.adapter.mjs +151 -0
  365. package/dist/host/sqlite/sqlite-driver.service.d.mts +33 -0
  366. package/dist/host/sqlite/sqlite-driver.service.mjs +88 -0
  367. package/dist/host/sqlite/sqlite-parameters.pure.d.mts +5 -0
  368. package/dist/host/sqlite/sqlite-parameters.pure.mjs +21 -0
  369. package/dist/host/sqlite/sqlite-reason.pure.d.mts +8 -0
  370. package/dist/host/sqlite/sqlite-reason.pure.mjs +13 -0
  371. package/dist/host/timer/actor-timers.sql.d.mts +32 -0
  372. package/dist/host/timer/actor-timers.sql.mjs +8 -0
  373. package/dist/host/timer/timer-runner.service.d.mts +26 -0
  374. package/dist/host/timer/timer-runner.service.mjs +68 -0
  375. package/dist/host/upkeep/actor-due.sql.d.mts +26 -0
  376. package/dist/host/upkeep/actor-due.sql.mjs +43 -0
  377. package/dist/host/upkeep/actor-upkeep.service.d.mts +55 -0
  378. package/dist/host/upkeep/actor-upkeep.service.mjs +218 -0
  379. package/dist/host/upkeep/execution-authority.pure.d.mts +19 -0
  380. package/dist/host/upkeep/execution-authority.pure.mjs +10 -0
  381. package/dist/runtime/akter-local.layer.d.mts +28 -0
  382. package/dist/runtime/akter-local.layer.mjs +24 -0
  383. package/dist/runtime/akter.layer.d.mts +91 -0
  384. package/dist/runtime/akter.layer.mjs +99 -0
  385. package/dist/runtime/blob-hashing.layer.d.mts +4 -0
  386. package/dist/runtime/blob-hashing.layer.mjs +15 -0
  387. package/dist/runtime/hosted-environment.layer.d.mts +34 -0
  388. package/dist/runtime/hosted-environment.layer.mjs +40 -0
  389. package/dist/runtime/http-server.layer.d.mts +9 -0
  390. package/dist/runtime/http-server.layer.mjs +15 -0
  391. package/dist/runtime/local-actor-engine.layer.d.mts +10 -0
  392. package/dist/runtime/local-actor-engine.layer.mjs +14 -0
  393. package/dist/runtime/local-engine.layer.d.mts +15 -0
  394. package/dist/runtime/local-engine.layer.mjs +14 -0
  395. package/dist/runtime/local-environments.layer.d.mts +24 -0
  396. package/dist/runtime/local-environments.layer.mjs +159 -0
  397. package/dist/runtime/local-file-clients.layer.d.mts +13 -0
  398. package/dist/runtime/local-file-clients.layer.mjs +78 -0
  399. package/dist/runtime/local-job-runtime.layer.d.mts +19 -0
  400. package/dist/runtime/local-job-runtime.layer.mjs +21 -0
  401. package/dist/serve/archive/archived-actors.layer.d.mts +17 -0
  402. package/dist/serve/archive/archived-actors.layer.mjs +84 -0
  403. package/dist/serve/archive/archived-store.layer.d.mts +12 -0
  404. package/dist/serve/archive/archived-store.layer.mjs +40 -0
  405. package/dist/serve/engine/actor-engine.layer.d.mts +8 -0
  406. package/dist/serve/engine/actor-engine.layer.mjs +30 -0
  407. package/dist/serve/engine/actor-fork.service.d.mts +63 -0
  408. package/dist/serve/engine/actor-fork.service.mjs +277 -0
  409. package/dist/serve/engine/actor-holding.pure.d.mts +7 -0
  410. package/dist/serve/engine/actor-holding.pure.mjs +9 -0
  411. package/dist/serve/engine/actor-host.service.d.mts +66 -0
  412. package/dist/serve/engine/actor-host.service.mjs +209 -0
  413. package/dist/serve/engine/actor-location.service.d.mts +38 -0
  414. package/dist/serve/engine/actor-location.service.mjs +109 -0
  415. package/dist/serve/engine/actor-residents.pure.d.mts +92 -0
  416. package/dist/serve/engine/actor-residents.pure.mjs +201 -0
  417. package/dist/serve/engine/actor-shard.pure.d.mts +4 -0
  418. package/dist/serve/engine/actor-shard.pure.mjs +8 -0
  419. package/dist/serve/engine/actor-state.pure.d.mts +17 -0
  420. package/dist/serve/engine/actor-state.pure.mjs +20 -0
  421. package/dist/serve/engine/actors-not-hosted.errors.d.mts +9 -0
  422. package/dist/serve/engine/actors-not-hosted.errors.mjs +7 -0
  423. package/dist/serve/engine/job-runtime.layer.d.mts +6 -0
  424. package/dist/serve/engine/job-runtime.layer.mjs +5 -0
  425. package/dist/serve/environment/environment-already-exists.errors.d.mts +10 -0
  426. package/dist/serve/environment/environment-already-exists.errors.mjs +9 -0
  427. package/dist/serve/environment/environment-in-use.errors.d.mts +10 -0
  428. package/dist/serve/environment/environment-in-use.errors.mjs +14 -0
  429. package/dist/serve/environment/environment-not-found.errors.d.mts +10 -0
  430. package/dist/serve/environment/environment-not-found.errors.mjs +9 -0
  431. package/dist/serve/environment/environment-records.sql.d.mts +92 -0
  432. package/dist/serve/environment/environment-records.sql.mjs +59 -0
  433. package/dist/serve/environment/environment-store.sql.d.mts +38 -0
  434. package/dist/serve/environment/environment-store.sql.mjs +78 -0
  435. package/dist/serve/environment/local-environment.schema.d.mts +38 -0
  436. package/dist/serve/environment/local-environment.schema.mjs +43 -0
  437. package/dist/serve/environment/local-environments.service.d.mts +44 -0
  438. package/dist/serve/environment/local-environments.service.mjs +196 -0
  439. package/dist/serve/environment/promotion-notice.pure.d.mts +22 -0
  440. package/dist/serve/environment/promotion-notice.pure.mjs +30 -0
  441. package/dist/serve/environment/snapshot-operations.sql.d.mts +32 -0
  442. package/dist/serve/environment/snapshot-operations.sql.mjs +131 -0
  443. package/dist/serve/environment/store-snapshot.sql.d.mts +32 -0
  444. package/dist/serve/environment/store-snapshot.sql.mjs +74 -0
  445. package/dist/serve/erasure/local-actor-erasure.service.d.mts +26 -0
  446. package/dist/serve/erasure/local-actor-erasure.service.mjs +102 -0
  447. package/dist/serve/history/actor-host-runners.service.d.mts +23 -0
  448. package/dist/serve/history/actor-host-runners.service.mjs +35 -0
  449. package/dist/serve/hosted/hosted-app-build.errors.d.mts +13 -0
  450. package/dist/serve/hosted/hosted-app-build.errors.mjs +9 -0
  451. package/dist/serve/hosted/hosted-app-checks.layer.d.mts +15 -0
  452. package/dist/serve/hosted/hosted-app-checks.layer.mjs +32 -0
  453. package/dist/serve/hosted/hosted-file-forward.layer.d.mts +22 -0
  454. package/dist/serve/hosted/hosted-file-forward.layer.mjs +42 -0
  455. package/dist/serve/hosted/hosted-file-rpcs.layer.d.mts +25 -0
  456. package/dist/serve/hosted/hosted-file-rpcs.layer.mjs +82 -0
  457. package/dist/serve/hosted/hosted-file-server.layer.d.mts +18 -0
  458. package/dist/serve/hosted/hosted-file-server.layer.mjs +33 -0
  459. package/dist/serve/hosted/hosted-files.layer.d.mts +32 -0
  460. package/dist/serve/hosted/hosted-files.layer.mjs +55 -0
  461. package/dist/serve/hosted/hosted-runtime.layer.d.mts +42 -0
  462. package/dist/serve/hosted/hosted-runtime.layer.mjs +48 -0
  463. package/dist/serve/hosted/hosted-runtime.service.d.mts +77 -0
  464. package/dist/serve/hosted/hosted-runtime.service.mjs +74 -0
  465. package/dist/serve/hosted/hosted-secrets.layer.d.mts +10 -0
  466. package/dist/serve/hosted/hosted-secrets.layer.mjs +28 -0
  467. package/dist/serve/http/loopback-host.pure.d.mts +11 -0
  468. package/dist/serve/http/loopback-host.pure.mjs +29 -0
  469. package/dist/serve/inspect/actor-inspection.schema.d.mts +119 -0
  470. package/dist/serve/inspect/actor-inspection.schema.mjs +75 -0
  471. package/dist/serve/inspect/actor-inspection.sql.d.mts +12 -0
  472. package/dist/serve/inspect/actor-inspection.sql.mjs +43 -0
  473. package/dist/serve/inspect/inspect.service.d.mts +24 -0
  474. package/dist/serve/inspect/inspect.service.mjs +92 -0
  475. package/dist/serve/inspect/inspector-page.pure.d.mts +2 -0
  476. package/dist/serve/inspect/inspector-page.pure.mjs +155 -0
  477. package/dist/serve/inspect/inspector-wal.pure.d.mts +3 -0
  478. package/dist/serve/inspect/inspector-wal.pure.mjs +19 -0
  479. package/dist/serve/inspect/inspector.handlers.d.mts +5 -0
  480. package/dist/serve/inspect/inspector.handlers.mjs +50 -0
  481. package/dist/serve/inspect/inspector.layer.d.mts +9 -0
  482. package/dist/serve/inspect/inspector.layer.mjs +14 -0
  483. package/dist/serve/live/live-reads.service.d.mts +44 -0
  484. package/dist/serve/live/live-reads.service.mjs +152 -0
  485. package/dist/serve/live/live-tables.sql.d.mts +35 -0
  486. package/dist/serve/live/live-tables.sql.mjs +66 -0
  487. package/dist/serve/live/state-reads.pure.d.mts +11 -0
  488. package/dist/serve/live/state-reads.pure.mjs +7 -0
  489. package/dist/serve/rpc/actor-rpc.handlers.d.mts +24 -0
  490. package/dist/serve/rpc/actor-rpc.handlers.mjs +142 -0
  491. package/dist/serve/rpc/akter-server.layer.d.mts +18 -0
  492. package/dist/serve/rpc/akter-server.layer.mjs +61 -0
  493. package/dist/serve/rpc/computer/computer-copy.layer.d.mts +22 -0
  494. package/dist/serve/rpc/computer/computer-copy.layer.mjs +70 -0
  495. package/dist/serve/rpc/computer/computer-rpc-access.pure.d.mts +29 -0
  496. package/dist/serve/rpc/computer/computer-rpc-access.pure.mjs +46 -0
  497. package/dist/serve/rpc/computer/computer-rpc.layer.d.mts +39 -0
  498. package/dist/serve/rpc/computer/computer-rpc.layer.mjs +84 -0
  499. package/dist/serve/rpc/computer/step-rpc.handlers.d.mts +23 -0
  500. package/dist/serve/rpc/computer/step-rpc.handlers.mjs +43 -0
  501. package/dist/serve/rpc/development-authentication.handlers.d.mts +7 -0
  502. package/dist/serve/rpc/development-authentication.handlers.mjs +19 -0
  503. package/dist/serve/rpc/development-guard.pure.d.mts +10 -0
  504. package/dist/serve/rpc/development-guard.pure.mjs +16 -0
  505. package/dist/serve/rpc/file/file-rpc-access.pure.d.mts +55 -0
  506. package/dist/serve/rpc/file/file-rpc-access.pure.mjs +67 -0
  507. package/dist/serve/rpc/file/file-rpc.layer.d.mts +53 -0
  508. package/dist/serve/rpc/file/file-rpc.layer.mjs +143 -0
  509. package/dist/serve/rpc/file/upload-sessions.pure.d.mts +45 -0
  510. package/dist/serve/rpc/file/upload-sessions.pure.mjs +187 -0
  511. package/dist/serve/rpc/in-process-client.layer.d.mts +13 -0
  512. package/dist/serve/rpc/in-process-client.layer.mjs +34 -0
  513. package/dist/serve/rpc/listener-not-loopback.errors.d.mts +9 -0
  514. package/dist/serve/rpc/listener-not-loopback.errors.mjs +7 -0
  515. package/dist/serve/rpc/ndjson-only.pure.d.mts +5 -0
  516. package/dist/serve/rpc/ndjson-only.pure.mjs +14 -0
  517. package/dist/serve/rpc/served-rpc.layer.d.mts +6 -0
  518. package/dist/serve/rpc/served-rpc.layer.mjs +19 -0
  519. package/dist/serve/store/actor-not-migrated.errors.d.mts +10 -0
  520. package/dist/serve/store/actor-not-migrated.errors.mjs +8 -0
  521. package/dist/serve/store/store-migrations.layer.d.mts +5 -0
  522. package/dist/serve/store/store-migrations.layer.mjs +18 -0
  523. package/dist/serve/store/store-migrations.service.d.mts +26 -0
  524. package/dist/serve/store/store-migrations.service.mjs +47 -0
  525. package/dist/serve/store/store-unreadable.errors.d.mts +9 -0
  526. package/dist/serve/store/store-unreadable.errors.mjs +7 -0
  527. package/dist/serve/verify/verify.layer.d.mts +16 -0
  528. package/dist/serve/verify/verify.layer.mjs +36 -0
  529. package/dist/testing/story-driver.service.d.mts +29 -0
  530. package/dist/testing/story-driver.service.mjs +126 -0
  531. package/dist/testing/story.layer.d.mts +21 -0
  532. package/dist/testing/story.layer.mjs +42 -0
  533. package/package.json +106 -3
  534. package/src/contract/actor/actor-already-exists.errors.ts +8 -0
  535. package/src/contract/actor/actor-definition.pure.ts +157 -0
  536. package/src/contract/actor/actor-erased.errors.ts +8 -0
  537. package/src/contract/actor/actor-names.pure.ts +64 -0
  538. package/src/contract/actor/actor-not-created.errors.ts +8 -0
  539. package/src/contract/actor/actor-not-registered.errors.ts +8 -0
  540. package/src/contract/actor/actor-registry.service.ts +35 -0
  541. package/src/contract/actor/actor.contract.ts +409 -0
  542. package/src/contract/actor/host-interface.pure.ts +60 -0
  543. package/src/contract/actor/reserved-member.errors.ts +9 -0
  544. package/src/contract/akter.service.ts +233 -0
  545. package/src/contract/caller/authentication.api.ts +9 -0
  546. package/src/contract/caller/caller-admission.pure.ts +90 -0
  547. package/src/contract/caller/caller-not-allowed.errors.ts +26 -0
  548. package/src/contract/caller/caller.schema.ts +7 -0
  549. package/src/contract/caller/current-caller.service.ts +7 -0
  550. package/src/contract/caller/principal.schema.ts +13 -0
  551. package/src/contract/caller/unauthenticated.errors.ts +8 -0
  552. package/src/contract/client/actor-client.adapter.ts +217 -0
  553. package/src/contract/client/actor-client.contract.ts +53 -0
  554. package/src/contract/client/actor-rpc.contract.ts +91 -0
  555. package/src/contract/client/actor-unavailable.errors.ts +9 -0
  556. package/src/contract/client/client-failure.contract.ts +53 -0
  557. package/src/contract/client/invalid-request.errors.ts +9 -0
  558. package/src/contract/client/storage-limit.errors.ts +16 -0
  559. package/src/contract/command/command-id-expired.errors.ts +11 -0
  560. package/src/contract/command/command-id.schema.ts +5 -0
  561. package/src/contract/command/command.contract.ts +334 -0
  562. package/src/contract/command/outbox-id.pure.ts +25 -0
  563. package/src/contract/command/outbox.schema.ts +11 -0
  564. package/src/contract/command/timer.schema.ts +21 -0
  565. package/src/contract/computer/checkpoint-expired.errors.ts +12 -0
  566. package/src/contract/computer/computer-client-failure.contract.ts +27 -0
  567. package/src/contract/computer/computer-client.adapter.ts +110 -0
  568. package/src/contract/computer/computer-client.contract.ts +75 -0
  569. package/src/contract/computer/computer-held.errors.ts +10 -0
  570. package/src/contract/computer/computer-limit.errors.ts +11 -0
  571. package/src/contract/computer/computer-lost.errors.ts +10 -0
  572. package/src/contract/computer/computer-not-found.errors.ts +9 -0
  573. package/src/contract/computer/computer.schema.ts +159 -0
  574. package/src/contract/computer/computers-unavailable.errors.ts +9 -0
  575. package/src/contract/computer/files/computer-files.schema.ts +31 -0
  576. package/src/contract/computer/rpc/computer-rpc.contract.ts +140 -0
  577. package/src/contract/computer/step/computer-step.contract.ts +126 -0
  578. package/src/contract/computer/step/computer-step.schema.ts +80 -0
  579. package/src/contract/computer/step/step-failure.schema.ts +26 -0
  580. package/src/contract/computer/step/step-not-found.errors.ts +7 -0
  581. package/src/contract/description/published-contract.pure.ts +187 -0
  582. package/src/contract/file/access/file-access-denied.errors.ts +11 -0
  583. package/src/contract/file/access/file-access.contract.ts +56 -0
  584. package/src/contract/file/actor-files.contract.ts +78 -0
  585. package/src/contract/file/blob-transfer.errors.ts +6 -0
  586. package/src/contract/file/file-client-failure.contract.ts +43 -0
  587. package/src/contract/file/file-client.adapter.ts +45 -0
  588. package/src/contract/file/file-client.contract.ts +24 -0
  589. package/src/contract/file/file-listing.pure.ts +30 -0
  590. package/src/contract/file/file-not-found.errors.ts +6 -0
  591. package/src/contract/file/file-path.pure.ts +37 -0
  592. package/src/contract/file/files-unavailable.errors.ts +8 -0
  593. package/src/contract/file/invalid-file-request.errors.ts +9 -0
  594. package/src/contract/file/rpc/file-rpc.contract.ts +148 -0
  595. package/src/contract/file/rpc/file-too-large.errors.ts +10 -0
  596. package/src/contract/file/rpc/rpc-file-clients.layer.ts +184 -0
  597. package/src/contract/fork/fork-rpc.contract.ts +44 -0
  598. package/src/contract/history/actor-journal.service.ts +195 -0
  599. package/src/contract/history/history-entry.pure.ts +282 -0
  600. package/src/contract/hosted/handler-failed.errors.ts +16 -0
  601. package/src/contract/hosted/handler-failure.pure.ts +161 -0
  602. package/src/contract/hosted/hosted-actor.service.ts +97 -0
  603. package/src/contract/hosted/hosted-command.service.ts +114 -0
  604. package/src/contract/hosted/hosted-create.service.ts +95 -0
  605. package/src/contract/hosted/hosted-error.contract.ts +22 -0
  606. package/src/contract/hosted/hosted-failure.schema.ts +32 -0
  607. package/src/contract/hosted/hosted-outcome.contract.ts +21 -0
  608. package/src/contract/hosted/hosted-query.service.ts +50 -0
  609. package/src/contract/hosted/hosted-request.pure.ts +185 -0
  610. package/src/contract/job/job-id.pure.ts +37 -0
  611. package/src/contract/job/job-patches.contract.ts +86 -0
  612. package/src/contract/job/job-signal.schema.ts +23 -0
  613. package/src/contract/job/reserved-payload-field.errors.ts +10 -0
  614. package/src/contract/job/started-job.schema.ts +9 -0
  615. package/src/contract/json-codec.pure.ts +27 -0
  616. package/src/contract/room.contract.ts +31 -0
  617. package/src/contract/secret/actor-secrets.adapter.ts +87 -0
  618. package/src/contract/secret/invalid-secret-name.errors.ts +10 -0
  619. package/src/contract/secret/secret-unavailable.errors.ts +13 -0
  620. package/src/contract/secret/secret.schema.ts +43 -0
  621. package/src/contract/spend/billing-unavailable.errors.ts +12 -0
  622. package/src/contract/spend/spend-cap-reached.errors.ts +17 -0
  623. package/src/contract/state/actor-state.pure.ts +192 -0
  624. package/src/contract/state/actor-state.service.ts +69 -0
  625. package/src/contract/state/state-migration.pure.ts +57 -0
  626. package/src/contract/state/state-read.pure.ts +40 -0
  627. package/src/contract/state/state-unreadable.errors.ts +9 -0
  628. package/src/host/actor/actor-database.service.ts +145 -0
  629. package/src/host/actor/actor-exclusive.pure.ts +32 -0
  630. package/src/host/actor/actor-records.sql.ts +78 -0
  631. package/src/host/actor/reserved-name.errors.ts +10 -0
  632. package/src/host/actor/reserved-names.pure.ts +40 -0
  633. package/src/host/actor/room.actor.ts +57 -0
  634. package/src/host/blob/blob-frames.pure.ts +52 -0
  635. package/src/host/blob/blob-grant.schema.ts +22 -0
  636. package/src/host/blob/blob-grants.service.ts +197 -0
  637. package/src/host/blob/blob-keyring.service.ts +25 -0
  638. package/src/host/blob/blob-range.pure.ts +33 -0
  639. package/src/host/blob/blob-sealing.contract.ts +46 -0
  640. package/src/host/blob/blob-sealing.service.ts +25 -0
  641. package/src/host/blob/export/blob-archive.sql.ts +153 -0
  642. package/src/host/blob/export/blob-export-holds.sql.ts +91 -0
  643. package/src/host/blob/plain-blob-sealing.pure.ts +70 -0
  644. package/src/host/blob/reference/blob-catalog.sql.ts +339 -0
  645. package/src/host/blob/reference/blob-coordinator.pure.ts +217 -0
  646. package/src/host/blob/reference/blob-file-page.sql.ts +48 -0
  647. package/src/host/blob/reference/blob-forks.sql.ts +125 -0
  648. package/src/host/blob/reference/blob-lineage.sql.ts +63 -0
  649. package/src/host/blob/reference/blob-reads.pure.ts +172 -0
  650. package/src/host/blob/reference/blob-receipts.sql.ts +375 -0
  651. package/src/host/blob/reference/blob-transfer-adopt.pure.ts +127 -0
  652. package/src/host/blob/reference/blob-transfer-fork.pure.ts +174 -0
  653. package/src/host/blob/reference/blob-transfer-upkeep.pure.ts +132 -0
  654. package/src/host/blob/reference/blob-transfer.pure.ts +127 -0
  655. package/src/host/blob/sealed-blob-sealing.pure.ts +163 -0
  656. package/src/host/blob/stream/blob-directory.pure.ts +177 -0
  657. package/src/host/blob/stream/blob-length.pure.ts +40 -0
  658. package/src/host/blob/stream/blob-writing.pure.ts +49 -0
  659. package/src/host/command/batch/command-batch.sql.ts +207 -0
  660. package/src/host/command/command-context.adapter.ts +134 -0
  661. package/src/host/command/command-id-age.pure.ts +54 -0
  662. package/src/host/command/command-id-reuse.pure.ts +90 -0
  663. package/src/host/command/command-id-reused.errors.ts +13 -0
  664. package/src/host/command/command-journal.sql.ts +232 -0
  665. package/src/host/command/command-rejected.errors.ts +8 -0
  666. package/src/host/command/command-replay.service.ts +223 -0
  667. package/src/host/command/command-reply.pure.ts +21 -0
  668. package/src/host/command/command-runner.service.ts +320 -0
  669. package/src/host/command/files/command-file-inputs.sql.ts +114 -0
  670. package/src/host/command/history-pruned.errors.ts +10 -0
  671. package/src/host/command/replay/replay-cursor-stalled.errors.ts +9 -0
  672. package/src/host/command/replay/replay-cursor.pure.ts +19 -0
  673. package/src/host/computer/computer-steps.sql.ts +120 -0
  674. package/src/host/computer/job-computers.service.ts +84 -0
  675. package/src/host/computer/local-computer-files.layer.ts +103 -0
  676. package/src/host/computer/local-computer-log.layer.ts +115 -0
  677. package/src/host/computer/local-computer-records.layer.ts +205 -0
  678. package/src/host/computer/local-computer.schema.ts +36 -0
  679. package/src/host/computer/local-computers.adapter.ts +379 -0
  680. package/src/host/computer/local-step.layer.ts +174 -0
  681. package/src/host/file/actor-file-storage.sql.ts +79 -0
  682. package/src/host/file/actor-files.sql.ts +15 -0
  683. package/src/host/file/blob-home-lock.pure.ts +23 -0
  684. package/src/host/file/blob-home.sql.ts +55 -0
  685. package/src/host/file/local-blob-home.service.ts +71 -0
  686. package/src/host/file/local-blob-owner.sql.ts +89 -0
  687. package/src/host/file/local-file-upkeep.pure.ts +77 -0
  688. package/src/host/file/replay-file-storage.sql.ts +43 -0
  689. package/src/host/fork/actor-fork.sql.ts +110 -0
  690. package/src/host/fork/fork-computers.adapter.ts +366 -0
  691. package/src/host/hash/blob-hashing.service.ts +14 -0
  692. package/src/host/job/job-durables.sql.ts +214 -0
  693. package/src/host/job/job-engine.adapter.ts +420 -0
  694. package/src/host/job/job-journal.sql.ts +257 -0
  695. package/src/host/job/job-results.service.ts +111 -0
  696. package/src/host/job/job-runs.pure.ts +445 -0
  697. package/src/host/job/undelivered-result.pure.ts +265 -0
  698. package/src/host/layout/actor-layout.sql.ts +45 -0
  699. package/src/host/layout/layout-version.errors.ts +10 -0
  700. package/src/host/layout/layout-version.pure.ts +22 -0
  701. package/src/host/migration/actor-migrations.service.ts +159 -0
  702. package/src/host/migration/migration-edited.errors.ts +9 -0
  703. package/src/host/migration/migration-failed.errors.ts +12 -0
  704. package/src/host/migration/migration-failure.pure.ts +28 -0
  705. package/src/host/migration/migration-hasher.adapter.ts +70 -0
  706. package/src/host/migration/migration-missing.errors.ts +9 -0
  707. package/src/host/migration/migration-plan.pure.ts +66 -0
  708. package/src/host/outbox/actor-outbox.sql.ts +98 -0
  709. package/src/host/outbox/outbox-acknowledgements.sql.ts +93 -0
  710. package/src/host/outbox/outbox-runner.service.ts +253 -0
  711. package/src/host/query/query-policy.pure.ts +31 -0
  712. package/src/host/query/query-runner.service.ts +132 -0
  713. package/src/host/sqlite/actor-connections.pure.ts +44 -0
  714. package/src/host/sqlite/sqlite-connection.adapter.ts +260 -0
  715. package/src/host/sqlite/sqlite-driver.service.ts +151 -0
  716. package/src/host/sqlite/sqlite-parameters.pure.ts +28 -0
  717. package/src/host/sqlite/sqlite-reason.pure.ts +19 -0
  718. package/src/host/timer/actor-timers.sql.ts +67 -0
  719. package/src/host/timer/timer-runner.service.ts +117 -0
  720. package/src/host/upkeep/actor-due.sql.ts +71 -0
  721. package/src/host/upkeep/actor-upkeep.service.ts +404 -0
  722. package/src/host/upkeep/execution-authority.pure.ts +37 -0
  723. package/src/runtime/akter-local.layer.ts +49 -0
  724. package/src/runtime/akter.layer.ts +208 -0
  725. package/src/runtime/blob-hashing.layer.ts +21 -0
  726. package/src/runtime/hosted-environment.layer.ts +85 -0
  727. package/src/runtime/http-server.layer.ts +29 -0
  728. package/src/runtime/local-actor-engine.layer.ts +33 -0
  729. package/src/runtime/local-engine.layer.ts +37 -0
  730. package/src/runtime/local-environments.layer.ts +214 -0
  731. package/src/runtime/local-file-clients.layer.ts +112 -0
  732. package/src/runtime/local-job-runtime.layer.ts +38 -0
  733. package/src/serve/archive/archived-actors.layer.ts +97 -0
  734. package/src/serve/archive/archived-store.layer.ts +46 -0
  735. package/src/serve/engine/actor-engine.layer.ts +46 -0
  736. package/src/serve/engine/actor-fork.service.ts +403 -0
  737. package/src/serve/engine/actor-holding.pure.ts +28 -0
  738. package/src/serve/engine/actor-host.service.ts +454 -0
  739. package/src/serve/engine/actor-location.service.ts +219 -0
  740. package/src/serve/engine/actor-residents.pure.ts +500 -0
  741. package/src/serve/engine/actor-shard.pure.ts +13 -0
  742. package/src/serve/engine/actor-state.pure.ts +45 -0
  743. package/src/serve/engine/actors-not-hosted.errors.ts +9 -0
  744. package/src/serve/engine/job-runtime.layer.ts +13 -0
  745. package/src/serve/environment/environment-already-exists.errors.ts +9 -0
  746. package/src/serve/environment/environment-in-use.errors.ts +17 -0
  747. package/src/serve/environment/environment-not-found.errors.ts +9 -0
  748. package/src/serve/environment/environment-records.sql.ts +208 -0
  749. package/src/serve/environment/environment-store.sql.ts +116 -0
  750. package/src/serve/environment/local-environment.schema.ts +79 -0
  751. package/src/serve/environment/local-environments.service.ts +268 -0
  752. package/src/serve/environment/promotion-notice.pure.ts +63 -0
  753. package/src/serve/environment/snapshot-operations.sql.ts +210 -0
  754. package/src/serve/environment/store-snapshot.sql.ts +128 -0
  755. package/src/serve/erasure/local-actor-erasure.service.ts +170 -0
  756. package/src/serve/history/actor-host-runners.service.ts +85 -0
  757. package/src/serve/hosted/hosted-app-build.errors.ts +11 -0
  758. package/src/serve/hosted/hosted-app-checks.layer.ts +74 -0
  759. package/src/serve/hosted/hosted-file-forward.layer.ts +63 -0
  760. package/src/serve/hosted/hosted-file-rpcs.layer.ts +149 -0
  761. package/src/serve/hosted/hosted-file-server.layer.ts +75 -0
  762. package/src/serve/hosted/hosted-files.layer.ts +76 -0
  763. package/src/serve/hosted/hosted-runtime.layer.ts +145 -0
  764. package/src/serve/hosted/hosted-runtime.service.ts +128 -0
  765. package/src/serve/hosted/hosted-secrets.layer.ts +38 -0
  766. package/src/serve/http/loopback-host.pure.ts +67 -0
  767. package/src/serve/inspect/actor-inspection.schema.ts +94 -0
  768. package/src/serve/inspect/actor-inspection.sql.ts +112 -0
  769. package/src/serve/inspect/inspect.service.ts +173 -0
  770. package/src/serve/inspect/inspector-page.pure.ts +159 -0
  771. package/src/serve/inspect/inspector-wal.pure.ts +40 -0
  772. package/src/serve/inspect/inspector.handlers.ts +103 -0
  773. package/src/serve/inspect/inspector.layer.ts +26 -0
  774. package/src/serve/live/live-reads.service.ts +285 -0
  775. package/src/serve/live/live-tables.sql.ts +148 -0
  776. package/src/serve/live/state-reads.pure.ts +22 -0
  777. package/src/serve/rpc/actor-rpc.handlers.ts +242 -0
  778. package/src/serve/rpc/akter-server.layer.ts +119 -0
  779. package/src/serve/rpc/computer/computer-copy.layer.ts +95 -0
  780. package/src/serve/rpc/computer/computer-rpc-access.pure.ts +75 -0
  781. package/src/serve/rpc/computer/computer-rpc.layer.ts +143 -0
  782. package/src/serve/rpc/computer/step-rpc.handlers.ts +84 -0
  783. package/src/serve/rpc/development-authentication.handlers.ts +28 -0
  784. package/src/serve/rpc/development-guard.pure.ts +39 -0
  785. package/src/serve/rpc/file/file-rpc-access.pure.ts +119 -0
  786. package/src/serve/rpc/file/file-rpc.layer.ts +209 -0
  787. package/src/serve/rpc/file/upload-sessions.pure.ts +363 -0
  788. package/src/serve/rpc/in-process-client.layer.ts +62 -0
  789. package/src/serve/rpc/listener-not-loopback.errors.ts +9 -0
  790. package/src/serve/rpc/ndjson-only.pure.ts +33 -0
  791. package/src/serve/rpc/served-rpc.layer.ts +34 -0
  792. package/src/serve/store/actor-not-migrated.errors.ts +10 -0
  793. package/src/serve/store/store-migrations.layer.ts +35 -0
  794. package/src/serve/store/store-migrations.service.ts +76 -0
  795. package/src/serve/store/store-unreadable.errors.ts +9 -0
  796. package/src/serve/verify/verify.layer.ts +77 -0
  797. package/src/testing/story-driver.service.ts +266 -0
  798. package/src/testing/story.layer.ts +99 -0
@@ -0,0 +1,42 @@
1
+ import { refusedActorState, scopeOf } from "../state/actor-state.pure.mjs";
2
+ import { rejectFailedStatement } from "./handler-failure.pure.mjs";
3
+ import { prepare } from "./hosted-request.pure.mjs";
4
+ import { exitCodec } from "../json-codec.pure.mjs";
5
+ import { fileAccessMember } from "../file/access/file-access.contract.mjs";
6
+ import { Context, Effect, Layer, Option, Record, Schema } from "effect";
7
+ // src/contract/hosted/hosted-query.service.ts
8
+ /** The actor's queries, and its `files.authorize` rule as the reserved `akter.files` query when it declares files. */
9
+ const queriesOf = ({ definition, implementation }) => {
10
+ const rule = Option.all({
11
+ declaration: definition.fileAccess,
12
+ handler: Option.map(Option.fromNullishOr(implementation.files), (files) => files.authorize)
13
+ });
14
+ return Option.match(rule, {
15
+ onNone: () => ({
16
+ declarations: definition.queries,
17
+ handlers: implementation.queries ?? {}
18
+ }),
19
+ onSome: ({ declaration, handler }) => ({
20
+ declarations: Record.set(definition.queries, fileAccessMember, declaration),
21
+ handlers: Record.set(implementation.queries ?? {}, fileAccessMember, handler)
22
+ })
23
+ });
24
+ };
25
+ const runQuery = Effect.fn("HostedActor.runQuery")(function* runQuery(parts, request, environment) {
26
+ const prepared = yield* prepare(parts, queriesOf(parts), request);
27
+ const scope = scopeOf({
28
+ environment,
29
+ principal: prepared.principal
30
+ });
31
+ const finished = yield* Effect.exit(parts.provide(prepared.handler(prepared.state, prepared.payload), scope, refusedActorState));
32
+ const exit = yield* rejectFailedStatement(finished, {
33
+ actor: parts.name,
34
+ member: request.member,
35
+ query: true
36
+ });
37
+ return yield* Effect.orDie(Schema.encodeEffect(exitCodec(prepared.declaration))(exit));
38
+ });
39
+ var HostedQuery = class extends Context.Service()("@akterjs/effect/contract/hosted/hosted-query.service/HostedQuery", { make: Effect.succeed({ run: runQuery }) }) {
40
+ static layer = Layer.effect(this, this.make);
41
+ };
42
+ export { HostedQuery };
@@ -0,0 +1,61 @@
1
+ import { ActorState } from "../state/actor-state.service.mjs";
2
+ import { ActorDefinition, CommandScope, Decoded, HostedRequest, HostedResult, Migrations, StateFields, StateMigration, StateSchema } from "../actor/actor.contract.mjs";
3
+ import { Akter } from "../akter.service.mjs";
4
+ import { AnyCommand, AnyQuery, PlainSchema } from "../command/command.contract.mjs";
5
+ import { HostedError } from "./hosted-error.contract.mjs";
6
+ import { InvalidRequestError } from "../client/invalid-request.errors.mjs";
7
+ import { Principal } from "../caller/principal.schema.mjs";
8
+ import { Effect, Option } from "effect";
9
+ type ErasedHandler = (state: StateFields, payload: Decoded) => Effect.Effect<never, never, Akter | ActorState>;
10
+ type ErasedResultHandler = (state: StateFields, payload: Decoded, job: {
11
+ readonly id: string;
12
+ }) => Effect.Effect<never, never, Akter | ActorState>;
13
+ type ErasedQueryHandler = (state: StateFields, payload: Decoded) => Effect.Effect<never, never, Akter>;
14
+ type ErasedCreateHandler = (input: Decoded) => Effect.Effect<StateFields, never, Akter>;
15
+ type ProvideScope = <Success, Failure>(effect: Effect.Effect<Success, Failure, Akter | ActorState>, scope: CommandScope, state: ActorState["Service"]) => Effect.Effect<Success, Failure>;
16
+ interface ErasedImplementation {
17
+ readonly commands: Readonly<Record<string, ErasedHandler>>;
18
+ readonly create?: ErasedCreateHandler;
19
+ readonly files?: {
20
+ readonly authorize: ErasedQueryHandler;
21
+ };
22
+ readonly migrations?: Migrations;
23
+ readonly queries?: Readonly<Record<string, ErasedQueryHandler>>;
24
+ readonly results?: Readonly<Record<string, ErasedResultHandler>>;
25
+ readonly state?: StateMigration<StateFields>;
26
+ }
27
+ interface ErasedSpec {
28
+ readonly definition: ActorDefinition;
29
+ readonly initial: Option.Option<() => StateFields>;
30
+ readonly name: string;
31
+ readonly provide: ProvideScope;
32
+ }
33
+ interface ErasedParts extends ErasedSpec {
34
+ readonly implementation: ErasedImplementation;
35
+ }
36
+ interface Members {
37
+ readonly declarations: Readonly<Record<string, AnyCommand | AnyQuery>>;
38
+ readonly handlers: Readonly<Record<string, ErasedHandler>>;
39
+ }
40
+ interface Prepared {
41
+ readonly declaration: AnyCommand | AnyQuery;
42
+ readonly handler: ErasedHandler;
43
+ readonly payload: Decoded;
44
+ readonly principal: Principal;
45
+ readonly state: StateFields;
46
+ }
47
+ interface Decoding<Target extends PlainSchema> {
48
+ readonly actor: string;
49
+ readonly schema: Target;
50
+ readonly text: string;
51
+ }
52
+ declare const decodeRequest: <Target extends PlainSchema>({ actor, schema, text }: Decoding<Target>) => Effect.Effect<Target["Type"], InvalidRequestError>;
53
+ interface StateSource {
54
+ readonly initial: Option.Option<() => StateFields>;
55
+ readonly name: string;
56
+ readonly state: StateSchema;
57
+ }
58
+ declare const startingState: (source: StateSource, stored: Option.Option<string>) => Effect.Effect<Readonly<Record<string, unknown>>, HostedError, never>;
59
+ declare const prepare: (parts: ErasedParts, members: Members, request: HostedRequest) => Effect.Effect<Prepared, HostedError, never>;
60
+ declare const prepareResult: (parts: ErasedParts, request: HostedResult) => Effect.Effect<Prepared, HostedError, never>;
61
+ export { type ErasedImplementation, type ErasedParts, type ErasedSpec, type Members, type Prepared, type ProvideScope, type StateSource, decodeRequest, prepare, prepareResult, startingState };
@@ -0,0 +1,91 @@
1
+ import { ActorNotCreatedError } from "../actor/actor-not-created.errors.mjs";
2
+ import { admit } from "../caller/caller-admission.pure.mjs";
3
+ import { jobResult } from "../command/command.contract.mjs";
4
+ import { InvalidRequestError } from "../client/invalid-request.errors.mjs";
5
+ import { jsonCodec } from "../json-codec.pure.mjs";
6
+ import { ActorPrincipal } from "../caller/principal.schema.mjs";
7
+ import { Effect, Option, Record, Schema } from "effect";
8
+ // src/contract/hosted/hosted-request.pure.ts
9
+ const decodeRequest = ({ actor, schema, text }) => Schema.decodeEffect(jsonCodec(schema))(text).pipe(Effect.mapError((issue) => InvalidRequestError.make({
10
+ actor,
11
+ message: issue.message
12
+ })));
13
+ const startingState = Effect.fnUntraced(function* startingState(source, stored) {
14
+ if (Option.isSome(stored)) return yield* decodeRequest({
15
+ actor: source.name,
16
+ schema: source.state,
17
+ text: stored.value
18
+ });
19
+ if (Option.isNone(source.initial)) return yield* ActorNotCreatedError.make({ actor: source.name });
20
+ return source.initial.value();
21
+ });
22
+ const prepare = Effect.fnUntraced(function* prepare(parts, members, request) {
23
+ const declaration = Record.get(members.declarations, request.member);
24
+ const handler = Record.get(members.handlers, request.member);
25
+ if (Option.isNone(declaration) || Option.isNone(handler)) return yield* InvalidRequestError.make({
26
+ actor: parts.name,
27
+ message: `${request.member} is not a member`
28
+ });
29
+ const principal = yield* admit({
30
+ actor: parts.name,
31
+ allowed: declaration.value.callers,
32
+ callers: parts.definition.callers,
33
+ member: request.member,
34
+ principal: request.principal
35
+ });
36
+ const payload = yield* decodeRequest({
37
+ actor: parts.name,
38
+ schema: declaration.value.payload,
39
+ text: request.payload
40
+ });
41
+ const state = yield* startingState({
42
+ initial: parts.initial,
43
+ name: parts.name,
44
+ state: parts.definition.state
45
+ }, request.state);
46
+ return {
47
+ declaration: declaration.value,
48
+ handler: handler.value,
49
+ payload,
50
+ principal,
51
+ state
52
+ };
53
+ });
54
+ const prepareResult = Effect.fnUntraced(function* prepareResult(parts, request) {
55
+ const job = Record.get(parts.definition.jobs, request.member);
56
+ const handler = Record.get(parts.implementation.results ?? {}, request.member);
57
+ if (Option.isNone(job) || Option.isNone(handler)) return yield* InvalidRequestError.make({
58
+ actor: parts.name,
59
+ message: `${request.member} is not a job with a result handler`
60
+ });
61
+ const declaration = {
62
+ callers: Option.none(),
63
+ error: Schema.Never,
64
+ payload: jobResult(job.value),
65
+ success: Schema.Void
66
+ };
67
+ const { principal } = yield* decodeRequest({
68
+ actor: parts.name,
69
+ schema: Schema.Struct({ principal: ActorPrincipal }),
70
+ text: request.principal
71
+ });
72
+ const payload = yield* decodeRequest({
73
+ actor: parts.name,
74
+ schema: declaration.payload,
75
+ text: request.payload
76
+ });
77
+ const state = yield* startingState({
78
+ initial: parts.initial,
79
+ name: parts.name,
80
+ state: parts.definition.state
81
+ }, request.state);
82
+ const delivered = (current, result) => handler.value(current, result, { id: request.jobId });
83
+ return {
84
+ declaration,
85
+ handler: delivered,
86
+ payload,
87
+ principal,
88
+ state
89
+ };
90
+ });
91
+ export { decodeRequest, prepare, prepareResult, startingState };
@@ -0,0 +1,11 @@
1
+ import { Option } from "effect";
2
+ interface JobAddress {
3
+ readonly actor: string;
4
+ readonly key: string;
5
+ }
6
+ interface Minting extends JobAddress {
7
+ readonly id: string;
8
+ }
9
+ declare const jobIdOf: ({ actor, id, key }: Minting) => string;
10
+ declare const jobAddress: (jobId: string) => Option.Option<JobAddress>;
11
+ export { type JobAddress, jobAddress, jobIdOf };
@@ -0,0 +1,20 @@
1
+ import { Array, Option, String } from "effect";
2
+ // src/contract/job/job-id.pure.ts
3
+ const separator = "/";
4
+ const addressParts = 3;
5
+ const actorPart = 0;
6
+ const keyPart = 1;
7
+ const jobIdOf = ({ actor, id, key }) => Array.join([
8
+ actor,
9
+ encodeURIComponent(key),
10
+ id
11
+ ], separator);
12
+ const jobAddress = (jobId) => {
13
+ const parts = String.split(jobId, separator);
14
+ if (parts.length !== addressParts) return Option.none();
15
+ return Option.map(Option.all([Array.get(parts, actorPart), Array.get(parts, keyPart)]), ([actor, key]) => ({
16
+ actor,
17
+ key: decodeURIComponent(key)
18
+ }));
19
+ };
20
+ export { jobAddress, jobIdOf };
@@ -0,0 +1,32 @@
1
+ import { Effect } from "effect";
2
+ /**
3
+ * The payload key a job's stored payload carries its patches under: the patches its contract declared when a command
4
+ * started it. A job whose payload has none was started by code without patches.
5
+ */
6
+ declare const patchesKey = "~akter/patches";
7
+ /** Where a decoded payload keeps its patches on the way to the job's run: a symbol, so the run's payload stays its fields. */
8
+ declare const carriedPatches: unique symbol;
9
+ /** A decoded payload, which may carry the patches its start declared. */
10
+ interface CarriedPayload {
11
+ readonly [carriedPatches]?: unknown;
12
+ }
13
+ /**
14
+ * A decoded payload carrying the patches its start declared, hidden from its fields, so the job's run sees exactly the
15
+ * payload it declared and the patches stay out of `Object.keys`, equality and logs.
16
+ */
17
+ declare const carrying: <Fields extends object>({ fields, patches }: {
18
+ readonly fields: Fields;
19
+ readonly patches: readonly string[] | undefined;
20
+ }) => Fields;
21
+ /** Runs a job's `execute` with the patches its stored payload carries. */
22
+ declare const withPatches: <Payload extends CarriedPayload, Success, Failure, Services>(execute: (payload: Payload, executionId: string) => Effect.Effect<Success, Failure, Services>) => (payload: Payload, executionId: string) => Effect.Effect<Success, Failure, Services>;
23
+ /**
24
+ * A job's `patched(name)`: whether the running job was started by code that declared `name` in the job's patches. A
25
+ * job keeps the answer for its whole run, across restarts and deploys, so a job started before a deploy takes the old
26
+ * path to the end.
27
+ */
28
+ declare const patchedOf: ({ patches: declared, tag }: {
29
+ readonly patches: readonly string[];
30
+ readonly tag: string;
31
+ }) => (name: string) => Effect.Effect<boolean>;
32
+ export { carriedPatches, carrying, patchedOf, patchesKey, withPatches };
@@ -0,0 +1,45 @@
1
+ import { Array, Context, Effect, Option, Schema } from "effect";
2
+ // src/contract/job/job-patches.contract.ts
3
+ /**
4
+ * The payload key a job's stored payload carries its patches under: the patches its contract declared when a command
5
+ * started it. A job whose payload has none was started by code without patches.
6
+ */
7
+ const patchesKey = "~akter/patches";
8
+ /** Where a decoded payload keeps its patches on the way to the job's run: a symbol, so the run's payload stays its fields. */
9
+ const carriedPatches = Symbol.for("@akterjs/effect/contract/job/job-patches.contract/carriedPatches");
10
+ const Patches = Schema.Array(Schema.String);
11
+ const isPatches = Schema.is(Patches);
12
+ /** The patches the running job started with; none outside a job's run. */
13
+ const CurrentJobPatches = Context.Reference("@akterjs/effect/contract/job/job-patches.contract/CurrentJobPatches", { defaultValue: Option.none });
14
+ /**
15
+ * A decoded payload carrying the patches its start declared, hidden from its fields, so the job's run sees exactly the
16
+ * payload it declared and the patches stay out of `Object.keys`, equality and logs.
17
+ */
18
+ const carrying = ({ fields, patches }) => {
19
+ if (Array.isReadonlyArrayEmpty(patches ?? [])) return fields;
20
+ return Object.defineProperty(fields, carriedPatches, {
21
+ enumerable: false,
22
+ value: patches
23
+ });
24
+ };
25
+ /** The patches a decoded payload carries, or none for a payload from code without patches. */
26
+ const patchesOf = (payload) => {
27
+ const carried = payload[carriedPatches];
28
+ if (isPatches(carried)) return carried;
29
+ return [];
30
+ };
31
+ /** Runs a job's `execute` with the patches its stored payload carries. */
32
+ const withPatches = (execute) => (payload, executionId) => Effect.provideService(execute(payload, executionId), CurrentJobPatches, Option.some(patchesOf(payload)));
33
+ /**
34
+ * A job's `patched(name)`: whether the running job was started by code that declared `name` in the job's patches. A
35
+ * job keeps the answer for its whole run, across restarts and deploys, so a job started before a deploy takes the old
36
+ * path to the end.
37
+ */
38
+ const patchedOf = ({ patches: declared, tag }) => (name) => Effect.flatMap(CurrentJobPatches, Option.match({
39
+ onNone: () => Effect.die(`${tag}.patched("${name}") runs only inside the job's run`),
40
+ onSome: (patches) => {
41
+ if (!Array.contains(declared, name)) return Effect.die(`${tag} declares no patch "${name}": add it to the job's patches in Akter.job`);
42
+ return Effect.succeed(Array.contains(patches, name));
43
+ }
44
+ }));
45
+ export { carriedPatches, carrying, patchedOf, patchesKey, withPatches };
@@ -0,0 +1,13 @@
1
+ import { Exit, Schema } from "effect";
2
+ /** A job's exit as its journal keeps it: the exit its own schemas encoded, written as JSON text. */
3
+ export declare const StoredExit: Schema.Codec<Exit.Exit<unknown, unknown>, string>;
4
+ /**
5
+ * A signal a command sends one of its own actor's jobs (`Akter.signal`): the job's id, the durable deferred's name and
6
+ * the value as a stored exit. It is written with the command, so a command that rolls back sends nothing.
7
+ */
8
+ export declare const JobSignal: Schema.Struct<{
9
+ readonly deferred: Schema.String;
10
+ readonly exit: Schema.String;
11
+ readonly id: Schema.String;
12
+ }>;
13
+ export type JobSignal = typeof JobSignal.Type;
@@ -0,0 +1,16 @@
1
+ import { Schema } from "effect";
2
+ // src/contract/job/job-signal.schema.ts
3
+ const encodedValue = Schema.UndefinedOr(Schema.Json);
4
+ const exitSchema = Schema.Exit(encodedValue, encodedValue, Schema.Defect());
5
+ /** A job's exit as its journal keeps it: the exit its own schemas encoded, written as JSON text. */
6
+ const StoredExit = Schema.fromJsonString(Schema.toCodecJson(exitSchema));
7
+ /**
8
+ * A signal a command sends one of its own actor's jobs (`Akter.signal`): the job's id, the durable deferred's name and
9
+ * the value as a stored exit. It is written with the command, so a command that rolls back sends nothing.
10
+ */
11
+ const JobSignal = Schema.Struct({
12
+ deferred: Schema.String,
13
+ exit: Schema.String,
14
+ id: Schema.String
15
+ });
16
+ export { JobSignal, StoredExit };
@@ -0,0 +1,10 @@
1
+ import { Schema } from "effect";
2
+ declare const ReservedPayloadFieldError_base: Schema.Class<ReservedPayloadFieldError, Schema.TaggedStruct<"ReservedPayloadFieldError", {
3
+ readonly field: Schema.String;
4
+ readonly job: Schema.String;
5
+ }>, import("effect/Cause").YieldableError & {
6
+ readonly brand: unique symbol;
7
+ }>;
8
+ /** A job's payload declares a field Akter keeps for itself, such as the patches its start stored (`~akter/patches`). */
9
+ export declare class ReservedPayloadFieldError extends ReservedPayloadFieldError_base {}
10
+ export {};
@@ -0,0 +1,8 @@
1
+ import { Schema } from "effect";
2
+ // src/contract/job/reserved-payload-field.errors.ts
3
+ /** A job's payload declares a field Akter keeps for itself, such as the patches its start stored (`~akter/patches`). */
4
+ var ReservedPayloadFieldError = class extends Schema.TaggedError()("ReservedPayloadFieldError", {
5
+ field: Schema.String,
6
+ job: Schema.String
7
+ }) {};
8
+ export { ReservedPayloadFieldError };
@@ -0,0 +1,7 @@
1
+ import { Schema } from "effect";
2
+ export declare const StartedJob: Schema.Struct<{
3
+ readonly id: Schema.String;
4
+ readonly job: Schema.String;
5
+ readonly payload: Schema.String;
6
+ }>;
7
+ export type StartedJob = typeof StartedJob.Type;
@@ -0,0 +1,8 @@
1
+ import { Schema } from "effect";
2
+ // src/contract/job/started-job.schema.ts
3
+ const StartedJob = Schema.Struct({
4
+ id: Schema.String,
5
+ job: Schema.String,
6
+ payload: Schema.String
7
+ });
8
+ export { StartedJob };
@@ -0,0 +1,7 @@
1
+ import { Decoded } from "./actor/actor.contract.mjs";
2
+ import { AnyCommand, AnyQuery, PlainSchema } from "./command/command.contract.mjs";
3
+ import { Exit, Schema } from "effect";
4
+ type ExitCodec = Schema.Codec<Exit.Exit<Decoded, Decoded>, string>;
5
+ declare const jsonCodec: <Target extends PlainSchema>(schema: Target) => Schema.Codec<Target["Type"], string>;
6
+ declare const exitCodec: (declaration: AnyCommand | AnyQuery) => ExitCodec;
7
+ export { exitCodec, jsonCodec };
@@ -0,0 +1,14 @@
1
+ import { Option, Schema } from "effect";
2
+ // src/contract/json-codec.pure.ts
3
+ const jsonCodec = (schema) => Schema.fromJsonString(Schema.toCodecJson(schema));
4
+ /**
5
+ * Exit codecs by declaration. Building one derives the JSON codec of the whole Exit schema, about 25 times the cost of
6
+ * encoding a reply with it, and the engine encodes every command's and query's reply.
7
+ */
8
+ const exitCodecs = /* @__PURE__ */ new WeakMap();
9
+ const exitCodec = (declaration) => Option.getOrElse(Option.fromUndefinedOr(exitCodecs.get(declaration)), () => {
10
+ const codec = jsonCodec(Schema.Exit(declaration.success, declaration.error, Schema.Defect()));
11
+ exitCodecs.set(declaration, codec);
12
+ return codec;
13
+ });
14
+ export { exitCodec, jsonCodec };
@@ -0,0 +1,75 @@
1
+ import { Command, Query } from "./command/command.contract.mjs";
2
+ import { ActorHistory } from "./history/actor-journal.service.mjs";
3
+ import { FileAccess } from "./file/access/file-access.contract.mjs";
4
+ import "./akter.service.mjs";
5
+ import { Actor, DefinitionOf } from "./actor/actor.contract.mjs";
6
+ import { Schema } from "effect";
7
+ declare const RoomId: Schema.brand<Schema.String, "RoomId">;
8
+ type RoomId = typeof RoomId.Type;
9
+ declare const Message: Schema.Struct<{
10
+ readonly at: Schema.Int;
11
+ readonly author: Schema.String;
12
+ readonly id: Schema.String;
13
+ readonly text: Schema.String;
14
+ }>;
15
+ type Message = typeof Message.Type;
16
+ declare const NotMemberError_base: Schema.Class<NotMemberError, Schema.TaggedStruct<"NotMemberError", {}>, import("effect/Cause").YieldableError & {
17
+ readonly brand: unique symbol;
18
+ }>;
19
+ declare class NotMemberError extends NotMemberError_base {}
20
+ declare const Room: Actor<"Room", DefinitionOf<{
21
+ readonly commands: {
22
+ join: Command<Schema.Void, Schema.Void, Schema.Never, never>;
23
+ post: Command<Schema.Struct<{
24
+ readonly text: Schema.String;
25
+ }>, Schema.String, typeof NotMemberError, never>;
26
+ };
27
+ readonly files: FileAccess<"user">;
28
+ readonly initial: () => {
29
+ members: never[];
30
+ title: string;
31
+ };
32
+ readonly key: Schema.brand<Schema.String, "RoomId">;
33
+ readonly queries: {
34
+ messages: Query<Schema.Struct<{
35
+ readonly limit: Schema.Int;
36
+ }>, Schema.$Array<Schema.Struct<{
37
+ readonly at: Schema.Int;
38
+ readonly author: Schema.String;
39
+ readonly id: Schema.String;
40
+ readonly text: Schema.String;
41
+ }>>, Schema.Never, never>;
42
+ };
43
+ readonly state: Schema.Struct<{
44
+ readonly members: Schema.$Array<Schema.String>;
45
+ readonly title: Schema.String;
46
+ }>;
47
+ }>> & ActorHistory<DefinitionOf<{
48
+ readonly commands: {
49
+ join: Command<Schema.Void, Schema.Void, Schema.Never, never>;
50
+ post: Command<Schema.Struct<{
51
+ readonly text: Schema.String;
52
+ }>, Schema.String, typeof NotMemberError, never>;
53
+ };
54
+ readonly files: FileAccess<"user">;
55
+ readonly initial: () => {
56
+ members: never[];
57
+ title: string;
58
+ };
59
+ readonly key: Schema.brand<Schema.String, "RoomId">;
60
+ readonly queries: {
61
+ messages: Query<Schema.Struct<{
62
+ readonly limit: Schema.Int;
63
+ }>, Schema.$Array<Schema.Struct<{
64
+ readonly at: Schema.Int;
65
+ readonly author: Schema.String;
66
+ readonly id: Schema.String;
67
+ readonly text: Schema.String;
68
+ }>>, Schema.Never, never>;
69
+ };
70
+ readonly state: Schema.Struct<{
71
+ readonly members: Schema.$Array<Schema.String>;
72
+ readonly title: Schema.String;
73
+ }>;
74
+ }>>;
75
+ export { Message, NotMemberError, Room, RoomId };
@@ -0,0 +1,36 @@
1
+ import { Akter } from "./akter.service.mjs";
2
+ import { Schema } from "effect";
3
+ // src/contract/room.contract.ts
4
+ const RoomId = Schema.String.pipe(Schema.brand("RoomId"));
5
+ const Message = Schema.Struct({
6
+ at: Schema.Int,
7
+ author: Schema.String,
8
+ id: Schema.String,
9
+ text: Schema.String
10
+ });
11
+ var NotMemberError = class extends Schema.TaggedError()("NotMemberError", {}) {};
12
+ const Room = Akter.make("Room", {
13
+ commands: {
14
+ join: Akter.command({ success: Schema.Void }),
15
+ post: Akter.command({
16
+ error: NotMemberError,
17
+ payload: { text: Schema.String },
18
+ success: Schema.String
19
+ })
20
+ },
21
+ files: Akter.fileAccess({ callers: ["user"] }),
22
+ initial: () => ({
23
+ members: [],
24
+ title: "Untitled"
25
+ }),
26
+ key: RoomId,
27
+ queries: { messages: Akter.query({
28
+ payload: { limit: Schema.Int },
29
+ success: Schema.Array(Message)
30
+ }) },
31
+ state: Schema.Struct({
32
+ members: Schema.Array(Schema.String),
33
+ title: Schema.String
34
+ })
35
+ });
36
+ export { Message, NotMemberError, Room, RoomId };
@@ -0,0 +1,33 @@
1
+ import { ActorDefinition } from "../actor/actor.contract.mjs";
2
+ import { SecretUnavailableError } from "./secret-unavailable.errors.mjs";
3
+ import { Context, Effect, Layer, Redacted } from "effect";
4
+ /** One actor type asking for one of its secrets. */
5
+ interface SecretRequest {
6
+ readonly actor: string;
7
+ readonly secret: string;
8
+ }
9
+ type SecretRead = Effect.Effect<Redacted.Redacted, SecretUnavailableError>;
10
+ /** An actor's secret by name: only a name its `secrets` declares, read in a job activity. */
11
+ type SecretOf<Definition extends ActorDefinition> = (secret: Definition["secrets"][number]) => SecretRead;
12
+ /** An actor type's name and the secrets it declares. */
13
+ interface SecretSource {
14
+ readonly name: string;
15
+ readonly secrets: readonly string[];
16
+ }
17
+ declare const ActorSecrets_base: Context.ServiceClass<ActorSecrets, "@akterjs/effect/contract/secret/actor-secrets.adapter/ActorSecrets", {
18
+ readonly read: (request: SecretRequest) => SecretRead;
19
+ }>;
20
+ /**
21
+ * Where an engine's actors read their secrets. A host provides it to the app's job runtime, so job activities reach
22
+ * it through `Actor.secret(name)`. Nothing else asks it directly: `Actor.secret` checks the declaration first.
23
+ */
24
+ export declare class ActorSecrets extends ActorSecrets_base {
25
+ /**
26
+ * Secrets from the `ConfigProvider` current when it is built, each under its own name. `Akter.jobs` and `Story.run`
27
+ * provide it, so `akter dev` and scripts read the process environment (Bun loads `.env`), and a test builds them
28
+ * under a `ConfigProvider` of its own.
29
+ */
30
+ static readonly fromConfig: Layer.Layer<ActorSecrets>;
31
+ static secretOf<Definition extends ActorDefinition>(source: SecretSource): SecretOf<Definition>;
32
+ }
33
+ export type { SecretOf, SecretRequest };
@@ -0,0 +1,38 @@
1
+ import { ActorState } from "../state/actor-state.service.mjs";
2
+ import { SecretUnavailableError } from "./secret-unavailable.errors.mjs";
3
+ import { Array, Config, ConfigProvider, Context, Effect, Layer, Option } from "effect";
4
+ // src/contract/secret/actor-secrets.adapter.ts
5
+ const refused = (reason) => ({ actor, secret }) => SecretUnavailableError.make({
6
+ actor,
7
+ reason,
8
+ secret
9
+ });
10
+ /** Reads each secret by its own name through `provider`: the process environment by default. */
11
+ const fromProvider = (provider) => (request) => Config.option(Config.Redacted(request.secret)).pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider), Effect.mapError(() => refused("unavailable")(request)), Effect.flatMap((found) => Effect.mapError(Effect.fromOption(found), () => refused("unset")(request))));
12
+ /**
13
+ * Where an engine's actors read their secrets. A host provides it to the app's job runtime, so job activities reach
14
+ * it through `Actor.secret(name)`. Nothing else asks it directly: `Actor.secret` checks the declaration first.
15
+ */
16
+ var ActorSecrets = class ActorSecrets extends Context.Service()("@akterjs/effect/contract/secret/actor-secrets.adapter/ActorSecrets") {
17
+ /**
18
+ * Secrets from the `ConfigProvider` current when it is built, each under its own name. `Akter.jobs` and `Story.run`
19
+ * provide it, so `akter dev` and scripts read the process environment (Bun loads `.env`), and a test builds them
20
+ * under a `ConfigProvider` of its own.
21
+ */
22
+ static fromConfig = Layer.effect(this, Effect.map(ConfigProvider.ConfigProvider, (provider) => ({ read: fromProvider(provider) })));
23
+ static secretOf({ name, secrets: declared }) {
24
+ return (secret) => Effect.gen(function* readSecret() {
25
+ const request = {
26
+ actor: name,
27
+ secret
28
+ };
29
+ if (!Array.contains(declared, secret)) return yield* refused("undeclared")(request);
30
+ const handler = yield* Effect.serviceOption(ActorState);
31
+ if (Option.isSome(handler)) return yield* refused("command")(request);
32
+ const secrets = yield* Effect.serviceOption(ActorSecrets);
33
+ if (Option.isNone(secrets)) return yield* refused("unavailable")(request);
34
+ return yield* secrets.value.read(request);
35
+ });
36
+ }
37
+ };
38
+ export { ActorSecrets };
@@ -0,0 +1,10 @@
1
+ import { Schema } from "effect";
2
+ declare const InvalidSecretNameError_base: Schema.Class<InvalidSecretNameError, Schema.TaggedStruct<"InvalidSecretNameError", {
3
+ readonly actor: Schema.String;
4
+ readonly secret: Schema.String;
5
+ }>, import("effect/Cause").YieldableError & {
6
+ readonly brand: unique symbol;
7
+ }>;
8
+ /** An actor declared a secret whose name isn't a `SecretName`, so no environment could ever set it. */
9
+ export declare class InvalidSecretNameError extends InvalidSecretNameError_base {}
10
+ export {};
@@ -0,0 +1,8 @@
1
+ import { Schema } from "effect";
2
+ // src/contract/secret/invalid-secret-name.errors.ts
3
+ /** An actor declared a secret whose name isn't a `SecretName`, so no environment could ever set it. */
4
+ var InvalidSecretNameError = class extends Schema.TaggedError()("InvalidSecretNameError", {
5
+ actor: Schema.String,
6
+ secret: Schema.String
7
+ }) {};
8
+ export { InvalidSecretNameError };
@@ -0,0 +1,11 @@
1
+ import { Schema } from "effect";
2
+ declare const SecretUnavailableError_base: Schema.Class<SecretUnavailableError, Schema.TaggedStruct<"SecretUnavailableError", {
3
+ readonly actor: Schema.String;
4
+ readonly reason: Schema.Literals<readonly ["undeclared", "unset", "unavailable", "command"]>;
5
+ readonly secret: Schema.String;
6
+ }>, import("effect/Cause").YieldableError & {
7
+ readonly brand: unique symbol;
8
+ }>;
9
+ /** An actor's secret could not be read; `reason` says why (`SecretRefusal`). */
10
+ export declare class SecretUnavailableError extends SecretUnavailableError_base {}
11
+ export {};
@@ -0,0 +1,10 @@
1
+ import { SecretRefusal } from "./secret.schema.mjs";
2
+ import { Schema } from "effect";
3
+ // src/contract/secret/secret-unavailable.errors.ts
4
+ /** An actor's secret could not be read; `reason` says why (`SecretRefusal`). */
5
+ var SecretUnavailableError = class extends Schema.TaggedError()("SecretUnavailableError", {
6
+ actor: Schema.String,
7
+ reason: SecretRefusal,
8
+ secret: Schema.String
9
+ }) {};
10
+ export { SecretUnavailableError };