@memberjunction/realtime-runtime 6.2.0-edge.5 → 6.2.0-edge.7

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.
@@ -1,3 +1,12 @@
1
+ /**
2
+ * Warn reason for a `Retry` outcome with no thrown error. A real transport has already logged the
3
+ * status or fetch error on its own line (with no transport at all, the runtime warned once at start),
4
+ * so this only must not read as a server refusal. It carries no "will be retried": the same reason
5
+ * ends the give-up line, where that would be false.
6
+ */
7
+ const RETRY_REASON = 'transport or server error, not a refusal';
8
+ /** Warn reason for a `Refused` outcome. */
9
+ const REFUSED_REASON = 'server refused the shard for good';
1
10
  /** Total upload attempts per shard (the first try plus retries) before it is dropped. */
2
11
  export const MAX_SHARD_UPLOAD_ATTEMPTS = 3;
3
12
  /**
@@ -147,15 +156,17 @@ export class RecordingShardQueue {
147
156
  async send(pending) {
148
157
  const { Shard: shard } = pending;
149
158
  pending.Attempts++;
150
- let stored = false;
151
- let failure = 'server refused the shard';
159
+ let outcome;
160
+ let failure;
152
161
  try {
153
- stored = await this.uploadWithTimeout(shard);
162
+ outcome = await this.uploadWithTimeout(shard);
163
+ failure = outcome === 'Refused' ? REFUSED_REASON : RETRY_REASON;
154
164
  }
155
165
  catch (error) {
166
+ outcome = 'Retry';
156
167
  failure = error;
157
168
  }
158
- if (stored) {
169
+ if (outcome === 'Acked') {
159
170
  this.outstanding.delete(shard.Index);
160
171
  return;
161
172
  }
@@ -163,6 +174,13 @@ export class RecordingShardQueue {
163
174
  console.warn(`[RealtimeSession] Recording shard ${shard.Index} upload failed after the recording ended (${describeFailure(failure)}); not retried — it stays in the local store and is drained later:`, failure);
164
175
  return;
165
176
  }
177
+ // Checked before the attempts cap, so a refusal on the last attempt still reads as a refusal.
178
+ if (outcome === 'Refused') {
179
+ console.warn(`[RealtimeSession] Recording shard ${shard.Index} upload failed (${REFUSED_REASON}); it will not be re-sent by the queue — it stays in the local store until a store drain settles it.`);
180
+ this.outstanding.delete(shard.Index);
181
+ this.onGivenUp([shard]);
182
+ return;
183
+ }
166
184
  if (pending.Attempts >= MAX_SHARD_UPLOAD_ATTEMPTS) {
167
185
  console.warn(`[RealtimeSession] Dropping recording shard ${shard.Index} from the retry queue after ${pending.Attempts}/${MAX_SHARD_UPLOAD_ATTEMPTS} failed uploads (${describeFailure(failure)}); it stays in the local store and is re-sent from it once uploads succeed again:`, failure);
168
186
  this.outstanding.delete(shard.Index);
@@ -1 +1 @@
1
- {"version":3,"file":"RecordingShardQueue.js","sourceRoot":"","sources":["../../src/session/RecordingShardQueue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RecordingShardQueue.js","sourceRoot":"","sources":["../../src/session/RecordingShardQueue.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,8 @@ export interface RecordingUploadOptions {
25
25
  /**
26
26
  * Send with `keepalive` so the request survives page unload. Only for shards sealed inside a
27
27
  * `pagehide`/`visibilitychange` handler: the browser caps in-flight keepalive bodies (64 KiB per
28
- * page), and a request over that budget is refused — which resolves false like any failure.
28
+ * page), and the browser rejects a request over that budget before sending it — which resolves
29
+ * `Retry` like any network failure (not `Refused`: the server never saw it).
29
30
  */
30
31
  Keepalive?: boolean;
31
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RecordingTransport.d.ts","sourceRoot":"","sources":["../../src/session/RecordingTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACnC,kFAAkF;IAClF,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,sEAAsE;AACtE,MAAM,WAAW,sBAAsB;IACnC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AASnE,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAChC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,qBAAqB,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjJ,4FAA4F;IAC5F,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpF;AAED,MAAM,WAAW,6BAA6B;IAC1C,4FAA4F;IAC5F,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,qFAAqF;IACrF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAQD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOlE;AAED,qBAAa,uBAAwB,YAAW,mBAAmB;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,6BAA6B;IAE3D,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,qBAAqB,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAK1I,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC;YAO/E,IAAI;CAqBrB"}
1
+ {"version":3,"file":"RecordingTransport.d.ts","sourceRoot":"","sources":["../../src/session/RecordingTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACnC,kFAAkF;IAClF,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,sEAAsE;AACtE,MAAM,WAAW,sBAAsB;IACnC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AASnE,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAChC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,qBAAqB,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjJ,4FAA4F;IAC5F,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpF;AAED,MAAM,WAAW,6BAA6B;IAC1C,4FAA4F;IAC5F,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,qFAAqF;IACrF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAQD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOlE;AAED,qBAAa,uBAAwB,YAAW,mBAAmB;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,6BAA6B;IAE3D,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,qBAAqB,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAK1I,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC;YAO/E,IAAI;CAqBrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"RecordingTransport.js","sourceRoot":"","sources":["../../src/session/RecordingTransport.ts"],"names":[],"mappings":"AA0CA;;;;GAIG;AACH,MAAM,0BAA0B,GAAwB,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAkB3F,SAAS,eAAe,CAAC,OAAgB;IACrC,OAAO,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,cAAc,GAAG,UAAU,CAAC;AAElC;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,GAAW;IACtD,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IACrB,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC;QACzD,GAAG,EAAE,CAAC;IACV,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAClC,OAAO,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACjG,CAAC;AAED,MAAM,OAAO,uBAAuB;IAChC,YAA6B,MAAqC;QAArC,WAAM,GAAN,MAAM,CAA+B;IAAG,CAAC;IAE/D,WAAW,CAAC,SAAiB,EAAE,KAA6C,EAAE,OAAgC;QACjH,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,uBAAuB,kBAAkB,CAAC,SAAS,CAAC,UAAU,KAAK,CAAC,KAAK,EAAE,CAAC;QAC9G,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,KAAK,IAAI,EAAE,SAAS,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACzG,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,KAA6B;QACtE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,KAAK,GAAG,kBAAkB,KAAK,CAAC,cAAc,oBAAoB,KAAK,CAAC,eAAe,GAAG,KAAK,EAAE,CAAC;QACxG,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,uBAAuB,kBAAkB,CAAC,SAAS,CAAC,QAAQ,KAAK,EAAE,CAAC;QACtG,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,SAAS,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC;IACtI,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,IAAgB,EAAE,SAAkB,EAAE,OAAe;QACjF,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;QACtD,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE;gBACjF,0FAA0F;gBAC1F,IAAI,EAAE,IAA+B;gBACrC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5C,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,MAAM,OAAO,GAA2B,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC9G,OAAO,CAAC,IAAI,CAAC,+BAA+B,OAAO,mCAAmC,QAAQ,CAAC,MAAM,KAAK,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC;gBAChL,OAAO,OAAO,CAAC;YACnB,CAAC;YACD,OAAO,OAAO,CAAC;QACnB,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,+BAA+B,OAAO,oBAAoB,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC5G,OAAO,OAAO,CAAC;QACnB,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"RecordingTransport.js","sourceRoot":"","sources":["../../src/session/RecordingTransport.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,12 @@ export interface RealtimeSessionStartOptions {
61
61
  * shows the check; otherwise the camera waits for a confirmation that never comes.
62
62
  */
63
63
  CameraCheck?: boolean;
64
+ /**
65
+ * The session's deadline, when the host knows it at start (a guest's voice ceiling). The runtime arms it, with the
66
+ * default options, in the same tick it takes the call slot, so a start refused because another call holds the
67
+ * runtime never arms it. A host that learns the deadline later, or needs other options, uses `SetSessionDeadline`.
68
+ */
69
+ SessionDeadline?: Date | null;
64
70
  }
65
71
  /** A resolved-but-not-yet-initialized channel plugin, with what the scope decision needs to know about it. */
66
72
  export interface PreparedChannel {
@@ -1 +1 @@
1
- {"version":3,"file":"channel-session-scope.d.ts","sourceRoot":"","sources":["../../src/session/channel-session-scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channel-session-scope.d.ts","sourceRoot":"","sources":["../../src/session/channel-session-scope.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"channel-session-scope.js","sourceRoot":"","sources":["../../src/session/channel-session-scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channel-session-scope.js","sourceRoot":"","sources":["../../src/session/channel-session-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EACH,mBAAmB,EACnB,2BAA2B,GAQ9B,MAAM,8BAA8B,CAAC;AA+DtC,8DAA8D;AAC9D,MAAM,UAAU,mBAAmB,CAAC,QAAwC,EAAE,GAAW;IACrF,MAAM,EAAE,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,8BAA8B,CAAC,QAAwC;IACnF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACvF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAyB,EAAE,UAAqC;IAClG,MAAM,SAAS,GAA0E;QACrF,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;QACnD,aAAa,EAAE,UAAU,CAAC,aAAa;QACvC,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc;QAC9C,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE;QAC3C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC9B,CAAC;IACF,MAAM,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC;IAC7C,IAAI,WAAW,EAAE,CAAC;QACd,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;QAC9B,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACrB,SAAS,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC;QAC9C,CAAC;QACD,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;YAC5B,SAAS,CAAC,iBAAiB,GAAG,WAAW,CAAC,aAAa,CAAC;QAC5D,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACpC,UAAgG;IAEhG,OAAO,2BAA2B,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,iBAAiB,CAC7B,UAAmD;IAEnD,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAoBD;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CACvC,QAAwC,EACxC,QAAgD;IAEhD,MAAM,SAAS,GAAwB,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAmB,CAAC;IACxC,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAChB,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5D,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACrG,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC7B,UAA6C,EAC7C,QAA2C;IAE3C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO;YACH,GAAG,UAAU;YACb,GAAG,IAAI;YACP,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW;YACvD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW;SAC1G,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,28 +1,77 @@
1
1
  import { Observable } from 'rxjs';
2
+ /**
3
+ * Longest single `setTimeout` we arm. Browsers store the delay as a signed 32-bit integer (max
4
+ * 2_147_483_647 ms, about 24.8 days); a larger delay fires immediately. A far deadline is therefore
5
+ * reached in hops of at most this many ms.
6
+ */
7
+ export declare const MAX_TIMER_MS = 2147000000;
8
+ /** What happens as the deadline approaches. Both fields are optional; see the defaults on {@link ClientSessionDeadline.Options}. */
9
+ export interface SessionDeadlineOptions {
10
+ /** Whether the host intends the session to end when the deadline is reached. The class never ends a session itself; it only carries the flag for the runtime. Default `true`. */
11
+ autoEnd?: boolean;
12
+ /** Offsets, in ms before the deadline, at which `Warning$` fires once each. Default none. */
13
+ warnBeforeMs?: readonly number[];
14
+ }
2
15
  /**
3
16
  * The client's view of when its session must end — the CLIENT half of a limit the server enforces
4
17
  * authoritatively (the janitor closes a session past its stored deadline whatever a client does).
5
18
  *
6
- * The client keeps a copy so it can end the call gracefully before the server does, and show a
7
- * countdown. It follows one rule: **the server's word moves the deadline only later** when it arrives
8
- * as an extension (identity verification relaxes a session's limits) — a stale or hostile value can
9
- * therefore never cut a session short here, and nothing a client does with this class extends the
10
- * server's deadline.
19
+ * It holds the deadline, runs the alarm for it (`Warning$` ahead of the deadline, `Reached$` at it)
20
+ * and follows one rule: **the server's word moves the deadline only later** when it arrives as an
21
+ * extension (identity verification relaxes a session's limits). A stale or hostile value can never
22
+ * pull the deadline earlier, and nothing a client does with this class extends the server's deadline.
23
+ * "Never cut a session short here" describes the VALUE this class holds, not the runtime's behaviour:
24
+ * when `Reached$` fires the runtime may end the session, because that is the deadline the host asked for.
25
+ *
26
+ * Time counts down by elapsed time measured by the timers from the moment the deadline was set or
27
+ * extended, never by comparing the wall clock to the deadline at fire time, so a laptop clock that
28
+ * is behind cannot fire late and let the server cut first. The class never ends a session: `Reached$`
29
+ * emits synchronously inside the timer callback and the runtime decides what follows.
11
30
  */
12
31
  export declare class ClientSessionDeadline {
32
+ private readonly now;
33
+ /** Shared by every instance until its first Set, so frozen (array too): a caller mutating `Options` cannot change another instance's defaults. */
34
+ private static readonly DEFAULT_OPTIONS;
13
35
  private readonly subject;
36
+ private readonly warningSubject;
37
+ private readonly reachedSubject;
38
+ private options;
39
+ private timers;
40
+ private disposed;
41
+ /** @param now Clock read once per Set/Extend to anchor the countdown; injectable for tests. */
42
+ constructor(now?: () => number);
14
43
  /** Emits the current deadline (or `null` when none is known), then every change. */
15
44
  readonly Deadline$: Observable<Date | null>;
45
+ /** Emits once per configured warning offset as its moment arrives; `remainingMs` is that offset. */
46
+ readonly Warning$: Observable<{
47
+ deadline: Date;
48
+ remainingMs: number;
49
+ }>;
50
+ /** Emits once when the deadline is reached. */
51
+ readonly Reached$: Observable<{
52
+ deadline: Date;
53
+ }>;
16
54
  /** The current deadline, or `null` when none is known. */
17
55
  get Value(): Date | null;
18
- /** Sets the baseline deadline outright (a host that knows the session's cap at start). `null` clears it. */
19
- Set(deadline: Date | null): void;
56
+ /** The options of the current arming (defaults `{ autoEnd: true, warnBeforeMs: [] }`). */
57
+ get Options(): Readonly<Required<SessionDeadlineOptions>>;
58
+ /** Sets the baseline deadline outright (a host that knows the session's cap at start) and arms the alarm. `null` clears it. A second call replaces the options. */
59
+ Set(deadline: Date | null, options?: SessionDeadlineOptions): void;
20
60
  /**
21
61
  * Applies a server-announced deadline: adopted when none is known or when it is LATER than the one
22
- * held; ignored when earlier, equal or unparseable. Returns whether the deadline changed.
62
+ * held; ignored when earlier, equal or unparseable. Keeps the options and re-arms every timer.
63
+ * Returns whether the deadline changed.
23
64
  */
24
65
  Extend(deadlineIso: string | undefined): boolean;
25
- /** Forgets the deadline (session ended). */
66
+ /** Forgets the deadline (session ended), cancels every timer and restores the default options, so the next call does not inherit this one's. */
26
67
  Clear(): void;
68
+ /** Cancels every timer and completes the streams; later calls are no-ops. */
69
+ Dispose(): void;
70
+ private static normalizeOffsets;
71
+ /** Anchors the countdown now and schedules the warnings and the deadline, all measured by elapsed time. */
72
+ private arm;
73
+ /** Runs `fire` after `delayMs` of elapsed time, re-arming in MAX_TIMER_MS hops (each hop is one finite timer, so the chain ends). */
74
+ private schedule;
75
+ private cancelTimers;
27
76
  }
28
77
  //# sourceMappingURL=client-session-deadline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-session-deadline.d.ts","sourceRoot":"","sources":["../../src/session/client-session-deadline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,UAAU,EAAE,MAAM,MAAM,CAAC;AAEnD;;;;;;;;;GASG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAElE,oFAAoF;IACpF,SAAgB,SAAS,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,CAA+B;IAEjF,0DAA0D;IAC1D,IAAW,KAAK,IAAI,IAAI,GAAG,IAAI,CAE9B;IAED,4GAA4G;IACrG,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;IAIvC;;;OAGG;IACI,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAgBvD,4CAA4C;IACrC,KAAK,IAAI,IAAI;CAGrB"}
1
+ {"version":3,"file":"client-session-deadline.d.ts","sourceRoot":"","sources":["../../src/session/client-session-deadline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,UAAU,EAAW,MAAM,MAAM,CAAC;AAE5D;;;;GAIG;AACH,eAAO,MAAM,YAAY,aAAgB,CAAC;AAE1C,oIAAoI;AACpI,MAAM,WAAW,sBAAsB;IACrC,iLAAiL;IACjL,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6FAA6F;IAC7F,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,qBAAqB;IAYpB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAXhC,kJAAkJ;IAClJ,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAiH;IAExJ,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAClE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0D;IACzF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqC;IACpE,OAAO,CAAC,OAAO,CAAqF;IACpG,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,QAAQ,CAAS;IAEzB,+FAA+F;gBAClE,GAAG,GAAE,MAAM,MAAyB;IAEjE,oFAAoF;IACpF,SAAgB,SAAS,EAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,CAA+B;IAEjF,oGAAoG;IACpG,SAAgB,QAAQ,EAAE,UAAU,CAAC;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAsC;IAEnH,+CAA+C;IAC/C,SAAgB,QAAQ,EAAE,UAAU,CAAC;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,CAAC,CAAsC;IAE9F,0DAA0D;IAC1D,IAAW,KAAK,IAAI,IAAI,GAAG,IAAI,CAE9B;IAED,0FAA0F;IAC1F,IAAW,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAE/D;IAED,mKAAmK;IAC5J,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,IAAI;IAgBzE;;;;OAIG;IACI,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAkBvD,gJAAgJ;IACzI,KAAK,IAAI,IAAI;IASpB,6EAA6E;IACtE,OAAO,IAAI,IAAI;IAWtB,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAK/B,2GAA2G;IAC3G,OAAO,CAAC,GAAG;IAaX,qIAAqI;IACrI,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,YAAY;CAMrB"}
@@ -1,34 +1,76 @@
1
- import { BehaviorSubject } from 'rxjs';
1
+ import { BehaviorSubject, Subject } from 'rxjs';
2
+ /**
3
+ * Longest single `setTimeout` we arm. Browsers store the delay as a signed 32-bit integer (max
4
+ * 2_147_483_647 ms, about 24.8 days); a larger delay fires immediately. A far deadline is therefore
5
+ * reached in hops of at most this many ms.
6
+ */
7
+ export const MAX_TIMER_MS = 2_147_000_000;
2
8
  /**
3
9
  * The client's view of when its session must end — the CLIENT half of a limit the server enforces
4
10
  * authoritatively (the janitor closes a session past its stored deadline whatever a client does).
5
11
  *
6
- * The client keeps a copy so it can end the call gracefully before the server does, and show a
7
- * countdown. It follows one rule: **the server's word moves the deadline only later** when it arrives
8
- * as an extension (identity verification relaxes a session's limits) — a stale or hostile value can
9
- * therefore never cut a session short here, and nothing a client does with this class extends the
10
- * server's deadline.
12
+ * It holds the deadline, runs the alarm for it (`Warning$` ahead of the deadline, `Reached$` at it)
13
+ * and follows one rule: **the server's word moves the deadline only later** when it arrives as an
14
+ * extension (identity verification relaxes a session's limits). A stale or hostile value can never
15
+ * pull the deadline earlier, and nothing a client does with this class extends the server's deadline.
16
+ * "Never cut a session short here" describes the VALUE this class holds, not the runtime's behaviour:
17
+ * when `Reached$` fires the runtime may end the session, because that is the deadline the host asked for.
18
+ *
19
+ * Time counts down by elapsed time measured by the timers from the moment the deadline was set or
20
+ * extended, never by comparing the wall clock to the deadline at fire time, so a laptop clock that
21
+ * is behind cannot fire late and let the server cut first. The class never ends a session: `Reached$`
22
+ * emits synchronously inside the timer callback and the runtime decides what follows.
11
23
  */
12
24
  export class ClientSessionDeadline {
13
- constructor() {
25
+ /** Shared by every instance until its first Set, so frozen (array too): a caller mutating `Options` cannot change another instance's defaults. */
26
+ static { this.DEFAULT_OPTIONS = Object.freeze({ autoEnd: true, warnBeforeMs: Object.freeze([]) }); }
27
+ /** @param now Clock read once per Set/Extend to anchor the countdown; injectable for tests. */
28
+ constructor(now = () => Date.now()) {
29
+ this.now = now;
14
30
  this.subject = new BehaviorSubject(null);
31
+ this.warningSubject = new Subject();
32
+ this.reachedSubject = new Subject();
33
+ this.options = ClientSessionDeadline.DEFAULT_OPTIONS;
34
+ this.timers = new Set();
35
+ this.disposed = false;
15
36
  /** Emits the current deadline (or `null` when none is known), then every change. */
16
37
  this.Deadline$ = this.subject.asObservable();
38
+ /** Emits once per configured warning offset as its moment arrives; `remainingMs` is that offset. */
39
+ this.Warning$ = this.warningSubject.asObservable();
40
+ /** Emits once when the deadline is reached. */
41
+ this.Reached$ = this.reachedSubject.asObservable();
17
42
  }
18
43
  /** The current deadline, or `null` when none is known. */
19
44
  get Value() {
20
45
  return this.subject.value;
21
46
  }
22
- /** Sets the baseline deadline outright (a host that knows the session's cap at start). `null` clears it. */
23
- Set(deadline) {
24
- this.subject.next(deadline && Number.isFinite(deadline.getTime()) ? deadline : null);
47
+ /** The options of the current arming (defaults `{ autoEnd: true, warnBeforeMs: [] }`). */
48
+ get Options() {
49
+ return this.options;
50
+ }
51
+ /** Sets the baseline deadline outright (a host that knows the session's cap at start) and arms the alarm. `null` clears it. A second call replaces the options. */
52
+ Set(deadline, options) {
53
+ if (this.disposed) {
54
+ return;
55
+ }
56
+ this.cancelTimers();
57
+ const valid = deadline && Number.isFinite(deadline.getTime()) ? deadline : null;
58
+ this.options = {
59
+ autoEnd: options?.autoEnd ?? true,
60
+ warnBeforeMs: ClientSessionDeadline.normalizeOffsets(options?.warnBeforeMs),
61
+ };
62
+ this.subject.next(valid);
63
+ if (valid) {
64
+ this.arm(valid);
65
+ }
25
66
  }
26
67
  /**
27
68
  * Applies a server-announced deadline: adopted when none is known or when it is LATER than the one
28
- * held; ignored when earlier, equal or unparseable. Returns whether the deadline changed.
69
+ * held; ignored when earlier, equal or unparseable. Keeps the options and re-arms every timer.
70
+ * Returns whether the deadline changed.
29
71
  */
30
72
  Extend(deadlineIso) {
31
- if (!deadlineIso) {
73
+ if (this.disposed || !deadlineIso) {
32
74
  return false;
33
75
  }
34
76
  const parsed = new Date(deadlineIso);
@@ -39,12 +81,68 @@ export class ClientSessionDeadline {
39
81
  if (current !== null && parsed.getTime() <= current.getTime()) {
40
82
  return false;
41
83
  }
84
+ this.cancelTimers();
42
85
  this.subject.next(parsed);
86
+ this.arm(parsed);
43
87
  return true;
44
88
  }
45
- /** Forgets the deadline (session ended). */
89
+ /** Forgets the deadline (session ended), cancels every timer and restores the default options, so the next call does not inherit this one's. */
46
90
  Clear() {
91
+ if (this.disposed) {
92
+ return;
93
+ }
94
+ this.cancelTimers();
95
+ this.options = ClientSessionDeadline.DEFAULT_OPTIONS;
47
96
  this.subject.next(null);
48
97
  }
98
+ /** Cancels every timer and completes the streams; later calls are no-ops. */
99
+ Dispose() {
100
+ if (this.disposed) {
101
+ return;
102
+ }
103
+ this.cancelTimers();
104
+ this.disposed = true;
105
+ this.subject.complete();
106
+ this.warningSubject.complete();
107
+ this.reachedSubject.complete();
108
+ }
109
+ static normalizeOffsets(offsets) {
110
+ const valid = (offsets ?? []).filter((ms) => Number.isFinite(ms) && ms > 0);
111
+ return [...new Set(valid)].sort((a, b) => b - a);
112
+ }
113
+ /** Anchors the countdown now and schedules the warnings and the deadline, all measured by elapsed time. */
114
+ arm(deadline) {
115
+ const remainingAtAnchorMs = deadline.getTime() - this.now();
116
+ for (const offset of this.options.warnBeforeMs) {
117
+ const fireAfterMs = remainingAtAnchorMs - offset;
118
+ // Moment already passed at anchor time: skip rather than fire a stale warning.
119
+ if (fireAfterMs >= 0) {
120
+ this.schedule(fireAfterMs, () => this.warningSubject.next({ deadline, remainingMs: offset }));
121
+ }
122
+ }
123
+ // A past deadline (negative remaining) fires on the next tick, never synchronously inside Set.
124
+ this.schedule(Math.max(0, remainingAtAnchorMs), () => this.reachedSubject.next({ deadline }));
125
+ }
126
+ /** Runs `fire` after `delayMs` of elapsed time, re-arming in MAX_TIMER_MS hops (each hop is one finite timer, so the chain ends). */
127
+ schedule(delayMs, fire) {
128
+ const hopMs = Math.min(delayMs, MAX_TIMER_MS);
129
+ const handle = setTimeout(() => {
130
+ this.timers.delete(handle);
131
+ const leftMs = delayMs - hopMs;
132
+ if (leftMs > 0) {
133
+ this.schedule(leftMs, fire);
134
+ }
135
+ else {
136
+ fire();
137
+ }
138
+ }, hopMs);
139
+ this.timers.add(handle);
140
+ }
141
+ cancelTimers() {
142
+ for (const handle of this.timers) {
143
+ clearTimeout(handle);
144
+ }
145
+ this.timers.clear();
146
+ }
49
147
  }
50
148
  //# sourceMappingURL=client-session-deadline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-session-deadline.js","sourceRoot":"","sources":["../../src/session/client-session-deadline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAc,MAAM,MAAM,CAAC;AAEnD;;;;;;;;;GASG;AACH,MAAM,OAAO,qBAAqB;IAAlC;QACmB,YAAO,GAAG,IAAI,eAAe,CAAc,IAAI,CAAC,CAAC;QAElE,oFAAoF;QACpE,cAAS,GAA4B,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IAoCnF,CAAC;IAlCC,0DAA0D;IAC1D,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,4GAA4G;IACrG,GAAG,CAAC,QAAqB;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvF,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,WAA+B;QAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACnC,IAAI,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4CAA4C;IACrC,KAAK;QACV,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"client-session-deadline.js","sourceRoot":"","sources":["../../src/session/client-session-deadline.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@memberjunction/realtime-runtime",
3
3
  "type": "module",
4
- "version": "6.2.0-edge.5",
4
+ "version": "6.2.0-edge.7",
5
5
  "description": "MemberJunction: Framework-agnostic Realtime Session Runtime — client-direct realtime co-agent session orchestration (mint, driver resolution, transcripts, tool relay, delegation narration, channel lifecycle, usage relay). Pure TypeScript, zero UX dependencies. Consumable from browser (Angular/React/Vue), React Native, or Node test harnesses.",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -11,14 +11,14 @@
11
11
  "author": "MemberJunction.com",
12
12
  "license": "BUSL-1.1",
13
13
  "dependencies": {
14
- "@memberjunction/ai": "6.2.0-edge.5",
15
- "@memberjunction/ai-core-plus": "6.2.0-edge.5",
16
- "@memberjunction/ai-engine-base": "6.2.0-edge.5",
17
- "@memberjunction/ai-realtime-client": "6.2.0-edge.5",
18
- "@memberjunction/core": "6.2.0-edge.5",
19
- "@memberjunction/core-entities": "6.2.0-edge.5",
20
- "@memberjunction/global": "6.2.0-edge.5",
21
- "@memberjunction/graphql-dataprovider": "6.2.0-edge.5",
14
+ "@memberjunction/ai": "6.2.0-edge.7",
15
+ "@memberjunction/ai-core-plus": "6.2.0-edge.7",
16
+ "@memberjunction/ai-engine-base": "6.2.0-edge.7",
17
+ "@memberjunction/ai-realtime-client": "6.2.0-edge.7",
18
+ "@memberjunction/core": "6.2.0-edge.7",
19
+ "@memberjunction/core-entities": "6.2.0-edge.7",
20
+ "@memberjunction/global": "6.2.0-edge.7",
21
+ "@memberjunction/graphql-dataprovider": "6.2.0-edge.7",
22
22
  "rxjs": "^7.8.2"
23
23
  },
24
24
  "devDependencies": {