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