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,70 @@
1
+ /** An H3 clip request, and its projection onto the `enqueue` command's arguments. */
2
+ import * as Schema from "effect/Schema";
3
+ import { audioReferenceLimits, metadataMaxChars, referenceLimits, requestSeconds, } from "./profile.js";
4
+ import { Reference, ValidatedAudioReferenceSchema, ValidatedReferenceSchema, } from "./references.js";
5
+ const isWellFormed = (text) => {
6
+ for (let index = 0; index < text.length; index++) {
7
+ const code = text.charCodeAt(index);
8
+ if (code >= 0xdc00 && code <= 0xdfff)
9
+ return false;
10
+ if (code >= 0xd800 && code <= 0xdbff) {
11
+ const next = text.charCodeAt(++index);
12
+ if (!(next >= 0xdc00 && next <= 0xdfff))
13
+ return false;
14
+ }
15
+ }
16
+ return true;
17
+ };
18
+ /** The SDK's own prompt bound; the provider's tokenizer decides the model's. */
19
+ const maxPromptBytes = 1_048_576;
20
+ /**
21
+ * A clip request. Up to three audio references (`Audio 1`, `Audio 2`, ... in
22
+ * the prompt), each 2–15 s of WAV, MP3, AAC/M4A, OGG/Opus, FLAC or WebM, mono
23
+ * or stereo, at most 25 MiB. A clip with audio needs at least one image
24
+ * reference or a `continueFrom`, and a continued clip takes at most two,
25
+ * because its continuation uses the third for the previous clip's soundtrack.
26
+ * Audio is sent only to a deployment that declares it (`Contract.referenceAudio`).
27
+ */
28
+ export const Request = Schema.Struct({
29
+ prompt: Schema.String.check(Schema.makeFilter((prompt) => prompt.trim().length > 0 || "must contain text"), Schema.makeFilter((prompt) => isWellFormed(prompt) || "must be well-formed UTF-16"), Schema.makeFilter((prompt) => new TextEncoder().encode(prompt).length <= maxPromptBytes ||
30
+ "exceeds the SDK's 1 MiB bound")),
31
+ references: Schema.optionalKey(Schema.Array(Schema.Union([Reference, ValidatedReferenceSchema])).check(Schema.isMaxLength(referenceLimits.maxImages))),
32
+ audio: Schema.optionalKey(Schema.Array(Schema.Union([Reference, ValidatedAudioReferenceSchema])).check(Schema.isMaxLength(audioReferenceLimits.maxAudio))),
33
+ seconds: Schema.optionalKey(Schema.Finite.check(Schema.isBetween({ minimum: requestSeconds.min, maximum: requestSeconds.max }))),
34
+ seed: Schema.optionalKey(Schema.Natural),
35
+ position: Schema.optionalKey(Schema.Natural),
36
+ continueFrom: Schema.optionalKey(Schema.String.check(Schema.isUUID())),
37
+ /** The caller's own metadata; acceptance wraps it and gives it back unchanged. */
38
+ metadata: Schema.optionalKey(Schema.String.check(Schema.makeFilter((metadata) => Array.from(metadata).length <= metadataMaxChars || "is too long"))),
39
+ }).check(Schema.makeFilter((request) => {
40
+ const images = request.references?.length ?? 0;
41
+ const audio = request.audio?.length ?? 0;
42
+ const continued = request.continueFrom !== undefined;
43
+ if (continued && audio > audioReferenceLimits.maxAudioWithContinuation)
44
+ return "a continued clip takes at most two audio references";
45
+ if (audio > 0 && images === 0 && !continued)
46
+ return "audio references need an image reference or a continuation";
47
+ if (images + audio + (continued ? 1 : 0) > audioReferenceLimits.maxTotal)
48
+ return "H3 takes at most twelve references in total";
49
+ return true;
50
+ }));
51
+ const wireUpload = (file) => ({
52
+ upload_id: file.uploadId,
53
+ name: file.name,
54
+ mime_type: file.mimeType,
55
+ size: Number(file.size),
56
+ });
57
+ /** The `enqueue` arguments; audio is sent only when the request has some. */
58
+ export const enqueueArguments = (input) => ({
59
+ prompt: input.request.prompt,
60
+ reference_images: input.images.map(wireUpload),
61
+ ...(input.audio.length === 0 ? {} : { reference_audios: input.audio.map(wireUpload) }),
62
+ metadata: input.metadata,
63
+ ...(input.request.seconds === undefined ? {} : { seconds: input.request.seconds }),
64
+ ...(input.request.seed === undefined ? {} : { seed: input.request.seed }),
65
+ ...(input.request.position === undefined ? {} : { position: input.request.position }),
66
+ ...(input.request.continueFrom === undefined
67
+ ? {}
68
+ : { continue_from_clip_id: input.request.continueFrom }),
69
+ });
70
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/internal/h3/request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * The provider's facts as a pure reducer over session events: which state and
3
+ * queue H3 last reported, whether the two agree, and each clip's latest
4
+ * lifecycle. Acceptance evidence is decided here too, from a clip's exact
5
+ * captured prompt and namespaced metadata.
6
+ */
7
+ import * as Result from "effect/Result";
8
+ import { ReactorError } from "../../ReactorError.js";
9
+ import type { CommandReply, SessionEvent } from "../../Session.js";
10
+ import type { Clip, DecodedMessage, MessageType, Queue, State } from "./messages.js";
11
+ export interface ClipObservation {
12
+ readonly clip: Clip;
13
+ /** The last explicit lifecycle message; null means only a queue snapshot listed it. */
14
+ readonly lifecycle: Exclude<MessageType, "queue_update" | "state_update"> | null;
15
+ readonly source: CommandReply;
16
+ }
17
+ export interface Facts {
18
+ readonly state: State;
19
+ readonly queue: Queue;
20
+ }
21
+ interface SnapshotBase {
22
+ readonly sessionId: string;
23
+ readonly transportGeneration: bigint;
24
+ readonly revision: bigint;
25
+ readonly clips: ReadonlyArray<ClipObservation>;
26
+ }
27
+ export type ProviderSnapshot = SnapshotBase & ({
28
+ readonly _tag: "Synchronizing";
29
+ readonly lastFacts: Facts | null;
30
+ } | {
31
+ readonly _tag: "Ready";
32
+ readonly state: State;
33
+ readonly queue: Queue;
34
+ } | {
35
+ readonly _tag: "Unavailable";
36
+ readonly cause: ReactorError;
37
+ readonly lastFacts: Facts | null;
38
+ });
39
+ export interface Model {
40
+ readonly sessionId: string;
41
+ readonly generation: bigint;
42
+ readonly revision: bigint;
43
+ readonly maxClips: number;
44
+ readonly state: State | undefined;
45
+ readonly queue: Queue | undefined;
46
+ /** A message implied a change the last full state or queue does not show. */
47
+ readonly stateDirty: boolean;
48
+ readonly queueDirty: boolean;
49
+ readonly lastFacts: Facts | null;
50
+ readonly cause: ReactorError | undefined;
51
+ readonly clips: ReadonlyMap<string, ClipObservation>;
52
+ /** Request ids whose message body this generation applied, to drop a repeated body. */
53
+ readonly bodies: ReadonlyMap<string, bigint>;
54
+ }
55
+ type Disposition = "applied" | "duplicate" | "stale";
56
+ export declare const initial: ({ sessionId, generation, revision, maxClips, }: {
57
+ readonly sessionId: string;
58
+ readonly generation: bigint;
59
+ readonly revision: bigint;
60
+ readonly maxClips: number;
61
+ }) => Model;
62
+ export declare const availability: (model: Model) => ProviderSnapshot["_tag"];
63
+ export declare const snapshot: (model: Model) => ProviderSnapshot;
64
+ export declare const unavailable: ({ model, cause, }: {
65
+ readonly model: Model;
66
+ readonly cause: ReactorError;
67
+ }) => Model;
68
+ /** Orders an event against the facts: a later generation starts over from fresh reads. */
69
+ export declare const admit: ({ model, source, }: {
70
+ readonly model: Model;
71
+ readonly source: SessionEvent;
72
+ }) => readonly [Disposition, Model];
73
+ /** Applies a decoded message; only full state and queue reads make the facts current. */
74
+ export declare const apply: ({ model, message, source, }: {
75
+ readonly model: Model;
76
+ readonly message: DecodedMessage;
77
+ readonly source: CommandReply;
78
+ }) => Result.Result<readonly [Disposition, Model], ReactorError>;
79
+ export interface Acceptance {
80
+ readonly submissionId: string;
81
+ readonly clip: Clip;
82
+ readonly evidence: {
83
+ readonly kind: "correlated" | "metadata";
84
+ readonly source: CommandReply;
85
+ };
86
+ }
87
+ /** What a submission sent, captured once, which only its own clip can match. */
88
+ export interface Identity {
89
+ readonly id: string;
90
+ readonly metadata: string;
91
+ readonly prompt: string;
92
+ readonly generation: bigint;
93
+ }
94
+ /** The caller's metadata wrapped with this provider's namespace and the submission id. */
95
+ export declare const encodeMetadata: ({ namespace, submission, caller, }: {
96
+ readonly namespace: string;
97
+ readonly submission: string;
98
+ readonly caller?: string | undefined;
99
+ }) => Result.Result<string, ReactorError>;
100
+ /** Random bytes in a provider's namespace, which its metadata carries in hex. */
101
+ export declare const namespaceBytes = 16;
102
+ /**
103
+ * Whether `caller` stays within the metadata bound once any provider wraps it,
104
+ * so it can be checked before a provider exists: what `encodeMetadata` refuses
105
+ * for some provider, this refuses.
106
+ */
107
+ export declare const callerFits: (caller: string) => boolean;
108
+ /** The local submission a clip's metadata names; foreign or extended metadata names none. */
109
+ export declare const submissionFromMetadata: ({ namespace, metadata, }: {
110
+ readonly namespace: string;
111
+ readonly metadata: string;
112
+ }) => string | undefined;
113
+ /** Only the exact captured prompt and metadata, in the submission's generation, prove acceptance. */
114
+ export declare const acceptanceFor: ({ identity, clip, source, }: {
115
+ readonly identity: Identity;
116
+ readonly clip: Clip;
117
+ readonly source: CommandReply;
118
+ }) => Acceptance | undefined;
119
+ export {};
120
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/internal/h3/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,270 @@
1
+ /**
2
+ * The provider's facts as a pure reducer over session events: which state and
3
+ * queue H3 last reported, whether the two agree, and each clip's latest
4
+ * lifecycle. Acceptance evidence is decided here too, from a clip's exact
5
+ * captured prompt and namespaced metadata.
6
+ */
7
+ import * as Result from "effect/Result";
8
+ import * as Schema from "effect/Schema";
9
+ import { ReactorError } from "../../ReactorError.js";
10
+ import { metadataMaxChars } from "./profile.js";
11
+ export const initial = ({ sessionId, generation, revision, maxClips, }) => ({
12
+ sessionId,
13
+ generation,
14
+ revision,
15
+ maxClips,
16
+ state: undefined,
17
+ queue: undefined,
18
+ stateDirty: true,
19
+ queueDirty: true,
20
+ lastFacts: null,
21
+ cause: undefined,
22
+ clips: new Map(),
23
+ bodies: new Map(),
24
+ });
25
+ const rank = (type) => {
26
+ switch (type) {
27
+ case "clip_generated":
28
+ return 1;
29
+ case "clip_started":
30
+ return 2;
31
+ case "clip_finished":
32
+ case "clip_stopped":
33
+ case "clip_failed":
34
+ case "clip_popped":
35
+ return 3;
36
+ default:
37
+ return 0;
38
+ }
39
+ };
40
+ /**
41
+ * A state and queue that were each read in full, and that agree with each
42
+ * other. H3 reports a clip armed to start after its seam as playing; whether
43
+ * it has left the playout queue by then is undocumented, so a playing clip at
44
+ * the front of that queue is taken as armed rather than as a disagreement.
45
+ */
46
+ const coherent = (model) => model.state !== undefined &&
47
+ model.queue !== undefined &&
48
+ !model.stateDirty &&
49
+ !model.queueDirty &&
50
+ model.state.generation_queued === model.queue.generation.length &&
51
+ model.state.playout_queued === model.queue.playout.length &&
52
+ ![...model.queue.generation, ...model.queue.playout.slice(1)].some((clip) => clip.clip_id === model.state?.playing_clip_id);
53
+ export const availability = (model) => {
54
+ if (model.cause !== undefined)
55
+ return "Unavailable";
56
+ return coherent(model) ? "Ready" : "Synchronizing";
57
+ };
58
+ export const snapshot = (model) => {
59
+ const base = {
60
+ sessionId: model.sessionId,
61
+ transportGeneration: model.generation,
62
+ revision: model.revision,
63
+ clips: [...model.clips.values()],
64
+ };
65
+ if (model.cause !== undefined)
66
+ return { ...base, _tag: "Unavailable", cause: model.cause, lastFacts: model.lastFacts };
67
+ if (coherent(model))
68
+ return { ...base, _tag: "Ready", state: model.state, queue: model.queue };
69
+ return { ...base, _tag: "Synchronizing", lastFacts: model.lastFacts };
70
+ };
71
+ const remember = (model) => coherent(model) &&
72
+ (model.lastFacts?.state !== model.state || model.lastFacts.queue !== model.queue)
73
+ ? { ...model, lastFacts: { state: model.state, queue: model.queue } }
74
+ : model;
75
+ export const unavailable = ({ model, cause, }) => ({
76
+ ...remember(model),
77
+ cause,
78
+ });
79
+ const reread = (model) => ({
80
+ ...model,
81
+ state: undefined,
82
+ queue: undefined,
83
+ stateDirty: true,
84
+ queueDirty: true,
85
+ });
86
+ /** Orders an event against the facts: a later generation starts over from fresh reads. */
87
+ export const admit = ({ model, source, }) => {
88
+ if (source.generation < model.generation)
89
+ return ["stale", model];
90
+ if (source.sequence <= model.revision)
91
+ return ["duplicate", model];
92
+ let next = { ...model, revision: source.sequence };
93
+ if (source.generation > model.generation)
94
+ next = {
95
+ ...reread(remember(next)),
96
+ generation: source.generation,
97
+ bodies: new Map(),
98
+ cause: undefined,
99
+ };
100
+ if (source._tag === "Model" && source.correlation === "stale-generation")
101
+ return ["stale", next];
102
+ // The correlator labels a body that follows an ACK duplicate; an ACK is never a payload.
103
+ if (source._tag === "Model" && source.kind === "message" && source.requestId !== "") {
104
+ if (source.correlation === "duplicate" &&
105
+ next.bodies.get(source.requestId) === source.generation)
106
+ return ["duplicate", next];
107
+ const bodies = new Map(next.bodies).set(source.requestId, source.generation);
108
+ if (bodies.size > 256)
109
+ bodies.delete(bodies.keys().next().value ?? "");
110
+ next = { ...next, bodies };
111
+ }
112
+ if (source._tag === "Status") {
113
+ if (source.status === "disconnected" ||
114
+ source.status === "closing" ||
115
+ source.status === "closed")
116
+ next = unavailable({
117
+ model: next,
118
+ cause: ReactorError.fromCode(source.status === "disconnected" ? "Disconnected" : "Closed", `H3 session is ${source.status}`, { operation: "H3 observation" }),
119
+ });
120
+ else if (source.status === "ready" && next.cause !== undefined)
121
+ next = { ...reread(next), cause: undefined };
122
+ }
123
+ return ["applied", next];
124
+ };
125
+ const overflow = () => ReactorError.fromCode("Overflow", "H3 clip observation bound exceeded", {
126
+ operation: "H3 observation",
127
+ });
128
+ const invalidate = (model, state, queue) => ({
129
+ ...remember(model),
130
+ stateDirty: model.stateDirty || state,
131
+ queueDirty: model.queueDirty || queue,
132
+ });
133
+ /** Applies a decoded message; only full state and queue reads make the facts current. */
134
+ export const apply = ({ model, message, source, }) => {
135
+ const done = (next) => Result.succeed(["applied", next.cause === undefined ? remember(next) : next]);
136
+ if (message.type === "unknown")
137
+ return done(model);
138
+ if (message.type === "state_update")
139
+ return done({ ...model, state: message.data, stateDirty: false });
140
+ if (message.type === "queue_update") {
141
+ const listed = [...message.data.generation, ...message.data.playout, ...message.data.history];
142
+ const clips = new Map(model.clips);
143
+ for (const clip of listed)
144
+ clips.set(clip.clip_id, {
145
+ clip,
146
+ source,
147
+ lifecycle: clips.get(clip.clip_id)?.lifecycle ?? null,
148
+ });
149
+ if (clips.size > model.maxClips)
150
+ return Result.fail(overflow());
151
+ return done({ ...model, queue: message.data, queueDirty: false, clips });
152
+ }
153
+ if (!("clip" in message.data))
154
+ return done(settingChanged(model, message));
155
+ const clip = message.data.clip;
156
+ const previous = model.clips.get(clip.clip_id);
157
+ if (previous === undefined && model.clips.size >= model.maxClips)
158
+ return Result.fail(overflow());
159
+ const put = (lifecycle) => ({
160
+ ...model,
161
+ clips: new Map(model.clips).set(clip.clip_id, { clip, source, lifecycle }),
162
+ });
163
+ if (message.type === "clip_moved") {
164
+ const next = put(previous?.lifecycle ?? null);
165
+ const moved = model.queue?.[message.data.queue][message.data.position]?.clip_id === clip.clip_id;
166
+ return done(moved ? next : invalidate(next, false, true));
167
+ }
168
+ // An end is final, and a later phase is never reversed by an earlier one.
169
+ if (previous !== undefined &&
170
+ previous.lifecycle !== null &&
171
+ (previous.lifecycle === message.type ||
172
+ rank(previous.lifecycle) === 3 ||
173
+ rank(previous.lifecycle) > rank(message.type)))
174
+ return Result.succeed(["duplicate", model]);
175
+ const next = put(message.type);
176
+ const queued = model.queue?.generation.some((entry) => entry.clip_id === clip.clip_id) === true;
177
+ const ready = model.queue?.playout.some((entry) => entry.clip_id === clip.clip_id) === true;
178
+ const playing = model.state?.playing_clip_id === clip.clip_id;
179
+ switch (message.type) {
180
+ case "clip_queued":
181
+ return done(!queued && !ready && !playing ? invalidate(next, true, true) : next);
182
+ case "clip_generated":
183
+ return done(!ready && !playing ? invalidate(next, true, true) : next);
184
+ case "clip_started":
185
+ return done(invalidate(next, !playing, queued || ready));
186
+ case "clip_failed":
187
+ case "clip_popped":
188
+ return done(queued || ready ? invalidate(next, true, true) : next);
189
+ case "clip_finished":
190
+ case "clip_stopped":
191
+ return done(playing || model.state === undefined ? invalidate(next, true, false) : next);
192
+ default:
193
+ // Only the clip lifecycle messages above carry a clip.
194
+ return done(model);
195
+ }
196
+ };
197
+ /** A setting's acknowledgement invalidates the state only when it differs from it. */
198
+ const settingChanged = (model, message) => {
199
+ const state = model.state;
200
+ switch (message.type) {
201
+ case "seed_accepted":
202
+ return state?.seed === message.data.seed ? model : invalidate(model, true, false);
203
+ case "clip_length_accepted":
204
+ return state?.clip_seconds === message.data.clip_seconds
205
+ ? model
206
+ : invalidate(model, true, false);
207
+ case "canvas_accepted":
208
+ return state?.aspect === message.data.aspect &&
209
+ state.width === message.data.width &&
210
+ state.height === message.data.height
211
+ ? model
212
+ : invalidate(model, true, false);
213
+ case "autoplay_accepted":
214
+ return state?.autoplay === message.data.enabled ? model : invalidate(model, true, false);
215
+ case "flush_accepted":
216
+ return state?.flush_on_clip_end === message.data.enabled
217
+ ? model
218
+ : invalidate(model, true, false);
219
+ case "session_reset":
220
+ return state?.playing === false &&
221
+ model.queue?.generation.length === 0 &&
222
+ model.queue.playout.length === 0
223
+ ? model
224
+ : invalidate(model, true, true);
225
+ default:
226
+ return model;
227
+ }
228
+ };
229
+ const Envelope = Schema.fromJsonString(Schema.Struct({
230
+ reactor_effect_h3: Schema.Literal(1),
231
+ namespace: Schema.String,
232
+ submission: Schema.String,
233
+ caller: Schema.String,
234
+ }));
235
+ /** The caller's metadata wrapped with this provider's namespace and the submission id. */
236
+ export const encodeMetadata = ({ namespace, submission, caller = "", }) => Result.flatMap(Result.mapError(Schema.encodeResult(Envelope)({ reactor_effect_h3: 1, namespace, submission, caller }), () => ReactorError.fromCode("InvalidInput", "Metadata could not be encoded")), (value) => Array.from(value).length > metadataMaxChars
237
+ ? Result.fail(ReactorError.fromCode("InvalidInput", `Metadata including acceptance identity exceeds ${metadataMaxChars} characters`, { operation: "enqueue", outcome: "not-submitted" }))
238
+ : Result.succeed(value));
239
+ /** Random bytes in a provider's namespace, which its metadata carries in hex. */
240
+ export const namespaceBytes = 16;
241
+ const widestNamespace = "f".repeat(namespaceBytes * 2);
242
+ /** A submission counted to twenty digits, more enqueues than one provider ever sends. */
243
+ const widestSubmission = `${widestNamespace}:${"9".repeat(20)}`;
244
+ /**
245
+ * Whether `caller` stays within the metadata bound once any provider wraps it,
246
+ * so it can be checked before a provider exists: what `encodeMetadata` refuses
247
+ * for some provider, this refuses.
248
+ */
249
+ export const callerFits = (caller) => Result.isSuccess(encodeMetadata({ namespace: widestNamespace, submission: widestSubmission, caller }));
250
+ /** The local submission a clip's metadata names; foreign or extended metadata names none. */
251
+ export const submissionFromMetadata = ({ namespace, metadata, }) => {
252
+ const decoded = Schema.decodeResult(Envelope)(metadata, { onExcessProperty: "error" });
253
+ return Result.isSuccess(decoded) && decoded.success.namespace === namespace
254
+ ? decoded.success.submission
255
+ : undefined;
256
+ };
257
+ /** Only the exact captured prompt and metadata, in the submission's generation, prove acceptance. */
258
+ export const acceptanceFor = ({ identity, clip, source, }) => {
259
+ if (identity.generation !== source.generation ||
260
+ identity.metadata !== clip.metadata ||
261
+ identity.prompt !== clip.prompt)
262
+ return undefined;
263
+ const correlated = source.kind === "message" && source.type === "clip_queued" && source.correlation === "matched";
264
+ return {
265
+ submissionId: identity.id,
266
+ clip,
267
+ evidence: { kind: correlated ? "correlated" : "metadata", source },
268
+ };
269
+ };
270
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/internal/h3/state.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,4 @@ export interface Options<P, A, E> {
37
37
  * because a caller holds a prepared Submission.
38
38
  */
39
39
  export declare const make: <P, A, E>(options: Options<P, A, E>) => Effect.Effect<Submission<A, E>, never, Scope.Scope>;
40
- /** Project a result without adding preparation, execution, or commit ownership. */
41
- export declare const map: <A, B, E>(submission: Submission<A, E>, project: (value: A) => B) => Submission<B, E>;
42
- //# sourceMappingURL=Submission.d.ts.map
40
+ //# sourceMappingURL=submission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submission.d.ts","sourceRoot":"","sources":["../../../src/internal/h3/submission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,8EAA8E;AAC9E,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,IAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAAE,CAAC;AAEnE,MAAM,WAAW,UAAU,CAAC,CAAC,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1D,qGAAqG;IACrG,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACxD;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WACjB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACxB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CA8CjD,CAAC"}
@@ -41,12 +41,4 @@ export const make = (options) => Effect.gen(function* () {
41
41
  state: Effect.sync(() => state),
42
42
  };
43
43
  });
44
- /** Project a result without adding preparation, execution, or commit ownership. */
45
- export const map = (submission, project) => ({
46
- id: submission.id,
47
- submit: submission.submit.pipe(Effect.map(project)),
48
- state: submission.state.pipe(Effect.map((state) => state._tag === "Completed"
49
- ? { _tag: "Completed", exit: Exit.map(state.exit, project) }
50
- : state)),
51
- });
52
- //# sourceMappingURL=Submission.js.map
44
+ //# sourceMappingURL=submission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submission.js","sourceRoot":"","sources":["../../../src/internal/h3/submission.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Fan-out to bounded observers. Publishing never waits for a reader, and an
3
+ * observer that falls behind fails with `Overflow` rather than silently
4
+ * missing values: it can observe again for a fresh state. `PubSub` offers
5
+ * backpressure, dropping or sliding, none of which fails the one slow reader.
6
+ *
7
+ * A reader is bounded by a count and, when values are weighed, by the weight
8
+ * it holds, so a few large media frames cannot buffer without bound.
9
+ */
10
+ import * as Cause from "effect/Cause";
11
+ import * as Effect from "effect/Effect";
12
+ import type * as Scope from "effect/Scope";
13
+ import * as Stream from "effect/Stream";
14
+ import { ReactorError } from "../ReactorError.js";
15
+ export interface Hub<A> {
16
+ /** Delivers to every observer; one that is full fails with `Overflow`. */
17
+ readonly publish: (value: A) => Effect.Effect<void>;
18
+ /** An observer registered now; its stream has one reader at a time. */
19
+ readonly subscribe: (capacity?: number, maxWeight?: number) => Effect.Effect<Stream.Stream<A, ReactorError>, ReactorError, Scope.Scope>;
20
+ readonly end: Effect.Effect<void>;
21
+ readonly fail: (cause: Cause.Cause<ReactorError>) => Effect.Effect<void>;
22
+ readonly observers: Effect.Effect<number>;
23
+ /** Observers that fell behind and failed. */
24
+ readonly overflows: Effect.Effect<bigint>;
25
+ }
26
+ export interface Options<A> {
27
+ readonly maxObservers?: number;
28
+ /** A value's weight against a reader's `maxWeight`; unweighed values weigh nothing. */
29
+ readonly weigh?: (value: A) => number;
30
+ }
31
+ export declare const make: <A>(options?: Options<A>) => Effect.Effect<Hub<A>>;
32
+ //# sourceMappingURL=hub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/internal/hub.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAqBlD,MAAM,WAAW,GAAG,CAAC,CAAC;IACpB,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,CAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,KACf,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;CACvC;AAMD,eAAO,MAAM,IAAI,GAAI,CAAC,YAAW,OAAO,CAAC,CAAC,CAAC,KAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAmHpE,CAAC"}