reactor-effect-client 0.5.0 → 0.7.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 (60) hide show
  1. package/README.md +29 -3
  2. package/dist/_internal/queue.d.ts +6 -0
  3. package/dist/_internal/queue.d.ts.map +1 -0
  4. package/dist/_internal/queue.js +30 -0
  5. package/dist/_internal/queue.js.map +1 -0
  6. package/dist/host.d.ts +1 -0
  7. package/dist/host.d.ts.map +1 -1
  8. package/dist/host.js +1 -0
  9. package/dist/host.js.map +1 -1
  10. package/dist/observation.d.ts +3 -0
  11. package/dist/observation.d.ts.map +1 -1
  12. package/dist/observation.js +9 -4
  13. package/dist/observation.js.map +1 -1
  14. package/dist/orchestration/index.d.ts +6 -6
  15. package/dist/orchestration/index.d.ts.map +1 -1
  16. package/dist/orchestration/index.js +3 -3
  17. package/dist/orchestration/index.js.map +1 -1
  18. package/dist/orchestration/media-buffer.d.ts +2 -1
  19. package/dist/orchestration/media-buffer.d.ts.map +1 -1
  20. package/dist/orchestration/media-buffer.js +5 -4
  21. package/dist/orchestration/media-buffer.js.map +1 -1
  22. package/dist/orchestration/renewal-state.d.ts +14 -2
  23. package/dist/orchestration/renewal-state.d.ts.map +1 -1
  24. package/dist/orchestration/renewal-state.js +34 -4
  25. package/dist/orchestration/renewal-state.js.map +1 -1
  26. package/dist/orchestration/renewal.d.ts +27 -3
  27. package/dist/orchestration/renewal.d.ts.map +1 -1
  28. package/dist/orchestration/renewal.js +400 -95
  29. package/dist/orchestration/renewal.js.map +1 -1
  30. package/dist/orchestration/retention.d.ts +100 -0
  31. package/dist/orchestration/retention.d.ts.map +1 -0
  32. package/dist/orchestration/retention.js +134 -0
  33. package/dist/orchestration/retention.js.map +1 -0
  34. package/dist/orchestration/scheduler-key.d.ts +2 -1
  35. package/dist/orchestration/scheduler-key.d.ts.map +1 -1
  36. package/dist/orchestration/scheduler-key.js +2 -2
  37. package/dist/orchestration/scheduler-key.js.map +1 -1
  38. package/dist/orchestration/scheduler-policy.d.ts +153 -12
  39. package/dist/orchestration/scheduler-policy.d.ts.map +1 -1
  40. package/dist/orchestration/scheduler-policy.js +433 -54
  41. package/dist/orchestration/scheduler-policy.js.map +1 -1
  42. package/dist/orchestration/scheduler.d.ts +206 -5
  43. package/dist/orchestration/scheduler.d.ts.map +1 -1
  44. package/dist/orchestration/scheduler.js +1451 -284
  45. package/dist/orchestration/scheduler.js.map +1 -1
  46. package/dist/orchestration/source-slot.d.ts +16 -4
  47. package/dist/orchestration/source-slot.d.ts.map +1 -1
  48. package/dist/orchestration/source-slot.js +122 -30
  49. package/dist/orchestration/source-slot.js.map +1 -1
  50. package/dist/orchestration/types.d.ts +503 -1
  51. package/dist/orchestration/types.d.ts.map +1 -1
  52. package/dist/orchestration/types.js +105 -1
  53. package/dist/orchestration/types.js.map +1 -1
  54. package/dist/session.d.ts.map +1 -1
  55. package/dist/session.js +2 -1
  56. package/dist/session.js.map +1 -1
  57. package/dist/simulation/_internal/source.d.ts.map +1 -1
  58. package/dist/simulation/_internal/source.js +5 -4
  59. package/dist/simulation/_internal/source.js.map +1 -1
  60. package/package.json +2 -2
@@ -4,9 +4,8 @@ import * as Effect from "effect/Effect";
4
4
  import * as Exit from "effect/Exit";
5
5
  import * as Result from "effect/Result";
6
6
  import * as Scope from "effect/Scope";
7
- import * as Semaphore from "effect/Semaphore";
8
7
  import * as Stream from "effect/Stream";
9
- import { ReactorError } from "../errors.js";
8
+ import { errorOf, ReactorError } from "../errors.js";
10
9
  import { PolicyFailure } from "./request.js";
11
10
  import { monotonicMillis } from "./elapsed.js";
12
11
  import * as Lifecycle from "./renewal-state.js";
@@ -30,6 +29,29 @@ export const subtractLoss = (a, b) => ({
30
29
  audio: minus(a.audio, b.audio),
31
30
  readers: minus(a.readers, b.readers),
32
31
  });
32
+ /**
33
+ * Runs a close at most once and gives every caller its Exit. Unlike
34
+ * `Effect.cached`, the first caller claims the run and enters it in one
35
+ * uninterruptible step: an interruption between the two would otherwise be
36
+ * cached as the close's result, or strand later callers on a run never
37
+ * entered. Later callers still wait interruptibly.
38
+ */
39
+ export const once = (self) => Effect.sync(() => {
40
+ const done = Deferred.makeUnsafe();
41
+ let exit;
42
+ let started = false;
43
+ return Effect.uninterruptibleMask((restore) => Effect.suspend(() => {
44
+ if (exit !== undefined)
45
+ return exit;
46
+ if (started)
47
+ return restore(Deferred.await(done)).pipe(Effect.andThen(Effect.suspend(() => exit ?? Effect.die(new Error("Joined close has no Exit")))));
48
+ started = true;
49
+ return Effect.onExit(self, (result) => Effect.sync(() => {
50
+ exit = result;
51
+ Deferred.doneUnsafe(done, Effect.void);
52
+ }));
53
+ }));
54
+ });
33
55
  /**
34
56
  * One physical source's local owner. The source closes its remote lease; this
35
57
  * owner then joins its registered committed executions before closing their scope.
@@ -37,13 +59,14 @@ export const subtractLoss = (a, b) => ({
37
59
  */
38
60
  export const make = (options) => Effect.gen(function* () {
39
61
  const clock = yield* Clock.Clock;
40
- const closeGate = yield* Semaphore.make(1);
41
62
  let phase = { _tag: "Active" };
42
63
  let indeterminate = false;
64
+ let unknownSubmissions = 0n;
65
+ let contractFailure;
43
66
  let inFlight = 0;
44
67
  let settled = yield* Deferred.make();
45
68
  yield* Deferred.succeed(settled, undefined);
46
- const submissions = new Set();
69
+ const submissions = new Map();
47
70
  const accepted = new Set();
48
71
  const started = new Set();
49
72
  let media = options.media;
@@ -53,41 +76,72 @@ export const make = (options) => Effect.gen(function* () {
53
76
  let finalClipFrames = 0;
54
77
  let finalClipReceived = 0;
55
78
  let framesAtBoundary = 0;
79
+ let finalClipId;
56
80
  let finalClipEndedAt;
81
+ let finalClipGraceOrigin;
57
82
  let receivedAudioSamples = 0;
58
83
  let retiredDrops = noLoss;
59
84
  const closed = () => Lifecycle.isClosed(phase);
60
85
  const recoveryBudget = () => Lifecycle.recoveryBudget(options, monotonicMillis(clock), options.cleanupBudgetMs);
61
86
  const closeMedia = Effect.suspend(() => mediaScope === undefined ? Effect.void : Scope.close(mediaScope, Exit.void));
87
+ const completed = (submission) => submission.state.pipe(Effect.map((state) => {
88
+ if (state._tag !== "Completed")
89
+ return;
90
+ submissions.get(submission)?.(state.exit);
91
+ submissions.delete(submission);
92
+ }));
93
+ // Whether committed accounting settled within this wait. A recovery wait
94
+ // that gives up marks the source indeterminate for replacement; only the
95
+ // retirement's own wait decides its reported accounting.
62
96
  const joinCommitted = (budget) => Effect.suspend(() => Effect.all([
63
97
  Deferred.await(settled),
64
98
  // A result hook can signal accounting before execution returns. Join
65
99
  // the original handles as well so closing the scope cannot erase a known result.
66
- Effect.forEach([...submissions], (submission) => Effect.exit(submission.submit), {
100
+ Effect.forEach([...submissions.keys()], (submission) => Effect.exit(submission.submit).pipe(Effect.andThen(completed(submission))), {
67
101
  concurrency: "unbounded",
68
102
  discard: true,
69
103
  }),
70
- ], { concurrency: "unbounded", discard: true })).pipe(Effect.interruptible, Effect.timeoutOrElse({
104
+ ], { concurrency: "unbounded", discard: true })).pipe(Effect.as(true), Effect.interruptible, Effect.timeoutOrElse({
71
105
  duration: budget,
72
106
  orElse: () => Effect.sync(() => {
73
107
  indeterminate = true;
108
+ return false;
74
109
  }),
75
110
  }));
76
- const close = closeGate
77
- .withPermit(Effect.uninterruptible(Effect.gen(function* () {
78
- if (closed())
79
- return;
111
+ const close = yield* once(Effect.uninterruptible(Effect.gen(function* () {
80
112
  phase = Lifecycle.transitionSource(phase, { _tag: "Close" });
81
- yield* closeMedia;
82
- options.recordCleanup(yield* options.source.close);
83
- // Remote retirement must not borrow time from this local accounting budget.
84
- yield* joinCommitted(options.cleanupBudgetMs);
85
- yield* options.retireSequences;
86
- yield* Scope.close(options.scope, Exit.void);
113
+ // Each stage owns an independent obligation. A defect is retained while
114
+ // later stages still run; a stalled finalizer keeps this close pending.
115
+ const mediaExit = yield* Effect.exit(closeMedia);
116
+ const sourceExit = yield* Effect.exit(options.source.close.pipe(Effect.flatMap(options.recordCleanup)));
117
+ const accountingExit = yield* Effect.exit(joinCommitted(options.cleanupBudgetMs));
118
+ const affinityExit = yield* Effect.exit(options.retireSequences);
119
+ const scopeExit = yield* Effect.exit(Scope.close(options.scope, Exit.void));
120
+ const completionExit = yield* Effect.exit(Effect.forEach([...submissions.keys()], completed, { discard: true }));
121
+ const stages = [
122
+ mediaExit,
123
+ sourceExit,
124
+ accountingExit,
125
+ affinityExit,
126
+ scopeExit,
127
+ completionExit,
128
+ ];
129
+ const errors = stages.flatMap((exit) => Exit.isFailure(exit) ? [errorOf(exit.cause, "InvalidState", "source retirement")] : []);
87
130
  submissions.clear();
131
+ if (contractFailure !== undefined)
132
+ errors.push(contractFailure);
88
133
  phase = Lifecycle.transitionSource(phase, { _tag: "Closed" });
89
- })))
90
- .pipe(Effect.withSpan("reactor.orchestration.source.close", { attributes: { "reactor.session.id": options.source.id } }, { captureStackTrace: false }));
134
+ const exit = Exit.asVoidAll(stages);
135
+ // Completion bookkeeping cannot hide a stage's failure, or its own.
136
+ const retiredExit = yield* Effect.exit(options.retired({
137
+ accounting: Exit.isSuccess(accountingExit) && accountingExit.value ? "settled" : "timed-out",
138
+ scope: Exit.isSuccess(scopeExit) ? "closed" : "failed",
139
+ affinity: Exit.isSuccess(affinityExit) ? "retired" : "failed",
140
+ errors,
141
+ unknownSubmissions,
142
+ }, exit));
143
+ return yield* Exit.asVoidAll([exit, retiredExit]);
144
+ })).pipe(Effect.withSpan("reactor.orchestration.source.close", { attributes: { "reactor.session.id": options.source.id } }, { captureStackTrace: false })));
91
145
  return {
92
146
  source: options.source,
93
147
  openedAt: options.openedAt,
@@ -105,17 +159,23 @@ export const make = (options) => Effect.gen(function* () {
105
159
  return media;
106
160
  },
107
161
  finalClip: () => ({
162
+ clipId: finalClipId,
163
+ expectedVideoFrames: finalClipFrames,
164
+ receivedVideoFrames: finalClipReceived,
108
165
  video: finalClipFrames === 0
109
166
  ? "not-started"
110
167
  : finalClipReceived >= finalClipFrames
111
168
  ? "count-complete"
112
169
  : "incomplete",
113
170
  endedAgoMs: finalClipEndedAt === undefined ? undefined : monotonicMillis(clock) - finalClipEndedAt,
171
+ graceOrigin: finalClipGraceOrigin,
114
172
  }),
115
173
  /** The source reports nothing playing; starts the grace if no Ended was seen. */
116
174
  observedIdle: () => {
117
- if (finalClipFrames > 0 && finalClipEndedAt === undefined)
175
+ if (finalClipFrames > 0 && finalClipEndedAt === undefined) {
118
176
  finalClipEndedAt = monotonicMillis(clock);
177
+ finalClipGraceOrigin = "Idle";
178
+ }
119
179
  },
120
180
  get accepted() {
121
181
  return accepted;
@@ -139,24 +199,41 @@ export const make = (options) => Effect.gen(function* () {
139
199
  close,
140
200
  closeMedia,
141
201
  /** Called only from the physical Submission's existing commit hook, under admission serialization. */
142
- register: (submission, admit) => Effect.gen(function* () {
143
- for (const previous of submissions) {
144
- if ((yield* previous.state)._tag === "Completed")
145
- submissions.delete(previous);
146
- }
202
+ register: (submission, admit, onCompleted) => Effect.gen(function* () {
203
+ if (closed())
204
+ return yield* PolicyFailure.refuse("SessionRetired", "Selected source incarnation was retired");
205
+ for (const previous of submissions.keys())
206
+ yield* completed(previous);
147
207
  if (submissions.size >= 4096)
148
208
  return yield* PolicyFailure.refuse("SubmissionCapacity", "Committed source submissions reached their bound");
209
+ if (options.boundedHistory && accepted.size + inFlight >= 4096)
210
+ return yield* PolicyFailure.refuse("SubmissionCapacity", "Source accepted-history capacity reached");
149
211
  yield* admit;
150
212
  if (inFlight++ === 0)
151
213
  settled = Deferred.makeUnsafe();
152
- submissions.add(submission);
214
+ submissions.set(submission, onCompleted);
215
+ // The source scope is closed only after committed joins. This observer
216
+ // releases logical references even if the caller abandoned its wait.
217
+ yield* Effect.exit(submission.submit).pipe(Effect.andThen(completed(submission)), Effect.forkIn(options.scope));
153
218
  }),
154
- recordResult: (result) => {
155
- if (Result.isSuccess(result))
219
+ recordResult: (result) => Effect.suspend(() => {
220
+ if (Result.isSuccess(result)) {
221
+ if (options.boundedHistory &&
222
+ (typeof result.success !== "string" ||
223
+ result.success.length === 0 ||
224
+ result.success.length > 1024)) {
225
+ indeterminate = true;
226
+ contractFailure ??= ReactorError.fromCode("Protocol", "Source accepted identity exceeds its bound");
227
+ return Effect.fail(contractFailure);
228
+ }
156
229
  accepted.add(result.success);
157
- else if (result.failure.context.outcome === "unknown")
230
+ }
231
+ else if (result.failure.context.outcome === "unknown") {
158
232
  indeterminate = true;
159
- },
233
+ unknownSubmissions++;
234
+ }
235
+ return Effect.void;
236
+ }),
160
237
  finishAccounting: () => {
161
238
  if (--inFlight === 0)
162
239
  Deferred.doneUnsafe(settled, Effect.void);
@@ -170,10 +247,24 @@ export const make = (options) => Effect.gen(function* () {
170
247
  if (closed())
171
248
  return Effect.void;
172
249
  // A repeated Started, as after a reconnect, is still playing.
173
- if (event._tag === "Started")
250
+ if (event._tag === "Started") {
174
251
  finalClipEndedAt = undefined;
252
+ finalClipGraceOrigin = undefined;
253
+ }
175
254
  if (event._tag === "Started" && !started.has(event.clipId)) {
255
+ if (options.boundedHistory &&
256
+ (typeof event.clipId !== "string" ||
257
+ event.clipId.length === 0 ||
258
+ event.clipId.length > 1024)) {
259
+ contractFailure ??= ReactorError.fromCode("Protocol", "Source Started identity exceeds its bound");
260
+ return Effect.fail(contractFailure);
261
+ }
262
+ if (options.boundedHistory && started.size >= 4096) {
263
+ contractFailure ??= ReactorError.fromCode("Overflow", "Source Started history capacity reached");
264
+ return Effect.fail(contractFailure);
265
+ }
176
266
  started.add(event.clipId);
267
+ finalClipId = event.clipId;
177
268
  finalClipFrames = Math.round(event.durationSeconds * media.videoFramesPerSecond);
178
269
  // Media and provider events use separate readers. Include
179
270
  // frames that overtook Started after the preceding Ended.
@@ -183,6 +274,7 @@ export const make = (options) => Effect.gen(function* () {
183
274
  if (event._tag === "Ended") {
184
275
  framesAtBoundary = receivedFrames;
185
276
  finalClipEndedAt = monotonicMillis(clock);
277
+ finalClipGraceOrigin = "Ended";
186
278
  }
187
279
  return receive(event);
188
280
  })), Effect.catch(failed), Effect.forkIn(options.scope))), Effect.catch(failed), Effect.asVoid),
@@ -1 +1 @@
1
- {"version":3,"file":"source-slot.js","sourceRoot":"","sources":["../../src/orchestration/source-slot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source-slot.js","sourceRoot":"","sources":["../../src/orchestration/source-slot.ts"],"names":[],"mappings":"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"}