@arbidocs/react 0.5.74 → 0.5.76

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 (70) hide show
  1. package/README.md +6 -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-6PNLCGMJ.js → chunk-2MECTZLS.js} +9 -5
  7. package/dist/chunk-2MECTZLS.js.map +1 -0
  8. package/dist/{chunk-R7YNABZY.js → chunk-2Y6LJNWA.js} +2 -2
  9. package/dist/{chunk-R7YNABZY.js.map → chunk-2Y6LJNWA.js.map} +1 -1
  10. package/dist/{chunk-YWU7HEHL.js → chunk-33PVGKXT.js} +78 -4
  11. package/dist/chunk-33PVGKXT.js.map +1 -0
  12. package/dist/{chunk-Y7S2SQH3.cjs → chunk-5YGUBXXH.cjs} +2 -2
  13. package/dist/{chunk-Y7S2SQH3.cjs.map → chunk-5YGUBXXH.cjs.map} +1 -1
  14. package/dist/{chunk-BF7ABX3X.cjs → chunk-6RSVGLQY.cjs} +106 -31
  15. package/dist/chunk-6RSVGLQY.cjs.map +1 -0
  16. package/dist/{chunk-LMW46NBD.cjs → chunk-AXKHDLBB.cjs} +9 -7
  17. package/dist/chunk-AXKHDLBB.cjs.map +1 -0
  18. package/dist/{chunk-ZTPJNKF2.js → chunk-CSPAEVZS.js} +9 -7
  19. package/dist/chunk-CSPAEVZS.js.map +1 -0
  20. package/dist/{chunk-3BFSALPC.cjs → chunk-IHKQPOPK.cjs} +110 -122
  21. package/dist/chunk-IHKQPOPK.cjs.map +1 -0
  22. package/dist/{chunk-2LV53J46.js → chunk-JHN4PKWX.js} +3 -3
  23. package/dist/{chunk-2LV53J46.js.map → chunk-JHN4PKWX.js.map} +1 -1
  24. package/dist/{chunk-3NBPMR3X.js → chunk-LBAGMNGG.js} +109 -121
  25. package/dist/chunk-LBAGMNGG.js.map +1 -0
  26. package/dist/{chunk-GOJHU7RZ.cjs → chunk-MWW54PY6.cjs} +25 -25
  27. package/dist/{chunk-GOJHU7RZ.cjs.map → chunk-MWW54PY6.cjs.map} +1 -1
  28. package/dist/{chunk-4DTTEUVY.js → chunk-O2HDONQE.js} +4 -4
  29. package/dist/{chunk-4DTTEUVY.js.map → chunk-O2HDONQE.js.map} +1 -1
  30. package/dist/{chunk-SI7DJWBT.js → chunk-OR6B7IL2.js} +3 -3
  31. package/dist/{chunk-SI7DJWBT.js.map → chunk-OR6B7IL2.js.map} +1 -1
  32. package/dist/{chunk-C5SVEWPU.cjs → chunk-PMHFLOXY.cjs} +27 -22
  33. package/dist/chunk-PMHFLOXY.cjs.map +1 -0
  34. package/dist/{chunk-TGSEQGM3.cjs → chunk-QEVM3F5X.cjs} +4 -4
  35. package/dist/{chunk-TGSEQGM3.cjs.map → chunk-QEVM3F5X.cjs.map} +1 -1
  36. package/dist/{chunk-ZNQPUPX6.cjs → chunk-RDERZWMO.cjs} +16 -16
  37. package/dist/{chunk-ZNQPUPX6.cjs.map → chunk-RDERZWMO.cjs.map} +1 -1
  38. package/dist/document-tools/core.cjs +99 -99
  39. package/dist/document-tools/core.js +3 -3
  40. package/dist/document-tools/index.cjs +101 -101
  41. package/dist/document-tools/index.js +4 -4
  42. package/dist/index.cjs +1258 -1124
  43. package/dist/index.cjs.map +1 -1
  44. package/dist/{index.d-B0dosFZc.d.cts → index.d-BTbjugKS.d.cts} +9 -2
  45. package/dist/{index.d-B0dosFZc.d.ts → index.d-BTbjugKS.d.ts} +9 -2
  46. package/dist/{index.d-AT7wdTWC.d.cts → index.d-Deqz5-pF.d.cts} +2 -2
  47. package/dist/{index.d-AT7wdTWC.d.ts → index.d-Deqz5-pF.d.ts} +2 -2
  48. package/dist/index.d.cts +78 -15
  49. package/dist/index.d.ts +78 -15
  50. package/dist/index.js +169 -47
  51. package/dist/index.js.map +1 -1
  52. package/dist/shell/index.cjs +32 -32
  53. package/dist/shell/index.d.cts +1 -1
  54. package/dist/shell/index.d.ts +1 -1
  55. package/dist/shell/index.js +1 -1
  56. package/dist/ui/index.cjs +148 -148
  57. package/dist/ui/index.d.cts +1 -1
  58. package/dist/ui/index.d.ts +1 -1
  59. package/dist/ui/index.js +1 -1
  60. package/dist/viewers/index.cjs +2 -2
  61. package/dist/viewers/index.js +1 -1
  62. package/package.json +3 -3
  63. package/dist/chunk-3BFSALPC.cjs.map +0 -1
  64. package/dist/chunk-3NBPMR3X.js.map +0 -1
  65. package/dist/chunk-6PNLCGMJ.js.map +0 -1
  66. package/dist/chunk-BF7ABX3X.cjs.map +0 -1
  67. package/dist/chunk-C5SVEWPU.cjs.map +0 -1
  68. package/dist/chunk-LMW46NBD.cjs.map +0 -1
  69. package/dist/chunk-YWU7HEHL.js.map +0 -1
  70. package/dist/chunk-ZTPJNKF2.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,24 +1,24 @@
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-6PNLCGMJ.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, useIsEntitled, useMeetingReadOnly, useNameEditor, useOpenCallMeetingChat, useProfile, useRecordingActions, useRecordingWindows, useRevokeCallInviteLink, useSaveToThread, useServerCallsEnabled, useServerCallsExperimental, useUpdateProfile, useUpdateUserSettings, useUserSettings, wrapTrackKey, writeSamples } from './chunk-6PNLCGMJ.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-2LV53J46.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-2LV53J46.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-YWU7HEHL.js';
7
- export { DEFAULT_DOCUMENT_VIEWER_STATE, EMPTY_CHAT_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, defaultLayoutState, dmTabId, flushOnPageExit, isPanelOpen, isUsageMetered, layoutActionsOf, nextViewingDocument, openPanelIn, panelPlace, parseSavedChat, parseSavedLayout, queuedMessages, readWorkspaceLastOpened, restoreLayout, savedChatOf, 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-YWU7HEHL.js';
8
- import { fetchDocumentFile, downloadBlob, fetchMarkupPdf, fetchDocumentPdf } from './chunk-SI7DJWBT.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-2MECTZLS.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-2MECTZLS.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-JHN4PKWX.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-JHN4PKWX.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-33PVGKXT.js';
7
+ export { DEFAULT_DOCUMENT_VIEWER_STATE, EMPTY_CHAT_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, parseSavedLayout, queuedMessages, readWorkspaceLastOpened, restoreLayout, savedChatOf, 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-33PVGKXT.js';
8
+ import { fetchDocumentFile, downloadBlob, fetchMarkupPdf, fetchDocumentPdf } from './chunk-OR6B7IL2.js';
9
9
  import { arbiMutationKeys, arbiQueryKeys, mailQueryKeys, connectorQueryKeys, calendarQueryKeys } from './chunk-AOEJ744V.js';
10
10
  export { arbiMutationKeys, arbiQueryKeys, calendarQueryKeys, callQueryKeys, connectorQueryKeys, isUnderQueryKey, mailQueryKeys } from './chunk-AOEJ744V.js';
11
- import { useArbi, useArbiHost } from './chunk-R7YNABZY.js';
12
- export { useArbi, useArbiHost, useDeploymentDomain } from './chunk-R7YNABZY.js';
13
- import { ArbiHost, extractMentions, UNBOUND, bindingOfRow, readLegacyThreadDocuments, forgetLegacyThreadDocuments, toMessageMentions, takeDocumentForTurn, hasMessageBody, createSearchSession, clearSearchSession } from './chunk-ZTPJNKF2.js';
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-ZTPJNKF2.js';
11
+ import { useArbi, useArbiHost } from './chunk-2Y6LJNWA.js';
12
+ export { useArbi, useArbiHost, useDeploymentDomain } from './chunk-2Y6LJNWA.js';
13
+ import { ArbiHost, linkMentions, extractMentions, UNBOUND, bindingOfRow, readLegacyThreadDocuments, forgetLegacyThreadDocuments, toMessageMentions, takeDocumentForTurn, hasMessageBody, createSearchSession, clearSearchSession } from './chunk-CSPAEVZS.js';
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';
16
16
  export { DEFAULT_NOTIFY_TONE, MAX_SESSION_NOTIFICATIONS, clearChatArtifacts, configureNotify, getChatArtifact, getChatArtifacts, notify, persistNotifyHistory, recordChatArtifact, seedNotifications, selectUnread, toast, useChatArtifact, useConversationChatArtifact, useMessageChatArtifact, useNotify } from './chunk-G4Z3IP4J.js';
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-3NBPMR3X.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-3NBPMR3X.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-LBAGMNGG.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-LBAGMNGG.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';
@@ -161,7 +161,7 @@ function useStartTaskQuery() {
161
161
  const arbi = useArbi();
162
162
  const queryClient = useQueryClient();
163
163
  const chatModel = useArbiSessionState((s) => s.chatModel);
164
- const post = useMutation({
164
+ const post2 = useMutation({
165
165
  mutationFn: (query) => {
166
166
  const selectedConfig = chatModel || queryClient.getQueriesData({ queryKey: arbiQueryKeys.userSettings() }).map(([, settings]) => settings?.last_config).find(Boolean);
167
167
  return arbi.assistant.submit(query.input, {
@@ -198,11 +198,11 @@ function useStartTaskQuery() {
198
198
  return { conversationId };
199
199
  };
200
200
  return {
201
- isPending: post.isPending,
201
+ isPending: post2.isPending,
202
202
  /** Look again for the thread of a run whose start threw {@link TaskThreadPendingError}. */
203
203
  findThread: (messageId) => lookUpThread(messageId, 1),
204
204
  start: async (query) => {
205
- const accepted = await post.mutateAsync(query);
205
+ const accepted = await post2.mutateAsync(query);
206
206
  const found = await lookUpThread(
207
207
  accepted.id,
208
208
  THREAD_LOOKUP_ATTEMPTS,
@@ -1346,18 +1346,32 @@ function useSetWorkspaceMemberRoles() {
1346
1346
 
1347
1347
  // src/chat/conversation-mentions.ts
1348
1348
  var ASSISTANT_MENTION_LABEL = "ARBI";
1349
- function buildMentionCandidates(users, currentUserId) {
1349
+ function assistantLabels(assistantName = ASSISTANT_MENTION_LABEL) {
1350
+ return assistantName.toLowerCase() === ASSISTANT_MENTION_LABEL.toLowerCase() ? [assistantName] : [assistantName, ASSISTANT_MENTION_LABEL];
1351
+ }
1352
+ function useAssistantName() {
1353
+ return useArbiHost().assistantName?.trim() || ASSISTANT_MENTION_LABEL;
1354
+ }
1355
+ function useLinkMentions() {
1356
+ const assistantName = useAssistantName();
1357
+ return useCallback(
1358
+ (content, mentions) => linkMentions(content, mentions, [assistantName]),
1359
+ [assistantName]
1360
+ );
1361
+ }
1362
+ function buildMentionCandidates(users, currentUserId, assistantName = ASSISTANT_MENTION_LABEL) {
1350
1363
  const people = users.filter((wu) => !wu.agent_ext_id && wu.user.external_id !== currentUserId).map((wu) => ({
1351
1364
  id: wu.user.external_id,
1352
1365
  kind: "user",
1353
1366
  label: getUserDisplayName(wu.user),
1354
1367
  description: wu.user.email
1355
1368
  })).sort((a, b) => a.label.localeCompare(b.label));
1356
- return [{ id: "assistant", kind: "assistant", label: ASSISTANT_MENTION_LABEL }, ...people];
1369
+ return [{ id: "assistant", kind: "assistant", label: assistantName }, ...people];
1357
1370
  }
1358
- function cachedMentionCandidates(queryClient, workspaceId, currentUserId) {
1371
+ function cachedMentionCandidates(queryClient, workspaceId, currentUserId, assistantName = ASSISTANT_MENTION_LABEL) {
1359
1372
  const users = workspaceId && queryClient.getQueryData(arbiQueryKeys.workspaceUsers(workspaceId)) || [];
1360
- return buildMentionCandidates(users, currentUserId);
1373
+ const aliases = assistantLabels(assistantName).slice(1).map((label) => ({ id: "assistant", kind: "assistant", label }));
1374
+ return [...buildMentionCandidates(users, currentUserId, assistantName), ...aliases];
1361
1375
  }
1362
1376
  function cachedAssistantMode(queryClient, conversationId, newMode) {
1363
1377
  if (!conversationId) return newMode;
@@ -1375,7 +1389,11 @@ function isCommentToPeople(queryClient, conversationId, content, candidates) {
1375
1389
  function useMentionCandidates() {
1376
1390
  const { data: users = [] } = useWorkspaceUsers();
1377
1391
  const currentUserId = useArbiSession().user?.external_id;
1378
- return useMemo(() => buildMentionCandidates(users, currentUserId), [users, currentUserId]);
1392
+ const assistantName = useAssistantName();
1393
+ return useMemo(
1394
+ () => buildMentionCandidates(users, currentUserId, assistantName),
1395
+ [users, currentUserId, assistantName]
1396
+ );
1379
1397
  }
1380
1398
  function isFullConfig(config) {
1381
1399
  return config != null && "QueryLLM" in config;
@@ -3770,13 +3788,19 @@ var DOCUMENT_FAMILIES = [
3770
3788
  "documentVersions",
3771
3789
  "similarDocuments"
3772
3790
  ];
3773
- var OFFLINE_READABLE = [...DOCUMENT_FAMILIES, "workspaces", "userSettings", "projects"];
3791
+ var OFFLINE_READABLE = [
3792
+ ...DOCUMENT_FAMILIES,
3793
+ "workspaces",
3794
+ "userSettings",
3795
+ "projects",
3796
+ "entitlements"
3797
+ ];
3774
3798
  function isOfflineReadableArbiQuery(queryKey) {
3775
3799
  return queryKey[0] === "arbi" && OFFLINE_READABLE.includes(queryKey[1]);
3776
3800
  }
3777
3801
  function isRestorableArbiQueryOnline(queryKey, data) {
3778
3802
  if (queryKey[0] !== "arbi") return true;
3779
- if (queryKey[1] === "documents") return false;
3803
+ if (queryKey[1] === "documents" || queryKey[1] === "entitlements") return false;
3780
3804
  if (!DOCUMENT_FAMILIES.includes(queryKey[1])) return true;
3781
3805
  const docs = Array.isArray(data) ? data : [data];
3782
3806
  return !docs.some((doc) => {
@@ -4106,15 +4130,78 @@ function useRemoveDocumentsOffline() {
4106
4130
  });
4107
4131
  }
4108
4132
 
4133
+ // src/chat/sibling-tabs.ts
4134
+ var SIBLING_TABS_CHANNEL = "arbi:conversation-messages";
4135
+ var channel = null;
4136
+ var listeners = 0;
4137
+ function post(message) {
4138
+ if (typeof BroadcastChannel === "undefined") return;
4139
+ if (channel) {
4140
+ channel.postMessage(message);
4141
+ return;
4142
+ }
4143
+ const once = new BroadcastChannel(SIBLING_TABS_CHANNEL);
4144
+ once.postMessage(message);
4145
+ once.close();
4146
+ }
4147
+ function announceToSiblingTabs(userId, conversationId, messageId) {
4148
+ if (!userId || !messageId || !conversationId || conversationId === "new") return;
4149
+ const message = {
4150
+ type: "conversation.message_posted",
4151
+ conversation_ext_id: conversationId,
4152
+ message_ext_id: messageId,
4153
+ user_ext_id: userId
4154
+ };
4155
+ try {
4156
+ post(message);
4157
+ } catch {
4158
+ }
4159
+ }
4160
+ function listenToSiblingTabs(me, onMessage) {
4161
+ if (typeof BroadcastChannel === "undefined") return () => {
4162
+ };
4163
+ channel ??= new BroadcastChannel(SIBLING_TABS_CHANNEL);
4164
+ const ch = channel;
4165
+ listeners += 1;
4166
+ const listener = (event) => {
4167
+ const data = event.data;
4168
+ if (data?.type !== "conversation.message_posted" || !data.conversation_ext_id || !data.message_ext_id)
4169
+ return;
4170
+ const user = me();
4171
+ if (!user || data.user_ext_id !== user) return;
4172
+ onMessage(data);
4173
+ };
4174
+ ch.addEventListener("message", listener);
4175
+ let listening = true;
4176
+ return () => {
4177
+ if (!listening) return;
4178
+ listening = false;
4179
+ ch.removeEventListener("message", listener);
4180
+ listeners -= 1;
4181
+ if (listeners === 0 && channel === ch) {
4182
+ ch.close();
4183
+ channel = null;
4184
+ }
4185
+ };
4186
+ }
4187
+
4109
4188
  // src/chat/stream-handlers.ts
4110
4189
  var MIN_NARRATION_DWELL_MS = 4e3;
4111
4190
  var FIRST_TOKEN_MEASURE = "arbi:send-message:first-token";
4191
+ function announceTurnEnded(userId, streamState) {
4192
+ if (streamState.endAnnounced) return;
4193
+ const messageId = streamState.assistantId ?? streamState.userMessageId;
4194
+ if (!messageId) return;
4195
+ streamState.endAnnounced = true;
4196
+ announceToSiblingTabs(userId, streamState.conversationId, messageId);
4197
+ }
4112
4198
  function createStreamHandlers(ctx, params) {
4113
4199
  const { queryClient, session, host } = ctx;
4114
4200
  const { streamState, parentMessageId, parentId } = params;
4115
4201
  let turnUserMessageId = null;
4116
4202
  let queuedEntryRetired = false;
4117
4203
  const isViewingConversation = () => session.getState().conversationId === streamState.conversationId;
4204
+ const tellOtherTabs = (messageId) => announceToSiblingTabs(ctx.userId(), streamState.conversationId, messageId);
4118
4205
  const retireQueuedEntry = () => {
4119
4206
  const clientId = streamState.queuedClientId;
4120
4207
  if (!clientId || queuedEntryRetired) return;
@@ -4179,6 +4266,7 @@ function createStreamHandlers(ctx, params) {
4179
4266
  }
4180
4267
  turnUserMessageId = userMessage.external_id;
4181
4268
  streamState.userMessageId = userMessage.external_id;
4269
+ tellOtherTabs(userMessage.external_id);
4182
4270
  if (streamState.queuedContinuation) {
4183
4271
  retireQueuedEntry();
4184
4272
  const viewedLeaf = session.getState().cursor;
@@ -4263,6 +4351,7 @@ function createStreamHandlers(ctx, params) {
4263
4351
  }
4264
4352
  void invalidateConversationLists(queryClient);
4265
4353
  session.setCursor(streamState.assistantId);
4354
+ tellOtherTabs(streamState.assistantId);
4266
4355
  };
4267
4356
  let firstTokenSeen = false;
4268
4357
  const markFirstToken = () => {
@@ -4420,6 +4509,7 @@ function createStreamHandlers(ctx, params) {
4420
4509
  if (streamState.assistantId) {
4421
4510
  markMessageAsFailed(queryClient, streamState.conversationId, streamState.assistantId);
4422
4511
  }
4512
+ announceTurnEnded(ctx.userId(), streamState);
4423
4513
  };
4424
4514
  const handleComplete = () => {
4425
4515
  console.debug("[SSE] Stream complete");
@@ -4430,6 +4520,7 @@ function createStreamHandlers(ctx, params) {
4430
4520
  });
4431
4521
  }
4432
4522
  flushStreamingTokens(queryClient);
4523
+ announceTurnEnded(ctx.userId(), streamState);
4433
4524
  if (streamState.assistantId) {
4434
4525
  session.clearAgentControl(streamState.assistantId);
4435
4526
  }
@@ -4553,9 +4644,9 @@ function cachedQuotaUsedUp(queryClient, workspaceId) {
4553
4644
 
4554
4645
  // src/chat/useConversationActions.ts
4555
4646
  var RECONCILE_TIMEOUT_MS = 5e3;
4556
- function draftAfterSend(queryClient, session, wasComment) {
4647
+ function draftAfterSend(queryClient, session, wasComment, assistantName) {
4557
4648
  const shared = isConversationShared(queryClient, session.getState().conversationId);
4558
- return shared && !wasComment ? `@${ASSISTANT_MENTION_LABEL} ` : "";
4649
+ return shared && !wasComment ? `@${assistantName} ` : "";
4559
4650
  }
4560
4651
  function failQueuedContinuation(queryClient, session, streamState) {
4561
4652
  if (streamState.queuedUserMessageId) {
@@ -4597,9 +4688,15 @@ function useConversationActions({
4597
4688
  useState(() => watchConversationWorkspaces(queryClient, session));
4598
4689
  const createHandlers = useStreamHandlers();
4599
4690
  const chatHost = useArbiHost().chat;
4691
+ const assistantName = useAssistantName();
4600
4692
  const mentionCandidates = useCallback(
4601
- () => cachedMentionCandidates(queryClient, session.getState().workspaceId, signedInUserId(arbi)),
4602
- [queryClient, session, arbi]
4693
+ () => cachedMentionCandidates(
4694
+ queryClient,
4695
+ session.getState().workspaceId,
4696
+ signedInUserId(arbi),
4697
+ assistantName
4698
+ ),
4699
+ [queryClient, session, arbi, assistantName]
4603
4700
  );
4604
4701
  const stoppedStreamRef = useRef(null);
4605
4702
  const stopInFlightRef = useRef(false);
@@ -4851,6 +4948,7 @@ function useConversationActions({
4851
4948
  }
4852
4949
  });
4853
4950
  flushStreamingTokens(queryClient);
4951
+ announceTurnEnded(signedInUserId(arbi) ?? "", streamState);
4854
4952
  if (queuedContinuation && !streamState.hasStreamStarted) {
4855
4953
  if (streamState.queuedFailed) failQueuedContinuation(queryClient, session, streamState);
4856
4954
  return;
@@ -4920,6 +5018,7 @@ function useConversationActions({
4920
5018
  }
4921
5019
  if (streamState.isStopped() || isAbort) {
4922
5020
  console.debug("Message sending was aborted by user");
5021
+ announceTurnEnded(signedInUserId(arbi) ?? "", streamState);
4923
5022
  clearLoadingState(queryClient, streamState.conversationId);
4924
5023
  void queryClient.invalidateQueries({
4925
5024
  queryKey: getThreadsQueryKey(streamState.conversationId)
@@ -4988,7 +5087,8 @@ function useConversationActions({
4988
5087
  const handleSendMessage = useCallback(
4989
5088
  async (options) => {
4990
5089
  const currentMessage = selectDraft(session.getState()).trim();
4991
- if (!selectedWorkspaceId || !hasMessageBody(currentMessage)) return;
5090
+ if (!selectedWorkspaceId || !hasMessageBody(currentMessage, assistantLabels(assistantName)))
5091
+ return;
4992
5092
  session.setSuggestedQuery(null);
4993
5093
  if (refuseChatWhenOffline()) return;
4994
5094
  if (isGenerating) {
@@ -4997,7 +5097,7 @@ function useConversationActions({
4997
5097
  const streamingAssistantId = genState?.streamingAssistantId;
4998
5098
  const route = routeMessage(currentMessage);
4999
5099
  if (route.isComment && streamingAssistantId) {
5000
- session.setDraft(draftAfterSend(queryClient, session, route.isComment));
5100
+ session.setDraft(draftAfterSend(queryClient, session, route.isComment, assistantName));
5001
5101
  await postComment(currentMessage, streamingAssistantId, route.mentions);
5002
5102
  return;
5003
5103
  }
@@ -5006,7 +5106,7 @@ function useConversationActions({
5006
5106
  const isPause = command === AGENT_CONTROL_COMMANDS.pause;
5007
5107
  const isResume = command === AGENT_CONTROL_COMMANDS.resume;
5008
5108
  const isReport = command === AGENT_CONTROL_COMMANDS.report || command.startsWith(`${AGENT_CONTROL_COMMANDS.report} `);
5009
- session.setDraft(draftAfterSend(queryClient, session, route.isComment));
5109
+ session.setDraft(draftAfterSend(queryClient, session, route.isComment, assistantName));
5010
5110
  if (isPause) {
5011
5111
  session.setAgentControlState(streamingAssistantId, "pausing");
5012
5112
  } else if (isResume) {
@@ -5037,7 +5137,9 @@ function useConversationActions({
5037
5137
  return;
5038
5138
  }
5039
5139
  const parentId = session.getState().cursor;
5040
- session.setDraft(draftAfterSend(queryClient, session, routeMessage(currentMessage).isComment));
5140
+ session.setDraft(
5141
+ draftAfterSend(queryClient, session, routeMessage(currentMessage).isComment, assistantName)
5142
+ );
5041
5143
  await sendMessage(currentMessage, parentId, options);
5042
5144
  },
5043
5145
  [
@@ -5048,7 +5150,8 @@ function useConversationActions({
5048
5150
  arbi,
5049
5151
  routeMessage,
5050
5152
  postComment,
5051
- queryClient
5153
+ queryClient,
5154
+ assistantName
5052
5155
  ]
5053
5156
  );
5054
5157
  const handleAbortGeneration = useCallback(async () => {
@@ -5697,6 +5800,7 @@ function useConversation(options = {}) {
5697
5800
  [agentId, stagedFiles, deselected]
5698
5801
  );
5699
5802
  const { handleSendMessage, handleCreateBranch } = actions;
5803
+ const assistantName = useAssistantName();
5700
5804
  const send = useCallback(
5701
5805
  async (text2) => {
5702
5806
  const trimmed = text2.trim();
@@ -5706,7 +5810,12 @@ function useConversation(options = {}) {
5706
5810
  conversationKey2,
5707
5811
  selectedIds.map((docId) => ({ docId, isPinned: false }))
5708
5812
  );
5709
- const candidates = cachedMentionCandidates(queryClient, workspaceId, signedInUserId2(arbi));
5813
+ const candidates = cachedMentionCandidates(
5814
+ queryClient,
5815
+ workspaceId,
5816
+ signedInUserId2(arbi),
5817
+ assistantName
5818
+ );
5710
5819
  const isComment = isCommentToPeople(queryClient, conversationId, trimmed, candidates);
5711
5820
  session.setDraft(isComment ? trimmed : withStagedFiles(trimmed));
5712
5821
  if (isComment) setIsPostingComment(true);
@@ -5726,7 +5835,8 @@ function useConversation(options = {}) {
5726
5835
  arbi,
5727
5836
  conversationId,
5728
5837
  withStagedFiles,
5729
- handleSendMessage
5838
+ handleSendMessage,
5839
+ assistantName
5730
5840
  ]
5731
5841
  );
5732
5842
  const branch = useCallback(
@@ -7156,6 +7266,9 @@ function useArbiWsContext() {
7156
7266
  }
7157
7267
  return ctx;
7158
7268
  }
7269
+ function signedInId(arbi) {
7270
+ return arbi.isLoggedIn ? arbi.user.identity()?.externalId ?? null : null;
7271
+ }
7159
7272
  var EVICTED_CLOSE_CODE = 1008;
7160
7273
  function ArbiWebSocketProvider({
7161
7274
  enabled = true,
@@ -7196,7 +7309,7 @@ function ArbiWebSocketProvider({
7196
7309
  let conn = null;
7197
7310
  let cancelled = false;
7198
7311
  let evicted = false;
7199
- const me = () => arbiRef.current.isLoggedIn ? arbiRef.current.user.identity()?.externalId ?? null : null;
7312
+ const me = () => signedInId(arbiRef.current);
7200
7313
  const onMessage = (msg) => {
7201
7314
  const type = msg.type;
7202
7315
  if (type === "connection_closed") {
@@ -7304,6 +7417,13 @@ function ArbiWebSocketProvider({
7304
7417
  reset();
7305
7418
  };
7306
7419
  }, [enabled, queryClient, setStatus, setEvicted, applyTaskUpdate, applyPresence, reset]);
7420
+ useEffect(() => {
7421
+ if (!enabled) return;
7422
+ return listenToSiblingTabs(
7423
+ () => signedInId(arbiRef.current),
7424
+ (message) => void applyConversationEvent(queryClient, message)
7425
+ );
7426
+ }, [enabled, queryClient]);
7307
7427
  return /* @__PURE__ */ jsx(ArbiWsContext.Provider, { value: context, children });
7308
7428
  }
7309
7429
  function useArbiWebSocket(onMessage) {
@@ -12469,6 +12589,7 @@ function CitationAnchor({
12469
12589
  );
12470
12590
  }
12471
12591
  var CITATION_MARKDOWN_COMPONENTS = { a: CitationAnchor };
12592
+ var DOCK_GAP_PX = 8;
12472
12593
  var CitationPopover = ({
12473
12594
  citationNum,
12474
12595
  messageId,
@@ -12608,7 +12729,7 @@ var CitationPopover = ({
12608
12729
  style: {
12609
12730
  left: dock.left,
12610
12731
  width: dock.width,
12611
- bottom: window.innerHeight - dock.top + 8
12732
+ bottom: window.innerHeight - dock.top + DOCK_GAP_PX
12612
12733
  },
12613
12734
  children: /* @__PURE__ */ jsxs(
12614
12735
  "div",
@@ -12617,7 +12738,8 @@ var CitationPopover = ({
12617
12738
  role: "dialog",
12618
12739
  tabIndex: -1,
12619
12740
  "aria-label": `Citation ${citationNum}`,
12620
- className: "pointer-events-auto z-[42] max-h-[45vh] outline-none w-[min(100%,48rem)] min-w-0 overflow-y-auto rounded-md border border-border bg-popover p-0 text-popover-foreground shadow-xl",
12741
+ style: { maxHeight: `min(45vh, ${Math.max(dock.top - 2 * DOCK_GAP_PX, 0)}px)` },
12742
+ className: "pointer-events-auto z-[42] outline-none w-[min(100%,48rem)] min-w-0 overflow-y-auto rounded-md border border-border bg-popover p-0 text-popover-foreground shadow-xl",
12621
12743
  "data-testid": `citation-popover-${citationNum}`,
12622
12744
  children: [
12623
12745
  /* @__PURE__ */ jsxs("div", { className: "px-3 py-2 pointer-coarse:py-0 border-b border-border sticky top-0 bg-popover z-10 flex items-center justify-between gap-2", children: [
@@ -13616,7 +13738,7 @@ function serverNotificationBellEntry(n, { open, workspaceHref, calendarTimeZone,
13616
13738
  title,
13617
13739
  variant,
13618
13740
  href: target?.kind === "workspace" ? workspaceHref?.(target.workspaceId) : void 0,
13619
- ...target && target.kind !== "workspace" && { actionLabel, onSelect: () => open(target) }
13741
+ ...target && { actionLabel: actionLabel ?? "Open", onSelect: () => open(target) }
13620
13742
  };
13621
13743
  }
13622
13744
 
@@ -14096,7 +14218,7 @@ function useChatPost() {
14096
14218
  const arbi = useArbi();
14097
14219
  const queryClient = useQueryClient();
14098
14220
  return useCallback(
14099
- async (target, post) => {
14221
+ async (target, post2) => {
14100
14222
  const me = myChatId(arbi);
14101
14223
  if (!me) throw new Error("No active session");
14102
14224
  let chat = target.chat;
@@ -14109,7 +14231,7 @@ function useChatPost() {
14109
14231
  (old) => old ?? { messages: [], hasMore: false }
14110
14232
  );
14111
14233
  }
14112
- const files = post.files ?? [];
14234
+ const files = post2.files ?? [];
14113
14235
  const optimisticId = `optimistic-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`;
14114
14236
  const now = (/* @__PURE__ */ new Date()).toISOString();
14115
14237
  const optimistic = {
@@ -14117,11 +14239,11 @@ function useChatPost() {
14117
14239
  chat_ext_id: chat.external_id,
14118
14240
  sender_ext_id: me,
14119
14241
  kind: "text",
14120
- content: post.text,
14242
+ content: post2.text,
14121
14243
  key_version: chat.key_version,
14122
14244
  deleted: false,
14123
- context_only: !!post.contextOnly,
14124
- workspace_ext_id: post.workspaceExtId ?? null,
14245
+ context_only: !!post2.contextOnly,
14246
+ workspace_ext_id: post2.workspaceExtId ?? null,
14125
14247
  created_at: now,
14126
14248
  updated_at: now,
14127
14249
  optimistic: true
@@ -14141,10 +14263,10 @@ function useChatPost() {
14141
14263
  )
14142
14264
  );
14143
14265
  }
14144
- const message = await arbi.chats.send(chat, post.text, {
14266
+ const message = await arbi.chats.send(chat, post2.text, {
14145
14267
  attachments,
14146
- ...post.workspaceExtId ? { workspaceExtId: post.workspaceExtId } : {},
14147
- contextOnly: !!post.contextOnly
14268
+ ...post2.workspaceExtId ? { workspaceExtId: post2.workspaceExtId } : {},
14269
+ contextOnly: !!post2.contextOnly
14148
14270
  });
14149
14271
  appendToThread(queryClient, chat.external_id, message, optimisticId);
14150
14272
  upsertChat(queryClient, {
@@ -14676,6 +14798,6 @@ function CommandPaletteProvider({
14676
14798
  ] });
14677
14799
  }
14678
14800
 
14679
- 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, appendTokenToMessage, applyConversationEvent, applyFinalContextToMessage, applyLiveUpdate, applyNotificationRow, applyOptimisticDocumentEdit, applyOutputItemToMessage, applyTaskEvent, arbiMailClient, archiveName, archivedWorkspaceMessage, bindThreadDocument, boundDocumentOf, bucketOf, bucketRange, buildDocumentMetadataRows, buildMentionCandidates, buildPendingFirstTurn, buildPendingSyncItem, buildWorkspaceArchive, cacheThreadBinding, cachedAssistantMode, cachedMentionCandidates, cachedQuotaUsedUp, calendarNotificationMeta, callNotificationMeta, captureFrameAsBlob, clearLoadingState, clearUserInputRequest, commitFinalMessage, completeQueuedUserMessageByContent, connectOAuthCalendarAccount, connectorErrorStatus, connectorReturnTo, 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, isOfflineReadableArbiQuery, isOrphanedUserMessage, isQueuedCalendarWrite, isReplayableArbiMutation, isRestorableArbiQueryOnline, 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, 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, useConversationTurn, useConversationUsage, useCreateAgent, useCreateCalendar, useCreateContact, useCreateDatabase, useCreateEvent, useCreateFact, useCreateFacts, useCreateGroupChat, useCreateProject, useCreateProjectCheckout, useCreateRoom, 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, 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, usePendingContacts, usePendingSyncCounts, usePendingSyncItems, usePeople, usePeopleSearch, usePlanQuote, usePlanWork, usePlanWorkspaceTransfer, usePreviewProjectPlanChange, useProcessingTask, useProcessingTasks, useProducts, useProjectBillingPortal, useProjectConversationUsage, useProjectEvents, usePublishCalendar, 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, 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 };
14801
+ 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, clearLoadingState, clearUserInputRequest, commitFinalMessage, completeQueuedUserMessageByContent, connectOAuthCalendarAccount, connectorErrorStatus, connectorReturnTo, 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, isOfflineReadableArbiQuery, isOrphanedUserMessage, isQueuedCalendarWrite, isReplayableArbiMutation, isRestorableArbiQueryOnline, 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, useConversationTurn, useConversationUsage, useCreateAgent, useCreateCalendar, useCreateContact, useCreateDatabase, useCreateEvent, useCreateFact, useCreateFacts, useCreateGroupChat, useCreateProject, useCreateProjectCheckout, useCreateRoom, 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, usePendingContacts, usePendingSyncCounts, usePendingSyncItems, usePeople, usePeopleSearch, usePlanQuote, usePlanWork, usePlanWorkspaceTransfer, usePreviewProjectPlanChange, useProcessingTask, useProcessingTasks, useProducts, useProjectBillingPortal, useProjectConversationUsage, useProjectEvents, usePublishCalendar, 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, 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 };
14680
14802
  //# sourceMappingURL=index.js.map
14681
14803
  //# sourceMappingURL=index.js.map