@burdenoff/fe-libs 2026.927.3 → 2026.928.1

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.
@@ -139,6 +139,7 @@ export * from './ui/voice/VoiceStage';
139
139
  export * from './ui/voice/VoiceStatusText';
140
140
  export * from './ui/voice/VoiceTranscriptDrawer';
141
141
  export * from './ui/voice/VoiceWaveform';
142
+ export * from './ui/voice/voiceSessionEscape';
142
143
  export * from './product';
143
144
  export * from './ui/AssistantMoreMenu';
144
145
  export * from './ui/AssistantHeader';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/index.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@ import { useAssistantTr as e } from "../i18n.js";
2
2
  import { quotaExhaustedEventName as t } from "../quota.js";
3
3
  import { assistantPanelOwnsEscape as n } from "./panelOverlays.js";
4
4
  import { AssistantPreviewBridgeHost as r } from "../preview/bridgeHost.js";
5
- import { useAssistantServerHistory as i } from "../history/useAssistantServerHistory.js";
6
- import { AIAssistantPanel as a } from "./AIAssistantPanel.js";
7
- import { ASSISTANT_DOCK_WIDTH_VAR as o, ASSISTANT_OVERLAY_DESKTOP_QUERY as s, ASSISTANT_OVERLAY_TOP_VAR as c, aboveAssistantBottomChrome as l, assistantOverlayClassName as u, assistantOverlayEscapeAction as d, assistantOverlayKeys as f, assistantQuotaKindOf as p, createAssistantNavigate as m, isAssistantToggleShortcut as h, nextAssistantOpenState as g, publishedAssistantDockWidth as _, readAssistantOverlayFlag as v, requestedAssistantOpenState as y, writeAssistantOverlayFlag as b } from "./assistantOverlayState.js";
5
+ import { ASSISTANT_DOCK_WIDTH_VAR as i, ASSISTANT_OVERLAY_DESKTOP_QUERY as a, ASSISTANT_OVERLAY_TOP_VAR as o, aboveAssistantBottomChrome as s, assistantOverlayClassName as c, assistantOverlayEscapeAction as l, assistantOverlayKeys as u, assistantQuotaKindOf as d, createAssistantNavigate as f, isAssistantToggleShortcut as p, nextAssistantOpenState as m, publishedAssistantDockWidth as h, readAssistantOverlayFlag as g, requestedAssistantOpenState as _, writeAssistantOverlayFlag as v } from "./assistantOverlayState.js";
6
+ import { useAssistantServerHistory as y } from "../history/useAssistantServerHistory.js";
7
+ import { AIAssistantPanel as b } from "./AIAssistantPanel.js";
8
8
  import { createContext as x, useCallback as S, useContext as C, useEffect as w, useMemo as T, useRef as E, useState as D, useSyncExternalStore as O } from "react";
9
9
  import { Sparkles as k } from "lucide-react";
10
10
  import { jsx as A, jsxs as j } from "react/jsx-runtime";
@@ -19,7 +19,7 @@ function P() {
19
19
  var F = () => typeof window > "u" ? void 0 : window.sessionStorage, I = () => typeof window > "u" ? void 0 : window.localStorage;
20
20
  function L(e) {
21
21
  if (typeof window > "u" || typeof window.matchMedia != "function") return () => {};
22
- let t = window.matchMedia(s);
22
+ let t = window.matchMedia(a);
23
23
  return t.addEventListener("change", e), () => t.removeEventListener("change", e);
24
24
  }
25
25
  function R() {
@@ -34,60 +34,60 @@ function B(e, n) {
34
34
  r.current = n;
35
35
  }, [n]), w(() => {
36
36
  if (!e || typeof window > "u") return;
37
- let n = t(e), i = (e) => r.current(p(e), e);
37
+ let n = t(e), i = (e) => r.current(d(e), e);
38
38
  return window.addEventListener(n, i), () => window.removeEventListener(n, i);
39
39
  }, [e]);
40
40
  }
41
41
  var V = () => {};
42
42
  function H({ keyPrefix: e, quota: t, children: n }) {
43
- let r = T(() => f(e), [e]), [i, a] = D(() => v(F, r.openStorageKey)), [s, c] = D(() => v(I, r.dockStorageKey)), l = S(() => a(!0), []), u = S(() => a(!1), []), d = S(() => a((e) => !e), []), p = S(() => c((e) => !e), []);
43
+ let r = T(() => u(e), [e]), [a, o] = D(() => g(F, r.openStorageKey)), [s, c] = D(() => g(I, r.dockStorageKey)), l = S(() => o(!0), []), d = S(() => o(!1), []), f = S(() => o((e) => !e), []), y = S(() => c((e) => !e), []);
44
44
  w(() => {
45
- b(F, r.openStorageKey, i);
46
- }, [r.openStorageKey, i]), w(() => {
47
- b(I, r.dockStorageKey, s);
45
+ v(F, r.openStorageKey, a);
46
+ }, [r.openStorageKey, a]), w(() => {
47
+ v(I, r.dockStorageKey, s);
48
48
  }, [r.dockStorageKey, s]), w(() => {
49
49
  if (typeof window > "u") return;
50
50
  let e = (e) => {
51
- let t = y(e);
52
- a((e) => g(e, t));
51
+ let t = _(e);
52
+ o((e) => m(e, t));
53
53
  };
54
54
  return window.addEventListener(r.toggleEvent, e), () => window.removeEventListener(r.toggleEvent, e);
55
55
  }, [r.toggleEvent]), w(() => {
56
56
  if (typeof document > "u") return;
57
57
  let e = (e) => {
58
- h(e) && (e.preventDefault(), a((e) => !e));
58
+ p(e) && (e.preventDefault(), o((e) => !e));
59
59
  };
60
60
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
61
61
  }, []), B(t?.product ?? null, t?.onExhausted ?? V);
62
- let m = _({
63
- isOpen: i,
62
+ let b = h({
63
+ isOpen: a,
64
64
  docked: s,
65
65
  isDesktop: z()
66
66
  });
67
67
  w(() => {
68
68
  if (typeof document > "u") return;
69
69
  let e = document.documentElement.style;
70
- return e.setProperty(o, `${m}px`), () => {
71
- e.removeProperty(o);
70
+ return e.setProperty(i, `${b}px`), () => {
71
+ e.removeProperty(i);
72
72
  };
73
- }, [m]);
73
+ }, [b]);
74
74
  let x = T(() => ({
75
- isOpen: i,
75
+ isOpen: a,
76
76
  open: l,
77
- close: u,
78
- toggle: d,
77
+ close: d,
78
+ toggle: f,
79
79
  docked: s,
80
- toggleDock: p,
81
- dockWidthPx: m,
80
+ toggleDock: y,
81
+ dockWidthPx: b,
82
82
  keys: r
83
83
  }), [
84
- i,
84
+ a,
85
85
  l,
86
- u,
87
86
  d,
87
+ f,
88
88
  s,
89
- p,
90
- m,
89
+ y,
90
+ b,
91
91
  r
92
92
  ]);
93
93
  return /* @__PURE__ */ A(M.Provider, {
@@ -95,7 +95,7 @@ function H({ keyPrefix: e, quota: t, children: n }) {
95
95
  children: n
96
96
  });
97
97
  }
98
- var U = (e, t) => /* @__PURE__ */ A(a, {
98
+ var U = (e, t) => /* @__PURE__ */ A(b, {
99
99
  ...e,
100
100
  ...t
101
101
  });
@@ -106,40 +106,40 @@ function W(e) {
106
106
  ...e
107
107
  }) : null;
108
108
  }
109
- function G({ state: t, panelId: a = "ai-assistant", panelProps: o, renderPanel: s, navigate: f, isShellLessTarget: p, topOffsetPx: h = 56, launcherIcon: g, launcherBottomInset: _ = "1.5rem", showLauncher: v = !0 }) {
110
- let { isOpen: y, close: b, toggle: x, docked: S, toggleDock: C } = t, E = e();
111
- i(o?.serverHistory === !0);
112
- let [O, M] = D(!1), N = T(() => f ? m({
113
- navigate: f,
109
+ function G({ state: t, panelId: i = "ai-assistant", panelProps: a, renderPanel: u, navigate: d, isShellLessTarget: p, topOffsetPx: m = 56, launcherIcon: h, launcherBottomInset: g = "1.5rem", showLauncher: _ = !0 }) {
110
+ let { isOpen: v, close: b, toggle: x, docked: S, toggleDock: C } = t, E = e();
111
+ y(a?.serverHistory === !0);
112
+ let [O, M] = D(!1), N = T(() => d ? f({
113
+ navigate: d,
114
114
  isShellLessTarget: p,
115
115
  isDesktop: R,
116
116
  collapseSheet: () => M(!1),
117
117
  openInNewTab: (e) => window.open(e, "_blank", "noopener,noreferrer")
118
- }) : void 0, [f, p]);
118
+ }) : void 0, [d, p]);
119
119
  w(() => {
120
- if (!y) return;
120
+ if (!v) return;
121
121
  let e = (e) => {
122
- d({
122
+ l({
123
123
  key: e.key,
124
- isOpen: y,
124
+ isOpen: v,
125
125
  dialogOpen: document.querySelector("[role=\"dialog\"],[role=\"alertdialog\"],dialog[open]") !== null,
126
126
  panelOwnsEscape: n()
127
127
  }) === "close" && (e.preventDefault(), b());
128
128
  };
129
129
  return document.addEventListener("keydown", e), () => document.removeEventListener("keydown", e);
130
- }, [y, b]);
130
+ }, [v, b]);
131
131
  let P = {
132
- panelId: a,
132
+ panelId: i,
133
133
  visible: !0,
134
134
  onClose: b,
135
135
  docked: S,
136
136
  onToggleDock: C,
137
137
  onNavigate: N
138
- }, F = E("overlay.launcher", "AI Assistant"), I = { [c]: `${h}px` };
138
+ }, F = E("overlay.launcher", "AI Assistant"), I = { [o]: `${m}px` };
139
139
  return /* @__PURE__ */ j(r, {
140
- preview: o?.preview,
141
- children: [y && /* @__PURE__ */ j("div", {
142
- className: u({
140
+ preview: a?.preview,
141
+ children: [v && /* @__PURE__ */ j("div", {
142
+ className: c({
143
143
  expanded: O,
144
144
  docked: S
145
145
  }),
@@ -155,19 +155,19 @@ function G({ state: t, panelId: a = "ai-assistant", panelProps: o, renderPanel:
155
155
  children: /* @__PURE__ */ A("span", { className: "h-1.5 w-10 rounded-full bg-border-strong" })
156
156
  }), /* @__PURE__ */ A("div", {
157
157
  className: "flex min-h-0 flex-1 flex-col",
158
- children: s ? s(P) : U(o, P)
158
+ children: u ? u(P) : U(a, P)
159
159
  })]
160
- }), v && /* @__PURE__ */ A("button", {
160
+ }), _ && /* @__PURE__ */ A("button", {
161
161
  type: "button",
162
162
  onClick: x,
163
163
  title: E("overlay.launcherTitle", "AI Assistant ({{shortcut}})", { shortcut: "Ctrl+Shift+A" }),
164
164
  "aria-label": F,
165
165
  "aria-haspopup": "dialog",
166
- "aria-expanded": y,
166
+ "aria-expanded": v,
167
167
  "data-testid": "assistant-fab",
168
- style: { bottom: l(_) },
169
- className: "fixed right-6 z-30 size-14 items-center justify-center rounded-full border border-border-strong bg-[var(--color-accent-soft)] text-action-primary-bg shadow-float transition-colors duration-200 hover:border-action-primary-bg focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] cursor-pointer " + (y ? "hidden sm:inline-flex" : "inline-flex"),
170
- children: g ?? /* @__PURE__ */ A(k, {
168
+ style: { bottom: s(g) },
169
+ className: "fixed right-6 z-30 size-14 items-center justify-center rounded-full border border-border-strong bg-[var(--color-accent-soft)] text-action-primary-bg shadow-float transition-colors duration-200 hover:border-action-primary-bg focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] cursor-pointer " + (v ? "hidden sm:inline-flex" : "inline-flex"),
170
+ children: h ?? /* @__PURE__ */ A(k, {
171
171
  className: "size-6",
172
172
  "aria-hidden": "true"
173
173
  })
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantVoiceSession.d.ts","sourceRoot":"","sources":["../../../../../src/shared/assistant/ui/voice/AssistantVoiceSession.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAI1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAgB7D,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,gFAAgF;AAChF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAElD,UAAU,KAAK;IACb,OAAO,EAAE,oBAAoB,CAAC;IAC9B,iEAAiE;IACjE,KAAK,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAC3C,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnC,gEAAgE;IAChE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0EAA0E;IAC1E,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4DAA4D;IAC5D,YAAY,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1D,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,mFAAmF;IACnF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,KAAK,CAyoB3C,CAAC"}
1
+ {"version":3,"file":"AssistantVoiceSession.d.ts","sourceRoot":"","sources":["../../../../../src/shared/assistant/ui/voice/AssistantVoiceSession.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAI1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAoB7D,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,gFAAgF;AAChF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAElD,UAAU,KAAK;IACb,OAAO,EAAE,oBAAoB,CAAC;IAC9B,iEAAiE;IACjE,KAAK,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAC3C,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnC,gEAAgE;IAChE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACpC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0EAA0E;IAC1E,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4DAA4D;IAC5D,YAAY,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1D,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,mFAAmF;IACnF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,KAAK,CAqpB3C,CAAC"}
@@ -2,44 +2,50 @@ import { useAssistantTr as e } from "../../i18n.js";
2
2
  import { micIsInterrupt as t, showsAssistantCaption as n, voiceStageState as r } from "../../voice/voiceStageState.js";
3
3
  import { VOICE_THINKING_LABEL as i, composeVoiceStatus as ee, voiceStatusSuffix as te } from "../../voice/voiceStatus.js";
4
4
  import { spokenSoFar as a } from "../../voice/voiceSession.js";
5
- import { AssistantAttachmentButton as o } from "../composer/AssistantAttachmentButton.js";
6
- import { AssistantAttachmentChips as ne } from "../composer/AssistantAttachmentChips.js";
5
+ import { AssistantAttachmentButton as ne } from "../composer/AssistantAttachmentButton.js";
6
+ import { AssistantAttachmentChips as o } from "../composer/AssistantAttachmentChips.js";
7
7
  import { AssistantVoiceOrb as s } from "./AssistantVoiceOrb.js";
8
8
  import { VoiceMiniController as c } from "./VoiceMiniController.js";
9
9
  import { VoiceStage as l } from "./VoiceStage.js";
10
- import { VoiceTranscriptDrawer as u } from "./VoiceTranscriptDrawer.js";
11
- import { useCallback as d, useEffect as f, useRef as p, useState as m } from "react";
12
- import { Maximize2 as re, Minimize2 as h, ScrollText as g, X as _ } from "lucide-react";
13
- import { jsx as v, jsxs as y } from "react/jsx-runtime";
10
+ import { VoiceTranscriptDrawer as re } from "./VoiceTranscriptDrawer.js";
11
+ import { escapeBelongsToLayerAbove as ie, voiceSessionEscapeAction as ae } from "./voiceSessionEscape.js";
12
+ import { useCallback as u, useEffect as d, useRef as f, useState as p } from "react";
13
+ import { Maximize2 as m, Minimize2 as oe, ScrollText as h, X as se } from "lucide-react";
14
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
14
15
  //#region src/shared/assistant/ui/voice/AssistantVoiceSession.tsx
15
- var b = ({ session: b, turns: oe = [], onSaveTranscript: se, onContinueInChat: ce, notice: x = null, spoken: S, onInterrupt: C, onToggleMute: w, attachments: T = [], onAttachFiles: E, onRemoveAttachment: le, onRetryAttachment: ue, canAttachMore: de = !0, preparingAttachments: D = 0, spokenChunks: O = null, onEnd: k, capturing: A = !0, interrupting: fe = !1, awaitingEndpoint: pe = !1 }) => {
16
- let j = e(), { muted: M, error: N } = b, P = p(null), F = p(null), [I, L] = m("mini"), R = I === "full", z = I === "mini", B = I === "mini" ? "panel" : I === "panel" ? "full" : "mini", [V, H] = m(!1), U = p(!1), W = p(w);
16
+ var v = ({ session: v, turns: b = [], onSaveTranscript: le, onContinueInChat: x, notice: S = null, spoken: C, onInterrupt: ue, onToggleMute: w, attachments: T = [], onAttachFiles: E, onRemoveAttachment: de, onRetryAttachment: fe, canAttachMore: pe = !0, preparingAttachments: D = 0, spokenChunks: O = null, onEnd: k, capturing: me = !0, interrupting: he = !1, awaitingEndpoint: A = !1 }) => {
17
+ let j = e(), { muted: M, error: N } = v, P = f(null), F = f(null), [I, L] = p("mini"), R = I === "full", z = I === "mini", B = I === "mini" ? "panel" : I === "panel" ? "full" : "mini", [V, H] = p(!1), U = f(!1), W = f(w);
17
18
  W.current = w;
18
- let G = d(() => {
19
- b.phase === "listening" && (M || U.current || a(b) || (U.current = !0, W.current()));
20
- }, [M, b]), K = d(() => {
19
+ let G = u(() => {
20
+ v.phase === "listening" && (M || U.current || a(v) || (U.current = !0, W.current()));
21
+ }, [M, v]), K = u(() => {
21
22
  U.current && (U.current = !1, W.current());
22
- }, []), me = G;
23
- f(() => {
23
+ }, []), ge = G;
24
+ d(() => {
24
25
  let e = () => {
25
26
  document.visibilityState === "hidden" ? G() : K();
26
27
  };
27
28
  return document.addEventListener("visibilitychange", e), () => document.removeEventListener("visibilitychange", e);
28
- }, [G, K]), f(() => {
29
+ }, [G, K]), d(() => {
29
30
  let e = K;
30
31
  return window.addEventListener("focus", e), () => {
31
32
  window.removeEventListener("focus", e), U.current = !1;
32
33
  };
33
- }, []), f(() => {
34
+ }, []), d(() => {
34
35
  P.current?.focus();
35
- }, []), f(() => {
36
+ }, []), d(() => {
36
37
  let e = (e) => {
37
38
  if (e.key === "Escape") {
38
- if (V) {
39
- H(!1);
40
- return;
41
- }
42
- k();
39
+ let t = ae({
40
+ defaultPrevented: e.defaultPrevented,
41
+ layerAbove: ie({
42
+ target: e.target,
43
+ session: F.current,
44
+ doc: document
45
+ }),
46
+ transcriptOpen: V
47
+ });
48
+ t === "close-transcript" ? H(!1) : t === "end" && k();
43
49
  return;
44
50
  }
45
51
  if (e.key !== "Tab" || !R) return;
@@ -54,11 +60,11 @@ var b = ({ session: b, turns: oe = [], onSaveTranscript: se, onContinueInChat: c
54
60
  R,
55
61
  V
56
62
  ]);
57
- let q = x !== null && N === null, J = a(b), Y = r({
58
- snapshot: b,
59
- capturing: A,
60
- interrupting: fe,
61
- awaitingEndpoint: pe
63
+ let q = S !== null && N === null, J = a(v), Y = r({
64
+ snapshot: v,
65
+ capturing: me,
66
+ interrupting: he,
67
+ awaitingEndpoint: A
62
68
  }), X = (() => {
63
69
  switch (Y) {
64
70
  case "connecting": return j("voiceSession.connecting", "Starting the microphone…");
@@ -77,7 +83,7 @@ var b = ({ session: b, turns: oe = [], onSaveTranscript: se, onContinueInChat: c
77
83
  muted: M,
78
84
  label: X
79
85
  }), Q = ee(X, Z), $ = Y === "thinking";
80
- return /* @__PURE__ */ y("div", {
86
+ return /* @__PURE__ */ _("div", {
81
87
  ref: F,
82
88
  className: `flex flex-col items-center justify-between bg-bg-sunken ${I === "full" ? "fixed inset-x-0 bottom-0 top-14 z-[60] px-6 py-8" : I === "panel" ? "absolute inset-0 z-20 px-4 py-6" : "absolute inset-x-0 bottom-0 z-20 h-[11.25rem] border-t border-border-subtle px-3 py-3 shadow-lg"}`,
83
89
  role: "dialog",
@@ -85,38 +91,38 @@ var b = ({ session: b, turns: oe = [], onSaveTranscript: se, onContinueInChat: c
85
91
  "aria-label": j("voiceSession.title", "Voice conversation"),
86
92
  "data-testid": "assistant-voice-session",
87
93
  children: [
88
- /* @__PURE__ */ y("button", {
94
+ /* @__PURE__ */ _("button", {
89
95
  ref: P,
90
96
  type: "button",
91
97
  onClick: k,
92
98
  className: `absolute ${R ? "right-6 top-6 h-14 gap-2 px-5 text-base" : z ? "right-12 top-2 h-8 gap-1.5 px-2.5 text-xs" : "right-3 top-3 h-11 gap-2 px-4 text-sm"} flex items-center justify-center rounded-full border border-border-default bg-bg-elevated text-text-secondary hover:bg-bg-sunken transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong`,
93
99
  title: j("voiceSession.end", "End the voice conversation"),
94
100
  "data-testid": "assistant-voice-end",
95
- children: [/* @__PURE__ */ v(_, {
101
+ children: [/* @__PURE__ */ g(se, {
96
102
  className: R ? "size-6" : z ? "size-4" : "size-5",
97
103
  "aria-hidden": "true"
98
- }), /* @__PURE__ */ v("span", {
104
+ }), /* @__PURE__ */ g("span", {
99
105
  className: `truncate whitespace-nowrap font-medium ${z ? "max-w-[3.5rem] text-xs" : "max-w-[7rem]"}`,
100
106
  children: j("voiceSession.endShort", "End")
101
107
  })]
102
108
  }),
103
- /* @__PURE__ */ v("div", {
109
+ /* @__PURE__ */ g("div", {
104
110
  className: `flex flex-col items-center ${z ? "px-3" : `min-h-[1.5rem] ${q ? R ? "pt-14" : "pt-10" : ""}`}`,
105
- children: q ? /* @__PURE__ */ v("p", {
111
+ children: q ? /* @__PURE__ */ g("p", {
106
112
  className: "max-w-xs text-center text-xs text-status-warning",
107
113
  "data-testid": "assistant-voice-notice",
108
- children: ie(x, j)
114
+ children: ce(S, j)
109
115
  }) : null
110
116
  }),
111
117
  (() => {
112
- let e = /* @__PURE__ */ v(s, {
113
- session: b,
118
+ let e = /* @__PURE__ */ g(s, {
119
+ session: v,
114
120
  compact: z,
115
121
  connecting: Y === "connecting",
116
- onPress: t(Y) ? C : w,
122
+ onPress: t(Y) ? ue : w,
117
123
  label: t(Y) ? j("voiceSession.interrupt", "Stop the assistant and speak") : M ? j("voiceSession.unmute", "Turn the microphone on") : j("voiceSession.mute", "Turn the microphone off")
118
- }), r = n(Y) ? S : J || null, i = N === null ? null : ae(N, j);
119
- return z ? /* @__PURE__ */ v(c, {
124
+ }), r = n(Y) ? C : J || null, i = N === null ? null : y(N, j);
125
+ return z ? /* @__PURE__ */ g(c, {
120
126
  spokenChunks: O,
121
127
  state: Y,
122
128
  caption: r,
@@ -125,11 +131,11 @@ var b = ({ session: b, turns: oe = [], onSaveTranscript: se, onContinueInChat: c
125
131
  rotateStatus: $,
126
132
  errorText: i,
127
133
  control: e
128
- }) : /* @__PURE__ */ v(l, {
134
+ }) : /* @__PURE__ */ g(l, {
129
135
  state: Y,
130
136
  userCaption: J || null,
131
137
  spokenChunks: O,
132
- assistantCaption: S,
138
+ assistantCaption: C,
133
139
  expanded: R,
134
140
  statusText: Q,
135
141
  statusSuffix: Z,
@@ -138,54 +144,54 @@ var b = ({ session: b, turns: oe = [], onSaveTranscript: se, onContinueInChat: c
138
144
  control: e
139
145
  });
140
146
  })(),
141
- V ? /* @__PURE__ */ v(u, {
142
- turns: oe,
147
+ V ? /* @__PURE__ */ g(re, {
148
+ turns: b,
143
149
  onClose: () => H(!1),
144
- onSave: se,
145
- onContinueInChat: ce
150
+ onSave: le,
151
+ onContinueInChat: x
146
152
  }) : null,
147
- E ? /* @__PURE__ */ v("div", {
153
+ E ? /* @__PURE__ */ g("div", {
148
154
  className: `absolute ${R ? "left-6 top-6" : z ? "left-11 top-2" : "left-3 top-3"}`,
149
- children: /* @__PURE__ */ v(o, {
155
+ children: /* @__PURE__ */ g(ne, {
150
156
  onFiles: (e) => {
151
157
  E(e), L((e) => e === "mini" ? "panel" : e);
152
158
  },
153
- onPickerOpen: me,
159
+ onPickerOpen: ge,
154
160
  direction: "down",
155
- canAddMore: de
161
+ canAddMore: pe
156
162
  })
157
163
  }) : null,
158
- (T.length > 0 || D > 0) && !z ? /* @__PURE__ */ v("div", {
164
+ (T.length > 0 || D > 0) && !z ? /* @__PURE__ */ g("div", {
159
165
  className: `absolute ${R ? "bottom-24 left-24 right-24" : "bottom-16 left-16 right-16"}`,
160
166
  "data-testid": "assistant-voice-attachments",
161
- children: /* @__PURE__ */ v(ne, {
167
+ children: /* @__PURE__ */ g(o, {
162
168
  attachments: T,
163
- onRemove: le ?? (() => void 0),
164
- onRetry: ue ?? (() => void 0),
169
+ onRemove: de ?? (() => void 0),
170
+ onRetry: fe ?? (() => void 0),
165
171
  preparingCount: D
166
172
  })
167
173
  }) : null,
168
- /* @__PURE__ */ v("button", {
174
+ /* @__PURE__ */ g("button", {
169
175
  type: "button",
170
176
  onClick: () => H((e) => !e),
171
177
  className: `absolute ${R ? "bottom-6 right-6 size-14" : z ? "right-2 top-2 size-8" : "bottom-3 right-3 size-11"} flex items-center justify-center rounded-full bg-bg-elevated text-text-secondary transition-colors hover:bg-bg-raised hover:text-text-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong`,
172
178
  "aria-pressed": V,
173
179
  "aria-label": j("voiceSession.transcriptTitle", "Voice transcript"),
174
180
  "data-testid": "assistant-voice-transcript-toggle",
175
- children: /* @__PURE__ */ v(g, { className: R ? "size-6" : z ? "size-4" : "size-5" })
181
+ children: /* @__PURE__ */ g(h, { className: R ? "size-6" : z ? "size-4" : "size-5" })
176
182
  }),
177
- /* @__PURE__ */ v("button", {
183
+ /* @__PURE__ */ g("button", {
178
184
  type: "button",
179
185
  onClick: () => L(B),
180
186
  className: `absolute ${R ? "bottom-6 left-6 size-14" : z ? "left-2 top-2 size-8" : "bottom-3 left-3 size-11"} flex items-center justify-center rounded-full bg-bg-elevated text-text-secondary transition-colors hover:bg-bg-raised hover:text-text-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong`,
181
187
  "aria-label": B === "panel" ? j("voiceSession.expandPanel", "Show the conversation in the panel") : B === "full" ? j("voiceSession.expand", "Expand the conversation to full screen") : j("voiceSession.collapse", "Shrink to the compact controller"),
182
188
  "data-testid": "assistant-voice-expand",
183
- children: R ? /* @__PURE__ */ v(h, { className: "size-5" }) : /* @__PURE__ */ v(re, { className: z ? "size-4" : "size-5" })
189
+ children: R ? /* @__PURE__ */ g(oe, { className: "size-5" }) : /* @__PURE__ */ g(m, { className: z ? "size-4" : "size-5" })
184
190
  })
185
191
  ]
186
192
  });
187
193
  };
188
- function ie(e, t) {
194
+ function ce(e, t) {
189
195
  switch (e) {
190
196
  case "network": return t("voiceSession.noticeNetwork", "Speech recognition lost its connection. Check your network — it will retry.");
191
197
  case "not-capturing": return t("voiceSession.noticeNotCapturing", "The microphone did not start. Check that this site is allowed to use it, then try again.");
@@ -194,7 +200,7 @@ function ie(e, t) {
194
200
  default: return e;
195
201
  }
196
202
  }
197
- function ae(e, t) {
203
+ function y(e, t) {
198
204
  switch (e) {
199
205
  case "mic-denied": return t("voiceSession.micDenied", "Microphone access is blocked. Allow it in your browser settings to talk.");
200
206
  case "no-speech-support": return t("voiceSession.noSpeechSupport", "This browser cannot listen. Try a different browser, or type instead.");
@@ -203,4 +209,4 @@ function ae(e, t) {
203
209
  }
204
210
  }
205
211
  //#endregion
206
- export { b as AssistantVoiceSession };
212
+ export { v as AssistantVoiceSession };
@@ -0,0 +1,57 @@
1
+ /**
2
+ * A layer an Escape can be pressed INSIDE of: a dialog by role (the Radix
3
+ * `Dialog` and `AlertDialog` contents carry it), an open native `<dialog>`, or
4
+ * anything declared modal.
5
+ */
6
+ export declare const VOICE_ESCAPE_LAYER_SELECTOR = "[role=\"dialog\"],[role=\"alertdialog\"],dialog[open],[aria-modal=\"true\"]";
7
+ /**
8
+ * A layer that outranks the voice session wherever focus is.
9
+ *
10
+ * `[role="alertdialog"]` matches the guard the post-session transcript drawer
11
+ * already applies. There is no `dialog[open]` here: a native modal dialog makes
12
+ * everything behind it inert, so focus, and with it the key press, is always
13
+ * inside it, and the layer check already sees that. A NON-modal open
14
+ * `<dialog>` is not a modal, and must not block Escape across the whole page.
15
+ */
16
+ export declare const VOICE_ESCAPE_MODAL_SELECTOR = "[aria-modal=\"true\"],[role=\"alertdialog\"]";
17
+ export type VoiceSessionEscapeAction = "ignore" | "close-transcript" | "end";
18
+ /**
19
+ * What the voice session does with an Escape.
20
+ *
21
+ * Two things outrank it, in this order:
22
+ *
23
+ * - an earlier handler already took the key (`defaultPrevented`). Radix's
24
+ * `DismissableLayer` dismisses in the CAPTURE phase on `document` and calls
25
+ * `preventDefault()` when it does, so by the time the key reaches this
26
+ * listener the dialog it closed can already be out of the DOM, with focus
27
+ * back on `<body>` (measured in VibeControls prod on 2026-09-23: in the
28
+ * bubble phase the dialog was gone and `activeElement` was BODY). This flag
29
+ * is often the only trace left of it;
30
+ * - a layer above the session: see `escapeBelongsToLayerAbove`.
31
+ *
32
+ * Otherwise nothing changes from before: the session's own transcript drawer
33
+ * closes first, and only then does Escape end the conversation.
34
+ */
35
+ export declare function voiceSessionEscapeAction(input: {
36
+ defaultPrevented: boolean;
37
+ layerAbove: boolean;
38
+ transcriptOpen: boolean;
39
+ }): VoiceSessionEscapeAction;
40
+ /**
41
+ * Does this Escape belong to a dialog or modal above the voice session?
42
+ *
43
+ * Yes when:
44
+ * - the key was pressed inside one: the event TARGET's nearest layer is
45
+ * above the session. The target keeps its ancestors even after the dialog
46
+ * has been removed, so this still holds in the bubble phase;
47
+ * - focus is inside one: the same test on `activeElement`;
48
+ * - a modal is open anywhere that is not the session's own.
49
+ *
50
+ * With none of those, the key is the session's, exactly as before.
51
+ */
52
+ export declare function escapeBelongsToLayerAbove(input: {
53
+ target: EventTarget | null;
54
+ session: Element | null;
55
+ doc: Pick<Document, "activeElement" | "querySelectorAll">;
56
+ }): boolean;
57
+ //# sourceMappingURL=voiceSessionEscape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voiceSessionEscape.d.ts","sourceRoot":"","sources":["../../../../../src/shared/assistant/ui/voice/voiceSessionEscape.ts"],"names":[],"mappings":"AAwBA;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,gFAAqD,CAAC;AAE9F;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,iDACI,CAAC;AAE7C,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,kBAAkB,GAAG,KAAK,CAAC;AAE7E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;CACzB,GAAG,wBAAwB,CAI3B;AAkDD;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,kBAAkB,CAAC,CAAC;CAC3D,GAAG,OAAO,CAOV"}
@@ -0,0 +1,22 @@
1
+ import { focusIsInsidePanel as e } from "../panelOverlays.js";
2
+ import { ASSISTANT_DIALOG_SELECTOR as t } from "../assistantOverlayState.js";
3
+ //#region src/shared/assistant/ui/voice/voiceSessionEscape.ts
4
+ var n = `${t},[aria-modal="true"]`, r = "[aria-modal=\"true\"],[role=\"alertdialog\"]";
5
+ function i(e) {
6
+ return e.defaultPrevented || e.layerAbove ? "ignore" : e.transcriptOpen ? "close-transcript" : "end";
7
+ }
8
+ function a(e) {
9
+ return typeof e == "object" && !!e && "closest" in e && typeof e.closest == "function";
10
+ }
11
+ function o(e) {
12
+ return a(e) ? e.closest(n) : null;
13
+ }
14
+ function s(t, n) {
15
+ return !(!t || e(n, t) || n && t.contains(n));
16
+ }
17
+ function c(e) {
18
+ let { target: t, session: n, doc: i } = e;
19
+ return s(o(t), n) || s(o(i.activeElement), n) ? !0 : Array.from(i.querySelectorAll(r)).some((e) => s(e, n));
20
+ }
21
+ //#endregion
22
+ export { n as VOICE_ESCAPE_LAYER_SELECTOR, r as VOICE_ESCAPE_MODAL_SELECTOR, c as escapeBelongsToLayerAbove, i as voiceSessionEscapeAction };
@@ -114,47 +114,48 @@ import { VoiceMiniController as Oc } from "./shared/assistant/ui/voice/VoiceMini
114
114
  import { VoiceStage as kc } from "./shared/assistant/ui/voice/VoiceStage.js";
115
115
  import { AssistantHistoryDeletedNotice as Ac, AssistantHistoryLoadState as jc, AssistantHistoryReadOnlyBanner as Mc, AssistantHistoryShowEarlier as Nc, AssistantHistoryUnsavedDeleteNotice as Pc } from "./shared/assistant/ui/AssistantHistoryNotices.js";
116
116
  import { VoiceTranscriptDrawer as Fc } from "./shared/assistant/ui/voice/VoiceTranscriptDrawer.js";
117
- import { downloadFile as Ic, exportConversation as Lc } from "./shared/assistant/exportConversation.js";
118
- import { AssistantMoreMenu as Rc } from "./shared/assistant/ui/AssistantMoreMenu.js";
119
- import { AssistantHeader as zc } from "./shared/assistant/ui/AssistantHeader.js";
120
- import { ASSISTANT_HISTORY_CHANGES_OPERATION as Bc, ASSISTANT_HISTORY_CHANGES_QUERY as Vc, ASSISTANT_HISTORY_CONVERSATIONS_OPERATION as Hc, ASSISTANT_HISTORY_CONVERSATIONS_QUERY as Uc, ASSISTANT_HISTORY_DELETE_MUTATION as Wc, ASSISTANT_HISTORY_DELETE_OPERATION as Gc, ASSISTANT_HISTORY_ENTRIES_OPERATION as Kc, ASSISTANT_HISTORY_ENTRIES_QUERY as qc, ASSISTANT_HISTORY_OPERATIONS as Jc, ASSISTANT_HISTORY_SAVE_MUTATION as Yc, ASSISTANT_HISTORY_SAVE_OPERATION as Xc, buildHistoryDeleteVariables as Zc, buildHistoryEntriesVariables as Qc, buildHistoryPageVariables as $c, buildHistorySaveVariables as el } from "./shared/assistant/history/historyOperations.js";
121
- import { historyTimestampToIso as tl } from "./shared/assistant/history/historyTimestamps.js";
122
- import { AssistantHistoryResponseError as nl, AssistantHistoryScopeInactiveError as rl, createGatewayHistoryTransport as il } from "./shared/assistant/history/historyApi.js";
123
- import { ASSISTANT_HISTORY_BACKOFF_BASE_MS as al, ASSISTANT_HISTORY_BACKOFF_MAX_MS as ol, ASSISTANT_HISTORY_QUOTA_RETRY_MS as sl, ASSISTANT_HISTORY_REJECTION_KEYS as cl, ASSISTANT_HISTORY_SCHEMA_PAUSE_MS as ll, assistantHistoryBackoffMs as ul, classifyAssistantHistoryError as dl, planAssistantHistoryRetry as fl } from "./shared/assistant/history/historyErrors.js";
124
- import { LEGACY_HISTORY_KEY_PREFIX as pl, assistantHistoryScopeKey as ml, completeAssistantHistoryScope as hl, isLegacyHistoryConvKey as gl, legacyHistoryConvKey as _l } from "./shared/assistant/history/historyTypes.js";
125
- import { ASSISTANT_HISTORY_MAX_CACHED_CONVERSATIONS as vl, conversationHasHistory as yl, historyConvKeyOf as bl, historyHeaderOf as xl, historyScopeKeyOfStamp as Sl, isOtherScopeHistoryConversation as Cl, isReadOnlyHistoryConversation as wl, isReusableHistoryDraft as Tl, materializeHistoryHeader as El, resolveHistoryReopenMode as Dl, selectAssistantHistoryList as Ol, selectHistoryEvictions as kl } from "./shared/assistant/history/historyList.js";
126
- import { HISTORY_CLIENT_ID_PATTERN as Al, HISTORY_ENTRY_CONTENT_CAP_BYTES as jl, HISTORY_MAX_CONTENT_BYTES as Ml, HISTORY_METADATA_ENVELOPE_MAX_BYTES as Nl, HISTORY_METADATA_KEYS as Pl, HISTORY_REQUEST_HEADROOM_BYTES as Fl, HISTORY_SAVE_REQUEST_BUDGET_BYTES as Il, HISTORY_TRUNCATION_MARKER as Ll, filterHistoryMetadata as Rl, fitHistoryMetadataEnvelope as zl, fromHistoryEntry as Bl, historyEntriesMatchKind as Vl, isHistoryClientId as Hl, measureHistorySaveRequest as Ul, toHistoryEntries as Wl, toStorableHistoryText as Gl, truncateUtf8 as Kl, utf8ByteLength as ql } from "./shared/assistant/history/historyMapping.js";
127
- import { HISTORY_CATCH_UP_MAX_GAP as Jl, HISTORY_CATCH_UP_PAGE as Yl, HISTORY_LOAD_PAGE as Xl, applyHistoryPage as Zl, highestContiguousHistorySeq as Ql, mergeHistoryMessages as $l, planHistoryEarlierLoad as eu, planHistoryOpenLoad as tu } from "./shared/assistant/history/historyMerge.js";
128
- import { assistantHistoryGenerationOf as nu, createAssistantHistoryStatusStore as ru, isCurrentAssistantHistoryGeneration as iu, useAssistantHistoryStatus as au } from "./shared/assistant/history/historyStatus.js";
129
- import { createProfileBoundStorage as ou } from "./shared/assistant/history/profileBoundStorage.js";
130
- import { ASSISTANT_HISTORY_DONE_TTL_MS as su, ASSISTANT_HISTORY_MAX_HEADERS as cu, ASSISTANT_HISTORY_MAX_TOMBSTONES as lu, ASSISTANT_HISTORY_STORAGE_NAME as uu, ASSISTANT_HISTORY_TOMBSTONE_TTL_MS as du, assistantHistoryStore as fu, boundAssistantHistoryHeaders as pu, createAssistantHistoryStore as mu, emptyAssistantHistoryPersisted as hu, emptyAssistantHistoryScopeState as gu, isNewerAssistantHistoryFormat as _u, mergeAssistantHistoryPersisted as vu, mergeAssistantHistoryWithStored as yu, pruneAssistantHistoryPersisted as bu, readAssistantHistoryPersisted as xu, settleAssistantHistory as Su, useAssistantHistoryStore as Cu } from "./shared/assistant/history/historyStore.js";
131
- import { ASSISTANT_HISTORY_RESET_TRUST_MS as wu, assistantHistory as Tu, createAssistantHistoryEngine as Eu, createSystemHistoryClock as Du } from "./shared/assistant/history/historyEngine.js";
132
- import { AssistantConversationList as Ou } from "./shared/assistant/ui/AssistantConversationList.js";
133
- import { AssistantEmptyState as ku } from "./shared/assistant/ui/AssistantEmptyState.js";
134
- import { HISTORY_RESUME_CLOSE as Au, HISTORY_RESUME_MAX_ANSWER_CHARS as ju, HISTORY_RESUME_MAX_CHARS as Mu, HISTORY_RESUME_MAX_EXCHANGES as Nu, HISTORY_RESUME_MAX_PROMPT_CHARS as Pu, HISTORY_RESUME_OPEN as Fu, buildHistoryResumePreamble as Iu, isKnownReadOnlyMode as Lu, resumeContextFor as Ru } from "./shared/assistant/history/historyResume.js";
135
- import { useAssistantServerHistory as zu } from "./shared/assistant/history/useAssistantServerHistory.js";
136
- import { AssistantTurnActivity as Bu, TurnActivityLine as Vu } from "./shared/assistant/ui/AssistantTurnActivity.js";
137
- import { AssistantMessageItem as Hu } from "./shared/assistant/ui/AssistantMessageItem.js";
138
- import { AssistantMessageList as Uu } from "./shared/assistant/ui/AssistantMessageList.js";
139
- import { AssistantVoiceSession as Wu } from "./shared/assistant/ui/voice/AssistantVoiceSession.js";
140
- import { useAssistantApiAccess as Gu } from "./shared/assistant/useAssistantApiAccess.js";
141
- import { useConversationTurns as Ku } from "./shared/assistant/useConversationTurns.js";
142
- import { ABANDONED_TURN_OUTCOME as qu, MAX_REPORTED_TURN_MS as Ju, TURN_TIMING_REPORT_FIELDS as Yu, TURN_TIMING_STAGES as Xu, buildAbandonedTurnReport as Zu, buildTurnTimingReport as Qu, isFinishedTurn as $u } from "./shared/assistant/turnTimingReport.js";
143
- import { TURN_TIMING_REPORTING as ed, createTurnTimingNonce as td, createTurnTimingReporter as nd, resetTurnTimingReporting as rd, sendAssistantTurnTimings as id, startTurnTimingReporting as ad } from "./shared/assistant/turnTimingReporter.js";
144
- import { PREWARM_COOLDOWN_MS as od, WarmCancelled as sd, consumeWarm as cd, prewarmTarget as ld, resetWarmsForTest as ud, settleWarmBeforeSend as dd, startWarm as fd, warmState as pd } from "./shared/assistant/prewarm.js";
145
- import { isAlreadyThere as md, isCurrentPath as hd, matchLocalUiCommand as gd, navDestinations as _d, normaliseUtterance as vd, planThemeChange as yd } from "./shared/assistant/localUiCommands.js";
146
- import { chooseDestinationCopy as bd, navigationCommandCopy as xd, themeCommandCopy as Sd } from "./shared/assistant/localUiCommandCopy.js";
147
- import { aiCreditsUpdatedEventName as Cd, dispatchAssistantQuotaExhausted as wd, notifyAiCreditsUpdated as Td } from "./shared/assistant/aiCredits.js";
148
- import { useWorkspaceWriteAccess as Ed } from "./shared/assistant/useWorkspaceWriteAccess.js";
149
- import { extractDocumentText as Dd } from "./shared/assistant/documentExtract.js";
150
- import { useAssistantAttachments as Od } from "./shared/assistant/useAssistantAttachments.js";
151
- import { AssistantComposer as kd } from "./shared/assistant/ui/composer/AssistantComposer.js";
152
- import { isProdRuntime as Ad } from "./shared/assistant/env.js";
153
- import { useAssistantHeartbeat as jd } from "./shared/assistant/useAssistantHeartbeat.js";
154
- import { useAssistantKeyboardShortcuts as Md } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
155
- import { AssistantApiCallsConsentDialog as Nd } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
156
- import { AssistantChatArea as Pd } from "./shared/assistant/ui/AssistantChatArea.js";
157
- import { AIAssistantPanel as Fd } from "./shared/assistant/ui/AIAssistantPanel.js";
158
- import { ASSISTANT_BOTTOM_CHROME_CLEARANCE as Id, ASSISTANT_DIALOG_SELECTOR as Ld, ASSISTANT_DOCKED_DESKTOP_CLASS as Rd, ASSISTANT_DOCK_WIDTH_PX as zd, ASSISTANT_DOCK_WIDTH_VAR as Bd, ASSISTANT_FLOATING_DESKTOP_CLASS as Vd, ASSISTANT_OVERLAY_DEFAULT_TOP_PX as Hd, ASSISTANT_OVERLAY_DESKTOP_QUERY as Ud, ASSISTANT_OVERLAY_TOP_VAR as Wd, ASSISTANT_SHEET_BASE_CLASS as Gd, ASSISTANT_SHEET_COMPACT_CLASS as Kd, ASSISTANT_SHEET_EXPANDED_CLASS as qd, ASSISTANT_TOGGLE_SHORTCUT_LABEL as Jd, aboveAssistantBottomChrome as Yd, assistantOverlayClassName as Xd, assistantOverlayEscapeAction as Zd, assistantOverlayKeys as Qd, assistantQuotaKindOf as $d, createAssistantNavigate as ef, isAssistantToggleShortcut as tf, nextAssistantOpenState as nf, publishedAssistantDockWidth as rf, readAssistantOverlayFlag as af, requestedAssistantOpenState as of, writeAssistantOverlayFlag as sf } from "./shared/assistant/ui/assistantOverlayState.js";
159
- import { AssistantOverlay as cf, AssistantOverlayProvider as lf, useAssistantDockWidth as uf, useAssistantOverlayOrNull as df, useAssistantQuotaExhausted as ff } from "./shared/assistant/ui/AssistantOverlay.js";
160
- export { qu as ABANDONED_TURN_OUTCOME, oa as ADMIN_MODE_ACCESS_WAIT_MS, Fd as AIAssistantPanel, Q as ASSISTANT_API_AUTH_STRATEGY, Id as ASSISTANT_BOTTOM_CHROME_CLEARANCE, Ld as ASSISTANT_DIALOG_SELECTOR, Rd as ASSISTANT_DOCKED_DESKTOP_CLASS, zd as ASSISTANT_DOCK_WIDTH_PX, Bd as ASSISTANT_DOCK_WIDTH_VAR, Vd as ASSISTANT_FLOATING_DESKTOP_CLASS, al as ASSISTANT_HISTORY_BACKOFF_BASE_MS, ol as ASSISTANT_HISTORY_BACKOFF_MAX_MS, Bc as ASSISTANT_HISTORY_CHANGES_OPERATION, Vc as ASSISTANT_HISTORY_CHANGES_QUERY, Hc as ASSISTANT_HISTORY_CONVERSATIONS_OPERATION, Uc as ASSISTANT_HISTORY_CONVERSATIONS_QUERY, Wc as ASSISTANT_HISTORY_DELETE_MUTATION, Gc as ASSISTANT_HISTORY_DELETE_OPERATION, su as ASSISTANT_HISTORY_DONE_TTL_MS, Kc as ASSISTANT_HISTORY_ENTRIES_OPERATION, qc as ASSISTANT_HISTORY_ENTRIES_QUERY, vl as ASSISTANT_HISTORY_MAX_CACHED_CONVERSATIONS, cu as ASSISTANT_HISTORY_MAX_HEADERS, lu as ASSISTANT_HISTORY_MAX_TOMBSTONES, Jc as ASSISTANT_HISTORY_OPERATIONS, sl as ASSISTANT_HISTORY_QUOTA_RETRY_MS, cl as ASSISTANT_HISTORY_REJECTION_KEYS, wu as ASSISTANT_HISTORY_RESET_TRUST_MS, Yc as ASSISTANT_HISTORY_SAVE_MUTATION, Xc as ASSISTANT_HISTORY_SAVE_OPERATION, ll as ASSISTANT_HISTORY_SCHEMA_PAUSE_MS, uu as ASSISTANT_HISTORY_STORAGE_NAME, du as ASSISTANT_HISTORY_TOMBSTONE_TTL_MS, Xi as ASSISTANT_I18N_COMPUTED_COPY, Zi as ASSISTANT_I18N_LITERAL_COPY, Qi as ASSISTANT_I18N_MANIFEST, vr as ASSISTANT_LANGUAGES, H as ASSISTANT_MODE_FALLBACK_LABELS, U as ASSISTANT_MODE_IDS, fc as ASSISTANT_MODE_META, gs as ASSISTANT_OVERLAY_ATTR, Hd as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, Ud as ASSISTANT_OVERLAY_DESKTOP_QUERY, Wd as ASSISTANT_OVERLAY_TOP_VAR, _s as ASSISTANT_PANEL_ATTR, Gd as ASSISTANT_SHEET_BASE_CLASS, Kd as ASSISTANT_SHEET_COMPACT_CLASS, qd as ASSISTANT_SHEET_EXPANDED_CLASS, Jd as ASSISTANT_TOGGLE_SHORTCUT_LABEL, ui as ATTACHMENT_ACCEPT, qi as ATTACHMENT_SOURCES, ka as AUTO_CARRY_OVER_MAX_CHARS, Aa as AUTO_CARRY_OVER_MAX_CHARS_PER_MESSAGE, ja as AUTO_CARRY_OVER_MAX_MESSAGES, pc as AUTO_MODE_OPTION_ID, Ma as AUTO_READ_MODE, vc as AUTO_VOICE, Na as AUTO_WRITE_MODE, Nd as AssistantApiCallsConsentDialog, Es as AssistantAttachmentButton, Ds as AssistantAttachmentChips, rs as AssistantAutoSpeakToggle, To as AssistantAvatar, Pd as AssistantChatArea, kd as AssistantComposer, ms as AssistantConnectSourceItem, us as AssistantConnectSourceProvider, Ou as AssistantConversationList, ku as AssistantEmptyState, Zs as AssistantEntityPreview, zc as AssistantHeader, Ac as AssistantHistoryDeletedNotice, jc as AssistantHistoryLoadState, Mc as AssistantHistoryReadOnlyBanner, nl as AssistantHistoryResponseError, rl as AssistantHistoryScopeInactiveError, Nc as AssistantHistoryShowEarlier, Pc as AssistantHistoryUnsavedDeleteNotice, l as AssistantI18nProvider, os as AssistantLanguageMenu, uc as AssistantLanguageSelector, m as AssistantMarkdownImage, _ as AssistantMarkdownRenderer, is as AssistantMessageAttachments, Hu as AssistantMessageItem, Uu as AssistantMessageList, mc as AssistantModeSelector, Rc as AssistantMoreMenu, v as AssistantNavigateProvider, cf as AssistantOverlay, lf as AssistantOverlayProvider, as as AssistantPendingWriteCard, cc as AssistantPreviewBridgeHost, lc as AssistantPreviewOverlay, Os as AssistantPreviewProvider, r as AssistantProductProvider, ss as AssistantReplyLanguageSelector, Ve as AssistantRuntimeManager, ra as AssistantSendRefusal, cs as AssistantSpeakButton, Uo as AssistantSpeechProvider, ls as AssistantSpokenTurnsNotice, Xs as AssistantStepRail, bo as AssistantToolActivity, Bu as AssistantTurnActivity, _c as AssistantVoiceButton, bc as AssistantVoiceOrb, yc as AssistantVoiceSelector, Wu as AssistantVoiceSession, xc as AssistantVoiceSessionButton, di as AttachmentRejectedError, Wr as BOILERPLATE_PAGE_SHARE, tt as BUILT_IN_MODE_CAPABILITIES, Sc as CAPTION_SCROLL_ATTR, M as CHECK_AI_CREDITS, N as CREATE_SANDBOX, fi as DEFAULT_INLINE_LIMITS, Zn as DEFAULT_SPEAKABLE_LABELS, yr as DEFAULT_SPEECH_RATE, lt as DEFAULT_STREAM_BUDGET_MS, Pn as ENDPOINT_GRACE_MS, P as EXTEND_SANDBOX_TTL, dc as FOLLOW_APP_LOCALE, F as GET_ACTIVE_SANDBOXES, I as GET_SANDBOX, Jl as HISTORY_CATCH_UP_MAX_GAP, Yl as HISTORY_CATCH_UP_PAGE, Al as HISTORY_CLIENT_ID_PATTERN, jl as HISTORY_ENTRY_CONTENT_CAP_BYTES, Xl as HISTORY_LOAD_PAGE, Ml as HISTORY_MAX_CONTENT_BYTES, Nl as HISTORY_METADATA_ENVELOPE_MAX_BYTES, Pl as HISTORY_METADATA_KEYS, Fl as HISTORY_REQUEST_HEADROOM_BYTES, Au as HISTORY_RESUME_CLOSE, ju as HISTORY_RESUME_MAX_ANSWER_CHARS, Mu as HISTORY_RESUME_MAX_CHARS, Nu as HISTORY_RESUME_MAX_EXCHANGES, Pu as HISTORY_RESUME_MAX_PROMPT_CHARS, Fu as HISTORY_RESUME_OPEN, Il as HISTORY_SAVE_REQUEST_BUDGET_BYTES, Ll as HISTORY_TRUNCATION_MARKER, Dt as HOSTED_DISABLE_MS, Ot as HOSTED_TTS_MAX_CHARS, Ct as HOSTED_TTS_TIER, wt as HOSTED_VOICES, Ut as HOSTED_VOICE_RANK, ac as HostedPreviewBridgeContext, Us as IDLE_ACTIVE_TAB, wa as IDLE_PLAYBACK, Ps as IDLE_PREVIEW, As as IDLE_PREVIEW_STATE, kn as IDLE_ROTATION_CLOCK, ut as INCOMPLETE_TURN_NOTICES, Fn as INITIAL_SESSION, wr as INITIAL_TRANSCRIPT_AUTO_OPEN, pi as INLINE_IMAGE_MAX_DIM, mi as INLINE_IMAGE_QUALITY, In as INTERRUPT_MAX_MS, Ln as INTERRUPT_MIN_MS, pl as LEGACY_HISTORY_KEY_PREFIX, fa as LEGACY_WRITE_CONSENT_KEY, nt as MAX_ASSISTANT_STREAM_BUDGET_MS, hi as MAX_ATTACHMENTS, Gr as MAX_BOILERPLATE_LINE_CHARS, gi as MAX_CONFIGURABLE_INLINE_CHARS, Kr as MAX_EXTRACTED_CHARS, _i as MAX_FILE_BYTES, vi as MAX_INLINE_CHARS_PER_FILE, yi as MAX_INLINE_CHARS_TOTAL, le as MAX_INLINE_IMAGE_BASE64_BYTES, bi as MAX_INLINE_IMAGE_BASE64_CHARS, xi as MAX_INLINE_IMAGE_PARTS, Si as MAX_INLINE_TURN_BODY_BYTES, qr as MAX_PDF_PAGES_SCANNED, Ju as MAX_REPORTED_TURN_MS, ue as MAX_REQUEST_BODY_BYTES, Qn as MAX_SPEAKABLE_CHARS, $n as MAX_SPOKEN_TABLE_ROWS, Ci as MAX_TURN_BODY_BYTES, lr as MINI_CAPTION_BUDGET, Jr as MIN_PAGE_TEXT_CHARS, Yr as MIN_TEXT_PAGE_SHARE, Rn as NOTHING_HEARD, mo as NO_FIRST_TEXT, Fs as NO_OWNER, vs as NO_PANEL_OVERLAY, Ar as PENDING_WRITE_APPROVAL_WINDOW_MS, _n as PHRASE_ROTATE_MS, dr as POLL_FAST_MS, fr as POLL_FAST_UNTIL_MS, pr as POLL_SLOW_MS, mr as POLL_STEADY_MS, hr as POLL_STEADY_UNTIL_MS, sr as PREVIEW_LANGUAGES, od as PREWARM_COOLDOWN_MS, K as PRODUCT_ASSISTANT_MODE_ID_MAX_LENGTH, q as PRODUCT_ASSISTANT_MODE_ID_PATTERN, wi as PROMPT_ENVELOPE_RESERVE_BYTES, Ti as PROVIDER_READABLE_FILE_MEDIA_TYPES, L as PROXY_SANDBOX_REQUEST, $s as REDUCED_MOTION_ATTRIBUTE, ec as REDUCED_MOTION_QUERY, R as REPORT_AI_TOKEN_USAGE, z as REPORT_MY_ASSISTANT_TURN_TIMINGS, de as REQUEST_TOO_LARGE_REFUSAL, Qo as SANDBOX_READY_TTL_MS, zn as SILENCE_SUBMIT_MS, kt as SPEAKING_RATE_MAX, At as SPEAKING_RATE_MAX_STREAMING, jt as SPEAKING_RATE_MAX_SYNC, Mt as SPEAKING_RATE_MIN, er as SPEECH_CHUNK_CHARS, tr as SPEECH_CHUNK_CJK_CHARS, Wt as SPEECH_LANG, ba as SPOKEN_LABEL_LANGUAGES, vn as STAGE_COPY, e as START_RETRY_COOLDOWN_MS, B as STOP_ASSISTANT_SANDBOX, dt as STREAM_BUDGET_MS, pa as TAKE_ACTION_ENGLISH, yn as THINKING_PHRASES, Ei as TURN_BODY_HEADROOM_BYTES, Eo as TURN_MILESTONES, et as TURN_OUTCOME_COPY, Do as TURN_SEGMENTS, Oo as TURN_TIMELINE_EVENT, ed as TURN_TIMING_REPORTING, Yu as TURN_TIMING_REPORT_FIELDS, Xu as TURN_TIMING_STAGES, Vu as TurnActivityLine, rt as UNAVAILABLE_MODE_REFUSAL, it as UNDECLARED_MODE_CAPABILITIES, Gt as VOICE_LIST_TIMEOUT_MS, wn as VOICE_MUTED_LABEL, Tn as VOICE_THINKING_LABEL, Cc as VoiceCaption, wc as VoiceConversationView, Oc as VoiceMiniController, kc as VoiceStage, Ec as VoiceStatusLine, Dc as VoiceStatusText, Fc as VoiceTranscriptDrawer, Tc as VoiceWaveform, V as WAIT_FOR_SANDBOX_RUNNING, sd as WarmCancelled, fe as abortAssistantTurn, Yd as aboveAssistantBottomChrome, ys as activePanelOverlay, at as adminOnlyModeSendRefusal, sa as adminOnlyModeSendRefusalAfterAccess, Bn as advanceHeardClock, An as advanceRotationClock, Cd as aiCreditsUpdatedEventName, Zl as applyHistoryPage, Is as applyPreviewEvent, jr as approvalFollowUpReplyIds, pe as approvePendingWrite, Mr as approvedPendingWriteIds, Tu as assistantHistory, ul as assistantHistoryBackoffMs, nu as assistantHistoryGenerationOf, ml as assistantHistoryScopeKey, fu as assistantHistoryStore, $i as assistantI18nSeedCopy, W as assistantModeFallbackLabel, ea as assistantModeI18nCopy, hc as assistantModeMeta, Xd as assistantOverlayClassName, Zd as assistantOverlayEscapeAction, Qd as assistantOverlayKeys, bs as assistantPanelOwnsEscape, $d as assistantQuotaKindOf, y as assistantRoutePath, u as assistantTranslationKey, b as assistantUrlTransform, Pa as autoCarryOverFor, Fa as autoSuggestions, Ji as availableAttachmentSources, Nt as base64ToBytes, Nr as beginApprovalInFlight, ko as beginTurn, pu as boundAssistantHistoryHeaders, x as browserShouldHandle, St as browserSpeechEngine, Zu as buildAbandonedTurnReport, ho as buildAssistantProgress, me as buildAssistantSandboxEnv, Di as buildAttachmentPromptBlock, Ia as buildAutoCarryOver, da as buildBoundedAttachmentTurn, Jn as buildContinuedFromVoiceNote, Zc as buildHistoryDeleteVariables, Qc as buildHistoryEntriesVariables, $c as buildHistoryPageVariables, Iu as buildHistoryResumePreamble, el as buildHistorySaveVariables, He as buildProgress, he as buildPromptGatewayRequest, Oi as buildPromptParts, ge as buildPromptRequestBody, ki as buildPromptWithAttachments, Pt as buildRequest, k as buildSandboxContextInput, Qu as buildTurnTimingReport, Yn as buildVoiceTranscriptMarkdown, J as builtInModeExtendedBy, ht as chatTurns, _e as checkAssistantAiCredits, bd as chooseDestinationCopy, nr as chunkForSpeech, dl as classifyAssistantHistoryError, S as classifyAssistantHref, La as classifyAssistantIntent, Ai as classifyAttachment, Ft as classifyHttpFailure, w as classifyQuotaError, ia as classifyTurnFailure, Xr as columnLetterToIndex, hl as completeAssistantHistoryScope, En as composeVoiceStatus, an as configureSpeechEngine, hs as connectSourceActivation, ds as connectSourceHrefRenders, cd as consumeWarm, rr as containsCjk, yl as conversationHasHistory, p as copyToClipboard, ji as countInlineImageCandidates, Mi as countInlinedImageParts, So as countSpokenTurns, ca as createAdminModeAccessGate, Eu as createAssistantHistoryEngine, ru as createAssistantHistoryStatusStore, mu as createAssistantHistoryStore, ef as createAssistantNavigate, Ls as createAssistantPreviewSurface, ve as createAssistantSandbox, ye as createAssistantSession, il as createGatewayHistoryTransport, Ha as createGuardedAssistantStorage, Vt as createHostedTtsEngine, ou as createProfileBoundStorage, $o as createReadinessTracker, rn as createRoutingSpeechEngine, Vs as createRunIdentityCache, Qe as createSandboxAssistantTransport, on as createSpeechEngines, Du as createSystemHistoryClock, td as createTurnTimingNonce, nd as createTurnTimingReporter, Rs as currentPreviewOwner, Y as declareAssistantMode, It as decodeAudioResponse, Zr as decodeXmlEntities, ta as describePermissionError, T as describeQuotaError, Ao as describeTurn, Ni as detectDocumentFormat, Sa as detectScriptLocale, jo as detectTurnDevice, Yi as deviceHasCamera, Lt as disableDurationMs, wd as dispatchAssistantQuotaExhausted, Qr as docxXmlToText, be as downloadAssistantArtifact, Ic as downloadFile, co as elapsedSince, hu as emptyAssistantHistoryPersisted, gu as emptyAssistantHistoryScopeState, Pr as endApprovalInFlight, Ra as escalationToUndo, xs as escapeDismisses, Pi as estimateTurnBodyBytes, A as executeAssistantGraphQLOnce, j as executeSandboxGraphQL, Lc as exportConversation, xe as extendAssistantSandboxTTL, E as extensionObjectsIn, Dd as extractDocumentText, Rl as filterHistoryMetadata, br as findAssistantLanguage, ot as findAssistantModeConfig, Se as findExistingSandbox, Ce as findExistingSandboxWithStatus, Or as findPendingWrite, zl as fitHistoryMetadataEnvelope, $r as fitPdfPages, Ss as focusIsInsidePanel, Fr as forgetLiveTurns, Fi as formatBytes, ei as formatPageRanges, we as forwardsUserTokensToSandbox, Bl as fromHistoryEntry, Ko as getActorId, Ir as getApprovalInFlight, Te as getAssistantArtifacts, so as getAssistantDisplayContent, Ue as getAssistantMedia, Ee as getAssistantMessages, De as getAssistantSession, Oe as getAssistantStreamAccess, We as getAssistantText, Ii as getAttachmentSendBlocker, ae as getCapability, Li as getExtension, Ua as getHistoryStamp, $ as getImageForMode, ee as getImageTagForMode, qo as getOrganizationId, Ge as getRawMessageCreatedAt, te as getResourcesForMode, ne as getSandboxImageRegistry, Ri as getSendableAttachments, sn as getSpeechEngine, Ke as getToolProgress, Jo as getWorkspaceId, Lr as goAheadSentReplyIds, gt as groupBySession, _t as groupConsecutiveBySession, zi as hasAttachmentWorkInFlight, fs as hasConnectSource, Ql as highestContiguousHistorySeq, bl as historyConvKeyOf, Vl as historyEntriesMatchKind, xl as historyHeaderOf, Wa as historyOpenFilter, Sl as historyScopeKeyOfStamp, tl as historyTimestampToIso, Tt as hostedLocaleFor, Et as hostedSupportsLanguage, h as imageHostLabel, ft as incompleteTurnNotice, md as isAlreadyThere, X as isAssistantModeId, tf as isAssistantToggleShortcut, za as isAutoRoutingOffered, js as isBlankProse, G as isBuiltInAssistantMode, Vn as isCapturing, Mo as isComparableTurn, iu as isCurrentAssistantHistoryGeneration, hd as isCurrentPath, Hn as isEcho, $u as isFinishedTurn, Hl as isHistoryClientId, Ga as isHistoryConversationBusy, Kt as isHostedVoice, Lu as isKnownReadOnlyMode, ro as isLegacyFiller, gl as isLegacyHistoryConvKey, io as isLegacyStopped, Rr as isLiveTurn, ti as isMostlyImagePages, Yo as isMultimodalBodyRejection, Xo as isNeverRecoverableAssistantError, _u as isNewerAssistantHistoryFormat, Cl as isOtherScopeHistoryConversation, Ad as isProdRuntime, Z as isProductAssistantModeId, Bi as isProviderReadableFilePart, D as isQuotaExhaustedError, wl as isReadOnlyHistoryConversation, qe as isReapedSandboxConnectionError, es as isRecentlyVerified, Je as isRecoverable, Zo as isRecoverableAssistantError, g as isRemoteImageSrc, Tl as isReusableHistoryDraft, Ms as isRunningStatus, Ta as isSpeakingMessage, qt as isSpeechBlocked, ao as isStageCopy, Un as isSubmittable, eo as isTurnInFlight, oe as isUnknownFieldError, vt as isVoiceTurn, ma as isWriteModeAcknowledged, ni as joinSheets, Jt as languageDisplayName, Vi as largestInlineCharsPerFile, _l as legacyHistoryConvKey, Ye as mapSessionToHistory, zr as markLiveTurn, se as markSupported, No as markTurn, ce as markUnsupported, gd as matchLocalUiCommand, El as materializeHistoryHeader, Tr as maySendSpokenTurn, Ul as measureHistorySaveRequest, vu as mergeAssistantHistoryPersisted, yu as mergeAssistantHistoryWithStored, $l as mergeHistoryMessages, Xe as mergeMessagesById, Za as mergePersistedAssistantState, dn as micIsInterrupt, ke as modeRequiresConfirmWrites, lo as msUntilNextPhrase, _d as navDestinations, xd as navigationCommandCopy, Br as newestModelReplyId, Ws as nextActiveTab, nf as nextAssistantOpenState, gc as nextModeIndex, Cs as nextPanelOverlays, Ns as nextPreviewEvents, vd as normaliseUtterance, Yt as normalizeLangTag, Td as notifyAiCreditsUpdated, Ka as notifyAssistantStorageFull, Wn as orbMode, ri as pageMarker, oc as panelOwnedPreviewBridge, ws as panelOwnsEscape, kr as parseConfirmationRefusal, Hi as parseDataUrl, ii as parseSharedStrings, xo as parseToolActivity, ai as parseWorkbookSheets, oi as pdfTextItemsToPage, na as permissionRefusalMessage, Gs as pinActiveTab, to as planAbandonedTurn, ts as planAfterTransportFailure, fl as planAssistantHistoryRetry, eu as planHistoryEarlierLoad, tu as planHistoryOpenLoad, Gn as planReplyConsumption, yd as planThemeChange, Er as planTranscriptAutoOpen, ns as planTrustedSandboxFailure, no as planTurnAbort, Dr as planVoiceSessionBinding, gr as pollDelayMs, ld as prewarmTarget, Xt as primaryLanguageSubtag, Ae as promptGatewayRequestBytes, bu as pruneAssistantHistoryPersisted, rf as publishedAssistantDockWidth, Ea as publishedChunks, O as quotaExhaustedEventName, go as readAheadFor, xu as readAssistantHistoryPersisted, af as readAssistantOverlayFlag, tc as readReducedMotion, cn as readSpeechEngineConfig, Po as recentTurnTimelines, je as releaseSupersededAssistantSandboxes, Sr as replyFollowsInput, Me as reportAssistantAiTokenUsage, of as requestedAssistantOpenState, Da as requiresCancel, ln as resetSpeechEngine, Fo as resetTurnTimelines, rd as resetTurnTimingReporting, ud as resetWarmsForTest, Qa as resolveActiveModeSandbox, Vr as resolveApprovablePendingWrite, Ui as resolveAssistantInlineLimits, xr as resolveAssistantLanguage, st as resolveAssistantModeCapabilities, la as resolveAssistantSendModeAfterAccess, Ba as resolveAutoRoute, Dl as resolveHistoryReopenMode, Cr as resolveLanguagePair, i as resolveModeConfig, Hr as resolveRetryableMessageId, re as resolveSandboxAssistantMode, Ca as resolveSpeechLocale, Io as restartAttempt, ha as restoreAcknowledgedWriteModes, Va as restoreAutoRouting, Ru as resumeContextFor, Ht as retryDelayMs, jn as rotationElapsedMs, zs as runBelongsTo, Hs as runIdentities, Bs as sameOwner, ie as sandboxBaseModeFor, Ne as sandboxStatusOf, Ze as sanitize, Lo as segmentStats, Ol as selectAssistantHistoryList, Pe as selectExistingAssistantSandbox, kl as selectHistoryEvictions, Fe as selectSupersededAssistantSandboxes, Zt as selectVoiceForLocale, Ie as sendAssistantPromptAsync, id as sendAssistantTurnTimings, Le as sendHeartbeat, qa as setAssistantStorageFullHandler, Ja as setHistoryBusyProbe, Ya as setHistoryOpenFilterSource, Xa as setHistoryStampSource, Su as settleAssistantHistory, dd as settleWarmBeforeSend, si as sheetXmlToRows, Rt as shouldDisableEngine, Ks as shouldPinOnMove, qs as shouldPinOnSelect, ur as showPreviousChunk, fn as showsAssistantCaption, pn as showsUserCaption, _o as snapshotReplyFloor, zt as speakableChunks, ir as speakableEmail, Qt as speechGate, xa as speechLabelsFor, $t as speechLangForLocale, Oa as speechPlaybackReducer, Bt as splitForVendor, ar as splitTableRow, Co as spokenMessagesSinceContinueNote, Kn as spokenSoFar, wo as spokenTurnText, bn as stageText, t as startIsCoolingDown, uo as startPhraseTicker, Mn as startRotationTicker, vo as startSessionReadAhead, ad as startTurnTimingReporting, fd as startWarm, xn as statusStageCopy, Js as stepsFromToolActivity, Re as stopReapedAssistantSandbox, pt as streamBudgetMs, oo as stripLegacyFillerPrefix, Ur as subscribeApprovalInFlight, nc as subscribeReducedMotion, un as subscribeSpeechEngine, Ro as subscribeTurnTimelines, ci as summarisePageText, zo as summariseTurnTimelines, Nn as syncRotationClock, Ys as tabForArrowKey, Sd as themeCommandCopy, Sn as thinkingPhrase, Cn as thinkingPhraseEntry, _r as toCaptionText, Wl as toHistoryEntries, Wi as toMessageAttachment, or as toSpeakableText, Gl as toStorableHistoryText, yo as trackFirstText, Gi as truncateForInline, li as truncatePagesForInline, Kl as truncateUtf8, fo as turnActivityCopy, po as turnActivityStage, Bo as turnClockMs, aa as turnOutcomeCopy, Vo as turnSegments, Ho as turnTimeline, ct as unofferedModeSendRefusal, ua as unofferedModeSendRefusalAfterAccess, Gu as useAssistantApiAccess, Od as useAssistantAttachments, ps as useAssistantConnectSource, uf as useAssistantDockWidth, jd as useAssistantHeartbeat, au as useAssistantHistoryStatus, Cu as useAssistantHistoryStore, d as useAssistantI18nNamespace, Md as useAssistantKeyboardShortcuts, C as useAssistantNavigate, df as useAssistantOverlayOrNull, a as useAssistantPageLabel, ks as useAssistantPreview, ic as useAssistantPreviewBridge, o as useAssistantProduct, s as useAssistantProductOrNull, ff as useAssistantQuotaExhausted, zu as useAssistantServerHistory, Wo as useAssistantSpeech, c as useAssistantStorageFolders, $a as useAssistantStore, f as useAssistantTr, Ku as useConversationTurns, Ts as useDropdownEscape, sc as useHostedAssistantPreviewBridge, Qs as useOverlayFocus, rc as usePrefersReducedMotion, $e as useSandboxAssistantTransport, n as useVoiceInput, Go as useVoiceSession, Ed as useWorkspaceWriteAccess, ql as utf8ByteLength, Ki as validateFile, en as voiceAvailability, yt as voiceMarker, cr as voicePreviewText, tn as voiceQualityRank, bt as voiceSessionIdOf, qn as voiceSessionReducer, mn as voiceStageState, Dn as voiceStatusParts, On as voiceStatusSuffix, Xn as voiceTranscriptFilename, xt as voiceTurnsOnly, nn as voicesForLocale, ze as waitForAssistantServiceReady, Be as waitForSandboxRunning, pd as warmState, hn as waveformIsActive, gn as waveformIsSettled, mt as withIncompleteTurnNotice, ga as withWriteModeAcknowledged, sf as writeAssistantOverlayFlag, _a as writeModeConsentCopy, va as writeModeSendRefusal, ya as writeModeSendRefusalReason };
117
+ import { ASSISTANT_BOTTOM_CHROME_CLEARANCE as Ic, ASSISTANT_DIALOG_SELECTOR as Lc, ASSISTANT_DOCKED_DESKTOP_CLASS as Rc, ASSISTANT_DOCK_WIDTH_PX as zc, ASSISTANT_DOCK_WIDTH_VAR as Bc, ASSISTANT_FLOATING_DESKTOP_CLASS as Vc, ASSISTANT_OVERLAY_DEFAULT_TOP_PX as Hc, ASSISTANT_OVERLAY_DESKTOP_QUERY as Uc, ASSISTANT_OVERLAY_TOP_VAR as Wc, ASSISTANT_SHEET_BASE_CLASS as Gc, ASSISTANT_SHEET_COMPACT_CLASS as Kc, ASSISTANT_SHEET_EXPANDED_CLASS as qc, ASSISTANT_TOGGLE_SHORTCUT_LABEL as Jc, aboveAssistantBottomChrome as Yc, assistantOverlayClassName as Xc, assistantOverlayEscapeAction as Zc, assistantOverlayKeys as Qc, assistantQuotaKindOf as $c, createAssistantNavigate as el, isAssistantToggleShortcut as tl, nextAssistantOpenState as nl, publishedAssistantDockWidth as rl, readAssistantOverlayFlag as il, requestedAssistantOpenState as al, writeAssistantOverlayFlag as ol } from "./shared/assistant/ui/assistantOverlayState.js";
118
+ import { VOICE_ESCAPE_LAYER_SELECTOR as sl, VOICE_ESCAPE_MODAL_SELECTOR as cl, escapeBelongsToLayerAbove as ll, voiceSessionEscapeAction as ul } from "./shared/assistant/ui/voice/voiceSessionEscape.js";
119
+ import { downloadFile as dl, exportConversation as fl } from "./shared/assistant/exportConversation.js";
120
+ import { AssistantMoreMenu as pl } from "./shared/assistant/ui/AssistantMoreMenu.js";
121
+ import { AssistantHeader as ml } from "./shared/assistant/ui/AssistantHeader.js";
122
+ import { ASSISTANT_HISTORY_CHANGES_OPERATION as hl, ASSISTANT_HISTORY_CHANGES_QUERY as gl, ASSISTANT_HISTORY_CONVERSATIONS_OPERATION as _l, ASSISTANT_HISTORY_CONVERSATIONS_QUERY as vl, ASSISTANT_HISTORY_DELETE_MUTATION as yl, ASSISTANT_HISTORY_DELETE_OPERATION as bl, ASSISTANT_HISTORY_ENTRIES_OPERATION as xl, ASSISTANT_HISTORY_ENTRIES_QUERY as Sl, ASSISTANT_HISTORY_OPERATIONS as Cl, ASSISTANT_HISTORY_SAVE_MUTATION as wl, ASSISTANT_HISTORY_SAVE_OPERATION as Tl, buildHistoryDeleteVariables as El, buildHistoryEntriesVariables as Dl, buildHistoryPageVariables as Ol, buildHistorySaveVariables as kl } from "./shared/assistant/history/historyOperations.js";
123
+ import { historyTimestampToIso as Al } from "./shared/assistant/history/historyTimestamps.js";
124
+ import { AssistantHistoryResponseError as jl, AssistantHistoryScopeInactiveError as Ml, createGatewayHistoryTransport as Nl } from "./shared/assistant/history/historyApi.js";
125
+ import { ASSISTANT_HISTORY_BACKOFF_BASE_MS as Pl, ASSISTANT_HISTORY_BACKOFF_MAX_MS as Fl, ASSISTANT_HISTORY_QUOTA_RETRY_MS as Il, ASSISTANT_HISTORY_REJECTION_KEYS as Ll, ASSISTANT_HISTORY_SCHEMA_PAUSE_MS as Rl, assistantHistoryBackoffMs as zl, classifyAssistantHistoryError as Bl, planAssistantHistoryRetry as Vl } from "./shared/assistant/history/historyErrors.js";
126
+ import { LEGACY_HISTORY_KEY_PREFIX as Hl, assistantHistoryScopeKey as Ul, completeAssistantHistoryScope as Wl, isLegacyHistoryConvKey as Gl, legacyHistoryConvKey as Kl } from "./shared/assistant/history/historyTypes.js";
127
+ import { ASSISTANT_HISTORY_MAX_CACHED_CONVERSATIONS as ql, conversationHasHistory as Jl, historyConvKeyOf as Yl, historyHeaderOf as Xl, historyScopeKeyOfStamp as Zl, isOtherScopeHistoryConversation as Ql, isReadOnlyHistoryConversation as $l, isReusableHistoryDraft as eu, materializeHistoryHeader as tu, resolveHistoryReopenMode as nu, selectAssistantHistoryList as ru, selectHistoryEvictions as iu } from "./shared/assistant/history/historyList.js";
128
+ import { HISTORY_CLIENT_ID_PATTERN as au, HISTORY_ENTRY_CONTENT_CAP_BYTES as ou, HISTORY_MAX_CONTENT_BYTES as su, HISTORY_METADATA_ENVELOPE_MAX_BYTES as cu, HISTORY_METADATA_KEYS as lu, HISTORY_REQUEST_HEADROOM_BYTES as uu, HISTORY_SAVE_REQUEST_BUDGET_BYTES as du, HISTORY_TRUNCATION_MARKER as fu, filterHistoryMetadata as pu, fitHistoryMetadataEnvelope as mu, fromHistoryEntry as hu, historyEntriesMatchKind as gu, isHistoryClientId as _u, measureHistorySaveRequest as vu, toHistoryEntries as yu, toStorableHistoryText as bu, truncateUtf8 as xu, utf8ByteLength as Su } from "./shared/assistant/history/historyMapping.js";
129
+ import { HISTORY_CATCH_UP_MAX_GAP as Cu, HISTORY_CATCH_UP_PAGE as wu, HISTORY_LOAD_PAGE as Tu, applyHistoryPage as Eu, highestContiguousHistorySeq as Du, mergeHistoryMessages as Ou, planHistoryEarlierLoad as ku, planHistoryOpenLoad as Au } from "./shared/assistant/history/historyMerge.js";
130
+ import { assistantHistoryGenerationOf as ju, createAssistantHistoryStatusStore as Mu, isCurrentAssistantHistoryGeneration as Nu, useAssistantHistoryStatus as Pu } from "./shared/assistant/history/historyStatus.js";
131
+ import { createProfileBoundStorage as Fu } from "./shared/assistant/history/profileBoundStorage.js";
132
+ import { ASSISTANT_HISTORY_DONE_TTL_MS as Iu, ASSISTANT_HISTORY_MAX_HEADERS as Lu, ASSISTANT_HISTORY_MAX_TOMBSTONES as Ru, ASSISTANT_HISTORY_STORAGE_NAME as zu, ASSISTANT_HISTORY_TOMBSTONE_TTL_MS as Bu, assistantHistoryStore as Vu, boundAssistantHistoryHeaders as Hu, createAssistantHistoryStore as Uu, emptyAssistantHistoryPersisted as Wu, emptyAssistantHistoryScopeState as Gu, isNewerAssistantHistoryFormat as Ku, mergeAssistantHistoryPersisted as qu, mergeAssistantHistoryWithStored as Ju, pruneAssistantHistoryPersisted as Yu, readAssistantHistoryPersisted as Xu, settleAssistantHistory as Zu, useAssistantHistoryStore as Qu } from "./shared/assistant/history/historyStore.js";
133
+ import { ASSISTANT_HISTORY_RESET_TRUST_MS as $u, assistantHistory as ed, createAssistantHistoryEngine as td, createSystemHistoryClock as nd } from "./shared/assistant/history/historyEngine.js";
134
+ import { AssistantConversationList as rd } from "./shared/assistant/ui/AssistantConversationList.js";
135
+ import { AssistantEmptyState as id } from "./shared/assistant/ui/AssistantEmptyState.js";
136
+ import { HISTORY_RESUME_CLOSE as ad, HISTORY_RESUME_MAX_ANSWER_CHARS as od, HISTORY_RESUME_MAX_CHARS as sd, HISTORY_RESUME_MAX_EXCHANGES as cd, HISTORY_RESUME_MAX_PROMPT_CHARS as ld, HISTORY_RESUME_OPEN as ud, buildHistoryResumePreamble as dd, isKnownReadOnlyMode as fd, resumeContextFor as pd } from "./shared/assistant/history/historyResume.js";
137
+ import { useAssistantServerHistory as md } from "./shared/assistant/history/useAssistantServerHistory.js";
138
+ import { AssistantTurnActivity as hd, TurnActivityLine as gd } from "./shared/assistant/ui/AssistantTurnActivity.js";
139
+ import { AssistantMessageItem as _d } from "./shared/assistant/ui/AssistantMessageItem.js";
140
+ import { AssistantMessageList as vd } from "./shared/assistant/ui/AssistantMessageList.js";
141
+ import { AssistantVoiceSession as yd } from "./shared/assistant/ui/voice/AssistantVoiceSession.js";
142
+ import { useAssistantApiAccess as bd } from "./shared/assistant/useAssistantApiAccess.js";
143
+ import { useConversationTurns as xd } from "./shared/assistant/useConversationTurns.js";
144
+ import { ABANDONED_TURN_OUTCOME as Sd, MAX_REPORTED_TURN_MS as Cd, TURN_TIMING_REPORT_FIELDS as wd, TURN_TIMING_STAGES as Td, buildAbandonedTurnReport as Ed, buildTurnTimingReport as Dd, isFinishedTurn as Od } from "./shared/assistant/turnTimingReport.js";
145
+ import { TURN_TIMING_REPORTING as kd, createTurnTimingNonce as Ad, createTurnTimingReporter as jd, resetTurnTimingReporting as Md, sendAssistantTurnTimings as Nd, startTurnTimingReporting as Pd } from "./shared/assistant/turnTimingReporter.js";
146
+ import { PREWARM_COOLDOWN_MS as Fd, WarmCancelled as Id, consumeWarm as Ld, prewarmTarget as Rd, resetWarmsForTest as zd, settleWarmBeforeSend as Bd, startWarm as Vd, warmState as Hd } from "./shared/assistant/prewarm.js";
147
+ import { isAlreadyThere as Ud, isCurrentPath as Wd, matchLocalUiCommand as Gd, navDestinations as Kd, normaliseUtterance as qd, planThemeChange as Jd } from "./shared/assistant/localUiCommands.js";
148
+ import { chooseDestinationCopy as Yd, navigationCommandCopy as Xd, themeCommandCopy as Zd } from "./shared/assistant/localUiCommandCopy.js";
149
+ import { aiCreditsUpdatedEventName as Qd, dispatchAssistantQuotaExhausted as $d, notifyAiCreditsUpdated as ef } from "./shared/assistant/aiCredits.js";
150
+ import { useWorkspaceWriteAccess as tf } from "./shared/assistant/useWorkspaceWriteAccess.js";
151
+ import { extractDocumentText as nf } from "./shared/assistant/documentExtract.js";
152
+ import { useAssistantAttachments as rf } from "./shared/assistant/useAssistantAttachments.js";
153
+ import { AssistantComposer as af } from "./shared/assistant/ui/composer/AssistantComposer.js";
154
+ import { isProdRuntime as of } from "./shared/assistant/env.js";
155
+ import { useAssistantHeartbeat as sf } from "./shared/assistant/useAssistantHeartbeat.js";
156
+ import { useAssistantKeyboardShortcuts as cf } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
157
+ import { AssistantApiCallsConsentDialog as lf } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
158
+ import { AssistantChatArea as uf } from "./shared/assistant/ui/AssistantChatArea.js";
159
+ import { AIAssistantPanel as df } from "./shared/assistant/ui/AIAssistantPanel.js";
160
+ import { AssistantOverlay as ff, AssistantOverlayProvider as pf, useAssistantDockWidth as mf, useAssistantOverlayOrNull as hf, useAssistantQuotaExhausted as gf } from "./shared/assistant/ui/AssistantOverlay.js";
161
+ export { Sd as ABANDONED_TURN_OUTCOME, oa as ADMIN_MODE_ACCESS_WAIT_MS, df as AIAssistantPanel, Q as ASSISTANT_API_AUTH_STRATEGY, Ic as ASSISTANT_BOTTOM_CHROME_CLEARANCE, Lc as ASSISTANT_DIALOG_SELECTOR, Rc as ASSISTANT_DOCKED_DESKTOP_CLASS, zc as ASSISTANT_DOCK_WIDTH_PX, Bc as ASSISTANT_DOCK_WIDTH_VAR, Vc as ASSISTANT_FLOATING_DESKTOP_CLASS, Pl as ASSISTANT_HISTORY_BACKOFF_BASE_MS, Fl as ASSISTANT_HISTORY_BACKOFF_MAX_MS, hl as ASSISTANT_HISTORY_CHANGES_OPERATION, gl as ASSISTANT_HISTORY_CHANGES_QUERY, _l as ASSISTANT_HISTORY_CONVERSATIONS_OPERATION, vl as ASSISTANT_HISTORY_CONVERSATIONS_QUERY, yl as ASSISTANT_HISTORY_DELETE_MUTATION, bl as ASSISTANT_HISTORY_DELETE_OPERATION, Iu as ASSISTANT_HISTORY_DONE_TTL_MS, xl as ASSISTANT_HISTORY_ENTRIES_OPERATION, Sl as ASSISTANT_HISTORY_ENTRIES_QUERY, ql as ASSISTANT_HISTORY_MAX_CACHED_CONVERSATIONS, Lu as ASSISTANT_HISTORY_MAX_HEADERS, Ru as ASSISTANT_HISTORY_MAX_TOMBSTONES, Cl as ASSISTANT_HISTORY_OPERATIONS, Il as ASSISTANT_HISTORY_QUOTA_RETRY_MS, Ll as ASSISTANT_HISTORY_REJECTION_KEYS, $u as ASSISTANT_HISTORY_RESET_TRUST_MS, wl as ASSISTANT_HISTORY_SAVE_MUTATION, Tl as ASSISTANT_HISTORY_SAVE_OPERATION, Rl as ASSISTANT_HISTORY_SCHEMA_PAUSE_MS, zu as ASSISTANT_HISTORY_STORAGE_NAME, Bu as ASSISTANT_HISTORY_TOMBSTONE_TTL_MS, Xi as ASSISTANT_I18N_COMPUTED_COPY, Zi as ASSISTANT_I18N_LITERAL_COPY, Qi as ASSISTANT_I18N_MANIFEST, vr as ASSISTANT_LANGUAGES, H as ASSISTANT_MODE_FALLBACK_LABELS, U as ASSISTANT_MODE_IDS, fc as ASSISTANT_MODE_META, gs as ASSISTANT_OVERLAY_ATTR, Hc as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, Uc as ASSISTANT_OVERLAY_DESKTOP_QUERY, Wc as ASSISTANT_OVERLAY_TOP_VAR, _s as ASSISTANT_PANEL_ATTR, Gc as ASSISTANT_SHEET_BASE_CLASS, Kc as ASSISTANT_SHEET_COMPACT_CLASS, qc as ASSISTANT_SHEET_EXPANDED_CLASS, Jc as ASSISTANT_TOGGLE_SHORTCUT_LABEL, ui as ATTACHMENT_ACCEPT, qi as ATTACHMENT_SOURCES, ka as AUTO_CARRY_OVER_MAX_CHARS, Aa as AUTO_CARRY_OVER_MAX_CHARS_PER_MESSAGE, ja as AUTO_CARRY_OVER_MAX_MESSAGES, pc as AUTO_MODE_OPTION_ID, Ma as AUTO_READ_MODE, vc as AUTO_VOICE, Na as AUTO_WRITE_MODE, lf as AssistantApiCallsConsentDialog, Es as AssistantAttachmentButton, Ds as AssistantAttachmentChips, rs as AssistantAutoSpeakToggle, To as AssistantAvatar, uf as AssistantChatArea, af as AssistantComposer, ms as AssistantConnectSourceItem, us as AssistantConnectSourceProvider, rd as AssistantConversationList, id as AssistantEmptyState, Zs as AssistantEntityPreview, ml as AssistantHeader, Ac as AssistantHistoryDeletedNotice, jc as AssistantHistoryLoadState, Mc as AssistantHistoryReadOnlyBanner, jl as AssistantHistoryResponseError, Ml as AssistantHistoryScopeInactiveError, Nc as AssistantHistoryShowEarlier, Pc as AssistantHistoryUnsavedDeleteNotice, l as AssistantI18nProvider, os as AssistantLanguageMenu, uc as AssistantLanguageSelector, m as AssistantMarkdownImage, _ as AssistantMarkdownRenderer, is as AssistantMessageAttachments, _d as AssistantMessageItem, vd as AssistantMessageList, mc as AssistantModeSelector, pl as AssistantMoreMenu, v as AssistantNavigateProvider, ff as AssistantOverlay, pf as AssistantOverlayProvider, as as AssistantPendingWriteCard, cc as AssistantPreviewBridgeHost, lc as AssistantPreviewOverlay, Os as AssistantPreviewProvider, r as AssistantProductProvider, ss as AssistantReplyLanguageSelector, Ve as AssistantRuntimeManager, ra as AssistantSendRefusal, cs as AssistantSpeakButton, Uo as AssistantSpeechProvider, ls as AssistantSpokenTurnsNotice, Xs as AssistantStepRail, bo as AssistantToolActivity, hd as AssistantTurnActivity, _c as AssistantVoiceButton, bc as AssistantVoiceOrb, yc as AssistantVoiceSelector, yd as AssistantVoiceSession, xc as AssistantVoiceSessionButton, di as AttachmentRejectedError, Wr as BOILERPLATE_PAGE_SHARE, tt as BUILT_IN_MODE_CAPABILITIES, Sc as CAPTION_SCROLL_ATTR, M as CHECK_AI_CREDITS, N as CREATE_SANDBOX, fi as DEFAULT_INLINE_LIMITS, Zn as DEFAULT_SPEAKABLE_LABELS, yr as DEFAULT_SPEECH_RATE, lt as DEFAULT_STREAM_BUDGET_MS, Pn as ENDPOINT_GRACE_MS, P as EXTEND_SANDBOX_TTL, dc as FOLLOW_APP_LOCALE, F as GET_ACTIVE_SANDBOXES, I as GET_SANDBOX, Cu as HISTORY_CATCH_UP_MAX_GAP, wu as HISTORY_CATCH_UP_PAGE, au as HISTORY_CLIENT_ID_PATTERN, ou as HISTORY_ENTRY_CONTENT_CAP_BYTES, Tu as HISTORY_LOAD_PAGE, su as HISTORY_MAX_CONTENT_BYTES, cu as HISTORY_METADATA_ENVELOPE_MAX_BYTES, lu as HISTORY_METADATA_KEYS, uu as HISTORY_REQUEST_HEADROOM_BYTES, ad as HISTORY_RESUME_CLOSE, od as HISTORY_RESUME_MAX_ANSWER_CHARS, sd as HISTORY_RESUME_MAX_CHARS, cd as HISTORY_RESUME_MAX_EXCHANGES, ld as HISTORY_RESUME_MAX_PROMPT_CHARS, ud as HISTORY_RESUME_OPEN, du as HISTORY_SAVE_REQUEST_BUDGET_BYTES, fu as HISTORY_TRUNCATION_MARKER, Dt as HOSTED_DISABLE_MS, Ot as HOSTED_TTS_MAX_CHARS, Ct as HOSTED_TTS_TIER, wt as HOSTED_VOICES, Ut as HOSTED_VOICE_RANK, ac as HostedPreviewBridgeContext, Us as IDLE_ACTIVE_TAB, wa as IDLE_PLAYBACK, Ps as IDLE_PREVIEW, As as IDLE_PREVIEW_STATE, kn as IDLE_ROTATION_CLOCK, ut as INCOMPLETE_TURN_NOTICES, Fn as INITIAL_SESSION, wr as INITIAL_TRANSCRIPT_AUTO_OPEN, pi as INLINE_IMAGE_MAX_DIM, mi as INLINE_IMAGE_QUALITY, In as INTERRUPT_MAX_MS, Ln as INTERRUPT_MIN_MS, Hl as LEGACY_HISTORY_KEY_PREFIX, fa as LEGACY_WRITE_CONSENT_KEY, nt as MAX_ASSISTANT_STREAM_BUDGET_MS, hi as MAX_ATTACHMENTS, Gr as MAX_BOILERPLATE_LINE_CHARS, gi as MAX_CONFIGURABLE_INLINE_CHARS, Kr as MAX_EXTRACTED_CHARS, _i as MAX_FILE_BYTES, vi as MAX_INLINE_CHARS_PER_FILE, yi as MAX_INLINE_CHARS_TOTAL, le as MAX_INLINE_IMAGE_BASE64_BYTES, bi as MAX_INLINE_IMAGE_BASE64_CHARS, xi as MAX_INLINE_IMAGE_PARTS, Si as MAX_INLINE_TURN_BODY_BYTES, qr as MAX_PDF_PAGES_SCANNED, Cd as MAX_REPORTED_TURN_MS, ue as MAX_REQUEST_BODY_BYTES, Qn as MAX_SPEAKABLE_CHARS, $n as MAX_SPOKEN_TABLE_ROWS, Ci as MAX_TURN_BODY_BYTES, lr as MINI_CAPTION_BUDGET, Jr as MIN_PAGE_TEXT_CHARS, Yr as MIN_TEXT_PAGE_SHARE, Rn as NOTHING_HEARD, mo as NO_FIRST_TEXT, Fs as NO_OWNER, vs as NO_PANEL_OVERLAY, Ar as PENDING_WRITE_APPROVAL_WINDOW_MS, _n as PHRASE_ROTATE_MS, dr as POLL_FAST_MS, fr as POLL_FAST_UNTIL_MS, pr as POLL_SLOW_MS, mr as POLL_STEADY_MS, hr as POLL_STEADY_UNTIL_MS, sr as PREVIEW_LANGUAGES, Fd as PREWARM_COOLDOWN_MS, K as PRODUCT_ASSISTANT_MODE_ID_MAX_LENGTH, q as PRODUCT_ASSISTANT_MODE_ID_PATTERN, wi as PROMPT_ENVELOPE_RESERVE_BYTES, Ti as PROVIDER_READABLE_FILE_MEDIA_TYPES, L as PROXY_SANDBOX_REQUEST, $s as REDUCED_MOTION_ATTRIBUTE, ec as REDUCED_MOTION_QUERY, R as REPORT_AI_TOKEN_USAGE, z as REPORT_MY_ASSISTANT_TURN_TIMINGS, de as REQUEST_TOO_LARGE_REFUSAL, Qo as SANDBOX_READY_TTL_MS, zn as SILENCE_SUBMIT_MS, kt as SPEAKING_RATE_MAX, At as SPEAKING_RATE_MAX_STREAMING, jt as SPEAKING_RATE_MAX_SYNC, Mt as SPEAKING_RATE_MIN, er as SPEECH_CHUNK_CHARS, tr as SPEECH_CHUNK_CJK_CHARS, Wt as SPEECH_LANG, ba as SPOKEN_LABEL_LANGUAGES, vn as STAGE_COPY, e as START_RETRY_COOLDOWN_MS, B as STOP_ASSISTANT_SANDBOX, dt as STREAM_BUDGET_MS, pa as TAKE_ACTION_ENGLISH, yn as THINKING_PHRASES, Ei as TURN_BODY_HEADROOM_BYTES, Eo as TURN_MILESTONES, et as TURN_OUTCOME_COPY, Do as TURN_SEGMENTS, Oo as TURN_TIMELINE_EVENT, kd as TURN_TIMING_REPORTING, wd as TURN_TIMING_REPORT_FIELDS, Td as TURN_TIMING_STAGES, gd as TurnActivityLine, rt as UNAVAILABLE_MODE_REFUSAL, it as UNDECLARED_MODE_CAPABILITIES, sl as VOICE_ESCAPE_LAYER_SELECTOR, cl as VOICE_ESCAPE_MODAL_SELECTOR, Gt as VOICE_LIST_TIMEOUT_MS, wn as VOICE_MUTED_LABEL, Tn as VOICE_THINKING_LABEL, Cc as VoiceCaption, wc as VoiceConversationView, Oc as VoiceMiniController, kc as VoiceStage, Ec as VoiceStatusLine, Dc as VoiceStatusText, Fc as VoiceTranscriptDrawer, Tc as VoiceWaveform, V as WAIT_FOR_SANDBOX_RUNNING, Id as WarmCancelled, fe as abortAssistantTurn, Yc as aboveAssistantBottomChrome, ys as activePanelOverlay, at as adminOnlyModeSendRefusal, sa as adminOnlyModeSendRefusalAfterAccess, Bn as advanceHeardClock, An as advanceRotationClock, Qd as aiCreditsUpdatedEventName, Eu as applyHistoryPage, Is as applyPreviewEvent, jr as approvalFollowUpReplyIds, pe as approvePendingWrite, Mr as approvedPendingWriteIds, ed as assistantHistory, zl as assistantHistoryBackoffMs, ju as assistantHistoryGenerationOf, Ul as assistantHistoryScopeKey, Vu as assistantHistoryStore, $i as assistantI18nSeedCopy, W as assistantModeFallbackLabel, ea as assistantModeI18nCopy, hc as assistantModeMeta, Xc as assistantOverlayClassName, Zc as assistantOverlayEscapeAction, Qc as assistantOverlayKeys, bs as assistantPanelOwnsEscape, $c as assistantQuotaKindOf, y as assistantRoutePath, u as assistantTranslationKey, b as assistantUrlTransform, Pa as autoCarryOverFor, Fa as autoSuggestions, Ji as availableAttachmentSources, Nt as base64ToBytes, Nr as beginApprovalInFlight, ko as beginTurn, Hu as boundAssistantHistoryHeaders, x as browserShouldHandle, St as browserSpeechEngine, Ed as buildAbandonedTurnReport, ho as buildAssistantProgress, me as buildAssistantSandboxEnv, Di as buildAttachmentPromptBlock, Ia as buildAutoCarryOver, da as buildBoundedAttachmentTurn, Jn as buildContinuedFromVoiceNote, El as buildHistoryDeleteVariables, Dl as buildHistoryEntriesVariables, Ol as buildHistoryPageVariables, dd as buildHistoryResumePreamble, kl as buildHistorySaveVariables, He as buildProgress, he as buildPromptGatewayRequest, Oi as buildPromptParts, ge as buildPromptRequestBody, ki as buildPromptWithAttachments, Pt as buildRequest, k as buildSandboxContextInput, Dd as buildTurnTimingReport, Yn as buildVoiceTranscriptMarkdown, J as builtInModeExtendedBy, ht as chatTurns, _e as checkAssistantAiCredits, Yd as chooseDestinationCopy, nr as chunkForSpeech, Bl as classifyAssistantHistoryError, S as classifyAssistantHref, La as classifyAssistantIntent, Ai as classifyAttachment, Ft as classifyHttpFailure, w as classifyQuotaError, ia as classifyTurnFailure, Xr as columnLetterToIndex, Wl as completeAssistantHistoryScope, En as composeVoiceStatus, an as configureSpeechEngine, hs as connectSourceActivation, ds as connectSourceHrefRenders, Ld as consumeWarm, rr as containsCjk, Jl as conversationHasHistory, p as copyToClipboard, ji as countInlineImageCandidates, Mi as countInlinedImageParts, So as countSpokenTurns, ca as createAdminModeAccessGate, td as createAssistantHistoryEngine, Mu as createAssistantHistoryStatusStore, Uu as createAssistantHistoryStore, el as createAssistantNavigate, Ls as createAssistantPreviewSurface, ve as createAssistantSandbox, ye as createAssistantSession, Nl as createGatewayHistoryTransport, Ha as createGuardedAssistantStorage, Vt as createHostedTtsEngine, Fu as createProfileBoundStorage, $o as createReadinessTracker, rn as createRoutingSpeechEngine, Vs as createRunIdentityCache, Qe as createSandboxAssistantTransport, on as createSpeechEngines, nd as createSystemHistoryClock, Ad as createTurnTimingNonce, jd as createTurnTimingReporter, Rs as currentPreviewOwner, Y as declareAssistantMode, It as decodeAudioResponse, Zr as decodeXmlEntities, ta as describePermissionError, T as describeQuotaError, Ao as describeTurn, Ni as detectDocumentFormat, Sa as detectScriptLocale, jo as detectTurnDevice, Yi as deviceHasCamera, Lt as disableDurationMs, $d as dispatchAssistantQuotaExhausted, Qr as docxXmlToText, be as downloadAssistantArtifact, dl as downloadFile, co as elapsedSince, Wu as emptyAssistantHistoryPersisted, Gu as emptyAssistantHistoryScopeState, Pr as endApprovalInFlight, Ra as escalationToUndo, ll as escapeBelongsToLayerAbove, xs as escapeDismisses, Pi as estimateTurnBodyBytes, A as executeAssistantGraphQLOnce, j as executeSandboxGraphQL, fl as exportConversation, xe as extendAssistantSandboxTTL, E as extensionObjectsIn, nf as extractDocumentText, pu as filterHistoryMetadata, br as findAssistantLanguage, ot as findAssistantModeConfig, Se as findExistingSandbox, Ce as findExistingSandboxWithStatus, Or as findPendingWrite, mu as fitHistoryMetadataEnvelope, $r as fitPdfPages, Ss as focusIsInsidePanel, Fr as forgetLiveTurns, Fi as formatBytes, ei as formatPageRanges, we as forwardsUserTokensToSandbox, hu as fromHistoryEntry, Ko as getActorId, Ir as getApprovalInFlight, Te as getAssistantArtifacts, so as getAssistantDisplayContent, Ue as getAssistantMedia, Ee as getAssistantMessages, De as getAssistantSession, Oe as getAssistantStreamAccess, We as getAssistantText, Ii as getAttachmentSendBlocker, ae as getCapability, Li as getExtension, Ua as getHistoryStamp, $ as getImageForMode, ee as getImageTagForMode, qo as getOrganizationId, Ge as getRawMessageCreatedAt, te as getResourcesForMode, ne as getSandboxImageRegistry, Ri as getSendableAttachments, sn as getSpeechEngine, Ke as getToolProgress, Jo as getWorkspaceId, Lr as goAheadSentReplyIds, gt as groupBySession, _t as groupConsecutiveBySession, zi as hasAttachmentWorkInFlight, fs as hasConnectSource, Du as highestContiguousHistorySeq, Yl as historyConvKeyOf, gu as historyEntriesMatchKind, Xl as historyHeaderOf, Wa as historyOpenFilter, Zl as historyScopeKeyOfStamp, Al as historyTimestampToIso, Tt as hostedLocaleFor, Et as hostedSupportsLanguage, h as imageHostLabel, ft as incompleteTurnNotice, Ud as isAlreadyThere, X as isAssistantModeId, tl as isAssistantToggleShortcut, za as isAutoRoutingOffered, js as isBlankProse, G as isBuiltInAssistantMode, Vn as isCapturing, Mo as isComparableTurn, Nu as isCurrentAssistantHistoryGeneration, Wd as isCurrentPath, Hn as isEcho, Od as isFinishedTurn, _u as isHistoryClientId, Ga as isHistoryConversationBusy, Kt as isHostedVoice, fd as isKnownReadOnlyMode, ro as isLegacyFiller, Gl as isLegacyHistoryConvKey, io as isLegacyStopped, Rr as isLiveTurn, ti as isMostlyImagePages, Yo as isMultimodalBodyRejection, Xo as isNeverRecoverableAssistantError, Ku as isNewerAssistantHistoryFormat, Ql as isOtherScopeHistoryConversation, of as isProdRuntime, Z as isProductAssistantModeId, Bi as isProviderReadableFilePart, D as isQuotaExhaustedError, $l as isReadOnlyHistoryConversation, qe as isReapedSandboxConnectionError, es as isRecentlyVerified, Je as isRecoverable, Zo as isRecoverableAssistantError, g as isRemoteImageSrc, eu as isReusableHistoryDraft, Ms as isRunningStatus, Ta as isSpeakingMessage, qt as isSpeechBlocked, ao as isStageCopy, Un as isSubmittable, eo as isTurnInFlight, oe as isUnknownFieldError, vt as isVoiceTurn, ma as isWriteModeAcknowledged, ni as joinSheets, Jt as languageDisplayName, Vi as largestInlineCharsPerFile, Kl as legacyHistoryConvKey, Ye as mapSessionToHistory, zr as markLiveTurn, se as markSupported, No as markTurn, ce as markUnsupported, Gd as matchLocalUiCommand, tu as materializeHistoryHeader, Tr as maySendSpokenTurn, vu as measureHistorySaveRequest, qu as mergeAssistantHistoryPersisted, Ju as mergeAssistantHistoryWithStored, Ou as mergeHistoryMessages, Xe as mergeMessagesById, Za as mergePersistedAssistantState, dn as micIsInterrupt, ke as modeRequiresConfirmWrites, lo as msUntilNextPhrase, Kd as navDestinations, Xd as navigationCommandCopy, Br as newestModelReplyId, Ws as nextActiveTab, nl as nextAssistantOpenState, gc as nextModeIndex, Cs as nextPanelOverlays, Ns as nextPreviewEvents, qd as normaliseUtterance, Yt as normalizeLangTag, ef as notifyAiCreditsUpdated, Ka as notifyAssistantStorageFull, Wn as orbMode, ri as pageMarker, oc as panelOwnedPreviewBridge, ws as panelOwnsEscape, kr as parseConfirmationRefusal, Hi as parseDataUrl, ii as parseSharedStrings, xo as parseToolActivity, ai as parseWorkbookSheets, oi as pdfTextItemsToPage, na as permissionRefusalMessage, Gs as pinActiveTab, to as planAbandonedTurn, ts as planAfterTransportFailure, Vl as planAssistantHistoryRetry, ku as planHistoryEarlierLoad, Au as planHistoryOpenLoad, Gn as planReplyConsumption, Jd as planThemeChange, Er as planTranscriptAutoOpen, ns as planTrustedSandboxFailure, no as planTurnAbort, Dr as planVoiceSessionBinding, gr as pollDelayMs, Rd as prewarmTarget, Xt as primaryLanguageSubtag, Ae as promptGatewayRequestBytes, Yu as pruneAssistantHistoryPersisted, rl as publishedAssistantDockWidth, Ea as publishedChunks, O as quotaExhaustedEventName, go as readAheadFor, Xu as readAssistantHistoryPersisted, il as readAssistantOverlayFlag, tc as readReducedMotion, cn as readSpeechEngineConfig, Po as recentTurnTimelines, je as releaseSupersededAssistantSandboxes, Sr as replyFollowsInput, Me as reportAssistantAiTokenUsage, al as requestedAssistantOpenState, Da as requiresCancel, ln as resetSpeechEngine, Fo as resetTurnTimelines, Md as resetTurnTimingReporting, zd as resetWarmsForTest, Qa as resolveActiveModeSandbox, Vr as resolveApprovablePendingWrite, Ui as resolveAssistantInlineLimits, xr as resolveAssistantLanguage, st as resolveAssistantModeCapabilities, la as resolveAssistantSendModeAfterAccess, Ba as resolveAutoRoute, nu as resolveHistoryReopenMode, Cr as resolveLanguagePair, i as resolveModeConfig, Hr as resolveRetryableMessageId, re as resolveSandboxAssistantMode, Ca as resolveSpeechLocale, Io as restartAttempt, ha as restoreAcknowledgedWriteModes, Va as restoreAutoRouting, pd as resumeContextFor, Ht as retryDelayMs, jn as rotationElapsedMs, zs as runBelongsTo, Hs as runIdentities, Bs as sameOwner, ie as sandboxBaseModeFor, Ne as sandboxStatusOf, Ze as sanitize, Lo as segmentStats, ru as selectAssistantHistoryList, Pe as selectExistingAssistantSandbox, iu as selectHistoryEvictions, Fe as selectSupersededAssistantSandboxes, Zt as selectVoiceForLocale, Ie as sendAssistantPromptAsync, Nd as sendAssistantTurnTimings, Le as sendHeartbeat, qa as setAssistantStorageFullHandler, Ja as setHistoryBusyProbe, Ya as setHistoryOpenFilterSource, Xa as setHistoryStampSource, Zu as settleAssistantHistory, Bd as settleWarmBeforeSend, si as sheetXmlToRows, Rt as shouldDisableEngine, Ks as shouldPinOnMove, qs as shouldPinOnSelect, ur as showPreviousChunk, fn as showsAssistantCaption, pn as showsUserCaption, _o as snapshotReplyFloor, zt as speakableChunks, ir as speakableEmail, Qt as speechGate, xa as speechLabelsFor, $t as speechLangForLocale, Oa as speechPlaybackReducer, Bt as splitForVendor, ar as splitTableRow, Co as spokenMessagesSinceContinueNote, Kn as spokenSoFar, wo as spokenTurnText, bn as stageText, t as startIsCoolingDown, uo as startPhraseTicker, Mn as startRotationTicker, vo as startSessionReadAhead, Pd as startTurnTimingReporting, Vd as startWarm, xn as statusStageCopy, Js as stepsFromToolActivity, Re as stopReapedAssistantSandbox, pt as streamBudgetMs, oo as stripLegacyFillerPrefix, Ur as subscribeApprovalInFlight, nc as subscribeReducedMotion, un as subscribeSpeechEngine, Ro as subscribeTurnTimelines, ci as summarisePageText, zo as summariseTurnTimelines, Nn as syncRotationClock, Ys as tabForArrowKey, Zd as themeCommandCopy, Sn as thinkingPhrase, Cn as thinkingPhraseEntry, _r as toCaptionText, yu as toHistoryEntries, Wi as toMessageAttachment, or as toSpeakableText, bu as toStorableHistoryText, yo as trackFirstText, Gi as truncateForInline, li as truncatePagesForInline, xu as truncateUtf8, fo as turnActivityCopy, po as turnActivityStage, Bo as turnClockMs, aa as turnOutcomeCopy, Vo as turnSegments, Ho as turnTimeline, ct as unofferedModeSendRefusal, ua as unofferedModeSendRefusalAfterAccess, bd as useAssistantApiAccess, rf as useAssistantAttachments, ps as useAssistantConnectSource, mf as useAssistantDockWidth, sf as useAssistantHeartbeat, Pu as useAssistantHistoryStatus, Qu as useAssistantHistoryStore, d as useAssistantI18nNamespace, cf as useAssistantKeyboardShortcuts, C as useAssistantNavigate, hf as useAssistantOverlayOrNull, a as useAssistantPageLabel, ks as useAssistantPreview, ic as useAssistantPreviewBridge, o as useAssistantProduct, s as useAssistantProductOrNull, gf as useAssistantQuotaExhausted, md as useAssistantServerHistory, Wo as useAssistantSpeech, c as useAssistantStorageFolders, $a as useAssistantStore, f as useAssistantTr, xd as useConversationTurns, Ts as useDropdownEscape, sc as useHostedAssistantPreviewBridge, Qs as useOverlayFocus, rc as usePrefersReducedMotion, $e as useSandboxAssistantTransport, n as useVoiceInput, Go as useVoiceSession, tf as useWorkspaceWriteAccess, Su as utf8ByteLength, Ki as validateFile, en as voiceAvailability, yt as voiceMarker, cr as voicePreviewText, tn as voiceQualityRank, ul as voiceSessionEscapeAction, bt as voiceSessionIdOf, qn as voiceSessionReducer, mn as voiceStageState, Dn as voiceStatusParts, On as voiceStatusSuffix, Xn as voiceTranscriptFilename, xt as voiceTurnsOnly, nn as voicesForLocale, ze as waitForAssistantServiceReady, Be as waitForSandboxRunning, Hd as warmState, hn as waveformIsActive, gn as waveformIsSettled, mt as withIncompleteTurnNotice, ga as withWriteModeAcknowledged, ol as writeAssistantOverlayFlag, _a as writeModeConsentCopy, va as writeModeSendRefusal, ya as writeModeSendRefusalReason };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fe-libs",
3
- "version": "2026.927.3",
3
+ "version": "2026.928.1",
4
4
  "description": "Burdenoff frontend primitives and domain libraries",
5
5
  "type": "module",
6
6
  "bin": {