@arbidocs/react 0.5.60 → 0.5.62
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.
- package/dist/ProductionDialog.d-CpzslFn0.d.cts +51 -0
- package/dist/ProductionDialog.d-CpzslFn0.d.ts +51 -0
- package/dist/annotations/freeze/index.cjs +14 -14
- package/dist/annotations/freeze/index.js +3 -3
- package/dist/annotations/index.d.cts +3 -2
- package/dist/annotations/index.d.ts +3 -2
- package/dist/artifacts/index.cjs +12 -12
- package/dist/artifacts/index.js +5 -5
- package/dist/bundle-IC65W2AO.cjs +14 -0
- package/dist/{bundle-DCWPYNGD.cjs.map → bundle-IC65W2AO.cjs.map} +1 -1
- package/dist/bundle-YNOX7VIL.js +5 -0
- package/dist/{bundle-JCKKGEJE.js.map → bundle-YNOX7VIL.js.map} +1 -1
- package/dist/calls/livekit/index.cjs +54 -54
- package/dist/calls/livekit/index.js +6 -6
- package/dist/{chunk-S2W3ZOWG.js → chunk-2LV53J46.js} +85 -16
- package/dist/chunk-2LV53J46.js.map +1 -0
- package/dist/{chunk-H3HYKAS5.cjs → chunk-3BFSALPC.cjs} +3 -3
- package/dist/{chunk-H3HYKAS5.cjs.map → chunk-3BFSALPC.cjs.map} +1 -1
- package/dist/{chunk-2NFUEC5O.js → chunk-3NBPMR3X.js} +3 -3
- package/dist/{chunk-2NFUEC5O.js.map → chunk-3NBPMR3X.js.map} +1 -1
- package/dist/chunk-4DTTEUVY.js +1042 -0
- package/dist/chunk-4DTTEUVY.js.map +1 -0
- package/dist/{chunk-U64WCQP3.js → chunk-AOEJ744V.js} +25 -14
- package/dist/chunk-AOEJ744V.js.map +1 -0
- package/dist/{chunk-4E737GNX.cjs → chunk-BLBXADTN.cjs} +86 -73
- package/dist/chunk-BLBXADTN.cjs.map +1 -0
- package/dist/{chunk-X7JXQT6F.cjs → chunk-DVL7EFZZ.cjs} +42 -46
- package/dist/chunk-DVL7EFZZ.cjs.map +1 -0
- package/dist/{chunk-VAMPYLQ4.cjs → chunk-DZUBZ45Y.cjs} +78 -2
- package/dist/chunk-DZUBZ45Y.cjs.map +1 -0
- package/dist/{chunk-OSWKXZTJ.js → chunk-ER4LFZG3.js} +12 -16
- package/dist/chunk-ER4LFZG3.js.map +1 -0
- package/dist/{chunk-5HDC43MF.js → chunk-G4Z3IP4J.js} +72 -3
- package/dist/chunk-G4Z3IP4J.js.map +1 -0
- package/dist/chunk-GOJHU7RZ.cjs +1122 -0
- package/dist/chunk-GOJHU7RZ.cjs.map +1 -0
- package/dist/{chunk-G76ASVVH.cjs → chunk-GQAXAZN7.cjs} +25 -14
- package/dist/chunk-GQAXAZN7.cjs.map +1 -0
- package/dist/{chunk-TUPSNW3B.cjs → chunk-LMW46NBD.cjs} +11 -11
- package/dist/{chunk-TUPSNW3B.cjs.map → chunk-LMW46NBD.cjs.map} +1 -1
- package/dist/{chunk-KRH55LXW.js → chunk-NCMSQACC.js} +37 -24
- package/dist/chunk-NCMSQACC.js.map +1 -0
- package/dist/{chunk-A2XSLTIP.js → chunk-NIKPG4PW.js} +3 -3
- package/dist/{chunk-A2XSLTIP.js.map → chunk-NIKPG4PW.js.map} +1 -1
- package/dist/{chunk-B6I2HRRF.cjs → chunk-PC4O3JDV.cjs} +3 -3
- package/dist/{chunk-B6I2HRRF.cjs.map → chunk-PC4O3JDV.cjs.map} +1 -1
- package/dist/{chunk-M2SZQBCO.js → chunk-SI7DJWBT.js} +3 -3
- package/dist/{chunk-M2SZQBCO.js.map → chunk-SI7DJWBT.js.map} +1 -1
- package/dist/{chunk-3QK4VVPG.cjs → chunk-TGSEQGM3.cjs} +3 -3
- package/dist/{chunk-3QK4VVPG.cjs.map → chunk-TGSEQGM3.cjs.map} +1 -1
- package/dist/{chunk-LCSUCZVX.cjs → chunk-ZNQPUPX6.cjs} +118 -41
- package/dist/chunk-ZNQPUPX6.cjs.map +1 -0
- package/dist/{chunk-CMNZI4WQ.js → chunk-ZTPJNKF2.js} +4 -4
- package/dist/{chunk-CMNZI4WQ.js.map → chunk-ZTPJNKF2.js.map} +1 -1
- package/dist/document-tools/core.cjs +408 -0
- package/dist/document-tools/core.cjs.map +1 -0
- package/dist/document-tools/core.d.cts +957 -0
- package/dist/document-tools/core.d.ts +957 -0
- package/dist/document-tools/core.js +15 -0
- package/dist/document-tools/core.js.map +1 -0
- package/dist/document-tools/index.cjs +347 -1130
- package/dist/document-tools/index.cjs.map +1 -1
- package/dist/document-tools/index.d.cts +12 -950
- package/dist/document-tools/index.d.ts +12 -950
- package/dist/document-tools/index.js +13 -1034
- package/dist/document-tools/index.js.map +1 -1
- package/dist/index.cjs +1510 -1255
- package/dist/index.cjs.map +1 -1
- package/dist/{index.d-BLw5AN0H.d.cts → index.d-AT7wdTWC.d.cts} +50 -2
- package/dist/{index.d-BLw5AN0H.d.ts → index.d-AT7wdTWC.d.ts} +50 -2
- package/dist/{index.d-DPVj21h1.d.ts → index.d-B0dosFZc.d.cts} +6 -6
- package/dist/{index.d-DPVj21h1.d.cts → index.d-B0dosFZc.d.ts} +6 -6
- package/dist/index.d.cts +145 -69
- package/dist/index.d.ts +145 -69
- package/dist/index.js +346 -121
- package/dist/index.js.map +1 -1
- package/dist/{query-keys.d-DEEMzkLz.d.cts → query-keys.d-BFKQVevT.d.cts} +21 -12
- package/dist/{query-keys.d-DEEMzkLz.d.ts → query-keys.d-BFKQVevT.d.ts} +21 -12
- package/dist/shell/index.cjs +68 -40
- package/dist/shell/index.d.cts +1 -1
- package/dist/shell/index.d.ts +1 -1
- package/dist/shell/index.js +3 -3
- package/dist/store.d-DkFXbWDk.d.ts +35 -0
- package/dist/store.d-GADDvC7w.d.cts +35 -0
- package/dist/ui/index.cjs +149 -149
- package/dist/ui/index.d.cts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.js +2 -2
- package/package.json +11 -3
- package/dist/ProductionDialog.d-BDJwBSzj.d.ts +0 -84
- package/dist/ProductionDialog.d-DjRQFmQw.d.cts +0 -84
- package/dist/bundle-DCWPYNGD.cjs +0 -14
- package/dist/bundle-JCKKGEJE.js +0 -5
- package/dist/chunk-4E737GNX.cjs.map +0 -1
- package/dist/chunk-5HDC43MF.js.map +0 -1
- package/dist/chunk-G76ASVVH.cjs.map +0 -1
- package/dist/chunk-KRH55LXW.js.map +0 -1
- package/dist/chunk-LCSUCZVX.cjs.map +0 -1
- package/dist/chunk-OSWKXZTJ.js.map +0 -1
- package/dist/chunk-S2W3ZOWG.js.map +0 -1
- package/dist/chunk-U64WCQP3.js.map +0 -1
- package/dist/chunk-VAMPYLQ4.cjs.map +0 -1
- package/dist/chunk-X7JXQT6F.cjs.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import { AudioViewer, ImageViewer, VideoViewer } from './chunk-HDCRPPBW.js';
|
|
2
|
+
import { useUserSettings, invalidateConversationLists, patchConversation, invalidateConversationDetails, removeConversationFromLists, addConversationToList, findConversation, isConversationShared, isKnownSoloConversation, patchConversationList, useFeature, useAccountClient, useUpdateUserSettings, myChatId, upsertChat, appendToThread, dropFromThread, deleteChatMessage, removeChat, getOpenChat, cachedChat, applyChatEvent, applyCallEvent } from './chunk-NCMSQACC.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, isKnownSoloConversation, 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-NCMSQACC.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, 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, useProjects, useAgents, useAssistantQuery, useActivity, queuedMessages, MIN_QUEUED_MESSAGE_VISIBILITY_MS } from './chunk-ER4LFZG3.js';
|
|
7
|
+
export { DEFAULT_DOCUMENT_VIEWER_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, conversationKey, createArbiLayoutStore, createArbiSessionStore, createArbiWorkspaceStore, createDebouncedWriter, createSealedDraftStorage, createStoragePersist, defaultLayoutState, dmTabId, flushOnPageExit, isPanelOpen, isUsageMetered, layoutActionsOf, nextViewingDocument, openPanelIn, panelPlace, parseSavedLayout, queuedMessages, readWorkspaceLastOpened, restoreLayout, 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-ER4LFZG3.js';
|
|
8
|
+
import { fetchDocumentFile, downloadBlob, fetchMarkupPdf, fetchDocumentPdf } from './chunk-SI7DJWBT.js';
|
|
9
|
+
import { arbiMutationKeys, arbiQueryKeys, mailQueryKeys, connectorQueryKeys, calendarQueryKeys } from './chunk-AOEJ744V.js';
|
|
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';
|
|
15
|
+
import { notify, recordChatArtifact } from './chunk-G4Z3IP4J.js';
|
|
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';
|
|
14
17
|
export { mergeHostConfig } from './chunk-DPYBZDJB.js';
|
|
15
18
|
export { cleanDraftMarkdown, cleanDraftWithReport, promoteBoldTitle, repairParsedStructure, repairParsedTitle, stripAgentPreamble, unescapeMarkdown, unwrapCitationLinks } from './chunk-NNWMHMEC.js';
|
|
16
19
|
import './chunk-WUTL62MC.js';
|
|
17
|
-
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-
|
|
18
|
-
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-
|
|
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';
|
|
19
22
|
import { getUserDisplayName, isAgent } from './chunk-APZZQZ6P.js';
|
|
20
23
|
export { Avatar, AvatarFallback, AvatarImage, DEFAULT_SEGMENTER_CONFIG, INITIAL_SEGMENTER_STATE, createUserAvatarIcon, flushSegmenter, getUserAvatarColor, getUserDisplayName, getUserInitials, isAgent, levelFromRms, stepSegmenter } from './chunk-APZZQZ6P.js';
|
|
21
24
|
import { MarkdownRenderer } from './chunk-C44GO33B.js';
|
|
@@ -28,15 +31,12 @@ import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuIte
|
|
|
28
31
|
export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, PortalContainerProvider, usePortalContainer } from './chunk-47CCGUWR.js';
|
|
29
32
|
import { normalizeCitationMarkup } from './chunk-QRCMKEE6.js';
|
|
30
33
|
export { closeOpenEmphasis, normalizeCitationMarkup, trimOpenCitation } from './chunk-QRCMKEE6.js';
|
|
34
|
+
export { useHostConfigRecord } from './chunk-CPZ36AQS.js';
|
|
31
35
|
import { cn } from './chunk-SN5YV6FF.js';
|
|
32
36
|
export { cn } from './chunk-SN5YV6FF.js';
|
|
33
|
-
import { AudioViewer, ImageViewer, VideoViewer } from './chunk-HDCRPPBW.js';
|
|
34
|
-
import { useArbi, useArbiHost } from './chunk-R7YNABZY.js';
|
|
35
|
-
export { useArbi, useArbiHost, useDeploymentDomain } from './chunk-R7YNABZY.js';
|
|
36
|
-
export { useHostConfigRecord } from './chunk-CPZ36AQS.js';
|
|
37
37
|
import React, { memo, useState, createContext, useMemo, useCallback, useEffect, useRef, useLayoutEffect, useSyncExternalStore, useContext, useId } from 'react';
|
|
38
|
-
import { useQuery, useQueryClient, useMutation, onlineManager, partialMatchKey, useMutationState,
|
|
39
|
-
import { documents,
|
|
38
|
+
import { useQuery, useQueryClient, useMutation, onlineManager, partialMatchKey, useMutationState, useQueries } from '@tanstack/react-query';
|
|
39
|
+
import { documents, houseTemplates, doctags, STOP_ID_WAIT_MS, resolveCitations, summarizeCitations, createIndexAssigner, reduceOutputItem, findReplyTarget, ArbiApiError, quotaFromStreamError, STOP_REPEAT_WINDOW_MS, getRunToCancel, pickMainThread, extractDocumentIdsFromMessages, extractFactIdsFromMessages, hydrateAgentSteps, getSubagentBranchRecord, getRunToAttach, settings, isConnectorVendorVisible, ACCOUNT_VENDOR, searchChunks, formatFileSize, chats, connectWithReconnect, ArbiWorkspaceSupersededError, identityErrorCode } from '@arbidocs/sdk/browser';
|
|
40
40
|
export { ACCOUNT_VENDOR, Arbi, ArbiError, DEFAULT_AI_USD_PER_GBP, DRIVE_SYNC_VENDORS, GOOGLE_VENDORS, IMANAGE_VENDORS, MAILBOX_SYNC_VENDORS, MAX_RETRIEVE_DOC_IDS, MICROSOFT_VENDORS, PublicBookingError, SHAREPOINT_VENDORS, bookPublicSlot, cancelPublicBooking, connectErrorMessage, formatGbp, formatGbpPerMillionTokens, getPublicBookingPage, isConnectorVendorVisible, isDriveSyncVendor, isMailboxSyncVendor, isSharePointVendor, usdToGbp } from '@arbidocs/sdk/browser';
|
|
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';
|
|
@@ -165,6 +165,7 @@ function useStartTaskQuery() {
|
|
|
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, {
|
|
168
|
+
workspaceId: query.workspaceId,
|
|
168
169
|
docIds: query.docIds,
|
|
169
170
|
fullContext: false,
|
|
170
171
|
...selectedConfig ? { model: selectedConfig } : {},
|
|
@@ -246,7 +247,10 @@ function useCreateWork() {
|
|
|
246
247
|
const qc = useQueryClient();
|
|
247
248
|
return useMutation({
|
|
248
249
|
mutationFn: (body) => arbi.conversations.createWork(body),
|
|
249
|
-
|
|
250
|
+
// The workspace it was created from, read when it is sent: one switched to while the request
|
|
251
|
+
// ran must not receive it in its list.
|
|
252
|
+
onMutate: () => ({ workspaceId: arbi.hasWorkspace ? arbi.getWorkspaceId() : null }),
|
|
253
|
+
onSuccess: (created, _body, context) => addConversationToList(qc, context?.workspaceId ?? null, created)
|
|
250
254
|
});
|
|
251
255
|
}
|
|
252
256
|
function useRunConversation() {
|
|
@@ -488,9 +492,11 @@ function useRevokeAgentAccess() {
|
|
|
488
492
|
}
|
|
489
493
|
function useSkills(options) {
|
|
490
494
|
const arbi = useArbi();
|
|
495
|
+
const workspaceId = arbi.hasWorkspace ? arbi.getWorkspaceId() : "";
|
|
496
|
+
const list = () => arbi.assistant.listSkills({ includeHidden: options?.includeHidden });
|
|
491
497
|
return useQuery({
|
|
492
|
-
queryKey:
|
|
493
|
-
queryFn: () => arbi.
|
|
498
|
+
queryKey: arbiQueryKeys.skillList(workspaceId, options?.includeHidden ?? false),
|
|
499
|
+
queryFn: () => workspaceId ? arbi.readInWorkspace(workspaceId, list) : list(),
|
|
494
500
|
refetchInterval: options?.live ? 5e3 : false,
|
|
495
501
|
enabled: (options?.enabled ?? true) && arbi.isLoggedIn,
|
|
496
502
|
staleTime: 3e4
|
|
@@ -1316,12 +1322,12 @@ function useAddWorkspaceMembers() {
|
|
|
1316
1322
|
])
|
|
1317
1323
|
});
|
|
1318
1324
|
}
|
|
1319
|
-
function useRemoveWorkspaceMembers() {
|
|
1325
|
+
function useRemoveWorkspaceMembers(workspaceId) {
|
|
1320
1326
|
const arbi = useArbi();
|
|
1321
1327
|
const qc = useQueryClient();
|
|
1322
1328
|
return useMutation({
|
|
1323
1329
|
mutationKey: arbiMutationKeys.workspaceMembership(),
|
|
1324
|
-
mutationFn: (userIds) => arbi.workspaces.removeUsers(userIds),
|
|
1330
|
+
mutationFn: (userIds) => workspaceId ? arbi.workspaces.removeUsers(userIds, { workspaceId }) : arbi.workspaces.removeUsers(userIds),
|
|
1325
1331
|
onSuccess: () => settleMembership(qc)
|
|
1326
1332
|
});
|
|
1327
1333
|
}
|
|
@@ -1628,6 +1634,58 @@ function resolveReplyTarget(queryClient, conversationId, parentId) {
|
|
|
1628
1634
|
return findReplyTarget(data.threads, parentId);
|
|
1629
1635
|
}
|
|
1630
1636
|
|
|
1637
|
+
// src/chat/conversation-workspace.ts
|
|
1638
|
+
var byClient = /* @__PURE__ */ new WeakMap();
|
|
1639
|
+
function bindingsOf(queryClient) {
|
|
1640
|
+
let bindings = byClient.get(queryClient);
|
|
1641
|
+
if (!bindings) {
|
|
1642
|
+
bindings = { confirmed: /* @__PURE__ */ new Map(), observed: /* @__PURE__ */ new Map() };
|
|
1643
|
+
byClient.set(queryClient, bindings);
|
|
1644
|
+
}
|
|
1645
|
+
return bindings;
|
|
1646
|
+
}
|
|
1647
|
+
function confirmConversationWorkspace(queryClient, conversationId, workspaceId) {
|
|
1648
|
+
if (conversationId === "new") return;
|
|
1649
|
+
bindingsOf(queryClient).confirmed.set(conversationId, workspaceId);
|
|
1650
|
+
}
|
|
1651
|
+
function observeConversationWorkspace(queryClient, conversationId, workspaceId) {
|
|
1652
|
+
const { observed } = bindingsOf(queryClient);
|
|
1653
|
+
if (conversationId !== "new" && !observed.has(conversationId))
|
|
1654
|
+
observed.set(conversationId, workspaceId);
|
|
1655
|
+
}
|
|
1656
|
+
function listedWorkspaceOf(queryClient, conversationId) {
|
|
1657
|
+
for (const [key, data] of queryClient.getQueriesData({
|
|
1658
|
+
queryKey: arbiQueryKeys.allConversations()
|
|
1659
|
+
})) {
|
|
1660
|
+
const workspaceId = key[2];
|
|
1661
|
+
if (key.length !== 3 || typeof workspaceId !== "string" || !Array.isArray(data)) continue;
|
|
1662
|
+
if (data.some((row) => row?.external_id === conversationId)) return workspaceId;
|
|
1663
|
+
}
|
|
1664
|
+
return null;
|
|
1665
|
+
}
|
|
1666
|
+
function conversationWorkspaceOf(queryClient, conversationId) {
|
|
1667
|
+
if (!conversationId || conversationId === "new") return null;
|
|
1668
|
+
const { confirmed, observed } = bindingsOf(queryClient);
|
|
1669
|
+
return confirmed.get(conversationId) ?? listedWorkspaceOf(queryClient, conversationId) ?? observed.get(conversationId) ?? null;
|
|
1670
|
+
}
|
|
1671
|
+
var watchedSessions = /* @__PURE__ */ new WeakMap();
|
|
1672
|
+
function watchConversationWorkspaces(queryClient, session) {
|
|
1673
|
+
const clients = watchedSessions.get(session) ?? /* @__PURE__ */ new WeakSet();
|
|
1674
|
+
if (clients.has(queryClient)) return;
|
|
1675
|
+
clients.add(queryClient);
|
|
1676
|
+
watchedSessions.set(session, clients);
|
|
1677
|
+
let last = null;
|
|
1678
|
+
const record = () => {
|
|
1679
|
+
const { conversationId, workspaceId } = session.getState();
|
|
1680
|
+
if (conversationId === last) return;
|
|
1681
|
+
last = conversationId;
|
|
1682
|
+
if (conversationId && workspaceId)
|
|
1683
|
+
observeConversationWorkspace(queryClient, conversationId, workspaceId);
|
|
1684
|
+
};
|
|
1685
|
+
record();
|
|
1686
|
+
session.subscribe(record);
|
|
1687
|
+
}
|
|
1688
|
+
|
|
1631
1689
|
// src/documents/processing-settle.ts
|
|
1632
1690
|
function startsWith(key, prefix) {
|
|
1633
1691
|
return prefix.every((part, i) => key[i] === part);
|
|
@@ -1861,31 +1919,61 @@ function settleUpdatedDocTag(qc, updated) {
|
|
|
1861
1919
|
doctags: (doc.doctags ?? []).map((dt) => dt.tag_ext_id === updated.tag_ext_id ? updated : dt)
|
|
1862
1920
|
}));
|
|
1863
1921
|
}
|
|
1922
|
+
var sendUpdateDocuments = (client, input) => inWorkspace(
|
|
1923
|
+
primeOnClient(client),
|
|
1924
|
+
input.workspaceId,
|
|
1925
|
+
() => documents.updateDocuments(client, input.documents)
|
|
1926
|
+
);
|
|
1927
|
+
var sendAssignDocTags = (client, input) => inWorkspace(
|
|
1928
|
+
primeOnClient(client),
|
|
1929
|
+
input.workspaceId,
|
|
1930
|
+
() => doctags.assignDocTags(client, input.tagId, input.docIds, input.note, input.citations)
|
|
1931
|
+
);
|
|
1932
|
+
var sendRemoveDocTags = (client, input) => inWorkspace(
|
|
1933
|
+
primeOnClient(client),
|
|
1934
|
+
input.workspaceId,
|
|
1935
|
+
() => doctags.removeDocTags(client, input.tagId, input.docIds)
|
|
1936
|
+
);
|
|
1937
|
+
var sendUpdateDocTag = (client, input) => inWorkspace(
|
|
1938
|
+
primeOnClient(client),
|
|
1939
|
+
input.workspaceId,
|
|
1940
|
+
() => doctags.updateDocTag(client, input.tagId, input.docId, {
|
|
1941
|
+
note: input.note,
|
|
1942
|
+
citations: input.citations
|
|
1943
|
+
})
|
|
1944
|
+
);
|
|
1864
1945
|
var replayableDocumentMutations = [
|
|
1865
1946
|
{
|
|
1866
1947
|
mutationKey: arbiMutationKeys.updateDocuments(),
|
|
1867
|
-
run:
|
|
1948
|
+
run: sendUpdateDocuments,
|
|
1868
1949
|
settle: (qc, updated) => settleUpdatedDocuments(qc, updated)
|
|
1869
1950
|
},
|
|
1870
1951
|
{
|
|
1871
1952
|
mutationKey: arbiMutationKeys.assignDocTags(),
|
|
1872
|
-
run:
|
|
1953
|
+
run: sendAssignDocTags,
|
|
1873
1954
|
settle: (qc, created) => settleAssignedDocTags(qc, created)
|
|
1874
1955
|
},
|
|
1875
1956
|
{
|
|
1876
1957
|
mutationKey: arbiMutationKeys.removeDocTags(),
|
|
1877
|
-
run:
|
|
1958
|
+
run: sendRemoveDocTags,
|
|
1878
1959
|
settle: (qc, _data, input) => settleRemovedDocTags(qc, input)
|
|
1879
1960
|
},
|
|
1880
1961
|
{
|
|
1881
1962
|
mutationKey: arbiMutationKeys.updateDocTag(),
|
|
1882
|
-
run:
|
|
1883
|
-
note: input.note,
|
|
1884
|
-
citations: input.citations
|
|
1885
|
-
}),
|
|
1963
|
+
run: sendUpdateDocTag,
|
|
1886
1964
|
settle: (qc, updated) => settleUpdatedDocTag(qc, updated)
|
|
1887
1965
|
}
|
|
1888
1966
|
];
|
|
1967
|
+
function useDocumentWriteWorkspace(docIdOf) {
|
|
1968
|
+
const arbi = useArbi();
|
|
1969
|
+
const qc = useQueryClient();
|
|
1970
|
+
return (variables) => {
|
|
1971
|
+
if (variables.workspaceId) return variables;
|
|
1972
|
+
const docId = docIdOf(variables);
|
|
1973
|
+
const workspaceId = (docId ? workspaceOf(qc, docId) : void 0) ?? (arbi.hasWorkspace ? arbi.getWorkspaceId() : void 0);
|
|
1974
|
+
return workspaceId ? { ...variables, workspaceId } : variables;
|
|
1975
|
+
};
|
|
1976
|
+
}
|
|
1889
1977
|
function resolvingOffline(mutation) {
|
|
1890
1978
|
const mutateAsync = ((variables, options) => {
|
|
1891
1979
|
if (!onlineManager.isOnline()) {
|
|
@@ -1912,14 +2000,28 @@ function useMarkDocumentShared() {
|
|
|
1912
2000
|
function useUpdateDocuments() {
|
|
1913
2001
|
const arbi = useArbi();
|
|
1914
2002
|
const qc = useQueryClient();
|
|
2003
|
+
const capture = useDocumentWriteWorkspace(
|
|
2004
|
+
(input) => input.documents[0]?.external_id
|
|
2005
|
+
);
|
|
1915
2006
|
return resolvingOffline(
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
2007
|
+
useCapturingWorkspace(
|
|
2008
|
+
useMutation({
|
|
2009
|
+
mutationKey: arbiMutationKeys.updateDocuments(),
|
|
2010
|
+
mutationFn: (input) => inWorkspace(
|
|
2011
|
+
primeOnArbi(arbi),
|
|
2012
|
+
input.workspaceId,
|
|
2013
|
+
() => arbi.documents.update(input.documents)
|
|
2014
|
+
),
|
|
2015
|
+
onMutate: ({ documents: documents2 }) => onlineManager.isOnline() || !documents2.length ? void 0 : applyOptimisticDocumentEdit(qc, documents2),
|
|
2016
|
+
// Not sent because its workspace can't be opened: the edit stays, listed as not sent.
|
|
2017
|
+
onError: (error, _input, context) => {
|
|
2018
|
+
if (!isWorkspaceUnavailable(error)) rollbackOptimisticDocumentEdit(qc, context);
|
|
2019
|
+
},
|
|
2020
|
+
onSuccess: (updated) => settleUpdatedDocuments(qc, updated),
|
|
2021
|
+
...QUEUED_WRITE_RETRY
|
|
2022
|
+
}),
|
|
2023
|
+
capture
|
|
2024
|
+
)
|
|
1923
2025
|
);
|
|
1924
2026
|
}
|
|
1925
2027
|
function folderSegments(folder) {
|
|
@@ -2001,34 +2103,57 @@ function useUploadUrls() {
|
|
|
2001
2103
|
function useAssignDocTags() {
|
|
2002
2104
|
const arbi = useArbi();
|
|
2003
2105
|
const qc = useQueryClient();
|
|
2106
|
+
const capture = useDocumentWriteWorkspace((input) => input.docIds[0]);
|
|
2004
2107
|
return resolvingOffline(
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2108
|
+
useCapturingWorkspace(
|
|
2109
|
+
useMutation({
|
|
2110
|
+
mutationKey: arbiMutationKeys.assignDocTags(),
|
|
2111
|
+
mutationFn: ({ workspaceId, tagId, docIds, note, citations }) => inWorkspace(
|
|
2112
|
+
primeOnArbi(arbi),
|
|
2113
|
+
workspaceId,
|
|
2114
|
+
() => arbi.doctags.assign(tagId, docIds, note, citations)
|
|
2115
|
+
),
|
|
2116
|
+
onSuccess: (created) => settleAssignedDocTags(qc, created),
|
|
2117
|
+
...QUEUED_WRITE_RETRY
|
|
2118
|
+
}),
|
|
2119
|
+
capture
|
|
2120
|
+
)
|
|
2010
2121
|
);
|
|
2011
2122
|
}
|
|
2012
2123
|
function useRemoveDocTags() {
|
|
2013
2124
|
const arbi = useArbi();
|
|
2014
2125
|
const qc = useQueryClient();
|
|
2126
|
+
const capture = useDocumentWriteWorkspace((input) => input.docIds[0]);
|
|
2015
2127
|
return resolvingOffline(
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2128
|
+
useCapturingWorkspace(
|
|
2129
|
+
useMutation({
|
|
2130
|
+
mutationKey: arbiMutationKeys.removeDocTags(),
|
|
2131
|
+
mutationFn: ({ workspaceId, tagId, docIds }) => inWorkspace(primeOnArbi(arbi), workspaceId, () => arbi.doctags.remove(tagId, docIds)),
|
|
2132
|
+
onSuccess: (_data, input) => settleRemovedDocTags(qc, input),
|
|
2133
|
+
...QUEUED_WRITE_RETRY
|
|
2134
|
+
}),
|
|
2135
|
+
capture
|
|
2136
|
+
)
|
|
2021
2137
|
);
|
|
2022
2138
|
}
|
|
2023
2139
|
function useUpdateDocTag() {
|
|
2024
2140
|
const arbi = useArbi();
|
|
2025
2141
|
const qc = useQueryClient();
|
|
2142
|
+
const capture = useDocumentWriteWorkspace((input) => input.docId);
|
|
2026
2143
|
return resolvingOffline(
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2144
|
+
useCapturingWorkspace(
|
|
2145
|
+
useMutation({
|
|
2146
|
+
mutationKey: arbiMutationKeys.updateDocTag(),
|
|
2147
|
+
mutationFn: ({ workspaceId, tagId, docId, note, citations }) => inWorkspace(
|
|
2148
|
+
primeOnArbi(arbi),
|
|
2149
|
+
workspaceId,
|
|
2150
|
+
() => arbi.doctags.update(tagId, docId, { note, citations })
|
|
2151
|
+
),
|
|
2152
|
+
onSuccess: (updated) => settleUpdatedDocTag(qc, updated),
|
|
2153
|
+
...QUEUED_WRITE_RETRY
|
|
2154
|
+
}),
|
|
2155
|
+
capture
|
|
2156
|
+
)
|
|
2032
2157
|
);
|
|
2033
2158
|
}
|
|
2034
2159
|
function queueProcessing(documents2) {
|
|
@@ -3256,7 +3381,7 @@ function uploadFolderOf(file, base) {
|
|
|
3256
3381
|
const own = slash > 0 ? relative.slice(0, slash) : "";
|
|
3257
3382
|
return sanitizeFolderPath([base, own].filter(Boolean).join("/")) || null;
|
|
3258
3383
|
}
|
|
3259
|
-
var {
|
|
3384
|
+
var { mimeFromName: mimeFromName2 } = documents;
|
|
3260
3385
|
var BATCH_SIZE2 = 100;
|
|
3261
3386
|
var CONCURRENT_BATCHES = 4;
|
|
3262
3387
|
var uploadedFolders = /* @__PURE__ */ new Map();
|
|
@@ -3288,8 +3413,8 @@ function useUploadFiles() {
|
|
|
3288
3413
|
const direct = settings?.use_s3_direct_upload === true;
|
|
3289
3414
|
return useCallback(
|
|
3290
3415
|
async (input, onProgress) => {
|
|
3291
|
-
const
|
|
3292
|
-
const workspaceId = input.workspaceExtId ??
|
|
3416
|
+
const openWorkspaceId3 = arbi.getWorkspaceId();
|
|
3417
|
+
const workspaceId = input.workspaceExtId ?? openWorkspaceId3;
|
|
3293
3418
|
const groups = /* @__PURE__ */ new Map();
|
|
3294
3419
|
for (const file of input.files) {
|
|
3295
3420
|
const folder = uploadFolderOf(file, input.folder);
|
|
@@ -3300,7 +3425,7 @@ function useUploadFiles() {
|
|
|
3300
3425
|
for (let i = 0; i < files.length; i += BATCH_SIZE2)
|
|
3301
3426
|
batches.push({ folder, files: files.slice(i, i + BATCH_SIZE2) });
|
|
3302
3427
|
let workspaceKey = null;
|
|
3303
|
-
if (direct && workspaceId ===
|
|
3428
|
+
if (direct && workspaceId === openWorkspaceId3 && resolveWorkspaceKey) {
|
|
3304
3429
|
try {
|
|
3305
3430
|
workspaceKey = await resolveWorkspaceKey(workspaceId);
|
|
3306
3431
|
} catch {
|
|
@@ -3323,9 +3448,20 @@ function useUploadFiles() {
|
|
|
3323
3448
|
const results = await runLimited(
|
|
3324
3449
|
batches.map(({ folder, files }, index) => async () => {
|
|
3325
3450
|
const bytes = files.reduce((sum, file) => sum + file.size, 0);
|
|
3326
|
-
const
|
|
3327
|
-
|
|
3328
|
-
|
|
3451
|
+
const throughServer = () => arbi.documents.upload(files, {
|
|
3452
|
+
shared: input.shared,
|
|
3453
|
+
folder: folder ?? void 0,
|
|
3454
|
+
configExtId: input.configExtId ?? void 0,
|
|
3455
|
+
// Named even when it is the open one: batches sent after a switch stay in this workspace.
|
|
3456
|
+
workspaceExtId: workspaceId,
|
|
3457
|
+
onProgress: (loaded) => {
|
|
3458
|
+
loadedByBatch[index] = Math.min(loaded, bytes);
|
|
3459
|
+
report();
|
|
3460
|
+
}
|
|
3461
|
+
});
|
|
3462
|
+
const directly = async (key) => arbi.documents.uploadDirect(
|
|
3463
|
+
workspaceId,
|
|
3464
|
+
key,
|
|
3329
3465
|
await Promise.all(
|
|
3330
3466
|
files.map(async (file) => ({
|
|
3331
3467
|
name: file.name,
|
|
@@ -3343,17 +3479,8 @@ function useUploadFiles() {
|
|
|
3343
3479
|
report();
|
|
3344
3480
|
}
|
|
3345
3481
|
}
|
|
3346
|
-
)
|
|
3347
|
-
|
|
3348
|
-
folder: folder ?? void 0,
|
|
3349
|
-
configExtId: input.configExtId ?? void 0,
|
|
3350
|
-
// Named even when it is the open one: batches sent after a switch stay in this workspace.
|
|
3351
|
-
workspaceExtId: workspaceId,
|
|
3352
|
-
onProgress: (loaded) => {
|
|
3353
|
-
loadedByBatch[index] = Math.min(loaded, bytes);
|
|
3354
|
-
report();
|
|
3355
|
-
}
|
|
3356
|
-
});
|
|
3482
|
+
);
|
|
3483
|
+
const result = workspaceKey && arbi.hasWorkspace && arbi.getWorkspaceId() === workspaceId ? await directly(workspaceKey) : await throughServer();
|
|
3357
3484
|
const docIds2 = result.doc_ext_ids ?? [];
|
|
3358
3485
|
if (docIds2.length > 0) {
|
|
3359
3486
|
for (const docId of docIds2) uploadedFolders.set(docId, { workspaceId, folder });
|
|
@@ -3570,8 +3697,12 @@ function isReplayableArbiMutation(mutationKey) {
|
|
|
3570
3697
|
function registerArbiMutationDefaults(queryClient, client) {
|
|
3571
3698
|
for (const m of REPLAYABLE) {
|
|
3572
3699
|
queryClient.setMutationDefaults(m.mutationKey, {
|
|
3700
|
+
// Each write is sent in the workspace it was made in (kept in its variables), never in the
|
|
3701
|
+
// one open when it is replayed; one whose workspace can't be opened is tried again, then
|
|
3702
|
+
// kept as not sent.
|
|
3573
3703
|
mutationFn: (variables) => m.run(client(), variables),
|
|
3574
|
-
onSuccess: (data, variables) => m.settle(queryClient, data, variables)
|
|
3704
|
+
onSuccess: (data, variables) => m.settle(queryClient, data, variables),
|
|
3705
|
+
...QUEUED_WRITE_RETRY
|
|
3575
3706
|
});
|
|
3576
3707
|
}
|
|
3577
3708
|
}
|
|
@@ -3615,9 +3746,9 @@ var KIND_BY_KEY = [
|
|
|
3615
3746
|
function kindOf(mutationKey) {
|
|
3616
3747
|
return mutationKey ? KIND_BY_KEY.find(([key]) => partialMatchKey(mutationKey, key))?.[1] : void 0;
|
|
3617
3748
|
}
|
|
3618
|
-
function statusOf(isPaused, status) {
|
|
3749
|
+
function statusOf(isPaused, status, blocked = false) {
|
|
3619
3750
|
if (status === "error") return "error";
|
|
3620
|
-
return isPaused ? "queued" : "syncing";
|
|
3751
|
+
return isPaused || blocked ? "queued" : "syncing";
|
|
3621
3752
|
}
|
|
3622
3753
|
function docIdsFromVariables(kind, variables) {
|
|
3623
3754
|
if (kind === "fields")
|
|
@@ -3691,7 +3822,8 @@ function buildPendingSyncItem(raw, docNameById, tagNameById) {
|
|
|
3691
3822
|
change: describeChange(raw, tagNameById),
|
|
3692
3823
|
status: raw.status,
|
|
3693
3824
|
at: raw.at,
|
|
3694
|
-
docIds
|
|
3825
|
+
docIds,
|
|
3826
|
+
...raw.blocked ? { notice: QUEUED_WRITE_BLOCKED_MESSAGE } : {}
|
|
3695
3827
|
};
|
|
3696
3828
|
}
|
|
3697
3829
|
var PENDING_SYNC_PREDICATE = (m) => (
|
|
@@ -3705,7 +3837,8 @@ var PENDING_SYNC_PREDICATE = (m) => (
|
|
|
3705
3837
|
// that's just a normal ONLINE save mid-request, and counting it made rows
|
|
3706
3838
|
// flash "pending/syncing" while fully online. `error` is kept so a failed
|
|
3707
3839
|
// sync stays visible to review/undo.
|
|
3708
|
-
|
|
3840
|
+
// A write held back because its workspace can't be opened (tried again meanwhile) is waiting too.
|
|
3841
|
+
isReplayableArbiMutation(m.options.mutationKey) && (m.state.isPaused || m.state.status === "error" || isBlockedOnWorkspace(m))
|
|
3709
3842
|
);
|
|
3710
3843
|
function usePendingSyncItems() {
|
|
3711
3844
|
const { data: documents2 } = useDocuments();
|
|
@@ -3717,8 +3850,9 @@ function usePendingSyncItems() {
|
|
|
3717
3850
|
kind: kindOf(m.options.mutationKey) ?? "fields",
|
|
3718
3851
|
variables: m.state.variables,
|
|
3719
3852
|
context: m.state.context,
|
|
3720
|
-
status: statusOf(m.state.isPaused, m.state.status),
|
|
3721
|
-
at: m.state.submittedAt
|
|
3853
|
+
status: statusOf(m.state.isPaused, m.state.status, isBlockedOnWorkspace(m)),
|
|
3854
|
+
at: m.state.submittedAt,
|
|
3855
|
+
blocked: isBlockedOnWorkspace(m)
|
|
3722
3856
|
})
|
|
3723
3857
|
});
|
|
3724
3858
|
return useMemo(() => {
|
|
@@ -3950,7 +4084,7 @@ function createStreamHandlers(ctx, params) {
|
|
|
3950
4084
|
const nowIso = (/* @__PURE__ */ new Date()).toISOString();
|
|
3951
4085
|
patchConversationList(
|
|
3952
4086
|
queryClient,
|
|
3953
|
-
session.getState().workspaceId,
|
|
4087
|
+
streamState.workspaceId ?? session.getState().workspaceId,
|
|
3954
4088
|
(old) => old.some((c) => c.external_id === serverConversationId) ? old : [
|
|
3955
4089
|
{
|
|
3956
4090
|
external_id: serverConversationId,
|
|
@@ -4189,6 +4323,7 @@ function createStreamHandlers(ctx, params) {
|
|
|
4189
4323
|
title: artifact.title,
|
|
4190
4324
|
is_complete: artifact.is_complete
|
|
4191
4325
|
});
|
|
4326
|
+
recordChatArtifact(artifact, streamState.conversationId);
|
|
4192
4327
|
host.onArtifact?.(artifact, streamState.conversationId);
|
|
4193
4328
|
if (artifact.is_complete) {
|
|
4194
4329
|
const documents2 = session.getState().conversationDocuments[streamState.conversationId] ?? [];
|
|
@@ -4402,6 +4537,7 @@ function useConversationActions({
|
|
|
4402
4537
|
[queryClient]
|
|
4403
4538
|
);
|
|
4404
4539
|
const arbi = useArbi();
|
|
4540
|
+
useState(() => watchConversationWorkspaces(queryClient, session));
|
|
4405
4541
|
const createHandlers = useStreamHandlers();
|
|
4406
4542
|
const chatHost = useArbiHost().chat;
|
|
4407
4543
|
const mentionCandidates = useCallback(
|
|
@@ -4414,8 +4550,10 @@ function useConversationActions({
|
|
|
4414
4550
|
const retryInFlightRef = useRef(false);
|
|
4415
4551
|
const sendMessageRef = useRef(null);
|
|
4416
4552
|
const routeMessage = useCallback(
|
|
4417
|
-
(content) => {
|
|
4418
|
-
const
|
|
4553
|
+
(content, conversationId) => {
|
|
4554
|
+
const state = session.getState();
|
|
4555
|
+
const convId = conversationId === void 0 ? state.conversationId : conversationId;
|
|
4556
|
+
const { newConversationAssistantMode } = state;
|
|
4419
4557
|
const candidates = mentionCandidates();
|
|
4420
4558
|
const mentioned = extractMentions(content, candidates);
|
|
4421
4559
|
const assistantMode = cachedAssistantMode(queryClient, convId, newConversationAssistantMode);
|
|
@@ -4495,23 +4633,25 @@ function useConversationActions({
|
|
|
4495
4633
|
);
|
|
4496
4634
|
const sendMessage = useCallback(
|
|
4497
4635
|
async (content, requestedParentId, options) => {
|
|
4636
|
+
const target = options?.target;
|
|
4498
4637
|
const parentId = options?.queuedContinuation || !requestedParentId ? requestedParentId : resolveReplyTarget(
|
|
4499
4638
|
queryClient,
|
|
4500
|
-
session.getState().conversationId || "new",
|
|
4639
|
+
(target ? target.conversationId : session.getState().conversationId) || "new",
|
|
4501
4640
|
requestedParentId
|
|
4502
4641
|
) ?? requestedParentId;
|
|
4503
|
-
const route = routeMessage(content);
|
|
4504
|
-
if (route.isComment && !options?.queuedContinuation) {
|
|
4642
|
+
const route = routeMessage(content, target?.conversationId);
|
|
4643
|
+
if (route.isComment && !options?.queuedContinuation && !target) {
|
|
4505
4644
|
await postComment(content, parentId ?? null, route.mentions, options?.branch);
|
|
4506
4645
|
return;
|
|
4507
4646
|
}
|
|
4508
4647
|
const modelSave = pendingChatModelSave(session);
|
|
4509
4648
|
if (modelSave) await modelSave.catch(() => void 0);
|
|
4510
4649
|
const state = session.getState();
|
|
4511
|
-
const convId = state.conversationId;
|
|
4650
|
+
const convId = target ? target.conversationId : state.conversationId;
|
|
4512
4651
|
const convKey = convId || "new";
|
|
4652
|
+
const turnWorkspaceId = target?.workspaceId ?? conversationWorkspaceOf(queryClient, convId) ?? selectedWorkspaceId;
|
|
4513
4653
|
const agentChat = state.newAgentChat;
|
|
4514
|
-
const agentExtId = convId ? state.agentChatOwners[convId] : agentChat?.workspaceId ===
|
|
4654
|
+
const agentExtId = convId ? state.agentChatOwners[convId] : agentChat?.workspaceId === turnWorkspaceId ? agentChat.agentId : void 0;
|
|
4515
4655
|
const queuedContinuation = options?.queuedContinuation === true;
|
|
4516
4656
|
const isNewConversation = !convId;
|
|
4517
4657
|
const documentIds = (state.conversationDocuments[convKey] || []).map((doc) => doc.docId);
|
|
@@ -4521,18 +4661,18 @@ function useConversationActions({
|
|
|
4521
4661
|
const lastConfigId = cachedSettings?.last_config;
|
|
4522
4662
|
const resolvedConfigId = newConfigId || (agentExtId ? void 0 : lastConfigId);
|
|
4523
4663
|
const isPaMode = !agentExtId && state.paMode;
|
|
4524
|
-
const threadDocumentId = boundDocumentOf(queryClient, state);
|
|
4664
|
+
const threadDocumentId = boundDocumentOf(queryClient, { ...state, conversationId: convId });
|
|
4525
4665
|
const activeArtifactExtId = isPaMode ? null : takeDocumentForTurn({
|
|
4526
4666
|
boundDocumentId: threadDocumentId,
|
|
4527
4667
|
conversationId: convId,
|
|
4528
|
-
workspaceId:
|
|
4668
|
+
workspaceId: turnWorkspaceId
|
|
4529
4669
|
});
|
|
4530
4670
|
const pendingTools = state.pendingTools;
|
|
4531
4671
|
if (pendingTools) session.setPendingTools(null);
|
|
4532
4672
|
const toolsOverride = options?.toolsOverride ?? pendingTools ?? void 0;
|
|
4533
4673
|
const request = {
|
|
4534
4674
|
question: content,
|
|
4535
|
-
workspaceId:
|
|
4675
|
+
workspaceId: turnWorkspaceId,
|
|
4536
4676
|
docIds: documentIds,
|
|
4537
4677
|
pinnedDocumentId: state.pinnedDocumentId,
|
|
4538
4678
|
factIds,
|
|
@@ -4557,6 +4697,7 @@ function useConversationActions({
|
|
|
4557
4697
|
}
|
|
4558
4698
|
const streamState = {
|
|
4559
4699
|
conversationId: convKey,
|
|
4700
|
+
workspaceId: turnWorkspaceId,
|
|
4560
4701
|
assistantId: null,
|
|
4561
4702
|
// 0 = nothing narrated yet, so nothing is owed a reading window.
|
|
4562
4703
|
lastNarrationSettledAt: 0,
|
|
@@ -4585,7 +4726,24 @@ function useConversationActions({
|
|
|
4585
4726
|
userMessageId: null,
|
|
4586
4727
|
serverError: null
|
|
4587
4728
|
};
|
|
4588
|
-
const handlers = createHandlers({
|
|
4729
|
+
const handlers = createHandlers({
|
|
4730
|
+
streamState,
|
|
4731
|
+
parentMessageId: target ? parentId ?? null : parentMessageId,
|
|
4732
|
+
parentId
|
|
4733
|
+
});
|
|
4734
|
+
const confirmTurnWorkspace = () => {
|
|
4735
|
+
if (streamState.workspaceId)
|
|
4736
|
+
confirmConversationWorkspace(
|
|
4737
|
+
queryClient,
|
|
4738
|
+
streamState.conversationId,
|
|
4739
|
+
streamState.workspaceId
|
|
4740
|
+
);
|
|
4741
|
+
};
|
|
4742
|
+
const onUserMessageInWorkspace = handlers.onUserMessage;
|
|
4743
|
+
handlers.onUserMessage = (message) => {
|
|
4744
|
+
onUserMessageInWorkspace(message);
|
|
4745
|
+
confirmTurnWorkspace();
|
|
4746
|
+
};
|
|
4589
4747
|
if (agentExtId) {
|
|
4590
4748
|
const onUserMessage = handlers.onUserMessage;
|
|
4591
4749
|
handlers.onUserMessage = (message) => {
|
|
@@ -4625,7 +4783,11 @@ function useConversationActions({
|
|
|
4625
4783
|
onMailDraft: handlers.onMailDraft,
|
|
4626
4784
|
onElapsedTime: handlers.onElapsedTime,
|
|
4627
4785
|
onContextUpdate: handlers.onContextUpdate,
|
|
4628
|
-
onQuotaExceeded: (quota) => chatHost?.onQuotaExceeded?.(quota)
|
|
4786
|
+
onQuotaExceeded: (quota) => chatHost?.onQuotaExceeded?.(quota),
|
|
4787
|
+
onWorkspace: (workspaceId) => {
|
|
4788
|
+
streamState.workspaceId = workspaceId;
|
|
4789
|
+
confirmTurnWorkspace();
|
|
4790
|
+
}
|
|
4629
4791
|
});
|
|
4630
4792
|
flushStreamingTokens(queryClient);
|
|
4631
4793
|
if (queuedContinuation && !streamState.hasStreamStarted) {
|
|
@@ -4657,7 +4819,16 @@ function useConversationActions({
|
|
|
4657
4819
|
if (threadParent) {
|
|
4658
4820
|
session.clearQueuedMessages(threadParent);
|
|
4659
4821
|
}
|
|
4660
|
-
void sendMessageRef.current?.(
|
|
4822
|
+
void sendMessageRef.current?.(
|
|
4823
|
+
followUp,
|
|
4824
|
+
threadParent,
|
|
4825
|
+
streamState.workspaceId && streamState.conversationId !== "new" ? {
|
|
4826
|
+
target: {
|
|
4827
|
+
workspaceId: streamState.workspaceId,
|
|
4828
|
+
conversationId: streamState.conversationId
|
|
4829
|
+
}
|
|
4830
|
+
} : void 0
|
|
4831
|
+
);
|
|
4661
4832
|
}
|
|
4662
4833
|
if (ownsGeneration) {
|
|
4663
4834
|
const lastStatus = streamState.serverError ? "failed" : "completed";
|
|
@@ -5621,8 +5792,12 @@ function useConversation(options = {}) {
|
|
|
5621
5792
|
...all.filter((existing) => existing.id !== staged.path),
|
|
5622
5793
|
{ id: staged.path, name: staged.name }
|
|
5623
5794
|
]);
|
|
5624
|
-
} else
|
|
5625
|
-
|
|
5795
|
+
} else {
|
|
5796
|
+
const result = await arbi.documents.upload([file], {
|
|
5797
|
+
...workspaceId ? { workspaceExtId: workspaceId } : {}
|
|
5798
|
+
});
|
|
5799
|
+
uploaded.push(...result.doc_ext_ids ?? []);
|
|
5800
|
+
}
|
|
5626
5801
|
}
|
|
5627
5802
|
if (uploaded.length) await refreshDocuments(queryClient, arbi, uploaded);
|
|
5628
5803
|
} catch (e) {
|
|
@@ -5631,7 +5806,7 @@ function useConversation(options = {}) {
|
|
|
5631
5806
|
setIsUploading(false);
|
|
5632
5807
|
}
|
|
5633
5808
|
},
|
|
5634
|
-
[arbi, queryClient, agentId]
|
|
5809
|
+
[arbi, queryClient, agentId, workspaceId]
|
|
5635
5810
|
);
|
|
5636
5811
|
const runningAnswer = generation?.streamingAssistantId;
|
|
5637
5812
|
const queue = runningAnswer && queuedMessages2[runningAnswer] || [];
|
|
@@ -6322,6 +6497,19 @@ var ChatBubble = memo(function ChatBubble2({
|
|
|
6322
6497
|
}
|
|
6323
6498
|
);
|
|
6324
6499
|
});
|
|
6500
|
+
var BOOT_GATE_TIMEOUT_MS = 1e4;
|
|
6501
|
+
function useBootTimeout(isWaiting, label, ms = BOOT_GATE_TIMEOUT_MS) {
|
|
6502
|
+
const [timedOut, setTimedOut] = useState(false);
|
|
6503
|
+
useEffect(() => {
|
|
6504
|
+
if (!isWaiting || timedOut) return;
|
|
6505
|
+
const timer = setTimeout(() => {
|
|
6506
|
+
console.warn(`[boot] ${label} did not finish within ${ms / 1e3}s; continuing without it`);
|
|
6507
|
+
setTimedOut(true);
|
|
6508
|
+
}, ms);
|
|
6509
|
+
return () => clearTimeout(timer);
|
|
6510
|
+
}, [isWaiting, timedOut]);
|
|
6511
|
+
return timedOut;
|
|
6512
|
+
}
|
|
6325
6513
|
function hashText(text2) {
|
|
6326
6514
|
let h = 5381;
|
|
6327
6515
|
for (let i = 0; i < text2.length; i++) h = h * 33 ^ text2.charCodeAt(i);
|
|
@@ -7508,10 +7696,16 @@ function usePlanWorkspaceTransfer(scope, mode, options = {}) {
|
|
|
7508
7696
|
const workspaceId = openWorkspaceId(arbi);
|
|
7509
7697
|
return useQuery({
|
|
7510
7698
|
queryKey: arbiQueryKeys.workspaceTransferPlan(workspaceId, JSON.stringify(scope), mode),
|
|
7511
|
-
|
|
7699
|
+
// The plan is of the workspace open on the server: kept only if it stayed `workspaceId`.
|
|
7700
|
+
queryFn: () => arbi.readInWorkspace(
|
|
7701
|
+
workspaceId,
|
|
7702
|
+
() => arbi.workspaces.transfer.plan(scope, mode)
|
|
7703
|
+
),
|
|
7512
7704
|
enabled: !!workspaceId && (options.enabled ?? true),
|
|
7513
7705
|
staleTime: 1e4,
|
|
7514
|
-
|
|
7706
|
+
// The previous plan stays while the next loads, never another workspace's.
|
|
7707
|
+
// ['arbi', 'workspaceTransfers', 'plan', workspaceId, scope, mode]
|
|
7708
|
+
placeholderData: (previous, previousQuery) => previousQuery?.queryKey[3] === workspaceId ? previous : void 0
|
|
7515
7709
|
});
|
|
7516
7710
|
}
|
|
7517
7711
|
function useStartWorkspaceTransfer() {
|
|
@@ -7550,7 +7744,10 @@ function useWorkspaceTransfers(options = {}) {
|
|
|
7550
7744
|
const workspaceId = openWorkspaceId(arbi);
|
|
7551
7745
|
return useQuery({
|
|
7552
7746
|
queryKey: arbiQueryKeys.workspaceTransfers(workspaceId),
|
|
7553
|
-
queryFn: () => arbi.
|
|
7747
|
+
queryFn: () => arbi.readInWorkspace(
|
|
7748
|
+
workspaceId,
|
|
7749
|
+
() => arbi.workspaces.transfer.list()
|
|
7750
|
+
),
|
|
7554
7751
|
enabled: !!workspaceId && (options.enabled ?? true)
|
|
7555
7752
|
});
|
|
7556
7753
|
}
|
|
@@ -7752,10 +7949,13 @@ var DATABASE_RELATION_PICK_LIMIT = 50;
|
|
|
7752
7949
|
function invalidateRelatedRows(queryClient, databaseId, includeSelf) {
|
|
7753
7950
|
return queryClient.invalidateQueries({
|
|
7754
7951
|
queryKey: arbiQueryKeys.databaseRows(),
|
|
7755
|
-
// ['arbi', 'databases', 'rows', databaseId, params]
|
|
7756
|
-
predicate: (query) => includeSelf || query.queryKey[
|
|
7952
|
+
// ['arbi', 'databases', 'rows', workspaceId, databaseId, params]
|
|
7953
|
+
predicate: (query) => includeSelf || query.queryKey[4] !== databaseId
|
|
7757
7954
|
});
|
|
7758
7955
|
}
|
|
7956
|
+
function sameWorkspace(queryKey, workspaceId) {
|
|
7957
|
+
return !!queryKey && queryKey[3] === workspaceId;
|
|
7958
|
+
}
|
|
7759
7959
|
function useInvalidate() {
|
|
7760
7960
|
const queryClient = useQueryClient();
|
|
7761
7961
|
return {
|
|
@@ -7767,43 +7967,51 @@ function useInvalidate() {
|
|
|
7767
7967
|
all: () => queryClient.invalidateQueries({ queryKey: arbiQueryKeys.databases() })
|
|
7768
7968
|
};
|
|
7769
7969
|
}
|
|
7970
|
+
function openWorkspaceId2(arbi) {
|
|
7971
|
+
return arbi.hasWorkspace ? arbi.getWorkspaceId() : "";
|
|
7972
|
+
}
|
|
7770
7973
|
function useDatabases() {
|
|
7771
7974
|
const arbi = useArbi();
|
|
7975
|
+
const workspaceId = openWorkspaceId2(arbi);
|
|
7772
7976
|
return useQuery({
|
|
7773
|
-
queryKey: arbiQueryKeys.databaseList(),
|
|
7774
|
-
queryFn: () => arbi.databases.list(),
|
|
7775
|
-
enabled:
|
|
7977
|
+
queryKey: arbiQueryKeys.databaseList(workspaceId),
|
|
7978
|
+
queryFn: () => arbi.readInWorkspace(workspaceId, () => arbi.databases.list()),
|
|
7979
|
+
enabled: !!workspaceId,
|
|
7776
7980
|
staleTime: 1e3 * 30
|
|
7777
7981
|
});
|
|
7778
7982
|
}
|
|
7779
7983
|
function useDatabase(databaseId) {
|
|
7780
7984
|
const arbi = useArbi();
|
|
7985
|
+
const workspaceId = openWorkspaceId2(arbi);
|
|
7781
7986
|
return useQuery({
|
|
7782
|
-
queryKey: arbiQueryKeys.database(databaseId ?? ""),
|
|
7987
|
+
queryKey: arbiQueryKeys.database(workspaceId, databaseId ?? ""),
|
|
7783
7988
|
queryFn: () => arbi.databases.get(databaseId),
|
|
7784
|
-
enabled:
|
|
7989
|
+
enabled: !!workspaceId && Boolean(databaseId),
|
|
7785
7990
|
staleTime: 1e3 * 30
|
|
7786
7991
|
});
|
|
7787
7992
|
}
|
|
7788
7993
|
function useDatabaseRows(databaseId, q) {
|
|
7789
7994
|
const arbi = useArbi();
|
|
7995
|
+
const workspaceId = openWorkspaceId2(arbi);
|
|
7790
7996
|
const query = { q: q.trim() || void 0, limit: DATABASE_ROWS_PAGE };
|
|
7791
7997
|
return useQuery({
|
|
7792
|
-
queryKey: arbiQueryKeys.databaseRows(databaseId ?? "", query),
|
|
7998
|
+
queryKey: arbiQueryKeys.databaseRows(workspaceId, databaseId ?? "", query),
|
|
7793
7999
|
queryFn: () => arbi.databases.rows(databaseId, query),
|
|
7794
|
-
enabled:
|
|
8000
|
+
enabled: !!workspaceId && Boolean(databaseId),
|
|
7795
8001
|
staleTime: 1e3 * 15,
|
|
7796
|
-
|
|
8002
|
+
// What was shown stays while the next search loads, never another workspace's rows.
|
|
8003
|
+
placeholderData: (previous, previousQuery) => sameWorkspace(previousQuery?.queryKey, workspaceId) ? previous : void 0
|
|
7797
8004
|
});
|
|
7798
8005
|
}
|
|
7799
8006
|
function useDatabaseAggregate(databaseId, request, options) {
|
|
7800
8007
|
const arbi = useArbi();
|
|
8008
|
+
const workspaceId = openWorkspaceId2(arbi);
|
|
7801
8009
|
return useQuery({
|
|
7802
|
-
queryKey: arbiQueryKeys.databaseAggregate(databaseId ?? "", request),
|
|
8010
|
+
queryKey: arbiQueryKeys.databaseAggregate(workspaceId, databaseId ?? "", request),
|
|
7803
8011
|
queryFn: () => arbi.databases.aggregate(databaseId, request),
|
|
7804
|
-
enabled: (options?.enabled ?? true) &&
|
|
8012
|
+
enabled: (options?.enabled ?? true) && !!workspaceId && Boolean(databaseId),
|
|
7805
8013
|
staleTime: 1e3 * 15,
|
|
7806
|
-
placeholderData: (previous) => previous
|
|
8014
|
+
placeholderData: (previous, previousQuery) => sameWorkspace(previousQuery?.queryKey, workspaceId) ? previous : void 0
|
|
7807
8015
|
});
|
|
7808
8016
|
}
|
|
7809
8017
|
function useSearchDatabaseRows() {
|
|
@@ -7851,6 +8059,7 @@ function useAddDatabaseRows() {
|
|
|
7851
8059
|
function useUpdateDatabaseRow() {
|
|
7852
8060
|
const arbi = useArbi();
|
|
7853
8061
|
const queryClient = useQueryClient();
|
|
8062
|
+
const workspaceId = openWorkspaceId2(arbi);
|
|
7854
8063
|
return useMutation({
|
|
7855
8064
|
mutationFn: ({
|
|
7856
8065
|
databaseId,
|
|
@@ -7862,7 +8071,9 @@ function useUpdateDatabaseRow() {
|
|
|
7862
8071
|
{ queryKey: arbiQueryKeys.databaseRows() },
|
|
7863
8072
|
(page) => page && { ...page, rows: page.rows.map((row) => row.id === saved.id ? saved : row) }
|
|
7864
8073
|
);
|
|
7865
|
-
const database = queryClient.getQueryData(
|
|
8074
|
+
const database = queryClient.getQueryData(
|
|
8075
|
+
arbiQueryKeys.database(workspaceId, databaseId)
|
|
8076
|
+
);
|
|
7866
8077
|
const selfLinked = !database?.columns || database.columns.some(
|
|
7867
8078
|
(column) => column.id in (values ?? {}) && column.type === "relation" && column.relation?.database_id === databaseId
|
|
7868
8079
|
);
|
|
@@ -8926,7 +9137,13 @@ function useDatabaseDashboardStore(options = {}) {
|
|
|
8926
9137
|
(d) => d.editable && d.workspace_id === workspaceId && d.name === name && (d.columns ?? []).some((c) => c.name === SPEC_COLUMN)
|
|
8927
9138
|
);
|
|
8928
9139
|
}
|
|
9140
|
+
function inWorkspace2(read) {
|
|
9141
|
+
return workspaceId ? arbi.readInWorkspace(workspaceId, read) : read();
|
|
9142
|
+
}
|
|
8929
9143
|
async function ensure() {
|
|
9144
|
+
return inWorkspace2(ensureHere);
|
|
9145
|
+
}
|
|
9146
|
+
async function ensureHere() {
|
|
8930
9147
|
const found = await find();
|
|
8931
9148
|
if (found) return found;
|
|
8932
9149
|
const created = await arbi.databases.create({
|
|
@@ -8937,12 +9154,14 @@ function useDatabaseDashboardStore(options = {}) {
|
|
|
8937
9154
|
{ name: SPEC_COLUMN, type: "text" }
|
|
8938
9155
|
]
|
|
8939
9156
|
});
|
|
8940
|
-
void queryClient.invalidateQueries({
|
|
9157
|
+
void queryClient.invalidateQueries({
|
|
9158
|
+
queryKey: arbiQueryKeys.databaseList(workspaceId ?? void 0)
|
|
9159
|
+
});
|
|
8941
9160
|
return created;
|
|
8942
9161
|
}
|
|
8943
9162
|
return {
|
|
8944
9163
|
scope: workspaceId,
|
|
8945
|
-
async
|
|
9164
|
+
list: () => inWorkspace2(async () => {
|
|
8946
9165
|
const database = await find();
|
|
8947
9166
|
if (!database) return [];
|
|
8948
9167
|
const spec = database.columns?.find((c) => c.name === SPEC_COLUMN)?.id ?? SPEC_COLUMN;
|
|
@@ -8951,7 +9170,7 @@ function useDatabaseDashboardStore(options = {}) {
|
|
|
8951
9170
|
const parsed = parseDashboardSpec(row.values[spec]);
|
|
8952
9171
|
return parsed ? [{ id: row.id, spec: parsed, updatedAt: row.updated_at }] : [];
|
|
8953
9172
|
});
|
|
8954
|
-
},
|
|
9173
|
+
}),
|
|
8955
9174
|
async save({ id, spec }) {
|
|
8956
9175
|
const values = { [NAME_COLUMN]: spec.title, [SPEC_COLUMN]: serializeDashboardSpec(spec) };
|
|
8957
9176
|
const database = await ensure();
|
|
@@ -10753,10 +10972,14 @@ function useCalendarOverlays(range, layers) {
|
|
|
10753
10972
|
const workspaceId = arbi.hasWorkspace ? arbi.getWorkspaceId() : null;
|
|
10754
10973
|
return useQuery({
|
|
10755
10974
|
queryKey: calendarQueryKeys.overlays(workspaceId, range ?? void 0, layers),
|
|
10756
|
-
queryFn: () => arbi.
|
|
10975
|
+
queryFn: () => arbi.readInWorkspace(
|
|
10976
|
+
workspaceId,
|
|
10977
|
+
() => arbi.calendar.listOverlays(range, layers)
|
|
10978
|
+
),
|
|
10757
10979
|
enabled: !!workspaceId && !!range && layers.length > 0,
|
|
10758
10980
|
staleTime: 6e4,
|
|
10759
|
-
|
|
10981
|
+
// ['arbi', 'calendar', 'overlays', workspaceId, window]
|
|
10982
|
+
placeholderData: (previous, previousQuery) => previousQuery?.queryKey[3] === workspaceId ? previous : void 0,
|
|
10760
10983
|
retry: false
|
|
10761
10984
|
});
|
|
10762
10985
|
}
|
|
@@ -11735,6 +11958,7 @@ function useSemanticSearch(docIds = [], options = {}) {
|
|
|
11735
11958
|
return;
|
|
11736
11959
|
}
|
|
11737
11960
|
const run = session.getState().run + 1;
|
|
11961
|
+
const searched = workspaceId ?? session.getState().workspaceId ?? void 0;
|
|
11738
11962
|
session.setState((s) => ({
|
|
11739
11963
|
query: trimmed,
|
|
11740
11964
|
status: "running",
|
|
@@ -11746,7 +11970,8 @@ function useSemanticSearch(docIds = [], options = {}) {
|
|
|
11746
11970
|
const result = await arbi.assistant.retrieve(trimmed, docIds, {
|
|
11747
11971
|
searchMode: mode,
|
|
11748
11972
|
store: false,
|
|
11749
|
-
...model ? { model } : {}
|
|
11973
|
+
...model ? { model } : {},
|
|
11974
|
+
...searched ? { workspaceId: searched } : {}
|
|
11750
11975
|
});
|
|
11751
11976
|
if (session.getState().run !== run) return;
|
|
11752
11977
|
session.setState({ results: searchChunks(result), searched: true, status: "done" });
|
|
@@ -14266,6 +14491,6 @@ function CommandPaletteProvider({
|
|
|
14266
14491
|
] });
|
|
14267
14492
|
}
|
|
14268
14493
|
|
|
14269
|
-
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, 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, 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, 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, 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, useDisconnectCalendarAccount, useDisconnectConnector, useDisconnectMailAccount, useDisconnectSlack, useDismissedTips, useDocumentAutoAdd, useDocumentHostActions, useDocumentPendingSync, useDocumentThumbnails, useDocumentsSupport, useDownloadDocuments, useDriveFolderChildren, useDriveFolderDocCount, useDriveFolders, useDriveSyncEstimate, useDriveSyncProgress, useEmailChange, useEnableDriveSync, useEnableMailboxSync, useExportDatabase, useFacts, 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, 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, useRemoveWorkspaceMembers, useRenameChat, useRenameFolder, useRequestEmailChange, useRequestWorkspaceAccess, useRespondToEvent, useResumeCalendarAccountConnect, useResumeWorkspaceTransfer, useRevokeAgentAccess, useRooms, useRunConversation, useRunWorkflow, useSaveAgentConfig, useSaveBookingPage, useSaveCalendarSettings, useSaveConfig, useSaveConfigField, useSaveDashboard, useSaveMailDraft, 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, 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 };
|
|
14494
|
+
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, 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, 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, useDisconnectCalendarAccount, useDisconnectConnector, useDisconnectMailAccount, useDisconnectSlack, useDismissedTips, useDocumentAutoAdd, useDocumentHostActions, useDocumentPendingSync, useDocumentThumbnails, useDocumentsSupport, useDownloadDocuments, useDriveFolderChildren, useDriveFolderDocCount, useDriveFolders, useDriveSyncEstimate, useDriveSyncProgress, useEmailChange, useEnableDriveSync, useEnableMailboxSync, useExportDatabase, useFacts, 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, 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, useRemoveWorkspaceMembers, useRenameChat, useRenameFolder, useRequestEmailChange, useRequestWorkspaceAccess, useRespondToEvent, useResumeCalendarAccountConnect, useResumeWorkspaceTransfer, useRevokeAgentAccess, useRooms, useRunConversation, useRunWorkflow, useSaveAgentConfig, useSaveBookingPage, useSaveCalendarSettings, useSaveConfig, useSaveConfigField, useSaveDashboard, useSaveMailDraft, 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, 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 };
|
|
14270
14495
|
//# sourceMappingURL=index.js.map
|
|
14271
14496
|
//# sourceMappingURL=index.js.map
|