reactor-effect-client 0.7.0 → 0.8.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 (514) hide show
  1. package/NOTICE +7 -2
  2. package/README.md +103 -141
  3. package/dist/Coordinator.d.ts +382 -0
  4. package/dist/Coordinator.d.ts.map +1 -0
  5. package/dist/Coordinator.js +732 -0
  6. package/dist/Coordinator.js.map +1 -0
  7. package/dist/H3.d.ts +159 -0
  8. package/dist/H3.d.ts.map +1 -0
  9. package/dist/H3.js +21 -0
  10. package/dist/H3.js.map +1 -0
  11. package/dist/H3Source.d.ts +93 -0
  12. package/dist/H3Source.d.ts.map +1 -0
  13. package/dist/H3Source.js +401 -0
  14. package/dist/H3Source.js.map +1 -0
  15. package/dist/LocalSource.d.ts +68 -0
  16. package/dist/LocalSource.d.ts.map +1 -0
  17. package/dist/LocalSource.js +354 -0
  18. package/dist/LocalSource.js.map +1 -0
  19. package/dist/Media.d.ts +106 -0
  20. package/dist/Media.d.ts.map +1 -0
  21. package/dist/Media.js +16 -0
  22. package/dist/Media.js.map +1 -0
  23. package/dist/Peer.d.ts +134 -0
  24. package/dist/Peer.d.ts.map +1 -0
  25. package/dist/Peer.js +57 -0
  26. package/dist/Peer.js.map +1 -0
  27. package/dist/Playout.d.ts +724 -0
  28. package/dist/Playout.d.ts.map +1 -0
  29. package/dist/Playout.js +28 -0
  30. package/dist/Playout.js.map +1 -0
  31. package/dist/Reactor.d.ts +135 -0
  32. package/dist/Reactor.d.ts.map +1 -0
  33. package/dist/Reactor.js +158 -0
  34. package/dist/Reactor.js.map +1 -0
  35. package/dist/ReactorError.d.ts +331 -0
  36. package/dist/ReactorError.d.ts.map +1 -0
  37. package/dist/ReactorError.js +316 -0
  38. package/dist/ReactorError.js.map +1 -0
  39. package/dist/ReactorTest.d.ts +383 -0
  40. package/dist/ReactorTest.d.ts.map +1 -0
  41. package/dist/ReactorTest.js +317 -0
  42. package/dist/ReactorTest.js.map +1 -0
  43. package/dist/Session.d.ts +314 -0
  44. package/dist/Session.d.ts.map +1 -0
  45. package/dist/Session.js +51 -0
  46. package/dist/Session.js.map +1 -0
  47. package/dist/index.d.ts +12 -22
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +12 -11
  50. package/dist/index.js.map +1 -1
  51. package/dist/internal/correlator.d.ts +46 -0
  52. package/dist/internal/correlator.d.ts.map +1 -0
  53. package/dist/internal/correlator.js +150 -0
  54. package/dist/internal/correlator.js.map +1 -0
  55. package/dist/internal/deadline.d.ts +24 -0
  56. package/dist/internal/deadline.d.ts.map +1 -0
  57. package/dist/internal/deadline.js +44 -0
  58. package/dist/internal/deadline.js.map +1 -0
  59. package/dist/{h3/_internal/contracts.d.ts → internal/h3/commands.d.ts} +39 -33
  60. package/dist/internal/h3/commands.d.ts.map +1 -0
  61. package/dist/internal/h3/commands.js +128 -0
  62. package/dist/internal/h3/commands.js.map +1 -0
  63. package/dist/{h3 → internal/h3}/messages.d.ts +16 -11
  64. package/dist/internal/h3/messages.d.ts.map +1 -0
  65. package/dist/{h3 → internal/h3}/messages.js +19 -31
  66. package/dist/internal/h3/messages.js.map +1 -0
  67. package/dist/internal/h3/operations.d.ts +145 -0
  68. package/dist/internal/h3/operations.d.ts.map +1 -0
  69. package/dist/internal/h3/operations.js +284 -0
  70. package/dist/internal/h3/operations.js.map +1 -0
  71. package/dist/{h3 → internal/h3}/profile.d.ts +63 -65
  72. package/dist/internal/h3/profile.d.ts.map +1 -0
  73. package/dist/{h3 → internal/h3}/profile.js +39 -39
  74. package/dist/internal/h3/profile.js.map +1 -0
  75. package/dist/internal/h3/provider.d.ts +14 -0
  76. package/dist/internal/h3/provider.d.ts.map +1 -0
  77. package/dist/internal/h3/provider.js +672 -0
  78. package/dist/internal/h3/provider.js.map +1 -0
  79. package/dist/internal/h3/references.d.ts +68 -0
  80. package/dist/internal/h3/references.d.ts.map +1 -0
  81. package/dist/internal/h3/references.js +339 -0
  82. package/dist/internal/h3/references.js.map +1 -0
  83. package/dist/internal/h3/request.d.ts +56 -0
  84. package/dist/internal/h3/request.d.ts.map +1 -0
  85. package/dist/internal/h3/request.js +70 -0
  86. package/dist/internal/h3/request.js.map +1 -0
  87. package/dist/internal/h3/state.d.ts +120 -0
  88. package/dist/internal/h3/state.d.ts.map +1 -0
  89. package/dist/internal/h3/state.js +270 -0
  90. package/dist/internal/h3/state.js.map +1 -0
  91. package/dist/{Submission.d.ts → internal/h3/submission.d.ts} +1 -3
  92. package/dist/internal/h3/submission.d.ts.map +1 -0
  93. package/dist/{Submission.js → internal/h3/submission.js} +1 -9
  94. package/dist/internal/h3/submission.js.map +1 -0
  95. package/dist/internal/hub.d.ts +32 -0
  96. package/dist/internal/hub.d.ts.map +1 -0
  97. package/dist/internal/hub.js +92 -0
  98. package/dist/internal/hub.js.map +1 -0
  99. package/dist/internal/playout/errors.d.ts +51 -0
  100. package/dist/internal/playout/errors.d.ts.map +1 -0
  101. package/dist/internal/playout/errors.js +40 -0
  102. package/dist/internal/playout/errors.js.map +1 -0
  103. package/dist/internal/playout/policy.d.ts +559 -0
  104. package/dist/internal/playout/policy.d.ts.map +1 -0
  105. package/dist/internal/playout/policy.js +2338 -0
  106. package/dist/internal/playout/policy.js.map +1 -0
  107. package/dist/internal/playout/runtime.d.ts +28 -0
  108. package/dist/internal/playout/runtime.d.ts.map +1 -0
  109. package/dist/internal/playout/runtime.js +766 -0
  110. package/dist/internal/playout/runtime.js.map +1 -0
  111. package/dist/internal/playout/tag.d.ts +14 -0
  112. package/dist/internal/playout/tag.d.ts.map +1 -0
  113. package/dist/internal/playout/tag.js +43 -0
  114. package/dist/internal/playout/tag.js.map +1 -0
  115. package/dist/internal/proto/reactor_wire/v1/common_pb.d.ts +55 -0
  116. package/dist/internal/proto/reactor_wire/v1/common_pb.d.ts.map +1 -0
  117. package/dist/internal/proto/reactor_wire/v1/common_pb.js +42 -0
  118. package/dist/internal/proto/reactor_wire/v1/common_pb.js.map +1 -0
  119. package/dist/internal/proto/reactor_wire/v1/control_pb.d.ts +160 -0
  120. package/dist/internal/proto/reactor_wire/v1/control_pb.d.ts.map +1 -0
  121. package/dist/internal/proto/reactor_wire/v1/control_pb.js +21 -0
  122. package/dist/internal/proto/reactor_wire/v1/control_pb.js.map +1 -0
  123. package/dist/internal/proto/reactor_wire/v1/data_pb.d.ts +89 -0
  124. package/dist/internal/proto/reactor_wire/v1/data_pb.d.ts.map +1 -0
  125. package/dist/internal/proto/reactor_wire/v1/data_pb.js +20 -0
  126. package/dist/internal/proto/reactor_wire/v1/data_pb.js.map +1 -0
  127. package/dist/internal/proto/reactor_wire/v1/model_pb.d.ts +85 -0
  128. package/dist/internal/proto/reactor_wire/v1/model_pb.d.ts.map +1 -0
  129. package/dist/internal/proto/reactor_wire/v1/model_pb.js +24 -0
  130. package/dist/internal/proto/reactor_wire/v1/model_pb.js.map +1 -0
  131. package/dist/internal/proto/reactor_wire/v1/platform_pb.d.ts +190 -0
  132. package/dist/internal/proto/reactor_wire/v1/platform_pb.d.ts.map +1 -0
  133. package/dist/internal/proto/reactor_wire/v1/platform_pb.js +54 -0
  134. package/dist/internal/proto/reactor_wire/v1/platform_pb.js.map +1 -0
  135. package/dist/internal/proto/reactor_wire/v1/track_pb.d.ts +88 -0
  136. package/dist/internal/proto/reactor_wire/v1/track_pb.d.ts.map +1 -0
  137. package/dist/internal/proto/reactor_wire/v1/track_pb.js +33 -0
  138. package/dist/internal/proto/reactor_wire/v1/track_pb.js.map +1 -0
  139. package/dist/internal/queue.d.ts +4 -0
  140. package/dist/internal/queue.d.ts.map +1 -0
  141. package/dist/{_internal → internal}/queue.js +0 -9
  142. package/dist/internal/queue.js.map +1 -0
  143. package/dist/internal/reactorTest/coordinator.d.ts +5 -0
  144. package/dist/internal/reactorTest/coordinator.d.ts.map +1 -0
  145. package/dist/internal/reactorTest/coordinator.js +178 -0
  146. package/dist/internal/reactorTest/coordinator.js.map +1 -0
  147. package/dist/internal/reactorTest/faults.d.ts +172 -0
  148. package/dist/internal/reactorTest/faults.d.ts.map +1 -0
  149. package/dist/internal/reactorTest/faults.js +23 -0
  150. package/dist/internal/reactorTest/faults.js.map +1 -0
  151. package/dist/internal/reactorTest/h3.d.ts +431 -0
  152. package/dist/internal/reactorTest/h3.d.ts.map +1 -0
  153. package/dist/internal/reactorTest/h3.js +625 -0
  154. package/dist/internal/reactorTest/h3.js.map +1 -0
  155. package/dist/internal/reactorTest/media.d.ts +22 -0
  156. package/dist/internal/reactorTest/media.d.ts.map +1 -0
  157. package/dist/internal/reactorTest/media.js +34 -0
  158. package/dist/internal/reactorTest/media.js.map +1 -0
  159. package/dist/internal/reactorTest/peer.d.ts +318 -0
  160. package/dist/internal/reactorTest/peer.d.ts.map +1 -0
  161. package/dist/internal/reactorTest/peer.js +206 -0
  162. package/dist/internal/reactorTest/peer.js.map +1 -0
  163. package/dist/internal/reactorTest/playout.d.ts +34 -0
  164. package/dist/internal/reactorTest/playout.d.ts.map +1 -0
  165. package/dist/internal/reactorTest/playout.js +340 -0
  166. package/dist/internal/reactorTest/playout.js.map +1 -0
  167. package/dist/internal/reactorTest/references.d.ts +25 -0
  168. package/dist/internal/reactorTest/references.d.ts.map +1 -0
  169. package/dist/{testing/Png.js → internal/reactorTest/references.js} +50 -12
  170. package/dist/internal/reactorTest/references.js.map +1 -0
  171. package/dist/internal/reactorTest/sessions.d.ts +364 -0
  172. package/dist/internal/reactorTest/sessions.d.ts.map +1 -0
  173. package/dist/internal/reactorTest/sessions.js +592 -0
  174. package/dist/internal/reactorTest/sessions.js.map +1 -0
  175. package/dist/internal/reactorTest/timing.d.ts +13 -0
  176. package/dist/internal/reactorTest/timing.d.ts.map +1 -0
  177. package/dist/internal/reactorTest/timing.js +20 -0
  178. package/dist/internal/reactorTest/timing.js.map +1 -0
  179. package/dist/internal/recording.d.ts +52 -0
  180. package/dist/internal/recording.d.ts.map +1 -0
  181. package/dist/internal/recording.js +141 -0
  182. package/dist/internal/recording.js.map +1 -0
  183. package/dist/internal/session/connect.d.ts +34 -0
  184. package/dist/internal/session/connect.d.ts.map +1 -0
  185. package/dist/internal/session/connect.js +502 -0
  186. package/dist/internal/session/connect.js.map +1 -0
  187. package/dist/internal/session/generation.d.ts +35 -0
  188. package/dist/internal/session/generation.d.ts.map +1 -0
  189. package/dist/internal/session/generation.js +185 -0
  190. package/dist/internal/session/generation.js.map +1 -0
  191. package/dist/internal/session/ice.d.ts +23 -0
  192. package/dist/internal/session/ice.d.ts.map +1 -0
  193. package/dist/internal/session/ice.js +57 -0
  194. package/dist/internal/session/ice.js.map +1 -0
  195. package/dist/internal/session/inbound.d.ts +50 -0
  196. package/dist/internal/session/inbound.d.ts.map +1 -0
  197. package/dist/internal/session/inbound.js +202 -0
  198. package/dist/internal/session/inbound.js.map +1 -0
  199. package/dist/internal/session/model.d.ts +163 -0
  200. package/dist/internal/session/model.d.ts.map +1 -0
  201. package/dist/internal/session/model.js +78 -0
  202. package/dist/internal/session/model.js.map +1 -0
  203. package/dist/internal/session/requests.d.ts +71 -0
  204. package/dist/internal/session/requests.d.ts.map +1 -0
  205. package/dist/internal/session/requests.js +240 -0
  206. package/dist/internal/session/requests.js.map +1 -0
  207. package/dist/internal/session/tracks.d.ts +21 -0
  208. package/dist/internal/session/tracks.d.ts.map +1 -0
  209. package/dist/internal/session/tracks.js +166 -0
  210. package/dist/internal/session/tracks.js.map +1 -0
  211. package/dist/internal/session/upload.d.ts +21 -0
  212. package/dist/internal/session/upload.d.ts.map +1 -0
  213. package/dist/internal/session/upload.js +68 -0
  214. package/dist/internal/session/upload.js.map +1 -0
  215. package/dist/internal/session.d.ts +66 -0
  216. package/dist/internal/session.d.ts.map +1 -0
  217. package/dist/internal/session.js +280 -0
  218. package/dist/internal/session.js.map +1 -0
  219. package/dist/{stats.d.ts → internal/stats.d.ts} +30 -16
  220. package/dist/internal/stats.d.ts.map +1 -0
  221. package/dist/internal/stats.js +201 -0
  222. package/dist/internal/stats.js.map +1 -0
  223. package/dist/internal/token.d.ts +22 -0
  224. package/dist/internal/token.d.ts.map +1 -0
  225. package/dist/internal/token.js +65 -0
  226. package/dist/internal/token.js.map +1 -0
  227. package/dist/internal/wire.d.ts +37 -0
  228. package/dist/internal/wire.d.ts.map +1 -0
  229. package/dist/internal/wire.js +49 -0
  230. package/dist/internal/wire.js.map +1 -0
  231. package/notices/bufbuild-protobuf-LICENSE +201 -0
  232. package/package.json +17 -38
  233. package/dist/FetchHttp.d.ts +0 -9
  234. package/dist/FetchHttp.d.ts.map +0 -1
  235. package/dist/FetchHttp.js +0 -63
  236. package/dist/FetchHttp.js.map +0 -1
  237. package/dist/PeerFactory.d.ts +0 -26
  238. package/dist/PeerFactory.d.ts.map +0 -1
  239. package/dist/PeerFactory.js +0 -4
  240. package/dist/PeerFactory.js.map +0 -1
  241. package/dist/PeerTypes.d.ts +0 -64
  242. package/dist/PeerTypes.d.ts.map +0 -1
  243. package/dist/PeerTypes.js +0 -2
  244. package/dist/PeerTypes.js.map +0 -1
  245. package/dist/Sequence.d.ts +0 -85
  246. package/dist/Sequence.d.ts.map +0 -1
  247. package/dist/Sequence.js +0 -210
  248. package/dist/Sequence.js.map +0 -1
  249. package/dist/SessionTypes.d.ts +0 -312
  250. package/dist/SessionTypes.d.ts.map +0 -1
  251. package/dist/SessionTypes.js +0 -19
  252. package/dist/SessionTypes.js.map +0 -1
  253. package/dist/Submission.d.ts.map +0 -1
  254. package/dist/Submission.js.map +0 -1
  255. package/dist/_internal/queue.d.ts +0 -6
  256. package/dist/_internal/queue.d.ts.map +0 -1
  257. package/dist/_internal/queue.js.map +0 -1
  258. package/dist/bytes.d.ts +0 -6
  259. package/dist/bytes.d.ts.map +0 -1
  260. package/dist/bytes.js +0 -32
  261. package/dist/bytes.js.map +0 -1
  262. package/dist/contract.d.ts +0 -149
  263. package/dist/contract.d.ts.map +0 -1
  264. package/dist/contract.js +0 -119
  265. package/dist/contract.js.map +0 -1
  266. package/dist/coordinator/_internal/client.d.ts +0 -215
  267. package/dist/coordinator/_internal/client.d.ts.map +0 -1
  268. package/dist/coordinator/_internal/client.js +0 -563
  269. package/dist/coordinator/_internal/client.js.map +0 -1
  270. package/dist/coordinator/_internal/recording.d.ts +0 -31
  271. package/dist/coordinator/_internal/recording.d.ts.map +0 -1
  272. package/dist/coordinator/_internal/recording.js +0 -123
  273. package/dist/coordinator/_internal/recording.js.map +0 -1
  274. package/dist/coordinator/_internal/response.d.ts +0 -15
  275. package/dist/coordinator/_internal/response.d.ts.map +0 -1
  276. package/dist/coordinator/_internal/response.js +0 -55
  277. package/dist/coordinator/_internal/response.js.map +0 -1
  278. package/dist/coordinator/_internal/schemas.d.ts +0 -73
  279. package/dist/coordinator/_internal/schemas.d.ts.map +0 -1
  280. package/dist/coordinator/_internal/schemas.js +0 -200
  281. package/dist/coordinator/_internal/schemas.js.map +0 -1
  282. package/dist/coordinator/index.d.ts +0 -40
  283. package/dist/coordinator/index.d.ts.map +0 -1
  284. package/dist/coordinator/index.js +0 -21
  285. package/dist/coordinator/index.js.map +0 -1
  286. package/dist/correlation.d.ts +0 -47
  287. package/dist/correlation.d.ts.map +0 -1
  288. package/dist/correlation.js +0 -131
  289. package/dist/correlation.js.map +0 -1
  290. package/dist/duration.d.ts +0 -27
  291. package/dist/duration.d.ts.map +0 -1
  292. package/dist/duration.js +0 -47
  293. package/dist/duration.js.map +0 -1
  294. package/dist/errors.d.ts +0 -1303
  295. package/dist/errors.d.ts.map +0 -1
  296. package/dist/errors.js +0 -745
  297. package/dist/errors.js.map +0 -1
  298. package/dist/h3/_internal/client.d.ts +0 -9
  299. package/dist/h3/_internal/client.d.ts.map +0 -1
  300. package/dist/h3/_internal/client.js +0 -652
  301. package/dist/h3/_internal/client.js.map +0 -1
  302. package/dist/h3/_internal/contracts.d.ts.map +0 -1
  303. package/dist/h3/_internal/contracts.js +0 -123
  304. package/dist/h3/_internal/contracts.js.map +0 -1
  305. package/dist/h3/_internal/deployment.d.ts +0 -8
  306. package/dist/h3/_internal/deployment.d.ts.map +0 -1
  307. package/dist/h3/_internal/deployment.js +0 -149
  308. package/dist/h3/_internal/deployment.js.map +0 -1
  309. package/dist/h3/_internal/evidence.d.ts +0 -17
  310. package/dist/h3/_internal/evidence.d.ts.map +0 -1
  311. package/dist/h3/_internal/evidence.js +0 -48
  312. package/dist/h3/_internal/evidence.js.map +0 -1
  313. package/dist/h3/_internal/operations.d.ts +0 -58
  314. package/dist/h3/_internal/operations.d.ts.map +0 -1
  315. package/dist/h3/_internal/operations.js +0 -268
  316. package/dist/h3/_internal/operations.js.map +0 -1
  317. package/dist/h3/_internal/references.d.ts +0 -24
  318. package/dist/h3/_internal/references.d.ts.map +0 -1
  319. package/dist/h3/_internal/references.js +0 -309
  320. package/dist/h3/_internal/references.js.map +0 -1
  321. package/dist/h3/_internal/request.d.ts +0 -21
  322. package/dist/h3/_internal/request.d.ts.map +0 -1
  323. package/dist/h3/_internal/request.js +0 -97
  324. package/dist/h3/_internal/request.js.map +0 -1
  325. package/dist/h3/_internal/retained.d.ts +0 -22
  326. package/dist/h3/_internal/retained.d.ts.map +0 -1
  327. package/dist/h3/_internal/retained.js +0 -89
  328. package/dist/h3/_internal/retained.js.map +0 -1
  329. package/dist/h3/_internal/state.d.ts +0 -44
  330. package/dist/h3/_internal/state.d.ts.map +0 -1
  331. package/dist/h3/_internal/state.js +0 -283
  332. package/dist/h3/_internal/state.js.map +0 -1
  333. package/dist/h3/index.d.ts +0 -10
  334. package/dist/h3/index.d.ts.map +0 -1
  335. package/dist/h3/index.js +0 -7
  336. package/dist/h3/index.js.map +0 -1
  337. package/dist/h3/messages.d.ts.map +0 -1
  338. package/dist/h3/messages.js.map +0 -1
  339. package/dist/h3/profile.d.ts.map +0 -1
  340. package/dist/h3/profile.js.map +0 -1
  341. package/dist/h3/types.d.ts +0 -291
  342. package/dist/h3/types.d.ts.map +0 -1
  343. package/dist/h3/types.js +0 -2
  344. package/dist/h3/types.js.map +0 -1
  345. package/dist/host.d.ts +0 -26
  346. package/dist/host.d.ts.map +0 -1
  347. package/dist/host.js +0 -20
  348. package/dist/host.js.map +0 -1
  349. package/dist/json.d.ts +0 -25
  350. package/dist/json.d.ts.map +0 -1
  351. package/dist/json.js +0 -143
  352. package/dist/json.js.map +0 -1
  353. package/dist/media-stream.d.ts +0 -10
  354. package/dist/media-stream.d.ts.map +0 -1
  355. package/dist/media-stream.js +0 -18
  356. package/dist/media-stream.js.map +0 -1
  357. package/dist/observation.d.ts +0 -38
  358. package/dist/observation.d.ts.map +0 -1
  359. package/dist/observation.js +0 -113
  360. package/dist/observation.js.map +0 -1
  361. package/dist/orchestration/elapsed.d.ts +0 -9
  362. package/dist/orchestration/elapsed.d.ts.map +0 -1
  363. package/dist/orchestration/elapsed.js +0 -8
  364. package/dist/orchestration/elapsed.js.map +0 -1
  365. package/dist/orchestration/h3-source.d.ts +0 -58
  366. package/dist/orchestration/h3-source.d.ts.map +0 -1
  367. package/dist/orchestration/h3-source.js +0 -362
  368. package/dist/orchestration/h3-source.js.map +0 -1
  369. package/dist/orchestration/index.d.ts +0 -17
  370. package/dist/orchestration/index.d.ts.map +0 -1
  371. package/dist/orchestration/index.js +0 -12
  372. package/dist/orchestration/index.js.map +0 -1
  373. package/dist/orchestration/media-buffer.d.ts +0 -32
  374. package/dist/orchestration/media-buffer.d.ts.map +0 -1
  375. package/dist/orchestration/media-buffer.js +0 -94
  376. package/dist/orchestration/media-buffer.js.map +0 -1
  377. package/dist/orchestration/open-h3.d.ts +0 -101
  378. package/dist/orchestration/open-h3.d.ts.map +0 -1
  379. package/dist/orchestration/open-h3.js +0 -127
  380. package/dist/orchestration/open-h3.js.map +0 -1
  381. package/dist/orchestration/queries.d.ts +0 -10
  382. package/dist/orchestration/queries.d.ts.map +0 -1
  383. package/dist/orchestration/queries.js +0 -43
  384. package/dist/orchestration/queries.js.map +0 -1
  385. package/dist/orchestration/references.d.ts +0 -18
  386. package/dist/orchestration/references.d.ts.map +0 -1
  387. package/dist/orchestration/references.js +0 -79
  388. package/dist/orchestration/references.js.map +0 -1
  389. package/dist/orchestration/renewal-state.d.ts +0 -84
  390. package/dist/orchestration/renewal-state.d.ts.map +0 -1
  391. package/dist/orchestration/renewal-state.js +0 -95
  392. package/dist/orchestration/renewal-state.js.map +0 -1
  393. package/dist/orchestration/renewal.d.ts +0 -103
  394. package/dist/orchestration/renewal.d.ts.map +0 -1
  395. package/dist/orchestration/renewal.js +0 -1088
  396. package/dist/orchestration/renewal.js.map +0 -1
  397. package/dist/orchestration/request.d.ts +0 -65
  398. package/dist/orchestration/request.d.ts.map +0 -1
  399. package/dist/orchestration/request.js +0 -134
  400. package/dist/orchestration/request.js.map +0 -1
  401. package/dist/orchestration/retention.d.ts +0 -100
  402. package/dist/orchestration/retention.d.ts.map +0 -1
  403. package/dist/orchestration/retention.js +0 -134
  404. package/dist/orchestration/retention.js.map +0 -1
  405. package/dist/orchestration/routing.d.ts +0 -21
  406. package/dist/orchestration/routing.d.ts.map +0 -1
  407. package/dist/orchestration/routing.js +0 -93
  408. package/dist/orchestration/routing.js.map +0 -1
  409. package/dist/orchestration/scheduler-key.d.ts +0 -14
  410. package/dist/orchestration/scheduler-key.d.ts.map +0 -1
  411. package/dist/orchestration/scheduler-key.js +0 -62
  412. package/dist/orchestration/scheduler-key.js.map +0 -1
  413. package/dist/orchestration/scheduler-policy.d.ts +0 -222
  414. package/dist/orchestration/scheduler-policy.d.ts.map +0 -1
  415. package/dist/orchestration/scheduler-policy.js +0 -582
  416. package/dist/orchestration/scheduler-policy.js.map +0 -1
  417. package/dist/orchestration/scheduler.d.ts +0 -383
  418. package/dist/orchestration/scheduler.d.ts.map +0 -1
  419. package/dist/orchestration/scheduler.js +0 -2597
  420. package/dist/orchestration/scheduler.js.map +0 -1
  421. package/dist/orchestration/source-slot.d.ts +0 -124
  422. package/dist/orchestration/source-slot.d.ts.map +0 -1
  423. package/dist/orchestration/source-slot.js +0 -348
  424. package/dist/orchestration/source-slot.js.map +0 -1
  425. package/dist/orchestration/types.d.ts +0 -1462
  426. package/dist/orchestration/types.d.ts.map +0 -1
  427. package/dist/orchestration/types.js +0 -135
  428. package/dist/orchestration/types.js.map +0 -1
  429. package/dist/protobuf.d.ts +0 -63
  430. package/dist/protobuf.d.ts.map +0 -1
  431. package/dist/protobuf.js +0 -252
  432. package/dist/protobuf.js.map +0 -1
  433. package/dist/session/_internal/acquire.d.ts +0 -21
  434. package/dist/session/_internal/acquire.d.ts.map +0 -1
  435. package/dist/session/_internal/acquire.js +0 -168
  436. package/dist/session/_internal/acquire.js.map +0 -1
  437. package/dist/session/_internal/cleanup.d.ts +0 -19
  438. package/dist/session/_internal/cleanup.d.ts.map +0 -1
  439. package/dist/session/_internal/cleanup.js +0 -102
  440. package/dist/session/_internal/cleanup.js.map +0 -1
  441. package/dist/session/_internal/lifecycle.d.ts +0 -67
  442. package/dist/session/_internal/lifecycle.d.ts.map +0 -1
  443. package/dist/session/_internal/lifecycle.js +0 -142
  444. package/dist/session/_internal/lifecycle.js.map +0 -1
  445. package/dist/session/_internal/remote.d.ts +0 -28
  446. package/dist/session/_internal/remote.d.ts.map +0 -1
  447. package/dist/session/_internal/remote.js +0 -71
  448. package/dist/session/_internal/remote.js.map +0 -1
  449. package/dist/session/_internal/uploads.d.ts +0 -7
  450. package/dist/session/_internal/uploads.d.ts.map +0 -1
  451. package/dist/session/_internal/uploads.js +0 -31
  452. package/dist/session/_internal/uploads.js.map +0 -1
  453. package/dist/session/commands.d.ts +0 -2
  454. package/dist/session/commands.d.ts.map +0 -1
  455. package/dist/session/commands.js +0 -2
  456. package/dist/session/commands.js.map +0 -1
  457. package/dist/session/files.d.ts +0 -21
  458. package/dist/session/files.d.ts.map +0 -1
  459. package/dist/session/files.js +0 -49
  460. package/dist/session/files.js.map +0 -1
  461. package/dist/session/index.d.ts +0 -84
  462. package/dist/session/index.d.ts.map +0 -1
  463. package/dist/session/index.js +0 -16
  464. package/dist/session/index.js.map +0 -1
  465. package/dist/session/media.d.ts +0 -114
  466. package/dist/session/media.d.ts.map +0 -1
  467. package/dist/session/media.js +0 -2
  468. package/dist/session/media.js.map +0 -1
  469. package/dist/session/recorder.d.ts +0 -24
  470. package/dist/session/recorder.d.ts.map +0 -1
  471. package/dist/session/recorder.js +0 -19
  472. package/dist/session/recorder.js.map +0 -1
  473. package/dist/session.d.ts +0 -105
  474. package/dist/session.d.ts.map +0 -1
  475. package/dist/session.js +0 -976
  476. package/dist/session.js.map +0 -1
  477. package/dist/simulation/_internal/source.d.ts +0 -12
  478. package/dist/simulation/_internal/source.d.ts.map +0 -1
  479. package/dist/simulation/_internal/source.js +0 -513
  480. package/dist/simulation/_internal/source.js.map +0 -1
  481. package/dist/simulation/index.d.ts +0 -13
  482. package/dist/simulation/index.d.ts.map +0 -1
  483. package/dist/simulation/index.js +0 -12
  484. package/dist/simulation/index.js.map +0 -1
  485. package/dist/simulation/types.d.ts +0 -39
  486. package/dist/simulation/types.d.ts.map +0 -1
  487. package/dist/simulation/types.js +0 -2
  488. package/dist/simulation/types.js.map +0 -1
  489. package/dist/stats.d.ts.map +0 -1
  490. package/dist/stats.js +0 -205
  491. package/dist/stats.js.map +0 -1
  492. package/dist/testing/Faults.d.ts +0 -4
  493. package/dist/testing/Faults.d.ts.map +0 -1
  494. package/dist/testing/Faults.js +0 -7
  495. package/dist/testing/Faults.js.map +0 -1
  496. package/dist/testing/Png.d.ts +0 -3
  497. package/dist/testing/Png.d.ts.map +0 -1
  498. package/dist/testing/Png.js.map +0 -1
  499. package/dist/testing/Wav.d.ts +0 -14
  500. package/dist/testing/Wav.d.ts.map +0 -1
  501. package/dist/testing/Wav.js +0 -37
  502. package/dist/testing/Wav.js.map +0 -1
  503. package/dist/testing/index.d.ts +0 -5
  504. package/dist/testing/index.d.ts.map +0 -1
  505. package/dist/testing/index.js +0 -4
  506. package/dist/testing/index.js.map +0 -1
  507. package/dist/wire.d.ts +0 -7
  508. package/dist/wire.d.ts.map +0 -1
  509. package/dist/wire.generated.d.ts +0 -305
  510. package/dist/wire.generated.d.ts.map +0 -1
  511. package/dist/wire.generated.js +0 -1257
  512. package/dist/wire.generated.js.map +0 -1
  513. package/dist/wire.js +0 -5
  514. package/dist/wire.js.map +0 -1
@@ -0,0 +1,128 @@
1
+ /**
2
+ * H3's commands: each one's arguments and the message it replies with, and
3
+ * the check that a deployment's OpenAPI document offers them.
4
+ */
5
+ import * as Result from "effect/Result";
6
+ import * as Schema from "effect/Schema";
7
+ import * as Struct from "effect/Struct";
8
+ import { ReactorError } from "../../ReactorError.js";
9
+ import { documentedVersion, modelName, source } from "./profile.js";
10
+ const Upload = Schema.Struct({
11
+ upload_id: Schema.String,
12
+ name: Schema.String,
13
+ mime_type: Schema.String,
14
+ size: Schema.Int,
15
+ });
16
+ const NoArguments = Schema.Record(Schema.String, Schema.Never);
17
+ /**
18
+ * One command-to-reply authority for the client, the simulated model and the
19
+ * deployment check. Required keys are what this adapter always sends;
20
+ * nullable parameters follow the documented deployment shape.
21
+ */
22
+ export const Commands = {
23
+ enqueue: {
24
+ args: Schema.Struct({
25
+ prompt: Schema.String,
26
+ reference_images: Upload.pipe(Schema.Array, Schema.NullOr),
27
+ reference_audios: Upload.pipe(Schema.Array, Schema.NullOr, Schema.optionalKey),
28
+ seconds: Schema.Finite.pipe(Schema.NullOr, Schema.optionalKey),
29
+ seed: Schema.Int.pipe(Schema.NullOr, Schema.optionalKey),
30
+ position: Schema.Int.pipe(Schema.NullOr, Schema.optionalKey),
31
+ metadata: Schema.String,
32
+ continue_from_clip_id: Schema.optionalKey(Schema.String),
33
+ }),
34
+ reply: "clip_queued",
35
+ },
36
+ move: {
37
+ args: Schema.Struct({ clip_id: Schema.String, position: Schema.Int }),
38
+ reply: "clip_moved",
39
+ },
40
+ pop: { args: Schema.Struct({ clip_id: Schema.String }), reply: "clip_popped" },
41
+ play: { args: Schema.Struct({ clip_id: Schema.String }), reply: null },
42
+ stop: { args: NoArguments, reply: null },
43
+ set_seed: { args: Schema.Struct({ seed: Schema.Int }), reply: "seed_accepted" },
44
+ set_clip_seconds: {
45
+ args: Schema.Struct({ seconds: Schema.Finite }),
46
+ reply: "clip_length_accepted",
47
+ },
48
+ set_canvas: { args: Schema.Struct({ aspect: Schema.String }), reply: "canvas_accepted" },
49
+ set_autoplay: { args: Schema.Struct({ enabled: Schema.Boolean }), reply: "autoplay_accepted" },
50
+ set_flush_on_clip_end: {
51
+ args: Schema.Struct({ enabled: Schema.Boolean }),
52
+ reply: "flush_accepted",
53
+ },
54
+ get_queue: { args: NoArguments, reply: "queue_update" },
55
+ get_state: { args: NoArguments, reply: "state_update" },
56
+ reset: { args: NoArguments, reply: "session_reset" },
57
+ };
58
+ /** What a provider needs to start: it enqueues, and reads the state and queue in full. */
59
+ const required = ["enqueue", "get_state", "get_queue"];
60
+ const Operation = Schema.Struct({
61
+ post: Schema.Struct({
62
+ requestBody: Schema.optionalKey(Schema.Struct({
63
+ content: Schema.Struct({
64
+ "application/json": Schema.Struct({ schema: Schema.Json }),
65
+ }),
66
+ })),
67
+ }),
68
+ });
69
+ const Document = Schema.Struct({
70
+ openapi: Schema.String.check(Schema.isPattern(/^3\.[01]\./)),
71
+ info: Schema.optionalKey(Schema.Struct({
72
+ title: Schema.optionalKey(Schema.String),
73
+ version: Schema.optionalKey(Schema.String),
74
+ })),
75
+ paths: Schema.Record(Schema.String, Schema.Json),
76
+ components: Schema.optionalKey(Schema.Struct({ schemas: Schema.optionalKey(Schema.Record(Schema.String, Schema.Json)) })),
77
+ });
78
+ const Properties = Schema.Struct({ properties: Schema.Record(Schema.String, Schema.Json) });
79
+ const Reference = Schema.Struct({ $ref: Schema.String });
80
+ const incompatible = (reason) => ReactorError.fromCode("UnsupportedCapability", `Deployment does not offer H3 ${documentedVersion}: ${reason}`, { operation: "H3 schema", outcome: "not-submitted" });
81
+ /**
82
+ * Admits a deployment whose OpenAPI document offers the commands a provider
83
+ * needs to start, and records which others it offers. Payloads are checked
84
+ * where they arrive: a message that does not match its Schema fails the
85
+ * provider as `Protocol`.
86
+ */
87
+ export const deploymentContract = (openapi) => Result.gen(function* () {
88
+ const document = yield* Result.mapError(Schema.decodeUnknownResult(Document)(openapi), () => incompatible("not an OpenAPI 3.0 or 3.1 document"));
89
+ const components = document.components?.schemas ?? {};
90
+ const resolve = (schema) => {
91
+ const reference = Schema.decodeUnknownResult(Reference)(schema);
92
+ if (Result.isFailure(reference))
93
+ return schema;
94
+ const name = reference.success.$ref.replace("#/components/schemas/", "");
95
+ return components[name] ?? schema;
96
+ };
97
+ let referenceAudio = false;
98
+ const commands = new Set();
99
+ for (const name of Struct.keys(Commands)) {
100
+ const operation = Schema.decodeUnknownResult(Operation)(document.paths[`/events/${name}`]);
101
+ if (Result.isFailure(operation)) {
102
+ if (required.includes(name))
103
+ return yield* Result.fail(incompatible(`command ${name}`));
104
+ continue;
105
+ }
106
+ commands.add(name);
107
+ if (name !== "enqueue")
108
+ continue;
109
+ const body = operation.success.post.requestBody?.content["application/json"].schema;
110
+ const declared = body === undefined ? undefined : Schema.decodeUnknownResult(Properties)(resolve(body));
111
+ referenceAudio =
112
+ declared !== undefined &&
113
+ Result.isSuccess(declared) &&
114
+ Object.hasOwn(declared.success.properties, "reference_audios");
115
+ }
116
+ return {
117
+ modelName,
118
+ documentedVersion,
119
+ source,
120
+ referenceAudio,
121
+ commands,
122
+ deployment: {
123
+ title: document.info?.title ?? null,
124
+ version: document.info?.version ?? null,
125
+ },
126
+ };
127
+ });
128
+ //# sourceMappingURL=commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/internal/h3/commands.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ import * as Result from "effect/Result";
1
2
  import * as Schema from "effect/Schema";
2
- import type { JsonObject } from "../json.js";
3
+ import { ReactorError } from "../../ReactorError.js";
3
4
  /** Required fields follow the H3 Reference Turbo Realtime 0.5.5 documentation. */
4
5
  export declare const Clip: Schema.Struct<{
5
6
  readonly clip_id: Schema.String;
@@ -299,21 +300,25 @@ export declare const Payloads: {
299
300
  };
300
301
  export type MessageType = keyof typeof Payloads;
301
302
  export type Payload<K extends MessageType> = (typeof Payloads)[K]["Type"];
302
- export type Message = {
303
- [K in MessageType]: {
304
- readonly type: K;
305
- readonly data: Payload<K>;
303
+ export type Message<K extends MessageType = MessageType> = {
304
+ [P in K]: {
305
+ readonly type: P;
306
+ readonly data: Payload<P>;
306
307
  };
307
- }[MessageType];
308
+ }[K];
308
309
  export type DecodedMessage = Message | {
309
310
  readonly type: "unknown";
310
311
  readonly name: string;
311
- readonly data: JsonObject | undefined;
312
+ readonly data: Schema.JsonObject | undefined;
312
313
  };
313
314
  /**
314
- * Unknown events remain observable. A known message never accepts a partial
315
- * payload: its Schema, cross-field rules included, rejects it as Protocol, and
316
- * a bug in these checks stays a defect.
315
+ * Unknown events stay observable. A known message never accepts a partial
316
+ * payload: its Schema, cross-field rules included, rejects it as `Protocol`,
317
+ * and the `SchemaError`, which names the path but no input value, stays in
318
+ * the error's detail.
317
319
  */
318
- export declare const decodeMessage: (type: string, input: unknown) => DecodedMessage;
320
+ export declare const decodeMessage: ({ type, data, }: {
321
+ readonly type: string;
322
+ readonly data?: Schema.JsonObject | undefined;
323
+ }) => Result.Result<DecodedMessage, ReactorError>;
319
324
  //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/internal/h3/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,kFAAkF;AAClF,eAAO,MAAM,IAAI;;;;;;;;;;;;EAYf,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC;AAWpC;;;;GAIG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBjB,CAAC;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC;AAEtC,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;EA+BjB,CAAC;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC;AAEtC,eAAO,MAAM,QAAQ;aACnB,WAAW;;;;;;;;;;;;;;;aACX,UAAU;;;;;;;;;;;;;;;;;aAKV,WAAW;;;;;;;;;;;;;;;aACX,cAAc;;;;;;;;;;;;;;;aACd,WAAW;;;;;;;;;;;;;;;;aACX,YAAY;;;;;;;;;;;;;;;aACZ,aAAa;;;;;;;;;;;;;;;;aACb,YAAY;;;;;;;;;;;;;;;;aACZ,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aACZ,YAAY;;;;;;;;;;;;;;;;;;;;aACZ,aAAa;;;;aACb,aAAa;;;aACb,oBAAoB;;;;aACpB,eAAe;;;;;aACf,iBAAiB;;;aACjB,cAAc;;;aACd,aAAa;;;;CACL,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,QAAQ,CAAC;AAChD,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,WAAW,IAAI,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1E,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI;KACxD,CAAC,IAAI,CAAC,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;KAAE;CAC1D,CAAC,CAAC,CAAC,CAAC;AACL,MAAM,MAAM,cAAc,GACtB,OAAO,GACP;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;CAC9C,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,aAAa,oBAGvB;IACD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;CAC/C,KAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,CAG7C,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import * as Result from "effect/Result";
2
2
  import * as Schema from "effect/Schema";
3
- import { ReactorError } from "../errors.js";
4
- import { jsonObject } from "../json.js";
3
+ import { ReactorError } from "../../ReactorError.js";
5
4
  const Positive = Schema.Int.check(Schema.isGreaterThan(0));
6
5
  const Id = Schema.String.check(Schema.isUUID());
7
6
  /** Required fields follow the H3 Reference Turbo Realtime 0.5.5 documentation. */
@@ -76,8 +75,8 @@ export const State = Schema.Struct({
76
75
  issues.push({ path: ["clip_seconds_max"], issue: "must be at least clip_seconds_min" });
77
76
  if (state.clip_seconds <= 0)
78
77
  issues.push({ path: ["clip_seconds"], issue: "must be positive" });
79
- if (state.playing !== (state.playing_clip_id !== null))
80
- issues.push({ path: ["playing_clip_id"], issue: "must be set exactly while playing" });
78
+ // `playing` also covers a clip armed for its seam, and H3 does not say whether
79
+ // `playing_clip_id` names that clip yet, so the two are not held to agree.
81
80
  return issues;
82
81
  }));
83
82
  export const Payloads = {
@@ -103,34 +102,23 @@ export const Payloads = {
103
102
  flush_accepted: Schema.Struct({ enabled: Schema.Boolean }),
104
103
  session_reset: Schema.Struct({ cleared_clips: Schema.Natural, was_playing: Schema.Boolean }),
105
104
  };
106
- const freeze = (value) => {
107
- if (value !== null && typeof value === "object") {
108
- for (const child of Object.values(value))
109
- freeze(child);
110
- Object.freeze(value);
111
- }
112
- return value;
113
- };
114
- /** The `SchemaError`, which names the path but no input value, stays in `detail`. */
115
- const malformed = (type, cause) => ReactorError.fromCode("Protocol", `H3 ${type} payload is malformed`, {
116
- operation: "h3 observation",
117
- detail: cause,
118
- });
119
105
  /**
120
- * Unknown events remain observable. A known message never accepts a partial
121
- * payload: its Schema, cross-field rules included, rejects it as Protocol, and
122
- * a bug in these checks stays a defect.
106
+ * Unknown events stay observable. A known message never accepts a partial
107
+ * payload: its Schema, cross-field rules included, rejects it as `Protocol`,
108
+ * and the `SchemaError`, which names the path but no input value, stays in
109
+ * the error's detail.
123
110
  */
124
- export const decodeMessage = (type, input) => {
125
- if (!Object.hasOwn(Payloads, type))
126
- return Object.freeze({
127
- type: "unknown",
128
- name: type,
129
- data: input === undefined ? undefined : jsonObject(input),
130
- });
131
- const decoded = Schema.decodeUnknownResult(Payloads[type])(input);
132
- if (Result.isFailure(decoded))
133
- throw malformed(type, decoded.failure);
134
- return freeze({ type, data: decoded.success });
111
+ export const decodeMessage = ({ type, data, }) => {
112
+ if (!isMessageType(type))
113
+ return Result.succeed({ type: "unknown", name: type, data });
114
+ return decodeKnown(type, data);
135
115
  };
116
+ const decodeKnown = (type, data) => Result.mapBoth(Schema.decodeUnknownResult(Payloads[type])(data), {
117
+ onFailure: (cause) => ReactorError.fromCode("Protocol", `H3 ${type} payload is malformed`, {
118
+ operation: "H3 observation",
119
+ detail: cause,
120
+ }),
121
+ onSuccess: (decoded) => ({ type, data: decoded }),
122
+ });
123
+ const isMessageType = (type) => Object.hasOwn(Payloads, type);
136
124
  //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/internal/h3/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Clip operations by submission: what the provider's evidence established
3
+ * about each committed clip, from acceptance to its end. Every transition is
4
+ * pure and returns the waiters it completes, run once the new table is in place.
5
+ */
6
+ import * as Deferred from "effect/Deferred";
7
+ import * as Effect from "effect/Effect";
8
+ import * as Exit from "effect/Exit";
9
+ import * as Result from "effect/Result";
10
+ import { CommandFailure, ReactorError } from "../../ReactorError.js";
11
+ import type { CommandReply } from "../../Session.js";
12
+ import type { Clip, DecodedMessage, MessageType } from "./messages.js";
13
+ import type { Acceptance, Identity } from "./state.js";
14
+ /** A phase a clip can be awaited to reach. */
15
+ export type ClipPhase = "generated" | "started";
16
+ /** One piece of evidence about a clip, and the transport generation that carried it. */
17
+ export interface ClipFact {
18
+ readonly clipId: string;
19
+ /** The lifecycle message that established it, or the snapshot that listed the clip. */
20
+ readonly message: MessageType;
21
+ readonly transportGeneration: bigint;
22
+ readonly source: CommandReply;
23
+ }
24
+ /** What one clip operation has established so far; monotone. */
25
+ export interface OperationFacts {
26
+ readonly submissionId: string;
27
+ readonly acceptance?: Acceptance;
28
+ readonly generated?: ClipFact;
29
+ readonly started?: ClipFact;
30
+ readonly ended?: ClipFact;
31
+ /** The provider retired before evidence decided the rest. */
32
+ readonly indeterminate: boolean;
33
+ }
34
+ /**
35
+ * A committed clip's facts as they arrive, each resolved at most once from the
36
+ * provider's own evidence, and a phase only once the acceptance is decided. A
37
+ * phase completes when it or a later one is observed, fails with `ClipEnded`
38
+ * when the clip failed or was popped first, and fails `Indeterminate` if the
39
+ * provider retires before evidence decides it. Every fact fails with the
40
+ * enqueue's own failure when that failure was definite. Evidence from a later
41
+ * transport generation of the same session still resolves the operation.
42
+ */
43
+ export interface ClipOperation {
44
+ readonly submissionId: string;
45
+ readonly accepted: Effect.Effect<Acceptance, ReactorError | CommandFailure>;
46
+ readonly reached: (phase: ClipPhase) => Effect.Effect<ClipFact, ReactorError | CommandFailure>;
47
+ readonly ended: Effect.Effect<ClipFact, ReactorError | CommandFailure>;
48
+ readonly facts: Effect.Effect<OperationFacts>;
49
+ }
50
+ type Failure = ReactorError | CommandFailure;
51
+ export interface Waiters {
52
+ readonly accepted: Deferred.Deferred<Acceptance, Failure>;
53
+ readonly generated: Deferred.Deferred<ClipFact, Failure>;
54
+ readonly started: Deferred.Deferred<ClipFact, Failure>;
55
+ readonly finished: Deferred.Deferred<ClipFact, Failure>;
56
+ }
57
+ export interface Operation {
58
+ readonly identity: Identity;
59
+ readonly waiters: Waiters;
60
+ readonly acceptance: Acceptance | undefined;
61
+ /** The clip the evidence names, known before the acceptance is decided. */
62
+ readonly clipId: string | undefined;
63
+ readonly generated: ClipFact | undefined;
64
+ readonly started: ClipFact | undefined;
65
+ readonly ended: ClipFact | undefined;
66
+ readonly indeterminate: boolean;
67
+ /** Decided without a clip: the enqueue's failure was definite. */
68
+ readonly rejected: boolean;
69
+ readonly holders: number;
70
+ }
71
+ export interface Table {
72
+ readonly capacity: number;
73
+ readonly operations: ReadonlyMap<string, Operation>;
74
+ readonly byClip: ReadonlyMap<string, string>;
75
+ }
76
+ export type Step = readonly [Table, ReadonlyArray<Effect.Effect<void>>];
77
+ export declare const empty: (capacity: number) => Table;
78
+ export declare const makeWaiters: Effect.Effect<Waiters>;
79
+ /**
80
+ * Takes a slot for a submission about to dispatch. Operations that ended are
81
+ * evicted first, oldest first; a table of unresolved operations refuses.
82
+ */
83
+ export declare const reserve: ({ table, identity, waiters, }: {
84
+ readonly table: Table;
85
+ readonly identity: Identity;
86
+ readonly waiters: Waiters;
87
+ }) => Result.Result<Table, ReactorError>;
88
+ /** A commit that failed after reserving sent nothing. */
89
+ export declare const abandon: ({ table, id }: {
90
+ readonly table: Table;
91
+ readonly id: string;
92
+ }) => Table;
93
+ /** The enqueue's own result: a definite failure decides the operation without a clip. */
94
+ export declare const settle: ({ table, id, exit, }: {
95
+ readonly table: Table;
96
+ readonly id: string;
97
+ readonly exit: Exit.Exit<Acceptance, unknown>;
98
+ }) => Step;
99
+ /**
100
+ * Evidence the provider holds until the enqueue's reply decides the
101
+ * acceptance: the clip's facts accrue meanwhile.
102
+ */
103
+ export declare const identify: ({ table, acceptance, }: {
104
+ readonly table: Table;
105
+ readonly acceptance: Acceptance;
106
+ }) => Table;
107
+ /** The acceptance the provider recorded, on the same path that records it. */
108
+ export declare const accept: ({ table, acceptance, }: {
109
+ readonly table: Table;
110
+ readonly acceptance: Acceptance;
111
+ }) => Step;
112
+ /**
113
+ * A clip carrying a submission's exact prompt and metadata after its pending
114
+ * acceptance expired, or in a later generation. It resolves the operation only.
115
+ */
116
+ export declare const lateEvidence: ({ table, id, clip, source, }: {
117
+ readonly table: Table;
118
+ readonly id: string;
119
+ readonly clip: Clip;
120
+ readonly source: CommandReply;
121
+ }) => Step;
122
+ /** Advances operations from a message the reducer applied. */
123
+ export declare const observe: ({ table, message, source, }: {
124
+ readonly table: Table;
125
+ readonly message: DecodedMessage;
126
+ readonly source: CommandReply;
127
+ }) => Step;
128
+ /** The provider retired: what evidence did not decide is `Indeterminate`. */
129
+ export declare const retire: (table: Table) => Step;
130
+ /** A holder of an operation; releasing the last holder acknowledges it and frees its slot. */
131
+ export declare const hold: ({ table, id, }: {
132
+ readonly table: Table;
133
+ readonly id: string;
134
+ }) => Result.Result<Table, ReactorError>;
135
+ export declare const release: ({ table, id }: {
136
+ readonly table: Table;
137
+ readonly id: string;
138
+ }) => Table;
139
+ /** A clip's facts are the operation's once its acceptance is decided. */
140
+ export declare const factsOf: ({ id, operation, }: {
141
+ readonly id: string;
142
+ readonly operation: Operation | undefined;
143
+ }) => OperationFacts;
144
+ export {};
145
+ //# sourceMappingURL=operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../src/internal/h3/operations.ts"],"names":[],"mappings":"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"}