@arbidocs/react 0.5.82 → 0.5.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +25 -0
  2. package/dist/artifacts/index.cjs +9 -9
  3. package/dist/artifacts/index.js +3 -3
  4. package/dist/calls/livekit/index.cjs +48 -48
  5. package/dist/calls/livekit/index.js +3 -3
  6. package/dist/{chunk-5N3UFEXE.cjs → chunk-2Y2WOIHH.cjs} +31 -31
  7. package/dist/{chunk-5N3UFEXE.cjs.map → chunk-2Y2WOIHH.cjs.map} +1 -1
  8. package/dist/{chunk-OR6B7IL2.js → chunk-47YVW3J4.js} +3 -3
  9. package/dist/{chunk-OR6B7IL2.js.map → chunk-47YVW3J4.js.map} +1 -1
  10. package/dist/{chunk-RW3URTNE.cjs → chunk-E7VD5WNY.cjs} +25 -25
  11. package/dist/{chunk-RW3URTNE.cjs.map → chunk-E7VD5WNY.cjs.map} +1 -1
  12. package/dist/{chunk-5UJ4ZKJN.js → chunk-JT7PN7JH.js} +4 -4
  13. package/dist/{chunk-5UJ4ZKJN.js.map → chunk-JT7PN7JH.js.map} +1 -1
  14. package/dist/{chunk-A5BJZ4ZN.cjs → chunk-LUDIYWT7.cjs} +22 -22
  15. package/dist/{chunk-A5BJZ4ZN.cjs.map → chunk-LUDIYWT7.cjs.map} +1 -1
  16. package/dist/{chunk-XQUC25ME.cjs → chunk-PXWKJI4K.cjs} +17 -24
  17. package/dist/chunk-PXWKJI4K.cjs.map +1 -0
  18. package/dist/{chunk-5IN5OGBT.cjs → chunk-Q6U7ALNV.cjs} +16 -16
  19. package/dist/{chunk-5IN5OGBT.cjs.map → chunk-Q6U7ALNV.cjs.map} +1 -1
  20. package/dist/{chunk-QEVM3F5X.cjs → chunk-TAVS54EN.cjs} +4 -4
  21. package/dist/{chunk-QEVM3F5X.cjs.map → chunk-TAVS54EN.cjs.map} +1 -1
  22. package/dist/{chunk-YJEZEPUB.js → chunk-VGAA7AFS.js} +3 -3
  23. package/dist/{chunk-YJEZEPUB.js.map → chunk-VGAA7AFS.js.map} +1 -1
  24. package/dist/{chunk-5YGUBXXH.cjs → chunk-VGMMK5OM.cjs} +2 -2
  25. package/dist/chunk-VGMMK5OM.cjs.map +1 -0
  26. package/dist/{chunk-2Y6LJNWA.js → chunk-VGO77X5U.js} +2 -2
  27. package/dist/chunk-VGO77X5U.js.map +1 -0
  28. package/dist/{chunk-RXPBHHX2.js → chunk-WQY3RQ6G.js} +4 -4
  29. package/dist/{chunk-RXPBHHX2.js.map → chunk-WQY3RQ6G.js.map} +1 -1
  30. package/dist/{chunk-ZDTOJVPP.js → chunk-XAEVT7ZM.js} +17 -24
  31. package/dist/chunk-XAEVT7ZM.js.map +1 -0
  32. package/dist/{chunk-CQYJQWJY.js → chunk-XPLD4LFC.js} +3 -3
  33. package/dist/{chunk-CQYJQWJY.js.map → chunk-XPLD4LFC.js.map} +1 -1
  34. package/dist/document-tools/core.cjs +99 -99
  35. package/dist/document-tools/core.js +3 -3
  36. package/dist/document-tools/index.cjs +101 -101
  37. package/dist/document-tools/index.js +4 -4
  38. package/dist/index.cjs +1184 -1153
  39. package/dist/index.cjs.map +1 -1
  40. package/dist/{index.d-BTbjugKS.d.ts → index.d-BDcwpFVa.d.cts} +73 -72
  41. package/dist/{index.d-BTbjugKS.d.cts → index.d-BDcwpFVa.d.ts} +73 -72
  42. package/dist/index.d.cts +75 -34
  43. package/dist/index.d.ts +75 -34
  44. package/dist/index.js +126 -100
  45. package/dist/index.js.map +1 -1
  46. package/dist/ui/index.cjs +148 -148
  47. package/dist/ui/index.d.cts +1 -1
  48. package/dist/ui/index.d.ts +1 -1
  49. package/dist/ui/index.js +1 -1
  50. package/dist/viewers/index.cjs +2 -2
  51. package/dist/viewers/index.js +1 -1
  52. package/package.json +3 -3
  53. package/dist/chunk-2Y6LJNWA.js.map +0 -1
  54. package/dist/chunk-5YGUBXXH.cjs.map +0 -1
  55. package/dist/chunk-XQUC25ME.cjs.map +0 -1
  56. package/dist/chunk-ZDTOJVPP.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,15 +1,15 @@
1
1
  import { AudioViewer, ImageViewer, VideoViewer } from './chunk-HDCRPPBW.js';
2
- import { useUserSettings, invalidateConversationLists, patchConversation, invalidateConversationDetails, removeConversationFromLists, addConversationToList, findConversation, isConversationShared, patchConversationList, useFeature, useAccountClient, useUpdateUserSettings, myChatId, upsertChat, appendToThread, dropFromThread, deleteChatMessage, removeChat, getOpenChat, cachedChat, applyChatEvent, applyCallEvent } from './chunk-RXPBHHX2.js';
3
- export { AUDIENCE_CHOICES, CALL_CAPTION_TOPIC, CALL_CHAT_MAX_CHARS, CALL_CHAT_TOPIC, CALL_MODERATION_TOPIC, CALL_RECORDING_TOPIC, CALL_TRANSCRIPTION_TOPIC, CALL_WEBINAR_TOPIC, CAPTION_MAX_CHARS, COMPOSITE_AUDIO_BITS_PER_SECOND, COMPOSITE_VIDEO_BITS_PER_SECOND, DEFAULT_JOIN_CHOICES, EMPTY_CALL_SESSION, EXPORT_SAMPLE_RATE, HISTORY_LIMIT, LIVE_SEGMENTER, MAX_AVATAR_FILE_BYTES, MUTED_DEDUPE_MS, PLAYBACK_LOOKAHEAD_MS, READ_ONLY_MEETING_TEXT, RECORDING_CHUNK_MS, RECORDING_SEGMENTER, SEGMENT_FRAME_MS, SEGMENT_ID_PATTERN, SEGMENT_PRE_ROLL_MS, SHORT_PIECE_MERGE_GAP_MS, SPEAKER_AUDIO_BITS_PER_SECOND, TrackUploader, UPLOAD_ATTEMPTS, UPLOAD_BACKOFF_MS, acceptRing, addConversationToList, appendToThread, applyAgentDmStatus, applyCallEvent, applyChatEvent, applyChatMessage, applyChatRead, applyChatUpdated, arbiAccountClient, buildMeetingChatBody, cachedChat, cachedChats, callLink, callMemberKeys, callSession, chatByExtId, chatHasLiveCall, chatLiveCallId, chatTranscriptRef, clearMeetingChatCache, clearTrackUploaders, clockTime, compositeFiles, compositeTrack, conversationKeyForCall, createLocalFeatureStore, createMutedNotifier, createTrackCutter, cutAtPauses, declineRing, decodeCallChatPacket, decodeCaptionPacket, decodeMono16k, decryptPart, encodeCallChatPacket, encodeCaptionPacket, encodeWav, encryptPart, ensureMeetingChat, entitlementRefusal, extensionFor, fetchPart, fileSafe, findConversation, floatToWav, formatTranscriptMarkdown, getOpenChat, hasRecordingTranscript, invalidateCall, invalidateConversationDetails, invalidateConversationLists, isConversationListKey, isConversationShared, isRecordingOver, isRecordingSegmentId, isRetryable, isWorkspaceGuestOf, joinFromPreJoin, knownMeetingChat, loadMeetingHistory, markRejoining, meetingChatRefFrom, meetingRefForCall, mergeChatLines, mutedNoticeFromEvent, mutedNoticeFromPacket, mutedNoticeText, myChatId, newPacketId, newSegmentId, newTrackKey, nextSeqAfter, onCallEvent, openCall, openQuestion, openRecording, parseWebinarPacket, partKey, partOffsetMs, partsDue, patchConversation, patchConversationList, persistMeetingMessage, persistTranscriptSegment, playheadAt, postRecordingDocsToThread, postTranscriptToThread, readLocalFeature, recordingFiles, recordingWindowsOf, rejoinAsAudience, removeChat, removeConversationFromLists, resetCallSession, resolveMeetingChat, saveRecordingFilesToThread, schedulePart, sealQuestionText, serverCallsExperimental, setOpenChat, sortTranscriptMessages, sortedParts, speakerTracks, speakerWav, splitIntoFiles, standalone, startChatCall, startContactsCall, startDmCall, startThreadCall, startsMediaFile, storeTranscriptSegment, stripSpeakerPrefix, supersedeLiveTranscript, supersededTranscriptLines, threadHasLiveCall, threadLiveCallId, threadTranscriptLines, threadTranscriptRef, threadTranscriptText, timelineDurationMs, timelineOf, toProfileView, trackUploaderFor, transcribeRecording, transcriptPersistRole, transcriptSegmentOf, unwrapTrackKey, upsertChat, useAccountClient, useAvatarCrop, useCall, useCallInviteLinks, useCallRecording, useCallRecordings, useCallSession, useCallTranscriptionAvailable, useCallsConfig, useCallsEnabled, useCanHostCalls, useEntitlements, useFeature, useFeatureSwitch, useInvalidateEntitlements, useIsEntitled, useMeetingReadOnly, useNameEditor, useOpenCallMeetingChat, useProfile, useRecordingActions, useRecordingWindows, useRevokeCallInviteLink, useSaveToThread, useServerCallsEnabled, useServerCallsExperimental, useUpdateProfile, useUpdateUserSettings, useUserSettings, wrapTrackKey, writeSamples } from './chunk-RXPBHHX2.js';
4
- import { replayableTagMutations, inWorkspace, primeOnClient, patchDocuments, setCachedDocument, adjustTagCounts, patchCachedDocument, FINISHED_DOCUMENT_STATUSES, refreshDocuments, getCachedDocuments, useArbiWsStore, IN_FLIGHT_DOCUMENT_STATUSES, useCapturingWorkspace, QUEUED_WRITE_RETRY, isWorkspaceUnavailable, primeOnArbi, forgetDocuments, useDocument, useSimilarDocuments, SIMILARITY_THRESHOLD, QUEUED_WRITE_BLOCKED_MESSAGE, isBlockedOnWorkspace, useDocuments, finishEntityExtraction } from './chunk-YJEZEPUB.js';
5
- export { DISMISSED_TASK_TTL_MS, DOCUMENTS_FIRST_PAGE_MEASURE, DOCUMENTS_FIRST_PAGE_SIZE, DOCUMENTS_PAGE_SIZE, FINISHED_DOCUMENT_STATUSES, IN_FLIGHT_DOCUMENT_STATUSES, SIMILARITY_THRESHOLD, adjustTagCounts, dropTagFromCachedDocuments, finishEntityExtraction, forgetDocuments, getCachedDocuments, invalidateTagData, invalidateTagTables, isDocumentsLoading, isRowNewer, isStaleTaskUpdate, patchCachedDocument, patchDocuments, patchWorkspaceTags, refreshDocuments, resolveDocumentStatus, setCachedDocument, settledByRows, startEntityExtraction, stopDocumentsLoading, subscribeDocumentRows, upsertDocuments, useArbiWsStore, useCreateTag, useDeleteTag, useDocument, useDocuments, useDocumentsById, useDocumentsLoading, useEntityExtractionDocIds, useExtractEntities, useInvalidateTagData, useIsCreatingTag, useRefreshDocuments, useSetTagValues, useSimilarDocuments, useTagKindSchema, useUpdateTag, useUpdateTagKindSchema } from './chunk-YJEZEPUB.js';
6
- import { useArbiSessionState, useArbiSession, useWorkspaces, useConversations, useConfig, useArbiSessionStore, useAvailableModels, useParsedDocument, useTags, selectDraft, useConversationThreads, createArbiSessionStore, useTransientView, useProjects, useAgents, useAssistantQuery, useActivity, queuedMessages, MIN_QUEUED_MESSAGE_VISIBILITY_MS } from './chunk-CQYJQWJY.js';
7
- export { DEFAULT_DOCUMENT_VIEWER_STATE, DOCUMENT_VIEWER_PANEL, EMPTY_CHAT_STATE, EMPTY_DOCUMENT_STATE, EMPTY_SESSION_STATE, MAX_THREAD_TABS, MIN_QUEUED_MESSAGE_VISIBILITY_MS, PROJECT_CREATION_DENIED_REASON, WORKSPACE_LAST_OPENED_KEY, WORKSPACE_STORAGE_KEY, agentControl, browserWorkspaceStorage, clearSealedDrafts, closePanelIn, composeArbiSessionStore, conversationKey, createArbiChatStore, createArbiDocumentSessionStore, createArbiLayoutStore, createArbiSessionStore, createArbiWorkspaceStore, createDebouncedWriter, createSealedDraftStorage, createStoragePersist, createUiStateStorage, defaultLayoutState, dmTabId, flushOnPageExit, isPanelOpen, isUsageMetered, layoutActionsOf, nextViewingDocument, openPanelIn, panelPlace, parseSavedChat, parseSavedDocuments, parseSavedLayout, queuedMessages, readWorkspaceLastOpened, restoreLayout, restoreSavedDocuments, savedChatOf, savedDocumentsOf, savedLayoutOf, selectDraft, selectIsGenerating, selectViewingDocumentId, threadTabId, useActivity, useAgents, useArbiSession, useArbiSessionState, useArbiSessionStore, useAssistantQuery, useAvailableModels, useBoxRole, useBuiltinCommands, useCanCreateProjects, useConfig, useConfigs, useConversationThreads, useConversations, useCurrentUser, useDeleteAgents, useDocumentVersionList, useFirmPool, useHealth, useMessageDetails, useParsedDocument, useProjectInvoices, useProjectUsage, useProjects, useProjectsUsage, useSessionPageTab, useSessionView, useSignedInSession, useTags, useThumbnails, useTopUpFirmPool, useTransientView, useUserUsageToday, useWorkspaceActivity, useWorkspaces } from './chunk-CQYJQWJY.js';
8
- import { fetchDocumentFile, downloadBlob, fetchMarkupPdf, fetchDocumentPdf } from './chunk-OR6B7IL2.js';
2
+ import { useUserSettings, invalidateConversationLists, patchConversation, invalidateConversationDetails, removeConversationFromLists, addConversationToList, findConversation, isConversationShared, patchConversationList, useFeature, useAccountClient, useUpdateUserSettings, myChatId, upsertChat, appendToThread, dropFromThread, deleteChatMessage, removeChat, getOpenChat, cachedChat, applyChatEvent, applyCallEvent } from './chunk-WQY3RQ6G.js';
3
+ export { AUDIENCE_CHOICES, CALL_CAPTION_TOPIC, CALL_CHAT_MAX_CHARS, CALL_CHAT_TOPIC, CALL_MODERATION_TOPIC, CALL_RECORDING_TOPIC, CALL_TRANSCRIPTION_TOPIC, CALL_WEBINAR_TOPIC, CAPTION_MAX_CHARS, COMPOSITE_AUDIO_BITS_PER_SECOND, COMPOSITE_VIDEO_BITS_PER_SECOND, DEFAULT_JOIN_CHOICES, EMPTY_CALL_SESSION, EXPORT_SAMPLE_RATE, HISTORY_LIMIT, LIVE_SEGMENTER, MAX_AVATAR_FILE_BYTES, MUTED_DEDUPE_MS, PLAYBACK_LOOKAHEAD_MS, READ_ONLY_MEETING_TEXT, RECORDING_CHUNK_MS, RECORDING_SEGMENTER, SEGMENT_FRAME_MS, SEGMENT_ID_PATTERN, SEGMENT_PRE_ROLL_MS, SHORT_PIECE_MERGE_GAP_MS, SPEAKER_AUDIO_BITS_PER_SECOND, TrackUploader, UPLOAD_ATTEMPTS, UPLOAD_BACKOFF_MS, acceptRing, addConversationToList, appendToThread, applyAgentDmStatus, applyCallEvent, applyChatEvent, applyChatMessage, applyChatRead, applyChatUpdated, arbiAccountClient, buildMeetingChatBody, cachedChat, cachedChats, callLink, callMemberKeys, callSession, chatByExtId, chatHasLiveCall, chatLiveCallId, chatTranscriptRef, clearMeetingChatCache, clearTrackUploaders, clockTime, compositeFiles, compositeTrack, conversationKeyForCall, createLocalFeatureStore, createMutedNotifier, createTrackCutter, cutAtPauses, declineRing, decodeCallChatPacket, decodeCaptionPacket, decodeMono16k, decryptPart, encodeCallChatPacket, encodeCaptionPacket, encodeWav, encryptPart, ensureMeetingChat, entitlementRefusal, extensionFor, fetchPart, fileSafe, findConversation, floatToWav, formatTranscriptMarkdown, getOpenChat, hasRecordingTranscript, invalidateCall, invalidateConversationDetails, invalidateConversationLists, isConversationListKey, isConversationShared, isRecordingOver, isRecordingSegmentId, isRetryable, isWorkspaceGuestOf, joinFromPreJoin, knownMeetingChat, loadMeetingHistory, markRejoining, meetingChatRefFrom, meetingRefForCall, mergeChatLines, mutedNoticeFromEvent, mutedNoticeFromPacket, mutedNoticeText, myChatId, newPacketId, newSegmentId, newTrackKey, nextSeqAfter, onCallEvent, openCall, openQuestion, openRecording, parseWebinarPacket, partKey, partOffsetMs, partsDue, patchConversation, patchConversationList, persistMeetingMessage, persistTranscriptSegment, playheadAt, postRecordingDocsToThread, postTranscriptToThread, readLocalFeature, recordingFiles, recordingWindowsOf, rejoinAsAudience, removeChat, removeConversationFromLists, resetCallSession, resolveMeetingChat, saveRecordingFilesToThread, schedulePart, sealQuestionText, serverCallsExperimental, setOpenChat, sortTranscriptMessages, sortedParts, speakerTracks, speakerWav, splitIntoFiles, standalone, startChatCall, startContactsCall, startDmCall, startThreadCall, startsMediaFile, storeTranscriptSegment, stripSpeakerPrefix, supersedeLiveTranscript, supersededTranscriptLines, threadHasLiveCall, threadLiveCallId, threadTranscriptLines, threadTranscriptRef, threadTranscriptText, timelineDurationMs, timelineOf, toProfileView, trackUploaderFor, transcribeRecording, transcriptPersistRole, transcriptSegmentOf, unwrapTrackKey, upsertChat, useAccountClient, useAvatarCrop, useCall, useCallInviteLinks, useCallRecording, useCallRecordings, useCallSession, useCallTranscriptionAvailable, useCallsConfig, useCallsEnabled, useCanHostCalls, useEntitlements, useFeature, useFeatureSwitch, useInvalidateEntitlements, useIsEntitled, useMeetingReadOnly, useNameEditor, useOpenCallMeetingChat, useProfile, useRecordingActions, useRecordingWindows, useRevokeCallInviteLink, useSaveToThread, useServerCallsEnabled, useServerCallsExperimental, useUpdateProfile, useUpdateUserSettings, useUserSettings, wrapTrackKey, writeSamples } from './chunk-WQY3RQ6G.js';
4
+ import { replayableTagMutations, inWorkspace, primeOnClient, patchDocuments, setCachedDocument, adjustTagCounts, patchCachedDocument, FINISHED_DOCUMENT_STATUSES, refreshDocuments, getCachedDocuments, useArbiWsStore, IN_FLIGHT_DOCUMENT_STATUSES, useCapturingWorkspace, QUEUED_WRITE_RETRY, isWorkspaceUnavailable, primeOnArbi, forgetDocuments, useDocument, useSimilarDocuments, SIMILARITY_THRESHOLD, QUEUED_WRITE_BLOCKED_MESSAGE, isBlockedOnWorkspace, useDocuments, finishEntityExtraction } from './chunk-VGAA7AFS.js';
5
+ export { DISMISSED_TASK_TTL_MS, DOCUMENTS_FIRST_PAGE_MEASURE, DOCUMENTS_FIRST_PAGE_SIZE, DOCUMENTS_PAGE_SIZE, FINISHED_DOCUMENT_STATUSES, IN_FLIGHT_DOCUMENT_STATUSES, SIMILARITY_THRESHOLD, adjustTagCounts, dropTagFromCachedDocuments, finishEntityExtraction, forgetDocuments, getCachedDocuments, invalidateTagData, invalidateTagTables, isDocumentsLoading, isRowNewer, isStaleTaskUpdate, patchCachedDocument, patchDocuments, patchWorkspaceTags, refreshDocuments, resolveDocumentStatus, setCachedDocument, settledByRows, startEntityExtraction, stopDocumentsLoading, subscribeDocumentRows, upsertDocuments, useArbiWsStore, useCreateTag, useDeleteTag, useDocument, useDocuments, useDocumentsById, useDocumentsLoading, useEntityExtractionDocIds, useExtractEntities, useInvalidateTagData, useIsCreatingTag, useRefreshDocuments, useSetTagValues, useSimilarDocuments, useTagKindSchema, useUpdateTag, useUpdateTagKindSchema } from './chunk-VGAA7AFS.js';
6
+ import { useArbiSessionState, useArbiSession, useWorkspaces, useConversations, useConfig, useArbiSessionStore, useAvailableModels, useParsedDocument, useTags, selectDraft, useConversationThreads, createArbiSessionStore, useTransientView, useProjects, useAgents, useAssistantQuery, useActivity, queuedMessages, MIN_QUEUED_MESSAGE_VISIBILITY_MS } from './chunk-XPLD4LFC.js';
7
+ export { DEFAULT_DOCUMENT_VIEWER_STATE, DOCUMENT_VIEWER_PANEL, EMPTY_CHAT_STATE, EMPTY_DOCUMENT_STATE, EMPTY_SESSION_STATE, MAX_THREAD_TABS, MIN_QUEUED_MESSAGE_VISIBILITY_MS, PROJECT_CREATION_DENIED_REASON, WORKSPACE_LAST_OPENED_KEY, WORKSPACE_STORAGE_KEY, agentControl, browserWorkspaceStorage, clearSealedDrafts, closePanelIn, composeArbiSessionStore, conversationKey, createArbiChatStore, createArbiDocumentSessionStore, createArbiLayoutStore, createArbiSessionStore, createArbiWorkspaceStore, createDebouncedWriter, createSealedDraftStorage, createStoragePersist, createUiStateStorage, defaultLayoutState, dmTabId, flushOnPageExit, isPanelOpen, isUsageMetered, layoutActionsOf, nextViewingDocument, openPanelIn, panelPlace, parseSavedChat, parseSavedDocuments, parseSavedLayout, queuedMessages, readWorkspaceLastOpened, restoreLayout, restoreSavedDocuments, savedChatOf, savedDocumentsOf, savedLayoutOf, selectDraft, selectIsGenerating, selectViewingDocumentId, threadTabId, useActivity, useAgents, useArbiSession, useArbiSessionState, useArbiSessionStore, useAssistantQuery, useAvailableModels, useBoxRole, useBuiltinCommands, useCanCreateProjects, useConfig, useConfigs, useConversationThreads, useConversations, useCurrentUser, useDeleteAgents, useDocumentVersionList, useFirmPool, useHealth, useMessageDetails, useParsedDocument, useProjectInvoices, useProjectUsage, useProjects, useProjectsUsage, useSessionPageTab, useSessionView, useSignedInSession, useTags, useThumbnails, useTopUpFirmPool, useTransientView, useUserUsageToday, useWorkspaceActivity, useWorkspaces } from './chunk-XPLD4LFC.js';
8
+ import { fetchDocumentFile, downloadBlob, fetchMarkupPdf, fetchDocumentPdf } from './chunk-47YVW3J4.js';
9
9
  import { arbiMutationKeys, arbiQueryKeys, mailQueryKeys, connectorQueryKeys, calendarQueryKeys } from './chunk-TK7ERJPE.js';
10
10
  export { arbiMutationKeys, arbiQueryKeys, calendarQueryKeys, callQueryKeys, connectorQueryKeys, isUnderQueryKey, mailQueryKeys } from './chunk-TK7ERJPE.js';
11
- import { useArbi, useArbiHost } from './chunk-2Y6LJNWA.js';
12
- export { useArbi, useArbiHost, useDeploymentDomain } from './chunk-2Y6LJNWA.js';
11
+ import { useArbi, useArbiHost } from './chunk-VGO77X5U.js';
12
+ export { useArbi, useArbiHost, useDeploymentDomain } from './chunk-VGO77X5U.js';
13
13
  import { ArbiHost, linkMentions, extractMentions, UNBOUND, bindingOfRow, readLegacyThreadDocuments, forgetLegacyThreadDocuments, toMessageMentions, takeDocumentForTurn, hasMessageBody, createSearchSession, clearSearchSession } from './chunk-CSPAEVZS.js';
14
14
  export { LEGACY_THREAD_DOCUMENTS_KEY, MENTION_HREF_PREFIX, NotificationBell, Toaster, UNBOUND, bindingOfRow, clearSearchSession, createSearchSession, extractMentions, filterMentionCandidates, findMentionQuery, forgetLegacyThreadDocuments, hasMessageBody, insertMention, latestThreadOfDocument, linkMentions, mentionFromHref, openDocumentId, opensInWord, persistSearchSession, readLegacyThreadDocuments, requestSearch, savedDocumentIdFor, sharedSearchSession, takeDocumentForTurn, takePendingSearch, toMessageMentions, useOpenDocumentId, useRegisterOpenDocument, useTurnDocumentId } from './chunk-CSPAEVZS.js';
15
15
  import { notify, recordChatArtifact } from './chunk-G4Z3IP4J.js';
@@ -17,8 +17,8 @@ export { DEFAULT_NOTIFY_TONE, MAX_SESSION_NOTIFICATIONS, clearChatArtifacts, con
17
17
  export { mergeHostConfig } from './chunk-DPYBZDJB.js';
18
18
  export { cleanDraftMarkdown, cleanDraftWithReport, promoteBoldTitle, repairParsedStructure, repairParsedTitle, stripAgentPreamble, unescapeMarkdown, unwrapCitationLinks } from './chunk-NNWMHMEC.js';
19
19
  import './chunk-WUTL62MC.js';
20
- import { returnFocusToMark, MarkMenu, getDocumentTitle, Badge, TagEntity, useAudioRecorder, MicWaveformIndicator, IconToggle, classifyMediaError, formatElapsed, friendlyFileType, AiMarkdown, Card, Input, FILE_TYPE_COLORS, getEntityIcon, UserEntity, getEntityColorStyles, AgentBadge, Textarea, Slider, getEntityLabel, getDocumentDate, usesOriginalBytesForViewer } from './chunk-ZDTOJVPP.js';
21
- export { ARBI_MARK_SRC, AUDIO_MIME_PREFERENCE, AgentBadge, AiMarkdown, ArbiBotHeadIcon, ArbiIcon, AudIcon, BASE_COLORS, Badge, COLUMN_LABEL_FALLBACKS, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, ClaudeIcon, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, DEFAULT_METADATA_TAGS, DebouncedInput, DocIcon, DocumentCard, DocumentEntity, ENTITY_MAPPINGS, EmlIcon, EntityIcon, EntityPill, FILE_TYPE_COLORS, FireworksIcon, GeminiIcon, GoogleIcon, HoverCard, HoverCardContent, HoverCardTrigger, HtmlIcon, IconToggle, ImgIcon, InlineMicButton, Input, Label, MarkMenu, MicRecordingOverlay, MicWaveformIndicator, NEUTRAL_GRAY, OpenAIIcon, PLACEHOLDER_COLOR, PassageCard, PdfIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger, PresenceLabel, Progress, ProjectEntity, ProviderIcon, RadioGroup, RadioGroupItem, RagDot, RelevanceDot, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, ShieldIcon, Slider, StatusPill, Switch, TAG_TYPE_ICONS, TAG_TYPE_LABELS, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagEntity, Textarea, ThreadVisibilityIcon, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TxtIcon, UserEntity, UserMenu, VIDEO_MIME_PREFERENCE, VISIBILITY_ICONS, VerifiedBadge, VerifiedToggle, VidIcon, VisibilityIcon, VisibilityToggle, XlsIcon, agentAvatarColors, badgeVariants, buildFolderTree, canonicalFolderPath, cardVariants, classifyMediaError, configureEntityRegistry, configureRagLabels, configureStatusRegistry, createChunkedRecorder, entityNoun, extensionFromMime, formatCompactLastSeen, formatDocDate, formatElapsed, formatFolderLabel, formatFriendlyDate, friendlyFileType, getDocIcon, getDocumentAuthor, getDocumentDate, getDocumentNature, getDocumentSubject, getDocumentTitle, getEntityColor, getEntityColorStyles, getEntityIcon, getEntityLabel, getFileExtension, getFileTypeIcon, getStatusVariant, getTagTypeIcon, getTagTypeLabel, getWorkspaceColor, isAudioFile, isDocumentAddableToConversation, isDownloadOnlyFile, isImageDocument, isImageFile, isMediaFile, isVideoFile, markdownToPlainText, markdownToPlainTextBlocks, pickRecorderMimeType, tagKindNouns, tagKindTitle, toggleVariants, useAudioRecorder, useDictateContext, usesOriginalBytesForViewer } from './chunk-ZDTOJVPP.js';
20
+ import { returnFocusToMark, MarkMenu, getDocumentTitle, Badge, TagEntity, useAudioRecorder, MicWaveformIndicator, IconToggle, classifyMediaError, formatElapsed, friendlyFileType, AiMarkdown, Card, Input, FILE_TYPE_COLORS, getEntityIcon, UserEntity, getEntityColorStyles, AgentBadge, Textarea, Slider, getEntityLabel, getDocumentDate, usesOriginalBytesForViewer } from './chunk-XAEVT7ZM.js';
21
+ export { ARBI_MARK_SRC, AUDIO_MIME_PREFERENCE, AgentBadge, AiMarkdown, ArbiBotHeadIcon, ArbiIcon, AudIcon, BASE_COLORS, Badge, COLUMN_LABEL_FALLBACKS, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, ClaudeIcon, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, DEFAULT_METADATA_TAGS, DebouncedInput, DocIcon, DocumentCard, DocumentEntity, ENTITY_MAPPINGS, EmlIcon, EntityIcon, EntityPill, FILE_TYPE_COLORS, FireworksIcon, GeminiIcon, GoogleIcon, HoverCard, HoverCardContent, HoverCardTrigger, HtmlIcon, IconToggle, ImgIcon, InlineMicButton, Input, Label, MarkMenu, MicRecordingOverlay, MicWaveformIndicator, NEUTRAL_GRAY, OpenAIIcon, PLACEHOLDER_COLOR, PassageCard, PdfIcon, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger, PresenceLabel, Progress, ProjectEntity, ProviderIcon, RadioGroup, RadioGroupItem, RagDot, RelevanceDot, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, ShieldIcon, Slider, StatusPill, Switch, TAG_TYPE_ICONS, TAG_TYPE_LABELS, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagEntity, Textarea, ThreadVisibilityIcon, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TxtIcon, UserEntity, UserMenu, VIDEO_MIME_PREFERENCE, VISIBILITY_ICONS, VerifiedBadge, VerifiedToggle, VidIcon, VisibilityIcon, VisibilityToggle, XlsIcon, agentAvatarColors, badgeVariants, buildFolderTree, canonicalFolderPath, cardVariants, classifyMediaError, configureEntityRegistry, configureRagLabels, configureStatusRegistry, createChunkedRecorder, entityNoun, extensionFromMime, formatCompactLastSeen, formatDocDate, formatElapsed, formatFolderLabel, formatFriendlyDate, friendlyFileType, getDocIcon, getDocumentAuthor, getDocumentDate, getDocumentNature, getDocumentSubject, getDocumentTitle, getEntityColor, getEntityColorStyles, getEntityIcon, getEntityLabel, getFileExtension, getFileTypeIcon, getStatusVariant, getTagTypeIcon, getTagTypeLabel, getWorkspaceColor, isAudioFile, isDocumentAddableToConversation, isDownloadOnlyFile, isImageDocument, isImageFile, isMediaFile, isVideoFile, markdownToPlainText, markdownToPlainTextBlocks, pickRecorderMimeType, tagKindNouns, tagKindTitle, toggleVariants, useAudioRecorder, useDictateContext, usesOriginalBytesForViewer } from './chunk-XAEVT7ZM.js';
22
22
  import { getUserDisplayName, isAgent } from './chunk-APZZQZ6P.js';
23
23
  export { Avatar, AvatarFallback, AvatarImage, DEFAULT_SEGMENTER_CONFIG, INITIAL_SEGMENTER_STATE, createUserAvatarIcon, flushSegmenter, getUserAvatarColor, getUserDisplayName, getUserInitials, isAgent, levelFromRms, stepSegmenter } from './chunk-APZZQZ6P.js';
24
24
  import { MarkdownRenderer } from './chunk-C44GO33B.js';
@@ -41,7 +41,7 @@ export { ACCOUNT_VENDOR, Arbi, ArbiError, DEFAULT_AI_USD_PER_GBP, DRIVE_SYNC_VEN
41
41
  import { Link, Trash2, CheckCheck, Check, MoreHorizontal, SquarePen, Pencil, Download, X, Mic, Pause, Play, Square, Loader2, RotateCcw, Sparkles, Camera, Circle, AlertTriangle, ShieldCheck, Copy, FileText, GitCompareArrows, Search, CornerDownLeft, Send, Tags, Info, Activity, HardDrive, Gauge, Gift, PartyPopper, UserPlus, UserCheck, Reply, PenLine, AtSign, MessageCircleMore, FileX2, FileCheck2, FolderPlus, SquareArrowOutUpRight, Paperclip, ArrowRight, Image as Image$1, AppWindow } from 'lucide-react';
42
42
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
43
43
  import { create } from 'zustand';
44
- import { getUserEncryptionKeypair, sealedBoxDecrypt, bytesToBase64, isMessageType, decryptMessage, SETTINGS_WRITE_BREAKER_CODE, passwordChangeErrorMessage, createRecoveryFile, isAbortError, base64ToBytes, sealedBoxEncrypt } from '@arbidocs/client';
44
+ import { getUserEncryptionKeypair, sealedBoxDecrypt, bytesToBase64, isMessageType, decryptMessage, SETTINGS_WRITE_BREAKER_CODE, passwordChangeErrorMessage, createRecoveryFile, isAbortError, base64ToBytes, sealedBoxEncrypt, logger } from '@arbidocs/client';
45
45
  export { isMessageType } from '@arbidocs/client';
46
46
  import { get, del, set } from 'idb-keyval';
47
47
  import { diffWords } from 'diff';
@@ -162,7 +162,7 @@ function useStartTaskQuery() {
162
162
  const arbi = useArbi();
163
163
  const queryClient = useQueryClient();
164
164
  const chatModel = useArbiSessionState((s) => s.chatModel);
165
- const post2 = useMutation({
165
+ const post = useMutation({
166
166
  mutationFn: (query) => {
167
167
  const selectedConfig = chatModel || queryClient.getQueriesData({ queryKey: arbiQueryKeys.userSettings() }).map(([, settings]) => settings?.last_config).find(Boolean);
168
168
  return arbi.assistant.submit(query.input, {
@@ -199,11 +199,11 @@ function useStartTaskQuery() {
199
199
  return { conversationId };
200
200
  };
201
201
  return {
202
- isPending: post2.isPending,
202
+ isPending: post.isPending,
203
203
  /** Look again for the thread of a run whose start threw {@link TaskThreadPendingError}. */
204
204
  findThread: (messageId) => lookUpThread(messageId, 1),
205
205
  start: async (query) => {
206
- const accepted = await post2.mutateAsync(query);
206
+ const accepted = await post.mutateAsync(query);
207
207
  const found = await lookUpThread(
208
208
  accepted.id,
209
209
  THREAD_LOOKUP_ATTEMPTS,
@@ -4141,78 +4141,15 @@ function useRemoveDocumentsOffline() {
4141
4141
  });
4142
4142
  }
4143
4143
 
4144
- // src/chat/sibling-tabs.ts
4145
- var SIBLING_TABS_CHANNEL = "arbi:conversation-messages";
4146
- var channel = null;
4147
- var listeners = 0;
4148
- function post(message) {
4149
- if (typeof BroadcastChannel === "undefined") return;
4150
- if (channel) {
4151
- channel.postMessage(message);
4152
- return;
4153
- }
4154
- const once = new BroadcastChannel(SIBLING_TABS_CHANNEL);
4155
- once.postMessage(message);
4156
- once.close();
4157
- }
4158
- function announceToSiblingTabs(userId, conversationId, messageId) {
4159
- if (!userId || !messageId || !conversationId || conversationId === "new") return;
4160
- const message = {
4161
- type: "conversation.message_posted",
4162
- conversation_ext_id: conversationId,
4163
- message_ext_id: messageId,
4164
- user_ext_id: userId
4165
- };
4166
- try {
4167
- post(message);
4168
- } catch {
4169
- }
4170
- }
4171
- function listenToSiblingTabs(me, onMessage) {
4172
- if (typeof BroadcastChannel === "undefined") return () => {
4173
- };
4174
- channel ??= new BroadcastChannel(SIBLING_TABS_CHANNEL);
4175
- const ch = channel;
4176
- listeners += 1;
4177
- const listener = (event) => {
4178
- const data = event.data;
4179
- if (data?.type !== "conversation.message_posted" || !data.conversation_ext_id || !data.message_ext_id)
4180
- return;
4181
- const user = me();
4182
- if (!user || data.user_ext_id !== user) return;
4183
- onMessage(data);
4184
- };
4185
- ch.addEventListener("message", listener);
4186
- let listening = true;
4187
- return () => {
4188
- if (!listening) return;
4189
- listening = false;
4190
- ch.removeEventListener("message", listener);
4191
- listeners -= 1;
4192
- if (listeners === 0 && channel === ch) {
4193
- ch.close();
4194
- channel = null;
4195
- }
4196
- };
4197
- }
4198
-
4199
4144
  // src/chat/stream-handlers.ts
4200
4145
  var MIN_NARRATION_DWELL_MS = 4e3;
4201
4146
  var FIRST_TOKEN_MEASURE = "arbi:send-message:first-token";
4202
- function announceTurnEnded(userId, streamState) {
4203
- if (streamState.endAnnounced) return;
4204
- const messageId = streamState.assistantId ?? streamState.userMessageId;
4205
- if (!messageId) return;
4206
- streamState.endAnnounced = true;
4207
- announceToSiblingTabs(userId, streamState.conversationId, messageId);
4208
- }
4209
4147
  function createStreamHandlers(ctx, params) {
4210
4148
  const { queryClient, session, host } = ctx;
4211
4149
  const { streamState, parentMessageId, parentId } = params;
4212
4150
  let turnUserMessageId = null;
4213
4151
  let queuedEntryRetired = false;
4214
4152
  const isViewingConversation = () => session.getState().conversationId === streamState.conversationId;
4215
- const tellOtherTabs = (messageId) => announceToSiblingTabs(ctx.userId(), streamState.conversationId, messageId);
4216
4153
  const retireQueuedEntry = () => {
4217
4154
  const clientId = streamState.queuedClientId;
4218
4155
  if (!clientId || queuedEntryRetired) return;
@@ -4277,7 +4214,6 @@ function createStreamHandlers(ctx, params) {
4277
4214
  }
4278
4215
  turnUserMessageId = userMessage.external_id;
4279
4216
  streamState.userMessageId = userMessage.external_id;
4280
- tellOtherTabs(userMessage.external_id);
4281
4217
  if (streamState.queuedContinuation) {
4282
4218
  retireQueuedEntry();
4283
4219
  const viewedLeaf = session.getState().cursor;
@@ -4362,7 +4298,6 @@ function createStreamHandlers(ctx, params) {
4362
4298
  }
4363
4299
  void invalidateConversationLists(queryClient);
4364
4300
  session.setCursor(streamState.assistantId);
4365
- tellOtherTabs(streamState.assistantId);
4366
4301
  };
4367
4302
  let firstTokenSeen = false;
4368
4303
  const markFirstToken = () => {
@@ -4520,7 +4455,6 @@ function createStreamHandlers(ctx, params) {
4520
4455
  if (streamState.assistantId) {
4521
4456
  markMessageAsFailed(queryClient, streamState.conversationId, streamState.assistantId);
4522
4457
  }
4523
- announceTurnEnded(ctx.userId(), streamState);
4524
4458
  };
4525
4459
  const handleComplete = () => {
4526
4460
  console.debug("[SSE] Stream complete");
@@ -4531,7 +4465,6 @@ function createStreamHandlers(ctx, params) {
4531
4465
  });
4532
4466
  }
4533
4467
  flushStreamingTokens(queryClient);
4534
- announceTurnEnded(ctx.userId(), streamState);
4535
4468
  if (streamState.assistantId) {
4536
4469
  session.clearAgentControl(streamState.assistantId);
4537
4470
  }
@@ -4959,7 +4892,6 @@ function useConversationActions({
4959
4892
  }
4960
4893
  });
4961
4894
  flushStreamingTokens(queryClient);
4962
- announceTurnEnded(signedInUserId(arbi) ?? "", streamState);
4963
4895
  if (queuedContinuation && !streamState.hasStreamStarted) {
4964
4896
  if (streamState.queuedFailed) failQueuedContinuation(queryClient, session, streamState);
4965
4897
  return;
@@ -5029,7 +4961,6 @@ function useConversationActions({
5029
4961
  }
5030
4962
  if (streamState.isStopped() || isAbort) {
5031
4963
  console.debug("Message sending was aborted by user");
5032
- announceTurnEnded(signedInUserId(arbi) ?? "", streamState);
5033
4964
  clearLoadingState(queryClient, streamState.conversationId);
5034
4965
  void queryClient.invalidateQueries({
5035
4966
  queryKey: getThreadsQueryKey(streamState.conversationId)
@@ -6832,6 +6763,63 @@ function useInstallSkillPack(pack) {
6832
6763
  }
6833
6764
  });
6834
6765
  }
6766
+ var WORK_OFFLINE_VIEW = "app.workOffline";
6767
+ var isWorkingOffline = (session) => session.getState().views.transient[WORK_OFFLINE_VIEW] === true;
6768
+ var setWorkOfflineIn = (session, on) => session.setTransientView(WORK_OFFLINE_VIEW, on || void 0);
6769
+ function useWorkOffline() {
6770
+ const session = useArbiSessionStore();
6771
+ const on = useArbiSessionState((s) => s.views.transient[WORK_OFFLINE_VIEW] === true);
6772
+ const set2 = useCallback((next) => setWorkOfflineIn(session, next), [session]);
6773
+ return [on, set2];
6774
+ }
6775
+ function computeOnline(wsStatus, isAuthenticated, workOffline, wsEverConnected) {
6776
+ if (workOffline) return false;
6777
+ const navOnline = typeof navigator === "undefined" ? true : navigator.onLine;
6778
+ const wsIsEvidence = isAuthenticated && wsEverConnected;
6779
+ const wsOnline = !wsIsEvidence || wsStatus !== "disconnected" && wsStatus !== "error";
6780
+ return navOnline && wsOnline;
6781
+ }
6782
+ function useOnlineSync() {
6783
+ const session = useArbiSessionStore();
6784
+ const wsStatus = useArbiWsStore((s) => s.status);
6785
+ const signedIn2 = useArbiSession().status === "signed-in";
6786
+ const [workOffline] = useWorkOffline();
6787
+ const wsEverConnected = useRef(false);
6788
+ if (wsStatus === "connected") wsEverConnected.current = true;
6789
+ const signedInRef = useRef(signedIn2);
6790
+ signedInRef.current = signedIn2;
6791
+ useEffect(() => {
6792
+ onlineManager.setOnline(computeOnline(wsStatus, signedIn2, workOffline, wsEverConnected.current));
6793
+ }, [wsStatus, signedIn2, workOffline]);
6794
+ useEffect(() => {
6795
+ const update = () => onlineManager.setOnline(
6796
+ computeOnline(
6797
+ useArbiWsStore.getState().status,
6798
+ signedInRef.current,
6799
+ isWorkingOffline(session),
6800
+ wsEverConnected.current
6801
+ )
6802
+ );
6803
+ window.addEventListener("online", update);
6804
+ window.addEventListener("offline", update);
6805
+ return () => {
6806
+ window.removeEventListener("online", update);
6807
+ window.removeEventListener("offline", update);
6808
+ };
6809
+ }, [session]);
6810
+ }
6811
+ function useReconnect() {
6812
+ const session = useArbiSessionStore();
6813
+ return useCallback(() => {
6814
+ if (isWorkingOffline(session)) {
6815
+ setWorkOfflineIn(session, false);
6816
+ return "resumed";
6817
+ }
6818
+ if (typeof navigator !== "undefined" && navigator.onLine === false) return "no-network";
6819
+ window.location.reload();
6820
+ return "reloading";
6821
+ }, [session]);
6822
+ }
6835
6823
 
6836
6824
  // src/websocket/reconnect.ts
6837
6825
  var INITIAL_RECONNECT_DELAY_MS = 1e3;
@@ -7298,6 +7286,26 @@ async function applyLiveUpdate(queryClient, message) {
7298
7286
  return false;
7299
7287
  }
7300
7288
  }
7289
+ function applyRunFinished(queryClient, arbi, session, message, onQuotaExceeded) {
7290
+ const { generating } = session.getState();
7291
+ const streaming = Object.entries(generating).find(
7292
+ ([, generation]) => generation.streamingAssistantId === message.response_id
7293
+ )?.[0];
7294
+ const conversationId = streaming ?? message.conversation_ext_id ?? null;
7295
+ if (!conversationId) return;
7296
+ session.setConversationGenerating(conversationId, false, null);
7297
+ if (message.doc_ext_ids?.length) {
7298
+ refreshDocuments(queryClient, arbi, message.doc_ext_ids).catch(
7299
+ (error) => logger.error("[WebSocket] Failed to refresh task outputs:", error)
7300
+ );
7301
+ }
7302
+ if (message.user_message_id) session.removeQueuedMessageByServerId(message.user_message_id);
7303
+ void applyConversationEvent(queryClient, { ...message, conversation_ext_id: conversationId });
7304
+ if (message.status === "failed") {
7305
+ const quota = cachedQuotaUsedUp(queryClient, session.getState().workspaceId);
7306
+ if (quota) onQuotaExceeded?.(quota);
7307
+ }
7308
+ }
7301
7309
 
7302
7310
  // src/notifications/live.ts
7303
7311
  function isNotificationRow(message) {
@@ -7337,6 +7345,7 @@ var EVICTED_CLOSE_CODE = 1008;
7337
7345
  function ArbiWebSocketProvider({
7338
7346
  enabled = true,
7339
7347
  onAuthenticated,
7348
+ handlers,
7340
7349
  children
7341
7350
  }) {
7342
7351
  const arbi = useArbi();
@@ -7351,9 +7360,18 @@ function ArbiWebSocketProvider({
7351
7360
  const setEvicted = useArbiWsStore((s) => s.setEvicted);
7352
7361
  const onAuthenticatedRef = useRef(onAuthenticated);
7353
7362
  onAuthenticatedRef.current = onAuthenticated;
7363
+ const handlersRef = useRef(handlers);
7364
+ handlersRef.current = handlers;
7365
+ const session = useArbiSessionStore();
7366
+ const sessionRef = useRef(session);
7367
+ sessionRef.current = session;
7368
+ const host = useArbiHost();
7369
+ const hostRef = useRef(host);
7370
+ hostRef.current = host;
7354
7371
  const acceptRings = useFeature("calls");
7355
7372
  const acceptRingsRef = useRef(acceptRings);
7356
7373
  acceptRingsRef.current = acceptRings;
7374
+ useOnlineSync();
7357
7375
  const context = useMemo(
7358
7376
  () => ({
7359
7377
  subscribe: (fn) => {
@@ -7382,6 +7400,16 @@ function ArbiWebSocketProvider({
7382
7400
  } else if (isMessageType(msg, "task_update")) {
7383
7401
  if (applyTaskUpdate(msg)) applyTaskEvent(queryClient, arbiRef.current, msg, me());
7384
7402
  } else if (isMessageType(msg, "presence_update")) applyPresence(msg);
7403
+ else if (isMessageType(msg, "response_complete"))
7404
+ applyRunFinished(
7405
+ queryClient,
7406
+ arbiRef.current,
7407
+ sessionRef.current,
7408
+ msg,
7409
+ (quota) => hostRef.current.chat?.onQuotaExceeded?.(quota)
7410
+ );
7411
+ else if (type === "error")
7412
+ logger.error("[WebSocket] Server error:", msg.message);
7385
7413
  else if (isMessageType(msg, "batch_complete")) {
7386
7414
  if (msg.batch_type === "entity_extract") {
7387
7415
  finishEntityExtraction(msg.doc_ext_ids ?? []);
@@ -7398,6 +7426,11 @@ function ArbiWebSocketProvider({
7398
7426
  applyCallEvent(queryClient, msg, { me: me(), acceptRings: acceptRingsRef.current });
7399
7427
  else if (isNotificationRow(msg)) applyNotificationRow(queryClient, msg, me());
7400
7428
  else void applyLiveUpdate(queryClient, msg);
7429
+ try {
7430
+ handlersRef.current?.[type]?.(msg);
7431
+ } catch (error) {
7432
+ logger.error(`[WebSocket] The host's ${type} handler failed:`, error);
7433
+ }
7401
7434
  for (const fn of subscribersRef.current) {
7402
7435
  try {
7403
7436
  fn(msg);
@@ -7481,13 +7514,6 @@ function ArbiWebSocketProvider({
7481
7514
  reset();
7482
7515
  };
7483
7516
  }, [enabled, queryClient, setStatus, setEvicted, applyTaskUpdate, applyPresence, reset]);
7484
- useEffect(() => {
7485
- if (!enabled) return;
7486
- return listenToSiblingTabs(
7487
- () => signedInId(arbiRef.current),
7488
- (message) => void applyConversationEvent(queryClient, message)
7489
- );
7490
- }, [enabled, queryClient]);
7491
7517
  return /* @__PURE__ */ jsx(ArbiWsContext.Provider, { value: context, children });
7492
7518
  }
7493
7519
  function useArbiWebSocket(onMessage) {
@@ -14397,7 +14423,7 @@ function useChatPost() {
14397
14423
  const arbi = useArbi();
14398
14424
  const queryClient = useQueryClient();
14399
14425
  return useCallback(
14400
- async (target, post2) => {
14426
+ async (target, post) => {
14401
14427
  const me = myChatId(arbi);
14402
14428
  if (!me) throw new Error("No active session");
14403
14429
  let chat = target.chat;
@@ -14410,7 +14436,7 @@ function useChatPost() {
14410
14436
  (old) => old ?? { messages: [], hasMore: false }
14411
14437
  );
14412
14438
  }
14413
- const files = post2.files ?? [];
14439
+ const files = post.files ?? [];
14414
14440
  const optimisticId = `optimistic-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
14415
14441
  const now = (/* @__PURE__ */ new Date()).toISOString();
14416
14442
  const optimistic = {
@@ -14418,11 +14444,11 @@ function useChatPost() {
14418
14444
  chat_ext_id: chat.external_id,
14419
14445
  sender_ext_id: me,
14420
14446
  kind: "text",
14421
- content: post2.text,
14447
+ content: post.text,
14422
14448
  key_version: chat.key_version,
14423
14449
  deleted: false,
14424
- context_only: !!post2.contextOnly,
14425
- workspace_ext_id: post2.workspaceExtId ?? null,
14450
+ context_only: !!post.contextOnly,
14451
+ workspace_ext_id: post.workspaceExtId ?? null,
14426
14452
  created_at: now,
14427
14453
  updated_at: now,
14428
14454
  optimistic: true
@@ -14442,10 +14468,10 @@ function useChatPost() {
14442
14468
  )
14443
14469
  );
14444
14470
  }
14445
- const message = await arbi.chats.send(chat, post2.text, {
14471
+ const message = await arbi.chats.send(chat, post.text, {
14446
14472
  attachments,
14447
- ...post2.workspaceExtId ? { workspaceExtId: post2.workspaceExtId } : {},
14448
- contextOnly: !!post2.contextOnly
14473
+ ...post.workspaceExtId ? { workspaceExtId: post.workspaceExtId } : {},
14474
+ contextOnly: !!post.contextOnly
14449
14475
  });
14450
14476
  appendToThread(queryClient, chat.external_id, message, optimisticId);
14451
14477
  upsertChat(queryClient, {
@@ -15006,6 +15032,6 @@ function useRateSupportTicket() {
15006
15032
  });
15007
15033
  }
15008
15034
 
15009
- export { AGENT_CONTROL_COMMANDS, AGGREGATE_FIELDS, ALLOWED_PORTAL_ORIGINS, ARCHIVE_POLL_MS, ASSISTANT_MENTION_LABEL, AUTO_CHAT_MODEL, ActivityFeed, AiActionCard, AiAnswer, AppleIcon, ArbiBotIcon, ArbiHost2 as ArbiHost, ArbiWebSocketProvider, ArtifactCanvas, BOOT_GATE_TIMEOUT_MS, BOX_SEAT_REFUSED, BOX_SEAT_REFUSED_ACTION, BOX_SEAT_REFUSED_TITLE, BUILTIN_DATA_SOURCES, CONVERSATION_SWITCH_MEASURE, ChatBubble, CitationRenderer, CommandPalette, CommandPaletteProvider, ConversationList, ConversationScope, DATABASE_RELATION_PICK_LIMIT, DATABASE_ROWS_PAGE, DEFAULT_ASPECT_OPTIONS, DEFAULT_CONVERSATIONS_SOURCE_LABELS, DEFAULT_DATABASE_SOURCE_LABELS, DEFAULT_DOCUMENTS_SOURCE_LABELS, DEFAULT_PASSWORD_CHANGE_FORM_MESSAGES, DEFAULT_PROJECTS_SOURCE_LABELS, DEFAULT_USAGE_SOURCE_LABELS, DEFAULT_WORKSPACES_SOURCE_LABELS, DateSeparator, DmAvatar, DmComposer, DocQaPanel, DocSearch, DocumentCardMenu, DocumentReview, DraftTitleControls, EMPTY_GROUP_LABEL, FACTS_SEARCH_VIEW, FIRST_TOKEN_MEASURE, FileIcon, GitHubIcon, ImageCropModal, ImageCropper, LIVE_UPDATE_TYPES, LinkedInIcon, MAIL_DRAFT_REPLACED_EVENT, MAX_DASHBOARD_SPEC_CHARS, MAX_SERIES, MIN_NARRATION_DWELL_MS, MODEL_GROUP_LABELS, MailOfflineUnavailableError, MessageArtifactCard, PENDING_SYNC_PREDICATE, POLL_EVERY_MS, PhotoCapture, RUN_WINDOW_MS, SIGNATURE_NOTIFICATION_TYPES, SLOW_AFTER_MS, STILL_WORKING, StorageActionError, TRANSFER_POLL_MS, TaskThreadPendingError, TypingIndicator, UPLOAD_ACCEPT, UPLOAD_MAX_FILE_SIZE, VideoCapture, VoiceNoteRecorder, WORK_NOTIFICATION_LABELS, __resetPendingFinalCommitsForTests, __resetStreamingTokenBufferForTests, accountPath, addAssistantMessageToCache, addUserMessageToCache, adoptNewChatDocument, aggregateDataset, aliasTakenMessage, allConversationThreads, annotateThread, announceMailDraftReplaced, announceTurnEnded, appendTokenToMessage, applyConversationEvent, applyFinalContextToMessage, applyLiveUpdate, applyNotificationRow, applyOptimisticDocumentEdit, applyOutputItemToMessage, applyTaskEvent, arbiMailClient, archiveName, archivedWorkspaceMessage, assistantLabels, bindThreadDocument, boundDocumentOf, bucketOf, bucketRange, buildDocumentMetadataRows, buildMentionCandidates, buildPendingFirstTurn, buildPendingSyncItem, buildWorkspaceArchive, cacheThreadBinding, cachedAssistantMode, cachedMentionCandidates, cachedQuotaUsedUp, calendarNotificationMeta, callNotificationMeta, captureFrameAsBlob, claimOfflineQueue, clearLoadingState, clearUserInputRequest, commitFinalMessage, completeQueuedUserMessageByContent, connectOAuthCalendarAccount, connectorErrorStatus, connectorReturnTo, createArbiQueryClient, createConversationsSource, createDataSourceRegistry, createDatabaseSource, createDocumentsSource, createMailClient, createMemoryDashboardStore, createProjectsSource, createSkillPack, createStreamHandlers, createUsageSource, createWorkspaceSwitch, createWorkspacesSource, cropImage, dayKey, defaultMailAlias, defineRowsSource, deploymentUserMeta, describeActivity, describeCalendarNotification, describeServerNotification, discardStreamingTokensForMessage, disconnectAttachedRun, documentActivityMeta, documentActivityPhrase, documentDisplayName, docxMentionMeta, downloadRecoveryFile, ensureAssistantMessageLoading, extractZipFile, fallbackFileName, fileAttachment, filesFromDrop, fillTimeGaps, filterRows, flushStreamingTokens, forgetUploadedDocumentFolder, formatConfigValidationError, formatIdentityPrice, getInterjectionText, getNotificationTypeMeta, getOfflineDocument, getOrphanedLastMessage, getRelatedLabels, getRelatedTotal, getRunStartedAt, getThreadsQueryKey, getWorkspaceActionText, getWorkspaceKind, getWorkspaceSentPhrase, hasPendingFinalCommit, hasVideoTrack, identityStepFor, inputRequestTitle, invalidateCalendarEvents, invalidateCalendars, invalidateConversationActivity, isActivityKey, isAliasTakenError, isArchiveMoving, isCommentToPeople, isDeploymentAdmin, isDeploymentUserNotification, isFullConfig, isMessageRunning, isNotificationRow, isOrphanedUserMessage, isQueuedCalendarWrite, isReplayableArbiMutation, isSignatureNotificationType, isTableViewOf, isTransferFinished, isTransferResumable, isWorkspaceArchivedError, isWorkspaceNotificationType, isZipFile, loadOfflineDocument, mailDraftIdFromContent, mailJson, markMessageAsFailed, markNarrationSettled, migrateLegacyThreadDocuments, mountDiditVerification, nextAliasSuggestion, notificationUserName, openAccessRequest, parseActivityContent, parseDashboardSpec, parseDeleteAccountBlockers, pendingChatModelSave, peopleDirectory, personOfUser, pickRecentWorkspaces, prepareUploadFiles, queryOfChart, recordsOf, redlineStats, refuseChatWhenOffline, registerArbiMutationDefaults, registerAttachedRun, removeSettledNarration, requestPersistentStorage, resetCalendarAccountSyncState, resetMessageContent, resolveActiveWorkspace, resolveConfigModel, resolveReplyTarget, rollbackOptimisticDocumentEdit, safePortalUrl, serializeDashboardSpec, serverNotificationBellEntry, setMessageContent, setUserInputRequest, signatureNotificationPhrase, signatureRequestMeta, subscribeDocumentReads, supportsHouseTemplates, textToArtifact, threadBinding, threadEndingAtContains, titleFromQuestion, toChatCitations, toNotificationPreferences, toRedlineMarkdown, toShellWorkspace, updateMessageWithMetadata, updateUserMessageInCache, updateUserMessageStateInCache, uploadFolderOf, uploadedDocumentFolder, useActOnStep, useActiveConfigId, useAddChatMembers, useAddDatabaseRows, useAddHolidayCalendar, useAddProjectAddonBlock, useAddWorkspaceMembers, useAddonQuote, useAgentChats, useAgentConfig, useAgentDmStatus, useAgentModels, useAgentRunControl, useAgentSession, useAgentWorkspaces, useAiTask, useAnswerAgentQuestion, useApplyChatModel, useArbiConnected, useArbiShellWorkspaces, useArbiWebSocket, useArbiWsContext, useArbiWsMessage, useArbiWsStatus, useArchiveProgressPolling, useArchiveWorkspace, useAskAgain, useAssignDocTags, useAssistantName, useAuthorizeLimits, useAutoSendDraft, useBookingPages, useBootTimeout, useBranchNavigation, useCalDavProfiles, useCalendarAccounts, useCalendarEvent, useCalendarEventByUid, useCalendarEvents, useCalendarInvitations, useCalendarOutbox, useCalendarOverlays, useCalendarSettings, useCalendarShares, useCalendarSupport, useCalendars, useCameraStream, useCanEditShared, useCancelDriveSync, useCancelMailboxSync, useCancelManyPendingSync, useCancelProjectSubscription, useCancelWorkspaceTransfer, useChangeProjectPlan, useChargeWatch, useChatArrivals, useChatPost, useChatSummaries, useChatThread, useChatUnreadTotal, useChats, useClaimNativeAlias, useClaimSecureMail, useCloseAgentSession, useCommandPalette, useConfigSchema, useConfirmEmailChange, useConnectCalDavAccount, useConnectMailAccount, useConnectOAuthAccount, useConnectRunStream, useConnectorAutoSync, useConnectorCatalog, useConnectorVendorVisibility, useContacts, useConversation, useConversationActions, useConversationActivity, useConversationData, useConversationDocuments, useConversationIsShared, useConversationItems, useConversationPendingAuth, useConversationSearch, useConversationSettings, useConversationTurn, useConversationUsage, useConversationWorkspace, useCreateAgent, useCreateCalendar, useCreateContact, useCreateDatabase, useCreateEvent, useCreateFact, useCreateFacts, useCreateGroupChat, useCreateProject, useCreateProjectCheckout, useCreateRoom, useCreateSupportTicket, useCreateWork, useCreateWorkflow, useCreateWorkspace, useCurrentSessionId, useCurrentWorkspace, useDashboardStore, useDataSources, useDatabase, useDatabaseAggregate, useDatabaseDashboardStore, useDatabaseRows, useDatabases, useDecideCounter, useDeleteAccount, useDeleteAccountFlow, useDeleteBookingPage, useDeleteCalendar, useDeleteChatMessage, useDeleteConfig, useDeleteContact, useDeleteConversation, useDeleteDashboard, useDeleteDatabase, useDeleteDatabaseRows, useDeleteDocuments, useDeleteEvent, useDeleteFact, useDeleteMessage, useDeleteNotifications, useDeleteProject, useDeleteSkill, useDeleteWorkflow, useDeleteWorkspaces, useDirectModelUsage, useDisconnectCalendarAccount, useDisconnectConnector, useDisconnectMailAccount, useDisconnectSlack, useDismissedTips, useDocumentAutoAdd, useDocumentHostActions, useDocumentPendingSync, useDocumentThumbnails, useDocumentsSupport, useDownloadDocuments, useDriveFolderChildren, useDriveFolderDocCount, useDriveFolders, useDriveSyncEstimate, useDriveSyncProgress, useEmailChange, useEnableDriveSync, useEnableMailboxSync, useExportDatabase, useFacts, useFactsSearch, useFetchCalendarEvent, useFilteredProjects, useFinaliseTranslation, useFindTime, useFollowThread, useFreeBusy, useGenerateAgentAvatar, useGenerateDocTags, useGrantAgentAccess, useHolidayCountries, useHouseTemplateCandidates, useIdentityVerification, useIdentityVerificationFlow, useImportCalendar, useImportContacts, useImportDatabase, useImportDatabaseRows, useInstallSkillPack, useInvalidateAfterTransfer, useInvalidateProjects, useInvalidateStorage, useInviteContacts, useIsSlow, useIsWorkspaceOwner, useKeepDocumentsOffline, useLinkContact, useLinkMentions, useMailAccounts, useMailAttachmentText, useMailCache, useMailClient, useMailDraftCompose, useMailDraftEditor, useMailDraftReplaced, useMailFolders, useMailMessage, useMailMessages, useMailOnline, useMailPolicy, useMailProjects, useMailUnlock, useMailboxFolders, useMailboxSyncProgress, useMarkChatRead, useMarkDocumentShared, useMarkNotificationsRead, useMcpTools, useMentionCandidates, useMessageTimer, useModelConnections, useMoveEvent, useMoveWorkspaceToProject, useMyConnectors, useNotificationPreferences, useNotifications, useNotifyConversation, useOfflineDocumentIds, useOpenSelectedWorkspace, useOpenViewerDocumentId, usePanelDataset, usePassageQuotes, usePasswordChange, usePasswordChangeForm, usePendingSyncCounts, usePendingSyncItems, usePeople, usePeopleSearch, usePlanQuote, usePlanWork, usePlanWorkspaceTransfer, usePreviewProjectPlanChange, useProcessingTask, useProcessingTasks, useProducts, useProjectBillingPortal, useProjectConversationUsage, useProjectEvents, usePublishCalendar, useRateSupportTicket, useRefreshCalendar, useRefreshConnectorsOnRunEnd, useRefreshProject, useRelatedDocuments, useRemoveChatMember, useRemoveDocTags, useRemoveDocumentsOffline, useRemoveModelConnection, useRemoveWorkspaceMembers, useRenameChat, useRenameFolder, useRequestEmailChange, useRequestWorkspaceAccess, useRespondToEvent, useResumeCalendarAccountConnect, useResumeWorkspaceTransfer, useRevokeAgentAccess, useRooms, useRunConversation, useRunWorkflow, useSaveAgentConfig, useSaveBookingPage, useSaveCalendarSettings, useSaveConfig, useSaveConfigField, useSaveDashboard, useSaveMailDraft, useSaveModelConnection, useSaveSkill, useSavedDashboards, useSearchContacts, useSearchDatabaseRows, useSearchFacts, useSemanticSearch, useSendBackStep, useSendMail, useSessions, useSetDeploymentHouseTemplate, useSetSkillVisibility, useSetWorkspaceHouseTemplate, useSetWorkspaceMemberRoles, useShareCalendar, useShellWorkspaces, useSignOut, useSkillSource, useSkills, useSlackConnection, useStartAgentSession, useStartCalendarAccountOAuth, useStartTaskQuery, useStartWorkspaceTransfer, useStorageActions, useStorageItemNames, useStorageItems, useStorageProjects, useStorageSnapshots, useStreamHandlers, useSubscribeCalendar, useSupportTicket, useSupportTickets, useSwitchWorkspace, useSyncAccountsOnOpen, useSyncCalendarAccount, useTerminateSession, useThinkingContent, useThreadDocument, useTriggerDriveSync, useTriggerMailboxSync, useUnarchiveWorkspace, useUnlockModelConnections, useUnreadByPeer, useUnshareCalendar, useUpdateCalendar, useUpdateCalendarAccount, useUpdateContact, useUpdateConversation, useUpdateDatabase, useUpdateDatabaseRow, useUpdateDocTag, useUpdateDocuments, useUpdateEvent, useUpdateFact, useUpdateMailMessage, useUpdateProjectAddonSettings, useUpdateProjectFields, useUpdateProjectNextPeriodAddons, useUpdateWorkflow, useUpdateWorkspace, useUploadDocuments, useUploadFiles, useUploadFromUrls, useUploadSkillFiles, useUploadUrls, useVideoRecorder, useWorkItems, useWorkNotifications, useWorkflowRuns, useWorkflows, useWorkspaceArchive, useWorkspaceDocs, useWorkspaceExportDownload, useWorkspaceNotificationLevel, useWorkspaceProcessing, useWorkspaceRole, useWorkspaceTransfer, useWorkspaceTransfers, useWorkspaceTrash, useWorkspaceUsers, userDisplayName, userInitials, viewsOfTable, waitForResponseId, wipeOfflineDocuments, withRelativePath, workflowStepOf, workspaceHouseTemplateId };
15035
+ export { AGENT_CONTROL_COMMANDS, AGGREGATE_FIELDS, ALLOWED_PORTAL_ORIGINS, ARCHIVE_POLL_MS, ASSISTANT_MENTION_LABEL, AUTO_CHAT_MODEL, ActivityFeed, AiActionCard, AiAnswer, AppleIcon, ArbiBotIcon, ArbiHost2 as ArbiHost, ArbiWebSocketProvider, ArtifactCanvas, BOOT_GATE_TIMEOUT_MS, BOX_SEAT_REFUSED, BOX_SEAT_REFUSED_ACTION, BOX_SEAT_REFUSED_TITLE, BUILTIN_DATA_SOURCES, CONVERSATION_SWITCH_MEASURE, ChatBubble, CitationRenderer, CommandPalette, CommandPaletteProvider, ConversationList, ConversationScope, DATABASE_RELATION_PICK_LIMIT, DATABASE_ROWS_PAGE, DEFAULT_ASPECT_OPTIONS, DEFAULT_CONVERSATIONS_SOURCE_LABELS, DEFAULT_DATABASE_SOURCE_LABELS, DEFAULT_DOCUMENTS_SOURCE_LABELS, DEFAULT_PASSWORD_CHANGE_FORM_MESSAGES, DEFAULT_PROJECTS_SOURCE_LABELS, DEFAULT_USAGE_SOURCE_LABELS, DEFAULT_WORKSPACES_SOURCE_LABELS, DateSeparator, DmAvatar, DmComposer, DocQaPanel, DocSearch, DocumentCardMenu, DocumentReview, DraftTitleControls, EMPTY_GROUP_LABEL, FACTS_SEARCH_VIEW, FIRST_TOKEN_MEASURE, FileIcon, GitHubIcon, ImageCropModal, ImageCropper, LIVE_UPDATE_TYPES, LinkedInIcon, MAIL_DRAFT_REPLACED_EVENT, MAX_DASHBOARD_SPEC_CHARS, MAX_SERIES, MIN_NARRATION_DWELL_MS, MODEL_GROUP_LABELS, MailOfflineUnavailableError, MessageArtifactCard, PENDING_SYNC_PREDICATE, POLL_EVERY_MS, PhotoCapture, RUN_WINDOW_MS, SIGNATURE_NOTIFICATION_TYPES, SLOW_AFTER_MS, STILL_WORKING, StorageActionError, TRANSFER_POLL_MS, TaskThreadPendingError, TypingIndicator, UPLOAD_ACCEPT, UPLOAD_MAX_FILE_SIZE, VideoCapture, VoiceNoteRecorder, WORK_NOTIFICATION_LABELS, WORK_OFFLINE_VIEW, __resetPendingFinalCommitsForTests, __resetStreamingTokenBufferForTests, accountPath, addAssistantMessageToCache, addUserMessageToCache, adoptNewChatDocument, aggregateDataset, aliasTakenMessage, allConversationThreads, annotateThread, announceMailDraftReplaced, appendTokenToMessage, applyConversationEvent, applyFinalContextToMessage, applyLiveUpdate, applyNotificationRow, applyOptimisticDocumentEdit, applyOutputItemToMessage, applyTaskEvent, arbiMailClient, archiveName, archivedWorkspaceMessage, assistantLabels, bindThreadDocument, boundDocumentOf, bucketOf, bucketRange, buildDocumentMetadataRows, buildMentionCandidates, buildPendingFirstTurn, buildPendingSyncItem, buildWorkspaceArchive, cacheThreadBinding, cachedAssistantMode, cachedMentionCandidates, cachedQuotaUsedUp, calendarNotificationMeta, callNotificationMeta, captureFrameAsBlob, claimOfflineQueue, clearLoadingState, clearUserInputRequest, commitFinalMessage, completeQueuedUserMessageByContent, computeOnline, connectOAuthCalendarAccount, connectorErrorStatus, connectorReturnTo, createArbiQueryClient, createConversationsSource, createDataSourceRegistry, createDatabaseSource, createDocumentsSource, createMailClient, createMemoryDashboardStore, createProjectsSource, createSkillPack, createStreamHandlers, createUsageSource, createWorkspaceSwitch, createWorkspacesSource, cropImage, dayKey, defaultMailAlias, defineRowsSource, deploymentUserMeta, describeActivity, describeCalendarNotification, describeServerNotification, discardStreamingTokensForMessage, disconnectAttachedRun, documentActivityMeta, documentActivityPhrase, documentDisplayName, docxMentionMeta, downloadRecoveryFile, ensureAssistantMessageLoading, extractZipFile, fallbackFileName, fileAttachment, filesFromDrop, fillTimeGaps, filterRows, flushStreamingTokens, forgetUploadedDocumentFolder, formatConfigValidationError, formatIdentityPrice, getInterjectionText, getNotificationTypeMeta, getOfflineDocument, getOrphanedLastMessage, getRelatedLabels, getRelatedTotal, getRunStartedAt, getThreadsQueryKey, getWorkspaceActionText, getWorkspaceKind, getWorkspaceSentPhrase, hasPendingFinalCommit, hasVideoTrack, identityStepFor, inputRequestTitle, invalidateCalendarEvents, invalidateCalendars, invalidateConversationActivity, isActivityKey, isAliasTakenError, isArchiveMoving, isCommentToPeople, isDeploymentAdmin, isDeploymentUserNotification, isFullConfig, isMessageRunning, isNotificationRow, isOrphanedUserMessage, isQueuedCalendarWrite, isReplayableArbiMutation, isSignatureNotificationType, isTableViewOf, isTransferFinished, isTransferResumable, isWorkingOffline, isWorkspaceArchivedError, isWorkspaceNotificationType, isZipFile, loadOfflineDocument, mailDraftIdFromContent, mailJson, markMessageAsFailed, markNarrationSettled, migrateLegacyThreadDocuments, mountDiditVerification, nextAliasSuggestion, notificationUserName, openAccessRequest, parseActivityContent, parseDashboardSpec, parseDeleteAccountBlockers, pendingChatModelSave, peopleDirectory, personOfUser, pickRecentWorkspaces, prepareUploadFiles, queryOfChart, recordsOf, redlineStats, refuseChatWhenOffline, registerArbiMutationDefaults, registerAttachedRun, removeSettledNarration, requestPersistentStorage, resetCalendarAccountSyncState, resetMessageContent, resolveActiveWorkspace, resolveConfigModel, resolveReplyTarget, rollbackOptimisticDocumentEdit, safePortalUrl, serializeDashboardSpec, serverNotificationBellEntry, setMessageContent, setUserInputRequest, setWorkOfflineIn, signatureNotificationPhrase, signatureRequestMeta, subscribeDocumentReads, supportsHouseTemplates, textToArtifact, threadBinding, threadEndingAtContains, titleFromQuestion, toChatCitations, toNotificationPreferences, toRedlineMarkdown, toShellWorkspace, updateMessageWithMetadata, updateUserMessageInCache, updateUserMessageStateInCache, uploadFolderOf, uploadedDocumentFolder, useActOnStep, useActiveConfigId, useAddChatMembers, useAddDatabaseRows, useAddHolidayCalendar, useAddProjectAddonBlock, useAddWorkspaceMembers, useAddonQuote, useAgentChats, useAgentConfig, useAgentDmStatus, useAgentModels, useAgentRunControl, useAgentSession, useAgentWorkspaces, useAiTask, useAnswerAgentQuestion, useApplyChatModel, useArbiConnected, useArbiShellWorkspaces, useArbiWebSocket, useArbiWsContext, useArbiWsMessage, useArbiWsStatus, useArchiveProgressPolling, useArchiveWorkspace, useAskAgain, useAssignDocTags, useAssistantName, useAuthorizeLimits, useAutoSendDraft, useBookingPages, useBootTimeout, useBranchNavigation, useCalDavProfiles, useCalendarAccounts, useCalendarEvent, useCalendarEventByUid, useCalendarEvents, useCalendarInvitations, useCalendarOutbox, useCalendarOverlays, useCalendarSettings, useCalendarShares, useCalendarSupport, useCalendars, useCameraStream, useCanEditShared, useCancelDriveSync, useCancelMailboxSync, useCancelManyPendingSync, useCancelProjectSubscription, useCancelWorkspaceTransfer, useChangeProjectPlan, useChargeWatch, useChatArrivals, useChatPost, useChatSummaries, useChatThread, useChatUnreadTotal, useChats, useClaimNativeAlias, useClaimSecureMail, useCloseAgentSession, useCommandPalette, useConfigSchema, useConfirmEmailChange, useConnectCalDavAccount, useConnectMailAccount, useConnectOAuthAccount, useConnectRunStream, useConnectorAutoSync, useConnectorCatalog, useConnectorVendorVisibility, useContacts, useConversation, useConversationActions, useConversationActivity, useConversationData, useConversationDocuments, useConversationIsShared, useConversationItems, useConversationPendingAuth, useConversationSearch, useConversationSettings, useConversationTurn, useConversationUsage, useConversationWorkspace, useCreateAgent, useCreateCalendar, useCreateContact, useCreateDatabase, useCreateEvent, useCreateFact, useCreateFacts, useCreateGroupChat, useCreateProject, useCreateProjectCheckout, useCreateRoom, useCreateSupportTicket, useCreateWork, useCreateWorkflow, useCreateWorkspace, useCurrentSessionId, useCurrentWorkspace, useDashboardStore, useDataSources, useDatabase, useDatabaseAggregate, useDatabaseDashboardStore, useDatabaseRows, useDatabases, useDecideCounter, useDeleteAccount, useDeleteAccountFlow, useDeleteBookingPage, useDeleteCalendar, useDeleteChatMessage, useDeleteConfig, useDeleteContact, useDeleteConversation, useDeleteDashboard, useDeleteDatabase, useDeleteDatabaseRows, useDeleteDocuments, useDeleteEvent, useDeleteFact, useDeleteMessage, useDeleteNotifications, useDeleteProject, useDeleteSkill, useDeleteWorkflow, useDeleteWorkspaces, useDirectModelUsage, useDisconnectCalendarAccount, useDisconnectConnector, useDisconnectMailAccount, useDisconnectSlack, useDismissedTips, useDocumentAutoAdd, useDocumentHostActions, useDocumentPendingSync, useDocumentThumbnails, useDocumentsSupport, useDownloadDocuments, useDriveFolderChildren, useDriveFolderDocCount, useDriveFolders, useDriveSyncEstimate, useDriveSyncProgress, useEmailChange, useEnableDriveSync, useEnableMailboxSync, useExportDatabase, useFacts, useFactsSearch, useFetchCalendarEvent, useFilteredProjects, useFinaliseTranslation, useFindTime, useFollowThread, useFreeBusy, useGenerateAgentAvatar, useGenerateDocTags, useGrantAgentAccess, useHolidayCountries, useHouseTemplateCandidates, useIdentityVerification, useIdentityVerificationFlow, useImportCalendar, useImportContacts, useImportDatabase, useImportDatabaseRows, useInstallSkillPack, useInvalidateAfterTransfer, useInvalidateProjects, useInvalidateStorage, useInviteContacts, useIsSlow, useIsWorkspaceOwner, useKeepDocumentsOffline, useLinkContact, useLinkMentions, useMailAccounts, useMailAttachmentText, useMailCache, useMailClient, useMailDraftCompose, useMailDraftEditor, useMailDraftReplaced, useMailFolders, useMailMessage, useMailMessages, useMailOnline, useMailPolicy, useMailProjects, useMailUnlock, useMailboxFolders, useMailboxSyncProgress, useMarkChatRead, useMarkDocumentShared, useMarkNotificationsRead, useMcpTools, useMentionCandidates, useMessageTimer, useModelConnections, useMoveEvent, useMoveWorkspaceToProject, useMyConnectors, useNotificationPreferences, useNotifications, useNotifyConversation, useOfflineDocumentIds, useOpenSelectedWorkspace, useOpenViewerDocumentId, usePanelDataset, usePassageQuotes, usePasswordChange, usePasswordChangeForm, usePendingSyncCounts, usePendingSyncItems, usePeople, usePeopleSearch, usePlanQuote, usePlanWork, usePlanWorkspaceTransfer, usePreviewProjectPlanChange, useProcessingTask, useProcessingTasks, useProducts, useProjectBillingPortal, useProjectConversationUsage, useProjectEvents, usePublishCalendar, useRateSupportTicket, useReconnect, useRefreshCalendar, useRefreshConnectorsOnRunEnd, useRefreshProject, useRelatedDocuments, useRemoveChatMember, useRemoveDocTags, useRemoveDocumentsOffline, useRemoveModelConnection, useRemoveWorkspaceMembers, useRenameChat, useRenameFolder, useRequestEmailChange, useRequestWorkspaceAccess, useRespondToEvent, useResumeCalendarAccountConnect, useResumeWorkspaceTransfer, useRevokeAgentAccess, useRooms, useRunConversation, useRunWorkflow, useSaveAgentConfig, useSaveBookingPage, useSaveCalendarSettings, useSaveConfig, useSaveConfigField, useSaveDashboard, useSaveMailDraft, useSaveModelConnection, useSaveSkill, useSavedDashboards, useSearchContacts, useSearchDatabaseRows, useSearchFacts, useSemanticSearch, useSendBackStep, useSendMail, useSessions, useSetDeploymentHouseTemplate, useSetSkillVisibility, useSetWorkspaceHouseTemplate, useSetWorkspaceMemberRoles, useShareCalendar, useShellWorkspaces, useSignOut, useSkillSource, useSkills, useSlackConnection, useStartAgentSession, useStartCalendarAccountOAuth, useStartTaskQuery, useStartWorkspaceTransfer, useStorageActions, useStorageItemNames, useStorageItems, useStorageProjects, useStorageSnapshots, useStreamHandlers, useSubscribeCalendar, useSupportTicket, useSupportTickets, useSwitchWorkspace, useSyncAccountsOnOpen, useSyncCalendarAccount, useTerminateSession, useThinkingContent, useThreadDocument, useTriggerDriveSync, useTriggerMailboxSync, useUnarchiveWorkspace, useUnlockModelConnections, useUnreadByPeer, useUnshareCalendar, useUpdateCalendar, useUpdateCalendarAccount, useUpdateContact, useUpdateConversation, useUpdateDatabase, useUpdateDatabaseRow, useUpdateDocTag, useUpdateDocuments, useUpdateEvent, useUpdateFact, useUpdateMailMessage, useUpdateProjectAddonSettings, useUpdateProjectFields, useUpdateProjectNextPeriodAddons, useUpdateWorkflow, useUpdateWorkspace, useUploadDocuments, useUploadFiles, useUploadFromUrls, useUploadSkillFiles, useUploadUrls, useVideoRecorder, useWorkItems, useWorkNotifications, useWorkOffline, useWorkflowRuns, useWorkflows, useWorkspaceArchive, useWorkspaceDocs, useWorkspaceExportDownload, useWorkspaceNotificationLevel, useWorkspaceProcessing, useWorkspaceRole, useWorkspaceTransfer, useWorkspaceTransfers, useWorkspaceTrash, useWorkspaceUsers, userDisplayName, userInitials, viewsOfTable, waitForResponseId, wipeOfflineDocuments, withRelativePath, workflowStepOf, workspaceHouseTemplateId };
15010
15036
  //# sourceMappingURL=index.js.map
15011
15037
  //# sourceMappingURL=index.js.map