@arbidocs/blocks 0.4.138 → 0.4.139
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/agents/definitions/AgentConnectInstructions.d.ts +12 -0
- package/dist/agents/definitions/defaults.d.ts +12 -0
- package/dist/agents/definitions/index.d.ts +2 -0
- package/dist/agents/index.cjs +335 -320
- package/dist/agents/index.js +9 -10
- package/dist/calendar/CalendarFormDialog.d.ts +13 -0
- package/dist/calendar/ProposeTimeDialog.d.ts +22 -0
- package/dist/calendar/WeeklyHoursEditor.d.ts +7 -0
- package/dist/calendar/access-setup.d.ts +8 -0
- package/dist/calendar/api-mapping.d.ts +22 -0
- package/dist/calendar/booking-form.d.ts +46 -0
- package/dist/calendar/conference.d.ts +11 -0
- package/dist/calendar/errors.d.ts +7 -0
- package/dist/calendar/feeds.d.ts +2 -0
- package/dist/calendar/freebusy.d.ts +22 -0
- package/dist/calendar/ics.d.ts +33 -0
- package/dist/calendar/index.cjs +472 -4293
- package/dist/calendar/index.cjs.map +1 -1
- package/dist/calendar/index.d.ts +17 -1
- package/dist/calendar/index.js +1 -4227
- package/dist/calendar/index.js.map +1 -1
- package/dist/calendar/requests.d.ts +42 -0
- package/dist/calendar/room-window.d.ts +6 -0
- package/dist/calendar/settings-value.d.ts +4 -0
- package/dist/calls/index.cjs +4 -4
- package/dist/calls/index.js +3 -3
- package/dist/chat/index.cjs +138 -138
- package/dist/chat/index.js +4 -4
- package/dist/{chunk-ED4HHTIA.js → chunk-22WFGXG2.js} +3 -3
- package/dist/{chunk-ED4HHTIA.js.map → chunk-22WFGXG2.js.map} +1 -1
- package/dist/{chunk-5BXEYYH6.js → chunk-453PNNNW.js} +3 -3
- package/dist/{chunk-5BXEYYH6.js.map → chunk-453PNNNW.js.map} +1 -1
- package/dist/{chunk-2KUCVSFF.js → chunk-45LRMW54.js} +3 -3
- package/dist/{chunk-2KUCVSFF.js.map → chunk-45LRMW54.js.map} +1 -1
- package/dist/chunk-5FTIHRZH.cjs +177 -0
- package/dist/chunk-5FTIHRZH.cjs.map +1 -0
- package/dist/{chunk-FUTMU4FR.js → chunk-5HFPRI3W.js} +3 -3
- package/dist/{chunk-FUTMU4FR.js.map → chunk-5HFPRI3W.js.map} +1 -1
- package/dist/{chunk-MJKBVIV3.cjs → chunk-5UXDUOOB.cjs} +39 -751
- package/dist/chunk-5UXDUOOB.cjs.map +1 -0
- package/dist/{chunk-XVME4XYD.js → chunk-6QMWP5IU.js} +847 -9
- package/dist/chunk-6QMWP5IU.js.map +1 -0
- package/dist/chunk-6YTHQ73P.cjs +5334 -0
- package/dist/chunk-6YTHQ73P.cjs.map +1 -0
- package/dist/{chunk-UBEI6WFJ.js → chunk-7QUUZBQZ.js} +13 -706
- package/dist/chunk-7QUUZBQZ.js.map +1 -0
- package/dist/{chunk-JVL7HUIQ.cjs → chunk-7X255TOM.cjs} +5 -5
- package/dist/{chunk-JVL7HUIQ.cjs.map → chunk-7X255TOM.cjs.map} +1 -1
- package/dist/chunk-A3XPS2EU.js +245 -0
- package/dist/chunk-A3XPS2EU.js.map +1 -0
- package/dist/chunk-B3AHCIV5.js +5206 -0
- package/dist/chunk-B3AHCIV5.js.map +1 -0
- package/dist/{chunk-2Q7FDZAY.js → chunk-BPBSSMRB.js} +5 -163
- package/dist/chunk-BPBSSMRB.js.map +1 -0
- package/dist/{chunk-KSHKTOY2.js → chunk-CKCBBYTA.js} +205 -5
- package/dist/chunk-CKCBBYTA.js.map +1 -0
- package/dist/chunk-CYNF5PZI.js +170 -0
- package/dist/chunk-CYNF5PZI.js.map +1 -0
- package/dist/{chunk-OPTBQSCV.cjs → chunk-DJM7DLCT.cjs} +3 -3
- package/dist/{chunk-OPTBQSCV.cjs.map → chunk-DJM7DLCT.cjs.map} +1 -1
- package/dist/{chunk-E5OYHJMU.js → chunk-DN55PRGS.js} +4 -4
- package/dist/{chunk-E5OYHJMU.js.map → chunk-DN55PRGS.js.map} +1 -1
- package/dist/{chunk-VHJHY7TT.js → chunk-ECERC6TI.js} +3 -3
- package/dist/{chunk-VHJHY7TT.js.map → chunk-ECERC6TI.js.map} +1 -1
- package/dist/{chunk-KDUGTKVI.cjs → chunk-GFNELPDP.cjs} +17 -6
- package/dist/chunk-GFNELPDP.cjs.map +1 -0
- package/dist/{chunk-OGBXV326.cjs → chunk-GFRQG36Y.cjs} +2 -243
- package/dist/chunk-GFRQG36Y.cjs.map +1 -0
- package/dist/{chunk-WXYQ66KC.cjs → chunk-HEMU73OP.cjs} +2 -166
- package/dist/chunk-HEMU73OP.cjs.map +1 -0
- package/dist/{chunk-UUHUQHXR.cjs → chunk-JZNXRMLH.cjs} +6 -6
- package/dist/{chunk-UUHUQHXR.cjs.map → chunk-JZNXRMLH.cjs.map} +1 -1
- package/dist/{chunk-IE5CUCZK.cjs → chunk-K3HNLWZZ.cjs} +8 -8
- package/dist/{chunk-IE5CUCZK.cjs.map → chunk-K3HNLWZZ.cjs.map} +1 -1
- package/dist/{chunk-JO3EMZ4X.js → chunk-KTFDUSON.js} +3 -3
- package/dist/{chunk-JO3EMZ4X.js.map → chunk-KTFDUSON.js.map} +1 -1
- package/dist/{chunk-HLB4DIYV.cjs → chunk-MABUMUCA.cjs} +6 -6
- package/dist/{chunk-HLB4DIYV.cjs.map → chunk-MABUMUCA.cjs.map} +1 -1
- package/dist/{chunk-RQ2Y7USX.cjs → chunk-MIDXCYZB.cjs} +235 -15
- package/dist/chunk-MIDXCYZB.cjs.map +1 -0
- package/dist/{chunk-ZNI4SW2G.js → chunk-MTPWZQTL.js} +4 -4
- package/dist/{chunk-ZNI4SW2G.js.map → chunk-MTPWZQTL.js.map} +1 -1
- package/dist/{chunk-OAL3B2ZU.cjs → chunk-O4ZIQDUT.cjs} +5 -5
- package/dist/{chunk-OAL3B2ZU.cjs.map → chunk-O4ZIQDUT.cjs.map} +1 -1
- package/dist/{chunk-W3VYZXNS.js → chunk-O6W6RW3B.js} +5 -240
- package/dist/chunk-O6W6RW3B.js.map +1 -0
- package/dist/{chunk-WS5EX7DN.cjs → chunk-OGP6MQXQ.cjs} +3 -3
- package/dist/{chunk-WS5EX7DN.cjs.map → chunk-OGP6MQXQ.cjs.map} +1 -1
- package/dist/{chunk-OQ7RUNOC.js → chunk-PC5KVHX3.js} +22 -6
- package/dist/chunk-PC5KVHX3.js.map +1 -0
- package/dist/{chunk-3BI6EWKP.cjs → chunk-ULEDHANM.cjs} +874 -14
- package/dist/chunk-ULEDHANM.cjs.map +1 -0
- package/dist/{chunk-L2PAPOZ5.js → chunk-US3S4DCB.js} +17 -6
- package/dist/chunk-US3S4DCB.js.map +1 -0
- package/dist/chunk-V46W7YLI.cjs +252 -0
- package/dist/chunk-V46W7YLI.cjs.map +1 -0
- package/dist/{chunk-3RJN2VTL.js → chunk-XDQXDWE7.js} +3 -3
- package/dist/{chunk-3RJN2VTL.js.map → chunk-XDQXDWE7.js.map} +1 -1
- package/dist/{chunk-7YLJHTDC.cjs → chunk-XOC44HQY.cjs} +3 -3
- package/dist/{chunk-7YLJHTDC.cjs.map → chunk-XOC44HQY.cjs.map} +1 -1
- package/dist/{chunk-DWZXSPMB.cjs → chunk-ZAVEMQ37.cjs} +3 -3
- package/dist/{chunk-DWZXSPMB.cjs.map → chunk-ZAVEMQ37.cjs.map} +1 -1
- package/dist/{chunk-AAFX64WD.cjs → chunk-ZXAWOLBQ.cjs} +22 -5
- package/dist/chunk-ZXAWOLBQ.cjs.map +1 -0
- package/dist/citations/QuietMarks.d.ts +5 -2
- package/dist/citations/index.cjs +15 -14
- package/dist/citations/index.js +3 -2
- package/dist/collaboration/index.cjs +42 -42
- package/dist/collaboration/index.js +2 -2
- package/dist/connect/docx.cjs +6 -6
- package/dist/connect/docx.js +5 -5
- package/dist/connect/index.cjs +4797 -184
- package/dist/connect/index.cjs.map +1 -1
- package/dist/connect/index.d.ts +4 -0
- package/dist/connect/index.js +4687 -94
- package/dist/connect/index.js.map +1 -1
- package/dist/connection/ConnectedAgentCreator.d.ts +37 -0
- package/dist/connection/ConnectedWorkflowHistory.d.ts +45 -0
- package/dist/connection/ConnectionProvider.d.ts +3 -1
- package/dist/connection/calendar/AddCalendarDialogs.d.ts +9 -0
- package/dist/connection/calendar/BookingPagesPanel.d.ts +13 -0
- package/dist/connection/calendar/CalendarAccountsPanel.d.ts +5 -0
- package/dist/connection/calendar/CalendarSettingsDialog.d.ts +12 -0
- package/dist/connection/calendar/ConnectedCalendar.d.ts +13 -0
- package/dist/connection/calendar/ConnectedMailInviteCard.d.ts +12 -0
- package/dist/connection/calendar/ConnectedPublicBooking.d.ts +9 -0
- package/dist/connection/calendar/ConnectedUpcomingEvents.d.ts +12 -0
- package/dist/connection/calendar/CopyField.d.ts +9 -0
- package/dist/connection/calendar/EventEditorDialog.d.ts +29 -0
- package/dist/connection/calendar/EventScheduling.d.ts +8 -0
- package/dist/connection/calendar/InvitationsPanel.d.ts +5 -0
- package/dist/connection/calendar/OpenAccessPanel.d.ts +7 -0
- package/dist/connection/calendar/PublishCalendarDialog.d.ts +8 -0
- package/dist/connection/calendar/RoomsDirectoryPanel.d.ts +8 -0
- package/dist/connection/calendar/ShareCalendarDialog.d.ts +6 -0
- package/dist/connection/calendar/copy.d.ts +2 -0
- package/dist/connection/calendar/index.d.ts +6 -0
- package/dist/connection/calendar/store.d.ts +47 -0
- package/dist/connection/calendar/types.d.ts +36 -0
- package/dist/connection/calendar/useWebinarAttendee.d.ts +3 -0
- package/dist/connection/notification-center/ConnectedNotificationCenter.d.ts +15 -0
- package/dist/connection/notification-center/NotificationCenter.d.ts +37 -0
- package/dist/connection/notification-center/NotificationEvent.d.ts +33 -0
- package/dist/connection/notification-center/index.d.ts +4 -0
- package/dist/connection/notification-center/items.d.ts +44 -0
- package/dist/facts/index.cjs +6 -6
- package/dist/facts/index.js +6 -6
- package/dist/files/index.cjs +6 -6
- package/dist/files/index.js +6 -6
- package/dist/home/index.cjs +20 -20
- package/dist/home/index.js +5 -5
- package/dist/index.cjs +921 -904
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +22 -21
- package/dist/index.js.map +1 -1
- package/dist/retrieval/index.cjs +1 -1
- package/dist/retrieval/index.js +1 -1
- package/dist/settings/index.cjs +52 -66
- package/dist/settings/index.cjs.map +1 -1
- package/dist/settings/index.js +6 -23
- package/dist/settings/index.js.map +1 -1
- package/dist/shell/index.cjs +61 -60
- package/dist/shell/index.js +5 -4
- package/dist/studio/index.cjs +8 -8
- package/dist/studio/index.js +6 -6
- package/dist/workflow-canvas/index.cjs +28 -29
- package/dist/workflow-canvas/index.cjs.map +1 -1
- package/dist/workflow-canvas/index.js +11 -12
- package/dist/workflow-canvas/index.js.map +1 -1
- package/dist/workspaces/index.cjs +2 -2
- package/dist/workspaces/index.js +2 -2
- package/node_modules/@arbidocs/coedit/package.json +1 -1
- package/package.json +4 -4
- package/dist/chunk-2Q7FDZAY.js.map +0 -1
- package/dist/chunk-3BI6EWKP.cjs.map +0 -1
- package/dist/chunk-AAFX64WD.cjs.map +0 -1
- package/dist/chunk-CQCC7LE7.js +0 -210
- package/dist/chunk-CQCC7LE7.js.map +0 -1
- package/dist/chunk-KDUGTKVI.cjs.map +0 -1
- package/dist/chunk-KSHKTOY2.js.map +0 -1
- package/dist/chunk-L2PAPOZ5.js.map +0 -1
- package/dist/chunk-MJKBVIV3.cjs.map +0 -1
- package/dist/chunk-OGBXV326.cjs.map +0 -1
- package/dist/chunk-OQ7RUNOC.js.map +0 -1
- package/dist/chunk-RFIBUWLF.cjs +0 -232
- package/dist/chunk-RFIBUWLF.cjs.map +0 -1
- package/dist/chunk-RQ2Y7USX.cjs.map +0 -1
- package/dist/chunk-UBEI6WFJ.js.map +0 -1
- package/dist/chunk-W3VYZXNS.js.map +0 -1
- package/dist/chunk-WXYQ66KC.cjs.map +0 -1
- package/dist/chunk-XVME4XYD.js.map +0 -1
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var chunkRQ2Y7USX_cjs = require('./chunk-RQ2Y7USX.cjs');
|
|
4
|
+
var chunkULEDHANM_cjs = require('./chunk-ULEDHANM.cjs');
|
|
5
|
+
var chunkOGP6MQXQ_cjs = require('./chunk-OGP6MQXQ.cjs');
|
|
6
|
+
var chunkMIDXCYZB_cjs = require('./chunk-MIDXCYZB.cjs');
|
|
8
7
|
var chunkZW6FPIFC_cjs = require('./chunk-ZW6FPIFC.cjs');
|
|
9
8
|
var chunk3AFWGEDJ_cjs = require('./chunk-3AFWGEDJ.cjs');
|
|
10
9
|
var chunkDVUZTGVL_cjs = require('./chunk-DVUZTGVL.cjs');
|
|
11
10
|
var chunkR26BK7YL_cjs = require('./chunk-R26BK7YL.cjs');
|
|
12
11
|
var chunkV4ISCZJ7_cjs = require('./chunk-V4ISCZJ7.cjs');
|
|
13
12
|
var chunk2EI7NCUA_cjs = require('./chunk-2EI7NCUA.cjs');
|
|
14
|
-
var
|
|
13
|
+
var chunkC4WSHRR6_cjs = require('./chunk-C4WSHRR6.cjs');
|
|
15
14
|
var chunk7RGLTF76_cjs = require('./chunk-7RGLTF76.cjs');
|
|
16
15
|
var chunkOWCEQKAR_cjs = require('./chunk-OWCEQKAR.cjs');
|
|
17
16
|
var chunk7UTB4PHM_cjs = require('./chunk-7UTB4PHM.cjs');
|
|
17
|
+
var chunkKDG6FER6_cjs = require('./chunk-KDG6FER6.cjs');
|
|
18
|
+
var chunkC2CWWEHO_cjs = require('./chunk-C2CWWEHO.cjs');
|
|
19
|
+
var chunkULWRNGGE_cjs = require('./chunk-ULWRNGGE.cjs');
|
|
18
20
|
var chunkFX3K6LNZ_cjs = require('./chunk-FX3K6LNZ.cjs');
|
|
19
21
|
var chunkMHVNT4J3_cjs = require('./chunk-MHVNT4J3.cjs');
|
|
20
|
-
var chunkC4WSHRR6_cjs = require('./chunk-C4WSHRR6.cjs');
|
|
21
|
-
var chunkULWRNGGE_cjs = require('./chunk-ULWRNGGE.cjs');
|
|
22
|
-
var chunkKDG6FER6_cjs = require('./chunk-KDG6FER6.cjs');
|
|
23
22
|
var jsxRuntime = require('react/jsx-runtime');
|
|
24
23
|
var react = require('react');
|
|
25
24
|
var lucideReact = require('lucide-react');
|
|
@@ -29,7 +28,7 @@ function defaultScopeRenderer(scopeSource) {
|
|
|
29
28
|
if (!scopeSource) return void 0;
|
|
30
29
|
return function renderScope(_field, value, onChange) {
|
|
31
30
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
32
|
-
|
|
31
|
+
chunkOGP6MQXQ_cjs.ScopePicker,
|
|
33
32
|
{
|
|
34
33
|
folders: scopeSource.folders,
|
|
35
34
|
unfiledCount: scopeSource.unfiledCount,
|
|
@@ -93,7 +92,7 @@ function useWorkflowPreview(workflow, { answer = "{prompt}", delayMs = 400, reso
|
|
|
93
92
|
}, delayMs)
|
|
94
93
|
);
|
|
95
94
|
}, [states, steps, workflow]);
|
|
96
|
-
return
|
|
95
|
+
return chunkULEDHANM_cjs.useWorkflowView({
|
|
97
96
|
steps,
|
|
98
97
|
states,
|
|
99
98
|
inputs,
|
|
@@ -341,533 +340,6 @@ function AgentGallery({
|
|
|
341
340
|
)
|
|
342
341
|
] });
|
|
343
342
|
}
|
|
344
|
-
function CapabilityTile({
|
|
345
|
-
label,
|
|
346
|
-
description,
|
|
347
|
-
icon: Icon,
|
|
348
|
-
selected,
|
|
349
|
-
onToggle,
|
|
350
|
-
testId,
|
|
351
|
-
className
|
|
352
|
-
}) {
|
|
353
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
354
|
-
"button",
|
|
355
|
-
{
|
|
356
|
-
type: "button",
|
|
357
|
-
onClick: onToggle,
|
|
358
|
-
"aria-pressed": selected,
|
|
359
|
-
"data-testid": testId,
|
|
360
|
-
"data-slot": "capability-tile",
|
|
361
|
-
className: ui.cn(
|
|
362
|
-
"flex flex-col items-start gap-1 rounded-lg p-3 text-left transition-colors pointer-coarse:min-h-11 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
363
|
-
selected ? "bg-accent text-accent-foreground ring-1 ring-inset ring-primary/30" : "bg-muted hover:bg-accent/60",
|
|
364
|
-
className
|
|
365
|
-
),
|
|
366
|
-
children: [
|
|
367
|
-
/* @__PURE__ */ jsxRuntime.jsx(Icon, { size: 16, className: selected ? "text-accent-foreground" : "text-muted-foreground" }),
|
|
368
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs font-medium leading-tight", children: label }),
|
|
369
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs leading-tight text-muted-foreground", children: description })
|
|
370
|
-
]
|
|
371
|
-
}
|
|
372
|
-
);
|
|
373
|
-
}
|
|
374
|
-
function CapabilityGrid({
|
|
375
|
-
children,
|
|
376
|
-
testId,
|
|
377
|
-
className
|
|
378
|
-
}) {
|
|
379
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
380
|
-
"div",
|
|
381
|
-
{
|
|
382
|
-
className: ui.cn("grid grid-cols-2 gap-2 sm:grid-cols-4", className),
|
|
383
|
-
"data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "agent-capabilities" }),
|
|
384
|
-
children
|
|
385
|
-
}
|
|
386
|
-
);
|
|
387
|
-
}
|
|
388
|
-
var DEFAULT_AGENT_TYPE_SELECTOR_LABELS = {
|
|
389
|
-
agentType: "Agent type"
|
|
390
|
-
};
|
|
391
|
-
function AgentTypeSelector({
|
|
392
|
-
value,
|
|
393
|
-
onChange,
|
|
394
|
-
options,
|
|
395
|
-
label,
|
|
396
|
-
labels,
|
|
397
|
-
testId,
|
|
398
|
-
optionTestId
|
|
399
|
-
}) {
|
|
400
|
-
const l = { ...DEFAULT_AGENT_TYPE_SELECTOR_LABELS, ...labels };
|
|
401
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5", "data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "agent-type-selector" }), children: [
|
|
402
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: label ?? l.agentType }),
|
|
403
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: options.map((opt) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
404
|
-
"button",
|
|
405
|
-
{
|
|
406
|
-
type: "button",
|
|
407
|
-
onClick: () => onChange(opt.value),
|
|
408
|
-
"aria-pressed": value === opt.value,
|
|
409
|
-
"data-testid": chunkMHVNT4J3_cjs.testIdOr(optionTestId?.(opt.value), { testId: `agent-type-${opt.value}` }),
|
|
410
|
-
className: ui.cn(
|
|
411
|
-
"rounded-lg p-3 text-left transition-colors pointer-coarse:min-h-11 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
412
|
-
value === opt.value ? "bg-accent text-accent-foreground ring-1 ring-inset ring-primary/30" : "bg-muted hover:bg-accent/60"
|
|
413
|
-
),
|
|
414
|
-
children: [
|
|
415
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium", children: opt.title }),
|
|
416
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-0.5 text-xs text-muted-foreground", children: opt.description })
|
|
417
|
-
]
|
|
418
|
-
},
|
|
419
|
-
opt.value
|
|
420
|
-
)) })
|
|
421
|
-
] });
|
|
422
|
-
}
|
|
423
|
-
var DEFAULT_AGENT_AVATAR_FIELD_LABELS = {
|
|
424
|
-
painting: "Painting\u2026",
|
|
425
|
-
generate: "Generate avatar",
|
|
426
|
-
regenerate: "Regenerate"
|
|
427
|
-
};
|
|
428
|
-
function AgentAvatarField({
|
|
429
|
-
picture,
|
|
430
|
-
isBusy,
|
|
431
|
-
canGenerate,
|
|
432
|
-
onGenerate,
|
|
433
|
-
labels,
|
|
434
|
-
testIds
|
|
435
|
-
}) {
|
|
436
|
-
const l = { ...DEFAULT_AGENT_AVATAR_FIELD_LABELS, ...labels };
|
|
437
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-2", "data-slot": "agent-avatar-field", children: [
|
|
438
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
439
|
-
"div",
|
|
440
|
-
{
|
|
441
|
-
className: "flex size-24 shrink-0 items-center justify-center overflow-hidden rounded-lg bg-muted",
|
|
442
|
-
"data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.preview, { testId: "agent-avatar-preview" }),
|
|
443
|
-
children: isBusy ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-1 text-ai-ink", children: [
|
|
444
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-7 animate-spin" }),
|
|
445
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs", children: l.painting })
|
|
446
|
-
] }) : picture ? /* @__PURE__ */ jsxRuntime.jsx("img", { src: picture, alt: "", className: "size-full object-cover" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Bot, { className: "size-10 text-ai-ink/70" })
|
|
447
|
-
}
|
|
448
|
-
),
|
|
449
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
450
|
-
ui.Button,
|
|
451
|
-
{
|
|
452
|
-
variant: "outline",
|
|
453
|
-
size: "sm",
|
|
454
|
-
className: "h-8 gap-1 px-2 text-xs pointer-coarse:h-11",
|
|
455
|
-
disabled: isBusy || !canGenerate,
|
|
456
|
-
onClick: onGenerate,
|
|
457
|
-
"data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.generate, { testId: "agent-avatar-generate" }),
|
|
458
|
-
children: [
|
|
459
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Wand2, { size: 12 }),
|
|
460
|
-
" ",
|
|
461
|
-
picture ? l.regenerate : l.generate
|
|
462
|
-
]
|
|
463
|
-
}
|
|
464
|
-
)
|
|
465
|
-
] });
|
|
466
|
-
}
|
|
467
|
-
var DEFAULT_AGENT_CREATOR_LABELS = {
|
|
468
|
-
titleNew: "New agent",
|
|
469
|
-
titleEdit: (name) => `Edit ${name}`,
|
|
470
|
-
descriptionNew: "Say what this agent is for. Everything else follows from that.",
|
|
471
|
-
descriptionEdit: "Change what this agent is for, or fine-tune it under Advanced.",
|
|
472
|
-
describe: "What should it do?",
|
|
473
|
-
describePlaceholder: "e.g. Reads new files each morning and tells me what changed, with sources.",
|
|
474
|
-
describeHint: "This becomes the agent\u2019s persona and shapes every answer.",
|
|
475
|
-
startFrom: "Or start from",
|
|
476
|
-
summaryHeading: "What it can do (its tools)",
|
|
477
|
-
summaryCan: (list) => `Can ${list}.`,
|
|
478
|
-
summaryCannot: (list) => `Cannot ${list}.`,
|
|
479
|
-
summaryNone: "It can read your files and answer. Nothing else is switched on yet.",
|
|
480
|
-
summaryModel: (model) => `Uses ${model}.`,
|
|
481
|
-
summaryModelAuto: "Uses the default model.",
|
|
482
|
-
summaryWorkspaces: (list) => `Can read ${list}.`,
|
|
483
|
-
summaryNoWorkspaces: "Cannot read any workspace yet. Give it access under Advanced.",
|
|
484
|
-
summaryName: (name) => `Will be called ${name}.`,
|
|
485
|
-
workspaceAccess: "Workspace access",
|
|
486
|
-
workspaceAccessHint: "Each workspace stays separate. The agent can only read the ones you tick here.",
|
|
487
|
-
workspaceAlready: "Already has access",
|
|
488
|
-
revokeWorkspace: (name) => `Remove access to ${name}`,
|
|
489
|
-
noWorkspacesToGrant: "You have no workspaces yet.",
|
|
490
|
-
name: "Name",
|
|
491
|
-
nameHint: "Letters, digits, - and _ only; must start with a letter or digit.",
|
|
492
|
-
nameInvalid: "Letters, digits, - and _ only; must start with a letter or digit.",
|
|
493
|
-
advanced: "Advanced",
|
|
494
|
-
capabilities: "Tools",
|
|
495
|
-
toolsHint: "Tools are switches on this agent: what it may do on its own, such as search the web or run code. Change them any time.",
|
|
496
|
-
summaryChange: "Change tools",
|
|
497
|
-
model: "Model",
|
|
498
|
-
modelAuto: "Automatic",
|
|
499
|
-
cancel: "Cancel",
|
|
500
|
-
create: "Create agent",
|
|
501
|
-
save: "Save changes",
|
|
502
|
-
saving: "Saving\u2026"
|
|
503
|
-
};
|
|
504
|
-
var NAME_RE = /^[a-zA-Z0-9][a-zA-Z0-9_-]*$/;
|
|
505
|
-
var FILLER = /* @__PURE__ */ new Set([
|
|
506
|
-
"a",
|
|
507
|
-
"an",
|
|
508
|
-
"the",
|
|
509
|
-
"who",
|
|
510
|
-
"that",
|
|
511
|
-
"which",
|
|
512
|
-
"to",
|
|
513
|
-
"for",
|
|
514
|
-
"and",
|
|
515
|
-
"of",
|
|
516
|
-
"i",
|
|
517
|
-
"my"
|
|
518
|
-
]);
|
|
519
|
-
function deriveAgentName(description) {
|
|
520
|
-
const words = description.toLowerCase().replace(/[^a-z0-9\s-]/g, " ").split(/\s+/).filter((w) => w && !FILLER.has(w)).slice(0, 3);
|
|
521
|
-
return words.join("-").slice(0, 64);
|
|
522
|
-
}
|
|
523
|
-
var isValidAgentName = (name) => NAME_RE.test(name) && name.length <= 64;
|
|
524
|
-
var joinList = (items) => items.length <= 2 ? items.join(" and ") : `${items.slice(0, -1).join(", ")} and ${items[items.length - 1]}`;
|
|
525
|
-
function summarizeCapabilities(capabilities, enabled, modelName, labels = DEFAULT_AGENT_CREATOR_LABELS) {
|
|
526
|
-
const on = capabilities.filter((c) => enabled[c.key]).map((c) => c.label.toLowerCase());
|
|
527
|
-
const off = capabilities.filter((c) => !enabled[c.key]).map((c) => c.label.toLowerCase());
|
|
528
|
-
const lines = [];
|
|
529
|
-
if (on.length === 0) lines.push(labels.summaryNone);
|
|
530
|
-
else {
|
|
531
|
-
lines.push(labels.summaryCan(joinList(on)));
|
|
532
|
-
if (off.length > 0) lines.push(labels.summaryCannot(joinList(off)));
|
|
533
|
-
}
|
|
534
|
-
lines.push(modelName ? labels.summaryModel(modelName) : labels.summaryModelAuto);
|
|
535
|
-
return lines;
|
|
536
|
-
}
|
|
537
|
-
function summarizeAgent(capabilities, values, workspaces, labels = DEFAULT_AGENT_CREATOR_LABELS) {
|
|
538
|
-
const lines = summarizeCapabilities(capabilities, values.capabilities, values.modelName, labels);
|
|
539
|
-
const names = workspaces.filter((w) => values.workspaceIds.includes(w.id)).map((w) => w.name);
|
|
540
|
-
lines.push(
|
|
541
|
-
names.length > 0 ? labels.summaryWorkspaces(joinList(names)) : labels.summaryNoWorkspaces
|
|
542
|
-
);
|
|
543
|
-
if (values.name) lines.push(labels.summaryName(values.name));
|
|
544
|
-
return lines;
|
|
545
|
-
}
|
|
546
|
-
var BLANK = {
|
|
547
|
-
name: "",
|
|
548
|
-
persona: "",
|
|
549
|
-
capabilities: {},
|
|
550
|
-
modelName: "",
|
|
551
|
-
type: "builtin",
|
|
552
|
-
workspaceIds: []
|
|
553
|
-
};
|
|
554
|
-
function AgentCreator({
|
|
555
|
-
open,
|
|
556
|
-
onOpenChange,
|
|
557
|
-
isEdit = false,
|
|
558
|
-
agentName,
|
|
559
|
-
capabilities,
|
|
560
|
-
templates = [],
|
|
561
|
-
models = [],
|
|
562
|
-
workspaces = [],
|
|
563
|
-
grantedWorkspaceIds = [],
|
|
564
|
-
onRevokeWorkspace,
|
|
565
|
-
revokingWorkspaceId,
|
|
566
|
-
avatar,
|
|
567
|
-
types,
|
|
568
|
-
values: valuesProp,
|
|
569
|
-
initialValues,
|
|
570
|
-
onValuesChange,
|
|
571
|
-
advanced,
|
|
572
|
-
isSaving,
|
|
573
|
-
onSubmit,
|
|
574
|
-
labels,
|
|
575
|
-
testId
|
|
576
|
-
}) {
|
|
577
|
-
const l = { ...DEFAULT_AGENT_CREATOR_LABELS, ...labels };
|
|
578
|
-
const seed = react.useMemo(
|
|
579
|
-
() => ({ ...BLANK, ...initialValues }),
|
|
580
|
-
// Seeded once per open.
|
|
581
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
582
|
-
[open]
|
|
583
|
-
);
|
|
584
|
-
const [values, setValues] = chunk3BI6EWKP_cjs.useControllableState(
|
|
585
|
-
valuesProp,
|
|
586
|
-
seed,
|
|
587
|
-
onValuesChange
|
|
588
|
-
);
|
|
589
|
-
const [advancedOpen, setAdvancedOpen] = react.useState(false);
|
|
590
|
-
const [nameTouched, setNameTouched] = react.useState(false);
|
|
591
|
-
react.useEffect(() => {
|
|
592
|
-
if (open) {
|
|
593
|
-
if (valuesProp === void 0) setValues(seed);
|
|
594
|
-
setAdvancedOpen(false);
|
|
595
|
-
setNameTouched(Boolean(seed.name));
|
|
596
|
-
}
|
|
597
|
-
}, [open]);
|
|
598
|
-
const id = chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "agent-creator" });
|
|
599
|
-
const name = values.name;
|
|
600
|
-
const nameValid = isValidAgentName(name);
|
|
601
|
-
const canSubmit = (isEdit || nameValid) && !isSaving;
|
|
602
|
-
const patch = (next) => setValues({ ...values, ...next });
|
|
603
|
-
const setPersona = (persona) => patch({ persona, ...!isEdit && !nameTouched ? { name: deriveAgentName(persona) } : {} });
|
|
604
|
-
const applyTemplate = (t) => patch({
|
|
605
|
-
persona: t.persona,
|
|
606
|
-
capabilities: Object.fromEntries(
|
|
607
|
-
capabilities.map((c) => [c.key, t.capabilities.includes(c.key)])
|
|
608
|
-
),
|
|
609
|
-
...!isEdit && !nameTouched ? { name: deriveAgentName(t.persona) } : {}
|
|
610
|
-
});
|
|
611
|
-
const summary = summarizeAgent(capabilities, values, workspaces, l);
|
|
612
|
-
return /* @__PURE__ */ jsxRuntime.jsx(ui.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
613
|
-
ui.DialogContent,
|
|
614
|
-
{
|
|
615
|
-
presentation: "sheet",
|
|
616
|
-
className: "max-h-[calc(100dvh-2rem)] overflow-y-auto sm:max-w-xl",
|
|
617
|
-
"data-testid": id,
|
|
618
|
-
children: [
|
|
619
|
-
/* @__PURE__ */ jsxRuntime.jsxs(ui.DialogHeader, { children: [
|
|
620
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: isEdit ? l.titleEdit(agentName ?? name) : l.titleNew }),
|
|
621
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: isEdit ? l.descriptionEdit : l.descriptionNew })
|
|
622
|
-
] }),
|
|
623
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
624
|
-
"form",
|
|
625
|
-
{
|
|
626
|
-
className: "flex flex-col gap-5",
|
|
627
|
-
onSubmit: (event) => {
|
|
628
|
-
event.preventDefault();
|
|
629
|
-
if (canSubmit) onSubmit(values);
|
|
630
|
-
},
|
|
631
|
-
children: [
|
|
632
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1.5", children: [
|
|
633
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "agent-creator-describe", children: l.describe }),
|
|
634
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
635
|
-
ui.Textarea,
|
|
636
|
-
{
|
|
637
|
-
id: "agent-creator-describe",
|
|
638
|
-
"data-testid": `${id}-describe`,
|
|
639
|
-
value: values.persona,
|
|
640
|
-
placeholder: l.describePlaceholder,
|
|
641
|
-
rows: 4,
|
|
642
|
-
autoFocus: true,
|
|
643
|
-
onChange: (e) => setPersona(e.target.value)
|
|
644
|
-
}
|
|
645
|
-
),
|
|
646
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: l.describeHint })
|
|
647
|
-
] }),
|
|
648
|
-
!isEdit && templates.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", "data-testid": `${id}-templates`, children: [
|
|
649
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: l.startFrom }),
|
|
650
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2", children: templates.map((t) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
651
|
-
"button",
|
|
652
|
-
{
|
|
653
|
-
type: "button",
|
|
654
|
-
title: t.description,
|
|
655
|
-
onClick: () => applyTemplate(t),
|
|
656
|
-
"data-testid": `${id}-template-${t.id}`,
|
|
657
|
-
className: ui.cn(
|
|
658
|
-
"rounded-full border border-border px-3 py-1.5 text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-h-11 [&:hover]:bg-accent"
|
|
659
|
-
),
|
|
660
|
-
children: t.title
|
|
661
|
-
},
|
|
662
|
-
t.id
|
|
663
|
-
)) })
|
|
664
|
-
] }),
|
|
665
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
666
|
-
"div",
|
|
667
|
-
{
|
|
668
|
-
className: "rounded-lg bg-muted p-3 text-sm",
|
|
669
|
-
"data-testid": `${id}-summary`,
|
|
670
|
-
"aria-live": "polite",
|
|
671
|
-
children: [
|
|
672
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-1 flex items-center gap-1.5 text-xs font-medium text-muted-foreground", children: [
|
|
673
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "size-4 text-ai-ink", "aria-hidden": "true" }),
|
|
674
|
-
l.summaryHeading
|
|
675
|
-
] }),
|
|
676
|
-
summary.map((line) => /* @__PURE__ */ jsxRuntime.jsx("p", { children: line }, line)),
|
|
677
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
678
|
-
"button",
|
|
679
|
-
{
|
|
680
|
-
type: "button",
|
|
681
|
-
onClick: () => setAdvancedOpen(true),
|
|
682
|
-
"data-testid": `${id}-summary-change`,
|
|
683
|
-
className: "mt-1 text-xs font-medium text-primary underline-offset-2 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-h-11",
|
|
684
|
-
children: l.summaryChange
|
|
685
|
-
}
|
|
686
|
-
)
|
|
687
|
-
]
|
|
688
|
-
}
|
|
689
|
-
),
|
|
690
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-end gap-4", children: [
|
|
691
|
-
typeof avatar === "function" ? avatar(values) : avatar,
|
|
692
|
-
!isEdit && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1.5", children: [
|
|
693
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { htmlFor: "agent-creator-name", children: l.name }),
|
|
694
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
695
|
-
ui.Input,
|
|
696
|
-
{
|
|
697
|
-
id: "agent-creator-name",
|
|
698
|
-
"data-testid": `${id}-name`,
|
|
699
|
-
value: name,
|
|
700
|
-
placeholder: "research-assistant",
|
|
701
|
-
"aria-invalid": name !== "" && !nameValid ? true : void 0,
|
|
702
|
-
onChange: (e) => {
|
|
703
|
-
setNameTouched(true);
|
|
704
|
-
patch({ name: e.target.value });
|
|
705
|
-
}
|
|
706
|
-
}
|
|
707
|
-
),
|
|
708
|
-
name !== "" && !nameValid && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-destructive", children: l.nameInvalid })
|
|
709
|
-
] })
|
|
710
|
-
] }),
|
|
711
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
712
|
-
chunkWS5EX7DN_cjs.FoldSection,
|
|
713
|
-
{
|
|
714
|
-
label: l.advanced,
|
|
715
|
-
open: advancedOpen,
|
|
716
|
-
onOpenChange: setAdvancedOpen,
|
|
717
|
-
testId: `${id}-advanced-toggle`,
|
|
718
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
719
|
-
!isEdit && types && types.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
720
|
-
AgentTypeSelector,
|
|
721
|
-
{
|
|
722
|
-
value: values.type,
|
|
723
|
-
onChange: (type) => patch({ type }),
|
|
724
|
-
options: types,
|
|
725
|
-
testId: `${id}-type`,
|
|
726
|
-
optionTestId: (value) => `${id}-type-${value}`
|
|
727
|
-
}
|
|
728
|
-
),
|
|
729
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
730
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: l.capabilities }),
|
|
731
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: l.toolsHint }),
|
|
732
|
-
/* @__PURE__ */ jsxRuntime.jsx(CapabilityGrid, { testId: `${id}-capabilities`, children: capabilities.map((c) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
733
|
-
CapabilityTile,
|
|
734
|
-
{
|
|
735
|
-
label: c.label,
|
|
736
|
-
description: c.description,
|
|
737
|
-
icon: c.icon,
|
|
738
|
-
selected: Boolean(values.capabilities[c.key]),
|
|
739
|
-
onToggle: () => patch({
|
|
740
|
-
capabilities: {
|
|
741
|
-
...values.capabilities,
|
|
742
|
-
[c.key]: !values.capabilities[c.key]
|
|
743
|
-
}
|
|
744
|
-
}),
|
|
745
|
-
testId: `${id}-cap-${c.key}`
|
|
746
|
-
},
|
|
747
|
-
c.key
|
|
748
|
-
)) })
|
|
749
|
-
] }),
|
|
750
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", "data-testid": `${id}-workspaces`, children: [
|
|
751
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: l.workspaceAccess }),
|
|
752
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: l.workspaceAccessHint }),
|
|
753
|
-
workspaces.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: l.noWorkspacesToGrant }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2", children: workspaces.map((w) => {
|
|
754
|
-
const already = grantedWorkspaceIds.includes(w.id);
|
|
755
|
-
const on = already || values.workspaceIds.includes(w.id);
|
|
756
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1", children: [
|
|
757
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
758
|
-
"button",
|
|
759
|
-
{
|
|
760
|
-
type: "button",
|
|
761
|
-
role: "checkbox",
|
|
762
|
-
"aria-checked": on,
|
|
763
|
-
disabled: already,
|
|
764
|
-
title: already ? l.workspaceAlready : void 0,
|
|
765
|
-
"data-testid": `${id}-workspace-${w.id}`,
|
|
766
|
-
onClick: () => patch({
|
|
767
|
-
workspaceIds: on ? values.workspaceIds.filter((x) => x !== w.id) : [...values.workspaceIds, w.id]
|
|
768
|
-
}),
|
|
769
|
-
className: ui.cn(
|
|
770
|
-
"rounded-md border px-3 py-1.5 text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-60 pointer-coarse:min-h-11",
|
|
771
|
-
on ? "border-primary bg-primary/10 text-primary" : "border-border [&:hover:not(:disabled)]:bg-accent"
|
|
772
|
-
),
|
|
773
|
-
children: w.name
|
|
774
|
-
}
|
|
775
|
-
),
|
|
776
|
-
already && onRevokeWorkspace && /* @__PURE__ */ jsxRuntime.jsx(
|
|
777
|
-
"button",
|
|
778
|
-
{
|
|
779
|
-
type: "button",
|
|
780
|
-
"aria-label": l.revokeWorkspace(w.name),
|
|
781
|
-
title: l.revokeWorkspace(w.name),
|
|
782
|
-
disabled: revokingWorkspaceId === w.id,
|
|
783
|
-
"data-testid": `${id}-workspace-${w.id}-revoke`,
|
|
784
|
-
onClick: () => onRevokeWorkspace(w.id),
|
|
785
|
-
className: "flex size-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-50 pointer-coarse:size-11",
|
|
786
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "size-4", "aria-hidden": true })
|
|
787
|
-
}
|
|
788
|
-
)
|
|
789
|
-
] }, w.id);
|
|
790
|
-
}) })
|
|
791
|
-
] }),
|
|
792
|
-
models.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1.5", children: [
|
|
793
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.Label, { children: l.model }),
|
|
794
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
795
|
-
ui.Select,
|
|
796
|
-
{
|
|
797
|
-
value: values.modelName || "__auto__",
|
|
798
|
-
onValueChange: (v) => patch({ modelName: v === "__auto__" ? "" : v }),
|
|
799
|
-
children: [
|
|
800
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.SelectTrigger, { "data-testid": `${id}-model`, className: "pointer-coarse:min-h-11", children: /* @__PURE__ */ jsxRuntime.jsx(ui.SelectValue, {}) }),
|
|
801
|
-
/* @__PURE__ */ jsxRuntime.jsxs(ui.SelectContent, { children: [
|
|
802
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: "__auto__", children: l.modelAuto }),
|
|
803
|
-
models.map((m) => /* @__PURE__ */ jsxRuntime.jsx(ui.SelectItem, { value: m, children: m }, m))
|
|
804
|
-
] })
|
|
805
|
-
]
|
|
806
|
-
}
|
|
807
|
-
)
|
|
808
|
-
] }),
|
|
809
|
-
typeof advanced === "function" ? advanced(values) : advanced
|
|
810
|
-
] })
|
|
811
|
-
}
|
|
812
|
-
),
|
|
813
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col-reverse sm:flex-row sm:justify-end gap-2 border-t border-border pt-3", children: [
|
|
814
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
815
|
-
ui.Button,
|
|
816
|
-
{
|
|
817
|
-
type: "button",
|
|
818
|
-
variant: "ghost",
|
|
819
|
-
onClick: () => onOpenChange(false),
|
|
820
|
-
"data-testid": `${id}-cancel`,
|
|
821
|
-
className: "pointer-coarse:min-h-11",
|
|
822
|
-
children: l.cancel
|
|
823
|
-
}
|
|
824
|
-
),
|
|
825
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
826
|
-
ui.Button,
|
|
827
|
-
{
|
|
828
|
-
type: "submit",
|
|
829
|
-
disabled: !canSubmit,
|
|
830
|
-
"data-testid": `${id}-submit`,
|
|
831
|
-
className: "gap-1.5 pointer-coarse:min-h-11",
|
|
832
|
-
children: [
|
|
833
|
-
isSaving ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-4 animate-spin" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "size-4" }),
|
|
834
|
-
isSaving ? l.saving : isEdit ? l.save : l.create
|
|
835
|
-
]
|
|
836
|
-
}
|
|
837
|
-
)
|
|
838
|
-
] })
|
|
839
|
-
]
|
|
840
|
-
}
|
|
841
|
-
)
|
|
842
|
-
]
|
|
843
|
-
}
|
|
844
|
-
) });
|
|
845
|
-
}
|
|
846
|
-
|
|
847
|
-
// src/agents/definitions/persona.ts
|
|
848
|
-
function composePersona(name, description) {
|
|
849
|
-
const body = description.trim();
|
|
850
|
-
const preamble = `You are ${name}, an AI agent.`;
|
|
851
|
-
return body ? `${preamble} ${body}` : preamble;
|
|
852
|
-
}
|
|
853
|
-
function stripPersonaPreamble(persona) {
|
|
854
|
-
return persona.replace(/^You are .+?, an AI agent\.\s*/, "").trim();
|
|
855
|
-
}
|
|
856
|
-
function agentCreatorToConfigSection(values, capabilityKeys) {
|
|
857
|
-
return {
|
|
858
|
-
PERSONA: composePersona(values.name, values.persona),
|
|
859
|
-
...values.modelName ? { AGENT_MODEL_NAME: values.modelName } : {},
|
|
860
|
-
...Object.fromEntries(capabilityKeys.map((k) => [k, !!values.capabilities[k]]))
|
|
861
|
-
};
|
|
862
|
-
}
|
|
863
|
-
function agentConfigSectionToValues(section, capabilityKeys) {
|
|
864
|
-
const s = section ?? {};
|
|
865
|
-
return {
|
|
866
|
-
persona: stripPersonaPreamble(String(s.PERSONA ?? "")),
|
|
867
|
-
modelName: String(s.AGENT_MODEL_NAME ?? ""),
|
|
868
|
-
capabilities: Object.fromEntries(capabilityKeys.map((k) => [k, Boolean(s[k])]))
|
|
869
|
-
};
|
|
870
|
-
}
|
|
871
343
|
var DEFAULT_SKILL_CARD_LABELS = {
|
|
872
344
|
global: "Global",
|
|
873
345
|
globalTitle: "Shared with everyone in the marketplace",
|
|
@@ -910,7 +382,7 @@ function SkillCard({
|
|
|
910
382
|
className
|
|
911
383
|
),
|
|
912
384
|
onClick,
|
|
913
|
-
onKeyDown:
|
|
385
|
+
onKeyDown: chunkULEDHANM_cjs.activateOnKey(onClick),
|
|
914
386
|
"data-skill-name": name,
|
|
915
387
|
"data-testid": chunkMHVNT4J3_cjs.testIdOr(testId ?? testIds?.root, { testId: "skill-card" }),
|
|
916
388
|
"data-slot": "skill-card",
|
|
@@ -934,12 +406,12 @@ function SkillCard({
|
|
|
934
406
|
"/",
|
|
935
407
|
name
|
|
936
408
|
] }),
|
|
937
|
-
type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
938
|
-
isGlobal && /* @__PURE__ */ jsxRuntime.jsx(
|
|
409
|
+
type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.SkillTypeBadge, { type }),
|
|
410
|
+
isGlobal && /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.SkillGlobalBadge, { labels: l }),
|
|
939
411
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 text-sm text-muted-foreground max-sm:order-last max-sm:w-full max-sm:line-clamp-2 sm:flex-1 sm:truncate", children: description }),
|
|
940
412
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-auto flex shrink-0 items-center gap-1", "data-slot": "skill-card-actions", children: [
|
|
941
413
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
942
|
-
|
|
414
|
+
chunkULEDHANM_cjs.SkillActionButton,
|
|
943
415
|
{
|
|
944
416
|
label: l.preview,
|
|
945
417
|
onClick: onPreview,
|
|
@@ -948,7 +420,7 @@ function SkillCard({
|
|
|
948
420
|
}
|
|
949
421
|
),
|
|
950
422
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
951
|
-
|
|
423
|
+
chunkULEDHANM_cjs.SkillActionButton,
|
|
952
424
|
{
|
|
953
425
|
label: l.edit,
|
|
954
426
|
onClick: onEdit,
|
|
@@ -957,7 +429,7 @@ function SkillCard({
|
|
|
957
429
|
}
|
|
958
430
|
),
|
|
959
431
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
960
|
-
|
|
432
|
+
chunkULEDHANM_cjs.SkillActionButton,
|
|
961
433
|
{
|
|
962
434
|
label: l.export,
|
|
963
435
|
onClick: onExport,
|
|
@@ -966,7 +438,7 @@ function SkillCard({
|
|
|
966
438
|
}
|
|
967
439
|
),
|
|
968
440
|
isOwner && onToggleVisibility && /* @__PURE__ */ jsxRuntime.jsx(
|
|
969
|
-
|
|
441
|
+
chunkULEDHANM_cjs.SkillActionButton,
|
|
970
442
|
{
|
|
971
443
|
label: isGlobal ? l.makePrivate : l.publish,
|
|
972
444
|
tooltip: isGlobal ? l.makePrivateTooltip : l.publish,
|
|
@@ -1021,7 +493,7 @@ function SkillRow({
|
|
|
1021
493
|
className
|
|
1022
494
|
),
|
|
1023
495
|
onClick: onInvoke,
|
|
1024
|
-
onKeyDown:
|
|
496
|
+
onKeyDown: chunkULEDHANM_cjs.activateOnKey(onInvoke),
|
|
1025
497
|
"data-testid": chunkMHVNT4J3_cjs.testIdOr(testId, { testId: `skills-panel-row-${name}` }),
|
|
1026
498
|
"data-slot": "skill-row",
|
|
1027
499
|
title: l.insertTitle(name),
|
|
@@ -1039,23 +511,23 @@ function SkillRow({
|
|
|
1039
511
|
"/",
|
|
1040
512
|
name
|
|
1041
513
|
] }),
|
|
1042
|
-
type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1043
|
-
isGlobal && /* @__PURE__ */ jsxRuntime.jsx(
|
|
514
|
+
type && type !== "markdown" && /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.SkillTypeBadge, { type }),
|
|
515
|
+
isGlobal && /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.SkillGlobalBadge, { labels: l })
|
|
1044
516
|
] }),
|
|
1045
517
|
description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-xs text-muted-foreground", children: description })
|
|
1046
518
|
] }),
|
|
1047
519
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-0.5", children: [
|
|
1048
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1049
|
-
onEdit && /* @__PURE__ */ jsxRuntime.jsx(
|
|
520
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.SkillActionButton, { label: l.preview, onClick: () => onPreview(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Eye, { className: "size-4" }) }),
|
|
521
|
+
onEdit && /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.SkillActionButton, { label: l.edit, onClick: () => onEdit(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pencil, { className: "size-4" }) }),
|
|
1050
522
|
onTogglePublish && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1051
|
-
|
|
523
|
+
chunkULEDHANM_cjs.SkillActionButton,
|
|
1052
524
|
{
|
|
1053
525
|
label: isGlobal ? l.makePrivate : l.publish,
|
|
1054
526
|
onClick: () => onTogglePublish(),
|
|
1055
527
|
children: isGlobal ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Lock, { className: "size-4" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Globe, { className: "size-4 text-primary" })
|
|
1056
528
|
}
|
|
1057
529
|
),
|
|
1058
|
-
onDelete && /* @__PURE__ */ jsxRuntime.jsx(
|
|
530
|
+
onDelete && /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.SkillActionButton, { label: l.delete, onClick: () => onDelete(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Trash2, { className: "size-4 text-destructive" }) })
|
|
1059
531
|
] })
|
|
1060
532
|
]
|
|
1061
533
|
}
|
|
@@ -2489,7 +1961,7 @@ function TaskTable(props) {
|
|
|
2489
1961
|
isMe: mine
|
|
2490
1962
|
};
|
|
2491
1963
|
};
|
|
2492
|
-
const renderPerson = props.renderPerson ?? ((person) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1964
|
+
const renderPerson = props.renderPerson ?? ((person) => /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.PersonPill, { person }));
|
|
2493
1965
|
const q = (query.trim() || (props.filterText ?? "").trim()).toLowerCase();
|
|
2494
1966
|
const counts = react.useMemo(() => {
|
|
2495
1967
|
const map = new Map(STATUS_ORDER.map((s) => [s, 0]));
|
|
@@ -3103,7 +2575,7 @@ function TaskInbox(p) {
|
|
|
3103
2575
|
else next.add(id);
|
|
3104
2576
|
return next;
|
|
3105
2577
|
});
|
|
3106
|
-
p.renderPerson ?? ((value) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2578
|
+
p.renderPerson ?? ((value) => /* @__PURE__ */ jsxRuntime.jsx(chunkULEDHANM_cjs.PersonPill, { person: value }));
|
|
3107
2579
|
const taskById = new Map(all.map((t) => [t.external_id, t]));
|
|
3108
2580
|
const visible = new Set(rows.map((t) => t.external_id));
|
|
3109
2581
|
for (const task of rows) {
|
|
@@ -3291,7 +2763,7 @@ function TaskInbox(p) {
|
|
|
3291
2763
|
fieldsButton: "tasks-filter-fields"
|
|
3292
2764
|
},
|
|
3293
2765
|
filter: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3294
|
-
|
|
2766
|
+
chunkMIDXCYZB_cjs.TriStateFilterMenu,
|
|
3295
2767
|
{
|
|
3296
2768
|
testId: "tasks-status-filter",
|
|
3297
2769
|
open: filterOpen,
|
|
@@ -4669,37 +4141,6 @@ function NewThreadDialog({
|
|
|
4669
4141
|
}
|
|
4670
4142
|
) });
|
|
4671
4143
|
}
|
|
4672
|
-
function TaskActivityDialog({
|
|
4673
|
-
open,
|
|
4674
|
-
onOpenChange,
|
|
4675
|
-
taskName,
|
|
4676
|
-
events,
|
|
4677
|
-
isLoading,
|
|
4678
|
-
isError,
|
|
4679
|
-
labels,
|
|
4680
|
-
testId,
|
|
4681
|
-
...timeline
|
|
4682
|
-
}) {
|
|
4683
|
-
const l = { ...chunk3BI6EWKP_cjs.DEFAULT_TASK_ACTIVITY_LABELS, ...labels };
|
|
4684
|
-
const id = chunkMHVNT4J3_cjs.testIdOr(testId, { testId: "task-activity" });
|
|
4685
|
-
const count = events?.length ?? 0;
|
|
4686
|
-
const scrollToEnd = react.useCallback(
|
|
4687
|
-
(el) => {
|
|
4688
|
-
if (count >= 0) el?.scrollIntoView?.({ block: "end" });
|
|
4689
|
-
},
|
|
4690
|
-
[count]
|
|
4691
|
-
);
|
|
4692
|
-
return /* @__PURE__ */ jsxRuntime.jsx(ui.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogContent, { presentation: "sheet", className: "max-h-[80dvh] sm:max-w-lg", "data-testid": id, children: [
|
|
4693
|
-
/* @__PURE__ */ jsxRuntime.jsxs(ui.DialogHeader, { children: [
|
|
4694
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogTitle, { children: l.title }),
|
|
4695
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { className: "truncate", children: taskName })
|
|
4696
|
-
] }),
|
|
4697
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-h-[55dvh] overflow-y-auto pr-1", "data-testid": `${id}-scroll`, children: [
|
|
4698
|
-
isLoading && !events ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: l.loading }) : isError && !events ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-destructive", children: l.error }) : count === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: l.empty }) : /* @__PURE__ */ jsxRuntime.jsx(chunk3BI6EWKP_cjs.TaskActivityTimeline, { events: events ?? [], labels, testId: id, ...timeline }),
|
|
4699
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { ref: scrollToEnd })
|
|
4700
|
-
] })
|
|
4701
|
-
] }) });
|
|
4702
|
-
}
|
|
4703
4144
|
function TaskFlow({
|
|
4704
4145
|
items,
|
|
4705
4146
|
className
|
|
@@ -5073,7 +4514,7 @@ function WorkflowRunStatus({
|
|
|
5073
4514
|
const ordered = chunkOWCEQKAR_cjs.stepLevels(steps).flat();
|
|
5074
4515
|
const phaseOf = (id) => isLoading ? "blocked" : chunkOWCEQKAR_cjs.stepPhase(steps, states, id);
|
|
5075
4516
|
const finished = !isLoading && chunkOWCEQKAR_cjs.isRunFinished(steps, states);
|
|
5076
|
-
const atId = finished || isLoading ? void 0 :
|
|
4517
|
+
const atId = finished || isLoading ? void 0 : chunkULEDHANM_cjs.activeStepId(chunkOWCEQKAR_cjs.stepLevels(steps), phaseOf);
|
|
5077
4518
|
const at = ordered.find((s) => s.id === atId);
|
|
5078
4519
|
const phase = at ? phaseOf(at.id) : "done";
|
|
5079
4520
|
const assignee = at && ["ready", "waiting"].includes(phase) ? assigneeOf?.(at) : void 0;
|
|
@@ -5346,7 +4787,7 @@ function WorkflowThreadStrip({
|
|
|
5346
4787
|
className
|
|
5347
4788
|
}) {
|
|
5348
4789
|
const l = { ...DEFAULT_WORKFLOW_THREAD_STRIP_LABELS, ...labels };
|
|
5349
|
-
const barL = { ...
|
|
4790
|
+
const barL = { ...chunkULEDHANM_cjs.DEFAULT_STEP_BAR_LABELS, ...barLabels };
|
|
5350
4791
|
const grouped = groupThreadActivity(steps, items);
|
|
5351
4792
|
const strays = signals.filter((s) => !steps.some((step) => step.id === s.step));
|
|
5352
4793
|
const link = /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: "wf-link wf-kind-start max-w-6", "data-done": true });
|
|
@@ -5400,7 +4841,7 @@ function WorkflowThreadStrip({
|
|
|
5400
4841
|
waiting
|
|
5401
4842
|
] })
|
|
5402
4843
|
] }),
|
|
5403
|
-
labelClassName: isCurrent ?
|
|
4844
|
+
labelClassName: isCurrent ? chunkULEDHANM_cjs.STEP_LABEL_CURRENT : ui.cn(chunkULEDHANM_cjs.STEP_LABEL, chunkULEDHANM_cjs.STEP_LABEL_MAX),
|
|
5404
4845
|
className: ui.cn(latestDoc && "rounded-r-none"),
|
|
5405
4846
|
title: waiting ? `${step.title} \xB7 ${waiting}` : step.title,
|
|
5406
4847
|
"data-testid": `workflow-thread-step-${step.id}`,
|
|
@@ -5520,7 +4961,7 @@ function WorkflowThreadStrip({
|
|
|
5520
4961
|
] }),
|
|
5521
4962
|
strays.map((s) => /* @__PURE__ */ jsxRuntime.jsx(SignalPill, { signal: s, l }, `${s.step}-${s.signal}`))
|
|
5522
4963
|
] }) : null;
|
|
5523
|
-
const at = steps.find((s) => s.id === (selected ??
|
|
4964
|
+
const at = steps.find((s) => s.id === (selected ?? chunkULEDHANM_cjs.activeStepId(chunkOWCEQKAR_cjs.stepLevels(steps), phaseOf)));
|
|
5524
4965
|
const headingPx = (step) => `${l.kinds[chunkOWCEQKAR_cjs.stepKindOf(step)]} \xB7 ${waitingOf(step.id) ?? ""}`.length * 5.6 - step.title.length * 6.5;
|
|
5525
4966
|
const reserve = {
|
|
5526
4967
|
always: (at ? Math.max(0, headingPx(at)) : 0) + steps.filter((s) => grouped.byStep[s.id]?.length).length * BEADS_PX + (onOpenDocument ? steps.filter((s) => chunkOWCEQKAR_cjs.stepDocuments(steps, states, s.id).length).length * DOC_BUTTON_PX : 0),
|
|
@@ -5528,7 +4969,7 @@ function WorkflowThreadStrip({
|
|
|
5528
4969
|
trailing: trailing ? 120 : 0
|
|
5529
4970
|
};
|
|
5530
4971
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: ui.cn("min-w-0 flex-1", className), "data-testid": "workflow-thread-strip", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5531
|
-
|
|
4972
|
+
chunkULEDHANM_cjs.StepBarFrame,
|
|
5532
4973
|
{
|
|
5533
4974
|
levels: chunkOWCEQKAR_cjs.stepLevels(steps),
|
|
5534
4975
|
phaseOf,
|
|
@@ -5719,140 +5160,6 @@ function TaskThreadChip({
|
|
|
5719
5160
|
}
|
|
5720
5161
|
);
|
|
5721
5162
|
}
|
|
5722
|
-
var DEFAULT_TASK_RUNS_DIALOG_LABELS = {
|
|
5723
|
-
title: (taskName) => `Run history \u2014 ${taskName}`,
|
|
5724
|
-
description: "Every time this task ran. Open a run to read or watch it in its conversation.",
|
|
5725
|
-
loading: "Loading runs\u2026",
|
|
5726
|
-
empty: "This task hasn\u2019t run yet.",
|
|
5727
|
-
open: "Open"
|
|
5728
|
-
};
|
|
5729
|
-
var STATUS_STYLE = {
|
|
5730
|
-
running: "bg-ai-soft text-ai-ink",
|
|
5731
|
-
success: "bg-green-bg text-green-text",
|
|
5732
|
-
completed: "bg-green-bg text-green-text",
|
|
5733
|
-
failed: "bg-red-bg text-red-text"
|
|
5734
|
-
};
|
|
5735
|
-
function TaskRunsDialog({
|
|
5736
|
-
inline = false,
|
|
5737
|
-
renderErrorReport,
|
|
5738
|
-
hideHeader = false,
|
|
5739
|
-
open,
|
|
5740
|
-
onOpenChange,
|
|
5741
|
-
taskName,
|
|
5742
|
-
runs,
|
|
5743
|
-
isLoading,
|
|
5744
|
-
onOpenRun,
|
|
5745
|
-
onOpenResult,
|
|
5746
|
-
getRunHref,
|
|
5747
|
-
testIds,
|
|
5748
|
-
labels
|
|
5749
|
-
}) {
|
|
5750
|
-
const l = { ...DEFAULT_TASK_RUNS_DIALOG_LABELS, ...labels };
|
|
5751
|
-
const columns = react.useMemo(
|
|
5752
|
-
() => [
|
|
5753
|
-
{
|
|
5754
|
-
colId: "status",
|
|
5755
|
-
field: "status",
|
|
5756
|
-
headerName: "Status",
|
|
5757
|
-
width: 160,
|
|
5758
|
-
minWidth: 140,
|
|
5759
|
-
cellRenderer: ({ data }) => data && /* @__PURE__ */ jsxRuntime.jsx(
|
|
5760
|
-
"span",
|
|
5761
|
-
{
|
|
5762
|
-
className: ui.cn(
|
|
5763
|
-
"rounded-full px-2 py-0.5 text-xs font-medium capitalize",
|
|
5764
|
-
STATUS_STYLE[data.status] ?? "text-muted-foreground"
|
|
5765
|
-
),
|
|
5766
|
-
children: chunk3BI6EWKP_cjs.workflowRunStatusLabel(data.status)
|
|
5767
|
-
}
|
|
5768
|
-
)
|
|
5769
|
-
},
|
|
5770
|
-
{ colId: "when", field: "when", headerName: "Run", flex: 2, minWidth: 240 },
|
|
5771
|
-
{
|
|
5772
|
-
colId: "result",
|
|
5773
|
-
headerName: "",
|
|
5774
|
-
width: 280,
|
|
5775
|
-
minWidth: 220,
|
|
5776
|
-
sortable: false,
|
|
5777
|
-
cellRenderer: ({ data: run }) => {
|
|
5778
|
-
if (!run) return null;
|
|
5779
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full items-center gap-2", children: [
|
|
5780
|
-
run.error && renderErrorReport?.(run),
|
|
5781
|
-
(run.conversationId || run.resultId && onOpenResult) && /* @__PURE__ */ jsxRuntime.jsx(ui.Button, { asChild: true, variant: "ghost", size: "sm", className: "h-7 gap-1.5", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5782
|
-
chunkR26BK7YL_cjs.ActionLink,
|
|
5783
|
-
{
|
|
5784
|
-
href: getRunHref?.(run),
|
|
5785
|
-
onSelect: () => {
|
|
5786
|
-
if (run.conversationId) onOpenRun(run.conversationId);
|
|
5787
|
-
else if (run.resultId) onOpenResult?.(run.resultId);
|
|
5788
|
-
onOpenChange(false);
|
|
5789
|
-
},
|
|
5790
|
-
"data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.open, { testId: "task-run-open" }),
|
|
5791
|
-
children: [
|
|
5792
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Eye, { size: 13 }),
|
|
5793
|
-
" ",
|
|
5794
|
-
l.open
|
|
5795
|
-
]
|
|
5796
|
-
}
|
|
5797
|
-
) })
|
|
5798
|
-
] });
|
|
5799
|
-
}
|
|
5800
|
-
}
|
|
5801
|
-
],
|
|
5802
|
-
[onOpenRun, onOpenResult, getRunHref, onOpenChange, testIds?.open, l.open, renderErrorReport]
|
|
5803
|
-
);
|
|
5804
|
-
const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
5805
|
-
hideHeader ? null : inline ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5806
|
-
chunk7RGLTF76_cjs.TabHeader,
|
|
5807
|
-
{
|
|
5808
|
-
tabs: [
|
|
5809
|
-
{
|
|
5810
|
-
id: "history",
|
|
5811
|
-
label: l.title(taskName),
|
|
5812
|
-
count: runs.length,
|
|
5813
|
-
countIcon: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.History, { size: 14 }),
|
|
5814
|
-
presentation: "count",
|
|
5815
|
-
onClose: () => onOpenChange(false)
|
|
5816
|
-
}
|
|
5817
|
-
],
|
|
5818
|
-
activeTabId: "history",
|
|
5819
|
-
onTabChange: () => {
|
|
5820
|
-
}
|
|
5821
|
-
}
|
|
5822
|
-
) : /* @__PURE__ */ jsxRuntime.jsxs(ui.DialogHeader, { children: [
|
|
5823
|
-
/* @__PURE__ */ jsxRuntime.jsxs(ui.DialogTitle, { className: "flex items-center gap-2", children: [
|
|
5824
|
-
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.History, { size: 16 }),
|
|
5825
|
-
" ",
|
|
5826
|
-
l.title(taskName)
|
|
5827
|
-
] }),
|
|
5828
|
-
/* @__PURE__ */ jsxRuntime.jsx(ui.DialogDescription, { children: l.description })
|
|
5829
|
-
] }),
|
|
5830
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5831
|
-
chunkC2CWWEHO_cjs.GridView,
|
|
5832
|
-
{
|
|
5833
|
-
testId: chunkMHVNT4J3_cjs.testIdOr(testIds?.list, { testId: "task-runs-list" }),
|
|
5834
|
-
gridId: "workflow-runs",
|
|
5835
|
-
items: runs,
|
|
5836
|
-
columnDefs: columns,
|
|
5837
|
-
getItemId: (run) => run.id,
|
|
5838
|
-
getRowTestId: () => chunkMHVNT4J3_cjs.testIdOr(testIds?.row, { testId: "task-run-row" }),
|
|
5839
|
-
isLoading,
|
|
5840
|
-
loadingMessage: l.loading,
|
|
5841
|
-
emptyState: { title: l.empty },
|
|
5842
|
-
height: "100%"
|
|
5843
|
-
}
|
|
5844
|
-
) })
|
|
5845
|
-
] });
|
|
5846
|
-
return inline ? /* @__PURE__ */ jsxRuntime.jsx("section", { className: "flex min-h-0 flex-1 flex-col", "data-testid": "automation-history", children: content }) : /* @__PURE__ */ jsxRuntime.jsx(ui.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5847
|
-
ui.DialogContent,
|
|
5848
|
-
{
|
|
5849
|
-
presentation: "sheet",
|
|
5850
|
-
className: "flex h-[min(32rem,calc(100dvh-2rem))] min-h-0 max-w-3xl flex-col",
|
|
5851
|
-
"data-testid": chunkMHVNT4J3_cjs.testIdOr(testIds?.modal, { testId: "task-runs-modal" }),
|
|
5852
|
-
children: content
|
|
5853
|
-
}
|
|
5854
|
-
) });
|
|
5855
|
-
}
|
|
5856
5163
|
var DEFAULT_TASKS_CHROME_LABELS = {
|
|
5857
5164
|
tasksTab: "Tasks",
|
|
5858
5165
|
newTask: "New task"
|
|
@@ -6106,7 +5413,7 @@ function WorkflowComposer({
|
|
|
6106
5413
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
6107
5414
|
[workflows, open]
|
|
6108
5415
|
);
|
|
6109
|
-
const [values, setValues] =
|
|
5416
|
+
const [values, setValues] = chunkULEDHANM_cjs.useControllableState(
|
|
6110
5417
|
valuesProp,
|
|
6111
5418
|
seed,
|
|
6112
5419
|
onValuesChange
|
|
@@ -6279,7 +5586,7 @@ function WorkflowComposer({
|
|
|
6279
5586
|
},
|
|
6280
5587
|
"data-testid": `${id}-dropzone`,
|
|
6281
5588
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6282
|
-
|
|
5589
|
+
chunkOGP6MQXQ_cjs.AddFilesFirst,
|
|
6283
5590
|
{
|
|
6284
5591
|
reason: l.addFilesReason,
|
|
6285
5592
|
action: addFilesAction,
|
|
@@ -6289,7 +5596,7 @@ function WorkflowComposer({
|
|
|
6289
5596
|
}
|
|
6290
5597
|
),
|
|
6291
5598
|
!noFiles && workflow && fields.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6292
|
-
|
|
5599
|
+
chunkULEDHANM_cjs.SchemaForm,
|
|
6293
5600
|
{
|
|
6294
5601
|
fields,
|
|
6295
5602
|
values: values.inputs,
|
|
@@ -6714,7 +6021,7 @@ function WorkTaskComposer({
|
|
|
6714
6021
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
6715
6022
|
[workflows, open]
|
|
6716
6023
|
);
|
|
6717
|
-
const [values, setValues] =
|
|
6024
|
+
const [values, setValues] = chunkULEDHANM_cjs.useControllableState(
|
|
6718
6025
|
valuesProp,
|
|
6719
6026
|
seed,
|
|
6720
6027
|
onValuesChange
|
|
@@ -6922,7 +6229,7 @@ function WorkTaskComposer({
|
|
|
6922
6229
|
)
|
|
6923
6230
|
] }),
|
|
6924
6231
|
workflow && fields.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
6925
|
-
|
|
6232
|
+
chunkULEDHANM_cjs.SchemaForm,
|
|
6926
6233
|
{
|
|
6927
6234
|
fields,
|
|
6928
6235
|
values: values.inputs,
|
|
@@ -8866,7 +8173,7 @@ function AgentCreateView({
|
|
|
8866
8173
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-normal text-muted-foreground", children: l.optional })
|
|
8867
8174
|
] }),
|
|
8868
8175
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8869
|
-
|
|
8176
|
+
chunkMIDXCYZB_cjs.MultiSelect,
|
|
8870
8177
|
{
|
|
8871
8178
|
data: workspaces.map((ws) => ({ label: ws.name, value: ws.id })),
|
|
8872
8179
|
value: selectedWorkspaces,
|
|
@@ -8898,7 +8205,6 @@ function AgentCreateView({
|
|
|
8898
8205
|
] });
|
|
8899
8206
|
}
|
|
8900
8207
|
|
|
8901
|
-
exports.AgentAvatarField = AgentAvatarField;
|
|
8902
8208
|
exports.AgentBar = AgentBar;
|
|
8903
8209
|
exports.AgentBarIconButton = AgentBarIconButton;
|
|
8904
8210
|
exports.AgentBarMenu = AgentBarMenu;
|
|
@@ -8909,13 +8215,9 @@ exports.AgentBarStatus = AgentBarStatus;
|
|
|
8909
8215
|
exports.AgentCard = AgentCard;
|
|
8910
8216
|
exports.AgentCreateView = AgentCreateView;
|
|
8911
8217
|
exports.AgentCreatedView = AgentCreatedView;
|
|
8912
|
-
exports.AgentCreator = AgentCreator;
|
|
8913
8218
|
exports.AgentEditView = AgentEditView;
|
|
8914
8219
|
exports.AgentGallery = AgentGallery;
|
|
8915
8220
|
exports.AgentMainView = AgentMainView;
|
|
8916
|
-
exports.AgentTypeSelector = AgentTypeSelector;
|
|
8917
|
-
exports.CapabilityGrid = CapabilityGrid;
|
|
8918
|
-
exports.CapabilityTile = CapabilityTile;
|
|
8919
8221
|
exports.ConfigField = ConfigField;
|
|
8920
8222
|
exports.ConfigForm = ConfigForm;
|
|
8921
8223
|
exports.ConsentActions = ConsentActions;
|
|
@@ -8933,13 +8235,10 @@ exports.ConsentText = ConsentText;
|
|
|
8933
8235
|
exports.ConversationListView = ConversationListView;
|
|
8934
8236
|
exports.ConversationTurnSpeaker = ConversationTurnSpeaker;
|
|
8935
8237
|
exports.CopyableUrl = CopyableUrl;
|
|
8936
|
-
exports.DEFAULT_AGENT_AVATAR_FIELD_LABELS = DEFAULT_AGENT_AVATAR_FIELD_LABELS;
|
|
8937
8238
|
exports.DEFAULT_AGENT_BAR_LABELS = DEFAULT_AGENT_BAR_LABELS;
|
|
8938
8239
|
exports.DEFAULT_AGENT_CARD_LABELS = DEFAULT_AGENT_CARD_LABELS;
|
|
8939
|
-
exports.DEFAULT_AGENT_CREATOR_LABELS = DEFAULT_AGENT_CREATOR_LABELS;
|
|
8940
8240
|
exports.DEFAULT_AGENT_GALLERY_LABELS = DEFAULT_AGENT_GALLERY_LABELS;
|
|
8941
8241
|
exports.DEFAULT_AGENT_STEPS_LABELS = DEFAULT_AGENT_STEPS_LABELS;
|
|
8942
|
-
exports.DEFAULT_AGENT_TYPE_SELECTOR_LABELS = DEFAULT_AGENT_TYPE_SELECTOR_LABELS;
|
|
8943
8242
|
exports.DEFAULT_AUTHORIZE_AGENT_LABELS = DEFAULT_AUTHORIZE_AGENT_LABELS;
|
|
8944
8243
|
exports.DEFAULT_CONFIG_FIELD_LABELS = DEFAULT_CONFIG_FIELD_LABELS;
|
|
8945
8244
|
exports.DEFAULT_CONFIG_FORM_LABELS = DEFAULT_CONFIG_FORM_LABELS;
|
|
@@ -8957,7 +8256,6 @@ exports.DEFAULT_TASK_COMPOSER_LABELS = DEFAULT_TASK_COMPOSER_LABELS;
|
|
|
8957
8256
|
exports.DEFAULT_TASK_LIST_LABELS = DEFAULT_TASK_LIST_LABELS;
|
|
8958
8257
|
exports.DEFAULT_TASK_OUTPUTS_CELL_LABELS = DEFAULT_TASK_OUTPUTS_CELL_LABELS;
|
|
8959
8258
|
exports.DEFAULT_TASK_PLAN_LABELS = DEFAULT_TASK_PLAN_LABELS;
|
|
8960
|
-
exports.DEFAULT_TASK_RUNS_DIALOG_LABELS = DEFAULT_TASK_RUNS_DIALOG_LABELS;
|
|
8961
8259
|
exports.DEFAULT_TASK_STATUS_PILL_LABELS = DEFAULT_TASK_STATUS_PILL_LABELS;
|
|
8962
8260
|
exports.DEFAULT_TASK_THREAD_CHIP_LABELS = DEFAULT_TASK_THREAD_CHIP_LABELS;
|
|
8963
8261
|
exports.DEFAULT_THREAD_LAUNCHER_LABELS = DEFAULT_THREAD_LAUNCHER_LABELS;
|
|
@@ -8994,14 +8292,12 @@ exports.SubStepGroup = SubStepGroup;
|
|
|
8994
8292
|
exports.SubagentRoster = SubagentRoster;
|
|
8995
8293
|
exports.TASK_COLUMN_ORDER = TASK_COLUMN_ORDER;
|
|
8996
8294
|
exports.TRIGGER_LABELS = TRIGGER_LABELS;
|
|
8997
|
-
exports.TaskActivityDialog = TaskActivityDialog;
|
|
8998
8295
|
exports.TaskComposer = TaskComposer;
|
|
8999
8296
|
exports.TaskFlow = TaskFlow;
|
|
9000
8297
|
exports.TaskInbox = TaskInbox;
|
|
9001
8298
|
exports.TaskMoveDialog = TaskMoveDialog;
|
|
9002
8299
|
exports.TaskOutputsCell = TaskOutputsCell;
|
|
9003
8300
|
exports.TaskPlan = TaskPlan;
|
|
9004
|
-
exports.TaskRunsDialog = TaskRunsDialog;
|
|
9005
8301
|
exports.TaskStartDialog = TaskStartDialog;
|
|
9006
8302
|
exports.TaskStatusPill = TaskStatusPill;
|
|
9007
8303
|
exports.TaskTable = TaskTable;
|
|
@@ -9019,14 +8315,11 @@ exports.WorkflowRunStatus = WorkflowRunStatus;
|
|
|
9019
8315
|
exports.WorkflowThreadStartedBy = WorkflowThreadStartedBy;
|
|
9020
8316
|
exports.WorkflowThreadStrip = WorkflowThreadStrip;
|
|
9021
8317
|
exports.WorkflowsToolbar = WorkflowsToolbar;
|
|
9022
|
-
exports.agentConfigSectionToValues = agentConfigSectionToValues;
|
|
9023
|
-
exports.agentCreatorToConfigSection = agentCreatorToConfigSection;
|
|
9024
8318
|
exports.asTaskStatus = asTaskStatus;
|
|
9025
8319
|
exports.authModeFor = authModeFor;
|
|
9026
8320
|
exports.buildRRule = buildRRule;
|
|
9027
8321
|
exports.buildTaskRows = buildTaskRows;
|
|
9028
8322
|
exports.compactThreadActivity = compactThreadActivity;
|
|
9029
|
-
exports.composePersona = composePersona;
|
|
9030
8323
|
exports.composerToTaskQuery = composerToTaskQuery;
|
|
9031
8324
|
exports.composerToWorkRequest = composerToWorkRequest;
|
|
9032
8325
|
exports.composerToWorkflowRequest = composerToWorkflowRequest;
|
|
@@ -9035,7 +8328,6 @@ exports.createTaskColumns = createTaskColumns;
|
|
|
9035
8328
|
exports.createsWork = createsWork;
|
|
9036
8329
|
exports.defaultScopeRenderer = defaultScopeRenderer;
|
|
9037
8330
|
exports.defaultTaskComposerValues = defaultTaskComposerValues;
|
|
9038
|
-
exports.deriveAgentName = deriveAgentName;
|
|
9039
8331
|
exports.deriveWorkflowName = deriveWorkflowName;
|
|
9040
8332
|
exports.descendantIds = descendantIds;
|
|
9041
8333
|
exports.describeRRule = describeRRule;
|
|
@@ -9052,7 +8344,6 @@ exports.inputDocumentIds = inputDocumentIds;
|
|
|
9052
8344
|
exports.isAgenticWorkflow = isAgenticWorkflow;
|
|
9053
8345
|
exports.isOutOfBounds = isOutOfBounds;
|
|
9054
8346
|
exports.isPlainTodo = isPlainTodo;
|
|
9055
|
-
exports.isValidAgentName = isValidAgentName;
|
|
9056
8347
|
exports.isoToLocalInput = isoToLocalInput;
|
|
9057
8348
|
exports.linkedRunsFromActivity = linkedRunsFromActivity;
|
|
9058
8349
|
exports.localInputToIso = localInputToIso;
|
|
@@ -9063,9 +8354,6 @@ exports.ownerExtId = ownerExtId;
|
|
|
9063
8354
|
exports.parseRRule = parseRRule;
|
|
9064
8355
|
exports.prettifyKey = prettifyKey;
|
|
9065
8356
|
exports.resolveScopeInputs = resolveScopeInputs;
|
|
9066
|
-
exports.stripPersonaPreamble = stripPersonaPreamble;
|
|
9067
|
-
exports.summarizeAgent = summarizeAgent;
|
|
9068
|
-
exports.summarizeCapabilities = summarizeCapabilities;
|
|
9069
8357
|
exports.taskComposerToCreateRequest = taskComposerToCreateRequest;
|
|
9070
8358
|
exports.taskComposerToUpdateRequest = taskComposerToUpdateRequest;
|
|
9071
8359
|
exports.taskNeedsAccess = taskNeedsAccess;
|
|
@@ -9074,5 +8362,5 @@ exports.useWorkflowPreview = useWorkflowPreview;
|
|
|
9074
8362
|
exports.workflowTaskFields = workflowTaskFields;
|
|
9075
8363
|
exports.workflowToComposerValues = workflowToComposerValues;
|
|
9076
8364
|
exports.workflowWhen = workflowWhen;
|
|
9077
|
-
//# sourceMappingURL=chunk-
|
|
9078
|
-
//# sourceMappingURL=chunk-
|
|
8365
|
+
//# sourceMappingURL=chunk-5UXDUOOB.cjs.map
|
|
8366
|
+
//# sourceMappingURL=chunk-5UXDUOOB.cjs.map
|