@arbidocs/blocks 0.4.86 → 0.4.87

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 (101) hide show
  1. package/dist/activity/NotificationRelevanceControls.d.ts +47 -0
  2. package/dist/activity/WorkspaceActivityList.d.ts +34 -0
  3. package/dist/activity/index.d.ts +3 -0
  4. package/dist/activity/workspace-activity.d.ts +46 -0
  5. package/dist/agents/index.cjs +290 -286
  6. package/dist/agents/index.js +5 -5
  7. package/dist/agents/tasks/TaskActivityTimeline.d.ts +5 -0
  8. package/dist/agents/tasks/index.d.ts +1 -1
  9. package/dist/chat/index.cjs +125 -125
  10. package/dist/chat/index.js +3 -3
  11. package/dist/{chunk-X23U6QEJ.js → chunk-2FBQSQDW.js} +286 -6
  12. package/dist/chunk-2FBQSQDW.js.map +1 -0
  13. package/dist/{chunk-7YUFMNFW.cjs → chunk-2ZDFVRGV.cjs} +5 -13
  14. package/dist/chunk-2ZDFVRGV.cjs.map +1 -0
  15. package/dist/{chunk-RZUMQM7W.cjs → chunk-5XZU64E2.cjs} +190 -2
  16. package/dist/chunk-5XZU64E2.cjs.map +1 -0
  17. package/dist/chunk-6XS5IJ5R.cjs +43 -0
  18. package/dist/chunk-6XS5IJ5R.cjs.map +1 -0
  19. package/dist/chunk-BX62HJZU.js +41 -0
  20. package/dist/chunk-BX62HJZU.js.map +1 -0
  21. package/dist/{chunk-IF6VAYIA.cjs → chunk-C3DRLFU7.cjs} +5 -5
  22. package/dist/{chunk-IF6VAYIA.cjs.map → chunk-C3DRLFU7.cjs.map} +1 -1
  23. package/dist/{chunk-W7NZRZ54.js → chunk-GFYGYME3.js} +3 -3
  24. package/dist/{chunk-W7NZRZ54.js.map → chunk-GFYGYME3.js.map} +1 -1
  25. package/dist/{chunk-XMBYDLZQ.cjs → chunk-HUJLKDWX.cjs} +4 -4
  26. package/dist/{chunk-XMBYDLZQ.cjs.map → chunk-HUJLKDWX.cjs.map} +1 -1
  27. package/dist/{chunk-ICBAFX5B.js → chunk-LBE36YNZ.js} +3 -3
  28. package/dist/{chunk-ICBAFX5B.js.map → chunk-LBE36YNZ.js.map} +1 -1
  29. package/dist/{chunk-MP6FK43E.cjs → chunk-O5NDG4EA.cjs} +3 -3
  30. package/dist/{chunk-MP6FK43E.cjs.map → chunk-O5NDG4EA.cjs.map} +1 -1
  31. package/dist/{chunk-5YXG342J.cjs → chunk-OR4CO743.cjs} +3 -3
  32. package/dist/{chunk-5YXG342J.cjs.map → chunk-OR4CO743.cjs.map} +1 -1
  33. package/dist/{chunk-DDF5GPIJ.js → chunk-P5ST47VY.js} +3 -3
  34. package/dist/{chunk-DDF5GPIJ.js.map → chunk-P5ST47VY.js.map} +1 -1
  35. package/dist/{chunk-EWSEQEPL.js → chunk-PFA43QNX.js} +3 -3
  36. package/dist/{chunk-EWSEQEPL.js.map → chunk-PFA43QNX.js.map} +1 -1
  37. package/dist/{chunk-WRSBM6QN.cjs → chunk-QOADH2YB.cjs} +292 -3
  38. package/dist/chunk-QOADH2YB.cjs.map +1 -0
  39. package/dist/{chunk-A24C6BNA.js → chunk-UDLMLU6T.js} +3 -3
  40. package/dist/{chunk-A24C6BNA.js.map → chunk-UDLMLU6T.js.map} +1 -1
  41. package/dist/{chunk-S2NFD4QV.js → chunk-UJM7TG44.js} +8 -192
  42. package/dist/chunk-UJM7TG44.js.map +1 -0
  43. package/dist/{chunk-OPA2Y6YZ.js → chunk-W2R7YVFM.js} +5 -13
  44. package/dist/chunk-W2R7YVFM.js.map +1 -0
  45. package/dist/{chunk-XQDM6T6C.js → chunk-WDD255XQ.js} +3 -3
  46. package/dist/{chunk-XQDM6T6C.js.map → chunk-WDD255XQ.js.map} +1 -1
  47. package/dist/{chunk-IHYVK6F7.cjs → chunk-X5K5PCRJ.cjs} +50 -236
  48. package/dist/chunk-X5K5PCRJ.cjs.map +1 -0
  49. package/dist/{chunk-TZR36PPP.cjs → chunk-YFPIJUV3.cjs} +5 -5
  50. package/dist/{chunk-TZR36PPP.cjs.map → chunk-YFPIJUV3.cjs.map} +1 -1
  51. package/dist/{chunk-KHY4PYU7.js → chunk-YX466FWL.js} +189 -4
  52. package/dist/chunk-YX466FWL.js.map +1 -0
  53. package/dist/{chunk-Z5VUZ6YD.cjs → chunk-ZV3BKLFY.cjs} +3 -3
  54. package/dist/{chunk-Z5VUZ6YD.cjs.map → chunk-ZV3BKLFY.cjs.map} +1 -1
  55. package/dist/connect/docx.cjs +6 -6
  56. package/dist/connect/docx.js +4 -4
  57. package/dist/connect/index.cjs +153 -61
  58. package/dist/connect/index.cjs.map +1 -1
  59. package/dist/connect/index.d.ts +2 -0
  60. package/dist/connect/index.js +101 -12
  61. package/dist/connect/index.js.map +1 -1
  62. package/dist/connection/ConnectedNotificationRelevance.d.ts +16 -0
  63. package/dist/connection/ConnectedWorkspaceActivity.d.ts +11 -0
  64. package/dist/docx/NativeDocxEditor.d.ts +4 -2
  65. package/dist/docx/StreamedWordArtifact.d.ts +9 -6
  66. package/dist/docx/index.cjs +15 -15
  67. package/dist/docx/index.js +3 -3
  68. package/dist/facts/index.cjs +2 -2
  69. package/dist/facts/index.js +2 -2
  70. package/dist/files/index.cjs +2 -2
  71. package/dist/files/index.js +2 -2
  72. package/dist/home/index.cjs +18 -18
  73. package/dist/home/index.js +4 -4
  74. package/dist/index.cjs +564 -524
  75. package/dist/index.d.ts +1 -0
  76. package/dist/index.js +10 -10
  77. package/dist/retrieval/index.cjs +1 -1
  78. package/dist/retrieval/index.js +1 -1
  79. package/dist/settings/index.cjs +35 -35
  80. package/dist/settings/index.js +2 -2
  81. package/dist/shell/index.cjs +1 -1
  82. package/dist/shell/index.js +1 -1
  83. package/dist/studio/index.cjs +5 -5
  84. package/dist/studio/index.js +4 -4
  85. package/dist/workflow-canvas/index.cjs +48 -48
  86. package/dist/workflow-canvas/index.js +5 -5
  87. package/dist/workspaces/index.cjs +2 -2
  88. package/dist/workspaces/index.js +2 -2
  89. package/package.json +4 -4
  90. package/dist/chunk-7YUFMNFW.cjs.map +0 -1
  91. package/dist/chunk-AINNADMT.cjs +0 -62
  92. package/dist/chunk-AINNADMT.cjs.map +0 -1
  93. package/dist/chunk-FT5FFXSJ.js +0 -60
  94. package/dist/chunk-FT5FFXSJ.js.map +0 -1
  95. package/dist/chunk-IHYVK6F7.cjs.map +0 -1
  96. package/dist/chunk-KHY4PYU7.js.map +0 -1
  97. package/dist/chunk-OPA2Y6YZ.js.map +0 -1
  98. package/dist/chunk-RZUMQM7W.cjs.map +0 -1
  99. package/dist/chunk-S2NFD4QV.js.map +0 -1
  100. package/dist/chunk-WRSBM6QN.cjs.map +0 -1
  101. package/dist/chunk-X23U6QEJ.js.map +0 -1
@@ -1,15 +1,15 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunk5YXG342J_cjs = require('../chunk-5YXG342J.cjs');
5
- var chunkXMBYDLZQ_cjs = require('../chunk-XMBYDLZQ.cjs');
6
- var chunkTZR36PPP_cjs = require('../chunk-TZR36PPP.cjs');
4
+ var chunkOR4CO743_cjs = require('../chunk-OR4CO743.cjs');
5
+ var chunkHUJLKDWX_cjs = require('../chunk-HUJLKDWX.cjs');
6
+ var chunkYFPIJUV3_cjs = require('../chunk-YFPIJUV3.cjs');
7
7
  var chunkMUMH3Z6K_cjs = require('../chunk-MUMH3Z6K.cjs');
8
8
  var chunkJH6JTI76_cjs = require('../chunk-JH6JTI76.cjs');
9
- require('../chunk-7YUFMNFW.cjs');
9
+ require('../chunk-2ZDFVRGV.cjs');
10
10
  var chunkO4YPVYPO_cjs = require('../chunk-O4YPVYPO.cjs');
11
- var chunkWRSBM6QN_cjs = require('../chunk-WRSBM6QN.cjs');
12
- var chunkRZUMQM7W_cjs = require('../chunk-RZUMQM7W.cjs');
11
+ var chunkQOADH2YB_cjs = require('../chunk-QOADH2YB.cjs');
12
+ var chunk5XZU64E2_cjs = require('../chunk-5XZU64E2.cjs');
13
13
  var chunkAFSOUS5X_cjs = require('../chunk-AFSOUS5X.cjs');
14
14
  var chunk7RGLTF76_cjs = require('../chunk-7RGLTF76.cjs');
15
15
  require('../chunk-DETZZBG2.cjs');
@@ -17,17 +17,17 @@ var chunk2EI7NCUA_cjs = require('../chunk-2EI7NCUA.cjs');
17
17
  require('../chunk-7D737FLE.cjs');
18
18
  var chunkQVBZESYQ_cjs = require('../chunk-QVBZESYQ.cjs');
19
19
  require('../chunk-ADOKTJHV.cjs');
20
- var chunkMP6FK43E_cjs = require('../chunk-MP6FK43E.cjs');
20
+ var chunkO5NDG4EA_cjs = require('../chunk-O5NDG4EA.cjs');
21
21
  require('../chunk-VGOFFCMT.cjs');
22
22
  require('../chunk-B4SRYJLM.cjs');
23
23
  require('../chunk-7UTB4PHM.cjs');
24
24
  require('../chunk-PPCATBOY.cjs');
25
- var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
26
25
  var chunk3R6XBYL7_cjs = require('../chunk-3R6XBYL7.cjs');
27
26
  var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
28
27
  require('../chunk-IXALYQT7.cjs');
29
28
  require('../chunk-FX3K6LNZ.cjs');
30
29
  require('../chunk-MHVNT4J3.cjs');
30
+ var chunkKDG6FER6_cjs = require('../chunk-KDG6FER6.cjs');
31
31
  require('../chunk-DES3K4SD.cjs');
32
32
  var react = require('react');
33
33
  var reactQuery = require('@tanstack/react-query');
@@ -83,6 +83,95 @@ function ConnectedTaskAccessRequest({ conversationId }) {
83
83
  }
84
84
  );
85
85
  }
86
+ function ConnectedWorkspaceActivity({
87
+ workspaceId: workspaceProp,
88
+ onOpen,
89
+ pageSize,
90
+ ...listProps
91
+ }) {
92
+ const { workspaceId: selected, status, ensureWorkspaceOpen } = chunkMUMH3Z6K_cjs.useConnection();
93
+ const workspaceId = workspaceProp ?? selected ?? void 0;
94
+ const live = status === "authenticated" && !!workspaceId;
95
+ const feed = react$1.useWorkspaceActivity(workspaceId, {
96
+ enabled: live,
97
+ limit: pageSize,
98
+ // Titles and names decrypt only while the session has the workspace open.
99
+ beforeFetch: workspaceId === selected ? ensureWorkspaceOpen : void 0
100
+ });
101
+ const members = react$1.useWorkspaceUsers(workspaceId, {
102
+ enabled: live && workspaceId === selected,
103
+ beforeFetch: ensureWorkspaceOpen
104
+ });
105
+ const names = react.useMemo(
106
+ () => new Map(
107
+ (members.data ?? []).map((m) => [
108
+ m.user.external_id,
109
+ [m.user.given_name, m.user.family_name].filter(Boolean).join(" ") || m.user.email
110
+ ])
111
+ ),
112
+ [members.data]
113
+ );
114
+ const items = react.useMemo(
115
+ () => (feed.data?.pages ?? []).flatMap((page) => page.items),
116
+ [feed.data]
117
+ );
118
+ return /* @__PURE__ */ jsxRuntime.jsx(
119
+ chunkQOADH2YB_cjs.WorkspaceActivityList,
120
+ {
121
+ ...listProps,
122
+ items,
123
+ isLoading: feed.isLoading,
124
+ isError: feed.isError,
125
+ hasMore: feed.hasNextPage,
126
+ isLoadingMore: feed.isFetchingNextPage,
127
+ onLoadMore: () => void feed.fetchNextPage(),
128
+ onRetry: () => void feed.refetch(),
129
+ onOpen,
130
+ nameOf: (id) => names.get(id)
131
+ }
132
+ );
133
+ }
134
+ function ConnectedWorkspaceNotificationMenu({
135
+ workspaceId: workspaceProp,
136
+ ...menuProps
137
+ }) {
138
+ const { workspaceId: selected, status } = chunkMUMH3Z6K_cjs.useConnection();
139
+ const workspaceId = workspaceProp ?? selected;
140
+ const { level, setLevel, isLoading, isSaving } = react$1.useWorkspaceNotificationLevel(workspaceId, {
141
+ enabled: status === "authenticated"
142
+ });
143
+ if (!workspaceId) return null;
144
+ return /* @__PURE__ */ jsxRuntime.jsx(
145
+ chunkQOADH2YB_cjs.WorkspaceNotificationMenu,
146
+ {
147
+ ...menuProps,
148
+ level,
149
+ onLevelChange: setLevel,
150
+ disabled: isLoading || isSaving
151
+ }
152
+ );
153
+ }
154
+ function ConnectedThreadFollow({
155
+ conversationId,
156
+ as = "button",
157
+ ...props
158
+ }) {
159
+ const { status } = chunkMUMH3Z6K_cjs.useConnection();
160
+ const { following, setFollowing, isLoading, isSaving } = react$1.useFollowThread(conversationId, {
161
+ enabled: status === "authenticated"
162
+ });
163
+ if (!conversationId) return null;
164
+ const Control = as === "menu-item" ? chunkQOADH2YB_cjs.ThreadFollowMenuItem : chunkQOADH2YB_cjs.ThreadFollowButton;
165
+ return /* @__PURE__ */ jsxRuntime.jsx(
166
+ Control,
167
+ {
168
+ ...props,
169
+ following,
170
+ onFollowingChange: setFollowing,
171
+ disabled: isLoading || isSaving
172
+ }
173
+ );
174
+ }
86
175
  function ConnectedSkillUpload() {
87
176
  const [name, setName] = react.useState("");
88
177
  const [file, setFile] = react.useState(null);
@@ -198,7 +287,7 @@ function StreamedArtifact({
198
287
  }
199
288
  var STARTING = /* @__PURE__ */ new Set(["pending", "running"]);
200
289
  function formValues(step, inputs) {
201
- const fields = chunkRZUMQM7W_cjs.stepFields(step);
290
+ const fields = chunk5XZU64E2_cjs.stepFields(step);
202
291
  if (!fields.length) return void 0;
203
292
  if (step.kind === "form")
204
293
  return Object.fromEntries(fields.map((f) => [f.name, inputs[f.name] ?? ""]));
@@ -233,10 +322,10 @@ function useAnswerRetry(missing, refetch) {
233
322
  function useWorkflowThread(workflow, options = {}) {
234
323
  const arbi = react$1.useArbi();
235
324
  const { ensureWorkspaceOpen, status } = chunkMUMH3Z6K_cjs.useConnection();
236
- const { wsId } = chunkXMBYDLZQ_cjs.useWorkspaceDocs();
325
+ const { wsId } = chunkHUJLKDWX_cjs.useWorkspaceDocs();
237
326
  const [threadId, setThreadId] = react.useState(options.conversationId);
238
327
  const [localInputs, setLocalInputs] = react.useState(
239
- () => chunkRZUMQM7W_cjs.initialRunInputs(workflow, options.initialInputs)
328
+ () => chunk5XZU64E2_cjs.initialRunInputs(workflow, options.initialInputs)
240
329
  );
241
330
  const [edits, setEdits] = react.useState({});
242
331
  const [localStates, setLocalStates] = react.useState({});
@@ -256,12 +345,12 @@ function useWorkflowThread(workflow, options = {}) {
256
345
  );
257
346
  const conversation = conversations.data?.find((c) => c.external_id === threadId);
258
347
  const steps = react.useMemo(
259
- () => chunkRZUMQM7W_cjs.workflowSteps(workflow).length > 0 ? chunkRZUMQM7W_cjs.workflowSteps(workflow) : chunkRZUMQM7W_cjs.fromPlanSteps(conversation?.plan?.steps ?? []),
348
+ () => chunk5XZU64E2_cjs.workflowSteps(workflow).length > 0 ? chunk5XZU64E2_cjs.workflowSteps(workflow) : chunk5XZU64E2_cjs.fromPlanSteps(conversation?.plan?.steps ?? []),
260
349
  [workflow, conversation?.plan?.steps]
261
350
  );
262
351
  const activity = react$1.useConversationActivity(threadId, { live: !!threadId });
263
352
  const serverStates = react.useMemo(
264
- () => chunkRZUMQM7W_cjs.stepStatesFromActivity(activity.data ?? []),
353
+ () => chunk5XZU64E2_cjs.stepStatesFromActivity(activity.data ?? []),
265
354
  [activity.data]
266
355
  );
267
356
  const working = steps.some(
@@ -304,7 +393,7 @@ function useWorkflowThread(workflow, options = {}) {
304
393
  async (values, done) => {
305
394
  await ensureWorkspaceOpen();
306
395
  const created = await createWork.mutateAsync({
307
- title: chunkRZUMQM7W_cjs.runThreadTitle(workflow, values).slice(0, 60),
396
+ title: chunk5XZU64E2_cjs.runThreadTitle(workflow, values).slice(0, 60),
308
397
  description: workflow.description || null,
309
398
  prompt: null,
310
399
  skill_ref: null,
@@ -316,7 +405,7 @@ function useWorkflowThread(workflow, options = {}) {
316
405
  criteria: [],
317
406
  max_passes: 3,
318
407
  documents: [],
319
- steps: chunkRZUMQM7W_cjs.toPlanSteps(workflow, {
408
+ steps: chunk5XZU64E2_cjs.toPlanSteps(workflow, {
320
409
  inputs: values,
321
410
  resolveWorkflow: options.resolveWorkflow,
322
411
  compose: options.compose
@@ -403,7 +492,7 @@ function useWorkflowThread(workflow, options = {}) {
403
492
  const anyRunning = Object.values(states).some((s) => s.status === "running");
404
493
  const needsStart = !threadId || idle && !anyRunning;
405
494
  const runError = idle ? conversation?.last_error ?? null : null;
406
- const view = chunkRZUMQM7W_cjs.useWorkflowView({
495
+ const view = chunk5XZU64E2_cjs.useWorkflowView({
407
496
  steps,
408
497
  states,
409
498
  inputs,
@@ -446,7 +535,7 @@ function WorkflowRunThread({
446
535
  if (listed && activeThreadId !== conversationId) selectThread(conversationId);
447
536
  }, [listed, activeThreadId, conversationId, selectThread]);
448
537
  return /* @__PURE__ */ jsxRuntime.jsx(
449
- chunkMP6FK43E_cjs.ChatPage,
538
+ chunkO5NDG4EA_cjs.ChatPage,
450
539
  {
451
540
  chat: { ...chat, threads: chat.threads.filter((t) => t.id === conversationId) },
452
541
  singleThread: true,
@@ -482,7 +571,7 @@ function WorkflowSignDialog({
482
571
  const arbi = react$1.useArbi();
483
572
  const { user, ensureWorkspaceOpen } = chunkMUMH3Z6K_cjs.useConnection();
484
573
  const tools = documentTools.useOptionalDocumentTools();
485
- const { id, version: stepVersion } = chunkRZUMQM7W_cjs.splitDocRef(docRef);
574
+ const { id, version: stepVersion } = chunk5XZU64E2_cjs.splitDocRef(docRef);
486
575
  const [version, setVersion] = react.useState(stepVersion);
487
576
  const [pdf, setPdf] = react.useState(null);
488
577
  const [preparing, setPreparing] = react.useState(false);
@@ -560,7 +649,7 @@ function WorkflowWordDialog({
560
649
  onClose,
561
650
  labels
562
651
  }) {
563
- const { id } = chunkRZUMQM7W_cjs.splitDocRef(docRef);
652
+ const { id } = chunk5XZU64E2_cjs.splitDocRef(docRef);
564
653
  return /* @__PURE__ */ jsxRuntime.jsx(
565
654
  chunkULWRNGGE_cjs.ModalScaffold,
566
655
  {
@@ -569,7 +658,7 @@ function WorkflowWordDialog({
569
658
  title: title ?? labels.wordTitle,
570
659
  size: "xl",
571
660
  testId: "workflow-word-dialog",
572
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunkTZR36PPP_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
661
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunkYFPIJUV3_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
573
662
  }
574
663
  );
575
664
  }
@@ -671,7 +760,7 @@ function ConnectedWorkflowRunner({
671
760
  const dl = { ...DEFAULT_WORKFLOW_RUNNER_DIALOG_LABELS, ...dialogLabels };
672
761
  const arbi = react$1.useArbi();
673
762
  const { ensureWorkspaceOpen, user } = chunkMUMH3Z6K_cjs.useConnection();
674
- const { wsId } = chunkXMBYDLZQ_cjs.useWorkspaceDocs();
763
+ const { wsId } = chunkHUJLKDWX_cjs.useWorkspaceDocs();
675
764
  const { data: docs = [], refetch } = react$1.useDocuments(wsId);
676
765
  const [sending, setSending] = react.useState([]);
677
766
  const [added, setAdded] = react.useState({});
@@ -694,7 +783,7 @@ function ConnectedWorkflowRunner({
694
783
  () => ({
695
784
  me: user?.externalId,
696
785
  openDocument: onOpenDocument && ((ref) => {
697
- const { id, version } = chunkRZUMQM7W_cjs.splitDocRef(ref);
786
+ const { id, version } = chunk5XZU64E2_cjs.splitDocRef(ref);
698
787
  onOpenDocument(id, version);
699
788
  }),
700
789
  openDraft: onOpenDraft && ((draftId) => onOpenDraft(draftId)),
@@ -704,7 +793,7 @@ function ConnectedWorkflowRunner({
704
793
  const w = state.waiting;
705
794
  if (w?.doc_ext_id) setDialog({ kind: "sign", docRef: w.doc_ext_id });
706
795
  }),
707
- openRedline: hostActions?.openRedline ?? ((ref) => setDialog({ kind: "word", docRef: ref, title: nameOfDoc(chunkRZUMQM7W_cjs.splitDocRef(ref).id) ?? "" })),
796
+ openRedline: hostActions?.openRedline ?? ((ref) => setDialog({ kind: "word", docRef: ref, title: nameOfDoc(chunk5XZU64E2_cjs.splitDocRef(ref).id) ?? "" })),
708
797
  openReview: hostActions?.openReview ?? ((tags, documents) => setDialog({ kind: "review", tags, documents }))
709
798
  }),
710
799
  [user?.externalId, onOpenDocument, onOpenDraft, onOpenMessage, hostActions, nameOfDoc, inThread]
@@ -840,7 +929,7 @@ function ConnectedWorkflowRunner({
840
929
  );
841
930
  };
842
931
  const runner = (compact) => /* @__PURE__ */ jsxRuntime.jsx(
843
- chunkRZUMQM7W_cjs.WorkflowRunner,
932
+ chunk5XZU64E2_cjs.WorkflowRunner,
844
933
  {
845
934
  people,
846
935
  ...runnerProps,
@@ -886,10 +975,10 @@ function ConnectedWorkflowRunner({
886
975
  ) }),
887
976
  inThread && conversationId ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
888
977
  /* @__PURE__ */ jsxRuntime.jsx(
889
- chunkRZUMQM7W_cjs.WorkflowStepBar,
978
+ chunk5XZU64E2_cjs.WorkflowStepBar,
890
979
  {
891
980
  run: view,
892
- levels: chunkRZUMQM7W_cjs.stepLevels(view.steps),
981
+ levels: chunk5XZU64E2_cjs.stepLevels(view.steps),
893
982
  doneTitle: (workflow.run.kind === "steps" ? workflow.run.completion?.title : void 0) ?? runnerProps.labels?.complete ?? "Done",
894
983
  icon: (key) => key && runnerProps.renderIcon ? runnerProps.renderIcon(key) : void 0,
895
984
  tid: (suffix) => `${testIdPrefix}-${suffix}`
@@ -1070,17 +1159,17 @@ function ConnectedTagTable({
1070
1159
  const fail = (e) => setError(e instanceof Error ? e.message : String(e));
1071
1160
  const snapshot = (data) => {
1072
1161
  const title = exportTitle ?? KIND_TITLES[kind];
1073
- const bytes = chunkWRSBM6QN_cjs.tagTableDocx(data, {
1162
+ const bytes = chunkQOADH2YB_cjs.tagTableDocx(data, {
1074
1163
  title,
1075
1164
  nameOf: (id) => people.find((p) => p.value === id)?.label
1076
1165
  });
1077
1166
  const stamp = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
1078
1167
  const name = `${title.replace(/[\\/:*?"<>|]+/g, "-")} (${stamp}).docx`;
1079
- return { blob: new Blob([bytes], { type: chunkWRSBM6QN_cjs.DOCX_MIME_TYPE }), name };
1168
+ return { blob: new Blob([bytes], { type: chunkQOADH2YB_cjs.DOCX_MIME_TYPE }), name };
1080
1169
  };
1081
1170
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
1082
1171
  /* @__PURE__ */ jsxRuntime.jsx(
1083
- chunkWRSBM6QN_cjs.TagTable,
1172
+ chunkQOADH2YB_cjs.TagTable,
1084
1173
  {
1085
1174
  ...props,
1086
1175
  table,
@@ -1218,12 +1307,12 @@ function ConnectedProfileCard({ notify: notify3, title = "Profile" }) {
1218
1307
  }
1219
1308
  });
1220
1309
  const display = profile?.fullName || user?.name || "Unnamed";
1221
- return /* @__PURE__ */ jsxRuntime.jsx(chunk5YXG342J_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserCircle, {}), title, children: /* @__PURE__ */ jsxRuntime.jsx(
1222
- chunk5YXG342J_cjs.ProfileCard,
1310
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkOR4CO743_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserCircle, {}), title, children: /* @__PURE__ */ jsxRuntime.jsx(
1311
+ chunkOR4CO743_cjs.ProfileCard,
1223
1312
  {
1224
1313
  avatar: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1225
1314
  /* @__PURE__ */ jsxRuntime.jsx(
1226
- chunk5YXG342J_cjs.AvatarPicker,
1315
+ chunkOR4CO743_cjs.AvatarPicker,
1227
1316
  {
1228
1317
  pictureUrl: profile?.picture ?? user?.picture,
1229
1318
  initials: chunkKDG6FER6_cjs.initials(display),
@@ -1265,9 +1354,9 @@ function ConnectedIdentityVerification({
1265
1354
  onNameAccepted: () => notify3?.("Name updated to match your ID", "success")
1266
1355
  });
1267
1356
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1268
- /* @__PURE__ */ jsxRuntime.jsx(chunk5YXG342J_cjs.IdentityVerificationCard, { flow, labels }),
1357
+ /* @__PURE__ */ jsxRuntime.jsx(chunkOR4CO743_cjs.IdentityVerificationCard, { flow, labels }),
1269
1358
  /* @__PURE__ */ jsxRuntime.jsx(
1270
- chunk5YXG342J_cjs.IdentityVerificationDialog,
1359
+ chunkOR4CO743_cjs.IdentityVerificationDialog,
1271
1360
  {
1272
1361
  flow,
1273
1362
  accountName: profile?.fullName ?? "",
@@ -1279,7 +1368,7 @@ function ConnectedIdentityVerification({
1279
1368
  function ConnectedRequireVerified({ children, labels }) {
1280
1369
  const { data: profile } = react$1.useProfile();
1281
1370
  const flow = react$1.useIdentityVerification();
1282
- return /* @__PURE__ */ jsxRuntime.jsx(chunk5YXG342J_cjs.RequireVerified, { flow, accountName: profile?.fullName ?? "", labels, children });
1371
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkOR4CO743_cjs.RequireVerified, { flow, accountName: profile?.fullName ?? "", labels, children });
1283
1372
  }
1284
1373
  function defaultUnmetPasswordRequirement(password) {
1285
1374
  if (password.length < 8) return "Minimum 8 characters";
@@ -1304,10 +1393,10 @@ function ConnectedSecuritySection({
1304
1393
  },
1305
1394
  onClose: () => setOpen(false)
1306
1395
  });
1307
- return /* @__PURE__ */ jsxRuntime.jsxs(chunk5YXG342J_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.KeyRound, {}), title: "Security", children: [
1308
- /* @__PURE__ */ jsxRuntime.jsxs(chunk5YXG342J_cjs.SettingsCard, { padding: "sm", children: [
1396
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkOR4CO743_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.KeyRound, {}), title: "Security", children: [
1397
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkOR4CO743_cjs.SettingsCard, { padding: "sm", children: [
1309
1398
  /* @__PURE__ */ jsxRuntime.jsx(
1310
- chunk5YXG342J_cjs.SettingsActionRow,
1399
+ chunkOR4CO743_cjs.SettingsActionRow,
1311
1400
  {
1312
1401
  title: "Change password",
1313
1402
  description: "Used to sign in and to unlock your account key. Changing it keeps everything readable and re-encrypts nothing.",
@@ -1318,7 +1407,7 @@ function ConnectedSecuritySection({
1318
1407
  children
1319
1408
  ] }),
1320
1409
  /* @__PURE__ */ jsxRuntime.jsx(
1321
- chunk5YXG342J_cjs.PasswordChangeDialog,
1410
+ chunkOR4CO743_cjs.PasswordChangeDialog,
1322
1411
  {
1323
1412
  open,
1324
1413
  onClose: form.onCancel,
@@ -1341,23 +1430,23 @@ function ConnectedSecuritySection({
1341
1430
  ] });
1342
1431
  }
1343
1432
  function ConnectedNotificationPreferences({
1344
- categories = chunk5YXG342J_cjs.EMAIL_NOTIFICATION_CATEGORIES,
1433
+ categories = chunkOR4CO743_cjs.EMAIL_NOTIFICATION_CATEGORIES,
1345
1434
  title = "Notifications"
1346
1435
  }) {
1347
1436
  const keys = react.useMemo(
1348
- () => categories === chunk5YXG342J_cjs.EMAIL_NOTIFICATION_CATEGORIES ? chunk5YXG342J_cjs.EMAIL_NOTIFICATION_KEYS : categories.map((c) => c.key),
1437
+ () => categories === chunkOR4CO743_cjs.EMAIL_NOTIFICATION_CATEGORIES ? chunkOR4CO743_cjs.EMAIL_NOTIFICATION_KEYS : categories.map((c) => c.key),
1349
1438
  [categories]
1350
1439
  );
1351
1440
  const prefs = react$1.useNotificationPreferences(keys);
1352
- return /* @__PURE__ */ jsxRuntime.jsx(chunk5YXG342J_cjs.SettingsSection, { title, children: /* @__PURE__ */ jsxRuntime.jsx(chunk5YXG342J_cjs.SettingsCard, { className: "space-y-0", children: /* @__PURE__ */ jsxRuntime.jsx(
1353
- chunk5YXG342J_cjs.NotificationCategoryList,
1441
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkOR4CO743_cjs.SettingsSection, { title, children: /* @__PURE__ */ jsxRuntime.jsx(chunkOR4CO743_cjs.SettingsCard, { className: "space-y-0", children: /* @__PURE__ */ jsxRuntime.jsx(
1442
+ chunkOR4CO743_cjs.NotificationCategoryList,
1354
1443
  {
1355
1444
  masterId: "emailNotifications",
1356
1445
  masterTitle: "Email Notifications",
1357
1446
  masterDescription: "Email me about activity when I\u2019m away",
1358
1447
  masterChecked: prefs.masterChecked,
1359
1448
  onMasterChange: prefs.setAll,
1360
- categories: chunk5YXG342J_cjs.toNotificationCategories(prefs.checked, categories),
1449
+ categories: chunkOR4CO743_cjs.toNotificationCategories(prefs.checked, categories),
1361
1450
  onCategoryChange: prefs.setCategory
1362
1451
  }
1363
1452
  ) }) });
@@ -1371,14 +1460,14 @@ function ConnectedSessionsRow({
1371
1460
  const sessions = react$1.useSessions({ enabled: open });
1372
1461
  const currentSessionId = react$1.useCurrentSessionId();
1373
1462
  const terminate = react$1.useTerminateSession();
1374
- const views = chunk5YXG342J_cjs.toActiveSessionViews(sessions.data ?? [], {
1463
+ const views = chunkOR4CO743_cjs.toActiveSessionViews(sessions.data ?? [], {
1375
1464
  currentSessionId,
1376
1465
  terminatingId: terminate.isPending ? terminate.variables : null,
1377
1466
  renderIcon: renderSessionIcon
1378
1467
  });
1379
1468
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1380
1469
  /* @__PURE__ */ jsxRuntime.jsx(
1381
- chunk5YXG342J_cjs.SettingsRow,
1470
+ chunkOR4CO743_cjs.SettingsRow,
1382
1471
  {
1383
1472
  label: "Active sessions",
1384
1473
  description: "Devices and agents currently signed in to your account.",
@@ -1400,7 +1489,7 @@ function ConnectedSessionsRow({
1400
1489
  }
1401
1490
  ),
1402
1491
  /* @__PURE__ */ jsxRuntime.jsx(
1403
- chunk5YXG342J_cjs.ActiveSessionsDialog,
1492
+ chunkOR4CO743_cjs.ActiveSessionsDialog,
1404
1493
  {
1405
1494
  open,
1406
1495
  onOpenChange: setOpen,
@@ -1435,7 +1524,7 @@ function ConnectedLogoutDialog({
1435
1524
  const sessions = react$1.useSessions({ enabled: open });
1436
1525
  const logoutAll = react$1.useLogoutAllSessions();
1437
1526
  return /* @__PURE__ */ jsxRuntime.jsx(
1438
- chunk5YXG342J_cjs.LogoutDialog,
1527
+ chunkOR4CO743_cjs.LogoutDialog,
1439
1528
  {
1440
1529
  open,
1441
1530
  onClose,
@@ -1449,7 +1538,7 @@ function ConnectedLogoutDialog({
1449
1538
  },
1450
1539
  canLogoutAll: true,
1451
1540
  isOnline,
1452
- sessions: chunk5YXG342J_cjs.toLogoutSessionViews(sessions.data ?? []),
1541
+ sessions: chunkOR4CO743_cjs.toLogoutSessionViews(sessions.data ?? []),
1453
1542
  renderSessionIcon
1454
1543
  }
1455
1544
  );
@@ -1468,7 +1557,7 @@ function ConnectedDangerZone({ notify: notify3, renderSubscriptionLink }) {
1468
1557
  });
1469
1558
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1470
1559
  /* @__PURE__ */ jsxRuntime.jsx(
1471
- chunk5YXG342J_cjs.SettingsDangerZone,
1560
+ chunkOR4CO743_cjs.SettingsDangerZone,
1472
1561
  {
1473
1562
  isOpen: zoneOpen,
1474
1563
  onToggle: () => setZoneOpen((o) => !o),
@@ -1488,12 +1577,12 @@ function ConnectedDangerZone({ notify: notify3, renderSubscriptionLink }) {
1488
1577
  }
1489
1578
  ),
1490
1579
  /* @__PURE__ */ jsxRuntime.jsx(
1491
- chunk5YXG342J_cjs.DeleteAccountDialog,
1580
+ chunkOR4CO743_cjs.DeleteAccountDialog,
1492
1581
  {
1493
1582
  open: dialogOpen,
1494
1583
  onClose: flow.onClose,
1495
1584
  step: flow.step,
1496
- blockers: chunk5YXG342J_cjs.toDeleteBlockerViews(flow.blockers, renderSubscriptionLink),
1585
+ blockers: chunkOR4CO743_cjs.toDeleteBlockerViews(flow.blockers, renderSubscriptionLink),
1497
1586
  onContinue: flow.onContinue,
1498
1587
  onBack: flow.onBack,
1499
1588
  userEmail: user?.email ?? "",
@@ -3190,7 +3279,7 @@ function ConnectedMailbox({
3190
3279
  function ActiveChat({ agentId, workspaceId }) {
3191
3280
  const chat = react$1.useArbiChat({ agentId, workspaceId });
3192
3281
  return /* @__PURE__ */ jsxRuntime.jsx(
3193
- chunkMP6FK43E_cjs.ChatPage,
3282
+ chunkO5NDG4EA_cjs.ChatPage,
3194
3283
  {
3195
3284
  chat: { ...chat, assistantMode: void 0, setAssistantMode: void 0 },
3196
3285
  documentsRequired: false,
@@ -3252,35 +3341,35 @@ function ConnectedAgentChatPanel({
3252
3341
 
3253
3342
  Object.defineProperty(exports, "ConnectedAssistantDock", {
3254
3343
  enumerable: true,
3255
- get: function () { return chunkXMBYDLZQ_cjs.ConnectedAssistantDock; }
3344
+ get: function () { return chunkHUJLKDWX_cjs.ConnectedAssistantDock; }
3256
3345
  });
3257
3346
  Object.defineProperty(exports, "redlineStats", {
3258
3347
  enumerable: true,
3259
- get: function () { return chunkXMBYDLZQ_cjs.redlineStats; }
3348
+ get: function () { return chunkHUJLKDWX_cjs.redlineStats; }
3260
3349
  });
3261
3350
  Object.defineProperty(exports, "textToArtifact", {
3262
3351
  enumerable: true,
3263
- get: function () { return chunkXMBYDLZQ_cjs.textToArtifact; }
3352
+ get: function () { return chunkHUJLKDWX_cjs.textToArtifact; }
3264
3353
  });
3265
3354
  Object.defineProperty(exports, "toRedlineMarkdown", {
3266
3355
  enumerable: true,
3267
- get: function () { return chunkXMBYDLZQ_cjs.toRedlineMarkdown; }
3356
+ get: function () { return chunkHUJLKDWX_cjs.toRedlineMarkdown; }
3268
3357
  });
3269
3358
  Object.defineProperty(exports, "useConnectedAiTask", {
3270
3359
  enumerable: true,
3271
- get: function () { return chunkXMBYDLZQ_cjs.useConnectedAiTask; }
3360
+ get: function () { return chunkHUJLKDWX_cjs.useConnectedAiTask; }
3272
3361
  });
3273
3362
  Object.defineProperty(exports, "useConnectedChat", {
3274
3363
  enumerable: true,
3275
- get: function () { return chunkXMBYDLZQ_cjs.useConnectedChat; }
3364
+ get: function () { return chunkHUJLKDWX_cjs.useConnectedChat; }
3276
3365
  });
3277
3366
  Object.defineProperty(exports, "useSemanticSearch", {
3278
3367
  enumerable: true,
3279
- get: function () { return chunkXMBYDLZQ_cjs.useSemanticSearch; }
3368
+ get: function () { return chunkHUJLKDWX_cjs.useSemanticSearch; }
3280
3369
  });
3281
3370
  Object.defineProperty(exports, "useWorkspaceDocs", {
3282
3371
  enumerable: true,
3283
- get: function () { return chunkXMBYDLZQ_cjs.useWorkspaceDocs; }
3372
+ get: function () { return chunkHUJLKDWX_cjs.useWorkspaceDocs; }
3284
3373
  });
3285
3374
  Object.defineProperty(exports, "ConnectionProvider", {
3286
3375
  enumerable: true,
@@ -3315,7 +3404,10 @@ exports.ConnectedSessionsRow = ConnectedSessionsRow;
3315
3404
  exports.ConnectedSkillUpload = ConnectedSkillUpload;
3316
3405
  exports.ConnectedTagTable = ConnectedTagTable;
3317
3406
  exports.ConnectedTaskAccessRequest = ConnectedTaskAccessRequest;
3407
+ exports.ConnectedThreadFollow = ConnectedThreadFollow;
3318
3408
  exports.ConnectedWorkflowRunner = ConnectedWorkflowRunner;
3409
+ exports.ConnectedWorkspaceActivity = ConnectedWorkspaceActivity;
3410
+ exports.ConnectedWorkspaceNotificationMenu = ConnectedWorkspaceNotificationMenu;
3319
3411
  exports.DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS = DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS;
3320
3412
  exports.StreamedArtifact = StreamedArtifact;
3321
3413
  exports.WorkflowRunThread = WorkflowRunThread;