@burdenoff/fe-libs 2026.925.2 → 2026.925.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.
@@ -49,4 +49,21 @@ export interface AssistantTurnProgress {
49
49
  * reused (per-conversation) sessions, with no message-window gap.
50
50
  */
51
51
  export declare function buildAssistantProgress(messages: AssistantRawMessage[], priorNewestCreatedMs: number, options?: AssistantProgressOptions): AssistantTurnProgress;
52
+ /**
53
+ * ★★ The floor that separates THIS turn's reply from the session's earlier
54
+ * ones: the newest message time before the prompt is sent (BOFF-7912).
55
+ *
56
+ * A failed snapshot used to become a floor of 0. On a REUSED session that is
57
+ * a wrong answer, not a slow one: 0 drops the poll's `since` filter, every
58
+ * earlier assistant message counts as this turn's, and the PREVIOUS completed
59
+ * reply is shown — and charged — as the answer on the first poll.
60
+ *
61
+ * - A new session has said nothing yet, so 0 is exact: no retry needed.
62
+ * - A reused one that fails — or lists NOTHING, which a session that has
63
+ * answered before cannot truthfully do (a misrouted or stale read) — is
64
+ * read once more. Empty twice is believed: the session is genuinely empty
65
+ * (its first prompt never went out). Failing twice fails the turn, with the
66
+ * first error (a temporary outcome the person can retry).
67
+ */
68
+ export declare function snapshotReplyFloor(fetchPrior: () => Promise<AssistantRawMessage[]>, sessionIsNew: boolean): Promise<number>;
52
69
  //# sourceMappingURL=turnProgress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"turnProgress.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/turnProgress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EACL,KAAK,wBAAwB,EAK9B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,uEAAuE;AACvE,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,oBAAoB,EAAE,MAAM,EAC5B,OAAO,CAAC,EAAE,wBAAwB,GACjC,qBAAqB,CA4DvB"}
1
+ {"version":3,"file":"turnProgress.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/turnProgress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EACL,KAAK,wBAAwB,EAK9B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,uEAAuE;AACvE,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,oBAAoB,EAAE,MAAM,EAC5B,OAAO,CAAC,EAAE,wBAAwB,GACjC,qBAAqB,CA4DvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC,EAChD,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,MAAM,CAAC,CAmBjB"}
@@ -23,5 +23,20 @@ function a(a, o, s) {
23
23
  ...p ? { pendingWrite: p } : {}
24
24
  };
25
25
  }
26
+ async function o(e, t) {
27
+ let r = (e) => e.reduce((e, t) => Math.max(e, n(t)), 0), i = null;
28
+ try {
29
+ let n = await e();
30
+ if (n.length > 0 || t) return r(n);
31
+ } catch (e) {
32
+ if (t) return 0;
33
+ i = e;
34
+ }
35
+ try {
36
+ return r(await e());
37
+ } catch (e) {
38
+ throw i ?? e;
39
+ }
40
+ }
26
41
  //#endregion
27
- export { a as buildAssistantProgress };
42
+ export { a as buildAssistantProgress, o as snapshotReplyFloor };
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantChatArea.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantChatArea.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AAwGf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAyDvE;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAsgFxD,CAAC"}
1
+ {"version":3,"file":"AssistantChatArea.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantChatArea.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAAE,EACR,MAAM,OAAO,CAAC;AAkGf,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAyDvE;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC;AAED,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAqgFxD,CAAC"}
@@ -5,24 +5,24 @@ import { useAssistantProduct as n } from "../product.js";
5
5
  import { useAssistantTr as r } from "../i18n.js";
6
6
  import { isAssistantModeId as i } from "../modeIds.js";
7
7
  import { abortAssistantTurn as a, approvePendingWrite as o, createAssistantSandbox as s, createAssistantSession as c, extendAssistantSandboxTTL as ee, findExistingSandbox as te, getAssistantArtifacts as l, getAssistantMessages as ne, getAssistantSession as u, modeRequiresConfirmWrites as re, promptGatewayRequestBytes as ie, releaseSupersededAssistantSandboxes as d, sendAssistantPromptAsync as ae, waitForAssistantServiceReady as f, waitForSandboxRunning as oe } from "../api.js";
8
- import { getRawMessageCreatedAt as se, sanitize as ce } from "../progress.js";
9
- import { withIncompleteTurnNotice as le } from "../streamBudget.js";
8
+ import { sanitize as se } from "../progress.js";
9
+ import { withIncompleteTurnNotice as ce } from "../streamBudget.js";
10
10
  import { isVoiceTurn as p, voiceMarker as m, voiceSessionIdOf as h } from "../voice/turnVisibility.js";
11
- import { buildContinuedFromVoiceNote as ue, buildVoiceTranscriptMarkdown as g, voiceTranscriptFilename as de } from "../voice/voiceTranscript.js";
12
- import { pollDelayMs as fe } from "../voice/assistantPollSchedule.js";
13
- import { toCaptionText as pe } from "../voice/captionText.js";
11
+ import { buildContinuedFromVoiceNote as le, buildVoiceTranscriptMarkdown as g, voiceTranscriptFilename as ue } from "../voice/voiceTranscript.js";
12
+ import { pollDelayMs as de } from "../voice/assistantPollSchedule.js";
13
+ import { toCaptionText as fe } from "../voice/captionText.js";
14
14
  import { resolveAssistantLanguage as _ } from "../voice/languages.js";
15
- import { resolveLanguagePair as me } from "../voice/languagePair.js";
16
- import { countInlineImageCandidates as he, countInlinedImageParts as ge, getSendableAttachments as _e, largestInlineCharsPerFile as ve, resolveAssistantInlineLimits as ye, toMessageAttachment as be } from "../attachments.js";
17
- import { AssistantSendRefusal as xe, classifyTurnFailure as Se, turnOutcomeCopy as Ce } from "../turnOutcome.js";
18
- import { createAdminModeAccessGate as we, resolveAssistantSendModeAfterAccess as Te } from "../adminModeSendGate.js";
19
- import { buildBoundedAttachmentTurn as Ee } from "../attachmentTurn.js";
20
- import { isWriteModeAcknowledged as De, writeModeSendRefusalReason as Oe } from "../writeModeConsent.js";
21
- import { AUTO_READ_MODE as ke, autoCarryOverFor as Ae, autoSuggestions as je, classifyAssistantIntent as Me, escalationToUndo as Ne, isAutoRoutingOffered as Pe, resolveAutoRoute as Fe } from "../autoRouting.js";
22
- import { resolveActiveModeSandbox as Ie, useAssistantStore as v } from "../store.js";
23
- import { isTurnInFlight as Le, planAbandonedTurn as Re, planTurnAbort as ze } from "../turnState.js";
24
- import { getAssistantDisplayContent as Be } from "../displayContent.js";
25
- import { buildAssistantProgress as Ve } from "../turnProgress.js";
15
+ import { resolveLanguagePair as pe } from "../voice/languagePair.js";
16
+ import { countInlineImageCandidates as me, countInlinedImageParts as he, getSendableAttachments as ge, largestInlineCharsPerFile as _e, resolveAssistantInlineLimits as ve, toMessageAttachment as ye } from "../attachments.js";
17
+ import { AssistantSendRefusal as be, classifyTurnFailure as xe, turnOutcomeCopy as Se } from "../turnOutcome.js";
18
+ import { createAdminModeAccessGate as Ce, resolveAssistantSendModeAfterAccess as we } from "../adminModeSendGate.js";
19
+ import { buildBoundedAttachmentTurn as Te } from "../attachmentTurn.js";
20
+ import { isWriteModeAcknowledged as Ee, writeModeSendRefusalReason as De } from "../writeModeConsent.js";
21
+ import { AUTO_READ_MODE as Oe, autoCarryOverFor as ke, autoSuggestions as Ae, classifyAssistantIntent as je, escalationToUndo as Me, isAutoRoutingOffered as Ne, resolveAutoRoute as Pe } from "../autoRouting.js";
22
+ import { resolveActiveModeSandbox as Fe, useAssistantStore as v } from "../store.js";
23
+ import { isTurnInFlight as Ie, planAbandonedTurn as Le, planTurnAbort as Re } from "../turnState.js";
24
+ import { getAssistantDisplayContent as ze } from "../displayContent.js";
25
+ import { buildAssistantProgress as Be, snapshotReplyFloor as Ve } from "../turnProgress.js";
26
26
  import { parseToolActivity as He } from "./AssistantToolActivity.js";
27
27
  import { countSpokenTurns as Ue, spokenTurnText as We } from "../spokenTurns.js";
28
28
  import { useVoiceSession as Ge } from "./useVoiceSession.js";
@@ -50,11 +50,11 @@ function ht() {
50
50
  return `${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
51
51
  }
52
52
  var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
53
- let w = r(), { product: T, modes: E, gatherPageContext: vt, buildPrompt: yt, reportTokenUsage: bt } = n(), { getAccessToken: D, getWorkspaceToken: O, userId: k } = t(), { locale: xt } = e(), St = v((e) => e.assistantLanguage), Ct = v((e) => e.replyLanguage), wt = x(() => me(St, Ct, xt), [
53
+ let w = r(), { product: T, modes: E, gatherPageContext: vt, buildPrompt: yt, reportTokenUsage: bt } = n(), { getAccessToken: D, getWorkspaceToken: O, userId: k } = t(), { locale: xt } = e(), St = v((e) => e.assistantLanguage), Ct = v((e) => e.replyLanguage), wt = x(() => pe(St, Ct, xt), [
54
54
  St,
55
55
  Ct,
56
56
  xt
57
- ]), Tt = wt.reply.english, Et = wt.replyIsExplicit, Dt = wt.reply.code, { conversations: Ot, activeConversationId: A, mode: j, processingByConversationId: kt, setMode: M, setConversationMode: At, setActiveConversation: jt, createConversation: N, addMessage: P, updateMessage: Mt, patchMessage: Nt, mergeMessageMetadata: Pt, setConversationProcessing: F, clearConversationProcessing: Ft, setBackendSessionId: It, clearBackendSessionId: Lt, setSandbox: I, clearSandbox: Rt, acknowledgedWriteModes: zt, acknowledgeWriteMode: Bt, autoRouting: Vt, setAutoRouting: Ht, routeConversation: L } = v(), Ut = Ot.find((e) => e.id === A), R = nt(Ut), Wt = R.all, z = A ? kt[A] : void 0, Gt = Le(z?.status), Kt = Gt ? z?.messageId ?? null : null, qt = z?.status === "error" ? z.messageId : null, { canUseApiCalls: B, loading: Jt } = tt(Ke()), V = S(we({
57
+ ]), Tt = wt.reply.english, Et = wt.replyIsExplicit, Dt = wt.reply.code, { conversations: Ot, activeConversationId: A, mode: j, processingByConversationId: kt, setMode: M, setConversationMode: At, setActiveConversation: jt, createConversation: N, addMessage: P, updateMessage: Mt, patchMessage: Nt, mergeMessageMetadata: Pt, setConversationProcessing: F, clearConversationProcessing: Ft, setBackendSessionId: It, clearBackendSessionId: Lt, setSandbox: I, clearSandbox: Rt, acknowledgedWriteModes: zt, acknowledgeWriteMode: Bt, autoRouting: Vt, setAutoRouting: Ht, routeConversation: L } = v(), Ut = Ot.find((e) => e.id === A), R = nt(Ut), Wt = R.all, z = A ? kt[A] : void 0, Gt = Ie(z?.status), Kt = Gt ? z?.messageId ?? null : null, qt = z?.status === "error" ? z.messageId : null, { canUseApiCalls: B, loading: Jt } = tt(Ke()), V = S(Ce({
58
58
  loading: Jt,
59
59
  canUseAdminModes: B
60
60
  })).current, Yt = S(E);
@@ -72,13 +72,13 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
72
72
  ]), b(() => () => {
73
73
  V.abandon();
74
74
  }, [V]);
75
- let Xt = x(() => E.filter((e) => !e.requiresAdmin || B), [E, B]), Zt = Pe(Xt), Qt = Vt && Zt, $t = S(Zt);
75
+ let Xt = x(() => E.filter((e) => !e.requiresAdmin || B), [E, B]), Zt = Ne(Xt), Qt = Vt && Zt, $t = S(Zt);
76
76
  b(() => {
77
77
  $t.current = Zt;
78
78
  }, [Zt]);
79
- let H = S(null), en = ve(E), [U, tn] = dt(null), [nn, rn] = dt(!1), an = S({}), W = S(Je()), on = S(/* @__PURE__ */ new Set()), sn = S(/* @__PURE__ */ new Set()), G = x(() => E.find((e) => e.id === j), [E, j]), cn = j === "assistant" || G !== void 0 && !G.writeCapable && !re(j);
79
+ let H = S(null), en = _e(E), [U, tn] = dt(null), [nn, rn] = dt(!1), an = S({}), W = S(Je()), on = S(/* @__PURE__ */ new Set()), sn = S(/* @__PURE__ */ new Set()), G = x(() => E.find((e) => e.id === j), [E, j]), cn = j === "assistant" || G !== void 0 && !G.writeCapable && !re(j);
80
80
  b(() => {
81
- if (j !== "assistant" && G?.writeCapable && !De(zt, j)) {
81
+ if (j !== "assistant" && G?.writeCapable && !Ee(zt, j)) {
82
82
  M("assistant");
83
83
  return;
84
84
  }
@@ -143,14 +143,14 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
143
143
  ]), [un, dn] = dt(null), q = S(/* @__PURE__ */ new Set()), fn = S(null), pn = y(() => {
144
144
  let e = v.getState(), t = e.activeConversationId;
145
145
  if (!t) return;
146
- let n = e.processingByConversationId[t], r = Le(n?.status) ? n?.messageId ?? null : null;
147
- if (!ze({
146
+ let n = e.processingByConversationId[t], r = Ie(n?.status) ? n?.messageId ?? null : null;
147
+ if (!Re({
148
148
  interruptedTurnId: r,
149
149
  activeTurnId: r,
150
150
  alreadyRequested: r ? q.current.has(r) : !1
151
151
  }).send || !r) return;
152
152
  q.current.add(r);
153
- let i = Ie(e), o = qe(), s = e.conversations.find((e) => e.id === t)?.backendSessionId;
153
+ let i = Fe(e), o = qe(), s = e.conversations.find((e) => e.id === t)?.backendSessionId;
154
154
  !i || !o || !s || a(i.sandboxId, o, s, i.mode, {
155
155
  accessToken: D(),
156
156
  workspaceToken: O(),
@@ -162,7 +162,7 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
162
162
  D,
163
163
  O
164
164
  ]), mn = y(async (e) => {
165
- let t = v.getState(), n = Ie(t), r = qe(), i = t.activeConversationId;
165
+ let t = v.getState(), n = Fe(t), r = qe(), i = t.activeConversationId;
166
166
  if (!(!n || !r || !i)) {
167
167
  dn(e);
168
168
  try {
@@ -190,7 +190,7 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
190
190
  ]), J = y(async (e, t = [], n = {}) => {
191
191
  let r = n.voiceSessionId !== void 0, i = v.getState(), a = i.activeConversationId ?? A;
192
192
  if (a) {
193
- if (Le(i.processingByConversationId[a]?.status)) {
193
+ if (Ie(i.processingByConversationId[a]?.status)) {
194
194
  let r = i.processingByConversationId[a]?.messageId ?? null;
195
195
  r && q.current.has(r) && (fn.current = {
196
196
  conversationId: a,
@@ -203,8 +203,8 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
203
203
  if (sn.current.has(a)) return;
204
204
  }
205
205
  if (H.current) return;
206
- let o = i.activeConversationId ? i.conversations.find((e) => e.id === i.activeConversationId) : void 0, s = i.autoRouting && $t.current ? Fe({
207
- intent: n.autoIntent ?? Me(e),
206
+ let o = i.activeConversationId ? i.conversations.find((e) => e.id === i.activeConversationId) : void 0, s = i.autoRouting && $t.current ? Pe({
207
+ intent: n.autoIntent ?? je(e),
208
208
  dictated: r,
209
209
  conversation: o ? {
210
210
  mode: o.mode,
@@ -212,7 +212,7 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
212
212
  hasHistory: o.messages.length > 0 || !!o.backendSessionId
213
213
  } : null
214
214
  }) : null;
215
- if (s && Yt.current.find((e) => e.id === s.mode)?.writeCapable && !De(i.acknowledgedWriteModes, s.mode)) {
215
+ if (s && Yt.current.find((e) => e.id === s.mode)?.writeCapable && !Ee(i.acknowledgedWriteModes, s.mode)) {
216
216
  H.current = {
217
217
  content: e,
218
218
  attachments: t,
@@ -236,17 +236,17 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
236
236
  workspaceToken: O(),
237
237
  userId: k,
238
238
  organizationId: Ke()
239
- }, ue = {
239
+ }, le = {
240
240
  id: ht(),
241
241
  role: "user",
242
242
  content: e,
243
243
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
244
244
  metadata: {
245
- ...t.length ? { attachments: t.map(be) } : {},
245
+ ...t.length ? { attachments: t.map(ye) } : {},
246
246
  ...m(n.voiceSessionId)
247
247
  }
248
248
  };
249
- P(d, ue);
249
+ P(d, le);
250
250
  let g = ht();
251
251
  P(d, {
252
252
  id: g,
@@ -258,8 +258,8 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
258
258
  ...m(n.voiceSessionId)
259
259
  }
260
260
  }), F(d, "provisioning", g, null);
261
- let de = (e, t, r, i, a = Dt) => {
262
- Nt(d, g, { content: ce(e) }), Pt(d, g, {
261
+ let ue = (e, t, r, i, a = Dt) => {
262
+ Nt(d, g, { content: se(e) }), Pt(d, g, {
263
263
  lang: a,
264
264
  ...t?.length ? { artifacts: t } : {},
265
265
  ...t?.length || r || i ? { mode: c } : {},
@@ -267,15 +267,15 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
267
267
  ...i ? { sandboxId: i } : {},
268
268
  ...m(n.voiceSessionId)
269
269
  });
270
- }, pe = async (n = 1) => {
270
+ }, fe = async (n = 1) => {
271
271
  let i = !1;
272
272
  try {
273
- let { sandboxId: n, sessionId: a, sessionIsNew: o } = await ln(d, g, c, p, h), s = Ae(v.getState().conversations.find((e) => e.id === d), e, o), re = (await ne(n, p, a, c, h, { limit: 50 }).catch(() => [])).reduce((e, t) => Math.max(e, se(t)), 0);
273
+ let { sandboxId: n, sessionId: a, sessionIsNew: o } = await ln(d, g, c, p, h), s = ke(v.getState().conversations.find((e) => e.id === d), e, o), re = await Ve(() => ne(n, p, a, c, h, { limit: 50 }), o);
274
274
  K(d, g, "streaming", "thinking");
275
- let f = vt?.(), { prompt: oe, parts: m } = Ee({
275
+ let f = vt?.(), { prompt: oe, parts: m } = Te({
276
276
  content: s ? `${s}${e}` : e,
277
277
  attachments: t,
278
- limits: ye(te),
278
+ limits: ve(te),
279
279
  wrapPrompt: (e) => yt?.(c, e, Tt, Et, r) ?? e,
280
280
  requestBytes: (e, t) => ie({
281
281
  sandboxId: n,
@@ -287,39 +287,39 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
287
287
  pageContext: f,
288
288
  authContext: h
289
289
  })
290
- }), ue = ge(m), pe = ue > 0;
291
- i = he(t) > ue;
290
+ }), le = he(m), fe = le > 0;
291
+ i = me(t) > le;
292
292
  try {
293
293
  await ae(n, p, a, oe, c, f, h, m?.length ? { parts: m } : void 0);
294
294
  } catch (e) {
295
295
  if (!m || !rt(e)) throw e;
296
- await ae(n, p, a, oe, c, f, h, void 0), i ||= pe;
296
+ await ae(n, p, a, oe, c, f, h, void 0), i ||= fe;
297
297
  }
298
- let _ = Ve([], re), me = Date.now() + u.streamBudgetMs, _e = Date.now(), ve = Date.now(), be = () => Re({
298
+ let _ = Be([], re), pe = Date.now() + u.streamBudgetMs, ge = Date.now(), _e = Date.now(), ye = () => Le({
299
299
  turnId: g,
300
300
  abortRequested: q.current.has(g),
301
301
  activeTurnId: v.getState().processingByConversationId[d]?.messageId ?? null
302
302
  });
303
- for (; Date.now() < me;) {
304
- let e = be();
303
+ for (; Date.now() < pe;) {
304
+ let e = ye();
305
305
  if (e.abandon) {
306
306
  e.clearProcessing && Ft(d);
307
307
  return;
308
308
  }
309
- if (_ = Ve(await ne(n, p, a, c, h, {
309
+ if (_ = Be(await ne(n, p, a, c, h, {
310
310
  limit: 50,
311
311
  sinceMs: re
312
- }), re, { accumulateNarration: u.accumulatesNarration }), Nt(d, g, { content: ce(_.content) }), _.pendingWrite && Pt(d, g, { pendingWrite: _.pendingWrite }), _.done) break;
313
- Date.now() - _e > 3e4 && (await ee(n, p, 600, h).catch(() => void 0), _e = Date.now()), await new Promise((e) => setTimeout(e, fe(Date.now() - ve)));
312
+ }), re, { accumulateNarration: u.accumulatesNarration }), Nt(d, g, { content: se(_.content) }), _.pendingWrite && Pt(d, g, { pendingWrite: _.pendingWrite }), _.done) break;
313
+ Date.now() - ge > 3e4 && (await ee(n, p, 600, h).catch(() => void 0), ge = Date.now()), await new Promise((e) => setTimeout(e, de(Date.now() - _e)));
314
314
  }
315
- let xe = u.producesArtifacts ? await l(n, p, a, c, h).then((e) => e).catch(() => []) : void 0;
315
+ let be = u.producesArtifacts ? await l(n, p, a, c, h).then((e) => e).catch(() => []) : void 0;
316
316
  if (_.done || (_ = {
317
317
  ..._,
318
- content: le(_.content, c, w, te)
318
+ content: ce(_.content, c, w, te)
319
319
  }), i && (_ = {
320
320
  ..._,
321
321
  content: `${_.content}\n\n${w("attachments.imagesNotSent", "_Your photo was too large to include with this message, so the answer above is from the text and the file link only. Try a smaller or more tightly cropped photo._")}`
322
- }), de(_.content, xe, a, n), _.tokens) {
322
+ }), ue(_.content, be, a, n), _.tokens) {
323
323
  Nt(d, g, { tokens: _.tokens });
324
324
  try {
325
325
  await bt?.({
@@ -331,14 +331,14 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
331
331
  }), ot(T);
332
332
  } catch {}
333
333
  }
334
- let Se = be();
335
- if (Se.abandon) {
336
- Se.clearProcessing && Ft(d);
334
+ let xe = ye();
335
+ if (xe.abandon) {
336
+ xe.clearProcessing && Ft(d);
337
337
  return;
338
338
  }
339
339
  F(d, "complete", g, null);
340
340
  } catch (e) {
341
- let t = Re({
341
+ let t = Le({
342
342
  turnId: g,
343
343
  abortRequested: q.current.has(g),
344
344
  activeTurnId: v.getState().processingByConversationId[d]?.messageId ?? null
@@ -349,7 +349,7 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
349
349
  }
350
350
  if (n === 1 && it(e)) {
351
351
  let e = v.getState().sandboxesByMode[c]?.sandboxId ?? null;
352
- return e && (on.current.add(e), W.current.invalidate(e)), Lt(d), Rt(c), Mt(d, g, ""), Pt(d, g, { pendingWrite: void 0 }), pe(2);
352
+ return e && (on.current.add(e), W.current.invalidate(e)), Lt(d), Rt(c), Mt(d, g, ""), Pt(d, g, { pendingWrite: void 0 }), fe(2);
353
353
  }
354
354
  throw e;
355
355
  }
@@ -360,26 +360,26 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
360
360
  code: "UNAUTHENTICATED",
361
361
  authFailure: "WORKSPACE_CONTEXT_MISSING"
362
362
  } });
363
- let e = await Te(c, () => Yt.current.find((e) => e.id === c), V);
363
+ let e = await we(c, () => Yt.current.find((e) => e.id === c), V);
364
364
  te = e.config, u = e.capabilities;
365
- let t = Oe(c, te, v.getState().acknowledgedWriteModes, {
365
+ let t = De(c, te, v.getState().acknowledgedWriteModes, {
366
366
  dictated: r,
367
367
  confirmsWrites: re(c)
368
368
  });
369
- if (t) throw new xe(t, t === "confirm-write-mode" ? "Write mode not confirmed" : "Voice in a write mode");
370
- await pe();
369
+ if (t) throw new be(t, t === "confirm-write-mode" ? "Write mode not confirmed" : "Voice in a write mode");
370
+ await fe();
371
371
  } catch (e) {
372
372
  W.current.invalidate(v.getState().sandboxesByMode[c]?.sandboxId ?? null);
373
- let t = Se(e);
373
+ let t = xe(e);
374
374
  t.offersUpgrade && at(T, "sandbox");
375
- let r = Ce(t, w);
375
+ let r = Se(t, w);
376
376
  F(d, "error", g, r.headline), Nt(d, g, { content: r.text }), Pt(d, g, {
377
377
  lang: r.translated ? xt : "en",
378
378
  ...m(n.voiceSessionId)
379
379
  });
380
380
  } finally {
381
381
  sn.current.delete(_);
382
- let e = v.getState(), t = Ne(oe, c, e.conversations.find((e) => e.id === _), (t) => !!e.sandboxesByMode[t]?.sandboxId);
382
+ let e = v.getState(), t = Me(oe, c, e.conversations.find((e) => e.id === _), (t) => !!e.sandboxesByMode[t]?.sandboxId);
383
383
  t && (L(_, t.mode), t.backendSessionId && It(_, t.backendSessionId));
384
384
  let n = fn.current;
385
385
  fn.current = null, n && n.conversationId === _ && Y.current(n.content, n.attachments, n.options);
@@ -431,7 +431,7 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
431
431
  for (let e = Wt.length - 1; e >= 0; --e) {
432
432
  let t = Wt[e];
433
433
  if (t?.role !== "assistant" || !p(t) || q.current.has(t.id)) continue;
434
- let n = Be(t, z, w);
434
+ let n = ze(t, z, w);
435
435
  if (n.kind !== "output") return null;
436
436
  let r = He(n.text).text.trim();
437
437
  return r ? {
@@ -445,7 +445,7 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
445
445
  Gt,
446
446
  z,
447
447
  w
448
- ]), vn = x(() => _n ? pe(_n.text) : null, [_n]), yn = R.chat, X = x(() => R.voice.filter((e) => e.role === "user" || e.role === "assistant").map((e) => ({
448
+ ]), vn = x(() => _n ? fe(_n.text) : null, [_n]), yn = R.chat, X = x(() => R.voice.filter((e) => e.role === "user" || e.role === "assistant").map((e) => ({
449
449
  id: e.id,
450
450
  role: e.role,
451
451
  text: We(e, z, w),
@@ -465,7 +465,7 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
465
465
  earlier: w("voiceSession.earlierLabel", "Earlier"),
466
466
  you: w("voiceSession.speakerYou", "You"),
467
467
  assistant: w("voiceSession.speakerAssistant", "Assistant")
468
- }, e), de(T, e), "text/markdown");
468
+ }, e), ue(T, e), "text/markdown");
469
469
  }, [
470
470
  T,
471
471
  X,
@@ -475,7 +475,7 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
475
475
  let Q = Ge({
476
476
  onSubmit: y((e, t) => {
477
477
  let n = () => {
478
- let n = xn.current, r = _e(n.attachments);
478
+ let n = xn.current, r = ge(n.attachments);
479
479
  Y.current(e, r, { voiceSessionId: t }), n.clear();
480
480
  };
481
481
  if (!xn.current.isBusy) {
@@ -493,7 +493,7 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
493
493
  !e || X.length === 0 || (P(e, {
494
494
  id: ht(),
495
495
  role: "system",
496
- content: ue(X.slice(Sn), {
496
+ content: le(X.slice(Sn), {
497
497
  intro: w("voiceSession.continuedIntro", "Continued from a voice conversation. You asked about:"),
498
498
  nothing: w("voiceSession.continuedNothing", "Continued from a voice conversation."),
499
499
  more: (e) => w("voiceSession.continuedMore", "…and {{count}} more", { count: e })
@@ -553,7 +553,7 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
553
553
  ]), On = y(() => {
554
554
  let e = v.getState(), t = e.activeConversationId ? e.conversations.find((t) => t.id === e.activeConversationId) : void 0;
555
555
  if (!t) {
556
- Ht(!0), M(ke);
556
+ Ht(!0), M(Oe);
557
557
  return;
558
558
  }
559
559
  if (t.routedBy === "auto") {
@@ -561,11 +561,11 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
561
561
  return;
562
562
  }
563
563
  if (t.messages.length === 0 && !t.backendSessionId) {
564
- L(t.id, ke);
564
+ L(t.id, Oe);
565
565
  return;
566
566
  }
567
567
  let n = e.conversations.find((t) => t.routedBy === "auto" && t.messages.length === 0 && !t.backendSessionId && !e.processingByConversationId[t.id]);
568
- n ? (jt(n.id), L(n.id, ke)) : N(void 0, ke, { routedBy: "auto" });
568
+ n ? (jt(n.id), L(n.id, Oe)) : N(void 0, Oe, { routedBy: "auto" });
569
569
  }, [
570
570
  N,
571
571
  L,
@@ -573,7 +573,7 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
573
573
  Ht,
574
574
  M
575
575
  ]), kn = y((e) => {
576
- if (E.find((t) => t.id === e)?.writeCapable && !De(v.getState().acknowledgedWriteModes, e)) {
576
+ if (E.find((t) => t.id === e)?.writeCapable && !Ee(v.getState().acknowledgedWriteModes, e)) {
577
577
  tn(e);
578
578
  return;
579
579
  }
@@ -615,7 +615,7 @@ var gt = ({ visible: gt = !0, writeAccess: _t = "unknown" }) => {
615
615
  mode: j,
616
616
  onSuggestionClick: hn,
617
617
  explainsAuto: Qt,
618
- suggestions: Qt && j === "assistant" ? je(E.find((e) => e.id === "assistant")?.suggestions ?? [], E.find((e) => e.id === "api-calls")?.suggestions ?? []) : void 0
618
+ suggestions: Qt && j === "assistant" ? Ae(E.find((e) => e.id === "assistant")?.suggestions ?? [], E.find((e) => e.id === "api-calls")?.suggestions ?? []) : void 0
619
619
  }) : /* @__PURE__ */ C("div", {
620
620
  className: "flex min-h-0 flex-1 flex-col",
621
621
  children: /* @__PURE__ */ C($e, {
@@ -60,76 +60,76 @@ import { isTurnInFlight as xa, planAbandonedTurn as Sa, planTurnAbort as Ca } fr
60
60
  import { isLegacyFiller as wa, isLegacyStopped as Ta, isStageCopy as Ea, stripLegacyFillerPrefix as Da } from "./shared/assistant/legacyFiller.js";
61
61
  import { getAssistantDisplayContent as Oa } from "./shared/assistant/displayContent.js";
62
62
  import { elapsedSince as ka, msUntilNextPhrase as Aa, startPhraseTicker as ja, turnActivityCopy as Ma, turnActivityStage as Na } from "./shared/assistant/turnActivity.js";
63
- import { buildAssistantProgress as Pa } from "./shared/assistant/turnProgress.js";
64
- import { AssistantToolActivity as Fa, parseToolActivity as Ia } from "./shared/assistant/ui/AssistantToolActivity.js";
65
- import { countSpokenTurns as La, spokenTurnText as Ra } from "./shared/assistant/spokenTurns.js";
66
- import { AssistantAvatar as za } from "./shared/assistant/ui/AssistantAvatar.js";
67
- import { AssistantSpeechProvider as Ba, useAssistantSpeech as Va } from "./shared/assistant/ui/AssistantSpeechProvider.js";
68
- import { useVoiceSession as Ha } from "./shared/assistant/ui/useVoiceSession.js";
69
- import { getActorId as Ua, getOrganizationId as Wa, getWorkspaceId as Ga } from "./shared/assistant/context.js";
70
- import { SANDBOX_READY_TTL_MS as Ka, createReadinessTracker as qa, isRecentlyVerified as Ja } from "./shared/assistant/sandboxReadiness.js";
71
- import { AssistantAutoSpeakToggle as Ya } from "./shared/assistant/ui/AssistantAutoSpeakToggle.js";
72
- import { AssistantMessageAttachments as Xa } from "./shared/assistant/ui/AssistantMessageAttachments.js";
73
- import { AssistantPendingWriteCard as Za } from "./shared/assistant/ui/AssistantPendingWriteCard.js";
74
- import { AssistantLanguageMenu as Qa } from "./shared/assistant/ui/AssistantLanguageMenu.js";
75
- import { AssistantReplyLanguageSelector as $a } from "./shared/assistant/ui/AssistantReplyLanguageSelector.js";
76
- import { AssistantSpeakButton as eo } from "./shared/assistant/ui/AssistantSpeakButton.js";
77
- import { AssistantSpokenTurnsNotice as to } from "./shared/assistant/ui/AssistantSpokenTurnsNotice.js";
78
- import { AssistantConnectSourceProvider as no, connectSourceHrefRenders as ro, hasConnectSource as io, useAssistantConnectSource as ao } from "./shared/assistant/ui/composer/connectSource.js";
79
- import { AssistantConnectSourceItem as oo, connectSourceActivation as so } from "./shared/assistant/ui/composer/AssistantConnectSourceItem.js";
80
- import { ASSISTANT_OVERLAY_ATTR as co, ASSISTANT_PANEL_ATTR as lo, NO_PANEL_OVERLAY as uo, activePanelOverlay as fo, assistantPanelOwnsEscape as po, escapeDismisses as mo, focusIsInsidePanel as ho, nextPanelOverlays as go, panelOwnsEscape as _o } from "./shared/assistant/ui/panelOverlays.js";
81
- import { useDropdownEscape as vo } from "./shared/assistant/ui/useDropdownEscape.js";
82
- import { AssistantAttachmentButton as yo } from "./shared/assistant/ui/composer/AssistantAttachmentButton.js";
83
- import { AssistantAttachmentChips as bo } from "./shared/assistant/ui/composer/AssistantAttachmentChips.js";
84
- import { AssistantPreviewProvider as xo, useAssistantPreview as So } from "./shared/assistant/preview/context.js";
85
- import { IDLE_PREVIEW_STATE as Co, isBlankProse as wo, isRunningStatus as To, nextPreviewEvents as Eo } from "./shared/assistant/preview/previewTransitions.js";
86
- import { IDLE_PREVIEW as Do, NO_OWNER as Oo, applyPreviewEvent as ko, createAssistantPreviewSurface as Ao, currentPreviewOwner as jo, runBelongsTo as Mo, sameOwner as No } from "./shared/assistant/preview/surfaceState.js";
87
- import { createRunIdentityCache as Po, runIdentities as Fo } from "./shared/assistant/preview/runIdentity.js";
88
- import { IDLE_ACTIVE_TAB as Io, nextActiveTab as Lo, pinActiveTab as Ro, shouldPinOnMove as zo, shouldPinOnSelect as Bo, stepsFromToolActivity as Vo, tabForArrowKey as Ho } from "./shared/assistant/preview/entity/entityPreviewState.js";
89
- import { AssistantStepRail as Uo } from "./shared/assistant/preview/entity/AssistantStepRail.js";
90
- import { AssistantEntityPreview as Wo } from "./shared/assistant/preview/entity/AssistantEntityPreview.js";
91
- import { useOverlayFocus as Go } from "./shared/assistant/ui/useOverlayFocus.js";
92
- import { REDUCED_MOTION_ATTRIBUTE as Ko, REDUCED_MOTION_QUERY as qo, readReducedMotion as Jo, subscribeReducedMotion as Yo, usePrefersReducedMotion as Xo } from "./shared/assistant/ui/usePrefersReducedMotion.js";
93
- import { useAssistantPreviewBridge as Zo } from "./shared/assistant/preview/useAssistantPreviewBridge.js";
94
- import { HostedPreviewBridgeContext as Qo, panelOwnedPreviewBridge as $o, useHostedAssistantPreviewBridge as es } from "./shared/assistant/preview/bridgeHostContext.js";
95
- import { AssistantPreviewBridgeHost as ts } from "./shared/assistant/preview/bridgeHost.js";
96
- import { AssistantPreviewOverlay as ns } from "./shared/assistant/preview/AssistantPreviewOverlay.js";
97
- import { AssistantLanguageSelector as rs, FOLLOW_APP_LOCALE as is } from "./shared/assistant/ui/composer/AssistantLanguageSelector.js";
98
- import { ASSISTANT_MODE_META as as, AUTO_MODE_OPTION_ID as os, AssistantModeSelector as ss, assistantModeMeta as cs, nextModeIndex as ls } from "./shared/assistant/ui/composer/AssistantModeSelector.js";
99
- import { AssistantVoiceButton as us } from "./shared/assistant/ui/composer/AssistantVoiceButton.js";
100
- import { AUTO_VOICE as ds, AssistantVoiceSelector as fs } from "./shared/assistant/ui/composer/AssistantVoiceSelector.js";
101
- import { AssistantVoiceOrb as ps } from "./shared/assistant/ui/voice/AssistantVoiceOrb.js";
102
- import { AssistantVoiceSessionButton as ms } from "./shared/assistant/ui/voice/AssistantVoiceSessionButton.js";
103
- import { CAPTION_SCROLL_ATTR as hs, VoiceCaption as gs } from "./shared/assistant/ui/voice/VoiceCaption.js";
104
- import { VoiceConversationView as _s } from "./shared/assistant/ui/voice/VoiceConversationView.js";
105
- import { VoiceWaveform as vs } from "./shared/assistant/ui/voice/VoiceWaveform.js";
106
- import { VoiceStatusLine as ys, VoiceStatusText as bs } from "./shared/assistant/ui/voice/VoiceStatusText.js";
107
- import { VoiceMiniController as xs } from "./shared/assistant/ui/voice/VoiceMiniController.js";
108
- import { VoiceStage as Ss } from "./shared/assistant/ui/voice/VoiceStage.js";
109
- import { VoiceTranscriptDrawer as Cs } from "./shared/assistant/ui/voice/VoiceTranscriptDrawer.js";
110
- import { downloadFile as ws, exportConversation as Ts } from "./shared/assistant/exportConversation.js";
111
- import { AssistantMoreMenu as Es } from "./shared/assistant/ui/AssistantMoreMenu.js";
112
- import { AssistantHeader as Ds } from "./shared/assistant/ui/AssistantHeader.js";
113
- import { AssistantConversationList as Os } from "./shared/assistant/ui/AssistantConversationList.js";
114
- import { AssistantEmptyState as ks } from "./shared/assistant/ui/AssistantEmptyState.js";
115
- import { AssistantTurnActivity as As, TurnActivityLine as js } from "./shared/assistant/ui/AssistantTurnActivity.js";
116
- import { AssistantMessageItem as Ms } from "./shared/assistant/ui/AssistantMessageItem.js";
117
- import { AssistantMessageList as Ns } from "./shared/assistant/ui/AssistantMessageList.js";
118
- import { AssistantVoiceSession as Ps } from "./shared/assistant/ui/voice/AssistantVoiceSession.js";
119
- import { useAssistantApiAccess as Fs } from "./shared/assistant/useAssistantApiAccess.js";
120
- import { useConversationTurns as Is } from "./shared/assistant/useConversationTurns.js";
121
- import { isMultimodalBodyRejection as Ls, isRecoverableAssistantError as Rs } from "./shared/assistant/transportErrors.js";
122
- import { aiCreditsUpdatedEventName as zs, dispatchAssistantQuotaExhausted as Bs, notifyAiCreditsUpdated as Vs } from "./shared/assistant/aiCredits.js";
123
- import { useWorkspaceWriteAccess as Hs } from "./shared/assistant/useWorkspaceWriteAccess.js";
124
- import { extractDocumentText as Us } from "./shared/assistant/documentExtract.js";
125
- import { useAssistantAttachments as Ws } from "./shared/assistant/useAssistantAttachments.js";
126
- import { AssistantComposer as Gs } from "./shared/assistant/ui/composer/AssistantComposer.js";
127
- import { isProdRuntime as Ks } from "./shared/assistant/env.js";
128
- import { useAssistantHeartbeat as qs } from "./shared/assistant/useAssistantHeartbeat.js";
129
- import { useAssistantKeyboardShortcuts as Js } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
130
- import { AssistantApiCallsConsentDialog as Ys } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
131
- import { AssistantChatArea as Xs } from "./shared/assistant/ui/AssistantChatArea.js";
132
- import { AIAssistantPanel as Zs } from "./shared/assistant/ui/AIAssistantPanel.js";
133
- import { ASSISTANT_BOTTOM_CHROME_CLEARANCE as Qs, ASSISTANT_DIALOG_SELECTOR as $s, ASSISTANT_DOCKED_DESKTOP_CLASS as ec, ASSISTANT_DOCK_WIDTH_PX as tc, ASSISTANT_DOCK_WIDTH_VAR as nc, ASSISTANT_FLOATING_DESKTOP_CLASS as rc, ASSISTANT_OVERLAY_DEFAULT_TOP_PX as ic, ASSISTANT_OVERLAY_DESKTOP_QUERY as ac, ASSISTANT_OVERLAY_TOP_VAR as oc, ASSISTANT_SHEET_BASE_CLASS as sc, ASSISTANT_SHEET_COMPACT_CLASS as cc, ASSISTANT_SHEET_EXPANDED_CLASS as lc, ASSISTANT_TOGGLE_SHORTCUT_LABEL as uc, aboveAssistantBottomChrome as dc, assistantOverlayClassName as fc, assistantOverlayEscapeAction as pc, assistantOverlayKeys as mc, assistantQuotaKindOf as hc, createAssistantNavigate as gc, isAssistantToggleShortcut as _c, nextAssistantOpenState as vc, publishedAssistantDockWidth as yc, readAssistantOverlayFlag as bc, requestedAssistantOpenState as xc, writeAssistantOverlayFlag as Sc } from "./shared/assistant/ui/assistantOverlayState.js";
134
- import { AssistantOverlay as Cc, AssistantOverlayProvider as wc, useAssistantDockWidth as Tc, useAssistantOverlayOrNull as Ec, useAssistantQuotaExhausted as Dc } from "./shared/assistant/ui/AssistantOverlay.js";
135
- export { Ii as ADMIN_MODE_ACCESS_WAIT_MS, Zs as AIAssistantPanel, X as ASSISTANT_API_AUTH_STRATEGY, Qs as ASSISTANT_BOTTOM_CHROME_CLEARANCE, $s as ASSISTANT_DIALOG_SELECTOR, ec as ASSISTANT_DOCKED_DESKTOP_CLASS, tc as ASSISTANT_DOCK_WIDTH_PX, nc as ASSISTANT_DOCK_WIDTH_VAR, rc as ASSISTANT_FLOATING_DESKTOP_CLASS, Ei as ASSISTANT_I18N_COMPUTED_COPY, Di as ASSISTANT_I18N_LITERAL_COPY, Oi as ASSISTANT_I18N_MANIFEST, fr as ASSISTANT_LANGUAGES, B as ASSISTANT_MODE_FALLBACK_LABELS, V as ASSISTANT_MODE_IDS, as as ASSISTANT_MODE_META, co as ASSISTANT_OVERLAY_ATTR, ic as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, ac as ASSISTANT_OVERLAY_DESKTOP_QUERY, oc as ASSISTANT_OVERLAY_TOP_VAR, lo as ASSISTANT_PANEL_ATTR, sc as ASSISTANT_SHEET_BASE_CLASS, cc as ASSISTANT_SHEET_COMPACT_CLASS, lc as ASSISTANT_SHEET_EXPANDED_CLASS, uc as ASSISTANT_TOGGLE_SHORTCUT_LABEL, Br as ATTACHMENT_ACCEPT, Ci as ATTACHMENT_SOURCES, aa as AUTO_CARRY_OVER_MAX_CHARS, oa as AUTO_CARRY_OVER_MAX_CHARS_PER_MESSAGE, sa as AUTO_CARRY_OVER_MAX_MESSAGES, os as AUTO_MODE_OPTION_ID, ca as AUTO_READ_MODE, ds as AUTO_VOICE, la as AUTO_WRITE_MODE, Ys as AssistantApiCallsConsentDialog, yo as AssistantAttachmentButton, bo as AssistantAttachmentChips, Ya as AssistantAutoSpeakToggle, za as AssistantAvatar, Xs as AssistantChatArea, Gs as AssistantComposer, oo as AssistantConnectSourceItem, no as AssistantConnectSourceProvider, Os as AssistantConversationList, ks as AssistantEmptyState, Wo as AssistantEntityPreview, Ds as AssistantHeader, l as AssistantI18nProvider, Qa as AssistantLanguageMenu, rs as AssistantLanguageSelector, m as AssistantMarkdownImage, _ as AssistantMarkdownRenderer, Xa as AssistantMessageAttachments, Ms as AssistantMessageItem, Ns as AssistantMessageList, ss as AssistantModeSelector, Es as AssistantMoreMenu, v as AssistantNavigateProvider, Cc as AssistantOverlay, wc as AssistantOverlayProvider, Za as AssistantPendingWriteCard, ts as AssistantPreviewBridgeHost, ns as AssistantPreviewOverlay, xo as AssistantPreviewProvider, r as AssistantProductProvider, $a as AssistantReplyLanguageSelector, Le as AssistantRuntimeManager, Ni as AssistantSendRefusal, eo as AssistantSpeakButton, Ba as AssistantSpeechProvider, to as AssistantSpokenTurnsNotice, Uo as AssistantStepRail, Fa as AssistantToolActivity, As as AssistantTurnActivity, us as AssistantVoiceButton, ps as AssistantVoiceOrb, fs as AssistantVoiceSelector, Ps as AssistantVoiceSession, ms as AssistantVoiceSessionButton, Vr as AttachmentRejectedError, br as BOILERPLATE_PAGE_SHARE, Ze as BUILT_IN_MODE_CAPABILITIES, hs as CAPTION_SCROLL_ATTR, j as CHECK_AI_CREDITS, M as CREATE_SANDBOX, Hr as DEFAULT_INLINE_LIMITS, Gn as DEFAULT_SPEAKABLE_LABELS, pr as DEFAULT_SPEECH_RATE, at as DEFAULT_STREAM_BUDGET_MS, An as ENDPOINT_GRACE_MS, N as EXTEND_SANDBOX_TTL, is as FOLLOW_APP_LOCALE, P as GET_ACTIVE_SANDBOXES, F as GET_SANDBOX, Ct as HOSTED_DISABLE_MS, wt as HOSTED_TTS_MAX_CHARS, yt as HOSTED_TTS_TIER, bt as HOSTED_VOICES, zt as HOSTED_VOICE_RANK, Qo as HostedPreviewBridgeContext, Io as IDLE_ACTIVE_TAB, ea as IDLE_PLAYBACK, Do as IDLE_PREVIEW, Co as IDLE_PREVIEW_STATE, Tn as IDLE_ROTATION_CLOCK, ot as INCOMPLETE_TURN_NOTICES, jn as INITIAL_SESSION, Ur as INLINE_IMAGE_MAX_DIM, Wr as INLINE_IMAGE_QUALITY, Mn as INTERRUPT_MAX_MS, Nn as INTERRUPT_MIN_MS, Hi as LEGACY_WRITE_CONSENT_KEY, Qe as MAX_ASSISTANT_STREAM_BUDGET_MS, Gr as MAX_ATTACHMENTS, xr as MAX_BOILERPLATE_LINE_CHARS, Kr as MAX_CONFIGURABLE_INLINE_CHARS, Sr as MAX_EXTRACTED_CHARS, qr as MAX_FILE_BYTES, Jr as MAX_INLINE_CHARS_PER_FILE, Yr as MAX_INLINE_CHARS_TOTAL, se as MAX_INLINE_IMAGE_BASE64_BYTES, Xr as MAX_INLINE_IMAGE_BASE64_CHARS, Zr as MAX_INLINE_IMAGE_PARTS, Qr as MAX_INLINE_TURN_BODY_BYTES, Cr as MAX_PDF_PAGES_SCANNED, ce as MAX_REQUEST_BODY_BYTES, Kn as MAX_SPEAKABLE_CHARS, qn as MAX_SPOKEN_TABLE_ROWS, $r as MAX_TURN_BODY_BYTES, rr as MINI_CAPTION_BUDGET, wr as MIN_PAGE_TEXT_CHARS, Tr as MIN_TEXT_PAGE_SHARE, Oo as NO_OWNER, uo as NO_PANEL_OVERLAY, pn as PHRASE_ROTATE_MS, ar as POLL_FAST_MS, or as POLL_FAST_UNTIL_MS, sr as POLL_SLOW_MS, cr as POLL_STEADY_MS, lr as POLL_STEADY_UNTIL_MS, tr as PREVIEW_LANGUAGES, W as PRODUCT_ASSISTANT_MODE_ID_MAX_LENGTH, G as PRODUCT_ASSISTANT_MODE_ID_PATTERN, ei as PROMPT_ENVELOPE_RESERVE_BYTES, ti as PROVIDER_READABLE_FILE_MEDIA_TYPES, I as PROXY_SANDBOX_REQUEST, Ko as REDUCED_MOTION_ATTRIBUTE, qo as REDUCED_MOTION_QUERY, L as REPORT_AI_TOKEN_USAGE, le as REQUEST_TOO_LARGE_REFUSAL, Ka as SANDBOX_READY_TTL_MS, Pn as SILENCE_SUBMIT_MS, Tt as SPEAKING_RATE_MAX, Et as SPEAKING_RATE_MAX_STREAMING, Dt as SPEAKING_RATE_MAX_SYNC, Ot as SPEAKING_RATE_MIN, Jn as SPEECH_CHUNK_CHARS, Yn as SPEECH_CHUNK_CJK_CHARS, Bt as SPEECH_LANG, Xi as SPOKEN_LABEL_LANGUAGES, mn as STAGE_COPY, e as START_RETRY_COOLDOWN_MS, R as STOP_ASSISTANT_SANDBOX, st as STREAM_BUDGET_MS, Ui as TAKE_ACTION_ENGLISH, hn as THINKING_PHRASES, ni as TURN_BODY_HEADROOM_BYTES, Xe as TURN_OUTCOME_COPY, js as TurnActivityLine, $e as UNAVAILABLE_MODE_REFUSAL, et as UNDECLARED_MODE_CAPABILITIES, Vt as VOICE_LIST_TIMEOUT_MS, bn as VOICE_MUTED_LABEL, xn as VOICE_THINKING_LABEL, gs as VoiceCaption, _s as VoiceConversationView, xs as VoiceMiniController, Ss as VoiceStage, ys as VoiceStatusLine, bs as VoiceStatusText, Cs as VoiceTranscriptDrawer, vs as VoiceWaveform, z as WAIT_FOR_SANDBOX_RUNNING, ue as abortAssistantTurn, dc as aboveAssistantBottomChrome, fo as activePanelOverlay, tt as adminOnlyModeSendRefusal, Li as adminOnlyModeSendRefusalAfterAccess, En as advanceRotationClock, zs as aiCreditsUpdatedEventName, ko as applyPreviewEvent, de as approvePendingWrite, ki as assistantI18nSeedCopy, H as assistantModeFallbackLabel, Ai as assistantModeI18nCopy, cs as assistantModeMeta, fc as assistantOverlayClassName, pc as assistantOverlayEscapeAction, mc as assistantOverlayKeys, po as assistantPanelOwnsEscape, hc as assistantQuotaKindOf, y as assistantRoutePath, u as assistantTranslationKey, b as assistantUrlTransform, ua as autoCarryOverFor, da as autoSuggestions, wi as availableAttachmentSources, kt as base64ToBytes, x as browserShouldHandle, vt as browserSpeechEngine, Pa as buildAssistantProgress, fe as buildAssistantSandboxEnv, ri as buildAttachmentPromptBlock, fa as buildAutoCarryOver, Vi as buildBoundedAttachmentTurn, Hn as buildContinuedFromVoiceNote, Re as buildProgress, pe as buildPromptGatewayRequest, ii as buildPromptParts, me as buildPromptRequestBody, ai as buildPromptWithAttachments, At as buildRequest, k as buildSandboxContextInput, Un as buildVoiceTranscriptMarkdown, K as builtInModeExtendedBy, dt as chatTurns, he as checkAssistantAiCredits, Xn as chunkForSpeech, S as classifyAssistantHref, pa as classifyAssistantIntent, oi as classifyAttachment, jt as classifyHttpFailure, w as classifyQuotaError, Pi as classifyTurnFailure, Er as columnLetterToIndex, Sn as composeVoiceStatus, en as configureSpeechEngine, so as connectSourceActivation, ro as connectSourceHrefRenders, Zn as containsCjk, p as copyToClipboard, si as countInlineImageCandidates, ci as countInlinedImageParts, La as countSpokenTurns, Ri as createAdminModeAccessGate, gc as createAssistantNavigate, Ao as createAssistantPreviewSurface, ge as createAssistantSandbox, _e as createAssistantSession, Lt as createHostedTtsEngine, qa as createReadinessTracker, $t as createRoutingSpeechEngine, Po as createRunIdentityCache, Je as createSandboxAssistantTransport, tn as createSpeechEngines, jo as currentPreviewOwner, q as declareAssistantMode, Mt as decodeAudioResponse, Dr as decodeXmlEntities, ji as describePermissionError, T as describeQuotaError, li as detectDocumentFormat, Qi as detectScriptLocale, Ti as deviceHasCamera, Nt as disableDurationMs, Bs as dispatchAssistantQuotaExhausted, Or as docxXmlToText, ve as downloadAssistantArtifact, ws as downloadFile, ka as elapsedSince, ma as escalationToUndo, mo as escapeDismisses, ui as estimateTurnBodyBytes, A as executeSandboxGraphQL, Ts as exportConversation, ye as extendAssistantSandboxTTL, E as extensionObjectsIn, Us as extractDocumentText, mr as findAssistantLanguage, nt as findAssistantModeConfig, be as findExistingSandbox, vr as findPendingWrite, kr as fitPdfPages, ho as focusIsInsidePanel, di as formatBytes, Ar as formatPageRanges, xe as forwardsUserTokensToSandbox, Ua as getActorId, Se as getAssistantArtifacts, Oa as getAssistantDisplayContent, ze as getAssistantMedia, Ce as getAssistantMessages, we as getAssistantSession, Te as getAssistantStreamAccess, Be as getAssistantText, fi as getAttachmentSendBlocker, re as getCapability, pi as getExtension, Z as getImageForMode, Q as getImageTagForMode, Wa as getOrganizationId, Ve as getRawMessageCreatedAt, $ as getResourcesForMode, ee as getSandboxImageRegistry, mi as getSendableAttachments, nn as getSpeechEngine, He as getToolProgress, Ga as getWorkspaceId, ft as groupBySession, pt as groupConsecutiveBySession, hi as hasAttachmentWorkInFlight, io as hasConnectSource, xt as hostedLocaleFor, St as hostedSupportsLanguage, h as imageHostLabel, ct as incompleteTurnNotice, J as isAssistantModeId, _c as isAssistantToggleShortcut, ha as isAutoRoutingOffered, wo as isBlankProse, U as isBuiltInAssistantMode, Fn as isCapturing, In as isEcho, Ht as isHostedVoice, wa as isLegacyFiller, Ta as isLegacyStopped, jr as isMostlyImagePages, Ls as isMultimodalBodyRejection, Ks as isProdRuntime, Y as isProductAssistantModeId, gi as isProviderReadableFilePart, D as isQuotaExhaustedError, Ue as isReapedSandboxConnectionError, Ja as isRecentlyVerified, We as isRecoverable, Rs as isRecoverableAssistantError, g as isRemoteImageSrc, To as isRunningStatus, ta as isSpeakingMessage, Ut as isSpeechBlocked, Ea as isStageCopy, Ln as isSubmittable, xa as isTurnInFlight, ie as isUnknownFieldError, mt as isVoiceTurn, Wi as isWriteModeAcknowledged, Mr as joinSheets, Wt as languageDisplayName, _i as largestInlineCharsPerFile, Ge as mapSessionToHistory, ae as markSupported, oe as markUnsupported, Ke as mergeMessagesById, va as mergePersistedAssistantState, sn as micIsInterrupt, Ee as modeRequiresConfirmWrites, Aa as msUntilNextPhrase, Lo as nextActiveTab, vc as nextAssistantOpenState, ls as nextModeIndex, go as nextPanelOverlays, Eo as nextPreviewEvents, Gt as normalizeLangTag, Vs as notifyAiCreditsUpdated, Rn as orbMode, Nr as pageMarker, $o as panelOwnedPreviewBridge, _o as panelOwnsEscape, yr as parseConfirmationRefusal, vi as parseDataUrl, Pr as parseSharedStrings, Ia as parseToolActivity, Fr as parseWorkbookSheets, Ir as pdfTextItemsToPage, Mi as permissionRefusalMessage, Ro as pinActiveTab, Sa as planAbandonedTurn, zn as planReplyConsumption, Ca as planTurnAbort, ur as pollDelayMs, Kt as primaryLanguageSubtag, De as promptGatewayRequestBytes, yc as publishedAssistantDockWidth, na as publishedChunks, O as quotaExhaustedEventName, bc as readAssistantOverlayFlag, Jo as readReducedMotion, rn as readSpeechEngineConfig, Oe as releaseSupersededAssistantSandboxes, gr as replyFollowsInput, ke as reportAssistantAiTokenUsage, xc as requestedAssistantOpenState, ra as requiresCancel, an as resetSpeechEngine, ya as resolveActiveModeSandbox, yi as resolveAssistantInlineLimits, hr as resolveAssistantLanguage, rt as resolveAssistantModeCapabilities, zi as resolveAssistantSendModeAfterAccess, ga as resolveAutoRoute, _r as resolveLanguagePair, i as resolveModeConfig, te as resolveSandboxAssistantMode, $i as resolveSpeechLocale, Gi as restoreAcknowledgedWriteModes, _a as restoreAutoRouting, Rt as retryDelayMs, Dn as rotationElapsedMs, Mo as runBelongsTo, Fo as runIdentities, No as sameOwner, ne as sandboxBaseModeFor, qe as sanitize, Ae as selectExistingAssistantSandbox, je as selectSupersededAssistantSandboxes, qt as selectVoiceForLocale, Me as sendAssistantPromptAsync, Ne as sendHeartbeat, Lr as sheetXmlToRows, Pt as shouldDisableEngine, zo as shouldPinOnMove, Bo as shouldPinOnSelect, ir as showPreviousChunk, cn as showsAssistantCaption, ln as showsUserCaption, Ft as speakableChunks, Qn as speakableEmail, Jt as speechGate, Zi as speechLabelsFor, Yt as speechLangForLocale, ia as speechPlaybackReducer, It as splitForVendor, $n as splitTableRow, Bn as spokenSoFar, Ra as spokenTurnText, gn as stageText, t as startIsCoolingDown, ja as startPhraseTicker, On as startRotationTicker, _n as statusStageCopy, Vo as stepsFromToolActivity, Pe as stopReapedAssistantSandbox, lt as streamBudgetMs, Da as stripLegacyFillerPrefix, Yo as subscribeReducedMotion, on as subscribeSpeechEngine, Rr as summarisePageText, kn as syncRotationClock, Ho as tabForArrowKey, vn as thinkingPhrase, yn as thinkingPhraseEntry, dr as toCaptionText, bi as toMessageAttachment, er as toSpeakableText, xi as truncateForInline, zr as truncatePagesForInline, Ma as turnActivityCopy, Na as turnActivityStage, Fi as turnOutcomeCopy, it as unofferedModeSendRefusal, Bi as unofferedModeSendRefusalAfterAccess, Fs as useAssistantApiAccess, Ws as useAssistantAttachments, ao as useAssistantConnectSource, Tc as useAssistantDockWidth, qs as useAssistantHeartbeat, d as useAssistantI18nNamespace, Js as useAssistantKeyboardShortcuts, C as useAssistantNavigate, Ec as useAssistantOverlayOrNull, a as useAssistantPageLabel, So as useAssistantPreview, Zo as useAssistantPreviewBridge, o as useAssistantProduct, s as useAssistantProductOrNull, Dc as useAssistantQuotaExhausted, Va as useAssistantSpeech, c as useAssistantStorageFolders, ba as useAssistantStore, f as useAssistantTr, Is as useConversationTurns, vo as useDropdownEscape, es as useHostedAssistantPreviewBridge, Go as useOverlayFocus, Xo as usePrefersReducedMotion, Ye as useSandboxAssistantTransport, n as useVoiceInput, Ha as useVoiceSession, Hs as useWorkspaceWriteAccess, Si as validateFile, Xt as voiceAvailability, ht as voiceMarker, nr as voicePreviewText, Zt as voiceQualityRank, gt as voiceSessionIdOf, Vn as voiceSessionReducer, un as voiceStageState, Cn as voiceStatusParts, wn as voiceStatusSuffix, Wn as voiceTranscriptFilename, _t as voiceTurnsOnly, Qt as voicesForLocale, Fe as waitForAssistantServiceReady, Ie as waitForSandboxRunning, dn as waveformIsActive, fn as waveformIsSettled, ut as withIncompleteTurnNotice, Ki as withWriteModeAcknowledged, Sc as writeAssistantOverlayFlag, qi as writeModeConsentCopy, Ji as writeModeSendRefusal, Yi as writeModeSendRefusalReason };
63
+ import { buildAssistantProgress as Pa, snapshotReplyFloor as Fa } from "./shared/assistant/turnProgress.js";
64
+ import { AssistantToolActivity as Ia, parseToolActivity as La } from "./shared/assistant/ui/AssistantToolActivity.js";
65
+ import { countSpokenTurns as Ra, spokenTurnText as za } from "./shared/assistant/spokenTurns.js";
66
+ import { AssistantAvatar as Ba } from "./shared/assistant/ui/AssistantAvatar.js";
67
+ import { AssistantSpeechProvider as Va, useAssistantSpeech as Ha } from "./shared/assistant/ui/AssistantSpeechProvider.js";
68
+ import { useVoiceSession as Ua } from "./shared/assistant/ui/useVoiceSession.js";
69
+ import { getActorId as Wa, getOrganizationId as Ga, getWorkspaceId as Ka } from "./shared/assistant/context.js";
70
+ import { SANDBOX_READY_TTL_MS as qa, createReadinessTracker as Ja, isRecentlyVerified as Ya } from "./shared/assistant/sandboxReadiness.js";
71
+ import { AssistantAutoSpeakToggle as Xa } from "./shared/assistant/ui/AssistantAutoSpeakToggle.js";
72
+ import { AssistantMessageAttachments as Za } from "./shared/assistant/ui/AssistantMessageAttachments.js";
73
+ import { AssistantPendingWriteCard as Qa } from "./shared/assistant/ui/AssistantPendingWriteCard.js";
74
+ import { AssistantLanguageMenu as $a } from "./shared/assistant/ui/AssistantLanguageMenu.js";
75
+ import { AssistantReplyLanguageSelector as eo } from "./shared/assistant/ui/AssistantReplyLanguageSelector.js";
76
+ import { AssistantSpeakButton as to } from "./shared/assistant/ui/AssistantSpeakButton.js";
77
+ import { AssistantSpokenTurnsNotice as no } from "./shared/assistant/ui/AssistantSpokenTurnsNotice.js";
78
+ import { AssistantConnectSourceProvider as ro, connectSourceHrefRenders as io, hasConnectSource as ao, useAssistantConnectSource as oo } from "./shared/assistant/ui/composer/connectSource.js";
79
+ import { AssistantConnectSourceItem as so, connectSourceActivation as co } from "./shared/assistant/ui/composer/AssistantConnectSourceItem.js";
80
+ import { ASSISTANT_OVERLAY_ATTR as lo, ASSISTANT_PANEL_ATTR as uo, NO_PANEL_OVERLAY as fo, activePanelOverlay as po, assistantPanelOwnsEscape as mo, escapeDismisses as ho, focusIsInsidePanel as go, nextPanelOverlays as _o, panelOwnsEscape as vo } from "./shared/assistant/ui/panelOverlays.js";
81
+ import { useDropdownEscape as yo } from "./shared/assistant/ui/useDropdownEscape.js";
82
+ import { AssistantAttachmentButton as bo } from "./shared/assistant/ui/composer/AssistantAttachmentButton.js";
83
+ import { AssistantAttachmentChips as xo } from "./shared/assistant/ui/composer/AssistantAttachmentChips.js";
84
+ import { AssistantPreviewProvider as So, useAssistantPreview as Co } from "./shared/assistant/preview/context.js";
85
+ import { IDLE_PREVIEW_STATE as wo, isBlankProse as To, isRunningStatus as Eo, nextPreviewEvents as Do } from "./shared/assistant/preview/previewTransitions.js";
86
+ import { IDLE_PREVIEW as Oo, NO_OWNER as ko, applyPreviewEvent as Ao, createAssistantPreviewSurface as jo, currentPreviewOwner as Mo, runBelongsTo as No, sameOwner as Po } from "./shared/assistant/preview/surfaceState.js";
87
+ import { createRunIdentityCache as Fo, runIdentities as Io } from "./shared/assistant/preview/runIdentity.js";
88
+ import { IDLE_ACTIVE_TAB as Lo, nextActiveTab as Ro, pinActiveTab as zo, shouldPinOnMove as Bo, shouldPinOnSelect as Vo, stepsFromToolActivity as Ho, tabForArrowKey as Uo } from "./shared/assistant/preview/entity/entityPreviewState.js";
89
+ import { AssistantStepRail as Wo } from "./shared/assistant/preview/entity/AssistantStepRail.js";
90
+ import { AssistantEntityPreview as Go } from "./shared/assistant/preview/entity/AssistantEntityPreview.js";
91
+ import { useOverlayFocus as Ko } from "./shared/assistant/ui/useOverlayFocus.js";
92
+ import { REDUCED_MOTION_ATTRIBUTE as qo, REDUCED_MOTION_QUERY as Jo, readReducedMotion as Yo, subscribeReducedMotion as Xo, usePrefersReducedMotion as Zo } from "./shared/assistant/ui/usePrefersReducedMotion.js";
93
+ import { useAssistantPreviewBridge as Qo } from "./shared/assistant/preview/useAssistantPreviewBridge.js";
94
+ import { HostedPreviewBridgeContext as $o, panelOwnedPreviewBridge as es, useHostedAssistantPreviewBridge as ts } from "./shared/assistant/preview/bridgeHostContext.js";
95
+ import { AssistantPreviewBridgeHost as ns } from "./shared/assistant/preview/bridgeHost.js";
96
+ import { AssistantPreviewOverlay as rs } from "./shared/assistant/preview/AssistantPreviewOverlay.js";
97
+ import { AssistantLanguageSelector as is, FOLLOW_APP_LOCALE as as } from "./shared/assistant/ui/composer/AssistantLanguageSelector.js";
98
+ import { ASSISTANT_MODE_META as os, AUTO_MODE_OPTION_ID as ss, AssistantModeSelector as cs, assistantModeMeta as ls, nextModeIndex as us } from "./shared/assistant/ui/composer/AssistantModeSelector.js";
99
+ import { AssistantVoiceButton as ds } from "./shared/assistant/ui/composer/AssistantVoiceButton.js";
100
+ import { AUTO_VOICE as fs, AssistantVoiceSelector as ps } from "./shared/assistant/ui/composer/AssistantVoiceSelector.js";
101
+ import { AssistantVoiceOrb as ms } from "./shared/assistant/ui/voice/AssistantVoiceOrb.js";
102
+ import { AssistantVoiceSessionButton as hs } from "./shared/assistant/ui/voice/AssistantVoiceSessionButton.js";
103
+ import { CAPTION_SCROLL_ATTR as gs, VoiceCaption as _s } from "./shared/assistant/ui/voice/VoiceCaption.js";
104
+ import { VoiceConversationView as vs } from "./shared/assistant/ui/voice/VoiceConversationView.js";
105
+ import { VoiceWaveform as ys } from "./shared/assistant/ui/voice/VoiceWaveform.js";
106
+ import { VoiceStatusLine as bs, VoiceStatusText as xs } from "./shared/assistant/ui/voice/VoiceStatusText.js";
107
+ import { VoiceMiniController as Ss } from "./shared/assistant/ui/voice/VoiceMiniController.js";
108
+ import { VoiceStage as Cs } from "./shared/assistant/ui/voice/VoiceStage.js";
109
+ import { VoiceTranscriptDrawer as ws } from "./shared/assistant/ui/voice/VoiceTranscriptDrawer.js";
110
+ import { downloadFile as Ts, exportConversation as Es } from "./shared/assistant/exportConversation.js";
111
+ import { AssistantMoreMenu as Ds } from "./shared/assistant/ui/AssistantMoreMenu.js";
112
+ import { AssistantHeader as Os } from "./shared/assistant/ui/AssistantHeader.js";
113
+ import { AssistantConversationList as ks } from "./shared/assistant/ui/AssistantConversationList.js";
114
+ import { AssistantEmptyState as As } from "./shared/assistant/ui/AssistantEmptyState.js";
115
+ import { AssistantTurnActivity as js, TurnActivityLine as Ms } from "./shared/assistant/ui/AssistantTurnActivity.js";
116
+ import { AssistantMessageItem as Ns } from "./shared/assistant/ui/AssistantMessageItem.js";
117
+ import { AssistantMessageList as Ps } from "./shared/assistant/ui/AssistantMessageList.js";
118
+ import { AssistantVoiceSession as Fs } from "./shared/assistant/ui/voice/AssistantVoiceSession.js";
119
+ import { useAssistantApiAccess as Is } from "./shared/assistant/useAssistantApiAccess.js";
120
+ import { useConversationTurns as Ls } from "./shared/assistant/useConversationTurns.js";
121
+ import { isMultimodalBodyRejection as Rs, isRecoverableAssistantError as zs } from "./shared/assistant/transportErrors.js";
122
+ import { aiCreditsUpdatedEventName as Bs, dispatchAssistantQuotaExhausted as Vs, notifyAiCreditsUpdated as Hs } from "./shared/assistant/aiCredits.js";
123
+ import { useWorkspaceWriteAccess as Us } from "./shared/assistant/useWorkspaceWriteAccess.js";
124
+ import { extractDocumentText as Ws } from "./shared/assistant/documentExtract.js";
125
+ import { useAssistantAttachments as Gs } from "./shared/assistant/useAssistantAttachments.js";
126
+ import { AssistantComposer as Ks } from "./shared/assistant/ui/composer/AssistantComposer.js";
127
+ import { isProdRuntime as qs } from "./shared/assistant/env.js";
128
+ import { useAssistantHeartbeat as Js } from "./shared/assistant/useAssistantHeartbeat.js";
129
+ import { useAssistantKeyboardShortcuts as Ys } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
130
+ import { AssistantApiCallsConsentDialog as Xs } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
131
+ import { AssistantChatArea as Zs } from "./shared/assistant/ui/AssistantChatArea.js";
132
+ import { AIAssistantPanel as Qs } from "./shared/assistant/ui/AIAssistantPanel.js";
133
+ import { ASSISTANT_BOTTOM_CHROME_CLEARANCE as $s, ASSISTANT_DIALOG_SELECTOR as ec, ASSISTANT_DOCKED_DESKTOP_CLASS as tc, ASSISTANT_DOCK_WIDTH_PX as nc, ASSISTANT_DOCK_WIDTH_VAR as rc, ASSISTANT_FLOATING_DESKTOP_CLASS as ic, ASSISTANT_OVERLAY_DEFAULT_TOP_PX as ac, ASSISTANT_OVERLAY_DESKTOP_QUERY as oc, ASSISTANT_OVERLAY_TOP_VAR as sc, ASSISTANT_SHEET_BASE_CLASS as cc, ASSISTANT_SHEET_COMPACT_CLASS as lc, ASSISTANT_SHEET_EXPANDED_CLASS as uc, ASSISTANT_TOGGLE_SHORTCUT_LABEL as dc, aboveAssistantBottomChrome as fc, assistantOverlayClassName as pc, assistantOverlayEscapeAction as mc, assistantOverlayKeys as hc, assistantQuotaKindOf as gc, createAssistantNavigate as _c, isAssistantToggleShortcut as vc, nextAssistantOpenState as yc, publishedAssistantDockWidth as bc, readAssistantOverlayFlag as xc, requestedAssistantOpenState as Sc, writeAssistantOverlayFlag as Cc } from "./shared/assistant/ui/assistantOverlayState.js";
134
+ import { AssistantOverlay as wc, AssistantOverlayProvider as Tc, useAssistantDockWidth as Ec, useAssistantOverlayOrNull as Dc, useAssistantQuotaExhausted as Oc } from "./shared/assistant/ui/AssistantOverlay.js";
135
+ export { Ii as ADMIN_MODE_ACCESS_WAIT_MS, Qs as AIAssistantPanel, X as ASSISTANT_API_AUTH_STRATEGY, $s as ASSISTANT_BOTTOM_CHROME_CLEARANCE, ec as ASSISTANT_DIALOG_SELECTOR, tc as ASSISTANT_DOCKED_DESKTOP_CLASS, nc as ASSISTANT_DOCK_WIDTH_PX, rc as ASSISTANT_DOCK_WIDTH_VAR, ic as ASSISTANT_FLOATING_DESKTOP_CLASS, Ei as ASSISTANT_I18N_COMPUTED_COPY, Di as ASSISTANT_I18N_LITERAL_COPY, Oi as ASSISTANT_I18N_MANIFEST, fr as ASSISTANT_LANGUAGES, B as ASSISTANT_MODE_FALLBACK_LABELS, V as ASSISTANT_MODE_IDS, os as ASSISTANT_MODE_META, lo as ASSISTANT_OVERLAY_ATTR, ac as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, oc as ASSISTANT_OVERLAY_DESKTOP_QUERY, sc as ASSISTANT_OVERLAY_TOP_VAR, uo as ASSISTANT_PANEL_ATTR, cc as ASSISTANT_SHEET_BASE_CLASS, lc as ASSISTANT_SHEET_COMPACT_CLASS, uc as ASSISTANT_SHEET_EXPANDED_CLASS, dc as ASSISTANT_TOGGLE_SHORTCUT_LABEL, Br as ATTACHMENT_ACCEPT, Ci as ATTACHMENT_SOURCES, aa as AUTO_CARRY_OVER_MAX_CHARS, oa as AUTO_CARRY_OVER_MAX_CHARS_PER_MESSAGE, sa as AUTO_CARRY_OVER_MAX_MESSAGES, ss as AUTO_MODE_OPTION_ID, ca as AUTO_READ_MODE, fs as AUTO_VOICE, la as AUTO_WRITE_MODE, Xs as AssistantApiCallsConsentDialog, bo as AssistantAttachmentButton, xo as AssistantAttachmentChips, Xa as AssistantAutoSpeakToggle, Ba as AssistantAvatar, Zs as AssistantChatArea, Ks as AssistantComposer, so as AssistantConnectSourceItem, ro as AssistantConnectSourceProvider, ks as AssistantConversationList, As as AssistantEmptyState, Go as AssistantEntityPreview, Os as AssistantHeader, l as AssistantI18nProvider, $a as AssistantLanguageMenu, is as AssistantLanguageSelector, m as AssistantMarkdownImage, _ as AssistantMarkdownRenderer, Za as AssistantMessageAttachments, Ns as AssistantMessageItem, Ps as AssistantMessageList, cs as AssistantModeSelector, Ds as AssistantMoreMenu, v as AssistantNavigateProvider, wc as AssistantOverlay, Tc as AssistantOverlayProvider, Qa as AssistantPendingWriteCard, ns as AssistantPreviewBridgeHost, rs as AssistantPreviewOverlay, So as AssistantPreviewProvider, r as AssistantProductProvider, eo as AssistantReplyLanguageSelector, Le as AssistantRuntimeManager, Ni as AssistantSendRefusal, to as AssistantSpeakButton, Va as AssistantSpeechProvider, no as AssistantSpokenTurnsNotice, Wo as AssistantStepRail, Ia as AssistantToolActivity, js as AssistantTurnActivity, ds as AssistantVoiceButton, ms as AssistantVoiceOrb, ps as AssistantVoiceSelector, Fs as AssistantVoiceSession, hs as AssistantVoiceSessionButton, Vr as AttachmentRejectedError, br as BOILERPLATE_PAGE_SHARE, Ze as BUILT_IN_MODE_CAPABILITIES, gs as CAPTION_SCROLL_ATTR, j as CHECK_AI_CREDITS, M as CREATE_SANDBOX, Hr as DEFAULT_INLINE_LIMITS, Gn as DEFAULT_SPEAKABLE_LABELS, pr as DEFAULT_SPEECH_RATE, at as DEFAULT_STREAM_BUDGET_MS, An as ENDPOINT_GRACE_MS, N as EXTEND_SANDBOX_TTL, as as FOLLOW_APP_LOCALE, P as GET_ACTIVE_SANDBOXES, F as GET_SANDBOX, Ct as HOSTED_DISABLE_MS, wt as HOSTED_TTS_MAX_CHARS, yt as HOSTED_TTS_TIER, bt as HOSTED_VOICES, zt as HOSTED_VOICE_RANK, $o as HostedPreviewBridgeContext, Lo as IDLE_ACTIVE_TAB, ea as IDLE_PLAYBACK, Oo as IDLE_PREVIEW, wo as IDLE_PREVIEW_STATE, Tn as IDLE_ROTATION_CLOCK, ot as INCOMPLETE_TURN_NOTICES, jn as INITIAL_SESSION, Ur as INLINE_IMAGE_MAX_DIM, Wr as INLINE_IMAGE_QUALITY, Mn as INTERRUPT_MAX_MS, Nn as INTERRUPT_MIN_MS, Hi as LEGACY_WRITE_CONSENT_KEY, Qe as MAX_ASSISTANT_STREAM_BUDGET_MS, Gr as MAX_ATTACHMENTS, xr as MAX_BOILERPLATE_LINE_CHARS, Kr as MAX_CONFIGURABLE_INLINE_CHARS, Sr as MAX_EXTRACTED_CHARS, qr as MAX_FILE_BYTES, Jr as MAX_INLINE_CHARS_PER_FILE, Yr as MAX_INLINE_CHARS_TOTAL, se as MAX_INLINE_IMAGE_BASE64_BYTES, Xr as MAX_INLINE_IMAGE_BASE64_CHARS, Zr as MAX_INLINE_IMAGE_PARTS, Qr as MAX_INLINE_TURN_BODY_BYTES, Cr as MAX_PDF_PAGES_SCANNED, ce as MAX_REQUEST_BODY_BYTES, Kn as MAX_SPEAKABLE_CHARS, qn as MAX_SPOKEN_TABLE_ROWS, $r as MAX_TURN_BODY_BYTES, rr as MINI_CAPTION_BUDGET, wr as MIN_PAGE_TEXT_CHARS, Tr as MIN_TEXT_PAGE_SHARE, ko as NO_OWNER, fo as NO_PANEL_OVERLAY, pn as PHRASE_ROTATE_MS, ar as POLL_FAST_MS, or as POLL_FAST_UNTIL_MS, sr as POLL_SLOW_MS, cr as POLL_STEADY_MS, lr as POLL_STEADY_UNTIL_MS, tr as PREVIEW_LANGUAGES, W as PRODUCT_ASSISTANT_MODE_ID_MAX_LENGTH, G as PRODUCT_ASSISTANT_MODE_ID_PATTERN, ei as PROMPT_ENVELOPE_RESERVE_BYTES, ti as PROVIDER_READABLE_FILE_MEDIA_TYPES, I as PROXY_SANDBOX_REQUEST, qo as REDUCED_MOTION_ATTRIBUTE, Jo as REDUCED_MOTION_QUERY, L as REPORT_AI_TOKEN_USAGE, le as REQUEST_TOO_LARGE_REFUSAL, qa as SANDBOX_READY_TTL_MS, Pn as SILENCE_SUBMIT_MS, Tt as SPEAKING_RATE_MAX, Et as SPEAKING_RATE_MAX_STREAMING, Dt as SPEAKING_RATE_MAX_SYNC, Ot as SPEAKING_RATE_MIN, Jn as SPEECH_CHUNK_CHARS, Yn as SPEECH_CHUNK_CJK_CHARS, Bt as SPEECH_LANG, Xi as SPOKEN_LABEL_LANGUAGES, mn as STAGE_COPY, e as START_RETRY_COOLDOWN_MS, R as STOP_ASSISTANT_SANDBOX, st as STREAM_BUDGET_MS, Ui as TAKE_ACTION_ENGLISH, hn as THINKING_PHRASES, ni as TURN_BODY_HEADROOM_BYTES, Xe as TURN_OUTCOME_COPY, Ms as TurnActivityLine, $e as UNAVAILABLE_MODE_REFUSAL, et as UNDECLARED_MODE_CAPABILITIES, Vt as VOICE_LIST_TIMEOUT_MS, bn as VOICE_MUTED_LABEL, xn as VOICE_THINKING_LABEL, _s as VoiceCaption, vs as VoiceConversationView, Ss as VoiceMiniController, Cs as VoiceStage, bs as VoiceStatusLine, xs as VoiceStatusText, ws as VoiceTranscriptDrawer, ys as VoiceWaveform, z as WAIT_FOR_SANDBOX_RUNNING, ue as abortAssistantTurn, fc as aboveAssistantBottomChrome, po as activePanelOverlay, tt as adminOnlyModeSendRefusal, Li as adminOnlyModeSendRefusalAfterAccess, En as advanceRotationClock, Bs as aiCreditsUpdatedEventName, Ao as applyPreviewEvent, de as approvePendingWrite, ki as assistantI18nSeedCopy, H as assistantModeFallbackLabel, Ai as assistantModeI18nCopy, ls as assistantModeMeta, pc as assistantOverlayClassName, mc as assistantOverlayEscapeAction, hc as assistantOverlayKeys, mo as assistantPanelOwnsEscape, gc as assistantQuotaKindOf, y as assistantRoutePath, u as assistantTranslationKey, b as assistantUrlTransform, ua as autoCarryOverFor, da as autoSuggestions, wi as availableAttachmentSources, kt as base64ToBytes, x as browserShouldHandle, vt as browserSpeechEngine, Pa as buildAssistantProgress, fe as buildAssistantSandboxEnv, ri as buildAttachmentPromptBlock, fa as buildAutoCarryOver, Vi as buildBoundedAttachmentTurn, Hn as buildContinuedFromVoiceNote, Re as buildProgress, pe as buildPromptGatewayRequest, ii as buildPromptParts, me as buildPromptRequestBody, ai as buildPromptWithAttachments, At as buildRequest, k as buildSandboxContextInput, Un as buildVoiceTranscriptMarkdown, K as builtInModeExtendedBy, dt as chatTurns, he as checkAssistantAiCredits, Xn as chunkForSpeech, S as classifyAssistantHref, pa as classifyAssistantIntent, oi as classifyAttachment, jt as classifyHttpFailure, w as classifyQuotaError, Pi as classifyTurnFailure, Er as columnLetterToIndex, Sn as composeVoiceStatus, en as configureSpeechEngine, co as connectSourceActivation, io as connectSourceHrefRenders, Zn as containsCjk, p as copyToClipboard, si as countInlineImageCandidates, ci as countInlinedImageParts, Ra as countSpokenTurns, Ri as createAdminModeAccessGate, _c as createAssistantNavigate, jo as createAssistantPreviewSurface, ge as createAssistantSandbox, _e as createAssistantSession, Lt as createHostedTtsEngine, Ja as createReadinessTracker, $t as createRoutingSpeechEngine, Fo as createRunIdentityCache, Je as createSandboxAssistantTransport, tn as createSpeechEngines, Mo as currentPreviewOwner, q as declareAssistantMode, Mt as decodeAudioResponse, Dr as decodeXmlEntities, ji as describePermissionError, T as describeQuotaError, li as detectDocumentFormat, Qi as detectScriptLocale, Ti as deviceHasCamera, Nt as disableDurationMs, Vs as dispatchAssistantQuotaExhausted, Or as docxXmlToText, ve as downloadAssistantArtifact, Ts as downloadFile, ka as elapsedSince, ma as escalationToUndo, ho as escapeDismisses, ui as estimateTurnBodyBytes, A as executeSandboxGraphQL, Es as exportConversation, ye as extendAssistantSandboxTTL, E as extensionObjectsIn, Ws as extractDocumentText, mr as findAssistantLanguage, nt as findAssistantModeConfig, be as findExistingSandbox, vr as findPendingWrite, kr as fitPdfPages, go as focusIsInsidePanel, di as formatBytes, Ar as formatPageRanges, xe as forwardsUserTokensToSandbox, Wa as getActorId, Se as getAssistantArtifacts, Oa as getAssistantDisplayContent, ze as getAssistantMedia, Ce as getAssistantMessages, we as getAssistantSession, Te as getAssistantStreamAccess, Be as getAssistantText, fi as getAttachmentSendBlocker, re as getCapability, pi as getExtension, Z as getImageForMode, Q as getImageTagForMode, Ga as getOrganizationId, Ve as getRawMessageCreatedAt, $ as getResourcesForMode, ee as getSandboxImageRegistry, mi as getSendableAttachments, nn as getSpeechEngine, He as getToolProgress, Ka as getWorkspaceId, ft as groupBySession, pt as groupConsecutiveBySession, hi as hasAttachmentWorkInFlight, ao as hasConnectSource, xt as hostedLocaleFor, St as hostedSupportsLanguage, h as imageHostLabel, ct as incompleteTurnNotice, J as isAssistantModeId, vc as isAssistantToggleShortcut, ha as isAutoRoutingOffered, To as isBlankProse, U as isBuiltInAssistantMode, Fn as isCapturing, In as isEcho, Ht as isHostedVoice, wa as isLegacyFiller, Ta as isLegacyStopped, jr as isMostlyImagePages, Rs as isMultimodalBodyRejection, qs as isProdRuntime, Y as isProductAssistantModeId, gi as isProviderReadableFilePart, D as isQuotaExhaustedError, Ue as isReapedSandboxConnectionError, Ya as isRecentlyVerified, We as isRecoverable, zs as isRecoverableAssistantError, g as isRemoteImageSrc, Eo as isRunningStatus, ta as isSpeakingMessage, Ut as isSpeechBlocked, Ea as isStageCopy, Ln as isSubmittable, xa as isTurnInFlight, ie as isUnknownFieldError, mt as isVoiceTurn, Wi as isWriteModeAcknowledged, Mr as joinSheets, Wt as languageDisplayName, _i as largestInlineCharsPerFile, Ge as mapSessionToHistory, ae as markSupported, oe as markUnsupported, Ke as mergeMessagesById, va as mergePersistedAssistantState, sn as micIsInterrupt, Ee as modeRequiresConfirmWrites, Aa as msUntilNextPhrase, Ro as nextActiveTab, yc as nextAssistantOpenState, us as nextModeIndex, _o as nextPanelOverlays, Do as nextPreviewEvents, Gt as normalizeLangTag, Hs as notifyAiCreditsUpdated, Rn as orbMode, Nr as pageMarker, es as panelOwnedPreviewBridge, vo as panelOwnsEscape, yr as parseConfirmationRefusal, vi as parseDataUrl, Pr as parseSharedStrings, La as parseToolActivity, Fr as parseWorkbookSheets, Ir as pdfTextItemsToPage, Mi as permissionRefusalMessage, zo as pinActiveTab, Sa as planAbandonedTurn, zn as planReplyConsumption, Ca as planTurnAbort, ur as pollDelayMs, Kt as primaryLanguageSubtag, De as promptGatewayRequestBytes, bc as publishedAssistantDockWidth, na as publishedChunks, O as quotaExhaustedEventName, xc as readAssistantOverlayFlag, Yo as readReducedMotion, rn as readSpeechEngineConfig, Oe as releaseSupersededAssistantSandboxes, gr as replyFollowsInput, ke as reportAssistantAiTokenUsage, Sc as requestedAssistantOpenState, ra as requiresCancel, an as resetSpeechEngine, ya as resolveActiveModeSandbox, yi as resolveAssistantInlineLimits, hr as resolveAssistantLanguage, rt as resolveAssistantModeCapabilities, zi as resolveAssistantSendModeAfterAccess, ga as resolveAutoRoute, _r as resolveLanguagePair, i as resolveModeConfig, te as resolveSandboxAssistantMode, $i as resolveSpeechLocale, Gi as restoreAcknowledgedWriteModes, _a as restoreAutoRouting, Rt as retryDelayMs, Dn as rotationElapsedMs, No as runBelongsTo, Io as runIdentities, Po as sameOwner, ne as sandboxBaseModeFor, qe as sanitize, Ae as selectExistingAssistantSandbox, je as selectSupersededAssistantSandboxes, qt as selectVoiceForLocale, Me as sendAssistantPromptAsync, Ne as sendHeartbeat, Lr as sheetXmlToRows, Pt as shouldDisableEngine, Bo as shouldPinOnMove, Vo as shouldPinOnSelect, ir as showPreviousChunk, cn as showsAssistantCaption, ln as showsUserCaption, Fa as snapshotReplyFloor, Ft as speakableChunks, Qn as speakableEmail, Jt as speechGate, Zi as speechLabelsFor, Yt as speechLangForLocale, ia as speechPlaybackReducer, It as splitForVendor, $n as splitTableRow, Bn as spokenSoFar, za as spokenTurnText, gn as stageText, t as startIsCoolingDown, ja as startPhraseTicker, On as startRotationTicker, _n as statusStageCopy, Ho as stepsFromToolActivity, Pe as stopReapedAssistantSandbox, lt as streamBudgetMs, Da as stripLegacyFillerPrefix, Xo as subscribeReducedMotion, on as subscribeSpeechEngine, Rr as summarisePageText, kn as syncRotationClock, Uo as tabForArrowKey, vn as thinkingPhrase, yn as thinkingPhraseEntry, dr as toCaptionText, bi as toMessageAttachment, er as toSpeakableText, xi as truncateForInline, zr as truncatePagesForInline, Ma as turnActivityCopy, Na as turnActivityStage, Fi as turnOutcomeCopy, it as unofferedModeSendRefusal, Bi as unofferedModeSendRefusalAfterAccess, Is as useAssistantApiAccess, Gs as useAssistantAttachments, oo as useAssistantConnectSource, Ec as useAssistantDockWidth, Js as useAssistantHeartbeat, d as useAssistantI18nNamespace, Ys as useAssistantKeyboardShortcuts, C as useAssistantNavigate, Dc as useAssistantOverlayOrNull, a as useAssistantPageLabel, Co as useAssistantPreview, Qo as useAssistantPreviewBridge, o as useAssistantProduct, s as useAssistantProductOrNull, Oc as useAssistantQuotaExhausted, Ha as useAssistantSpeech, c as useAssistantStorageFolders, ba as useAssistantStore, f as useAssistantTr, Ls as useConversationTurns, yo as useDropdownEscape, ts as useHostedAssistantPreviewBridge, Ko as useOverlayFocus, Zo as usePrefersReducedMotion, Ye as useSandboxAssistantTransport, n as useVoiceInput, Ua as useVoiceSession, Us as useWorkspaceWriteAccess, Si as validateFile, Xt as voiceAvailability, ht as voiceMarker, nr as voicePreviewText, Zt as voiceQualityRank, gt as voiceSessionIdOf, Vn as voiceSessionReducer, un as voiceStageState, Cn as voiceStatusParts, wn as voiceStatusSuffix, Wn as voiceTranscriptFilename, _t as voiceTurnsOnly, Qt as voicesForLocale, Fe as waitForAssistantServiceReady, Ie as waitForSandboxRunning, dn as waveformIsActive, fn as waveformIsSettled, ut as withIncompleteTurnNotice, Ki as withWriteModeAcknowledged, Cc as writeAssistantOverlayFlag, qi as writeModeConsentCopy, Ji as writeModeSendRefusal, Yi as writeModeSendRefusalReason };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fe-libs",
3
- "version": "2026.925.2",
3
+ "version": "2026.925.3",
4
4
  "description": "Burdenoff frontend primitives and domain libraries",
5
5
  "type": "module",
6
6
  "bin": {