reactor-effect-client 0.2.0 → 0.3.0-rc.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 (218) hide show
  1. package/README.md +62 -6
  2. package/dist/FetchHttp.js +1 -1
  3. package/dist/FetchHttp.js.map +1 -1
  4. package/dist/PeerFactory.d.ts +13 -2
  5. package/dist/PeerFactory.d.ts.map +1 -1
  6. package/dist/PeerFactory.js.map +1 -1
  7. package/dist/PeerTypes.d.ts +2 -2
  8. package/dist/PeerTypes.d.ts.map +1 -1
  9. package/dist/Sequence.d.ts +18 -14
  10. package/dist/Sequence.d.ts.map +1 -1
  11. package/dist/Sequence.js +117 -122
  12. package/dist/Sequence.js.map +1 -1
  13. package/dist/SessionTypes.d.ts +168 -15
  14. package/dist/SessionTypes.d.ts.map +1 -1
  15. package/dist/SessionTypes.js +18 -1
  16. package/dist/SessionTypes.js.map +1 -1
  17. package/dist/bytes.js +3 -3
  18. package/dist/bytes.js.map +1 -1
  19. package/dist/contract.d.ts +120 -29
  20. package/dist/contract.d.ts.map +1 -1
  21. package/dist/contract.js +105 -73
  22. package/dist/contract.js.map +1 -1
  23. package/dist/coordinator/_internal/client.d.ts +111 -17
  24. package/dist/coordinator/_internal/client.d.ts.map +1 -1
  25. package/dist/coordinator/_internal/client.js +187 -74
  26. package/dist/coordinator/_internal/client.js.map +1 -1
  27. package/dist/coordinator/_internal/recording.d.ts +33 -0
  28. package/dist/coordinator/_internal/recording.d.ts.map +1 -0
  29. package/dist/coordinator/_internal/recording.js +123 -0
  30. package/dist/coordinator/_internal/recording.js.map +1 -0
  31. package/dist/coordinator/_internal/response.d.ts.map +1 -1
  32. package/dist/coordinator/_internal/response.js +5 -7
  33. package/dist/coordinator/_internal/response.js.map +1 -1
  34. package/dist/coordinator/_internal/schemas.d.ts +40 -6
  35. package/dist/coordinator/_internal/schemas.d.ts.map +1 -1
  36. package/dist/coordinator/_internal/schemas.js +94 -64
  37. package/dist/coordinator/_internal/schemas.js.map +1 -1
  38. package/dist/coordinator/index.d.ts +14 -2
  39. package/dist/coordinator/index.d.ts.map +1 -1
  40. package/dist/coordinator/index.js +14 -18
  41. package/dist/coordinator/index.js.map +1 -1
  42. package/dist/correlation.d.ts +15 -0
  43. package/dist/correlation.d.ts.map +1 -1
  44. package/dist/correlation.js +26 -8
  45. package/dist/correlation.js.map +1 -1
  46. package/dist/duration.d.ts +25 -0
  47. package/dist/duration.d.ts.map +1 -0
  48. package/dist/duration.js +47 -0
  49. package/dist/duration.js.map +1 -0
  50. package/dist/errors.d.ts +1264 -49
  51. package/dist/errors.d.ts.map +1 -1
  52. package/dist/errors.js +698 -46
  53. package/dist/errors.js.map +1 -1
  54. package/dist/h3/_internal/client.d.ts +2 -2
  55. package/dist/h3/_internal/client.d.ts.map +1 -1
  56. package/dist/h3/_internal/client.js +210 -125
  57. package/dist/h3/_internal/client.js.map +1 -1
  58. package/dist/h3/_internal/contracts.d.ts.map +1 -1
  59. package/dist/h3/_internal/contracts.js +2 -2
  60. package/dist/h3/_internal/contracts.js.map +1 -1
  61. package/dist/h3/_internal/deployment.d.ts.map +1 -1
  62. package/dist/h3/_internal/deployment.js +5 -4
  63. package/dist/h3/_internal/deployment.js.map +1 -1
  64. package/dist/h3/_internal/evidence.js +1 -1
  65. package/dist/h3/_internal/evidence.js.map +1 -1
  66. package/dist/h3/_internal/operations.d.ts +48 -0
  67. package/dist/h3/_internal/operations.d.ts.map +1 -0
  68. package/dist/h3/_internal/operations.js +230 -0
  69. package/dist/h3/_internal/operations.js.map +1 -0
  70. package/dist/h3/_internal/references.d.ts.map +1 -1
  71. package/dist/h3/_internal/references.js +3 -8
  72. package/dist/h3/_internal/references.js.map +1 -1
  73. package/dist/h3/_internal/request.js +1 -1
  74. package/dist/h3/_internal/request.js.map +1 -1
  75. package/dist/h3/_internal/retained.d.ts +22 -0
  76. package/dist/h3/_internal/retained.d.ts.map +1 -0
  77. package/dist/h3/_internal/retained.js +89 -0
  78. package/dist/h3/_internal/retained.js.map +1 -0
  79. package/dist/h3/_internal/state.d.ts +15 -1
  80. package/dist/h3/_internal/state.d.ts.map +1 -1
  81. package/dist/h3/_internal/state.js +69 -29
  82. package/dist/h3/_internal/state.js.map +1 -1
  83. package/dist/h3/index.d.ts +1 -1
  84. package/dist/h3/index.d.ts.map +1 -1
  85. package/dist/h3/messages.d.ts +118 -109
  86. package/dist/h3/messages.d.ts.map +1 -1
  87. package/dist/h3/messages.js +73 -51
  88. package/dist/h3/messages.js.map +1 -1
  89. package/dist/h3/types.d.ts +108 -13
  90. package/dist/h3/types.d.ts.map +1 -1
  91. package/dist/host.d.ts +6 -6
  92. package/dist/host.d.ts.map +1 -1
  93. package/dist/host.js +4 -5
  94. package/dist/host.js.map +1 -1
  95. package/dist/index.d.ts +11 -5
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +5 -1
  98. package/dist/index.js.map +1 -1
  99. package/dist/json.d.ts +13 -6
  100. package/dist/json.d.ts.map +1 -1
  101. package/dist/json.js +34 -14
  102. package/dist/json.js.map +1 -1
  103. package/dist/media-stream.d.ts.map +1 -1
  104. package/dist/media-stream.js +9 -11
  105. package/dist/media-stream.js.map +1 -1
  106. package/dist/observation.d.ts +9 -0
  107. package/dist/observation.d.ts.map +1 -1
  108. package/dist/observation.js +20 -18
  109. package/dist/observation.js.map +1 -1
  110. package/dist/orchestration/h3-source.d.ts +32 -4
  111. package/dist/orchestration/h3-source.d.ts.map +1 -1
  112. package/dist/orchestration/h3-source.js +47 -14
  113. package/dist/orchestration/h3-source.js.map +1 -1
  114. package/dist/orchestration/index.d.ts +9 -6
  115. package/dist/orchestration/index.d.ts.map +1 -1
  116. package/dist/orchestration/index.js +5 -3
  117. package/dist/orchestration/index.js.map +1 -1
  118. package/dist/orchestration/media-buffer.d.ts +12 -4
  119. package/dist/orchestration/media-buffer.d.ts.map +1 -1
  120. package/dist/orchestration/media-buffer.js +31 -11
  121. package/dist/orchestration/media-buffer.js.map +1 -1
  122. package/dist/orchestration/open-h3.d.ts +65 -0
  123. package/dist/orchestration/open-h3.d.ts.map +1 -0
  124. package/dist/orchestration/open-h3.js +65 -0
  125. package/dist/orchestration/open-h3.js.map +1 -0
  126. package/dist/orchestration/references.d.ts +5 -1
  127. package/dist/orchestration/references.d.ts.map +1 -1
  128. package/dist/orchestration/references.js +37 -34
  129. package/dist/orchestration/references.js.map +1 -1
  130. package/dist/orchestration/renewal-state.js +1 -1
  131. package/dist/orchestration/renewal-state.js.map +1 -1
  132. package/dist/orchestration/renewal.d.ts +64 -64
  133. package/dist/orchestration/renewal.d.ts.map +1 -1
  134. package/dist/orchestration/renewal.js +149 -88
  135. package/dist/orchestration/renewal.js.map +1 -1
  136. package/dist/orchestration/request.d.ts +11 -12
  137. package/dist/orchestration/request.d.ts.map +1 -1
  138. package/dist/orchestration/request.js +63 -66
  139. package/dist/orchestration/request.js.map +1 -1
  140. package/dist/orchestration/routing.d.ts.map +1 -1
  141. package/dist/orchestration/routing.js +17 -14
  142. package/dist/orchestration/routing.js.map +1 -1
  143. package/dist/orchestration/source-slot.d.ts +15 -5
  144. package/dist/orchestration/source-slot.d.ts.map +1 -1
  145. package/dist/orchestration/source-slot.js +40 -21
  146. package/dist/orchestration/source-slot.js.map +1 -1
  147. package/dist/orchestration/types.d.ts +594 -39
  148. package/dist/orchestration/types.d.ts.map +1 -1
  149. package/dist/orchestration/types.js +20 -0
  150. package/dist/orchestration/types.js.map +1 -1
  151. package/dist/protobuf.js +2 -2
  152. package/dist/protobuf.js.map +1 -1
  153. package/dist/session/_internal/acquire.d.ts +4 -6
  154. package/dist/session/_internal/acquire.d.ts.map +1 -1
  155. package/dist/session/_internal/acquire.js +40 -50
  156. package/dist/session/_internal/acquire.js.map +1 -1
  157. package/dist/session/_internal/cleanup.d.ts +2 -1
  158. package/dist/session/_internal/cleanup.d.ts.map +1 -1
  159. package/dist/session/_internal/cleanup.js +23 -15
  160. package/dist/session/_internal/cleanup.js.map +1 -1
  161. package/dist/session/_internal/lifecycle.d.ts +5 -0
  162. package/dist/session/_internal/lifecycle.d.ts.map +1 -1
  163. package/dist/session/_internal/lifecycle.js +16 -6
  164. package/dist/session/_internal/lifecycle.js.map +1 -1
  165. package/dist/session/_internal/remote.d.ts.map +1 -1
  166. package/dist/session/_internal/remote.js +16 -7
  167. package/dist/session/_internal/remote.js.map +1 -1
  168. package/dist/session/_internal/uploads.d.ts +4 -1
  169. package/dist/session/_internal/uploads.d.ts.map +1 -1
  170. package/dist/session/_internal/uploads.js +25 -27
  171. package/dist/session/_internal/uploads.js.map +1 -1
  172. package/dist/session/commands.d.ts +1 -21
  173. package/dist/session/commands.d.ts.map +1 -1
  174. package/dist/session/commands.js +1 -12
  175. package/dist/session/commands.js.map +1 -1
  176. package/dist/session/files.d.ts +10 -2
  177. package/dist/session/files.d.ts.map +1 -1
  178. package/dist/session/files.js +11 -16
  179. package/dist/session/files.js.map +1 -1
  180. package/dist/session/index.d.ts +6 -6
  181. package/dist/session/index.d.ts.map +1 -1
  182. package/dist/session/index.js.map +1 -1
  183. package/dist/session/media.d.ts +53 -6
  184. package/dist/session/media.d.ts.map +1 -1
  185. package/dist/session/recorder.d.ts +24 -0
  186. package/dist/session/recorder.d.ts.map +1 -0
  187. package/dist/session/recorder.js +19 -0
  188. package/dist/session/recorder.js.map +1 -0
  189. package/dist/session.d.ts +5 -4
  190. package/dist/session.d.ts.map +1 -1
  191. package/dist/session.js +208 -109
  192. package/dist/session.js.map +1 -1
  193. package/dist/simulation/_internal/source.d.ts.map +1 -1
  194. package/dist/simulation/_internal/source.js +57 -48
  195. package/dist/simulation/_internal/source.js.map +1 -1
  196. package/dist/simulation/index.d.ts +4 -5
  197. package/dist/simulation/index.d.ts.map +1 -1
  198. package/dist/simulation/index.js +3 -4
  199. package/dist/simulation/index.js.map +1 -1
  200. package/dist/simulation/types.d.ts +16 -2
  201. package/dist/simulation/types.d.ts.map +1 -1
  202. package/dist/stats.d.ts.map +1 -1
  203. package/dist/stats.js +4 -5
  204. package/dist/stats.js.map +1 -1
  205. package/package.json +5 -4
  206. package/notices/owned-webrtc/Effect-MIT.txt +0 -21
  207. package/notices/owned-webrtc/IETF.txt +0 -43
  208. package/notices/owned-webrtc/LICENSE +0 -21
  209. package/notices/owned-webrtc/UPSTREAM.md +0 -20
  210. package/notices/owned-webrtc/VP8-ADAPTATION.md +0 -32
  211. package/notices/owned-webrtc/VP8-AUTHORS.txt +0 -42
  212. package/notices/owned-webrtc/VP8-LICENSE.txt +0 -25
  213. package/notices/owned-webrtc/VP8-PATENTS.txt +0 -21
  214. package/notices/owned-webrtc/Werift-MIT.txt +0 -21
  215. package/notices/owned-webrtc/libvpx-v1.12.0-LICENSE.txt +0 -28
  216. package/notices/owned-webrtc/libvpx-v1.12.0-PATENTS.txt +0 -22
  217. package/notices/owned-webrtc/rfc3711.txt +0 -3139
  218. package/notices/owned-webrtc/str0m-MIT.txt +0 -7
package/dist/contract.js CHANGED
@@ -1,87 +1,119 @@
1
+ import * as Option from "effect/Option";
2
+ import * as Predicate from "effect/Predicate";
3
+ import * as Result from "effect/Result";
4
+ import * as Schema from "effect/Schema";
5
+ import * as SchemaTransformation from "effect/SchemaTransformation";
1
6
  import { ReactorError } from "./errors.js";
2
- import { array, finite, jsonObject, nonempty, record, string, uint32 } from "./json.js";
7
+ import { json, jsonObject } from "./json.js";
3
8
  export const SDK_PIN = "24f1865b48f03354b15402731f1b92e90ceee92a";
4
9
  export const RUNTIME_PIN = "8e98536c6daedca298700dc45cbb5fd9e3676f16";
5
10
  export const CLIENT_INFO = Object.freeze({
6
11
  sdk_version: "0.1.0",
7
12
  sdk_type: "typescript-effect-independent",
8
13
  });
14
+ /**
15
+ * A field the provider sends as `null` or omits for the same fact: both decode
16
+ * as absent, so the decoded value omits it.
17
+ */
18
+ const NullAsAbsent = (schema) => Schema.optionalKey(Schema.NullOr(schema)).pipe(Schema.decodeTo(Schema.optionalKey(Schema.toType(schema)), SchemaTransformation.transformOptional({
19
+ decode: Option.filter(Predicate.isNotNull),
20
+ encode: (value) => value,
21
+ })));
22
+ const Uint32 = Schema.Int.check(Schema.isBetween({ minimum: 0, maximum: 0xffffffff }));
23
+ export const Track = Schema.Struct({
24
+ name: Schema.NonEmptyString,
25
+ kind: Schema.Literals(["audio", "video"]),
26
+ direction: Schema.Literals(["recvonly", "sendonly"]),
27
+ });
28
+ /** A track and the media section a host negotiated for it. */
29
+ export const Mapping = Schema.Struct({ ...Track.fields, mid: Schema.String });
30
+ export const Capabilities = Schema.Struct({
31
+ protocol_version: Schema.NonEmptyString,
32
+ tracks: Schema.Array(Track).check(Schema.isMaxLength(64), Schema.makeFilter((tracks) => new Set(tracks.map((track) => track.name)).size === tracks.length
33
+ ? undefined
34
+ : "duplicate track names are ambiguous for named track operations")),
35
+ commands: NullAsAbsent(Schema.Array(Schema.Struct({
36
+ name: Schema.NonEmptyString,
37
+ description: NullAsAbsent(Schema.String),
38
+ schema: Schema.optionalKey(Schema.Json),
39
+ }))),
40
+ emission_fps: NullAsAbsent(Schema.Finite),
41
+ });
42
+ /** A create reply's session id alone, so ownership never depends on the reply's later fields. */
43
+ export const Allocated = Schema.Struct({ session_id: Schema.NonEmptyString });
44
+ /** The decoded fields of a session descriptor. */
45
+ export const SessionDescriptor = Schema.Struct({
46
+ session_id: Schema.NonEmptyString,
47
+ /** Unknown future state values remain available, rather than becoming a made-up known state. */
48
+ state: Schema.NonEmptyString,
49
+ capabilities: NullAsAbsent(Capabilities),
50
+ selected_transport: NullAsAbsent(Schema.Struct({ protocol: Schema.NonEmptyString, version: Schema.NonEmptyString })),
51
+ });
52
+ export const IceServers = Schema.Struct({
53
+ ice_servers: Schema.Array(Schema.Struct({
54
+ uris: Schema.Array(Schema.NonEmptyString),
55
+ credentials: NullAsAbsent(Schema.Struct({ username: Schema.String, password: Schema.String })),
56
+ })).check(Schema.isMaxLength(64)),
57
+ });
58
+ export const Registered = Schema.Struct({ connection_id: Uint32 });
59
+ export const SdpAnswer = Schema.Struct({
60
+ sdp_answer: Schema.NonEmptyString,
61
+ connection_id: NullAsAbsent(Uint32),
62
+ });
63
+ /** A presigned upload slot. */
64
+ export const UploadSlot = Schema.Struct({
65
+ presigned_id: Schema.NonEmptyString,
66
+ presigned_url: Schema.NonEmptyString,
67
+ path: Schema.String,
68
+ });
69
+ /** A key exchange's reply. */
70
+ export const Exchanged = Schema.Struct({ jwt: Schema.NonEmptyString });
9
71
  export const terminal = (state) => state === "CLOSED" || state === "INACTIVE";
10
- export const parseTrack = (input) => {
11
- const t = record(input, "track"), name = nonempty(t.name, "track.name");
12
- if (t.kind !== "audio" && t.kind !== "video")
13
- throw new ReactorError("Protocol", "unknown track kind");
14
- if (t.direction !== "recvonly" && t.direction !== "sendonly")
15
- throw new ReactorError("Protocol", "unknown track direction");
16
- return Object.freeze({ name, kind: t.kind, direction: t.direction });
72
+ const deepFreeze = (value) => {
73
+ if (value !== null && typeof value === "object" && !Object.isFrozen(value)) {
74
+ for (const child of Object.values(value))
75
+ deepFreeze(child);
76
+ Object.freeze(value);
77
+ }
78
+ return value;
17
79
  };
18
- export const parseCapabilities = (input) => {
19
- const c = record(input, "capabilities"), tracks = array(c.tracks, "capabilities.tracks").map(parseTrack);
20
- if (tracks.length > 64)
21
- throw new ReactorError("Protocol", "at most 64 tracks are supported");
22
- if (new Set(tracks.map((t) => t.name)).size !== tracks.length)
23
- throw new ReactorError("Protocol", "duplicate track names are ambiguous for named track operations");
24
- const commands = c.commands == null
25
- ? undefined
26
- : array(c.commands, "commands").map((input) => {
27
- const raw = jsonObject(input), x = record(raw);
28
- return Object.freeze({
29
- name: nonempty(x.name, "command.name"),
30
- ...(x.description == null
31
- ? {}
32
- : { description: string(x.description, "command.description") }),
33
- ...(raw.schema === undefined ? {} : { schema: raw.schema }),
34
- });
35
- });
36
- return Object.freeze({
37
- protocol_version: nonempty(c.protocol_version, "capabilities.protocol_version"),
38
- tracks: Object.freeze(tracks),
39
- ...(commands === undefined ? {} : { commands: Object.freeze(commands) }),
40
- ...(c.emission_fps == null ? {} : { emission_fps: finite(c.emission_fps, "emission_fps") }),
41
- });
80
+ /**
81
+ * Decode a reply, already copied by the bounded JSON walker, through its
82
+ * Schema. A mismatch is `Protocol`, with a message the library writes and the
83
+ * `SchemaError`, which names the path but no input value, kept in `detail`.
84
+ */
85
+ const decoder = (schema, what) => {
86
+ const decode = Schema.decodeUnknownResult(schema);
87
+ return (value) => {
88
+ const decoded = decode(value);
89
+ if (Result.isFailure(decoded))
90
+ throw ReactorError.fromCode("Protocol", `invalid ${what}`, { detail: decoded.failure });
91
+ return deepFreeze(decoded.success);
92
+ };
42
93
  };
94
+ const decodeAllocated = decoder(Allocated, "create reply");
95
+ const decodeDescriptor = decoder(SessionDescriptor, "session descriptor");
96
+ const decodeCapabilities = decoder(Capabilities, "capabilities");
97
+ const decodeIceServers = decoder(IceServers, "ICE servers reply");
98
+ const decodeRegistered = decoder(Registered, "connection reply");
99
+ const decodeAnswer = decoder(SdpAnswer, "SDP answer");
100
+ const decodeUploadSlot = decoder(UploadSlot, "upload allocation");
101
+ const decodeExchanged = decoder(Exchanged, "key exchange reply");
102
+ export const parseCapabilities = (input) => decodeCapabilities(json(input));
103
+ export const parseSessionId = (input) => decodeAllocated(json(input)).session_id;
43
104
  export const parseDescriptor = (input) => {
44
- const raw = jsonObject(input), d = record(raw);
45
- const transport = d.selected_transport == null ? undefined : record(d.selected_transport, "selected_transport");
46
- return Object.freeze({
47
- session_id: nonempty(d.session_id, "session_id"),
48
- state: nonempty(d.state, "session.state"),
49
- raw,
50
- ...(d.capabilities == null ? {} : { capabilities: parseCapabilities(d.capabilities) }),
51
- ...(transport === undefined
52
- ? {}
53
- : {
54
- selected_transport: Object.freeze({
55
- protocol: nonempty(transport.protocol, "transport.protocol"),
56
- version: nonempty(transport.version, "transport.version"),
57
- }),
58
- }),
59
- });
105
+ const raw = jsonObject(input);
106
+ return Object.freeze({ ...decodeDescriptor(raw), raw });
60
107
  };
61
- export const parseIce = (input) => {
62
- const list = array(record(input).ice_servers, "ice_servers");
63
- if (list.length > 64)
64
- throw new ReactorError("Protocol", "too many ICE servers");
65
- return list.map((x) => {
66
- const server = record(x, "ICE server"), urls = array(server.uris, "ICE server uris").map((u) => nonempty(u, "ICE URI"));
67
- if (server.credentials == null)
68
- return { urls };
69
- const auth = record(server.credentials, "ICE credentials");
70
- return {
71
- urls,
72
- username: string(auth.username, "ICE username"),
73
- credential: string(auth.password, "ICE password"),
74
- };
108
+ export const parseIce = (input) => decodeIceServers(json(input)).ice_servers.map((server) => server.credentials === undefined
109
+ ? { urls: [...server.uris] }
110
+ : {
111
+ urls: [...server.uris],
112
+ username: server.credentials.username,
113
+ credential: server.credentials.password,
75
114
  });
76
- };
77
- export const parseConnectionId = (input) => uint32(record(input).connection_id, "connection_id");
78
- export const parseAnswer = (input) => {
79
- const answer = record(input, "SDP answer");
80
- return {
81
- sdp_answer: nonempty(answer.sdp_answer, "sdp_answer"),
82
- ...(answer.connection_id == null
83
- ? {}
84
- : { connection_id: uint32(answer.connection_id, "connection_id") }),
85
- };
86
- };
115
+ export const parseConnectionId = (input) => decodeRegistered(json(input)).connection_id;
116
+ export const parseAnswer = (input) => decodeAnswer(json(input));
117
+ export const parseUploadSlot = (input) => decodeUploadSlot(json(input));
118
+ export const parseExchangedToken = (input) => decodeExchanged(json(input)).jwt;
87
119
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,51 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Redacted from "effect/Redacted";
3
3
  import * as CoreHttpClient from "effect/unstable/http/HttpClient";
4
+ import * as Duration from "effect/Duration";
5
+ import * as Schema from "effect/Schema";
4
6
  import { ReactorError } from "../../errors.js";
5
7
  import type { Json } from "../../json.js";
6
8
  import { parseAnswer } from "../../contract.js";
7
9
  import type { Descriptor, IceCandidate, IceServer, Mapping } from "../../contract.js";
8
10
  import type { HttpReply } from "./response.js";
9
11
  import type { TokenOptions } from "./schemas.js";
12
+ import type { DownloadedClip, DownloadOptions } from "./recording.js";
13
+ import type { ClipReady } from "../../wire.generated.js";
14
+ /** A bounded poll: each wait doubles from `initialDelay` up to `maxDelay`. */
10
15
  export interface Poll {
11
16
  readonly attempts: number;
12
- readonly initialMs: number;
13
- readonly maxMs: number;
17
+ /** The first wait, at most 1 minute. A bare number is milliseconds. */
18
+ readonly initialDelay: Duration.Input;
19
+ /** The longest wait, at most 1 minute. A bare number is milliseconds. */
20
+ readonly maxDelay: Duration.Input;
21
+ /** @deprecated Removed in 0.3.0: use `initialDelay` (a bare number is milliseconds). */
22
+ readonly initialMs?: never;
23
+ /** @deprecated Removed in 0.3.0: use `maxDelay` (a bare number is milliseconds). */
24
+ readonly maxMs?: never;
14
25
  }
15
26
  export declare const SESSION_POLL: Poll;
16
27
  export declare const SDP_POLL: Poll;
28
+ /** A validated poll. */
29
+ interface Backoff {
30
+ readonly attempts: number;
31
+ readonly initialDelay: Duration.Duration;
32
+ readonly maxDelay: Duration.Duration;
33
+ }
17
34
  export interface HttpOptions {
18
35
  readonly apiUrl: string;
19
36
  readonly local?: boolean;
20
37
  /** Evaluated for each authenticated request, including signaling for local sessions. */
21
38
  readonly credential?: Effect.Effect<string | undefined, ReactorError>;
22
- readonly requestTimeoutMs?: number;
39
+ /**
40
+ * Bounds each coordinator request, from sending it to reading the whole
41
+ * response, at most 10 minutes. By default each operation has its own budget:
42
+ * 15 seconds, 8 seconds for pricing and tokens, 3 seconds for each
43
+ * termination request and 1 second for an inspection. A bare number is
44
+ * milliseconds.
45
+ */
46
+ readonly requestTimeout?: Duration.Input | undefined;
47
+ /** @deprecated Removed in 0.3.0: use `requestTimeout` (a bare number is milliseconds). */
48
+ readonly requestTimeoutMs?: never;
23
49
  readonly maxResponseBytes?: number;
24
50
  readonly maxResponseChunks?: number;
25
51
  readonly sessionPoll?: Poll;
@@ -35,32 +61,95 @@ interface Request {
35
61
  readonly headers?: Readonly<Record<string, string>>;
36
62
  readonly accepted?: readonly number[];
37
63
  readonly maxBytes?: number;
38
- readonly timeoutMs?: number;
64
+ /** This request's budget when the application configured none. */
65
+ readonly timeout?: Duration.Duration;
66
+ /** Observes the response status once it arrives, even if reading its body then fails. */
67
+ readonly onStatus?: (status: number) => void;
68
+ }
69
+ /** A create reply whose session id is valid; nothing else in it has been checked yet. */
70
+ export interface Allocation {
71
+ readonly sessionId: string;
72
+ readonly reply: unknown;
39
73
  }
40
74
  export interface UploadAllocation {
41
75
  readonly presigned_id: string;
42
76
  readonly presigned_url: string;
43
77
  readonly path: string;
44
78
  }
45
- export interface Termination {
46
- readonly attempted: boolean;
47
- readonly responseReceived: boolean;
48
- readonly confirmed: boolean;
49
- readonly evidence: "absent" | "terminal" | null;
79
+ /**
80
+ * A remote termination verdict. As a Schema it encodes for persistence; its
81
+ * `error` encodes as diagnostic JSON, without provider text.
82
+ */
83
+ export declare const Termination: Schema.Struct<{
84
+ readonly attempted: Schema.Boolean;
85
+ readonly responseReceived: Schema.Boolean;
86
+ readonly confirmed: Schema.Boolean;
87
+ readonly evidence: Schema.NullOr<Schema.Literals<readonly ["absent", "terminal"]>>;
50
88
  /** DELETE/stop status; null means no response headers were received. */
51
- readonly deleteStatus: number | null;
89
+ readonly deleteStatus: Schema.NullOr<Schema.Int>;
52
90
  /** State from the independent confirmation, when it was valid. */
53
- readonly state: string | null;
54
- readonly error?: ReactorError;
91
+ readonly state: Schema.NullOr<Schema.String>;
92
+ readonly error: Schema.optionalKey<Schema.decodeTo<Schema.declare<ReactorError, ReactorError>, Schema.Codec<{
93
+ readonly _tag: "ReactorError";
94
+ readonly message: string;
95
+ readonly reason: {
96
+ readonly _tag: "Aborted" | "AlreadyReading" | "ChannelClosed" | "Closed" | "Disconnected" | "Indeterminate" | "InvalidInput" | "InvalidState" | "Overflow" | "Protocol" | "SdpRejected" | "Shutdown" | "TerminalSession" | "Timeout" | "UnexpectedReply" | "UnsupportedCapability" | "UnsupportedHost" | "Upload" | "VersionMismatch";
97
+ readonly message: string;
98
+ } | {
99
+ readonly _tag: "Http";
100
+ readonly message: string;
101
+ readonly status?: number;
102
+ readonly retryAfterMillis?: number;
103
+ } | {
104
+ readonly _tag: "RecorderDisabled" | "Remote";
105
+ readonly message: string;
106
+ readonly remoteCode?: string;
107
+ } | {
108
+ readonly _tag: "Native";
109
+ readonly message: string;
110
+ readonly status?: number;
111
+ } | {
112
+ readonly _tag: "IceFailed";
113
+ readonly message: string;
114
+ readonly pairs: number;
115
+ readonly candidateTypes: readonly string[];
116
+ } | {
117
+ readonly _tag: "TransportFailed";
118
+ readonly message: string;
119
+ readonly pairs: number;
120
+ } | {
121
+ readonly _tag: "ClipEnded";
122
+ readonly message: string;
123
+ readonly clipId: string;
124
+ readonly lifecycle: "clip_failed" | "clip_popped";
125
+ readonly transportGeneration: string;
126
+ };
127
+ readonly context: {
128
+ readonly operation?: string;
129
+ readonly requestId?: string;
130
+ readonly sessionId?: string;
131
+ readonly generation?: string;
132
+ readonly outcome?: "not-submitted" | "replied" | "unknown";
133
+ };
134
+ }, unknown, never, never>, never, never>>;
135
+ }>;
136
+ export interface Termination extends Schema.Schema.Type<typeof Termination> {
55
137
  }
138
+ /**
139
+ * A termination verdict as span attributes. Terminate returns its verdict
140
+ * rather than failing, so a span that succeeds says nothing about whether a
141
+ * paid session stopped: these attributes do.
142
+ */
143
+ export declare const terminationAttributes: (termination: Termination) => Record<string, unknown>;
56
144
  /** Reactor HTTP protocol over the application-supplied Effect HTTP client. */
57
145
  export declare class CoordinatorClient {
58
146
  private readonly client;
59
147
  readonly apiUrl: string;
60
148
  readonly local: boolean;
61
- readonly sessionPoll: Poll;
62
- readonly sdpPoll: Poll;
63
- private readonly timeoutMs;
149
+ readonly sessionPoll: Backoff;
150
+ readonly sdpPoll: Backoff;
151
+ /** The application's request budget, which replaces every operation's own. */
152
+ private readonly requestTimeout;
64
153
  private readonly maxBytes;
65
154
  private readonly maxChunks;
66
155
  readonly options: HttpOptions;
@@ -70,10 +159,15 @@ export declare class CoordinatorClient {
70
159
  transportPath(id: string): string;
71
160
  request(request: Request): Effect.Effect<HttpReply, ReactorError>;
72
161
  private jsonRequest;
162
+ /** Resolves once the reply names the allocated session; `describe` decodes the rest. */
73
163
  create(model: {
74
164
  readonly name: string;
75
165
  readonly version?: string;
76
- }, extraArgs?: Json): Effect.Effect<Descriptor, ReactorError>;
166
+ }, extraArgs?: Json): Effect.Effect<Allocation, ReactorError>;
167
+ /** A reply that cannot describe its session still names one its owner must terminate. */
168
+ describe(allocation: Allocation): Effect.Effect<Descriptor, ReactorError>;
169
+ /** Assemble a prepared recording's bytes within a caller wall deadline. */
170
+ downloadClip(clip: ClipReady, options?: DownloadOptions): Effect.Effect<DownloadedClip, ReactorError>;
77
171
  read(id: string): Effect.Effect<Descriptor, ReactorError>;
78
172
  ready(id: string, initial?: Descriptor): Effect.Effect<Descriptor, ReactorError>;
79
173
  iceServers(id: string): Effect.Effect<IceServer[], ReactorError>;
@@ -86,7 +180,7 @@ export declare class CoordinatorClient {
86
180
  /** Both scoped sessions and external supervisors use this exact evidence algorithm. */
87
181
  terminate(id: string): Effect.Effect<Termination>;
88
182
  /** Pricing remains provider JSON; modelRate interprets only known rate units. */
89
- pricing(): Effect.Effect<Json, ReactorError>;
183
+ get pricing(): Effect.Effect<Json, ReactorError>;
90
184
  mintToken(input: TokenOptions): Effect.Effect<{
91
185
  jwt: Redacted.Redacted<string>;
92
186
  expiresAt: number;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/coordinator/_internal/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/coordinator/_internal/client.ts"],"names":[],"mappings":"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"}