@arbidocs/blocks 0.5.65 → 0.5.66

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 (118) hide show
  1. package/dist/{ConnectedCallDock-GJAGY75U.cjs → ConnectedCallDock-FFIDDYGH.cjs} +6 -6
  2. package/dist/{ConnectedCallDock-GJAGY75U.cjs.map → ConnectedCallDock-FFIDDYGH.cjs.map} +1 -1
  3. package/dist/{ConnectedCallDock-DEAEFUUD.js → ConnectedCallDock-VMEBH4LG.js} +6 -6
  4. package/dist/{ConnectedCallDock-DEAEFUUD.js.map → ConnectedCallDock-VMEBH4LG.js.map} +1 -1
  5. package/dist/{ConnectedCallRoom-DI7UYRHE.js → ConnectedCallRoom-2FNSX2VG.js} +6 -6
  6. package/dist/{ConnectedCallRoom-DI7UYRHE.js.map → ConnectedCallRoom-2FNSX2VG.js.map} +1 -1
  7. package/dist/{ConnectedCallRoom-KLE2PCMQ.cjs → ConnectedCallRoom-HYRLJUIV.cjs} +6 -6
  8. package/dist/{ConnectedCallRoom-KLE2PCMQ.cjs.map → ConnectedCallRoom-HYRLJUIV.cjs.map} +1 -1
  9. package/dist/{ConnectedDocumentViewer-YSZWOVGN.cjs → ConnectedDocumentViewer-S6YKCCRN.cjs} +9 -9
  10. package/dist/{ConnectedDocumentViewer-YSZWOVGN.cjs.map → ConnectedDocumentViewer-S6YKCCRN.cjs.map} +1 -1
  11. package/dist/{ConnectedDocumentViewer-HKIBNGGG.js → ConnectedDocumentViewer-XFQDHVWM.js} +9 -9
  12. package/dist/{ConnectedDocumentViewer-HKIBNGGG.js.map → ConnectedDocumentViewer-XFQDHVWM.js.map} +1 -1
  13. package/dist/agents/index.cjs +260 -260
  14. package/dist/agents/index.js +3 -3
  15. package/dist/calls/index.cjs +2 -2
  16. package/dist/calls/index.js +2 -2
  17. package/dist/chat/index.cjs +57 -57
  18. package/dist/chat/index.js +4 -4
  19. package/dist/{chunk-F777MGVA.cjs → chunk-3SHZPTR2.cjs} +18 -18
  20. package/dist/{chunk-F777MGVA.cjs.map → chunk-3SHZPTR2.cjs.map} +1 -1
  21. package/dist/{chunk-TVHTXO6V.cjs → chunk-56WWEK6I.cjs} +4 -4
  22. package/dist/{chunk-TVHTXO6V.cjs.map → chunk-56WWEK6I.cjs.map} +1 -1
  23. package/dist/{chunk-CGCTODPC.cjs → chunk-6PGTH2HD.cjs} +4 -4
  24. package/dist/{chunk-CGCTODPC.cjs.map → chunk-6PGTH2HD.cjs.map} +1 -1
  25. package/dist/{chunk-6QZ35CTZ.js → chunk-AD76WTGR.js} +3 -3
  26. package/dist/{chunk-6QZ35CTZ.js.map → chunk-AD76WTGR.js.map} +1 -1
  27. package/dist/{chunk-ROWJU4SK.cjs → chunk-AKGV6JUC.cjs} +12 -128
  28. package/dist/chunk-AKGV6JUC.cjs.map +1 -0
  29. package/dist/{chunk-UIUWCTIZ.js → chunk-APXW5XGA.js} +165 -4
  30. package/dist/chunk-APXW5XGA.js.map +1 -0
  31. package/dist/{chunk-SEVFIBF3.cjs → chunk-BFIHXDO6.cjs} +4 -4
  32. package/dist/{chunk-SEVFIBF3.cjs.map → chunk-BFIHXDO6.cjs.map} +1 -1
  33. package/dist/{chunk-JSHBC47B.cjs → chunk-BP5KBZLX.cjs} +38 -38
  34. package/dist/{chunk-JSHBC47B.cjs.map → chunk-BP5KBZLX.cjs.map} +1 -1
  35. package/dist/{chunk-YQEXBJVO.js → chunk-DF5X27QX.js} +42 -5
  36. package/dist/chunk-DF5X27QX.js.map +1 -0
  37. package/dist/{chunk-CJF7B5A7.cjs → chunk-DRUNPUDT.cjs} +3 -3
  38. package/dist/{chunk-CJF7B5A7.cjs.map → chunk-DRUNPUDT.cjs.map} +1 -1
  39. package/dist/{chunk-6OMIIF76.js → chunk-EM4KOKE6.js} +3 -3
  40. package/dist/{chunk-6OMIIF76.js.map → chunk-EM4KOKE6.js.map} +1 -1
  41. package/dist/{chunk-GPYLXEZO.js → chunk-FCOK73I3.js} +6 -120
  42. package/dist/chunk-FCOK73I3.js.map +1 -0
  43. package/dist/{chunk-ITRI47DF.cjs → chunk-GMGEAWFX.cjs} +41 -4
  44. package/dist/chunk-GMGEAWFX.cjs.map +1 -0
  45. package/dist/{chunk-LNH6NYG4.js → chunk-I3VBVP6R.js} +121 -6
  46. package/dist/chunk-I3VBVP6R.js.map +1 -0
  47. package/dist/{chunk-ZZHMJXM5.cjs → chunk-IXZCXK6Q.cjs} +122 -5
  48. package/dist/chunk-IXZCXK6Q.cjs.map +1 -0
  49. package/dist/{chunk-C2S246BV.js → chunk-J6FRFIVL.js} +3 -3
  50. package/dist/{chunk-C2S246BV.js.map → chunk-J6FRFIVL.js.map} +1 -1
  51. package/dist/{chunk-PLEMVK2W.js → chunk-KQLUMK56.js} +3 -3
  52. package/dist/{chunk-PLEMVK2W.js.map → chunk-KQLUMK56.js.map} +1 -1
  53. package/dist/{chunk-PNZVUH46.cjs → chunk-LAQ3Y5JP.cjs} +6 -6
  54. package/dist/{chunk-PNZVUH46.cjs.map → chunk-LAQ3Y5JP.cjs.map} +1 -1
  55. package/dist/{chunk-AESJLGMC.cjs → chunk-NDKZ6OR3.cjs} +6 -6
  56. package/dist/{chunk-AESJLGMC.cjs.map → chunk-NDKZ6OR3.cjs.map} +1 -1
  57. package/dist/{chunk-43IVRSFX.js → chunk-NVXNTHL4.js} +3 -3
  58. package/dist/{chunk-43IVRSFX.js.map → chunk-NVXNTHL4.js.map} +1 -1
  59. package/dist/{chunk-5EGTGHBW.js → chunk-PMWZTVIY.js} +3 -3
  60. package/dist/{chunk-5EGTGHBW.js.map → chunk-PMWZTVIY.js.map} +1 -1
  61. package/dist/{chunk-7MOQO6NO.cjs → chunk-RB54N5I7.cjs} +53 -5
  62. package/dist/chunk-RB54N5I7.cjs.map +1 -0
  63. package/dist/{chunk-2C4YUIVX.js → chunk-T2VGD4X6.js} +3 -3
  64. package/dist/{chunk-2C4YUIVX.js.map → chunk-T2VGD4X6.js.map} +1 -1
  65. package/dist/{chunk-4Q7ON335.js → chunk-TCCJ5I6G.js} +3 -3
  66. package/dist/{chunk-4Q7ON335.js.map → chunk-TCCJ5I6G.js.map} +1 -1
  67. package/dist/{chunk-4CI42DCG.js → chunk-U52KPOXT.js} +50 -5
  68. package/dist/chunk-U52KPOXT.js.map +1 -0
  69. package/dist/{chunk-SFTQO3TU.js → chunk-UO3FS6ZF.js} +3 -3
  70. package/dist/{chunk-SFTQO3TU.js.map → chunk-UO3FS6ZF.js.map} +1 -1
  71. package/dist/{chunk-LFS6UWSJ.cjs → chunk-XWUGPV7H.cjs} +5 -5
  72. package/dist/{chunk-LFS6UWSJ.cjs.map → chunk-XWUGPV7H.cjs.map} +1 -1
  73. package/dist/{chunk-OM5IVNEW.cjs → chunk-Z4KXF7WS.cjs} +165 -2
  74. package/dist/chunk-Z4KXF7WS.cjs.map +1 -0
  75. package/dist/connect/index.cjs +564 -283
  76. package/dist/connect/index.cjs.map +1 -1
  77. package/dist/connect/index.d.ts +3 -0
  78. package/dist/connect/index.js +292 -19
  79. package/dist/connect/index.js.map +1 -1
  80. package/dist/connect/viewer.cjs +7 -7
  81. package/dist/connect/viewer.js +7 -7
  82. package/dist/connection/runtime/ConnectedAppRuntime.d.ts +1 -1
  83. package/dist/connection/runtime/index.d.ts +1 -1
  84. package/dist/connection/runtime/requests.d.ts +8 -0
  85. package/dist/connection/runtime/useWelcomeDialog.d.ts +3 -0
  86. package/dist/connection/tips/ConnectedGettingStarted.d.ts +20 -0
  87. package/dist/connection/tips/ConnectedTipBar.d.ts +49 -0
  88. package/dist/connection/tips/useGettingStarted.d.ts +51 -0
  89. package/dist/embed/index.cjs +1 -1
  90. package/dist/embed/index.js +1 -1
  91. package/dist/home/index.cjs +23 -178
  92. package/dist/home/index.cjs.map +1 -1
  93. package/dist/home/index.js +3 -164
  94. package/dist/home/index.js.map +1 -1
  95. package/dist/index.cjs +457 -485
  96. package/dist/index.cjs.map +1 -1
  97. package/dist/index.js +15 -54
  98. package/dist/index.js.map +1 -1
  99. package/dist/shell/index.cjs +73 -73
  100. package/dist/shell/index.js +4 -4
  101. package/dist/studio/index.cjs +8 -8
  102. package/dist/studio/index.js +5 -5
  103. package/dist/tips/index.d.ts +1 -1
  104. package/dist/tips/visibility.d.ts +7 -0
  105. package/dist/workflow-canvas/index.cjs +17 -17
  106. package/dist/workflow-canvas/index.js +4 -4
  107. package/node_modules/@arbidocs/coedit/package.json +1 -1
  108. package/package.json +5 -5
  109. package/dist/chunk-4CI42DCG.js.map +0 -1
  110. package/dist/chunk-7MOQO6NO.cjs.map +0 -1
  111. package/dist/chunk-GPYLXEZO.js.map +0 -1
  112. package/dist/chunk-ITRI47DF.cjs.map +0 -1
  113. package/dist/chunk-LNH6NYG4.js.map +0 -1
  114. package/dist/chunk-OM5IVNEW.cjs.map +0 -1
  115. package/dist/chunk-ROWJU4SK.cjs.map +0 -1
  116. package/dist/chunk-UIUWCTIZ.js.map +0 -1
  117. package/dist/chunk-YQEXBJVO.js.map +0 -1
  118. package/dist/chunk-ZZHMJXM5.cjs.map +0 -1
@@ -3,10 +3,10 @@
3
3
 
4
4
  var chunkEG3BB32W_cjs = require('../chunk-EG3BB32W.cjs');
5
5
  var chunkZ7DJS6M3_cjs = require('../chunk-Z7DJS6M3.cjs');
6
- var chunkSEVFIBF3_cjs = require('../chunk-SEVFIBF3.cjs');
7
- var chunkJSHBC47B_cjs = require('../chunk-JSHBC47B.cjs');
8
- var chunkE5625KT2_cjs = require('../chunk-E5625KT2.cjs');
6
+ var chunkBFIHXDO6_cjs = require('../chunk-BFIHXDO6.cjs');
9
7
  var chunk2GSZG6KA_cjs = require('../chunk-2GSZG6KA.cjs');
8
+ var chunkBP5KBZLX_cjs = require('../chunk-BP5KBZLX.cjs');
9
+ var chunkE5625KT2_cjs = require('../chunk-E5625KT2.cjs');
10
10
  var chunkHYAYXLIZ_cjs = require('../chunk-HYAYXLIZ.cjs');
11
11
  var chunkKWJW5TMH_cjs = require('../chunk-KWJW5TMH.cjs');
12
12
  var chunkPSIKUQYM_cjs = require('../chunk-PSIKUQYM.cjs');
@@ -16,7 +16,7 @@ var chunkEGJ7WJ6Q_cjs = require('../chunk-EGJ7WJ6Q.cjs');
16
16
  var chunkJBL4PPEE_cjs = require('../chunk-JBL4PPEE.cjs');
17
17
  var chunkF73EZQT4_cjs = require('../chunk-F73EZQT4.cjs');
18
18
  var chunkXFL67STW_cjs = require('../chunk-XFL67STW.cjs');
19
- var chunkOM5IVNEW_cjs = require('../chunk-OM5IVNEW.cjs');
19
+ var chunkZ4KXF7WS_cjs = require('../chunk-Z4KXF7WS.cjs');
20
20
  var chunkOU3RGQFX_cjs = require('../chunk-OU3RGQFX.cjs');
21
21
  require('../chunk-REH7PX3N.cjs');
22
22
  require('../chunk-H32DV7XS.cjs');
@@ -38,10 +38,10 @@ require('../chunk-JH6JTI76.cjs');
38
38
  var chunkIRY63R4L_cjs = require('../chunk-IRY63R4L.cjs');
39
39
  require('../chunk-UWIILWDI.cjs');
40
40
  require('../chunk-ZESMRGDV.cjs');
41
- var chunk7MOQO6NO_cjs = require('../chunk-7MOQO6NO.cjs');
42
- var chunkAESJLGMC_cjs = require('../chunk-AESJLGMC.cjs');
43
- var chunkZ3LFF3YT_cjs = require('../chunk-Z3LFF3YT.cjs');
41
+ var chunkRB54N5I7_cjs = require('../chunk-RB54N5I7.cjs');
42
+ var chunkNDKZ6OR3_cjs = require('../chunk-NDKZ6OR3.cjs');
44
43
  var chunkC2ECYOPP_cjs = require('../chunk-C2ECYOPP.cjs');
44
+ var chunkZ3LFF3YT_cjs = require('../chunk-Z3LFF3YT.cjs');
45
45
  var chunkTMX7YFVM_cjs = require('../chunk-TMX7YFVM.cjs');
46
46
  require('../chunk-QXNEXPUL.cjs');
47
47
  var chunkQZTNTP75_cjs = require('../chunk-QZTNTP75.cjs');
@@ -57,8 +57,8 @@ var chunkJIOHDVWH_cjs = require('../chunk-JIOHDVWH.cjs');
57
57
  var chunkRC25WMVB_cjs = require('../chunk-RC25WMVB.cjs');
58
58
  var chunkMZZ3SBQL_cjs = require('../chunk-MZZ3SBQL.cjs');
59
59
  var chunk5Y6V7F6W_cjs = require('../chunk-5Y6V7F6W.cjs');
60
- var chunkZZHMJXM5_cjs = require('../chunk-ZZHMJXM5.cjs');
61
- var chunkLFS6UWSJ_cjs = require('../chunk-LFS6UWSJ.cjs');
60
+ var chunkIXZCXK6Q_cjs = require('../chunk-IXZCXK6Q.cjs');
61
+ var chunkXWUGPV7H_cjs = require('../chunk-XWUGPV7H.cjs');
62
62
  var chunkAXAHA4LL_cjs = require('../chunk-AXAHA4LL.cjs');
63
63
  var chunkY5WE72RB_cjs = require('../chunk-Y5WE72RB.cjs');
64
64
  var chunk4623VCCR_cjs = require('../chunk-4623VCCR.cjs');
@@ -68,10 +68,11 @@ var chunkNSD37OF5_cjs = require('../chunk-NSD37OF5.cjs');
68
68
  var chunkZU2B2RZK_cjs = require('../chunk-ZU2B2RZK.cjs');
69
69
  require('../chunk-72YEEUH7.cjs');
70
70
  require('../chunk-D54JXTPG.cjs');
71
- var chunkCJF7B5A7_cjs = require('../chunk-CJF7B5A7.cjs');
71
+ var chunkQVBZESYQ_cjs = require('../chunk-QVBZESYQ.cjs');
72
+ var chunkDRUNPUDT_cjs = require('../chunk-DRUNPUDT.cjs');
72
73
  var chunkZXW6WFZG_cjs = require('../chunk-ZXW6WFZG.cjs');
73
- var chunkRFIBUWLF_cjs = require('../chunk-RFIBUWLF.cjs');
74
74
  require('../chunk-I4IS6ST6.cjs');
75
+ var chunkRFIBUWLF_cjs = require('../chunk-RFIBUWLF.cjs');
75
76
  var chunkK26RLK2Y_cjs = require('../chunk-K26RLK2Y.cjs');
76
77
  require('../chunk-3YEXZX4H.cjs');
77
78
  var chunkAQPZ4QMV_cjs = require('../chunk-AQPZ4QMV.cjs');
@@ -83,7 +84,6 @@ require('../chunk-AHDJXIUB.cjs');
83
84
  var chunk2EI7NCUA_cjs = require('../chunk-2EI7NCUA.cjs');
84
85
  require('../chunk-2UYT7MIX.cjs');
85
86
  var chunkLKK52DEY_cjs = require('../chunk-LKK52DEY.cjs');
86
- var chunkQVBZESYQ_cjs = require('../chunk-QVBZESYQ.cjs');
87
87
  var chunkLM6IGIXR_cjs = require('../chunk-LM6IGIXR.cjs');
88
88
  var chunkHXSIR4PI_cjs = require('../chunk-HXSIR4PI.cjs');
89
89
  var chunkCG757WKY_cjs = require('../chunk-CG757WKY.cjs');
@@ -100,15 +100,15 @@ var chunkMOIZ2R5X_cjs = require('../chunk-MOIZ2R5X.cjs');
100
100
  var chunkEFS3XXZS_cjs = require('../chunk-EFS3XXZS.cjs');
101
101
  var chunkWVEFRQSW_cjs = require('../chunk-WVEFRQSW.cjs');
102
102
  var chunkZW6FPIFC_cjs = require('../chunk-ZW6FPIFC.cjs');
103
- var chunkTVHTXO6V_cjs = require('../chunk-TVHTXO6V.cjs');
104
- require('../chunk-PNZVUH46.cjs');
103
+ var chunk56WWEK6I_cjs = require('../chunk-56WWEK6I.cjs');
104
+ require('../chunk-LAQ3Y5JP.cjs');
105
105
  require('../chunk-LT6WRY7A.cjs');
106
106
  var chunk2NW66KJF_cjs = require('../chunk-2NW66KJF.cjs');
107
107
  var chunkDASZUEP3_cjs = require('../chunk-DASZUEP3.cjs');
108
108
  var chunkUVZSX6GP_cjs = require('../chunk-UVZSX6GP.cjs');
109
109
  var chunkWWFHS6EI_cjs = require('../chunk-WWFHS6EI.cjs');
110
110
  require('../chunk-Z2XZ2D4N.cjs');
111
- var chunkITRI47DF_cjs = require('../chunk-ITRI47DF.cjs');
111
+ var chunkGMGEAWFX_cjs = require('../chunk-GMGEAWFX.cjs');
112
112
  require('../chunk-KQF7POTG.cjs');
113
113
  require('../chunk-IN6ILI5A.cjs');
114
114
  require('../chunk-BRDCHYIT.cjs');
@@ -233,7 +233,7 @@ function ConnectedWorkspaceActivity({
233
233
  [feed.data]
234
234
  );
235
235
  return /* @__PURE__ */ jsxRuntime.jsx(
236
- chunk7MOQO6NO_cjs.WorkspaceActivityList,
236
+ chunkRB54N5I7_cjs.WorkspaceActivityList,
237
237
  {
238
238
  ...listProps,
239
239
  items,
@@ -1370,7 +1370,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
1370
1370
  onChange: (e) => {
1371
1371
  const file = e.target.files?.[0];
1372
1372
  e.target.value = "";
1373
- if (file) void add(() => chunkCJF7B5A7_cjs.importSkillFile(file));
1373
+ if (file) void add(() => chunkDRUNPUDT_cjs.importSkillFile(file));
1374
1374
  }
1375
1375
  }
1376
1376
  ),
@@ -1395,7 +1395,7 @@ function ConnectedSkillUpload({ onDone, labels, className }) {
1395
1395
  className: "space-y-2",
1396
1396
  onSubmit: (e) => {
1397
1397
  e.preventDefault();
1398
- if (url.trim()) void add(() => chunkCJF7B5A7_cjs.importSkillFromUrl(url));
1398
+ if (url.trim()) void add(() => chunkDRUNPUDT_cjs.importSkillFromUrl(url));
1399
1399
  },
1400
1400
  children: [
1401
1401
  /* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "skills-add-url", children: l.fromLink }),
@@ -1458,9 +1458,9 @@ function ConnectedSkillsLibrary({
1458
1458
  const [type, setType] = react$1.useState("all");
1459
1459
  const [view, setView] = react$1.useState("gallery");
1460
1460
  const [isBusy, setIsBusy] = react$1.useState(false);
1461
- const all = react$1.useMemo(() => chunkCJF7B5A7_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
1461
+ const all = react$1.useMemo(() => chunkDRUNPUDT_cjs.buildLibrarySkills(builtins, listings ?? []), [builtins, listings]);
1462
1462
  const shown = react$1.useMemo(
1463
- () => chunkCJF7B5A7_cjs.filterLibrarySkills(all, { query, source, type }),
1463
+ () => chunkDRUNPUDT_cjs.filterLibrarySkills(all, { query, source, type }),
1464
1464
  [all, query, source, type]
1465
1465
  );
1466
1466
  const current = all.find((s) => s.slug === selected) ?? null;
@@ -1471,21 +1471,21 @@ function ConnectedSkillsLibrary({
1471
1471
  const count2 = (s) => all.filter((x) => x.source === s).length;
1472
1472
  const sourceOptions = [
1473
1473
  { id: "all", label: "All", count: all.length },
1474
- { id: "builtin", label: chunkCJF7B5A7_cjs.SKILL_SOURCE_LABELS.builtin, count: count2("builtin") },
1475
- { id: "mine", label: chunkCJF7B5A7_cjs.SKILL_SOURCE_LABELS.mine, count: count2("mine") },
1476
- { id: "shared", label: chunkCJF7B5A7_cjs.SKILL_SOURCE_LABELS.shared, count: count2("shared") }
1474
+ { id: "builtin", label: chunkDRUNPUDT_cjs.SKILL_SOURCE_LABELS.builtin, count: count2("builtin") },
1475
+ { id: "mine", label: chunkDRUNPUDT_cjs.SKILL_SOURCE_LABELS.mine, count: count2("mine") },
1476
+ { id: "shared", label: chunkDRUNPUDT_cjs.SKILL_SOURCE_LABELS.shared, count: count2("shared") }
1477
1477
  ];
1478
1478
  const types = [...new Set(all.map((s) => s.type))];
1479
1479
  const typeOptions = [
1480
1480
  { id: "all", label: "Any kind" },
1481
- ...types.map((t) => ({ id: t, label: chunkCJF7B5A7_cjs.SKILL_TYPE_LABELS[t] ?? t }))
1481
+ ...types.map((t) => ({ id: t, label: chunkDRUNPUDT_cjs.SKILL_TYPE_LABELS[t] ?? t }))
1482
1482
  ];
1483
1483
  const pick = (slug) => {
1484
1484
  setSelected(slug);
1485
1485
  setMode("detail");
1486
1486
  };
1487
1487
  const markdownOf = async (skill) => {
1488
- if (!skill.docExtId) return chunkCJF7B5A7_cjs.workflowToSkillMarkdown(skill.workflow);
1488
+ if (!skill.docExtId) return chunkDRUNPUDT_cjs.workflowToSkillMarkdown(skill.workflow);
1489
1489
  const response = await arbi.documents.download(skill.docExtId);
1490
1490
  if (!response.ok) throw new Error(`Could not read the skill (${response.status})`);
1491
1491
  return response.text();
@@ -1549,7 +1549,7 @@ function ConnectedSkillsLibrary({
1549
1549
  try {
1550
1550
  documentTools.downloadBlob(
1551
1551
  new Blob([await markdownOf(skill)], { type: "text/markdown" }),
1552
- chunkCJF7B5A7_cjs.SKILL_MAIN_FILENAME
1552
+ chunkDRUNPUDT_cjs.SKILL_MAIN_FILENAME
1553
1553
  );
1554
1554
  } catch (error) {
1555
1555
  notify16(errorText(error, "Could not export the skill"), "error");
@@ -1590,10 +1590,10 @@ function ConnectedSkillsLibrary({
1590
1590
  }
1591
1591
  )
1592
1592
  ] }),
1593
- /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.SkillViewToggle, { value: view, onChange: setView })
1593
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.SkillViewToggle, { value: view, onChange: setView })
1594
1594
  ] }),
1595
1595
  /* @__PURE__ */ jsxRuntime.jsx(
1596
- chunkCJF7B5A7_cjs.SkillFilterChips,
1596
+ chunkDRUNPUDT_cjs.SkillFilterChips,
1597
1597
  {
1598
1598
  label: "Show",
1599
1599
  value: source,
@@ -1602,7 +1602,7 @@ function ConnectedSkillsLibrary({
1602
1602
  }
1603
1603
  ),
1604
1604
  types.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
1605
- chunkCJF7B5A7_cjs.SkillFilterChips,
1605
+ chunkDRUNPUDT_cjs.SkillFilterChips,
1606
1606
  {
1607
1607
  label: "Kind",
1608
1608
  value: type,
@@ -1649,12 +1649,12 @@ function ConnectedSkillsLibrary({
1649
1649
  view === "gallery" ? "grid grid-cols-[repeat(auto-fill,minmax(9.5rem,1fr))]" : "flex flex-col"
1650
1650
  ),
1651
1651
  children: shown.map((skill) => /* @__PURE__ */ jsxRuntime.jsx(
1652
- chunkCJF7B5A7_cjs.SkillTile,
1652
+ chunkDRUNPUDT_cjs.SkillTile,
1653
1653
  {
1654
1654
  name: skill.title,
1655
1655
  testId: `skill-tile-${skill.slug}`,
1656
1656
  description: skill.description,
1657
- sourceLabel: skill.isShared ? `${chunkCJF7B5A7_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkCJF7B5A7_cjs.SKILL_SOURCE_LABELS[skill.source],
1657
+ sourceLabel: skill.isShared ? `${chunkDRUNPUDT_cjs.SKILL_SOURCE_LABELS.mine}, shared` : chunkDRUNPUDT_cjs.SKILL_SOURCE_LABELS[skill.source],
1658
1658
  type: skill.type,
1659
1659
  icon,
1660
1660
  layout: view,
@@ -1689,7 +1689,7 @@ function ConnectedSkillsLibrary({
1689
1689
  }
1690
1690
  ),
1691
1691
  mode === "new" && /* @__PURE__ */ jsxRuntime.jsx(
1692
- chunkCJF7B5A7_cjs.SkillGenerateForm,
1692
+ chunkDRUNPUDT_cjs.SkillGenerateForm,
1693
1693
  {
1694
1694
  icon,
1695
1695
  onGenerate: (desc) => {
@@ -1716,11 +1716,11 @@ function ConnectedSkillsLibrary({
1716
1716
  ),
1717
1717
  mode === "add" && /* @__PURE__ */ jsxRuntime.jsx(ConnectedSkillUpload, { onDone: done }),
1718
1718
  mode === "detail" && current && /* @__PURE__ */ jsxRuntime.jsx(
1719
- chunkCJF7B5A7_cjs.SkillLibraryDetail,
1719
+ chunkDRUNPUDT_cjs.SkillLibraryDetail,
1720
1720
  {
1721
1721
  skill: current,
1722
1722
  icon,
1723
- instructions: current.docExtId ? currentText ? chunkCJF7B5A7_cjs.parseSkillFrontmatter(currentText, chunkCJF7B5A7_cjs.SKILL_MAIN_FILENAME).content : "" : current.workflow.run.kind === "prompt" ? current.workflow.run.promptTemplate : "",
1723
+ instructions: current.docExtId ? currentText ? chunkDRUNPUDT_cjs.parseSkillFrontmatter(currentText, chunkDRUNPUDT_cjs.SKILL_MAIN_FILENAME).content : "" : current.workflow.run.kind === "prompt" ? current.workflow.run.promptTemplate : "",
1724
1724
  isLoading: !!current.docExtId && textLoading,
1725
1725
  actions: {
1726
1726
  onRun: () => onRun(current.slug),
@@ -1755,7 +1755,7 @@ function SkillEditor({
1755
1755
  const [seeded, setSeeded] = react$1.useState(!isEditing);
1756
1756
  const [nameError, setNameError] = react$1.useState(null);
1757
1757
  if (isEditing && !seeded && text2 !== void 0) {
1758
- const parsed = chunkCJF7B5A7_cjs.parseSkillFrontmatter(text2, chunkCJF7B5A7_cjs.SKILL_MAIN_FILENAME);
1758
+ const parsed = chunkDRUNPUDT_cjs.parseSkillFrontmatter(text2, chunkDRUNPUDT_cjs.SKILL_MAIN_FILENAME);
1759
1759
  setDescription(parsed.description ?? "");
1760
1760
  setBody(parsed.content ?? "");
1761
1761
  setSeeded(true);
@@ -1769,15 +1769,15 @@ function SkillEditor({
1769
1769
  notify16("Add a short description.", "error");
1770
1770
  return;
1771
1771
  }
1772
- const slug = chunkCJF7B5A7_cjs.skillSlug(name);
1772
+ const slug = chunkDRUNPUDT_cjs.skillSlug(name);
1773
1773
  try {
1774
- await onSave(slug, chunkCJF7B5A7_cjs.serializeSkill({ name: slug, description, body }), isEditing);
1774
+ await onSave(slug, chunkDRUNPUDT_cjs.serializeSkill({ name: slug, description, body }), isEditing);
1775
1775
  } catch (err) {
1776
1776
  notify16(errorText(err, "Could not save the skill"), "error");
1777
1777
  }
1778
1778
  };
1779
1779
  return /* @__PURE__ */ jsxRuntime.jsx(
1780
- chunkCJF7B5A7_cjs.SkillEditForm,
1780
+ chunkDRUNPUDT_cjs.SkillEditForm,
1781
1781
  {
1782
1782
  name,
1783
1783
  onNameChange: setName,
@@ -1816,7 +1816,7 @@ var DEFAULT_CONNECTED_SKILLS_BROWSER_LABELS = {
1816
1816
  function ConnectedSkillsBrowser({
1817
1817
  props,
1818
1818
  onClose: close,
1819
- builtins = chunkCJF7B5A7_cjs.BUILTIN_SKILLS,
1819
+ builtins = chunkDRUNPUDT_cjs.BUILTIN_SKILLS,
1820
1820
  renderEditor,
1821
1821
  labels
1822
1822
  }) {
@@ -1869,7 +1869,7 @@ function ConnectedSkillsBrowser({
1869
1869
  }
1870
1870
  ) }),
1871
1871
  runSkillId && /* @__PURE__ */ jsxRuntime.jsx(
1872
- chunkJSHBC47B_cjs.ConnectedTaskComposer,
1872
+ chunkBP5KBZLX_cjs.ConnectedTaskComposer,
1873
1873
  {
1874
1874
  kind: "workflow",
1875
1875
  open: true,
@@ -1893,9 +1893,9 @@ function ConnectedAgentCreator({
1893
1893
  agent,
1894
1894
  initialName,
1895
1895
  onSaved,
1896
- capabilities = chunkCJF7B5A7_cjs.DEFAULT_AGENT_CAPABILITIES,
1897
- templates = chunkCJF7B5A7_cjs.DEFAULT_AGENT_TEMPLATES,
1898
- types = chunkCJF7B5A7_cjs.DEFAULT_AGENT_TYPES,
1896
+ capabilities = chunkDRUNPUDT_cjs.DEFAULT_AGENT_CAPABILITIES,
1897
+ templates = chunkDRUNPUDT_cjs.DEFAULT_AGENT_TEMPLATES,
1898
+ types = chunkDRUNPUDT_cjs.DEFAULT_AGENT_TYPES,
1899
1899
  canRevokeWorkspaces = false,
1900
1900
  labels
1901
1901
  }) {
@@ -1937,7 +1937,7 @@ function ConnectedAgentCreator({
1937
1937
  const initialValues = react$1.useMemo(
1938
1938
  () => ({
1939
1939
  name: agent?.given_name ?? initialName ?? "",
1940
- persona: isEdit ? chunkCJF7B5A7_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
1940
+ persona: isEdit ? chunkDRUNPUDT_cjs.stripPersonaPreamble(String(agents.PERSONA ?? "")) : "",
1941
1941
  modelName: String(agents.AGENT_MODEL_NAME ?? ""),
1942
1942
  capabilities: Object.fromEntries(capabilities.map(({ key }) => [key, Boolean(agents[key])])),
1943
1943
  type: "builtin",
@@ -1956,7 +1956,7 @@ function ConnectedAgentCreator({
1956
1956
  try {
1957
1957
  let agentExtId = agent?.external_id ?? early?.id ?? "";
1958
1958
  if (!agentExtId) {
1959
- if (!chunkCJF7B5A7_cjs.isValidAgentName(values.name)) {
1959
+ if (!chunkDRUNPUDT_cjs.isValidAgentName(values.name)) {
1960
1960
  notify16("Give the agent a name first.", "error");
1961
1961
  return;
1962
1962
  }
@@ -1992,7 +1992,7 @@ function ConnectedAgentCreator({
1992
1992
  title: `agent-${name}`,
1993
1993
  sections: {
1994
1994
  Agents: {
1995
- PERSONA: chunkCJF7B5A7_cjs.composePersona(name, values.persona),
1995
+ PERSONA: chunkDRUNPUDT_cjs.composePersona(name, values.persona),
1996
1996
  ...values.modelName ? { AGENT_MODEL_NAME: values.modelName } : {},
1997
1997
  ...Object.fromEntries(capabilities.map(({ key }) => [key, !!values.capabilities[key]])),
1998
1998
  ENABLED_SKILLS: values.capabilities.SKILLS_ENABLED && skills.length ? skills : null,
@@ -2015,7 +2015,7 @@ function ConnectedAgentCreator({
2015
2015
  };
2016
2016
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2017
2017
  /* @__PURE__ */ jsxRuntime.jsx(
2018
- chunkCJF7B5A7_cjs.AgentCreator,
2018
+ chunkDRUNPUDT_cjs.AgentCreator,
2019
2019
  {
2020
2020
  open: ready,
2021
2021
  onOpenChange,
@@ -2031,11 +2031,11 @@ function ConnectedAgentCreator({
2031
2031
  ) : void 0,
2032
2032
  revokingWorkspaceId: revokeAccess.isPending ? revokeAccess.variables?.workspaceId : void 0,
2033
2033
  avatar: (values) => /* @__PURE__ */ jsxRuntime.jsx(
2034
- chunkCJF7B5A7_cjs.AgentAvatarField,
2034
+ chunkDRUNPUDT_cjs.AgentAvatarField,
2035
2035
  {
2036
2036
  picture,
2037
2037
  isBusy: avatarBusy,
2038
- canGenerate: isEdit || chunkCJF7B5A7_cjs.isValidAgentName(values.name),
2038
+ canGenerate: isEdit || chunkDRUNPUDT_cjs.isValidAgentName(values.name),
2039
2039
  onGenerate: () => handleGenerateAvatar(values)
2040
2040
  }
2041
2041
  ),
@@ -2087,7 +2087,7 @@ function ConnectedAgentCreator({
2087
2087
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: "Connect your agent" }),
2088
2088
  /* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: "This key is shown once. Run the script on the machine that will host the agent." })
2089
2089
  ] }),
2090
- connect && /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
2090
+ connect && /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.AgentConnectInstructions, { email: connect.email, signingKey: connect.signingKey })
2091
2091
  ]
2092
2092
  }
2093
2093
  ) })
@@ -2536,7 +2536,7 @@ function useMemoryCount(enabled) {
2536
2536
  }
2537
2537
  function AgentsTasks({ tasks, isLoading, agents, labels: l, onCompose }) {
2538
2538
  const { notify: notify16, openConversation, openDocument } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
2539
- const people = chunkJSHBC47B_cjs.useTaskPeople();
2539
+ const people = chunkBP5KBZLX_cjs.useTaskPeople();
2540
2540
  const canEditShared = react.useCanEditShared();
2541
2541
  const isWorkspaceOwner = react.useIsWorkspaceOwner();
2542
2542
  const { data: workflows = [] } = react.useWorkflows({ live: true });
@@ -2562,7 +2562,7 @@ function AgentsTasks({ tasks, isLoading, agents, labels: l, onCompose }) {
2562
2562
  }, [documents]);
2563
2563
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2564
2564
  /* @__PURE__ */ jsxRuntime.jsx(
2565
- chunkCJF7B5A7_cjs.TaskTable,
2565
+ chunkDRUNPUDT_cjs.TaskTable,
2566
2566
  {
2567
2567
  tasks,
2568
2568
  isLoading,
@@ -2589,7 +2589,7 @@ function AgentsTasks({ tasks, isLoading, agents, labels: l, onCompose }) {
2589
2589
  }
2590
2590
  ),
2591
2591
  activityFor && /* @__PURE__ */ jsxRuntime.jsx(
2592
- chunkJSHBC47B_cjs.ConnectedTaskActivityDialog,
2592
+ chunkBP5KBZLX_cjs.ConnectedTaskActivityDialog,
2593
2593
  {
2594
2594
  conversationId: activityFor.external_id,
2595
2595
  taskName: activityFor.title || l.untitledTask,
@@ -2611,7 +2611,7 @@ function AgentsLauncher({
2611
2611
  const { notify: notify16, openConversation } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
2612
2612
  const { workspaceId, ensureWorkspaceOpen } = chunkKGAYUFXD_cjs.useConnectedWorkspace();
2613
2613
  const { data: skills = [] } = react.useSkills({ enabled: includeSkills && !!workspaceId, live: true });
2614
- const workflowTasks = chunkJSHBC47B_cjs.useWorkflowTasks();
2614
+ const workflowTasks = chunkBP5KBZLX_cjs.useWorkflowTasks();
2615
2615
  const launchable = react$1.useMemo(
2616
2616
  () => [
2617
2617
  ...workflows,
@@ -2634,7 +2634,7 @@ function AgentsLauncher({
2634
2634
  [workflows, includeSkills, skills, l.skillFiles]
2635
2635
  );
2636
2636
  const launch = async ({ workflow, inputs, agentId }) => {
2637
- const values = chunkCJF7B5A7_cjs.defaultTaskComposerValues(launchable, {
2637
+ const values = chunkDRUNPUDT_cjs.defaultTaskComposerValues(launchable, {
2638
2638
  workflowId: workflow.id,
2639
2639
  assignee: "agent",
2640
2640
  inputs,
@@ -2758,7 +2758,7 @@ function ConnectedAgentsPage({
2758
2758
  labels: agentOptions.managementLabels
2759
2759
  });
2760
2760
  const { agents, isLoading: agentsLoading } = management;
2761
- const tasksByAgent = react$1.useMemo(() => chunkCJF7B5A7_cjs.groupAgentTasks(tasks), [tasks]);
2761
+ const tasksByAgent = react$1.useMemo(() => chunkDRUNPUDT_cjs.groupAgentTasks(tasks), [tasks]);
2762
2762
  const behaviour = useAgentBehaviour(
2763
2763
  l.defaultBehaviour,
2764
2764
  details.includes("behaviour") || sections.includes("stats")
@@ -2783,7 +2783,7 @@ function ConnectedAgentsPage({
2783
2783
  renderDetails?.(agent)
2784
2784
  ] });
2785
2785
  const gallery = /* @__PURE__ */ jsxRuntime.jsx(
2786
- chunkCJF7B5A7_cjs.AgentGallery,
2786
+ chunkDRUNPUDT_cjs.AgentGallery,
2787
2787
  {
2788
2788
  count: agents.length,
2789
2789
  onCreate: management.create,
@@ -2793,10 +2793,10 @@ function ConnectedAgentsPage({
2793
2793
  const agentTasks = tasksByAgent.get(agent.external_id) ?? [];
2794
2794
  const running = agentTasks.filter((t) => t.in_progress);
2795
2795
  const watchConversationId = running[0]?.external_id ?? null;
2796
- const progress = agentTasks[0] ? chunkCJF7B5A7_cjs.goalProgress(agentTasks[0]) : null;
2796
+ const progress = agentTasks[0] ? chunkDRUNPUDT_cjs.goalProgress(agentTasks[0]) : null;
2797
2797
  const name = displayName(agent);
2798
2798
  return /* @__PURE__ */ jsxRuntime.jsx(
2799
- chunkCJF7B5A7_cjs.AgentCard,
2799
+ chunkDRUNPUDT_cjs.AgentCard,
2800
2800
  {
2801
2801
  name,
2802
2802
  avatar: avatar === "icon" ? /* @__PURE__ */ jsxRuntime.jsx(AgentIconAvatar, {}) : /* @__PURE__ */ jsxRuntime.jsx(AgentInitialsAvatar, { agent }),
@@ -2923,7 +2923,7 @@ function ConnectedAgentsPage({
2923
2923
  const dialogs = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2924
2924
  /* @__PURE__ */ jsxRuntime.jsx(ConnectedAgentCreator, { ...management.editorProps, ...agentOptions.creator }),
2925
2925
  taskDialog && /* @__PURE__ */ jsxRuntime.jsx(
2926
- chunkJSHBC47B_cjs.ConnectedTaskComposer,
2926
+ chunkBP5KBZLX_cjs.ConnectedTaskComposer,
2927
2927
  {
2928
2928
  open: true,
2929
2929
  onOpenChange: (open) => !open && setTaskDialog(null),
@@ -3223,7 +3223,7 @@ function ConnectedTagTable({
3223
3223
  const fail2 = (fallback) => (e) => notify16(browser.refusalReason(e, fallback), "error");
3224
3224
  const snapshot2 = (data) => {
3225
3225
  const title = exportTitle ?? ui.tagKindTitle(kind, { plural: true });
3226
- const bytes = chunk7MOQO6NO_cjs.tagTableDocx(data, {
3226
+ const bytes = chunkRB54N5I7_cjs.tagTableDocx(data, {
3227
3227
  title,
3228
3228
  nameOf: (id) => people.find((p) => p.value === id)?.label
3229
3229
  });
@@ -3232,7 +3232,7 @@ function ConnectedTagTable({
3232
3232
  return { blob: new Blob([bytes], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }), name };
3233
3233
  };
3234
3234
  return /* @__PURE__ */ jsxRuntime.jsx(
3235
- chunk7MOQO6NO_cjs.TagTable,
3235
+ chunkRB54N5I7_cjs.TagTable,
3236
3236
  {
3237
3237
  ...props,
3238
3238
  table,
@@ -3370,9 +3370,9 @@ function GlossaryExport({ labelId, nameOf }) {
3370
3370
  const narrowed = agreements.find((a) => a.id === narrowTo);
3371
3371
  const title = narrowed ? `Glossary - ${narrowed.name}` : "Glossary";
3372
3372
  const download = (format) => {
3373
- const entries = chunk7MOQO6NO_cjs.glossaryEntries(sources, { labelId: narrowed?.id });
3374
- const blob = format === "docx" ? new Blob([chunk7MOQO6NO_cjs.glossaryDocx(entries, { title })], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }) : new Blob([chunk7MOQO6NO_cjs.glossaryMarkdown(entries, { title })], { type: "text/markdown" });
3375
- documentTools.downloadBlob(blob, chunk7MOQO6NO_cjs.glossaryFileName(title, format));
3373
+ const entries = chunkRB54N5I7_cjs.glossaryEntries(sources, { labelId: narrowed?.id });
3374
+ const blob = format === "docx" ? new Blob([chunkRB54N5I7_cjs.glossaryDocx(entries, { title })], { type: chunkJIOHDVWH_cjs.DOCX_MIME_TYPE }) : new Blob([chunkRB54N5I7_cjs.glossaryMarkdown(entries, { title })], { type: "text/markdown" });
3375
+ documentTools.downloadBlob(blob, chunkRB54N5I7_cjs.glossaryFileName(title, format));
3376
3376
  };
3377
3377
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", "data-testid": "tags-glossary", children: [
3378
3378
  agreements.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3917,7 +3917,7 @@ function KindSection({
3917
3917
  {
3918
3918
  testId: `tags-kind-${kind}`,
3919
3919
  title: ui.tagKindTitle(kind, { plural: true }),
3920
- description: chunk7MOQO6NO_cjs.tagKindDescription(kind),
3920
+ description: chunkRB54N5I7_cjs.tagKindDescription(kind),
3921
3921
  actions: picker,
3922
3922
  children: [
3923
3923
  browser.isEntityTag({ kind }) && extractingCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
@@ -3928,9 +3928,9 @@ function KindSection({
3928
3928
  children: [
3929
3929
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-4 animate-spin" }),
3930
3930
  "Extracting ",
3931
- chunk7MOQO6NO_cjs.entitiesPhrase().toLowerCase(),
3931
+ chunkRB54N5I7_cjs.entitiesPhrase().toLowerCase(),
3932
3932
  " from ",
3933
- chunk7MOQO6NO_cjs.documentCount(extractingCount),
3933
+ chunkRB54N5I7_cjs.documentCount(extractingCount),
3934
3934
  "\u2026"
3935
3935
  ]
3936
3936
  }
@@ -3948,7 +3948,7 @@ function KindSection({
3948
3948
  onOpenDocument: (id) => openDocument(id),
3949
3949
  onOpenFact: ctx.onOpenFact,
3950
3950
  onOpenThread: (id) => openConversation(id),
3951
- labels: chunk7MOQO6NO_cjs.tagTableLabels(kind),
3951
+ labels: chunkRB54N5I7_cjs.tagTableLabels(kind),
3952
3952
  testId: `tags-table-${kind}`
3953
3953
  }
3954
3954
  )
@@ -4050,12 +4050,12 @@ function TagSection({
4050
4050
  onOpenDocument: (id) => openDocument(id),
4051
4051
  onOpenFact: ctx.onOpenFact,
4052
4052
  onOpenThread: (id) => openConversation(id),
4053
- labels: chunk7MOQO6NO_cjs.tagTableLabels(tag.kind),
4053
+ labels: chunkRB54N5I7_cjs.tagTableLabels(tag.kind),
4054
4054
  testId: "tags-rows"
4055
4055
  }
4056
4056
  ),
4057
4057
  /* @__PURE__ */ jsxRuntime.jsx(
4058
- chunk7MOQO6NO_cjs.TagDetail,
4058
+ chunkRB54N5I7_cjs.TagDetail,
4059
4059
  {
4060
4060
  row: detailRow && narrowTagRow(detailRow, ctx.filter.matches),
4061
4061
  fields: schema.data?.fields ?? [],
@@ -4067,10 +4067,10 @@ function TagSection({
4067
4067
  onOpenDocument: (id) => openDocument(id),
4068
4068
  onOpenFact: ctx.onOpenFact,
4069
4069
  onOpenThread: (id) => openConversation(id),
4070
- noteLabel: chunk7MOQO6NO_cjs.tagNoteLabel(tag.kind),
4070
+ noteLabel: chunkRB54N5I7_cjs.tagNoteLabel(tag.kind),
4071
4071
  noteIsValue: tag.kind === "annotation",
4072
4072
  renderPassages: (d, label) => renderPassages(d.doc_ext_id, label),
4073
- labels: chunk7MOQO6NO_cjs.tagDetailLabels(),
4073
+ labels: chunkRB54N5I7_cjs.tagDetailLabels(),
4074
4074
  testId: "tags-detail"
4075
4075
  }
4076
4076
  )
@@ -4158,7 +4158,7 @@ function ConnectedTagsPage({
4158
4158
  const onDelete = async (t) => {
4159
4159
  const nested = browser.getChildTags([...tags], t.external_id);
4160
4160
  const uses = browser.tagUseCount(t);
4161
- const n2 = chunk7MOQO6NO_cjs.tagsPageNouns();
4161
+ const n2 = chunkRB54N5I7_cjs.tagsPageNouns();
4162
4162
  const tagNoun = (count2) => (count2 === 1 ? n2.tag : n2.tags).toLowerCase();
4163
4163
  const carriers = uses === 1 ? `${n2.document}, ${n2.fact} or ${n2.thread}` : `${n2.documents}, ${n2.facts} and ${n2.threads}`;
4164
4164
  const message = `Delete ${ui.tagKindNouns(t.kind).singular} "${t.name}"?` + (uses > 0 ? `
@@ -4179,16 +4179,16 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
4179
4179
  try {
4180
4180
  await extract.mutateAsync(docIds);
4181
4181
  notify16(
4182
- `Extracting ${chunk7MOQO6NO_cjs.entitiesPhrase().toLowerCase()} from ${chunk7MOQO6NO_cjs.documentCount(docIds.length)}. You will be notified when it is done.`,
4182
+ `Extracting ${chunkRB54N5I7_cjs.entitiesPhrase().toLowerCase()} from ${chunkRB54N5I7_cjs.documentCount(docIds.length)}. You will be notified when it is done.`,
4183
4183
  "info"
4184
4184
  );
4185
4185
  } catch (error) {
4186
- notify16(browser.refusalReason(error, `Could not extract ${chunk7MOQO6NO_cjs.entitiesPhrase().toLowerCase()}`), "error");
4186
+ notify16(browser.refusalReason(error, `Could not extract ${chunkRB54N5I7_cjs.entitiesPhrase().toLowerCase()}`), "error");
4187
4187
  throw error;
4188
4188
  }
4189
4189
  };
4190
4190
  const picker = /* @__PURE__ */ jsxRuntime.jsx(
4191
- chunk7MOQO6NO_cjs.TagPicker,
4191
+ chunkRB54N5I7_cjs.TagPicker,
4192
4192
  {
4193
4193
  tags: viewTags,
4194
4194
  selectedId: tag?.external_id,
@@ -4202,10 +4202,10 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
4202
4202
  onOpenTag: openTag,
4203
4203
  onOpenFact
4204
4204
  };
4205
- const n = chunk7MOQO6NO_cjs.tagsPageNouns();
4205
+ const n = chunkRB54N5I7_cjs.tagsPageNouns();
4206
4206
  const action = view === "person" || view === "organisation" ? {
4207
4207
  label: "Extract",
4208
- title: `Extract ${chunk7MOQO6NO_cjs.entitiesPhrase().toLowerCase()} from ${n.documents.toLowerCase()}`,
4208
+ title: `Extract ${chunkRB54N5I7_cjs.entitiesPhrase().toLowerCase()} from ${n.documents.toLowerCase()}`,
4209
4209
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "h-4 w-4" }),
4210
4210
  run: () => setExtracting(true),
4211
4211
  testId: "tags-extract-entities"
@@ -4355,7 +4355,7 @@ ${nested.length} nested ${tagNoun(nested.length)} ${nested.length === 1 ? "moves
4355
4355
  }
4356
4356
  ),
4357
4357
  /* @__PURE__ */ jsxRuntime.jsx(
4358
- chunk7MOQO6NO_cjs.ExtractEntitiesDialog,
4358
+ chunkRB54N5I7_cjs.ExtractEntitiesDialog,
4359
4359
  {
4360
4360
  open: extracting,
4361
4361
  onOpenChange: setExtracting,
@@ -6358,7 +6358,7 @@ function ConnectedFactsPage({
6358
6358
  onNewFact: composing && !editingId ? () => void 0 : composer.startNewFact,
6359
6359
  navSlotRef: setNavSlot,
6360
6360
  navigator: view === "table" ? /* @__PURE__ */ jsxRuntime.jsx(
6361
- chunk7MOQO6NO_cjs.GridRowNavigator,
6361
+ chunkRB54N5I7_cjs.GridRowNavigator,
6362
6362
  {
6363
6363
  gridApi,
6364
6364
  selectedId: editingId,
@@ -8828,7 +8828,7 @@ function AppearanceSection({
8828
8828
  description,
8829
8829
  testId: appearance ? "settings-appearance-theme" : "settings-appearance",
8830
8830
  children: /* @__PURE__ */ jsxRuntime.jsx(
8831
- chunkAESJLGMC_cjs.ThemeEditor,
8831
+ chunkNDKZ6OR3_cjs.ThemeEditor,
8832
8832
  {
8833
8833
  bundle: theme,
8834
8834
  variant: "collapsed",
@@ -10097,13 +10097,13 @@ function ConnectedWorkspaceSettings({
10097
10097
  const [membersExpanded, setMembersExpanded] = react$1.useState(false);
10098
10098
  const [shareOpen, setShareOpen] = react$1.useState(false);
10099
10099
  if (!workspace) {
10100
- return /* @__PURE__ */ jsxRuntime.jsx(chunk2GSZG6KA_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(chunk7MOQO6NO_cjs.LoadingIndicator, { message: "Loading workspace..." }) });
10100
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk2GSZG6KA_cjs.PageLoading, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkRB54N5I7_cjs.LoadingIndicator, { message: "Loading workspace..." }) });
10101
10101
  }
10102
10102
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
10103
10103
  /* @__PURE__ */ jsxRuntime.jsxs(chunk2GSZG6KA_cjs.WorkspacePageFrame, { testId, children: [
10104
10104
  /* @__PURE__ */ jsxRuntime.jsxs(chunk2GSZG6KA_cjs.WorkspaceIdentityPanel, { children: [
10105
10105
  /* @__PURE__ */ jsxRuntime.jsx(
10106
- chunk7MOQO6NO_cjs.EntityIdentityBar,
10106
+ chunkRB54N5I7_cjs.EntityIdentityBar,
10107
10107
  {
10108
10108
  testId: "workspace-identity-bar",
10109
10109
  canEdit: isOwner,
@@ -10120,7 +10120,7 @@ function ConnectedWorkspaceSettings({
10120
10120
  label: "Name",
10121
10121
  value: workspace.name,
10122
10122
  placeholder: "Untitled",
10123
- maxLength: chunk7MOQO6NO_cjs.IDENTITY_NAME_MAX_LENGTH,
10123
+ maxLength: chunkRB54N5I7_cjs.IDENTITY_NAME_MAX_LENGTH,
10124
10124
  valueClassName: "truncate text-base font-semibold",
10125
10125
  testId: "workspace-home-title",
10126
10126
  hideLabel: true,
@@ -12582,36 +12582,36 @@ function ConnectedSharePointAdminConsentPage({
12582
12582
  const result = givenResult === void 0 ? queryResult : givenResult;
12583
12583
  const { apiBaseUrl } = chunkT6GRWWRY_cjs.useBlocksEnvironment().runtimeConfig;
12584
12584
  const consentUrl = `${apiBaseUrl}/v1/connectors/microsoft_sharepoint/admin-consent`;
12585
- return /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.ConsentCard, { size: "md", children: [
12585
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkDRUNPUDT_cjs.ConsentCard, { size: "md", children: [
12586
12586
  /* @__PURE__ */ jsxRuntime.jsx(
12587
- chunkCJF7B5A7_cjs.ConsentHeader,
12587
+ chunkDRUNPUDT_cjs.ConsentHeader,
12588
12588
  {
12589
12589
  icon: /* @__PURE__ */ jsxRuntime.jsx(chunkVGNCU5JJ_cjs.VendorLogo, { vendorKey: "microsoft_sharepoint", product: "sharepoint" }),
12590
12590
  title: "Approve ARBI for SharePoint access",
12591
12591
  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."
12592
12592
  }
12593
12593
  ),
12594
- result === "granted" && /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_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." }),
12595
- result === "declined" && /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_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." }),
12596
- /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.ConsentSection, { title: "What you are approving", children: [
12594
+ result === "granted" && /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_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." }),
12595
+ result === "declined" && /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_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." }),
12596
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkDRUNPUDT_cjs.ConsentSection, { title: "What you are approving", children: [
12597
12597
  /* @__PURE__ */ jsxRuntime.jsx(
12598
- chunkCJF7B5A7_cjs.ConsentBulletList,
12598
+ chunkDRUNPUDT_cjs.ConsentBulletList,
12599
12599
  {
12600
12600
  items: [
12601
12601
  /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12602
- /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentStrong, { children: "Read SharePoint sites and files" }),
12602
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.ConsentStrong, { children: "Read SharePoint sites and files" }),
12603
12603
  " \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."
12604
12604
  ] }),
12605
12605
  /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
12606
- /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentStrong, { children: "Sign users in and keep access" }),
12606
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.ConsentStrong, { children: "Sign users in and keep access" }),
12607
12607
  " \u2014 standard sign-in (openid, profile, email) and offline access so syncs keep working between sessions."
12608
12608
  ] })
12609
12609
  ]
12610
12610
  }
12611
12611
  ),
12612
- /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_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." }),
12612
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_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." }),
12613
12613
  /* @__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" }) }),
12614
- /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_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." })
12614
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_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." })
12615
12615
  ] })
12616
12616
  ] }) });
12617
12617
  }
@@ -12825,6 +12825,13 @@ var PENDING_WORKSPACE_SHARE_VIEW = "runtime.pendingWorkspaceShare";
12825
12825
  var FIRST_LOGIN_WORKSPACES_VIEW = "runtime.firstLoginWorkspaces";
12826
12826
  var PAGE_TRANSITION_VIEW = "runtime.pageTransition";
12827
12827
  var SEEN_ADDON_BLOCKS_VIEW = "billing.seenAddonBlocks";
12828
+ var WELCOME_DIALOG_SESSION_KEY = "arbi-welcome-modal-shown";
12829
+ function skipWelcomeDialogThisSession() {
12830
+ try {
12831
+ sessionStorage.setItem(WELCOME_DIALOG_SESSION_KEY, "1");
12832
+ } catch {
12833
+ }
12834
+ }
12828
12835
  function withAddonBlocksBought(seen, projectExtId, blocks) {
12829
12836
  const before = seen[projectExtId];
12830
12837
  return {
@@ -14947,7 +14954,7 @@ function WorkspaceCardsView({
14947
14954
  const { groups, projects, selfId } = list;
14948
14955
  if (groups.length === 0) {
14949
14956
  return /* @__PURE__ */ jsxRuntime.jsx(chunk2GSZG6KA_cjs.WorkspaceList, { testId: "workspace-cards-list", className: "gap-0", children: /* @__PURE__ */ jsxRuntime.jsx(
14950
- chunkOM5IVNEW_cjs.CreateTile,
14957
+ chunkZ4KXF7WS_cjs.CreateTile,
14951
14958
  {
14952
14959
  label: `New ${workspaceLabel.toLowerCase()}`,
14953
14960
  ariaLabel: `Create ${workspaceLabel}`,
@@ -14992,7 +14999,7 @@ function WorkspaceCardsView({
14992
14999
  onToggle: () => list.toggleGroup(group.key),
14993
15000
  children: [
14994
15001
  group.isOwned && group.projectExtId && /* @__PURE__ */ jsxRuntime.jsx(
14995
- chunkOM5IVNEW_cjs.CreateTile,
15002
+ chunkZ4KXF7WS_cjs.CreateTile,
14996
15003
  {
14997
15004
  label: `New ${workspaceLabel.toLowerCase()}`,
14998
15005
  ariaLabel: `Create ${workspaceLabel}`,
@@ -15242,10 +15249,10 @@ function ConnectedWorkspaceList({
15242
15249
  else void openWorkspace(workspace.external_id, { name: workspace.name });
15243
15250
  };
15244
15251
  const createDisabledReason = list.canCreateProjects === false ? react.PROJECT_CREATION_DENIED_REASON : void 0;
15245
- if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunk7MOQO6NO_cjs.LoadingIndicator, { message: "Loading workspaces..." });
15252
+ if (list.isLoading) return /* @__PURE__ */ jsxRuntime.jsx(chunkRB54N5I7_cjs.LoadingIndicator, { message: "Loading workspaces..." });
15246
15253
  if (list.error) {
15247
15254
  return /* @__PURE__ */ jsxRuntime.jsx(
15248
- chunkOM5IVNEW_cjs.HomeLoadError,
15255
+ chunkZ4KXF7WS_cjs.HomeLoadError,
15249
15256
  {
15250
15257
  title: "Unable to load workspaces",
15251
15258
  body: "Failed to connect to the server. Please check your connection and try again."
@@ -15265,7 +15272,7 @@ function ConnectedWorkspaceList({
15265
15272
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "mr-0.5 size-4" }),
15266
15273
  "New"
15267
15274
  ] });
15268
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkOM5IVNEW_cjs.HomeFrame, { children: [
15275
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkZ4KXF7WS_cjs.HomeFrame, { children: [
15269
15276
  /* @__PURE__ */ jsxRuntime.jsx(
15270
15277
  chunkWVEFRQSW_cjs.TabHeader,
15271
15278
  {
@@ -15301,9 +15308,9 @@ function ConnectedWorkspaceList({
15301
15308
  ),
15302
15309
  showList && // Above whichever view shows: both draw the same filtered groups.
15303
15310
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto w-full max-w-6xl px-4 pb-3 sm:px-8", children: /* @__PURE__ */ jsxRuntime.jsx(WorkspaceFilterMenu, { list }) }),
15304
- /* @__PURE__ */ jsxRuntime.jsx(chunkOM5IVNEW_cjs.HomeMain, { children: !showList ? children : shownView === "cards" ? (
15311
+ /* @__PURE__ */ jsxRuntime.jsx(chunkZ4KXF7WS_cjs.HomeMain, { children: !showList ? children : shownView === "cards" ? (
15305
15312
  // Full-width scroller (its scrollbar rides the window edge) around a centred column.
15306
- /* @__PURE__ */ jsxRuntime.jsx(chunkOM5IVNEW_cjs.HomeCenteredScroll, { children: /* @__PURE__ */ jsxRuntime.jsx(
15313
+ /* @__PURE__ */ jsxRuntime.jsx(chunkZ4KXF7WS_cjs.HomeCenteredScroll, { children: /* @__PURE__ */ jsxRuntime.jsx(
15307
15314
  WorkspaceCardsView,
15308
15315
  {
15309
15316
  list,
@@ -15315,7 +15322,7 @@ function ConnectedWorkspaceList({
15315
15322
  workspaceState
15316
15323
  }
15317
15324
  ) })
15318
- ) : /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunk7MOQO6NO_cjs.LoadingIndicator, { message: "Loading grid..." }), children: /* @__PURE__ */ jsxRuntime.jsx(chunkOM5IVNEW_cjs.HomeCenteredColumn, { children: /* @__PURE__ */ jsxRuntime.jsx(
15325
+ ) : /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkRB54N5I7_cjs.LoadingIndicator, { message: "Loading grid..." }), children: /* @__PURE__ */ jsxRuntime.jsx(chunkZ4KXF7WS_cjs.HomeCenteredColumn, { children: /* @__PURE__ */ jsxRuntime.jsx(
15319
15326
  WorkspaceTableView,
15320
15327
  {
15321
15328
  list,
@@ -15388,7 +15395,7 @@ function ProjectsListPage({
15388
15395
  };
15389
15396
  const { openProject } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
15390
15397
  const [search, setSearch] = react$1.useState("");
15391
- const { projects, isLoading } = chunkJSHBC47B_cjs.useProjectSummaries();
15398
+ const { projects, isLoading } = chunkBP5KBZLX_cjs.useProjectSummaries();
15392
15399
  const rows = react$1.useMemo(() => {
15393
15400
  const q = search.trim().toLowerCase();
15394
15401
  if (!q) return projects;
@@ -15459,7 +15466,7 @@ function ProjectsListPage({
15459
15466
  }
15460
15467
  ),
15461
15468
  /* @__PURE__ */ jsxRuntime.jsx(
15462
- chunk7MOQO6NO_cjs.Toolbar,
15469
+ chunkRB54N5I7_cjs.Toolbar,
15463
15470
  {
15464
15471
  search,
15465
15472
  onSearch: setSearch,
@@ -15647,7 +15654,7 @@ function ProjectDetailsForm({
15647
15654
  const labels = { ...DEFAULT_PROJECT_DETAILS_LABELS, ...given };
15648
15655
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
15649
15656
  const update = react.useUpdateProjectFields();
15650
- const workspace = chunkJSHBC47B_cjs.primaryProjectWorkspace(project);
15657
+ const workspace = chunkBP5KBZLX_cjs.primaryProjectWorkspace(project);
15651
15658
  const { data: members = [] } = react.useWorkspaceUsers(workspace?.id);
15652
15659
  const people = members.filter((m) => !m.user.external_id.startsWith("agt-"));
15653
15660
  const currency = project.budget?.currency ?? "GBP";
@@ -16706,11 +16713,11 @@ function ConnectedProjectPage({
16706
16713
  figures: { ...DEFAULT_PROJECT_PAGE_LABELS.figures, ...given?.figures },
16707
16714
  threads: { ...DEFAULT_PROJECT_PAGE_LABELS.threads, ...given?.threads }
16708
16715
  };
16709
- const { project, usage, isLoading } = chunkJSHBC47B_cjs.useProjectSummary(projectId);
16716
+ const { project, usage, isLoading } = chunkBP5KBZLX_cjs.useProjectSummary(projectId);
16710
16717
  const { workspaceId } = chunkKGAYUFXD_cjs.useConnectedWorkspace();
16711
16718
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
16712
16719
  const selectWorkspace = chunkCMYJEIZB_cjs.useSelectWorkspace();
16713
- const workspace = project ? chunkJSHBC47B_cjs.primaryProjectWorkspace(project) : void 0;
16720
+ const workspace = project ? chunkBP5KBZLX_cjs.primaryProjectWorkspace(project) : void 0;
16714
16721
  const open = !!workspace && workspace.id === workspaceId;
16715
16722
  react$1.useEffect(() => {
16716
16723
  if (!workspace || workspace.id === workspaceId) return;
@@ -17605,7 +17612,7 @@ function recentConversations(conversations) {
17605
17612
  return [...conversations].sort((a, b) => time(b.updated_at) - time(a.updated_at)).slice(0, RECENT_ROWS).map((c) => ({
17606
17613
  id: c.external_id,
17607
17614
  title: c.title?.trim() || "Untitled thread",
17608
- subtitle: c.status ? [chunkCJF7B5A7_cjs.STATUS_LABELS[chunkCJF7B5A7_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"}`,
17615
+ subtitle: c.status ? [chunkDRUNPUDT_cjs.STATUS_LABELS[chunkDRUNPUDT_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"}`,
17609
17616
  time: timeAndDate(c.updated_at)
17610
17617
  }));
17611
17618
  }
@@ -17671,19 +17678,19 @@ function ConnectedWorkspaceDashboard({
17671
17678
  const { upcoming: upcoming2, recent: recent2 } = splitFacts(facts);
17672
17679
  const toRow = (row2) => ({
17673
17680
  ...row2,
17674
- leading: /* @__PURE__ */ jsxRuntime.jsx(chunkOM5IVNEW_cjs.FactMark, {}),
17681
+ leading: /* @__PURE__ */ jsxRuntime.jsx(chunkZ4KXF7WS_cjs.FactMark, {}),
17675
17682
  // The item, not the list: the Facts page scrolls to this fact.
17676
17683
  onSelect: () => actions.openFact(row2.id)
17677
17684
  });
17678
17685
  return { upcoming: upcoming2.map(toRow), recent: recent2.map(toRow) };
17679
17686
  }, [facts, actions]);
17680
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkOM5IVNEW_cjs.DashboardRoot, { testId, children: [
17681
- start && /* @__PURE__ */ jsxRuntime.jsx(chunkOM5IVNEW_cjs.DashboardBand, { kind: "start", children: start }),
17682
- /* @__PURE__ */ jsxRuntime.jsxs(chunkOM5IVNEW_cjs.DashboardBand, { kind: "recent", children: [
17687
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkZ4KXF7WS_cjs.DashboardRoot, { testId, children: [
17688
+ start && /* @__PURE__ */ jsxRuntime.jsx(chunkZ4KXF7WS_cjs.DashboardBand, { kind: "start", children: start }),
17689
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkZ4KXF7WS_cjs.DashboardBand, { kind: "recent", children: [
17683
17690
  /* @__PURE__ */ jsxRuntime.jsx(chunkZDZY6OPL_cjs.SectionLabel, { testId: `${testId}-recent-caption`, children: "Recent" }),
17684
- /* @__PURE__ */ jsxRuntime.jsxs(chunkOM5IVNEW_cjs.DashboardColumns, { children: [
17691
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkZ4KXF7WS_cjs.DashboardColumns, { children: [
17685
17692
  /* @__PURE__ */ jsxRuntime.jsx(
17686
- chunkOM5IVNEW_cjs.RecentList,
17693
+ chunkZ4KXF7WS_cjs.RecentList,
17687
17694
  {
17688
17695
  testId: `${testId}-docs`,
17689
17696
  icon: lucideReact.FileText,
@@ -17702,7 +17709,7 @@ function ConnectedWorkspaceDashboard({
17702
17709
  }
17703
17710
  ),
17704
17711
  /* @__PURE__ */ jsxRuntime.jsx(
17705
- chunkOM5IVNEW_cjs.RecentList,
17712
+ chunkZ4KXF7WS_cjs.RecentList,
17706
17713
  {
17707
17714
  testId: `${testId}-chats`,
17708
17715
  icon: lucideReact.MessagesSquare,
@@ -17711,7 +17718,7 @@ function ConnectedWorkspaceDashboard({
17711
17718
  onOpen: () => actions.openSection("threads"),
17712
17719
  action: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
17713
17720
  /* @__PURE__ */ jsxRuntime.jsx(
17714
- chunkOM5IVNEW_cjs.DashboardAction,
17721
+ chunkZ4KXF7WS_cjs.DashboardAction,
17715
17722
  {
17716
17723
  emphasis: "primary",
17717
17724
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "size-4" }),
@@ -17721,7 +17728,7 @@ function ConnectedWorkspaceDashboard({
17721
17728
  }
17722
17729
  ),
17723
17730
  /* @__PURE__ */ jsxRuntime.jsx(
17724
- chunkOM5IVNEW_cjs.DashboardAction,
17731
+ chunkZ4KXF7WS_cjs.DashboardAction,
17725
17732
  {
17726
17733
  emphasis: "quiet",
17727
17734
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "size-4" }),
@@ -17743,9 +17750,9 @@ function ConnectedWorkspaceDashboard({
17743
17750
  )
17744
17751
  ] })
17745
17752
  ] }),
17746
- /* @__PURE__ */ jsxRuntime.jsxs(chunkOM5IVNEW_cjs.DashboardColumns, { children: [
17753
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkZ4KXF7WS_cjs.DashboardColumns, { children: [
17747
17754
  /* @__PURE__ */ jsxRuntime.jsx(
17748
- chunkOM5IVNEW_cjs.FactsStrip,
17755
+ chunkZ4KXF7WS_cjs.FactsStrip,
17749
17756
  {
17750
17757
  testId: `${testId}-facts`,
17751
17758
  icon: lucideReact.Milestone,
@@ -17753,7 +17760,7 @@ function ConnectedWorkspaceDashboard({
17753
17760
  count: facts.length,
17754
17761
  onOpen: () => actions.openSection("facts"),
17755
17762
  action: /* @__PURE__ */ jsxRuntime.jsx(
17756
- chunkOM5IVNEW_cjs.DashboardAction,
17763
+ chunkZ4KXF7WS_cjs.DashboardAction,
17757
17764
  {
17758
17765
  emphasis: "quiet",
17759
17766
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Plus, { className: "size-4" }),
@@ -26327,7 +26334,7 @@ function useBatchCompleteToasts() {
26327
26334
  }
26328
26335
  }, AI_FIELDS_NOTICE_WINDOW_MS);
26329
26336
  } else if (message.batch_type === "entity_extract") {
26330
- say(`${chunk7MOQO6NO_cjs.entitiesPhrase()} extracted from ${chunk7MOQO6NO_cjs.documentCount(docIds.length)}`, "success", {
26337
+ say(`${chunkRB54N5I7_cjs.entitiesPhrase()} extracted from ${chunkRB54N5I7_cjs.documentCount(docIds.length)}`, "success", {
26331
26338
  ...openTags && { action: { label: "View", onClick: openTags } }
26332
26339
  });
26333
26340
  } else if (message.batch_type === "upload") {
@@ -27823,12 +27830,12 @@ var DocumentReviewCard = react$1.lazy(
27823
27830
  () => import('../DocumentReviewCard-BQ6ZD5MD.cjs').then((module) => ({ default: module.DocumentReviewCard }))
27824
27831
  );
27825
27832
  var ConnectedDocumentViewer = react$1.lazy(
27826
- () => import('../ConnectedDocumentViewer-YSZWOVGN.cjs').then((module) => ({
27833
+ () => import('../ConnectedDocumentViewer-S6YKCCRN.cjs').then((module) => ({
27827
27834
  default: module.ConnectedDocumentViewer
27828
27835
  }))
27829
27836
  );
27830
27837
  function defaultReviewCard(props) {
27831
- return /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunk7MOQO6NO_cjs.LoadingIndicator, { message: "Loading document viewer..." }), children: /* @__PURE__ */ jsxRuntime.jsx(DocumentReviewCard, { ...props }, `navigator-${props.currentDocument.external_id}`) });
27838
+ return /* @__PURE__ */ jsxRuntime.jsx(react$1.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(chunkRB54N5I7_cjs.LoadingIndicator, { message: "Loading document viewer..." }), children: /* @__PURE__ */ jsxRuntime.jsx(DocumentReviewCard, { ...props }, `navigator-${props.currentDocument.external_id}`) });
27832
27839
  }
27833
27840
  function ConnectedFilesPage({
27834
27841
  isModal = false,
@@ -28364,7 +28371,7 @@ function ConnectedFilesPage({
28364
28371
  viewMode === "grid" ? (
28365
28372
  // ‹ n / N › over the table's displayed rows; a step opens the document.
28366
28373
  /* @__PURE__ */ jsxRuntime.jsx(
28367
- chunk7MOQO6NO_cjs.GridRowNavigator,
28374
+ chunkRB54N5I7_cjs.GridRowNavigator,
28368
28375
  {
28369
28376
  gridApi,
28370
28377
  selectedId: viewingDocumentId ?? selectedDocumentIds[0] ?? null,
@@ -29508,7 +29515,7 @@ function ProcessingSection({
29508
29515
  onDelete
29509
29516
  }) {
29510
29517
  return /* @__PURE__ */ jsxRuntime.jsx(chunkVGNCU5JJ_cjs.TaskSection, { title, count: count2, status, tooltip: SECTION_TOOLTIPS[status], children: /* @__PURE__ */ jsxRuntime.jsx(
29511
- chunkCJF7B5A7_cjs.UploadTaskList,
29518
+ chunkDRUNPUDT_cjs.UploadTaskList,
29512
29519
  {
29513
29520
  tasks,
29514
29521
  title: "",
@@ -32068,13 +32075,13 @@ function ConnectedModelSelector({
32068
32075
  }
32069
32076
  }
32070
32077
  }
32071
- return tier ? /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelTierIcon, { tier }) : /* @__PURE__ */ jsxRuntime.jsx(ArbiLogo, {});
32078
+ return tier ? /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelTierIcon, { tier }) : /* @__PURE__ */ jsxRuntime.jsx(ArbiLogo, {});
32072
32079
  };
32073
32080
  const isSelectedStandard = !!selectedModelInfo?.tags?.includes(STANDARD_TIER_TAG);
32074
32081
  const isSelectedPremium = !!selectedModelInfo?.tags?.includes(PREMIUM_TIER_TAG);
32075
32082
  const triggerLabel = isAuto ? "Autoselect" : isSelectedPremium ? "Premium" : selectedModelInfo?.display_name || selectedModelInfo?.model_name || selectedModel;
32076
32083
  const firstTag = selectedModelInfo?.tags?.[0];
32077
- const triggerIcon = isAuto ? /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelAutoIcon, {}) : isSelectedPremium ? premiumDisabled ? /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelTierIcon, { tier: "premium", isGreyed: true }) : /* @__PURE__ */ jsxRuntime.jsx(
32084
+ const triggerIcon = isAuto ? /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelAutoIcon, {}) : isSelectedPremium ? premiumDisabled ? /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelTierIcon, { tier: "premium", isGreyed: true }) : /* @__PURE__ */ jsxRuntime.jsx(
32078
32085
  ui.ProviderIcon,
32079
32086
  {
32080
32087
  modelName: selectedModelInfo?.model_name,
@@ -32082,9 +32089,9 @@ function ConnectedModelSelector({
32082
32089
  size: 14,
32083
32090
  className: "shrink-0"
32084
32091
  }
32085
- ) : isSelectedStandard && selectedModelInfo ? standardIcon(selectedModelInfo) : firstTag && TAG_TIER[firstTag] ? /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelTierIcon, { tier: TAG_TIER[firstTag] }) : selectedModelInfo ? /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelDot, {}) : null;
32092
+ ) : isSelectedStandard && selectedModelInfo ? standardIcon(selectedModelInfo) : firstTag && TAG_TIER[firstTag] ? /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelTierIcon, { tier: TAG_TIER[firstTag] }) : selectedModelInfo ? /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelDot, {}) : null;
32086
32093
  const tooltip = isAuto ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm", children: "Automatically selects the best model" }) : pricing ? /* @__PURE__ */ jsxRuntime.jsx(
32087
- chunkTVHTXO6V_cjs.ModelPricingTip,
32094
+ chunk56WWEK6I_cjs.ModelPricingTip,
32088
32095
  {
32089
32096
  modelName: pricing.modelName,
32090
32097
  inputPrice: pricing.inputPrice,
@@ -32101,27 +32108,27 @@ function ConnectedModelSelector({
32101
32108
  (m) => m.model_name === premiumTier.resolvedModelName
32102
32109
  );
32103
32110
  return /* @__PURE__ */ jsxRuntime.jsxs(
32104
- chunkTVHTXO6V_cjs.ModelPickerPopover,
32111
+ chunk56WWEK6I_cjs.ModelPickerPopover,
32105
32112
  {
32106
32113
  open: isOpen,
32107
32114
  onOpenChange: setIsOpen,
32108
32115
  tooltip,
32109
- trigger: /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelPickerTrigger, { icon: triggerIcon, label: triggerLabel, className }),
32116
+ trigger: /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelPickerTrigger, { icon: triggerIcon, label: triggerLabel, className }),
32110
32117
  children: [
32111
32118
  /* @__PURE__ */ jsxRuntime.jsx(
32112
- chunkTVHTXO6V_cjs.ModelOption,
32119
+ chunk56WWEK6I_cjs.ModelOption,
32113
32120
  {
32114
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelAutoIcon, {}),
32121
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelAutoIcon, {}),
32115
32122
  label: "Autoselect",
32116
32123
  isSelected: isAuto,
32117
32124
  onSelect: () => choose(react.AUTO_CHAT_MODEL),
32118
32125
  testId: "model-option-auto"
32119
32126
  }
32120
32127
  ),
32121
- /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelMenuDivider, {}),
32128
+ /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelMenuDivider, {}),
32122
32129
  hasTiers ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
32123
32130
  standardTier?.members.map((m) => /* @__PURE__ */ jsxRuntime.jsx(
32124
- chunkTVHTXO6V_cjs.ModelOption,
32131
+ chunk56WWEK6I_cjs.ModelOption,
32125
32132
  {
32126
32133
  icon: standardIcon(m),
32127
32134
  label: m.display_name ? `${m.display_name} \xB7 ${m.connection_scope === "box" ? "Box" : "Personal"}` : m.model_name,
@@ -32133,9 +32140,9 @@ function ConnectedModelSelector({
32133
32140
  `standard-${m.model_name}`
32134
32141
  )),
32135
32142
  premiumTier && /* @__PURE__ */ jsxRuntime.jsx(
32136
- chunkTVHTXO6V_cjs.ModelTierOption,
32143
+ chunk56WWEK6I_cjs.ModelTierOption,
32137
32144
  {
32138
- icon: premiumDisabled || !premiumMember ? /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelTierIcon, { tier: "premium", isGreyed: premiumDisabled }) : (
32145
+ icon: premiumDisabled || !premiumMember ? /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelTierIcon, { tier: "premium", isGreyed: premiumDisabled }) : (
32139
32146
  // The resolved Premium model's provider is the row's brand icon, so the pick
32140
32147
  // is recognisable without a model_name suffix.
32141
32148
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -32154,7 +32161,7 @@ function ConnectedModelSelector({
32154
32161
  onSelect: () => choose(premiumTier.resolvedModelName),
32155
32162
  testId: "model-option-tier-Premium",
32156
32163
  action: /* @__PURE__ */ jsxRuntime.jsx(
32157
- chunkTVHTXO6V_cjs.ModelConfigureButton,
32164
+ chunk56WWEK6I_cjs.ModelConfigureButton,
32158
32165
  {
32159
32166
  label: "Configure Premium tier",
32160
32167
  tooltip: "Configure Premium",
@@ -32169,13 +32176,13 @@ function ConnectedModelSelector({
32169
32176
  "tier-Premium"
32170
32177
  ),
32171
32178
  developerModels.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
32172
- /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelMenuDivider, {}),
32179
+ /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelMenuDivider, {}),
32173
32180
  developerModels.map((m) => {
32174
32181
  const tag = m.tags?.[0];
32175
32182
  return /* @__PURE__ */ jsxRuntime.jsx(
32176
- chunkTVHTXO6V_cjs.ModelOption,
32183
+ chunk56WWEK6I_cjs.ModelOption,
32177
32184
  {
32178
- icon: tag && TAG_TIER[tag] ? /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelTierIcon, { tier: TAG_TIER[tag] }) : /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelDot, {}),
32185
+ icon: tag && TAG_TIER[tag] ? /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelTierIcon, { tier: TAG_TIER[tag] }) : /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelDot, {}),
32179
32186
  label: m.display_name ? `${m.display_name} \xB7 ${m.connection_scope === "box" ? "Box" : "Personal"}` : m.model_name,
32180
32187
  isSelected: selectedModel === m.model_name,
32181
32188
  onSelect: () => choose(m.model_name),
@@ -32185,7 +32192,7 @@ function ConnectedModelSelector({
32185
32192
  );
32186
32193
  })
32187
32194
  ] })
32188
- ] }) : /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelMenuMessage, { children: "Loading models..." })
32195
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelMenuMessage, { children: "Loading models..." })
32189
32196
  ]
32190
32197
  }
32191
32198
  );
@@ -32197,11 +32204,11 @@ function ConnectedModelSelector({
32197
32204
  {
32198
32205
  className: ui.cn("h-8 w-[200px] text-sm", className),
32199
32206
  "data-testid": "model-selector",
32200
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelTriggerContent, { icon: triggerIcon, label: triggerLabel })
32207
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelTriggerContent, { icon: triggerIcon, label: triggerLabel })
32201
32208
  }
32202
32209
  ),
32203
32210
  /* @__PURE__ */ jsxRuntime.jsxs(ui.SelectContent, { className: "z-50", children: [
32204
- /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: react.AUTO_CHAT_MODEL, "data-testid": "model-option-auto", children: /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelOptionLabel, { icon: /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelAutoIcon, {}), label: "Autoselect" }) }),
32211
+ /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: react.AUTO_CHAT_MODEL, "data-testid": "model-option-auto", children: /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelOptionLabel, { icon: /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelAutoIcon, {}), label: "Autoselect" }) }),
32205
32212
  hasTiers ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
32206
32213
  standardTier?.members.map((m) => /* @__PURE__ */ jsxRuntime.jsx(
32207
32214
  ui.SelectItem,
@@ -32209,7 +32216,7 @@ function ConnectedModelSelector({
32209
32216
  value: m.model_name,
32210
32217
  "data-testid": `model-option-${m.model_name}`,
32211
32218
  children: /* @__PURE__ */ jsxRuntime.jsx(
32212
- chunkTVHTXO6V_cjs.ModelOptionLabel,
32219
+ chunk56WWEK6I_cjs.ModelOptionLabel,
32213
32220
  {
32214
32221
  icon: standardIcon(m),
32215
32222
  label: m.display_name ? `${m.display_name} \xB7 ${m.connection_scope === "box" ? "Box" : "Personal"}` : m.model_name
@@ -32223,7 +32230,7 @@ function ConnectedModelSelector({
32223
32230
  {
32224
32231
  value: premiumTier.resolvedModelName,
32225
32232
  "data-testid": "model-option-tier-Premium",
32226
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelOptionLabel, { icon: /* @__PURE__ */ jsxRuntime.jsx(ArbiLogo, {}), label: "Premium" })
32233
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelOptionLabel, { icon: /* @__PURE__ */ jsxRuntime.jsx(ArbiLogo, {}), label: "Premium" })
32227
32234
  },
32228
32235
  "tier-Premium"
32229
32236
  ),
@@ -32233,9 +32240,9 @@ function ConnectedModelSelector({
32233
32240
  value: m.model_name,
32234
32241
  "data-testid": `model-option-${m.model_name}`,
32235
32242
  children: /* @__PURE__ */ jsxRuntime.jsx(
32236
- chunkTVHTXO6V_cjs.ModelOptionLabel,
32243
+ chunk56WWEK6I_cjs.ModelOptionLabel,
32237
32244
  {
32238
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ModelDot, {}),
32245
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ModelDot, {}),
32239
32246
  label: m.display_name ? `${m.display_name} \xB7 ${m.connection_scope === "box" ? "Box" : "Personal"}` : m.model_name
32240
32247
  }
32241
32248
  )
@@ -32254,7 +32261,7 @@ function ConnectedConfigForm({ availableModels, ...rest }) {
32254
32261
  ({ value, onChange }) => /* @__PURE__ */ jsxRuntime.jsx(ConnectedModelSelector, { value, onValueChange: onChange, className: "w-full" }),
32255
32262
  []
32256
32263
  );
32257
- return /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConfigForm, { ...rest, renderModelSelect: hasModels ? renderModelSelect : void 0 });
32264
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.ConfigForm, { ...rest, renderModelSelect: hasModels ? renderModelSelect : void 0 });
32258
32265
  }
32259
32266
  function ConnectedAgentConfigForm({ agentExtId, agentName, onSaved }) {
32260
32267
  const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
@@ -32371,7 +32378,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
32371
32378
  }, [name, selectedWorkspaces, role, createAgent, addWorkspaceUsers, arbi, notify16]);
32372
32379
  if (editAgent) {
32373
32380
  return /* @__PURE__ */ jsxRuntime.jsx(
32374
- chunkCJF7B5A7_cjs.AgentEditView,
32381
+ chunkDRUNPUDT_cjs.AgentEditView,
32375
32382
  {
32376
32383
  agentName: editAgent.name,
32377
32384
  config: /* @__PURE__ */ jsxRuntime.jsx(
@@ -32387,7 +32394,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
32387
32394
  }
32388
32395
  if (view === "main") {
32389
32396
  return /* @__PURE__ */ jsxRuntime.jsx(
32390
- chunkCJF7B5A7_cjs.AgentMainView,
32397
+ chunkDRUNPUDT_cjs.AgentMainView,
32391
32398
  {
32392
32399
  onConnectExternal: () => setView("connect"),
32393
32400
  config: mainAgent ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -32403,11 +32410,11 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
32403
32410
  }
32404
32411
  if (result) {
32405
32412
  return /* @__PURE__ */ jsxRuntime.jsx(
32406
- chunkCJF7B5A7_cjs.AgentCreatedView,
32413
+ chunkDRUNPUDT_cjs.AgentCreatedView,
32407
32414
  {
32408
32415
  email: result.email,
32409
32416
  signingKey: result.signingKey,
32410
- instructions: /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.AgentConnectInstructions, { email: result.email, signingKey: result.signingKey }),
32417
+ instructions: /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.AgentConnectInstructions, { email: result.email, signingKey: result.signingKey }),
32411
32418
  config: /* @__PURE__ */ jsxRuntime.jsx(ConnectedAgentConfigForm, { agentExtId: result.extId, agentName: result.name }),
32412
32419
  isConfigOpen: configOpen,
32413
32420
  onToggleConfig: () => setConfigOpen((v) => !v),
@@ -32416,7 +32423,7 @@ function ConnectedAuthorizeAgent({ onClose, editAgent }) {
32416
32423
  );
32417
32424
  }
32418
32425
  return /* @__PURE__ */ jsxRuntime.jsx(
32419
- chunkCJF7B5A7_cjs.AgentCreateView,
32426
+ chunkDRUNPUDT_cjs.AgentCreateView,
32420
32427
  {
32421
32428
  name,
32422
32429
  onNameChange: setName,
@@ -33117,7 +33124,7 @@ function ConnectedAccountCluster({
33117
33124
  if (!open) return null;
33118
33125
  const current = activePage === page;
33119
33126
  return /* @__PURE__ */ jsxRuntime.jsx(
33120
- chunkLFS6UWSJ_cjs.SidebarBadgeRow,
33127
+ chunkXWUGPV7H_cjs.SidebarBadgeRow,
33121
33128
  {
33122
33129
  icon: icon2,
33123
33130
  label,
@@ -33134,7 +33141,7 @@ function ConnectedAccountCluster({
33134
33141
  );
33135
33142
  };
33136
33143
  const bell = layout === "drawer" ? /* @__PURE__ */ jsxRuntime.jsx(
33137
- chunkLFS6UWSJ_cjs.SidebarBadgeRow,
33144
+ chunkXWUGPV7H_cjs.SidebarBadgeRow,
33138
33145
  {
33139
33146
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bell, { className: "size-5" }),
33140
33147
  label: "Notifications",
@@ -33168,7 +33175,7 @@ function ConnectedAccountCluster({
33168
33175
  side,
33169
33176
  align,
33170
33177
  renderTrigger: layout === "bar" ? void 0 : ({ unread, ariaLabel, testId }) => /* @__PURE__ */ jsxRuntime.jsx(
33171
- chunkLFS6UWSJ_cjs.SidebarBadgeRow,
33178
+ chunkXWUGPV7H_cjs.SidebarBadgeRow,
33172
33179
  {
33173
33180
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bell, { className: "size-5" }),
33174
33181
  label: "Notifications",
@@ -33181,7 +33188,7 @@ function ConnectedAccountCluster({
33181
33188
  }
33182
33189
  );
33183
33190
  const contacts = showContacts && openContacts ? /* @__PURE__ */ jsxRuntime.jsx(
33184
- chunkLFS6UWSJ_cjs.SidebarBadgeRow,
33191
+ chunkXWUGPV7H_cjs.SidebarBadgeRow,
33185
33192
  {
33186
33193
  icon: /* @__PURE__ */ jsxRuntime.jsx(ContactIcon, { className: "size-5" }),
33187
33194
  label: "Contacts",
@@ -33218,7 +33225,7 @@ function ConnectedAccountCluster({
33218
33225
  layout
33219
33226
  );
33220
33227
  return /* @__PURE__ */ jsxRuntime.jsx(
33221
- chunkZZHMJXM5_cjs.ActionCluster,
33228
+ chunkIXZCXK6Q_cjs.ActionCluster,
33222
33229
  {
33223
33230
  layout,
33224
33231
  status: layout === "bar" ? status : null,
@@ -33515,7 +33522,7 @@ function usePrefetchChunks(loaders) {
33515
33522
  if (cancelled) return;
33516
33523
  const load = queue.shift();
33517
33524
  if (!load) return;
33518
- void chunkZZHMJXM5_cjs.prefetchChunk(load).finally(() => {
33525
+ void chunkIXZCXK6Q_cjs.prefetchChunk(load).finally(() => {
33519
33526
  handle = idle(next);
33520
33527
  });
33521
33528
  };
@@ -33558,12 +33565,60 @@ function useUserNameFromWorkspaces() {
33558
33565
  }
33559
33566
  }, [session, workspaces, user]);
33560
33567
  }
33568
+ var WELCOME_DIALOG_TIP = "welcome-modal";
33569
+ function consideredThisSession() {
33570
+ try {
33571
+ return sessionStorage.getItem(WELCOME_DIALOG_SESSION_KEY) !== null;
33572
+ } catch {
33573
+ return false;
33574
+ }
33575
+ }
33576
+ function useWelcomeDialog() {
33577
+ const { status, user } = react.useArbiSession();
33578
+ const isAuthenticated2 = status === "signed-in";
33579
+ const isExternal = user?.temporary_access_only === true;
33580
+ const currentUserExtId = user?.external_id;
33581
+ const [pendingAccessReviewId] = react.useTransientView(PENDING_ACCESS_REVIEW_VIEW, null);
33582
+ const accessRequestReview = useAccessRequestUnderReview();
33583
+ const { data: settings, isLoading: settingsLoading } = react.useUserSettings();
33584
+ const { data: projects, isLoading: projectsLoading } = react.useProjects();
33585
+ const { dismissTip } = react.useDismissedTips();
33586
+ react$1.useEffect(() => {
33587
+ if (!isAuthenticated2 || isExternal) return;
33588
+ if (pendingAccessReviewId || accessRequestReview) return;
33589
+ if (settingsLoading || projectsLoading || !settings) return;
33590
+ if (consideredThisSession()) return;
33591
+ if (settings.dismissed_tips?.includes(WELCOME_DIALOG_TIP)) return;
33592
+ try {
33593
+ sessionStorage.setItem(WELCOME_DIALOG_SESSION_KEY, "1");
33594
+ } catch {
33595
+ }
33596
+ const ownsPaidProject = (projects ?? []).some(
33597
+ (p) => p.created_by === currentUserExtId && (p.subscription === "active" || p.subscription === "past_due")
33598
+ );
33599
+ if (ownsPaidProject) return;
33600
+ chunkGMM3RBIB_cjs.openDialog("welcome");
33601
+ dismissTip(WELCOME_DIALOG_TIP);
33602
+ }, [
33603
+ isAuthenticated2,
33604
+ isExternal,
33605
+ currentUserExtId,
33606
+ settings,
33607
+ settingsLoading,
33608
+ projects,
33609
+ projectsLoading,
33610
+ dismissTip,
33611
+ pendingAccessReviewId,
33612
+ accessRequestReview
33613
+ ]);
33614
+ }
33561
33615
  var ReleaseStaleModals = () => (useReleaseStaleModalState(), null);
33562
33616
  var RetiredModelNotice = () => (useRetiredModelNotice(), null);
33563
33617
  var PausedMutationNotice = () => (usePausedMutationNotice(), null);
33564
33618
  var PaymentReturn = () => (usePaymentReturn(), null);
33565
33619
  var UserNameFromWorkspaces = () => (useUserNameFromWorkspaces(), null);
33566
33620
  var FirstLoginRouting = ({ onResolve }) => (useFirstLoginRouting(onResolve), null);
33621
+ var WelcomeDialog2 = () => (useWelcomeDialog(), null);
33567
33622
  var PendingWorkspaceShare = () => (usePendingWorkspaceShare(), null);
33568
33623
  var PendingNotification = () => (usePendingNotification(), null);
33569
33624
  var PendingAccessReview = () => (usePendingAccessReview(), null);
@@ -33581,8 +33636,14 @@ function ConnectedAppRuntime({
33581
33636
  }) {
33582
33637
  const on = (effect) => effects[effect] !== false;
33583
33638
  const { stripeEnabled } = chunkEG3BB32W_cjs.useBillingSupport();
33639
+ const welcomeDialog = on("welcomeDialog") && stripeEnabled;
33640
+ const resolveFirstLogin = () => {
33641
+ if (welcomeDialog) skipWelcomeDialogThisSession();
33642
+ onFirstLogin?.();
33643
+ };
33584
33644
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
33585
- on("firstLoginRouting") && /* @__PURE__ */ jsxRuntime.jsx(FirstLoginRouting, { onResolve: onFirstLogin }),
33645
+ on("firstLoginRouting") && /* @__PURE__ */ jsxRuntime.jsx(FirstLoginRouting, { onResolve: resolveFirstLogin }),
33646
+ welcomeDialog && /* @__PURE__ */ jsxRuntime.jsx(WelcomeDialog2, {}),
33586
33647
  on("releaseStaleModals") && /* @__PURE__ */ jsxRuntime.jsx(ReleaseStaleModals, {}),
33587
33648
  on("retiredModelNotice") && /* @__PURE__ */ jsxRuntime.jsx(RetiredModelNotice, {}),
33588
33649
  on("pausedMutationNotice") && /* @__PURE__ */ jsxRuntime.jsx(PausedMutationNotice, {}),
@@ -34153,7 +34214,7 @@ function ConnectedReportProblem({
34153
34214
  const bar = layout === "bar";
34154
34215
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
34155
34216
  /* @__PURE__ */ jsxRuntime.jsx(
34156
- chunkLFS6UWSJ_cjs.SidebarBadgeRow,
34217
+ chunkXWUGPV7H_cjs.SidebarBadgeRow,
34157
34218
  {
34158
34219
  icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bug, { className: "size-5" }),
34159
34220
  label: "Report a problem",
@@ -34175,14 +34236,14 @@ var referencesOf = (inputs) => {
34175
34236
  return value?.documents ?? [];
34176
34237
  };
34177
34238
  var PROMPT_BINDINGS = {
34178
- [chunkCJF7B5A7_cjs.GENERATE_IMAGE_ID]: {
34239
+ [chunkDRUNPUDT_cjs.GENERATE_IMAGE_ID]: {
34179
34240
  attachScope: false,
34180
34241
  tools: (inputs) => {
34181
34242
  const aspectRatio = typeof inputs.aspect_ratio === "string" ? inputs.aspect_ratio : "";
34182
34243
  return {
34183
34244
  retrieval_chunk: browser.buildRetrievalChunkTool([]),
34184
34245
  retrieval_full_context: browser.buildRetrievalFullContextTool(referencesOf(inputs)),
34185
- ...aspectRatio && aspectRatio !== chunkCJF7B5A7_cjs.IMAGE_ASPECT_AUTO ? {
34246
+ ...aspectRatio && aspectRatio !== chunkDRUNPUDT_cjs.IMAGE_ASPECT_AUTO ? {
34186
34247
  image_generation: {
34187
34248
  name: "image_generation",
34188
34249
  description: "image generation",
@@ -34207,14 +34268,14 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
34207
34268
  const createTag = react.useCreateTag();
34208
34269
  const updateTag = react.useUpdateTag();
34209
34270
  const generate = react.useGenerateDocTags();
34210
- const { create: createTask } = chunkJSHBC47B_cjs.useWorkflowTasks();
34271
+ const { create: createTask } = chunkBP5KBZLX_cjs.useWorkflowTasks();
34211
34272
  const applyModel = react.useApplyChatModel();
34212
34273
  const session = react.useArbiSessionStore();
34213
34274
  const { notify: notify16, openFiles, openNewConversation } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
34214
34275
  const annotate = react$1.useCallback(
34215
34276
  async ({ inputs, scope }) => {
34216
34277
  const description = text(inputs, "description");
34217
- const name = text(inputs, "name") || chunkCJF7B5A7_cjs.deriveAnnotationName(description);
34278
+ const name = text(inputs, "name") || chunkDRUNPUDT_cjs.deriveAnnotationName(description);
34218
34279
  const matching = chunkK26RLK2Y_cjs.matchWorkflowScope(documents, scope);
34219
34280
  if (!name || !description || matching.length === 0) return;
34220
34281
  try {
@@ -34258,9 +34319,9 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
34258
34319
  async (launch) => {
34259
34320
  const { workflow, inputs, scope, agentId } = launch;
34260
34321
  if (workflow.run.kind === "operation") {
34261
- if (workflow.id === chunkCJF7B5A7_cjs.ANNOTATE_ID) {
34322
+ if (workflow.id === chunkDRUNPUDT_cjs.ANNOTATE_ID) {
34262
34323
  await annotate(launch);
34263
- chunkCJF7B5A7_cjs.recordWorkflowUse(workflow.id);
34324
+ chunkDRUNPUDT_cjs.recordWorkflowUse(workflow.id);
34264
34325
  return;
34265
34326
  }
34266
34327
  throw new Error(`No host handler for workflow "${workflow.id}"`);
@@ -34270,7 +34331,7 @@ function useLaunchWorkflow({ landing: surfaceLanding } = {}) {
34270
34331
  );
34271
34332
  const prompt = chunk555BS22J_cjs.composeWorkflowPrompt(workflow, inputs, { documentTitles });
34272
34333
  if (!prompt) return;
34273
- chunkCJF7B5A7_cjs.recordWorkflowUse(workflow.id);
34334
+ chunkDRUNPUDT_cjs.recordWorkflowUse(workflow.id);
34274
34335
  if (agentId) {
34275
34336
  try {
34276
34337
  const created = await createTask({
@@ -34353,8 +34414,8 @@ function ConnectedWorkflowStart({
34353
34414
  const tags = react$1.useMemo(() => chunkK26RLK2Y_cjs.documentScopeLabels(workspaceTags), [workspaceTags]);
34354
34415
  const fieldPlaceholder = react$1.useCallback(
34355
34416
  (field, inputs, workflow) => {
34356
- if (workflow.id !== chunkCJF7B5A7_cjs.ANNOTATE_ID || field.name !== "name") return void 0;
34357
- const derived = chunkCJF7B5A7_cjs.deriveAnnotationName(String(inputs.description ?? ""));
34417
+ if (workflow.id !== chunkDRUNPUDT_cjs.ANNOTATE_ID || field.name !== "name") return void 0;
34418
+ const derived = chunkDRUNPUDT_cjs.deriveAnnotationName(String(inputs.description ?? ""));
34358
34419
  return derived ? `Otherwise \u201C${derived}\u201D` : "Taken from the description";
34359
34420
  },
34360
34421
  []
@@ -34365,15 +34426,15 @@ function ConnectedWorkflowStart({
34365
34426
  ...rest,
34366
34427
  workflows,
34367
34428
  onLaunch,
34368
- renderIcon: chunkCJF7B5A7_cjs.renderWorkflowIcon,
34429
+ renderIcon: chunkDRUNPUDT_cjs.renderWorkflowIcon,
34369
34430
  onAddFiles: openUpload,
34370
34431
  agentLabels: AGENT_LABELS,
34371
34432
  addFilesAction,
34372
34433
  fieldPlaceholder,
34373
- submitLabel: ({ workflow, matchedCount }) => workflow.id === chunkCJF7B5A7_cjs.ANNOTATE_ID && matchedCount !== null ? `Annotate ${matchedCount} document${matchedCount !== 1 ? "s" : ""}` : void 0,
34434
+ submitLabel: ({ workflow, matchedCount }) => workflow.id === chunkDRUNPUDT_cjs.ANNOTATE_ID && matchedCount !== null ? `Annotate ${matchedCount} document${matchedCount !== 1 ? "s" : ""}` : void 0,
34374
34435
  renderNotice: ({ workflow, inputs }) => {
34375
- if (workflow.id !== chunkCJF7B5A7_cjs.ANNOTATE_ID) return null;
34376
- const name = String(inputs.name ?? "").trim() || chunkCJF7B5A7_cjs.deriveAnnotationName(String(inputs.description ?? ""));
34436
+ if (workflow.id !== chunkDRUNPUDT_cjs.ANNOTATE_ID) return null;
34437
+ const name = String(inputs.name ?? "").trim() || chunkDRUNPUDT_cjs.deriveAnnotationName(String(inputs.description ?? ""));
34377
34438
  const existing = name ? tags.find((t) => t.name.toLowerCase() === name.toLowerCase()) : void 0;
34378
34439
  if (!existing) return null;
34379
34440
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -34410,9 +34471,9 @@ function resolveLaunchInputs(workflow, request) {
34410
34471
  return { ...fromContext, ...fromScope, ...request.inputs };
34411
34472
  }
34412
34473
  function useWorkflowLaunch() {
34413
- const { skills } = chunkJSHBC47B_cjs.useWorkflowDefinitions();
34474
+ const { skills } = chunkBP5KBZLX_cjs.useWorkflowDefinitions();
34414
34475
  const launch = react$1.useCallback(
34415
- (workflowId, options2 = {}) => chunkCJF7B5A7_cjs.openWorkflowLaunch({ workflowId, ...options2 }),
34476
+ (workflowId, options2 = {}) => chunkDRUNPUDT_cjs.openWorkflowLaunch({ workflowId, ...options2 }),
34416
34477
  []
34417
34478
  );
34418
34479
  const itemsFor = react$1.useCallback(
@@ -34441,9 +34502,9 @@ function useWorkflowLaunch() {
34441
34502
  return { launch, itemsFor, scopeItemsFor };
34442
34503
  }
34443
34504
  function Inner() {
34444
- const request = chunkCJF7B5A7_cjs.useWorkflowLaunchRequest();
34445
- const close = chunkCJF7B5A7_cjs.closeWorkflowLaunch;
34446
- const { skills } = chunkJSHBC47B_cjs.useWorkflowDefinitions();
34505
+ const request = chunkDRUNPUDT_cjs.useWorkflowLaunchRequest();
34506
+ const close = chunkDRUNPUDT_cjs.closeWorkflowLaunch;
34507
+ const { skills } = chunkBP5KBZLX_cjs.useWorkflowDefinitions();
34447
34508
  const run = useLaunchWorkflow({ landing: request?.landing });
34448
34509
  const workflow = skills.find((w) => w.id === request?.workflowId);
34449
34510
  const inputs = react$1.useMemo(
@@ -34480,7 +34541,7 @@ function Inner() {
34480
34541
  );
34481
34542
  }
34482
34543
  function WorkflowLaunchHost() {
34483
- return chunkCJF7B5A7_cjs.useWorkflowLaunchRequest() ? /* @__PURE__ */ jsxRuntime.jsx(Inner, {}) : null;
34544
+ return chunkDRUNPUDT_cjs.useWorkflowLaunchRequest() ? /* @__PURE__ */ jsxRuntime.jsx(Inner, {}) : null;
34484
34545
  }
34485
34546
  function isNeedsConfirmationDetail(detail) {
34486
34547
  return typeof detail === "object" && detail !== null && detail.needs_confirmation === "resource_private";
@@ -34857,7 +34918,7 @@ function WorkflowRunStatusCell({ conversation }) {
34857
34918
  return person ? ui.getUserDisplayName(person) : void 0;
34858
34919
  };
34859
34920
  return /* @__PURE__ */ jsxRuntime.jsx(
34860
- chunkCJF7B5A7_cjs.WorkflowRunStatus,
34921
+ chunkDRUNPUDT_cjs.WorkflowRunStatus,
34861
34922
  {
34862
34923
  steps,
34863
34924
  states,
@@ -34891,7 +34952,7 @@ function ConversationStatusCell({ conversation }) {
34891
34952
  if (conversation.plan?.steps?.length && !isLiveGenerating)
34892
34953
  return /* @__PURE__ */ jsxRuntime.jsx(WorkflowRunStatusCell, { conversation });
34893
34954
  return /* @__PURE__ */ jsxRuntime.jsx(
34894
- chunkCJF7B5A7_cjs.ThreadStatusLine,
34955
+ chunkDRUNPUDT_cjs.ThreadStatusLine,
34895
34956
  {
34896
34957
  state: threadStateOf(conversation, isLiveGenerating),
34897
34958
  className: "h-full",
@@ -35378,7 +35439,7 @@ function ConnectedTaskStartDialog({
35378
35439
  };
35379
35440
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
35380
35441
  /* @__PURE__ */ jsxRuntime.jsx(
35381
- chunkCJF7B5A7_cjs.TaskStartDialog,
35442
+ chunkDRUNPUDT_cjs.TaskStartDialog,
35382
35443
  {
35383
35444
  open: open && !later,
35384
35445
  onOpenChange: (next) => {
@@ -35403,14 +35464,14 @@ function ConnectedTaskStartDialog({
35403
35464
  }
35404
35465
  ),
35405
35466
  later && /* @__PURE__ */ jsxRuntime.jsx(
35406
- chunkJSHBC47B_cjs.ConnectedTaskComposer,
35467
+ chunkBP5KBZLX_cjs.ConnectedTaskComposer,
35407
35468
  {
35408
35469
  open: true,
35409
35470
  onOpenChange: (next) => !next && setLater(null),
35410
35471
  kind: "workflow",
35411
35472
  startLater: true,
35412
35473
  initialPrompt: later.prompt,
35413
- initialWorkflowId: later.todo ? chunkCJF7B5A7_cjs.REMIND_TASK_ID : void 0,
35474
+ initialWorkflowId: later.todo ? chunkDRUNPUDT_cjs.REMIND_TASK_ID : void 0,
35414
35475
  initialShared: later.shared,
35415
35476
  launchWorkflow: later.workflow
35416
35477
  }
@@ -35424,7 +35485,7 @@ function ConnectedThreadLauncher({ autoFocus }) {
35424
35485
  const [later, setLater] = react$1.useState(null);
35425
35486
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
35426
35487
  /* @__PURE__ */ jsxRuntime.jsx(
35427
- chunkCJF7B5A7_cjs.ThreadLauncher,
35488
+ chunkDRUNPUDT_cjs.ThreadLauncher,
35428
35489
  {
35429
35490
  workflows: task.workflows,
35430
35491
  people: task.people,
@@ -35454,14 +35515,14 @@ function ConnectedThreadLauncher({ autoFocus }) {
35454
35515
  }
35455
35516
  ),
35456
35517
  later && /* @__PURE__ */ jsxRuntime.jsx(
35457
- chunkJSHBC47B_cjs.ConnectedTaskComposer,
35518
+ chunkBP5KBZLX_cjs.ConnectedTaskComposer,
35458
35519
  {
35459
35520
  open: true,
35460
35521
  onOpenChange: (next) => !next && setLater(null),
35461
35522
  kind: "workflow",
35462
35523
  startLater: true,
35463
35524
  initialPrompt: later.prompt,
35464
- initialWorkflowId: later.todo ? chunkCJF7B5A7_cjs.REMIND_TASK_ID : void 0,
35525
+ initialWorkflowId: later.todo ? chunkDRUNPUDT_cjs.REMIND_TASK_ID : void 0,
35465
35526
  initialShared: later.shared,
35466
35527
  launchWorkflow: later.workflow
35467
35528
  }
@@ -35490,13 +35551,13 @@ function ConnectedNewThreadDialog({
35490
35551
  });
35491
35552
  const parentOptions = react$1.useMemo(() => {
35492
35553
  const leaf = { external_id: "__new__" };
35493
- return chunkCJF7B5A7_cjs.moveTargets([...tasks, leaf], leaf).map((t) => ({
35554
+ return chunkDRUNPUDT_cjs.moveTargets([...tasks, leaf], leaf).map((t) => ({
35494
35555
  id: t.external_id,
35495
35556
  name: t.title?.trim() || "Untitled task"
35496
35557
  }));
35497
35558
  }, [tasks]);
35498
35559
  const submit = async (values) => {
35499
- const request = chunkCJF7B5A7_cjs.newThreadToRequest(values);
35560
+ const request = chunkDRUNPUDT_cjs.newThreadToRequest(values);
35500
35561
  try {
35501
35562
  if (!workspaceId) throw new Error("Open a workspace to add a task.");
35502
35563
  if (!request.startAssistant && request.todo) {
@@ -35537,7 +35598,7 @@ function ConnectedNewThreadDialog({
35537
35598
  }
35538
35599
  };
35539
35600
  return /* @__PURE__ */ jsxRuntime.jsx(
35540
- chunkCJF7B5A7_cjs.NewThreadDialog,
35601
+ chunkDRUNPUDT_cjs.NewThreadDialog,
35541
35602
  {
35542
35603
  open,
35543
35604
  onOpenChange,
@@ -35553,7 +35614,7 @@ function ConnectedNewThreadDialog({
35553
35614
  var START_VISIBLE = 8;
35554
35615
  var START_SEARCH_ABOVE = 8;
35555
35616
  function ConnectedConversationStart() {
35556
- const { start } = chunkJSHBC47B_cjs.useWorkflowDefinitions();
35617
+ const { start } = chunkBP5KBZLX_cjs.useWorkflowDefinitions();
35557
35618
  const { openSkillsBrowser } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
35558
35619
  const [query, setQuery] = react$1.useState("");
35559
35620
  const q = query.trim().toLowerCase();
@@ -35568,7 +35629,7 @@ function ConnectedConversationStart() {
35568
35629
  const browse = openSkillsBrowser ? [
35569
35630
  {
35570
35631
  id: "browse-all",
35571
- iconNode: chunkCJF7B5A7_cjs.renderWorkflowIcon("library"),
35632
+ iconNode: chunkDRUNPUDT_cjs.renderWorkflowIcon("library"),
35572
35633
  title: "Browse all",
35573
35634
  description: "See every skill, make a copy, add your own",
35574
35635
  onSelect: () => openSkillsBrowser(),
@@ -35612,7 +35673,7 @@ function parseTypedSkill(draft) {
35612
35673
  return m ? { slug: m[1].toLowerCase(), text: (m[2] ?? "").trim() } : null;
35613
35674
  }
35614
35675
  function useSlashSkillWorkflows({ landing }) {
35615
- const { skills, skillsEnabled } = chunkJSHBC47B_cjs.useWorkflowDefinitions();
35676
+ const { skills, skillsEnabled } = chunkBP5KBZLX_cjs.useWorkflowDefinitions();
35616
35677
  const { commands } = react.useBuiltinCommands();
35617
35678
  const [active, setActive] = react$1.useState(null);
35618
35679
  const open = (workflow, text2) => {
@@ -35718,7 +35779,7 @@ function AgentBarShell({
35718
35779
  }, [isStepsExpanded, steps]);
35719
35780
  const visibleStepCount = react$1.useMemo(() => browser.topLevelAgentSteps(steps ?? []).length, [steps]);
35720
35781
  return /* @__PURE__ */ jsxRuntime.jsx(
35721
- chunkCJF7B5A7_cjs.AgentBar,
35782
+ chunkDRUNPUDT_cjs.AgentBar,
35722
35783
  {
35723
35784
  className,
35724
35785
  testId,
@@ -35791,7 +35852,7 @@ function AgentControlBar({
35791
35852
  }
35792
35853
  );
35793
35854
  const status = /* @__PURE__ */ jsxRuntime.jsx(
35794
- chunkCJF7B5A7_cjs.AgentBarStatus,
35855
+ chunkDRUNPUDT_cjs.AgentBarStatus,
35795
35856
  {
35796
35857
  state: showState ? controlState : void 0,
35797
35858
  stateLabel: STATE_LABEL[controlState],
@@ -35833,7 +35894,7 @@ function AgentControlBar({
35833
35894
  ];
35834
35895
  const controls = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
35835
35896
  onStop && /* @__PURE__ */ jsxRuntime.jsx(
35836
- chunkCJF7B5A7_cjs.AgentBarIconButton,
35897
+ chunkDRUNPUDT_cjs.AgentBarIconButton,
35837
35898
  {
35838
35899
  onClick: onStop,
35839
35900
  title: "Stop",
@@ -35842,22 +35903,22 @@ function AgentControlBar({
35842
35903
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Square, { className: "h-3 w-3", fill: "currentColor" })
35843
35904
  }
35844
35905
  ),
35845
- /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.AgentBarMenu, { items: menuItems })
35906
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.AgentBarMenu, { items: menuItems })
35846
35907
  ] });
35847
35908
  const displayedQueuedMessages = (transientQueuedMessages ?? []).filter(
35848
35909
  (message) => !message.serverId || !queuedMessages.some((queued) => queued.external_id === message.serverId)
35849
35910
  );
35850
35911
  const queuedNotes = displayedQueuedMessages.filter((message) => message.content);
35851
- const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.AgentBarNotes, { children: [
35912
+ const below = probeAnswer || queuedNotes.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(chunkDRUNPUDT_cjs.AgentBarNotes, { children: [
35852
35913
  queuedNotes.map((message, index) => /* @__PURE__ */ jsxRuntime.jsx(
35853
- chunkCJF7B5A7_cjs.AgentBarQueuedNote,
35914
+ chunkDRUNPUDT_cjs.AgentBarQueuedNote,
35854
35915
  {
35855
35916
  text: message.content ?? "",
35856
35917
  isAcknowledged: message.acknowledged
35857
35918
  },
35858
35919
  index
35859
35920
  )),
35860
- probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.AgentBarProbeAnswer, { answer: probeAnswer.answer })
35921
+ probeAnswer && /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.AgentBarProbeAnswer, { answer: probeAnswer.answer })
35861
35922
  ] }) : null;
35862
35923
  return /* @__PURE__ */ jsxRuntime.jsx(
35863
35924
  AgentBarShell,
@@ -35999,7 +36060,7 @@ function ThreadSearch({ children, ResultsBoundary = chunkMZZ3SBQL_cjs.ErrorBound
35999
36060
  [openConversation]
36000
36061
  );
36001
36062
  return /* @__PURE__ */ jsxRuntime.jsx(
36002
- chunkTVHTXO6V_cjs.ConversationSearchView,
36063
+ chunk56WWEK6I_cjs.ConversationSearchView,
36003
36064
  {
36004
36065
  query,
36005
36066
  onQueryChange: setQuery,
@@ -36062,8 +36123,8 @@ function ConnectedThreadsPage({
36062
36123
  const tasks = useStableRecencyOrder(listed);
36063
36124
  const updateConversation = react.useUpdateConversation();
36064
36125
  const deleteConversation = react.useDeleteConversation();
36065
- const people = chunkJSHBC47B_cjs.useTaskPeople();
36066
- const renderPerson = chunkJSHBC47B_cjs.useRenderTaskPerson();
36126
+ const people = chunkBP5KBZLX_cjs.useTaskPeople();
36127
+ const renderPerson = chunkBP5KBZLX_cjs.useRenderTaskPerson();
36067
36128
  const canEditShared = react.useCanEditShared();
36068
36129
  const isWorkspaceOwner = react.useIsWorkspaceOwner();
36069
36130
  const { data: agents = [] } = react.useAgents();
@@ -36301,7 +36362,7 @@ function ConnectedThreadsPage({
36301
36362
  "data-testid": mode === "tasks" ? "tasks-page" : "threads-page",
36302
36363
  children: [
36303
36364
  /* @__PURE__ */ jsxRuntime.jsx("main", { className: "flex min-h-0 flex-1 flex-col bg-background", children: mode === "threads" ? /* @__PURE__ */ jsxRuntime.jsx(
36304
- chunkCJF7B5A7_cjs.ConversationListView,
36365
+ chunkDRUNPUDT_cjs.ConversationListView,
36305
36366
  {
36306
36367
  showHeader,
36307
36368
  conversations: tasks,
@@ -36321,7 +36382,7 @@ function ConnectedThreadsPage({
36321
36382
  renderLabels: threadLabels.renderLabels,
36322
36383
  labelText: threadLabels.labelText,
36323
36384
  renderBy: (row2) => /* @__PURE__ */ jsxRuntime.jsx(
36324
- chunkCJF7B5A7_cjs.ConversationTurnSpeaker,
36385
+ chunkDRUNPUDT_cjs.ConversationTurnSpeaker,
36325
36386
  {
36326
36387
  variant: "icon",
36327
36388
  role: row2.last_message_role,
@@ -36343,7 +36404,7 @@ function ConnectedThreadsPage({
36343
36404
  footer: /* @__PURE__ */ jsxRuntime.jsx(ConnectedThreadLauncher, { autoFocus: focusLauncher })
36344
36405
  }
36345
36406
  ) : /* @__PURE__ */ jsxRuntime.jsx(
36346
- chunkCJF7B5A7_cjs.TaskInbox,
36407
+ chunkDRUNPUDT_cjs.TaskInbox,
36347
36408
  {
36348
36409
  tasks,
36349
36410
  isLoading,
@@ -36387,7 +36448,7 @@ function ConnectedThreadsPage({
36387
36448
  initialParentId: parentForNew
36388
36449
  }
36389
36450
  ),
36390
- /* @__PURE__ */ jsxRuntime.jsx(chunkJSHBC47B_cjs.ConnectedTaskComposer, { open: editorOpen, onOpenChange: setEditorOpen, task: editing }),
36451
+ /* @__PURE__ */ jsxRuntime.jsx(chunkBP5KBZLX_cjs.ConnectedTaskComposer, { open: editorOpen, onOpenChange: setEditorOpen, task: editing }),
36391
36452
  /* @__PURE__ */ jsxRuntime.jsx(
36392
36453
  ConnectedExportDialog,
36393
36454
  {
@@ -36623,7 +36684,7 @@ function ConnectedConversationPage({
36623
36684
  }
36624
36685
  );
36625
36686
  const { data: workspaceTags = [] } = react.useTags();
36626
- const historyCount = chunkCJF7B5A7_cjs.filterConversationRows(
36687
+ const historyCount = chunkDRUNPUDT_cjs.filterConversationRows(
36627
36688
  conversations,
36628
36689
  threadFilter,
36629
36690
  (row2) => workspaceTags.filter((tag) => row2.label_ext_ids?.includes(tag.external_id)).map((tag) => tag.name).join(" "),
@@ -36633,15 +36694,15 @@ function ConnectedConversationPage({
36633
36694
  ).length;
36634
36695
  const historyFiltered = Boolean(threadFilter.trim()) || doneFilter !== null || meetingFilter !== null || Object.values(visibilityFilters).some(Boolean);
36635
36696
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
36636
- /* @__PURE__ */ jsxRuntime.jsxs(chunkTVHTXO6V_cjs.ConversationRoot, { children: [
36637
- /* @__PURE__ */ jsxRuntime.jsxs(chunkTVHTXO6V_cjs.ConversationHeader, { children: [
36697
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk56WWEK6I_cjs.ConversationRoot, { children: [
36698
+ /* @__PURE__ */ jsxRuntime.jsxs(chunk56WWEK6I_cjs.ConversationHeader, { children: [
36638
36699
  /* @__PURE__ */ jsxRuntime.jsx(
36639
36700
  ConnectedThreadTabs,
36640
36701
  {
36641
36702
  historyCount,
36642
36703
  historyFiltered,
36643
36704
  historyActions: threadFilterBox,
36644
- rightContent: (isCompact) => /* @__PURE__ */ jsxRuntime.jsxs(chunkTVHTXO6V_cjs.ConversationHeaderActions, { children: [
36705
+ rightContent: (isCompact) => /* @__PURE__ */ jsxRuntime.jsxs(chunk56WWEK6I_cjs.ConversationHeaderActions, { children: [
36645
36706
  searchEnabled && /* @__PURE__ */ jsxRuntime.jsx(
36646
36707
  SemanticSearchButton,
36647
36708
  {
@@ -36658,7 +36719,7 @@ function ConnectedConversationPage({
36658
36719
  ),
36659
36720
  isInChat && /* @__PURE__ */ jsxRuntime.jsx(chunk33PWCTND_cjs.ConnectedConversationCallActions, {}),
36660
36721
  isInChat && /* @__PURE__ */ jsxRuntime.jsx(
36661
- chunkTVHTXO6V_cjs.NewChatButton,
36722
+ chunk56WWEK6I_cjs.NewChatButton,
36662
36723
  {
36663
36724
  entityLabel: "Task",
36664
36725
  labels: { newEntity: () => "New Task" },
@@ -36669,11 +36730,11 @@ function ConnectedConversationPage({
36669
36730
  }
36670
36731
  }
36671
36732
  ),
36672
- showPaMode && /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.NewPaChatButton, { isCompact, onClick: () => startNewChat() })
36733
+ showPaMode && /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.NewPaChatButton, { isCompact, onClick: () => startNewChat() })
36673
36734
  ] })
36674
36735
  }
36675
36736
  ),
36676
- isInChat && /* @__PURE__ */ jsxRuntime.jsx(chunkJSHBC47B_cjs.ConnectedThreadTaskBar, { conversationId: currentConversationId })
36737
+ isInChat && /* @__PURE__ */ jsxRuntime.jsx(chunkBP5KBZLX_cjs.ConnectedThreadTaskBar, { conversationId: currentConversationId })
36677
36738
  ] }),
36678
36739
  isInChat && /* @__PURE__ */ jsxRuntime.jsx(
36679
36740
  ConversationThread2,
@@ -36689,7 +36750,7 @@ function ConnectedConversationPage({
36689
36750
  uploadDisabledReason
36690
36751
  }) : composerAccessory,
36691
36752
  composerTools: composerTools !== void 0 ? composerTools : isDeveloper && /* @__PURE__ */ jsxRuntime.jsx(
36692
- chunkTVHTXO6V_cjs.ConversationSettingsButton,
36753
+ chunk56WWEK6I_cjs.ConversationSettingsButton,
36693
36754
  {
36694
36755
  label: `${ui.getEntityLabel("CONVERSATION")} Settings`,
36695
36756
  onClick: () => chunkGMM3RBIB_cjs.openDialog("conversationSettings")
@@ -36697,7 +36758,7 @@ function ConnectedConversationPage({
36697
36758
  )
36698
36759
  }
36699
36760
  ),
36700
- !isInChat && /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ConversationHistoryPane, { children: searchEnabled && semanticSearchOpen ? /* @__PURE__ */ jsxRuntime.jsx(ConnectedThreadsPage, { showHeader: false, search: true, ResultsBoundary }) : /* @__PURE__ */ jsxRuntime.jsx(ConnectedThreadsPage, { showHeader: false, focusLauncher }) })
36761
+ !isInChat && /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ConversationHistoryPane, { children: searchEnabled && semanticSearchOpen ? /* @__PURE__ */ jsxRuntime.jsx(ConnectedThreadsPage, { showHeader: false, search: true, ResultsBoundary }) : /* @__PURE__ */ jsxRuntime.jsx(ConnectedThreadsPage, { showHeader: false, focusLauncher }) })
36701
36762
  ] }),
36702
36763
  /* @__PURE__ */ jsxRuntime.jsx(
36703
36764
  chunkVGNCU5JJ_cjs.UrlInputDialog,
@@ -37547,7 +37608,7 @@ function ConversationThread({
37547
37608
  }, [isGenerating]);
37548
37609
  const slashWorkflows = useSlashSkillWorkflows({ landing: "current-chat" });
37549
37610
  const composerSkills = react$1.useMemo(
37550
- () => ({ builtin: chunkCJF7B5A7_cjs.BUILTIN_SKILLS, openFor: slashWorkflows.openFor }),
37611
+ () => ({ builtin: chunkDRUNPUDT_cjs.BUILTIN_SKILLS, openFor: slashWorkflows.openFor }),
37551
37612
  [slashWorkflows.openFor]
37552
37613
  );
37553
37614
  const browseSkills = react$1.useMemo(
@@ -37595,8 +37656,8 @@ function ConversationThread({
37595
37656
  react.useAutoSendDraft(handleComposerSend, !isLoadingWorkspaceDocuments);
37596
37657
  useStartRequestedDraft();
37597
37658
  const orphanedMessage = react.getOrphanedLastMessage(messageHistory, isGenerating, assistantMode);
37598
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkTVHTXO6V_cjs.ConversationBody, { children: [
37599
- /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ConversationMain, { "data-testid": `conversation-${currentConversationId}`, children: threadsLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.ConversationLoading, {}) : messageHistory.length > 0 || isBranching ? /* @__PURE__ */ jsxRuntime.jsx(chunkDJE2E7YH_cjs.AskAgainContext.Provider, { value: handleAskAgain, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkRGPKW6KQ_cjs.TranscriptRunsContext.Provider, { value: transcriptRunInfo, children: [
37659
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunk56WWEK6I_cjs.ConversationBody, { children: [
37660
+ /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ConversationMain, { "data-testid": `conversation-${currentConversationId}`, children: threadsLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.ConversationLoading, {}) : messageHistory.length > 0 || isBranching ? /* @__PURE__ */ jsxRuntime.jsx(chunkDJE2E7YH_cjs.AskAgainContext.Provider, { value: handleAskAgain, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkRGPKW6KQ_cjs.TranscriptRunsContext.Provider, { value: transcriptRunInfo, children: [
37600
37661
  meetingCallExtId && transcriptLineCount > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center py-2", children: /* @__PURE__ */ jsxRuntime.jsx(
37601
37662
  chunk3UGJCSTO_cjs.ConversationFilter,
37602
37663
  {
@@ -37622,7 +37683,7 @@ function ConversationThread({
37622
37683
  /* @__PURE__ */ jsxRuntime.jsx(chunk33PWCTND_cjs.CallConversationEmpty, { callExtId: meetingCallExtId }),
37623
37684
  /* @__PURE__ */ jsxRuntime.jsx(chunk33PWCTND_cjs.ProvisionalSpeakers, { ids: provisionalSpeakers })
37624
37685
  ] })
37625
- ) : currentTask && currentTask.status != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.TaskEmptyState, { task: currentTask }) : pendingFirstTurn && isGenerating ? /* @__PURE__ */ jsxRuntime.jsx(chunkDJE2E7YH_cjs.ConnectedMessageArea, { ref: containerRef, messages: pendingFirstTurn }) : /* @__PURE__ */ jsxRuntime.jsx(
37686
+ ) : currentTask && currentTask.status != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.TaskEmptyState, { task: currentTask }) : pendingFirstTurn && isGenerating ? /* @__PURE__ */ jsxRuntime.jsx(chunkDJE2E7YH_cjs.ConnectedMessageArea, { ref: containerRef, messages: pendingFirstTurn }) : /* @__PURE__ */ jsxRuntime.jsx(
37626
37687
  ConnectedConversationEmpty,
37627
37688
  {
37628
37689
  hasDocuments: allWorkspaceDocuments.length > 0,
@@ -37665,7 +37726,7 @@ function ConversationThread({
37665
37726
  }
37666
37727
  ) : null,
37667
37728
  pendingAnswer && /* @__PURE__ */ jsxRuntime.jsx(
37668
- chunkTVHTXO6V_cjs.PendingAnswerBar,
37729
+ chunk56WWEK6I_cjs.PendingAnswerBar,
37669
37730
  {
37670
37731
  question: pendingAnswer.request.question,
37671
37732
  options: pendingAnswer.request.options,
@@ -37707,7 +37768,7 @@ function ConversationThread({
37707
37768
  onBrowseSkills: browseSkills,
37708
37769
  contextUsage: latestContextUsage,
37709
37770
  isConversationEmpty: messageHistory.length === 0 && !isBranching,
37710
- leftButton: paMode ? /* @__PURE__ */ jsxRuntime.jsx(chunkTVHTXO6V_cjs.PaModeBadge, { icon: /* @__PURE__ */ jsxRuntime.jsx(react.ArbiBotHeadIcon, { size: 16, className: "shrink-0" }) }) : /* @__PURE__ */ jsxRuntime.jsxs(chunkTVHTXO6V_cjs.ComposerAccessories, { children: [
37771
+ leftButton: paMode ? /* @__PURE__ */ jsxRuntime.jsx(chunk56WWEK6I_cjs.PaModeBadge, { icon: /* @__PURE__ */ jsxRuntime.jsx(react.ArbiBotHeadIcon, { size: 16, className: "shrink-0" }) }) : /* @__PURE__ */ jsxRuntime.jsxs(chunk56WWEK6I_cjs.ComposerAccessories, { children: [
37711
37772
  composerAccessory,
37712
37773
  threadDocument.unavailable ? /* @__PURE__ */ jsxRuntime.jsx(
37713
37774
  chunkWWFHS6EI_cjs.DraftingDocChip,
@@ -37731,7 +37792,7 @@ function ConversationThread({
37731
37792
  }
37732
37793
  )
37733
37794
  ] }),
37734
- rightButton: /* @__PURE__ */ jsxRuntime.jsxs(chunkTVHTXO6V_cjs.ComposerTools, { children: [
37795
+ rightButton: /* @__PURE__ */ jsxRuntime.jsxs(chunk56WWEK6I_cjs.ComposerTools, { children: [
37735
37796
  composerTools,
37736
37797
  /* @__PURE__ */ jsxRuntime.jsx(MicButton, { inputRef }),
37737
37798
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -37997,7 +38058,7 @@ var sodiumWarmed = false;
37997
38058
  function warmSodium() {
37998
38059
  if (sodiumWarmed) return;
37999
38060
  sodiumWarmed = true;
38000
- const run = () => void chunkZZHMJXM5_cjs.prefetchChunk(client.initSodium);
38061
+ const run = () => void chunkIXZCXK6Q_cjs.prefetchChunk(client.initSodium);
38001
38062
  if (typeof window.requestIdleCallback === "function") window.requestIdleCallback(run);
38002
38063
  else window.setTimeout(run, 200);
38003
38064
  }
@@ -38601,7 +38662,7 @@ function SsoResendVerificationButton({
38601
38662
  onClick: async () => handleResendEmailVerification(),
38602
38663
  disabled: loading || disabled,
38603
38664
  "aria-label": "Resend verification email",
38604
- children: loading ? /* @__PURE__ */ jsxRuntime.jsx(chunk7MOQO6NO_cjs.LoadingIndicator, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
38665
+ children: loading ? /* @__PURE__ */ jsxRuntime.jsx(chunkRB54N5I7_cjs.LoadingIndicator, {}) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
38605
38666
  "Didn't get a verification email? ",
38606
38667
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold", children: "Resend" })
38607
38668
  ] })
@@ -39495,27 +39556,27 @@ function ConnectedOAuthConsentPage({
39495
39556
  oauthErrorRedirect(params.redirectUri, params.state, "access_denied");
39496
39557
  }
39497
39558
  if (error && !params) {
39498
- return /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentMessage, { tone: "error", title: "Invalid Request", children: error }) });
39559
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.ConsentMessage, { tone: "error", title: "Invalid Request", children: error }) });
39499
39560
  }
39500
39561
  if (!params) {
39501
39562
  return null;
39502
39563
  }
39503
39564
  if (clientInfo?.isLocalAgentFlow) {
39504
- return /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_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." }) });
39565
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_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." }) });
39505
39566
  }
39506
39567
  if (!isAuthenticated2) {
39507
39568
  return null;
39508
39569
  }
39509
39570
  if (callbackUrl) {
39510
- return /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.ConsentCard, { size: "md", children: [
39511
- /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ClipboardList, {}), title: "Almost there", children: [
39571
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkDRUNPUDT_cjs.ConsentCard, { size: "md", children: [
39572
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkDRUNPUDT_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ClipboardList, {}), title: "Almost there", children: [
39512
39573
  "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",
39513
39574
  " ",
39514
39575
  copied ? "it's already copied to your clipboard." : "copy it first."
39515
39576
  ] }),
39516
- /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.ConsentSection, { title: "Callback URL", children: [
39517
- /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.CopyableUrl, { url: callbackUrl, copied, onCopy: handleCopy }),
39518
- /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.ConsentText, { variant: "hint", children: [
39577
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkDRUNPUDT_cjs.ConsentSection, { title: "Callback URL", children: [
39578
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.CopyableUrl, { url: callbackUrl, copied, onCopy: handleCopy }),
39579
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkDRUNPUDT_cjs.ConsentText, { variant: "hint", children: [
39519
39580
  "In Claude Code, paste the URL at the prompt that says",
39520
39581
  " ",
39521
39582
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-foreground", children: '"paste the full redirect URL here"' }),
@@ -39524,17 +39585,17 @@ function ConnectedOAuthConsentPage({
39524
39585
  ] })
39525
39586
  ] }) });
39526
39587
  }
39527
- return /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.ConsentCard, { children: [
39528
- /* @__PURE__ */ jsxRuntime.jsxs(chunkCJF7B5A7_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link2, {}), title: `Connect to ${appName}`, children: [
39529
- /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentStrong, { children: clientInfo?.name ?? params.clientId }),
39588
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.ConsentPage, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkDRUNPUDT_cjs.ConsentCard, { children: [
39589
+ /* @__PURE__ */ jsxRuntime.jsxs(chunkDRUNPUDT_cjs.ConsentHeader, { icon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Link2, {}), title: `Connect to ${appName}`, children: [
39590
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.ConsentStrong, { children: clientInfo?.name ?? params.clientId }),
39530
39591
  " is requesting access to your ",
39531
39592
  appName,
39532
39593
  " workspace."
39533
39594
  ] }),
39534
- /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentSection, { title: "This will allow", children: /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentPermissionList, { items: permissions }) }),
39535
- error && /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentNotice, { tone: "error", children: error }),
39536
- /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentActions, { isLoading: loading, onDeny: handleDeny, onAllow: handleAllow }),
39537
- /* @__PURE__ */ jsxRuntime.jsx(chunkCJF7B5A7_cjs.ConsentFootnote, { children: footnote })
39595
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.ConsentSection, { title: "This will allow", children: /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.ConsentPermissionList, { items: permissions }) }),
39596
+ error && /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.ConsentNotice, { tone: "error", children: error }),
39597
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.ConsentActions, { isLoading: loading, onDeny: handleDeny, onAllow: handleAllow }),
39598
+ /* @__PURE__ */ jsxRuntime.jsx(chunkDRUNPUDT_cjs.ConsentFootnote, { children: footnote })
39538
39599
  ] }) });
39539
39600
  }
39540
39601
  function ConnectedSharedFilesPage({
@@ -39712,7 +39773,7 @@ function ConnectedPanelHost({
39712
39773
  onClose();
39713
39774
  }, [onClose]);
39714
39775
  const setFocusedArea = react.useArbiSessionStore().setFocusedArea;
39715
- const { popoutTitle } = chunkZZHMJXM5_cjs.usePanelHostSupport();
39776
+ const { popoutTitle } = chunkIXZCXK6Q_cjs.usePanelHostSupport();
39716
39777
  const focusedArea = react.useArbiSessionState((s) => s.shell.focusedArea);
39717
39778
  const handlePanelFocus = react$1.useCallback(() => {
39718
39779
  setFocusedArea(panelId);
@@ -39745,7 +39806,7 @@ function ConnectedPanelHost({
39745
39806
  }, [isExiting]);
39746
39807
  if (!isOpen && !isExiting) return null;
39747
39808
  const modeSwitcher = /* @__PURE__ */ jsxRuntime.jsx(
39748
- chunkZZHMJXM5_cjs.PanelModeSwitcher,
39809
+ chunkIXZCXK6Q_cjs.PanelModeSwitcher,
39749
39810
  {
39750
39811
  mode,
39751
39812
  onModeChange: setPanelMode,
@@ -39771,7 +39832,7 @@ function ConnectedPanelHost({
39771
39832
  }
39772
39833
  );
39773
39834
  return /* @__PURE__ */ jsxRuntime.jsx(
39774
- chunkZZHMJXM5_cjs.PanelPortal,
39835
+ chunkIXZCXK6Q_cjs.PanelPortal,
39775
39836
  {
39776
39837
  defaultWidth,
39777
39838
  panelId,
@@ -39810,7 +39871,7 @@ function ConnectedAppShell({
39810
39871
  const session = react.useArbiSessionStore();
39811
39872
  const dockedPanel = react.useArbiSessionState((state) => state.shell.panels.docked);
39812
39873
  const dockSqueezed = chunkFX3K6LNZ_cjs.useMediaQuery(sidebarPolicy?.dockedRailQuery ?? "(max-width: 0px)");
39813
- const sidebar = chunkZZHMJXM5_cjs.useSidebarController({
39874
+ const sidebar = chunkIXZCXK6Q_cjs.useSidebarController({
39814
39875
  ...useSessionSidebar(),
39815
39876
  forceRail: !!sidebarPolicy?.dockedRailQuery && dockSqueezed && dockedPanel !== null,
39816
39877
  hoverExpansion: sidebarPolicy?.hoverExpansion
@@ -39821,9 +39882,9 @@ function ConnectedAppShell({
39821
39882
  }, [navigationKey, closeDrawer]);
39822
39883
  const controller = { sidebar };
39823
39884
  const renderSlot = (slot) => typeof slot === "function" ? slot(controller) : slot;
39824
- const pageContent = /* @__PURE__ */ jsxRuntime.jsx(chunkITRI47DF_cjs.PageContainer, { ...page, children });
39885
+ const pageContent = /* @__PURE__ */ jsxRuntime.jsx(chunkGMGEAWFX_cjs.PageContainer, { ...page, children });
39825
39886
  return /* @__PURE__ */ jsxRuntime.jsx(AppShellContext.Provider, { value: controller, children: /* @__PURE__ */ jsxRuntime.jsx(
39826
- chunkITRI47DF_cjs.Shell.Root,
39887
+ chunkGMGEAWFX_cjs.Shell.Root,
39827
39888
  {
39828
39889
  ...rootProps,
39829
39890
  banner: renderSlot(banner),
@@ -39833,14 +39894,14 @@ function ConnectedAppShell({
39833
39894
  aside: renderSlot(aside),
39834
39895
  overlays: renderSlot(overlays),
39835
39896
  children: /* @__PURE__ */ jsxRuntime.jsx(
39836
- chunkITRI47DF_cjs.Shell.Content,
39897
+ chunkGMGEAWFX_cjs.Shell.Content,
39837
39898
  {
39838
39899
  ...contentProps,
39839
39900
  onClick: (event) => {
39840
39901
  if (focusMainOnClick) session.setFocusedArea("main");
39841
39902
  contentProps?.onClick?.(event);
39842
39903
  },
39843
- children: content.mode === "docked" ? /* @__PURE__ */ jsxRuntime.jsxs(chunkZZHMJXM5_cjs.DockZone, { "data-testid": content.testId, children: [
39904
+ children: content.mode === "docked" ? /* @__PURE__ */ jsxRuntime.jsxs(chunkIXZCXK6Q_cjs.DockZone, { "data-testid": content.testId, children: [
39844
39905
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: content.mainPanelVisible ? "hidden" : "h-full min-h-0", children: pageContent }),
39845
39906
  /* @__PURE__ */ jsxRuntime.jsx(
39846
39907
  "div",
@@ -39859,10 +39920,10 @@ function useContextualHints() {
39859
39920
  const session = react.useArbiSessionStore();
39860
39921
  const { data: userSettings } = react.useUserSettings();
39861
39922
  const updateUserSettings = react.useUpdateUserSettings();
39862
- const [sessionOverride] = react.useTransientView(chunk7MOQO6NO_cjs.TIPS_VISIBILITY_OVERRIDE, null);
39863
- const setShowHints = (value) => chunk7MOQO6NO_cjs.setHintsSessionOverride(session, value);
39923
+ const [sessionOverride] = react.useTransientView(chunkRB54N5I7_cjs.TIPS_VISIBILITY_OVERRIDE, null);
39924
+ const setShowHints = (value) => chunkRB54N5I7_cjs.setHintsSessionOverride(session, value);
39864
39925
  const setShowHintsPersisted = (value) => {
39865
- chunk7MOQO6NO_cjs.setHintsSessionOverride(session, null);
39926
+ chunkRB54N5I7_cjs.setHintsSessionOverride(session, null);
39866
39927
  updateUserSettings.mutate({ show_hints: value });
39867
39928
  };
39868
39929
  return {
@@ -39874,6 +39935,218 @@ function useContextualHints() {
39874
39935
  dismissHints: () => setShowHints(false)
39875
39936
  };
39876
39937
  }
39938
+ var DEFAULT_TIPS_OFF_LABEL = "Tips are off. Turn them back on from your account menu.";
39939
+ function ConnectedTipBar({
39940
+ registry,
39941
+ context,
39942
+ state,
39943
+ onCta,
39944
+ autoRotateSeconds = 30,
39945
+ onDismiss,
39946
+ renderEditor,
39947
+ labels,
39948
+ className
39949
+ }) {
39950
+ const { showHints, settingsLoaded, setShowHintsPersisted } = useContextualHints();
39951
+ const { dismissed, dismissTip } = react.useDismissedTips();
39952
+ const { notify: notify16 } = chunkT6GRWWRY_cjs.useBlocksEnvironment();
39953
+ const { data: workspaces } = react.useWorkspaces();
39954
+ const workspaceOpen = react.useArbiSessionState((session) => !!session.workspaceId);
39955
+ const [editing, setEditing] = react$1.useState(false);
39956
+ const situation = {
39957
+ workspaceCount: workspaces?.length ?? 0,
39958
+ workspaceOpen,
39959
+ ...state
39960
+ };
39961
+ const { tip, index, count: count2, previous, next, onHoverChange } = chunkRB54N5I7_cjs.useTipsPlacement({
39962
+ registry,
39963
+ context,
39964
+ state: situation,
39965
+ dismissed,
39966
+ autoRotateSeconds
39967
+ });
39968
+ if (!settingsLoaded || !showHints || !tip) return null;
39969
+ const takeCta = (shown) => () => {
39970
+ if (shown.cta !== void 0) onCta?.(shown.cta);
39971
+ if (shown.dismissOnCta) dismissTip(shown.code);
39972
+ };
39973
+ const dismiss = onDismiss ?? (() => {
39974
+ setShowHintsPersisted(false);
39975
+ notify16(labels?.tipsOff ?? DEFAULT_TIPS_OFF_LABEL, "info");
39976
+ });
39977
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
39978
+ /* @__PURE__ */ jsxRuntime.jsx(
39979
+ chunkIXZCXK6Q_cjs.TipCard,
39980
+ {
39981
+ message: tip.message,
39982
+ index,
39983
+ count: count2,
39984
+ onPrev: previous,
39985
+ onNext: next,
39986
+ onCta: tip.cta !== void 0 ? takeCta(tip) : void 0,
39987
+ onDismiss: dismiss,
39988
+ onEdit: renderEditor ? () => setEditing(true) : void 0,
39989
+ onHoverChange,
39990
+ labels,
39991
+ className
39992
+ }
39993
+ ),
39994
+ renderEditor?.({ context, open: editing, onOpenChange: setEditing })
39995
+ ] });
39996
+ }
39997
+ var GETTING_STARTED_DONE_TIP = "GS_DONE";
39998
+ var DEFAULT_GETTING_STARTED_STEPS = {
39999
+ workspace: {
40000
+ title: "Create your workspace",
40001
+ description: () => "Click \u201C+ Workspace\u201D on the home screen."
40002
+ },
40003
+ upload: {
40004
+ title: "Upload a document",
40005
+ description: (inWorkspace) => inWorkspace ? "Add a file under \u201CFiles\u201D." : "Open a workspace, then add a file under \u201CFiles\u201D."
40006
+ },
40007
+ ask: {
40008
+ title: "Ask a question",
40009
+ description: (inWorkspace) => inWorkspace ? "Open \u201CThreads\u201D and ask a question." : "In a workspace, open \u201CThreads\u201D and ask a question."
40010
+ },
40011
+ invite: {
40012
+ title: "Invite a colleague",
40013
+ description: (inWorkspace) => inWorkspace ? "Invite someone from the members section." : "Open a workspace\u2019s members to invite someone."
40014
+ }
40015
+ };
40016
+ var NO_TIPS = [];
40017
+ function useGettingStarted({
40018
+ steps: stepCopy,
40019
+ retireTipsOnComplete = NO_TIPS
40020
+ } = {}) {
40021
+ const { user } = react.useArbiSession();
40022
+ const userExtId = user?.external_id;
40023
+ const temporaryOnly = user?.temporary_access_only === true;
40024
+ const { showHints, settingsLoaded, setShowHints, setShowHintsPersisted } = useContextualHints();
40025
+ const { dismissed, loaded: dismissedLoaded, dismissTip } = react.useDismissedTips();
40026
+ const welcomeJourneyEnabled = react.useFeature("welcomeJourney");
40027
+ const session = react.useArbiSessionStore();
40028
+ const [replayView] = react.useTransientView(chunkRB54N5I7_cjs.WELCOME_REPLAY_VIEW, false);
40029
+ const welcomeReplay = replayView === true;
40030
+ const welcomeDialogOpen = chunkGMM3RBIB_cjs.useDialogProps("welcome") !== null;
40031
+ const inWorkspace = react.useArbiSessionState((s) => !!s.workspaceId && s.workspaceStatus === "open");
40032
+ const { data: workspaces, isLoading: workspacesLoading } = react.useWorkspaces();
40033
+ const { data: projects, isLoading: projectsLoading } = react.useProjects();
40034
+ const isLoading = workspacesLoading || projectsLoading;
40035
+ const counts = react$1.useMemo(() => {
40036
+ const ownedWorkspaces = (workspaces ?? []).filter((w) => w.created_by_ext_id === userExtId);
40037
+ const ownedProjects = (projects ?? []).filter((p) => p.created_by === userExtId);
40038
+ const docCount = (w) => (w.shared_document_count ?? 0) + (w.private_document_count ?? 0);
40039
+ const convCount = (w) => (w.shared_conversation_count ?? 0) + (w.private_conversation_count ?? 0);
40040
+ const used = (q) => (q?.used ?? 0) > 0;
40041
+ return {
40042
+ workspace: ownedWorkspaces.length,
40043
+ upload: ownedWorkspaces.reduce((n, w) => n + docCount(w), 0),
40044
+ ask: ownedWorkspaces.reduce((n, w) => n + convCount(w), 0),
40045
+ invite: ownedProjects.reduce((n, p) => n + (p.quotas?.collaborators?.used ?? 0), 0),
40046
+ hasUploadedProj: ownedProjects.some((p) => used(p.quotas?.storage_gb)),
40047
+ hasAskedProj: ownedProjects.some((p) => used(p.quotas?.ai_usage))
40048
+ };
40049
+ }, [workspaces, projects, userExtId]);
40050
+ const wasReplaying = react$1.useRef(false);
40051
+ const replayBaseline = react$1.useRef(null);
40052
+ if (welcomeReplay && !wasReplaying.current) {
40053
+ replayBaseline.current = counts;
40054
+ } else if (!welcomeReplay) {
40055
+ replayBaseline.current = null;
40056
+ }
40057
+ wasReplaying.current = welcomeReplay;
40058
+ const steps = react$1.useMemo(() => {
40059
+ const baseline = replayBaseline.current;
40060
+ const reallyDone = {
40061
+ workspace: counts.workspace > 0,
40062
+ upload: counts.upload > 0 || counts.hasUploadedProj,
40063
+ ask: counts.ask > 0 || counts.hasAskedProj,
40064
+ invite: counts.invite > 0
40065
+ };
40066
+ const done = baseline ? {
40067
+ workspace: counts.workspace > baseline.workspace,
40068
+ upload: counts.upload > baseline.upload || counts.hasUploadedProj && !baseline.hasUploadedProj,
40069
+ ask: counts.ask > baseline.ask || counts.hasAskedProj && !baseline.hasAskedProj,
40070
+ invite: counts.invite > baseline.invite
40071
+ } : reallyDone;
40072
+ const step = (id, optional) => {
40073
+ const copy = { ...DEFAULT_GETTING_STARTED_STEPS[id], ...stepCopy?.[id] };
40074
+ return {
40075
+ id,
40076
+ title: copy.title,
40077
+ description: copy.description(inWorkspace),
40078
+ done: done[id],
40079
+ ...optional ? { optional } : {}
40080
+ };
40081
+ };
40082
+ return [step("workspace"), step("upload"), step("ask"), step("invite", true)];
40083
+ }, [counts, inWorkspace, welcomeReplay, stepCopy]);
40084
+ const coreSteps = steps.filter((s) => !s.optional);
40085
+ const completedCore = coreSteps.filter((s) => s.done).length;
40086
+ const totalCore = coreSteps.length;
40087
+ const allCoreComplete = completedCore === totalCore;
40088
+ const completionAcked = dismissed.includes(GETTING_STARTED_DONE_TIP);
40089
+ const retiredTips = react$1.useRef(false);
40090
+ const retireKey = retireTipsOnComplete.join("\n");
40091
+ react$1.useEffect(() => {
40092
+ if (retiredTips.current) return;
40093
+ if (!dismissedLoaded || isLoading || !allCoreComplete) return;
40094
+ const toRetire = retireKey ? retireKey.split("\n") : [];
40095
+ const pending = toRetire.filter((code) => !dismissed.includes(code));
40096
+ if (pending.length === 0) return;
40097
+ retiredTips.current = true;
40098
+ pending.forEach((code) => dismissTip(code));
40099
+ }, [isLoading, allCoreComplete, dismissed, dismissedLoaded, dismissTip, retireKey]);
40100
+ const enabled = welcomeJourneyEnabled && !temporaryOnly;
40101
+ const isVisible = enabled && (welcomeReplay || !isLoading && settingsLoaded && showHints && !welcomeDialogOpen && (!allCoreComplete || !completionAcked));
40102
+ const isPending = enabled && !welcomeReplay && (isLoading || !settingsLoaded || welcomeDialogOpen);
40103
+ return {
40104
+ steps,
40105
+ completedCore,
40106
+ totalCore,
40107
+ allCoreComplete,
40108
+ isVisible,
40109
+ isPending,
40110
+ isReplay: welcomeReplay,
40111
+ dismiss: () => {
40112
+ if (allCoreComplete) dismissTip(GETTING_STARTED_DONE_TIP);
40113
+ if (welcomeReplay) {
40114
+ session.setTransientView(chunkRB54N5I7_cjs.WELCOME_REPLAY_VIEW, void 0);
40115
+ return;
40116
+ }
40117
+ if (allCoreComplete) return;
40118
+ setShowHintsPersisted(false);
40119
+ setShowHints(false);
40120
+ }
40121
+ };
40122
+ }
40123
+ function ConnectedGettingStarted({
40124
+ logo,
40125
+ labels,
40126
+ fallback = null,
40127
+ className,
40128
+ ...options2
40129
+ }) {
40130
+ const { steps, allCoreComplete, isVisible, isPending, isReplay, dismiss } = useGettingStarted(options2);
40131
+ const firstName = react.useArbiSession().user?.given_name?.trim();
40132
+ if (!isVisible) return isPending ? null : /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: fallback });
40133
+ const coreSteps = steps.filter((s) => !s.optional);
40134
+ const currentStep = coreSteps.find((s) => !s.done);
40135
+ return /* @__PURE__ */ jsxRuntime.jsx(
40136
+ chunkZ4KXF7WS_cjs.GettingStartedStrip,
40137
+ {
40138
+ steps: coreSteps,
40139
+ currentStepId: currentStep?.id,
40140
+ firstName,
40141
+ isReplay,
40142
+ isComplete: allCoreComplete,
40143
+ onDismiss: dismiss,
40144
+ logo,
40145
+ labels,
40146
+ className
40147
+ }
40148
+ );
40149
+ }
39877
40150
  var CHROME_EXTENSION_PATH = "/downloads/arbi-chrome.zip";
39878
40151
  var CHROME_INSTALL_STEPS = [
39879
40152
  "Download the extension kit and extract the ZIP to a folder.",
@@ -40034,123 +40307,123 @@ Object.defineProperty(exports, "useMemberLookup", {
40034
40307
  });
40035
40308
  Object.defineProperty(exports, "ConnectedAssistantDock", {
40036
40309
  enumerable: true,
40037
- get: function () { return chunkSEVFIBF3_cjs.ConnectedAssistantDock; }
40310
+ get: function () { return chunkBFIHXDO6_cjs.ConnectedAssistantDock; }
40038
40311
  });
40039
40312
  Object.defineProperty(exports, "redlineStats", {
40040
40313
  enumerable: true,
40041
- get: function () { return chunkSEVFIBF3_cjs.redlineStats; }
40314
+ get: function () { return chunkBFIHXDO6_cjs.redlineStats; }
40042
40315
  });
40043
40316
  Object.defineProperty(exports, "textToArtifact", {
40044
40317
  enumerable: true,
40045
- get: function () { return chunkSEVFIBF3_cjs.textToArtifact; }
40318
+ get: function () { return chunkBFIHXDO6_cjs.textToArtifact; }
40046
40319
  });
40047
40320
  Object.defineProperty(exports, "toRedlineMarkdown", {
40048
40321
  enumerable: true,
40049
- get: function () { return chunkSEVFIBF3_cjs.toRedlineMarkdown; }
40322
+ get: function () { return chunkBFIHXDO6_cjs.toRedlineMarkdown; }
40050
40323
  });
40051
40324
  Object.defineProperty(exports, "useConnectedAiTask", {
40052
40325
  enumerable: true,
40053
- get: function () { return chunkSEVFIBF3_cjs.useConnectedAiTask; }
40326
+ get: function () { return chunkBFIHXDO6_cjs.useConnectedAiTask; }
40054
40327
  });
40055
40328
  Object.defineProperty(exports, "useConnectedChat", {
40056
40329
  enumerable: true,
40057
- get: function () { return chunkSEVFIBF3_cjs.useConnectedChat; }
40330
+ get: function () { return chunkBFIHXDO6_cjs.useConnectedChat; }
40058
40331
  });
40059
40332
  Object.defineProperty(exports, "useSemanticSearch", {
40060
40333
  enumerable: true,
40061
- get: function () { return chunkSEVFIBF3_cjs.useSemanticSearch; }
40334
+ get: function () { return chunkBFIHXDO6_cjs.useSemanticSearch; }
40062
40335
  });
40063
40336
  Object.defineProperty(exports, "useWorkspaceDocs", {
40064
40337
  enumerable: true,
40065
- get: function () { return chunkSEVFIBF3_cjs.useWorkspaceDocs; }
40338
+ get: function () { return chunkBFIHXDO6_cjs.useWorkspaceDocs; }
40066
40339
  });
40067
40340
  Object.defineProperty(exports, "ConnectedTaskActivityDialog", {
40068
40341
  enumerable: true,
40069
- get: function () { return chunkJSHBC47B_cjs.ConnectedTaskActivityDialog; }
40342
+ get: function () { return chunkBP5KBZLX_cjs.ConnectedTaskActivityDialog; }
40070
40343
  });
40071
40344
  Object.defineProperty(exports, "ConnectedTaskComposer", {
40072
40345
  enumerable: true,
40073
- get: function () { return chunkJSHBC47B_cjs.ConnectedTaskComposer; }
40346
+ get: function () { return chunkBP5KBZLX_cjs.ConnectedTaskComposer; }
40074
40347
  });
40075
40348
  Object.defineProperty(exports, "ConnectedThreadTaskBar", {
40076
40349
  enumerable: true,
40077
- get: function () { return chunkJSHBC47B_cjs.ConnectedThreadTaskBar; }
40350
+ get: function () { return chunkBP5KBZLX_cjs.ConnectedThreadTaskBar; }
40078
40351
  });
40079
40352
  Object.defineProperty(exports, "ConnectedWorkflowHistory", {
40080
40353
  enumerable: true,
40081
- get: function () { return chunkJSHBC47B_cjs.ConnectedWorkflowHistory; }
40354
+ get: function () { return chunkBP5KBZLX_cjs.ConnectedWorkflowHistory; }
40082
40355
  });
40083
40356
  Object.defineProperty(exports, "ConnectedWorkflowRunner", {
40084
40357
  enumerable: true,
40085
- get: function () { return chunkJSHBC47B_cjs.ConnectedWorkflowRunner; }
40358
+ get: function () { return chunkBP5KBZLX_cjs.ConnectedWorkflowRunner; }
40086
40359
  });
40087
40360
  Object.defineProperty(exports, "DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS", {
40088
40361
  enumerable: true,
40089
- get: function () { return chunkJSHBC47B_cjs.DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS; }
40362
+ get: function () { return chunkBP5KBZLX_cjs.DEFAULT_CONNECTED_WORKFLOW_RUNNER_LABELS; }
40090
40363
  });
40091
40364
  Object.defineProperty(exports, "DEFAULT_WORKFLOW_RUN_PAGE_LABELS", {
40092
40365
  enumerable: true,
40093
- get: function () { return chunkJSHBC47B_cjs.DEFAULT_WORKFLOW_RUN_PAGE_LABELS; }
40366
+ get: function () { return chunkBP5KBZLX_cjs.DEFAULT_WORKFLOW_RUN_PAGE_LABELS; }
40094
40367
  });
40095
40368
  Object.defineProperty(exports, "WorkflowRunThread", {
40096
40369
  enumerable: true,
40097
- get: function () { return chunkJSHBC47B_cjs.WorkflowRunThread; }
40370
+ get: function () { return chunkBP5KBZLX_cjs.WorkflowRunThread; }
40098
40371
  });
40099
40372
  Object.defineProperty(exports, "WorkflowRunWorkspaceChangedError", {
40100
40373
  enumerable: true,
40101
- get: function () { return chunkJSHBC47B_cjs.WorkflowRunWorkspaceChangedError; }
40374
+ get: function () { return chunkBP5KBZLX_cjs.WorkflowRunWorkspaceChangedError; }
40102
40375
  });
40103
40376
  Object.defineProperty(exports, "buildProjectSummaries", {
40104
40377
  enumerable: true,
40105
- get: function () { return chunkJSHBC47B_cjs.buildProjectSummaries; }
40378
+ get: function () { return chunkBP5KBZLX_cjs.buildProjectSummaries; }
40106
40379
  });
40107
40380
  Object.defineProperty(exports, "primaryProjectWorkspace", {
40108
40381
  enumerable: true,
40109
- get: function () { return chunkJSHBC47B_cjs.primaryProjectWorkspace; }
40382
+ get: function () { return chunkBP5KBZLX_cjs.primaryProjectWorkspace; }
40110
40383
  });
40111
40384
  Object.defineProperty(exports, "useEnsureRequiredLabels", {
40112
40385
  enumerable: true,
40113
- get: function () { return chunkJSHBC47B_cjs.useEnsureRequiredLabels; }
40386
+ get: function () { return chunkBP5KBZLX_cjs.useEnsureRequiredLabels; }
40114
40387
  });
40115
40388
  Object.defineProperty(exports, "useProjectSummaries", {
40116
40389
  enumerable: true,
40117
- get: function () { return chunkJSHBC47B_cjs.useProjectSummaries; }
40390
+ get: function () { return chunkBP5KBZLX_cjs.useProjectSummaries; }
40118
40391
  });
40119
40392
  Object.defineProperty(exports, "useProjectSummary", {
40120
40393
  enumerable: true,
40121
- get: function () { return chunkJSHBC47B_cjs.useProjectSummary; }
40394
+ get: function () { return chunkBP5KBZLX_cjs.useProjectSummary; }
40122
40395
  });
40123
40396
  Object.defineProperty(exports, "useRenderTaskPerson", {
40124
40397
  enumerable: true,
40125
- get: function () { return chunkJSHBC47B_cjs.useRenderTaskPerson; }
40398
+ get: function () { return chunkBP5KBZLX_cjs.useRenderTaskPerson; }
40126
40399
  });
40127
40400
  Object.defineProperty(exports, "useRequiredLabels", {
40128
40401
  enumerable: true,
40129
- get: function () { return chunkJSHBC47B_cjs.useRequiredLabels; }
40402
+ get: function () { return chunkBP5KBZLX_cjs.useRequiredLabels; }
40130
40403
  });
40131
40404
  Object.defineProperty(exports, "useSkillsEnabled", {
40132
40405
  enumerable: true,
40133
- get: function () { return chunkJSHBC47B_cjs.useSkillsEnabled; }
40406
+ get: function () { return chunkBP5KBZLX_cjs.useSkillsEnabled; }
40134
40407
  });
40135
40408
  Object.defineProperty(exports, "useTaskPeople", {
40136
40409
  enumerable: true,
40137
- get: function () { return chunkJSHBC47B_cjs.useTaskPeople; }
40410
+ get: function () { return chunkBP5KBZLX_cjs.useTaskPeople; }
40138
40411
  });
40139
40412
  Object.defineProperty(exports, "useWorkflowDefinitions", {
40140
40413
  enumerable: true,
40141
- get: function () { return chunkJSHBC47B_cjs.useWorkflowDefinitions; }
40414
+ get: function () { return chunkBP5KBZLX_cjs.useWorkflowDefinitions; }
40142
40415
  });
40143
40416
  Object.defineProperty(exports, "useWorkflowTasks", {
40144
40417
  enumerable: true,
40145
- get: function () { return chunkJSHBC47B_cjs.useWorkflowTasks; }
40418
+ get: function () { return chunkBP5KBZLX_cjs.useWorkflowTasks; }
40146
40419
  });
40147
40420
  Object.defineProperty(exports, "useWorkflowsPageState", {
40148
40421
  enumerable: true,
40149
- get: function () { return chunkJSHBC47B_cjs.useWorkflowsPageState; }
40422
+ get: function () { return chunkBP5KBZLX_cjs.useWorkflowsPageState; }
40150
40423
  });
40151
40424
  Object.defineProperty(exports, "workflowRunView", {
40152
40425
  enumerable: true,
40153
- get: function () { return chunkJSHBC47B_cjs.workflowRunView; }
40426
+ get: function () { return chunkBP5KBZLX_cjs.workflowRunView; }
40154
40427
  });
40155
40428
  Object.defineProperty(exports, "FILES_PREFS_KEY", {
40156
40429
  enumerable: true,
@@ -40620,6 +40893,7 @@ exports.ConnectedFilesExplorer = ConnectedFilesExplorer;
40620
40893
  exports.ConnectedFilesPage = ConnectedFilesPage;
40621
40894
  exports.ConnectedFilterDropdown = ConnectedFilterDropdown;
40622
40895
  exports.ConnectedForgotPassword = ConnectedForgotPassword;
40896
+ exports.ConnectedGettingStarted = ConnectedGettingStarted;
40623
40897
  exports.ConnectedGlobalDialogs = ConnectedGlobalDialogs;
40624
40898
  exports.ConnectedGrantWorkspaceAccessDialog = ConnectedGrantWorkspaceAccessDialog;
40625
40899
  exports.ConnectedGridView = ConnectedGridView;
@@ -40687,6 +40961,7 @@ exports.ConnectedThreadFollow = ConnectedThreadFollow;
40687
40961
  exports.ConnectedThreadLauncher = ConnectedThreadLauncher;
40688
40962
  exports.ConnectedThreadTabs = ConnectedThreadTabs;
40689
40963
  exports.ConnectedThreadsPage = ConnectedThreadsPage;
40964
+ exports.ConnectedTipBar = ConnectedTipBar;
40690
40965
  exports.ConnectedTransferWatcher = ConnectedTransferWatcher;
40691
40966
  exports.ConnectedUnarchiveWorkspaceDialog = ConnectedUnarchiveWorkspaceDialog;
40692
40967
  exports.ConnectedUpcomingEvents = ConnectedUpcomingEvents;
@@ -40715,6 +40990,7 @@ exports.DEFAULT_CONNECTED_AGENTS_PAGE_LABELS = DEFAULT_CONNECTED_AGENTS_PAGE_LAB
40715
40990
  exports.DEFAULT_CONNECTED_SEARCH_PAGE_LABELS = DEFAULT_CONNECTED_SEARCH_PAGE_LABELS;
40716
40991
  exports.DEFAULT_CONNECTED_SKILLS_BROWSER_LABELS = DEFAULT_CONNECTED_SKILLS_BROWSER_LABELS;
40717
40992
  exports.DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS = DEFAULT_CONNECTED_SKILL_UPLOAD_LABELS;
40993
+ exports.DEFAULT_GETTING_STARTED_STEPS = DEFAULT_GETTING_STARTED_STEPS;
40718
40994
  exports.DEFAULT_OAUTH_PERMISSIONS = DEFAULT_OAUTH_PERMISSIONS;
40719
40995
  exports.DEFAULT_PROJECTS_LIST_LABELS = DEFAULT_PROJECTS_LIST_LABELS;
40720
40996
  exports.DEFAULT_PROJECT_DETAILS_LABELS = DEFAULT_PROJECT_DETAILS_LABELS;
@@ -40725,6 +41001,7 @@ exports.DEFAULT_SEARCH_FIELDS = DEFAULT_SEARCH_FIELDS;
40725
41001
  exports.DEFAULT_SEARCH_ROW_LABELS = DEFAULT_SEARCH_ROW_LABELS;
40726
41002
  exports.DEFAULT_SETTINGS_SECTIONS = DEFAULT_SETTINGS_SECTIONS;
40727
41003
  exports.DEFAULT_TIMELINE_LABEL_WIDTH = DEFAULT_TIMELINE_LABEL_WIDTH;
41004
+ exports.DEFAULT_TIPS_OFF_LABEL = DEFAULT_TIPS_OFF_LABEL;
40728
41005
  exports.DEFAULT_WORKSPACE_LIST_LABELS = DEFAULT_WORKSPACE_LIST_LABELS;
40729
41006
  exports.DeveloperFooter = DeveloperFooter;
40730
41007
  exports.DocumentsFilterBarActions = DocumentsFilterBarActions;
@@ -40732,6 +41009,7 @@ exports.DocumentsUploadButton = DocumentsUploadButton;
40732
41009
  exports.EmptyWorkspaceUpload = EmptyWorkspaceUpload;
40733
41010
  exports.FACTS_GRID_ID = FACTS_GRID_ID;
40734
41011
  exports.FIRST_LOGIN_WORKSPACES_VIEW = FIRST_LOGIN_WORKSPACES_VIEW;
41012
+ exports.GETTING_STARTED_DONE_TIP = GETTING_STARTED_DONE_TIP;
40735
41013
  exports.INVITATION_ROW_FILTERS = INVITATION_ROW_FILTERS;
40736
41014
  exports.INVITE_SECTION = INVITE_SECTION;
40737
41015
  exports.ImportVcfButton = ImportVcfButton;
@@ -40777,6 +41055,7 @@ exports.TILE_MAX = TILE_MAX;
40777
41055
  exports.TILE_MIN = TILE_MIN;
40778
41056
  exports.ThreadSwitcher = ThreadSwitcher;
40779
41057
  exports.ViewSelector = ViewSelector;
41058
+ exports.WELCOME_DIALOG_SESSION_KEY = WELCOME_DIALOG_SESSION_KEY;
40780
41059
  exports.WORKSPACES_TAB_ID = WORKSPACES_TAB_ID;
40781
41060
  exports.WorkflowLaunchHost = WorkflowLaunchHost;
40782
41061
  exports.WorkflowRunStatusCell = WorkflowRunStatusCell;
@@ -40835,6 +41114,7 @@ exports.reviewAccessRequest = reviewAccessRequest;
40835
41114
  exports.reviewProgress = reviewProgress;
40836
41115
  exports.shareEventCall = shareEventCall;
40837
41116
  exports.showDocumentPlace = showDocumentPlace;
41117
+ exports.skipWelcomeDialogThisSession = skipWelcomeDialogThisSession;
40838
41118
  exports.storageSettingsSection = storageSettingsSection;
40839
41119
  exports.suppliedKinds = suppliedKinds;
40840
41120
  exports.threadStateOf = threadStateOf;
@@ -40862,6 +41142,7 @@ exports.useDocumentGridSync = useDocumentGridSync;
40862
41142
  exports.useDocumentNavigation = useDocumentNavigation;
40863
41143
  exports.useDocumentTable = useDocumentTable;
40864
41144
  exports.useExportStore = useExportStore;
41145
+ exports.useGettingStarted = useGettingStarted;
40865
41146
  exports.useHasAccountsImport = useHasAccountsImport;
40866
41147
  exports.useInstallSkillPackOnSignIn = useInstallSkillPackOnSignIn;
40867
41148
  exports.useInvitationRows = useInvitationRows;