@arbidocs/blocks 0.4.87 → 0.4.89

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 (88) hide show
  1. package/dist/agents/index.cjs +284 -284
  2. package/dist/agents/index.js +8 -8
  3. package/dist/chat/index.cjs +125 -125
  4. package/dist/chat/index.js +3 -3
  5. package/dist/{chunk-2EI7NCUA.cjs → chunk-2CFW2ELM.cjs} +8 -2
  6. package/dist/chunk-2CFW2ELM.cjs.map +1 -0
  7. package/dist/{chunk-2FBQSQDW.js → chunk-3D5MDCQ7.js} +299 -215
  8. package/dist/chunk-3D5MDCQ7.js.map +1 -0
  9. package/dist/{chunk-OR4CO743.cjs → chunk-5YXG342J.cjs} +3 -3
  10. package/dist/{chunk-OR4CO743.cjs.map → chunk-5YXG342J.cjs.map} +1 -1
  11. package/dist/{chunk-R26OHONI.js → chunk-6S5FLMWG.js} +83 -72
  12. package/dist/chunk-6S5FLMWG.js.map +1 -0
  13. package/dist/{chunk-X5K5PCRJ.cjs → chunk-CNI5QJ5B.cjs} +58 -58
  14. package/dist/{chunk-X5K5PCRJ.cjs.map → chunk-CNI5QJ5B.cjs.map} +1 -1
  15. package/dist/{chunk-P5ST47VY.js → chunk-DDF5GPIJ.js} +3 -3
  16. package/dist/{chunk-P5ST47VY.js.map → chunk-DDF5GPIJ.js.map} +1 -1
  17. package/dist/{chunk-PFA43QNX.js → chunk-EWSEQEPL.js} +3 -3
  18. package/dist/{chunk-PFA43QNX.js.map → chunk-EWSEQEPL.js.map} +1 -1
  19. package/dist/{chunk-YX466FWL.js → chunk-I44NX2ZB.js} +3 -3
  20. package/dist/{chunk-YX466FWL.js.map → chunk-I44NX2ZB.js.map} +1 -1
  21. package/dist/{chunk-LBE36YNZ.js → chunk-ICBAFX5B.js} +3 -3
  22. package/dist/{chunk-LBE36YNZ.js.map → chunk-ICBAFX5B.js.map} +1 -1
  23. package/dist/{chunk-C3DRLFU7.cjs → chunk-IF6VAYIA.cjs} +5 -5
  24. package/dist/{chunk-C3DRLFU7.cjs.map → chunk-IF6VAYIA.cjs.map} +1 -1
  25. package/dist/{chunk-5XZU64E2.cjs → chunk-MOJ5JQDN.cjs} +3 -3
  26. package/dist/{chunk-5XZU64E2.cjs.map → chunk-MOJ5JQDN.cjs.map} +1 -1
  27. package/dist/{chunk-O5NDG4EA.cjs → chunk-MP6FK43E.cjs} +3 -3
  28. package/dist/{chunk-O5NDG4EA.cjs.map → chunk-MP6FK43E.cjs.map} +1 -1
  29. package/dist/{chunk-AFSOUS5X.cjs → chunk-N26CXGXC.cjs} +83 -72
  30. package/dist/chunk-N26CXGXC.cjs.map +1 -0
  31. package/dist/{chunk-UJM7TG44.js → chunk-QLHW7JGN.js} +9 -9
  32. package/dist/{chunk-UJM7TG44.js.map → chunk-QLHW7JGN.js.map} +1 -1
  33. package/dist/{chunk-QOADH2YB.cjs → chunk-TF6YMDZL.cjs} +300 -216
  34. package/dist/chunk-TF6YMDZL.cjs.map +1 -0
  35. package/dist/{chunk-GFYGYME3.js → chunk-W7NZRZ54.js} +3 -3
  36. package/dist/{chunk-GFYGYME3.js.map → chunk-W7NZRZ54.js.map} +1 -1
  37. package/dist/{chunk-HUJLKDWX.cjs → chunk-XMBYDLZQ.cjs} +4 -4
  38. package/dist/{chunk-HUJLKDWX.cjs.map → chunk-XMBYDLZQ.cjs.map} +1 -1
  39. package/dist/{chunk-WDD255XQ.js → chunk-XQDM6T6C.js} +3 -3
  40. package/dist/{chunk-WDD255XQ.js.map → chunk-XQDM6T6C.js.map} +1 -1
  41. package/dist/{chunk-ZV3BKLFY.cjs → chunk-Z5VUZ6YD.cjs} +3 -3
  42. package/dist/{chunk-ZV3BKLFY.cjs.map → chunk-Z5VUZ6YD.cjs.map} +1 -1
  43. package/dist/{chunk-YU2KUMGE.js → chunk-ZX2VPMBJ.js} +8 -2
  44. package/dist/chunk-ZX2VPMBJ.js.map +1 -0
  45. package/dist/connect/index.cjs +116 -74
  46. package/dist/connect/index.cjs.map +1 -1
  47. package/dist/connect/index.js +61 -19
  48. package/dist/connect/index.js.map +1 -1
  49. package/dist/connection/WorkflowRunnerDialogs.d.ts +2 -0
  50. package/dist/facts/index.cjs +7 -7
  51. package/dist/facts/index.js +4 -4
  52. package/dist/files/index.cjs +4 -23
  53. package/dist/files/index.cjs.map +1 -1
  54. package/dist/files/index.js +4 -22
  55. package/dist/files/index.js.map +1 -1
  56. package/dist/files/views/TagFormParts.d.ts +0 -8
  57. package/dist/files/views/index.d.ts +1 -1
  58. package/dist/home/index.cjs +17 -17
  59. package/dist/home/index.js +3 -3
  60. package/dist/index.cjs +636 -544
  61. package/dist/index.cjs.map +1 -1
  62. package/dist/index.js +116 -25
  63. package/dist/index.js.map +1 -1
  64. package/dist/retrieval/index.cjs +1 -1
  65. package/dist/retrieval/index.js +1 -1
  66. package/dist/settings/index.cjs +38 -38
  67. package/dist/settings/index.js +3 -3
  68. package/dist/shell/FilterInput.d.ts +3 -1
  69. package/dist/shell/index.cjs +5 -5
  70. package/dist/shell/index.js +2 -2
  71. package/dist/studio/index.cjs +4 -4
  72. package/dist/studio/index.js +3 -3
  73. package/dist/tags/TagDetail.d.ts +14 -2
  74. package/dist/tags/TagTable.d.ts +20 -11
  75. package/dist/tags/TagsNav.d.ts +28 -4
  76. package/dist/tags/index.d.ts +1 -1
  77. package/dist/tags/tagTableModel.d.ts +10 -2
  78. package/dist/workflow-canvas/index.cjs +51 -51
  79. package/dist/workflow-canvas/index.js +8 -8
  80. package/dist/workspaces/index.cjs +2 -2
  81. package/dist/workspaces/index.js +2 -2
  82. package/package.json +4 -4
  83. package/dist/chunk-2EI7NCUA.cjs.map +0 -1
  84. package/dist/chunk-2FBQSQDW.js.map +0 -1
  85. package/dist/chunk-AFSOUS5X.cjs.map +0 -1
  86. package/dist/chunk-QOADH2YB.cjs.map +0 -1
  87. package/dist/chunk-R26OHONI.js.map +0 -1
  88. package/dist/chunk-YU2KUMGE.js.map +0 -1
@@ -1,33 +1,33 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkOR4CO743_cjs = require('../chunk-OR4CO743.cjs');
5
- var chunkHUJLKDWX_cjs = require('../chunk-HUJLKDWX.cjs');
4
+ var chunk5YXG342J_cjs = require('../chunk-5YXG342J.cjs');
5
+ var chunkXMBYDLZQ_cjs = require('../chunk-XMBYDLZQ.cjs');
6
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
9
  require('../chunk-2ZDFVRGV.cjs');
10
10
  var chunkO4YPVYPO_cjs = require('../chunk-O4YPVYPO.cjs');
11
- var chunkQOADH2YB_cjs = require('../chunk-QOADH2YB.cjs');
12
- var chunk5XZU64E2_cjs = require('../chunk-5XZU64E2.cjs');
13
- var chunkAFSOUS5X_cjs = require('../chunk-AFSOUS5X.cjs');
11
+ var chunkTF6YMDZL_cjs = require('../chunk-TF6YMDZL.cjs');
12
+ var chunkMOJ5JQDN_cjs = require('../chunk-MOJ5JQDN.cjs');
13
+ var chunkN26CXGXC_cjs = require('../chunk-N26CXGXC.cjs');
14
14
  var chunk7RGLTF76_cjs = require('../chunk-7RGLTF76.cjs');
15
- require('../chunk-DETZZBG2.cjs');
16
- var chunk2EI7NCUA_cjs = require('../chunk-2EI7NCUA.cjs');
17
15
  require('../chunk-7D737FLE.cjs');
16
+ require('../chunk-DETZZBG2.cjs');
17
+ var chunk2CFW2ELM_cjs = require('../chunk-2CFW2ELM.cjs');
18
18
  var chunkQVBZESYQ_cjs = require('../chunk-QVBZESYQ.cjs');
19
19
  require('../chunk-ADOKTJHV.cjs');
20
- var chunkO5NDG4EA_cjs = require('../chunk-O5NDG4EA.cjs');
20
+ var chunkMP6FK43E_cjs = require('../chunk-MP6FK43E.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');
25
26
  var chunk3R6XBYL7_cjs = require('../chunk-3R6XBYL7.cjs');
26
27
  var chunkULWRNGGE_cjs = require('../chunk-ULWRNGGE.cjs');
27
28
  require('../chunk-IXALYQT7.cjs');
28
29
  require('../chunk-FX3K6LNZ.cjs');
29
30
  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');
@@ -116,7 +116,7 @@ function ConnectedWorkspaceActivity({
116
116
  [feed.data]
117
117
  );
118
118
  return /* @__PURE__ */ jsxRuntime.jsx(
119
- chunkQOADH2YB_cjs.WorkspaceActivityList,
119
+ chunkTF6YMDZL_cjs.WorkspaceActivityList,
120
120
  {
121
121
  ...listProps,
122
122
  items,
@@ -142,7 +142,7 @@ function ConnectedWorkspaceNotificationMenu({
142
142
  });
143
143
  if (!workspaceId) return null;
144
144
  return /* @__PURE__ */ jsxRuntime.jsx(
145
- chunkQOADH2YB_cjs.WorkspaceNotificationMenu,
145
+ chunkTF6YMDZL_cjs.WorkspaceNotificationMenu,
146
146
  {
147
147
  ...menuProps,
148
148
  level,
@@ -161,7 +161,7 @@ function ConnectedThreadFollow({
161
161
  enabled: status === "authenticated"
162
162
  });
163
163
  if (!conversationId) return null;
164
- const Control = as === "menu-item" ? chunkQOADH2YB_cjs.ThreadFollowMenuItem : chunkQOADH2YB_cjs.ThreadFollowButton;
164
+ const Control = as === "menu-item" ? chunkTF6YMDZL_cjs.ThreadFollowMenuItem : chunkTF6YMDZL_cjs.ThreadFollowButton;
165
165
  return /* @__PURE__ */ jsxRuntime.jsx(
166
166
  Control,
167
167
  {
@@ -287,7 +287,7 @@ function StreamedArtifact({
287
287
  }
288
288
  var STARTING = /* @__PURE__ */ new Set(["pending", "running"]);
289
289
  function formValues(step, inputs) {
290
- const fields = chunk5XZU64E2_cjs.stepFields(step);
290
+ const fields = chunkMOJ5JQDN_cjs.stepFields(step);
291
291
  if (!fields.length) return void 0;
292
292
  if (step.kind === "form")
293
293
  return Object.fromEntries(fields.map((f) => [f.name, inputs[f.name] ?? ""]));
@@ -322,10 +322,10 @@ function useAnswerRetry(missing, refetch) {
322
322
  function useWorkflowThread(workflow, options = {}) {
323
323
  const arbi = react$1.useArbi();
324
324
  const { ensureWorkspaceOpen, status } = chunkMUMH3Z6K_cjs.useConnection();
325
- const { wsId } = chunkHUJLKDWX_cjs.useWorkspaceDocs();
325
+ const { wsId } = chunkXMBYDLZQ_cjs.useWorkspaceDocs();
326
326
  const [threadId, setThreadId] = react.useState(options.conversationId);
327
327
  const [localInputs, setLocalInputs] = react.useState(
328
- () => chunk5XZU64E2_cjs.initialRunInputs(workflow, options.initialInputs)
328
+ () => chunkMOJ5JQDN_cjs.initialRunInputs(workflow, options.initialInputs)
329
329
  );
330
330
  const [edits, setEdits] = react.useState({});
331
331
  const [localStates, setLocalStates] = react.useState({});
@@ -345,12 +345,12 @@ function useWorkflowThread(workflow, options = {}) {
345
345
  );
346
346
  const conversation = conversations.data?.find((c) => c.external_id === threadId);
347
347
  const steps = react.useMemo(
348
- () => chunk5XZU64E2_cjs.workflowSteps(workflow).length > 0 ? chunk5XZU64E2_cjs.workflowSteps(workflow) : chunk5XZU64E2_cjs.fromPlanSteps(conversation?.plan?.steps ?? []),
348
+ () => chunkMOJ5JQDN_cjs.workflowSteps(workflow).length > 0 ? chunkMOJ5JQDN_cjs.workflowSteps(workflow) : chunkMOJ5JQDN_cjs.fromPlanSteps(conversation?.plan?.steps ?? []),
349
349
  [workflow, conversation?.plan?.steps]
350
350
  );
351
351
  const activity = react$1.useConversationActivity(threadId, { live: !!threadId });
352
352
  const serverStates = react.useMemo(
353
- () => chunk5XZU64E2_cjs.stepStatesFromActivity(activity.data ?? []),
353
+ () => chunkMOJ5JQDN_cjs.stepStatesFromActivity(activity.data ?? []),
354
354
  [activity.data]
355
355
  );
356
356
  const working = steps.some(
@@ -393,7 +393,7 @@ function useWorkflowThread(workflow, options = {}) {
393
393
  async (values, done) => {
394
394
  await ensureWorkspaceOpen();
395
395
  const created = await createWork.mutateAsync({
396
- title: chunk5XZU64E2_cjs.runThreadTitle(workflow, values).slice(0, 60),
396
+ title: chunkMOJ5JQDN_cjs.runThreadTitle(workflow, values).slice(0, 60),
397
397
  description: workflow.description || null,
398
398
  prompt: null,
399
399
  skill_ref: null,
@@ -405,7 +405,7 @@ function useWorkflowThread(workflow, options = {}) {
405
405
  criteria: [],
406
406
  max_passes: 3,
407
407
  documents: [],
408
- steps: chunk5XZU64E2_cjs.toPlanSteps(workflow, {
408
+ steps: chunkMOJ5JQDN_cjs.toPlanSteps(workflow, {
409
409
  inputs: values,
410
410
  resolveWorkflow: options.resolveWorkflow,
411
411
  compose: options.compose
@@ -492,7 +492,7 @@ function useWorkflowThread(workflow, options = {}) {
492
492
  const anyRunning = Object.values(states).some((s) => s.status === "running");
493
493
  const needsStart = !threadId || idle && !anyRunning;
494
494
  const runError = idle ? conversation?.last_error ?? null : null;
495
- const view = chunk5XZU64E2_cjs.useWorkflowView({
495
+ const view = chunkMOJ5JQDN_cjs.useWorkflowView({
496
496
  steps,
497
497
  states,
498
498
  inputs,
@@ -535,7 +535,7 @@ function WorkflowRunThread({
535
535
  if (listed && activeThreadId !== conversationId) selectThread(conversationId);
536
536
  }, [listed, activeThreadId, conversationId, selectThread]);
537
537
  return /* @__PURE__ */ jsxRuntime.jsx(
538
- chunkO5NDG4EA_cjs.ChatPage,
538
+ chunkMP6FK43E_cjs.ChatPage,
539
539
  {
540
540
  chat: { ...chat, threads: chat.threads.filter((t) => t.id === conversationId) },
541
541
  singleThread: true,
@@ -558,6 +558,8 @@ var DEFAULT_WORKFLOW_RUNNER_DIALOG_LABELS = {
558
558
  reviewDescription: "Each document against each review column.",
559
559
  document: "Document",
560
560
  empty: "\u2014",
561
+ showMore: "Show more",
562
+ showLess: "Show less",
561
563
  wordTitle: "Tracked changes"
562
564
  };
563
565
  var SIGN_PDF_RETRIES = 4;
@@ -571,7 +573,7 @@ function WorkflowSignDialog({
571
573
  const arbi = react$1.useArbi();
572
574
  const { user, ensureWorkspaceOpen } = chunkMUMH3Z6K_cjs.useConnection();
573
575
  const tools = documentTools.useOptionalDocumentTools();
574
- const { id, version: stepVersion } = chunk5XZU64E2_cjs.splitDocRef(docRef);
576
+ const { id, version: stepVersion } = chunkMOJ5JQDN_cjs.splitDocRef(docRef);
575
577
  const [version, setVersion] = react.useState(stepVersion);
576
578
  const [pdf, setPdf] = react.useState(null);
577
579
  const [preparing, setPreparing] = react.useState(false);
@@ -649,7 +651,7 @@ function WorkflowWordDialog({
649
651
  onClose,
650
652
  labels
651
653
  }) {
652
- const { id } = chunk5XZU64E2_cjs.splitDocRef(docRef);
654
+ const { id } = chunkMOJ5JQDN_cjs.splitDocRef(docRef);
653
655
  return /* @__PURE__ */ jsxRuntime.jsx(
654
656
  chunkULWRNGGE_cjs.ModalScaffold,
655
657
  {
@@ -699,18 +701,25 @@ function WorkflowReviewGridDialog({
699
701
  labels.loadingDocument
700
702
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "w-full border-collapse text-sm", children: [
701
703
  /* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
702
- /* @__PURE__ */ jsxRuntime.jsx("th", { className: "sticky left-0 border-b border-border bg-card p-2 text-left font-medium", children: labels.document }),
703
- columns.map((c) => /* @__PURE__ */ jsxRuntime.jsx("th", { className: "border-b border-border p-2 text-left font-medium", children: c.name }, c.id))
704
+ /* @__PURE__ */ jsxRuntime.jsx("th", { className: "sticky left-0 z-10 border-b border-border bg-background p-2 text-left align-bottom font-medium", children: labels.document }),
705
+ columns.map((c) => /* @__PURE__ */ jsxRuntime.jsx(
706
+ "th",
707
+ {
708
+ className: "border-b border-border p-2 text-left align-bottom font-medium",
709
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${VALUE_WIDTH} line-clamp-2 break-words`, title: c.name, children: c.name })
710
+ },
711
+ c.id
712
+ ))
704
713
  ] }) }),
705
714
  /* @__PURE__ */ jsxRuntime.jsx("tbody", { children: (docs.data ?? []).map((d) => /* @__PURE__ */ jsxRuntime.jsxs("tr", { "data-testid": `workflow-review-grid-row-${d.external_id}`, children: [
706
- /* @__PURE__ */ jsxRuntime.jsx("td", { className: "sticky left-0 max-w-56 border-b border-border bg-card p-2 align-top", children: /* @__PURE__ */ jsxRuntime.jsx(Cell, { onClick: onOpenDocument && (() => onOpenDocument(d.external_id)), children: d.file_name ?? d.external_id }) }),
715
+ /* @__PURE__ */ jsxRuntime.jsx("td", { className: "sticky left-0 z-10 border-b border-border bg-background p-2 align-top", children: /* @__PURE__ */ jsxRuntime.jsx(DocumentName, { onClick: onOpenDocument && (() => onOpenDocument(d.external_id)), children: d.file_name ?? d.external_id }) }),
707
716
  columns.map((c) => {
708
717
  const note = d.doctags?.find((t) => t.tag_ext_id === c.id)?.note;
709
718
  return /* @__PURE__ */ jsxRuntime.jsx(
710
719
  "td",
711
720
  {
712
- className: "max-w-72 border-b border-border p-2 align-top text-muted-foreground",
713
- children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "line-clamp-4 whitespace-pre-line", children: note || labels.empty })
721
+ className: "border-b border-border p-2 align-top text-muted-foreground",
722
+ children: /* @__PURE__ */ jsxRuntime.jsx(ReviewValue, { value: note || labels.empty, labels })
714
723
  },
715
724
  c.id
716
725
  );
@@ -720,16 +729,49 @@ function WorkflowReviewGridDialog({
720
729
  }
721
730
  );
722
731
  }
723
- function Cell({ onClick, children }) {
732
+ var DOCUMENT_WIDTH = "w-40 sm:w-56";
733
+ var VALUE_WIDTH = "min-w-48 max-w-80";
734
+ function DocumentName({ onClick, children }) {
735
+ const className = `${DOCUMENT_WIDTH} line-clamp-2 break-words text-left font-medium`;
724
736
  return onClick ? /* @__PURE__ */ jsxRuntime.jsx(
725
737
  "button",
726
738
  {
727
739
  type: "button",
728
740
  onClick,
729
- className: "truncate text-left font-medium text-primary hover:underline",
741
+ title: children,
742
+ className: `${className} text-primary hover:underline`,
730
743
  children
731
744
  }
732
- ) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate font-medium", children });
745
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { title: children, className, children });
746
+ }
747
+ function ReviewValue({ value, labels }) {
748
+ const ref = react.useRef(null);
749
+ const [expanded, setExpanded] = react.useState(false);
750
+ const [clamped, setClamped] = react.useState(false);
751
+ react.useLayoutEffect(() => {
752
+ const el = ref.current;
753
+ if (el && !expanded) setClamped(el.scrollHeight > el.clientHeight + 1);
754
+ }, [value, expanded]);
755
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: VALUE_WIDTH, children: [
756
+ /* @__PURE__ */ jsxRuntime.jsx(
757
+ "div",
758
+ {
759
+ ref,
760
+ title: clamped && !expanded ? value : void 0,
761
+ className: `whitespace-pre-line break-words ${expanded ? "" : "line-clamp-4"}`,
762
+ children: value
763
+ }
764
+ ),
765
+ (clamped || expanded) && /* @__PURE__ */ jsxRuntime.jsx(
766
+ "button",
767
+ {
768
+ type: "button",
769
+ onClick: () => setExpanded((e) => !e),
770
+ className: "mt-1 text-xs font-medium text-primary hover:underline",
771
+ children: expanded ? labels.showLess : labels.showMore
772
+ }
773
+ )
774
+ ] });
733
775
  }
734
776
  var DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS = {
735
777
  notify: "Ask to approve",
@@ -760,7 +802,7 @@ function ConnectedWorkflowRunner({
760
802
  const dl = { ...DEFAULT_WORKFLOW_RUNNER_DIALOG_LABELS, ...dialogLabels };
761
803
  const arbi = react$1.useArbi();
762
804
  const { ensureWorkspaceOpen, user } = chunkMUMH3Z6K_cjs.useConnection();
763
- const { wsId } = chunkHUJLKDWX_cjs.useWorkspaceDocs();
805
+ const { wsId } = chunkXMBYDLZQ_cjs.useWorkspaceDocs();
764
806
  const { data: docs = [], refetch } = react$1.useDocuments(wsId);
765
807
  const [sending, setSending] = react.useState([]);
766
808
  const [added, setAdded] = react.useState({});
@@ -783,7 +825,7 @@ function ConnectedWorkflowRunner({
783
825
  () => ({
784
826
  me: user?.externalId,
785
827
  openDocument: onOpenDocument && ((ref) => {
786
- const { id, version } = chunk5XZU64E2_cjs.splitDocRef(ref);
828
+ const { id, version } = chunkMOJ5JQDN_cjs.splitDocRef(ref);
787
829
  onOpenDocument(id, version);
788
830
  }),
789
831
  openDraft: onOpenDraft && ((draftId) => onOpenDraft(draftId)),
@@ -793,7 +835,7 @@ function ConnectedWorkflowRunner({
793
835
  const w = state.waiting;
794
836
  if (w?.doc_ext_id) setDialog({ kind: "sign", docRef: w.doc_ext_id });
795
837
  }),
796
- openRedline: hostActions?.openRedline ?? ((ref) => setDialog({ kind: "word", docRef: ref, title: nameOfDoc(chunk5XZU64E2_cjs.splitDocRef(ref).id) ?? "" })),
838
+ openRedline: hostActions?.openRedline ?? ((ref) => setDialog({ kind: "word", docRef: ref, title: nameOfDoc(chunkMOJ5JQDN_cjs.splitDocRef(ref).id) ?? "" })),
797
839
  openReview: hostActions?.openReview ?? ((tags, documents) => setDialog({ kind: "review", tags, documents }))
798
840
  }),
799
841
  [user?.externalId, onOpenDocument, onOpenDraft, onOpenMessage, hostActions, nameOfDoc, inThread]
@@ -929,7 +971,7 @@ function ConnectedWorkflowRunner({
929
971
  );
930
972
  };
931
973
  const runner = (compact) => /* @__PURE__ */ jsxRuntime.jsx(
932
- chunk5XZU64E2_cjs.WorkflowRunner,
974
+ chunkMOJ5JQDN_cjs.WorkflowRunner,
933
975
  {
934
976
  people,
935
977
  ...runnerProps,
@@ -975,10 +1017,10 @@ function ConnectedWorkflowRunner({
975
1017
  ) }),
976
1018
  inThread && conversationId ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
977
1019
  /* @__PURE__ */ jsxRuntime.jsx(
978
- chunk5XZU64E2_cjs.WorkflowStepBar,
1020
+ chunkMOJ5JQDN_cjs.WorkflowStepBar,
979
1021
  {
980
1022
  run: view,
981
- levels: chunk5XZU64E2_cjs.stepLevels(view.steps),
1023
+ levels: chunkMOJ5JQDN_cjs.stepLevels(view.steps),
982
1024
  doneTitle: (workflow.run.kind === "steps" ? workflow.run.completion?.title : void 0) ?? runnerProps.labels?.complete ?? "Done",
983
1025
  icon: (key) => key && runnerProps.renderIcon ? runnerProps.renderIcon(key) : void 0,
984
1026
  tid: (suffix) => `${testIdPrefix}-${suffix}`
@@ -1159,17 +1201,17 @@ function ConnectedTagTable({
1159
1201
  const fail = (e) => setError(e instanceof Error ? e.message : String(e));
1160
1202
  const snapshot = (data) => {
1161
1203
  const title = exportTitle ?? KIND_TITLES[kind];
1162
- const bytes = chunkQOADH2YB_cjs.tagTableDocx(data, {
1204
+ const bytes = chunkTF6YMDZL_cjs.tagTableDocx(data, {
1163
1205
  title,
1164
1206
  nameOf: (id) => people.find((p) => p.value === id)?.label
1165
1207
  });
1166
1208
  const stamp = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
1167
1209
  const name = `${title.replace(/[\\/:*?"<>|]+/g, "-")} (${stamp}).docx`;
1168
- return { blob: new Blob([bytes], { type: chunkQOADH2YB_cjs.DOCX_MIME_TYPE }), name };
1210
+ return { blob: new Blob([bytes], { type: chunkTF6YMDZL_cjs.DOCX_MIME_TYPE }), name };
1169
1211
  };
1170
1212
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
1171
1213
  /* @__PURE__ */ jsxRuntime.jsx(
1172
- chunkQOADH2YB_cjs.TagTable,
1214
+ chunkTF6YMDZL_cjs.TagTable,
1173
1215
  {
1174
1216
  ...props,
1175
1217
  table,
@@ -1307,12 +1349,12 @@ function ConnectedProfileCard({ notify: notify3, title = "Profile" }) {
1307
1349
  }
1308
1350
  });
1309
1351
  const display = profile?.fullName || user?.name || "Unnamed";
1310
- return /* @__PURE__ */ jsxRuntime.jsx(chunkOR4CO743_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserCircle, {}), title, children: /* @__PURE__ */ jsxRuntime.jsx(
1311
- chunkOR4CO743_cjs.ProfileCard,
1352
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk5YXG342J_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.UserCircle, {}), title, children: /* @__PURE__ */ jsxRuntime.jsx(
1353
+ chunk5YXG342J_cjs.ProfileCard,
1312
1354
  {
1313
1355
  avatar: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1314
1356
  /* @__PURE__ */ jsxRuntime.jsx(
1315
- chunkOR4CO743_cjs.AvatarPicker,
1357
+ chunk5YXG342J_cjs.AvatarPicker,
1316
1358
  {
1317
1359
  pictureUrl: profile?.picture ?? user?.picture,
1318
1360
  initials: chunkKDG6FER6_cjs.initials(display),
@@ -1354,9 +1396,9 @@ function ConnectedIdentityVerification({
1354
1396
  onNameAccepted: () => notify3?.("Name updated to match your ID", "success")
1355
1397
  });
1356
1398
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1357
- /* @__PURE__ */ jsxRuntime.jsx(chunkOR4CO743_cjs.IdentityVerificationCard, { flow, labels }),
1399
+ /* @__PURE__ */ jsxRuntime.jsx(chunk5YXG342J_cjs.IdentityVerificationCard, { flow, labels }),
1358
1400
  /* @__PURE__ */ jsxRuntime.jsx(
1359
- chunkOR4CO743_cjs.IdentityVerificationDialog,
1401
+ chunk5YXG342J_cjs.IdentityVerificationDialog,
1360
1402
  {
1361
1403
  flow,
1362
1404
  accountName: profile?.fullName ?? "",
@@ -1368,7 +1410,7 @@ function ConnectedIdentityVerification({
1368
1410
  function ConnectedRequireVerified({ children, labels }) {
1369
1411
  const { data: profile } = react$1.useProfile();
1370
1412
  const flow = react$1.useIdentityVerification();
1371
- return /* @__PURE__ */ jsxRuntime.jsx(chunkOR4CO743_cjs.RequireVerified, { flow, accountName: profile?.fullName ?? "", labels, children });
1413
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk5YXG342J_cjs.RequireVerified, { flow, accountName: profile?.fullName ?? "", labels, children });
1372
1414
  }
1373
1415
  function defaultUnmetPasswordRequirement(password) {
1374
1416
  if (password.length < 8) return "Minimum 8 characters";
@@ -1393,10 +1435,10 @@ function ConnectedSecuritySection({
1393
1435
  },
1394
1436
  onClose: () => setOpen(false)
1395
1437
  });
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: [
1438
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunk5YXG342J_cjs.SettingsSection, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.KeyRound, {}), title: "Security", children: [
1439
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk5YXG342J_cjs.SettingsCard, { padding: "sm", children: [
1398
1440
  /* @__PURE__ */ jsxRuntime.jsx(
1399
- chunkOR4CO743_cjs.SettingsActionRow,
1441
+ chunk5YXG342J_cjs.SettingsActionRow,
1400
1442
  {
1401
1443
  title: "Change password",
1402
1444
  description: "Used to sign in and to unlock your account key. Changing it keeps everything readable and re-encrypts nothing.",
@@ -1407,7 +1449,7 @@ function ConnectedSecuritySection({
1407
1449
  children
1408
1450
  ] }),
1409
1451
  /* @__PURE__ */ jsxRuntime.jsx(
1410
- chunkOR4CO743_cjs.PasswordChangeDialog,
1452
+ chunk5YXG342J_cjs.PasswordChangeDialog,
1411
1453
  {
1412
1454
  open,
1413
1455
  onClose: form.onCancel,
@@ -1430,23 +1472,23 @@ function ConnectedSecuritySection({
1430
1472
  ] });
1431
1473
  }
1432
1474
  function ConnectedNotificationPreferences({
1433
- categories = chunkOR4CO743_cjs.EMAIL_NOTIFICATION_CATEGORIES,
1475
+ categories = chunk5YXG342J_cjs.EMAIL_NOTIFICATION_CATEGORIES,
1434
1476
  title = "Notifications"
1435
1477
  }) {
1436
1478
  const keys = react.useMemo(
1437
- () => categories === chunkOR4CO743_cjs.EMAIL_NOTIFICATION_CATEGORIES ? chunkOR4CO743_cjs.EMAIL_NOTIFICATION_KEYS : categories.map((c) => c.key),
1479
+ () => categories === chunk5YXG342J_cjs.EMAIL_NOTIFICATION_CATEGORIES ? chunk5YXG342J_cjs.EMAIL_NOTIFICATION_KEYS : categories.map((c) => c.key),
1438
1480
  [categories]
1439
1481
  );
1440
1482
  const prefs = react$1.useNotificationPreferences(keys);
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,
1483
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk5YXG342J_cjs.SettingsSection, { title, children: /* @__PURE__ */ jsxRuntime.jsx(chunk5YXG342J_cjs.SettingsCard, { className: "space-y-0", children: /* @__PURE__ */ jsxRuntime.jsx(
1484
+ chunk5YXG342J_cjs.NotificationCategoryList,
1443
1485
  {
1444
1486
  masterId: "emailNotifications",
1445
1487
  masterTitle: "Email Notifications",
1446
1488
  masterDescription: "Email me about activity when I\u2019m away",
1447
1489
  masterChecked: prefs.masterChecked,
1448
1490
  onMasterChange: prefs.setAll,
1449
- categories: chunkOR4CO743_cjs.toNotificationCategories(prefs.checked, categories),
1491
+ categories: chunk5YXG342J_cjs.toNotificationCategories(prefs.checked, categories),
1450
1492
  onCategoryChange: prefs.setCategory
1451
1493
  }
1452
1494
  ) }) });
@@ -1460,14 +1502,14 @@ function ConnectedSessionsRow({
1460
1502
  const sessions = react$1.useSessions({ enabled: open });
1461
1503
  const currentSessionId = react$1.useCurrentSessionId();
1462
1504
  const terminate = react$1.useTerminateSession();
1463
- const views = chunkOR4CO743_cjs.toActiveSessionViews(sessions.data ?? [], {
1505
+ const views = chunk5YXG342J_cjs.toActiveSessionViews(sessions.data ?? [], {
1464
1506
  currentSessionId,
1465
1507
  terminatingId: terminate.isPending ? terminate.variables : null,
1466
1508
  renderIcon: renderSessionIcon
1467
1509
  });
1468
1510
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1469
1511
  /* @__PURE__ */ jsxRuntime.jsx(
1470
- chunkOR4CO743_cjs.SettingsRow,
1512
+ chunk5YXG342J_cjs.SettingsRow,
1471
1513
  {
1472
1514
  label: "Active sessions",
1473
1515
  description: "Devices and agents currently signed in to your account.",
@@ -1489,7 +1531,7 @@ function ConnectedSessionsRow({
1489
1531
  }
1490
1532
  ),
1491
1533
  /* @__PURE__ */ jsxRuntime.jsx(
1492
- chunkOR4CO743_cjs.ActiveSessionsDialog,
1534
+ chunk5YXG342J_cjs.ActiveSessionsDialog,
1493
1535
  {
1494
1536
  open,
1495
1537
  onOpenChange: setOpen,
@@ -1524,7 +1566,7 @@ function ConnectedLogoutDialog({
1524
1566
  const sessions = react$1.useSessions({ enabled: open });
1525
1567
  const logoutAll = react$1.useLogoutAllSessions();
1526
1568
  return /* @__PURE__ */ jsxRuntime.jsx(
1527
- chunkOR4CO743_cjs.LogoutDialog,
1569
+ chunk5YXG342J_cjs.LogoutDialog,
1528
1570
  {
1529
1571
  open,
1530
1572
  onClose,
@@ -1538,7 +1580,7 @@ function ConnectedLogoutDialog({
1538
1580
  },
1539
1581
  canLogoutAll: true,
1540
1582
  isOnline,
1541
- sessions: chunkOR4CO743_cjs.toLogoutSessionViews(sessions.data ?? []),
1583
+ sessions: chunk5YXG342J_cjs.toLogoutSessionViews(sessions.data ?? []),
1542
1584
  renderSessionIcon
1543
1585
  }
1544
1586
  );
@@ -1557,7 +1599,7 @@ function ConnectedDangerZone({ notify: notify3, renderSubscriptionLink }) {
1557
1599
  });
1558
1600
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1559
1601
  /* @__PURE__ */ jsxRuntime.jsx(
1560
- chunkOR4CO743_cjs.SettingsDangerZone,
1602
+ chunk5YXG342J_cjs.SettingsDangerZone,
1561
1603
  {
1562
1604
  isOpen: zoneOpen,
1563
1605
  onToggle: () => setZoneOpen((o) => !o),
@@ -1577,12 +1619,12 @@ function ConnectedDangerZone({ notify: notify3, renderSubscriptionLink }) {
1577
1619
  }
1578
1620
  ),
1579
1621
  /* @__PURE__ */ jsxRuntime.jsx(
1580
- chunkOR4CO743_cjs.DeleteAccountDialog,
1622
+ chunk5YXG342J_cjs.DeleteAccountDialog,
1581
1623
  {
1582
1624
  open: dialogOpen,
1583
1625
  onClose: flow.onClose,
1584
1626
  step: flow.step,
1585
- blockers: chunkOR4CO743_cjs.toDeleteBlockerViews(flow.blockers, renderSubscriptionLink),
1627
+ blockers: chunk5YXG342J_cjs.toDeleteBlockerViews(flow.blockers, renderSubscriptionLink),
1586
1628
  onContinue: flow.onContinue,
1587
1629
  onBack: flow.onBack,
1588
1630
  userEmail: user?.email ?? "",
@@ -2985,7 +3027,7 @@ function ConnectedMailbox({
2985
3027
  compactBreakpoint: 360,
2986
3028
  firstTabContent: account ? /* @__PURE__ */ jsxRuntime.jsxs(chunkO4YPVYPO_cjs.FilesFilterBar, { children: [
2987
3029
  /* @__PURE__ */ jsxRuntime.jsx(
2988
- chunk2EI7NCUA_cjs.FilterInput,
3030
+ chunk2CFW2ELM_cjs.FilterInput,
2989
3031
  {
2990
3032
  value: query,
2991
3033
  onChange: (q) => {
@@ -3001,7 +3043,7 @@ function ConnectedMailbox({
3001
3043
  testIds: { root: "mail-search", input: "mail-filter-input" },
3002
3044
  className: "min-w-28 flex-1 sm:max-w-72",
3003
3045
  filter: /* @__PURE__ */ jsxRuntime.jsx(
3004
- chunkAFSOUS5X_cjs.TriStateFilterMenu,
3046
+ chunkN26CXGXC_cjs.TriStateFilterMenu,
3005
3047
  {
3006
3048
  testId: "mail-bar-filter-button",
3007
3049
  open: filterMenuOpen,
@@ -3279,7 +3321,7 @@ function ConnectedMailbox({
3279
3321
  function ActiveChat({ agentId, workspaceId }) {
3280
3322
  const chat = react$1.useArbiChat({ agentId, workspaceId });
3281
3323
  return /* @__PURE__ */ jsxRuntime.jsx(
3282
- chunkO5NDG4EA_cjs.ChatPage,
3324
+ chunkMP6FK43E_cjs.ChatPage,
3283
3325
  {
3284
3326
  chat: { ...chat, assistantMode: void 0, setAssistantMode: void 0 },
3285
3327
  documentsRequired: false,
@@ -3341,35 +3383,35 @@ function ConnectedAgentChatPanel({
3341
3383
 
3342
3384
  Object.defineProperty(exports, "ConnectedAssistantDock", {
3343
3385
  enumerable: true,
3344
- get: function () { return chunkHUJLKDWX_cjs.ConnectedAssistantDock; }
3386
+ get: function () { return chunkXMBYDLZQ_cjs.ConnectedAssistantDock; }
3345
3387
  });
3346
3388
  Object.defineProperty(exports, "redlineStats", {
3347
3389
  enumerable: true,
3348
- get: function () { return chunkHUJLKDWX_cjs.redlineStats; }
3390
+ get: function () { return chunkXMBYDLZQ_cjs.redlineStats; }
3349
3391
  });
3350
3392
  Object.defineProperty(exports, "textToArtifact", {
3351
3393
  enumerable: true,
3352
- get: function () { return chunkHUJLKDWX_cjs.textToArtifact; }
3394
+ get: function () { return chunkXMBYDLZQ_cjs.textToArtifact; }
3353
3395
  });
3354
3396
  Object.defineProperty(exports, "toRedlineMarkdown", {
3355
3397
  enumerable: true,
3356
- get: function () { return chunkHUJLKDWX_cjs.toRedlineMarkdown; }
3398
+ get: function () { return chunkXMBYDLZQ_cjs.toRedlineMarkdown; }
3357
3399
  });
3358
3400
  Object.defineProperty(exports, "useConnectedAiTask", {
3359
3401
  enumerable: true,
3360
- get: function () { return chunkHUJLKDWX_cjs.useConnectedAiTask; }
3402
+ get: function () { return chunkXMBYDLZQ_cjs.useConnectedAiTask; }
3361
3403
  });
3362
3404
  Object.defineProperty(exports, "useConnectedChat", {
3363
3405
  enumerable: true,
3364
- get: function () { return chunkHUJLKDWX_cjs.useConnectedChat; }
3406
+ get: function () { return chunkXMBYDLZQ_cjs.useConnectedChat; }
3365
3407
  });
3366
3408
  Object.defineProperty(exports, "useSemanticSearch", {
3367
3409
  enumerable: true,
3368
- get: function () { return chunkHUJLKDWX_cjs.useSemanticSearch; }
3410
+ get: function () { return chunkXMBYDLZQ_cjs.useSemanticSearch; }
3369
3411
  });
3370
3412
  Object.defineProperty(exports, "useWorkspaceDocs", {
3371
3413
  enumerable: true,
3372
- get: function () { return chunkHUJLKDWX_cjs.useWorkspaceDocs; }
3414
+ get: function () { return chunkXMBYDLZQ_cjs.useWorkspaceDocs; }
3373
3415
  });
3374
3416
  Object.defineProperty(exports, "ConnectionProvider", {
3375
3417
  enumerable: true,