@burdenoff/fe-libs 2026.1024.1 → 2026.1024.3

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 (132) hide show
  1. package/dist/chrome/FooterBar.d.ts +1 -1
  2. package/dist/chrome/NativePageTransition.d.ts +1 -1
  3. package/dist/chrome/ProductPickerSheet.js +42 -42
  4. package/dist/chrome/ProductSwitcher.d.ts +8 -0
  5. package/dist/chrome/ProductSwitcher.js +83 -72
  6. package/dist/chrome/index.d.ts +9 -9
  7. package/dist/chrome/swipe/swipeMath.d.ts +1 -1
  8. package/dist/shared/assistant/api.d.ts +3 -3
  9. package/dist/shared/assistant/appControls/grammar.d.ts +21 -21
  10. package/dist/shared/assistant/appControls/languageReply.d.ts +1 -1
  11. package/dist/shared/assistant/appControls/names.d.ts +3 -3
  12. package/dist/shared/assistant/appControls/pageAdapters.d.ts +5 -5
  13. package/dist/shared/assistant/appControls/plan.d.ts +38 -38
  14. package/dist/shared/assistant/appControls/types.d.ts +15 -15
  15. package/dist/shared/assistant/appControls/useAssistantControl.d.ts +1 -1
  16. package/dist/shared/assistant/attachmentSources.d.ts +2 -2
  17. package/dist/shared/assistant/attachments.d.ts +5 -5
  18. package/dist/shared/assistant/autoRouting.d.ts +6 -6
  19. package/dist/shared/assistant/avatar/live/LiveAvatarStage.js +5 -1
  20. package/dist/shared/assistant/avatar/live/LiveAvatarTabView.js +28 -25
  21. package/dist/shared/assistant/avatar/live/createLiveAvatarSeam.d.ts +1 -1
  22. package/dist/shared/assistant/avatar/live/createLiveAvatarSeam.js +61 -50
  23. package/dist/shared/assistant/avatar/live/liveAvatarController.d.ts +19 -4
  24. package/dist/shared/assistant/avatar/live/liveAvatarController.js +163 -155
  25. package/dist/shared/assistant/avatar/live/liveAvatarStatus.d.ts +5 -3
  26. package/dist/shared/assistant/avatar/live/liveAvatarStatus.js +2 -2
  27. package/dist/shared/assistant/conversation.d.ts +20 -20
  28. package/dist/shared/assistant/displayContent.d.ts +4 -4
  29. package/dist/shared/assistant/documentText.d.ts +3 -3
  30. package/dist/shared/assistant/exportConversation.d.ts +1 -1
  31. package/dist/shared/assistant/history/historyControls.d.ts +4 -4
  32. package/dist/shared/assistant/history/historyErrors.d.ts +3 -3
  33. package/dist/shared/assistant/history/historyList.d.ts +5 -5
  34. package/dist/shared/assistant/history/historyMerge.d.ts +4 -4
  35. package/dist/shared/assistant/history/historyOperations.d.ts +1 -1
  36. package/dist/shared/assistant/history/historySearch.d.ts +5 -5
  37. package/dist/shared/assistant/history/historyStatus.d.ts +1 -1
  38. package/dist/shared/assistant/history/historyTypes.d.ts +12 -12
  39. package/dist/shared/assistant/history/profileBoundStorage.d.ts +2 -2
  40. package/dist/shared/assistant/i18n.d.ts +1 -1
  41. package/dist/shared/assistant/i18nManifest.d.ts +534 -534
  42. package/dist/shared/assistant/liveDeltas.d.ts +1 -1
  43. package/dist/shared/assistant/liveOverlay.d.ts +1 -1
  44. package/dist/shared/assistant/localUiCommandCopy.d.ts +1 -1
  45. package/dist/shared/assistant/localUiCommands.d.ts +22 -22
  46. package/dist/shared/assistant/localeCommands/engine.d.ts +5 -5
  47. package/dist/shared/assistant/localeCommands/evaluate.d.ts +8 -8
  48. package/dist/shared/assistant/localeCommands/fold.d.ts +2 -2
  49. package/dist/shared/assistant/localeCommands/frames.d.ts +3 -3
  50. package/dist/shared/assistant/localeCommands/gate.d.ts +3 -3
  51. package/dist/shared/assistant/localeCommands/languageNames.d.ts +1 -1
  52. package/dist/shared/assistant/localeCommands/normalise.d.ts +1 -1
  53. package/dist/shared/assistant/localeCommands/types.d.ts +4 -4
  54. package/dist/shared/assistant/modeCapabilities.d.ts +1 -1
  55. package/dist/shared/assistant/modeCopy.d.ts +2 -2
  56. package/dist/shared/assistant/permissionError.d.ts +2 -2
  57. package/dist/shared/assistant/preview/surfaceState.d.ts +1 -1
  58. package/dist/shared/assistant/preview/types.d.ts +5 -5
  59. package/dist/shared/assistant/preview/writeActionResults.d.ts +1 -1
  60. package/dist/shared/assistant/prewarm.d.ts +5 -5
  61. package/dist/shared/assistant/quota.d.ts +2 -2
  62. package/dist/shared/assistant/sandboxReadiness.d.ts +2 -2
  63. package/dist/shared/assistant/speech/speechFeed.d.ts +3 -3
  64. package/dist/shared/assistant/turnOutcome.d.ts +2 -2
  65. package/dist/shared/assistant/turnProgress.d.ts +1 -1
  66. package/dist/shared/assistant/turnState.d.ts +1 -1
  67. package/dist/shared/assistant/turnStream.d.ts +3 -3
  68. package/dist/shared/assistant/turnTimeline.d.ts +13 -13
  69. package/dist/shared/assistant/turnTimingReport.d.ts +1 -1
  70. package/dist/shared/assistant/turnTimingReporter.d.ts +3 -3
  71. package/dist/shared/assistant/ui/AssistantAvatarTabs.d.ts +1 -1
  72. package/dist/shared/assistant/ui/AssistantHistoryNotices.d.ts +1 -1
  73. package/dist/shared/assistant/ui/AssistantToolActivity.d.ts +1 -1
  74. package/dist/shared/assistant/ui/AssistantUiOfferLink.d.ts +2 -2
  75. package/dist/shared/assistant/ui/AssistantWriteConfirmDialog.d.ts +3 -3
  76. package/dist/shared/assistant/ui/composer/AssistantAttachmentButton.d.ts +1 -1
  77. package/dist/shared/assistant/ui/composer/AssistantConnectSourceItem.d.ts +1 -1
  78. package/dist/shared/assistant/ui/leaveConfirmFocus.d.ts +1 -1
  79. package/dist/shared/assistant/ui/leaveConfirmNavigate.d.ts +3 -3
  80. package/dist/shared/assistant/ui/panelOverlays.d.ts +5 -5
  81. package/dist/shared/assistant/ui/useVoiceSession.d.ts +5 -5
  82. package/dist/shared/assistant/ui/useWriteProposalConfirm.d.ts +4 -4
  83. package/dist/shared/assistant/ui/useWriteProposals.d.ts +2 -2
  84. package/dist/shared/assistant/ui/voice/AssistantVoiceSession.d.ts +1 -1
  85. package/dist/shared/assistant/ui/voice/VoiceCaption.d.ts +1 -1
  86. package/dist/shared/assistant/ui/voice/VoiceWaveform.d.ts +1 -1
  87. package/dist/shared/assistant/ui/voice/voiceSessionEscape.d.ts +2 -2
  88. package/dist/shared/assistant/ui/voice/voiceStartGate.d.ts +6 -6
  89. package/dist/shared/assistant/ui/writeProposalPresentation.d.ts +1 -1
  90. package/dist/shared/assistant/uiActions/actOnResolve.d.ts +5 -5
  91. package/dist/shared/assistant/uiActions/assistantHref.d.ts +2 -2
  92. package/dist/shared/assistant/uiActions/backStack.d.ts +1 -1
  93. package/dist/shared/assistant/uiActions/deixis.d.ts +3 -3
  94. package/dist/shared/assistant/uiActions/entityRoutes.d.ts +1 -1
  95. package/dist/shared/assistant/uiActions/navigationOutcome.d.ts +8 -8
  96. package/dist/shared/assistant/uiActions/offerYesOnSurface.d.ts +1 -1
  97. package/dist/shared/assistant/uiActions/resolveTarget.d.ts +2 -2
  98. package/dist/shared/assistant/uiActions/uiOffers.d.ts +5 -5
  99. package/dist/shared/assistant/usageReporting.d.ts +2 -2
  100. package/dist/shared/assistant/useWorkspaceWriteAccess.d.ts +1 -1
  101. package/dist/shared/assistant/voice/affirmations.d.ts +1 -1
  102. package/dist/shared/assistant/voice/handsFree.d.ts +3 -3
  103. package/dist/shared/assistant/voice/handsfree/bargeIn.d.ts +5 -5
  104. package/dist/shared/assistant/voice/handsfree/echoGate.d.ts +6 -6
  105. package/dist/shared/assistant/voice/handsfree/handsFreeController.d.ts +7 -7
  106. package/dist/shared/assistant/voice/handsfree/handsFreeSetting.d.ts +2 -2
  107. package/dist/shared/assistant/voice/handsfree/micCapture.d.ts +1 -1
  108. package/dist/shared/assistant/voice/handsfree/playbackReference.d.ts +1 -1
  109. package/dist/shared/assistant/voice/handsfree/sttTransport.d.ts +3 -3
  110. package/dist/shared/assistant/voice/handsfree/useHandsFreeInterrupt.d.ts +4 -4
  111. package/dist/shared/assistant/voice/handsfree/vad.d.ts +1 -1
  112. package/dist/shared/assistant/voice/speechPlayback.d.ts +7 -7
  113. package/dist/shared/assistant/voice/useVoiceInput.d.ts +1 -1
  114. package/dist/shared/assistant/voice/voiceReopen.d.ts +8 -8
  115. package/dist/shared/assistant/writeConfirmSeam.d.ts +1 -1
  116. package/dist/shared/assistant/writeModeConsent.d.ts +7 -7
  117. package/dist/shared/assistant/writeProposalDiscovery.d.ts +3 -3
  118. package/dist/shared/assistant/writeProposalErrorCopy.d.ts +1 -1
  119. package/dist/shared/assistant/writeProposals.d.ts +23 -23
  120. package/dist/shared/assistant/writeReplyBinder.d.ts +11 -11
  121. package/dist/shared/assistant/writeReplySend.d.ts +7 -7
  122. package/dist/shared/components/LandingOrDashboardRedirect.d.ts +18 -3
  123. package/dist/shared/components/LandingOrDashboardRedirect.js +58 -28
  124. package/dist/shared/components/index.d.ts +2 -1
  125. package/dist/shared/hooks/shell/globalSearchError.d.ts +2 -2
  126. package/dist/shared/navigation/productSwitchHandoff.d.ts +45 -0
  127. package/dist/shared/navigation/productSwitchHandoff.js +27 -0
  128. package/dist/shared/navigation/unsavedChanges.d.ts +1 -1
  129. package/dist/shared/utils/index.d.ts +3 -3
  130. package/dist/shared-components.js +7 -6
  131. package/dist/shared.js +71 -70
  132. package/package.json +3 -2
@@ -98,8 +98,18 @@ function j() {
98
98
  function M(e) {
99
99
  if (!(typeof window > "u")) return (t) => (window.addEventListener(e, t), () => window.removeEventListener(e, t));
100
100
  }
101
- function N(e = {}) {
102
- let t = e.preferences ?? O, n = e.controller ?? {}, r = n.subscribeWorkspaceChange ?? M("burdenoff:workspace-changed"), i = n.subscribePageHide ?? M("pagehide"), a = p({
101
+ function N() {
102
+ if (!(typeof window > "u" || typeof document > "u")) return (e) => {
103
+ let t = window, n = document, r = () => {
104
+ n.visibilityState === "visible" && e();
105
+ };
106
+ return n.addEventListener("visibilitychange", r), t.addEventListener("pageshow", e), () => {
107
+ n.removeEventListener("visibilitychange", r), t.removeEventListener("pageshow", e);
108
+ };
109
+ };
110
+ }
111
+ function P(e = {}) {
112
+ let t = e.preferences ?? O, n = e.controller ?? {}, r = n.subscribeWorkspaceChange ?? M("burdenoff:workspace-changed"), i = n.subscribePageHide ?? M("pagehide"), a = n.subscribePageShow ?? N(), o = n.now ?? (() => Date.now()), u = p({
103
113
  client: e.client ?? D(),
104
114
  openRoom: e.openRoom ?? m,
105
115
  scheduler: e.scheduler ?? s,
@@ -111,10 +121,11 @@ function N(e = {}) {
111
121
  }),
112
122
  startMeter: n.startMeter ?? ((e, t) => typeof MediaStream > "u" ? null : c(new MediaStream([e]), t)),
113
123
  browserSupported: e.browserSupported ?? (() => w()),
114
- now: n.now ?? (() => Date.now()),
124
+ now: o,
115
125
  newIdempotencyKey: n.newIdempotencyKey ?? (() => d()),
116
126
  ...r ? { subscribeWorkspaceChange: r } : {},
117
127
  ...i ? { subscribePageHide: i } : {},
128
+ ...a ? { subscribePageShow: a } : {},
118
129
  ...n.idleMs === void 0 ? {} : { idleMs: n.idleMs },
119
130
  ...n.endBeforeDeadlineMs === void 0 ? {} : { endBeforeDeadlineMs: n.endBeforeDeadlineMs },
120
131
  ...n.connectTimeoutMs === void 0 ? {} : { connectTimeoutMs: n.connectTimeoutMs },
@@ -123,53 +134,53 @@ function N(e = {}) {
123
134
  ...n.stallMs === void 0 ? {} : { stallMs: n.stallMs },
124
135
  ...n.readinessProbe === void 0 ? {} : { readinessProbe: n.readinessProbe },
125
136
  ...e.onLog ? { onLog: e.onLog } : {}
126
- }), o = b(e.avatarVoices), u = e.avatarImages === void 0 ? null : _(e.avatarImages), f = e.avatarVoiceStore ?? k, T = () => f.getState(), E = (n, r) => {
127
- let i = v(T(), {
128
- avatarVoices: o,
137
+ }), f = b(e.avatarVoices), T = e.avatarImages === void 0 ? null : _(e.avatarImages), E = e.avatarVoiceStore ?? k, P = () => E.getState(), F = (n, r) => {
138
+ let i = v(P(), {
139
+ avatarVoices: f,
129
140
  avatarId: t.getState().avatarId,
130
141
  ...e.defaultAvatarVoiceMode ? { hostDefault: e.defaultAvatarVoiceMode } : {}
131
142
  });
132
143
  return i === null ? null : y(i, n, r.listVoices());
133
- }, N = (e, t) => {
144
+ }, I = (e, t) => {
134
145
  let n = {
135
146
  ...e,
136
147
  voice: t
137
148
  };
138
- return n.audioOutput = x(a.createOutput(), () => {
149
+ return n.audioOutput = x(u.createOutput(), () => {
139
150
  n.voice = e.voice;
140
- }, (e) => a.subscribe(() => {
141
- a.getSnapshot().phase !== "ready" && e();
151
+ }, (e) => u.subscribe(() => {
152
+ u.getSnapshot().phase !== "ready" && e();
142
153
  })), n;
143
154
  };
144
155
  return {
145
156
  decorateSpeechEngine: (e) => {
146
157
  let t = (t) => {
147
- let n = E(t.lang, e), r = n === null ? t : {
158
+ let n = F(t.lang, e), r = n === null ? t : {
148
159
  ...t,
149
160
  voice: n
150
161
  };
151
162
  return {
152
163
  voice: n,
153
- target: a.route(r, e)
164
+ target: u.route(r, e)
154
165
  };
155
166
  }, n = null, r = () => {
156
167
  let e = n;
157
168
  n = null, e?.();
158
169
  }, i = (t, r, i) => {
159
- let o = !0, s = !1, c = () => void 0, l = () => {
160
- o && (o = !1, n === l && (n = null), c());
161
- }, u = () => s ? !1 : (s = !0, l(), !0), d = () => {
162
- !o || !u() || (e.cancel(), i?.onError?.("output-left"));
170
+ let a = !0, o = !1, s = () => void 0, c = () => {
171
+ a && (a = !1, n === c && (n = null), s());
172
+ }, l = () => o ? !1 : (o = !0, c(), !0), d = () => {
173
+ !a || !l() || (e.cancel(), i?.onError?.("output-left"));
163
174
  };
164
- c = a.subscribe(() => {
165
- a.getSnapshot().phase !== "ready" && d();
166
- }), n = l, r.audioOutput &&= A(r.audioOutput, d), r.fallback = !1, e.speak(t, r, {
175
+ s = u.subscribe(() => {
176
+ u.getSnapshot().phase !== "ready" && d();
177
+ }), n = c, r.audioOutput &&= A(r.audioOutput, d), r.fallback = !1, e.speak(t, r, {
167
178
  ...i,
168
179
  onEnd: () => {
169
- u() && i?.onEnd?.();
180
+ l() && i?.onEnd?.();
170
181
  },
171
182
  onError: (e) => {
172
- u() && i?.onError?.(e);
183
+ l() && i?.onError?.(e);
173
184
  }
174
185
  });
175
186
  };
@@ -179,26 +190,26 @@ function N(e = {}) {
179
190
  listVoices: () => e.listVoices(),
180
191
  subscribeVoices: (t) => e.subscribeVoices(t),
181
192
  wouldSpeakOnAvatar: (e) => t(e).target === "avatar",
182
- speak: (n, o, s) => {
193
+ speak: (n, a, o) => {
183
194
  r();
184
- let { voice: c, target: l } = t(o);
185
- if (l !== "avatar") {
186
- if (o.avatarOnly === !0) {
187
- e.cancel(), s?.onError?.("output-left");
195
+ let { voice: s, target: c } = t(a);
196
+ if (c !== "avatar") {
197
+ if (a.avatarOnly === !0) {
198
+ e.cancel(), o?.onError?.("output-left");
188
199
  return;
189
200
  }
190
- e.speak(n, o, s);
201
+ e.speak(n, a, o);
191
202
  return;
192
203
  }
193
- let u = c === null ? {
194
- ...o,
195
- audioOutput: a.createOutput()
196
- } : N(o, c);
197
- if (o.avatarOnly === !0) {
198
- i(n, u, s);
204
+ let l = s === null ? {
205
+ ...a,
206
+ audioOutput: u.createOutput()
207
+ } : I(a, s);
208
+ if (a.avatarOnly === !0) {
209
+ i(n, l, o);
199
210
  return;
200
211
  }
201
- e.speak(n, u, s);
212
+ e.speak(n, l, o);
202
213
  },
203
214
  cancel: () => {
204
215
  r(), e.cancel();
@@ -206,7 +217,7 @@ function N(e = {}) {
206
217
  };
207
218
  },
208
219
  Stage: ({ expanded: t, fallback: n }) => /* @__PURE__ */ C(g, {
209
- controller: a,
220
+ controller: u,
210
221
  expanded: t,
211
222
  fallback: n,
212
223
  ...e.avatarNames ? { avatarNames: e.avatarNames } : {}
@@ -214,33 +225,33 @@ function N(e = {}) {
214
225
  enabled: {
215
226
  subscribe: (e) => t.subscribe(e),
216
227
  getSnapshot: () => t.getState().avatarEnabled,
217
- switchOff: () => a.switchOff(),
218
- voiceLive: (e) => a.setVoiceLive(e)
228
+ switchOff: () => u.switchOff(),
229
+ voiceLive: (e) => u.setVoiceLive(e)
219
230
  },
220
231
  tab: {
221
232
  offered: {
222
- subscribe: (e) => a.subscribe(e),
223
- getSnapshot: () => a.getSnapshot().tabOffered
233
+ subscribe: (e) => u.subscribe(e),
234
+ getSnapshot: () => u.getSnapshot().tabOffered
224
235
  },
225
236
  ask: {
226
- subscribe: (e) => a.subscribe(e),
227
- getSnapshot: () => h(a.getSnapshot())
237
+ subscribe: (e) => u.subscribe(e),
238
+ getSnapshot: () => h(u.getSnapshot(), o())
228
239
  },
229
- setOpen: (e) => a.setTabOpen(e),
230
- heldByVoice: () => a.getSnapshot().heldByVoice,
240
+ setOpen: (e) => u.setTabOpen(e),
241
+ heldByVoice: () => u.getSnapshot().heldByVoice,
231
242
  View: (t) => /* @__PURE__ */ C(S, {
232
243
  ...t,
233
- controller: a,
234
- avatarVoices: o,
235
- voiceStore: f,
244
+ controller: u,
245
+ avatarVoices: f,
246
+ voiceStore: E,
236
247
  ...e.avatarNames ? { avatarNames: e.avatarNames } : {},
237
- ...u ? { avatarImages: u } : {},
248
+ ...T ? { avatarImages: T } : {},
238
249
  ...e.defaultAvatarVoiceMode ? { defaultAvatarVoiceMode: e.defaultAvatarVoiceMode } : {}
239
250
  })
240
251
  },
241
- controller: a,
242
- dispose: () => a.dispose()
252
+ controller: u,
253
+ dispose: () => u.dispose()
243
254
  };
244
255
  }
245
256
  //#endregion
246
- export { N as createLiveAvatarSeam, w as isLiveAvatarBrowserSupported, T as liveAvatarAuthorization, E as liveAvatarWorkspaceAuthorization };
257
+ export { P as createLiveAvatarSeam, w as isLiveAvatarBrowserSupported, T as liveAvatarAuthorization, E as liveAvatarWorkspaceAuthorization };
@@ -46,9 +46,9 @@ export interface LiveAvatarSnapshot {
46
46
  readonly tabOffered: boolean;
47
47
  /**
48
48
  * After a "not now" refusal that said when (the server's Retry-After): the wall-clock ms a start may be tried again. Null otherwise.
49
- * It goes with `problem`: cleared together, and both clear by themselves when the time comes. A newer refusal (including a question
50
- * that failed or was answered "not offered"), a workspace switch and a voice conversation starting outside the Avatar tab clear them
51
- * earlier.
49
+ * It goes with `problem`: cleared together, and both clear by themselves when the time comes (its timer, or `recheckRetry` when the
50
+ * page is shown again after a system sleep made that timer late). A newer refusal (including a question that failed or was answered
51
+ * "not offered"), a workspace switch and a voice conversation starting outside the Avatar tab clear them earlier.
52
52
  */
53
53
  readonly retryAt: number | null;
54
54
  /** The avatar was turned on outside the tab during the voice conversation that is still live: closing the tab hands it back to Voice. */
@@ -117,11 +117,19 @@ export interface LiveAvatarControllerDeps {
117
117
  readonly startMeter: (track: MediaStreamTrack, onChange: (audible: boolean) => void) => AvatarMeterHandle | null;
118
118
  /** The browser can show the avatar at all (desktop Chromium first: GATE1B §10). */
119
119
  readonly browserSupported: () => boolean;
120
- /** Wall-clock milliseconds: only the fallback for `endsAt` when the server announced no session length (the server's clock may differ). */
120
+ /**
121
+ * Wall-clock milliseconds: a refusal's retry time (`retryAt`), its lock and its re-check (`recheckRetry`); also the fallback for
122
+ * `endsAt` when the server announced no session length (the server's clock may differ).
123
+ */
121
124
  readonly now: () => number;
122
125
  readonly newIdempotencyKey: () => string;
123
126
  readonly subscribeWorkspaceChange?: (listener: () => void) => () => void;
124
127
  readonly subscribePageHide?: (listener: () => void) => () => void;
128
+ /**
129
+ * The page is shown again (its document visible again, or shown from the back/forward cache): the listener is `recheckRetry`. The
130
+ * scheduler's monotonic clock does not count a system sleep, so after one a refusal's timer fires late; the wall clock (`now`) does.
131
+ */
132
+ readonly subscribePageShow?: (listener: () => void) => () => void;
125
133
  readonly idleMs?: number;
126
134
  readonly endBeforeDeadlineMs?: number;
127
135
  readonly connectTimeoutMs?: number;
@@ -157,6 +165,13 @@ export interface LiveAvatarController {
157
165
  * time (`retryAt`) that has not come.
158
166
  */
159
167
  confirm(): void;
168
+ /**
169
+ * BOFF-9333 UI-11: once the wall clock has reached a refusal's retry time (`retryAt`), clear the refusal now, as its timer does: the
170
+ * problem, whose budget it was, the time, and the timer with them. That timer runs on the scheduler's monotonic clock, which a system
171
+ * sleep stops (macOS, Linux), so after one it fires late. Runs when the page is shown again (`subscribePageShow`); a host with its own
172
+ * wake signal may call it too. With no time, or before it, it does nothing: nothing is cleared early, and the timer stays as it is.
173
+ */
174
+ recheckRetry(): void;
160
175
  /**
161
176
  * The Avatar tab opened or closed (BOFF-9341). Open: the avatar may be asked for with no voice conversation, and an avatar already on
162
177
  * is adopted; a question already in flight is asked again, choose only. Close: any question, choice or session ends as the person's