@burdenoff/fe-libs 2026.913.2 → 2026.914.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.
Files changed (50) hide show
  1. package/dist/shared/assistant/conversation.d.ts +29 -0
  2. package/dist/shared/assistant/conversation.d.ts.map +1 -1
  3. package/dist/shared/assistant/displayContent.d.ts +57 -0
  4. package/dist/shared/assistant/displayContent.d.ts.map +1 -0
  5. package/dist/shared/assistant/displayContent.js +26 -0
  6. package/dist/shared/assistant/exportConversation.d.ts +12 -2
  7. package/dist/shared/assistant/exportConversation.d.ts.map +1 -1
  8. package/dist/shared/assistant/exportConversation.js +24 -22
  9. package/dist/shared/assistant/index.d.ts +6 -0
  10. package/dist/shared/assistant/index.d.ts.map +1 -1
  11. package/dist/shared/assistant/legacyFiller.d.ts +60 -0
  12. package/dist/shared/assistant/legacyFiller.d.ts.map +1 -0
  13. package/dist/shared/assistant/legacyFiller.js +35 -0
  14. package/dist/shared/assistant/preview/previewTransitions.d.ts +15 -1
  15. package/dist/shared/assistant/preview/previewTransitions.d.ts.map +1 -1
  16. package/dist/shared/assistant/preview/previewTransitions.js +5 -2
  17. package/dist/shared/assistant/preview/useAssistantPreviewBridge.d.ts.map +1 -1
  18. package/dist/shared/assistant/preview/useAssistantPreviewBridge.js +51 -52
  19. package/dist/shared/assistant/spokenTurns.d.ts +25 -0
  20. package/dist/shared/assistant/spokenTurns.d.ts.map +1 -0
  21. package/dist/shared/assistant/spokenTurns.js +12 -0
  22. package/dist/shared/assistant/stageCopy.d.ts +23 -34
  23. package/dist/shared/assistant/stageCopy.d.ts.map +1 -1
  24. package/dist/shared/assistant/stageCopy.js +7 -16
  25. package/dist/shared/assistant/store.d.ts +10 -2
  26. package/dist/shared/assistant/store.d.ts.map +1 -1
  27. package/dist/shared/assistant/store.js +16 -9
  28. package/dist/shared/assistant/turnActivity.d.ts +66 -0
  29. package/dist/shared/assistant/turnActivity.d.ts.map +1 -0
  30. package/dist/shared/assistant/turnActivity.js +41 -0
  31. package/dist/shared/assistant/turnProgress.d.ts +51 -0
  32. package/dist/shared/assistant/turnProgress.d.ts.map +1 -0
  33. package/dist/shared/assistant/turnProgress.js +27 -0
  34. package/dist/shared/assistant/ui/AssistantChatArea.d.ts.map +1 -1
  35. package/dist/shared/assistant/ui/AssistantChatArea.js +285 -302
  36. package/dist/shared/assistant/ui/AssistantConversationList.d.ts.map +1 -1
  37. package/dist/shared/assistant/ui/AssistantConversationList.js +81 -80
  38. package/dist/shared/assistant/ui/AssistantMessageItem.d.ts +12 -1
  39. package/dist/shared/assistant/ui/AssistantMessageItem.d.ts.map +1 -1
  40. package/dist/shared/assistant/ui/AssistantMessageItem.js +103 -83
  41. package/dist/shared/assistant/ui/AssistantMessageList.d.ts +7 -1
  42. package/dist/shared/assistant/ui/AssistantMessageList.d.ts.map +1 -1
  43. package/dist/shared/assistant/ui/AssistantMessageList.js +16 -15
  44. package/dist/shared/assistant/ui/AssistantMoreMenu.d.ts.map +1 -1
  45. package/dist/shared/assistant/ui/AssistantMoreMenu.js +23 -20
  46. package/dist/shared/assistant/ui/AssistantTurnActivity.d.ts +37 -0
  47. package/dist/shared/assistant/ui/AssistantTurnActivity.d.ts.map +1 -0
  48. package/dist/shared/assistant/ui/AssistantTurnActivity.js +33 -0
  49. package/dist/shared-assistant.js +73 -67
  50. package/package.json +1 -1
@@ -3,36 +3,37 @@ import { AssistantMessageItem as t } from "./AssistantMessageItem.js";
3
3
  import { useEffect as n, useRef as r } from "react";
4
4
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
5
5
  //#region src/shared/assistant/ui/AssistantMessageList.tsx
6
- var o = ({ onApprovePendingWrite: o, approvingWriteRef: s = null, messages: c, streamingMessageId: l, failedMessageId: u, onRetry: d }) => {
7
- let f = e(), p = (() => {
6
+ var o = ({ onApprovePendingWrite: o, approvingWriteRef: s = null, messages: c, processing: l, streamingMessageId: u, failedMessageId: d, onRetry: f }) => {
7
+ let p = e(), m = (() => {
8
8
  for (let e = c.length - 1; e >= 0; --e) if (c[e].role === "assistant") return c[e].id;
9
9
  return null;
10
- })(), m = r(null), h = r(null);
10
+ })(), h = r(null), g = r(null);
11
11
  return n(() => {
12
- let e = h.current;
12
+ let e = g.current;
13
13
  if (e && e.scrollHeight - e.scrollTop - e.clientHeight < 100) {
14
14
  let e = typeof window < "u" && window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;
15
- m.current?.scrollIntoView({ behavior: e ? "auto" : "smooth" });
15
+ h.current?.scrollIntoView({ behavior: e ? "auto" : "smooth" });
16
16
  }
17
- }, [c, l]), n(() => {
18
- m.current?.scrollIntoView({ behavior: "instant" });
17
+ }, [c, u]), n(() => {
18
+ h.current?.scrollIntoView({ behavior: "instant" });
19
19
  }, []), /* @__PURE__ */ a("div", {
20
- ref: h,
20
+ ref: g,
21
21
  className: "flex-1 space-y-4 overflow-y-auto p-3",
22
22
  role: "log",
23
23
  "aria-live": "polite",
24
24
  "aria-relevant": "additions",
25
- "aria-busy": l !== null,
26
- "aria-label": f("messageList.ariaLabel", "Conversation messages"),
25
+ "aria-busy": u !== null,
26
+ "aria-label": p("messageList.ariaLabel", "Conversation messages"),
27
27
  children: [c.map((e) => /* @__PURE__ */ i(t, {
28
28
  onApprovePendingWrite: o,
29
29
  approvingWriteRef: s,
30
30
  message: e,
31
- isStreaming: e.id === l,
32
- isFailed: e.id === u,
33
- isLastAssistant: e.id === p,
34
- onRetry: d
35
- }, e.id)), /* @__PURE__ */ i("div", { ref: m })]
31
+ processing: l,
32
+ isStreaming: e.id === u,
33
+ isFailed: e.id === d,
34
+ isLastAssistant: e.id === m,
35
+ onRetry: f
36
+ }, e.id)), /* @__PURE__ */ i("div", { ref: h })]
36
37
  });
37
38
  };
38
39
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantMoreMenu.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantMoreMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAiB7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,iBAAiB,EAAE,EAgM/B,CAAC"}
1
+ {"version":3,"file":"AssistantMoreMenu.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantMoreMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAiB7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,iBAAiB,EAAE,EAqM/B,CAAC"}
@@ -10,7 +10,7 @@ import { Check as d, FileJson as f, FileText as p, MoreHorizontal as m, Play as
10
10
  import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
11
11
  //#region src/shared/assistant/ui/AssistantMoreMenu.tsx
12
12
  var b = () => {
13
- let b = e(), [x, S] = u(!1), C = l(null), w = l(null), { conversations: T, activeConversationId: E } = t(), D = T.find((e) => e.id === E), O = !!(D && D.messages.length > 0), { isSupported: k, isBlocked: A, disabledReason: j, autoSpeakEnabled: M, setAutoSpeak: N, stop: P, previewVoice: F, activeVoiceName: I } = n(), L = A && !M;
13
+ let b = e(), [x, S] = u(!1), C = l(null), w = l(null), { conversations: T, activeConversationId: E, processingByConversationId: D } = t(), O = T.find((e) => e.id === E), k = !!(O && O.messages.length > 0), { isSupported: A, isBlocked: j, disabledReason: M, autoSpeakEnabled: N, setAutoSpeak: P, stop: F, previewVoice: I, activeVoiceName: L } = n(), R = j && !N;
14
14
  i(x, C, w, () => S(!1)), c(() => {
15
15
  if (!x) return;
16
16
  let e = (e) => {
@@ -21,13 +21,16 @@ var b = () => {
21
21
  document.removeEventListener("mousedown", e);
22
22
  };
23
23
  }, [x]);
24
- let R = (e) => {
25
- if (!D) return;
26
- let { content: t, filename: n, mimeType: r } = s(D, e);
24
+ let z = (e) => {
25
+ if (!O) return;
26
+ let { content: t, filename: n, mimeType: r } = s(O, e, {
27
+ processing: D[O.id],
28
+ tr: b
29
+ });
27
30
  o(t, n, r), S(!1);
28
- }, z = () => {
29
- M && P(), N(!M);
30
- }, B = b("header.more", "More options");
31
+ }, B = () => {
32
+ N && F(), P(!N);
33
+ }, V = b("header.more", "More options");
31
34
  return /* @__PURE__ */ y("div", {
32
35
  className: "relative",
33
36
  children: [/* @__PURE__ */ v("button", {
@@ -35,7 +38,7 @@ var b = () => {
35
38
  type: "button",
36
39
  onClick: () => S((e) => !e),
37
40
  className: "rounded p-1 transition-colors hover:bg-bg-elevated",
38
- "aria-label": B,
41
+ "aria-label": V,
39
42
  "aria-haspopup": "menu",
40
43
  "aria-expanded": x,
41
44
  "data-testid": "assistant-more",
@@ -43,17 +46,17 @@ var b = () => {
43
46
  }), x ? /* @__PURE__ */ y("div", {
44
47
  ref: C,
45
48
  role: "menu",
46
- "aria-label": B,
49
+ "aria-label": V,
47
50
  className: "absolute right-0 top-full z-50 mt-1 min-w-56 overflow-hidden rounded-xl border border-border-default bg-bg-surface py-1 shadow-lg",
48
51
  "data-testid": "assistant-more-menu",
49
52
  children: [
50
- k ? /* @__PURE__ */ y("button", {
53
+ A ? /* @__PURE__ */ y("button", {
51
54
  type: "button",
52
55
  role: "menuitemcheckbox",
53
- "aria-checked": M,
54
- onClick: z,
55
- disabled: L,
56
- title: L ? j ?? void 0 : void 0,
56
+ "aria-checked": N,
57
+ onClick: B,
58
+ disabled: R,
59
+ title: R ? M ?? void 0 : void 0,
57
60
  className: "flex w-full items-center gap-2.5 px-3 py-2 text-left text-xs text-text-primary transition-colors hover:bg-bg-elevated disabled:cursor-not-allowed disabled:text-text-muted disabled:hover:bg-transparent",
58
61
  "data-testid": "assistant-auto-speak",
59
62
  children: [
@@ -65,16 +68,16 @@ var b = () => {
65
68
  className: "flex-1",
66
69
  children: b("header.autoRead", "Auto-read replies")
67
70
  }),
68
- M ? /* @__PURE__ */ v(d, { className: "size-3.5 flex-shrink-0 text-action-primary-bg" }) : null
71
+ N ? /* @__PURE__ */ v(d, { className: "size-3.5 flex-shrink-0 text-action-primary-bg" }) : null
69
72
  ]
70
73
  }) : null,
71
74
  /* @__PURE__ */ v(r, {}),
72
75
  /* @__PURE__ */ y("div", {
73
76
  className: "flex items-center gap-1 px-3 py-1.5",
74
77
  "data-testid": "assistant-more-voice",
75
- children: [/* @__PURE__ */ v(a, {}), I ? /* @__PURE__ */ y("button", {
78
+ children: [/* @__PURE__ */ v(a, {}), L ? /* @__PURE__ */ y("button", {
76
79
  type: "button",
77
- onClick: () => F(I),
80
+ onClick: () => I(L),
78
81
  className: "flex items-center gap-1 rounded-md px-1.5 py-1 text-[11px] text-text-muted transition-colors hover:bg-bg-elevated hover:text-text-secondary focus:outline-none focus-visible:ring-2 focus-visible:ring-border-strong",
79
82
  "aria-label": b("voice.preview", "Hear this voice"),
80
83
  "data-testid": "assistant-voice-preview",
@@ -84,7 +87,7 @@ var b = () => {
84
87
  }), b("voice.previewShort", "Preview")]
85
88
  }) : null]
86
89
  }),
87
- O ? /* @__PURE__ */ y(_, { children: [
90
+ k ? /* @__PURE__ */ y(_, { children: [
88
91
  /* @__PURE__ */ v("div", {
89
92
  className: "my-1 border-t border-border-subtle",
90
93
  role: "separator"
@@ -92,7 +95,7 @@ var b = () => {
92
95
  /* @__PURE__ */ y("button", {
93
96
  type: "button",
94
97
  role: "menuitem",
95
- onClick: () => R("json"),
98
+ onClick: () => z("json"),
96
99
  className: "flex w-full items-center gap-2.5 px-3 py-2 text-left text-xs text-text-primary transition-colors hover:bg-bg-elevated",
97
100
  "data-testid": "export-json",
98
101
  children: [/* @__PURE__ */ v(f, {
@@ -103,7 +106,7 @@ var b = () => {
103
106
  /* @__PURE__ */ y("button", {
104
107
  type: "button",
105
108
  role: "menuitem",
106
- onClick: () => R("markdown"),
109
+ onClick: () => z("markdown"),
107
110
  className: "flex w-full items-center gap-2.5 px-3 py-2 text-left text-xs text-text-primary transition-colors hover:bg-bg-elevated",
108
111
  "data-testid": "export-markdown",
109
112
  children: [/* @__PURE__ */ v(p, {
@@ -0,0 +1,37 @@
1
+ import { FC } from 'react';
2
+ import { AssistantConversationProcessing } from '../conversation';
3
+ /**
4
+ * The waiting line for one turn, as markup.
5
+ *
6
+ * ★ Two spans, like the voice status line: the moving phrase is hidden from
7
+ * assistive tech and the step's label is read instead, so a screen reader
8
+ * browsing the transcript hears "Thinking..." rather than whichever decoration
9
+ * the rotation happened to be on. Neither is a live region — the transcript is
10
+ * `role="log"` and `aria-busy` while a turn runs, which already says so.
11
+ *
12
+ * ★ `relative` contains the `sr-only` span. Without a positioned ancestor its
13
+ * absolute box escapes to the nearest scroll container.
14
+ *
15
+ * Exported separately so the markup can be rendered with different shown and
16
+ * label text; static rendering runs no clock, so the stateful component alone
17
+ * would only ever show the two equal.
18
+ */
19
+ export declare const TurnActivityLine: FC<{
20
+ shown: string;
21
+ label: string;
22
+ }>;
23
+ /**
24
+ * What a live turn is doing, drawn from its processing state (BOFF-7277).
25
+ *
26
+ * ★★ The clock lives HERE. A tick re-renders only this line, the orchestrator
27
+ * stays free of timers, and nothing is written anywhere — the message's content
28
+ * is untouched while the phrase moves.
29
+ *
30
+ * ★ Under `prefers-reduced-motion` the line holds the step's label instead of
31
+ * rotating: text that changes every few seconds on its own is exactly the kind
32
+ * of movement that preference asks to stop, as the avatar and caret already do.
33
+ */
34
+ export declare const AssistantTurnActivity: FC<{
35
+ processing: AssistantConversationProcessing | null | undefined;
36
+ }>;
37
+ //# sourceMappingURL=AssistantTurnActivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssistantTurnActivity.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantTurnActivity.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAGrD,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AASvE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAkBjE,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC;IACrC,UAAU,EAAE,+BAA+B,GAAG,IAAI,GAAG,SAAS,CAAC;CAChE,CAaA,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { useMediaQuery as e } from "../../hooks/useMediaQuery.js";
2
+ import { useAssistantTr as t } from "../i18n.js";
3
+ import { elapsedSince as n, startPhraseTicker as r, turnActivityCopy as i, turnActivityStage as a } from "../turnActivity.js";
4
+ import { useEffect as o, useState as s } from "react";
5
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
6
+ //#region src/shared/assistant/ui/AssistantTurnActivity.tsx
7
+ var u = ({ shown: e, label: t }) => /* @__PURE__ */ l("p", {
8
+ className: "relative text-[15px] leading-relaxed text-text-secondary",
9
+ "data-testid": "assistant-turn-activity",
10
+ children: [/* @__PURE__ */ c("span", {
11
+ "aria-hidden": "true",
12
+ "data-testid": "assistant-turn-activity-shown",
13
+ children: e
14
+ }), /* @__PURE__ */ c("span", {
15
+ className: "sr-only left-0 top-0",
16
+ "data-testid": "assistant-turn-activity-label",
17
+ children: t
18
+ })]
19
+ }), d = ({ processing: n }) => {
20
+ let r = t(), o = e("(prefers-reduced-motion: reduce)"), s = i(r, n, f(a(n) === "thinking" && !o && typeof n?.stageStartedAt == "number" ? n.stageStartedAt : null));
21
+ return s ? /* @__PURE__ */ c(u, {
22
+ shown: s.shown,
23
+ label: s.label
24
+ }) : null;
25
+ };
26
+ function f(e) {
27
+ let [t, i] = s(() => Date.now());
28
+ return o(() => {
29
+ if (e !== null) return r(e, i);
30
+ }, [e]), n(e, t);
31
+ }
32
+ //#endregion
33
+ export { d as AssistantTurnActivity, u as TurnActivityLine };
@@ -23,7 +23,7 @@ import { createHostedTtsEngine as it } from "./shared/assistant/speech/hostedTts
23
23
  import { createRoutingSpeechEngine as at } from "./shared/assistant/speech/routingSpeechEngine.js";
24
24
  import { configureSpeechEngine as ot, createSpeechEngines as st, getSpeechEngine as ct, readSpeechEngineConfig as lt, resetSpeechEngine as ut } from "./shared/assistant/speech/createSpeechEngine.js";
25
25
  import { micIsInterrupt as dt, showsAssistantCaption as ft, showsUserCaption as pt, voiceStageState as mt, waveformIsActive as ht, waveformIsSettled as gt } from "./shared/assistant/voice/voiceStageState.js";
26
- import { PHRASE_ROTATE_MS as _t, STAGE_COPY as vt, THINKING_PHRASES as yt, isStageCopy as bt, stageText as xt, statusStageCopy as St, thinkingPhrase as Ct } from "./shared/assistant/stageCopy.js";
26
+ import { PHRASE_ROTATE_MS as _t, STAGE_COPY as vt, THINKING_PHRASES as yt, stageText as bt, statusStageCopy as xt, thinkingPhrase as St, thinkingPhraseEntry as Ct } from "./shared/assistant/stageCopy.js";
27
27
  import { VOICE_MUTED_LABEL as wt, VOICE_THINKING_LABEL as Tt, composeVoiceStatus as Et, voiceStatusParts as Dt, voiceStatusSuffix as Ot } from "./shared/assistant/voice/voiceStatus.js";
28
28
  import { IDLE_ROTATION_CLOCK as kt, advanceRotationClock as At, rotationElapsedMs as jt, startRotationTicker as Mt, syncRotationClock as Nt } from "./shared/assistant/voice/rotationClock.js";
29
29
  import { ENDPOINT_GRACE_MS as Pt, INITIAL_SESSION as Ft, INTERRUPT_MAX_MS as It, INTERRUPT_MIN_MS as Lt, SILENCE_SUBMIT_MS as Rt, isCapturing as zt, isEcho as Bt, isSubmittable as Vt, orbMode as Ht, planReplyConsumption as Ut, spokenSoFar as Wt, voiceSessionReducer as Gt } from "./shared/assistant/voice/voiceSession.js";
@@ -45,69 +45,75 @@ import { BOILERPLATE_PAGE_SHARE as Jn, MAX_BOILERPLATE_LINE_CHARS as Yn, MAX_EXT
45
45
  import { ATTACHMENT_ACCEPT as mr, AttachmentRejectedError as hr, INLINE_IMAGE_MAX_DIM as gr, INLINE_IMAGE_QUALITY as _r, MAX_ATTACHMENTS as vr, MAX_FILE_BYTES as yr, MAX_INLINE_CHARS_PER_FILE as br, MAX_INLINE_CHARS_TOTAL as xr, MAX_INLINE_IMAGE_BASE64_CHARS as Sr, MAX_INLINE_IMAGE_PARTS as Cr, MAX_INLINE_TURN_BODY_BYTES as wr, MAX_TURN_BODY_BYTES as Tr, PROMPT_ENVELOPE_RESERVE_BYTES as Er, PROVIDER_READABLE_FILE_MEDIA_TYPES as Dr, TURN_BODY_HEADROOM_BYTES as Or, buildAttachmentPromptBlock as kr, buildPromptParts as Ar, buildPromptWithAttachments as jr, classifyAttachment as Mr, countInlineImageCandidates as Nr, countInlinedImageParts as Pr, detectDocumentFormat as Fr, estimateTurnBodyBytes as Ir, formatBytes as Lr, getAttachmentSendBlocker as Rr, getExtension as zr, getSendableAttachments as Br, hasAttachmentWorkInFlight as Vr, isProviderReadableFilePart as Hr, parseDataUrl as Ur, toMessageAttachment as Wr, truncateForInline as Gr, validateFile as Kr } from "./shared/assistant/attachments.js";
46
46
  import { useAssistantStore as qr } from "./shared/assistant/store.js";
47
47
  import { isTurnInFlight as Jr, planAbandonedTurn as Yr, planTurnAbort as Xr } from "./shared/assistant/turnState.js";
48
- import { AssistantAvatar as Zr } from "./shared/assistant/ui/AssistantAvatar.js";
49
- import { AssistantToolActivity as Qr, parseToolActivity as $r } from "./shared/assistant/ui/AssistantToolActivity.js";
50
- import { AssistantSpeechProvider as ei, useAssistantSpeech as ti } from "./shared/assistant/ui/AssistantSpeechProvider.js";
51
- import { useVoiceSession as ni } from "./shared/assistant/ui/useVoiceSession.js";
52
- import { getActorId as ri, getOrganizationId as ii, getWorkspaceId as ai } from "./shared/assistant/context.js";
53
- import { ATTACHMENT_SOURCES as oi, availableAttachmentSources as si, deviceHasCamera as ci } from "./shared/assistant/attachmentSources.js";
54
- import { SANDBOX_READY_TTL_MS as li, createReadinessTracker as ui, isRecentlyVerified as di } from "./shared/assistant/sandboxReadiness.js";
55
- import { AssistantAutoSpeakToggle as fi } from "./shared/assistant/ui/AssistantAutoSpeakToggle.js";
56
- import { AssistantMessageAttachments as pi } from "./shared/assistant/ui/AssistantMessageAttachments.js";
57
- import { AssistantPendingWriteCard as mi } from "./shared/assistant/ui/AssistantPendingWriteCard.js";
58
- import { AssistantLanguageMenu as hi } from "./shared/assistant/ui/AssistantLanguageMenu.js";
59
- import { AssistantReplyLanguageSelector as gi } from "./shared/assistant/ui/AssistantReplyLanguageSelector.js";
60
- import { AssistantSpeakButton as _i } from "./shared/assistant/ui/AssistantSpeakButton.js";
61
- import { AssistantSpokenTurnsNotice as vi } from "./shared/assistant/ui/AssistantSpokenTurnsNotice.js";
62
- import { AssistantConnectSourceProvider as yi, useAssistantConnectSource as bi } from "./shared/assistant/ui/composer/connectSource.js";
63
- import { AssistantConnectSourceItem as xi } from "./shared/assistant/ui/composer/AssistantConnectSourceItem.js";
64
- import { ASSISTANT_OVERLAY_ATTR as Si, ASSISTANT_PANEL_ATTR as Ci, NO_PANEL_OVERLAY as wi, activePanelOverlay as Ti, assistantPanelOwnsEscape as Ei, escapeDismisses as Di, focusIsInsidePanel as Oi, nextPanelOverlays as ki, panelOwnsEscape as Ai } from "./shared/assistant/ui/panelOverlays.js";
65
- import { useDropdownEscape as ji } from "./shared/assistant/ui/useDropdownEscape.js";
66
- import { AssistantAttachmentButton as Mi } from "./shared/assistant/ui/composer/AssistantAttachmentButton.js";
67
- import { AssistantAttachmentChips as Ni } from "./shared/assistant/ui/composer/AssistantAttachmentChips.js";
68
- import { AssistantPreviewProvider as Pi, useAssistantPreview as Fi } from "./shared/assistant/preview/context.js";
69
- import { IDLE_PREVIEW_STATE as Ii, isRunningStatus as Li, nextPreviewEvents as Ri } from "./shared/assistant/preview/previewTransitions.js";
70
- import { IDLE_PREVIEW as zi, NO_OWNER as Bi, applyPreviewEvent as Vi, createAssistantPreviewSurface as Hi, currentPreviewOwner as Ui, runBelongsTo as Wi, sameOwner as Gi } from "./shared/assistant/preview/surfaceState.js";
71
- import { createRunIdentityCache as Ki, runIdentities as qi } from "./shared/assistant/preview/runIdentity.js";
72
- import { IDLE_ACTIVE_TAB as Ji, nextActiveTab as Yi, pinActiveTab as Xi, shouldPinOnMove as Zi, shouldPinOnSelect as Qi, stepsFromToolActivity as $i, tabForArrowKey as ea } from "./shared/assistant/preview/entity/entityPreviewState.js";
73
- import { AssistantStepRail as ta } from "./shared/assistant/preview/entity/AssistantStepRail.js";
74
- import { AssistantEntityPreview as na } from "./shared/assistant/preview/entity/AssistantEntityPreview.js";
75
- import { useOverlayFocus as ra } from "./shared/assistant/ui/useOverlayFocus.js";
76
- import { useAssistantPreviewBridge as ia } from "./shared/assistant/preview/useAssistantPreviewBridge.js";
77
- import { AssistantPreviewOverlay as aa } from "./shared/assistant/preview/AssistantPreviewOverlay.js";
78
- import { AssistantLanguageSelector as oa, FOLLOW_APP_LOCALE as sa } from "./shared/assistant/ui/composer/AssistantLanguageSelector.js";
79
- import { ASSISTANT_MODE_META as ca, AssistantModeSelector as la, nextModeIndex as ua } from "./shared/assistant/ui/composer/AssistantModeSelector.js";
80
- import { AssistantVoiceButton as da } from "./shared/assistant/ui/composer/AssistantVoiceButton.js";
81
- import { AUTO_VOICE as fa, AssistantVoiceSelector as pa } from "./shared/assistant/ui/composer/AssistantVoiceSelector.js";
82
- import { AssistantVoiceOrb as ma } from "./shared/assistant/ui/voice/AssistantVoiceOrb.js";
83
- import { AssistantVoiceSessionButton as ha } from "./shared/assistant/ui/voice/AssistantVoiceSessionButton.js";
84
- import { CAPTION_SCROLL_ATTR as ga, VoiceCaption as _a } from "./shared/assistant/ui/voice/VoiceCaption.js";
85
- import { VoiceConversationView as va } from "./shared/assistant/ui/voice/VoiceConversationView.js";
86
- import { VoiceWaveform as ya } from "./shared/assistant/ui/voice/VoiceWaveform.js";
87
- import { VoiceStatusLine as ba, VoiceStatusText as xa } from "./shared/assistant/ui/voice/VoiceStatusText.js";
88
- import { VoiceMiniController as Sa } from "./shared/assistant/ui/voice/VoiceMiniController.js";
89
- import { VoiceStage as Ca } from "./shared/assistant/ui/voice/VoiceStage.js";
90
- import { VoiceTranscriptDrawer as wa } from "./shared/assistant/ui/voice/VoiceTranscriptDrawer.js";
91
- import { downloadFile as Ta, exportConversation as Ea } from "./shared/assistant/exportConversation.js";
92
- import { AssistantMoreMenu as Da } from "./shared/assistant/ui/AssistantMoreMenu.js";
93
- import { AssistantHeader as Oa } from "./shared/assistant/ui/AssistantHeader.js";
94
- import { AssistantConversationList as ka } from "./shared/assistant/ui/AssistantConversationList.js";
95
- import { AssistantEmptyState as Aa } from "./shared/assistant/ui/AssistantEmptyState.js";
96
- import { AssistantMessageItem as ja } from "./shared/assistant/ui/AssistantMessageItem.js";
97
- import { AssistantMessageList as Ma } from "./shared/assistant/ui/AssistantMessageList.js";
98
- import { AssistantVoiceSession as Na } from "./shared/assistant/ui/voice/AssistantVoiceSession.js";
99
- import { useAssistantApiAccess as Pa } from "./shared/assistant/useAssistantApiAccess.js";
100
- import { useConversationTurns as Fa } from "./shared/assistant/useConversationTurns.js";
101
- import { isMultimodalBodyRejection as Ia, isRecoverableAssistantError as La } from "./shared/assistant/transportErrors.js";
102
- import { aiCreditsUpdatedEventName as Ra, dispatchAssistantQuotaExhausted as za, notifyAiCreditsUpdated as Ba } from "./shared/assistant/aiCredits.js";
103
- import { useWorkspaceWriteAccess as Va } from "./shared/assistant/useWorkspaceWriteAccess.js";
104
- import { extractDocumentText as Ha } from "./shared/assistant/documentExtract.js";
105
- import { useAssistantAttachments as Ua } from "./shared/assistant/useAssistantAttachments.js";
106
- import { AssistantComposer as Wa } from "./shared/assistant/ui/composer/AssistantComposer.js";
107
- import { isProdRuntime as Ga } from "./shared/assistant/env.js";
108
- import { useAssistantHeartbeat as Ka } from "./shared/assistant/useAssistantHeartbeat.js";
109
- import { useAssistantKeyboardShortcuts as qa } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
110
- import { AssistantApiCallsConsentDialog as Ja } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
111
- import { AssistantChatArea as Ya } from "./shared/assistant/ui/AssistantChatArea.js";
112
- import { AIAssistantPanel as Xa } from "./shared/assistant/ui/AIAssistantPanel.js";
113
- export { Xa as AIAssistantPanel, L as ASSISTANT_API_AUTH_STRATEGY, kn as ASSISTANT_LANGUAGES, ca as ASSISTANT_MODE_META, Si as ASSISTANT_OVERLAY_ATTR, Ci as ASSISTANT_PANEL_ATTR, mr as ATTACHMENT_ACCEPT, oi as ATTACHMENT_SOURCES, fa as AUTO_VOICE, Ja as AssistantApiCallsConsentDialog, Mi as AssistantAttachmentButton, Ni as AssistantAttachmentChips, fi as AssistantAutoSpeakToggle, Zr as AssistantAvatar, Ya as AssistantChatArea, Wa as AssistantComposer, xi as AssistantConnectSourceItem, yi as AssistantConnectSourceProvider, ka as AssistantConversationList, Aa as AssistantEmptyState, na as AssistantEntityPreview, Oa as AssistantHeader, s as AssistantI18nProvider, hi as AssistantLanguageMenu, oa as AssistantLanguageSelector, f as AssistantMarkdownImage, h as AssistantMarkdownRenderer, pi as AssistantMessageAttachments, ja as AssistantMessageItem, Ma as AssistantMessageList, la as AssistantModeSelector, Da as AssistantMoreMenu, g as AssistantNavigateProvider, mi as AssistantPendingWriteCard, aa as AssistantPreviewOverlay, Pi as AssistantPreviewProvider, t as AssistantProductProvider, gi as AssistantReplyLanguageSelector, _e as AssistantRuntimeManager, _i as AssistantSpeakButton, ei as AssistantSpeechProvider, vi as AssistantSpokenTurnsNotice, ta as AssistantStepRail, Qr as AssistantToolActivity, da as AssistantVoiceButton, ma as AssistantVoiceOrb, pa as AssistantVoiceSelector, Na as AssistantVoiceSession, ha as AssistantVoiceSessionButton, hr as AttachmentRejectedError, Jn as BOILERPLATE_PAGE_SHARE, ga as CAPTION_SCROLL_ATTR, O as CHECK_AI_CREDITS, k as CREATE_SANDBOX, cn as DEFAULT_SPEAKABLE_LABELS, An as DEFAULT_SPEECH_RATE, Ae as DEFAULT_STREAM_BUDGET_MS, Pt as ENDPOINT_GRACE_MS, A as EXTEND_SANDBOX_TTL, sa as FOLLOW_APP_LOCALE, j as GET_ACTIVE_SANDBOXES, M as GET_SANDBOX, qe as HOSTED_TTS_MAX_CHARS, Ue as HOSTED_TTS_TIER, We as HOSTED_VOICES, Ji as IDLE_ACTIVE_TAB, Vn as IDLE_PLAYBACK, zi as IDLE_PREVIEW, Ii as IDLE_PREVIEW_STATE, kt as IDLE_ROTATION_CLOCK, Ft as INITIAL_SESSION, gr as INLINE_IMAGE_MAX_DIM, _r as INLINE_IMAGE_QUALITY, It as INTERRUPT_MAX_MS, Lt as INTERRUPT_MIN_MS, vr as MAX_ATTACHMENTS, Yn as MAX_BOILERPLATE_LINE_CHARS, Xn as MAX_EXTRACTED_CHARS, yr as MAX_FILE_BYTES, br as MAX_INLINE_CHARS_PER_FILE, xr as MAX_INLINE_CHARS_TOTAL, Kn as MAX_INLINE_IMAGE_BASE64_BYTES, Sr as MAX_INLINE_IMAGE_BASE64_CHARS, Cr as MAX_INLINE_IMAGE_PARTS, wr as MAX_INLINE_TURN_BODY_BYTES, Zn as MAX_PDF_PAGES_SCANNED, qn as MAX_REQUEST_BODY_BYTES, ln as MAX_SPEAKABLE_CHARS, un as MAX_SPOKEN_TABLE_ROWS, Tr as MAX_TURN_BODY_BYTES, bn as MINI_CAPTION_BUDGET, Qn as MIN_PAGE_TEXT_CHARS, $n as MIN_TEXT_PAGE_SHARE, Bi as NO_OWNER, wi as NO_PANEL_OVERLAY, _t as PHRASE_ROTATE_MS, Sn as POLL_FAST_MS, Cn as POLL_FAST_UNTIL_MS, wn as POLL_SLOW_MS, Tn as POLL_STEADY_MS, En as POLL_STEADY_UNTIL_MS, vn as PREVIEW_LANGUAGES, Er as PROMPT_ENVELOPE_RESERVE_BYTES, Dr as PROVIDER_READABLE_FILE_MEDIA_TYPES, N as PROXY_SANDBOX_REQUEST, P as REPORT_AI_TOKEN_USAGE, li as SANDBOX_READY_TTL_MS, Rt as SILENCE_SUBMIT_MS, Je as SPEAKING_RATE_MAX, Ye as SPEAKING_RATE_MAX_STREAMING, Xe as SPEAKING_RATE_MAX_SYNC, Ze as SPEAKING_RATE_MIN, dn as SPEECH_CHUNK_CHARS, fn as SPEECH_CHUNK_CJK_CHARS, Kt as SPEECH_LANG, Ln as SPOKEN_LABEL_LANGUAGES, vt as STAGE_COPY, F as STOP_ASSISTANT_SANDBOX, je as STREAM_BUDGET_MS, yt as THINKING_PHRASES, Or as TURN_BODY_HEADROOM_BYTES, qt as VOICE_LIST_TIMEOUT_MS, wt as VOICE_MUTED_LABEL, Tt as VOICE_THINKING_LABEL, _a as VoiceCaption, va as VoiceConversationView, Sa as VoiceMiniController, Ca as VoiceStage, ba as VoiceStatusLine, xa as VoiceStatusText, wa as VoiceTranscriptDrawer, ya as VoiceWaveform, I as WAIT_FOR_SANDBOX_RUNNING, q as abortAssistantTurn, Ti as activePanelOverlay, At as advanceRotationClock, Ra as aiCreditsUpdatedEventName, Vi as applyPreviewEvent, J as approvePendingWrite, Ei as assistantPanelOwnsEscape, _ as assistantRoutePath, c as assistantTranslationKey, v as assistantUrlTransform, si as availableAttachmentSources, Qe as base64ToBytes, y as browserShouldHandle, He as browserSpeechEngine, Y as buildAssistantSandboxEnv, kr as buildAttachmentPromptBlock, an as buildContinuedFromVoiceNote, ve as buildProgress, Ar as buildPromptParts, X as buildPromptRequestBody, jr as buildPromptWithAttachments, $e as buildRequest, E as buildSandboxContextInput, on as buildVoiceTranscriptMarkdown, Fe as chatTurns, Z as checkAssistantAiCredits, pn as chunkForSpeech, b as classifyAssistantHref, Mr as classifyAttachment, et as classifyHttpFailure, S as classifyQuotaError, er as columnLetterToIndex, Et as composeVoiceStatus, ot as configureSpeechEngine, mn as containsCjk, d as copyToClipboard, Nr as countInlineImageCandidates, Pr as countInlinedImageParts, Hi as createAssistantPreviewSurface, Q as createAssistantSandbox, $ as createAssistantSession, it as createHostedTtsEngine, ui as createReadinessTracker, at as createRoutingSpeechEngine, Ki as createRunIdentityCache, Oe as createSandboxAssistantTransport, st as createSpeechEngines, Ui as currentPreviewOwner, tt as decodeAudioResponse, tr as decodeXmlEntities, C as describeQuotaError, Fr as detectDocumentFormat, zn as detectScriptLocale, ci as deviceHasCamera, za as dispatchAssistantQuotaExhausted, nr as docxXmlToText, ee as downloadAssistantArtifact, Ta as downloadFile, Di as escapeDismisses, Ir as estimateTurnBodyBytes, D as executeSandboxGraphQL, Ea as exportConversation, te as extendAssistantSandboxTTL, Ha as extractDocumentText, jn as findAssistantLanguage, ne as findExistingSandbox, Fn as findPendingWrite, rr as fitPdfPages, Oi as focusIsInsidePanel, Lr as formatBytes, ir as formatPageRanges, ri as getActorId, re as getAssistantArtifacts, ye as getAssistantMedia, ie as getAssistantMessages, ae as getAssistantSession, oe as getAssistantStreamAccess, be as getAssistantText, Rr as getAttachmentSendBlocker, U as getCapability, zr as getExtension, R as getImageForMode, z as getImageTagForMode, ii as getOrganizationId, xe as getRawMessageCreatedAt, B as getResourcesForMode, V as getSandboxImageRegistry, Br as getSendableAttachments, ct as getSpeechEngine, Se as getToolProgress, ai as getWorkspaceId, Ie as groupBySession, Le as groupConsecutiveBySession, Vr as hasAttachmentWorkInFlight, Ge as hostedLocaleFor, Ke as hostedSupportsLanguage, p as imageHostLabel, Me as incompleteTurnNotice, zt as isCapturing, Bt as isEcho, ar as isMostlyImagePages, Ia as isMultimodalBodyRejection, Ga as isProdRuntime, Hr as isProviderReadableFilePart, w as isQuotaExhaustedError, Ce as isReapedSandboxConnectionError, di as isRecentlyVerified, we as isRecoverable, La as isRecoverableAssistantError, m as isRemoteImageSrc, Li as isRunningStatus, Hn as isSpeakingMessage, Jt as isSpeechBlocked, bt as isStageCopy, Vt as isSubmittable, Jr as isTurnInFlight, W as isUnknownFieldError, Re as isVoiceTurn, or as joinSheets, Yt as languageDisplayName, Te as mapSessionToHistory, G as markSupported, K as markUnsupported, Ee as mergeMessagesById, dt as micIsInterrupt, se as modeRequiresConfirmWrites, Yi as nextActiveTab, ua as nextModeIndex, ki as nextPanelOverlays, Ri as nextPreviewEvents, Xt as normalizeLangTag, Ba as notifyAiCreditsUpdated, Ht as orbMode, sr as pageMarker, Ai as panelOwnsEscape, In as parseConfirmationRefusal, Ur as parseDataUrl, cr as parseSharedStrings, $r as parseToolActivity, lr as parseWorkbookSheets, ur as pdfTextItemsToPage, Xi as pinActiveTab, Yr as planAbandonedTurn, Ut as planReplyConsumption, Xr as planTurnAbort, Dn as pollDelayMs, Zt as primaryLanguageSubtag, Un as publishedChunks, T as quotaExhaustedEventName, lt as readSpeechEngineConfig, ce as releaseSupersededAssistantSandboxes, Nn as replyFollowsInput, le as reportAssistantAiTokenUsage, Wn as requiresCancel, ut as resetSpeechEngine, Mn as resolveAssistantLanguage, Pn as resolveLanguagePair, n as resolveModeConfig, H as resolveSandboxAssistantMode, Bn as resolveSpeechLocale, jt as rotationElapsedMs, Wi as runBelongsTo, qi as runIdentities, Gi as sameOwner, De as sanitize, ue as selectExistingAssistantSandbox, de as selectSupersededAssistantSandboxes, Qt as selectVoiceForLocale, fe as sendAssistantPromptAsync, pe as sendHeartbeat, dr as sheetXmlToRows, nt as shouldDisableEngine, Zi as shouldPinOnMove, Qi as shouldPinOnSelect, xn as showPreviousChunk, ft as showsAssistantCaption, pt as showsUserCaption, hn as speakableEmail, $t as speechGate, Rn as speechLabelsFor, en as speechLangForLocale, Gn as speechPlaybackReducer, rt as splitForVendor, gn as splitTableRow, Wt as spokenSoFar, xt as stageText, Mt as startRotationTicker, St as statusStageCopy, $i as stepsFromToolActivity, me as stopReapedAssistantSandbox, Ne as streamBudgetMs, fr as summarisePageText, Nt as syncRotationClock, ea as tabForArrowKey, Ct as thinkingPhrase, On as toCaptionText, Wr as toMessageAttachment, _n as toSpeakableText, Gr as truncateForInline, pr as truncatePagesForInline, Pa as useAssistantApiAccess, Ua as useAssistantAttachments, bi as useAssistantConnectSource, Ka as useAssistantHeartbeat, l as useAssistantI18nNamespace, qa as useAssistantKeyboardShortcuts, x as useAssistantNavigate, r as useAssistantPageLabel, Fi as useAssistantPreview, ia as useAssistantPreviewBridge, i as useAssistantProduct, a as useAssistantProductOrNull, ti as useAssistantSpeech, o as useAssistantStorageFolders, qr as useAssistantStore, u as useAssistantTr, Fa as useConversationTurns, ji as useDropdownEscape, ra as useOverlayFocus, ke as useSandboxAssistantTransport, e as useVoiceInput, ni as useVoiceSession, Va as useWorkspaceWriteAccess, Kr as validateFile, tn as voiceAvailability, ze as voiceMarker, yn as voicePreviewText, nn as voiceQualityRank, Be as voiceSessionIdOf, Gt as voiceSessionReducer, mt as voiceStageState, Dt as voiceStatusParts, Ot as voiceStatusSuffix, sn as voiceTranscriptFilename, Ve as voiceTurnsOnly, rn as voicesForLocale, he as waitForAssistantServiceReady, ge as waitForSandboxRunning, ht as waveformIsActive, gt as waveformIsSettled, Pe as withIncompleteTurnNotice };
48
+ import { isLegacyFiller as Zr, isLegacyStopped as Qr, isStageCopy as $r, stripLegacyFillerPrefix as ei } from "./shared/assistant/legacyFiller.js";
49
+ import { getAssistantDisplayContent as ti } from "./shared/assistant/displayContent.js";
50
+ import { elapsedSince as ni, msUntilNextPhrase as ri, startPhraseTicker as ii, turnActivityCopy as ai, turnActivityStage as oi } from "./shared/assistant/turnActivity.js";
51
+ import { buildAssistantProgress as si } from "./shared/assistant/turnProgress.js";
52
+ import { AssistantToolActivity as ci, parseToolActivity as li } from "./shared/assistant/ui/AssistantToolActivity.js";
53
+ import { countSpokenTurns as ui, spokenTurnText as di } from "./shared/assistant/spokenTurns.js";
54
+ import { AssistantAvatar as fi } from "./shared/assistant/ui/AssistantAvatar.js";
55
+ import { AssistantSpeechProvider as pi, useAssistantSpeech as mi } from "./shared/assistant/ui/AssistantSpeechProvider.js";
56
+ import { useVoiceSession as hi } from "./shared/assistant/ui/useVoiceSession.js";
57
+ import { getActorId as gi, getOrganizationId as _i, getWorkspaceId as vi } from "./shared/assistant/context.js";
58
+ import { ATTACHMENT_SOURCES as yi, availableAttachmentSources as bi, deviceHasCamera as xi } from "./shared/assistant/attachmentSources.js";
59
+ import { SANDBOX_READY_TTL_MS as Si, createReadinessTracker as Ci, isRecentlyVerified as wi } from "./shared/assistant/sandboxReadiness.js";
60
+ import { AssistantAutoSpeakToggle as Ti } from "./shared/assistant/ui/AssistantAutoSpeakToggle.js";
61
+ import { AssistantMessageAttachments as Ei } from "./shared/assistant/ui/AssistantMessageAttachments.js";
62
+ import { AssistantPendingWriteCard as Di } from "./shared/assistant/ui/AssistantPendingWriteCard.js";
63
+ import { AssistantLanguageMenu as Oi } from "./shared/assistant/ui/AssistantLanguageMenu.js";
64
+ import { AssistantReplyLanguageSelector as ki } from "./shared/assistant/ui/AssistantReplyLanguageSelector.js";
65
+ import { AssistantSpeakButton as Ai } from "./shared/assistant/ui/AssistantSpeakButton.js";
66
+ import { AssistantSpokenTurnsNotice as ji } from "./shared/assistant/ui/AssistantSpokenTurnsNotice.js";
67
+ import { AssistantConnectSourceProvider as Mi, useAssistantConnectSource as Ni } from "./shared/assistant/ui/composer/connectSource.js";
68
+ import { AssistantConnectSourceItem as Pi } from "./shared/assistant/ui/composer/AssistantConnectSourceItem.js";
69
+ import { ASSISTANT_OVERLAY_ATTR as Fi, ASSISTANT_PANEL_ATTR as Ii, NO_PANEL_OVERLAY as Li, activePanelOverlay as Ri, assistantPanelOwnsEscape as zi, escapeDismisses as Bi, focusIsInsidePanel as Vi, nextPanelOverlays as Hi, panelOwnsEscape as Ui } from "./shared/assistant/ui/panelOverlays.js";
70
+ import { useDropdownEscape as Wi } from "./shared/assistant/ui/useDropdownEscape.js";
71
+ import { AssistantAttachmentButton as Gi } from "./shared/assistant/ui/composer/AssistantAttachmentButton.js";
72
+ import { AssistantAttachmentChips as Ki } from "./shared/assistant/ui/composer/AssistantAttachmentChips.js";
73
+ import { AssistantPreviewProvider as qi, useAssistantPreview as Ji } from "./shared/assistant/preview/context.js";
74
+ import { IDLE_PREVIEW_STATE as Yi, isBlankProse as Xi, isRunningStatus as Zi, nextPreviewEvents as Qi } from "./shared/assistant/preview/previewTransitions.js";
75
+ import { IDLE_PREVIEW as $i, NO_OWNER as ea, applyPreviewEvent as ta, createAssistantPreviewSurface as na, currentPreviewOwner as ra, runBelongsTo as ia, sameOwner as aa } from "./shared/assistant/preview/surfaceState.js";
76
+ import { createRunIdentityCache as oa, runIdentities as sa } from "./shared/assistant/preview/runIdentity.js";
77
+ import { IDLE_ACTIVE_TAB as ca, nextActiveTab as la, pinActiveTab as ua, shouldPinOnMove as da, shouldPinOnSelect as fa, stepsFromToolActivity as pa, tabForArrowKey as ma } from "./shared/assistant/preview/entity/entityPreviewState.js";
78
+ import { AssistantStepRail as ha } from "./shared/assistant/preview/entity/AssistantStepRail.js";
79
+ import { AssistantEntityPreview as ga } from "./shared/assistant/preview/entity/AssistantEntityPreview.js";
80
+ import { useOverlayFocus as _a } from "./shared/assistant/ui/useOverlayFocus.js";
81
+ import { useAssistantPreviewBridge as va } from "./shared/assistant/preview/useAssistantPreviewBridge.js";
82
+ import { AssistantPreviewOverlay as ya } from "./shared/assistant/preview/AssistantPreviewOverlay.js";
83
+ import { AssistantLanguageSelector as ba, FOLLOW_APP_LOCALE as xa } from "./shared/assistant/ui/composer/AssistantLanguageSelector.js";
84
+ import { ASSISTANT_MODE_META as Sa, AssistantModeSelector as Ca, nextModeIndex as wa } from "./shared/assistant/ui/composer/AssistantModeSelector.js";
85
+ import { AssistantVoiceButton as Ta } from "./shared/assistant/ui/composer/AssistantVoiceButton.js";
86
+ import { AUTO_VOICE as Ea, AssistantVoiceSelector as Da } from "./shared/assistant/ui/composer/AssistantVoiceSelector.js";
87
+ import { AssistantVoiceOrb as Oa } from "./shared/assistant/ui/voice/AssistantVoiceOrb.js";
88
+ import { AssistantVoiceSessionButton as ka } from "./shared/assistant/ui/voice/AssistantVoiceSessionButton.js";
89
+ import { CAPTION_SCROLL_ATTR as Aa, VoiceCaption as ja } from "./shared/assistant/ui/voice/VoiceCaption.js";
90
+ import { VoiceConversationView as Ma } from "./shared/assistant/ui/voice/VoiceConversationView.js";
91
+ import { VoiceWaveform as Na } from "./shared/assistant/ui/voice/VoiceWaveform.js";
92
+ import { VoiceStatusLine as Pa, VoiceStatusText as Fa } from "./shared/assistant/ui/voice/VoiceStatusText.js";
93
+ import { VoiceMiniController as Ia } from "./shared/assistant/ui/voice/VoiceMiniController.js";
94
+ import { VoiceStage as La } from "./shared/assistant/ui/voice/VoiceStage.js";
95
+ import { VoiceTranscriptDrawer as Ra } from "./shared/assistant/ui/voice/VoiceTranscriptDrawer.js";
96
+ import { downloadFile as za, exportConversation as Ba } from "./shared/assistant/exportConversation.js";
97
+ import { AssistantMoreMenu as Va } from "./shared/assistant/ui/AssistantMoreMenu.js";
98
+ import { AssistantHeader as Ha } from "./shared/assistant/ui/AssistantHeader.js";
99
+ import { AssistantConversationList as Ua } from "./shared/assistant/ui/AssistantConversationList.js";
100
+ import { AssistantEmptyState as Wa } from "./shared/assistant/ui/AssistantEmptyState.js";
101
+ import { AssistantTurnActivity as Ga, TurnActivityLine as Ka } from "./shared/assistant/ui/AssistantTurnActivity.js";
102
+ import { AssistantMessageItem as qa } from "./shared/assistant/ui/AssistantMessageItem.js";
103
+ import { AssistantMessageList as Ja } from "./shared/assistant/ui/AssistantMessageList.js";
104
+ import { AssistantVoiceSession as Ya } from "./shared/assistant/ui/voice/AssistantVoiceSession.js";
105
+ import { useAssistantApiAccess as Xa } from "./shared/assistant/useAssistantApiAccess.js";
106
+ import { useConversationTurns as Za } from "./shared/assistant/useConversationTurns.js";
107
+ import { isMultimodalBodyRejection as Qa, isRecoverableAssistantError as $a } from "./shared/assistant/transportErrors.js";
108
+ import { aiCreditsUpdatedEventName as eo, dispatchAssistantQuotaExhausted as to, notifyAiCreditsUpdated as no } from "./shared/assistant/aiCredits.js";
109
+ import { useWorkspaceWriteAccess as ro } from "./shared/assistant/useWorkspaceWriteAccess.js";
110
+ import { extractDocumentText as io } from "./shared/assistant/documentExtract.js";
111
+ import { useAssistantAttachments as ao } from "./shared/assistant/useAssistantAttachments.js";
112
+ import { AssistantComposer as oo } from "./shared/assistant/ui/composer/AssistantComposer.js";
113
+ import { isProdRuntime as so } from "./shared/assistant/env.js";
114
+ import { useAssistantHeartbeat as co } from "./shared/assistant/useAssistantHeartbeat.js";
115
+ import { useAssistantKeyboardShortcuts as lo } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
116
+ import { AssistantApiCallsConsentDialog as uo } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
117
+ import { AssistantChatArea as fo } from "./shared/assistant/ui/AssistantChatArea.js";
118
+ import { AIAssistantPanel as po } from "./shared/assistant/ui/AIAssistantPanel.js";
119
+ export { po as AIAssistantPanel, L as ASSISTANT_API_AUTH_STRATEGY, kn as ASSISTANT_LANGUAGES, Sa as ASSISTANT_MODE_META, Fi as ASSISTANT_OVERLAY_ATTR, Ii as ASSISTANT_PANEL_ATTR, mr as ATTACHMENT_ACCEPT, yi as ATTACHMENT_SOURCES, Ea as AUTO_VOICE, uo as AssistantApiCallsConsentDialog, Gi as AssistantAttachmentButton, Ki as AssistantAttachmentChips, Ti as AssistantAutoSpeakToggle, fi as AssistantAvatar, fo as AssistantChatArea, oo as AssistantComposer, Pi as AssistantConnectSourceItem, Mi as AssistantConnectSourceProvider, Ua as AssistantConversationList, Wa as AssistantEmptyState, ga as AssistantEntityPreview, Ha as AssistantHeader, s as AssistantI18nProvider, Oi as AssistantLanguageMenu, ba as AssistantLanguageSelector, f as AssistantMarkdownImage, h as AssistantMarkdownRenderer, Ei as AssistantMessageAttachments, qa as AssistantMessageItem, Ja as AssistantMessageList, Ca as AssistantModeSelector, Va as AssistantMoreMenu, g as AssistantNavigateProvider, Di as AssistantPendingWriteCard, ya as AssistantPreviewOverlay, qi as AssistantPreviewProvider, t as AssistantProductProvider, ki as AssistantReplyLanguageSelector, _e as AssistantRuntimeManager, Ai as AssistantSpeakButton, pi as AssistantSpeechProvider, ji as AssistantSpokenTurnsNotice, ha as AssistantStepRail, ci as AssistantToolActivity, Ga as AssistantTurnActivity, Ta as AssistantVoiceButton, Oa as AssistantVoiceOrb, Da as AssistantVoiceSelector, Ya as AssistantVoiceSession, ka as AssistantVoiceSessionButton, hr as AttachmentRejectedError, Jn as BOILERPLATE_PAGE_SHARE, Aa as CAPTION_SCROLL_ATTR, O as CHECK_AI_CREDITS, k as CREATE_SANDBOX, cn as DEFAULT_SPEAKABLE_LABELS, An as DEFAULT_SPEECH_RATE, Ae as DEFAULT_STREAM_BUDGET_MS, Pt as ENDPOINT_GRACE_MS, A as EXTEND_SANDBOX_TTL, xa as FOLLOW_APP_LOCALE, j as GET_ACTIVE_SANDBOXES, M as GET_SANDBOX, qe as HOSTED_TTS_MAX_CHARS, Ue as HOSTED_TTS_TIER, We as HOSTED_VOICES, ca as IDLE_ACTIVE_TAB, Vn as IDLE_PLAYBACK, $i as IDLE_PREVIEW, Yi as IDLE_PREVIEW_STATE, kt as IDLE_ROTATION_CLOCK, Ft as INITIAL_SESSION, gr as INLINE_IMAGE_MAX_DIM, _r as INLINE_IMAGE_QUALITY, It as INTERRUPT_MAX_MS, Lt as INTERRUPT_MIN_MS, vr as MAX_ATTACHMENTS, Yn as MAX_BOILERPLATE_LINE_CHARS, Xn as MAX_EXTRACTED_CHARS, yr as MAX_FILE_BYTES, br as MAX_INLINE_CHARS_PER_FILE, xr as MAX_INLINE_CHARS_TOTAL, Kn as MAX_INLINE_IMAGE_BASE64_BYTES, Sr as MAX_INLINE_IMAGE_BASE64_CHARS, Cr as MAX_INLINE_IMAGE_PARTS, wr as MAX_INLINE_TURN_BODY_BYTES, Zn as MAX_PDF_PAGES_SCANNED, qn as MAX_REQUEST_BODY_BYTES, ln as MAX_SPEAKABLE_CHARS, un as MAX_SPOKEN_TABLE_ROWS, Tr as MAX_TURN_BODY_BYTES, bn as MINI_CAPTION_BUDGET, Qn as MIN_PAGE_TEXT_CHARS, $n as MIN_TEXT_PAGE_SHARE, ea as NO_OWNER, Li as NO_PANEL_OVERLAY, _t as PHRASE_ROTATE_MS, Sn as POLL_FAST_MS, Cn as POLL_FAST_UNTIL_MS, wn as POLL_SLOW_MS, Tn as POLL_STEADY_MS, En as POLL_STEADY_UNTIL_MS, vn as PREVIEW_LANGUAGES, Er as PROMPT_ENVELOPE_RESERVE_BYTES, Dr as PROVIDER_READABLE_FILE_MEDIA_TYPES, N as PROXY_SANDBOX_REQUEST, P as REPORT_AI_TOKEN_USAGE, Si as SANDBOX_READY_TTL_MS, Rt as SILENCE_SUBMIT_MS, Je as SPEAKING_RATE_MAX, Ye as SPEAKING_RATE_MAX_STREAMING, Xe as SPEAKING_RATE_MAX_SYNC, Ze as SPEAKING_RATE_MIN, dn as SPEECH_CHUNK_CHARS, fn as SPEECH_CHUNK_CJK_CHARS, Kt as SPEECH_LANG, Ln as SPOKEN_LABEL_LANGUAGES, vt as STAGE_COPY, F as STOP_ASSISTANT_SANDBOX, je as STREAM_BUDGET_MS, yt as THINKING_PHRASES, Or as TURN_BODY_HEADROOM_BYTES, Ka as TurnActivityLine, qt as VOICE_LIST_TIMEOUT_MS, wt as VOICE_MUTED_LABEL, Tt as VOICE_THINKING_LABEL, ja as VoiceCaption, Ma as VoiceConversationView, Ia as VoiceMiniController, La as VoiceStage, Pa as VoiceStatusLine, Fa as VoiceStatusText, Ra as VoiceTranscriptDrawer, Na as VoiceWaveform, I as WAIT_FOR_SANDBOX_RUNNING, q as abortAssistantTurn, Ri as activePanelOverlay, At as advanceRotationClock, eo as aiCreditsUpdatedEventName, ta as applyPreviewEvent, J as approvePendingWrite, zi as assistantPanelOwnsEscape, _ as assistantRoutePath, c as assistantTranslationKey, v as assistantUrlTransform, bi as availableAttachmentSources, Qe as base64ToBytes, y as browserShouldHandle, He as browserSpeechEngine, si as buildAssistantProgress, Y as buildAssistantSandboxEnv, kr as buildAttachmentPromptBlock, an as buildContinuedFromVoiceNote, ve as buildProgress, Ar as buildPromptParts, X as buildPromptRequestBody, jr as buildPromptWithAttachments, $e as buildRequest, E as buildSandboxContextInput, on as buildVoiceTranscriptMarkdown, Fe as chatTurns, Z as checkAssistantAiCredits, pn as chunkForSpeech, b as classifyAssistantHref, Mr as classifyAttachment, et as classifyHttpFailure, S as classifyQuotaError, er as columnLetterToIndex, Et as composeVoiceStatus, ot as configureSpeechEngine, mn as containsCjk, d as copyToClipboard, Nr as countInlineImageCandidates, Pr as countInlinedImageParts, ui as countSpokenTurns, na as createAssistantPreviewSurface, Q as createAssistantSandbox, $ as createAssistantSession, it as createHostedTtsEngine, Ci as createReadinessTracker, at as createRoutingSpeechEngine, oa as createRunIdentityCache, Oe as createSandboxAssistantTransport, st as createSpeechEngines, ra as currentPreviewOwner, tt as decodeAudioResponse, tr as decodeXmlEntities, C as describeQuotaError, Fr as detectDocumentFormat, zn as detectScriptLocale, xi as deviceHasCamera, to as dispatchAssistantQuotaExhausted, nr as docxXmlToText, ee as downloadAssistantArtifact, za as downloadFile, ni as elapsedSince, Bi as escapeDismisses, Ir as estimateTurnBodyBytes, D as executeSandboxGraphQL, Ba as exportConversation, te as extendAssistantSandboxTTL, io as extractDocumentText, jn as findAssistantLanguage, ne as findExistingSandbox, Fn as findPendingWrite, rr as fitPdfPages, Vi as focusIsInsidePanel, Lr as formatBytes, ir as formatPageRanges, gi as getActorId, re as getAssistantArtifacts, ti as getAssistantDisplayContent, ye as getAssistantMedia, ie as getAssistantMessages, ae as getAssistantSession, oe as getAssistantStreamAccess, be as getAssistantText, Rr as getAttachmentSendBlocker, U as getCapability, zr as getExtension, R as getImageForMode, z as getImageTagForMode, _i as getOrganizationId, xe as getRawMessageCreatedAt, B as getResourcesForMode, V as getSandboxImageRegistry, Br as getSendableAttachments, ct as getSpeechEngine, Se as getToolProgress, vi as getWorkspaceId, Ie as groupBySession, Le as groupConsecutiveBySession, Vr as hasAttachmentWorkInFlight, Ge as hostedLocaleFor, Ke as hostedSupportsLanguage, p as imageHostLabel, Me as incompleteTurnNotice, Xi as isBlankProse, zt as isCapturing, Bt as isEcho, Zr as isLegacyFiller, Qr as isLegacyStopped, ar as isMostlyImagePages, Qa as isMultimodalBodyRejection, so as isProdRuntime, Hr as isProviderReadableFilePart, w as isQuotaExhaustedError, Ce as isReapedSandboxConnectionError, wi as isRecentlyVerified, we as isRecoverable, $a as isRecoverableAssistantError, m as isRemoteImageSrc, Zi as isRunningStatus, Hn as isSpeakingMessage, Jt as isSpeechBlocked, $r as isStageCopy, Vt as isSubmittable, Jr as isTurnInFlight, W as isUnknownFieldError, Re as isVoiceTurn, or as joinSheets, Yt as languageDisplayName, Te as mapSessionToHistory, G as markSupported, K as markUnsupported, Ee as mergeMessagesById, dt as micIsInterrupt, se as modeRequiresConfirmWrites, ri as msUntilNextPhrase, la as nextActiveTab, wa as nextModeIndex, Hi as nextPanelOverlays, Qi as nextPreviewEvents, Xt as normalizeLangTag, no as notifyAiCreditsUpdated, Ht as orbMode, sr as pageMarker, Ui as panelOwnsEscape, In as parseConfirmationRefusal, Ur as parseDataUrl, cr as parseSharedStrings, li as parseToolActivity, lr as parseWorkbookSheets, ur as pdfTextItemsToPage, ua as pinActiveTab, Yr as planAbandonedTurn, Ut as planReplyConsumption, Xr as planTurnAbort, Dn as pollDelayMs, Zt as primaryLanguageSubtag, Un as publishedChunks, T as quotaExhaustedEventName, lt as readSpeechEngineConfig, ce as releaseSupersededAssistantSandboxes, Nn as replyFollowsInput, le as reportAssistantAiTokenUsage, Wn as requiresCancel, ut as resetSpeechEngine, Mn as resolveAssistantLanguage, Pn as resolveLanguagePair, n as resolveModeConfig, H as resolveSandboxAssistantMode, Bn as resolveSpeechLocale, jt as rotationElapsedMs, ia as runBelongsTo, sa as runIdentities, aa as sameOwner, De as sanitize, ue as selectExistingAssistantSandbox, de as selectSupersededAssistantSandboxes, Qt as selectVoiceForLocale, fe as sendAssistantPromptAsync, pe as sendHeartbeat, dr as sheetXmlToRows, nt as shouldDisableEngine, da as shouldPinOnMove, fa as shouldPinOnSelect, xn as showPreviousChunk, ft as showsAssistantCaption, pt as showsUserCaption, hn as speakableEmail, $t as speechGate, Rn as speechLabelsFor, en as speechLangForLocale, Gn as speechPlaybackReducer, rt as splitForVendor, gn as splitTableRow, Wt as spokenSoFar, di as spokenTurnText, bt as stageText, ii as startPhraseTicker, Mt as startRotationTicker, xt as statusStageCopy, pa as stepsFromToolActivity, me as stopReapedAssistantSandbox, Ne as streamBudgetMs, ei as stripLegacyFillerPrefix, fr as summarisePageText, Nt as syncRotationClock, ma as tabForArrowKey, St as thinkingPhrase, Ct as thinkingPhraseEntry, On as toCaptionText, Wr as toMessageAttachment, _n as toSpeakableText, Gr as truncateForInline, pr as truncatePagesForInline, ai as turnActivityCopy, oi as turnActivityStage, Xa as useAssistantApiAccess, ao as useAssistantAttachments, Ni as useAssistantConnectSource, co as useAssistantHeartbeat, l as useAssistantI18nNamespace, lo as useAssistantKeyboardShortcuts, x as useAssistantNavigate, r as useAssistantPageLabel, Ji as useAssistantPreview, va as useAssistantPreviewBridge, i as useAssistantProduct, a as useAssistantProductOrNull, mi as useAssistantSpeech, o as useAssistantStorageFolders, qr as useAssistantStore, u as useAssistantTr, Za as useConversationTurns, Wi as useDropdownEscape, _a as useOverlayFocus, ke as useSandboxAssistantTransport, e as useVoiceInput, hi as useVoiceSession, ro as useWorkspaceWriteAccess, Kr as validateFile, tn as voiceAvailability, ze as voiceMarker, yn as voicePreviewText, nn as voiceQualityRank, Be as voiceSessionIdOf, Gt as voiceSessionReducer, mt as voiceStageState, Dt as voiceStatusParts, Ot as voiceStatusSuffix, sn as voiceTranscriptFilename, Ve as voiceTurnsOnly, rn as voicesForLocale, he as waitForAssistantServiceReady, ge as waitForSandboxRunning, ht as waveformIsActive, gt as waveformIsSettled, Pe as withIncompleteTurnNotice };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fe-libs",
3
- "version": "2026.913.2",
3
+ "version": "2026.914.1",
4
4
  "description": "Burdenoff frontend primitives and domain libraries",
5
5
  "type": "module",
6
6
  "bin": {