@arbidocs/blocks 0.5.44 → 0.5.45

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 (73) hide show
  1. package/dist/{ConnectedNativeDocxComparison-4DYPHNY2.js → ConnectedNativeDocxComparison-52KQKJGY.js} +6 -6
  2. package/dist/{ConnectedNativeDocxComparison-4DYPHNY2.js.map → ConnectedNativeDocxComparison-52KQKJGY.js.map} +1 -1
  3. package/dist/{ConnectedNativeDocxComparison-OZE2SPNU.cjs → ConnectedNativeDocxComparison-UVLZGS2V.cjs} +7 -7
  4. package/dist/{ConnectedNativeDocxComparison-OZE2SPNU.cjs.map → ConnectedNativeDocxComparison-UVLZGS2V.cjs.map} +1 -1
  5. package/dist/{ConnectedNativeDocxEditor-F3EHJKDI.js → ConnectedNativeDocxEditor-BRBL3MOV.js} +5 -5
  6. package/dist/{ConnectedNativeDocxEditor-F3EHJKDI.js.map → ConnectedNativeDocxEditor-BRBL3MOV.js.map} +1 -1
  7. package/dist/{ConnectedNativeDocxEditor-MUM6YRPY.cjs → ConnectedNativeDocxEditor-KHR5I7W6.cjs} +7 -7
  8. package/dist/{ConnectedNativeDocxEditor-MUM6YRPY.cjs.map → ConnectedNativeDocxEditor-KHR5I7W6.cjs.map} +1 -1
  9. package/dist/{ConnectedStreamedWordArtifact-F6M766FG.cjs → ConnectedStreamedWordArtifact-DSVFI7BX.cjs} +7 -7
  10. package/dist/ConnectedStreamedWordArtifact-DSVFI7BX.cjs.map +1 -0
  11. package/dist/{ConnectedStreamedWordArtifact-XUWLRRG5.js → ConnectedStreamedWordArtifact-EQUE6WT5.js} +6 -6
  12. package/dist/{ConnectedStreamedWordArtifact-XUWLRRG5.js.map → ConnectedStreamedWordArtifact-EQUE6WT5.js.map} +1 -1
  13. package/dist/WorkspaceTableView-2CGEO5KK.cjs +1 -1
  14. package/dist/WorkspaceTableView-3ARFQYNO.js +1 -1
  15. package/dist/agents/definitions/agentTasks.d.ts +4 -0
  16. package/dist/agents/definitions/index.d.ts +1 -0
  17. package/dist/agents/index.cjs +330 -326
  18. package/dist/agents/index.js +4 -4
  19. package/dist/{chunk-T5BCPKU3.cjs → chunk-2QDNQM63.cjs} +3 -3
  20. package/dist/{chunk-T5BCPKU3.cjs.map → chunk-2QDNQM63.cjs.map} +1 -1
  21. package/dist/{chunk-3GHFTAOV.cjs → chunk-3YZ3RUSB.cjs} +4 -4
  22. package/dist/{chunk-3GHFTAOV.cjs.map → chunk-3YZ3RUSB.cjs.map} +1 -1
  23. package/dist/{chunk-JS7KJRKG.js → chunk-75Z5AUMM.js} +3 -3
  24. package/dist/{chunk-JS7KJRKG.js.map → chunk-75Z5AUMM.js.map} +1 -1
  25. package/dist/{chunk-VE6DHRXD.js → chunk-7CHI36EP.js} +3 -3
  26. package/dist/{chunk-VE6DHRXD.js.map → chunk-7CHI36EP.js.map} +1 -1
  27. package/dist/{chunk-CG7EYB3J.js → chunk-EFDZRAW6.js} +3 -3
  28. package/dist/{chunk-CG7EYB3J.js.map → chunk-EFDZRAW6.js.map} +1 -1
  29. package/dist/{chunk-FKFGP7MQ.cjs → chunk-ET42AFEJ.cjs} +31 -18
  30. package/dist/chunk-ET42AFEJ.cjs.map +1 -0
  31. package/dist/{chunk-QPDQYZIR.cjs → chunk-K53QRFPJ.cjs} +4 -4
  32. package/dist/{chunk-QPDQYZIR.cjs.map → chunk-K53QRFPJ.cjs.map} +1 -1
  33. package/dist/{chunk-GUV63FUC.cjs → chunk-O3MRE2HL.cjs} +11 -11
  34. package/dist/{chunk-GUV63FUC.cjs.map → chunk-O3MRE2HL.cjs.map} +1 -1
  35. package/dist/{chunk-TOP5BMS7.js → chunk-OQMWTEM2.js} +16 -4
  36. package/dist/chunk-OQMWTEM2.js.map +1 -0
  37. package/dist/{chunk-H6UK6LGL.js → chunk-REHG7VRQ.js} +4 -4
  38. package/dist/{chunk-H6UK6LGL.js.map → chunk-REHG7VRQ.js.map} +1 -1
  39. package/dist/{chunk-PV5A5SAC.cjs → chunk-TPNLYQD2.cjs} +5 -5
  40. package/dist/{chunk-PV5A5SAC.cjs.map → chunk-TPNLYQD2.cjs.map} +1 -1
  41. package/dist/{chunk-QWSAJNQE.cjs → chunk-UZVXVTTB.cjs} +9 -9
  42. package/dist/{chunk-QWSAJNQE.cjs.map → chunk-UZVXVTTB.cjs.map} +1 -1
  43. package/dist/{chunk-G5JENSLN.js → chunk-WAIHNFUH.js} +3 -3
  44. package/dist/{chunk-G5JENSLN.js.map → chunk-WAIHNFUH.js.map} +1 -1
  45. package/dist/{chunk-T6KAZPOZ.js → chunk-X7CXCEGO.js} +3 -3
  46. package/dist/{chunk-T6KAZPOZ.js.map → chunk-X7CXCEGO.js.map} +1 -1
  47. package/dist/{chunk-EY4IEOW3.js → chunk-YAGSGBVM.js} +3 -3
  48. package/dist/{chunk-EY4IEOW3.js.map → chunk-YAGSGBVM.js.map} +1 -1
  49. package/dist/{chunk-F72ZD5Q2.cjs → chunk-YD3RN2FY.cjs} +3 -3
  50. package/dist/{chunk-F72ZD5Q2.cjs.map → chunk-YD3RN2FY.cjs.map} +1 -1
  51. package/dist/connect/docx.cjs +9 -9
  52. package/dist/connect/docx.js +5 -5
  53. package/dist/connect/index.cjs +367 -296
  54. package/dist/connect/index.cjs.map +1 -1
  55. package/dist/connect/index.d.ts +1 -0
  56. package/dist/connect/index.js +81 -11
  57. package/dist/connect/index.js.map +1 -1
  58. package/dist/connect/viewer.cjs +3 -3
  59. package/dist/connect/viewer.js +3 -3
  60. package/dist/connection/agents/useConnectedAgentManagement.d.ts +60 -0
  61. package/dist/facts/index.cjs +55 -55
  62. package/dist/facts/index.js +3 -3
  63. package/dist/index.cjs +388 -384
  64. package/dist/index.js +5 -5
  65. package/dist/settings/index.cjs +1 -1
  66. package/dist/settings/index.js +1 -1
  67. package/dist/workflow-canvas/index.cjs +17 -17
  68. package/dist/workflow-canvas/index.js +4 -4
  69. package/node_modules/@arbidocs/coedit/package.json +1 -1
  70. package/package.json +5 -5
  71. package/dist/ConnectedStreamedWordArtifact-F6M766FG.cjs.map +0 -1
  72. package/dist/chunk-FKFGP7MQ.cjs.map +0 -1
  73. package/dist/chunk-TOP5BMS7.js.map +0 -1
@@ -5,13 +5,13 @@ var chunkV7JDMKNQ_cjs = require('../chunk-V7JDMKNQ.cjs');
5
5
  var chunkKFQ6E6LE_cjs = require('../chunk-KFQ6E6LE.cjs');
6
6
  var chunkKWJW5TMH_cjs = require('../chunk-KWJW5TMH.cjs');
7
7
  var chunkPSIKUQYM_cjs = require('../chunk-PSIKUQYM.cjs');
8
- var chunkF72ZD5Q2_cjs = require('../chunk-F72ZD5Q2.cjs');
8
+ var chunkYD3RN2FY_cjs = require('../chunk-YD3RN2FY.cjs');
9
9
  var chunkH6K7EWL2_cjs = require('../chunk-H6K7EWL2.cjs');
10
10
  var chunkOU3RGQFX_cjs = require('../chunk-OU3RGQFX.cjs');
11
11
  require('../chunk-UAEYU2NN.cjs');
12
12
  var chunkFEVJA4BP_cjs = require('../chunk-FEVJA4BP.cjs');
13
13
  var chunkK7S5BMAB_cjs = require('../chunk-K7S5BMAB.cjs');
14
- var chunkQWSAJNQE_cjs = require('../chunk-QWSAJNQE.cjs');
14
+ var chunkUZVXVTTB_cjs = require('../chunk-UZVXVTTB.cjs');
15
15
  var chunkGT5FCYV5_cjs = require('../chunk-GT5FCYV5.cjs');
16
16
  var chunkWALADS2S_cjs = require('../chunk-WALADS2S.cjs');
17
17
  var chunk2WLXQGWC_cjs = require('../chunk-2WLXQGWC.cjs');
@@ -24,7 +24,7 @@ require('../chunk-464YPRAE.cjs');
24
24
  require('../chunk-PICGTGEB.cjs');
25
25
  var chunk5FYU7ZIU_cjs = require('../chunk-5FYU7ZIU.cjs');
26
26
  require('../chunk-ZESMRGDV.cjs');
27
- var chunkPV5A5SAC_cjs = require('../chunk-PV5A5SAC.cjs');
27
+ var chunkTPNLYQD2_cjs = require('../chunk-TPNLYQD2.cjs');
28
28
  var chunkC2ECYOPP_cjs = require('../chunk-C2ECYOPP.cjs');
29
29
  var chunkGOWXP5KT_cjs = require('../chunk-GOWXP5KT.cjs');
30
30
  var chunkHV7XHZLW_cjs = require('../chunk-HV7XHZLW.cjs');
@@ -44,9 +44,9 @@ require('../chunk-VLCY46K6.cjs');
44
44
  require('../chunk-D54JXTPG.cjs');
45
45
  var chunkJIOHDVWH_cjs = require('../chunk-JIOHDVWH.cjs');
46
46
  var chunkRC25WMVB_cjs = require('../chunk-RC25WMVB.cjs');
47
- var chunkGUV63FUC_cjs = require('../chunk-GUV63FUC.cjs');
47
+ var chunkO3MRE2HL_cjs = require('../chunk-O3MRE2HL.cjs');
48
48
  var chunkRFIBUWLF_cjs = require('../chunk-RFIBUWLF.cjs');
49
- var chunkT5BCPKU3_cjs = require('../chunk-T5BCPKU3.cjs');
49
+ var chunk2QDNQM63_cjs = require('../chunk-2QDNQM63.cjs');
50
50
  var chunk3ZLNI7ZA_cjs = require('../chunk-3ZLNI7ZA.cjs');
51
51
  var chunkAQPZ4QMV_cjs = require('../chunk-AQPZ4QMV.cjs');
52
52
  require('../chunk-SIB6C7P7.cjs');
@@ -59,6 +59,9 @@ var chunkLKK52DEY_cjs = require('../chunk-LKK52DEY.cjs');
59
59
  var chunkQVBZESYQ_cjs = require('../chunk-QVBZESYQ.cjs');
60
60
  var chunkBYJUI4AT_cjs = require('../chunk-BYJUI4AT.cjs');
61
61
  var chunkCG757WKY_cjs = require('../chunk-CG757WKY.cjs');
62
+ var chunkW3PSIIMN_cjs = require('../chunk-W3PSIIMN.cjs');
63
+ var chunkQUMUAJ2P_cjs = require('../chunk-QUMUAJ2P.cjs');
64
+ var chunkVZOOGA47_cjs = require('../chunk-VZOOGA47.cjs');
62
65
  var chunk5R256EMF_cjs = require('../chunk-5R256EMF.cjs');
63
66
  var chunkEGSSLWNZ_cjs = require('../chunk-EGSSLWNZ.cjs');
64
67
  var chunkHDEOORSV_cjs = require('../chunk-HDEOORSV.cjs');
@@ -67,9 +70,6 @@ var chunkMOIZ2R5X_cjs = require('../chunk-MOIZ2R5X.cjs');
67
70
  var chunkG2BKHCI2_cjs = require('../chunk-G2BKHCI2.cjs');
68
71
  var chunkMEMWZ72Y_cjs = require('../chunk-MEMWZ72Y.cjs');
69
72
  var chunkZW6FPIFC_cjs = require('../chunk-ZW6FPIFC.cjs');
70
- var chunkW3PSIIMN_cjs = require('../chunk-W3PSIIMN.cjs');
71
- var chunkQUMUAJ2P_cjs = require('../chunk-QUMUAJ2P.cjs');
72
- var chunkVZOOGA47_cjs = require('../chunk-VZOOGA47.cjs');
73
73
  var chunkDWWRLKEZ_cjs = require('../chunk-DWWRLKEZ.cjs');
74
74
  var chunkLNYEYR7W_cjs = require('../chunk-LNYEYR7W.cjs');
75
75
  var chunkZ2XZ2D4N_cjs = require('../chunk-Z2XZ2D4N.cjs');
@@ -164,9 +164,9 @@ var ConnectedUserEntity = React9.memo(function ConnectedUserEntity2({
164
164
  if (isMe) openSettings();
165
165
  else openDirectChat?.(user.external_id);
166
166
  };
167
- const tooltipContent = /* @__PURE__ */ jsxRuntime.jsxs(chunkPV5A5SAC_cjs.EntityTooltip, { children: [
167
+ const tooltipContent = /* @__PURE__ */ jsxRuntime.jsxs(chunkTPNLYQD2_cjs.EntityTooltip, { children: [
168
168
  /* @__PURE__ */ jsxRuntime.jsx(
169
- chunkPV5A5SAC_cjs.EntityTooltipHeader,
169
+ chunkTPNLYQD2_cjs.EntityTooltipHeader,
170
170
  {
171
171
  lead: /* @__PURE__ */ jsxRuntime.jsxs(
172
172
  ui.Avatar,
@@ -197,13 +197,13 @@ var ConnectedUserEntity = React9.memo(function ConnectedUserEntity2({
197
197
  subtitle: user.email
198
198
  }
199
199
  ),
200
- userIsAgent && agentOwner && /* @__PURE__ */ jsxRuntime.jsx(chunkPV5A5SAC_cjs.EntityTooltipSection, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkPV5A5SAC_cjs.EntityTooltipHint, { icon: /* @__PURE__ */ jsxRuntime.jsx(react.ArbiBotHeadIcon, { className: "w-3.5 h-3.5 flex-shrink-0" }), children: [
200
+ userIsAgent && agentOwner && /* @__PURE__ */ jsxRuntime.jsx(chunkTPNLYQD2_cjs.EntityTooltipSection, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkTPNLYQD2_cjs.EntityTooltipHint, { icon: /* @__PURE__ */ jsxRuntime.jsx(react.ArbiBotHeadIcon, { className: "w-3.5 h-3.5 flex-shrink-0" }), children: [
201
201
  "Agent of",
202
202
  " ",
203
203
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium text-foreground", children: ui.getUserDisplayName(agentOwner) })
204
204
  ] }) }),
205
205
  sharedWorkspaces.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
206
- chunkPV5A5SAC_cjs.EntityTooltipSection,
206
+ chunkTPNLYQD2_cjs.EntityTooltipSection,
207
207
  {
208
208
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Users, { className: "w-3.5 h-3.5 flex-shrink-0" }),
209
209
  heading: "Shared Workspaces",
@@ -234,7 +234,7 @@ var ConnectedUserEntity = React9.memo(function ConnectedUserEntity2({
234
234
  ] })
235
235
  }
236
236
  ),
237
- interactive && variant === "pill" && canChat && /* @__PURE__ */ jsxRuntime.jsx(chunkPV5A5SAC_cjs.EntityTooltipHint, { isRuled: true, icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MessageCircleMore, { className: "w-3 h-3" }), children: "Click to send message" })
237
+ interactive && variant === "pill" && canChat && /* @__PURE__ */ jsxRuntime.jsx(chunkTPNLYQD2_cjs.EntityTooltipHint, { isRuled: true, icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MessageCircleMore, { className: "w-3 h-3" }), children: "Click to send message" })
238
238
  ] });
239
239
  return /* @__PURE__ */ jsxRuntime.jsx(
240
240
  ui.UserEntity,
@@ -388,7 +388,7 @@ function ConnectedWorkspaceActivity({
388
388
  [feed.data]
389
389
  );
390
390
  return /* @__PURE__ */ jsxRuntime.jsx(
391
- chunkPV5A5SAC_cjs.WorkspaceActivityList,
391
+ chunkTPNLYQD2_cjs.WorkspaceActivityList,
392
392
  {
393
393
  ...listProps,
394
394
  items,
@@ -1553,7 +1553,7 @@ function ConnectedWorkspaceNotificationMenu({
1553
1553
  }, [error, notify18]);
1554
1554
  if (!workspaceId) return null;
1555
1555
  return /* @__PURE__ */ jsxRuntime.jsx(
1556
- chunkPV5A5SAC_cjs.WorkspaceNotificationMenu,
1556
+ chunkTPNLYQD2_cjs.WorkspaceNotificationMenu,
1557
1557
  {
1558
1558
  ...menuProps,
1559
1559
  level,
@@ -1572,7 +1572,7 @@ function ConnectedThreadFollow({
1572
1572
  enabled: live
1573
1573
  });
1574
1574
  if (!conversationId) return null;
1575
- const Control = as === "menu-item" ? chunkPV5A5SAC_cjs.ThreadFollowMenuItem : chunkPV5A5SAC_cjs.ThreadFollowButton;
1575
+ const Control = as === "menu-item" ? chunkTPNLYQD2_cjs.ThreadFollowMenuItem : chunkTPNLYQD2_cjs.ThreadFollowButton;
1576
1576
  return /* @__PURE__ */ jsxRuntime.jsx(
1577
1577
  Control,
1578
1578
  {
@@ -1645,7 +1645,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
1645
1645
  onChange: (e) => {
1646
1646
  const file = e.target.files?.[0];
1647
1647
  e.target.value = "";
1648
- if (file) void add(() => chunkGUV63FUC_cjs.importSkillFile(file));
1648
+ if (file) void add(() => chunkO3MRE2HL_cjs.importSkillFile(file));
1649
1649
  }
1650
1650
  }
1651
1651
  ),
@@ -1670,7 +1670,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
1670
1670
  className: "space-y-2",
1671
1671
  onSubmit: (e) => {
1672
1672
  e.preventDefault();
1673
- if (url.trim()) void add(() => chunkGUV63FUC_cjs.importSkillFromUrl(url));
1673
+ if (url.trim()) void add(() => chunkO3MRE2HL_cjs.importSkillFromUrl(url));
1674
1674
  },
1675
1675
  children: [
1676
1676
  /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "skills-add-url", children: l.fromLink }),
@@ -1733,9 +1733,9 @@ function ConnectedSkillsLibrary({
1733
1733
  const [type, setType] = React9.useState("all");
1734
1734
  const [view, setView] = React9.useState("gallery");
1735
1735
  const [isBusy, setIsBusy] = React9.useState(false);
1736
- const all = React9.useMemo(() => chunkGUV63FUC_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
1736
+ const all = React9.useMemo(() => chunkO3MRE2HL_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
1737
1737
  const shown = React9.useMemo(
1738
- () => chunkGUV63FUC_cjs.filterLibrarySkills(all, { query, source, type }),
1738
+ () => chunkO3MRE2HL_cjs.filterLibrarySkills(all, { query, source, type }),
1739
1739
  [all, query, source, type]
1740
1740
  );
1741
1741
  const current = all.find((s) => s.slug === selected) ?? null;
@@ -1746,21 +1746,21 @@ function ConnectedSkillsLibrary({
1746
1746
  const count2 = (s) => all.filter((x) => x.source === s).length;
1747
1747
  const sourceOptions = [
1748
1748
  { id: "all", label: "All", count: all.length },
1749
- { id: "builtin", label: chunkGUV63FUC_cjs.SKILL_SOURCE_LABELS.builtin, count: count2("builtin") },
1750
- { id: "mine", label: chunkGUV63FUC_cjs.SKILL_SOURCE_LABELS.mine, count: count2("mine") },
1751
- { id: "shared", label: chunkGUV63FUC_cjs.SKILL_SOURCE_LABELS.shared, count: count2("shared") }
1749
+ { id: "builtin", label: chunkO3MRE2HL_cjs.SKILL_SOURCE_LABELS.builtin, count: count2("builtin") },
1750
+ { id: "mine", label: chunkO3MRE2HL_cjs.SKILL_SOURCE_LABELS.mine, count: count2("mine") },
1751
+ { id: "shared", label: chunkO3MRE2HL_cjs.SKILL_SOURCE_LABELS.shared, count: count2("shared") }
1752
1752
  ];
1753
1753
  const types = [...new Set(all.map((s) => s.type))];
1754
1754
  const typeOptions = [
1755
1755
  { id: "all", label: "Any kind" },
1756
- ...types.map((t) => ({ id: t, label: chunkGUV63FUC_cjs.SKILL_TYPE_LABELS[t] ?? t }))
1756
+ ...types.map((t) => ({ id: t, label: chunkO3MRE2HL_cjs.SKILL_TYPE_LABELS[t] ?? t }))
1757
1757
  ];
1758
1758
  const pick = (slug) => {
1759
1759
  setSelected(slug);
1760
1760
  setMode("detail");
1761
1761
  };
1762
1762
  const markdownOf = async (skill) => {
1763
- if (!skill.docExtId) return chunkGUV63FUC_cjs.workflowToSkillMarkdown(skill.workflow);
1763
+ if (!skill.docExtId) return chunkO3MRE2HL_cjs.workflowToSkillMarkdown(skill.workflow);
1764
1764
  const response = await arbi.documents.download(skill.docExtId);
1765
1765
  if (!response.ok) throw new Error(`Could not read the skill (${response.status})`);
1766
1766
  return response.text();
@@ -1824,7 +1824,7 @@ function ConnectedSkillsLibrary({
1824
1824
  try {
1825
1825
  documentTools.downloadBlob(
1826
1826
  new Blob([await markdownOf(skill)], { type: "text/markdown" }),
1827
- chunkGUV63FUC_cjs.SKILL_MAIN_FILENAME
1827
+ chunkO3MRE2HL_cjs.SKILL_MAIN_FILENAME
1828
1828
  );
1829
1829
  } catch (error) {
1830
1830
  notify18(errorText(error, "Could not export the skill"), "error");
@@ -1865,10 +1865,10 @@ function ConnectedSkillsLibrary({
1865
1865
  }
1866
1866
  )
1867
1867
  ] }),
1868
- /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.SkillViewToggle, { value: view, onChange: setView })
1868
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.SkillViewToggle, { value: view, onChange: setView })
1869
1869
  ] }),
1870
1870
  /* @__PURE__ */ jsxRuntime.jsx(
1871
- chunkGUV63FUC_cjs.SkillFilterChips,
1871
+ chunkO3MRE2HL_cjs.SkillFilterChips,
1872
1872
  {
1873
1873
  label: "Show",
1874
1874
  value: source,
@@ -1877,7 +1877,7 @@ function ConnectedSkillsLibrary({
1877
1877
  }
1878
1878
  ),
1879
1879
  types.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
1880
- chunkGUV63FUC_cjs.SkillFilterChips,
1880
+ chunkO3MRE2HL_cjs.SkillFilterChips,
1881
1881
  {
1882
1882
  label: "Kind",
1883
1883
  value: type,
@@ -1924,12 +1924,12 @@ function ConnectedSkillsLibrary({
1924
1924
  view === "gallery" ? "grid grid-cols-[repeat(auto-fill,minmax(9.5rem,1fr))]" : "flex flex-col"
1925
1925
  ),
1926
1926
  children: shown.map((skill) => /* @__PURE__ */ jsxRuntime.jsx(
1927
- chunkGUV63FUC_cjs.SkillTile,
1927
+ chunkO3MRE2HL_cjs.SkillTile,
1928
1928
  {
1929
1929
  name: skill.title,
1930
1930
  testId: `skill-tile-${skill.slug}`,
1931
1931
  description: skill.description,
1932
- sourceLabel: skill.isShared ? `${chunkGUV63FUC_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkGUV63FUC_cjs.SKILL_SOURCE_LABELS[skill.source],
1932
+ sourceLabel: skill.isShared ? `${chunkO3MRE2HL_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkO3MRE2HL_cjs.SKILL_SOURCE_LABELS[skill.source],
1933
1933
  type: skill.type,
1934
1934
  icon,
1935
1935
  layout: view,
@@ -1964,7 +1964,7 @@ function ConnectedSkillsLibrary({
1964
1964
  }
1965
1965
  ),
1966
1966
  mode === "new" && /* @__PURE__ */ jsxRuntime.jsx(
1967
- chunkGUV63FUC_cjs.SkillGenerateForm,
1967
+ chunkO3MRE2HL_cjs.SkillGenerateForm,
1968
1968
  {
1969
1969
  icon,
1970
1970
  onGenerate: (desc) => {
@@ -1991,11 +1991,11 @@ function ConnectedSkillsLibrary({
1991
1991
  ),
1992
1992
  mode === "add" && /* @__PURE__ */ jsxRuntime.jsx(ConnectedSkillUpload, { onDone: done }),
1993
1993
  mode === "detail" && current && /* @__PURE__ */ jsxRuntime.jsx(
1994
- chunkGUV63FUC_cjs.SkillLibraryDetail,
1994
+ chunkO3MRE2HL_cjs.SkillLibraryDetail,
1995
1995
  {
1996
1996
  skill: current,
1997
1997
  icon,
1998
- instructions: current.docExtId ? currentText ? chunkGUV63FUC_cjs.parseSkillFrontmatter(currentText, chunkGUV63FUC_cjs.SKILL_MAIN_FILENAME).content : "" : current.workflow.run.kind === "prompt" ? current.workflow.run.promptTemplate : "",
1998
+ instructions: current.docExtId ? currentText ? chunkO3MRE2HL_cjs.parseSkillFrontmatter(currentText, chunkO3MRE2HL_cjs.SKILL_MAIN_FILENAME).content : "" : current.workflow.run.kind === "prompt" ? current.workflow.run.promptTemplate : "",
1999
1999
  isLoading: !!current.docExtId && textLoading,
2000
2000
  actions: {
2001
2001
  onRun: () => onRun(current.slug),
@@ -2030,7 +2030,7 @@ function SkillEditor({
2030
2030
  const [seeded, setSeeded] = React9.useState(!isEditing);
2031
2031
  const [nameError, setNameError] = React9.useState(null);
2032
2032
  if (isEditing && !seeded && text2 !== void 0) {
2033
- const parsed = chunkGUV63FUC_cjs.parseSkillFrontmatter(text2, chunkGUV63FUC_cjs.SKILL_MAIN_FILENAME);
2033
+ const parsed = chunkO3MRE2HL_cjs.parseSkillFrontmatter(text2, chunkO3MRE2HL_cjs.SKILL_MAIN_FILENAME);
2034
2034
  setDescription(parsed.description ?? "");
2035
2035
  setBody(parsed.content ?? "");
2036
2036
  setSeeded(true);
@@ -2044,15 +2044,15 @@ function SkillEditor({
2044
2044
  notify18("Add a short description.", "error");
2045
2045
  return;
2046
2046
  }
2047
- const slug = chunkGUV63FUC_cjs.skillSlug(name);
2047
+ const slug = chunkO3MRE2HL_cjs.skillSlug(name);
2048
2048
  try {
2049
- await onSave(slug, chunkGUV63FUC_cjs.serializeSkill({ name: slug, description, body }), isEditing);
2049
+ await onSave(slug, chunkO3MRE2HL_cjs.serializeSkill({ name: slug, description, body }), isEditing);
2050
2050
  } catch (err) {
2051
2051
  notify18(errorText(err, "Could not save the skill"), "error");
2052
2052
  }
2053
2053
  };
2054
2054
  return /* @__PURE__ */ jsxRuntime.jsx(
2055
- chunkGUV63FUC_cjs.SkillEditForm,
2055
+ chunkO3MRE2HL_cjs.SkillEditForm,
2056
2056
  {
2057
2057
  name,
2058
2058
  onNameChange: setName,
@@ -2088,9 +2088,9 @@ function ConnectedAgentCreator({
2088
2088
  agent,
2089
2089
  initialName,
2090
2090
  onSaved,
2091
- capabilities = chunkGUV63FUC_cjs.DEFAULT_AGENT_CAPABILITIES,
2092
- templates = chunkGUV63FUC_cjs.DEFAULT_AGENT_TEMPLATES,
2093
- types = chunkGUV63FUC_cjs.DEFAULT_AGENT_TYPES,
2091
+ capabilities = chunkO3MRE2HL_cjs.DEFAULT_AGENT_CAPABILITIES,
2092
+ templates = chunkO3MRE2HL_cjs.DEFAULT_AGENT_TEMPLATES,
2093
+ types = chunkO3MRE2HL_cjs.DEFAULT_AGENT_TYPES,
2094
2094
  canRevokeWorkspaces = false,
2095
2095
  labels
2096
2096
  }) {
@@ -2132,7 +2132,7 @@ function ConnectedAgentCreator({
2132
2132
  const initialValues = React9.useMemo(
2133
2133
  () => ({
2134
2134
  name: agent?.given_name ?? initialName ?? "",
2135
- persona: isEdit ? chunkGUV63FUC_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
2135
+ persona: isEdit ? chunkO3MRE2HL_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
2136
2136
  modelName: String(agents.AGENT_MODEL_NAME ?? ""),
2137
2137
  capabilities: Object.fromEntries(capabilities.map(({ key }) => [key, Boolean(agents[key])])),
2138
2138
  type: "builtin",
@@ -2151,7 +2151,7 @@ function ConnectedAgentCreator({
2151
2151
  try {
2152
2152
  let agentExtId = agent?.external_id ?? early?.id ?? "";
2153
2153
  if (!agentExtId) {
2154
- if (!chunkGUV63FUC_cjs.isValidAgentName(values.name)) {
2154
+ if (!chunkO3MRE2HL_cjs.isValidAgentName(values.name)) {
2155
2155
  notify18("Give the agent a name first.", "error");
2156
2156
  return;
2157
2157
  }
@@ -2187,7 +2187,7 @@ function ConnectedAgentCreator({
2187
2187
  title: `agent-${name}`,
2188
2188
  sections: {
2189
2189
  Agents: {
2190
- PERSONA: chunkGUV63FUC_cjs.composePersona(name, values.persona),
2190
+ PERSONA: chunkO3MRE2HL_cjs.composePersona(name, values.persona),
2191
2191
  ...values.modelName ? { AGENT_MODEL_NAME: values.modelName } : {},
2192
2192
  ...Object.fromEntries(capabilities.map(({ key }) => [key, !!values.capabilities[key]])),
2193
2193
  ENABLED_SKILLS: values.capabilities.SKILLS_ENABLED && skills.length ? skills : null,
@@ -2210,7 +2210,7 @@ function ConnectedAgentCreator({
2210
2210
  };
2211
2211
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2212
2212
  /* @__PURE__ */ jsxRuntime.jsx(
2213
- chunkGUV63FUC_cjs.AgentCreator,
2213
+ chunkO3MRE2HL_cjs.AgentCreator,
2214
2214
  {
2215
2215
  open: ready,
2216
2216
  onOpenChange,
@@ -2226,11 +2226,11 @@ function ConnectedAgentCreator({
2226
2226
  ) : void 0,
2227
2227
  revokingWorkspaceId: revokeAccess.isPending ? revokeAccess.variables?.workspaceId : void 0,
2228
2228
  avatar: (values) => /* @__PURE__ */ jsxRuntime.jsx(
2229
- chunkGUV63FUC_cjs.AgentAvatarField,
2229
+ chunkO3MRE2HL_cjs.AgentAvatarField,
2230
2230
  {
2231
2231
  picture,
2232
2232
  isBusy: avatarBusy,
2233
- canGenerate: isEdit || chunkGUV63FUC_cjs.isValidAgentName(values.name),
2233
+ canGenerate: isEdit || chunkO3MRE2HL_cjs.isValidAgentName(values.name),
2234
2234
  onGenerate: () => handleGenerateAvatar(values)
2235
2235
  }
2236
2236
  ),
@@ -2282,12 +2282,82 @@ function ConnectedAgentCreator({
2282
2282
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: "Connect your agent" }),
2283
2283
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: "This key is shown once. Run the script on the machine that will host the agent." })
2284
2284
  ] }),
2285
- connect && /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
2285
+ connect && /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
2286
2286
  ]
2287
2287
  }
2288
2288
  ) })
2289
2289
  ] });
2290
2290
  }
2291
+ var DEFAULT_LABELS = {
2292
+ addressCopied: "Agent address copied",
2293
+ addressCopyFailed: "Could not copy the address",
2294
+ deleted: (agent) => `Agent "${agent.given_name}" deleted.`,
2295
+ deleteFailed: (error) => `Delete failed: ${error instanceof Error ? error.message : error}`
2296
+ };
2297
+ function useConnectedAgentManagement({
2298
+ confirmDelete,
2299
+ onAssignTask,
2300
+ labels
2301
+ } = {}) {
2302
+ const { data: agents = [], isLoading } = react.useAgents();
2303
+ const deletion = react.useDeleteAgents();
2304
+ const { notify: notify18 } = chunkB3NYBMDR_cjs.useBlocksEnvironment();
2305
+ const l = { ...DEFAULT_LABELS, ...labels };
2306
+ const [editorOpen, setEditorOpen] = React9.useState(false);
2307
+ const [editing, setEditing] = React9.useState(null);
2308
+ const [assignFor, setAssignFor] = React9.useState(null);
2309
+ const onEditorOpenChange = (open) => {
2310
+ setEditorOpen(open);
2311
+ };
2312
+ const create4 = () => {
2313
+ setEditing(null);
2314
+ setEditorOpen(true);
2315
+ };
2316
+ const edit = (agent) => {
2317
+ setEditing(agent);
2318
+ setEditorOpen(true);
2319
+ };
2320
+ const assign = (agent) => {
2321
+ if (onAssignTask) onAssignTask(agent);
2322
+ else setAssignFor(agent);
2323
+ };
2324
+ const remove = async (agent) => {
2325
+ try {
2326
+ if (confirmDelete && !await confirmDelete(agent)) return false;
2327
+ await deletion.mutateAsync({ agentExtIds: [agent.external_id] });
2328
+ notify18(l.deleted(agent), "success");
2329
+ return true;
2330
+ } catch (error) {
2331
+ notify18(l.deleteFailed(error), "error");
2332
+ return false;
2333
+ }
2334
+ };
2335
+ const copyAddress = async (address) => {
2336
+ try {
2337
+ await navigator.clipboard.writeText(address);
2338
+ notify18(l.addressCopied, "success");
2339
+ } catch {
2340
+ if (l.addressCopyFailed !== null) notify18(l.addressCopyFailed, "error");
2341
+ }
2342
+ };
2343
+ return {
2344
+ agents,
2345
+ isLoading,
2346
+ create: create4,
2347
+ edit,
2348
+ assign,
2349
+ remove,
2350
+ copyAddress,
2351
+ editorProps: { open: editorOpen, onOpenChange: onEditorOpenChange, agent: editing },
2352
+ assignmentProps: assignFor ? {
2353
+ open: true,
2354
+ onOpenChange: (open) => {
2355
+ if (!open) setAssignFor(null);
2356
+ },
2357
+ initialAgentExtId: assignFor.external_id
2358
+ } : null
2359
+ };
2360
+ }
2291
2361
  var RUN_KIND = {
2292
2362
  email_documents: "Email",
2293
2363
  annotate_documents: "AI Review",
@@ -2319,7 +2389,7 @@ function ConnectedWorkflowHistory({
2319
2389
  const { openConversation } = chunkB3NYBMDR_cjs.useBlocksEnvironment();
2320
2390
  const { data: runs = [], isLoading } = react.useWorkflowRuns(workflow?.external_id);
2321
2391
  return /* @__PURE__ */ jsxRuntime.jsx(
2322
- chunkGUV63FUC_cjs.TaskRunsDialog,
2392
+ chunkO3MRE2HL_cjs.TaskRunsDialog,
2323
2393
  {
2324
2394
  inline,
2325
2395
  hideHeader,
@@ -2355,14 +2425,14 @@ function ConnectedTaskActivityDialog({
2355
2425
  const activity = react.useConversationActivity(conversationId, { live });
2356
2426
  const { data: agents = [] } = react.useAgents();
2357
2427
  const { userId } = chunkP6HVJP6Z_cjs.useConnectedWorkspace();
2358
- const { members } = chunkQWSAJNQE_cjs.useConnectedWorkspaceRole();
2428
+ const { members } = chunkUZVXVTTB_cjs.useConnectedWorkspaceRole();
2359
2429
  const renderPerson = React9.useCallback(
2360
2430
  (id) => {
2361
2431
  const isMe = !!id && id === userId;
2362
2432
  const member = members.find((m) => m.user.external_id === id)?.user;
2363
2433
  const name = member && [member.given_name, member.family_name].filter(Boolean).join(" ") || member?.email;
2364
2434
  const person = { id, label: isMe ? "You" : name || "Someone", isMe };
2365
- return renderTaskPerson ? renderTaskPerson(person) : /* @__PURE__ */ jsxRuntime.jsx(chunkT5BCPKU3_cjs.PersonPill, { person });
2435
+ return renderTaskPerson ? renderTaskPerson(person) : /* @__PURE__ */ jsxRuntime.jsx(chunk2QDNQM63_cjs.PersonPill, { person });
2366
2436
  },
2367
2437
  [renderTaskPerson, userId, members]
2368
2438
  );
@@ -2371,7 +2441,7 @@ function ConnectedTaskActivityDialog({
2371
2441
  [agents]
2372
2442
  );
2373
2443
  return /* @__PURE__ */ jsxRuntime.jsx(
2374
- chunkGUV63FUC_cjs.TaskActivityDialog,
2444
+ chunkO3MRE2HL_cjs.TaskActivityDialog,
2375
2445
  {
2376
2446
  open: true,
2377
2447
  onOpenChange: (open) => !open && onClose(),
@@ -2517,7 +2587,7 @@ function useWorkflowThread(workflow, options2 = {}) {
2517
2587
  );
2518
2588
  const conversation = conversations.data?.find((c) => c.external_id === threadId);
2519
2589
  const steps = React9.useMemo(
2520
- () => chunkEZLZ3MDU_cjs.workflowSteps(workflow).length > 0 ? chunkEZLZ3MDU_cjs.workflowSteps(workflow) : chunkGUV63FUC_cjs.fromPlanSteps(conversation?.plan?.steps ?? []),
2590
+ () => chunkEZLZ3MDU_cjs.workflowSteps(workflow).length > 0 ? chunkEZLZ3MDU_cjs.workflowSteps(workflow) : chunkO3MRE2HL_cjs.fromPlanSteps(conversation?.plan?.steps ?? []),
2521
2591
  [workflow, conversation?.plan?.steps]
2522
2592
  );
2523
2593
  const activity = react.useConversationActivity(threadId, { live: !!threadId });
@@ -2577,7 +2647,7 @@ function useWorkflowThread(workflow, options2 = {}) {
2577
2647
  criteria: [],
2578
2648
  max_passes: 3,
2579
2649
  documents: [],
2580
- steps: chunkGUV63FUC_cjs.toPlanSteps(workflow, {
2650
+ steps: chunkO3MRE2HL_cjs.toPlanSteps(workflow, {
2581
2651
  inputs: values,
2582
2652
  resolveWorkflow: options2.resolveWorkflow,
2583
2653
  compose: options2.compose
@@ -2664,7 +2734,7 @@ function useWorkflowThread(workflow, options2 = {}) {
2664
2734
  const anyRunning = Object.values(states).some((s) => s.status === "running");
2665
2735
  const needsStart = !threadId || idle && !anyRunning;
2666
2736
  const runError = idle ? conversation?.last_error ?? null : null;
2667
- const view = chunkGUV63FUC_cjs.useWorkflowView({
2737
+ const view = chunkO3MRE2HL_cjs.useWorkflowView({
2668
2738
  steps,
2669
2739
  states,
2670
2740
  inputs,
@@ -2830,7 +2900,7 @@ function WorkflowWordDialog({
2830
2900
  title: title ?? labels.wordTitle,
2831
2901
  size: "xl",
2832
2902
  testId: "workflow-word-dialog",
2833
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunkQWSAJNQE_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
2903
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkULWRNGGE_cjs.ModalScaffold.Body, { className: "h-[70dvh] p-0", children: /* @__PURE__ */ jsxRuntime.jsx(chunkUZVXVTTB_cjs.ConnectedNativeDocxEditor, { documentId: id, title: title ?? labels.wordTitle }) })
2834
2904
  }
2835
2905
  );
2836
2906
  }
@@ -3152,7 +3222,7 @@ function ConnectedWorkflowRunner({
3152
3222
  );
3153
3223
  };
3154
3224
  const runner = (compact) => /* @__PURE__ */ jsxRuntime.jsx(
3155
- chunkGUV63FUC_cjs.WorkflowRunner,
3225
+ chunkO3MRE2HL_cjs.WorkflowRunner,
3156
3226
  {
3157
3227
  people,
3158
3228
  ...runnerProps,
@@ -3198,7 +3268,7 @@ function ConnectedWorkflowRunner({
3198
3268
  ) }),
3199
3269
  inThread && conversationId ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3200
3270
  /* @__PURE__ */ jsxRuntime.jsx(
3201
- chunkGUV63FUC_cjs.WorkflowStepBar,
3271
+ chunkO3MRE2HL_cjs.WorkflowStepBar,
3202
3272
  {
3203
3273
  run: view,
3204
3274
  levels: chunkEZLZ3MDU_cjs.stepLevels(view.steps),
@@ -3489,7 +3559,7 @@ function ConnectedTagTable({
3489
3559
  const fail2 = (fallback) => (e) => notify18(browser.refusalReason(e, fallback), "error");
3490
3560
  const snapshot2 = (data) => {
3491
3561
  const title = exportTitle ?? ui.tagKindTitle(kind, { plural: true });
3492
- const bytes = chunkPV5A5SAC_cjs.tagTableDocx(data, {
3562
+ const bytes = chunkTPNLYQD2_cjs.tagTableDocx(data, {
3493
3563
  title,
3494
3564
  nameOf: (id) => people.find((p) => p.value === id)?.label
3495
3565
  });
@@ -3498,7 +3568,7 @@ function ConnectedTagTable({
3498
3568
  return { blob: new Blob([bytes], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }), name };
3499
3569
  };
3500
3570
  return /* @__PURE__ */ jsxRuntime.jsx(
3501
- chunkPV5A5SAC_cjs.TagTable,
3571
+ chunkTPNLYQD2_cjs.TagTable,
3502
3572
  {
3503
3573
  ...props,
3504
3574
  table,
@@ -3539,7 +3609,7 @@ function DocTagPassages({ docId, tagId, label, docOf, testId }) {
3539
3609
  const [open, setOpen] = React9.useState(false);
3540
3610
  const doctag = docOf(docId)?.doctags?.find((dt) => dt.tag_ext_id === tagId);
3541
3611
  const citations = React9.useMemo(
3542
- () => chunkF72ZD5Q2_cjs.toFactCitations(doctag?.citations) ?? [],
3612
+ () => chunkYD3RN2FY_cjs.toFactCitations(doctag?.citations) ?? [],
3543
3613
  [doctag?.citations]
3544
3614
  );
3545
3615
  const { quoteFor, orderOf } = react.usePassageQuotes(
@@ -3548,7 +3618,7 @@ function DocTagPassages({ docId, tagId, label, docOf, testId }) {
3548
3618
  const { openDocument } = chunkB3NYBMDR_cjs.useBlocksEnvironment();
3549
3619
  const viewingPassageId = react.useArbiSessionState((s) => s.viewingDocument?.passageId ?? null);
3550
3620
  const id = testId ?? `doctag-passages-${docId}`;
3551
- const refOf = (cited) => chunkF72ZD5Q2_cjs.citedVersionRef(cited.doc_ext_id, cited.version, docOf(cited.doc_ext_id)?.current_version);
3621
+ const refOf = (cited) => chunkYD3RN2FY_cjs.citedVersionRef(cited.doc_ext_id, cited.version, docOf(cited.doc_ext_id)?.current_version);
3552
3622
  const ordered = (cited) => [...cited.chunks].sort((a, b) => {
3553
3623
  const oa = orderOf(a.chunk_id);
3554
3624
  const ob = orderOf(b.chunk_id);
@@ -3579,7 +3649,7 @@ function DocTagPassages({ docId, tagId, label, docOf, testId }) {
3579
3649
  const doc = docOf(cited.doc_ext_id);
3580
3650
  const passages = ordered(cited);
3581
3651
  return /* @__PURE__ */ jsxRuntime.jsx(
3582
- chunkF72ZD5Q2_cjs.FactSourceGroup,
3652
+ chunkYD3RN2FY_cjs.FactSourceGroup,
3583
3653
  {
3584
3654
  docId: cited.doc_ext_id,
3585
3655
  hasPassages: passages.length > 0,
@@ -3636,9 +3706,9 @@ function GlossaryExport({ labelId, nameOf }) {
3636
3706
  const narrowed = agreements.find((a) => a.id === narrowTo);
3637
3707
  const title = narrowed ? `Glossary - ${narrowed.name}` : "Glossary";
3638
3708
  const download = (format) => {
3639
- const entries = chunkPV5A5SAC_cjs.glossaryEntries(sources, { labelId: narrowed?.id });
3640
- const blob = format === "docx" ? new Blob([chunkPV5A5SAC_cjs.glossaryDocx(entries, { title })], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }) : new Blob([chunkPV5A5SAC_cjs.glossaryMarkdown(entries, { title })], { type: "text/markdown" });
3641
- documentTools.downloadBlob(blob, chunkPV5A5SAC_cjs.glossaryFileName(title, format));
3709
+ const entries = chunkTPNLYQD2_cjs.glossaryEntries(sources, { labelId: narrowed?.id });
3710
+ const blob = format === "docx" ? new Blob([chunkTPNLYQD2_cjs.glossaryDocx(entries, { title })], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }) : new Blob([chunkTPNLYQD2_cjs.glossaryMarkdown(entries, { title })], { type: "text/markdown" });
3711
+ documentTools.downloadBlob(blob, chunkTPNLYQD2_cjs.glossaryFileName(title, format));
3642
3712
  };
3643
3713
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", "data-testid": "tags-glossary", children: [
3644
3714
  agreements.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
@@ -4424,7 +4494,7 @@ var DocumentSharedCell = React9.memo(function DocumentSharedCell2({
4424
4494
  [document2.external_id, onToggle]
4425
4495
  );
4426
4496
  return /* @__PURE__ */ jsxRuntime.jsx(
4427
- chunkPV5A5SAC_cjs.SharedCell,
4497
+ chunkTPNLYQD2_cjs.SharedCell,
4428
4498
  {
4429
4499
  item: document2,
4430
4500
  onToggle: handleToggle,
@@ -5135,7 +5205,7 @@ function KindSection({
5135
5205
  {
5136
5206
  testId: `tags-kind-${kind}`,
5137
5207
  title: ui.tagKindTitle(kind, { plural: true }),
5138
- description: chunkPV5A5SAC_cjs.tagKindDescription(kind),
5208
+ description: chunkTPNLYQD2_cjs.tagKindDescription(kind),
5139
5209
  actions: picker,
5140
5210
  children: [
5141
5211
  browser.isEntityTag({ kind }) && extractingCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
@@ -5146,9 +5216,9 @@ function KindSection({
5146
5216
  children: [
5147
5217
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-4 animate-spin" }),
5148
5218
  "Extracting ",
5149
- chunkPV5A5SAC_cjs.entitiesPhrase().toLowerCase(),
5219
+ chunkTPNLYQD2_cjs.entitiesPhrase().toLowerCase(),
5150
5220
  " from ",
5151
- chunkPV5A5SAC_cjs.documentCount(extractingCount),
5221
+ chunkTPNLYQD2_cjs.documentCount(extractingCount),
5152
5222
  "\u2026"
5153
5223
  ]
5154
5224
  }
@@ -5166,7 +5236,7 @@ function KindSection({
5166
5236
  onOpenDocument: (id) => openDocument(id),
5167
5237
  onOpenFact: ctx.onOpenFact,
5168
5238
  onOpenThread: (id) => openConversation(id),
5169
- labels: chunkPV5A5SAC_cjs.tagTableLabels(kind),
5239
+ labels: chunkTPNLYQD2_cjs.tagTableLabels(kind),
5170
5240
  testId: `tags-table-${kind}`
5171
5241
  }
5172
5242
  )
@@ -5268,12 +5338,12 @@ function TagSection({
5268
5338
  onOpenDocument: (id) => openDocument(id),
5269
5339
  onOpenFact: ctx.onOpenFact,
5270
5340
  onOpenThread: (id) => openConversation(id),
5271
- labels: chunkPV5A5SAC_cjs.tagTableLabels(tag.kind),
5341
+ labels: chunkTPNLYQD2_cjs.tagTableLabels(tag.kind),
5272
5342
  testId: "tags-rows"
5273
5343
  }
5274
5344
  ),
5275
5345
  /* @__PURE__ */ jsxRuntime.jsx(
5276
- chunkPV5A5SAC_cjs.TagDetail,
5346
+ chunkTPNLYQD2_cjs.TagDetail,
5277
5347
  {
5278
5348
  row: detailRow && narrowTagRow(detailRow, ctx.filter.matches),
5279
5349
  fields: schema.data?.fields ?? [],
@@ -5285,10 +5355,10 @@ function TagSection({
5285
5355
  onOpenDocument: (id) => openDocument(id),
5286
5356
  onOpenFact: ctx.onOpenFact,
5287
5357
  onOpenThread: (id) => openConversation(id),
5288
- noteLabel: chunkPV5A5SAC_cjs.tagNoteLabel(tag.kind),
5358
+ noteLabel: chunkTPNLYQD2_cjs.tagNoteLabel(tag.kind),
5289
5359
  noteIsValue: tag.kind === "annotation",
5290
5360
  renderPassages: (d, label) => renderPassages(d.doc_ext_id, label),
5291
- labels: chunkPV5A5SAC_cjs.tagDetailLabels(),
5361
+ labels: chunkTPNLYQD2_cjs.tagDetailLabels(),
5292
5362
  testId: "tags-detail"
5293
5363
  }
5294
5364
  )
@@ -5376,7 +5446,7 @@ function ConnectedTagsPage({
5376
5446
  const onDelete = async (t) => {
5377
5447
  const nested = browser.getChildTags([...tags], t.external_id);
5378
5448
  const uses = browser.tagUseCount(t);
5379
- const n2 = chunkPV5A5SAC_cjs.tagsPageNouns();
5449
+ const n2 = chunkTPNLYQD2_cjs.tagsPageNouns();
5380
5450
  const tagNoun = (count2) => (count2 === 1 ? n2.tag : n2.tags).toLowerCase();
5381
5451
  const carriers = uses === 1 ? `${n2.document}, ${n2.fact} or ${n2.thread}` : `${n2.documents}, ${n2.facts} and ${n2.threads}`;
5382
5452
  const message = `Delete ${ui.tagKindNouns(t.kind).singular} "${t.name}"?` + (uses > 0 ? `
@@ -5397,16 +5467,16 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
5397
5467
  try {
5398
5468
  await extract.mutateAsync(docIds);
5399
5469
  notify18(
5400
- `Extracting ${chunkPV5A5SAC_cjs.entitiesPhrase().toLowerCase()} from ${chunkPV5A5SAC_cjs.documentCount(docIds.length)}. You will be notified when it is done.`,
5470
+ `Extracting ${chunkTPNLYQD2_cjs.entitiesPhrase().toLowerCase()} from ${chunkTPNLYQD2_cjs.documentCount(docIds.length)}. You will be notified when it is done.`,
5401
5471
  "info"
5402
5472
  );
5403
5473
  } catch (error) {
5404
- notify18(browser.refusalReason(error, `Could not extract ${chunkPV5A5SAC_cjs.entitiesPhrase().toLowerCase()}`), "error");
5474
+ notify18(browser.refusalReason(error, `Could not extract ${chunkTPNLYQD2_cjs.entitiesPhrase().toLowerCase()}`), "error");
5405
5475
  throw error;
5406
5476
  }
5407
5477
  };
5408
5478
  const picker = /* @__PURE__ */ jsxRuntime.jsx(
5409
- chunkPV5A5SAC_cjs.TagPicker,
5479
+ chunkTPNLYQD2_cjs.TagPicker,
5410
5480
  {
5411
5481
  tags: viewTags,
5412
5482
  selectedId: tag?.external_id,
@@ -5420,10 +5490,10 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
5420
5490
  onOpenTag: openTag,
5421
5491
  onOpenFact
5422
5492
  };
5423
- const n = chunkPV5A5SAC_cjs.tagsPageNouns();
5493
+ const n = chunkTPNLYQD2_cjs.tagsPageNouns();
5424
5494
  const action = view === "person" || view === "organisation" ? {
5425
5495
  label: "Extract",
5426
- title: `Extract ${chunkPV5A5SAC_cjs.entitiesPhrase().toLowerCase()} from ${n.documents.toLowerCase()}`,
5496
+ title: `Extract ${chunkTPNLYQD2_cjs.entitiesPhrase().toLowerCase()} from ${n.documents.toLowerCase()}`,
5427
5497
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "h-4 w-4" }),
5428
5498
  run: () => setExtracting(true),
5429
5499
  testId: "tags-extract-entities"
@@ -5573,7 +5643,7 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
5573
5643
  }
5574
5644
  ),
5575
5645
  /* @__PURE__ */ jsxRuntime.jsx(
5576
- chunkPV5A5SAC_cjs.ExtractEntitiesDialog,
5646
+ chunkTPNLYQD2_cjs.ExtractEntitiesDialog,
5577
5647
  {
5578
5648
  open: extracting,
5579
5649
  onOpenChange: setExtracting,
@@ -5634,7 +5704,7 @@ function FactSourcesPopover({
5634
5704
  reset();
5635
5705
  }
5636
5706
  };
5637
- const refOf = (docId) => chunkF72ZD5Q2_cjs.citedVersionRef(
5707
+ const refOf = (docId) => chunkYD3RN2FY_cjs.citedVersionRef(
5638
5708
  docId,
5639
5709
  citations.find((d) => d.doc_ext_id === docId)?.version,
5640
5710
  citedDocs?.[docId]?.current_version
@@ -5664,7 +5734,7 @@ function FactSourcesPopover({
5664
5734
  const olderVersion = refOf(docId) !== docId ? refOf(docId).split("@v")[1] : null;
5665
5735
  const cited = passagesOf(docId);
5666
5736
  return /* @__PURE__ */ jsxRuntime.jsx(
5667
- chunkF72ZD5Q2_cjs.FactSourceGroup,
5737
+ chunkYD3RN2FY_cjs.FactSourceGroup,
5668
5738
  {
5669
5739
  docId,
5670
5740
  isViewing,
@@ -5733,8 +5803,8 @@ function FactMarkdownEditor({
5733
5803
  citationContainer,
5734
5804
  "data-testid": dataTestId
5735
5805
  }) {
5736
- const sources = React9.useMemo(() => chunkF72ZD5Q2_cjs.toFactCitations(citations) ?? [], [citations]);
5737
- const docIds = chunkF72ZD5Q2_cjs.docIdsOf(sources);
5806
+ const sources = React9.useMemo(() => chunkYD3RN2FY_cjs.toFactCitations(citations) ?? [], [citations]);
5807
+ const docIds = chunkYD3RN2FY_cjs.docIdsOf(sources);
5738
5808
  const hasSources = docIds.length > 0;
5739
5809
  const { quoteFor, orderOf } = react.usePassageQuotes(
5740
5810
  React9.useMemo(() => sources.filter((d) => d.chunks.length > 0).map((d) => d.doc_ext_id), [sources])
@@ -5753,7 +5823,7 @@ function FactMarkdownEditor({
5753
5823
  const editorRef = React9.useRef(null);
5754
5824
  React9.useEffect(() => {
5755
5825
  if (!editorRef.current) return;
5756
- return chunkF72ZD5Q2_cjs.enableFactTableColumnResize(editorRef.current);
5826
+ return chunkYD3RN2FY_cjs.enableFactTableColumnResize(editorRef.current);
5757
5827
  }, []);
5758
5828
  React9.useEffect(() => {
5759
5829
  if (!editing) return;
@@ -5768,14 +5838,14 @@ function FactMarkdownEditor({
5768
5838
  return () => document.removeEventListener("pointerdown", onPointerDown, true);
5769
5839
  }, [editing]);
5770
5840
  const removeDoc = (docExtId) => {
5771
- const remaining = chunkF72ZD5Q2_cjs.withoutDoc(sources, docExtId);
5841
+ const remaining = chunkYD3RN2FY_cjs.withoutDoc(sources, docExtId);
5772
5842
  if (!remaining) setSourcesOpen(false);
5773
5843
  onChange(value, remaining);
5774
5844
  };
5775
5845
  const citeDocument = (docExtId) => onCiteDocument(docExtId, { toggle: false });
5776
5846
  const handleToggleDoc = (docExtId) => {
5777
5847
  if (docIds.includes(docExtId)) removeDoc(docExtId);
5778
- else onChange(value, chunkF72ZD5Q2_cjs.withDoc(sources, docExtId));
5848
+ else onChange(value, chunkYD3RN2FY_cjs.withDoc(sources, docExtId));
5779
5849
  };
5780
5850
  const expandToggle = /* @__PURE__ */ jsxRuntime.jsx(
5781
5851
  "button",
@@ -5994,7 +6064,7 @@ function useFactComposer(notes, remove, gridApiRef, collector, composeRequested,
5994
6064
  const [composing, setComposing] = React9.useState(false);
5995
6065
  const [draft, setDraft] = React9.useState("");
5996
6066
  const [baselineText, setBaselineText] = React9.useState("");
5997
- const [draftDateFields, setDraftDateFields] = React9.useState(chunkF72ZD5Q2_cjs.EMPTY_FACT_DATE_FIELDS);
6067
+ const [draftDateFields, setDraftDateFields] = React9.useState(chunkYD3RN2FY_cjs.EMPTY_FACT_DATE_FIELDS);
5998
6068
  const [composerError, setComposerError] = React9.useState(null);
5999
6069
  const [editingId, setEditingId] = React9.useState(null);
6000
6070
  const [draftShared, setDraftShared] = React9.useState(false);
@@ -6051,9 +6121,9 @@ function useFactComposer(notes, remove, gridApiRef, collector, composeRequested,
6051
6121
  if (!collector || !picked?.length || !collectingFor || !docBeingCollected) return;
6052
6122
  const docExtId = docBeingCollected;
6053
6123
  const apply = (prev) => {
6054
- let next = chunkF72ZD5Q2_cjs.toFactCitations(prev);
6124
+ let next = chunkYD3RN2FY_cjs.toFactCitations(prev);
6055
6125
  for (const pending of picked) {
6056
- next = chunkF72ZD5Q2_cjs.withChunk(next, docExtId, { chunk_id: pending.chunk_id, page: pending.page ?? null });
6126
+ next = chunkYD3RN2FY_cjs.withChunk(next, docExtId, { chunk_id: pending.chunk_id, page: pending.page ?? null });
6057
6127
  }
6058
6128
  return next ?? [];
6059
6129
  };
@@ -6064,8 +6134,8 @@ function useFactComposer(notes, remove, gridApiRef, collector, composeRequested,
6064
6134
  React9.useEffect(() => {
6065
6135
  if (!collector || !unpicked?.length || !collectingFor) return;
6066
6136
  setDraftCitations((prev) => {
6067
- let next = chunkF72ZD5Q2_cjs.toFactCitations(prev);
6068
- for (const chunkId of unpicked) next = chunkF72ZD5Q2_cjs.withoutChunk(next, chunkId);
6137
+ let next = chunkYD3RN2FY_cjs.toFactCitations(prev);
6138
+ for (const chunkId of unpicked) next = chunkYD3RN2FY_cjs.withoutChunk(next, chunkId);
6069
6139
  return next;
6070
6140
  });
6071
6141
  collector.consumeUnpicked();
@@ -6075,7 +6145,7 @@ function useFactComposer(notes, remove, gridApiRef, collector, composeRequested,
6075
6145
  setBaselineText("");
6076
6146
  setDraftCitations(null);
6077
6147
  setDraftTagIds([]);
6078
- setDraftDateFields(chunkF72ZD5Q2_cjs.EMPTY_FACT_DATE_FIELDS);
6148
+ setDraftDateFields(chunkYD3RN2FY_cjs.EMPTY_FACT_DATE_FIELDS);
6079
6149
  setDraftShared(false);
6080
6150
  setDraftConfirmed(true);
6081
6151
  setComposerError(null);
@@ -6089,7 +6159,7 @@ function useFactComposer(notes, remove, gridApiRef, collector, composeRequested,
6089
6159
  setBaselineText("");
6090
6160
  setDraftCitations(null);
6091
6161
  setDraftTagIds([]);
6092
- setDraftDateFields(chunkF72ZD5Q2_cjs.EMPTY_FACT_DATE_FIELDS);
6162
+ setDraftDateFields(chunkYD3RN2FY_cjs.EMPTY_FACT_DATE_FIELDS);
6093
6163
  setDraftShared(false);
6094
6164
  setDraftConfirmed(true);
6095
6165
  setComposerError(null);
@@ -6100,7 +6170,7 @@ function useFactComposer(notes, remove, gridApiRef, collector, composeRequested,
6100
6170
  const content = chunkRC25WMVB_cjs.decodeWhitespaceEntities(draft).trim();
6101
6171
  if (!content) return;
6102
6172
  setComposerError(null);
6103
- const span = chunkF72ZD5Q2_cjs.factDateFieldsToSpan(draftDateFields);
6173
+ const span = chunkYD3RN2FY_cjs.factDateFieldsToSpan(draftDateFields);
6104
6174
  try {
6105
6175
  let saved;
6106
6176
  if (editingId) {
@@ -6138,7 +6208,7 @@ function useFactComposer(notes, remove, gridApiRef, collector, composeRequested,
6138
6208
  setBaselineText(draft);
6139
6209
  setDraftCitations(saved.citations ?? null);
6140
6210
  setDraftTagIds(saved.tags.map((t) => t.tag_ext_id));
6141
- setDraftDateFields(chunkF72ZD5Q2_cjs.factDateSpanToFields(saved.date_start, saved.date_end, saved.timezone));
6211
+ setDraftDateFields(chunkYD3RN2FY_cjs.factDateSpanToFields(saved.date_start, saved.date_end, saved.timezone));
6142
6212
  setDraftShared(saved.shared ?? false);
6143
6213
  setDraftConfirmed(saved.confirmed ?? true);
6144
6214
  }
@@ -6163,7 +6233,7 @@ function useFactComposer(notes, remove, gridApiRef, collector, composeRequested,
6163
6233
  setBaselineText(m.text);
6164
6234
  setDraftCitations(m.citations ?? null);
6165
6235
  setDraftTagIds(m.tags.map((t) => t.tag_ext_id));
6166
- setDraftDateFields(chunkF72ZD5Q2_cjs.factDateSpanToFields(m.date_start, m.date_end, m.timezone));
6236
+ setDraftDateFields(chunkYD3RN2FY_cjs.factDateSpanToFields(m.date_start, m.date_end, m.timezone));
6167
6237
  setDraftShared(m.shared ?? false);
6168
6238
  setDraftConfirmed(m.confirmed ?? true);
6169
6239
  setComposerError(null);
@@ -6177,7 +6247,7 @@ function useFactComposer(notes, remove, gridApiRef, collector, composeRequested,
6177
6247
  const textChanged = draft.trim() !== baselineText.trim();
6178
6248
  const citationsChanged = JSON.stringify(draftCitations ?? null) !== JSON.stringify(f.citations ?? null);
6179
6249
  const tagsChanged = JSON.stringify([...draftTagIds].sort()) !== JSON.stringify(f.tags.map((t) => t.tag_ext_id).sort());
6180
- const dateChanged = JSON.stringify(draftDateFields) !== JSON.stringify(chunkF72ZD5Q2_cjs.factDateSpanToFields(f.date_start, f.date_end, f.timezone));
6250
+ const dateChanged = JSON.stringify(draftDateFields) !== JSON.stringify(chunkYD3RN2FY_cjs.factDateSpanToFields(f.date_start, f.date_end, f.timezone));
6181
6251
  const sharedChanged = draftShared !== (f.shared ?? false);
6182
6252
  const confirmedChanged = draftConfirmed !== (f.confirmed ?? true);
6183
6253
  return textChanged || citationsChanged || tagsChanged || dateChanged || sharedChanged || confirmedChanged;
@@ -6351,7 +6421,7 @@ function useFactFilters(notes, view, chat) {
6351
6421
  const makeTagPicker = React9.useCallback(
6352
6422
  (selected, setSelected, opts) => {
6353
6423
  const applied = new Set(selected);
6354
- return /* @__PURE__ */ jsxRuntime.jsx(chunkF72ZD5Q2_cjs.FactFieldRow, { label: "Labels", children: /* @__PURE__ */ jsxRuntime.jsx(
6424
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkYD3RN2FY_cjs.FactFieldRow, { label: "Labels", children: /* @__PURE__ */ jsxRuntime.jsx(
6355
6425
  chunkWALADS2S_cjs.FieldLabelsSelect,
6356
6426
  {
6357
6427
  options: labelOptions,
@@ -6542,14 +6612,14 @@ function useFactSelection(notes, gridApiRef, setFactTags, chat) {
6542
6612
  }
6543
6613
  function renderSourcesCell(params) {
6544
6614
  const fact = params.data;
6545
- const count2 = chunkF72ZD5Q2_cjs.sourceDocCount(fact);
6615
+ const count2 = chunkYD3RN2FY_cjs.sourceDocCount(fact);
6546
6616
  if (!fact || count2 === 0) return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/40", children: "\u2014" });
6547
6617
  return /* @__PURE__ */ jsxRuntime.jsxs(
6548
6618
  "button",
6549
6619
  {
6550
6620
  type: "button",
6551
6621
  onClick: () => params.context?.openEdit?.(fact),
6552
- title: chunkF72ZD5Q2_cjs.DEFAULT_FACT_COLUMN_LABELS.sourcedFrom(count2),
6622
+ title: chunkYD3RN2FY_cjs.DEFAULT_FACT_COLUMN_LABELS.sourcedFrom(count2),
6553
6623
  "data-testid": `facts-grid-sources-${fact.external_id}`,
6554
6624
  className: "inline-flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground",
6555
6625
  children: [
@@ -6606,14 +6676,14 @@ function createFactPageColumns({
6606
6676
  onToggleConfirmed,
6607
6677
  onToggleShared
6608
6678
  }) {
6609
- const columns = chunkF72ZD5Q2_cjs.createFactColumns({
6679
+ const columns = chunkYD3RN2FY_cjs.createFactColumns({
6610
6680
  onToggleInChat,
6611
6681
  isInChat,
6612
6682
  renderHeader: (params, colId) => /* @__PURE__ */ jsxRuntime.jsx(FactHeader, { params, colId }),
6613
6683
  renderRowActions: (fact, params) => {
6614
6684
  const ctx = params.context;
6615
6685
  return /* @__PURE__ */ jsxRuntime.jsx(
6616
- chunkF72ZD5Q2_cjs.FactRowActions,
6686
+ chunkYD3RN2FY_cjs.FactRowActions,
6617
6687
  {
6618
6688
  onEdit: () => ctx?.openEdit?.(fact),
6619
6689
  canEdit: ctx?.canRewrite?.(fact) !== false,
@@ -6743,7 +6813,7 @@ function useFactsGrid({
6743
6813
  );
6744
6814
  const renderFactTags = React9.useCallback(
6745
6815
  (fact, rowHeight) => /* @__PURE__ */ jsxRuntime.jsx(
6746
- chunkF72ZD5Q2_cjs.FactLabelsCell,
6816
+ chunkYD3RN2FY_cjs.FactLabelsCell,
6747
6817
  {
6748
6818
  options: labelOptions,
6749
6819
  selectedIds: fact.tags.map((t) => t.tag_ext_id),
@@ -7392,7 +7462,7 @@ var citedDocIdsCache = /* @__PURE__ */ new WeakMap();
7392
7462
  function citedDocIds(m) {
7393
7463
  const cached = citedDocIdsCache.get(m);
7394
7464
  if (cached) return cached;
7395
- const ids = chunkF72ZD5Q2_cjs.docIdsOf(chunkF72ZD5Q2_cjs.toFactCitations(m.citations));
7465
+ const ids = chunkYD3RN2FY_cjs.docIdsOf(chunkYD3RN2FY_cjs.toFactCitations(m.citations));
7396
7466
  citedDocIdsCache.set(m, ids);
7397
7467
  return ids;
7398
7468
  }
@@ -7493,7 +7563,7 @@ function ConnectedFactsPage({
7493
7563
  const citedDocs = React9.useMemo(() => {
7494
7564
  const wanted = /* @__PURE__ */ new Set([
7495
7565
  ...notes.flatMap((n) => citedDocIds(n)),
7496
- ...chunkF72ZD5Q2_cjs.docIdsOf(chunkF72ZD5Q2_cjs.toFactCitations(composer.draftCitations))
7566
+ ...chunkYD3RN2FY_cjs.docIdsOf(chunkYD3RN2FY_cjs.toFactCitations(composer.draftCitations))
7497
7567
  ]);
7498
7568
  return Object.fromEntries(
7499
7569
  documents.filter((d) => wanted.has(d.external_id)).map((d) => [d.external_id, d])
@@ -7547,7 +7617,7 @@ function ConnectedFactsPage({
7547
7617
  };
7548
7618
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: setFactSection, className: "relative flex h-full flex-col", "data-testid": "facts-page", children: [
7549
7619
  /* @__PURE__ */ jsxRuntime.jsx(
7550
- chunkF72ZD5Q2_cjs.FactsToolbar,
7620
+ chunkYD3RN2FY_cjs.FactsToolbar,
7551
7621
  {
7552
7622
  count: filteredNotes.length,
7553
7623
  hasActiveFilters: filters.hasActiveFilters,
@@ -7576,7 +7646,7 @@ function ConnectedFactsPage({
7576
7646
  onNewFact: composing && !editingId ? () => void 0 : composer.startNewFact,
7577
7647
  navSlotRef: setNavSlot,
7578
7648
  navigator: view === "table" ? /* @__PURE__ */ jsxRuntime.jsx(
7579
- chunkPV5A5SAC_cjs.GridRowNavigator,
7649
+ chunkTPNLYQD2_cjs.GridRowNavigator,
7580
7650
  {
7581
7651
  gridApi,
7582
7652
  selectedId: editingId,
@@ -7587,7 +7657,7 @@ function ConnectedFactsPage({
7587
7657
  ) : null,
7588
7658
  showToolbarRow: view !== "smart_search",
7589
7659
  tools: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7590
- view === "table" && /* @__PURE__ */ jsxRuntime.jsx(chunkF72ZD5Q2_cjs.FactsFieldsButton, { getGridApi: () => gridApiRef.current }),
7660
+ view === "table" && /* @__PURE__ */ jsxRuntime.jsx(chunkYD3RN2FY_cjs.FactsFieldsButton, { getGridApi: () => gridApiRef.current }),
7591
7661
  view === "table" && /* @__PURE__ */ jsxRuntime.jsx(
7592
7662
  chunkWALADS2S_cjs.RowDensityControl,
7593
7663
  {
@@ -7608,7 +7678,7 @@ function ConnectedFactsPage({
7608
7678
  }
7609
7679
  ),
7610
7680
  /* @__PURE__ */ jsxRuntime.jsx(
7611
- chunkF72ZD5Q2_cjs.FactComposer,
7681
+ chunkYD3RN2FY_cjs.FactComposer,
7612
7682
  {
7613
7683
  isOpen: composing,
7614
7684
  isEditing: !!editingId,
@@ -7641,7 +7711,7 @@ function ConnectedFactsPage({
7641
7711
  reserveSourcesSpace: view === "gantt" || view === "calendar",
7642
7712
  citationContainer: factSection,
7643
7713
  renderDocumentPicker: (onSelect, selectedIds, onOpen, sourcesToggle, sourcesOpen) => /* @__PURE__ */ jsxRuntime.jsx(
7644
- chunkF72ZD5Q2_cjs.FactSourcesRow,
7714
+ chunkYD3RN2FY_cjs.FactSourcesRow,
7645
7715
  {
7646
7716
  toggle: sourcesToggle,
7647
7717
  picker: /* @__PURE__ */ jsxRuntime.jsx(
@@ -7687,7 +7757,7 @@ function ConnectedFactsPage({
7687
7757
  }
7688
7758
  ),
7689
7759
  dateInput: /* @__PURE__ */ jsxRuntime.jsx(
7690
- chunkF72ZD5Q2_cjs.FactDateInput,
7760
+ chunkYD3RN2FY_cjs.FactDateInput,
7691
7761
  {
7692
7762
  value: composer.draftDateFields,
7693
7763
  onChange: composer.setDraftDateFields,
@@ -7697,13 +7767,13 @@ function ConnectedFactsPage({
7697
7767
  }
7698
7768
  ),
7699
7769
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "scrollbar-subtle flex-1 overflow-y-auto pb-2", children: [
7700
- isLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkF72ZD5Q2_cjs.FactsLoading, {}) : isError ? /* @__PURE__ */ jsxRuntime.jsx(chunkF72ZD5Q2_cjs.FactsLoadError, { onRetry: () => refetch() }) : smartSearch ? (
7770
+ isLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkYD3RN2FY_cjs.FactsLoading, {}) : isError ? /* @__PURE__ */ jsxRuntime.jsx(chunkYD3RN2FY_cjs.FactsLoadError, { onRetry: () => refetch() }) : smartSearch ? (
7701
7771
  // Searches facts only (never documents). Kept before the empty-state guard so the
7702
7772
  // search UI is reachable even in an empty workspace.
7703
7773
  smartSearch({ selectedFactId: editingId, onOpenFact: openFactById })
7704
7774
  ) : notes.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-full flex-col items-center justify-center", children: [
7705
7775
  /* @__PURE__ */ jsxRuntime.jsx(
7706
- chunkF72ZD5Q2_cjs.FactsEmptyState,
7776
+ chunkYD3RN2FY_cjs.FactsEmptyState,
7707
7777
  {
7708
7778
  onUseExample: (text2) => {
7709
7779
  composer.setDraft(text2);
@@ -7714,7 +7784,7 @@ function ConnectedFactsPage({
7714
7784
  ),
7715
7785
  emptyStateExtra
7716
7786
  ] }) : view === "calendar" ? /* @__PURE__ */ jsxRuntime.jsx(
7717
- chunkF72ZD5Q2_cjs.FactsCalendar,
7787
+ chunkYD3RN2FY_cjs.FactsCalendar,
7718
7788
  {
7719
7789
  facts: filteredNotes,
7720
7790
  onSelect: (n) => openEditIfAllowed(n),
@@ -7723,7 +7793,7 @@ function ConnectedFactsPage({
7723
7793
  navigatorTotal: filteredNotes.length
7724
7794
  }
7725
7795
  ) : view === "gantt" ? /* @__PURE__ */ jsxRuntime.jsx(
7726
- chunkF72ZD5Q2_cjs.FactsGanttPane,
7796
+ chunkYD3RN2FY_cjs.FactsGanttPane,
7727
7797
  {
7728
7798
  items: ganttItems,
7729
7799
  labelWidth: pageView.labelWidth,
@@ -7773,7 +7843,7 @@ function ConnectedFactsPage({
7773
7843
  )
7774
7844
  ] }),
7775
7845
  selectable && notes.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
7776
- chunkF72ZD5Q2_cjs.FactsBulkBar,
7846
+ chunkYD3RN2FY_cjs.FactsBulkBar,
7777
7847
  {
7778
7848
  count: selection.selectedFacts.length,
7779
7849
  onClear: selection.clearSelection,
@@ -10759,13 +10829,13 @@ function ConnectedWorkspaceSettings({
10759
10829
  const [membersExpanded, setMembersExpanded] = React9.useState(false);
10760
10830
  const [shareOpen, setShareOpen] = React9.useState(false);
10761
10831
  if (!workspace) {
10762
- return /* @__PURE__ */ jsxRuntime.jsx(chunkKFQ6E6LE_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkPV5A5SAC_cjs.LoadingIndicator, { message: "Loading workspace..." }) });
10832
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkKFQ6E6LE_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkTPNLYQD2_cjs.LoadingIndicator, { message: "Loading workspace..." }) });
10763
10833
  }
10764
10834
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
10765
10835
  /* @__PURE__ */ jsxRuntime.jsxs(chunkKFQ6E6LE_cjs.WorkspacePageFrame, { testId, children: [
10766
10836
  /* @__PURE__ */ jsxRuntime.jsxs(chunkKFQ6E6LE_cjs.WorkspaceIdentityPanel, { children: [
10767
10837
  /* @__PURE__ */ jsxRuntime.jsx(
10768
- chunkPV5A5SAC_cjs.EntityIdentityBar,
10838
+ chunkTPNLYQD2_cjs.EntityIdentityBar,
10769
10839
  {
10770
10840
  testId: "workspace-identity-bar",
10771
10841
  canEdit: isOwner,
@@ -10782,7 +10852,7 @@ function ConnectedWorkspaceSettings({
10782
10852
  label: "Name",
10783
10853
  value: workspace.name,
10784
10854
  placeholder: "Untitled",
10785
- maxLength: chunkPV5A5SAC_cjs.IDENTITY_NAME_MAX_LENGTH,
10855
+ maxLength: chunkTPNLYQD2_cjs.IDENTITY_NAME_MAX_LENGTH,
10786
10856
  valueClassName: "truncate text-base font-semibold",
10787
10857
  testId: "workspace-home-title",
10788
10858
  hideLabel: true,
@@ -11688,9 +11758,9 @@ function ConnectedWorkspaceEntity({
11688
11758
  );
11689
11759
  const documentCount2 = (workspace.shared_document_count ?? 0) + (workspace.private_document_count ?? 0);
11690
11760
  const conversationCount = (workspace.shared_conversation_count ?? 0) + (workspace.private_conversation_count ?? 0);
11691
- const tooltipContent = /* @__PURE__ */ jsxRuntime.jsxs(chunkPV5A5SAC_cjs.EntityTooltip, { children: [
11761
+ const tooltipContent = /* @__PURE__ */ jsxRuntime.jsxs(chunkTPNLYQD2_cjs.EntityTooltip, { children: [
11692
11762
  /* @__PURE__ */ jsxRuntime.jsx(
11693
- chunkPV5A5SAC_cjs.EntityTooltipHeader,
11763
+ chunkTPNLYQD2_cjs.EntityTooltipHeader,
11694
11764
  {
11695
11765
  lead: /* @__PURE__ */ jsxRuntime.jsx(
11696
11766
  ui.ShieldIcon,
@@ -11707,7 +11777,7 @@ function ConnectedWorkspaceEntity({
11707
11777
  }
11708
11778
  ),
11709
11779
  /* @__PURE__ */ jsxRuntime.jsx(
11710
- chunkPV5A5SAC_cjs.EntityTooltipStats,
11780
+ chunkTPNLYQD2_cjs.EntityTooltipStats,
11711
11781
  {
11712
11782
  stats: [
11713
11783
  {
@@ -11731,11 +11801,11 @@ function ConnectedWorkspaceEntity({
11731
11801
  ]
11732
11802
  }
11733
11803
  ),
11734
- workspace.updated_at && /* @__PURE__ */ jsxRuntime.jsxs(chunkPV5A5SAC_cjs.EntityTooltipHint, { children: [
11804
+ workspace.updated_at && /* @__PURE__ */ jsxRuntime.jsxs(chunkTPNLYQD2_cjs.EntityTooltipHint, { children: [
11735
11805
  "Updated ",
11736
11806
  ui.formatFriendlyDate(workspace.updated_at)
11737
11807
  ] }),
11738
- interactive && variant !== "icon" && /* @__PURE__ */ jsxRuntime.jsxs(chunkPV5A5SAC_cjs.EntityTooltipHint, { icon: /* @__PURE__ */ jsxRuntime.jsx(ui.EntityIcon, { entityType: "WORKSPACE", className: "w-3 h-3" }), children: [
11808
+ interactive && variant !== "icon" && /* @__PURE__ */ jsxRuntime.jsxs(chunkTPNLYQD2_cjs.EntityTooltipHint, { icon: /* @__PURE__ */ jsxRuntime.jsx(ui.EntityIcon, { entityType: "WORKSPACE", className: "w-3 h-3" }), children: [
11739
11809
  "Click to open ",
11740
11810
  ui.getEntityLabel("WORKSPACE").toLowerCase(),
11741
11811
  " settings"
@@ -12679,36 +12749,36 @@ function ConnectedSharePointAdminConsentPage({
12679
12749
  const result = givenResult === void 0 ? queryResult : givenResult;
12680
12750
  const { apiBaseUrl } = chunkB3NYBMDR_cjs.useBlocksEnvironment().runtimeConfig;
12681
12751
  const consentUrl = `${apiBaseUrl}/v1/connectors/microsoft_sharepoint/admin-consent`;
12682
- return /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkGUV63FUC_cjs.ConsentCard, { size: "md", children: [
12752
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkO3MRE2HL_cjs.ConsentCard, { size: "md", children: [
12683
12753
  /* @__PURE__ */ jsxRuntime.jsx(
12684
- chunkGUV63FUC_cjs.ConsentHeader,
12754
+ chunkO3MRE2HL_cjs.ConsentHeader,
12685
12755
  {
12686
12756
  icon: /* @__PURE__ */ jsxRuntime.jsx(chunkWALADS2S_cjs.VendorLogo, { vendorKey: "microsoft_sharepoint", product: "sharepoint" }),
12687
12757
  title: "Approve ARBI for SharePoint access",
12688
12758
  children: "A member of your organization uses ARBI and wants to sync documents from SharePoint. Your Microsoft 365 organization requires an administrator to approve this once for the whole organization."
12689
12759
  }
12690
12760
  ),
12691
- result === "granted" && /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentNotice, { tone: "success", title: "Access approved \u2014 you\u2019re all set.", className: "mt-4", children: "People in your organization can now connect SharePoint from their own ARBI account. Nothing is synced until each user connects and chooses what to import." }),
12692
- result === "declined" && /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentNotice, { tone: "warning", title: "The approval didn\u2019t complete.", className: "mt-4", children: "The request was declined or canceled on the Microsoft screen. You can try again below \u2014 you must sign in with a Microsoft 365 administrator account of your organization." }),
12693
- /* @__PURE__ */ jsxRuntime.jsxs(chunkGUV63FUC_cjs.ConsentSection, { title: "What you are approving", children: [
12761
+ result === "granted" && /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentNotice, { tone: "success", title: "Access approved \u2014 you\u2019re all set.", className: "mt-4", children: "People in your organization can now connect SharePoint from their own ARBI account. Nothing is synced until each user connects and chooses what to import." }),
12762
+ result === "declined" && /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentNotice, { tone: "warning", title: "The approval didn\u2019t complete.", className: "mt-4", children: "The request was declined or canceled on the Microsoft screen. You can try again below \u2014 you must sign in with a Microsoft 365 administrator account of your organization." }),
12763
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkO3MRE2HL_cjs.ConsentSection, { title: "What you are approving", children: [
12694
12764
  /* @__PURE__ */ jsxRuntime.jsx(
12695
- chunkGUV63FUC_cjs.ConsentBulletList,
12765
+ chunkO3MRE2HL_cjs.ConsentBulletList,
12696
12766
  {
12697
12767
  items: [
12698
12768
  /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12699
- /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentStrong, { children: "Read SharePoint sites and files" }),
12769
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentStrong, { children: "Read SharePoint sites and files" }),
12700
12770
  " \u2014 lets each user who connects their own account import documents from sites they already have access to. ARBI never gets more access than the user has."
12701
12771
  ] }),
12702
12772
  /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12703
- /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentStrong, { children: "Sign users in and keep access" }),
12773
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentStrong, { children: "Sign users in and keep access" }),
12704
12774
  " \u2014 standard sign-in (openid, profile, email) and offline access so syncs keep working between sessions."
12705
12775
  ] })
12706
12776
  ]
12707
12777
  }
12708
12778
  ),
12709
- /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentText, { children: "Approving does not sync anything by itself and grants ARBI no standing access to your tenant. Each user still connects their own Microsoft account, and their tokens are end-to-end encrypted so ARBI\u2019s servers cannot read them at rest." }),
12779
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentText, { children: "Approving does not sync anything by itself and grants ARBI no standing access to your tenant. Each user still connects their own Microsoft account, and their tokens are end-to-end encrypted so ARBI\u2019s servers cannot read them at rest." }),
12710
12780
  /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { asChild: true, className: "w-full pointer-coarse:h-11", children: /* @__PURE__ */ jsxRuntime.jsx("a", { href: consentUrl, children: "Review and approve in Microsoft" }) }),
12711
- /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentText, { variant: "footnote", children: "You\u2019ll sign in at login.microsoftonline.com and see Microsoft\u2019s own summary of these permissions before anything is granted." })
12781
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentText, { variant: "footnote", children: "You\u2019ll sign in at login.microsoftonline.com and see Microsoft\u2019s own summary of these permissions before anything is granted." })
12712
12782
  ] })
12713
12783
  ] }) });
12714
12784
  }
@@ -15321,7 +15391,7 @@ function ConnectedWorkspaceList({
15321
15391
  else void openWorkspace(workspace.external_id, { name: workspace.name });
15322
15392
  };
15323
15393
  const createDisabledReason = list.canCreateProjects === false ? react.PROJECT_CREATION_DENIED_REASON : void 0;
15324
- if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkPV5A5SAC_cjs.LoadingIndicator, { message: "Loading workspaces..." });
15394
+ if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkTPNLYQD2_cjs.LoadingIndicator, { message: "Loading workspaces..." });
15325
15395
  if (list.error) {
15326
15396
  return /* @__PURE__ */ jsxRuntime.jsx(
15327
15397
  chunkH6K7EWL2_cjs.HomeLoadError,
@@ -15394,7 +15464,7 @@ function ConnectedWorkspaceList({
15394
15464
  workspaceState
15395
15465
  }
15396
15466
  ) })
15397
- ) : /* @__PURE__ */ jsxRuntime.jsx(React9.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkPV5A5SAC_cjs.LoadingIndicator, { message: "Loading grid..." }), children: /* @__PURE__ */ jsxRuntime.jsx(chunkH6K7EWL2_cjs.HomeCenteredColumn, { children: /* @__PURE__ */ jsxRuntime.jsx(
15467
+ ) : /* @__PURE__ */ jsxRuntime.jsx(React9.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkTPNLYQD2_cjs.LoadingIndicator, { message: "Loading grid..." }), children: /* @__PURE__ */ jsxRuntime.jsx(chunkH6K7EWL2_cjs.HomeCenteredColumn, { children: /* @__PURE__ */ jsxRuntime.jsx(
15398
15468
  WorkspaceTableView,
15399
15469
  {
15400
15470
  list,
@@ -15636,7 +15706,7 @@ function ProjectsListPage({
15636
15706
  }
15637
15707
  ),
15638
15708
  /* @__PURE__ */ jsxRuntime.jsx(
15639
- chunkPV5A5SAC_cjs.Toolbar,
15709
+ chunkTPNLYQD2_cjs.Toolbar,
15640
15710
  {
15641
15711
  search,
15642
15712
  onSearch: setSearch,
@@ -16056,7 +16126,7 @@ var COMPACT_BELOW = 132;
16056
16126
  var NO_DOCUMENTS = [];
16057
16127
  function useFilesWorkspace() {
16058
16128
  const { workspaceId, userId, live } = chunkP6HVJP6Z_cjs.useConnectedWorkspace();
16059
- const { members, role } = chunkQWSAJNQE_cjs.useConnectedWorkspaceRole();
16129
+ const { members, role } = chunkUZVXVTTB_cjs.useConnectedWorkspaceRole();
16060
16130
  const { data: workspaces } = react.useWorkspaces({ enabled: live });
16061
16131
  const workspaceName = workspaces?.find((w) => w.external_id === workspaceId)?.name;
16062
16132
  return {
@@ -16816,7 +16886,7 @@ function ProjectChronology({
16816
16886
  })),
16817
16887
  [facts]
16818
16888
  );
16819
- return /* @__PURE__ */ jsxRuntime.jsx(ui.Card, { className: "h-[min(70dvh,640px)] overflow-hidden", "data-testid": testId, children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "p-4 text-sm text-muted-foreground", children: loading }) : /* @__PURE__ */ jsxRuntime.jsx(chunkF72ZD5Q2_cjs.FactsGanttPane, { items, testId: `${testId}-gantt`, labels: { ganttEmpty: empty } }) });
16889
+ return /* @__PURE__ */ jsxRuntime.jsx(ui.Card, { className: "h-[min(70dvh,640px)] overflow-hidden", "data-testid": testId, children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "p-4 text-sm text-muted-foreground", children: loading }) : /* @__PURE__ */ jsxRuntime.jsx(chunkYD3RN2FY_cjs.FactsGanttPane, { items, testId: `${testId}-gantt`, labels: { ganttEmpty: empty } }) });
16820
16890
  }
16821
16891
  function ProjectThreads({
16822
16892
  projectId,
@@ -17840,7 +17910,7 @@ function recentConversations(conversations) {
17840
17910
  return [...conversations].sort((a, b) => time(b.updated_at) - time(a.updated_at)).slice(0, RECENT_ROWS).map((c) => ({
17841
17911
  id: c.external_id,
17842
17912
  title: c.title?.trim() || "Untitled thread",
17843
- subtitle: c.status ? [chunkGUV63FUC_cjs.STATUS_LABELS[chunkGUV63FUC_cjs.asTaskStatus(c.status)], c.due_at ? `due ${shortDate(c.due_at)}` : null].filter(Boolean).join(" \xB7 ") : `${c.message_count} ${c.message_count === 1 ? "message" : "messages"}`,
17913
+ subtitle: c.status ? [chunkO3MRE2HL_cjs.STATUS_LABELS[chunkO3MRE2HL_cjs.asTaskStatus(c.status)], c.due_at ? `due ${shortDate(c.due_at)}` : null].filter(Boolean).join(" \xB7 ") : `${c.message_count} ${c.message_count === 1 ? "message" : "messages"}`,
17844
17914
  time: timeAndDate(c.updated_at)
17845
17915
  }));
17846
17916
  }
@@ -21598,7 +21668,7 @@ function EventEditorDialog({
21598
21668
  const { notify: notify18, runtimeConfig } = chunkB3NYBMDR_cjs.useBlocksEnvironment();
21599
21669
  const attachmentDocuments = documents.map((document2) => ({
21600
21670
  doc_id: document2.external_id,
21601
- title: chunkQWSAJNQE_cjs.toWorkflowFieldDocument(document2).title,
21671
+ title: chunkUZVXVTTB_cjs.toWorkflowFieldDocument(document2).title,
21602
21672
  url: chunk725OETK3_cjs.buildDeepLinkUrl(
21603
21673
  { workspaceId: workspaceId ?? void 0, documentId: document2.external_id },
21604
21674
  runtimeConfig.deploymentDomain
@@ -24117,9 +24187,9 @@ function ConnectedTagEntity({
24117
24187
  onEditClick();
24118
24188
  }
24119
24189
  };
24120
- const tooltipContent = showTooltip ? /* @__PURE__ */ jsxRuntime.jsxs(chunkPV5A5SAC_cjs.EntityTooltip, { children: [
24190
+ const tooltipContent = showTooltip ? /* @__PURE__ */ jsxRuntime.jsxs(chunkTPNLYQD2_cjs.EntityTooltip, { children: [
24121
24191
  /* @__PURE__ */ jsxRuntime.jsx(
24122
- chunkPV5A5SAC_cjs.EntityTooltipHeader,
24192
+ chunkTPNLYQD2_cjs.EntityTooltipHeader,
24123
24193
  {
24124
24194
  lead: /* @__PURE__ */ jsxRuntime.jsx(
24125
24195
  "span",
@@ -26598,7 +26668,7 @@ function useBatchCompleteToasts() {
26598
26668
  }
26599
26669
  }, AI_FIELDS_NOTICE_WINDOW_MS);
26600
26670
  } else if (message.batch_type === "entity_extract") {
26601
- say(`${chunkPV5A5SAC_cjs.entitiesPhrase()} extracted from ${chunkPV5A5SAC_cjs.documentCount(docIds.length)}`, "success", {
26671
+ say(`${chunkTPNLYQD2_cjs.entitiesPhrase()} extracted from ${chunkTPNLYQD2_cjs.documentCount(docIds.length)}`, "success", {
26602
26672
  ...openTags && { action: { label: "View", onClick: openTags } }
26603
26673
  });
26604
26674
  } else if (message.batch_type === "upload") {
@@ -28344,7 +28414,7 @@ function ConnectedFilesPage({
28344
28414
  const deleteDocuments = react.useDeleteDocuments();
28345
28415
  const isDocumentsPending = isLoading && documents.length === 0;
28346
28416
  const { workspaceId, userId, live } = chunkP6HVJP6Z_cjs.useConnectedWorkspace();
28347
- const { role, members } = chunkQWSAJNQE_cjs.useConnectedWorkspaceRole();
28417
+ const { role, members } = chunkUZVXVTTB_cjs.useConnectedWorkspaceRole();
28348
28418
  const { data: workspaces } = react.useWorkspaces({ enabled: live });
28349
28419
  const workspaceName = workspaces?.find((w) => w.external_id === workspaceId)?.name;
28350
28420
  const isMember = role != null;
@@ -28759,7 +28829,7 @@ function ConnectedFilesPage({
28759
28829
  viewMode === "grid" ? (
28760
28830
  // ‹ n / N › over the table's displayed rows; a step opens the document.
28761
28831
  /* @__PURE__ */ jsxRuntime.jsx(
28762
- chunkPV5A5SAC_cjs.GridRowNavigator,
28832
+ chunkTPNLYQD2_cjs.GridRowNavigator,
28763
28833
  {
28764
28834
  gridApi,
28765
28835
  selectedId: viewingDocumentId ?? selectedDocumentIds[0] ?? null,
@@ -31697,7 +31767,7 @@ function ConnectedConfigForm({ availableModels, ...rest }) {
31697
31767
  ({ value, onChange }) => /* @__PURE__ */ jsxRuntime.jsx(ConnectedModelSelector, { value, onValueChange: onChange, className: "w-full" }),
31698
31768
  []
31699
31769
  );
31700
- return /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConfigForm, { ...rest, renderModelSelect: hasModels ? renderModelSelect : void 0 });
31770
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConfigForm, { ...rest, renderModelSelect: hasModels ? renderModelSelect : void 0 });
31701
31771
  }
31702
31772
  function ConnectedAgentConfigForm({ agentExtId, agentName, onSaved }) {
31703
31773
  const { notify: notify18 } = chunkB3NYBMDR_cjs.useBlocksEnvironment();
@@ -31814,7 +31884,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
31814
31884
  }, [name, selectedWorkspaces, role, createAgent, addWorkspaceUsers, arbi, notify18]);
31815
31885
  if (editAgent) {
31816
31886
  return /* @__PURE__ */ jsxRuntime.jsx(
31817
- chunkGUV63FUC_cjs.AgentEditView,
31887
+ chunkO3MRE2HL_cjs.AgentEditView,
31818
31888
  {
31819
31889
  agentName: editAgent.name,
31820
31890
  config: /* @__PURE__ */ jsxRuntime.jsx(
@@ -31830,7 +31900,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
31830
31900
  }
31831
31901
  if (view === "main") {
31832
31902
  return /* @__PURE__ */ jsxRuntime.jsx(
31833
- chunkGUV63FUC_cjs.AgentMainView,
31903
+ chunkO3MRE2HL_cjs.AgentMainView,
31834
31904
  {
31835
31905
  onConnectExternal: () => setView("connect"),
31836
31906
  config: mainAgent ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -31846,11 +31916,11 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
31846
31916
  }
31847
31917
  if (result) {
31848
31918
  return /* @__PURE__ */ jsxRuntime.jsx(
31849
- chunkGUV63FUC_cjs.AgentCreatedView,
31919
+ chunkO3MRE2HL_cjs.AgentCreatedView,
31850
31920
  {
31851
31921
  email: result.email,
31852
31922
  signingKey: result.signingKey,
31853
- instructions: /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.AgentConnectInstructions, { email: result.email, signingKey: result.signingKey }),
31923
+ instructions: /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.AgentConnectInstructions, { email: result.email, signingKey: result.signingKey }),
31854
31924
  config: /* @__PURE__ */ jsxRuntime.jsx(ConnectedAgentConfigForm, { agentExtId: result.extId, agentName: result.name }),
31855
31925
  isConfigOpen: configOpen,
31856
31926
  onToggleConfig: () => setConfigOpen((v) => !v),
@@ -31859,7 +31929,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
31859
31929
  );
31860
31930
  }
31861
31931
  return /* @__PURE__ */ jsxRuntime.jsx(
31862
- chunkGUV63FUC_cjs.AgentCreateView,
31932
+ chunkO3MRE2HL_cjs.AgentCreateView,
31863
31933
  {
31864
31934
  name,
31865
31935
  onNameChange: setName,
@@ -33543,14 +33613,14 @@ var referencesOf = (inputs) => {
33543
33613
  return value?.documents ?? [];
33544
33614
  };
33545
33615
  var PROMPT_BINDINGS = {
33546
- [chunkGUV63FUC_cjs.GENERATE_IMAGE_ID]: {
33616
+ [chunkO3MRE2HL_cjs.GENERATE_IMAGE_ID]: {
33547
33617
  attachScope: false,
33548
33618
  tools: (inputs) => {
33549
33619
  const aspectRatio = typeof inputs.aspect_ratio === "string" ? inputs.aspect_ratio : "";
33550
33620
  return {
33551
33621
  retrieval_chunk: browser.buildRetrievalChunkTool([]),
33552
33622
  retrieval_full_context: browser.buildRetrievalFullContextTool(referencesOf(inputs)),
33553
- ...aspectRatio && aspectRatio !== chunkGUV63FUC_cjs.IMAGE_ASPECT_AUTO ? {
33623
+ ...aspectRatio && aspectRatio !== chunkO3MRE2HL_cjs.IMAGE_ASPECT_AUTO ? {
33554
33624
  image_generation: {
33555
33625
  name: "image_generation",
33556
33626
  description: "image generation",
@@ -33586,7 +33656,7 @@ function useWorkflowTasks() {
33586
33656
  );
33587
33657
  const create4 = React9.useCallback(
33588
33658
  async (ctx, forceWorkflow = false) => {
33589
- const request = chunkGUV63FUC_cjs.taskComposerToCreateRequest(
33659
+ const request = chunkO3MRE2HL_cjs.taskComposerToCreateRequest(
33590
33660
  { ...ctx, documentTitles, plan: ctx.plan ?? null },
33591
33661
  activeWorkspaceId ?? void 0,
33592
33662
  forceWorkflow
@@ -33628,7 +33698,7 @@ function useWorkflowTasks() {
33628
33698
  );
33629
33699
  const update = React9.useCallback(
33630
33700
  async (task, ctx) => {
33631
- const patch = chunkGUV63FUC_cjs.taskComposerToUpdateRequest({ ...ctx, plan: ctx.plan ?? null });
33701
+ const patch = chunkO3MRE2HL_cjs.taskComposerToUpdateRequest({ ...ctx, plan: ctx.plan ?? null });
33632
33702
  if (task.is_owner === false) delete patch.shared;
33633
33703
  await updateConversation.mutateAsync({ conversationId: task.external_id, patch });
33634
33704
  },
@@ -33636,7 +33706,7 @@ function useWorkflowTasks() {
33636
33706
  );
33637
33707
  const updateWorkflow = React9.useCallback(
33638
33708
  async (workflow, ctx) => {
33639
- const patch = chunkGUV63FUC_cjs.composerToWorkflowUpdate({ ...ctx, documentTitles, plan: ctx.plan ?? null });
33709
+ const patch = chunkO3MRE2HL_cjs.composerToWorkflowUpdate({ ...ctx, documentTitles, plan: ctx.plan ?? null });
33640
33710
  if (workflow.is_owner === false) delete patch.shared;
33641
33711
  const workspaceId = workflow.workspace_ext_id ?? activeWorkspaceId;
33642
33712
  const updated = await updateWorkflowMutation.mutateAsync({
@@ -33666,7 +33736,7 @@ var text = (inputs, name) => {
33666
33736
  function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
33667
33737
  const { data: documents = [] } = react.useDocuments();
33668
33738
  const { data: workspaceTags = [] } = react.useTags();
33669
- const tags = React9.useMemo(() => chunkT5BCPKU3_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
33739
+ const tags = React9.useMemo(() => chunk2QDNQM63_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
33670
33740
  const createTag = react.useCreateTag();
33671
33741
  const updateTag = react.useUpdateTag();
33672
33742
  const generate = react.useGenerateDocTags();
@@ -33677,8 +33747,8 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
33677
33747
  const annotate = React9.useCallback(
33678
33748
  async ({ inputs, scope }) => {
33679
33749
  const description = text(inputs, "description");
33680
- const name = text(inputs, "name") || chunkGUV63FUC_cjs.deriveAnnotationName(description);
33681
- const matching = chunkT5BCPKU3_cjs.matchWorkflowScope(documents, scope);
33750
+ const name = text(inputs, "name") || chunkO3MRE2HL_cjs.deriveAnnotationName(description);
33751
+ const matching = chunk2QDNQM63_cjs.matchWorkflowScope(documents, scope);
33682
33752
  if (!name || !description || matching.length === 0) return;
33683
33753
  try {
33684
33754
  const existing = tags.find((t) => t.name.toLowerCase() === name.toLowerCase());
@@ -33721,9 +33791,9 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
33721
33791
  async (launch) => {
33722
33792
  const { workflow, inputs, scope, agentId } = launch;
33723
33793
  if (workflow.run.kind === "operation") {
33724
- if (workflow.id === chunkGUV63FUC_cjs.ANNOTATE_ID) {
33794
+ if (workflow.id === chunkO3MRE2HL_cjs.ANNOTATE_ID) {
33725
33795
  await annotate(launch);
33726
- chunkGUV63FUC_cjs.recordWorkflowUse(workflow.id);
33796
+ chunkO3MRE2HL_cjs.recordWorkflowUse(workflow.id);
33727
33797
  return;
33728
33798
  }
33729
33799
  throw new Error(`No host handler for workflow "${workflow.id}"`);
@@ -33733,7 +33803,7 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
33733
33803
  );
33734
33804
  const prompt = chunk76L6LOP3_cjs.composeWorkflowPrompt(workflow, inputs, { documentTitles });
33735
33805
  if (!prompt) return;
33736
- chunkGUV63FUC_cjs.recordWorkflowUse(workflow.id);
33806
+ chunkO3MRE2HL_cjs.recordWorkflowUse(workflow.id);
33737
33807
  if (agentId) {
33738
33808
  try {
33739
33809
  const created = await createTask({
@@ -33778,7 +33848,7 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
33778
33848
  const binding = PROMPT_BINDINGS[workflow.id];
33779
33849
  if (!inPlace) openNewConversation();
33780
33850
  if (binding?.attachScope !== false && !chunk76L6LOP3_cjs.isEmptyWorkflowScope(scope)) {
33781
- const ids = chunkT5BCPKU3_cjs.matchWorkflowScope(documents, scope).map((d) => d.external_id);
33851
+ const ids = chunk2QDNQM63_cjs.matchWorkflowScope(documents, scope).map((d) => d.external_id);
33782
33852
  if (ids.length > 0) {
33783
33853
  session.setConversationDocuments(
33784
33854
  inPlace ? session.getState().conversationId ?? "new" : "new",
@@ -33813,30 +33883,30 @@ function ConnectedWorkflowStart({
33813
33883
  const onLaunch = useLaunchWorkflow({ landing });
33814
33884
  const { openUpload } = chunkB3NYBMDR_cjs.useBlocksEnvironment();
33815
33885
  const { data: workspaceTags = [] } = react.useTags();
33816
- const tags = React9.useMemo(() => chunkT5BCPKU3_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
33886
+ const tags = React9.useMemo(() => chunk2QDNQM63_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
33817
33887
  const fieldPlaceholder = React9.useCallback(
33818
33888
  (field, inputs, workflow) => {
33819
- if (workflow.id !== chunkGUV63FUC_cjs.ANNOTATE_ID || field.name !== "name") return void 0;
33820
- const derived = chunkGUV63FUC_cjs.deriveAnnotationName(String(inputs.description ?? ""));
33889
+ if (workflow.id !== chunkO3MRE2HL_cjs.ANNOTATE_ID || field.name !== "name") return void 0;
33890
+ const derived = chunkO3MRE2HL_cjs.deriveAnnotationName(String(inputs.description ?? ""));
33821
33891
  return derived ? `Otherwise \u201C${derived}\u201D` : "Taken from the description";
33822
33892
  },
33823
33893
  []
33824
33894
  );
33825
33895
  return /* @__PURE__ */ jsxRuntime.jsx(
33826
- chunkQWSAJNQE_cjs.ConnectedWorkflowLauncher,
33896
+ chunkUZVXVTTB_cjs.ConnectedWorkflowLauncher,
33827
33897
  {
33828
33898
  ...rest,
33829
33899
  workflows,
33830
33900
  onLaunch,
33831
- renderIcon: chunkGUV63FUC_cjs.renderWorkflowIcon,
33901
+ renderIcon: chunkO3MRE2HL_cjs.renderWorkflowIcon,
33832
33902
  onAddFiles: openUpload,
33833
33903
  agentLabels: AGENT_LABELS,
33834
33904
  addFilesAction,
33835
33905
  fieldPlaceholder,
33836
- submitLabel: ({ workflow, matchedCount }) => workflow.id === chunkGUV63FUC_cjs.ANNOTATE_ID && matchedCount !== null ? `Annotate ${matchedCount} document${matchedCount !== 1 ? "s" : ""}` : void 0,
33906
+ submitLabel: ({ workflow, matchedCount }) => workflow.id === chunkO3MRE2HL_cjs.ANNOTATE_ID && matchedCount !== null ? `Annotate ${matchedCount} document${matchedCount !== 1 ? "s" : ""}` : void 0,
33837
33907
  renderNotice: ({ workflow, inputs }) => {
33838
- if (workflow.id !== chunkGUV63FUC_cjs.ANNOTATE_ID) return null;
33839
- const name = String(inputs.name ?? "").trim() || chunkGUV63FUC_cjs.deriveAnnotationName(String(inputs.description ?? ""));
33908
+ if (workflow.id !== chunkO3MRE2HL_cjs.ANNOTATE_ID) return null;
33909
+ const name = String(inputs.name ?? "").trim() || chunkO3MRE2HL_cjs.deriveAnnotationName(String(inputs.description ?? ""));
33840
33910
  const existing = name ? tags.find((t) => t.name.toLowerCase() === name.toLowerCase()) : void 0;
33841
33911
  if (!existing) return null;
33842
33912
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -33867,25 +33937,25 @@ function useSkillsEnabled() {
33867
33937
  // src/connection/workflows/useWorkflowDefinitions.ts
33868
33938
  function useWorkflowDefinitions() {
33869
33939
  const { data: listings } = react.useSkills();
33870
- const usage = chunkGUV63FUC_cjs.useWorkflowUsage();
33940
+ const usage = chunkO3MRE2HL_cjs.useWorkflowUsage();
33871
33941
  const skillsEnabled = useSkillsEnabled();
33872
33942
  return React9.useMemo(() => {
33873
33943
  const { host: builtins, skills: fromServer } = chunk76L6LOP3_cjs.mergeSkillWorkflows(
33874
- chunkGUV63FUC_cjs.WEB_WORKFLOWS,
33944
+ chunkO3MRE2HL_cjs.WEB_WORKFLOWS,
33875
33945
  listings ?? []
33876
33946
  );
33877
33947
  const all = [...builtins, ...fromServer];
33878
33948
  const byId = new Map(all.map((w) => [w.id, w]));
33879
- const pinned = chunkGUV63FUC_cjs.DASHBOARD_PINNED.flatMap((id) => {
33949
+ const pinned = chunkO3MRE2HL_cjs.DASHBOARD_PINNED.flatMap((id) => {
33880
33950
  const w = byId.get(id);
33881
33951
  return w ? [w] : [];
33882
33952
  });
33883
33953
  return {
33884
33954
  skills: all,
33885
33955
  skillsEnabled,
33886
- start: skillsEnabled ? [...builtins, ...chunkGUV63FUC_cjs.sortByRecentUse(fromServer, usage)] : [],
33887
- dashboard: [...pinned, ...chunkGUV63FUC_cjs.DASHBOARD_OPERATIONS],
33888
- forTasks: [chunkGUV63FUC_cjs.CUSTOM_TASK, ...all.filter((w) => w.schedulable), chunkGUV63FUC_cjs.REMIND_TASK]
33956
+ start: skillsEnabled ? [...builtins, ...chunkO3MRE2HL_cjs.sortByRecentUse(fromServer, usage)] : [],
33957
+ dashboard: [...pinned, ...chunkO3MRE2HL_cjs.DASHBOARD_OPERATIONS],
33958
+ forTasks: [chunkO3MRE2HL_cjs.CUSTOM_TASK, ...all.filter((w) => w.schedulable), chunkO3MRE2HL_cjs.REMIND_TASK]
33889
33959
  };
33890
33960
  }, [listings, usage, skillsEnabled]);
33891
33961
  }
@@ -33907,7 +33977,7 @@ function resolveLaunchInputs(workflow, request) {
33907
33977
  function useWorkflowLaunch() {
33908
33978
  const { skills } = useWorkflowDefinitions();
33909
33979
  const launch = React9.useCallback(
33910
- (workflowId, options2 = {}) => chunkGUV63FUC_cjs.openWorkflowLaunch({ workflowId, ...options2 }),
33980
+ (workflowId, options2 = {}) => chunkO3MRE2HL_cjs.openWorkflowLaunch({ workflowId, ...options2 }),
33911
33981
  []
33912
33982
  );
33913
33983
  const itemsFor = React9.useCallback(
@@ -33936,8 +34006,8 @@ function useWorkflowLaunch() {
33936
34006
  return { launch, itemsFor, scopeItemsFor };
33937
34007
  }
33938
34008
  function Inner() {
33939
- const request = chunkGUV63FUC_cjs.useWorkflowLaunchRequest();
33940
- const close = chunkGUV63FUC_cjs.closeWorkflowLaunch;
34009
+ const request = chunkO3MRE2HL_cjs.useWorkflowLaunchRequest();
34010
+ const close = chunkO3MRE2HL_cjs.closeWorkflowLaunch;
33941
34011
  const { skills } = useWorkflowDefinitions();
33942
34012
  const run = useLaunchWorkflow({ landing: request?.landing });
33943
34013
  const workflow = skills.find((w) => w.id === request?.workflowId);
@@ -33975,7 +34045,7 @@ function Inner() {
33975
34045
  );
33976
34046
  }
33977
34047
  function WorkflowLaunchHost() {
33978
- return chunkGUV63FUC_cjs.useWorkflowLaunchRequest() ? /* @__PURE__ */ jsxRuntime.jsx(Inner, {}) : null;
34048
+ return chunkO3MRE2HL_cjs.useWorkflowLaunchRequest() ? /* @__PURE__ */ jsxRuntime.jsx(Inner, {}) : null;
33979
34049
  }
33980
34050
  function isNeedsConfirmationDetail(detail) {
33981
34051
  return typeof detail === "object" && detail !== null && detail.needs_confirmation === "resource_private";
@@ -34504,7 +34574,7 @@ var ConversationEntity = React9.memo(function ConversationEntity2({
34504
34574
  );
34505
34575
  const icon2 = /* @__PURE__ */ jsxRuntime.jsx(ui.ThreadVisibilityIcon, { shared: isShared, className: `${iconSizeClass} shrink-0` });
34506
34576
  return /* @__PURE__ */ jsxRuntime.jsx(
34507
- chunkGUV63FUC_cjs.EntityChip,
34577
+ chunkO3MRE2HL_cjs.EntityChip,
34508
34578
  {
34509
34579
  variant,
34510
34580
  icon: icon2,
@@ -34526,7 +34596,7 @@ function WorkflowRunStatusCell({ conversation }) {
34526
34596
  });
34527
34597
  const { data: members = [] } = react.useWorkspaceUsers();
34528
34598
  const me = react.useArbiSession().user?.external_id;
34529
- const steps = chunkGUV63FUC_cjs.fromPlanSteps(conversation.plan?.steps ?? []);
34599
+ const steps = chunkO3MRE2HL_cjs.fromPlanSteps(conversation.plan?.steps ?? []);
34530
34600
  const states = chunkEZLZ3MDU_cjs.stepStatesFromActivity(activity.data ?? []);
34531
34601
  const nameOf = (id) => {
34532
34602
  if (id === me) return "you";
@@ -34534,7 +34604,7 @@ function WorkflowRunStatusCell({ conversation }) {
34534
34604
  return person ? ui.getUserDisplayName(person) : void 0;
34535
34605
  };
34536
34606
  return /* @__PURE__ */ jsxRuntime.jsx(
34537
- chunkGUV63FUC_cjs.WorkflowRunStatus,
34607
+ chunkO3MRE2HL_cjs.WorkflowRunStatus,
34538
34608
  {
34539
34609
  steps,
34540
34610
  states,
@@ -34568,7 +34638,7 @@ function ConversationStatusCell({ conversation }) {
34568
34638
  if (conversation.plan?.steps?.length && !isLiveGenerating)
34569
34639
  return /* @__PURE__ */ jsxRuntime.jsx(WorkflowRunStatusCell, { conversation });
34570
34640
  return /* @__PURE__ */ jsxRuntime.jsx(
34571
- chunkGUV63FUC_cjs.ThreadStatusLine,
34641
+ chunkO3MRE2HL_cjs.ThreadStatusLine,
34572
34642
  {
34573
34643
  state: threadStateOf(conversation, isLiveGenerating),
34574
34644
  className: "h-full",
@@ -34900,16 +34970,16 @@ function useConnectedThreadActivity(conversationId) {
34900
34970
  const openWorkflow = chunkB3NYBMDR_cjs.useOpenWorkflow();
34901
34971
  const workspaceExtId = react.useArbiSessionState((s) => s.workspaceId);
34902
34972
  const task = conversations.find((c) => c.external_id === conversationId);
34903
- const latestMessageAt = chunkGUV63FUC_cjs.latestMessageTime(messageHistory);
34973
+ const latestMessageAt = chunkO3MRE2HL_cjs.latestMessageTime(messageHistory);
34904
34974
  const events = (activity.data ?? []).filter(
34905
- (event) => !chunkGUV63FUC_cjs.isSupersededStop(event, latestMessageAt)
34975
+ (event) => !chunkO3MRE2HL_cjs.isSupersededStop(event, latestMessageAt)
34906
34976
  );
34907
34977
  const personName = (extId) => {
34908
34978
  const person = members.find((m) => m.user.external_id === extId)?.user;
34909
34979
  return person ? ui.getUserDisplayName(person) : "someone";
34910
34980
  };
34911
- const planSteps = chunkGUV63FUC_cjs.fromPlanSteps(task?.plan?.steps ?? []);
34912
- const entries = chunkGUV63FUC_cjs.compactThreadActivity(events, (id) => planSteps.find((s) => s.id === id)?.title);
34981
+ const planSteps = chunkO3MRE2HL_cjs.fromPlanSteps(task?.plan?.steps ?? []);
34982
+ const entries = chunkO3MRE2HL_cjs.compactThreadActivity(events, (id) => planSteps.find((s) => s.id === id)?.title);
34913
34983
  const items = entries.map(({ event, label, recipients }) => {
34914
34984
  const messageActivity = [
34915
34985
  "created",
@@ -34935,7 +35005,7 @@ function useConnectedThreadActivity(conversationId) {
34935
35005
  const messageId = sourceMessage ?? [...messageHistory].reverse().find((message) => Date.parse(message.created_at ?? "") <= Date.parse(event.created_at))?.external_id ?? messageHistory[0]?.external_id;
34936
35006
  const doc = docId ? docs.find((d) => d.external_id === docId) : void 0;
34937
35007
  const mailDraftId = event.kind === "notified" && event.detail?.event === "mail_draft_ready" && typeof event.detail?.mail_id === "string" ? event.detail.mail_id : void 0;
34938
- const missed = event.kind === "notified" && recipients.length ? chunkGUV63FUC_cjs.unnotifiedMentions(
35008
+ const missed = event.kind === "notified" && recipients.length ? chunkO3MRE2HL_cjs.unnotifiedMentions(
34939
35009
  messageHistory.find((message) => message.external_id === sourceMessage)?.mentions,
34940
35010
  recipients,
34941
35011
  event.actor_ext_id
@@ -34968,7 +35038,7 @@ function useConnectedThreadActivity(conversationId) {
34968
35038
  ) : void 0,
34969
35039
  docId,
34970
35040
  docTitle: doc ? ui.getDocumentTitle(doc) : void 0,
34971
- label: mailDraftId ? "Left a draft email" : event.kind === "notified" && recipients.length ? chunkGUV63FUC_cjs.notifiedLabel(recipients.map(personName), missed.map(personName)) : label,
35041
+ label: mailDraftId ? "Left a draft email" : event.kind === "notified" && recipients.length ? chunkO3MRE2HL_cjs.notifiedLabel(recipients.map(personName), missed.map(personName)) : label,
34972
35042
  description: [
34973
35043
  name,
34974
35044
  label,
@@ -34982,7 +35052,7 @@ function useConnectedThreadActivity(conversationId) {
34982
35052
  stepChip: eventStep ? stepChipOf(eventStep, event.kind, stepDocument) : void 0,
34983
35053
  // No avatar tooltip: the entry is already a button (or titled row) that carries the same
34984
35054
  // details, and a tooltip trigger inside it would be a nested <button>.
34985
- avatar: assistant ? /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.AssistantEntity, { variant: "icon", size: 20, showTooltip: false }) : member ? /* @__PURE__ */ jsxRuntime.jsx(DocumentUser, { user: member, tooltip: false }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Clock, { className: "size-4 text-muted-foreground" }),
35055
+ avatar: assistant ? /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.AssistantEntity, { variant: "icon", size: 20, showTooltip: false }) : member ? /* @__PURE__ */ jsxRuntime.jsx(DocumentUser, { user: member, tooltip: false }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Clock, { className: "size-4 text-muted-foreground" }),
34986
35056
  time: ui.formatRelativeTime(event.created_at, { style: "short" }),
34987
35057
  exactTime: ui.formatFriendlyDate(event.created_at),
34988
35058
  onOpenDocument: docId && doc ? () => openDocument(docId) : void 0,
@@ -35031,7 +35101,7 @@ function useConnectedThreadActivity(conversationId) {
35031
35101
  onSelect: () => navigateToConversation(source)
35032
35102
  });
35033
35103
  }
35034
- const links = chunkGUV63FUC_cjs.linkedRunsFromActivity(activity.data);
35104
+ const links = chunkO3MRE2HL_cjs.linkedRunsFromActivity(activity.data);
35035
35105
  const threadName = (id, workflowId) => conversations.find((c) => c.external_id === id)?.title || workflows.find((w) => w.external_id === workflowId)?.name || "Linked thread";
35036
35106
  const signals = links.raised.map((raised) => ({
35037
35107
  step: raised.step,
@@ -35046,7 +35116,7 @@ function useConnectedThreadActivity(conversationId) {
35046
35116
  if (links.startedBy) {
35047
35117
  const { conversationId: parentId, step, signal } = links.startedBy;
35048
35118
  const parent = conversations.find((c) => c.external_id === parentId);
35049
- const parentSteps = chunkGUV63FUC_cjs.fromPlanSteps(parent?.plan?.steps ?? []);
35119
+ const parentSteps = chunkO3MRE2HL_cjs.fromPlanSteps(parent?.plan?.steps ?? []);
35050
35120
  startedBy = {
35051
35121
  stepTitle: parentSteps.find((s) => s.id === step)?.title ?? step ?? "a step",
35052
35122
  threadTitle: parent?.title || "another thread",
@@ -35079,7 +35149,7 @@ function ConnectedThreadTaskBar({
35079
35149
  const person = members.find((m) => m.user.external_id === id)?.user;
35080
35150
  return person ? ui.getUserDisplayName(person) : void 0;
35081
35151
  };
35082
- const steps = chunkGUV63FUC_cjs.fromPlanSteps(task?.plan?.steps ?? []);
35152
+ const steps = chunkO3MRE2HL_cjs.fromPlanSteps(task?.plan?.steps ?? []);
35083
35153
  const states = chunkEZLZ3MDU_cjs.stepStatesFromActivity(activity.data ?? []);
35084
35154
  const runInputs = task?.skill_inputs ?? {};
35085
35155
  const stepCall = (body) => actOnStep.mutateAsync({ conversationId, body });
@@ -35105,7 +35175,7 @@ function ConnectedThreadTaskBar({
35105
35175
  task?.plan?.steps?.length ? (
35106
35176
  // A workflow run: its named steps, with what happened in the thread under each.
35107
35177
  /* @__PURE__ */ jsxRuntime.jsx(
35108
- chunkGUV63FUC_cjs.WorkflowThreadStrip,
35178
+ chunkO3MRE2HL_cjs.WorkflowThreadStrip,
35109
35179
  {
35110
35180
  steps,
35111
35181
  states,
@@ -35132,7 +35202,7 @@ function ConnectedThreadTaskBar({
35132
35202
  renderStepAction: (step, phase) => (
35133
35203
  // A signer or a draft's person acts on their step even on a thread they cannot edit.
35134
35204
  canEdit || phase === "waiting" || phase === "done" ? /* @__PURE__ */ jsxRuntime.jsx(
35135
- chunkGUV63FUC_cjs.WorkflowStepAction,
35205
+ chunkO3MRE2HL_cjs.WorkflowStepAction,
35136
35206
  {
35137
35207
  step,
35138
35208
  phase,
@@ -35153,8 +35223,8 @@ function ConnectedThreadTaskBar({
35153
35223
  }
35154
35224
  )
35155
35225
  ) : items.length || startedBy ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
35156
- startedBy && /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.WorkflowThreadStartedBy, { origin: startedBy }),
35157
- /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.TaskFlow, { items: items.filter((item) => !item.step) })
35226
+ startedBy && /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.WorkflowThreadStartedBy, { origin: startedBy }),
35227
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.TaskFlow, { items: items.filter((item) => !item.step) })
35158
35228
  ] }) : (
35159
35229
  // Ordinary chats record no activity events, so an empty ribbon says nothing rather than
35160
35230
  // "No recorded activity yet" while the answer and its steps are right there in the thread.
@@ -35188,7 +35258,7 @@ function ConnectedThreadTaskBar({
35188
35258
  ) }),
35189
35259
  /* @__PURE__ */ jsxRuntime.jsxs(ui.DropdownMenuContent, { align: "end", children: [
35190
35260
  /* @__PURE__ */ jsxRuntime.jsx(
35191
- chunkPV5A5SAC_cjs.ThreadFollowMenuItem,
35261
+ chunkTPNLYQD2_cjs.ThreadFollowMenuItem,
35192
35262
  {
35193
35263
  following: follow.following,
35194
35264
  onFollowingChange: (on) => (
@@ -35353,7 +35423,7 @@ function ConnectedTaskComposer({
35353
35423
  const { tasks: allTasks } = react.useWorkItems();
35354
35424
  const { data: documents = [] } = react.useDocuments();
35355
35425
  const { create: create4, update, updateWorkflow, isPending } = useWorkflowTasks();
35356
- const scopeSource = chunkQWSAJNQE_cjs.useConnectedWorkflowScopeSource();
35426
+ const scopeSource = chunkUZVXVTTB_cjs.useConnectedWorkflowScopeSource();
35357
35427
  const activeWorkspaceId = react.useArbiSessionState((s) => s.workspaceId);
35358
35428
  const activeWorkspace = React9.useMemo(
35359
35429
  () => workspaces.find((w) => w.external_id === activeWorkspaceId) ?? null,
@@ -35370,7 +35440,7 @@ function ConnectedTaskComposer({
35370
35440
  const label = (t) => t.title?.trim() || "Untitled task";
35371
35441
  if (isWorkflow) return allTasks.map((t) => ({ id: t.external_id, name: label(t) }));
35372
35442
  const subject = task ?? { external_id: "__new__" };
35373
- return chunkGUV63FUC_cjs.moveTargets(
35443
+ return chunkO3MRE2HL_cjs.moveTargets(
35374
35444
  [...allTasks.filter((t) => t.external_id !== subject.external_id), subject],
35375
35445
  subject
35376
35446
  ).map((t) => ({ id: t.external_id, name: label(t) }));
@@ -35385,33 +35455,33 @@ function ConnectedTaskComposer({
35385
35455
  );
35386
35456
  const initialValues = React9.useMemo(() => {
35387
35457
  const ids = {
35388
- customWorkflowId: chunkGUV63FUC_cjs.CUSTOM_TASK_ID,
35389
- reminderWorkflowId: chunkGUV63FUC_cjs.REMIND_TASK_ID,
35458
+ customWorkflowId: chunkO3MRE2HL_cjs.CUSTOM_TASK_ID,
35459
+ reminderWorkflowId: chunkO3MRE2HL_cjs.REMIND_TASK_ID,
35390
35460
  definitions: forTasks
35391
35461
  };
35392
35462
  const base = launchWorkflow ? {
35393
- ...chunkGUV63FUC_cjs.workflowToComposerValues(launchWorkflow, ids),
35463
+ ...chunkO3MRE2HL_cjs.workflowToComposerValues(launchWorkflow, ids),
35394
35464
  when: "once",
35395
35465
  runAt: "",
35396
35466
  rrule: "",
35397
35467
  eventKind: "",
35398
35468
  afterTaskId: "",
35399
35469
  name: ""
35400
- } : editingWorkflow ? chunkGUV63FUC_cjs.workflowToComposerValues(editingWorkflow, ids) : task ? chunkGUV63FUC_cjs.taskToComposerValues(task, ids) : isWorkflow ? {
35470
+ } : editingWorkflow ? chunkO3MRE2HL_cjs.workflowToComposerValues(editingWorkflow, ids) : task ? chunkO3MRE2HL_cjs.taskToComposerValues(task, ids) : isWorkflow ? {
35401
35471
  // Run now is the default start; scheduling is the fallback in the same field.
35402
35472
  assignee: "agent",
35403
- workflowId: initialWorkflowId ?? chunkGUV63FUC_cjs.CUSTOM_TASK_ID,
35473
+ workflowId: initialWorkflowId ?? chunkO3MRE2HL_cjs.CUSTOM_TASK_ID,
35404
35474
  when: startLater ? "once" : "now",
35405
35475
  ...initialPrompt ? {
35406
35476
  inputs: {
35407
- [initialWorkflowId === chunkGUV63FUC_cjs.REMIND_TASK_ID ? "message" : "instruction"]: initialPrompt
35477
+ [initialWorkflowId === chunkO3MRE2HL_cjs.REMIND_TASK_ID ? "message" : "instruction"]: initialPrompt
35408
35478
  }
35409
35479
  } : {},
35410
35480
  // A scheduled run needs an agent: the owner's Assistant unless another is picked.
35411
35481
  ...startLater && defaultAgentId ? { agentId: defaultAgentId } : {}
35412
35482
  } : initialAgentExtId ? (
35413
35483
  // Assigning an agent means agentic work: the free instruction, and tell me when done.
35414
- { agentId: initialAgentExtId, workflowId: chunkGUV63FUC_cjs.CUSTOM_TASK_ID, notifyOnComplete: true }
35484
+ { agentId: initialAgentExtId, workflowId: chunkO3MRE2HL_cjs.CUSTOM_TASK_ID, notifyOnComplete: true }
35415
35485
  ) : {};
35416
35486
  return {
35417
35487
  timezone: chunkQUMUAJ2P_cjs.detectTimeZone(),
@@ -35472,7 +35542,7 @@ function ConnectedTaskComposer({
35472
35542
  const ctx = {
35473
35543
  workflow: chosen,
35474
35544
  values: submitted,
35475
- plan: chosen.id === chunkGUV63FUC_cjs.CUSTOM_TASK_ID ? plan : null
35545
+ plan: chosen.id === chunkO3MRE2HL_cjs.CUSTOM_TASK_ID ? plan : null
35476
35546
  };
35477
35547
  try {
35478
35548
  if (isWorkflow && editingWorkflow && !options2?.runOnce) {
@@ -35508,7 +35578,7 @@ function ConnectedTaskComposer({
35508
35578
  }
35509
35579
  };
35510
35580
  return /* @__PURE__ */ jsxRuntime.jsx(
35511
- chunkGUV63FUC_cjs.TaskComposer,
35581
+ chunkO3MRE2HL_cjs.TaskComposer,
35512
35582
  {
35513
35583
  open,
35514
35584
  onOpenChange,
@@ -35522,15 +35592,15 @@ function ConnectedTaskComposer({
35522
35592
  tasks: taskOptions,
35523
35593
  initialValues,
35524
35594
  timezones,
35525
- eventOptions: chunkGUV63FUC_cjs.AUTOMATION_EVENTS,
35595
+ eventOptions: chunkO3MRE2HL_cjs.AUTOMATION_EVENTS,
35526
35596
  eventWorkflowOptions: workspaceAutomations.filter((item) => item.external_id !== editingWorkflow?.external_id).map((item) => ({ id: item.external_id, label: item.name })),
35527
35597
  isPending,
35528
35598
  planDrafting: planWork.isPending,
35529
35599
  hasPlan: plan !== null,
35530
- renderIcon: chunkGUV63FUC_cjs.renderWorkflowIcon,
35600
+ renderIcon: chunkO3MRE2HL_cjs.renderWorkflowIcon,
35531
35601
  scopeSource,
35532
35602
  renderDocuments: (field, value, onChange) => /* @__PURE__ */ jsxRuntime.jsx(
35533
- chunkQWSAJNQE_cjs.ConnectedWorkflowDocumentsField,
35603
+ chunkUZVXVTTB_cjs.ConnectedWorkflowDocumentsField,
35534
35604
  {
35535
35605
  field,
35536
35606
  value,
@@ -35561,8 +35631,8 @@ function ConnectedTaskComposer({
35561
35631
  ...plan ? { addAndStart: "Approve plan and start", addAndSchedule: "Approve plan and schedule" } : {}
35562
35632
  },
35563
35633
  onSubmit: submit,
35564
- goal: (values) => values.workflowId === chunkGUV63FUC_cjs.CUSTOM_TASK_ID ? /* @__PURE__ */ jsxRuntime.jsx(
35565
- chunkGUV63FUC_cjs.TaskPlan,
35634
+ goal: (values) => values.workflowId === chunkO3MRE2HL_cjs.CUSTOM_TASK_ID ? /* @__PURE__ */ jsxRuntime.jsx(
35635
+ chunkO3MRE2HL_cjs.TaskPlan,
35566
35636
  {
35567
35637
  plan,
35568
35638
  onChange: setPlan,
@@ -35762,7 +35832,7 @@ function ConnectedTaskStartDialog({
35762
35832
  };
35763
35833
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
35764
35834
  /* @__PURE__ */ jsxRuntime.jsx(
35765
- chunkGUV63FUC_cjs.TaskStartDialog,
35835
+ chunkO3MRE2HL_cjs.TaskStartDialog,
35766
35836
  {
35767
35837
  open: open && !later,
35768
35838
  onOpenChange: (next) => {
@@ -35794,7 +35864,7 @@ function ConnectedTaskStartDialog({
35794
35864
  kind: "workflow",
35795
35865
  startLater: true,
35796
35866
  initialPrompt: later.prompt,
35797
- initialWorkflowId: later.todo ? chunkGUV63FUC_cjs.REMIND_TASK_ID : void 0,
35867
+ initialWorkflowId: later.todo ? chunkO3MRE2HL_cjs.REMIND_TASK_ID : void 0,
35798
35868
  initialShared: later.shared,
35799
35869
  launchWorkflow: later.workflow
35800
35870
  }
@@ -35808,7 +35878,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
35808
35878
  const [later, setLater] = React9.useState(null);
35809
35879
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
35810
35880
  /* @__PURE__ */ jsxRuntime.jsx(
35811
- chunkGUV63FUC_cjs.ThreadLauncher,
35881
+ chunkO3MRE2HL_cjs.ThreadLauncher,
35812
35882
  {
35813
35883
  workflows: task.workflows,
35814
35884
  people: task.people,
@@ -35845,7 +35915,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
35845
35915
  kind: "workflow",
35846
35916
  startLater: true,
35847
35917
  initialPrompt: later.prompt,
35848
- initialWorkflowId: later.todo ? chunkGUV63FUC_cjs.REMIND_TASK_ID : void 0,
35918
+ initialWorkflowId: later.todo ? chunkO3MRE2HL_cjs.REMIND_TASK_ID : void 0,
35849
35919
  initialShared: later.shared,
35850
35920
  launchWorkflow: later.workflow
35851
35921
  }
@@ -35874,13 +35944,13 @@ function ConnectedNewThreadDialog({
35874
35944
  });
35875
35945
  const parentOptions = React9.useMemo(() => {
35876
35946
  const leaf = { external_id: "__new__" };
35877
- return chunkGUV63FUC_cjs.moveTargets([...tasks, leaf], leaf).map((t) => ({
35947
+ return chunkO3MRE2HL_cjs.moveTargets([...tasks, leaf], leaf).map((t) => ({
35878
35948
  id: t.external_id,
35879
35949
  name: t.title?.trim() || "Untitled task"
35880
35950
  }));
35881
35951
  }, [tasks]);
35882
35952
  const submit = async (values) => {
35883
- const request = chunkGUV63FUC_cjs.newThreadToRequest(values);
35953
+ const request = chunkO3MRE2HL_cjs.newThreadToRequest(values);
35884
35954
  try {
35885
35955
  if (!workspaceId) throw new Error("Open a workspace to add a task.");
35886
35956
  if (!request.startAssistant && request.todo) {
@@ -35921,7 +35991,7 @@ function ConnectedNewThreadDialog({
35921
35991
  }
35922
35992
  };
35923
35993
  return /* @__PURE__ */ jsxRuntime.jsx(
35924
- chunkGUV63FUC_cjs.NewThreadDialog,
35994
+ chunkO3MRE2HL_cjs.NewThreadDialog,
35925
35995
  {
35926
35996
  open,
35927
35997
  onOpenChange,
@@ -35956,7 +36026,7 @@ function useRenderTaskPerson() {
35956
36026
  return React9.useCallback(
35957
36027
  (person) => {
35958
36028
  const user = person.id ? byId.get(person.id) : void 0;
35959
- return user ? /* @__PURE__ */ jsxRuntime.jsx(DocumentUser, { user, variant: "pill" }) : /* @__PURE__ */ jsxRuntime.jsx(chunkT5BCPKU3_cjs.PersonPill, { person });
36029
+ return user ? /* @__PURE__ */ jsxRuntime.jsx(DocumentUser, { user, variant: "pill" }) : /* @__PURE__ */ jsxRuntime.jsx(chunk2QDNQM63_cjs.PersonPill, { person });
35960
36030
  },
35961
36031
  [byId]
35962
36032
  );
@@ -35979,7 +36049,7 @@ function ConnectedConversationStart() {
35979
36049
  const browse = openSkillsBrowser ? [
35980
36050
  {
35981
36051
  id: "browse-all",
35982
- iconNode: chunkGUV63FUC_cjs.renderWorkflowIcon("library"),
36052
+ iconNode: chunkO3MRE2HL_cjs.renderWorkflowIcon("library"),
35983
36053
  title: "Browse all",
35984
36054
  description: "See every skill, make a copy, add your own",
35985
36055
  onSelect: () => openSkillsBrowser(),
@@ -36141,7 +36211,7 @@ function getToolParams(detail) {
36141
36211
  return params;
36142
36212
  }
36143
36213
  function StepModelIcon({ modelName, tag }) {
36144
- const cfg = tag === "Premium" ? null : chunkGUV63FUC_cjs.getModelIcon(modelName, tag);
36214
+ const cfg = tag === "Premium" ? null : chunkO3MRE2HL_cjs.getModelIcon(modelName, tag);
36145
36215
  if (tag !== "Premium" && !cfg) return null;
36146
36216
  return /* @__PURE__ */ jsxRuntime.jsxs(ui.Tooltip, { children: [
36147
36217
  /* @__PURE__ */ jsxRuntime.jsx(ui.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: tag === "Premium" ? /* @__PURE__ */ jsxRuntime.jsx(ui.ProviderIcon, { modelName: modelName ?? void 0, size: 11 }) : cfg && /* @__PURE__ */ jsxRuntime.jsx(cfg.icon, { className: cfg.className, style: { width: 11, height: 11 } }) }) }),
@@ -36256,15 +36326,15 @@ var AgentStepsComponent = ({
36256
36326
  const lastStepIndex = mergedSteps[mergedSteps.length - 1].index;
36257
36327
  const renderRow = (step, depth, isLastInList) => {
36258
36328
  const i = posByIndex.get(step.index);
36259
- const presentation = chunkGUV63FUC_cjs.getAgentStepPresentation(step, docInfo);
36329
+ const presentation = chunkO3MRE2HL_cjs.getAgentStepPresentation(step, docInfo);
36260
36330
  const { tool, Icon } = presentation;
36261
36331
  const { label, summary, isMultiLine, details } = browser.getStepDisplay(step, docInfo);
36262
- const accent = chunkGUV63FUC_cjs.stepAccent(step, tool);
36332
+ const accent = chunkO3MRE2HL_cjs.stepAccent(step, tool);
36263
36333
  const duration = stepDurations[i];
36264
36334
  const isLastStep = step.index === lastStepIndex;
36265
36335
  const isActive = step.index === currentStepIndex;
36266
36336
  const tier = step.step === "goal" ? step.model_recommendation : null;
36267
- const TierIcon = tier ? chunkGUV63FUC_cjs.MODEL_TIER_ICON_MAP[tier] : null;
36337
+ const TierIcon = tier ? chunkO3MRE2HL_cjs.MODEL_TIER_ICON_MAP[tier] : null;
36268
36338
  const useLiveDuration = isLastStep && liveTimer != null && step.t != null;
36269
36339
  const durationNode = useLiveDuration ? /* @__PURE__ */ jsxRuntime.jsx(
36270
36340
  MessageLiveSeconds,
@@ -36288,7 +36358,7 @@ var AgentStepsComponent = ({
36288
36358
  })) : null;
36289
36359
  const folded = childrenByParent.get(step.index);
36290
36360
  return /* @__PURE__ */ jsxRuntime.jsxs(
36291
- chunkGUV63FUC_cjs.StepRow,
36361
+ chunkO3MRE2HL_cjs.StepRow,
36292
36362
  {
36293
36363
  index: step.index,
36294
36364
  number: displayNumber.get(step.index) ?? String(i + 1),
@@ -36302,7 +36372,7 @@ var AgentStepsComponent = ({
36302
36372
  titleTestId: isActive ? "agent-expanded-current-step-description" : void 0,
36303
36373
  badge: TierIcon ? /* @__PURE__ */ jsxRuntime.jsxs(ui.Tooltip, { children: [
36304
36374
  /* @__PURE__ */ jsxRuntime.jsx(ui.TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex shrink-0 items-center self-center", children: /* @__PURE__ */ jsxRuntime.jsx(TierIcon, { size: 12, className: accent.fg, "aria-hidden": true }) }) }),
36305
- /* @__PURE__ */ jsxRuntime.jsx(ui.TooltipContent, { side: "top", children: chunkGUV63FUC_cjs.MODEL_TIER_LABELS[tier] ?? tier })
36375
+ /* @__PURE__ */ jsxRuntime.jsx(ui.TooltipContent, { side: "top", children: chunkO3MRE2HL_cjs.MODEL_TIER_LABELS[tier] ?? tier })
36306
36376
  ] }) : void 0,
36307
36377
  meta: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
36308
36378
  isDeveloper && /* @__PURE__ */ jsxRuntime.jsx(StepModelIcon, { modelName: step.usage?.model, tag: getModelTag(step.usage?.model) }),
@@ -36317,14 +36387,14 @@ var AgentStepsComponent = ({
36317
36387
  summary && !isActive && (step.narration ? (
36318
36388
  /* Narration is PROSE (headings, bold, lists): render markdown, not raw asterisks.
36319
36389
  Tool summaries stay plain text: one-line headlines where a clamp matters. */
36320
- /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.StepNarration, { index: step.index, children: /* @__PURE__ */ jsxRuntime.jsx(chunkGT5FCYV5_cjs.ConnectedMarkdown, { isStreaming: false, children: summary }) })
36321
- ) : /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.StepSummary, { index: step.index, multiLine: isMultiLine, children: summary })),
36322
- details.map((d, di) => /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.StepDetail, { index: step.index, children: d }, di)),
36323
- showOutcome && /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.StepOutcome, { index: step.index, failed: outcomeFailed, children: step.outcome }),
36324
- toolParams.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.StepParams, { children: toolParams.map((p) => `${p.key}=${p.value}`).join(" ") }),
36325
- criteriaView && /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.GoalCriteria, { criteria: criteriaView }),
36390
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.StepNarration, { index: step.index, children: /* @__PURE__ */ jsxRuntime.jsx(chunkGT5FCYV5_cjs.ConnectedMarkdown, { isStreaming: false, children: summary }) })
36391
+ ) : /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.StepSummary, { index: step.index, multiLine: isMultiLine, children: summary })),
36392
+ details.map((d, di) => /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.StepDetail, { index: step.index, children: d }, di)),
36393
+ showOutcome && /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.StepOutcome, { index: step.index, failed: outcomeFailed, children: step.outcome }),
36394
+ toolParams.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.StepParams, { children: toolParams.map((p) => `${p.key}=${p.value}`).join(" ") }),
36395
+ criteriaView && /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.GoalCriteria, { criteria: criteriaView }),
36326
36396
  folded && folded.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
36327
- chunkGUV63FUC_cjs.SubStepGroup,
36397
+ chunkO3MRE2HL_cjs.SubStepGroup,
36328
36398
  {
36329
36399
  parentIndex: step.index,
36330
36400
  summary: summariseSubSteps(folded),
@@ -36350,7 +36420,7 @@ var AgentStepsComponent = ({
36350
36420
  leftParts.push(`${browser.formatTokens(totalInputTokens)} in`);
36351
36421
  if (totalOutputTokens > 0) leftParts.push(`${browser.formatTokens(totalOutputTokens)} out`);
36352
36422
  summaryNode = /* @__PURE__ */ jsxRuntime.jsx(
36353
- chunkGUV63FUC_cjs.StepTraceSummary,
36423
+ chunkO3MRE2HL_cjs.StepTraceSummary,
36354
36424
  {
36355
36425
  left: leftParts.join(" \xB7 "),
36356
36426
  isNearBudget: browser.isNearAiUsageBudget(contextUsage),
@@ -36358,7 +36428,7 @@ var AgentStepsComponent = ({
36358
36428
  }
36359
36429
  );
36360
36430
  }
36361
- return /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.StepTrace, { className, summary: summaryNode, children: displayRows.map((row2, i) => {
36431
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.StepTrace, { className, summary: summaryNode, children: displayRows.map((row2, i) => {
36362
36432
  if (row2.lane) {
36363
36433
  return /* @__PURE__ */ jsxRuntime.jsx(
36364
36434
  LaneBinding,
@@ -36395,7 +36465,7 @@ function LaneBinding({
36395
36465
  const running = !closed && isStreaming;
36396
36466
  const latest = inner[inner.length - 1];
36397
36467
  return /* @__PURE__ */ jsxRuntime.jsx(
36398
- chunkGUV63FUC_cjs.SubAgentLane,
36468
+ chunkO3MRE2HL_cjs.SubAgentLane,
36399
36469
  {
36400
36470
  handle,
36401
36471
  number,
@@ -36518,7 +36588,7 @@ function AgentBarShell({
36518
36588
  }, [isStepsExpanded, steps]);
36519
36589
  const visibleStepCount = React9.useMemo(() => browser.topLevelAgentSteps(steps ?? []).length, [steps]);
36520
36590
  return /* @__PURE__ */ jsxRuntime.jsx(
36521
- chunkGUV63FUC_cjs.AgentBar,
36591
+ chunkO3MRE2HL_cjs.AgentBar,
36522
36592
  {
36523
36593
  className,
36524
36594
  testId,
@@ -36574,7 +36644,7 @@ function AgentControlBar({
36574
36644
  const isPaused = controlState === "paused" || controlState === "resuming";
36575
36645
  const steps = agentSteps ?? [];
36576
36646
  const currentStep = browser.getCurrentStep(steps);
36577
- const currentPresentation = chunkGUV63FUC_cjs.getCurrentAgentStepPresentation(steps);
36647
+ const currentPresentation = chunkO3MRE2HL_cjs.getCurrentAgentStepPresentation(steps);
36578
36648
  const CurrentStepIcon = currentPresentation?.Icon;
36579
36649
  const stepLabel2 = currentPresentation?.description ?? "Agent working\u2026";
36580
36650
  const runningLanes = browser.extractSubagentLanes(steps).filter((l) => l.status === "running");
@@ -36591,7 +36661,7 @@ function AgentControlBar({
36591
36661
  }
36592
36662
  );
36593
36663
  const status = /* @__PURE__ */ jsxRuntime.jsx(
36594
- chunkGUV63FUC_cjs.AgentBarStatus,
36664
+ chunkO3MRE2HL_cjs.AgentBarStatus,
36595
36665
  {
36596
36666
  state: showState ? controlState : void 0,
36597
36667
  stateLabel: STATE_LABEL[controlState],
@@ -36633,7 +36703,7 @@ function AgentControlBar({
36633
36703
  ];
36634
36704
  const controls = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
36635
36705
  onStop && /* @__PURE__ */ jsxRuntime.jsx(
36636
- chunkGUV63FUC_cjs.AgentBarIconButton,
36706
+ chunkO3MRE2HL_cjs.AgentBarIconButton,
36637
36707
  {
36638
36708
  onClick: onStop,
36639
36709
  title: "Stop",
@@ -36642,22 +36712,22 @@ function AgentControlBar({
36642
36712
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-3 w-3", fill: "currentColor" })
36643
36713
  }
36644
36714
  ),
36645
- /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.AgentBarMenu, { items: menuItems })
36715
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.AgentBarMenu, { items: menuItems })
36646
36716
  ] });
36647
36717
  const displayedQueuedMessages = (transientQueuedMessages ?? []).filter(
36648
36718
  (message) => !message.serverId || !queuedMessages.some((queued) => queued.external_id === message.serverId)
36649
36719
  );
36650
36720
  const queuedNotes = displayedQueuedMessages.filter((message) => message.content);
36651
- const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkGUV63FUC_cjs.AgentBarNotes, { children: [
36721
+ const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkO3MRE2HL_cjs.AgentBarNotes, { children: [
36652
36722
  queuedNotes.map((message, index) => /* @__PURE__ */ jsxRuntime.jsx(
36653
- chunkGUV63FUC_cjs.AgentBarQueuedNote,
36723
+ chunkO3MRE2HL_cjs.AgentBarQueuedNote,
36654
36724
  {
36655
36725
  text: message.content ?? "",
36656
36726
  isAcknowledged: message.acknowledged
36657
36727
  },
36658
36728
  index
36659
36729
  )),
36660
- probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.AgentBarProbeAnswer, { answer: probeAnswer.answer })
36730
+ probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.AgentBarProbeAnswer, { answer: probeAnswer.answer })
36661
36731
  ] }) : null;
36662
36732
  return /* @__PURE__ */ jsxRuntime.jsx(
36663
36733
  AgentBarShell,
@@ -36714,7 +36784,7 @@ function RunningSubagentsRoster({
36714
36784
  if (leafId) selectThread(leafId);
36715
36785
  };
36716
36786
  return /* @__PURE__ */ jsxRuntime.jsx(
36717
- chunkGUV63FUC_cjs.SubagentRoster,
36787
+ chunkO3MRE2HL_cjs.SubagentRoster,
36718
36788
  {
36719
36789
  lanes: rosterLanes,
36720
36790
  className,
@@ -36838,7 +36908,7 @@ function useOpenChunk() {
36838
36908
  const meta = chunk.metadata;
36839
36909
  if (!meta?.doc_ext_id) return;
36840
36910
  const listed = documents?.find((d) => d.external_id === meta.doc_ext_id);
36841
- openDocument(chunkF72ZD5Q2_cjs.citedVersionRef(meta.doc_ext_id, meta.doc_version, listed?.current_version), {
36911
+ openDocument(chunkYD3RN2FY_cjs.citedVersionRef(meta.doc_ext_id, meta.doc_version, listed?.current_version), {
36842
36912
  page: meta.page_number ?? void 0,
36843
36913
  passageId: meta.chunk_ext_id ?? void 0
36844
36914
  });
@@ -37456,7 +37526,7 @@ function WorkflowStepMessage({
37456
37526
  const { conversations } = react.useConversationItems();
37457
37527
  const activity = react.useConversationActivity(conversationId ?? void 0, { live: true });
37458
37528
  const plan = conversations.find((c) => c.external_id === conversationId)?.plan;
37459
- const steps = chunkGUV63FUC_cjs.fromPlanSteps(plan?.steps ?? []);
37529
+ const steps = chunkO3MRE2HL_cjs.fromPlanSteps(plan?.steps ?? []);
37460
37530
  const found = steps.find((s) => s.id === step);
37461
37531
  const states = chunkEZLZ3MDU_cjs.stepStatesFromActivity(activity.data ?? []);
37462
37532
  const { data: documents = [] } = react.useDocuments();
@@ -37628,7 +37698,7 @@ var MessageComponent = ({
37628
37698
  const isQueuedAnswer = !isUser && message.status === "queued" && !isGenerating;
37629
37699
  const isAwaitingAnswer = (isGenerating || isRunningOnServer) && !isStopped && !!message.pendingUserInput;
37630
37700
  const showWorkingIndicator = (isGenerating || isRunningOnServer) && !isQueuedAnswer && !responseContent.trim() && !linkedArtifact && !isAwaitingAnswer;
37631
- const workingStepLabel = showWorkingIndicator ? chunkGUV63FUC_cjs.getCurrentAgentStepPresentation(message.agentSteps ?? [])?.description : void 0;
37701
+ const workingStepLabel = showWorkingIndicator ? chunkO3MRE2HL_cjs.getCurrentAgentStepPresentation(message.agentSteps ?? [])?.description : void 0;
37632
37702
  const workingStepStart = showWorkingIndicator ? browser.getCurrentStep(message.agentSteps ?? [])?.t ?? 0 : 0;
37633
37703
  const showEmptyAnswer = !isUser && !isGenerating && !isRunningOnServer && !isFailed && !isStopped && !responseContent.trim() && !linkedArtifact;
37634
37704
  const isEmptyStopped = isStopped && !responseContent.trim();
@@ -37648,7 +37718,7 @@ var MessageComponent = ({
37648
37718
  else session.setDraft(retry.question.content);
37649
37719
  };
37650
37720
  const factData = React9.useMemo(
37651
- () => chunkF72ZD5Q2_cjs.buildFactCitations(responseContent, activeCitations, citationData),
37721
+ () => chunkYD3RN2FY_cjs.buildFactCitations(responseContent, activeCitations, citationData),
37652
37722
  [responseContent, activeCitations, citationData]
37653
37723
  );
37654
37724
  const factText = factData.text;
@@ -37751,7 +37821,7 @@ var MessageComponent = ({
37751
37821
  notify18("Cannot create fact: no workspace open", "error");
37752
37822
  return;
37753
37823
  }
37754
- const chronology = chunkF72ZD5Q2_cjs.chronologyFactBodies(factText, factData.citations);
37824
+ const chronology = chunkYD3RN2FY_cjs.chronologyFactBodies(factText, factData.citations);
37755
37825
  try {
37756
37826
  if (chronology) {
37757
37827
  await createFacts.mutateAsync({ facts: chronology });
@@ -37932,7 +38002,7 @@ var MessageComponent = ({
37932
38002
  },
37933
38003
  "data-testid": `message-model-${messageId}`,
37934
38004
  children: /* @__PURE__ */ jsxRuntime.jsx(
37935
- chunkGUV63FUC_cjs.AssistantEntity,
38005
+ chunkO3MRE2HL_cjs.AssistantEntity,
37936
38006
  {
37937
38007
  name: modelDisplayName,
37938
38008
  modelName,
@@ -38045,7 +38115,7 @@ var MessageComponent = ({
38045
38115
  // Stays the ARBI identity while streaming: the model name arrives
38046
38116
  // with the first step that reports one and would swap the author
38047
38117
  // mid-answer. The model is shown in the footer once settled.
38048
- /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.AssistantEntity, { size: 16, pillSize: "sm" })
38118
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.AssistantEntity, { size: 16, pillSize: "sm" })
38049
38119
  ),
38050
38120
  timeLabel,
38051
38121
  isSettled: settledForHeader,
@@ -38510,7 +38580,7 @@ function ConnectedMessageList({ messages }) {
38510
38580
  start: virtualItem.start,
38511
38581
  messageId: entry.id,
38512
38582
  setSize: transcript.length,
38513
- children: entry.item.card ?? /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ThreadActivity, { item: entry.item, children: entry.item.onOpenDocument && /* @__PURE__ */ jsxRuntime.jsx(
38583
+ children: entry.item.card ?? /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ThreadActivity, { item: entry.item, children: entry.item.onOpenDocument && /* @__PURE__ */ jsxRuntime.jsx(
38514
38584
  "button",
38515
38585
  {
38516
38586
  className: "mt-1 hover:underline text-primary",
@@ -38909,7 +38979,7 @@ function ConnectedThreadsPage({
38909
38979
  "data-testid": mode === "tasks" ? "tasks-page" : "threads-page",
38910
38980
  children: [
38911
38981
  /* @__PURE__ */ jsxRuntime.jsx("main", { className: "flex min-h-0 flex-1 flex-col bg-background", children: mode === "threads" ? /* @__PURE__ */ jsxRuntime.jsx(
38912
- chunkGUV63FUC_cjs.ConversationListView,
38982
+ chunkO3MRE2HL_cjs.ConversationListView,
38913
38983
  {
38914
38984
  showHeader,
38915
38985
  conversations: tasks,
@@ -38929,7 +38999,7 @@ function ConnectedThreadsPage({
38929
38999
  renderLabels: threadLabels.renderLabels,
38930
39000
  labelText: threadLabels.labelText,
38931
39001
  renderBy: (row2) => /* @__PURE__ */ jsxRuntime.jsx(
38932
- chunkGUV63FUC_cjs.ConversationTurnSpeaker,
39002
+ chunkO3MRE2HL_cjs.ConversationTurnSpeaker,
38933
39003
  {
38934
39004
  variant: "icon",
38935
39005
  role: row2.last_message_role,
@@ -38951,7 +39021,7 @@ function ConnectedThreadsPage({
38951
39021
  footer: /* @__PURE__ */ jsxRuntime.jsx(ConnectedThreadLauncher, { autoFocus: focusLauncher })
38952
39022
  }
38953
39023
  ) : /* @__PURE__ */ jsxRuntime.jsx(
38954
- chunkGUV63FUC_cjs.TaskInbox,
39024
+ chunkO3MRE2HL_cjs.TaskInbox,
38955
39025
  {
38956
39026
  tasks,
38957
39027
  isLoading,
@@ -39231,7 +39301,7 @@ function ConnectedConversationPage({
39231
39301
  }
39232
39302
  );
39233
39303
  const { data: workspaceTags = [] } = react.useTags();
39234
- const historyCount = chunkGUV63FUC_cjs.filterConversationRows(
39304
+ const historyCount = chunkO3MRE2HL_cjs.filterConversationRows(
39235
39305
  conversations,
39236
39306
  threadFilter,
39237
39307
  (row2) => workspaceTags.filter((tag) => row2.label_ext_ids?.includes(tag.external_id)).map((tag) => tag.name).join(" "),
@@ -40162,7 +40232,7 @@ function ConversationThread({
40162
40232
  }, [isGenerating]);
40163
40233
  const slashWorkflows = useSlashSkillWorkflows({ landing: "current-chat" });
40164
40234
  const composerSkills = React9.useMemo(
40165
- () => ({ builtin: chunkGUV63FUC_cjs.BUILTIN_SKILLS, openFor: slashWorkflows.openFor }),
40235
+ () => ({ builtin: chunkO3MRE2HL_cjs.BUILTIN_SKILLS, openFor: slashWorkflows.openFor }),
40166
40236
  [slashWorkflows.openFor]
40167
40237
  );
40168
40238
  const browseSkills = React9.useMemo(
@@ -40237,7 +40307,7 @@ function ConversationThread({
40237
40307
  /* @__PURE__ */ jsxRuntime.jsx(chunk5R256EMF_cjs.CallConversationEmpty, { callExtId: meetingCallExtId }),
40238
40308
  /* @__PURE__ */ jsxRuntime.jsx(chunk5R256EMF_cjs.ProvisionalSpeakers, { ids: provisionalSpeakers })
40239
40309
  ] })
40240
- ) : currentTask && currentTask.status != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.TaskEmptyState, { task: currentTask }) : pendingFirstTurn && isGenerating ? /* @__PURE__ */ jsxRuntime.jsx(ConnectedMessageArea, { ref: containerRef, messages: pendingFirstTurn }) : /* @__PURE__ */ jsxRuntime.jsx(
40310
+ ) : currentTask && currentTask.status != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.TaskEmptyState, { task: currentTask }) : pendingFirstTurn && isGenerating ? /* @__PURE__ */ jsxRuntime.jsx(ConnectedMessageArea, { ref: containerRef, messages: pendingFirstTurn }) : /* @__PURE__ */ jsxRuntime.jsx(
40241
40311
  ConnectedConversationEmpty,
40242
40312
  {
40243
40313
  hasDocuments: allWorkspaceDocuments.length > 0,
@@ -42124,7 +42194,7 @@ function SsoResendVerificationButton({
42124
42194
  onClick: async () => handleResendEmailVerification(),
42125
42195
  disabled: loading || disabled,
42126
42196
  "aria-label": "Resend verification email",
42127
- children: loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkPV5A5SAC_cjs.LoadingIndicator, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
42197
+ children: loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTPNLYQD2_cjs.LoadingIndicator, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
42128
42198
  "Didn't get a verification email? ",
42129
42199
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold", children: "Resend" })
42130
42200
  ] })
@@ -43018,27 +43088,27 @@ function ConnectedOAuthConsentPage({
43018
43088
  oauthErrorRedirect(params.redirectUri, params.state, "access_denied");
43019
43089
  }
43020
43090
  if (error && !params) {
43021
- return /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentMessage, { tone: "error", title: "Invalid Request", children: error }) });
43091
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentMessage, { tone: "error", title: "Invalid Request", children: error }) });
43022
43092
  }
43023
43093
  if (!params) {
43024
43094
  return null;
43025
43095
  }
43026
43096
  if (clientInfo?.isLocalAgentFlow) {
43027
- return /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentMessage, { tone: "warning", title: "Close this tab", children: "This tab opened alongside the correct authorization page. Please close this tab and complete the connection in the other tab that opened at the same time." }) });
43097
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentMessage, { tone: "warning", title: "Close this tab", children: "This tab opened alongside the correct authorization page. Please close this tab and complete the connection in the other tab that opened at the same time." }) });
43028
43098
  }
43029
43099
  if (!isAuthenticated2) {
43030
43100
  return null;
43031
43101
  }
43032
43102
  if (callbackUrl) {
43033
- return /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkGUV63FUC_cjs.ConsentCard, { size: "md", children: [
43034
- /* @__PURE__ */ jsxRuntime.jsxs(chunkGUV63FUC_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ClipboardList, {}), title: "Almost there", children: [
43103
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkO3MRE2HL_cjs.ConsentCard, { size: "md", children: [
43104
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkO3MRE2HL_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ClipboardList, {}), title: "Almost there", children: [
43035
43105
  "A new tab has opened to complete the connection. If it succeeded, you can close this page. If you see a connection error there, paste the URL below into Claude Cowork \u2014",
43036
43106
  " ",
43037
43107
  copied ? "it's already copied to your clipboard." : "copy it first."
43038
43108
  ] }),
43039
- /* @__PURE__ */ jsxRuntime.jsxs(chunkGUV63FUC_cjs.ConsentSection, { title: "Callback URL", children: [
43040
- /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.CopyableUrl, { url: callbackUrl, copied, onCopy: handleCopy }),
43041
- /* @__PURE__ */ jsxRuntime.jsxs(chunkGUV63FUC_cjs.ConsentText, { variant: "hint", children: [
43109
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkO3MRE2HL_cjs.ConsentSection, { title: "Callback URL", children: [
43110
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.CopyableUrl, { url: callbackUrl, copied, onCopy: handleCopy }),
43111
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkO3MRE2HL_cjs.ConsentText, { variant: "hint", children: [
43042
43112
  "In Claude Code, paste the URL at the prompt that says",
43043
43113
  " ",
43044
43114
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-foreground", children: '"paste the full redirect URL here"' }),
@@ -43047,17 +43117,17 @@ function ConnectedOAuthConsentPage({
43047
43117
  ] })
43048
43118
  ] }) });
43049
43119
  }
43050
- return /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkGUV63FUC_cjs.ConsentCard, { children: [
43051
- /* @__PURE__ */ jsxRuntime.jsxs(chunkGUV63FUC_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link2, {}), title: `Connect to ${appName}`, children: [
43052
- /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentStrong, { children: clientInfo?.name ?? params.clientId }),
43120
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkO3MRE2HL_cjs.ConsentCard, { children: [
43121
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkO3MRE2HL_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link2, {}), title: `Connect to ${appName}`, children: [
43122
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentStrong, { children: clientInfo?.name ?? params.clientId }),
43053
43123
  " is requesting access to your ",
43054
43124
  appName,
43055
43125
  " workspace."
43056
43126
  ] }),
43057
- /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentSection, { title: "This will allow", children: /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentPermissionList, { items: permissions }) }),
43058
- error && /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentNotice, { tone: "error", children: error }),
43059
- /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentActions, { isLoading: loading, onDeny: handleDeny, onAllow: handleAllow }),
43060
- /* @__PURE__ */ jsxRuntime.jsx(chunkGUV63FUC_cjs.ConsentFootnote, { children: footnote })
43127
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentSection, { title: "This will allow", children: /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentPermissionList, { items: permissions }) }),
43128
+ error && /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentNotice, { tone: "error", children: error }),
43129
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentActions, { isLoading: loading, onDeny: handleDeny, onAllow: handleAllow }),
43130
+ /* @__PURE__ */ jsxRuntime.jsx(chunkO3MRE2HL_cjs.ConsentFootnote, { children: footnote })
43061
43131
  ] }) });
43062
43132
  }
43063
43133
  function ConnectedSharedFilesPage({
@@ -43353,10 +43423,10 @@ function useContextualHints() {
43353
43423
  const session = react.useArbiSessionStore();
43354
43424
  const { data: userSettings } = react.useUserSettings();
43355
43425
  const updateUserSettings = react.useUpdateUserSettings();
43356
- const [sessionOverride] = react.useTransientView(chunkPV5A5SAC_cjs.TIPS_VISIBILITY_OVERRIDE, null);
43357
- const setShowHints = (value) => chunkPV5A5SAC_cjs.setHintsSessionOverride(session, value);
43426
+ const [sessionOverride] = react.useTransientView(chunkTPNLYQD2_cjs.TIPS_VISIBILITY_OVERRIDE, null);
43427
+ const setShowHints = (value) => chunkTPNLYQD2_cjs.setHintsSessionOverride(session, value);
43358
43428
  const setShowHintsPersisted = (value) => {
43359
- chunkPV5A5SAC_cjs.setHintsSessionOverride(session, null);
43429
+ chunkTPNLYQD2_cjs.setHintsSessionOverride(session, null);
43360
43430
  updateUserSettings.mutate({ show_hints: value });
43361
43431
  };
43362
43432
  return {
@@ -43455,43 +43525,43 @@ Object.defineProperty(exports, "useWorkspaceDocs", {
43455
43525
  });
43456
43526
  Object.defineProperty(exports, "ConnectedWorkflowDocumentsField", {
43457
43527
  enumerable: true,
43458
- get: function () { return chunkQWSAJNQE_cjs.ConnectedWorkflowDocumentsField; }
43528
+ get: function () { return chunkUZVXVTTB_cjs.ConnectedWorkflowDocumentsField; }
43459
43529
  });
43460
43530
  Object.defineProperty(exports, "ConnectedWorkflowLauncher", {
43461
43531
  enumerable: true,
43462
- get: function () { return chunkQWSAJNQE_cjs.ConnectedWorkflowLauncher; }
43532
+ get: function () { return chunkUZVXVTTB_cjs.ConnectedWorkflowLauncher; }
43463
43533
  });
43464
43534
  Object.defineProperty(exports, "ConnectedWorkflowsTable", {
43465
43535
  enumerable: true,
43466
- get: function () { return chunkQWSAJNQE_cjs.ConnectedWorkflowsTable; }
43536
+ get: function () { return chunkUZVXVTTB_cjs.ConnectedWorkflowsTable; }
43467
43537
  });
43468
43538
  Object.defineProperty(exports, "DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS", {
43469
43539
  enumerable: true,
43470
- get: function () { return chunkQWSAJNQE_cjs.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS; }
43540
+ get: function () { return chunkUZVXVTTB_cjs.DEFAULT_CONNECTED_WORKFLOWS_TABLE_LABELS; }
43471
43541
  });
43472
43542
  Object.defineProperty(exports, "toWorkflowFieldDocument", {
43473
43543
  enumerable: true,
43474
- get: function () { return chunkQWSAJNQE_cjs.toWorkflowFieldDocument; }
43544
+ get: function () { return chunkUZVXVTTB_cjs.toWorkflowFieldDocument; }
43475
43545
  });
43476
43546
  Object.defineProperty(exports, "useConnectedAgentOptions", {
43477
43547
  enumerable: true,
43478
- get: function () { return chunkQWSAJNQE_cjs.useConnectedAgentOptions; }
43548
+ get: function () { return chunkUZVXVTTB_cjs.useConnectedAgentOptions; }
43479
43549
  });
43480
43550
  Object.defineProperty(exports, "useConnectedWorkflowScopeSource", {
43481
43551
  enumerable: true,
43482
- get: function () { return chunkQWSAJNQE_cjs.useConnectedWorkflowScopeSource; }
43552
+ get: function () { return chunkUZVXVTTB_cjs.useConnectedWorkflowScopeSource; }
43483
43553
  });
43484
43554
  Object.defineProperty(exports, "useConnectedWorkspaceRole", {
43485
43555
  enumerable: true,
43486
- get: function () { return chunkQWSAJNQE_cjs.useConnectedWorkspaceRole; }
43556
+ get: function () { return chunkUZVXVTTB_cjs.useConnectedWorkspaceRole; }
43487
43557
  });
43488
43558
  Object.defineProperty(exports, "useDocxCommentTarget", {
43489
43559
  enumerable: true,
43490
- get: function () { return chunkQWSAJNQE_cjs.useDocxCommentTarget; }
43560
+ get: function () { return chunkUZVXVTTB_cjs.useDocxCommentTarget; }
43491
43561
  });
43492
43562
  Object.defineProperty(exports, "useNativeDocxSupport", {
43493
43563
  enumerable: true,
43494
- get: function () { return chunkQWSAJNQE_cjs.useNativeDocxSupport; }
43564
+ get: function () { return chunkUZVXVTTB_cjs.useNativeDocxSupport; }
43495
43565
  });
43496
43566
  Object.defineProperty(exports, "ConnectedDocumentToolsProvider", {
43497
43567
  enumerable: true,
@@ -43909,6 +43979,7 @@ exports.useAuthPages = useAuthPages;
43909
43979
  exports.useAutoRefreshPendingProjects = useAutoRefreshPendingProjects;
43910
43980
  exports.useBatchCompleteToasts = useBatchCompleteToasts;
43911
43981
  exports.useChatMessageToasts = useChatMessageToasts;
43982
+ exports.useConnectedAgentManagement = useConnectedAgentManagement;
43912
43983
  exports.useConnectedCalendarCalls = useConnectedCalendarCalls;
43913
43984
  exports.useConnectedNotificationBell = useConnectedNotificationBell;
43914
43985
  exports.useConnectedShellWorkspaces = useConnectedShellWorkspaces;