@rikalabs/akter 0.1.0-alpha.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 (603) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/LICENSE +202 -0
  3. package/NOTICE +8 -0
  4. package/README.md +116 -0
  5. package/dist/actor/codecs.d.ts +77 -0
  6. package/dist/actor/codecs.js +87 -0
  7. package/dist/actor/connections.d.ts +34 -0
  8. package/dist/actor/connections.js +145 -0
  9. package/dist/actor/definition.d.ts +893 -0
  10. package/dist/actor/definition.js +147 -0
  11. package/dist/actor/descriptor.d.ts +172 -0
  12. package/dist/actor/descriptor.js +367 -0
  13. package/dist/actor/handles.d.ts +77 -0
  14. package/dist/actor/handles.js +265 -0
  15. package/dist/actor/jobs.d.ts +10 -0
  16. package/dist/actor/jobs.js +137 -0
  17. package/dist/actor/layers.d.ts +41 -0
  18. package/dist/actor/layers.js +177 -0
  19. package/dist/actor/reads.d.ts +47 -0
  20. package/dist/actor/reads.js +224 -0
  21. package/dist/actor/served.d.ts +120 -0
  22. package/dist/actor/served.js +72 -0
  23. package/dist/actor/turns.d.ts +13 -0
  24. package/dist/actor/turns.js +332 -0
  25. package/dist/actor/workflows.d.ts +16 -0
  26. package/dist/actor/workflows.js +37 -0
  27. package/dist/client/calls.d.ts +47 -0
  28. package/dist/client/calls.js +425 -0
  29. package/dist/client/clock.d.ts +56 -0
  30. package/dist/client/clock.js +119 -0
  31. package/dist/client/fleet-page.d.ts +15 -0
  32. package/dist/client/fleet-page.js +13 -0
  33. package/dist/client/fleet.d.ts +29 -0
  34. package/dist/client/fleet.js +51 -0
  35. package/dist/client/index.d.ts +17 -0
  36. package/dist/client/index.js +6 -0
  37. package/dist/client/make.d.ts +157 -0
  38. package/dist/client/make.js +221 -0
  39. package/dist/client/offline/queue.d.ts +118 -0
  40. package/dist/client/offline/queue.js +292 -0
  41. package/dist/client/offline/store.d.ts +74 -0
  42. package/dist/client/offline/store.js +78 -0
  43. package/dist/client/optimistic.d.ts +57 -0
  44. package/dist/client/optimistic.js +136 -0
  45. package/dist/client/report.d.ts +2 -0
  46. package/dist/client/report.js +8 -0
  47. package/dist/client/sessions/connection.d.ts +118 -0
  48. package/dist/client/sessions/connection.js +162 -0
  49. package/dist/client/sessions/feed.d.ts +42 -0
  50. package/dist/client/sessions/feed.js +43 -0
  51. package/dist/client/sessions/sse.d.ts +47 -0
  52. package/dist/client/sessions/sse.js +112 -0
  53. package/dist/client/sessions/stream.d.ts +28 -0
  54. package/dist/client/sessions/stream.js +35 -0
  55. package/dist/client/sessions/watch.d.ts +34 -0
  56. package/dist/client/sessions/watch.js +40 -0
  57. package/dist/client/transport.d.ts +37 -0
  58. package/dist/client/transport.js +66 -0
  59. package/dist/contexts/command.d.ts +132 -0
  60. package/dist/contexts/command.js +20 -0
  61. package/dist/contexts/connection.d.ts +68 -0
  62. package/dist/contexts/connection.js +0 -0
  63. package/dist/contexts/job.d.ts +49 -0
  64. package/dist/contexts/job.js +0 -0
  65. package/dist/contexts/workflow.d.ts +147 -0
  66. package/dist/contexts/workflow.js +22 -0
  67. package/dist/errors/actor.d.ts +200 -0
  68. package/dist/errors/actor.js +271 -0
  69. package/dist/errors/content.d.ts +19 -0
  70. package/dist/errors/content.js +14 -0
  71. package/dist/errors/database.d.ts +22 -0
  72. package/dist/errors/database.js +23 -0
  73. package/dist/errors/events.d.ts +17 -0
  74. package/dist/errors/events.js +14 -0
  75. package/dist/errors/subscription.d.ts +12 -0
  76. package/dist/errors/subscription.js +8 -0
  77. package/dist/errors/workflow.d.ts +28 -0
  78. package/dist/errors/workflow.js +17 -0
  79. package/dist/handles/actors.d.ts +17 -0
  80. package/dist/handles/actors.js +7 -0
  81. package/dist/handles/content.d.ts +59 -0
  82. package/dist/handles/content.js +36 -0
  83. package/dist/handles/intents.d.ts +164 -0
  84. package/dist/handles/intents.js +214 -0
  85. package/dist/handles/run.d.ts +31 -0
  86. package/dist/handles/run.js +21 -0
  87. package/dist/handles/workflow.d.ts +27 -0
  88. package/dist/handles/workflow.js +23 -0
  89. package/dist/identity/caller.d.ts +105 -0
  90. package/dist/identity/caller.js +68 -0
  91. package/dist/identity/child.d.ts +18 -0
  92. package/dist/identity/child.js +39 -0
  93. package/dist/identity/command.d.ts +19 -0
  94. package/dist/identity/command.js +21 -0
  95. package/dist/identity/connection.d.ts +24 -0
  96. package/dist/identity/connection.js +29 -0
  97. package/dist/identity/content.d.ts +18 -0
  98. package/dist/identity/content.js +12 -0
  99. package/dist/identity/digest.d.ts +4 -0
  100. package/dist/identity/digest.js +5 -0
  101. package/dist/identity/execution.d.ts +32 -0
  102. package/dist/identity/execution.js +63 -0
  103. package/dist/identity/mint.d.ts +51 -0
  104. package/dist/identity/mint.js +76 -0
  105. package/dist/identity/version.d.ts +2 -0
  106. package/dist/identity/version.js +3 -0
  107. package/dist/index.d.ts +159 -0
  108. package/dist/index.js +97 -0
  109. package/dist/members/blob.d.ts +43 -0
  110. package/dist/members/blob.js +29 -0
  111. package/dist/members/command.d.ts +109 -0
  112. package/dist/members/command.js +61 -0
  113. package/dist/members/connection.d.ts +55 -0
  114. package/dist/members/connection.js +49 -0
  115. package/dist/members/event.d.ts +36 -0
  116. package/dist/members/event.js +24 -0
  117. package/dist/members/job.d.ts +157 -0
  118. package/dist/members/job.js +67 -0
  119. package/dist/members/payload.d.ts +93 -0
  120. package/dist/members/payload.js +145 -0
  121. package/dist/members/reducer.d.ts +64 -0
  122. package/dist/members/reducer.js +27 -0
  123. package/dist/members/stream.d.ts +36 -0
  124. package/dist/members/stream.js +14 -0
  125. package/dist/members/subscription.d.ts +182 -0
  126. package/dist/members/subscription.js +91 -0
  127. package/dist/members/workflow.d.ts +99 -0
  128. package/dist/members/workflow.js +2 -0
  129. package/dist/policies/access.d.ts +35 -0
  130. package/dist/policies/access.js +6 -0
  131. package/dist/policies/command.d.ts +127 -0
  132. package/dist/policies/command.js +45 -0
  133. package/dist/policies/job.d.ts +28 -0
  134. package/dist/policies/job.js +60 -0
  135. package/dist/policies/schedules.d.ts +33 -0
  136. package/dist/policies/schedules.js +131 -0
  137. package/dist/protocol/frames.d.ts +66 -0
  138. package/dist/protocol/frames.js +55 -0
  139. package/dist/protocol/inspection.d.ts +807 -0
  140. package/dist/protocol/inspection.js +243 -0
  141. package/dist/protocol/wire.d.ts +184 -0
  142. package/dist/protocol/wire.js +150 -0
  143. package/dist/runtime/actors.d.ts +155 -0
  144. package/dist/runtime/actors.js +4 -0
  145. package/dist/runtime/admission.d.ts +34 -0
  146. package/dist/runtime/admission.js +72 -0
  147. package/dist/runtime/adoption/backfill.d.ts +27 -0
  148. package/dist/runtime/adoption/backfill.js +144 -0
  149. package/dist/runtime/adoption/enforce.d.ts +55 -0
  150. package/dist/runtime/adoption/enforce.js +241 -0
  151. package/dist/runtime/adoption/observe.d.ts +43 -0
  152. package/dist/runtime/adoption/observe.js +139 -0
  153. package/dist/runtime/adoption/plan.d.ts +45 -0
  154. package/dist/runtime/adoption/plan.js +192 -0
  155. package/dist/runtime/adoption/startup.d.ts +32 -0
  156. package/dist/runtime/adoption/startup.js +76 -0
  157. package/dist/runtime/adoption/status.d.ts +23 -0
  158. package/dist/runtime/adoption/status.js +47 -0
  159. package/dist/runtime/adoption/target.d.ts +33 -0
  160. package/dist/runtime/adoption/target.js +49 -0
  161. package/dist/runtime/connections/holder.d.ts +221 -0
  162. package/dist/runtime/connections/holder.js +816 -0
  163. package/dist/runtime/connections/owner.d.ts +263 -0
  164. package/dist/runtime/connections/owner.js +896 -0
  165. package/dist/runtime/connections/protocol.d.ts +441 -0
  166. package/dist/runtime/connections/protocol.js +222 -0
  167. package/dist/runtime/connections/reads.d.ts +24 -0
  168. package/dist/runtime/connections/reads.js +19 -0
  169. package/dist/runtime/connections/streams.d.ts +62 -0
  170. package/dist/runtime/connections/streams.js +128 -0
  171. package/dist/runtime/connections/transport.d.ts +40 -0
  172. package/dist/runtime/connections/transport.js +68 -0
  173. package/dist/runtime/connections/watch.d.ts +52 -0
  174. package/dist/runtime/connections/watch.js +159 -0
  175. package/dist/runtime/content/grant.d.ts +34 -0
  176. package/dist/runtime/content/grant.js +58 -0
  177. package/dist/runtime/content/store.d.ts +63 -0
  178. package/dist/runtime/content/store.js +294 -0
  179. package/dist/runtime/cron/key.d.ts +2 -0
  180. package/dist/runtime/cron/key.js +2 -0
  181. package/dist/runtime/cron/schedule.d.ts +69 -0
  182. package/dist/runtime/cron/schedule.js +144 -0
  183. package/dist/runtime/database/bounded.d.ts +43 -0
  184. package/dist/runtime/database/bounded.js +108 -0
  185. package/dist/runtime/database/connection.d.ts +8 -0
  186. package/dist/runtime/database/connection.js +18 -0
  187. package/dist/runtime/database/coordination.d.ts +19 -0
  188. package/dist/runtime/database/coordination.js +72 -0
  189. package/dist/runtime/database/flock.d.ts +10 -0
  190. package/dist/runtime/database/flock.js +60 -0
  191. package/dist/runtime/database/gate.d.ts +26 -0
  192. package/dist/runtime/database/gate.js +54 -0
  193. package/dist/runtime/database/keepalive.d.ts +11 -0
  194. package/dist/runtime/database/keepalive.js +22 -0
  195. package/dist/runtime/database/migrations.d.ts +177 -0
  196. package/dist/runtime/database/migrations.js +1018 -0
  197. package/dist/runtime/database/neki/migrations.d.ts +31 -0
  198. package/dist/runtime/database/neki/migrations.js +276 -0
  199. package/dist/runtime/database/neki/session.d.ts +23 -0
  200. package/dist/runtime/database/neki/session.js +31 -0
  201. package/dist/runtime/database/pglite.d.ts +21 -0
  202. package/dist/runtime/database/pglite.js +74 -0
  203. package/dist/runtime/database/replica.d.ts +41 -0
  204. package/dist/runtime/database/replica.js +51 -0
  205. package/dist/runtime/database/shards.d.ts +21 -0
  206. package/dist/runtime/database/shards.js +37 -0
  207. package/dist/runtime/database/snapshot.d.ts +7 -0
  208. package/dist/runtime/database/snapshot.js +7 -0
  209. package/dist/runtime/database/tenancy.d.ts +69 -0
  210. package/dist/runtime/database/tenancy.js +145 -0
  211. package/dist/runtime/database/transient.d.ts +10 -0
  212. package/dist/runtime/database/transient.js +25 -0
  213. package/dist/runtime/drain.d.ts +132 -0
  214. package/dist/runtime/drain.js +109 -0
  215. package/dist/runtime/entity/mailbox.d.ts +86 -0
  216. package/dist/runtime/entity/mailbox.js +121 -0
  217. package/dist/runtime/entity/register.d.ts +424 -0
  218. package/dist/runtime/entity/register.js +669 -0
  219. package/dist/runtime/events/append.d.ts +192 -0
  220. package/dist/runtime/events/append.js +128 -0
  221. package/dist/runtime/events/cursor.d.ts +2 -0
  222. package/dist/runtime/events/cursor.js +5 -0
  223. package/dist/runtime/events/replay.d.ts +20 -0
  224. package/dist/runtime/events/replay.js +45 -0
  225. package/dist/runtime/feeds.d.ts +26 -0
  226. package/dist/runtime/feeds.js +100 -0
  227. package/dist/runtime/fleet/checks.d.ts +17 -0
  228. package/dist/runtime/fleet/checks.js +106 -0
  229. package/dist/runtime/fleet/maintainer.d.ts +38 -0
  230. package/dist/runtime/fleet/maintainer.js +383 -0
  231. package/dist/runtime/fleet/pgoutput.d.ts +41 -0
  232. package/dist/runtime/fleet/pgoutput.js +102 -0
  233. package/dist/runtime/fleet/setup.d.ts +36 -0
  234. package/dist/runtime/fleet/setup.js +58 -0
  235. package/dist/runtime/fleet/subscribe.d.ts +42 -0
  236. package/dist/runtime/fleet/subscribe.js +147 -0
  237. package/dist/runtime/index.d.ts +66 -0
  238. package/dist/runtime/index.js +37 -0
  239. package/dist/runtime/inspector/http.d.ts +19 -0
  240. package/dist/runtime/inspector/http.js +36 -0
  241. package/dist/runtime/inspector/layer.d.ts +46 -0
  242. package/dist/runtime/inspector/layer.js +180 -0
  243. package/dist/runtime/inspector/queries.d.ts +711 -0
  244. package/dist/runtime/inspector/queries.js +494 -0
  245. package/dist/runtime/jobs/attempt.d.ts +254 -0
  246. package/dist/runtime/jobs/attempt.js +413 -0
  247. package/dist/runtime/jobs/isolation.d.ts +20 -0
  248. package/dist/runtime/jobs/isolation.js +10 -0
  249. package/dist/runtime/jobs/progress.d.ts +95 -0
  250. package/dist/runtime/jobs/progress.js +144 -0
  251. package/dist/runtime/layer.d.ts +260 -0
  252. package/dist/runtime/layer.js +876 -0
  253. package/dist/runtime/members.d.ts +381 -0
  254. package/dist/runtime/members.js +8 -0
  255. package/dist/runtime/operators/audit.d.ts +64 -0
  256. package/dist/runtime/operators/audit.js +56 -0
  257. package/dist/runtime/operators/auth.d.ts +29 -0
  258. package/dist/runtime/operators/auth.js +42 -0
  259. package/dist/runtime/operators/export.d.ts +68 -0
  260. package/dist/runtime/operators/export.js +137 -0
  261. package/dist/runtime/operators/grants.d.ts +45 -0
  262. package/dist/runtime/operators/grants.js +40 -0
  263. package/dist/runtime/operators/repair.d.ts +206 -0
  264. package/dist/runtime/operators/repair.js +226 -0
  265. package/dist/runtime/operators/routes.d.ts +35 -0
  266. package/dist/runtime/operators/routes.js +190 -0
  267. package/dist/runtime/operators/seed.d.ts +123 -0
  268. package/dist/runtime/operators/seed.js +123 -0
  269. package/dist/runtime/payloads/versions.d.ts +65 -0
  270. package/dist/runtime/payloads/versions.js +240 -0
  271. package/dist/runtime/peering/authority.d.ts +42 -0
  272. package/dist/runtime/peering/authority.js +132 -0
  273. package/dist/runtime/peering/credentials.d.ts +21 -0
  274. package/dist/runtime/peering/credentials.js +13 -0
  275. package/dist/runtime/peering/transport.d.ts +51 -0
  276. package/dist/runtime/peering/transport.js +175 -0
  277. package/dist/runtime/queries.d.ts +18 -0
  278. package/dist/runtime/queries.js +169 -0
  279. package/dist/runtime/readiness.d.ts +36 -0
  280. package/dist/runtime/readiness.js +44 -0
  281. package/dist/runtime/registration.d.ts +58 -0
  282. package/dist/runtime/registration.js +186 -0
  283. package/dist/runtime/request.d.ts +158 -0
  284. package/dist/runtime/request.js +102 -0
  285. package/dist/runtime/retry.d.ts +8 -0
  286. package/dist/runtime/retry.js +11 -0
  287. package/dist/runtime/runner.d.ts +93 -0
  288. package/dist/runtime/runner.js +122 -0
  289. package/dist/runtime/storage/codec.d.ts +39 -0
  290. package/dist/runtime/storage/codec.js +41 -0
  291. package/dist/runtime/storage/generation.d.ts +69 -0
  292. package/dist/runtime/storage/generation.js +49 -0
  293. package/dist/runtime/storage/placements.d.ts +15 -0
  294. package/dist/runtime/storage/placements.js +38 -0
  295. package/dist/runtime/storage/platform.d.ts +6 -0
  296. package/dist/runtime/storage/platform.js +9 -0
  297. package/dist/runtime/storage/retention.d.ts +73 -0
  298. package/dist/runtime/storage/retention.js +158 -0
  299. package/dist/runtime/subscriptions/identity.d.ts +31 -0
  300. package/dist/runtime/subscriptions/identity.js +45 -0
  301. package/dist/runtime/subscriptions/relay.d.ts +175 -0
  302. package/dist/runtime/subscriptions/relay.js +763 -0
  303. package/dist/runtime/subscriptions/storage.d.ts +40 -0
  304. package/dist/runtime/subscriptions/storage.js +98 -0
  305. package/dist/runtime/sweeps.d.ts +39 -0
  306. package/dist/runtime/sweeps.js +54 -0
  307. package/dist/runtime/telemetry/defects.d.ts +57 -0
  308. package/dist/runtime/telemetry/defects.js +43 -0
  309. package/dist/runtime/telemetry/metrics.d.ts +52 -0
  310. package/dist/runtime/telemetry/metrics.js +138 -0
  311. package/dist/runtime/telemetry/routes.d.ts +19 -0
  312. package/dist/runtime/telemetry/routes.js +18 -0
  313. package/dist/runtime/telemetry/sampler.d.ts +26 -0
  314. package/dist/runtime/telemetry/sampler.js +101 -0
  315. package/dist/runtime/telemetry/spans.d.ts +38 -0
  316. package/dist/runtime/telemetry/spans.js +44 -0
  317. package/dist/runtime/telemetry/usage.d.ts +52 -0
  318. package/dist/runtime/telemetry/usage.js +30 -0
  319. package/dist/runtime/topology/admission.d.ts +13 -0
  320. package/dist/runtime/topology/admission.js +36 -0
  321. package/dist/runtime/topology/locks.d.ts +56 -0
  322. package/dist/runtime/topology/locks.js +81 -0
  323. package/dist/runtime/topology/messages.d.ts +15 -0
  324. package/dist/runtime/topology/messages.js +32 -0
  325. package/dist/runtime/turn/admission.d.ts +22 -0
  326. package/dist/runtime/turn/admission.js +41 -0
  327. package/dist/runtime/turn/blobs.d.ts +38 -0
  328. package/dist/runtime/turn/blobs.js +215 -0
  329. package/dist/runtime/turn/execute.d.ts +208 -0
  330. package/dist/runtime/turn/execute.js +972 -0
  331. package/dist/runtime/turn/group.d.ts +165 -0
  332. package/dist/runtime/turn/group.js +326 -0
  333. package/dist/runtime/turn/hooks.d.ts +44 -0
  334. package/dist/runtime/turn/hooks.js +28 -0
  335. package/dist/runtime/turn/outbox.d.ts +159 -0
  336. package/dist/runtime/turn/outbox.js +269 -0
  337. package/dist/runtime/turn/pipeline.d.ts +68 -0
  338. package/dist/runtime/turn/pipeline.js +83 -0
  339. package/dist/runtime/turn/receipt.d.ts +81 -0
  340. package/dist/runtime/turn/receipt.js +32 -0
  341. package/dist/runtime/turn/relay.d.ts +179 -0
  342. package/dist/runtime/turn/relay.js +685 -0
  343. package/dist/runtime/turn/rows.d.ts +43 -0
  344. package/dist/runtime/turn/rows.js +592 -0
  345. package/dist/runtime/workflows/compatibility.d.ts +125 -0
  346. package/dist/runtime/workflows/compatibility.js +285 -0
  347. package/dist/runtime/workflows/engine.d.ts +107 -0
  348. package/dist/runtime/workflows/engine.js +826 -0
  349. package/dist/runtime/workflows/manifest.d.ts +34 -0
  350. package/dist/runtime/workflows/manifest.js +39 -0
  351. package/dist/runtime/workflows/steps.d.ts +33 -0
  352. package/dist/runtime/workflows/steps.js +152 -0
  353. package/dist/serve/api.d.ts +99 -0
  354. package/dist/serve/api.js +403 -0
  355. package/dist/serve/assertion/binding.d.ts +41 -0
  356. package/dist/serve/assertion/binding.js +92 -0
  357. package/dist/serve/assertion/verify.d.ts +93 -0
  358. package/dist/serve/assertion/verify.js +189 -0
  359. package/dist/serve/auth.d.ts +200 -0
  360. package/dist/serve/auth.js +92 -0
  361. package/dist/serve/clock.d.ts +10 -0
  362. package/dist/serve/clock.js +25 -0
  363. package/dist/serve/jwt.d.ts +65 -0
  364. package/dist/serve/jwt.js +202 -0
  365. package/dist/serve/layer.d.ts +98 -0
  366. package/dist/serve/layer.js +809 -0
  367. package/dist/serve/mcp/endpoint.d.ts +39 -0
  368. package/dist/serve/mcp/endpoint.js +187 -0
  369. package/dist/serve/mcp/tools.d.ts +37 -0
  370. package/dist/serve/mcp/tools.js +125 -0
  371. package/dist/serve/origin.d.ts +6 -0
  372. package/dist/serve/origin.js +21 -0
  373. package/dist/serve/sessions/feed.d.ts +79 -0
  374. package/dist/serve/sessions/feed.js +115 -0
  375. package/dist/serve/sessions/socket.d.ts +56 -0
  376. package/dist/serve/sessions/socket.js +212 -0
  377. package/dist/serve/sessions/sse.d.ts +27 -0
  378. package/dist/serve/sessions/sse.js +26 -0
  379. package/dist/serve/sessions/stream.d.ts +9 -0
  380. package/dist/serve/sessions/stream.js +9 -0
  381. package/dist/serve/sessions/watch.d.ts +12 -0
  382. package/dist/serve/sessions/watch.js +11 -0
  383. package/dist/serve/wire.d.ts +16 -0
  384. package/dist/serve/wire.js +50 -0
  385. package/dist/state/blob.d.ts +71 -0
  386. package/dist/state/blob.js +0 -0
  387. package/dist/state/migration.d.ts +53 -0
  388. package/dist/state/migration.js +29 -0
  389. package/dist/tables/fleet.d.ts +170 -0
  390. package/dist/tables/fleet.js +214 -0
  391. package/dist/tables/owned.d.ts +250 -0
  392. package/dist/tables/owned.js +233 -0
  393. package/dist/testing/actor-test.d.ts +360 -0
  394. package/dist/testing/actor-test.js +337 -0
  395. package/dist/testing/cluster.d.ts +93 -0
  396. package/dist/testing/cluster.js +296 -0
  397. package/dist/testing/conformance/access.d.ts +5 -0
  398. package/dist/testing/conformance/access.js +531 -0
  399. package/dist/testing/conformance/admission.d.ts +11 -0
  400. package/dist/testing/conformance/admission.js +182 -0
  401. package/dist/testing/conformance/adoption.d.ts +2 -0
  402. package/dist/testing/conformance/adoption.js +1019 -0
  403. package/dist/testing/conformance/assertions.d.ts +202 -0
  404. package/dist/testing/conformance/assertions.js +849 -0
  405. package/dist/testing/conformance/batches.d.ts +41 -0
  406. package/dist/testing/conformance/batches.js +388 -0
  407. package/dist/testing/conformance/blobs.d.ts +14 -0
  408. package/dist/testing/conformance/blobs.js +405 -0
  409. package/dist/testing/conformance/capacity.d.ts +8 -0
  410. package/dist/testing/conformance/capacity.js +433 -0
  411. package/dist/testing/conformance/client.d.ts +5 -0
  412. package/dist/testing/conformance/client.js +719 -0
  413. package/dist/testing/conformance/cold-serve.d.ts +16 -0
  414. package/dist/testing/conformance/cold-serve.js +254 -0
  415. package/dist/testing/conformance/connections/actors.d.ts +1143 -0
  416. package/dist/testing/conformance/connections/actors.js +180 -0
  417. package/dist/testing/conformance/connections/harness.d.ts +1754 -0
  418. package/dist/testing/conformance/connections/harness.js +142 -0
  419. package/dist/testing/conformance/connections/holders.d.ts +4 -0
  420. package/dist/testing/conformance/connections/holders.js +165 -0
  421. package/dist/testing/conformance/connections/lifecycle.d.ts +4 -0
  422. package/dist/testing/conformance/connections/lifecycle.js +113 -0
  423. package/dist/testing/conformance/connections/limits.d.ts +4 -0
  424. package/dist/testing/conformance/connections/limits.js +127 -0
  425. package/dist/testing/conformance/connections/reauthorization.d.ts +4 -0
  426. package/dist/testing/conformance/connections/reauthorization.js +170 -0
  427. package/dist/testing/conformance/connections/resync.d.ts +4 -0
  428. package/dist/testing/conformance/connections/resync.js +360 -0
  429. package/dist/testing/conformance/connections/takeover.d.ts +4 -0
  430. package/dist/testing/conformance/connections/takeover.js +287 -0
  431. package/dist/testing/conformance/connections.d.ts +4 -0
  432. package/dist/testing/conformance/connections.js +15 -0
  433. package/dist/testing/conformance/content-blobs.d.ts +16 -0
  434. package/dist/testing/conformance/content-blobs.js +534 -0
  435. package/dist/testing/conformance/counter.d.ts +16 -0
  436. package/dist/testing/conformance/counter.js +813 -0
  437. package/dist/testing/conformance/cron.d.ts +5 -0
  438. package/dist/testing/conformance/cron.js +665 -0
  439. package/dist/testing/conformance/drain.d.ts +26 -0
  440. package/dist/testing/conformance/drain.js +540 -0
  441. package/dist/testing/conformance/effect-control.d.ts +38 -0
  442. package/dist/testing/conformance/effect-control.js +1059 -0
  443. package/dist/testing/conformance/effects.d.ts +23 -0
  444. package/dist/testing/conformance/effects.js +432 -0
  445. package/dist/testing/conformance/events.d.ts +28 -0
  446. package/dist/testing/conformance/events.js +335 -0
  447. package/dist/testing/conformance/export.d.ts +2 -0
  448. package/dist/testing/conformance/export.js +368 -0
  449. package/dist/testing/conformance/fleet.d.ts +444 -0
  450. package/dist/testing/conformance/fleet.js +1009 -0
  451. package/dist/testing/conformance/groups.d.ts +7 -0
  452. package/dist/testing/conformance/groups.js +353 -0
  453. package/dist/testing/conformance/heap.d.ts +3 -0
  454. package/dist/testing/conformance/heap.js +149 -0
  455. package/dist/testing/conformance/http.d.ts +2809 -0
  456. package/dist/testing/conformance/http.js +1234 -0
  457. package/dist/testing/conformance/inspection-views.d.ts +8 -0
  458. package/dist/testing/conformance/inspection-views.js +272 -0
  459. package/dist/testing/conformance/inspector.d.ts +7 -0
  460. package/dist/testing/conformance/inspector.js +650 -0
  461. package/dist/testing/conformance/mint.d.ts +58 -0
  462. package/dist/testing/conformance/mint.js +692 -0
  463. package/dist/testing/conformance/multi-runner.d.ts +8 -0
  464. package/dist/testing/conformance/multi-runner.js +403 -0
  465. package/dist/testing/conformance/neki/plan.d.ts +19 -0
  466. package/dist/testing/conformance/neki/plan.js +30 -0
  467. package/dist/testing/conformance/observability.d.ts +3 -0
  468. package/dist/testing/conformance/observability.js +343 -0
  469. package/dist/testing/conformance/offline.d.ts +4 -0
  470. package/dist/testing/conformance/offline.js +474 -0
  471. package/dist/testing/conformance/operator-harness.d.ts +57 -0
  472. package/dist/testing/conformance/operator-harness.js +78 -0
  473. package/dist/testing/conformance/operator.d.ts +3 -0
  474. package/dist/testing/conformance/operator.js +379 -0
  475. package/dist/testing/conformance/outbox-cross-shard.d.ts +14 -0
  476. package/dist/testing/conformance/outbox-cross-shard.js +160 -0
  477. package/dist/testing/conformance/outbox.d.ts +36 -0
  478. package/dist/testing/conformance/outbox.js +437 -0
  479. package/dist/testing/conformance/payload-migrations.d.ts +3 -0
  480. package/dist/testing/conformance/payload-migrations.js +612 -0
  481. package/dist/testing/conformance/pipeline.d.ts +3 -0
  482. package/dist/testing/conformance/pipeline.js +1040 -0
  483. package/dist/testing/conformance/placement.d.ts +22 -0
  484. package/dist/testing/conformance/placement.js +539 -0
  485. package/dist/testing/conformance/platform.d.ts +40 -0
  486. package/dist/testing/conformance/platform.js +101 -0
  487. package/dist/testing/conformance/progress.d.ts +39 -0
  488. package/dist/testing/conformance/progress.js +666 -0
  489. package/dist/testing/conformance/properties.d.ts +6 -0
  490. package/dist/testing/conformance/properties.js +295 -0
  491. package/dist/testing/conformance/protocols.d.ts +4 -0
  492. package/dist/testing/conformance/protocols.js +618 -0
  493. package/dist/testing/conformance/provider/advertise.d.ts +21 -0
  494. package/dist/testing/conformance/provider/advertise.js +44 -0
  495. package/dist/testing/conformance/read-your-writes.d.ts +20 -0
  496. package/dist/testing/conformance/read-your-writes.js +192 -0
  497. package/dist/testing/conformance/reducers.d.ts +8 -0
  498. package/dist/testing/conformance/reducers.js +258 -0
  499. package/dist/testing/conformance/relay.d.ts +42 -0
  500. package/dist/testing/conformance/relay.js +1115 -0
  501. package/dist/testing/conformance/restore.d.ts +43 -0
  502. package/dist/testing/conformance/restore.js +341 -0
  503. package/dist/testing/conformance/retention.d.ts +14 -0
  504. package/dist/testing/conformance/retention.js +463 -0
  505. package/dist/testing/conformance/rls.d.ts +24 -0
  506. package/dist/testing/conformance/rls.js +576 -0
  507. package/dist/testing/conformance/simulation.d.ts +31 -0
  508. package/dist/testing/conformance/simulation.js +167 -0
  509. package/dist/testing/conformance/single-shard.d.ts +2 -0
  510. package/dist/testing/conformance/single-shard.js +125 -0
  511. package/dist/testing/conformance/singleton.d.ts +3 -0
  512. package/dist/testing/conformance/singleton.js +293 -0
  513. package/dist/testing/conformance/statements.d.ts +60 -0
  514. package/dist/testing/conformance/statements.js +108 -0
  515. package/dist/testing/conformance/streams.d.ts +7 -0
  516. package/dist/testing/conformance/streams.js +280 -0
  517. package/dist/testing/conformance/subscriptions/access.d.ts +4 -0
  518. package/dist/testing/conformance/subscriptions/access.js +98 -0
  519. package/dist/testing/conformance/subscriptions/actors.d.ts +4910 -0
  520. package/dist/testing/conformance/subscriptions/actors.js +372 -0
  521. package/dist/testing/conformance/subscriptions/cluster.d.ts +4 -0
  522. package/dist/testing/conformance/subscriptions/cluster.js +89 -0
  523. package/dist/testing/conformance/subscriptions/delivery.d.ts +4 -0
  524. package/dist/testing/conformance/subscriptions/delivery.js +253 -0
  525. package/dist/testing/conformance/subscriptions/deploys.d.ts +4 -0
  526. package/dist/testing/conformance/subscriptions/deploys.js +162 -0
  527. package/dist/testing/conformance/subscriptions/epochs.d.ts +4 -0
  528. package/dist/testing/conformance/subscriptions/epochs.js +169 -0
  529. package/dist/testing/conformance/subscriptions/failures.d.ts +4 -0
  530. package/dist/testing/conformance/subscriptions/failures.js +108 -0
  531. package/dist/testing/conformance/subscriptions/feeds.d.ts +4 -0
  532. package/dist/testing/conformance/subscriptions/feeds.js +218 -0
  533. package/dist/testing/conformance/subscriptions/harness.d.ts +124 -0
  534. package/dist/testing/conformance/subscriptions/harness.js +143 -0
  535. package/dist/testing/conformance/subscriptions/operator.d.ts +4 -0
  536. package/dist/testing/conformance/subscriptions/operator.js +128 -0
  537. package/dist/testing/conformance/subscriptions/retention.d.ts +4 -0
  538. package/dist/testing/conformance/subscriptions/retention.js +288 -0
  539. package/dist/testing/conformance/subscriptions/routing.d.ts +4 -0
  540. package/dist/testing/conformance/subscriptions/routing.js +179 -0
  541. package/dist/testing/conformance/subscriptions.d.ts +4 -0
  542. package/dist/testing/conformance/subscriptions.js +19 -0
  543. package/dist/testing/conformance/tables.d.ts +125 -0
  544. package/dist/testing/conformance/tables.js +664 -0
  545. package/dist/testing/conformance/transports/actors.d.ts +1907 -0
  546. package/dist/testing/conformance/transports/actors.js +163 -0
  547. package/dist/testing/conformance/transports/client.d.ts +3 -0
  548. package/dist/testing/conformance/transports/client.js +237 -0
  549. package/dist/testing/conformance/transports/feeds.d.ts +3 -0
  550. package/dist/testing/conformance/transports/feeds.js +232 -0
  551. package/dist/testing/conformance/transports/harness.d.ts +93 -0
  552. package/dist/testing/conformance/transports/harness.js +84 -0
  553. package/dist/testing/conformance/transports/streams.d.ts +3 -0
  554. package/dist/testing/conformance/transports/streams.js +96 -0
  555. package/dist/testing/conformance/transports/websocket.d.ts +3 -0
  556. package/dist/testing/conformance/transports/websocket.js +384 -0
  557. package/dist/testing/conformance/transports/wire.d.ts +141 -0
  558. package/dist/testing/conformance/transports/wire.js +204 -0
  559. package/dist/testing/conformance/transports.d.ts +3 -0
  560. package/dist/testing/conformance/transports.js +11 -0
  561. package/dist/testing/conformance/watch.d.ts +59 -0
  562. package/dist/testing/conformance/watch.js +879 -0
  563. package/dist/testing/conformance/workflow-engine.d.ts +97 -0
  564. package/dist/testing/conformance/workflow-engine.js +253 -0
  565. package/dist/testing/conformance/workflow-versions.d.ts +3 -0
  566. package/dist/testing/conformance/workflow-versions.js +545 -0
  567. package/dist/testing/conformance/workflows/access.d.ts +4 -0
  568. package/dist/testing/conformance/workflows/access.js +147 -0
  569. package/dist/testing/conformance/workflows/actors.d.ts +2317 -0
  570. package/dist/testing/conformance/workflows/actors.js +305 -0
  571. package/dist/testing/conformance/workflows/basics.d.ts +4 -0
  572. package/dist/testing/conformance/workflows/basics.js +144 -0
  573. package/dist/testing/conformance/workflows/engine.d.ts +4 -0
  574. package/dist/testing/conformance/workflows/engine.js +80 -0
  575. package/dist/testing/conformance/workflows/guards.d.ts +4 -0
  576. package/dist/testing/conformance/workflows/guards.js +172 -0
  577. package/dist/testing/conformance/workflows/harness.d.ts +14 -0
  578. package/dist/testing/conformance/workflows/harness.js +44 -0
  579. package/dist/testing/conformance/workflows/recovery.d.ts +4 -0
  580. package/dist/testing/conformance/workflows/recovery.js +181 -0
  581. package/dist/testing/conformance/workflows/starts.d.ts +4 -0
  582. package/dist/testing/conformance/workflows/starts.js +57 -0
  583. package/dist/testing/conformance/workflows/suspension.d.ts +4 -0
  584. package/dist/testing/conformance/workflows/suspension.js +106 -0
  585. package/dist/testing/conformance/workflows/waits.d.ts +4 -0
  586. package/dist/testing/conformance/workflows/waits.js +284 -0
  587. package/dist/testing/conformance/workflows.d.ts +4 -0
  588. package/dist/testing/conformance/workflows.js +19 -0
  589. package/dist/testing/conformance.d.ts +330 -0
  590. package/dist/testing/conformance.js +364 -0
  591. package/dist/testing/database.d.ts +31 -0
  592. package/dist/testing/database.js +70 -0
  593. package/dist/testing/foundation.d.ts +41 -0
  594. package/dist/testing/foundation.js +517 -0
  595. package/dist/testing/index.d.ts +20 -0
  596. package/dist/testing/index.js +12 -0
  597. package/dist/testing/property.d.ts +40 -0
  598. package/dist/testing/property.js +95 -0
  599. package/dist/testing/simulate-cluster.d.ts +112 -0
  600. package/dist/testing/simulate-cluster.js +257 -0
  601. package/dist/testing/simulate.d.ts +90 -0
  602. package/dist/testing/simulate.js +127 -0
  603. package/package.json +1 -0
@@ -0,0 +1,121 @@
1
+ import { Latch } from "effect";
2
+ /**
3
+ * The most commands one turn batch runs. It stays below the 64 open
4
+ * subtransactions past which Postgres overflows its per-backend subtransaction
5
+ * cache, since a batch of an actor whose handlers issue statements can hold a
6
+ * savepoint per command.
7
+ */
8
+ export const BATCH_CAP = 32;
9
+ /**
10
+ * The most calls of one commutative reducer that one merged turn combines.
11
+ * Merging never waits for calls: it takes only those already waiting.
12
+ */
13
+ export const MERGE_CAP = 1024;
14
+ /**
15
+ * The most command ids an activation keeps to run alone after a failed batch.
16
+ * An id leaves the set when its retry is taken, and a caller that never
17
+ * retries would otherwise leave it for the activation's lifetime. Past the
18
+ * cap the oldest go first: an evicted id's late retry may join a batch again,
19
+ * which a retryable failure makes safe.
20
+ */
21
+ export const ALONE_CAP = BATCH_CAP * 32;
22
+ /** Adds `ids` to `alone` as its newest entries, then drops the oldest past `ALONE_CAP`. */
23
+ export const markAlone = ({ alone, ids, }) => {
24
+ for (const id of ids) {
25
+ alone.delete(id);
26
+ alone.add(id);
27
+ }
28
+ for (const oldest of alone) {
29
+ if (alone.size <= ALONE_CAP)
30
+ return;
31
+ alone.delete(oldest);
32
+ }
33
+ };
34
+ /** True when `next` joins a merged turn of `previous`'s commutative reducer. */
35
+ export const merges = ({ previous, next, }) => next.command.merge !== undefined && next.request.command === previous.request.command;
36
+ /**
37
+ * Removes the next batch from the front of `waiting`, in delivery order: the
38
+ * first command, then each command behind it that is already waiting, up to
39
+ * `BATCH_CAP` turns. Consecutive calls of one commutative reducer are one
40
+ * merged turn of up to `MERGE_CAP` calls. Nothing waits for more to arrive. A
41
+ * command joins a batch only once its own `queued` hook has finished, so the
42
+ * batch stops at the first command that is still in it, and takes nothing when
43
+ * that is the first.
44
+ *
45
+ * A batch stops before a command id it already holds, so a retry queued
46
+ * behind its original resolves through the receipt the original commits. It
47
+ * also stops before a command listed in `alone`, and such a command runs in a
48
+ * batch of its own, once: these are the commands of a batch that failed, run
49
+ * one per transaction until each has been processed.
50
+ */
51
+ export const takeBatch = ({ waiting, alone, }) => {
52
+ if (waiting[0]?.queued !== true)
53
+ return [];
54
+ const first = waiting.shift();
55
+ if (alone.delete(first.request.commandId))
56
+ return [first];
57
+ const batch = [first];
58
+ const ids = new Set([first.request.commandId]);
59
+ let turns = 1;
60
+ let merged = first.command.merge === undefined ? 0 : 1;
61
+ while (waiting.length > 0) {
62
+ const next = waiting[0];
63
+ const { commandId } = next.request;
64
+ if (!next.queued || ids.has(commandId) || alone.has(commandId))
65
+ break;
66
+ const joins = merged > 0 && merged < MERGE_CAP && merges({ previous: batch.at(-1), next });
67
+ if (!joins && turns === BATCH_CAP)
68
+ break;
69
+ if (joins)
70
+ merged += 1;
71
+ else {
72
+ turns += 1;
73
+ merged = next.command.merge === undefined ? 0 : 1;
74
+ }
75
+ ids.add(commandId);
76
+ batch.push(waiting.shift());
77
+ }
78
+ return batch;
79
+ };
80
+ /**
81
+ * One activation handler's waiting commands in arrival order, and its
82
+ * worker's wake-up. A command is offered as Cluster delivers it and becomes
83
+ * takeable once its `queued` hook finished; the wake-up stays open while the
84
+ * front command is takeable, so the worker never sleeps past ready work and a
85
+ * command whose hook is still running holds back every command behind it.
86
+ * `alone` outlives the handler: it holds the ids of a failed batch, each run
87
+ * in a transaction of its own once.
88
+ */
89
+ export const activationMailbox = (alone) => {
90
+ const waiting = [];
91
+ const ready = Latch.makeUnsafe(false);
92
+ return {
93
+ offer: (entry) => {
94
+ waiting.push(entry);
95
+ },
96
+ /** Marks `entry`'s `queued` hook finished, so a batch may take it. */
97
+ queued: (entry) => {
98
+ entry.queued = true;
99
+ ready.openUnsafe();
100
+ },
101
+ /** Waits until the front command may be takeable. */
102
+ await: ready.await,
103
+ /** The next batch, possibly empty; the wake-up closes once the front command is not takeable. */
104
+ take: () => {
105
+ const batch = takeBatch({ waiting, alone });
106
+ if (waiting[0]?.queued !== true)
107
+ ready.closeUnsafe();
108
+ return batch;
109
+ },
110
+ /** Puts taken commands back in front of everything that arrived since. */
111
+ requeue: (entries) => {
112
+ if (entries.length === 0)
113
+ return;
114
+ waiting.unshift(...entries);
115
+ ready.openUnsafe();
116
+ },
117
+ /** Runs each of `ids` alone once, the next time it is taken. */
118
+ isolate: (ids) => markAlone({ alone, ids }),
119
+ size: () => waiting.length,
120
+ };
121
+ };
@@ -0,0 +1,424 @@
1
+ import { type Crypto, Effect, Schema, Scope, Stream } from "effect";
2
+ import { Entity, Sharding } from "effect/cluster";
3
+ import { Rpc } from "effect/rpc";
4
+ import { SqlClient } from "effect/sql";
5
+ import { ActorError } from "../../errors/actor.ts";
6
+ import { DeliveryFailed } from "../request.ts";
7
+ import { type Registration } from "../members.ts";
8
+ import { ActorRef } from "../../identity/caller.ts";
9
+ import type { Authorize } from "../connections/streams.ts";
10
+ import type { Transport } from "../connections/transport.ts";
11
+ import { DefectLog } from "../telemetry/defects.ts";
12
+ /**
13
+ * The commands an activation holds, waiting and in its current batch, when its
14
+ * policy declares no `mailboxCapacity`. Cluster refuses the next, which
15
+ * dispatch answers `ActorUnavailable`: a hot actor's backlog then waits in its
16
+ * callers' retries, where it holds no memory or turn connection on this runner.
17
+ */
18
+ export declare const ACTIVATION_MAILBOX = 1024;
19
+ /** Encodes a tenant and actor id as the Cluster entity id. */
20
+ export declare const encodeEntityId: (tenantAndId: readonly [string, string]) => Effect.Effect<string, Schema.SchemaError, never>;
21
+ /**
22
+ * What a runner knows of one activation when a delivery to it times out: the
23
+ * handlers Cluster has built for it and whether one is being built, the
24
+ * worker's phase, the commands waiting in its mailbox and in its current
25
+ * batch, and whether an in-place restart is running.
26
+ */
27
+ export interface ActivationDiagnosis {
28
+ readonly handlers: number;
29
+ readonly building: boolean;
30
+ readonly worker: "none" | "idle" | "turn" | "workflow kick" | "restarting";
31
+ readonly mailbox: number;
32
+ readonly batch: number;
33
+ }
34
+ /** The command entity definition for an actor type, created once per name. */
35
+ export declare const commandEntity: (name: string) => Entity.Entity<string, Rpc.Rpc<"Execute", Schema.Struct<{
36
+ readonly ref: Schema.Struct<{
37
+ readonly tenant: Schema.NonEmptyString;
38
+ readonly actor: Schema.NonEmptyString;
39
+ readonly id: Schema.NonEmptyString;
40
+ }>;
41
+ readonly caller: Schema.toTaggedUnion<"_tag", readonly [Schema.TaggedStruct<"User", {
42
+ readonly subject: Schema.NonEmptyString;
43
+ }>, Schema.TaggedStruct<"Anonymous", {}>, Schema.TaggedStruct<"System", {
44
+ readonly source: Schema.Literals<readonly ["process", "actor", "timer", "cron", "workflow", "job", "subscription"]>;
45
+ readonly ref: Schema.optional<Schema.Struct<{
46
+ readonly tenant: Schema.NonEmptyString;
47
+ readonly actor: Schema.NonEmptyString;
48
+ readonly id: Schema.NonEmptyString;
49
+ }>>;
50
+ readonly onBehalfOf: Schema.optional<Schema.Struct<{
51
+ readonly subject: Schema.NonEmptyString;
52
+ }>>;
53
+ readonly mint: Schema.optional<Schema.Struct<{
54
+ readonly commandId: Schema.String;
55
+ readonly ordinal: Schema.Int;
56
+ }>>;
57
+ }>]>;
58
+ readonly command: Schema.NonEmptyString;
59
+ readonly commandId: Schema.String;
60
+ readonly payload: Schema.String;
61
+ readonly external: Schema.optionalKey<Schema.Boolean>;
62
+ readonly clockOffset: Schema.optionalKey<Schema.Finite>;
63
+ readonly redelivered: Schema.optionalKey<Schema.Boolean>;
64
+ readonly intent: Schema.optionalKey<Schema.Struct<{
65
+ readonly tenant: Schema.NonEmptyString;
66
+ readonly actor: Schema.NonEmptyString;
67
+ readonly id: Schema.NonEmptyString;
68
+ }>>;
69
+ readonly delivery: Schema.optionalKey<Schema.Struct<{
70
+ readonly subscription: Schema.NonEmptyString;
71
+ readonly sourceType: Schema.NonEmptyString;
72
+ readonly sourceId: Schema.NonEmptyString;
73
+ readonly epoch: Schema.String;
74
+ readonly kind: Schema.Literals<readonly ["event", "gap", "rejected"]>;
75
+ readonly position: Schema.String;
76
+ }>>;
77
+ readonly queuedAtMs: Schema.optionalKey<Schema.Finite>;
78
+ readonly usageToken: Schema.optionalKey<Schema.NonEmptyString>;
79
+ }>, Schema.Struct<{
80
+ readonly outcome: Schema.TaggedUnion<{
81
+ readonly Acknowledged: Schema.TaggedStruct<"Acknowledged", {
82
+ readonly reason: Schema.Literals<readonly ["AlreadyApplied", "Stale", "Unsubscribed", "NotCreated"]>;
83
+ }>;
84
+ readonly Defect: Schema.TaggedStruct<"Defect", {
85
+ readonly cause: Schema.Defect;
86
+ }>;
87
+ readonly Failure: Schema.TaggedStruct<"Failure", {
88
+ readonly value: Schema.String;
89
+ }>;
90
+ readonly Success: Schema.TaggedStruct<"Success", {
91
+ readonly value: Schema.String;
92
+ }>;
93
+ }>;
94
+ readonly version: Schema.optionalKey<Schema.String>;
95
+ readonly endedAtMs: Schema.optionalKey<Schema.Finite>;
96
+ readonly replayed: Schema.optionalKey<Schema.Boolean>;
97
+ }>, Schema.Union<readonly [typeof ActorError, typeof DeliveryFailed]>, never, never> | Rpc.Rpc<"Wake", Schema.Void, Schema.Void, Schema.Never, never, never>>;
98
+ /** The connection entity definition for an actor type, created once per name. */
99
+ export declare const connectionEntity: (name: string) => Entity.Entity<`${string}/Connections`, Rpc.Rpc<"Close", Schema.Struct<{
100
+ ref: Schema.Struct<{
101
+ readonly tenant: Schema.NonEmptyString;
102
+ readonly actor: Schema.NonEmptyString;
103
+ readonly id: Schema.NonEmptyString;
104
+ }>;
105
+ connectionId: Schema.String;
106
+ holder: Schema.String;
107
+ holderEpoch: Schema.String;
108
+ cause: typeof import("../../index.ts").SessionEnded;
109
+ }>, Schema.Void, typeof ActorError, never, never> | Rpc.Rpc<"Frame", Schema.Struct<{
110
+ ref: Schema.Struct<{
111
+ readonly tenant: Schema.NonEmptyString;
112
+ readonly actor: Schema.NonEmptyString;
113
+ readonly id: Schema.NonEmptyString;
114
+ }>;
115
+ connectionId: Schema.String;
116
+ holder: Schema.String;
117
+ holderEpoch: Schema.String;
118
+ seq: Schema.Finite;
119
+ frame: Schema.String;
120
+ authorizedUntil: Schema.Finite;
121
+ commands: Schema.Struct<{
122
+ readonly secret: Schema.String;
123
+ readonly seq: Schema.Finite;
124
+ readonly issuedAt: Schema.Finite;
125
+ readonly expiresAt: Schema.Finite;
126
+ }>;
127
+ }>, Schema.TaggedUnion<{
128
+ readonly Acked: Schema.TaggedStruct<"Acked", {
129
+ generation: Schema.String;
130
+ owner: Schema.String;
131
+ ownerEpoch: Schema.String;
132
+ }>;
133
+ readonly Closed: Schema.TaggedStruct<"Closed", {
134
+ readonly ended: typeof import("../../index.ts").SessionEnded;
135
+ }>;
136
+ }>, typeof ActorError, never, never> | Rpc.Rpc<"Open", Schema.Struct<{
137
+ ref: Schema.Struct<{
138
+ readonly tenant: Schema.NonEmptyString;
139
+ readonly actor: Schema.NonEmptyString;
140
+ readonly id: Schema.NonEmptyString;
141
+ }>;
142
+ connectionId: Schema.String;
143
+ holder: Schema.String;
144
+ holderEpoch: Schema.String;
145
+ member: Schema.String;
146
+ caller: Schema.toTaggedUnion<"_tag", readonly [Schema.TaggedStruct<"User", {
147
+ readonly subject: Schema.NonEmptyString;
148
+ }>, Schema.TaggedStruct<"Anonymous", {}>, Schema.TaggedStruct<"System", {
149
+ readonly source: Schema.Literals<readonly ["process", "actor", "timer", "cron", "workflow", "job", "subscription"]>;
150
+ readonly ref: Schema.optional<Schema.Struct<{
151
+ readonly tenant: Schema.NonEmptyString;
152
+ readonly actor: Schema.NonEmptyString;
153
+ readonly id: Schema.NonEmptyString;
154
+ }>>;
155
+ readonly onBehalfOf: Schema.optional<Schema.Struct<{
156
+ readonly subject: Schema.NonEmptyString;
157
+ }>>;
158
+ readonly mint: Schema.optional<Schema.Struct<{
159
+ readonly commandId: Schema.String;
160
+ readonly ordinal: Schema.Int;
161
+ }>>;
162
+ }>]>;
163
+ params: Schema.String;
164
+ commands: Schema.Struct<{
165
+ readonly secret: Schema.String;
166
+ readonly seq: Schema.Finite;
167
+ readonly issuedAt: Schema.Finite;
168
+ readonly expiresAt: Schema.Finite;
169
+ }>;
170
+ }>, Schema.TaggedUnion<{
171
+ readonly Failed: Schema.TaggedStruct<"Failed", {
172
+ readonly value: Schema.String;
173
+ }>;
174
+ readonly Opened: Schema.TaggedStruct<"Opened", {
175
+ readonly generation: Schema.String;
176
+ readonly owner: Schema.String;
177
+ readonly ownerEpoch: Schema.String;
178
+ readonly baseline: Schema.String;
179
+ readonly recovered: Schema.optional<Schema.Boolean>;
180
+ }>;
181
+ }>, typeof ActorError, never, never> | Rpc.Rpc<"Progress", Schema.Struct<{
182
+ ref: Schema.Struct<{
183
+ readonly tenant: Schema.NonEmptyString;
184
+ readonly actor: Schema.NonEmptyString;
185
+ readonly id: Schema.NonEmptyString;
186
+ }>;
187
+ jobId: Schema.String;
188
+ job: Schema.String;
189
+ attempt: Schema.Finite;
190
+ seq: Schema.Finite;
191
+ leaseUntil: Schema.Finite;
192
+ frame: Schema.String;
193
+ }>, Schema.Void, Schema.Never, never, never> | Rpc.Rpc<"ProgressClosed", Schema.Struct<{
194
+ ref: Schema.Struct<{
195
+ readonly tenant: Schema.NonEmptyString;
196
+ readonly actor: Schema.NonEmptyString;
197
+ readonly id: Schema.NonEmptyString;
198
+ }>;
199
+ jobId: Schema.String;
200
+ attempt: Schema.Finite;
201
+ }>, Schema.Void, Schema.Never, never, never> | Rpc.Rpc<"Resync", Schema.Struct<{
202
+ ref: Schema.Struct<{
203
+ readonly tenant: Schema.NonEmptyString;
204
+ readonly actor: Schema.NonEmptyString;
205
+ readonly id: Schema.NonEmptyString;
206
+ }>;
207
+ connectionId: Schema.String;
208
+ holder: Schema.String;
209
+ holderEpoch: Schema.String;
210
+ after: Schema.optional<Schema.String>;
211
+ authorizedUntil: Schema.Finite;
212
+ }>, Schema.TaggedUnion<{
213
+ readonly Closed: Schema.TaggedStruct<"Closed", {
214
+ readonly ended: typeof import("../../index.ts").SessionEnded;
215
+ }>;
216
+ readonly Replayed: Schema.TaggedStruct<"Replayed", {
217
+ generation: Schema.String;
218
+ owner: Schema.String;
219
+ ownerEpoch: Schema.String;
220
+ }>;
221
+ }>, typeof ActorError, never, never> | Rpc.Rpc<"Subscribe", Schema.Struct<{
222
+ member: Schema.String;
223
+ caller: Schema.toTaggedUnion<"_tag", readonly [Schema.TaggedStruct<"User", {
224
+ readonly subject: Schema.NonEmptyString;
225
+ }>, Schema.TaggedStruct<"Anonymous", {}>, Schema.TaggedStruct<"System", {
226
+ readonly source: Schema.Literals<readonly ["process", "actor", "timer", "cron", "workflow", "job", "subscription"]>;
227
+ readonly ref: Schema.optional<Schema.Struct<{
228
+ readonly tenant: Schema.NonEmptyString;
229
+ readonly actor: Schema.NonEmptyString;
230
+ readonly id: Schema.NonEmptyString;
231
+ }>>;
232
+ readonly onBehalfOf: Schema.optional<Schema.Struct<{
233
+ readonly subject: Schema.NonEmptyString;
234
+ }>>;
235
+ readonly mint: Schema.optional<Schema.Struct<{
236
+ readonly commandId: Schema.String;
237
+ readonly ordinal: Schema.Int;
238
+ }>>;
239
+ }>]>;
240
+ input: Schema.String;
241
+ authorizedUntil: Schema.Finite;
242
+ }>, import("effect/rpc/RpcSchema").Stream<Schema.TaggedUnion<{
243
+ readonly Done: Schema.TaggedStruct<"Done", {}>;
244
+ readonly Element: Schema.TaggedStruct<"Element", {
245
+ readonly value: Schema.String;
246
+ }>;
247
+ readonly Started: Schema.TaggedStruct<"Started", {
248
+ readonly owner: Schema.String;
249
+ readonly ownerEpoch: Schema.String;
250
+ }>;
251
+ }>, Schema.Union<readonly [typeof ActorError, Schema.TaggedStruct<"StreamFailed", {
252
+ readonly value: Schema.String;
253
+ }>]>>, Schema.Never, never, never>>;
254
+ /**
255
+ * Registers an actor type's command entity with Cluster and starts its
256
+ * activations, worker, and singleton keeper.
257
+ *
258
+ * - One worker per handler runs queued commands as turn batches in delivery
259
+ * order, so an activation has one transaction in flight. Commands enqueue
260
+ * synchronously when Cluster delivers the request, and replies follow the
261
+ * batch's commit; broadcasts go out first. With `pipelining`, the next batch
262
+ * already waiting is taken while the previous one commits. Its admission
263
+ * waits until a batch with a workflow command is published, because that
264
+ * batch's kick can re-arm a running execution's timer under the generation
265
+ * row lock the admission would hold, and the next batch may be the very call
266
+ * that execution's activity is waiting on.
267
+ * - A retryable failure committed nothing. The worker ends the activation,
268
+ * waits its backoff, starts the next one in place, and only then answers each
269
+ * unanswered command `ActorUnavailable`, so a caller never retries into the
270
+ * closed activation and never waits out its delivery timeout when Cluster
271
+ * would drop a re-sent command mid-restart (as during a database failover).
272
+ * Restarts never overlap because the one worker serializes them.
273
+ * - A defect aborts the whole batch; a following batch whose admission was
274
+ * already sent is rolled back unseen. After a deterministic defect the
275
+ * failed batch's commands rerun one per transaction so one bad command cannot
276
+ * keep rolling back its neighbours, and a lone command answers `Defect`.
277
+ * Defect hooks do not run, since they can loop on corrupt state. A defect
278
+ * after the batch committed lets redelivered commands replay their receipts.
279
+ * - Restart backoff is kept per activation, because Cluster's own is shared by
280
+ * every entity of the type and never resets.
281
+ * - Each handler's resources live in a child of the entity's scope, closed when
282
+ * a rebuild supersedes it, the handler closes, or the entity ends, because a
283
+ * defect during shutdown can drop the superseded handler's own scope.
284
+ * - Full-mailbox and full-runner rejections share one Cluster error; only an
285
+ * activation already resident can have a full mailbox, and a rebuilt handler
286
+ * can overlap its predecessor, hence the count.
287
+ * - A singleton starts only on the runner holding its shard's lease. Every
288
+ * runner serves its entity, and one keeper re-wakes the default tenant's
289
+ * instance so it moves to a survivor. A failing singleton build answers every
290
+ * command with its defect instead of retrying forever.
291
+ * - A draining runner refuses a batch, or interrupts its run at the deadline,
292
+ * and every unanswered caller retries elsewhere.
293
+ * - The turn span carries no captured stack: its call site is always this file.
294
+ */
295
+ export declare const registerActor: (registration: Registration, transport: Transport, authorize: Authorize, gate: {
296
+ run: <A, E, R>(turn: Effect.Effect<A, E, R>) => Effect.Effect<A, E | ActorError, R>;
297
+ readonly open: boolean;
298
+ close: Effect.Effect<void, never, never>;
299
+ expire: Effect.Effect<number, never, never>;
300
+ }, writable: Effect.Effect<void, ActorError, never>) => Effect.Effect<{
301
+ isResident: (entityId: string) => boolean;
302
+ owner: {
303
+ activations: Map<string, import("../connections/owner.ts").Activation>;
304
+ hasConnections: boolean;
305
+ hasStreams: boolean;
306
+ hasProgress: boolean;
307
+ progress: (activation: import("../connections/owner.ts").Activation, message: import("../connections/owner.ts").ProgressDelivery) => Effect.Effect<void, never, Entity.CurrentAddress | Sharding.Sharding | SqlClient.SqlClient>;
308
+ closeProgress: (activation: import("../connections/owner.ts").Activation, jobId: string) => Effect.Effect<void, never, SqlClient.SqlClient>;
309
+ progressClosed: (activation: import("../connections/owner.ts").Activation, message: {
310
+ readonly ref: ActorRef;
311
+ readonly jobId: string;
312
+ readonly attempt: number;
313
+ }) => Effect.Effect<void, never, SqlClient.SqlClient>;
314
+ feedBroadcasts: (committed: import("../turn/execute.ts").CommittedEvents) => Effect.Effect<import("../members.ts").Broadcast[], never, never>;
315
+ watchBroadcasts: (activation: import("../connections/owner.ts").Activation, writes: import("../connections/protocol.ts").WriteSet, version: string) => Effect.Effect<import("../members.ts").Broadcast[], never, never>;
316
+ hibernate: (entityId: string) => Effect.Effect<void, never, SqlClient.SqlClient>;
317
+ subscribe: (activation: import("../connections/owner.ts").Activation, request: {
318
+ readonly member: string;
319
+ readonly caller: import("../../index.ts").Caller;
320
+ readonly input: string;
321
+ readonly authorizedUntil: number;
322
+ }) => Stream.Stream<{
323
+ readonly _tag: "Done";
324
+ } | {
325
+ readonly _tag: "Element";
326
+ readonly value: string;
327
+ } | {
328
+ readonly _tag: "Started";
329
+ readonly owner: string;
330
+ readonly ownerEpoch: string;
331
+ }, ActorError | {
332
+ readonly _tag: "StreamFailed";
333
+ readonly value: string;
334
+ }, SqlClient.SqlClient>;
335
+ endStreams: (activation: import("../connections/owner.ts").Activation) => Effect.Effect<void, never, never>;
336
+ watchStreams: Effect.Effect<void, never, never>;
337
+ enter: (entityId: string, ref: ActorRef, key: bigint) => Effect.Effect<import("../connections/owner.ts").Activation, never, Scope.Scope | SqlClient.SqlClient>;
338
+ prepare: (activation: import("../connections/owner.ts").Activation) => Effect.Effect<void, never, Entity.CurrentAddress | Sharding.Sharding | SqlClient.SqlClient>;
339
+ list: (activation: import("../connections/owner.ts").Activation) => (member: string) => Effect.Effect<readonly import("../members.ts").OpenConnection[], never, never>;
340
+ flush: (activation: import("../connections/owner.ts").Activation, broadcasts: ReadonlyArray<import("../members.ts").Broadcast>, head: string, own?: {
341
+ readonly connectionId: string;
342
+ readonly member: string;
343
+ readonly frames: import("../members.ts").ConnectionResult["sends"];
344
+ readonly replay?: boolean;
345
+ }) => Effect.Effect<void, never, SqlClient.SqlClient>;
346
+ open: (activation: import("../connections/owner.ts").Activation, request: {
347
+ readonly ref: ActorRef;
348
+ readonly connectionId: string;
349
+ readonly holder: string;
350
+ readonly holderEpoch: string;
351
+ } & {
352
+ readonly member: string;
353
+ readonly caller: import("../../index.ts").Caller;
354
+ readonly params: string;
355
+ readonly commands: import("../../identity/connection.ts").ConnectionCommands;
356
+ }) => Effect.Effect<{
357
+ generation: string;
358
+ owner: string;
359
+ ownerEpoch: string;
360
+ _tag: "Opened";
361
+ baseline: string;
362
+ recovered: boolean;
363
+ value?: undefined;
364
+ } | {
365
+ _tag: "Failed";
366
+ value: string;
367
+ } | {
368
+ generation: string;
369
+ owner: string;
370
+ ownerEpoch: string;
371
+ value?: undefined;
372
+ _tag: "Opened";
373
+ baseline: string;
374
+ }, ActorError, Entity.CurrentAddress | Sharding.Sharding | SqlClient.SqlClient>;
375
+ frame: (activation: import("../connections/owner.ts").Activation, request: {
376
+ readonly ref: ActorRef;
377
+ readonly connectionId: string;
378
+ readonly holder: string;
379
+ readonly holderEpoch: string;
380
+ } & {
381
+ readonly seq: number;
382
+ readonly frame: string;
383
+ readonly authorizedUntil: number;
384
+ readonly commands: import("../../identity/connection.ts").ConnectionCommands;
385
+ }) => Effect.Effect<{
386
+ _tag: "Closed";
387
+ ended: import("../../index.ts").SessionEnded;
388
+ } | {
389
+ generation: string;
390
+ owner: string;
391
+ ownerEpoch: string;
392
+ _tag: "Acked";
393
+ }, ActorError, Entity.CurrentAddress | Sharding.Sharding | SqlClient.SqlClient>;
394
+ close: (activation: import("../connections/owner.ts").Activation, request: {
395
+ readonly ref: ActorRef;
396
+ readonly connectionId: string;
397
+ readonly holder: string;
398
+ readonly holderEpoch: string;
399
+ } & {
400
+ readonly cause: import("../../index.ts").SessionEnded;
401
+ }) => Effect.Effect<void, ActorError, Entity.CurrentAddress | Sharding.Sharding | SqlClient.SqlClient>;
402
+ resync: (activation: import("../connections/owner.ts").Activation, request: {
403
+ readonly ref: ActorRef;
404
+ readonly connectionId: string;
405
+ readonly holder: string;
406
+ readonly holderEpoch: string;
407
+ } & {
408
+ readonly after?: string | undefined;
409
+ readonly authorizedUntil: number;
410
+ }) => Effect.Effect<{
411
+ _tag: "Closed";
412
+ ended: import("../../index.ts").SessionEnded;
413
+ } | {
414
+ generation: string;
415
+ owner: string;
416
+ ownerEpoch: string;
417
+ _tag: "Replayed";
418
+ }, ActorError, Entity.CurrentAddress | Sharding.Sharding | SqlClient.SqlClient>;
419
+ };
420
+ /** This type's view of one activation, for a delivery that timed out. */
421
+ diagnose: (entityId: string) => ActivationDiagnosis;
422
+ /** Activations of this type being rebuilt or restarted in place now. */
423
+ restarting: () => string[];
424
+ }, never, Crypto.Crypto | DefectLog | Scope.Scope | Sharding.Sharding | SqlClient.SqlClient>;