@burdenoff/fe-libs 2026.919.1 → 2026.920.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.
@@ -0,0 +1,99 @@
1
+ import { AssistantModeConfig } from './conversation';
2
+ import { AssistantTr } from './i18n';
3
+ import { AssistantMode } from './types';
4
+ /**
5
+ * The single flag this module replaces, as it sits in storage written by
6
+ * fe-libs 2026.919.1 and earlier.
7
+ */
8
+ export declare const LEGACY_WRITE_CONSENT_KEY = "apiCallsAcknowledged";
9
+ /**
10
+ * The write-capable modes this profile has accepted, read back from storage.
11
+ *
12
+ * - A stored list is kept, minus anything that is not a mode id and any repeat.
13
+ * Storage is data from another build, so it is checked, not trusted.
14
+ * - Otherwise a stored legacy flag of exactly `true` becomes `["api-calls"]`.
15
+ * - Otherwise nothing is acknowledged.
16
+ *
17
+ * ★ A stored list WINS over the legacy flag, and is never merged with it. This
18
+ * build never writes the flag, and an older build drops the list the next time
19
+ * it persists (its `partialize` does not know the key), so the two are not
20
+ * stored side by side by either. Should they ever be, the list is the newer
21
+ * decision. After a rollback and a roll-forward, the flag the older build wrote
22
+ * is migrated again, exactly as on first upgrade.
23
+ */
24
+ export declare function restoreAcknowledgedWriteModes(persisted: unknown): AssistantMode[];
25
+ /** Has this profile accepted the write consent for `mode`? */
26
+ export declare function isWriteModeAcknowledged(acknowledged: readonly AssistantMode[], mode: AssistantMode): boolean;
27
+ /** Send-time consent and voice checks against the validated post-wait mode. */
28
+ export declare function writeModeSendRefusal(mode: AssistantMode, config: Pick<AssistantModeConfig, "writeCapable"> | undefined, acknowledged: readonly AssistantMode[], { dictated, confirmsWrites }: {
29
+ dictated: boolean;
30
+ confirmsWrites: boolean;
31
+ }): string | null;
32
+ /** `acknowledged` plus `mode`, unchanged (same array) if it is already there. */
33
+ export declare function withWriteModeAcknowledged(acknowledged: readonly AssistantMode[], mode: AssistantMode): readonly AssistantMode[];
34
+ /** A mode as the dialog needs it: the product's config, or just an id. */
35
+ export type WriteConsentMode = Pick<AssistantModeConfig, "id"> & Partial<Pick<AssistantModeConfig, "label" | "producesArtifacts">>;
36
+ /** Every line of the dialog, already translated. */
37
+ export interface WriteModeConsentCopy {
38
+ title: string;
39
+ body: string;
40
+ /** Whether the assistant stops for approval before a change — true or false, said plainly. */
41
+ safeguard: string;
42
+ confirm: string;
43
+ cancel: string;
44
+ }
45
+ /**
46
+ * fe-libs' own English for the `apiCalls.consent*` keys — the exact strings the
47
+ * `tr()` calls in `writeModeConsentCopy` pass as their fallbacks.
48
+ *
49
+ * ★ Written out twice ON PURPOSE. `i18nManifest.test.ts` reads the fallback
50
+ * ARGUMENT of every `tr()` call with the TypeScript parser, so a call site that
51
+ * passed this table's value instead of a literal would drop out of the manifest
52
+ * — and a key missing from the manifest is a key no product seeds, which is how
53
+ * a string silently goes English in every locale. That test pins each call site
54
+ * to the manifest, and `writeModeConsent.test.ts` pins this table to the
55
+ * manifest too, so the three cannot drift apart without CI failing.
56
+ */
57
+ export declare const TAKE_ACTION_ENGLISH: {
58
+ readonly "apiCalls.consentTitle": "Switch to Take action mode?";
59
+ readonly "apiCalls.consentBody": "In Take action mode the assistant can read AND change your data — creating records, logging activity, updating details, and more, on your behalf.";
60
+ readonly "apiCalls.consentConfirm": "Enable Take action";
61
+ readonly "apiCalls.consentCancel": "Stay in Ask";
62
+ };
63
+ /** A consent key whose English fe-libs writes itself. */
64
+ export type TakeActionConsentKey = keyof typeof TAKE_ACTION_ENGLISH;
65
+ /**
66
+ * What the consent dialog says when switching from `current` into `target`.
67
+ *
68
+ * ★★ A PRODUCT'S OWN WORDS ALWAYS WIN. `apiCalls.consent*` predate per-mode
69
+ * wording, and products have seeded them: FluidGrids authored all five in six
70
+ * languages FOR ITS OWN NAME for `api-calls` ("In Workflow mode … your
71
+ * FluidGrids data"), HealthyBowl's body names "your HealthyBowl data". So for
72
+ * `api-calls` those keys are asked FIRST, and whatever comes back that is not
73
+ * fe-libs' own English is what renders — in the reader's language, byte for
74
+ * byte as before this change.
75
+ *
76
+ * ★★ `writeConsent.*` renders only where there is no product copy to lose: a
77
+ * mode that is not `api-calls` (a build mode has no seeded consent copy at all),
78
+ * or an `api-calls` whose dictionary gave our own sentence back. It says the
79
+ * same thing through `{{mode}}`, which names the mode as its pill does — so a
80
+ * product that calls `api-calls` "Build" stops being told "Take action" without
81
+ * any product's translation turning English.
82
+ *
83
+ * ★ The cancel button keeps `apiCalls.consentCancel` ("Stay in Ask") only when
84
+ * the mode being LEFT is the one called Ask — that sentence is about `current`,
85
+ * not `target`. Leaving Build names Build.
86
+ *
87
+ * ★★ `confirmsWrites` decides the safeguard line, and the caller must derive it
88
+ * from what the SANDBOX does (`modeRequiresConfirmWrites`), never from a product
89
+ * flag. The old dialog promised a confirmation step for every write-capable
90
+ * mode; only `api-calls` boots with AI_ASSISTANT_CONFIRM_WRITES, so for any
91
+ * other mode that promise was false. It now says the opposite, plainly.
92
+ */
93
+ export declare function writeModeConsentCopy(tr: AssistantTr, { target, current, confirmsWrites, }: {
94
+ target: WriteConsentMode;
95
+ /** The mode being left; absent is read as Ask, the mode everyone starts in. */
96
+ current?: WriteConsentMode | null;
97
+ confirmsWrites: boolean;
98
+ }): WriteModeConsentCopy;
99
+ //# sourceMappingURL=writeModeConsent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writeModeConsent.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/writeModeConsent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAM1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,wBAAwB,yBAAyB,CAAC;AAc/D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,OAAO,GAAG,aAAa,EAAE,CAiBjF;AAED,8DAA8D;AAC9D,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,SAAS,aAAa,EAAE,EACtC,IAAI,EAAE,aAAa,GAClB,OAAO,CAET;AAED,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,GAAG,SAAS,EAC7D,YAAY,EAAE,SAAS,aAAa,EAAE,EACtC,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,GAC3E,MAAM,GAAG,IAAI,CAQf;AAED,iFAAiF;AACjF,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,SAAS,aAAa,EAAE,EACtC,IAAI,EAAE,aAAa,GAClB,SAAS,aAAa,EAAE,CAE1B;AAED,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,GAC5D,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC;AAEpE,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAmBD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB;;;;;CAMtB,CAAC;AAEX,yDAAyD;AACzD,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAuBpE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,WAAW,EACf,EACE,MAAM,EACN,OAAO,EACP,cAAc,GACf,EAAE;IACD,MAAM,EAAE,gBAAgB,CAAC;IACzB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,OAAO,CAAC;CACzB,GACA,oBAAoB,CA+DtB"}
@@ -0,0 +1,48 @@
1
+ import { ASSISTANT_MODE_FALLBACK_LABELS as e, assistantModeFallbackLabel as t } from "./modeCopy.js";
2
+ import { isAssistantModeId as n } from "./modeIds.js";
3
+ //#region src/shared/assistant/writeModeConsent.ts
4
+ var r = "apiCallsAcknowledged", i = "api-calls";
5
+ function a(e) {
6
+ if (typeof e != "object" || !e) return [];
7
+ let t = Object.fromEntries(Object.entries(e)), r = t.acknowledgedWriteModes;
8
+ if (Array.isArray(r)) {
9
+ let e = /* @__PURE__ */ new Set();
10
+ for (let t of r) n(t) && e.add(t);
11
+ return [...e];
12
+ }
13
+ return t.apiCallsAcknowledged === !0 ? [i] : [];
14
+ }
15
+ function o(e, t) {
16
+ return e.includes(t);
17
+ }
18
+ function s(e, t, n, { dictated: r, confirmsWrites: i }) {
19
+ return t?.writeCapable && !o(n, e) ? "Confirm this assistant mode before sending: choose it again in the mode selector." : r && (t?.writeCapable || i) ? "Voice can't be used in a mode that can change your data. Type your request instead." : null;
20
+ }
21
+ function c(e, t) {
22
+ return e.includes(t) ? e : [...e, t];
23
+ }
24
+ function l(e, n) {
25
+ return e(`mode.${n.id}`, n.label || t(n));
26
+ }
27
+ var u = (e, n) => (e.label || t(e)) === n, d = {
28
+ "apiCalls.consentTitle": "Switch to Take action mode?",
29
+ "apiCalls.consentBody": "In Take action mode the assistant can read AND change your data — creating records, logging activity, updating details, and more, on your behalf.",
30
+ "apiCalls.consentConfirm": "Enable Take action",
31
+ "apiCalls.consentCancel": "Stay in Ask"
32
+ };
33
+ function f(e, t) {
34
+ return t === d[e] ? null : t;
35
+ }
36
+ var p = { id: "assistant" };
37
+ function m(t, { target: n, current: r, confirmsWrites: i }) {
38
+ let a = l(t, n), o = n.id === "api-calls", s = !r || u(r, e.assistant);
39
+ return {
40
+ title: (o ? f("apiCalls.consentTitle", t("apiCalls.consentTitle", "Switch to Take action mode?")) : null) ?? t("writeConsent.title", "Switch to {{mode}} mode?", { mode: a }),
41
+ body: (o ? f("apiCalls.consentBody", t("apiCalls.consentBody", "In Take action mode the assistant can read AND change your data — creating records, logging activity, updating details, and more, on your behalf.")) : null) ?? t("writeConsent.body", "In {{mode}} mode the assistant can read AND change your data — creating records, logging activity, updating details, and more, on your behalf.", { mode: a }),
42
+ safeguard: i ? t("apiCalls.consentBody2", "It will describe what it is about to do and ask you to confirm before making a change. Only continue if you want the assistant to take actions for you.") : t("writeConsent.unconfirmed", "It does not stop to ask before each change — it makes changes as soon as it decides to. Only continue if you want the assistant to change your data without asking first."),
43
+ confirm: (o ? f("apiCalls.consentConfirm", t("apiCalls.consentConfirm", "Enable Take action")) : null) ?? t("writeConsent.confirm", "Enable {{mode}}", { mode: a }),
44
+ cancel: (s ? f("apiCalls.consentCancel", t("apiCalls.consentCancel", "Stay in Ask")) : null) ?? t("writeConsent.cancel", "Stay in {{mode}}", { mode: l(t, r ?? p) })
45
+ };
46
+ }
47
+ //#endregion
48
+ export { r as LEGACY_WRITE_CONSENT_KEY, d as TAKE_ACTION_ENGLISH, o as isWriteModeAcknowledged, a as restoreAcknowledgedWriteModes, c as withWriteModeAcknowledged, m as writeModeConsentCopy, s as writeModeSendRefusal };
@@ -16,112 +16,113 @@ import { AssistantRuntimeManager as ke } from "./shared/assistant/runtime.js";
16
16
  import { buildProgress as Ae, getAssistantMedia as je, getAssistantText as Me, getRawMessageCreatedAt as Ne, getToolProgress as Pe, isReapedSandboxConnectionError as Fe, isRecoverable as Ie, mapSessionToHistory as Le, mergeMessagesById as Re, sanitize as ze } from "./shared/assistant/progress.js";
17
17
  import { createSandboxAssistantTransport as Be } from "./shared/assistant/createSandboxAssistantTransport.js";
18
18
  import { useSandboxAssistantTransport as Ve } from "./shared/assistant/useSandboxAssistantTransport.js";
19
- import { BUILT_IN_MODE_CAPABILITIES as He, MAX_ASSISTANT_STREAM_BUDGET_MS as Ue, UNDECLARED_MODE_CAPABILITIES as We, adminOnlyModeSendRefusal as Ge, findAssistantModeConfig as Ke, resolveAssistantModeCapabilities as qe } from "./shared/assistant/modeCapabilities.js";
20
- import { DEFAULT_STREAM_BUDGET_MS as Je, INCOMPLETE_TURN_NOTICES as Ye, STREAM_BUDGET_MS as Xe, incompleteTurnNotice as Ze, streamBudgetMs as Qe, withIncompleteTurnNotice as $e } from "./shared/assistant/streamBudget.js";
21
- import { chatTurns as et, groupBySession as tt, groupConsecutiveBySession as nt, isVoiceTurn as rt, voiceMarker as it, voiceSessionIdOf as at, voiceTurnsOnly as ot } from "./shared/assistant/voice/turnVisibility.js";
22
- import { browserSpeechEngine as st } from "./shared/assistant/speech/browserSpeechEngine.js";
23
- import { HOSTED_TTS_TIER as ct, HOSTED_VOICES as lt, hostedLocaleFor as ut, hostedSupportsLanguage as dt } from "./shared/assistant/speech/hostedVoiceCatalogue.js";
24
- import { HOSTED_DISABLE_MS as ft, HOSTED_TTS_MAX_CHARS as pt, SPEAKING_RATE_MAX as mt, SPEAKING_RATE_MAX_STREAMING as ht, SPEAKING_RATE_MAX_SYNC as gt, SPEAKING_RATE_MIN as _t, base64ToBytes as vt, buildRequest as yt, classifyHttpFailure as bt, decodeAudioResponse as xt, disableDurationMs as St, shouldDisableEngine as Ct, splitForVendor as wt } from "./shared/assistant/speech/hostedTtsProtocol.js";
25
- import { createHostedTtsEngine as Tt } from "./shared/assistant/speech/hostedTtsSpeechEngine.js";
26
- import { HOSTED_VOICE_RANK as Et, SPEECH_LANG as Dt, VOICE_LIST_TIMEOUT_MS as Ot, isHostedVoice as kt, isSpeechBlocked as At, languageDisplayName as jt, normalizeLangTag as Mt, primaryLanguageSubtag as Nt, selectVoiceForLocale as Pt, speechGate as Ft, speechLangForLocale as It, voiceAvailability as Lt, voiceQualityRank as Rt, voicesForLocale as zt } from "./shared/assistant/voice/speechVoices.js";
27
- import { createRoutingSpeechEngine as Bt } from "./shared/assistant/speech/routingSpeechEngine.js";
28
- import { configureSpeechEngine as Vt, createSpeechEngines as Ht, getSpeechEngine as Ut, readSpeechEngineConfig as Wt, resetSpeechEngine as Gt, subscribeSpeechEngine as Kt } from "./shared/assistant/speech/createSpeechEngine.js";
29
- import { micIsInterrupt as qt, showsAssistantCaption as Jt, showsUserCaption as Yt, voiceStageState as Xt, waveformIsActive as Zt, waveformIsSettled as Qt } from "./shared/assistant/voice/voiceStageState.js";
30
- import { PHRASE_ROTATE_MS as $t, STAGE_COPY as en, THINKING_PHRASES as tn, stageText as nn, statusStageCopy as rn, thinkingPhrase as an, thinkingPhraseEntry as on } from "./shared/assistant/stageCopy.js";
31
- import { VOICE_MUTED_LABEL as sn, VOICE_THINKING_LABEL as cn, composeVoiceStatus as ln, voiceStatusParts as un, voiceStatusSuffix as dn } from "./shared/assistant/voice/voiceStatus.js";
32
- import { IDLE_ROTATION_CLOCK as fn, advanceRotationClock as pn, rotationElapsedMs as mn, startRotationTicker as hn, syncRotationClock as gn } from "./shared/assistant/voice/rotationClock.js";
33
- import { ENDPOINT_GRACE_MS as _n, INITIAL_SESSION as vn, INTERRUPT_MAX_MS as yn, INTERRUPT_MIN_MS as bn, SILENCE_SUBMIT_MS as xn, isCapturing as Sn, isEcho as Cn, isSubmittable as wn, orbMode as Tn, planReplyConsumption as En, spokenSoFar as Dn, voiceSessionReducer as On } from "./shared/assistant/voice/voiceSession.js";
34
- import { buildContinuedFromVoiceNote as kn, buildVoiceTranscriptMarkdown as An, voiceTranscriptFilename as jn } from "./shared/assistant/voice/voiceTranscript.js";
35
- import { DEFAULT_SPEAKABLE_LABELS as Mn, MAX_SPEAKABLE_CHARS as Nn, MAX_SPOKEN_TABLE_ROWS as Pn, SPEECH_CHUNK_CHARS as Fn, SPEECH_CHUNK_CJK_CHARS as In, chunkForSpeech as Ln, containsCjk as Rn, speakableEmail as zn, splitTableRow as Bn, toSpeakableText as Vn } from "./shared/assistant/voice/speakableText.js";
36
- import { PREVIEW_LANGUAGES as Hn, voicePreviewText as Un } from "./shared/assistant/voice/voicePreview.js";
37
- import { MINI_CAPTION_BUDGET as Wn, showPreviousChunk as Gn } from "./shared/assistant/voice/miniCaptionBudget.js";
38
- import { POLL_FAST_MS as Kn, POLL_FAST_UNTIL_MS as qn, POLL_SLOW_MS as Jn, POLL_STEADY_MS as Yn, POLL_STEADY_UNTIL_MS as Xn, pollDelayMs as Zn } from "./shared/assistant/voice/assistantPollSchedule.js";
39
- import { toCaptionText as Qn } from "./shared/assistant/voice/captionText.js";
40
- import { ASSISTANT_LANGUAGES as $n, DEFAULT_SPEECH_RATE as er, findAssistantLanguage as tr, resolveAssistantLanguage as nr } from "./shared/assistant/voice/languages.js";
41
- import { replyFollowsInput as rr, resolveLanguagePair as ir } from "./shared/assistant/voice/languagePair.js";
42
- import { findPendingWrite as ar, parseConfirmationRefusal as or } from "./shared/assistant/pendingWrite.js";
43
- import { MAX_INLINE_IMAGE_BASE64_BYTES as sr, MAX_REQUEST_BODY_BYTES as cr } from "./shared/assistant/gatewayLimits.js";
44
- import { BOILERPLATE_PAGE_SHARE as lr, MAX_BOILERPLATE_LINE_CHARS as ur, MAX_EXTRACTED_CHARS as dr, MAX_PDF_PAGES_SCANNED as fr, MIN_PAGE_TEXT_CHARS as pr, MIN_TEXT_PAGE_SHARE as mr, columnLetterToIndex as hr, decodeXmlEntities as gr, docxXmlToText as _r, fitPdfPages as vr, formatPageRanges as yr, isMostlyImagePages as br, joinSheets as xr, pageMarker as Sr, parseSharedStrings as Cr, parseWorkbookSheets as wr, pdfTextItemsToPage as Tr, sheetXmlToRows as Er, summarisePageText as Dr, truncatePagesForInline as Or } from "./shared/assistant/documentText.js";
45
- import { ATTACHMENT_ACCEPT as kr, AttachmentRejectedError as Ar, INLINE_IMAGE_MAX_DIM as jr, INLINE_IMAGE_QUALITY as Mr, MAX_ATTACHMENTS as Nr, MAX_FILE_BYTES as Pr, MAX_INLINE_CHARS_PER_FILE as Fr, MAX_INLINE_CHARS_TOTAL as Ir, MAX_INLINE_IMAGE_BASE64_CHARS as Lr, MAX_INLINE_IMAGE_PARTS as Rr, MAX_INLINE_TURN_BODY_BYTES as zr, MAX_TURN_BODY_BYTES as Br, PROMPT_ENVELOPE_RESERVE_BYTES as Vr, PROVIDER_READABLE_FILE_MEDIA_TYPES as Hr, TURN_BODY_HEADROOM_BYTES as Ur, buildAttachmentPromptBlock as Wr, buildPromptParts as Gr, buildPromptWithAttachments as Kr, classifyAttachment as qr, countInlineImageCandidates as Jr, countInlinedImageParts as Yr, detectDocumentFormat as Xr, estimateTurnBodyBytes as Zr, formatBytes as Qr, getAttachmentSendBlocker as $r, getExtension as ei, getSendableAttachments as ti, hasAttachmentWorkInFlight as ni, isProviderReadableFilePart as ri, parseDataUrl as ii, toMessageAttachment as ai, truncateForInline as oi, validateFile as si } from "./shared/assistant/attachments.js";
46
- import { ATTACHMENT_SOURCES as ci, availableAttachmentSources as li, deviceHasCamera as ui } from "./shared/assistant/attachmentSources.js";
47
- import { ASSISTANT_I18N_COMPUTED_COPY as di, ASSISTANT_I18N_LITERAL_COPY as fi, ASSISTANT_I18N_MANIFEST as pi, assistantI18nSeedCopy as mi, assistantModeI18nCopy as hi } from "./shared/assistant/i18nManifest.js";
48
- import { ADMIN_MODE_ACCESS_WAIT_MS as gi, adminOnlyModeSendRefusalAfterAccess as _i, createAdminModeAccessGate as vi } from "./shared/assistant/adminModeSendGate.js";
49
- import { SPOKEN_LABEL_LANGUAGES as yi, speechLabelsFor as bi } from "./shared/assistant/voice/speechLabels.js";
50
- import { detectScriptLocale as xi, resolveSpeechLocale as Si } from "./shared/assistant/voice/replyLanguage.js";
51
- import { IDLE_PLAYBACK as Ci, isSpeakingMessage as wi, publishedChunks as Ti, requiresCancel as Ei, speechPlaybackReducer as Di } from "./shared/assistant/voice/speechPlayback.js";
52
- import { resolveActiveModeSandbox as Oi, useAssistantStore as ki } from "./shared/assistant/store.js";
53
- import { isTurnInFlight as Ai, planAbandonedTurn as ji, planTurnAbort as Mi } from "./shared/assistant/turnState.js";
54
- import { isLegacyFiller as Ni, isLegacyStopped as Pi, isStageCopy as Fi, stripLegacyFillerPrefix as Ii } from "./shared/assistant/legacyFiller.js";
55
- import { getAssistantDisplayContent as Li } from "./shared/assistant/displayContent.js";
56
- import { elapsedSince as Ri, msUntilNextPhrase as zi, startPhraseTicker as Bi, turnActivityCopy as Vi, turnActivityStage as Hi } from "./shared/assistant/turnActivity.js";
57
- import { buildAssistantProgress as Ui } from "./shared/assistant/turnProgress.js";
58
- import { AssistantToolActivity as Wi, parseToolActivity as Gi } from "./shared/assistant/ui/AssistantToolActivity.js";
59
- import { countSpokenTurns as Ki, spokenTurnText as qi } from "./shared/assistant/spokenTurns.js";
60
- import { AssistantAvatar as Ji } from "./shared/assistant/ui/AssistantAvatar.js";
61
- import { AssistantSpeechProvider as Yi, useAssistantSpeech as Xi } from "./shared/assistant/ui/AssistantSpeechProvider.js";
62
- import { useVoiceSession as Zi } from "./shared/assistant/ui/useVoiceSession.js";
63
- import { getActorId as Qi, getOrganizationId as $i, getWorkspaceId as ea } from "./shared/assistant/context.js";
64
- import { SANDBOX_READY_TTL_MS as ta, createReadinessTracker as na, isRecentlyVerified as ra } from "./shared/assistant/sandboxReadiness.js";
65
- import { AssistantAutoSpeakToggle as ia } from "./shared/assistant/ui/AssistantAutoSpeakToggle.js";
66
- import { AssistantMessageAttachments as aa } from "./shared/assistant/ui/AssistantMessageAttachments.js";
67
- import { AssistantPendingWriteCard as oa } from "./shared/assistant/ui/AssistantPendingWriteCard.js";
68
- import { AssistantLanguageMenu as sa } from "./shared/assistant/ui/AssistantLanguageMenu.js";
69
- import { AssistantReplyLanguageSelector as ca } from "./shared/assistant/ui/AssistantReplyLanguageSelector.js";
70
- import { AssistantSpeakButton as la } from "./shared/assistant/ui/AssistantSpeakButton.js";
71
- import { AssistantSpokenTurnsNotice as ua } from "./shared/assistant/ui/AssistantSpokenTurnsNotice.js";
72
- import { AssistantConnectSourceProvider as da, useAssistantConnectSource as fa } from "./shared/assistant/ui/composer/connectSource.js";
73
- import { AssistantConnectSourceItem as pa } from "./shared/assistant/ui/composer/AssistantConnectSourceItem.js";
74
- import { ASSISTANT_OVERLAY_ATTR as ma, ASSISTANT_PANEL_ATTR as ha, NO_PANEL_OVERLAY as ga, activePanelOverlay as _a, assistantPanelOwnsEscape as va, escapeDismisses as ya, focusIsInsidePanel as ba, nextPanelOverlays as xa, panelOwnsEscape as Sa } from "./shared/assistant/ui/panelOverlays.js";
75
- import { useDropdownEscape as Ca } from "./shared/assistant/ui/useDropdownEscape.js";
76
- import { AssistantAttachmentButton as wa } from "./shared/assistant/ui/composer/AssistantAttachmentButton.js";
77
- import { AssistantAttachmentChips as Ta } from "./shared/assistant/ui/composer/AssistantAttachmentChips.js";
78
- import { AssistantPreviewProvider as Ea, useAssistantPreview as Da } from "./shared/assistant/preview/context.js";
79
- import { IDLE_PREVIEW_STATE as Oa, isBlankProse as ka, isRunningStatus as Aa, nextPreviewEvents as ja } from "./shared/assistant/preview/previewTransitions.js";
80
- import { IDLE_PREVIEW as Ma, NO_OWNER as Na, applyPreviewEvent as Pa, createAssistantPreviewSurface as Fa, currentPreviewOwner as Ia, runBelongsTo as La, sameOwner as Ra } from "./shared/assistant/preview/surfaceState.js";
81
- import { createRunIdentityCache as za, runIdentities as Ba } from "./shared/assistant/preview/runIdentity.js";
82
- import { IDLE_ACTIVE_TAB as Va, nextActiveTab as Ha, pinActiveTab as Ua, shouldPinOnMove as Wa, shouldPinOnSelect as Ga, stepsFromToolActivity as Ka, tabForArrowKey as qa } from "./shared/assistant/preview/entity/entityPreviewState.js";
83
- import { AssistantStepRail as Ja } from "./shared/assistant/preview/entity/AssistantStepRail.js";
84
- import { AssistantEntityPreview as Ya } from "./shared/assistant/preview/entity/AssistantEntityPreview.js";
85
- import { useOverlayFocus as Xa } from "./shared/assistant/ui/useOverlayFocus.js";
86
- import { REDUCED_MOTION_ATTRIBUTE as Za, REDUCED_MOTION_QUERY as Qa, readReducedMotion as $a, subscribeReducedMotion as eo, usePrefersReducedMotion as to } from "./shared/assistant/ui/usePrefersReducedMotion.js";
87
- import { useAssistantPreviewBridge as no } from "./shared/assistant/preview/useAssistantPreviewBridge.js";
88
- import { AssistantPreviewOverlay as ro } from "./shared/assistant/preview/AssistantPreviewOverlay.js";
89
- import { AssistantLanguageSelector as io, FOLLOW_APP_LOCALE as ao } from "./shared/assistant/ui/composer/AssistantLanguageSelector.js";
90
- import { ASSISTANT_MODE_META as oo, AssistantModeSelector as so, assistantModeMeta as co, nextModeIndex as lo } from "./shared/assistant/ui/composer/AssistantModeSelector.js";
91
- import { AssistantVoiceButton as uo } from "./shared/assistant/ui/composer/AssistantVoiceButton.js";
92
- import { AUTO_VOICE as fo, AssistantVoiceSelector as po } from "./shared/assistant/ui/composer/AssistantVoiceSelector.js";
93
- import { AssistantVoiceOrb as mo } from "./shared/assistant/ui/voice/AssistantVoiceOrb.js";
94
- import { AssistantVoiceSessionButton as ho } from "./shared/assistant/ui/voice/AssistantVoiceSessionButton.js";
95
- import { CAPTION_SCROLL_ATTR as go, VoiceCaption as _o } from "./shared/assistant/ui/voice/VoiceCaption.js";
96
- import { VoiceConversationView as vo } from "./shared/assistant/ui/voice/VoiceConversationView.js";
97
- import { VoiceWaveform as yo } from "./shared/assistant/ui/voice/VoiceWaveform.js";
98
- import { VoiceStatusLine as bo, VoiceStatusText as xo } from "./shared/assistant/ui/voice/VoiceStatusText.js";
99
- import { VoiceMiniController as So } from "./shared/assistant/ui/voice/VoiceMiniController.js";
100
- import { VoiceStage as Co } from "./shared/assistant/ui/voice/VoiceStage.js";
101
- import { VoiceTranscriptDrawer as wo } from "./shared/assistant/ui/voice/VoiceTranscriptDrawer.js";
102
- import { downloadFile as To, exportConversation as Eo } from "./shared/assistant/exportConversation.js";
103
- import { AssistantMoreMenu as Do } from "./shared/assistant/ui/AssistantMoreMenu.js";
104
- import { AssistantHeader as Oo } from "./shared/assistant/ui/AssistantHeader.js";
105
- import { AssistantConversationList as ko } from "./shared/assistant/ui/AssistantConversationList.js";
106
- import { AssistantEmptyState as Ao } from "./shared/assistant/ui/AssistantEmptyState.js";
107
- import { AssistantTurnActivity as jo, TurnActivityLine as Mo } from "./shared/assistant/ui/AssistantTurnActivity.js";
108
- import { AssistantMessageItem as No } from "./shared/assistant/ui/AssistantMessageItem.js";
109
- import { AssistantMessageList as Po } from "./shared/assistant/ui/AssistantMessageList.js";
110
- import { AssistantVoiceSession as Fo } from "./shared/assistant/ui/voice/AssistantVoiceSession.js";
111
- import { useAssistantApiAccess as Io } from "./shared/assistant/useAssistantApiAccess.js";
112
- import { useConversationTurns as Lo } from "./shared/assistant/useConversationTurns.js";
113
- import { isMultimodalBodyRejection as Ro, isRecoverableAssistantError as zo } from "./shared/assistant/transportErrors.js";
114
- import { aiCreditsUpdatedEventName as Bo, dispatchAssistantQuotaExhausted as Vo, notifyAiCreditsUpdated as Ho } from "./shared/assistant/aiCredits.js";
115
- import { useWorkspaceWriteAccess as Uo } from "./shared/assistant/useWorkspaceWriteAccess.js";
116
- import { extractDocumentText as Wo } from "./shared/assistant/documentExtract.js";
117
- import { useAssistantAttachments as Go } from "./shared/assistant/useAssistantAttachments.js";
118
- import { AssistantComposer as Ko } from "./shared/assistant/ui/composer/AssistantComposer.js";
119
- import { isProdRuntime as qo } from "./shared/assistant/env.js";
120
- import { useAssistantHeartbeat as Jo } from "./shared/assistant/useAssistantHeartbeat.js";
121
- import { useAssistantKeyboardShortcuts as Yo } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
122
- import { AssistantApiCallsConsentDialog as Xo } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
123
- import { AssistantChatArea as Zo } from "./shared/assistant/ui/AssistantChatArea.js";
124
- import { AIAssistantPanel as Qo } from "./shared/assistant/ui/AIAssistantPanel.js";
125
- import { ASSISTANT_BOTTOM_CHROME_CLEARANCE as $o, ASSISTANT_DIALOG_SELECTOR as es, ASSISTANT_DOCKED_DESKTOP_CLASS as ts, ASSISTANT_DOCK_WIDTH_PX as ns, ASSISTANT_DOCK_WIDTH_VAR as rs, ASSISTANT_FLOATING_DESKTOP_CLASS as is, ASSISTANT_OVERLAY_DEFAULT_TOP_PX as as, ASSISTANT_OVERLAY_DESKTOP_QUERY as os, ASSISTANT_OVERLAY_TOP_VAR as ss, ASSISTANT_SHEET_BASE_CLASS as cs, ASSISTANT_SHEET_COMPACT_CLASS as ls, ASSISTANT_SHEET_EXPANDED_CLASS as us, ASSISTANT_TOGGLE_SHORTCUT_LABEL as ds, aboveAssistantBottomChrome as fs, assistantOverlayClassName as ps, assistantOverlayEscapeAction as ms, assistantOverlayKeys as hs, assistantQuotaKindOf as gs, createAssistantNavigate as _s, isAssistantToggleShortcut as vs, nextAssistantOpenState as ys, publishedAssistantDockWidth as bs, readAssistantOverlayFlag as xs, requestedAssistantOpenState as Ss, writeAssistantOverlayFlag as Cs } from "./shared/assistant/ui/assistantOverlayState.js";
126
- import { AssistantOverlay as ws, AssistantOverlayProvider as Ts, useAssistantDockWidth as Es, useAssistantOverlayOrNull as Ds, useAssistantQuotaExhausted as Os } from "./shared/assistant/ui/AssistantOverlay.js";
127
- export { gi as ADMIN_MODE_ACCESS_WAIT_MS, Qo as AIAssistantPanel, q as ASSISTANT_API_AUTH_STRATEGY, $o as ASSISTANT_BOTTOM_CHROME_CLEARANCE, es as ASSISTANT_DIALOG_SELECTOR, ts as ASSISTANT_DOCKED_DESKTOP_CLASS, ns as ASSISTANT_DOCK_WIDTH_PX, rs as ASSISTANT_DOCK_WIDTH_VAR, is as ASSISTANT_FLOATING_DESKTOP_CLASS, di as ASSISTANT_I18N_COMPUTED_COPY, fi as ASSISTANT_I18N_LITERAL_COPY, pi as ASSISTANT_I18N_MANIFEST, $n as ASSISTANT_LANGUAGES, L as ASSISTANT_MODE_FALLBACK_LABELS, R as ASSISTANT_MODE_IDS, oo as ASSISTANT_MODE_META, ma as ASSISTANT_OVERLAY_ATTR, as as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, os as ASSISTANT_OVERLAY_DESKTOP_QUERY, ss as ASSISTANT_OVERLAY_TOP_VAR, ha as ASSISTANT_PANEL_ATTR, cs as ASSISTANT_SHEET_BASE_CLASS, ls as ASSISTANT_SHEET_COMPACT_CLASS, us as ASSISTANT_SHEET_EXPANDED_CLASS, ds as ASSISTANT_TOGGLE_SHORTCUT_LABEL, kr as ATTACHMENT_ACCEPT, ci as ATTACHMENT_SOURCES, fo as AUTO_VOICE, Xo as AssistantApiCallsConsentDialog, wa as AssistantAttachmentButton, Ta as AssistantAttachmentChips, ia as AssistantAutoSpeakToggle, Ji as AssistantAvatar, Zo as AssistantChatArea, Ko as AssistantComposer, pa as AssistantConnectSourceItem, da as AssistantConnectSourceProvider, ko as AssistantConversationList, Ao as AssistantEmptyState, Ya as AssistantEntityPreview, Oo as AssistantHeader, s as AssistantI18nProvider, sa as AssistantLanguageMenu, io as AssistantLanguageSelector, f as AssistantMarkdownImage, h as AssistantMarkdownRenderer, aa as AssistantMessageAttachments, No as AssistantMessageItem, Po as AssistantMessageList, so as AssistantModeSelector, Do as AssistantMoreMenu, g as AssistantNavigateProvider, ws as AssistantOverlay, Ts as AssistantOverlayProvider, oa as AssistantPendingWriteCard, ro as AssistantPreviewOverlay, Ea as AssistantPreviewProvider, t as AssistantProductProvider, ca as AssistantReplyLanguageSelector, ke as AssistantRuntimeManager, la as AssistantSpeakButton, Yi as AssistantSpeechProvider, ua as AssistantSpokenTurnsNotice, Ja as AssistantStepRail, Wi as AssistantToolActivity, jo as AssistantTurnActivity, uo as AssistantVoiceButton, mo as AssistantVoiceOrb, po as AssistantVoiceSelector, Fo as AssistantVoiceSession, ho as AssistantVoiceSessionButton, Ar as AttachmentRejectedError, lr as BOILERPLATE_PAGE_SHARE, He as BUILT_IN_MODE_CAPABILITIES, go as CAPTION_SCROLL_ATTR, O as CHECK_AI_CREDITS, k as CREATE_SANDBOX, Mn as DEFAULT_SPEAKABLE_LABELS, er as DEFAULT_SPEECH_RATE, Je as DEFAULT_STREAM_BUDGET_MS, _n as ENDPOINT_GRACE_MS, A as EXTEND_SANDBOX_TTL, ao as FOLLOW_APP_LOCALE, j as GET_ACTIVE_SANDBOXES, M as GET_SANDBOX, ft as HOSTED_DISABLE_MS, pt as HOSTED_TTS_MAX_CHARS, ct as HOSTED_TTS_TIER, lt as HOSTED_VOICES, Et as HOSTED_VOICE_RANK, Va as IDLE_ACTIVE_TAB, Ci as IDLE_PLAYBACK, Ma as IDLE_PREVIEW, Oa as IDLE_PREVIEW_STATE, fn as IDLE_ROTATION_CLOCK, Ye as INCOMPLETE_TURN_NOTICES, vn as INITIAL_SESSION, jr as INLINE_IMAGE_MAX_DIM, Mr as INLINE_IMAGE_QUALITY, yn as INTERRUPT_MAX_MS, bn as INTERRUPT_MIN_MS, Ue as MAX_ASSISTANT_STREAM_BUDGET_MS, Nr as MAX_ATTACHMENTS, ur as MAX_BOILERPLATE_LINE_CHARS, dr as MAX_EXTRACTED_CHARS, Pr as MAX_FILE_BYTES, Fr as MAX_INLINE_CHARS_PER_FILE, Ir as MAX_INLINE_CHARS_TOTAL, sr as MAX_INLINE_IMAGE_BASE64_BYTES, Lr as MAX_INLINE_IMAGE_BASE64_CHARS, Rr as MAX_INLINE_IMAGE_PARTS, zr as MAX_INLINE_TURN_BODY_BYTES, fr as MAX_PDF_PAGES_SCANNED, cr as MAX_REQUEST_BODY_BYTES, Nn as MAX_SPEAKABLE_CHARS, Pn as MAX_SPOKEN_TABLE_ROWS, Br as MAX_TURN_BODY_BYTES, Wn as MINI_CAPTION_BUDGET, pr as MIN_PAGE_TEXT_CHARS, mr as MIN_TEXT_PAGE_SHARE, Na as NO_OWNER, ga as NO_PANEL_OVERLAY, $t as PHRASE_ROTATE_MS, Kn as POLL_FAST_MS, qn as POLL_FAST_UNTIL_MS, Jn as POLL_SLOW_MS, Yn as POLL_STEADY_MS, Xn as POLL_STEADY_UNTIL_MS, Hn as PREVIEW_LANGUAGES, V as PRODUCT_ASSISTANT_MODE_ID_MAX_LENGTH, H as PRODUCT_ASSISTANT_MODE_ID_PATTERN, Vr as PROMPT_ENVELOPE_RESERVE_BYTES, Hr as PROVIDER_READABLE_FILE_MEDIA_TYPES, N as PROXY_SANDBOX_REQUEST, Za as REDUCED_MOTION_ATTRIBUTE, Qa as REDUCED_MOTION_QUERY, P as REPORT_AI_TOKEN_USAGE, ta as SANDBOX_READY_TTL_MS, xn as SILENCE_SUBMIT_MS, mt as SPEAKING_RATE_MAX, ht as SPEAKING_RATE_MAX_STREAMING, gt as SPEAKING_RATE_MAX_SYNC, _t as SPEAKING_RATE_MIN, Fn as SPEECH_CHUNK_CHARS, In as SPEECH_CHUNK_CJK_CHARS, Dt as SPEECH_LANG, yi as SPOKEN_LABEL_LANGUAGES, en as STAGE_COPY, F as STOP_ASSISTANT_SANDBOX, Xe as STREAM_BUDGET_MS, tn as THINKING_PHRASES, Ur as TURN_BODY_HEADROOM_BYTES, Mo as TurnActivityLine, We as UNDECLARED_MODE_CAPABILITIES, Ot as VOICE_LIST_TIMEOUT_MS, sn as VOICE_MUTED_LABEL, cn as VOICE_THINKING_LABEL, _o as VoiceCaption, vo as VoiceConversationView, So as VoiceMiniController, Co as VoiceStage, bo as VoiceStatusLine, xo as VoiceStatusText, wo as VoiceTranscriptDrawer, yo as VoiceWaveform, I as WAIT_FOR_SANDBOX_RUNNING, ie as abortAssistantTurn, fs as aboveAssistantBottomChrome, _a as activePanelOverlay, Ge as adminOnlyModeSendRefusal, _i as adminOnlyModeSendRefusalAfterAccess, pn as advanceRotationClock, Bo as aiCreditsUpdatedEventName, Pa as applyPreviewEvent, ae as approvePendingWrite, mi as assistantI18nSeedCopy, z as assistantModeFallbackLabel, hi as assistantModeI18nCopy, co as assistantModeMeta, ps as assistantOverlayClassName, ms as assistantOverlayEscapeAction, hs as assistantOverlayKeys, va as assistantPanelOwnsEscape, gs as assistantQuotaKindOf, _ as assistantRoutePath, c as assistantTranslationKey, v as assistantUrlTransform, li as availableAttachmentSources, vt as base64ToBytes, y as browserShouldHandle, st as browserSpeechEngine, Ui as buildAssistantProgress, oe as buildAssistantSandboxEnv, Wr as buildAttachmentPromptBlock, kn as buildContinuedFromVoiceNote, Ae as buildProgress, Gr as buildPromptParts, se as buildPromptRequestBody, Kr as buildPromptWithAttachments, yt as buildRequest, E as buildSandboxContextInput, An as buildVoiceTranscriptMarkdown, U as builtInModeExtendedBy, et as chatTurns, ce as checkAssistantAiCredits, Ln as chunkForSpeech, b as classifyAssistantHref, qr as classifyAttachment, bt as classifyHttpFailure, S as classifyQuotaError, hr as columnLetterToIndex, ln as composeVoiceStatus, Vt as configureSpeechEngine, Rn as containsCjk, d as copyToClipboard, Jr as countInlineImageCandidates, Yr as countInlinedImageParts, Ki as countSpokenTurns, vi as createAdminModeAccessGate, _s as createAssistantNavigate, Fa as createAssistantPreviewSurface, le as createAssistantSandbox, ue as createAssistantSession, Tt as createHostedTtsEngine, na as createReadinessTracker, Bt as createRoutingSpeechEngine, za as createRunIdentityCache, Be as createSandboxAssistantTransport, Ht as createSpeechEngines, Ia as currentPreviewOwner, W as declareAssistantMode, xt as decodeAudioResponse, gr as decodeXmlEntities, C as describeQuotaError, Xr as detectDocumentFormat, xi as detectScriptLocale, ui as deviceHasCamera, St as disableDurationMs, Vo as dispatchAssistantQuotaExhausted, _r as docxXmlToText, de as downloadAssistantArtifact, To as downloadFile, Ri as elapsedSince, ya as escapeDismisses, Zr as estimateTurnBodyBytes, D as executeSandboxGraphQL, Eo as exportConversation, fe as extendAssistantSandboxTTL, Wo as extractDocumentText, tr as findAssistantLanguage, Ke as findAssistantModeConfig, pe as findExistingSandbox, ar as findPendingWrite, vr as fitPdfPages, ba as focusIsInsidePanel, Qr as formatBytes, yr as formatPageRanges, me as forwardsUserTokensToSandbox, Qi as getActorId, he as getAssistantArtifacts, Li as getAssistantDisplayContent, je as getAssistantMedia, ge as getAssistantMessages, _e as getAssistantSession, ve as getAssistantStreamAccess, Me as getAssistantText, $r as getAttachmentSendBlocker, ee as getCapability, ei as getExtension, J as getImageForMode, Y as getImageTagForMode, $i as getOrganizationId, Ne as getRawMessageCreatedAt, X as getResourcesForMode, Z as getSandboxImageRegistry, ti as getSendableAttachments, Ut as getSpeechEngine, Pe as getToolProgress, ea as getWorkspaceId, tt as groupBySession, nt as groupConsecutiveBySession, ni as hasAttachmentWorkInFlight, ut as hostedLocaleFor, dt as hostedSupportsLanguage, p as imageHostLabel, Ze as incompleteTurnNotice, G as isAssistantModeId, vs as isAssistantToggleShortcut, ka as isBlankProse, B as isBuiltInAssistantMode, Sn as isCapturing, Cn as isEcho, kt as isHostedVoice, Ni as isLegacyFiller, Pi as isLegacyStopped, br as isMostlyImagePages, Ro as isMultimodalBodyRejection, qo as isProdRuntime, K as isProductAssistantModeId, ri as isProviderReadableFilePart, w as isQuotaExhaustedError, Fe as isReapedSandboxConnectionError, ra as isRecentlyVerified, Ie as isRecoverable, zo as isRecoverableAssistantError, m as isRemoteImageSrc, Aa as isRunningStatus, wi as isSpeakingMessage, At as isSpeechBlocked, Fi as isStageCopy, wn as isSubmittable, Ai as isTurnInFlight, te as isUnknownFieldError, rt as isVoiceTurn, xr as joinSheets, jt as languageDisplayName, Le as mapSessionToHistory, ne as markSupported, re as markUnsupported, Re as mergeMessagesById, qt as micIsInterrupt, ye as modeRequiresConfirmWrites, zi as msUntilNextPhrase, Ha as nextActiveTab, ys as nextAssistantOpenState, lo as nextModeIndex, xa as nextPanelOverlays, ja as nextPreviewEvents, Mt as normalizeLangTag, Ho as notifyAiCreditsUpdated, Tn as orbMode, Sr as pageMarker, Sa as panelOwnsEscape, or as parseConfirmationRefusal, ii as parseDataUrl, Cr as parseSharedStrings, Gi as parseToolActivity, wr as parseWorkbookSheets, Tr as pdfTextItemsToPage, Ua as pinActiveTab, ji as planAbandonedTurn, En as planReplyConsumption, Mi as planTurnAbort, Zn as pollDelayMs, Nt as primaryLanguageSubtag, bs as publishedAssistantDockWidth, Ti as publishedChunks, T as quotaExhaustedEventName, xs as readAssistantOverlayFlag, $a as readReducedMotion, Wt as readSpeechEngineConfig, be as releaseSupersededAssistantSandboxes, rr as replyFollowsInput, xe as reportAssistantAiTokenUsage, Ss as requestedAssistantOpenState, Ei as requiresCancel, Gt as resetSpeechEngine, Oi as resolveActiveModeSandbox, nr as resolveAssistantLanguage, qe as resolveAssistantModeCapabilities, ir as resolveLanguagePair, n as resolveModeConfig, Q as resolveSandboxAssistantMode, Si as resolveSpeechLocale, mn as rotationElapsedMs, La as runBelongsTo, Ba as runIdentities, Ra as sameOwner, $ as sandboxBaseModeFor, ze as sanitize, Se as selectExistingAssistantSandbox, Ce as selectSupersededAssistantSandboxes, Pt as selectVoiceForLocale, we as sendAssistantPromptAsync, Te as sendHeartbeat, Er as sheetXmlToRows, Ct as shouldDisableEngine, Wa as shouldPinOnMove, Ga as shouldPinOnSelect, Gn as showPreviousChunk, Jt as showsAssistantCaption, Yt as showsUserCaption, zn as speakableEmail, Ft as speechGate, bi as speechLabelsFor, It as speechLangForLocale, Di as speechPlaybackReducer, wt as splitForVendor, Bn as splitTableRow, Dn as spokenSoFar, qi as spokenTurnText, nn as stageText, Bi as startPhraseTicker, hn as startRotationTicker, rn as statusStageCopy, Ka as stepsFromToolActivity, Ee as stopReapedAssistantSandbox, Qe as streamBudgetMs, Ii as stripLegacyFillerPrefix, eo as subscribeReducedMotion, Kt as subscribeSpeechEngine, Dr as summarisePageText, gn as syncRotationClock, qa as tabForArrowKey, an as thinkingPhrase, on as thinkingPhraseEntry, Qn as toCaptionText, ai as toMessageAttachment, Vn as toSpeakableText, oi as truncateForInline, Or as truncatePagesForInline, Vi as turnActivityCopy, Hi as turnActivityStage, Io as useAssistantApiAccess, Go as useAssistantAttachments, fa as useAssistantConnectSource, Es as useAssistantDockWidth, Jo as useAssistantHeartbeat, l as useAssistantI18nNamespace, Yo as useAssistantKeyboardShortcuts, x as useAssistantNavigate, Ds as useAssistantOverlayOrNull, r as useAssistantPageLabel, Da as useAssistantPreview, no as useAssistantPreviewBridge, i as useAssistantProduct, a as useAssistantProductOrNull, Os as useAssistantQuotaExhausted, Xi as useAssistantSpeech, o as useAssistantStorageFolders, ki as useAssistantStore, u as useAssistantTr, Lo as useConversationTurns, Ca as useDropdownEscape, Xa as useOverlayFocus, to as usePrefersReducedMotion, Ve as useSandboxAssistantTransport, e as useVoiceInput, Zi as useVoiceSession, Uo as useWorkspaceWriteAccess, si as validateFile, Lt as voiceAvailability, it as voiceMarker, Un as voicePreviewText, Rt as voiceQualityRank, at as voiceSessionIdOf, On as voiceSessionReducer, Xt as voiceStageState, un as voiceStatusParts, dn as voiceStatusSuffix, jn as voiceTranscriptFilename, ot as voiceTurnsOnly, zt as voicesForLocale, De as waitForAssistantServiceReady, Oe as waitForSandboxRunning, Zt as waveformIsActive, Qt as waveformIsSettled, $e as withIncompleteTurnNotice, Cs as writeAssistantOverlayFlag };
19
+ import { BUILT_IN_MODE_CAPABILITIES as He, MAX_ASSISTANT_STREAM_BUDGET_MS as Ue, UNAVAILABLE_MODE_REFUSAL as We, UNDECLARED_MODE_CAPABILITIES as Ge, adminOnlyModeSendRefusal as Ke, findAssistantModeConfig as qe, resolveAssistantModeCapabilities as Je, unofferedModeSendRefusal as Ye } from "./shared/assistant/modeCapabilities.js";
20
+ import { DEFAULT_STREAM_BUDGET_MS as Xe, INCOMPLETE_TURN_NOTICES as Ze, STREAM_BUDGET_MS as Qe, incompleteTurnNotice as $e, streamBudgetMs as et, withIncompleteTurnNotice as tt } from "./shared/assistant/streamBudget.js";
21
+ import { chatTurns as nt, groupBySession as rt, groupConsecutiveBySession as it, isVoiceTurn as at, voiceMarker as ot, voiceSessionIdOf as st, voiceTurnsOnly as ct } from "./shared/assistant/voice/turnVisibility.js";
22
+ import { browserSpeechEngine as lt } from "./shared/assistant/speech/browserSpeechEngine.js";
23
+ import { HOSTED_TTS_TIER as ut, HOSTED_VOICES as dt, hostedLocaleFor as ft, hostedSupportsLanguage as pt } from "./shared/assistant/speech/hostedVoiceCatalogue.js";
24
+ import { HOSTED_DISABLE_MS as mt, HOSTED_TTS_MAX_CHARS as ht, SPEAKING_RATE_MAX as gt, SPEAKING_RATE_MAX_STREAMING as _t, SPEAKING_RATE_MAX_SYNC as vt, SPEAKING_RATE_MIN as yt, base64ToBytes as bt, buildRequest as xt, classifyHttpFailure as St, decodeAudioResponse as Ct, disableDurationMs as wt, shouldDisableEngine as Tt, splitForVendor as Et } from "./shared/assistant/speech/hostedTtsProtocol.js";
25
+ import { createHostedTtsEngine as Dt } from "./shared/assistant/speech/hostedTtsSpeechEngine.js";
26
+ import { HOSTED_VOICE_RANK as Ot, SPEECH_LANG as kt, VOICE_LIST_TIMEOUT_MS as At, isHostedVoice as jt, isSpeechBlocked as Mt, languageDisplayName as Nt, normalizeLangTag as Pt, primaryLanguageSubtag as Ft, selectVoiceForLocale as It, speechGate as Lt, speechLangForLocale as Rt, voiceAvailability as zt, voiceQualityRank as Bt, voicesForLocale as Vt } from "./shared/assistant/voice/speechVoices.js";
27
+ import { createRoutingSpeechEngine as Ht } from "./shared/assistant/speech/routingSpeechEngine.js";
28
+ import { configureSpeechEngine as Ut, createSpeechEngines as Wt, getSpeechEngine as Gt, readSpeechEngineConfig as Kt, resetSpeechEngine as qt, subscribeSpeechEngine as Jt } from "./shared/assistant/speech/createSpeechEngine.js";
29
+ import { micIsInterrupt as Yt, showsAssistantCaption as Xt, showsUserCaption as Zt, voiceStageState as Qt, waveformIsActive as $t, waveformIsSettled as en } from "./shared/assistant/voice/voiceStageState.js";
30
+ import { PHRASE_ROTATE_MS as tn, STAGE_COPY as nn, THINKING_PHRASES as rn, stageText as an, statusStageCopy as on, thinkingPhrase as sn, thinkingPhraseEntry as cn } from "./shared/assistant/stageCopy.js";
31
+ import { VOICE_MUTED_LABEL as ln, VOICE_THINKING_LABEL as un, composeVoiceStatus as dn, voiceStatusParts as fn, voiceStatusSuffix as pn } from "./shared/assistant/voice/voiceStatus.js";
32
+ import { IDLE_ROTATION_CLOCK as mn, advanceRotationClock as hn, rotationElapsedMs as gn, startRotationTicker as _n, syncRotationClock as vn } from "./shared/assistant/voice/rotationClock.js";
33
+ import { ENDPOINT_GRACE_MS as yn, INITIAL_SESSION as bn, INTERRUPT_MAX_MS as xn, INTERRUPT_MIN_MS as Sn, SILENCE_SUBMIT_MS as Cn, isCapturing as wn, isEcho as Tn, isSubmittable as En, orbMode as Dn, planReplyConsumption as On, spokenSoFar as kn, voiceSessionReducer as An } from "./shared/assistant/voice/voiceSession.js";
34
+ import { buildContinuedFromVoiceNote as jn, buildVoiceTranscriptMarkdown as Mn, voiceTranscriptFilename as Nn } from "./shared/assistant/voice/voiceTranscript.js";
35
+ import { DEFAULT_SPEAKABLE_LABELS as Pn, MAX_SPEAKABLE_CHARS as Fn, MAX_SPOKEN_TABLE_ROWS as In, SPEECH_CHUNK_CHARS as Ln, SPEECH_CHUNK_CJK_CHARS as Rn, chunkForSpeech as zn, containsCjk as Bn, speakableEmail as Vn, splitTableRow as Hn, toSpeakableText as Un } from "./shared/assistant/voice/speakableText.js";
36
+ import { PREVIEW_LANGUAGES as Wn, voicePreviewText as Gn } from "./shared/assistant/voice/voicePreview.js";
37
+ import { MINI_CAPTION_BUDGET as Kn, showPreviousChunk as qn } from "./shared/assistant/voice/miniCaptionBudget.js";
38
+ import { POLL_FAST_MS as Jn, POLL_FAST_UNTIL_MS as Yn, POLL_SLOW_MS as Xn, POLL_STEADY_MS as Zn, POLL_STEADY_UNTIL_MS as Qn, pollDelayMs as $n } from "./shared/assistant/voice/assistantPollSchedule.js";
39
+ import { toCaptionText as er } from "./shared/assistant/voice/captionText.js";
40
+ import { ASSISTANT_LANGUAGES as tr, DEFAULT_SPEECH_RATE as nr, findAssistantLanguage as rr, resolveAssistantLanguage as ir } from "./shared/assistant/voice/languages.js";
41
+ import { replyFollowsInput as ar, resolveLanguagePair as or } from "./shared/assistant/voice/languagePair.js";
42
+ import { findPendingWrite as sr, parseConfirmationRefusal as cr } from "./shared/assistant/pendingWrite.js";
43
+ import { MAX_INLINE_IMAGE_BASE64_BYTES as lr, MAX_REQUEST_BODY_BYTES as ur } from "./shared/assistant/gatewayLimits.js";
44
+ import { BOILERPLATE_PAGE_SHARE as dr, MAX_BOILERPLATE_LINE_CHARS as fr, MAX_EXTRACTED_CHARS as pr, MAX_PDF_PAGES_SCANNED as mr, MIN_PAGE_TEXT_CHARS as hr, MIN_TEXT_PAGE_SHARE as gr, columnLetterToIndex as _r, decodeXmlEntities as vr, docxXmlToText as yr, fitPdfPages as br, formatPageRanges as xr, isMostlyImagePages as Sr, joinSheets as Cr, pageMarker as wr, parseSharedStrings as Tr, parseWorkbookSheets as Er, pdfTextItemsToPage as Dr, sheetXmlToRows as Or, summarisePageText as kr, truncatePagesForInline as Ar } from "./shared/assistant/documentText.js";
45
+ import { ATTACHMENT_ACCEPT as jr, AttachmentRejectedError as Mr, INLINE_IMAGE_MAX_DIM as Nr, INLINE_IMAGE_QUALITY as Pr, MAX_ATTACHMENTS as Fr, MAX_FILE_BYTES as Ir, MAX_INLINE_CHARS_PER_FILE as Lr, MAX_INLINE_CHARS_TOTAL as Rr, MAX_INLINE_IMAGE_BASE64_CHARS as zr, MAX_INLINE_IMAGE_PARTS as Br, MAX_INLINE_TURN_BODY_BYTES as Vr, MAX_TURN_BODY_BYTES as Hr, PROMPT_ENVELOPE_RESERVE_BYTES as Ur, PROVIDER_READABLE_FILE_MEDIA_TYPES as Wr, TURN_BODY_HEADROOM_BYTES as Gr, buildAttachmentPromptBlock as Kr, buildPromptParts as qr, buildPromptWithAttachments as Jr, classifyAttachment as Yr, countInlineImageCandidates as Xr, countInlinedImageParts as Zr, detectDocumentFormat as Qr, estimateTurnBodyBytes as $r, formatBytes as ei, getAttachmentSendBlocker as ti, getExtension as ni, getSendableAttachments as ri, hasAttachmentWorkInFlight as ii, isProviderReadableFilePart as ai, parseDataUrl as oi, toMessageAttachment as si, truncateForInline as ci, validateFile as li } from "./shared/assistant/attachments.js";
46
+ import { ATTACHMENT_SOURCES as ui, availableAttachmentSources as di, deviceHasCamera as fi } from "./shared/assistant/attachmentSources.js";
47
+ import { ASSISTANT_I18N_COMPUTED_COPY as pi, ASSISTANT_I18N_LITERAL_COPY as mi, ASSISTANT_I18N_MANIFEST as hi, assistantI18nSeedCopy as gi, assistantModeI18nCopy as _i } from "./shared/assistant/i18nManifest.js";
48
+ import { ADMIN_MODE_ACCESS_WAIT_MS as vi, adminOnlyModeSendRefusalAfterAccess as yi, createAdminModeAccessGate as bi, resolveAssistantSendModeAfterAccess as xi, unofferedModeSendRefusalAfterAccess as Si } from "./shared/assistant/adminModeSendGate.js";
49
+ import { LEGACY_WRITE_CONSENT_KEY as Ci, TAKE_ACTION_ENGLISH as wi, isWriteModeAcknowledged as Ti, restoreAcknowledgedWriteModes as Ei, withWriteModeAcknowledged as Di, writeModeConsentCopy as Oi, writeModeSendRefusal as ki } from "./shared/assistant/writeModeConsent.js";
50
+ import { SPOKEN_LABEL_LANGUAGES as Ai, speechLabelsFor as ji } from "./shared/assistant/voice/speechLabels.js";
51
+ import { detectScriptLocale as Mi, resolveSpeechLocale as Ni } from "./shared/assistant/voice/replyLanguage.js";
52
+ import { IDLE_PLAYBACK as Pi, isSpeakingMessage as Fi, publishedChunks as Ii, requiresCancel as Li, speechPlaybackReducer as Ri } from "./shared/assistant/voice/speechPlayback.js";
53
+ import { mergePersistedAssistantState as zi, resolveActiveModeSandbox as Bi, useAssistantStore as Vi } from "./shared/assistant/store.js";
54
+ import { isTurnInFlight as Hi, planAbandonedTurn as Ui, planTurnAbort as Wi } from "./shared/assistant/turnState.js";
55
+ import { isLegacyFiller as Gi, isLegacyStopped as Ki, isStageCopy as qi, stripLegacyFillerPrefix as Ji } from "./shared/assistant/legacyFiller.js";
56
+ import { getAssistantDisplayContent as Yi } from "./shared/assistant/displayContent.js";
57
+ import { elapsedSince as Xi, msUntilNextPhrase as Zi, startPhraseTicker as Qi, turnActivityCopy as $i, turnActivityStage as ea } from "./shared/assistant/turnActivity.js";
58
+ import { buildAssistantProgress as ta } from "./shared/assistant/turnProgress.js";
59
+ import { AssistantToolActivity as na, parseToolActivity as ra } from "./shared/assistant/ui/AssistantToolActivity.js";
60
+ import { countSpokenTurns as ia, spokenTurnText as aa } from "./shared/assistant/spokenTurns.js";
61
+ import { AssistantAvatar as oa } from "./shared/assistant/ui/AssistantAvatar.js";
62
+ import { AssistantSpeechProvider as sa, useAssistantSpeech as ca } from "./shared/assistant/ui/AssistantSpeechProvider.js";
63
+ import { useVoiceSession as la } from "./shared/assistant/ui/useVoiceSession.js";
64
+ import { getActorId as ua, getOrganizationId as da, getWorkspaceId as fa } from "./shared/assistant/context.js";
65
+ import { SANDBOX_READY_TTL_MS as pa, createReadinessTracker as ma, isRecentlyVerified as ha } from "./shared/assistant/sandboxReadiness.js";
66
+ import { AssistantAutoSpeakToggle as ga } from "./shared/assistant/ui/AssistantAutoSpeakToggle.js";
67
+ import { AssistantMessageAttachments as _a } from "./shared/assistant/ui/AssistantMessageAttachments.js";
68
+ import { AssistantPendingWriteCard as va } from "./shared/assistant/ui/AssistantPendingWriteCard.js";
69
+ import { AssistantLanguageMenu as ya } from "./shared/assistant/ui/AssistantLanguageMenu.js";
70
+ import { AssistantReplyLanguageSelector as ba } from "./shared/assistant/ui/AssistantReplyLanguageSelector.js";
71
+ import { AssistantSpeakButton as xa } from "./shared/assistant/ui/AssistantSpeakButton.js";
72
+ import { AssistantSpokenTurnsNotice as Sa } from "./shared/assistant/ui/AssistantSpokenTurnsNotice.js";
73
+ import { AssistantConnectSourceProvider as Ca, useAssistantConnectSource as wa } from "./shared/assistant/ui/composer/connectSource.js";
74
+ import { AssistantConnectSourceItem as Ta } from "./shared/assistant/ui/composer/AssistantConnectSourceItem.js";
75
+ import { ASSISTANT_OVERLAY_ATTR as Ea, ASSISTANT_PANEL_ATTR as Da, NO_PANEL_OVERLAY as Oa, activePanelOverlay as ka, assistantPanelOwnsEscape as Aa, escapeDismisses as ja, focusIsInsidePanel as Ma, nextPanelOverlays as Na, panelOwnsEscape as Pa } from "./shared/assistant/ui/panelOverlays.js";
76
+ import { useDropdownEscape as Fa } from "./shared/assistant/ui/useDropdownEscape.js";
77
+ import { AssistantAttachmentButton as Ia } from "./shared/assistant/ui/composer/AssistantAttachmentButton.js";
78
+ import { AssistantAttachmentChips as La } from "./shared/assistant/ui/composer/AssistantAttachmentChips.js";
79
+ import { AssistantPreviewProvider as Ra, useAssistantPreview as za } from "./shared/assistant/preview/context.js";
80
+ import { IDLE_PREVIEW_STATE as Ba, isBlankProse as Va, isRunningStatus as Ha, nextPreviewEvents as Ua } from "./shared/assistant/preview/previewTransitions.js";
81
+ import { IDLE_PREVIEW as Wa, NO_OWNER as Ga, applyPreviewEvent as Ka, createAssistantPreviewSurface as qa, currentPreviewOwner as Ja, runBelongsTo as Ya, sameOwner as Xa } from "./shared/assistant/preview/surfaceState.js";
82
+ import { createRunIdentityCache as Za, runIdentities as Qa } from "./shared/assistant/preview/runIdentity.js";
83
+ import { IDLE_ACTIVE_TAB as $a, nextActiveTab as eo, pinActiveTab as to, shouldPinOnMove as no, shouldPinOnSelect as ro, stepsFromToolActivity as io, tabForArrowKey as ao } from "./shared/assistant/preview/entity/entityPreviewState.js";
84
+ import { AssistantStepRail as oo } from "./shared/assistant/preview/entity/AssistantStepRail.js";
85
+ import { AssistantEntityPreview as so } from "./shared/assistant/preview/entity/AssistantEntityPreview.js";
86
+ import { useOverlayFocus as co } from "./shared/assistant/ui/useOverlayFocus.js";
87
+ import { REDUCED_MOTION_ATTRIBUTE as lo, REDUCED_MOTION_QUERY as uo, readReducedMotion as fo, subscribeReducedMotion as po, usePrefersReducedMotion as mo } from "./shared/assistant/ui/usePrefersReducedMotion.js";
88
+ import { useAssistantPreviewBridge as ho } from "./shared/assistant/preview/useAssistantPreviewBridge.js";
89
+ import { AssistantPreviewOverlay as go } from "./shared/assistant/preview/AssistantPreviewOverlay.js";
90
+ import { AssistantLanguageSelector as _o, FOLLOW_APP_LOCALE as vo } from "./shared/assistant/ui/composer/AssistantLanguageSelector.js";
91
+ import { ASSISTANT_MODE_META as yo, AssistantModeSelector as bo, assistantModeMeta as xo, nextModeIndex as So } from "./shared/assistant/ui/composer/AssistantModeSelector.js";
92
+ import { AssistantVoiceButton as Co } from "./shared/assistant/ui/composer/AssistantVoiceButton.js";
93
+ import { AUTO_VOICE as wo, AssistantVoiceSelector as To } from "./shared/assistant/ui/composer/AssistantVoiceSelector.js";
94
+ import { AssistantVoiceOrb as Eo } from "./shared/assistant/ui/voice/AssistantVoiceOrb.js";
95
+ import { AssistantVoiceSessionButton as Do } from "./shared/assistant/ui/voice/AssistantVoiceSessionButton.js";
96
+ import { CAPTION_SCROLL_ATTR as Oo, VoiceCaption as ko } from "./shared/assistant/ui/voice/VoiceCaption.js";
97
+ import { VoiceConversationView as Ao } from "./shared/assistant/ui/voice/VoiceConversationView.js";
98
+ import { VoiceWaveform as jo } from "./shared/assistant/ui/voice/VoiceWaveform.js";
99
+ import { VoiceStatusLine as Mo, VoiceStatusText as No } from "./shared/assistant/ui/voice/VoiceStatusText.js";
100
+ import { VoiceMiniController as Po } from "./shared/assistant/ui/voice/VoiceMiniController.js";
101
+ import { VoiceStage as Fo } from "./shared/assistant/ui/voice/VoiceStage.js";
102
+ import { VoiceTranscriptDrawer as Io } from "./shared/assistant/ui/voice/VoiceTranscriptDrawer.js";
103
+ import { downloadFile as Lo, exportConversation as Ro } from "./shared/assistant/exportConversation.js";
104
+ import { AssistantMoreMenu as zo } from "./shared/assistant/ui/AssistantMoreMenu.js";
105
+ import { AssistantHeader as Bo } from "./shared/assistant/ui/AssistantHeader.js";
106
+ import { AssistantConversationList as Vo } from "./shared/assistant/ui/AssistantConversationList.js";
107
+ import { AssistantEmptyState as Ho } from "./shared/assistant/ui/AssistantEmptyState.js";
108
+ import { AssistantTurnActivity as Uo, TurnActivityLine as Wo } from "./shared/assistant/ui/AssistantTurnActivity.js";
109
+ import { AssistantMessageItem as Go } from "./shared/assistant/ui/AssistantMessageItem.js";
110
+ import { AssistantMessageList as Ko } from "./shared/assistant/ui/AssistantMessageList.js";
111
+ import { AssistantVoiceSession as qo } from "./shared/assistant/ui/voice/AssistantVoiceSession.js";
112
+ import { useAssistantApiAccess as Jo } from "./shared/assistant/useAssistantApiAccess.js";
113
+ import { useConversationTurns as Yo } from "./shared/assistant/useConversationTurns.js";
114
+ import { isMultimodalBodyRejection as Xo, isRecoverableAssistantError as Zo } from "./shared/assistant/transportErrors.js";
115
+ import { aiCreditsUpdatedEventName as Qo, dispatchAssistantQuotaExhausted as $o, notifyAiCreditsUpdated as es } from "./shared/assistant/aiCredits.js";
116
+ import { useWorkspaceWriteAccess as ts } from "./shared/assistant/useWorkspaceWriteAccess.js";
117
+ import { extractDocumentText as ns } from "./shared/assistant/documentExtract.js";
118
+ import { useAssistantAttachments as rs } from "./shared/assistant/useAssistantAttachments.js";
119
+ import { AssistantComposer as is } from "./shared/assistant/ui/composer/AssistantComposer.js";
120
+ import { isProdRuntime as as } from "./shared/assistant/env.js";
121
+ import { useAssistantHeartbeat as os } from "./shared/assistant/useAssistantHeartbeat.js";
122
+ import { useAssistantKeyboardShortcuts as ss } from "./shared/assistant/useAssistantKeyboardShortcuts.js";
123
+ import { AssistantApiCallsConsentDialog as cs } from "./shared/assistant/ui/AssistantApiCallsConsentDialog.js";
124
+ import { AssistantChatArea as ls } from "./shared/assistant/ui/AssistantChatArea.js";
125
+ import { AIAssistantPanel as us } from "./shared/assistant/ui/AIAssistantPanel.js";
126
+ import { ASSISTANT_BOTTOM_CHROME_CLEARANCE as ds, ASSISTANT_DIALOG_SELECTOR as fs, ASSISTANT_DOCKED_DESKTOP_CLASS as ps, ASSISTANT_DOCK_WIDTH_PX as ms, ASSISTANT_DOCK_WIDTH_VAR as hs, ASSISTANT_FLOATING_DESKTOP_CLASS as gs, ASSISTANT_OVERLAY_DEFAULT_TOP_PX as _s, ASSISTANT_OVERLAY_DESKTOP_QUERY as vs, ASSISTANT_OVERLAY_TOP_VAR as ys, ASSISTANT_SHEET_BASE_CLASS as bs, ASSISTANT_SHEET_COMPACT_CLASS as xs, ASSISTANT_SHEET_EXPANDED_CLASS as Ss, ASSISTANT_TOGGLE_SHORTCUT_LABEL as Cs, aboveAssistantBottomChrome as ws, assistantOverlayClassName as Ts, assistantOverlayEscapeAction as Es, assistantOverlayKeys as Ds, assistantQuotaKindOf as Os, createAssistantNavigate as ks, isAssistantToggleShortcut as As, nextAssistantOpenState as js, publishedAssistantDockWidth as Ms, readAssistantOverlayFlag as Ns, requestedAssistantOpenState as Ps, writeAssistantOverlayFlag as Fs } from "./shared/assistant/ui/assistantOverlayState.js";
127
+ import { AssistantOverlay as Is, AssistantOverlayProvider as Ls, useAssistantDockWidth as Rs, useAssistantOverlayOrNull as zs, useAssistantQuotaExhausted as Bs } from "./shared/assistant/ui/AssistantOverlay.js";
128
+ export { vi as ADMIN_MODE_ACCESS_WAIT_MS, us as AIAssistantPanel, q as ASSISTANT_API_AUTH_STRATEGY, ds as ASSISTANT_BOTTOM_CHROME_CLEARANCE, fs as ASSISTANT_DIALOG_SELECTOR, ps as ASSISTANT_DOCKED_DESKTOP_CLASS, ms as ASSISTANT_DOCK_WIDTH_PX, hs as ASSISTANT_DOCK_WIDTH_VAR, gs as ASSISTANT_FLOATING_DESKTOP_CLASS, pi as ASSISTANT_I18N_COMPUTED_COPY, mi as ASSISTANT_I18N_LITERAL_COPY, hi as ASSISTANT_I18N_MANIFEST, tr as ASSISTANT_LANGUAGES, L as ASSISTANT_MODE_FALLBACK_LABELS, R as ASSISTANT_MODE_IDS, yo as ASSISTANT_MODE_META, Ea as ASSISTANT_OVERLAY_ATTR, _s as ASSISTANT_OVERLAY_DEFAULT_TOP_PX, vs as ASSISTANT_OVERLAY_DESKTOP_QUERY, ys as ASSISTANT_OVERLAY_TOP_VAR, Da as ASSISTANT_PANEL_ATTR, bs as ASSISTANT_SHEET_BASE_CLASS, xs as ASSISTANT_SHEET_COMPACT_CLASS, Ss as ASSISTANT_SHEET_EXPANDED_CLASS, Cs as ASSISTANT_TOGGLE_SHORTCUT_LABEL, jr as ATTACHMENT_ACCEPT, ui as ATTACHMENT_SOURCES, wo as AUTO_VOICE, cs as AssistantApiCallsConsentDialog, Ia as AssistantAttachmentButton, La as AssistantAttachmentChips, ga as AssistantAutoSpeakToggle, oa as AssistantAvatar, ls as AssistantChatArea, is as AssistantComposer, Ta as AssistantConnectSourceItem, Ca as AssistantConnectSourceProvider, Vo as AssistantConversationList, Ho as AssistantEmptyState, so as AssistantEntityPreview, Bo as AssistantHeader, s as AssistantI18nProvider, ya as AssistantLanguageMenu, _o as AssistantLanguageSelector, f as AssistantMarkdownImage, h as AssistantMarkdownRenderer, _a as AssistantMessageAttachments, Go as AssistantMessageItem, Ko as AssistantMessageList, bo as AssistantModeSelector, zo as AssistantMoreMenu, g as AssistantNavigateProvider, Is as AssistantOverlay, Ls as AssistantOverlayProvider, va as AssistantPendingWriteCard, go as AssistantPreviewOverlay, Ra as AssistantPreviewProvider, t as AssistantProductProvider, ba as AssistantReplyLanguageSelector, ke as AssistantRuntimeManager, xa as AssistantSpeakButton, sa as AssistantSpeechProvider, Sa as AssistantSpokenTurnsNotice, oo as AssistantStepRail, na as AssistantToolActivity, Uo as AssistantTurnActivity, Co as AssistantVoiceButton, Eo as AssistantVoiceOrb, To as AssistantVoiceSelector, qo as AssistantVoiceSession, Do as AssistantVoiceSessionButton, Mr as AttachmentRejectedError, dr as BOILERPLATE_PAGE_SHARE, He as BUILT_IN_MODE_CAPABILITIES, Oo as CAPTION_SCROLL_ATTR, O as CHECK_AI_CREDITS, k as CREATE_SANDBOX, Pn as DEFAULT_SPEAKABLE_LABELS, nr as DEFAULT_SPEECH_RATE, Xe as DEFAULT_STREAM_BUDGET_MS, yn as ENDPOINT_GRACE_MS, A as EXTEND_SANDBOX_TTL, vo as FOLLOW_APP_LOCALE, j as GET_ACTIVE_SANDBOXES, M as GET_SANDBOX, mt as HOSTED_DISABLE_MS, ht as HOSTED_TTS_MAX_CHARS, ut as HOSTED_TTS_TIER, dt as HOSTED_VOICES, Ot as HOSTED_VOICE_RANK, $a as IDLE_ACTIVE_TAB, Pi as IDLE_PLAYBACK, Wa as IDLE_PREVIEW, Ba as IDLE_PREVIEW_STATE, mn as IDLE_ROTATION_CLOCK, Ze as INCOMPLETE_TURN_NOTICES, bn as INITIAL_SESSION, Nr as INLINE_IMAGE_MAX_DIM, Pr as INLINE_IMAGE_QUALITY, xn as INTERRUPT_MAX_MS, Sn as INTERRUPT_MIN_MS, Ci as LEGACY_WRITE_CONSENT_KEY, Ue as MAX_ASSISTANT_STREAM_BUDGET_MS, Fr as MAX_ATTACHMENTS, fr as MAX_BOILERPLATE_LINE_CHARS, pr as MAX_EXTRACTED_CHARS, Ir as MAX_FILE_BYTES, Lr as MAX_INLINE_CHARS_PER_FILE, Rr as MAX_INLINE_CHARS_TOTAL, lr as MAX_INLINE_IMAGE_BASE64_BYTES, zr as MAX_INLINE_IMAGE_BASE64_CHARS, Br as MAX_INLINE_IMAGE_PARTS, Vr as MAX_INLINE_TURN_BODY_BYTES, mr as MAX_PDF_PAGES_SCANNED, ur as MAX_REQUEST_BODY_BYTES, Fn as MAX_SPEAKABLE_CHARS, In as MAX_SPOKEN_TABLE_ROWS, Hr as MAX_TURN_BODY_BYTES, Kn as MINI_CAPTION_BUDGET, hr as MIN_PAGE_TEXT_CHARS, gr as MIN_TEXT_PAGE_SHARE, Ga as NO_OWNER, Oa as NO_PANEL_OVERLAY, tn as PHRASE_ROTATE_MS, Jn as POLL_FAST_MS, Yn as POLL_FAST_UNTIL_MS, Xn as POLL_SLOW_MS, Zn as POLL_STEADY_MS, Qn as POLL_STEADY_UNTIL_MS, Wn as PREVIEW_LANGUAGES, V as PRODUCT_ASSISTANT_MODE_ID_MAX_LENGTH, H as PRODUCT_ASSISTANT_MODE_ID_PATTERN, Ur as PROMPT_ENVELOPE_RESERVE_BYTES, Wr as PROVIDER_READABLE_FILE_MEDIA_TYPES, N as PROXY_SANDBOX_REQUEST, lo as REDUCED_MOTION_ATTRIBUTE, uo as REDUCED_MOTION_QUERY, P as REPORT_AI_TOKEN_USAGE, pa as SANDBOX_READY_TTL_MS, Cn as SILENCE_SUBMIT_MS, gt as SPEAKING_RATE_MAX, _t as SPEAKING_RATE_MAX_STREAMING, vt as SPEAKING_RATE_MAX_SYNC, yt as SPEAKING_RATE_MIN, Ln as SPEECH_CHUNK_CHARS, Rn as SPEECH_CHUNK_CJK_CHARS, kt as SPEECH_LANG, Ai as SPOKEN_LABEL_LANGUAGES, nn as STAGE_COPY, F as STOP_ASSISTANT_SANDBOX, Qe as STREAM_BUDGET_MS, wi as TAKE_ACTION_ENGLISH, rn as THINKING_PHRASES, Gr as TURN_BODY_HEADROOM_BYTES, Wo as TurnActivityLine, We as UNAVAILABLE_MODE_REFUSAL, Ge as UNDECLARED_MODE_CAPABILITIES, At as VOICE_LIST_TIMEOUT_MS, ln as VOICE_MUTED_LABEL, un as VOICE_THINKING_LABEL, ko as VoiceCaption, Ao as VoiceConversationView, Po as VoiceMiniController, Fo as VoiceStage, Mo as VoiceStatusLine, No as VoiceStatusText, Io as VoiceTranscriptDrawer, jo as VoiceWaveform, I as WAIT_FOR_SANDBOX_RUNNING, ie as abortAssistantTurn, ws as aboveAssistantBottomChrome, ka as activePanelOverlay, Ke as adminOnlyModeSendRefusal, yi as adminOnlyModeSendRefusalAfterAccess, hn as advanceRotationClock, Qo as aiCreditsUpdatedEventName, Ka as applyPreviewEvent, ae as approvePendingWrite, gi as assistantI18nSeedCopy, z as assistantModeFallbackLabel, _i as assistantModeI18nCopy, xo as assistantModeMeta, Ts as assistantOverlayClassName, Es as assistantOverlayEscapeAction, Ds as assistantOverlayKeys, Aa as assistantPanelOwnsEscape, Os as assistantQuotaKindOf, _ as assistantRoutePath, c as assistantTranslationKey, v as assistantUrlTransform, di as availableAttachmentSources, bt as base64ToBytes, y as browserShouldHandle, lt as browserSpeechEngine, ta as buildAssistantProgress, oe as buildAssistantSandboxEnv, Kr as buildAttachmentPromptBlock, jn as buildContinuedFromVoiceNote, Ae as buildProgress, qr as buildPromptParts, se as buildPromptRequestBody, Jr as buildPromptWithAttachments, xt as buildRequest, E as buildSandboxContextInput, Mn as buildVoiceTranscriptMarkdown, U as builtInModeExtendedBy, nt as chatTurns, ce as checkAssistantAiCredits, zn as chunkForSpeech, b as classifyAssistantHref, Yr as classifyAttachment, St as classifyHttpFailure, S as classifyQuotaError, _r as columnLetterToIndex, dn as composeVoiceStatus, Ut as configureSpeechEngine, Bn as containsCjk, d as copyToClipboard, Xr as countInlineImageCandidates, Zr as countInlinedImageParts, ia as countSpokenTurns, bi as createAdminModeAccessGate, ks as createAssistantNavigate, qa as createAssistantPreviewSurface, le as createAssistantSandbox, ue as createAssistantSession, Dt as createHostedTtsEngine, ma as createReadinessTracker, Ht as createRoutingSpeechEngine, Za as createRunIdentityCache, Be as createSandboxAssistantTransport, Wt as createSpeechEngines, Ja as currentPreviewOwner, W as declareAssistantMode, Ct as decodeAudioResponse, vr as decodeXmlEntities, C as describeQuotaError, Qr as detectDocumentFormat, Mi as detectScriptLocale, fi as deviceHasCamera, wt as disableDurationMs, $o as dispatchAssistantQuotaExhausted, yr as docxXmlToText, de as downloadAssistantArtifact, Lo as downloadFile, Xi as elapsedSince, ja as escapeDismisses, $r as estimateTurnBodyBytes, D as executeSandboxGraphQL, Ro as exportConversation, fe as extendAssistantSandboxTTL, ns as extractDocumentText, rr as findAssistantLanguage, qe as findAssistantModeConfig, pe as findExistingSandbox, sr as findPendingWrite, br as fitPdfPages, Ma as focusIsInsidePanel, ei as formatBytes, xr as formatPageRanges, me as forwardsUserTokensToSandbox, ua as getActorId, he as getAssistantArtifacts, Yi as getAssistantDisplayContent, je as getAssistantMedia, ge as getAssistantMessages, _e as getAssistantSession, ve as getAssistantStreamAccess, Me as getAssistantText, ti as getAttachmentSendBlocker, ee as getCapability, ni as getExtension, J as getImageForMode, Y as getImageTagForMode, da as getOrganizationId, Ne as getRawMessageCreatedAt, X as getResourcesForMode, Z as getSandboxImageRegistry, ri as getSendableAttachments, Gt as getSpeechEngine, Pe as getToolProgress, fa as getWorkspaceId, rt as groupBySession, it as groupConsecutiveBySession, ii as hasAttachmentWorkInFlight, ft as hostedLocaleFor, pt as hostedSupportsLanguage, p as imageHostLabel, $e as incompleteTurnNotice, G as isAssistantModeId, As as isAssistantToggleShortcut, Va as isBlankProse, B as isBuiltInAssistantMode, wn as isCapturing, Tn as isEcho, jt as isHostedVoice, Gi as isLegacyFiller, Ki as isLegacyStopped, Sr as isMostlyImagePages, Xo as isMultimodalBodyRejection, as as isProdRuntime, K as isProductAssistantModeId, ai as isProviderReadableFilePart, w as isQuotaExhaustedError, Fe as isReapedSandboxConnectionError, ha as isRecentlyVerified, Ie as isRecoverable, Zo as isRecoverableAssistantError, m as isRemoteImageSrc, Ha as isRunningStatus, Fi as isSpeakingMessage, Mt as isSpeechBlocked, qi as isStageCopy, En as isSubmittable, Hi as isTurnInFlight, te as isUnknownFieldError, at as isVoiceTurn, Ti as isWriteModeAcknowledged, Cr as joinSheets, Nt as languageDisplayName, Le as mapSessionToHistory, ne as markSupported, re as markUnsupported, Re as mergeMessagesById, zi as mergePersistedAssistantState, Yt as micIsInterrupt, ye as modeRequiresConfirmWrites, Zi as msUntilNextPhrase, eo as nextActiveTab, js as nextAssistantOpenState, So as nextModeIndex, Na as nextPanelOverlays, Ua as nextPreviewEvents, Pt as normalizeLangTag, es as notifyAiCreditsUpdated, Dn as orbMode, wr as pageMarker, Pa as panelOwnsEscape, cr as parseConfirmationRefusal, oi as parseDataUrl, Tr as parseSharedStrings, ra as parseToolActivity, Er as parseWorkbookSheets, Dr as pdfTextItemsToPage, to as pinActiveTab, Ui as planAbandonedTurn, On as planReplyConsumption, Wi as planTurnAbort, $n as pollDelayMs, Ft as primaryLanguageSubtag, Ms as publishedAssistantDockWidth, Ii as publishedChunks, T as quotaExhaustedEventName, Ns as readAssistantOverlayFlag, fo as readReducedMotion, Kt as readSpeechEngineConfig, be as releaseSupersededAssistantSandboxes, ar as replyFollowsInput, xe as reportAssistantAiTokenUsage, Ps as requestedAssistantOpenState, Li as requiresCancel, qt as resetSpeechEngine, Bi as resolveActiveModeSandbox, ir as resolveAssistantLanguage, Je as resolveAssistantModeCapabilities, xi as resolveAssistantSendModeAfterAccess, or as resolveLanguagePair, n as resolveModeConfig, Q as resolveSandboxAssistantMode, Ni as resolveSpeechLocale, Ei as restoreAcknowledgedWriteModes, gn as rotationElapsedMs, Ya as runBelongsTo, Qa as runIdentities, Xa as sameOwner, $ as sandboxBaseModeFor, ze as sanitize, Se as selectExistingAssistantSandbox, Ce as selectSupersededAssistantSandboxes, It as selectVoiceForLocale, we as sendAssistantPromptAsync, Te as sendHeartbeat, Or as sheetXmlToRows, Tt as shouldDisableEngine, no as shouldPinOnMove, ro as shouldPinOnSelect, qn as showPreviousChunk, Xt as showsAssistantCaption, Zt as showsUserCaption, Vn as speakableEmail, Lt as speechGate, ji as speechLabelsFor, Rt as speechLangForLocale, Ri as speechPlaybackReducer, Et as splitForVendor, Hn as splitTableRow, kn as spokenSoFar, aa as spokenTurnText, an as stageText, Qi as startPhraseTicker, _n as startRotationTicker, on as statusStageCopy, io as stepsFromToolActivity, Ee as stopReapedAssistantSandbox, et as streamBudgetMs, Ji as stripLegacyFillerPrefix, po as subscribeReducedMotion, Jt as subscribeSpeechEngine, kr as summarisePageText, vn as syncRotationClock, ao as tabForArrowKey, sn as thinkingPhrase, cn as thinkingPhraseEntry, er as toCaptionText, si as toMessageAttachment, Un as toSpeakableText, ci as truncateForInline, Ar as truncatePagesForInline, $i as turnActivityCopy, ea as turnActivityStage, Ye as unofferedModeSendRefusal, Si as unofferedModeSendRefusalAfterAccess, Jo as useAssistantApiAccess, rs as useAssistantAttachments, wa as useAssistantConnectSource, Rs as useAssistantDockWidth, os as useAssistantHeartbeat, l as useAssistantI18nNamespace, ss as useAssistantKeyboardShortcuts, x as useAssistantNavigate, zs as useAssistantOverlayOrNull, r as useAssistantPageLabel, za as useAssistantPreview, ho as useAssistantPreviewBridge, i as useAssistantProduct, a as useAssistantProductOrNull, Bs as useAssistantQuotaExhausted, ca as useAssistantSpeech, o as useAssistantStorageFolders, Vi as useAssistantStore, u as useAssistantTr, Yo as useConversationTurns, Fa as useDropdownEscape, co as useOverlayFocus, mo as usePrefersReducedMotion, Ve as useSandboxAssistantTransport, e as useVoiceInput, la as useVoiceSession, ts as useWorkspaceWriteAccess, li as validateFile, zt as voiceAvailability, ot as voiceMarker, Gn as voicePreviewText, Bt as voiceQualityRank, st as voiceSessionIdOf, An as voiceSessionReducer, Qt as voiceStageState, fn as voiceStatusParts, pn as voiceStatusSuffix, Nn as voiceTranscriptFilename, ct as voiceTurnsOnly, Vt as voicesForLocale, De as waitForAssistantServiceReady, Oe as waitForSandboxRunning, $t as waveformIsActive, en as waveformIsSettled, tt as withIncompleteTurnNotice, Di as withWriteModeAcknowledged, Fs as writeAssistantOverlayFlag, Oi as writeModeConsentCopy, ki as writeModeSendRefusal };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/fe-libs",
3
- "version": "2026.919.1",
3
+ "version": "2026.920.1",
4
4
  "description": "Burdenoff frontend primitives and domain libraries",
5
5
  "type": "module",
6
6
  "bin": {