@burdenoff/fe-libs 2026.910.2 → 2026.910.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,6 +16,8 @@ export type AIAssistantPanelProps = PanelProps & {
16
16
  writeAccess?: WorkspaceWriteAccess;
17
17
  /**
18
18
  * Route an in-app link from an assistant reply instead of a full page load.
19
+ * Receives a router-ready PATH (`/fields?crop=42#yield`), already resolved
20
+ * from the href and proven same-origin — pass it straight to `navigate()`.
19
21
  *
20
22
  * ★ Threaded through rather than resolved here, for the same reason as
21
23
  * `writeAccess`: only the product owns a router. Omit it and internal links
@@ -1 +1 @@
1
- {"version":3,"file":"AIAssistantPanel.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AIAssistantPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAU,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AAKrC,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG;IAC/C,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA6GtD,CAAC"}
1
+ {"version":3,"file":"AIAssistantPanel.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AIAssistantPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAU,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AAKrC,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG;IAC/C,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA6GtD,CAAC"}
@@ -20,8 +20,11 @@ export declare const assistantUrlTransform: Options["urlTransform"];
20
20
  * not a second scheme allow-list. The scheme policy stays in one place.
21
21
  */
22
22
  export type AssistantLinkKind = "internal" | "external" | "fragment" | "blocked";
23
- /** Route an in-app href. Supplied by the product; absent means "no SPA routing". */
24
- export type AssistantNavigate = (href: string) => void;
23
+ /**
24
+ * Route an in-app PATH — `/fields?crop=42#yield`, never a full URL. Supplied by
25
+ * the product; absent means "no SPA routing".
26
+ */
27
+ export type AssistantNavigate = (path: string) => void;
25
28
  /**
26
29
  * ★ `baseOrigin` is threaded rather than left to `isSafeRedirectTarget`'s own
27
30
  * `window.location.origin` default so this stays callable — and testable — with
@@ -29,6 +32,20 @@ export type AssistantNavigate = (href: string) => void;
29
32
  * so it degrades to `external`: a new tab is the safe direction to fail.
30
33
  */
31
34
  export declare function classifyAssistantHref(href: string | null | undefined, baseOrigin?: string): AssistantLinkKind;
35
+ /**
36
+ * The router-ready path for an href already classified as `internal`, or null if
37
+ * it cannot be resolved.
38
+ *
39
+ * ★★ WHY THIS IS NOT THE HREF. An internal link may be written absolutely —
40
+ * `https://app.example.com/fields?q=1#top` is same-origin, so it classifies as
41
+ * internal — and every SPA router reads a `to`/`navigate()` string as a PATH.
42
+ * Handing it the absolute form routes to a literal `/https://app.example.com/...`
43
+ * segment. Resolving here means each product wires one line and cannot get this
44
+ * wrong; the alternative is the same five lines re-derived in every product,
45
+ * with only the ones whose assistant happened to emit an absolute URL finding
46
+ * out they got it wrong.
47
+ */
48
+ export declare function assistantRoutePath(href: string | null | undefined, baseOrigin?: string): string | null;
32
49
  /**
33
50
  * ★ Context, not a prop: the renderer is reached by TWO paths — the chat
34
51
  * transcript and the voice transcript drawer — and threading a prop through
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantMarkdownRenderer.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantMarkdownRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAIL,KAAK,EAAE,EAEP,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAiB,EAIf,KAAK,OAAO,EACb,MAAM,gBAAgB,CAAC;AASxB,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAqDD,kFAAkF;AAClF,eAAO,MAAM,qBAAqB,EAAE,OAAO,CAAC,cAAc,CAWzD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAEjF,oFAAoF;AACpF,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAUvD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,UAAU,CAAC,EAAE,MAAM,GAClB,iBAAiB,CASnB;AAoBD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC;IACzC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB,CAIA,CAAC;AAEF,wBAAgB,oBAAoB,IAAI,iBAAiB,GAAG,IAAI,CAE/D;AAgTD,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,KAAK,CAiB/C,CAAC"}
1
+ {"version":3,"file":"AssistantMarkdownRenderer.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/ui/AssistantMarkdownRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAIL,KAAK,EAAE,EAEP,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAiB,EAIf,KAAK,OAAO,EACb,MAAM,gBAAgB,CAAC;AASxB,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAqDD,kFAAkF;AAClF,eAAO,MAAM,qBAAqB,EAAE,OAAO,CAAC,cAAc,CAWzD,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAEjF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAUvD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,UAAU,CAAC,EAAE,MAAM,GAClB,iBAAiB,CASnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,GAAG,IAAI,CA+Bf;AAoBD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC;IACzC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB,CAIA,CAAC;AAEF,wBAAgB,oBAAoB,IAAI,iBAAiB,GAAG,IAAI,CAE/D;AAmTD,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,KAAK,CAiB/C,CAAC"}
@@ -31,41 +31,53 @@ function x(t, n) {
31
31
  let i = n ?? b();
32
32
  return i && e(r, i) ? "internal" : "external";
33
33
  }
34
- function S(e) {
34
+ function S(e, t) {
35
+ let n = (e ?? "").trim();
36
+ if (!n) return null;
37
+ let r = t ?? b();
38
+ if (!r) return null;
39
+ try {
40
+ let e = new URL(n, r), t = `${e.pathname}${e.search}${e.hash}`;
41
+ return t.startsWith("//") || t.startsWith("/\\") ? null : t;
42
+ } catch {
43
+ return null;
44
+ }
45
+ }
46
+ function C(e) {
35
47
  return e.defaultPrevented || e.button !== 0 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey;
36
48
  }
37
- var C = l(null), w = ({ value: e, children: t }) => /* @__PURE__ */ h(C.Provider, {
49
+ var w = l(null), T = ({ value: e, children: t }) => /* @__PURE__ */ h(w.Provider, {
38
50
  value: e ?? null,
39
51
  children: t
40
52
  });
41
- function T() {
42
- return u(C);
53
+ function E() {
54
+ return u(w);
43
55
  }
44
- var E = "text-action-primary-bg underline-offset-2 hover:underline", D = ({ href: e, children: t }) => {
45
- let n = T(), r = x(e);
46
- return r === "blocked" ? /* @__PURE__ */ h(m, { children: t }) : r === "internal" && n ? /* @__PURE__ */ h("a", {
56
+ var D = "text-action-primary-bg underline-offset-2 hover:underline", O = ({ href: e, children: t }) => {
57
+ let n = E(), r = x(e), i = r === "internal" ? S(e) : null;
58
+ return r === "blocked" ? /* @__PURE__ */ h(m, { children: t }) : n && i ? /* @__PURE__ */ h("a", {
47
59
  href: e,
48
- className: E,
60
+ className: D,
49
61
  "data-testid": "assistant-markdown-link",
50
- onClick: (t) => {
51
- S(t) || (t.preventDefault(), n(e));
62
+ onClick: (e) => {
63
+ C(e) || (e.preventDefault(), n(i));
52
64
  },
53
65
  children: t
54
66
  }) : r === "internal" || r === "fragment" ? /* @__PURE__ */ h("a", {
55
67
  href: e,
56
- className: E,
68
+ className: D,
57
69
  "data-testid": "assistant-markdown-link",
58
70
  children: t
59
71
  }) : /* @__PURE__ */ h("a", {
60
72
  href: e,
61
73
  target: "_blank",
62
74
  rel: "noopener noreferrer",
63
- className: E,
75
+ className: D,
64
76
  "data-testid": "assistant-markdown-link",
65
77
  children: t
66
78
  });
67
- }, O = [r], k = [[a, _]];
68
- function A({ language: e, code: t }) {
79
+ }, k = [r], A = [[a, _]];
80
+ function j({ language: e, code: t }) {
69
81
  let n = o(), [r, i] = d(!1);
70
82
  return /* @__PURE__ */ g("div", {
71
83
  className: "group relative my-2 overflow-hidden rounded-md border border-border-default bg-bg-sunken",
@@ -95,7 +107,7 @@ function A({ language: e, code: t }) {
95
107
  })]
96
108
  });
97
109
  }
98
- function j(e) {
110
+ function M(e) {
99
111
  let t = e?.children?.[0];
100
112
  if (!t || t.type !== "element" || t.tagName !== "code") return null;
101
113
  let n = t.children.map((e) => e.type === "text" ? e.value : "").join(""), r = t.properties?.className, i = (Array.isArray(r) ? r.map(String) : String(r ?? "").split(" ")).find((e) => e.startsWith("language-"));
@@ -104,10 +116,10 @@ function j(e) {
104
116
  language: i ? i.slice(9) : ""
105
117
  };
106
118
  }
107
- function M(e, t) {
119
+ function N(e, t) {
108
120
  return typeof e == "string" && e.split(" ").includes(t);
109
121
  }
110
- function N({ level: e, children: t }) {
122
+ function P({ level: e, children: t }) {
111
123
  let n = `h${e}`, r = {
112
124
  2: "text-[1.15em]",
113
125
  3: "text-[1.08em]",
@@ -120,8 +132,8 @@ function N({ level: e, children: t }) {
120
132
  children: t
121
133
  });
122
134
  }
123
- var P = {
124
- a: ({ href: e, children: t }) => /* @__PURE__ */ h(D, {
135
+ var F = {
136
+ a: ({ href: e, children: t }) => /* @__PURE__ */ h(O, {
125
137
  href: e,
126
138
  children: t
127
139
  }),
@@ -141,27 +153,27 @@ var P = {
141
153
  className: "italic",
142
154
  children: e
143
155
  }),
144
- h1: ({ children: e }) => /* @__PURE__ */ h(N, {
156
+ h1: ({ children: e }) => /* @__PURE__ */ h(P, {
145
157
  level: 2,
146
158
  children: e
147
159
  }),
148
- h2: ({ children: e }) => /* @__PURE__ */ h(N, {
160
+ h2: ({ children: e }) => /* @__PURE__ */ h(P, {
149
161
  level: 3,
150
162
  children: e
151
163
  }),
152
- h3: ({ children: e }) => /* @__PURE__ */ h(N, {
164
+ h3: ({ children: e }) => /* @__PURE__ */ h(P, {
153
165
  level: 4,
154
166
  children: e
155
167
  }),
156
- h4: ({ children: e }) => /* @__PURE__ */ h(N, {
168
+ h4: ({ children: e }) => /* @__PURE__ */ h(P, {
157
169
  level: 5,
158
170
  children: e
159
171
  }),
160
- h5: ({ children: e }) => /* @__PURE__ */ h(N, {
172
+ h5: ({ children: e }) => /* @__PURE__ */ h(P, {
161
173
  level: 6,
162
174
  children: e
163
175
  }),
164
- h6: ({ children: e }) => /* @__PURE__ */ h(N, {
176
+ h6: ({ children: e }) => /* @__PURE__ */ h(P, {
165
177
  level: 6,
166
178
  children: e
167
179
  }),
@@ -178,7 +190,7 @@ var P = {
178
190
  className: "mr-1.5 size-3 flex-shrink-0 align-[-0.1em] accent-[var(--color-action-primary-bg)]"
179
191
  }) : null,
180
192
  li: ({ className: e, children: t }) => /* @__PURE__ */ h("li", {
181
- className: M(e, "task-list-item") ? "list-none text-text-primary" : "text-text-primary",
193
+ className: N(e, "task-list-item") ? "list-none text-text-primary" : "text-text-primary",
182
194
  children: t
183
195
  }),
184
196
  ol: ({ children: e }) => /* @__PURE__ */ h("ol", {
@@ -190,8 +202,8 @@ var P = {
190
202
  children: e
191
203
  }),
192
204
  pre: ({ children: e, node: t }) => {
193
- let n = j(t);
194
- return n ? /* @__PURE__ */ h(A, {
205
+ let n = M(t);
206
+ return n ? /* @__PURE__ */ h(j, {
195
207
  language: n.language,
196
208
  code: n.code
197
209
  }) : /* @__PURE__ */ h("pre", {
@@ -225,19 +237,19 @@ var P = {
225
237
  children: e
226
238
  }),
227
239
  ul: ({ className: e, children: t }) => /* @__PURE__ */ h("ul", {
228
- className: M(e, "contains-task-list") ? "my-1.5 ml-0.5 list-none space-y-0.5" : "my-1.5 ml-5 list-disc space-y-0.5",
240
+ className: N(e, "contains-task-list") ? "my-1.5 ml-0.5 list-none space-y-0.5" : "my-1.5 ml-5 list-disc space-y-0.5",
229
241
  children: t
230
242
  })
231
- }, F = ({ content: e }) => /* @__PURE__ */ h("div", {
243
+ }, I = ({ content: e }) => /* @__PURE__ */ h("div", {
232
244
  className: "break-words [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",
233
245
  "data-testid": "assistant-markdown",
234
246
  children: /* @__PURE__ */ h(t, {
235
- remarkPlugins: O,
236
- rehypePlugins: k,
247
+ remarkPlugins: k,
248
+ rehypePlugins: A,
237
249
  urlTransform: y,
238
- components: P,
250
+ components: F,
239
251
  children: e
240
252
  })
241
253
  });
242
254
  //#endregion
243
- export { F as AssistantMarkdownRenderer, w as AssistantNavigateProvider, y as assistantUrlTransform, x as classifyAssistantHref, T as useAssistantNavigate };
255
+ export { I as AssistantMarkdownRenderer, T as AssistantNavigateProvider, S as assistantRoutePath, y as assistantUrlTransform, x as classifyAssistantHref, E as useAssistantNavigate };
@@ -48,47 +48,47 @@ import { ATTACHMENT_SOURCES as Mr, availableAttachmentSources as Nr, deviceHasCa
48
48
  import { SANDBOX_READY_TTL_MS as Fr, createReadinessTracker as Ir, isRecentlyVerified as Lr } from "./shared/assistant/sandboxReadiness.js";
49
49
  import { AssistantAutoSpeakToggle as Rr } from "./shared/assistant/ui/AssistantAutoSpeakToggle.js";
50
50
  import { AssistantMarkdownImage as zr, imageHostLabel as Br, isRemoteImageSrc as Vr } from "./shared/assistant/ui/AssistantMarkdownImage.js";
51
- import { AssistantMarkdownRenderer as Hr, AssistantNavigateProvider as Ur, assistantUrlTransform as Wr, classifyAssistantHref as Gr, useAssistantNavigate as Kr } from "./shared/assistant/ui/AssistantMarkdownRenderer.js";
52
- import { AssistantMessageAttachments as qr } from "./shared/assistant/ui/AssistantMessageAttachments.js";
53
- import { AssistantPendingWriteCard as Jr } from "./shared/assistant/ui/AssistantPendingWriteCard.js";
54
- import { AssistantLanguageMenu as Yr } from "./shared/assistant/ui/AssistantLanguageMenu.js";
55
- import { AssistantReplyLanguageSelector as Xr } from "./shared/assistant/ui/AssistantReplyLanguageSelector.js";
56
- import { AssistantSpeakButton as Zr } from "./shared/assistant/ui/AssistantSpeakButton.js";
57
- import { AssistantSpokenTurnsNotice as Qr } from "./shared/assistant/ui/AssistantSpokenTurnsNotice.js";
58
- import { AssistantAttachmentButton as $r } from "./shared/assistant/ui/composer/AssistantAttachmentButton.js";
59
- import { AssistantAttachmentChips as ei } from "./shared/assistant/ui/composer/AssistantAttachmentChips.js";
60
- import { AssistantLanguageSelector as ti, FOLLOW_APP_LOCALE as ni } from "./shared/assistant/ui/composer/AssistantLanguageSelector.js";
61
- import { ASSISTANT_MODE_META as ri, AssistantModeSelector as ii, nextModeIndex as ai } from "./shared/assistant/ui/composer/AssistantModeSelector.js";
62
- import { AssistantVoiceButton as oi } from "./shared/assistant/ui/composer/AssistantVoiceButton.js";
63
- import { AUTO_VOICE as si, AssistantVoiceSelector as ci } from "./shared/assistant/ui/composer/AssistantVoiceSelector.js";
64
- import { AssistantVoiceOrb as li } from "./shared/assistant/ui/voice/AssistantVoiceOrb.js";
65
- import { AssistantVoiceSessionButton as ui } from "./shared/assistant/ui/voice/AssistantVoiceSessionButton.js";
66
- import { CAPTION_SCROLL_ATTR as di, VoiceCaption as fi } from "./shared/assistant/ui/voice/VoiceCaption.js";
67
- import { VoiceConversationView as pi } from "./shared/assistant/ui/voice/VoiceConversationView.js";
68
- import { VoiceWaveform as mi } from "./shared/assistant/ui/voice/VoiceWaveform.js";
69
- import { VoiceMiniController as hi } from "./shared/assistant/ui/voice/VoiceMiniController.js";
70
- import { VoiceStage as gi } from "./shared/assistant/ui/voice/VoiceStage.js";
71
- import { VoiceTranscriptDrawer as _i } from "./shared/assistant/ui/voice/VoiceTranscriptDrawer.js";
72
- import { downloadFile as vi, exportConversation as yi } from "./shared/assistant/exportConversation.js";
73
- import { AssistantMoreMenu as bi } from "./shared/assistant/ui/AssistantMoreMenu.js";
74
- import { AssistantHeader as xi } from "./shared/assistant/ui/AssistantHeader.js";
75
- import { AssistantConversationList as Si } from "./shared/assistant/ui/AssistantConversationList.js";
76
- import { AssistantEmptyState as Ci } from "./shared/assistant/ui/AssistantEmptyState.js";
77
- import { AssistantMessageItem as wi } from "./shared/assistant/ui/AssistantMessageItem.js";
78
- import { AssistantMessageList as Ti } from "./shared/assistant/ui/AssistantMessageList.js";
79
- import { AssistantVoiceSession as Ei } from "./shared/assistant/ui/voice/AssistantVoiceSession.js";
80
- import { useAssistantApiAccess as Di } from "./shared/assistant/useAssistantApiAccess.js";
81
- import { useConversationTurns as Oi } from "./shared/assistant/useConversationTurns.js";
82
- import { isMultimodalBodyRejection as ki, isRecoverableAssistantError as Ai } from "./shared/assistant/transportErrors.js";
83
- import { aiCreditsUpdatedEventName as ji, dispatchAssistantQuotaExhausted as Mi, notifyAiCreditsUpdated as Ni } from "./shared/assistant/aiCredits.js";
84
- import { useWorkspaceWriteAccess as Pi } from "./shared/assistant/useWorkspaceWriteAccess.js";
85
- import { extractDocumentText as Fi } from "./shared/assistant/documentExtract.js";
86
- import { useAssistantAttachments as Ii } from "./shared/assistant/useAssistantAttachments.js";
87
- import { AssistantComposer as Li } from "./shared/assistant/ui/composer/AssistantComposer.js";
88
- import { isProdRuntime as Ri } from "./shared/assistant/env.js";
89
- import { useAssistantHeartbeat as zi } from "./shared/assistant/useAssistantHeartbeat.js";
90
- import { useAssistantKeyboardShortcuts as Bi } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
91
- import { AssistantApiCallsConsentDialog as Vi } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
92
- import { AssistantChatArea as Hi } from "./shared/assistant/ui/AssistantChatArea.js";
93
- import { AIAssistantPanel as Ui } from "./shared/assistant/ui/AIAssistantPanel.js";
94
- export { Ui as AIAssistantPanel, g as ASSISTANT_API_AUTH_STRATEGY, zt as ASSISTANT_LANGUAGES, ri as ASSISTANT_MODE_META, Fn as ATTACHMENT_ACCEPT, Mr as ATTACHMENT_SOURCES, si as AUTO_VOICE, Vi as AssistantApiCallsConsentDialog, $r as AssistantAttachmentButton, ei as AssistantAttachmentChips, Rr as AssistantAutoSpeakToggle, Hi as AssistantChatArea, Li as AssistantComposer, Si as AssistantConversationList, Ci as AssistantEmptyState, xi as AssistantHeader, $t as AssistantI18nProvider, Yr as AssistantLanguageMenu, ti as AssistantLanguageSelector, zr as AssistantMarkdownImage, Hr as AssistantMarkdownRenderer, qr as AssistantMessageAttachments, wi as AssistantMessageItem, Ti as AssistantMessageList, ii as AssistantModeSelector, bi as AssistantMoreMenu, Ur as AssistantNavigateProvider, Jr as AssistantPendingWriteCard, qt as AssistantProductProvider, Xr as AssistantReplyLanguageSelector, X as AssistantRuntimeManager, Zr as AssistantSpeakButton, Tr as AssistantSpeechProvider, Qr as AssistantSpokenTurnsNotice, Cr as AssistantToolActivity, oi as AssistantVoiceButton, li as AssistantVoiceOrb, ci as AssistantVoiceSelector, Ei as AssistantVoiceSession, ui as AssistantVoiceSessionButton, In as AttachmentRejectedError, hn as BOILERPLATE_PAGE_SHARE, di as CAPTION_SCROLL_ATTR, s as CHECK_AI_CREDITS, c as CREATE_SANDBOX, vt as DEFAULT_SPEAKABLE_LABELS, Bt as DEFAULT_SPEECH_RATE, Ge as ENDPOINT_GRACE_MS, l as EXTEND_SANDBOX_TTL, ni as FOLLOW_APP_LOCALE, u as GET_ACTIVE_SANDBOXES, d as GET_SANDBOX, xe as HOSTED_TTS_MAX_CHARS, _e as HOSTED_TTS_TIER, ve as HOSTED_VOICES, cn as IDLE_PLAYBACK, Ke as INITIAL_SESSION, Ln as INLINE_IMAGE_MAX_DIM, Rn as INLINE_IMAGE_QUALITY, qe as INTERRUPT_MAX_MS, Je as INTERRUPT_MIN_MS, zn as MAX_ATTACHMENTS, gn as MAX_BOILERPLATE_LINE_CHARS, _n as MAX_EXTRACTED_CHARS, Bn as MAX_FILE_BYTES, Vn as MAX_INLINE_CHARS_PER_FILE, Hn as MAX_INLINE_CHARS_TOTAL, pn as MAX_INLINE_IMAGE_BASE64_BYTES, Un as MAX_INLINE_IMAGE_BASE64_CHARS, Wn as MAX_INLINE_IMAGE_PARTS, Gn as MAX_INLINE_TURN_BODY_BYTES, vn as MAX_PDF_PAGES_SCANNED, mn as MAX_REQUEST_BODY_BYTES, yt as MAX_SPEAKABLE_CHARS, bt as MAX_SPOKEN_TABLE_ROWS, Kn as MAX_TURN_BODY_BYTES, At as MINI_CAPTION_BUDGET, yn as MIN_PAGE_TEXT_CHARS, bn as MIN_TEXT_PAGE_SHARE, gr as PHRASE_ROTATE_MS, Mt as POLL_FAST_MS, Nt as POLL_FAST_UNTIL_MS, Pt as POLL_SLOW_MS, Ft as POLL_STEADY_MS, It as POLL_STEADY_UNTIL_MS, Ot as PREVIEW_LANGUAGES, qn as PROMPT_ENVELOPE_RESERVE_BYTES, f as PROXY_SANDBOX_REQUEST, p as REPORT_AI_TOKEN_USAGE, Fr as SANDBOX_READY_TTL_MS, Ye as SILENCE_SUBMIT_MS, Se as SPEAKING_RATE_MAX, Ce as SPEAKING_RATE_MAX_STREAMING, we as SPEAKING_RATE_MAX_SYNC, Te as SPEAKING_RATE_MIN, xt as SPEECH_CHUNK_CHARS, St as SPEECH_CHUNK_CJK_CHARS, rt as SPEECH_LANG, rn as SPOKEN_LABEL_LANGUAGES, _r as STAGE_COPY, m as STOP_ASSISTANT_SANDBOX, vr as THINKING_PHRASES, Jn as TURN_BODY_HEADROOM_BYTES, it as VOICE_LIST_TIMEOUT_MS, fi as VoiceCaption, pi as VoiceConversationView, hi as VoiceMiniController, gi as VoiceStage, _i as VoiceTranscriptDrawer, mi as VoiceWaveform, h as WAIT_FOR_SANDBOX_RUNNING, E as abortAssistantTurn, ji as aiCreditsUpdatedEventName, D as approvePendingWrite, en as assistantTranslationKey, Wr as assistantUrlTransform, Nr as availableAttachmentSources, Ee as base64ToBytes, ge as browserSpeechEngine, O as buildAssistantSandboxEnv, Yn as buildAttachmentPromptBlock, ht as buildContinuedFromVoiceNote, Z as buildProgress, Xn as buildPromptParts, k as buildPromptRequestBody, Zn as buildPromptWithAttachments, De as buildRequest, a as buildSandboxContextInput, gt as buildVoiceTranscriptMarkdown, le as chatTurns, A as checkAssistantAiCredits, Ct as chunkForSpeech, Gr as classifyAssistantHref, Qn as classifyAttachment, Oe as classifyHttpFailure, t as classifyQuotaError, xn as columnLetterToIndex, Pe as configureSpeechEngine, wt as containsCjk, Or as copyToClipboard, $n as countInlineImageCandidates, er as countInlinedImageParts, j as createAssistantSandbox, M as createAssistantSession, Me as createHostedTtsEngine, Ir as createReadinessTracker, Ne as createRoutingSpeechEngine, se as createSandboxAssistantTransport, Fe as createSpeechEngines, ke as decodeAudioResponse, Sn as decodeXmlEntities, n as describeQuotaError, tr as detectDocumentFormat, on as detectScriptLocale, Pr as deviceHasCamera, Mi as dispatchAssistantQuotaExhausted, Cn as docxXmlToText, N as downloadAssistantArtifact, vi as downloadFile, nr as estimateTurnBodyBytes, o as executeSandboxGraphQL, yi as exportConversation, P as extendAssistantSandboxTTL, Fi as extractDocumentText, Vt as findAssistantLanguage, F as findExistingSandbox, Gt as findPendingWrite, wn as fitPdfPages, rr as formatBytes, Tn as formatPageRanges, kr as getActorId, I as getAssistantArtifacts, Q as getAssistantMedia, L as getAssistantMessages, R as getAssistantSession, z as getAssistantStreamAccess, $ as getAssistantText, ir as getAttachmentSendBlocker, S as getCapability, ar as getExtension, _ as getImageForMode, v as getImageTagForMode, Ar as getOrganizationId, ee as getRawMessageCreatedAt, y as getResourcesForMode, b as getSandboxImageRegistry, or as getSendableAttachments, Ie as getSpeechEngine, te as getToolProgress, jr as getWorkspaceId, ue as groupBySession, de as groupConsecutiveBySession, sr as hasAttachmentWorkInFlight, ye as hostedLocaleFor, be as hostedSupportsLanguage, Br as imageHostLabel, Xe as isCapturing, Ze as isEcho, En as isMostlyImagePages, ki as isMultimodalBodyRejection, Ri as isProdRuntime, r as isQuotaExhaustedError, ne as isReapedSandboxConnectionError, Lr as isRecentlyVerified, re as isRecoverable, Ai as isRecoverableAssistantError, Vr as isRemoteImageSrc, ln as isSpeakingMessage, at as isSpeechBlocked, yr as isStageCopy, Qe as isSubmittable, pr as isTurnInFlight, C as isUnknownFieldError, fe as isVoiceTurn, Dn as joinSheets, ot as languageDisplayName, ie as mapSessionToHistory, w as markSupported, T as markUnsupported, ae as mergeMessagesById, ze as micIsInterrupt, B as modeRequiresConfirmWrites, ai as nextModeIndex, st as normalizeLangTag, Ni as notifyAiCreditsUpdated, $e as orbMode, On as pageMarker, Kt as parseConfirmationRefusal, cr as parseDataUrl, kn as parseSharedStrings, wr as parseToolActivity, An as parseWorkbookSheets, jn as pdfTextItemsToPage, mr as planAbandonedTurn, et as planReplyConsumption, hr as planTurnAbort, Lt as pollDelayMs, ct as primaryLanguageSubtag, un as publishedChunks, i as quotaExhaustedEventName, Le as readSpeechEngineConfig, V as releaseSupersededAssistantSandboxes, Ut as replyFollowsInput, H as reportAssistantAiTokenUsage, dn as requiresCancel, Re as resetSpeechEngine, Ht as resolveAssistantLanguage, Wt as resolveLanguagePair, Jt as resolveModeConfig, x as resolveSandboxAssistantMode, sn as resolveSpeechLocale, oe as sanitize, U as selectExistingAssistantSandbox, W as selectSupersededAssistantSandboxes, lt as selectVoiceForLocale, G as sendAssistantPromptAsync, K as sendHeartbeat, Mn as sheetXmlToRows, Ae as shouldDisableEngine, jt as showPreviousChunk, Be as showsAssistantCaption, Ve as showsUserCaption, Tt as speakableEmail, ut as speechGate, an as speechLabelsFor, dt as speechLangForLocale, fn as speechPlaybackReducer, je as splitForVendor, Et as splitTableRow, tt as spokenSoFar, br as stageText, xr as statusStageCopy, q as stopReapedAssistantSandbox, Nn as summarisePageText, Sr as thinkingPhrase, Rt as toCaptionText, lr as toMessageAttachment, Dt as toSpeakableText, ur as truncateForInline, Pn as truncatePagesForInline, Di as useAssistantApiAccess, Ii as useAssistantAttachments, zi as useAssistantHeartbeat, tn as useAssistantI18nNamespace, Bi as useAssistantKeyboardShortcuts, Kr as useAssistantNavigate, Yt as useAssistantPageLabel, Xt as useAssistantProduct, Zt as useAssistantProductOrNull, Er as useAssistantSpeech, Qt as useAssistantStorageFolders, fr as useAssistantStore, nn as useAssistantTr, Oi as useConversationTurns, ce as useSandboxAssistantTransport, e as useVoiceInput, Dr as useVoiceSession, Pi as useWorkspaceWriteAccess, dr as validateFile, ft as voiceAvailability, pe as voiceMarker, kt as voicePreviewText, pt as voiceQualityRank, me as voiceSessionIdOf, nt as voiceSessionReducer, He as voiceStageState, _t as voiceTranscriptFilename, he as voiceTurnsOnly, mt as voicesForLocale, J as waitForAssistantServiceReady, Y as waitForSandboxRunning, Ue as waveformIsActive, We as waveformIsSettled };
51
+ import { AssistantMarkdownRenderer as Hr, AssistantNavigateProvider as Ur, assistantRoutePath as Wr, assistantUrlTransform as Gr, classifyAssistantHref as Kr, useAssistantNavigate as qr } from "./shared/assistant/ui/AssistantMarkdownRenderer.js";
52
+ import { AssistantMessageAttachments as Jr } from "./shared/assistant/ui/AssistantMessageAttachments.js";
53
+ import { AssistantPendingWriteCard as Yr } from "./shared/assistant/ui/AssistantPendingWriteCard.js";
54
+ import { AssistantLanguageMenu as Xr } from "./shared/assistant/ui/AssistantLanguageMenu.js";
55
+ import { AssistantReplyLanguageSelector as Zr } from "./shared/assistant/ui/AssistantReplyLanguageSelector.js";
56
+ import { AssistantSpeakButton as Qr } from "./shared/assistant/ui/AssistantSpeakButton.js";
57
+ import { AssistantSpokenTurnsNotice as $r } from "./shared/assistant/ui/AssistantSpokenTurnsNotice.js";
58
+ import { AssistantAttachmentButton as ei } from "./shared/assistant/ui/composer/AssistantAttachmentButton.js";
59
+ import { AssistantAttachmentChips as ti } from "./shared/assistant/ui/composer/AssistantAttachmentChips.js";
60
+ import { AssistantLanguageSelector as ni, FOLLOW_APP_LOCALE as ri } from "./shared/assistant/ui/composer/AssistantLanguageSelector.js";
61
+ import { ASSISTANT_MODE_META as ii, AssistantModeSelector as ai, nextModeIndex as oi } from "./shared/assistant/ui/composer/AssistantModeSelector.js";
62
+ import { AssistantVoiceButton as si } from "./shared/assistant/ui/composer/AssistantVoiceButton.js";
63
+ import { AUTO_VOICE as ci, AssistantVoiceSelector as li } from "./shared/assistant/ui/composer/AssistantVoiceSelector.js";
64
+ import { AssistantVoiceOrb as ui } from "./shared/assistant/ui/voice/AssistantVoiceOrb.js";
65
+ import { AssistantVoiceSessionButton as di } from "./shared/assistant/ui/voice/AssistantVoiceSessionButton.js";
66
+ import { CAPTION_SCROLL_ATTR as fi, VoiceCaption as pi } from "./shared/assistant/ui/voice/VoiceCaption.js";
67
+ import { VoiceConversationView as mi } from "./shared/assistant/ui/voice/VoiceConversationView.js";
68
+ import { VoiceWaveform as hi } from "./shared/assistant/ui/voice/VoiceWaveform.js";
69
+ import { VoiceMiniController as gi } from "./shared/assistant/ui/voice/VoiceMiniController.js";
70
+ import { VoiceStage as _i } from "./shared/assistant/ui/voice/VoiceStage.js";
71
+ import { VoiceTranscriptDrawer as vi } from "./shared/assistant/ui/voice/VoiceTranscriptDrawer.js";
72
+ import { downloadFile as yi, exportConversation as bi } from "./shared/assistant/exportConversation.js";
73
+ import { AssistantMoreMenu as xi } from "./shared/assistant/ui/AssistantMoreMenu.js";
74
+ import { AssistantHeader as Si } from "./shared/assistant/ui/AssistantHeader.js";
75
+ import { AssistantConversationList as Ci } from "./shared/assistant/ui/AssistantConversationList.js";
76
+ import { AssistantEmptyState as wi } from "./shared/assistant/ui/AssistantEmptyState.js";
77
+ import { AssistantMessageItem as Ti } from "./shared/assistant/ui/AssistantMessageItem.js";
78
+ import { AssistantMessageList as Ei } from "./shared/assistant/ui/AssistantMessageList.js";
79
+ import { AssistantVoiceSession as Di } from "./shared/assistant/ui/voice/AssistantVoiceSession.js";
80
+ import { useAssistantApiAccess as Oi } from "./shared/assistant/useAssistantApiAccess.js";
81
+ import { useConversationTurns as ki } from "./shared/assistant/useConversationTurns.js";
82
+ import { isMultimodalBodyRejection as Ai, isRecoverableAssistantError as ji } from "./shared/assistant/transportErrors.js";
83
+ import { aiCreditsUpdatedEventName as Mi, dispatchAssistantQuotaExhausted as Ni, notifyAiCreditsUpdated as Pi } from "./shared/assistant/aiCredits.js";
84
+ import { useWorkspaceWriteAccess as Fi } from "./shared/assistant/useWorkspaceWriteAccess.js";
85
+ import { extractDocumentText as Ii } from "./shared/assistant/documentExtract.js";
86
+ import { useAssistantAttachments as Li } from "./shared/assistant/useAssistantAttachments.js";
87
+ import { AssistantComposer as Ri } from "./shared/assistant/ui/composer/AssistantComposer.js";
88
+ import { isProdRuntime as zi } from "./shared/assistant/env.js";
89
+ import { useAssistantHeartbeat as Bi } from "./shared/assistant/useAssistantHeartbeat.js";
90
+ import { useAssistantKeyboardShortcuts as Vi } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
91
+ import { AssistantApiCallsConsentDialog as Hi } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
92
+ import { AssistantChatArea as Ui } from "./shared/assistant/ui/AssistantChatArea.js";
93
+ import { AIAssistantPanel as Wi } from "./shared/assistant/ui/AIAssistantPanel.js";
94
+ export { Wi as AIAssistantPanel, g as ASSISTANT_API_AUTH_STRATEGY, zt as ASSISTANT_LANGUAGES, ii as ASSISTANT_MODE_META, Fn as ATTACHMENT_ACCEPT, Mr as ATTACHMENT_SOURCES, ci as AUTO_VOICE, Hi as AssistantApiCallsConsentDialog, ei as AssistantAttachmentButton, ti as AssistantAttachmentChips, Rr as AssistantAutoSpeakToggle, Ui as AssistantChatArea, Ri as AssistantComposer, Ci as AssistantConversationList, wi as AssistantEmptyState, Si as AssistantHeader, $t as AssistantI18nProvider, Xr as AssistantLanguageMenu, ni as AssistantLanguageSelector, zr as AssistantMarkdownImage, Hr as AssistantMarkdownRenderer, Jr as AssistantMessageAttachments, Ti as AssistantMessageItem, Ei as AssistantMessageList, ai as AssistantModeSelector, xi as AssistantMoreMenu, Ur as AssistantNavigateProvider, Yr as AssistantPendingWriteCard, qt as AssistantProductProvider, Zr as AssistantReplyLanguageSelector, X as AssistantRuntimeManager, Qr as AssistantSpeakButton, Tr as AssistantSpeechProvider, $r as AssistantSpokenTurnsNotice, Cr as AssistantToolActivity, si as AssistantVoiceButton, ui as AssistantVoiceOrb, li as AssistantVoiceSelector, Di as AssistantVoiceSession, di as AssistantVoiceSessionButton, In as AttachmentRejectedError, hn as BOILERPLATE_PAGE_SHARE, fi as CAPTION_SCROLL_ATTR, s as CHECK_AI_CREDITS, c as CREATE_SANDBOX, vt as DEFAULT_SPEAKABLE_LABELS, Bt as DEFAULT_SPEECH_RATE, Ge as ENDPOINT_GRACE_MS, l as EXTEND_SANDBOX_TTL, ri as FOLLOW_APP_LOCALE, u as GET_ACTIVE_SANDBOXES, d as GET_SANDBOX, xe as HOSTED_TTS_MAX_CHARS, _e as HOSTED_TTS_TIER, ve as HOSTED_VOICES, cn as IDLE_PLAYBACK, Ke as INITIAL_SESSION, Ln as INLINE_IMAGE_MAX_DIM, Rn as INLINE_IMAGE_QUALITY, qe as INTERRUPT_MAX_MS, Je as INTERRUPT_MIN_MS, zn as MAX_ATTACHMENTS, gn as MAX_BOILERPLATE_LINE_CHARS, _n as MAX_EXTRACTED_CHARS, Bn as MAX_FILE_BYTES, Vn as MAX_INLINE_CHARS_PER_FILE, Hn as MAX_INLINE_CHARS_TOTAL, pn as MAX_INLINE_IMAGE_BASE64_BYTES, Un as MAX_INLINE_IMAGE_BASE64_CHARS, Wn as MAX_INLINE_IMAGE_PARTS, Gn as MAX_INLINE_TURN_BODY_BYTES, vn as MAX_PDF_PAGES_SCANNED, mn as MAX_REQUEST_BODY_BYTES, yt as MAX_SPEAKABLE_CHARS, bt as MAX_SPOKEN_TABLE_ROWS, Kn as MAX_TURN_BODY_BYTES, At as MINI_CAPTION_BUDGET, yn as MIN_PAGE_TEXT_CHARS, bn as MIN_TEXT_PAGE_SHARE, gr as PHRASE_ROTATE_MS, Mt as POLL_FAST_MS, Nt as POLL_FAST_UNTIL_MS, Pt as POLL_SLOW_MS, Ft as POLL_STEADY_MS, It as POLL_STEADY_UNTIL_MS, Ot as PREVIEW_LANGUAGES, qn as PROMPT_ENVELOPE_RESERVE_BYTES, f as PROXY_SANDBOX_REQUEST, p as REPORT_AI_TOKEN_USAGE, Fr as SANDBOX_READY_TTL_MS, Ye as SILENCE_SUBMIT_MS, Se as SPEAKING_RATE_MAX, Ce as SPEAKING_RATE_MAX_STREAMING, we as SPEAKING_RATE_MAX_SYNC, Te as SPEAKING_RATE_MIN, xt as SPEECH_CHUNK_CHARS, St as SPEECH_CHUNK_CJK_CHARS, rt as SPEECH_LANG, rn as SPOKEN_LABEL_LANGUAGES, _r as STAGE_COPY, m as STOP_ASSISTANT_SANDBOX, vr as THINKING_PHRASES, Jn as TURN_BODY_HEADROOM_BYTES, it as VOICE_LIST_TIMEOUT_MS, pi as VoiceCaption, mi as VoiceConversationView, gi as VoiceMiniController, _i as VoiceStage, vi as VoiceTranscriptDrawer, hi as VoiceWaveform, h as WAIT_FOR_SANDBOX_RUNNING, E as abortAssistantTurn, Mi as aiCreditsUpdatedEventName, D as approvePendingWrite, Wr as assistantRoutePath, en as assistantTranslationKey, Gr as assistantUrlTransform, Nr as availableAttachmentSources, Ee as base64ToBytes, ge as browserSpeechEngine, O as buildAssistantSandboxEnv, Yn as buildAttachmentPromptBlock, ht as buildContinuedFromVoiceNote, Z as buildProgress, Xn as buildPromptParts, k as buildPromptRequestBody, Zn as buildPromptWithAttachments, De as buildRequest, a as buildSandboxContextInput, gt as buildVoiceTranscriptMarkdown, le as chatTurns, A as checkAssistantAiCredits, Ct as chunkForSpeech, Kr as classifyAssistantHref, Qn as classifyAttachment, Oe as classifyHttpFailure, t as classifyQuotaError, xn as columnLetterToIndex, Pe as configureSpeechEngine, wt as containsCjk, Or as copyToClipboard, $n as countInlineImageCandidates, er as countInlinedImageParts, j as createAssistantSandbox, M as createAssistantSession, Me as createHostedTtsEngine, Ir as createReadinessTracker, Ne as createRoutingSpeechEngine, se as createSandboxAssistantTransport, Fe as createSpeechEngines, ke as decodeAudioResponse, Sn as decodeXmlEntities, n as describeQuotaError, tr as detectDocumentFormat, on as detectScriptLocale, Pr as deviceHasCamera, Ni as dispatchAssistantQuotaExhausted, Cn as docxXmlToText, N as downloadAssistantArtifact, yi as downloadFile, nr as estimateTurnBodyBytes, o as executeSandboxGraphQL, bi as exportConversation, P as extendAssistantSandboxTTL, Ii as extractDocumentText, Vt as findAssistantLanguage, F as findExistingSandbox, Gt as findPendingWrite, wn as fitPdfPages, rr as formatBytes, Tn as formatPageRanges, kr as getActorId, I as getAssistantArtifacts, Q as getAssistantMedia, L as getAssistantMessages, R as getAssistantSession, z as getAssistantStreamAccess, $ as getAssistantText, ir as getAttachmentSendBlocker, S as getCapability, ar as getExtension, _ as getImageForMode, v as getImageTagForMode, Ar as getOrganizationId, ee as getRawMessageCreatedAt, y as getResourcesForMode, b as getSandboxImageRegistry, or as getSendableAttachments, Ie as getSpeechEngine, te as getToolProgress, jr as getWorkspaceId, ue as groupBySession, de as groupConsecutiveBySession, sr as hasAttachmentWorkInFlight, ye as hostedLocaleFor, be as hostedSupportsLanguage, Br as imageHostLabel, Xe as isCapturing, Ze as isEcho, En as isMostlyImagePages, Ai as isMultimodalBodyRejection, zi as isProdRuntime, r as isQuotaExhaustedError, ne as isReapedSandboxConnectionError, Lr as isRecentlyVerified, re as isRecoverable, ji as isRecoverableAssistantError, Vr as isRemoteImageSrc, ln as isSpeakingMessage, at as isSpeechBlocked, yr as isStageCopy, Qe as isSubmittable, pr as isTurnInFlight, C as isUnknownFieldError, fe as isVoiceTurn, Dn as joinSheets, ot as languageDisplayName, ie as mapSessionToHistory, w as markSupported, T as markUnsupported, ae as mergeMessagesById, ze as micIsInterrupt, B as modeRequiresConfirmWrites, oi as nextModeIndex, st as normalizeLangTag, Pi as notifyAiCreditsUpdated, $e as orbMode, On as pageMarker, Kt as parseConfirmationRefusal, cr as parseDataUrl, kn as parseSharedStrings, wr as parseToolActivity, An as parseWorkbookSheets, jn as pdfTextItemsToPage, mr as planAbandonedTurn, et as planReplyConsumption, hr as planTurnAbort, Lt as pollDelayMs, ct as primaryLanguageSubtag, un as publishedChunks, i as quotaExhaustedEventName, Le as readSpeechEngineConfig, V as releaseSupersededAssistantSandboxes, Ut as replyFollowsInput, H as reportAssistantAiTokenUsage, dn as requiresCancel, Re as resetSpeechEngine, Ht as resolveAssistantLanguage, Wt as resolveLanguagePair, Jt as resolveModeConfig, x as resolveSandboxAssistantMode, sn as resolveSpeechLocale, oe as sanitize, U as selectExistingAssistantSandbox, W as selectSupersededAssistantSandboxes, lt as selectVoiceForLocale, G as sendAssistantPromptAsync, K as sendHeartbeat, Mn as sheetXmlToRows, Ae as shouldDisableEngine, jt as showPreviousChunk, Be as showsAssistantCaption, Ve as showsUserCaption, Tt as speakableEmail, ut as speechGate, an as speechLabelsFor, dt as speechLangForLocale, fn as speechPlaybackReducer, je as splitForVendor, Et as splitTableRow, tt as spokenSoFar, br as stageText, xr as statusStageCopy, q as stopReapedAssistantSandbox, Nn as summarisePageText, Sr as thinkingPhrase, Rt as toCaptionText, lr as toMessageAttachment, Dt as toSpeakableText, ur as truncateForInline, Pn as truncatePagesForInline, Oi as useAssistantApiAccess, Li as useAssistantAttachments, Bi as useAssistantHeartbeat, tn as useAssistantI18nNamespace, Vi as useAssistantKeyboardShortcuts, qr as useAssistantNavigate, Yt as useAssistantPageLabel, Xt as useAssistantProduct, Zt as useAssistantProductOrNull, Er as useAssistantSpeech, Qt as useAssistantStorageFolders, fr as useAssistantStore, nn as useAssistantTr, ki as useConversationTurns, ce as useSandboxAssistantTransport, e as useVoiceInput, Dr as useVoiceSession, Fi as useWorkspaceWriteAccess, dr as validateFile, ft as voiceAvailability, pe as voiceMarker, kt as voicePreviewText, pt as voiceQualityRank, me as voiceSessionIdOf, nt as voiceSessionReducer, He as voiceStageState, _t as voiceTranscriptFilename, he as voiceTurnsOnly, mt as voicesForLocale, J as waitForAssistantServiceReady, Y as waitForSandboxRunning, Ue as waveformIsActive, We as waveformIsSettled };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fe-libs",
3
- "version": "2026.910.2",
3
+ "version": "2026.910.3",
4
4
  "description": "Burdenoff frontend primitives and domain libraries",
5
5
  "type": "module",
6
6
  "bin": {