@burdenoff/fe-libs 2026.925.5 → 2026.925.6

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.
@@ -42,6 +42,12 @@ interface Props {
42
42
  * which is what hides the control rather than offering a dead button.
43
43
  */
44
44
  onStartVoiceSession?: () => void;
45
+ /**
46
+ * A draft has begun — the first keystroke, dictated phrase or attachment.
47
+ * Fired once per empty → non-empty change, so the panel can start the
48
+ * sandbox while the person is still typing (BOFF-7801).
49
+ */
50
+ onDraftStart?: () => void;
45
51
  }
46
52
  /**
47
53
  * AssistantComposer — the v2 input surface (per the ai-assistant-v2 mockups).
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantComposer.d.ts","sourceRoot":"","sources":["../../../../../src/shared/assistant/ui/composer/AssistantComposer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,EAAE,EAER,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AAEjC,UAAU,KAAK;IACb;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;IACtE,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,qDAAqD;IACrD,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC;;;;;;;;;;OAUG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C,qFAAqF;IACrF,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;CAClC;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,KAAK,CA+ZvC,CAAC"}
1
+ {"version":3,"file":"AssistantComposer.d.ts","sourceRoot":"","sources":["../../../../../src/shared/assistant/ui/composer/AssistantComposer.tsx"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,EAAE,EAER,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,OAAO,EAGL,KAAK,mBAAmB,EAEzB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AAEjC,UAAU,KAAK;IACb;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;IACtE,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,qDAAqD;IACrD,cAAc,EAAE,mBAAmB,EAAE,CAAC;IACtC;;;;;;;;;;OAUG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC5C,qFAAqF;IACrF,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAID;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,KAAK,CA6avC,CAAC"}
@@ -1,179 +1,183 @@
1
1
  import { useI18n as e } from "../../../providers/shell/I18nProvider.js";
2
2
  import { useVoiceInput as t } from "../../voice/useVoiceInput.js";
3
- import { useAssistantTr as n } from "../../i18n.js";
4
- import { languageDisplayName as ee } from "../../voice/speechVoices.js";
3
+ import { useAssistantTr as ee } from "../../i18n.js";
4
+ import { languageDisplayName as n } from "../../voice/speechVoices.js";
5
5
  import { resolveAssistantLanguage as r } from "../../voice/languages.js";
6
- import { getSendableAttachments as te } from "../../attachments.js";
7
- import { useAssistantStore as ne } from "../../store.js";
8
- import { AssistantAttachmentButton as re } from "./AssistantAttachmentButton.js";
9
- import { AssistantAttachmentChips as i } from "./AssistantAttachmentChips.js";
10
- import { AssistantModeSelector as a } from "./AssistantModeSelector.js";
11
- import { AssistantVoiceButton as o } from "./AssistantVoiceButton.js";
12
- import { AssistantVoiceSessionButton as s } from "../voice/AssistantVoiceSessionButton.js";
13
- import { useAssistantAttachments as c } from "../../useAssistantAttachments.js";
14
- import { useCallback as l, useLayoutEffect as u, useMemo as ie, useRef as d, useState as f } from "react";
15
- import { ArrowUp as ae, Loader2 as oe } from "lucide-react";
16
- import { jsx as p, jsxs as m } from "react/jsx-runtime";
6
+ import { getSendableAttachments as i } from "../../attachments.js";
7
+ import { useAssistantStore as a } from "../../store.js";
8
+ import { AssistantAttachmentButton as o } from "./AssistantAttachmentButton.js";
9
+ import { AssistantAttachmentChips as s } from "./AssistantAttachmentChips.js";
10
+ import { AssistantModeSelector as c } from "./AssistantModeSelector.js";
11
+ import { AssistantVoiceButton as te } from "./AssistantVoiceButton.js";
12
+ import { AssistantVoiceSessionButton as ne } from "../voice/AssistantVoiceSessionButton.js";
13
+ import { useAssistantAttachments as re } from "../../useAssistantAttachments.js";
14
+ import { useCallback as l, useEffect as ie, useLayoutEffect as u, useMemo as d, useRef as f, useState as p } from "react";
15
+ import { ArrowUp as m, Loader2 as h } from "lucide-react";
16
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
17
17
  //#region src/shared/assistant/ui/composer/AssistantComposer.tsx
18
- var h = 200, g = ({ writeAccessDenied: g = !1, onSend: _, disabled: v = !1, placeholder: y, mode: b, availableModes: x, attachmentCharsPerFile: S, onModeChange: C, auto: w, onStartVoiceSession: T }) => {
19
- let E = n(), { locale: D } = e(), O = d(null), [k, A] = f(""), [j, M] = f(!1), N = d(0), { attachments: P, isBusy: F, preparingCount: I, sendBlocker: L, rejection: R, addFiles: z, remove: B, retry: V, clear: H, clearRejection: se, canAddMore: U } = c({ perFileChars: S }), W = l((e) => {
20
- A((t) => t ? `${t.replace(/\s+$/, "")} ${e}` : e);
21
- }, []), G = ne((e) => e.assistantLanguage), K = t({
22
- onFinalize: W,
23
- language: ie(() => r(G, D), [G, D]).tag
24
- }), ce = y ?? E("composer.placeholder", "Ask me anything…"), q = k.trim(), J = te(P), Y = P.filter((e) => e.status === "error"), X = (q.length > 0 || J.length > 0) && !v && L === null;
18
+ var v = 200, y = ({ writeAccessDenied: y = !1, onSend: b, disabled: x = !1, placeholder: ae, mode: oe, availableModes: S, attachmentCharsPerFile: se, onModeChange: ce, auto: le, onStartVoiceSession: C, onDraftStart: w }) => {
19
+ let T = ee(), { locale: E } = e(), D = f(null), [O, k] = p(""), [A, j] = p(!1), M = f(0), { attachments: N, isBusy: P, preparingCount: F, sendBlocker: I, rejection: L, addFiles: R, remove: z, retry: B, clear: V, clearRejection: H, canAddMore: ue } = re({ perFileChars: se }), U = O.trim() !== "" || N.length > 0, W = f(!1);
20
+ ie(() => {
21
+ U && !W.current ? (W.current = !0, w?.()) : U || (W.current = !1);
22
+ }, [U, w]);
23
+ let de = l((e) => {
24
+ k((t) => t ? `${t.replace(/\s+$/, "")} ${e}` : e);
25
+ }, []), G = a((e) => e.assistantLanguage), K = t({
26
+ onFinalize: de,
27
+ language: d(() => r(G, E), [G, E]).tag
28
+ }), fe = ae ?? T("composer.placeholder", "Ask me anything…"), q = O.trim(), J = i(N), Y = N.filter((e) => e.status === "error"), X = (q.length > 0 || J.length > 0) && !x && I === null;
25
29
  u(() => {
26
- let e = O.current;
27
- e && (e.style.height = "auto", e.style.height = `${Math.min(e.scrollHeight, h)}px`);
28
- }, [k]);
30
+ let e = D.current;
31
+ e && (e.style.height = "auto", e.style.height = `${Math.min(e.scrollHeight, v)}px`);
32
+ }, [O]);
29
33
  let Z = l(() => {
30
- X && (K.isActive && K.stop(), _(k.trim(), J), A(""), H());
34
+ X && (K.isActive && K.stop(), b(O.trim(), J), k(""), V());
31
35
  }, [
32
36
  X,
33
- _,
34
- k,
37
+ b,
38
+ O,
35
39
  J,
36
- H,
40
+ V,
37
41
  K
38
- ]), le = l((e) => {
42
+ ]), pe = l((e) => {
39
43
  e.key === "Enter" && !e.shiftKey && (e.preventDefault(), Z());
40
- }, [Z]), Q = l((e) => {
44
+ }, [Z]), me = l((e) => {
41
45
  let t = Array.from(e.clipboardData?.files ?? []);
42
- t.length !== 0 && (e.preventDefault(), z(t));
43
- }, [z]), ue = l((e) => {
44
- Array.from(e.dataTransfer?.types ?? []).includes("Files") && (N.current += 1, M(!0));
45
- }, []), de = l(() => {
46
- N.current = Math.max(0, N.current - 1), N.current === 0 && M(!1);
47
- }, []), fe = l((e) => {
46
+ t.length !== 0 && (e.preventDefault(), R(t));
47
+ }, [R]), he = l((e) => {
48
+ Array.from(e.dataTransfer?.types ?? []).includes("Files") && (M.current += 1, j(!0));
49
+ }, []), ge = l(() => {
50
+ M.current = Math.max(0, M.current - 1), M.current === 0 && j(!1);
51
+ }, []), _e = l((e) => {
48
52
  Array.from(e.dataTransfer?.types ?? []).includes("Files") && e.preventDefault();
49
- }, []), pe = l((e) => {
50
- e.preventDefault(), N.current = 0, M(!1), z(e.dataTransfer?.files ?? null);
51
- }, [z]), me = (e) => {
53
+ }, []), Q = l((e) => {
54
+ e.preventDefault(), M.current = 0, j(!1), R(e.dataTransfer?.files ?? null);
55
+ }, [R]), ve = (e) => {
52
56
  switch (e) {
53
- case "too-many": return E("attachments.tooMany", "You can attach up to {{max}} files per message.", { max: 5 });
54
- case "too-large": return E("attachments.tooLarge", "That file is larger than 10 MB.");
55
- case "empty": return E("attachments.empty", "That file is empty.");
56
- case "unreadable": return E("attachments.unreadable", "That file could not be read.");
57
- case "unsupported-image": return E("attachments.unsupportedImage", "This device can't read that image format, so it can't be resized to send. Save it as JPEG and try again.");
57
+ case "too-many": return T("attachments.tooMany", "You can attach up to {{max}} files per message.", { max: 5 });
58
+ case "too-large": return T("attachments.tooLarge", "That file is larger than 10 MB.");
59
+ case "empty": return T("attachments.empty", "That file is empty.");
60
+ case "unreadable": return T("attachments.unreadable", "That file could not be read.");
61
+ case "unsupported-image": return T("attachments.unsupportedImage", "This device can't read that image format, so it can't be resized to send. Save it as JPEG and try again.");
58
62
  }
59
63
  }, $ = (() => {
60
64
  switch (K.error) {
61
- case "not-allowed": return E("voice.denied", "Microphone access is blocked. Allow it in your browser settings to dictate.");
62
- case "audio-capture": return E("voice.noMic", "No microphone was found.");
63
- case "network": return E("voice.network", "Speech recognition is offline right now.");
64
- case "language-not-supported": return E("voice.languageNotSupported", "This browser cannot recognise spoken {{language}}. Try a different browser, or type instead.", { language: ee(K.language, D) });
65
- case "unknown": return E("voice.failed", "Dictation stopped unexpectedly.");
65
+ case "not-allowed": return T("voice.denied", "Microphone access is blocked. Allow it in your browser settings to dictate.");
66
+ case "audio-capture": return T("voice.noMic", "No microphone was found.");
67
+ case "network": return T("voice.network", "Speech recognition is offline right now.");
68
+ case "language-not-supported": return T("voice.languageNotSupported", "This browser cannot recognise spoken {{language}}. Try a different browser, or type instead.", { language: n(K.language, E) });
69
+ case "unknown": return T("voice.failed", "Dictation stopped unexpectedly.");
66
70
  default: return null;
67
71
  }
68
72
  })();
69
- return /* @__PURE__ */ m("div", {
73
+ return /* @__PURE__ */ _("div", {
70
74
  className: "flex-shrink-0 px-3 pb-3 pt-1.5",
71
75
  children: [
72
- /* @__PURE__ */ m("div", {
73
- onDragEnter: ue,
74
- onDragLeave: de,
75
- onDragOver: fe,
76
- onDrop: pe,
77
- className: `rounded-2xl border p-2 shadow-sm transition-colors focus-within:border-action-primary-bg focus-within:ring-2 focus-within:ring-action-primary-bg/15 ${j ? "border-action-primary-bg border-dashed bg-action-primary-bg/5" : "border-border-default bg-bg-sunken"}`,
76
+ /* @__PURE__ */ _("div", {
77
+ onDragEnter: he,
78
+ onDragLeave: ge,
79
+ onDragOver: _e,
80
+ onDrop: Q,
81
+ className: `rounded-2xl border p-2 shadow-sm transition-colors focus-within:border-action-primary-bg focus-within:ring-2 focus-within:ring-action-primary-bg/15 ${A ? "border-action-primary-bg border-dashed bg-action-primary-bg/5" : "border-border-default bg-bg-sunken"}`,
78
82
  "data-testid": "assistant-composer",
79
83
  children: [
80
- /* @__PURE__ */ p(i, {
81
- attachments: P,
82
- onRemove: B,
83
- onRetry: V,
84
- disabled: v,
85
- preparingCount: I
84
+ /* @__PURE__ */ g(s, {
85
+ attachments: N,
86
+ onRemove: z,
87
+ onRetry: B,
88
+ disabled: x,
89
+ preparingCount: F
86
90
  }),
87
- /* @__PURE__ */ m("div", {
91
+ /* @__PURE__ */ _("div", {
88
92
  className: "flex items-end gap-2",
89
93
  children: [
90
- /* @__PURE__ */ p(re, {
91
- onFiles: z,
92
- canAddMore: U,
93
- disabled: v
94
+ /* @__PURE__ */ g(o, {
95
+ onFiles: R,
96
+ canAddMore: ue,
97
+ disabled: x
94
98
  }),
95
- /* @__PURE__ */ p("textarea", {
96
- ref: O,
97
- value: k,
98
- onChange: (e) => A(e.target.value),
99
- onKeyDown: le,
100
- onPaste: Q,
101
- disabled: v,
102
- placeholder: j ? E("composer.dropHere", "Drop files to attach") : ce,
99
+ /* @__PURE__ */ g("textarea", {
100
+ ref: D,
101
+ value: O,
102
+ onChange: (e) => k(e.target.value),
103
+ onKeyDown: pe,
104
+ onPaste: me,
105
+ disabled: x,
106
+ placeholder: A ? T("composer.dropHere", "Drop files to attach") : fe,
103
107
  rows: 1,
104
108
  className: "min-h-[36px] flex-1 resize-none self-center bg-transparent px-1 py-2 text-[15px] leading-relaxed text-text-primary placeholder:text-text-muted focus:outline-none disabled:opacity-50",
105
- "aria-label": E("chatInput.ariaLabel", "Message input"),
109
+ "aria-label": T("chatInput.ariaLabel", "Message input"),
106
110
  "data-testid": "assistant-input"
107
111
  }),
108
- K.isSupported && /* @__PURE__ */ p(o, {
112
+ K.isSupported && /* @__PURE__ */ g(te, {
109
113
  isListening: K.isListening,
110
114
  isStarting: K.isStarting,
111
115
  onToggle: K.toggle,
112
- disabled: v
116
+ disabled: x
113
117
  }),
114
- T && q.length === 0 && P.length === 0 && !K.isActive ? /* @__PURE__ */ p(s, {
115
- onStart: T,
116
- disabled: v
117
- }) : /* @__PURE__ */ p("button", {
118
+ C && q.length === 0 && N.length === 0 && !K.isActive ? /* @__PURE__ */ g(ne, {
119
+ onStart: C,
120
+ disabled: x
121
+ }) : /* @__PURE__ */ g("button", {
118
122
  type: "button",
119
123
  onClick: Z,
120
124
  disabled: !X,
121
125
  className: `flex size-9 flex-shrink-0 items-center justify-center rounded-full shadow-sm transition-all focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong ${X ? "bg-action-primary-bg text-action-primary-text hover:scale-105 hover:bg-action-primary-bg-hover" : "bg-bg-elevated text-text-muted"}`,
122
- "aria-label": E("chatInput.send", "Send message"),
126
+ "aria-label": T("chatInput.send", "Send message"),
123
127
  "data-testid": "assistant-send",
124
- children: v || F ? /* @__PURE__ */ p(oe, { className: "size-4 motion-safe:animate-spin" }) : /* @__PURE__ */ p(ae, { className: "size-4" })
128
+ children: x || P ? /* @__PURE__ */ g(h, { className: "size-4 motion-safe:animate-spin" }) : /* @__PURE__ */ g(m, { className: "size-4" })
125
129
  })
126
130
  ]
127
131
  }),
128
- x.length > 1 && /* @__PURE__ */ p("div", {
132
+ S.length > 1 && /* @__PURE__ */ g("div", {
129
133
  className: "mt-2 px-0.5",
130
- children: /* @__PURE__ */ p(a, {
131
- mode: b,
132
- availableModes: x,
133
- onModeChange: C,
134
- disabled: v,
135
- auto: w
134
+ children: /* @__PURE__ */ g(c, {
135
+ mode: oe,
136
+ availableModes: S,
137
+ onModeChange: ce,
138
+ disabled: x,
139
+ auto: le
136
140
  })
137
141
  })
138
142
  ]
139
143
  }),
140
- g ? /* @__PURE__ */ p("p", {
144
+ y ? /* @__PURE__ */ g("p", {
141
145
  className: "mt-1.5 px-1 text-center text-[11px] text-status-warning",
142
146
  "data-testid": "assistant-write-access-warning",
143
- children: E("composer.writeAccessDenied", "Changes may not save — your role in this workspace does not currently allow edits. You can still plan and review an action.")
147
+ children: T("composer.writeAccessDenied", "Changes may not save — your role in this workspace does not currently allow edits. You can still plan and review an action.")
144
148
  }) : null,
145
- /* @__PURE__ */ p("div", {
149
+ /* @__PURE__ */ g("div", {
146
150
  className: "mt-1.5 px-1 text-center text-[11px]",
147
151
  "aria-live": "polite",
148
- children: K.isStarting && !K.isListening ? /* @__PURE__ */ p("p", {
152
+ children: K.isStarting && !K.isListening ? /* @__PURE__ */ g("p", {
149
153
  className: "text-text-muted",
150
154
  "data-testid": "assistant-voice-starting",
151
- children: E("voice.starting", "Starting the microphone…")
152
- }) : K.isListening ? /* @__PURE__ */ m("p", {
155
+ children: T("voice.starting", "Starting the microphone…")
156
+ }) : K.isListening ? /* @__PURE__ */ _("p", {
153
157
  className: "text-status-error-text",
154
158
  "data-testid": "assistant-voice-status",
155
- children: [/* @__PURE__ */ p("span", { className: "mr-1 inline-block size-1.5 rounded-full bg-status-error-text align-middle motion-safe:animate-pulse" }), K.interim || E("voice.listening", "Listening… speak now, tap the square to stop")]
156
- }) : $ ? /* @__PURE__ */ p("p", {
159
+ children: [/* @__PURE__ */ g("span", { className: "mr-1 inline-block size-1.5 rounded-full bg-status-error-text align-middle motion-safe:animate-pulse" }), K.interim || T("voice.listening", "Listening… speak now, tap the square to stop")]
160
+ }) : $ ? /* @__PURE__ */ g("p", {
157
161
  className: "text-status-error-text",
158
162
  "data-testid": "assistant-voice-error",
159
163
  children: $
160
- }) : R ? /* @__PURE__ */ p("button", {
164
+ }) : L ? /* @__PURE__ */ g("button", {
161
165
  type: "button",
162
- onClick: se,
166
+ onClick: H,
163
167
  className: "text-status-error-text underline-offset-2 hover:underline",
164
168
  "data-testid": "assistant-attachment-rejection",
165
- children: me(R)
166
- }) : L === "failed" ? /* @__PURE__ */ p("p", {
169
+ children: ve(L)
170
+ }) : I === "failed" ? /* @__PURE__ */ g("p", {
167
171
  className: "text-status-error-text",
168
172
  "data-testid": "assistant-attachment-blocked",
169
- children: Y.length === 1 ? E("attachments.blockedOne", "{{name}} didn't upload. Retry or remove it before sending.", { name: Y[0].filename }) : E("attachments.blockedMany", "{{count}} attachments didn't upload. Retry or remove them before sending.", { count: Y.length })
170
- }) : /* @__PURE__ */ p("p", {
173
+ children: Y.length === 1 ? T("attachments.blockedOne", "{{name}} didn't upload. Retry or remove it before sending.", { name: Y[0].filename }) : T("attachments.blockedMany", "{{count}} attachments didn't upload. Retry or remove them before sending.", { count: Y.length })
174
+ }) : /* @__PURE__ */ g("p", {
171
175
  className: "text-text-muted",
172
- children: E("composer.hint", "Enter to send · Shift+Enter for newline · drag or paste files to attach")
176
+ children: T("composer.hint", "Enter to send · Shift+Enter for newline · drag or paste files to attach")
173
177
  })
174
178
  })
175
179
  ]
176
180
  });
177
181
  };
178
182
  //#endregion
179
- export { g as AssistantComposer };
183
+ export { y as AssistantComposer };
@@ -120,17 +120,18 @@ import { AssistantMessageList as sc } from "./shared/assistant/ui/AssistantMessa
120
120
  import { AssistantVoiceSession as cc } from "./shared/assistant/ui/voice/AssistantVoiceSession.js";
121
121
  import { useAssistantApiAccess as lc } from "./shared/assistant/useAssistantApiAccess.js";
122
122
  import { useConversationTurns as uc } from "./shared/assistant/useConversationTurns.js";
123
- import { aiCreditsUpdatedEventName as dc, dispatchAssistantQuotaExhausted as fc, notifyAiCreditsUpdated as pc } from "./shared/assistant/aiCredits.js";
124
- import { useWorkspaceWriteAccess as mc } from "./shared/assistant/useWorkspaceWriteAccess.js";
125
- import { extractDocumentText as hc } from "./shared/assistant/documentExtract.js";
126
- import { useAssistantAttachments as gc } from "./shared/assistant/useAssistantAttachments.js";
127
- import { AssistantComposer as _c } from "./shared/assistant/ui/composer/AssistantComposer.js";
128
- import { isProdRuntime as vc } from "./shared/assistant/env.js";
129
- import { useAssistantHeartbeat as yc } from "./shared/assistant/useAssistantHeartbeat.js";
130
- import { useAssistantKeyboardShortcuts as bc } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
131
- import { AssistantApiCallsConsentDialog as xc } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
132
- import { AssistantChatArea as Sc } from "./shared/assistant/ui/AssistantChatArea.js";
133
- import { AIAssistantPanel as Cc } from "./shared/assistant/ui/AIAssistantPanel.js";
134
- import { ASSISTANT_BOTTOM_CHROME_CLEARANCE as wc, ASSISTANT_DIALOG_SELECTOR as Tc, ASSISTANT_DOCKED_DESKTOP_CLASS as Ec, ASSISTANT_DOCK_WIDTH_PX as Dc, ASSISTANT_DOCK_WIDTH_VAR as Oc, ASSISTANT_FLOATING_DESKTOP_CLASS as kc, ASSISTANT_OVERLAY_DEFAULT_TOP_PX as Ac, ASSISTANT_OVERLAY_DESKTOP_QUERY as jc, ASSISTANT_OVERLAY_TOP_VAR as Mc, ASSISTANT_SHEET_BASE_CLASS as Nc, ASSISTANT_SHEET_COMPACT_CLASS as Pc, ASSISTANT_SHEET_EXPANDED_CLASS as Fc, ASSISTANT_TOGGLE_SHORTCUT_LABEL as Ic, aboveAssistantBottomChrome as Lc, assistantOverlayClassName as Rc, assistantOverlayEscapeAction as zc, assistantOverlayKeys as Bc, assistantQuotaKindOf as Vc, createAssistantNavigate as Hc, isAssistantToggleShortcut as Uc, nextAssistantOpenState as Wc, publishedAssistantDockWidth as Gc, readAssistantOverlayFlag as Kc, requestedAssistantOpenState as qc, writeAssistantOverlayFlag as Jc } from "./shared/assistant/ui/assistantOverlayState.js";
135
- import { AssistantOverlay as Yc, AssistantOverlayProvider as Xc, useAssistantDockWidth as Zc, useAssistantOverlayOrNull as Qc, useAssistantQuotaExhausted as $c } from "./shared/assistant/ui/AssistantOverlay.js";
136
- export { Bi as ADMIN_MODE_ACCESS_WAIT_MS, Cc as AIAssistantPanel, X as ASSISTANT_API_AUTH_STRATEGY, wc as ASSISTANT_BOTTOM_CHROME_CLEARANCE, Tc as ASSISTANT_DIALOG_SELECTOR, Ec as ASSISTANT_DOCKED_DESKTOP_CLASS, Dc as ASSISTANT_DOCK_WIDTH_PX, Oc as ASSISTANT_DOCK_WIDTH_VAR, kc as ASSISTANT_FLOATING_DESKTOP_CLASS, Ai as ASSISTANT_I18N_COMPUTED_COPY, ji as ASSISTANT_I18N_LITERAL_COPY, Mi as ASSISTANT_I18N_MANIFEST, gr as ASSISTANT_LANGUAGES, B as ASSISTANT_MODE_FALLBACK_LABELS, V as ASSISTANT_MODE_IDS, Ns as ASSISTANT_MODE_META, Lo as ASSISTANT_OVERLAY_ATTR, Ac as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, jc as ASSISTANT_OVERLAY_DESKTOP_QUERY, Mc as ASSISTANT_OVERLAY_TOP_VAR, Ro as ASSISTANT_PANEL_ATTR, Nc as ASSISTANT_SHEET_BASE_CLASS, Pc as ASSISTANT_SHEET_COMPACT_CLASS, Fc as ASSISTANT_SHEET_EXPANDED_CLASS, Ic as ASSISTANT_TOGGLE_SHORTCUT_LABEL, Wr as ATTACHMENT_ACCEPT, Di as ATTACHMENT_SOURCES, la as AUTO_CARRY_OVER_MAX_CHARS, ua as AUTO_CARRY_OVER_MAX_CHARS_PER_MESSAGE, da as AUTO_CARRY_OVER_MAX_MESSAGES, Ps as AUTO_MODE_OPTION_ID, fa as AUTO_READ_MODE, zs as AUTO_VOICE, pa as AUTO_WRITE_MODE, xc as AssistantApiCallsConsentDialog, qo as AssistantAttachmentButton, Jo as AssistantAttachmentChips, wo as AssistantAutoSpeakToggle, Ka as AssistantAvatar, Sc as AssistantChatArea, _c as AssistantComposer, Fo as AssistantConnectSourceItem, jo as AssistantConnectSourceProvider, nc as AssistantConversationList, rc as AssistantEmptyState, vs as AssistantEntityPreview, tc as AssistantHeader, l as AssistantI18nProvider, Do as AssistantLanguageMenu, js as AssistantLanguageSelector, m as AssistantMarkdownImage, _ as AssistantMarkdownRenderer, To as AssistantMessageAttachments, oc as AssistantMessageItem, sc as AssistantMessageList, Fs as AssistantModeSelector, ec as AssistantMoreMenu, v as AssistantNavigateProvider, Yc as AssistantOverlay, Xc as AssistantOverlayProvider, Eo as AssistantPendingWriteCard, ks as AssistantPreviewBridgeHost, As as AssistantPreviewOverlay, Yo as AssistantPreviewProvider, r as AssistantProductProvider, Oo as AssistantReplyLanguageSelector, ze as AssistantRuntimeManager, Li as AssistantSendRefusal, ko as AssistantSpeakButton, lo as AssistantSpeechProvider, Ao as AssistantSpokenTurnsNotice, _s as AssistantStepRail, Ha as AssistantToolActivity, ic as AssistantTurnActivity, Rs as AssistantVoiceButton, Vs as AssistantVoiceOrb, Bs as AssistantVoiceSelector, cc as AssistantVoiceSession, Hs as AssistantVoiceSessionButton, Gr as AttachmentRejectedError, wr as BOILERPLATE_PAGE_SHARE, $e as BUILT_IN_MODE_CAPABILITIES, Us as CAPTION_SCROLL_ATTR, j as CHECK_AI_CREDITS, M as CREATE_SANDBOX, Kr as DEFAULT_INLINE_LIMITS, Yn as DEFAULT_SPEAKABLE_LABELS, _r as DEFAULT_SPEECH_RATE, st as DEFAULT_STREAM_BUDGET_MS, Mn as ENDPOINT_GRACE_MS, N as EXTEND_SANDBOX_TTL, Ms as FOLLOW_APP_LOCALE, P as GET_ACTIVE_SANDBOXES, F as GET_SANDBOX, Tt as HOSTED_DISABLE_MS, Et as HOSTED_TTS_MAX_CHARS, xt as HOSTED_TTS_TIER, St as HOSTED_VOICES, Vt as HOSTED_VOICE_RANK, Es as HostedPreviewBridgeContext, us as IDLE_ACTIVE_TAB, ia as IDLE_PLAYBACK, ts as IDLE_PREVIEW, Zo as IDLE_PREVIEW_STATE, Dn as IDLE_ROTATION_CLOCK, ct as INCOMPLETE_TURN_NOTICES, Nn as INITIAL_SESSION, qr as INLINE_IMAGE_MAX_DIM, Jr as INLINE_IMAGE_QUALITY, Pn as INTERRUPT_MAX_MS, Fn as INTERRUPT_MIN_MS, Ki as LEGACY_WRITE_CONSENT_KEY, et as MAX_ASSISTANT_STREAM_BUDGET_MS, Yr as MAX_ATTACHMENTS, Tr as MAX_BOILERPLATE_LINE_CHARS, Xr as MAX_CONFIGURABLE_INLINE_CHARS, Er as MAX_EXTRACTED_CHARS, Zr as MAX_FILE_BYTES, Qr as MAX_INLINE_CHARS_PER_FILE, $r as MAX_INLINE_CHARS_TOTAL, se as MAX_INLINE_IMAGE_BASE64_BYTES, ei as MAX_INLINE_IMAGE_BASE64_CHARS, ti as MAX_INLINE_IMAGE_PARTS, ni as MAX_INLINE_TURN_BODY_BYTES, Dr as MAX_PDF_PAGES_SCANNED, ce as MAX_REQUEST_BODY_BYTES, Xn as MAX_SPEAKABLE_CHARS, Zn as MAX_SPOKEN_TABLE_ROWS, ri as MAX_TURN_BODY_BYTES, sr as MINI_CAPTION_BUDGET, Or as MIN_PAGE_TEXT_CHARS, kr as MIN_TEXT_PAGE_SHARE, In as NOTHING_HEARD, Ra as NO_FIRST_TEXT, ns as NO_OWNER, zo as NO_PANEL_OVERLAY, hn as PHRASE_ROTATE_MS, lr as POLL_FAST_MS, ur as POLL_FAST_UNTIL_MS, dr as POLL_SLOW_MS, fr as POLL_STEADY_MS, pr as POLL_STEADY_UNTIL_MS, ar as PREVIEW_LANGUAGES, W as PRODUCT_ASSISTANT_MODE_ID_MAX_LENGTH, G as PRODUCT_ASSISTANT_MODE_ID_PATTERN, ii as PROMPT_ENVELOPE_RESERVE_BYTES, ai as PROVIDER_READABLE_FILE_MEDIA_TYPES, I as PROXY_SANDBOX_REQUEST, bs as REDUCED_MOTION_ATTRIBUTE, xs as REDUCED_MOTION_QUERY, L as REPORT_AI_TOKEN_USAGE, le as REQUEST_TOO_LARGE_REFUSAL, yo as SANDBOX_READY_TTL_MS, Ln as SILENCE_SUBMIT_MS, Dt as SPEAKING_RATE_MAX, Ot as SPEAKING_RATE_MAX_STREAMING, kt as SPEAKING_RATE_MAX_SYNC, At as SPEAKING_RATE_MIN, Qn as SPEECH_CHUNK_CHARS, $n as SPEECH_CHUNK_CJK_CHARS, Ht as SPEECH_LANG, ea as SPOKEN_LABEL_LANGUAGES, gn as STAGE_COPY, e as START_RETRY_COOLDOWN_MS, R as STOP_ASSISTANT_SANDBOX, lt as STREAM_BUDGET_MS, qi as TAKE_ACTION_ENGLISH, _n as THINKING_PHRASES, oi as TURN_BODY_HEADROOM_BYTES, qa as TURN_MILESTONES, Qe as TURN_OUTCOME_COPY, Ja as TURN_SEGMENTS, Ya as TURN_TIMELINE_EVENT, ac as TurnActivityLine, tt as UNAVAILABLE_MODE_REFUSAL, nt as UNDECLARED_MODE_CAPABILITIES, Ut as VOICE_LIST_TIMEOUT_MS, Sn as VOICE_MUTED_LABEL, Cn as VOICE_THINKING_LABEL, Ws as VoiceCaption, Gs as VoiceConversationView, Ys as VoiceMiniController, Xs as VoiceStage, qs as VoiceStatusLine, Js as VoiceStatusText, Zs as VoiceTranscriptDrawer, Ks as VoiceWaveform, z as WAIT_FOR_SANDBOX_RUNNING, ue as abortAssistantTurn, Lc as aboveAssistantBottomChrome, Bo as activePanelOverlay, rt as adminOnlyModeSendRefusal, Vi as adminOnlyModeSendRefusalAfterAccess, Rn as advanceHeardClock, On as advanceRotationClock, dc as aiCreditsUpdatedEventName, rs as applyPreviewEvent, de as approvePendingWrite, Ni as assistantI18nSeedCopy, H as assistantModeFallbackLabel, Pi as assistantModeI18nCopy, Is as assistantModeMeta, Rc as assistantOverlayClassName, zc as assistantOverlayEscapeAction, Bc as assistantOverlayKeys, Vo as assistantPanelOwnsEscape, Vc as assistantQuotaKindOf, y as assistantRoutePath, u as assistantTranslationKey, b as assistantUrlTransform, ma as autoCarryOverFor, ha as autoSuggestions, Oi as availableAttachmentSources, jt as base64ToBytes, Xa as beginTurn, x as browserShouldHandle, bt as browserSpeechEngine, za as buildAssistantProgress, fe as buildAssistantSandboxEnv, si as buildAttachmentPromptBlock, ga as buildAutoCarryOver, Gi as buildBoundedAttachmentTurn, Kn as buildContinuedFromVoiceNote, Be as buildProgress, pe as buildPromptGatewayRequest, ci as buildPromptParts, me as buildPromptRequestBody, li as buildPromptWithAttachments, Mt as buildRequest, k as buildSandboxContextInput, qn as buildVoiceTranscriptMarkdown, K as builtInModeExtendedBy, pt as chatTurns, he as checkAssistantAiCredits, er as chunkForSpeech, S as classifyAssistantHref, _a as classifyAssistantIntent, ui as classifyAttachment, Nt as classifyHttpFailure, w as classifyQuotaError, Ri as classifyTurnFailure, Ar as columnLetterToIndex, wn as composeVoiceStatus, nn as configureSpeechEngine, Io as connectSourceActivation, Mo as connectSourceHrefRenders, tr as containsCjk, p as copyToClipboard, di as countInlineImageCandidates, fi as countInlinedImageParts, Wa as countSpokenTurns, Hi as createAdminModeAccessGate, Hc as createAssistantNavigate, is as createAssistantPreviewSurface, ge as createAssistantSandbox, _e as createAssistantSession, zt as createHostedTtsEngine, bo as createReadinessTracker, tn as createRoutingSpeechEngine, cs as createRunIdentityCache, Xe as createSandboxAssistantTransport, rn as createSpeechEngines, as as currentPreviewOwner, q as declareAssistantMode, Pt as decodeAudioResponse, jr as decodeXmlEntities, Fi as describePermissionError, T as describeQuotaError, Za as describeTurn, pi as detectDocumentFormat, na as detectScriptLocale, Qa as detectTurnDevice, ki as deviceHasCamera, Ft as disableDurationMs, fc as dispatchAssistantQuotaExhausted, Mr as docxXmlToText, ve as downloadAssistantArtifact, Qs as downloadFile, Na as elapsedSince, va as escalationToUndo, Ho as escapeDismisses, mi as estimateTurnBodyBytes, A as executeSandboxGraphQL, $s as exportConversation, ye as extendAssistantSandboxTTL, E as extensionObjectsIn, hc as extractDocumentText, vr as findAssistantLanguage, it as findAssistantModeConfig, be as findExistingSandbox, xe as findExistingSandboxWithStatus, Sr as findPendingWrite, Nr as fitPdfPages, Uo as focusIsInsidePanel, hi as formatBytes, Pr as formatPageRanges, Se as forwardsUserTokensToSandbox, po as getActorId, Ce as getAssistantArtifacts, Ma as getAssistantDisplayContent, Ve as getAssistantMedia, we as getAssistantMessages, Te as getAssistantSession, Ee as getAssistantStreamAccess, He as getAssistantText, gi as getAttachmentSendBlocker, re as getCapability, _i as getExtension, Z as getImageForMode, Q as getImageTagForMode, mo as getOrganizationId, Ue as getRawMessageCreatedAt, $ as getResourcesForMode, ee as getSandboxImageRegistry, vi as getSendableAttachments, an as getSpeechEngine, We as getToolProgress, ho as getWorkspaceId, mt as groupBySession, ht as groupConsecutiveBySession, yi as hasAttachmentWorkInFlight, No as hasConnectSource, Ct as hostedLocaleFor, wt as hostedSupportsLanguage, h as imageHostLabel, ut as incompleteTurnNotice, J as isAssistantModeId, Uc as isAssistantToggleShortcut, ya as isAutoRoutingOffered, Qo as isBlankProse, U as isBuiltInAssistantMode, zn as isCapturing, $a as isComparableTurn, Bn as isEcho, Wt as isHostedVoice, Oa as isLegacyFiller, ka as isLegacyStopped, Fr as isMostlyImagePages, go as isMultimodalBodyRejection, _o as isNeverRecoverableAssistantError, vc as isProdRuntime, Y as isProductAssistantModeId, bi as isProviderReadableFilePart, D as isQuotaExhaustedError, Ge as isReapedSandboxConnectionError, xo as isRecentlyVerified, Ke as isRecoverable, vo as isRecoverableAssistantError, g as isRemoteImageSrc, $o as isRunningStatus, aa as isSpeakingMessage, Gt as isSpeechBlocked, Aa as isStageCopy, Vn as isSubmittable, Ta as isTurnInFlight, ie as isUnknownFieldError, gt as isVoiceTurn, Ji as isWriteModeAcknowledged, Ir as joinSheets, Kt as languageDisplayName, xi as largestInlineCharsPerFile, qe as mapSessionToHistory, ae as markSupported, eo as markTurn, oe as markUnsupported, Je as mergeMessagesById, Sa as mergePersistedAssistantState, ln as micIsInterrupt, De as modeRequiresConfirmWrites, Pa as msUntilNextPhrase, ds as nextActiveTab, Wc as nextAssistantOpenState, Ls as nextModeIndex, Wo as nextPanelOverlays, es as nextPreviewEvents, qt as normalizeLangTag, pc as notifyAiCreditsUpdated, Hn as orbMode, Lr as pageMarker, Ds as panelOwnedPreviewBridge, Go as panelOwnsEscape, Cr as parseConfirmationRefusal, Si as parseDataUrl, Rr as parseSharedStrings, Ua as parseToolActivity, zr as parseWorkbookSheets, Br as pdfTextItemsToPage, Ii as permissionRefusalMessage, fs as pinActiveTab, Ea as planAbandonedTurn, So as planAfterTransportFailure, Un as planReplyConsumption, Co as planTrustedSandboxFailure, Da as planTurnAbort, mr as pollDelayMs, Jt as primaryLanguageSubtag, Oe as promptGatewayRequestBytes, Gc as publishedAssistantDockWidth, oa as publishedChunks, O as quotaExhaustedEventName, Kc as readAssistantOverlayFlag, Ss as readReducedMotion, on as readSpeechEngineConfig, to as recentTurnTimelines, ke as releaseSupersededAssistantSandboxes, br as replyFollowsInput, Ae as reportAssistantAiTokenUsage, qc as requestedAssistantOpenState, sa as requiresCancel, sn as resetSpeechEngine, no as resetTurnTimelines, Ca as resolveActiveModeSandbox, Ci as resolveAssistantInlineLimits, yr as resolveAssistantLanguage, at as resolveAssistantModeCapabilities, Ui as resolveAssistantSendModeAfterAccess, ba as resolveAutoRoute, xr as resolveLanguagePair, i as resolveModeConfig, te as resolveSandboxAssistantMode, ra as resolveSpeechLocale, ro as restartAttempt, Yi as restoreAcknowledgedWriteModes, xa as restoreAutoRouting, Bt as retryDelayMs, kn as rotationElapsedMs, os as runBelongsTo, ls as runIdentities, ss as sameOwner, ne as sandboxBaseModeFor, je as sandboxStatusOf, Ye as sanitize, io as segmentStats, Me as selectExistingAssistantSandbox, Ne as selectSupersededAssistantSandboxes, Yt as selectVoiceForLocale, Pe as sendAssistantPromptAsync, Fe as sendHeartbeat, Vr as sheetXmlToRows, It as shouldDisableEngine, ps as shouldPinOnMove, ms as shouldPinOnSelect, cr as showPreviousChunk, un as showsAssistantCaption, dn as showsUserCaption, Ba as snapshotReplyFloor, Lt as speakableChunks, nr as speakableEmail, Xt as speechGate, ta as speechLabelsFor, Zt as speechLangForLocale, ca as speechPlaybackReducer, Rt as splitForVendor, rr as splitTableRow, Wn as spokenSoFar, Ga as spokenTurnText, vn as stageText, t as startIsCoolingDown, Fa as startPhraseTicker, An as startRotationTicker, yn as statusStageCopy, hs as stepsFromToolActivity, Ie as stopReapedAssistantSandbox, dt as streamBudgetMs, ja as stripLegacyFillerPrefix, Cs as subscribeReducedMotion, cn as subscribeSpeechEngine, Hr as summarisePageText, ao as summariseTurnTimelines, jn as syncRotationClock, gs as tabForArrowKey, bn as thinkingPhrase, xn as thinkingPhraseEntry, hr as toCaptionText, wi as toMessageAttachment, ir as toSpeakableText, Va as trackFirstText, Ti as truncateForInline, Ur as truncatePagesForInline, Ia as turnActivityCopy, La as turnActivityStage, oo as turnClockMs, zi as turnOutcomeCopy, so as turnSegments, co as turnTimeline, ot as unofferedModeSendRefusal, Wi as unofferedModeSendRefusalAfterAccess, lc as useAssistantApiAccess, gc as useAssistantAttachments, Po as useAssistantConnectSource, Zc as useAssistantDockWidth, yc as useAssistantHeartbeat, d as useAssistantI18nNamespace, bc as useAssistantKeyboardShortcuts, C as useAssistantNavigate, Qc as useAssistantOverlayOrNull, a as useAssistantPageLabel, Xo as useAssistantPreview, Ts as useAssistantPreviewBridge, o as useAssistantProduct, s as useAssistantProductOrNull, $c as useAssistantQuotaExhausted, uo as useAssistantSpeech, c as useAssistantStorageFolders, wa as useAssistantStore, f as useAssistantTr, uc as useConversationTurns, Ko as useDropdownEscape, Os as useHostedAssistantPreviewBridge, ys as useOverlayFocus, ws as usePrefersReducedMotion, Ze as useSandboxAssistantTransport, n as useVoiceInput, fo as useVoiceSession, mc as useWorkspaceWriteAccess, Ei as validateFile, Qt as voiceAvailability, _t as voiceMarker, or as voicePreviewText, $t as voiceQualityRank, vt as voiceSessionIdOf, Gn as voiceSessionReducer, fn as voiceStageState, Tn as voiceStatusParts, En as voiceStatusSuffix, Jn as voiceTranscriptFilename, yt as voiceTurnsOnly, en as voicesForLocale, Le as waitForAssistantServiceReady, Re as waitForSandboxRunning, pn as waveformIsActive, mn as waveformIsSettled, ft as withIncompleteTurnNotice, Xi as withWriteModeAcknowledged, Jc as writeAssistantOverlayFlag, Zi as writeModeConsentCopy, Qi as writeModeSendRefusal, $i as writeModeSendRefusalReason };
123
+ import { PREWARM_COOLDOWN_MS as dc, WarmCancelled as fc, consumeWarm as pc, prewarmTarget as mc, resetWarmsForTest as hc, settleWarmBeforeSend as gc, startWarm as _c, warmState as vc } from "./shared/assistant/prewarm.js";
124
+ import { aiCreditsUpdatedEventName as yc, dispatchAssistantQuotaExhausted as bc, notifyAiCreditsUpdated as xc } from "./shared/assistant/aiCredits.js";
125
+ import { useWorkspaceWriteAccess as Sc } from "./shared/assistant/useWorkspaceWriteAccess.js";
126
+ import { extractDocumentText as Cc } from "./shared/assistant/documentExtract.js";
127
+ import { useAssistantAttachments as wc } from "./shared/assistant/useAssistantAttachments.js";
128
+ import { AssistantComposer as Tc } from "./shared/assistant/ui/composer/AssistantComposer.js";
129
+ import { isProdRuntime as Ec } from "./shared/assistant/env.js";
130
+ import { useAssistantHeartbeat as Dc } from "./shared/assistant/useAssistantHeartbeat.js";
131
+ import { useAssistantKeyboardShortcuts as Oc } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
132
+ import { AssistantApiCallsConsentDialog as kc } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
133
+ import { AssistantChatArea as Ac } from "./shared/assistant/ui/AssistantChatArea.js";
134
+ import { AIAssistantPanel as jc } from "./shared/assistant/ui/AIAssistantPanel.js";
135
+ import { ASSISTANT_BOTTOM_CHROME_CLEARANCE as Mc, ASSISTANT_DIALOG_SELECTOR as Nc, ASSISTANT_DOCKED_DESKTOP_CLASS as Pc, ASSISTANT_DOCK_WIDTH_PX as Fc, ASSISTANT_DOCK_WIDTH_VAR as Ic, ASSISTANT_FLOATING_DESKTOP_CLASS as Lc, ASSISTANT_OVERLAY_DEFAULT_TOP_PX as Rc, ASSISTANT_OVERLAY_DESKTOP_QUERY as zc, ASSISTANT_OVERLAY_TOP_VAR as Bc, ASSISTANT_SHEET_BASE_CLASS as Vc, ASSISTANT_SHEET_COMPACT_CLASS as Hc, ASSISTANT_SHEET_EXPANDED_CLASS as Uc, ASSISTANT_TOGGLE_SHORTCUT_LABEL as Wc, aboveAssistantBottomChrome as Gc, assistantOverlayClassName as Kc, assistantOverlayEscapeAction as qc, assistantOverlayKeys as Jc, assistantQuotaKindOf as Yc, createAssistantNavigate as Xc, isAssistantToggleShortcut as Zc, nextAssistantOpenState as Qc, publishedAssistantDockWidth as $c, readAssistantOverlayFlag as el, requestedAssistantOpenState as tl, writeAssistantOverlayFlag as nl } from "./shared/assistant/ui/assistantOverlayState.js";
136
+ import { AssistantOverlay as rl, AssistantOverlayProvider as il, useAssistantDockWidth as al, useAssistantOverlayOrNull as ol, useAssistantQuotaExhausted as sl } from "./shared/assistant/ui/AssistantOverlay.js";
137
+ export { Bi as ADMIN_MODE_ACCESS_WAIT_MS, jc as AIAssistantPanel, X as ASSISTANT_API_AUTH_STRATEGY, Mc as ASSISTANT_BOTTOM_CHROME_CLEARANCE, Nc as ASSISTANT_DIALOG_SELECTOR, Pc as ASSISTANT_DOCKED_DESKTOP_CLASS, Fc as ASSISTANT_DOCK_WIDTH_PX, Ic as ASSISTANT_DOCK_WIDTH_VAR, Lc as ASSISTANT_FLOATING_DESKTOP_CLASS, Ai as ASSISTANT_I18N_COMPUTED_COPY, ji as ASSISTANT_I18N_LITERAL_COPY, Mi as ASSISTANT_I18N_MANIFEST, gr as ASSISTANT_LANGUAGES, B as ASSISTANT_MODE_FALLBACK_LABELS, V as ASSISTANT_MODE_IDS, Ns as ASSISTANT_MODE_META, Lo as ASSISTANT_OVERLAY_ATTR, Rc as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, zc as ASSISTANT_OVERLAY_DESKTOP_QUERY, Bc as ASSISTANT_OVERLAY_TOP_VAR, Ro as ASSISTANT_PANEL_ATTR, Vc as ASSISTANT_SHEET_BASE_CLASS, Hc as ASSISTANT_SHEET_COMPACT_CLASS, Uc as ASSISTANT_SHEET_EXPANDED_CLASS, Wc as ASSISTANT_TOGGLE_SHORTCUT_LABEL, Wr as ATTACHMENT_ACCEPT, Di as ATTACHMENT_SOURCES, la as AUTO_CARRY_OVER_MAX_CHARS, ua as AUTO_CARRY_OVER_MAX_CHARS_PER_MESSAGE, da as AUTO_CARRY_OVER_MAX_MESSAGES, Ps as AUTO_MODE_OPTION_ID, fa as AUTO_READ_MODE, zs as AUTO_VOICE, pa as AUTO_WRITE_MODE, kc as AssistantApiCallsConsentDialog, qo as AssistantAttachmentButton, Jo as AssistantAttachmentChips, wo as AssistantAutoSpeakToggle, Ka as AssistantAvatar, Ac as AssistantChatArea, Tc as AssistantComposer, Fo as AssistantConnectSourceItem, jo as AssistantConnectSourceProvider, nc as AssistantConversationList, rc as AssistantEmptyState, vs as AssistantEntityPreview, tc as AssistantHeader, l as AssistantI18nProvider, Do as AssistantLanguageMenu, js as AssistantLanguageSelector, m as AssistantMarkdownImage, _ as AssistantMarkdownRenderer, To as AssistantMessageAttachments, oc as AssistantMessageItem, sc as AssistantMessageList, Fs as AssistantModeSelector, ec as AssistantMoreMenu, v as AssistantNavigateProvider, rl as AssistantOverlay, il as AssistantOverlayProvider, Eo as AssistantPendingWriteCard, ks as AssistantPreviewBridgeHost, As as AssistantPreviewOverlay, Yo as AssistantPreviewProvider, r as AssistantProductProvider, Oo as AssistantReplyLanguageSelector, ze as AssistantRuntimeManager, Li as AssistantSendRefusal, ko as AssistantSpeakButton, lo as AssistantSpeechProvider, Ao as AssistantSpokenTurnsNotice, _s as AssistantStepRail, Ha as AssistantToolActivity, ic as AssistantTurnActivity, Rs as AssistantVoiceButton, Vs as AssistantVoiceOrb, Bs as AssistantVoiceSelector, cc as AssistantVoiceSession, Hs as AssistantVoiceSessionButton, Gr as AttachmentRejectedError, wr as BOILERPLATE_PAGE_SHARE, $e as BUILT_IN_MODE_CAPABILITIES, Us as CAPTION_SCROLL_ATTR, j as CHECK_AI_CREDITS, M as CREATE_SANDBOX, Kr as DEFAULT_INLINE_LIMITS, Yn as DEFAULT_SPEAKABLE_LABELS, _r as DEFAULT_SPEECH_RATE, st as DEFAULT_STREAM_BUDGET_MS, Mn as ENDPOINT_GRACE_MS, N as EXTEND_SANDBOX_TTL, Ms as FOLLOW_APP_LOCALE, P as GET_ACTIVE_SANDBOXES, F as GET_SANDBOX, Tt as HOSTED_DISABLE_MS, Et as HOSTED_TTS_MAX_CHARS, xt as HOSTED_TTS_TIER, St as HOSTED_VOICES, Vt as HOSTED_VOICE_RANK, Es as HostedPreviewBridgeContext, us as IDLE_ACTIVE_TAB, ia as IDLE_PLAYBACK, ts as IDLE_PREVIEW, Zo as IDLE_PREVIEW_STATE, Dn as IDLE_ROTATION_CLOCK, ct as INCOMPLETE_TURN_NOTICES, Nn as INITIAL_SESSION, qr as INLINE_IMAGE_MAX_DIM, Jr as INLINE_IMAGE_QUALITY, Pn as INTERRUPT_MAX_MS, Fn as INTERRUPT_MIN_MS, Ki as LEGACY_WRITE_CONSENT_KEY, et as MAX_ASSISTANT_STREAM_BUDGET_MS, Yr as MAX_ATTACHMENTS, Tr as MAX_BOILERPLATE_LINE_CHARS, Xr as MAX_CONFIGURABLE_INLINE_CHARS, Er as MAX_EXTRACTED_CHARS, Zr as MAX_FILE_BYTES, Qr as MAX_INLINE_CHARS_PER_FILE, $r as MAX_INLINE_CHARS_TOTAL, se as MAX_INLINE_IMAGE_BASE64_BYTES, ei as MAX_INLINE_IMAGE_BASE64_CHARS, ti as MAX_INLINE_IMAGE_PARTS, ni as MAX_INLINE_TURN_BODY_BYTES, Dr as MAX_PDF_PAGES_SCANNED, ce as MAX_REQUEST_BODY_BYTES, Xn as MAX_SPEAKABLE_CHARS, Zn as MAX_SPOKEN_TABLE_ROWS, ri as MAX_TURN_BODY_BYTES, sr as MINI_CAPTION_BUDGET, Or as MIN_PAGE_TEXT_CHARS, kr as MIN_TEXT_PAGE_SHARE, In as NOTHING_HEARD, Ra as NO_FIRST_TEXT, ns as NO_OWNER, zo as NO_PANEL_OVERLAY, hn as PHRASE_ROTATE_MS, lr as POLL_FAST_MS, ur as POLL_FAST_UNTIL_MS, dr as POLL_SLOW_MS, fr as POLL_STEADY_MS, pr as POLL_STEADY_UNTIL_MS, ar as PREVIEW_LANGUAGES, dc as PREWARM_COOLDOWN_MS, W as PRODUCT_ASSISTANT_MODE_ID_MAX_LENGTH, G as PRODUCT_ASSISTANT_MODE_ID_PATTERN, ii as PROMPT_ENVELOPE_RESERVE_BYTES, ai as PROVIDER_READABLE_FILE_MEDIA_TYPES, I as PROXY_SANDBOX_REQUEST, bs as REDUCED_MOTION_ATTRIBUTE, xs as REDUCED_MOTION_QUERY, L as REPORT_AI_TOKEN_USAGE, le as REQUEST_TOO_LARGE_REFUSAL, yo as SANDBOX_READY_TTL_MS, Ln as SILENCE_SUBMIT_MS, Dt as SPEAKING_RATE_MAX, Ot as SPEAKING_RATE_MAX_STREAMING, kt as SPEAKING_RATE_MAX_SYNC, At as SPEAKING_RATE_MIN, Qn as SPEECH_CHUNK_CHARS, $n as SPEECH_CHUNK_CJK_CHARS, Ht as SPEECH_LANG, ea as SPOKEN_LABEL_LANGUAGES, gn as STAGE_COPY, e as START_RETRY_COOLDOWN_MS, R as STOP_ASSISTANT_SANDBOX, lt as STREAM_BUDGET_MS, qi as TAKE_ACTION_ENGLISH, _n as THINKING_PHRASES, oi as TURN_BODY_HEADROOM_BYTES, qa as TURN_MILESTONES, Qe as TURN_OUTCOME_COPY, Ja as TURN_SEGMENTS, Ya as TURN_TIMELINE_EVENT, ac as TurnActivityLine, tt as UNAVAILABLE_MODE_REFUSAL, nt as UNDECLARED_MODE_CAPABILITIES, Ut as VOICE_LIST_TIMEOUT_MS, Sn as VOICE_MUTED_LABEL, Cn as VOICE_THINKING_LABEL, Ws as VoiceCaption, Gs as VoiceConversationView, Ys as VoiceMiniController, Xs as VoiceStage, qs as VoiceStatusLine, Js as VoiceStatusText, Zs as VoiceTranscriptDrawer, Ks as VoiceWaveform, z as WAIT_FOR_SANDBOX_RUNNING, fc as WarmCancelled, ue as abortAssistantTurn, Gc as aboveAssistantBottomChrome, Bo as activePanelOverlay, rt as adminOnlyModeSendRefusal, Vi as adminOnlyModeSendRefusalAfterAccess, Rn as advanceHeardClock, On as advanceRotationClock, yc as aiCreditsUpdatedEventName, rs as applyPreviewEvent, de as approvePendingWrite, Ni as assistantI18nSeedCopy, H as assistantModeFallbackLabel, Pi as assistantModeI18nCopy, Is as assistantModeMeta, Kc as assistantOverlayClassName, qc as assistantOverlayEscapeAction, Jc as assistantOverlayKeys, Vo as assistantPanelOwnsEscape, Yc as assistantQuotaKindOf, y as assistantRoutePath, u as assistantTranslationKey, b as assistantUrlTransform, ma as autoCarryOverFor, ha as autoSuggestions, Oi as availableAttachmentSources, jt as base64ToBytes, Xa as beginTurn, x as browserShouldHandle, bt as browserSpeechEngine, za as buildAssistantProgress, fe as buildAssistantSandboxEnv, si as buildAttachmentPromptBlock, ga as buildAutoCarryOver, Gi as buildBoundedAttachmentTurn, Kn as buildContinuedFromVoiceNote, Be as buildProgress, pe as buildPromptGatewayRequest, ci as buildPromptParts, me as buildPromptRequestBody, li as buildPromptWithAttachments, Mt as buildRequest, k as buildSandboxContextInput, qn as buildVoiceTranscriptMarkdown, K as builtInModeExtendedBy, pt as chatTurns, he as checkAssistantAiCredits, er as chunkForSpeech, S as classifyAssistantHref, _a as classifyAssistantIntent, ui as classifyAttachment, Nt as classifyHttpFailure, w as classifyQuotaError, Ri as classifyTurnFailure, Ar as columnLetterToIndex, wn as composeVoiceStatus, nn as configureSpeechEngine, Io as connectSourceActivation, Mo as connectSourceHrefRenders, pc as consumeWarm, tr as containsCjk, p as copyToClipboard, di as countInlineImageCandidates, fi as countInlinedImageParts, Wa as countSpokenTurns, Hi as createAdminModeAccessGate, Xc as createAssistantNavigate, is as createAssistantPreviewSurface, ge as createAssistantSandbox, _e as createAssistantSession, zt as createHostedTtsEngine, bo as createReadinessTracker, tn as createRoutingSpeechEngine, cs as createRunIdentityCache, Xe as createSandboxAssistantTransport, rn as createSpeechEngines, as as currentPreviewOwner, q as declareAssistantMode, Pt as decodeAudioResponse, jr as decodeXmlEntities, Fi as describePermissionError, T as describeQuotaError, Za as describeTurn, pi as detectDocumentFormat, na as detectScriptLocale, Qa as detectTurnDevice, ki as deviceHasCamera, Ft as disableDurationMs, bc as dispatchAssistantQuotaExhausted, Mr as docxXmlToText, ve as downloadAssistantArtifact, Qs as downloadFile, Na as elapsedSince, va as escalationToUndo, Ho as escapeDismisses, mi as estimateTurnBodyBytes, A as executeSandboxGraphQL, $s as exportConversation, ye as extendAssistantSandboxTTL, E as extensionObjectsIn, Cc as extractDocumentText, vr as findAssistantLanguage, it as findAssistantModeConfig, be as findExistingSandbox, xe as findExistingSandboxWithStatus, Sr as findPendingWrite, Nr as fitPdfPages, Uo as focusIsInsidePanel, hi as formatBytes, Pr as formatPageRanges, Se as forwardsUserTokensToSandbox, po as getActorId, Ce as getAssistantArtifacts, Ma as getAssistantDisplayContent, Ve as getAssistantMedia, we as getAssistantMessages, Te as getAssistantSession, Ee as getAssistantStreamAccess, He as getAssistantText, gi as getAttachmentSendBlocker, re as getCapability, _i as getExtension, Z as getImageForMode, Q as getImageTagForMode, mo as getOrganizationId, Ue as getRawMessageCreatedAt, $ as getResourcesForMode, ee as getSandboxImageRegistry, vi as getSendableAttachments, an as getSpeechEngine, We as getToolProgress, ho as getWorkspaceId, mt as groupBySession, ht as groupConsecutiveBySession, yi as hasAttachmentWorkInFlight, No as hasConnectSource, Ct as hostedLocaleFor, wt as hostedSupportsLanguage, h as imageHostLabel, ut as incompleteTurnNotice, J as isAssistantModeId, Zc as isAssistantToggleShortcut, ya as isAutoRoutingOffered, Qo as isBlankProse, U as isBuiltInAssistantMode, zn as isCapturing, $a as isComparableTurn, Bn as isEcho, Wt as isHostedVoice, Oa as isLegacyFiller, ka as isLegacyStopped, Fr as isMostlyImagePages, go as isMultimodalBodyRejection, _o as isNeverRecoverableAssistantError, Ec as isProdRuntime, Y as isProductAssistantModeId, bi as isProviderReadableFilePart, D as isQuotaExhaustedError, Ge as isReapedSandboxConnectionError, xo as isRecentlyVerified, Ke as isRecoverable, vo as isRecoverableAssistantError, g as isRemoteImageSrc, $o as isRunningStatus, aa as isSpeakingMessage, Gt as isSpeechBlocked, Aa as isStageCopy, Vn as isSubmittable, Ta as isTurnInFlight, ie as isUnknownFieldError, gt as isVoiceTurn, Ji as isWriteModeAcknowledged, Ir as joinSheets, Kt as languageDisplayName, xi as largestInlineCharsPerFile, qe as mapSessionToHistory, ae as markSupported, eo as markTurn, oe as markUnsupported, Je as mergeMessagesById, Sa as mergePersistedAssistantState, ln as micIsInterrupt, De as modeRequiresConfirmWrites, Pa as msUntilNextPhrase, ds as nextActiveTab, Qc as nextAssistantOpenState, Ls as nextModeIndex, Wo as nextPanelOverlays, es as nextPreviewEvents, qt as normalizeLangTag, xc as notifyAiCreditsUpdated, Hn as orbMode, Lr as pageMarker, Ds as panelOwnedPreviewBridge, Go as panelOwnsEscape, Cr as parseConfirmationRefusal, Si as parseDataUrl, Rr as parseSharedStrings, Ua as parseToolActivity, zr as parseWorkbookSheets, Br as pdfTextItemsToPage, Ii as permissionRefusalMessage, fs as pinActiveTab, Ea as planAbandonedTurn, So as planAfterTransportFailure, Un as planReplyConsumption, Co as planTrustedSandboxFailure, Da as planTurnAbort, mr as pollDelayMs, mc as prewarmTarget, Jt as primaryLanguageSubtag, Oe as promptGatewayRequestBytes, $c as publishedAssistantDockWidth, oa as publishedChunks, O as quotaExhaustedEventName, el as readAssistantOverlayFlag, Ss as readReducedMotion, on as readSpeechEngineConfig, to as recentTurnTimelines, ke as releaseSupersededAssistantSandboxes, br as replyFollowsInput, Ae as reportAssistantAiTokenUsage, tl as requestedAssistantOpenState, sa as requiresCancel, sn as resetSpeechEngine, no as resetTurnTimelines, hc as resetWarmsForTest, Ca as resolveActiveModeSandbox, Ci as resolveAssistantInlineLimits, yr as resolveAssistantLanguage, at as resolveAssistantModeCapabilities, Ui as resolveAssistantSendModeAfterAccess, ba as resolveAutoRoute, xr as resolveLanguagePair, i as resolveModeConfig, te as resolveSandboxAssistantMode, ra as resolveSpeechLocale, ro as restartAttempt, Yi as restoreAcknowledgedWriteModes, xa as restoreAutoRouting, Bt as retryDelayMs, kn as rotationElapsedMs, os as runBelongsTo, ls as runIdentities, ss as sameOwner, ne as sandboxBaseModeFor, je as sandboxStatusOf, Ye as sanitize, io as segmentStats, Me as selectExistingAssistantSandbox, Ne as selectSupersededAssistantSandboxes, Yt as selectVoiceForLocale, Pe as sendAssistantPromptAsync, Fe as sendHeartbeat, gc as settleWarmBeforeSend, Vr as sheetXmlToRows, It as shouldDisableEngine, ps as shouldPinOnMove, ms as shouldPinOnSelect, cr as showPreviousChunk, un as showsAssistantCaption, dn as showsUserCaption, Ba as snapshotReplyFloor, Lt as speakableChunks, nr as speakableEmail, Xt as speechGate, ta as speechLabelsFor, Zt as speechLangForLocale, ca as speechPlaybackReducer, Rt as splitForVendor, rr as splitTableRow, Wn as spokenSoFar, Ga as spokenTurnText, vn as stageText, t as startIsCoolingDown, Fa as startPhraseTicker, An as startRotationTicker, _c as startWarm, yn as statusStageCopy, hs as stepsFromToolActivity, Ie as stopReapedAssistantSandbox, dt as streamBudgetMs, ja as stripLegacyFillerPrefix, Cs as subscribeReducedMotion, cn as subscribeSpeechEngine, Hr as summarisePageText, ao as summariseTurnTimelines, jn as syncRotationClock, gs as tabForArrowKey, bn as thinkingPhrase, xn as thinkingPhraseEntry, hr as toCaptionText, wi as toMessageAttachment, ir as toSpeakableText, Va as trackFirstText, Ti as truncateForInline, Ur as truncatePagesForInline, Ia as turnActivityCopy, La as turnActivityStage, oo as turnClockMs, zi as turnOutcomeCopy, so as turnSegments, co as turnTimeline, ot as unofferedModeSendRefusal, Wi as unofferedModeSendRefusalAfterAccess, lc as useAssistantApiAccess, wc as useAssistantAttachments, Po as useAssistantConnectSource, al as useAssistantDockWidth, Dc as useAssistantHeartbeat, d as useAssistantI18nNamespace, Oc as useAssistantKeyboardShortcuts, C as useAssistantNavigate, ol as useAssistantOverlayOrNull, a as useAssistantPageLabel, Xo as useAssistantPreview, Ts as useAssistantPreviewBridge, o as useAssistantProduct, s as useAssistantProductOrNull, sl as useAssistantQuotaExhausted, uo as useAssistantSpeech, c as useAssistantStorageFolders, wa as useAssistantStore, f as useAssistantTr, uc as useConversationTurns, Ko as useDropdownEscape, Os as useHostedAssistantPreviewBridge, ys as useOverlayFocus, ws as usePrefersReducedMotion, Ze as useSandboxAssistantTransport, n as useVoiceInput, fo as useVoiceSession, Sc as useWorkspaceWriteAccess, Ei as validateFile, Qt as voiceAvailability, _t as voiceMarker, or as voicePreviewText, $t as voiceQualityRank, vt as voiceSessionIdOf, Gn as voiceSessionReducer, fn as voiceStageState, Tn as voiceStatusParts, En as voiceStatusSuffix, Jn as voiceTranscriptFilename, yt as voiceTurnsOnly, en as voicesForLocale, Le as waitForAssistantServiceReady, Re as waitForSandboxRunning, vc as warmState, pn as waveformIsActive, mn as waveformIsSettled, ft as withIncompleteTurnNotice, Xi as withWriteModeAcknowledged, nl as writeAssistantOverlayFlag, Zi as writeModeConsentCopy, Qi as writeModeSendRefusal, $i as writeModeSendRefusalReason };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fe-libs",
3
- "version": "2026.925.5",
3
+ "version": "2026.925.6",
4
4
  "description": "Burdenoff frontend primitives and domain libraries",
5
5
  "type": "module",
6
6
  "bin": {