@arbidocs/react 0.5.76 → 0.5.78

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 (44) hide show
  1. package/README.md +37 -7
  2. package/dist/artifacts/index.cjs +10 -10
  3. package/dist/artifacts/index.js +3 -3
  4. package/dist/calls/livekit/index.cjs +42 -42
  5. package/dist/calls/livekit/index.js +3 -3
  6. package/dist/{chunk-2MECTZLS.js → chunk-4QON6LSH.js} +4 -4
  7. package/dist/{chunk-2MECTZLS.js.map → chunk-4QON6LSH.js.map} +1 -1
  8. package/dist/{chunk-RDERZWMO.cjs → chunk-5IN5OGBT.cjs} +33 -33
  9. package/dist/{chunk-RDERZWMO.cjs.map → chunk-5IN5OGBT.cjs.map} +1 -1
  10. package/dist/{chunk-O2HDONQE.js → chunk-5UJ4ZKJN.js} +3 -3
  11. package/dist/{chunk-O2HDONQE.js.map → chunk-5UJ4ZKJN.js.map} +1 -1
  12. package/dist/{chunk-33PVGKXT.js → chunk-DLBGBIAM.js} +231 -69
  13. package/dist/chunk-DLBGBIAM.js.map +1 -0
  14. package/dist/{chunk-PMHFLOXY.cjs → chunk-IZ3B62EN.cjs} +49 -49
  15. package/dist/{chunk-PMHFLOXY.cjs.map → chunk-IZ3B62EN.cjs.map} +1 -1
  16. package/dist/{chunk-6RSVGLQY.cjs → chunk-L2P2X6LH.cjs} +264 -98
  17. package/dist/chunk-L2P2X6LH.cjs.map +1 -0
  18. package/dist/{chunk-MWW54PY6.cjs → chunk-RW3URTNE.cjs} +20 -20
  19. package/dist/{chunk-MWW54PY6.cjs.map → chunk-RW3URTNE.cjs.map} +1 -1
  20. package/dist/{chunk-AOEJ744V.js → chunk-TK7ERJPE.js} +5 -2
  21. package/dist/{chunk-AOEJ744V.js.map → chunk-TK7ERJPE.js.map} +1 -1
  22. package/dist/{chunk-GQAXAZN7.cjs → chunk-U4PWVSCT.cjs} +5 -2
  23. package/dist/{chunk-GQAXAZN7.cjs.map → chunk-U4PWVSCT.cjs.map} +1 -1
  24. package/dist/{chunk-JHN4PKWX.js → chunk-YJEZEPUB.js} +3 -3
  25. package/dist/{chunk-JHN4PKWX.js.map → chunk-YJEZEPUB.js.map} +1 -1
  26. package/dist/document-tools/core.cjs +82 -82
  27. package/dist/document-tools/core.d.cts +2 -2
  28. package/dist/document-tools/core.d.ts +2 -2
  29. package/dist/document-tools/core.js +2 -2
  30. package/dist/document-tools/index.cjs +82 -82
  31. package/dist/document-tools/index.d.cts +1 -1
  32. package/dist/document-tools/index.d.ts +1 -1
  33. package/dist/document-tools/index.js +2 -2
  34. package/dist/index.cjs +1139 -929
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.d.cts +376 -556
  37. package/dist/index.d.ts +376 -556
  38. package/dist/index.js +238 -48
  39. package/dist/index.js.map +1 -1
  40. package/dist/{query-keys.d-BFKQVevT.d.ts → query-keys.d-Dm0NL9nr.d.cts} +3 -0
  41. package/dist/{query-keys.d-BFKQVevT.d.cts → query-keys.d-Dm0NL9nr.d.ts} +3 -0
  42. package/package.json +5 -3
  43. package/dist/chunk-33PVGKXT.js.map +0 -1
  44. package/dist/chunk-6RSVGLQY.cjs.map +0 -1
@@ -1,4 +1,4 @@
1
- import { arbiQueryKeys } from './chunk-AOEJ744V.js';
1
+ import { arbiQueryKeys } from './chunk-TK7ERJPE.js';
2
2
  import { useArbiHost, useArbi } from './chunk-2Y6LJNWA.js';
3
3
  import { OWN_SESSION_SLOT } from './chunk-DPYBZDJB.js';
4
4
  import { parseVersionRef } from './chunk-NNWMHMEC.js';
@@ -706,6 +706,194 @@ function createArbiChatStore({
706
706
  };
707
707
  }
708
708
 
709
+ // src/session/documents.ts
710
+ var VIEWER_TABS = [
711
+ "pdf",
712
+ "edit",
713
+ "html",
714
+ "docx",
715
+ "xlsx",
716
+ "versions",
717
+ "preview"
718
+ ];
719
+ var DEFAULT_DOCUMENT_VIEWER_STATE = {
720
+ tab: "pdf",
721
+ compareId: null,
722
+ tabRequest: null,
723
+ textScale: 1,
724
+ phonePdfChosen: false,
725
+ commentTarget: null,
726
+ unsavedChanges: false,
727
+ detached: false
728
+ };
729
+ var NO_PASSAGE_CITATION = {
730
+ active: null,
731
+ highlighted: [],
732
+ picked: [],
733
+ unpicked: []
734
+ };
735
+ var EMPTY_DOCUMENT_STATE = {
736
+ viewingDocument: null,
737
+ documentViewer: DEFAULT_DOCUMENT_VIEWER_STATE,
738
+ selectedDocumentIds: [],
739
+ documentsToSelect: null,
740
+ pinnedDocumentId: null,
741
+ relatedDocuments: /* @__PURE__ */ new Map(),
742
+ draftDocuments: {},
743
+ passageCitation: NO_PASSAGE_CITATION
744
+ };
745
+ var DRAFT_TITLES = {
746
+ text: "New Doc",
747
+ audio: "New Audio",
748
+ photo: "New Photo",
749
+ video: "New Video"
750
+ };
751
+ function nextViewingDocument(current, input) {
752
+ if (!input) return null;
753
+ const same = current?.id === input.id;
754
+ return {
755
+ id: input.id,
756
+ page: input.page !== void 0 ? input.page : same ? current?.page ?? null : null,
757
+ passageId: input.passageId !== void 0 ? input.passageId : current?.passageId ?? null
758
+ };
759
+ }
760
+ var isRecord3 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
761
+ var isPage = (value) => typeof value === "number" && Number.isInteger(value) && value >= 1;
762
+ function parseSavedDocuments(saved) {
763
+ if (!isRecord3(saved) || saved.version !== 1) return null;
764
+ const viewing = isRecord3(saved.viewingDocument) ? saved.viewingDocument : null;
765
+ return {
766
+ version: 1,
767
+ viewingDocument: viewing && typeof viewing.id === "string" && viewing.id ? { id: viewing.id, page: isPage(viewing.page) ? viewing.page : null } : null,
768
+ pinnedDocumentId: typeof saved.pinnedDocumentId === "string" ? saved.pinnedDocumentId : null,
769
+ tab: VIEWER_TABS.includes(saved.tab) ? saved.tab : DEFAULT_DOCUMENT_VIEWER_STATE.tab,
770
+ textScale: typeof saved.textScale === "number" && Number.isFinite(saved.textScale) && saved.textScale > 0 ? saved.textScale : DEFAULT_DOCUMENT_VIEWER_STATE.textScale
771
+ };
772
+ }
773
+ function savedDocumentsOf(state) {
774
+ return {
775
+ version: 1,
776
+ viewingDocument: state.viewingDocument ? { id: state.viewingDocument.id, page: state.viewingDocument.page } : null,
777
+ pinnedDocumentId: state.pinnedDocumentId,
778
+ tab: state.documentViewer.tab,
779
+ textScale: state.documentViewer.textScale
780
+ };
781
+ }
782
+ function restoreSavedDocuments(base, saved) {
783
+ return {
784
+ ...base,
785
+ viewingDocument: saved.viewingDocument ? { id: saved.viewingDocument.id, page: saved.viewingDocument.page, passageId: null } : null,
786
+ pinnedDocumentId: saved.pinnedDocumentId,
787
+ documentViewer: { ...base.documentViewer, tab: saved.tab, textScale: saved.textScale }
788
+ };
789
+ }
790
+ function createArbiDocumentSessionStore({
791
+ initial = {},
792
+ persist,
793
+ showViewer
794
+ } = {}) {
795
+ let state = { ...EMPTY_DOCUMENT_STATE, ...initial };
796
+ if (persist) {
797
+ const saved = parseSavedDocuments(persist.load());
798
+ if (saved) state = restoreSavedDocuments(state, saved);
799
+ }
800
+ const listeners = /* @__PURE__ */ new Set();
801
+ const update = (patch) => {
802
+ const previous = state;
803
+ state = { ...state, ...patch };
804
+ if (persist && (state.viewingDocument !== previous.viewingDocument || state.pinnedDocumentId !== previous.pinnedDocumentId || state.documentViewer.tab !== previous.documentViewer.tab || state.documentViewer.textScale !== previous.documentViewer.textScale))
805
+ persist.save(savedDocumentsOf(state));
806
+ listeners.forEach((listener) => listener());
807
+ };
808
+ const setDocumentViewer = (change) => {
809
+ const next = { ...state.documentViewer, ...change };
810
+ const keys = Object.keys(change);
811
+ if (keys.some((key) => next[key] !== state.documentViewer[key]))
812
+ update({ documentViewer: next });
813
+ };
814
+ const updateDraft = (id, change) => {
815
+ const draft = state.draftDocuments[id];
816
+ if (draft) update({ draftDocuments: { ...state.draftDocuments, [id]: change(draft) } });
817
+ };
818
+ return {
819
+ getState: () => state,
820
+ subscribe: (listener) => {
821
+ listeners.add(listener);
822
+ return () => listeners.delete(listener);
823
+ },
824
+ setViewingDocument: (input) => update({ viewingDocument: nextViewingDocument(state.viewingDocument, input) }),
825
+ setDocumentViewer,
826
+ setSelectedDocumentIds: (ids) => update({ selectedDocumentIds: ids }),
827
+ setDocumentsToSelect: (ids) => update({ documentsToSelect: ids }),
828
+ setPinnedDocumentId: (pinnedDocumentId) => update({ pinnedDocumentId }),
829
+ setRelatedDocuments: (relatedDocuments) => update({ relatedDocuments }),
830
+ setPassageCitation: (change) => update({ passageCitation: { ...state.passageCitation, ...change } }),
831
+ showNewDocument: (documentId, tab) => {
832
+ update({
833
+ viewingDocument: { id: documentId, page: null, passageId: null },
834
+ documentViewer: tab ? { ...state.documentViewer, tab } : state.documentViewer
835
+ });
836
+ showViewer?.();
837
+ },
838
+ startDraftDocument: (kind) => {
839
+ const id = `draft-${crypto.randomUUID()}`;
840
+ const draft = {
841
+ id,
842
+ title: DRAFT_TITLES[kind],
843
+ kind,
844
+ content: "",
845
+ mediaBlob: null,
846
+ createdAt: (/* @__PURE__ */ new Date()).toISOString()
847
+ };
848
+ update({
849
+ draftDocuments: { ...state.draftDocuments, [id]: draft },
850
+ viewingDocument: { id, page: null, passageId: null },
851
+ // A text draft is written in the editor; a capture's recorder replaces the tabs.
852
+ documentViewer: kind === "text" ? { ...state.documentViewer, tab: "edit" } : state.documentViewer
853
+ });
854
+ showViewer?.();
855
+ return id;
856
+ },
857
+ updateDraftDocument: (id, change) => updateDraft(id, (draft) => ({ ...draft, ...change })),
858
+ setDraftDocumentKind: (id, kind) => updateDraft(id, (draft) => ({
859
+ ...draft,
860
+ kind,
861
+ mediaBlob: null,
862
+ title: Object.values(DRAFT_TITLES).includes(draft.title) ? DRAFT_TITLES[kind] : draft.title
863
+ })),
864
+ clearDraftDocument: (id) => {
865
+ if (!(id in state.draftDocuments)) return;
866
+ const rest = { ...state.draftDocuments };
867
+ delete rest[id];
868
+ update({ draftDocuments: rest });
869
+ },
870
+ leave: () => update({
871
+ viewingDocument: null,
872
+ selectedDocumentIds: [],
873
+ documentsToSelect: null,
874
+ pinnedDocumentId: null,
875
+ relatedDocuments: /* @__PURE__ */ new Map(),
876
+ passageCitation: NO_PASSAGE_CITATION,
877
+ documentViewer: {
878
+ ...state.documentViewer,
879
+ compareId: null,
880
+ tabRequest: null,
881
+ commentTarget: null,
882
+ unsavedChanges: false,
883
+ detached: false
884
+ }
885
+ }),
886
+ reset: () => update({
887
+ ...EMPTY_DOCUMENT_STATE,
888
+ relatedDocuments: /* @__PURE__ */ new Map(),
889
+ documentViewer: {
890
+ ...DEFAULT_DOCUMENT_VIEWER_STATE,
891
+ textScale: state.documentViewer.textScale
892
+ }
893
+ })
894
+ };
895
+ }
896
+
709
897
  // src/session/layout.ts
710
898
  var PANEL_MODES = ["main", "docked", "overlay", "popout"];
711
899
  var defaultPinned = () => typeof window === "undefined" || window.innerWidth >= 640;
@@ -731,22 +919,22 @@ function defaultLayoutState() {
731
919
  grid: { states: {}, rowHeights: {}, labelWidths: {}, savedViews: {} }
732
920
  };
733
921
  }
734
- var isRecord3 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
735
- var recordOf2 = (value, keep) => isRecord3(value) ? Object.fromEntries(Object.entries(value).filter(([, v]) => keep(v))) : {};
922
+ var isRecord4 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
923
+ var recordOf2 = (value, keep) => isRecord4(value) ? Object.fromEntries(Object.entries(value).filter(([, v]) => keep(v))) : {};
736
924
  var isString2 = (v) => typeof v === "string";
737
925
  var isNumber = (v) => typeof v === "number" && Number.isFinite(v);
738
926
  var isAny = (v) => v !== void 0;
739
927
  var isMode = (v) => PANEL_MODES.includes(v);
740
- var isSize = (v) => isRecord3(v) && isNumber(v.width) && isNumber(v.height);
928
+ var isSize = (v) => isRecord4(v) && isNumber(v.width) && isNumber(v.height);
741
929
  var isList = (v) => Array.isArray(v);
742
930
  var stringOrNull3 = (v) => isString2(v) ? v : null;
743
931
  function parseSavedLayout(saved) {
744
- if (!isRecord3(saved) || saved.version !== 1) return null;
745
- const shell = isRecord3(saved.shell) ? saved.shell : {};
746
- const panels = isRecord3(shell.panels) ? shell.panels : {};
747
- const tabs = isRecord3(saved.tabs) ? saved.tabs : {};
748
- const views = isRecord3(saved.views) ? saved.views : {};
749
- const grid = isRecord3(saved.grid) ? saved.grid : {};
932
+ if (!isRecord4(saved) || saved.version !== 1) return null;
933
+ const shell = isRecord4(saved.shell) ? saved.shell : {};
934
+ const panels = isRecord4(shell.panels) ? shell.panels : {};
935
+ const tabs = isRecord4(saved.tabs) ? saved.tabs : {};
936
+ const views = isRecord4(saved.views) ? saved.views : {};
937
+ const grid = isRecord4(saved.grid) ? saved.grid : {};
750
938
  const defaults = defaultLayoutState();
751
939
  return {
752
940
  version: 1,
@@ -768,7 +956,7 @@ function parseSavedLayout(saved) {
768
956
  values: recordOf2(views.values, isAny)
769
957
  },
770
958
  grid: {
771
- states: recordOf2(grid.states, isRecord3),
959
+ states: recordOf2(grid.states, isRecord4),
772
960
  rowHeights: recordOf2(grid.rowHeights, isNumber),
773
961
  labelWidths: recordOf2(grid.labelWidths, isNumber),
774
962
  savedViews: recordOf2(grid.savedViews, isList)
@@ -1095,19 +1283,6 @@ function readWorkspaceLastOpened(lastOpenedKey = WORKSPACE_LAST_OPENED_KEY) {
1095
1283
  }
1096
1284
 
1097
1285
  // src/session/store.ts
1098
- var DEFAULT_DOCUMENT_VIEWER_STATE = {
1099
- tab: "pdf",
1100
- compareId: null,
1101
- tabRequest: null,
1102
- textScale: 1,
1103
- phonePdfChosen: false
1104
- };
1105
- var EMPTY_DOCUMENT_STATE = {
1106
- viewingDocument: null,
1107
- documentViewer: DEFAULT_DOCUMENT_VIEWER_STATE,
1108
- selectedDocumentIds: [],
1109
- pinnedDocumentId: null
1110
- };
1111
1286
  var EMPTY_SESSION_STATE = {
1112
1287
  workspaceId: null,
1113
1288
  workspaceStatus: "closed",
@@ -1119,40 +1294,6 @@ var selectViewingDocumentId = (state) => state.viewingDocument ? parseVersionRef
1119
1294
  var conversationKey = (state) => state.conversationId ?? "new";
1120
1295
  var selectDraft = (state) => state.drafts[conversationKey(state)] ?? "";
1121
1296
  var selectIsGenerating = (conversationId) => (state) => !!conversationId && !!state.generating[conversationId]?.isGenerating;
1122
- function nextViewingDocument(current, input) {
1123
- if (!input) return null;
1124
- const same = current?.id === input.id;
1125
- return {
1126
- id: input.id,
1127
- page: input.page !== void 0 ? input.page : same ? current?.page ?? null : null,
1128
- passageId: input.passageId !== void 0 ? input.passageId : current?.passageId ?? null
1129
- };
1130
- }
1131
- function createArbiDocumentSessionStore(initial = {}) {
1132
- let state = { ...EMPTY_DOCUMENT_STATE, ...initial };
1133
- const listeners = /* @__PURE__ */ new Set();
1134
- const update = (patch) => {
1135
- state = { ...state, ...patch };
1136
- listeners.forEach((listener) => listener());
1137
- };
1138
- return {
1139
- getState: () => state,
1140
- subscribe: (listener) => {
1141
- listeners.add(listener);
1142
- return () => listeners.delete(listener);
1143
- },
1144
- setViewingDocument: (input) => update({ viewingDocument: nextViewingDocument(state.viewingDocument, input) }),
1145
- setDocumentViewer: (change) => {
1146
- const next = { ...state.documentViewer, ...change };
1147
- const keys = Object.keys(change);
1148
- if (keys.some((key) => next[key] !== state.documentViewer[key]))
1149
- update({ documentViewer: next });
1150
- },
1151
- setSelectedDocumentIds: (ids) => update({ selectedDocumentIds: ids }),
1152
- setPinnedDocumentId: (pinnedDocumentId) => update({ pinnedDocumentId }),
1153
- leave: () => update({ viewingDocument: null, selectedDocumentIds: [], pinnedDocumentId: null })
1154
- };
1155
- }
1156
1297
  function layoutActionsOf(layout) {
1157
1298
  const actions = { ...layout };
1158
1299
  delete actions.getLayout;
@@ -1177,6 +1318,14 @@ function chatActionsOf(chat) {
1177
1318
  delete actions.reset;
1178
1319
  return actions;
1179
1320
  }
1321
+ function documentActionsOf(documents) {
1322
+ const actions = { ...documents };
1323
+ delete actions.getState;
1324
+ delete actions.subscribe;
1325
+ delete actions.leave;
1326
+ delete actions.reset;
1327
+ return actions;
1328
+ }
1180
1329
  function composeArbiSessionStore({
1181
1330
  layout,
1182
1331
  workspace,
@@ -1201,6 +1350,7 @@ function composeArbiSessionStore({
1201
1350
  return {
1202
1351
  ...layoutActionsOf(layout),
1203
1352
  ...chatActionsOf(chat),
1353
+ ...documentActionsOf(documents),
1204
1354
  getState,
1205
1355
  layoutHydrated: () => layout.hydrated(),
1206
1356
  isLayoutHydrated: () => layout.isHydrated(),
@@ -1223,11 +1373,7 @@ function composeArbiSessionStore({
1223
1373
  workspace.setWorkspaceStatus("closed");
1224
1374
  chat.leave();
1225
1375
  documents.leave();
1226
- }),
1227
- setViewingDocument: (input) => documents.setViewingDocument(input),
1228
- setDocumentViewer: (change) => documents.setDocumentViewer(change),
1229
- setSelectedDocumentIds: (ids) => documents.setSelectedDocumentIds(ids),
1230
- setPinnedDocumentId: (id) => documents.setPinnedDocumentId(id)
1376
+ })
1231
1377
  };
1232
1378
  }
1233
1379
  function createArbiSessionStore(initial = {}, {
@@ -1244,7 +1390,11 @@ function createArbiSessionStore(initial = {}, {
1244
1390
  viewingDocument,
1245
1391
  documentViewer,
1246
1392
  selectedDocumentIds,
1393
+ documentsToSelect,
1247
1394
  pinnedDocumentId,
1395
+ relatedDocuments,
1396
+ draftDocuments,
1397
+ passageCitation,
1248
1398
  ...chatInitial
1249
1399
  } = initial;
1250
1400
  delete chatInitial.workspaceId;
@@ -1255,9 +1405,21 @@ function createArbiSessionStore(initial = {}, {
1255
1405
  layout,
1256
1406
  workspace,
1257
1407
  chat: createArbiChatStore({ layout, draftStorage, initial: chatInitial }),
1258
- documents: createArbiDocumentSessionStore(
1259
- defined({ viewingDocument, documentViewer, selectedDocumentIds, pinnedDocumentId })
1260
- )
1408
+ documents: createArbiDocumentSessionStore({
1409
+ initial: defined({
1410
+ viewingDocument,
1411
+ documentViewer: documentViewer && {
1412
+ ...EMPTY_DOCUMENT_STATE.documentViewer,
1413
+ ...documentViewer
1414
+ },
1415
+ selectedDocumentIds,
1416
+ documentsToSelect,
1417
+ pinnedDocumentId,
1418
+ relatedDocuments,
1419
+ draftDocuments,
1420
+ passageCitation
1421
+ })
1422
+ })
1261
1423
  });
1262
1424
  }
1263
1425
  var SAVE_DELAY_MS = 500;
@@ -1973,6 +2135,6 @@ function useUserUsageToday(options) {
1973
2135
  });
1974
2136
  }
1975
2137
 
1976
- 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 };
1977
- //# sourceMappingURL=chunk-33PVGKXT.js.map
1978
- //# sourceMappingURL=chunk-33PVGKXT.js.map
2138
+ export { DEFAULT_DOCUMENT_VIEWER_STATE, EMPTY_CHAT_STATE, EMPTY_DOCUMENT_STATE, EMPTY_SESSION_STATE, MAX_THREAD_TABS, MIN_QUEUED_MESSAGE_VISIBILITY_MS, PROJECT_CREATION_DENIED_REASON, WORKSPACE_LAST_OPENED_KEY, WORKSPACE_STORAGE_KEY, agentControl, browserWorkspaceStorage, clearSealedDrafts, closePanelIn, composeArbiSessionStore, conversationKey, createArbiChatStore, createArbiDocumentSessionStore, createArbiLayoutStore, createArbiSessionStore, createArbiWorkspaceStore, createDebouncedWriter, createSealedDraftStorage, createStoragePersist, createUiStateStorage, defaultLayoutState, dmTabId, flushOnPageExit, isPanelOpen, isUsageMetered, layoutActionsOf, nextViewingDocument, openPanelIn, panelPlace, parseSavedChat, parseSavedDocuments, parseSavedLayout, queuedMessages, readWorkspaceLastOpened, restoreLayout, restoreSavedDocuments, savedChatOf, savedDocumentsOf, savedLayoutOf, selectDraft, selectIsGenerating, selectViewingDocumentId, threadTabId, useActivity, useAgents, useArbiSession, useArbiSessionState, useArbiSessionStore, useAssistantQuery, useAvailableModels, useBoxRole, useBuiltinCommands, useCanCreateProjects, useConfig, useConfigs, useConversationThreads, useConversations, useCurrentUser, useDeleteAgents, useDocumentVersionList, useFirmPool, useHealth, useMessageDetails, useParsedDocument, useProjectInvoices, useProjectUsage, useProjects, useProjectsUsage, useSessionPageTab, useSessionView, useSignedInSession, useTags, useThumbnails, useTopUpFirmPool, useTransientView, useUserUsageToday, useWorkspaceActivity, useWorkspaces };
2139
+ //# sourceMappingURL=chunk-DLBGBIAM.js.map
2140
+ //# sourceMappingURL=chunk-DLBGBIAM.js.map