@memberjunction/realtime-widget 6.2.0-edge.6 → 6.2.0-edge.8

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,6 +1,6 @@
1
1
  import {
2
2
  IsPlainObject
3
- } from "./chunk-ZX4SRAYD.js";
3
+ } from "./chunk-DIDGGUK7.js";
4
4
 
5
5
  // ../../AI/Core/dist/generic/baseModel.js
6
6
  var BaseResult = class {
@@ -97,7 +97,28 @@ function RealtimeDiagLog(message) {
97
97
  console.log(sanitized);
98
98
  }
99
99
  }
100
+ function ClampSessionSecondsValue(...candidates) {
101
+ let smallest;
102
+ for (const c of candidates) {
103
+ if (typeof c !== "number" || !Number.isInteger(c) || c <= 0)
104
+ continue;
105
+ if (smallest === void 0 || c < smallest)
106
+ smallest = c;
107
+ }
108
+ return smallest;
109
+ }
100
110
  var BaseRealtimeModel = class extends BaseModel {
111
+ static {
112
+ this.DriverFacts = Object.freeze({});
113
+ }
114
+ /**
115
+ * Returns the smallest candidate that is a positive integer; see {@link ClampSessionSecondsValue}.
116
+ * The rule "the caller's bag wins only if smaller" lives there, once: pass the provider
117
+ * cap and the bag cap together.
118
+ */
119
+ ClampSessionSeconds(...candidates) {
120
+ return ClampSessionSecondsValue(...candidates);
121
+ }
101
122
  static {
102
123
  this.SupportsDynamicToolSet = false;
103
124
  }
@@ -3,15 +3,15 @@ import {
3
3
  ArtifactMetadataEngine,
4
4
  ConversationEngine,
5
5
  ConversationUtility,
6
+ Fe,
6
7
  FileStorageEngineBase,
7
8
  MJAICredentialBindingEntity,
8
9
  MJAIModelPriceUnitTypeEntity,
10
+ Rr,
11
+ S,
9
12
  TemplateEngineBase,
10
- coerceFailedExecuteAgentResult,
11
- cr,
12
- h,
13
- ve
14
- } from "./chunk-MRWWS7FK.js";
13
+ coerceFailedExecuteAgentResult
14
+ } from "./chunk-HDCS43DU.js";
15
15
  import {
16
16
  BaseEngine,
17
17
  BaseEntity,
@@ -22,12 +22,12 @@ import {
22
22
  PermissionConstrainedError,
23
23
  RegisterForStartup,
24
24
  RunView
25
- } from "./chunk-N3BM2W5J.js";
25
+ } from "./chunk-DAGQZKVY.js";
26
26
  import {
27
27
  ParseModelConfiguration,
28
28
  ParseVendorConfiguration,
29
29
  ResolveEffectiveModelConfiguration
30
- } from "./chunk-VZ6KR7K2.js";
30
+ } from "./chunk-JOGHPRST.js";
31
31
  import {
32
32
  BaseSingleton,
33
33
  BehaviorSubject,
@@ -44,7 +44,7 @@ import {
44
44
  ValidationErrorInfo,
45
45
  ValidationErrorType,
46
46
  throttleTime
47
- } from "./chunk-ZX4SRAYD.js";
47
+ } from "./chunk-DIDGGUK7.js";
48
48
 
49
49
  // ../../AI/BaseAIEngine/dist/PriceUnitTypes.js
50
50
  var __decorate = function(decorators, target, key, desc) {
@@ -923,8 +923,8 @@ var AIEngineBase = class AIEngineBase2 extends BaseEngine {
923
923
  ];
924
924
  this.appendRealtimeRegistryConfigs(params, provider);
925
925
  const [, , loadResult] = await Promise.all([
926
- TemplateEngineBase.Instance.Config(false, contextUser),
927
- ArtifactMetadataEngine.Instance.Config(false, contextUser),
926
+ TemplateEngineBase.Instance.Config(false, contextUser, provider),
927
+ ArtifactMetadataEngine.Instance.Config(false, contextUser, provider),
928
928
  this.Load(params, provider, forceRefresh, contextUser)
929
929
  ]);
930
930
  return loadResult;
@@ -1357,6 +1357,51 @@ var AIEngineBase = class AIEngineBase2 extends BaseEngine {
1357
1357
  get AgentCategories() {
1358
1358
  return this.GetConfigData("_agentCategories");
1359
1359
  }
1360
+ /**
1361
+ * Resolves the file storage account an agent's files should go to, along with the tier that
1362
+ * supplied it (`Override`, `Agent`, `Category`, `AgentType`, `Fallback`, or `None`) and whether
1363
+ * a system fallback had to choose among multiple active accounts (`Ambiguous`).
1364
+ *
1365
+ * Resolution chain (first non-null wins):
1366
+ * 1. `overrideStorageAccountId` — a runtime override (`Source: 'Override'`)
1367
+ * 2. Agent-level `DefaultStorageAccountID` (`Source: 'Agent'`)
1368
+ * 3. Category hierarchy — walks up the agent's category tree via `ParentID` (`Source: 'Category'`)
1369
+ * 4. Agent Type-level `DefaultStorageAccountID` (`Source: 'AgentType'`)
1370
+ * 5. System fallback — {@link FileStorageEngineBase.ResolveDefaultAccount} over the active accounts
1371
+ * (`Source: 'Fallback'`, `Ambiguous: resolution.Ambiguous`), or `Source: 'None'` when none is active.
1372
+ *
1373
+ * @param agent - The agent being resolved for
1374
+ * @param overrideStorageAccountId - Optional runtime override; wins outright when set
1375
+ * @returns The storage account ID, source tier, and ambiguity flag
1376
+ */
1377
+ ResolveAgentStorageAccount(agent, overrideStorageAccountId) {
1378
+ if (overrideStorageAccountId) {
1379
+ return { AccountID: overrideStorageAccountId, Source: "Override", Ambiguous: false };
1380
+ }
1381
+ if (agent.DefaultStorageAccountID) {
1382
+ return { AccountID: agent.DefaultStorageAccountID, Source: "Agent", Ambiguous: false };
1383
+ }
1384
+ const categoryAccountId = this.resolveCategoryStorageAccountID(agent.CategoryID);
1385
+ if (categoryAccountId) {
1386
+ return { AccountID: categoryAccountId, Source: "Category", Ambiguous: false };
1387
+ }
1388
+ const agentType = agent.TypeID ? this.AgentTypes.find((at) => UUIDsEqual(at.ID, agent.TypeID)) : void 0;
1389
+ if (agentType?.DefaultStorageAccountID) {
1390
+ return { AccountID: agentType.DefaultStorageAccountID, Source: "AgentType", Ambiguous: false };
1391
+ }
1392
+ const resolution = FileStorageEngineBase.Instance.ResolveDefaultAccount();
1393
+ if (resolution.Ambiguous && resolution.Chosen) {
1394
+ this.warnAmbiguousStorageFallback(agent, agentType?.Name, resolution.Candidates.map((c) => `'${c.account.Name}' (${c.provider.Name})`), resolution.Chosen.account.Name);
1395
+ }
1396
+ if (resolution.Chosen) {
1397
+ return {
1398
+ AccountID: resolution.Chosen.account.ID,
1399
+ Source: "Fallback",
1400
+ Ambiguous: resolution.Ambiguous
1401
+ };
1402
+ }
1403
+ return { AccountID: null, Source: "None", Ambiguous: false };
1404
+ }
1360
1405
  /**
1361
1406
  * Resolves the file storage account an agent's files should go to. This is the golden path for
1362
1407
  * agent storage routing, so agents, actions and UI that need "where would this agent store a file?"
@@ -1377,21 +1422,7 @@ var AIEngineBase = class AIEngineBase2 extends BaseEngine {
1377
1422
  * @returns The storage account ID, or `null` when no account is configured or active
1378
1423
  */
1379
1424
  ResolveAgentStorageAccountID(agent, overrideStorageAccountId) {
1380
- if (overrideStorageAccountId)
1381
- return overrideStorageAccountId;
1382
- if (agent.DefaultStorageAccountID)
1383
- return agent.DefaultStorageAccountID;
1384
- const categoryAccountId = this.resolveCategoryStorageAccountID(agent.CategoryID);
1385
- if (categoryAccountId)
1386
- return categoryAccountId;
1387
- const agentType = agent.TypeID ? this.AgentTypes.find((at) => UUIDsEqual(at.ID, agent.TypeID)) : void 0;
1388
- if (agentType?.DefaultStorageAccountID)
1389
- return agentType.DefaultStorageAccountID;
1390
- const resolution = FileStorageEngineBase.Instance.ResolveDefaultAccount();
1391
- if (resolution.Ambiguous && resolution.Chosen) {
1392
- this.warnAmbiguousStorageFallback(agent, agentType?.Name, resolution.Candidates.map((c) => `'${c.account.Name}' (${c.provider.Name})`), resolution.Chosen.account.Name);
1393
- }
1394
- return resolution.Chosen?.account.ID ?? null;
1425
+ return this.ResolveAgentStorageAccount(agent, overrideStorageAccountId).AccountID;
1395
1426
  }
1396
1427
  /** Walks up the category tree from `categoryId` and returns the first `DefaultStorageAccountID` found. */
1397
1428
  resolveCategoryStorageAccountID(categoryId) {
@@ -1840,9 +1871,10 @@ var AIEngineBase = class AIEngineBase2 extends BaseEngine {
1840
1871
  * Use instead of `PromptModels.filter(pm => UUIDsEqual(pm.PromptID, id))` in hot paths.
1841
1872
  */
1842
1873
  get PromptModelsByPromptID() {
1874
+ const promptModels = this.PromptModels;
1843
1875
  if (!this._promptModelsByPromptID) {
1844
1876
  const map = /* @__PURE__ */ new Map();
1845
- for (const pm of this._promptModels) {
1877
+ for (const pm of promptModels) {
1846
1878
  const key = NormalizeUUID(pm.PromptID);
1847
1879
  const list = map.get(key);
1848
1880
  if (list) {
@@ -3030,6 +3062,7 @@ var AIEngineBase = class AIEngineBase2 extends BaseEngine {
3030
3062
  OrderBy: "RunAt DESC",
3031
3063
  MaxRows: 1,
3032
3064
  // get only the latest one
3065
+ SkipTotalRowCount: true,
3033
3066
  ResultType: "entity_object"
3034
3067
  }, this.ContextUser);
3035
3068
  if (result && result.Success && result.Results && result.Results.length > 0) {
@@ -3617,7 +3650,7 @@ var AgentClientSession = class {
3617
3650
  if (!provider) {
3618
3651
  return { Success: false, ErrorMessage: "GraphQL provider not available" };
3619
3652
  }
3620
- const aiClient = new ve(provider);
3653
+ const aiClient = new Fe(provider);
3621
3654
  try {
3622
3655
  const agentShim = { ID: params.AgentId };
3623
3656
  const messages = params.Messages.map((m) => ({
@@ -3675,7 +3708,7 @@ var AgentClientSession = class {
3675
3708
  if (!provider) {
3676
3709
  return { Success: false, ErrorMessage: "GraphQL provider not available" };
3677
3710
  }
3678
- const aiClient = new ve(provider);
3711
+ const aiClient = new Fe(provider);
3679
3712
  try {
3680
3713
  const gqlParams = {
3681
3714
  userMessageId: params.UserMessageId,
@@ -4689,6 +4722,7 @@ var DefaultAgentResolver = class _DefaultAgentResolver {
4689
4722
  EntityName: "MJ: Applications",
4690
4723
  ExtraFilter: `ID = '${applicationId}'`,
4691
4724
  MaxRows: 1,
4725
+ SkipTotalRowCount: true,
4692
4726
  ResultType: "entity_object"
4693
4727
  }, contextUser);
4694
4728
  if (!result.Success || !result.Results || result.Results.length === 0) {
@@ -4827,7 +4861,7 @@ var ConversationStreaming = class {
4827
4861
  return;
4828
4862
  }
4829
4863
  try {
4830
- const dataProvider = h.Instance;
4864
+ const dataProvider = S.Instance;
4831
4865
  this.watchSocketAcknowledgement(dataProvider);
4832
4866
  this.pushStatusSubscription = dataProvider.PushStatusUpdates().subscribe({
4833
4867
  next: (status) => {
@@ -5361,7 +5395,7 @@ var ConversationLiveness = class {
5361
5395
  }
5362
5396
  let socketWired = false;
5363
5397
  try {
5364
- const provider = h.Instance;
5398
+ const provider = S.Instance;
5365
5399
  if (provider) {
5366
5400
  this.subscriptions.add(provider.SocketReconnected$.subscribe(() => this.Trigger("socket-reconnected")));
5367
5401
  socketWired = true;
@@ -5459,11 +5493,11 @@ var ConversationTail = class {
5459
5493
  return this.client;
5460
5494
  }
5461
5495
  try {
5462
- const provider = h.Instance;
5496
+ const provider = S.Instance;
5463
5497
  if (!provider) {
5464
5498
  return void 0;
5465
5499
  }
5466
- this.client = new cr(provider);
5500
+ this.client = new Rr(provider);
5467
5501
  return this.client;
5468
5502
  } catch {
5469
5503
  return void 0;
@@ -6042,6 +6076,10 @@ function closeReasonChip(reason) {
6042
6076
  return { Label: "Error", Tone: "error" };
6043
6077
  case "Janitor":
6044
6078
  return { Label: "Timed out", Tone: "neutral" };
6079
+ case "TimeLimit":
6080
+ return { Label: "Time limit", Tone: "neutral" };
6081
+ case "Idle":
6082
+ return { Label: "Idle \u2014 no activity", Tone: "neutral" };
6045
6083
  case "Shutdown":
6046
6084
  return { Label: "Interrupted", Tone: "neutral" };
6047
6085
  default:
@@ -28,11 +28,11 @@ import {
28
28
  SessionCardStatusChip,
29
29
  SessionCardTitle,
30
30
  SessionsObserver
31
- } from "./chunk-RAIOBPHZ.js";
32
- import "./chunk-MRWWS7FK.js";
33
- import "./chunk-N3BM2W5J.js";
34
- import "./chunk-VZ6KR7K2.js";
35
- import "./chunk-ZX4SRAYD.js";
31
+ } from "./chunk-L4OBOWDD.js";
32
+ import "./chunk-HDCS43DU.js";
33
+ import "./chunk-DAGQZKVY.js";
34
+ import "./chunk-JOGHPRST.js";
35
+ import "./chunk-DIDGGUK7.js";
36
36
  export {
37
37
  BuildConversationTimeline,
38
38
  ClientToolRegistry,
@@ -1,9 +1,9 @@
1
1
  import {
2
- h
3
- } from "./chunk-MRWWS7FK.js";
4
- import "./chunk-N3BM2W5J.js";
5
- import "./chunk-VZ6KR7K2.js";
6
- import "./chunk-ZX4SRAYD.js";
2
+ S
3
+ } from "./chunk-HDCS43DU.js";
4
+ import "./chunk-DAGQZKVY.js";
5
+ import "./chunk-JOGHPRST.js";
6
+ import "./chunk-DIDGGUK7.js";
7
7
 
8
8
  // dist/voice/guest-tool-relay.js
9
9
  var EXECUTE_TOOL_MUTATION = `
@@ -12,7 +12,7 @@ mutation WidgetRelayRealtimeTool($agentSessionId: String!, $callId: String!, $to
12
12
  }`;
13
13
  function CreateGuestToolRelay() {
14
14
  return async (agentSessionId, callId, toolName, argsJson) => {
15
- const data = await h.Instance.ExecuteGQL(EXECUTE_TOOL_MUTATION, {
15
+ const data = await S.Instance.ExecuteGQL(EXECUTE_TOOL_MUTATION, {
16
16
  agentSessionId,
17
17
  callId,
18
18
  toolName,
@@ -1,11 +1,11 @@
1
1
  import {
2
- h
3
- } from "./chunk-MRWWS7FK.js";
4
- import "./chunk-N3BM2W5J.js";
2
+ S
3
+ } from "./chunk-HDCS43DU.js";
4
+ import "./chunk-DAGQZKVY.js";
5
5
  import {
6
6
  ParseRealtimeClientTransport
7
- } from "./chunk-VZ6KR7K2.js";
8
- import "./chunk-ZX4SRAYD.js";
7
+ } from "./chunk-JOGHPRST.js";
8
+ import "./chunk-DIDGGUK7.js";
9
9
 
10
10
  // dist/voice/guest-voice-mint.js
11
11
  var MINT_FIELDS = ["AgentSessionId", "Provider", "Model", "EphemeralToken", "ExpiresAt", "SessionConfigJson"];
@@ -42,7 +42,7 @@ function CreateGuestVoiceMint(session) {
42
42
  for (; ; ) {
43
43
  try {
44
44
  const sent = asked.NoAgentVideo ? { ...variables, showsAgentVideo: false } : variables;
45
- return await h.Instance.ExecuteGQL(startRealtimeMutation(asked), sent);
45
+ return await S.Instance.ExecuteGQL(startRealtimeMutation(asked), sent);
46
46
  } catch (error) {
47
47
  const rejected = rejectedExtension(error, asked);
48
48
  if (!rejected) {
@@ -26,14 +26,14 @@ import {
26
26
  VideoSourceSeenNote,
27
27
  VideoSourceTurnedOffNote,
28
28
  VideoSourceTurnedOnNote
29
- } from "./chunk-VZ6KR7K2.js";
29
+ } from "./chunk-JOGHPRST.js";
30
30
  import {
31
31
  BaseSingleton,
32
32
  MJGlobal,
33
33
  RegisterClass,
34
34
  __commonJS,
35
35
  __toESM
36
- } from "./chunk-ZX4SRAYD.js";
36
+ } from "./chunk-DIDGGUK7.js";
37
37
 
38
38
  // ../../../node_modules/.pnpm/retry@0.13.1/node_modules/retry/lib/retry_operation.js
39
39
  var require_retry_operation = __commonJS({
@@ -375,11 +375,11 @@ function BucketizeFrequencyData(frequencyBytes, count = REALTIME_AUDIO_BIN_COUNT
375
375
  return bins;
376
376
  }
377
377
  var RealtimeAudioMeter = class _RealtimeAudioMeter {
378
- constructor(analyser, ownedContext, ownedTracks = []) {
378
+ constructor(analyser, ownedContext, mirroredTracks = []) {
379
379
  this.closed = false;
380
380
  this.analyser = analyser;
381
381
  this.ownedContext = ownedContext;
382
- this.ownedTracks = ownedTracks;
382
+ this.mirroredTracks = mirroredTracks;
383
383
  this.timeDomain = new Uint8Array(analyser.fftSize);
384
384
  this.frequency = new Uint8Array(analyser.frequencyBinCount);
385
385
  }
@@ -387,9 +387,10 @@ var RealtimeAudioMeter = class _RealtimeAudioMeter {
387
387
  * Shared builder: taps `stream` with a private `AudioContext` + analyser-only sink. A fresh
388
388
  * `AudioContext` starts SUSPENDED and, with no destination route, nothing auto-starts its clock —
389
389
  * so the analyser would read pure silence forever; we resume it (the session always starts from a
390
- * user gesture, so this is permitted). `ownedTracks` are clones this meter must stop on Close.
390
+ * user gesture, so this is permitted). `mirroredTracks` pair mic tracks with the clones this meter must
391
+ * stop on Close.
391
392
  */
392
- static buildStreamMeter(stream, ownedTracks) {
393
+ static buildStreamMeter(stream, mirroredTracks) {
393
394
  const context = new AudioContext();
394
395
  const source = context.createMediaStreamSource(stream);
395
396
  const analyser = _RealtimeAudioMeter.createAnalyser(context);
@@ -397,7 +398,7 @@ var RealtimeAudioMeter = class _RealtimeAudioMeter {
397
398
  if (context.state === "suspended") {
398
399
  void context.resume();
399
400
  }
400
- return new _RealtimeAudioMeter(analyser, context, ownedTracks);
401
+ return new _RealtimeAudioMeter(analyser, context, mirroredTracks);
401
402
  }
402
403
  /**
403
404
  * Meters a `MediaStream` (e.g. a remote WebRTC stream) via a private `AudioContext`. Returns
@@ -421,6 +422,11 @@ var RealtimeAudioMeter = class _RealtimeAudioMeter {
421
422
  * while the user speaks even though the mic is live. A cloned track is independent of the PC sender
422
423
  * and meters reliably; it is stopped in {@link Close}. Harmless for the WS drivers (the clone is just
423
424
  * an extra short-lived track). Returns `null` when Web Audio / the stream has no usable audio track.
425
+ *
426
+ * Muting: drivers mute by disabling the ORIGINAL track(s), which a clone does not follow. The meter keeps
427
+ * each original and copies its `enabled` flag onto the clone on every read, and reads silence while every
428
+ * original is disabled. A clone made from a muted track starts disabled; the same copy re-enables it on
429
+ * unmute.
424
430
  */
425
431
  static ForMicStream(stream) {
426
432
  try {
@@ -428,8 +434,8 @@ var RealtimeAudioMeter = class _RealtimeAudioMeter {
428
434
  if (audioTracks.length === 0) {
429
435
  return null;
430
436
  }
431
- const clones = audioTracks.map((t) => t.clone());
432
- return _RealtimeAudioMeter.buildStreamMeter(new MediaStream(clones), clones);
437
+ const mirrored = audioTracks.map((track) => ({ Source: track, Clone: track.clone() }));
438
+ return _RealtimeAudioMeter.buildStreamMeter(new MediaStream(mirrored.map((m) => m.Clone)), mirrored);
433
439
  } catch {
434
440
  return null;
435
441
  }
@@ -454,9 +460,26 @@ var RealtimeAudioMeter = class _RealtimeAudioMeter {
454
460
  analyser.smoothingTimeConstant = 0.55;
455
461
  return analyser;
456
462
  }
463
+ /**
464
+ * Copies each mic track's `enabled` flag onto its clone and reports whether the mic is muted: true when
465
+ * this meter mirrors mic tracks and every one is disabled. Always false for meters with no mic tracks.
466
+ */
467
+ syncMicMute() {
468
+ if (this.mirroredTracks.length === 0) {
469
+ return false;
470
+ }
471
+ let anyEnabled = false;
472
+ for (const { Source, Clone } of this.mirroredTracks) {
473
+ if (Clone.enabled !== Source.enabled) {
474
+ Clone.enabled = Source.enabled;
475
+ }
476
+ anyEnabled = anyEnabled || Source.enabled;
477
+ }
478
+ return !anyEnabled;
479
+ }
457
480
  /** @inheritdoc */
458
481
  Level() {
459
- if (this.closed) {
482
+ if (this.closed || this.syncMicMute()) {
460
483
  return 0;
461
484
  }
462
485
  this.analyser.getByteTimeDomainData(this.timeDomain);
@@ -464,7 +487,7 @@ var RealtimeAudioMeter = class _RealtimeAudioMeter {
464
487
  }
465
488
  /** @inheritdoc */
466
489
  Bins(count = REALTIME_AUDIO_BIN_COUNT) {
467
- if (this.closed) {
490
+ if (this.closed || this.syncMicMute()) {
468
491
  return new Array(count).fill(0);
469
492
  }
470
493
  this.analyser.getByteFrequencyData(this.frequency);
@@ -480,9 +503,9 @@ var RealtimeAudioMeter = class _RealtimeAudioMeter {
480
503
  this.analyser.disconnect();
481
504
  } catch {
482
505
  }
483
- for (const track of this.ownedTracks) {
506
+ for (const { Clone } of this.mirroredTracks) {
484
507
  try {
485
- track.stop();
508
+ Clone.stop();
486
509
  } catch {
487
510
  }
488
511
  }
@@ -916,12 +939,13 @@ function EncodeFloat32ToPcm16Base64(samples) {
916
939
  }
917
940
  return BytesToBase64(new Uint8Array(pcm.buffer));
918
941
  }
942
+ var INV_32768 = 1 / 32768;
919
943
  function Pcm16ToFloat32(pcm) {
920
- const even = pcm.byteLength - pcm.byteLength % 2;
921
- const ints = new Int16Array(pcm.slice(0, even));
922
- const out = new Float32Array(ints.length);
923
- for (let i = 0; i < ints.length; i++) {
924
- out[i] = ints[i] / 32768;
944
+ const sampleCount = pcm.byteLength >>> 1;
945
+ const ints = new Int16Array(pcm, 0, sampleCount);
946
+ const out = new Float32Array(sampleCount);
947
+ for (let i = 0; i < sampleCount; i++) {
948
+ out[i] = ints[i] * INV_32768;
925
949
  }
926
950
  return out;
927
951
  }
@@ -2097,15 +2121,21 @@ var FrameSampler = class {
2097
2121
  return;
2098
2122
  }
2099
2123
  const size = ScaleToMaxDimension({ Width: video.videoWidth, Height: video.videoHeight }, this.options.MaxDimension);
2100
- canvas.width = size.Width;
2101
- canvas.height = size.Height;
2124
+ if (canvas.width !== size.Width) {
2125
+ canvas.width = size.Width;
2126
+ }
2127
+ if (canvas.height !== size.Height) {
2128
+ canvas.height = size.Height;
2129
+ }
2102
2130
  const context = canvas.getContext("2d");
2103
2131
  if (!context) {
2104
2132
  return;
2105
2133
  }
2106
2134
  context.drawImage(video, 0, 0, size.Width, size.Height);
2107
2135
  const mimeType = this.options.MimeType ?? "image/jpeg";
2108
- const data = canvas.toDataURL(mimeType, this.options.Quality ?? DEFAULT_JPEG_QUALITY).split(",")[1] ?? "";
2136
+ const dataUrl = canvas.toDataURL(mimeType, this.options.Quality ?? DEFAULT_JPEG_QUALITY);
2137
+ const commaIdx = dataUrl.indexOf(",");
2138
+ const data = commaIdx >= 0 ? dataUrl.slice(commaIdx + 1) : "";
2109
2139
  if (data.length > 0) {
2110
2140
  this.options.OnFrame({ Data: data, MimeType: mimeType, Width: size.Width, Height: size.Height, TimestampMs: Date.now() });
2111
2141
  }
@@ -4025,7 +4055,7 @@ OpenAIRealtimeClient = __decorate([
4025
4055
  RegisterClass(BaseRealtimeClient, "openai")
4026
4056
  ], OpenAIRealtimeClient);
4027
4057
 
4028
- // ../../../node_modules/.pnpm/@google+genai@2.16.0_@modelcontextprotocol+sdk@1.30.0_zod@4.3.6_/node_modules/@google/genai/dist/web/index.mjs
4058
+ // ../../../node_modules/.pnpm/@google+genai@2.16.0_@modelcontextprotocol+sdk@1.30.0_zod@4.6.7_/node_modules/@google/genai/dist/web/index.mjs
4029
4059
  var import_p_retry = __toESM(require_p_retry(), 1);
4030
4060
  var _defaultBaseGeminiUrl = void 0;
4031
4061
  var _defaultBaseVertexUrl = void 0;
@@ -27061,8 +27091,9 @@ var GeminiRealtimeClient = class GeminiRealtimeClient2 extends BaseRealtimeClien
27061
27091
  * Mic capture and playout carry over untouched. Rejects when the connection can't be opened or
27062
27092
  * its setup fails, so {@link RealtimeSessionResumption} can retry.
27063
27093
  *
27064
- * The resume reuses the session's ephemeral token, which Google accepts until the token's
27065
- * `expireTime` (the server driver mints 30 minutes). After that every attempt fails and the
27094
+ * The resume reuses the session's ephemeral token. Google counts a resume as a new session, so
27095
+ * the server driver mints the token to open several connections until its `expireTime`
27096
+ * (30 minutes). After that, or once those connections are spent, every attempt fails and the
27066
27097
  * session ends with a fatal error.
27067
27098
  *
27068
27099
  * @param handle The resumption handle Google issued.
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  ConversationsRuntime
3
- } from "./chunk-RAIOBPHZ.js";
3
+ } from "./chunk-L4OBOWDD.js";
4
4
  import {
5
+ Bt,
5
6
  ConversationEngine,
6
- Pt,
7
- Tt,
7
+ Ot,
8
8
  agentFailureMessage
9
- } from "./chunk-MRWWS7FK.js";
9
+ } from "./chunk-HDCS43DU.js";
10
10
  import {
11
11
  RunView
12
- } from "./chunk-N3BM2W5J.js";
13
- import "./chunk-VZ6KR7K2.js";
14
- import "./chunk-ZX4SRAYD.js";
12
+ } from "./chunk-DAGQZKVY.js";
13
+ import "./chunk-JOGHPRST.js";
14
+ import "./chunk-DIDGGUK7.js";
15
15
 
16
16
  // dist/transport/runtime-widget-transport.js
17
17
  var CONVERSATIONS_ENTITY = "MJ: Conversations";
@@ -29,7 +29,7 @@ var RuntimeWidgetTransport = class {
29
29
  async Initialize(session) {
30
30
  this.session = session;
31
31
  this.token = session.token;
32
- const provider = await Tt(this.buildConfig());
32
+ const provider = await Bt(this.buildConfig());
33
33
  this.provider = provider;
34
34
  this.contextUser = provider.CurrentUser;
35
35
  await ConversationsRuntime.Instance.Config(false, provider.CurrentUser, provider);
@@ -85,7 +85,7 @@ var RuntimeWidgetTransport = class {
85
85
  buildConfig() {
86
86
  const base = this.apiUrl.replace(/\/+$/, "");
87
87
  const wsUrl = base.replace(/^http/, "ws");
88
- return new Pt(this.token, base, wsUrl, async () => this.token);
88
+ return new Ot(this.token, base, wsUrl, async () => this.token);
89
89
  }
90
90
  /** Creates the conversation row the guest's turns attach to. */
91
91
  async createConversation() {
@@ -148,6 +148,7 @@ var RuntimeWidgetTransport = class {
148
148
  ExtraFilter: `${ConversationEngine.ScopeFilter(scope)} AND [Role]='AI'`,
149
149
  OrderBy: "Sequence DESC",
150
150
  MaxRows: 1,
151
+ SkipTotalRowCount: true,
151
152
  ResultType: "entity_object"
152
153
  }, this.contextUser ?? void 0);
153
154
  if (result.Success && result.Results.length > 0) {
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  CreateProofOfPossessionJwt,
6
6
  CreateProofOfPossessionKey
7
- } from "./chunks/chunk-ZX4SRAYD.js";
7
+ } from "./chunks/chunk-DIDGGUK7.js";
8
8
 
9
9
  // dist/ui/tokens.js
10
10
  var WIDGET_SHADOW_STYLES = `
@@ -960,14 +960,14 @@ function defaultSessionClient(apiUrl, widgetKey) {
960
960
  return new WidgetSessionClient(apiUrl, widgetKey);
961
961
  }
962
962
  async function defaultTransport(apiUrl) {
963
- const { RuntimeWidgetTransport } = await import("./chunks/runtime-widget-transport-AFGCQC7N.js");
963
+ const { RuntimeWidgetTransport } = await import("./chunks/runtime-widget-transport-XT55WJB2.js");
964
964
  return new RuntimeWidgetTransport(apiUrl);
965
965
  }
966
966
  async function defaultVoiceController(session) {
967
967
  const [{ RealtimeVoiceController }, { createGuestVoiceMint }, { createGuestToolRelay }] = await Promise.all([
968
- import("./chunks/realtime-voice-controller-PCOD3UBR.js"),
969
- import("./chunks/guest-voice-mint-KJMP4VTK.js"),
970
- import("./chunks/guest-tool-relay-GAWXNIUD.js")
968
+ import("./chunks/realtime-voice-controller-76SVXCXJ.js"),
969
+ import("./chunks/guest-voice-mint-GPJQNDR3.js"),
970
+ import("./chunks/guest-tool-relay-IAAOBPAS.js")
971
971
  ]);
972
972
  return new RealtimeVoiceController(
973
973
  createGuestVoiceMint(session),
@@ -998,7 +998,7 @@ function resolveMountTarget(target) {
998
998
  return document.body;
999
999
  }
1000
1000
  function registerNotificationAdapter(element) {
1001
- void import("./chunks/dist-P2JMWJFV.js").then(({ ConversationsRuntime }) => {
1001
+ void import("./chunks/dist-BOIIDZ2X.js").then(({ ConversationsRuntime }) => {
1002
1002
  ConversationsRuntime.Instance.UseNotificationAdapter({
1003
1003
  Notify: (level, message) => {
1004
1004
  if (level === "error" || level === "warning") {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-widget-transport.d.ts","sourceRoot":"","sources":["../../src/transport/runtime-widget-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAKxG,6FAA6F;AAC7F,qBAAa,sBAAuB,YAAW,gBAAgB;IAO/C,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,QAAQ,CAAkC;gBAErB,MAAM,EAAE,MAAM;IAE3C,qGAAqG;IACxF,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAa9D,8FAA8F;IACvF,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIvC,6EAA6E;IAChE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA4BzF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,WAAW;IAMnB,gEAAgE;YAClD,kBAAkB;IA+ChC,mFAAmF;YACrE,eAAe;IAc7B,2EAA2E;YAC7D,oBAAoB;CAuBrC"}
1
+ {"version":3,"file":"runtime-widget-transport.d.ts","sourceRoot":"","sources":["../../src/transport/runtime-widget-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAKxG,6FAA6F;AAC7F,qBAAa,sBAAuB,YAAW,gBAAgB;IAO/C,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,QAAQ,CAAkC;gBAErB,MAAM,EAAE,MAAM;IAE3C,qGAAqG;IACxF,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAa9D,8FAA8F;IACvF,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIvC,6EAA6E;IAChE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA4BzF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,WAAW;IAMnB,gEAAgE;YAClD,kBAAkB;IA+ChC,mFAAmF;YACrE,eAAe;IAc7B,2EAA2E;YAC7D,oBAAoB;CAwBrC"}
@@ -171,6 +171,7 @@ export class RuntimeWidgetTransport {
171
171
  ExtraFilter: `${ConversationEngine.ScopeFilter(scope)} AND [Role]='AI'`,
172
172
  OrderBy: 'Sequence DESC',
173
173
  MaxRows: 1,
174
+ SkipTotalRowCount: true,
174
175
  ResultType: 'entity_object',
175
176
  }, this.contextUser ?? undefined);
176
177
  if (result.Success && result.Results.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-widget-transport.js","sourceRoot":"","sources":["../../src/transport/runtime-widget-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-widget-transport.js","sourceRoot":"","sources":["../../src/transport/runtime-widget-transport.ts"],"names":[],"mappings":"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"}