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.
- package/NOTICE +7 -2
- package/README.md +103 -141
- package/dist/Coordinator.d.ts +382 -0
- package/dist/Coordinator.d.ts.map +1 -0
- package/dist/Coordinator.js +732 -0
- package/dist/Coordinator.js.map +1 -0
- package/dist/H3.d.ts +159 -0
- package/dist/H3.d.ts.map +1 -0
- package/dist/H3.js +21 -0
- package/dist/H3.js.map +1 -0
- package/dist/H3Source.d.ts +93 -0
- package/dist/H3Source.d.ts.map +1 -0
- package/dist/H3Source.js +401 -0
- package/dist/H3Source.js.map +1 -0
- package/dist/LocalSource.d.ts +68 -0
- package/dist/LocalSource.d.ts.map +1 -0
- package/dist/LocalSource.js +354 -0
- package/dist/LocalSource.js.map +1 -0
- package/dist/Media.d.ts +106 -0
- package/dist/Media.d.ts.map +1 -0
- package/dist/Media.js +16 -0
- package/dist/Media.js.map +1 -0
- package/dist/Peer.d.ts +134 -0
- package/dist/Peer.d.ts.map +1 -0
- package/dist/Peer.js +57 -0
- package/dist/Peer.js.map +1 -0
- package/dist/Playout.d.ts +724 -0
- package/dist/Playout.d.ts.map +1 -0
- package/dist/Playout.js +28 -0
- package/dist/Playout.js.map +1 -0
- package/dist/Reactor.d.ts +135 -0
- package/dist/Reactor.d.ts.map +1 -0
- package/dist/Reactor.js +158 -0
- package/dist/Reactor.js.map +1 -0
- package/dist/ReactorError.d.ts +331 -0
- package/dist/ReactorError.d.ts.map +1 -0
- package/dist/ReactorError.js +316 -0
- package/dist/ReactorError.js.map +1 -0
- package/dist/ReactorTest.d.ts +383 -0
- package/dist/ReactorTest.d.ts.map +1 -0
- package/dist/ReactorTest.js +317 -0
- package/dist/ReactorTest.js.map +1 -0
- package/dist/Session.d.ts +314 -0
- package/dist/Session.d.ts.map +1 -0
- package/dist/Session.js +51 -0
- package/dist/Session.js.map +1 -0
- package/dist/index.d.ts +12 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -11
- package/dist/index.js.map +1 -1
- package/dist/internal/correlator.d.ts +46 -0
- package/dist/internal/correlator.d.ts.map +1 -0
- package/dist/internal/correlator.js +150 -0
- package/dist/internal/correlator.js.map +1 -0
- package/dist/internal/deadline.d.ts +24 -0
- package/dist/internal/deadline.d.ts.map +1 -0
- package/dist/internal/deadline.js +44 -0
- package/dist/internal/deadline.js.map +1 -0
- package/dist/{h3/_internal/contracts.d.ts → internal/h3/commands.d.ts} +39 -33
- package/dist/internal/h3/commands.d.ts.map +1 -0
- package/dist/internal/h3/commands.js +128 -0
- package/dist/internal/h3/commands.js.map +1 -0
- package/dist/{h3 → internal/h3}/messages.d.ts +16 -11
- package/dist/internal/h3/messages.d.ts.map +1 -0
- package/dist/{h3 → internal/h3}/messages.js +19 -31
- package/dist/internal/h3/messages.js.map +1 -0
- package/dist/internal/h3/operations.d.ts +145 -0
- package/dist/internal/h3/operations.d.ts.map +1 -0
- package/dist/internal/h3/operations.js +284 -0
- package/dist/internal/h3/operations.js.map +1 -0
- package/dist/{h3 → internal/h3}/profile.d.ts +63 -65
- package/dist/internal/h3/profile.d.ts.map +1 -0
- package/dist/{h3 → internal/h3}/profile.js +39 -39
- package/dist/internal/h3/profile.js.map +1 -0
- package/dist/internal/h3/provider.d.ts +14 -0
- package/dist/internal/h3/provider.d.ts.map +1 -0
- package/dist/internal/h3/provider.js +672 -0
- package/dist/internal/h3/provider.js.map +1 -0
- package/dist/internal/h3/references.d.ts +68 -0
- package/dist/internal/h3/references.d.ts.map +1 -0
- package/dist/internal/h3/references.js +339 -0
- package/dist/internal/h3/references.js.map +1 -0
- package/dist/internal/h3/request.d.ts +56 -0
- package/dist/internal/h3/request.d.ts.map +1 -0
- package/dist/internal/h3/request.js +70 -0
- package/dist/internal/h3/request.js.map +1 -0
- package/dist/internal/h3/state.d.ts +120 -0
- package/dist/internal/h3/state.d.ts.map +1 -0
- package/dist/internal/h3/state.js +270 -0
- package/dist/internal/h3/state.js.map +1 -0
- package/dist/{Submission.d.ts → internal/h3/submission.d.ts} +1 -3
- package/dist/internal/h3/submission.d.ts.map +1 -0
- package/dist/{Submission.js → internal/h3/submission.js} +1 -9
- package/dist/internal/h3/submission.js.map +1 -0
- package/dist/internal/hub.d.ts +32 -0
- package/dist/internal/hub.d.ts.map +1 -0
- package/dist/internal/hub.js +92 -0
- package/dist/internal/hub.js.map +1 -0
- package/dist/internal/playout/errors.d.ts +51 -0
- package/dist/internal/playout/errors.d.ts.map +1 -0
- package/dist/internal/playout/errors.js +40 -0
- package/dist/internal/playout/errors.js.map +1 -0
- package/dist/internal/playout/policy.d.ts +559 -0
- package/dist/internal/playout/policy.d.ts.map +1 -0
- package/dist/internal/playout/policy.js +2338 -0
- package/dist/internal/playout/policy.js.map +1 -0
- package/dist/internal/playout/runtime.d.ts +28 -0
- package/dist/internal/playout/runtime.d.ts.map +1 -0
- package/dist/internal/playout/runtime.js +766 -0
- package/dist/internal/playout/runtime.js.map +1 -0
- package/dist/internal/playout/tag.d.ts +14 -0
- package/dist/internal/playout/tag.d.ts.map +1 -0
- package/dist/internal/playout/tag.js +43 -0
- package/dist/internal/playout/tag.js.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/common_pb.d.ts +55 -0
- package/dist/internal/proto/reactor_wire/v1/common_pb.d.ts.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/common_pb.js +42 -0
- package/dist/internal/proto/reactor_wire/v1/common_pb.js.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/control_pb.d.ts +160 -0
- package/dist/internal/proto/reactor_wire/v1/control_pb.d.ts.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/control_pb.js +21 -0
- package/dist/internal/proto/reactor_wire/v1/control_pb.js.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/data_pb.d.ts +89 -0
- package/dist/internal/proto/reactor_wire/v1/data_pb.d.ts.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/data_pb.js +20 -0
- package/dist/internal/proto/reactor_wire/v1/data_pb.js.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/model_pb.d.ts +85 -0
- package/dist/internal/proto/reactor_wire/v1/model_pb.d.ts.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/model_pb.js +24 -0
- package/dist/internal/proto/reactor_wire/v1/model_pb.js.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/platform_pb.d.ts +190 -0
- package/dist/internal/proto/reactor_wire/v1/platform_pb.d.ts.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/platform_pb.js +54 -0
- package/dist/internal/proto/reactor_wire/v1/platform_pb.js.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/track_pb.d.ts +88 -0
- package/dist/internal/proto/reactor_wire/v1/track_pb.d.ts.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/track_pb.js +33 -0
- package/dist/internal/proto/reactor_wire/v1/track_pb.js.map +1 -0
- package/dist/internal/queue.d.ts +4 -0
- package/dist/internal/queue.d.ts.map +1 -0
- package/dist/{_internal → internal}/queue.js +0 -9
- package/dist/internal/queue.js.map +1 -0
- package/dist/internal/reactorTest/coordinator.d.ts +5 -0
- package/dist/internal/reactorTest/coordinator.d.ts.map +1 -0
- package/dist/internal/reactorTest/coordinator.js +178 -0
- package/dist/internal/reactorTest/coordinator.js.map +1 -0
- package/dist/internal/reactorTest/faults.d.ts +172 -0
- package/dist/internal/reactorTest/faults.d.ts.map +1 -0
- package/dist/internal/reactorTest/faults.js +23 -0
- package/dist/internal/reactorTest/faults.js.map +1 -0
- package/dist/internal/reactorTest/h3.d.ts +431 -0
- package/dist/internal/reactorTest/h3.d.ts.map +1 -0
- package/dist/internal/reactorTest/h3.js +625 -0
- package/dist/internal/reactorTest/h3.js.map +1 -0
- package/dist/internal/reactorTest/media.d.ts +22 -0
- package/dist/internal/reactorTest/media.d.ts.map +1 -0
- package/dist/internal/reactorTest/media.js +34 -0
- package/dist/internal/reactorTest/media.js.map +1 -0
- package/dist/internal/reactorTest/peer.d.ts +318 -0
- package/dist/internal/reactorTest/peer.d.ts.map +1 -0
- package/dist/internal/reactorTest/peer.js +206 -0
- package/dist/internal/reactorTest/peer.js.map +1 -0
- package/dist/internal/reactorTest/playout.d.ts +34 -0
- package/dist/internal/reactorTest/playout.d.ts.map +1 -0
- package/dist/internal/reactorTest/playout.js +340 -0
- package/dist/internal/reactorTest/playout.js.map +1 -0
- package/dist/internal/reactorTest/references.d.ts +25 -0
- package/dist/internal/reactorTest/references.d.ts.map +1 -0
- package/dist/{testing/Png.js → internal/reactorTest/references.js} +50 -12
- package/dist/internal/reactorTest/references.js.map +1 -0
- package/dist/internal/reactorTest/sessions.d.ts +364 -0
- package/dist/internal/reactorTest/sessions.d.ts.map +1 -0
- package/dist/internal/reactorTest/sessions.js +592 -0
- package/dist/internal/reactorTest/sessions.js.map +1 -0
- package/dist/internal/reactorTest/timing.d.ts +13 -0
- package/dist/internal/reactorTest/timing.d.ts.map +1 -0
- package/dist/internal/reactorTest/timing.js +20 -0
- package/dist/internal/reactorTest/timing.js.map +1 -0
- package/dist/internal/recording.d.ts +52 -0
- package/dist/internal/recording.d.ts.map +1 -0
- package/dist/internal/recording.js +141 -0
- package/dist/internal/recording.js.map +1 -0
- package/dist/internal/session/connect.d.ts +34 -0
- package/dist/internal/session/connect.d.ts.map +1 -0
- package/dist/internal/session/connect.js +502 -0
- package/dist/internal/session/connect.js.map +1 -0
- package/dist/internal/session/generation.d.ts +35 -0
- package/dist/internal/session/generation.d.ts.map +1 -0
- package/dist/internal/session/generation.js +185 -0
- package/dist/internal/session/generation.js.map +1 -0
- package/dist/internal/session/ice.d.ts +23 -0
- package/dist/internal/session/ice.d.ts.map +1 -0
- package/dist/internal/session/ice.js +57 -0
- package/dist/internal/session/ice.js.map +1 -0
- package/dist/internal/session/inbound.d.ts +50 -0
- package/dist/internal/session/inbound.d.ts.map +1 -0
- package/dist/internal/session/inbound.js +202 -0
- package/dist/internal/session/inbound.js.map +1 -0
- package/dist/internal/session/model.d.ts +163 -0
- package/dist/internal/session/model.d.ts.map +1 -0
- package/dist/internal/session/model.js +78 -0
- package/dist/internal/session/model.js.map +1 -0
- package/dist/internal/session/requests.d.ts +71 -0
- package/dist/internal/session/requests.d.ts.map +1 -0
- package/dist/internal/session/requests.js +240 -0
- package/dist/internal/session/requests.js.map +1 -0
- package/dist/internal/session/tracks.d.ts +21 -0
- package/dist/internal/session/tracks.d.ts.map +1 -0
- package/dist/internal/session/tracks.js +166 -0
- package/dist/internal/session/tracks.js.map +1 -0
- package/dist/internal/session/upload.d.ts +21 -0
- package/dist/internal/session/upload.d.ts.map +1 -0
- package/dist/internal/session/upload.js +68 -0
- package/dist/internal/session/upload.js.map +1 -0
- package/dist/internal/session.d.ts +66 -0
- package/dist/internal/session.d.ts.map +1 -0
- package/dist/internal/session.js +280 -0
- package/dist/internal/session.js.map +1 -0
- package/dist/{stats.d.ts → internal/stats.d.ts} +30 -16
- package/dist/internal/stats.d.ts.map +1 -0
- package/dist/internal/stats.js +201 -0
- package/dist/internal/stats.js.map +1 -0
- package/dist/internal/token.d.ts +22 -0
- package/dist/internal/token.d.ts.map +1 -0
- package/dist/internal/token.js +65 -0
- package/dist/internal/token.js.map +1 -0
- package/dist/internal/wire.d.ts +37 -0
- package/dist/internal/wire.d.ts.map +1 -0
- package/dist/internal/wire.js +49 -0
- package/dist/internal/wire.js.map +1 -0
- package/notices/bufbuild-protobuf-LICENSE +201 -0
- package/package.json +17 -38
- package/dist/FetchHttp.d.ts +0 -9
- package/dist/FetchHttp.d.ts.map +0 -1
- package/dist/FetchHttp.js +0 -63
- package/dist/FetchHttp.js.map +0 -1
- package/dist/PeerFactory.d.ts +0 -26
- package/dist/PeerFactory.d.ts.map +0 -1
- package/dist/PeerFactory.js +0 -4
- package/dist/PeerFactory.js.map +0 -1
- package/dist/PeerTypes.d.ts +0 -64
- package/dist/PeerTypes.d.ts.map +0 -1
- package/dist/PeerTypes.js +0 -2
- package/dist/PeerTypes.js.map +0 -1
- package/dist/Sequence.d.ts +0 -85
- package/dist/Sequence.d.ts.map +0 -1
- package/dist/Sequence.js +0 -210
- package/dist/Sequence.js.map +0 -1
- package/dist/SessionTypes.d.ts +0 -312
- package/dist/SessionTypes.d.ts.map +0 -1
- package/dist/SessionTypes.js +0 -19
- package/dist/SessionTypes.js.map +0 -1
- package/dist/Submission.d.ts.map +0 -1
- package/dist/Submission.js.map +0 -1
- package/dist/_internal/queue.d.ts +0 -6
- package/dist/_internal/queue.d.ts.map +0 -1
- package/dist/_internal/queue.js.map +0 -1
- package/dist/bytes.d.ts +0 -6
- package/dist/bytes.d.ts.map +0 -1
- package/dist/bytes.js +0 -32
- package/dist/bytes.js.map +0 -1
- package/dist/contract.d.ts +0 -149
- package/dist/contract.d.ts.map +0 -1
- package/dist/contract.js +0 -119
- package/dist/contract.js.map +0 -1
- package/dist/coordinator/_internal/client.d.ts +0 -215
- package/dist/coordinator/_internal/client.d.ts.map +0 -1
- package/dist/coordinator/_internal/client.js +0 -563
- package/dist/coordinator/_internal/client.js.map +0 -1
- package/dist/coordinator/_internal/recording.d.ts +0 -31
- package/dist/coordinator/_internal/recording.d.ts.map +0 -1
- package/dist/coordinator/_internal/recording.js +0 -123
- package/dist/coordinator/_internal/recording.js.map +0 -1
- package/dist/coordinator/_internal/response.d.ts +0 -15
- package/dist/coordinator/_internal/response.d.ts.map +0 -1
- package/dist/coordinator/_internal/response.js +0 -55
- package/dist/coordinator/_internal/response.js.map +0 -1
- package/dist/coordinator/_internal/schemas.d.ts +0 -73
- package/dist/coordinator/_internal/schemas.d.ts.map +0 -1
- package/dist/coordinator/_internal/schemas.js +0 -200
- package/dist/coordinator/_internal/schemas.js.map +0 -1
- package/dist/coordinator/index.d.ts +0 -40
- package/dist/coordinator/index.d.ts.map +0 -1
- package/dist/coordinator/index.js +0 -21
- package/dist/coordinator/index.js.map +0 -1
- package/dist/correlation.d.ts +0 -47
- package/dist/correlation.d.ts.map +0 -1
- package/dist/correlation.js +0 -131
- package/dist/correlation.js.map +0 -1
- package/dist/duration.d.ts +0 -27
- package/dist/duration.d.ts.map +0 -1
- package/dist/duration.js +0 -47
- package/dist/duration.js.map +0 -1
- package/dist/errors.d.ts +0 -1303
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -745
- package/dist/errors.js.map +0 -1
- package/dist/h3/_internal/client.d.ts +0 -9
- package/dist/h3/_internal/client.d.ts.map +0 -1
- package/dist/h3/_internal/client.js +0 -652
- package/dist/h3/_internal/client.js.map +0 -1
- package/dist/h3/_internal/contracts.d.ts.map +0 -1
- package/dist/h3/_internal/contracts.js +0 -123
- package/dist/h3/_internal/contracts.js.map +0 -1
- package/dist/h3/_internal/deployment.d.ts +0 -8
- package/dist/h3/_internal/deployment.d.ts.map +0 -1
- package/dist/h3/_internal/deployment.js +0 -149
- package/dist/h3/_internal/deployment.js.map +0 -1
- package/dist/h3/_internal/evidence.d.ts +0 -17
- package/dist/h3/_internal/evidence.d.ts.map +0 -1
- package/dist/h3/_internal/evidence.js +0 -48
- package/dist/h3/_internal/evidence.js.map +0 -1
- package/dist/h3/_internal/operations.d.ts +0 -58
- package/dist/h3/_internal/operations.d.ts.map +0 -1
- package/dist/h3/_internal/operations.js +0 -268
- package/dist/h3/_internal/operations.js.map +0 -1
- package/dist/h3/_internal/references.d.ts +0 -24
- package/dist/h3/_internal/references.d.ts.map +0 -1
- package/dist/h3/_internal/references.js +0 -309
- package/dist/h3/_internal/references.js.map +0 -1
- package/dist/h3/_internal/request.d.ts +0 -21
- package/dist/h3/_internal/request.d.ts.map +0 -1
- package/dist/h3/_internal/request.js +0 -97
- package/dist/h3/_internal/request.js.map +0 -1
- package/dist/h3/_internal/retained.d.ts +0 -22
- package/dist/h3/_internal/retained.d.ts.map +0 -1
- package/dist/h3/_internal/retained.js +0 -89
- package/dist/h3/_internal/retained.js.map +0 -1
- package/dist/h3/_internal/state.d.ts +0 -44
- package/dist/h3/_internal/state.d.ts.map +0 -1
- package/dist/h3/_internal/state.js +0 -283
- package/dist/h3/_internal/state.js.map +0 -1
- package/dist/h3/index.d.ts +0 -10
- package/dist/h3/index.d.ts.map +0 -1
- package/dist/h3/index.js +0 -7
- package/dist/h3/index.js.map +0 -1
- package/dist/h3/messages.d.ts.map +0 -1
- package/dist/h3/messages.js.map +0 -1
- package/dist/h3/profile.d.ts.map +0 -1
- package/dist/h3/profile.js.map +0 -1
- package/dist/h3/types.d.ts +0 -291
- package/dist/h3/types.d.ts.map +0 -1
- package/dist/h3/types.js +0 -2
- package/dist/h3/types.js.map +0 -1
- package/dist/host.d.ts +0 -26
- package/dist/host.d.ts.map +0 -1
- package/dist/host.js +0 -20
- package/dist/host.js.map +0 -1
- package/dist/json.d.ts +0 -25
- package/dist/json.d.ts.map +0 -1
- package/dist/json.js +0 -143
- package/dist/json.js.map +0 -1
- package/dist/media-stream.d.ts +0 -10
- package/dist/media-stream.d.ts.map +0 -1
- package/dist/media-stream.js +0 -18
- package/dist/media-stream.js.map +0 -1
- package/dist/observation.d.ts +0 -38
- package/dist/observation.d.ts.map +0 -1
- package/dist/observation.js +0 -113
- package/dist/observation.js.map +0 -1
- package/dist/orchestration/elapsed.d.ts +0 -9
- package/dist/orchestration/elapsed.d.ts.map +0 -1
- package/dist/orchestration/elapsed.js +0 -8
- package/dist/orchestration/elapsed.js.map +0 -1
- package/dist/orchestration/h3-source.d.ts +0 -58
- package/dist/orchestration/h3-source.d.ts.map +0 -1
- package/dist/orchestration/h3-source.js +0 -362
- package/dist/orchestration/h3-source.js.map +0 -1
- package/dist/orchestration/index.d.ts +0 -17
- package/dist/orchestration/index.d.ts.map +0 -1
- package/dist/orchestration/index.js +0 -12
- package/dist/orchestration/index.js.map +0 -1
- package/dist/orchestration/media-buffer.d.ts +0 -32
- package/dist/orchestration/media-buffer.d.ts.map +0 -1
- package/dist/orchestration/media-buffer.js +0 -94
- package/dist/orchestration/media-buffer.js.map +0 -1
- package/dist/orchestration/open-h3.d.ts +0 -101
- package/dist/orchestration/open-h3.d.ts.map +0 -1
- package/dist/orchestration/open-h3.js +0 -127
- package/dist/orchestration/open-h3.js.map +0 -1
- package/dist/orchestration/queries.d.ts +0 -10
- package/dist/orchestration/queries.d.ts.map +0 -1
- package/dist/orchestration/queries.js +0 -43
- package/dist/orchestration/queries.js.map +0 -1
- package/dist/orchestration/references.d.ts +0 -18
- package/dist/orchestration/references.d.ts.map +0 -1
- package/dist/orchestration/references.js +0 -79
- package/dist/orchestration/references.js.map +0 -1
- package/dist/orchestration/renewal-state.d.ts +0 -84
- package/dist/orchestration/renewal-state.d.ts.map +0 -1
- package/dist/orchestration/renewal-state.js +0 -95
- package/dist/orchestration/renewal-state.js.map +0 -1
- package/dist/orchestration/renewal.d.ts +0 -103
- package/dist/orchestration/renewal.d.ts.map +0 -1
- package/dist/orchestration/renewal.js +0 -1088
- package/dist/orchestration/renewal.js.map +0 -1
- package/dist/orchestration/request.d.ts +0 -65
- package/dist/orchestration/request.d.ts.map +0 -1
- package/dist/orchestration/request.js +0 -134
- package/dist/orchestration/request.js.map +0 -1
- package/dist/orchestration/retention.d.ts +0 -100
- package/dist/orchestration/retention.d.ts.map +0 -1
- package/dist/orchestration/retention.js +0 -134
- package/dist/orchestration/retention.js.map +0 -1
- package/dist/orchestration/routing.d.ts +0 -21
- package/dist/orchestration/routing.d.ts.map +0 -1
- package/dist/orchestration/routing.js +0 -93
- package/dist/orchestration/routing.js.map +0 -1
- package/dist/orchestration/scheduler-key.d.ts +0 -14
- package/dist/orchestration/scheduler-key.d.ts.map +0 -1
- package/dist/orchestration/scheduler-key.js +0 -62
- package/dist/orchestration/scheduler-key.js.map +0 -1
- package/dist/orchestration/scheduler-policy.d.ts +0 -222
- package/dist/orchestration/scheduler-policy.d.ts.map +0 -1
- package/dist/orchestration/scheduler-policy.js +0 -582
- package/dist/orchestration/scheduler-policy.js.map +0 -1
- package/dist/orchestration/scheduler.d.ts +0 -383
- package/dist/orchestration/scheduler.d.ts.map +0 -1
- package/dist/orchestration/scheduler.js +0 -2597
- package/dist/orchestration/scheduler.js.map +0 -1
- package/dist/orchestration/source-slot.d.ts +0 -124
- package/dist/orchestration/source-slot.d.ts.map +0 -1
- package/dist/orchestration/source-slot.js +0 -348
- package/dist/orchestration/source-slot.js.map +0 -1
- package/dist/orchestration/types.d.ts +0 -1462
- package/dist/orchestration/types.d.ts.map +0 -1
- package/dist/orchestration/types.js +0 -135
- package/dist/orchestration/types.js.map +0 -1
- package/dist/protobuf.d.ts +0 -63
- package/dist/protobuf.d.ts.map +0 -1
- package/dist/protobuf.js +0 -252
- package/dist/protobuf.js.map +0 -1
- package/dist/session/_internal/acquire.d.ts +0 -21
- package/dist/session/_internal/acquire.d.ts.map +0 -1
- package/dist/session/_internal/acquire.js +0 -168
- package/dist/session/_internal/acquire.js.map +0 -1
- package/dist/session/_internal/cleanup.d.ts +0 -19
- package/dist/session/_internal/cleanup.d.ts.map +0 -1
- package/dist/session/_internal/cleanup.js +0 -102
- package/dist/session/_internal/cleanup.js.map +0 -1
- package/dist/session/_internal/lifecycle.d.ts +0 -67
- package/dist/session/_internal/lifecycle.d.ts.map +0 -1
- package/dist/session/_internal/lifecycle.js +0 -142
- package/dist/session/_internal/lifecycle.js.map +0 -1
- package/dist/session/_internal/remote.d.ts +0 -28
- package/dist/session/_internal/remote.d.ts.map +0 -1
- package/dist/session/_internal/remote.js +0 -71
- package/dist/session/_internal/remote.js.map +0 -1
- package/dist/session/_internal/uploads.d.ts +0 -7
- package/dist/session/_internal/uploads.d.ts.map +0 -1
- package/dist/session/_internal/uploads.js +0 -31
- package/dist/session/_internal/uploads.js.map +0 -1
- package/dist/session/commands.d.ts +0 -2
- package/dist/session/commands.d.ts.map +0 -1
- package/dist/session/commands.js +0 -2
- package/dist/session/commands.js.map +0 -1
- package/dist/session/files.d.ts +0 -21
- package/dist/session/files.d.ts.map +0 -1
- package/dist/session/files.js +0 -49
- package/dist/session/files.js.map +0 -1
- package/dist/session/index.d.ts +0 -84
- package/dist/session/index.d.ts.map +0 -1
- package/dist/session/index.js +0 -16
- package/dist/session/index.js.map +0 -1
- package/dist/session/media.d.ts +0 -114
- package/dist/session/media.d.ts.map +0 -1
- package/dist/session/media.js +0 -2
- package/dist/session/media.js.map +0 -1
- package/dist/session/recorder.d.ts +0 -24
- package/dist/session/recorder.d.ts.map +0 -1
- package/dist/session/recorder.js +0 -19
- package/dist/session/recorder.js.map +0 -1
- package/dist/session.d.ts +0 -105
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js +0 -976
- package/dist/session.js.map +0 -1
- package/dist/simulation/_internal/source.d.ts +0 -12
- package/dist/simulation/_internal/source.d.ts.map +0 -1
- package/dist/simulation/_internal/source.js +0 -513
- package/dist/simulation/_internal/source.js.map +0 -1
- package/dist/simulation/index.d.ts +0 -13
- package/dist/simulation/index.d.ts.map +0 -1
- package/dist/simulation/index.js +0 -12
- package/dist/simulation/index.js.map +0 -1
- package/dist/simulation/types.d.ts +0 -39
- package/dist/simulation/types.d.ts.map +0 -1
- package/dist/simulation/types.js +0 -2
- package/dist/simulation/types.js.map +0 -1
- package/dist/stats.d.ts.map +0 -1
- package/dist/stats.js +0 -205
- package/dist/stats.js.map +0 -1
- package/dist/testing/Faults.d.ts +0 -4
- package/dist/testing/Faults.d.ts.map +0 -1
- package/dist/testing/Faults.js +0 -7
- package/dist/testing/Faults.js.map +0 -1
- package/dist/testing/Png.d.ts +0 -3
- package/dist/testing/Png.d.ts.map +0 -1
- package/dist/testing/Png.js.map +0 -1
- package/dist/testing/Wav.d.ts +0 -14
- package/dist/testing/Wav.d.ts.map +0 -1
- package/dist/testing/Wav.js +0 -37
- package/dist/testing/Wav.js.map +0 -1
- package/dist/testing/index.d.ts +0 -5
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js +0 -4
- package/dist/testing/index.js.map +0 -1
- package/dist/wire.d.ts +0 -7
- package/dist/wire.d.ts.map +0 -1
- package/dist/wire.generated.d.ts +0 -305
- package/dist/wire.generated.d.ts.map +0 -1
- package/dist/wire.generated.js +0 -1257
- package/dist/wire.generated.js.map +0 -1
- package/dist/wire.js +0 -5
- package/dist/wire.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer.js","sourceRoot":"","sources":["../../../src/internal/reactorTest/peer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Scope from "effect/Scope";
|
|
3
|
+
import type { MessageInitShape } from "@bufbuild/protobuf";
|
|
4
|
+
import type { Entry, Options } from "../../ReactorTest.js";
|
|
5
|
+
import * as Wire from "../wire.js";
|
|
6
|
+
import type { Faults } from "./faults.js";
|
|
7
|
+
import type { Link } from "./peer.js";
|
|
8
|
+
import type { Sampler } from "./timing.js";
|
|
9
|
+
export declare const monotonic: Effect.Effect<number, never, never>;
|
|
10
|
+
export declare const until: (at: number) => Effect.Effect<void>;
|
|
11
|
+
export interface Environment {
|
|
12
|
+
readonly options: Options;
|
|
13
|
+
readonly faults: Faults;
|
|
14
|
+
/** Draws every delay, seeded once for the whole simulation so a run repeats. */
|
|
15
|
+
readonly timing: Sampler;
|
|
16
|
+
readonly openapi: typeof Wire.StructJson.Type;
|
|
17
|
+
readonly log: (entry: Omit<Entry, "at">) => Effect.Effect<void>;
|
|
18
|
+
/** Ends the session, as a moderation verdict does. */
|
|
19
|
+
readonly terminate: Effect.Effect<void>;
|
|
20
|
+
/** The recorder's clip of the session's last `seconds`, or its recording so far. */
|
|
21
|
+
readonly record: (kind: "snap" | "recording", seconds: number) => Effect.Effect<MessageInitShape<typeof Wire.ClipReadySchema>>;
|
|
22
|
+
}
|
|
23
|
+
export declare const make: (sessionId: string, environment: Environment) => Effect.Effect<{
|
|
24
|
+
/**
|
|
25
|
+
* A connection's channels opened: hosted Reactor holds its media until it
|
|
26
|
+
* resumes the tracks, and a clip already playing plays on to it.
|
|
27
|
+
*/
|
|
28
|
+
connect: (to: number, link: Link) => Effect.Effect<void, never, never>;
|
|
29
|
+
disconnect: (from: number) => Effect.Effect<void, never, never>;
|
|
30
|
+
/** A message the client sent. One the simulation cannot decode is the client's bug. */
|
|
31
|
+
receive: (from: number, link: Link, channel: "control" | "data", bytes: Uint8Array) => Effect.Effect<void, never, never>;
|
|
32
|
+
}, never, Scope.Scope>;
|
|
33
|
+
export type Playout = Effect.Success<ReturnType<typeof make>>;
|
|
34
|
+
//# sourceMappingURL=playout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playout.d.ts","sourceRoot":"","sources":["../../../src/internal/reactorTest/playout.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAMxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,KAAK,EAAS,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,eAAO,MAAM,SAAS,qCAAuE,CAAC;AAE9F,eAAO,MAAM,KAAK,OAAQ,MAAM,KAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAGlD,CAAC;AAEJ,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9C,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChE,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxC,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,CACf,IAAI,EAAE,MAAM,GAAG,WAAW,EAC1B,OAAO,EAAE,MAAM,KACZ,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;CACnE;AAoBD,eAAO,MAAM,IAAI;IA+Xb;;;OAGG;kBACW,MAAM,QAAQ,IAAI;uBAoBb,MAAM;IASzB,uFAAuF;oBACvE,MAAM,QAAQ,IAAI,WAAW,SAAS,GAAG,MAAM,SAAS,UAAU;sBAQpF,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One simulated H3 session at work: its model takes one input at a time, what
|
|
3
|
+
* it sends goes over the session's open connections, and its timers and media
|
|
4
|
+
* run in the session's scope until the session ends.
|
|
5
|
+
*/
|
|
6
|
+
import * as Clock from "effect/Clock";
|
|
7
|
+
import * as Duration from "effect/Duration";
|
|
8
|
+
import * as Effect from "effect/Effect";
|
|
9
|
+
import * as Exit from "effect/Exit";
|
|
10
|
+
import * as FiberMap from "effect/FiberMap";
|
|
11
|
+
import * as FiberSet from "effect/FiberSet";
|
|
12
|
+
import * as Ref from "effect/Ref";
|
|
13
|
+
import * as Schema from "effect/Schema";
|
|
14
|
+
import * as Scope from "effect/Scope";
|
|
15
|
+
import * as Semaphore from "effect/Semaphore";
|
|
16
|
+
import * as Wire from "../wire.js";
|
|
17
|
+
import * as H3 from "./h3.js";
|
|
18
|
+
import * as Media from "./media.js";
|
|
19
|
+
export const monotonic = Effect.map(Clock.monotonicTimeNanos, (nanos) => Number(nanos) / 1e6);
|
|
20
|
+
export const until = (at) => Effect.flatMap(monotonic, (now) => at > now ? Effect.sleep(Duration.millis(at - now)) : Effect.void);
|
|
21
|
+
const range = (count) => Array.from({ length: Math.max(0, count) }, (_, index) => index);
|
|
22
|
+
const tracks = [H3.documented.tracks.video, H3.documented.tracks.audio];
|
|
23
|
+
export const make = Effect.fnUntraced(function* (sessionId, environment) {
|
|
24
|
+
const { options, faults, log } = environment;
|
|
25
|
+
const model = yield* Ref.make(H3.initial);
|
|
26
|
+
const lock = yield* Semaphore.make(1);
|
|
27
|
+
const scope = yield* Effect.scope;
|
|
28
|
+
const timers = yield* FiberSet.make();
|
|
29
|
+
/** The open connections, by the id of the slot each was registered as. */
|
|
30
|
+
const connections = yield* Ref.make(new Map());
|
|
31
|
+
/**
|
|
32
|
+
* Each command not yet answered: the slot it came from, which its answer
|
|
33
|
+
* goes back to whenever it is sent, and whether a fault withholds or delays it.
|
|
34
|
+
*/
|
|
35
|
+
const requests = yield* Ref.make(new Map());
|
|
36
|
+
/**
|
|
37
|
+
* Sends a command's answer back to the slot it came from, at once or as late
|
|
38
|
+
* as a fault says, and forgets the command; a withheld answer is never sent.
|
|
39
|
+
*/
|
|
40
|
+
const answer = (requestId, reply) => Effect.gen(function* () {
|
|
41
|
+
const request = yield* Ref.modify(requests, (all) => {
|
|
42
|
+
const next = new Map(all);
|
|
43
|
+
next.delete(requestId);
|
|
44
|
+
return [all.get(requestId), next];
|
|
45
|
+
});
|
|
46
|
+
if (request === undefined || request.withheld)
|
|
47
|
+
return;
|
|
48
|
+
if (request.lateMs === 0)
|
|
49
|
+
return yield* reply(request.from);
|
|
50
|
+
yield* FiberSet.run(timers, Effect.sleep(Duration.millis(request.lateMs)).pipe(Effect.andThen(reply(request.from))));
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* Sends to one connection, or to every open one. The simulation encodes only
|
|
54
|
+
* messages it built, so a failure is a defect.
|
|
55
|
+
*/
|
|
56
|
+
const send = (to, channel, schema, message) => Effect.gen(function* () {
|
|
57
|
+
const open = yield* Ref.get(connections);
|
|
58
|
+
const targets = to === "all" ? [...open.values()] : [open.get(to)];
|
|
59
|
+
const bytes = yield* Effect.orDie(Wire.encode(schema)(message));
|
|
60
|
+
for (const target of targets)
|
|
61
|
+
if (target !== undefined)
|
|
62
|
+
yield* target.link.deliver(channel, bytes);
|
|
63
|
+
});
|
|
64
|
+
const data = (to, requestId, kind, message) => Effect.gen(function* () {
|
|
65
|
+
if (message.type !== "queue_update" && message.type !== "state_update")
|
|
66
|
+
yield* log({
|
|
67
|
+
sessionId,
|
|
68
|
+
kind: "message",
|
|
69
|
+
name: message.type,
|
|
70
|
+
...("clip" in message.data ? { clipId: message.data.clip.clip_id } : {}),
|
|
71
|
+
});
|
|
72
|
+
const json = yield* Effect.orDie(Schema.decodeUnknownEffect(Wire.StructJson)(message.data));
|
|
73
|
+
yield* send(to, "data", Wire.DataServerMessageSchema, {
|
|
74
|
+
requestId,
|
|
75
|
+
kind,
|
|
76
|
+
payload: { case: "message", value: { type: message.type, data: json } },
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
const respond = (to, requestId, payload) => send(to, "data", Wire.DataServerMessageSchema, {
|
|
80
|
+
requestId,
|
|
81
|
+
kind: Wire.MessageKind.RESPONSE,
|
|
82
|
+
...(payload && { payload }),
|
|
83
|
+
});
|
|
84
|
+
const later = (ms, input) => FiberSet.run(timers, Effect.sleep(Duration.millis(ms)).pipe(Effect.andThen(apply(input))));
|
|
85
|
+
/** Media reaches a connection, while it is open, on a track it has resumed. */
|
|
86
|
+
const media = (to, link, track, deliver) => Effect.flatMap(Ref.get(connections), (open) => {
|
|
87
|
+
const connection = open.get(to);
|
|
88
|
+
return connection?.link !== link || connection.paused.has(track)
|
|
89
|
+
? Effect.void
|
|
90
|
+
: deliver(link);
|
|
91
|
+
});
|
|
92
|
+
/** One black frame, sent `at` a boundary: the flush H3 documents for `flush_on_clip_end`. */
|
|
93
|
+
const flush = (to, link, clip, at) => until(at).pipe(Effect.andThen(media(to, link, H3.documented.tracks.video, () => link.video({
|
|
94
|
+
data: Media.render({
|
|
95
|
+
clipId: clip.clip_id,
|
|
96
|
+
index: clip.frames,
|
|
97
|
+
picture: "black",
|
|
98
|
+
width: options.width,
|
|
99
|
+
height: options.height,
|
|
100
|
+
}),
|
|
101
|
+
frameId: BigInt(clip.frames + 1),
|
|
102
|
+
timestampMicros: BigInt(Math.round(at * 1000)),
|
|
103
|
+
}))));
|
|
104
|
+
/**
|
|
105
|
+
* One clip's frames and audio to one connection, each at its own time, until
|
|
106
|
+
* it ends or stops. A connection that opens while it plays joins it there.
|
|
107
|
+
*/
|
|
108
|
+
const play = (to, connection, clip, startedAt) => Effect.gen(function* () {
|
|
109
|
+
const video = yield* faults.standing((fault) => fault._tag === "Video");
|
|
110
|
+
const silent = yield* faults.standing((fault) => fault._tag === "NoAudio");
|
|
111
|
+
const picture = video?._tag === "Video" ? video.video : "live";
|
|
112
|
+
const { link, latency: delay } = connection;
|
|
113
|
+
const frameMs = 1000 / H3.documented.fps;
|
|
114
|
+
const past = (yield* monotonic) - startedAt - delay;
|
|
115
|
+
const from = (step) => Math.max(0, Math.ceil(past / step));
|
|
116
|
+
const frame = (index) => until(startedAt + delay + index * frameMs).pipe(Effect.andThen(media(to, link, H3.documented.tracks.video, () => link.video({
|
|
117
|
+
data: Media.render({
|
|
118
|
+
clipId: clip.clip_id,
|
|
119
|
+
index,
|
|
120
|
+
picture,
|
|
121
|
+
width: options.width,
|
|
122
|
+
height: options.height,
|
|
123
|
+
}),
|
|
124
|
+
frameId: BigInt(index + 1),
|
|
125
|
+
timestampMicros: BigInt(Math.round((startedAt + index * frameMs) * 1000)),
|
|
126
|
+
}))));
|
|
127
|
+
const block = (index) => until(startedAt + delay + index * Media.audioBlockMs).pipe(Effect.andThen(media(to, link, H3.documented.tracks.audio, () => link.audio(Media.tone({ clipId: clip.clip_id, first: index * Media.samplesPerBlock })))));
|
|
128
|
+
const blocks = Math.floor((clip.seconds * 1000) / Media.audioBlockMs);
|
|
129
|
+
const frames = picture === "absent" ? 0 : clip.frames;
|
|
130
|
+
yield* Effect.all([
|
|
131
|
+
Effect.forEach(range(frames).slice(from(frameMs)), frame, { discard: true }),
|
|
132
|
+
Effect.forEach(range(silent === undefined ? blocks : 0).slice(from(Media.audioBlockMs)), block, { discard: true }),
|
|
133
|
+
], { concurrency: 2, discard: true });
|
|
134
|
+
});
|
|
135
|
+
/** `greeting` is a connection that just opened, which alone hears the state and queue. */
|
|
136
|
+
const perform = (output, greeting) => Effect.gen(function* () {
|
|
137
|
+
switch (output._tag) {
|
|
138
|
+
case "Reply":
|
|
139
|
+
return yield* answer(output.requestId, (to) => data(to, output.requestId, Wire.MessageKind.RESPONSE, output.message));
|
|
140
|
+
case "Broadcast":
|
|
141
|
+
return yield* data(greeting ?? "all", "", Wire.MessageKind.NOTIFICATION, output.message);
|
|
142
|
+
case "Ack":
|
|
143
|
+
return yield* answer(output.requestId, (to) => respond(to, output.requestId));
|
|
144
|
+
case "Unknown":
|
|
145
|
+
return yield* answer(output.requestId, (to) => respond(to, output.requestId, {
|
|
146
|
+
case: "error",
|
|
147
|
+
value: { code: "unknown_command", message: output.command },
|
|
148
|
+
}));
|
|
149
|
+
case "Build": {
|
|
150
|
+
const fault = yield* faults.trip((candidate) => candidate._tag === "StallBuild" || candidate._tag === "FailBuild");
|
|
151
|
+
if (fault?._tag === "StallBuild")
|
|
152
|
+
return;
|
|
153
|
+
const speed = output.continued
|
|
154
|
+
? environment.timing.continuedBuildSpeed
|
|
155
|
+
: environment.timing.buildSpeed;
|
|
156
|
+
return yield* later((output.seconds / (yield* speed)) * 1000, fault?._tag === "FailBuild"
|
|
157
|
+
? { _tag: "BuildFailed", token: output.token, reason: fault.reason ?? "build failed" }
|
|
158
|
+
: { _tag: "Built", token: output.token });
|
|
159
|
+
}
|
|
160
|
+
case "Arm": {
|
|
161
|
+
const seam = yield* environment.timing.delay("seam");
|
|
162
|
+
return yield* later(seam, { _tag: "Start", token: output.token });
|
|
163
|
+
}
|
|
164
|
+
case "Land": {
|
|
165
|
+
const lag = yield* environment.timing.delay("stop");
|
|
166
|
+
return yield* later(lag, { _tag: "Landed", token: output.token });
|
|
167
|
+
}
|
|
168
|
+
case "Play":
|
|
169
|
+
yield* later(output.clip.seconds * 1000, { _tag: "Finish", token: output.token });
|
|
170
|
+
for (const [to, connection] of yield* Ref.get(connections))
|
|
171
|
+
yield* FiberMap.run(connection.players, output.token, play(to, connection, output.clip, output.startedAt));
|
|
172
|
+
return;
|
|
173
|
+
case "Halt":
|
|
174
|
+
for (const connection of (yield* Ref.get(connections)).values())
|
|
175
|
+
yield* FiberMap.remove(connection.players, output.token);
|
|
176
|
+
return;
|
|
177
|
+
case "Flush": {
|
|
178
|
+
const now = yield* monotonic;
|
|
179
|
+
for (const [to, connection] of yield* Ref.get(connections))
|
|
180
|
+
yield* FiberSet.run(timers, flush(to, connection.link, output.clip, now + connection.latency));
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
case "Continuation":
|
|
184
|
+
return yield* log({
|
|
185
|
+
sessionId,
|
|
186
|
+
kind: "build",
|
|
187
|
+
name: output.applied ? "continued" : "independent",
|
|
188
|
+
clipId: output.clipId,
|
|
189
|
+
continuedFrom: output.from,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
}).pipe(Effect.asVoid);
|
|
193
|
+
/**
|
|
194
|
+
* Content moderation screens an enqueue while the model takes it: the
|
|
195
|
+
* verdict follows the reply by the moderation delay, naming no category,
|
|
196
|
+
* input, command or request, as hosted H3's did; on `terminate` the session
|
|
197
|
+
* then ends. A fault may withhold the verdict and end the session all the same.
|
|
198
|
+
*/
|
|
199
|
+
const moderate = (fault) => Effect.gen(function* () {
|
|
200
|
+
const action = fault.action ?? "terminate";
|
|
201
|
+
yield* log({ sessionId, kind: "session", name: `moderation ${action}` });
|
|
202
|
+
if (fault.verdict !== false)
|
|
203
|
+
yield* send("all", "control", Wire.ControlServerMessageSchema, {
|
|
204
|
+
requestId: "",
|
|
205
|
+
kind: Wire.MessageKind.NOTIFICATION,
|
|
206
|
+
payload: { case: "moderation", value: { action, categories: [] } },
|
|
207
|
+
});
|
|
208
|
+
if (action === "terminate")
|
|
209
|
+
yield* environment.terminate;
|
|
210
|
+
});
|
|
211
|
+
function apply(input, greeting) {
|
|
212
|
+
return lock.withPermit(Effect.gen(function* () {
|
|
213
|
+
const [next, outputs] = H3.step({
|
|
214
|
+
model: yield* Ref.get(model),
|
|
215
|
+
input,
|
|
216
|
+
env: {
|
|
217
|
+
now: yield* monotonic,
|
|
218
|
+
generationCapacity: options.generationCapacity,
|
|
219
|
+
playoutCapacity: options.playoutCapacity,
|
|
220
|
+
},
|
|
221
|
+
});
|
|
222
|
+
yield* Ref.set(model, next);
|
|
223
|
+
for (const output of outputs)
|
|
224
|
+
yield* perform(output, greeting);
|
|
225
|
+
}));
|
|
226
|
+
}
|
|
227
|
+
const control = (from, message) => {
|
|
228
|
+
const answer = (payload) => send(from, "control", Wire.ControlServerMessageSchema, {
|
|
229
|
+
requestId: message.requestId,
|
|
230
|
+
kind: Wire.MessageKind.RESPONSE,
|
|
231
|
+
payload,
|
|
232
|
+
});
|
|
233
|
+
const pause = (name, paused) => Ref.update(connections, (open) => {
|
|
234
|
+
const connection = open.get(from);
|
|
235
|
+
if (connection === undefined)
|
|
236
|
+
return open;
|
|
237
|
+
const next = new Set(connection.paused);
|
|
238
|
+
if (paused)
|
|
239
|
+
next.add(name);
|
|
240
|
+
else
|
|
241
|
+
next.delete(name);
|
|
242
|
+
return new Map(open).set(from, { ...connection, paused: next });
|
|
243
|
+
});
|
|
244
|
+
switch (message.payload.case) {
|
|
245
|
+
case "requestSchema":
|
|
246
|
+
return answer({ case: "modelSchema", value: { openapi: environment.openapi } });
|
|
247
|
+
case "pauseTrack":
|
|
248
|
+
return pause(message.payload.value.name, true).pipe(Effect.andThen(log({ sessionId, kind: "track", name: `pause ${message.payload.value.name}` })));
|
|
249
|
+
case "resumeTrack":
|
|
250
|
+
return pause(message.payload.value.name, false).pipe(Effect.andThen(log({ sessionId, kind: "track", name: `resume ${message.payload.value.name}` })));
|
|
251
|
+
case "publishTrack":
|
|
252
|
+
return answer({ case: "error", value: { code: "unknown_track", message: "no input" } });
|
|
253
|
+
case "requestClip":
|
|
254
|
+
case "requestRecording": {
|
|
255
|
+
if (!options.recorder)
|
|
256
|
+
return answer({ case: "clipFailed", value: { reason: "recorder disabled" } });
|
|
257
|
+
const clip = message.payload.case === "requestClip"
|
|
258
|
+
? environment.record("snap", message.payload.value.durationSeconds)
|
|
259
|
+
: environment.record("recording", 0);
|
|
260
|
+
return Effect.flatMap(clip, (value) => answer({ case: "clipReady", value }));
|
|
261
|
+
}
|
|
262
|
+
default:
|
|
263
|
+
// Pings and upload or unpublish notifications need no answer.
|
|
264
|
+
return Effect.void;
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
const command = (from, message) => Effect.gen(function* () {
|
|
268
|
+
if (message.payload.case !== "command")
|
|
269
|
+
return;
|
|
270
|
+
const { type: name, data: args } = message.payload.value;
|
|
271
|
+
const requestId = message.requestId;
|
|
272
|
+
const fault = yield* faults.trip((candidate) => candidate._tag === "DropReply" && candidate.command === name);
|
|
273
|
+
const applied = fault?._tag === "DropReply" && fault.applied === true;
|
|
274
|
+
const dropped = fault && (applied ? "reply" : "command");
|
|
275
|
+
yield* log({ sessionId, kind: "command", name, ...(dropped && { dropped }) });
|
|
276
|
+
if (dropped === "command")
|
|
277
|
+
return;
|
|
278
|
+
const input = args ?? {};
|
|
279
|
+
const images = input.reference_images;
|
|
280
|
+
const invalid = name === "enqueue" && Array.isArray(images) && images.length > 0
|
|
281
|
+
? yield* faults.trip((candidate) => candidate._tag === "InvalidImage")
|
|
282
|
+
: undefined;
|
|
283
|
+
const late = yield* faults.trip((candidate) => candidate._tag === "LateReply" && candidate.command === name);
|
|
284
|
+
const lateMs = late?._tag === "LateReply" ? Duration.toMillis(late.after) : 0;
|
|
285
|
+
yield* Ref.update(requests, (all) => new Map(all).set(requestId, { from, withheld: applied, lateMs }));
|
|
286
|
+
const flagged = name === "enqueue"
|
|
287
|
+
? yield* faults.trip((candidate) => candidate._tag === "Moderate" &&
|
|
288
|
+
(candidate.prompt === undefined || candidate.prompt === input.prompt))
|
|
289
|
+
: undefined;
|
|
290
|
+
yield* apply({
|
|
291
|
+
_tag: "Command",
|
|
292
|
+
requestId,
|
|
293
|
+
name,
|
|
294
|
+
args: input,
|
|
295
|
+
...(invalid === undefined ? {} : { refuse: "a reference image is invalid" }),
|
|
296
|
+
});
|
|
297
|
+
if (flagged?._tag === "Moderate")
|
|
298
|
+
yield* FiberSet.run(timers, Effect.flatMap(environment.timing.delay("moderation"), (delay) => Effect.sleep(Duration.millis(delay)).pipe(Effect.andThen(moderate(flagged)))));
|
|
299
|
+
});
|
|
300
|
+
return {
|
|
301
|
+
/**
|
|
302
|
+
* A connection's channels opened: hosted Reactor holds its media until it
|
|
303
|
+
* resumes the tracks, and a clip already playing plays on to it.
|
|
304
|
+
*/
|
|
305
|
+
connect: (to, link) => Effect.gen(function* () {
|
|
306
|
+
const own = yield* Scope.fork(scope);
|
|
307
|
+
const connection = {
|
|
308
|
+
link,
|
|
309
|
+
paused: new Set(tracks),
|
|
310
|
+
latency: yield* environment.timing.delay("channel"),
|
|
311
|
+
players: yield* FiberMap.make().pipe(Scope.provide(own)),
|
|
312
|
+
scope: own,
|
|
313
|
+
};
|
|
314
|
+
yield* Ref.update(connections, (open) => new Map(open).set(to, connection));
|
|
315
|
+
const playing = (yield* Ref.get(model)).playing;
|
|
316
|
+
if (playing !== undefined)
|
|
317
|
+
yield* FiberMap.run(connection.players, playing.token, play(to, connection, playing.clip, playing.startedAt));
|
|
318
|
+
yield* apply({ _tag: "Connected" }, to);
|
|
319
|
+
}),
|
|
320
|
+
disconnect: (from) => Effect.gen(function* () {
|
|
321
|
+
const closed = yield* Ref.modify(connections, (open) => {
|
|
322
|
+
const next = new Map(open);
|
|
323
|
+
next.delete(from);
|
|
324
|
+
return [open.get(from), next];
|
|
325
|
+
});
|
|
326
|
+
if (closed !== undefined)
|
|
327
|
+
yield* Scope.close(closed.scope, Exit.void);
|
|
328
|
+
}),
|
|
329
|
+
/** A message the client sent. One the simulation cannot decode is the client's bug. */
|
|
330
|
+
receive: (from, link, channel, bytes) => Effect.gen(function* () {
|
|
331
|
+
if ((yield* Ref.get(connections)).get(from)?.link !== link)
|
|
332
|
+
return;
|
|
333
|
+
if (channel === "control")
|
|
334
|
+
yield* control(from, yield* Wire.decode(Wire.ControlClientMessageSchema)(bytes));
|
|
335
|
+
else
|
|
336
|
+
yield* command(from, yield* Wire.decode(Wire.DataClientMessageSchema)(bytes));
|
|
337
|
+
}).pipe(Effect.orDie),
|
|
338
|
+
};
|
|
339
|
+
});
|
|
340
|
+
//# sourceMappingURL=playout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playout.js","sourceRoot":"","sources":["../../../src/internal/reactorTest/playout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reference media for tests: a black PNG and a WAV tone that H3's local checks
|
|
3
|
+
* accept, built without a compressor or a platform codec so they run anywhere.
|
|
4
|
+
*/
|
|
5
|
+
/** A complete black PNG image of the given size: an image reference H3 accepts. */
|
|
6
|
+
export declare const pngBytes: ({ width, height, }: {
|
|
7
|
+
readonly width: number;
|
|
8
|
+
readonly height: number;
|
|
9
|
+
}) => Uint8Array;
|
|
10
|
+
export interface WavOptions {
|
|
11
|
+
/** The clip's length. */
|
|
12
|
+
readonly seconds: number;
|
|
13
|
+
/** Samples a second, 16,000 by default. */
|
|
14
|
+
readonly sampleRate?: number;
|
|
15
|
+
/** 1 (mono, the default) or 2. */
|
|
16
|
+
readonly channels?: number;
|
|
17
|
+
/** The tone's pitch in hertz, 440 by default; 0 writes silence. */
|
|
18
|
+
readonly frequency?: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* A 16-bit PCM WAV of a steady tone, `seconds` long: an audio reference whose
|
|
22
|
+
* header gives its length and channels, so H3's local checks read them.
|
|
23
|
+
*/
|
|
24
|
+
export declare const wavBytes: (options: WavOptions) => Uint8Array;
|
|
25
|
+
//# sourceMappingURL=references.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../../src/internal/reactorTest/references.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyBH,mFAAmF;AACnF,eAAO,MAAM,QAAQ,uBAGlB;IACD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,KAAG,UAuCH,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,yBAAyB;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,kCAAkC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,YAAa,UAAU,KAAG,UA+B9C,CAAC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Reference media for tests: a black PNG and a WAV tone that H3's local checks
|
|
3
|
+
* accept, built without a compressor or a platform codec so they run anywhere.
|
|
4
|
+
*/
|
|
2
5
|
/** Opaque black fixture pixels need no general-purpose compressor. Stored
|
|
3
6
|
* DEFLATE blocks (RFC 1951 §3.2.4) keep this synchronous helper host-neutral. */
|
|
4
7
|
const zeroPixels = (size) => {
|
|
@@ -21,17 +24,16 @@ const zeroPixels = (size) => {
|
|
|
21
24
|
view.setUint32(cursor, (raw.length % 65521) * 65536 + 1);
|
|
22
25
|
return output;
|
|
23
26
|
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
for (let k = 0; k < 8; k++)
|
|
28
|
-
c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
|
|
29
|
-
return c >>> 0;
|
|
30
|
-
});
|
|
27
|
+
/** A complete black PNG image of the given size: an image reference H3 accepts. */
|
|
28
|
+
export const pngBytes = ({ width, height, }) => {
|
|
29
|
+
// CRC-32 bit by bit: the fixtures are small enough to need no table.
|
|
31
30
|
const crc = (bytes) => {
|
|
32
31
|
let c = 0xffffffff;
|
|
33
|
-
for (const b of bytes)
|
|
34
|
-
c
|
|
32
|
+
for (const b of bytes) {
|
|
33
|
+
c ^= b;
|
|
34
|
+
for (let k = 0; k < 8; k++)
|
|
35
|
+
c = (c & 1) === 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
|
|
36
|
+
}
|
|
35
37
|
return (c ^ 0xffffffff) >>> 0;
|
|
36
38
|
};
|
|
37
39
|
const chunk = (type, data) => {
|
|
@@ -64,5 +66,41 @@ export const pngBytes = (width, height) => {
|
|
|
64
66
|
}
|
|
65
67
|
return out;
|
|
66
68
|
};
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
/**
|
|
70
|
+
* A 16-bit PCM WAV of a steady tone, `seconds` long: an audio reference whose
|
|
71
|
+
* header gives its length and channels, so H3's local checks read them.
|
|
72
|
+
*/
|
|
73
|
+
export const wavBytes = (options) => {
|
|
74
|
+
const seconds = options.seconds;
|
|
75
|
+
const sampleRate = options.sampleRate ?? 16_000;
|
|
76
|
+
const channels = options.channels ?? 1;
|
|
77
|
+
const frequency = options.frequency ?? 440;
|
|
78
|
+
const frames = Math.round(seconds * sampleRate);
|
|
79
|
+
const data = frames * channels * 2;
|
|
80
|
+
const bytes = new Uint8Array(44 + data);
|
|
81
|
+
const view = new DataView(bytes.buffer);
|
|
82
|
+
const text = (offset, value) => {
|
|
83
|
+
for (let i = 0; i < value.length; i++)
|
|
84
|
+
bytes[offset + i] = value.charCodeAt(i);
|
|
85
|
+
};
|
|
86
|
+
text(0, "RIFF");
|
|
87
|
+
view.setUint32(4, 36 + data, true);
|
|
88
|
+
text(8, "WAVE");
|
|
89
|
+
text(12, "fmt ");
|
|
90
|
+
view.setUint32(16, 16, true);
|
|
91
|
+
view.setUint16(20, 1, true); // PCM
|
|
92
|
+
view.setUint16(22, channels, true);
|
|
93
|
+
view.setUint32(24, sampleRate, true);
|
|
94
|
+
view.setUint32(28, sampleRate * channels * 2, true);
|
|
95
|
+
view.setUint16(32, channels * 2, true);
|
|
96
|
+
view.setUint16(34, 16, true);
|
|
97
|
+
text(36, "data");
|
|
98
|
+
view.setUint32(40, data, true);
|
|
99
|
+
for (let frame = 0; frame < frames; frame++) {
|
|
100
|
+
const sample = Math.round(8_000 * Math.sin((2 * Math.PI * frequency * frame) / sampleRate));
|
|
101
|
+
for (let channel = 0; channel < channels; channel++)
|
|
102
|
+
view.setInt16(44 + (frame * channels + channel) * 2, sample, true);
|
|
103
|
+
}
|
|
104
|
+
return bytes;
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=references.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"references.js","sourceRoot":"","sources":["../../../src/internal/reactorTest/references.ts"],"names":[],"mappings":"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"}
|