@truefoundry/trueforge-ui 0.3.0-rc.5 → 0.3.0-rc.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/{AgentCodeSnippets-V5A56M7R.js → AgentCodeSnippets-T7PR6PDP.js} +7 -7
  3. package/dist/AgentMetricChart-J3RCSCAG.js +15 -0
  4. package/dist/{AgentOverview-NPC4P2EY.js → AgentOverview-WC7WMNMS.js} +11 -9
  5. package/dist/AgentOverview-WC7WMNMS.js.map +1 -0
  6. package/dist/{AgentSessionEventTimeline-UUXOJXTC.js → AgentSessionEventTimeline-SETKGGCI.js} +7 -7
  7. package/dist/{AgentSessionEventTimelineChart-FIAQCYJC.js → AgentSessionEventTimelineChart-4Y7PY5SJ.js} +7 -7
  8. package/dist/{AgentSessions-WHODEG2M.js → AgentSessions-YCAPM5GK.js} +8 -8
  9. package/dist/{ConnectorSettings-QTAI4TQX.js → ConnectorSettings-PXWRCFAL.js} +7 -7
  10. package/dist/{DockLayout-TATYU5SV.js → DockLayout-JRKCKAG2.js} +10 -10
  11. package/dist/{DrawerLayout-DXHNV33K.js → DrawerLayout-U7YPUZBR.js} +11 -11
  12. package/dist/{ModelSettings-UWTBHQRG.js → ModelSettings-VXYMJEMO.js} +7 -7
  13. package/dist/OpenUiFenceBlock-KPZFLUSC.js +9 -0
  14. package/dist/{SandboxSettings-BITQONS3.js → SandboxSettings-6DRUH72J.js} +7 -7
  15. package/dist/SchedulesPage-2G6F4XO6.js +15 -0
  16. package/dist/{SettingsBuilder-3OA4UCIM.js → SettingsBuilder-6FJVZLJT.js} +9 -9
  17. package/dist/{SettingsBuilder-3OA4UCIM.js.map → SettingsBuilder-6FJVZLJT.js.map} +1 -1
  18. package/dist/{ShellRouteSync-J74MV23Q.js → ShellRouteSync-SJXFKUAJ.js} +4 -4
  19. package/dist/{SidebarLayout-EQXQPYIU.js → SidebarLayout-EQ7EYCWR.js} +12 -12
  20. package/dist/{SkillSettings-KQ6GQ7JW.js → SkillSettings-IHVI7FDM.js} +7 -7
  21. package/dist/{TrueForgeUIWithRouter-R3UXQZRY.js → TrueForgeUIWithRouter-5OJFI3PF.js} +9 -9
  22. package/dist/{WidgetLayout-YWZTYFZL.js → WidgetLayout-PN5ZDOLM.js} +10 -10
  23. package/dist/{chunk-TAABBM7F.js → chunk-2GIZY3JJ.js} +3 -1
  24. package/dist/chunk-2GIZY3JJ.js.map +1 -0
  25. package/dist/{chunk-4MCIDE2C.js → chunk-2QTH6JHX.js} +3 -3
  26. package/dist/{chunk-ZZB3JIBQ.js → chunk-2UBSLCKB.js} +9 -9
  27. package/dist/{chunk-IIHJ32YH.js → chunk-3ZW74FHC.js} +3 -3
  28. package/dist/{chunk-CFGLAGWH.js → chunk-CG75X77Q.js} +2 -2
  29. package/dist/{chunk-TFFTZB26.js → chunk-E33DFTVN.js} +8 -8
  30. package/dist/chunk-E33DFTVN.js.map +1 -0
  31. package/dist/{chunk-ERIIJKJY.js → chunk-F7YRYFAF.js} +4 -4
  32. package/dist/chunk-JCL3Q7RW.js +587 -0
  33. package/dist/{chunk-OWDH67NY.js.map → chunk-JCL3Q7RW.js.map} +1 -1
  34. package/dist/{chunk-IVDIBAVH.js → chunk-L7HNKKS2.js} +2 -2
  35. package/dist/{chunk-INY3J2BV.js → chunk-OWXPMQ7N.js} +10 -10
  36. package/dist/{chunk-7NYDADYN.js → chunk-PX6MNNN3.js} +5 -5
  37. package/dist/{chunk-3QWUHGNL.js → chunk-T6QQV5LK.js} +55 -12
  38. package/dist/chunk-T6QQV5LK.js.map +1 -0
  39. package/dist/{chunk-DCVKW445.js → chunk-TMIILLHB.js} +478 -268
  40. package/dist/chunk-TMIILLHB.js.map +1 -0
  41. package/dist/{chunk-MMU55KCW.js → chunk-XANC4F2H.js} +318 -166
  42. package/dist/chunk-XANC4F2H.js.map +1 -0
  43. package/dist/index.d.ts +15 -11
  44. package/dist/index.js +12 -12
  45. package/dist/plugins/trueforge-agent-server-adapter/index.d.ts +2 -1
  46. package/dist/plugins/trueforge-agent-server-adapter/index.js +65 -14
  47. package/dist/plugins/trueforge-agent-server-adapter/index.js.map +1 -1
  48. package/dist/styles.css +1 -1
  49. package/package.json +3 -3
  50. package/dist/AgentMetricChart-GEADURES.js +0 -15
  51. package/dist/AgentOverview-NPC4P2EY.js.map +0 -1
  52. package/dist/OpenUiFenceBlock-FHEYXZEQ.js +0 -9
  53. package/dist/SchedulesPage-JIUWNYUH.js +0 -15
  54. package/dist/chunk-3QWUHGNL.js.map +0 -1
  55. package/dist/chunk-DCVKW445.js.map +0 -1
  56. package/dist/chunk-MMU55KCW.js.map +0 -1
  57. package/dist/chunk-OWDH67NY.js +0 -587
  58. package/dist/chunk-TAABBM7F.js.map +0 -1
  59. package/dist/chunk-TFFTZB26.js.map +0 -1
  60. /package/dist/{AgentCodeSnippets-V5A56M7R.js.map → AgentCodeSnippets-T7PR6PDP.js.map} +0 -0
  61. /package/dist/{AgentMetricChart-GEADURES.js.map → AgentMetricChart-J3RCSCAG.js.map} +0 -0
  62. /package/dist/{AgentSessionEventTimeline-UUXOJXTC.js.map → AgentSessionEventTimeline-SETKGGCI.js.map} +0 -0
  63. /package/dist/{AgentSessionEventTimelineChart-FIAQCYJC.js.map → AgentSessionEventTimelineChart-4Y7PY5SJ.js.map} +0 -0
  64. /package/dist/{AgentSessions-WHODEG2M.js.map → AgentSessions-YCAPM5GK.js.map} +0 -0
  65. /package/dist/{ConnectorSettings-QTAI4TQX.js.map → ConnectorSettings-PXWRCFAL.js.map} +0 -0
  66. /package/dist/{DockLayout-TATYU5SV.js.map → DockLayout-JRKCKAG2.js.map} +0 -0
  67. /package/dist/{DrawerLayout-DXHNV33K.js.map → DrawerLayout-U7YPUZBR.js.map} +0 -0
  68. /package/dist/{ModelSettings-UWTBHQRG.js.map → ModelSettings-VXYMJEMO.js.map} +0 -0
  69. /package/dist/{OpenUiFenceBlock-FHEYXZEQ.js.map → OpenUiFenceBlock-KPZFLUSC.js.map} +0 -0
  70. /package/dist/{SandboxSettings-BITQONS3.js.map → SandboxSettings-6DRUH72J.js.map} +0 -0
  71. /package/dist/{SchedulesPage-JIUWNYUH.js.map → SchedulesPage-2G6F4XO6.js.map} +0 -0
  72. /package/dist/{ShellRouteSync-J74MV23Q.js.map → ShellRouteSync-SJXFKUAJ.js.map} +0 -0
  73. /package/dist/{SidebarLayout-EQXQPYIU.js.map → SidebarLayout-EQ7EYCWR.js.map} +0 -0
  74. /package/dist/{SkillSettings-KQ6GQ7JW.js.map → SkillSettings-IHVI7FDM.js.map} +0 -0
  75. /package/dist/{TrueForgeUIWithRouter-R3UXQZRY.js.map → TrueForgeUIWithRouter-5OJFI3PF.js.map} +0 -0
  76. /package/dist/{WidgetLayout-YWZTYFZL.js.map → WidgetLayout-PN5ZDOLM.js.map} +0 -0
  77. /package/dist/{chunk-4MCIDE2C.js.map → chunk-2QTH6JHX.js.map} +0 -0
  78. /package/dist/{chunk-ZZB3JIBQ.js.map → chunk-2UBSLCKB.js.map} +0 -0
  79. /package/dist/{chunk-IIHJ32YH.js.map → chunk-3ZW74FHC.js.map} +0 -0
  80. /package/dist/{chunk-CFGLAGWH.js.map → chunk-CG75X77Q.js.map} +0 -0
  81. /package/dist/{chunk-ERIIJKJY.js.map → chunk-F7YRYFAF.js.map} +0 -0
  82. /package/dist/{chunk-IVDIBAVH.js.map → chunk-L7HNKKS2.js.map} +0 -0
  83. /package/dist/{chunk-INY3J2BV.js.map → chunk-OWXPMQ7N.js.map} +0 -0
  84. /package/dist/{chunk-7NYDADYN.js.map → chunk-PX6MNNN3.js.map} +0 -0
@@ -3,7 +3,7 @@ import {
3
3
  replaceScheduleShareSearch,
4
4
  searchAllAgents,
5
5
  useSearchAgentsList
6
- } from "./chunk-3QWUHGNL.js";
6
+ } from "./chunk-T6QQV5LK.js";
7
7
  import {
8
8
  Icon,
9
9
  PageHeader,
@@ -14,7 +14,7 @@ import {
14
14
  sidebarRailButtonClassName,
15
15
  useCompactLayout,
16
16
  useDraftCatalog
17
- } from "./chunk-IIHJ32YH.js";
17
+ } from "./chunk-3ZW74FHC.js";
18
18
  import {
19
19
  SESSION_CUSTOM_RANGE_MAX_DAYS,
20
20
  SESSION_SHARE_CHANGE_EVENT,
@@ -43,13 +43,13 @@ import {
43
43
  useServer,
44
44
  useServerCapabilities,
45
45
  useShellMode
46
- } from "./chunk-TAABBM7F.js";
46
+ } from "./chunk-2GIZY3JJ.js";
47
47
  import {
48
48
  useAuiState
49
49
  } from "./chunk-M6MHLVSO.js";
50
50
  import {
51
51
  OpenUiFenceBlock
52
- } from "./chunk-CFGLAGWH.js";
52
+ } from "./chunk-CG75X77Q.js";
53
53
  import {
54
54
  ThemeContext,
55
55
  ThemeProvider,
@@ -57,7 +57,7 @@ import {
57
57
  useOptionalContentClassNames,
58
58
  useOptionalThemeMode,
59
59
  useOptionalThemePreset
60
- } from "./chunk-OWDH67NY.js";
60
+ } from "./chunk-JCL3Q7RW.js";
61
61
 
62
62
  // src/theme/brand.tsx
63
63
  import { useContext } from "react";
@@ -1009,7 +1009,7 @@ function AgentCodeBlock({ code, language }) {
1009
1009
  language,
1010
1010
  showLineNumbers: true,
1011
1011
  darkTheme: mode === "dark",
1012
- className: "m-0 flex min-h-full flex-col rounded-none [&>pre]:flex-1"
1012
+ className: "m-0 flex min-h-full flex-col rounded-none text-xs [&>pre]:flex-1"
1013
1013
  }
1014
1014
  );
1015
1015
  }
@@ -1277,6 +1277,9 @@ function DialogFooter({ className, ...props }) {
1277
1277
  import React8, { useCallback as useCallback3, useEffect as useEffect2, useId as useId2, useLayoutEffect as useLayoutEffect2, useRef as useRef2, useState as useState5 } from "react";
1278
1278
  import { createPortal as createPortal2 } from "react-dom";
1279
1279
  import { jsx as jsx19, jsxs as jsxs11 } from "react/jsx-runtime";
1280
+ function isSurfaceClick(event) {
1281
+ return event.target === event.currentTarget;
1282
+ }
1280
1283
  function DropdownMenu({
1281
1284
  trigger,
1282
1285
  children,
@@ -1286,7 +1289,8 @@ function DropdownMenu({
1286
1289
  containerClassName,
1287
1290
  open: controlledOpen,
1288
1291
  onOpenChange,
1289
- closeOnClick = true
1292
+ closeOnClick = true,
1293
+ lockScroll = false
1290
1294
  }) {
1291
1295
  const [internalOpen, setInternalOpen] = useState5(false);
1292
1296
  const open = controlledOpen ?? internalOpen;
@@ -1336,6 +1340,20 @@ function DropdownMenu({
1336
1340
  document.addEventListener("mousedown", handler);
1337
1341
  return () => document.removeEventListener("mousedown", handler);
1338
1342
  }, [open]);
1343
+ useEffect2(() => {
1344
+ if (!open || !lockScroll) return;
1345
+ const block = (event) => {
1346
+ const target = event.target;
1347
+ if (target instanceof Node && menuRef.current?.contains(target)) return;
1348
+ event.preventDefault();
1349
+ };
1350
+ document.addEventListener("wheel", block, { passive: false, capture: true });
1351
+ document.addEventListener("touchmove", block, { passive: false, capture: true });
1352
+ return () => {
1353
+ document.removeEventListener("wheel", block, { capture: true });
1354
+ document.removeEventListener("touchmove", block, { capture: true });
1355
+ };
1356
+ }, [open, lockScroll]);
1339
1357
  useEffect2(() => {
1340
1358
  if (!open) {
1341
1359
  focusedOpenRef.current = false;
@@ -1402,12 +1420,15 @@ function DropdownMenu({
1402
1420
  transform: [align === "end" ? "translateX(-100%)" : null, side === "top" ? "translateY(-100%)" : null].filter((value) => value !== null).join(" ") || void 0
1403
1421
  },
1404
1422
  className: cn(
1405
- "fixed z-[200] flex min-w-[8rem] flex-col rounded-md border border-border bg-card-bg p-1",
1423
+ "aui-popup-enter fixed z-[200] flex min-w-[8rem] flex-col overscroll-contain rounded-md border border-border bg-card-bg p-1",
1406
1424
  "text-text-primary shadow-md",
1407
1425
  className
1408
1426
  ),
1409
1427
  onMouseDown: (event) => event.stopPropagation(),
1410
- onClick: closeOnClick ? () => setOpen(false) : void 0,
1428
+ onClick: closeOnClick ? (event) => {
1429
+ if (isSurfaceClick(event)) return;
1430
+ setOpen(false);
1431
+ } : void 0,
1411
1432
  children
1412
1433
  }
1413
1434
  ),
@@ -1448,6 +1469,7 @@ function cloneAgentName(agentName) {
1448
1469
  }
1449
1470
  function AgentOverflowMenu({
1450
1471
  agentName,
1472
+ description,
1451
1473
  agentSpec,
1452
1474
  canMutate,
1453
1475
  canUse = true,
@@ -1479,6 +1501,7 @@ function AgentOverflowMenu({
1479
1501
  try {
1480
1502
  await builder.saveAgent({
1481
1503
  agentName: clonedName,
1504
+ ...description === void 0 ? {} : { description },
1482
1505
  agentSpec,
1483
1506
  intent: "create"
1484
1507
  });
@@ -1661,6 +1684,7 @@ function AgentDetailsHeader({ agentId, detail, onBack }) {
1661
1684
  isCreateAgent: true,
1662
1685
  agentId: detail.agentId,
1663
1686
  agentName: detail.name,
1687
+ ...detail.description === void 0 ? {} : { description: detail.description },
1664
1688
  agentSpec: detail.agentSpec
1665
1689
  });
1666
1690
  };
@@ -1703,6 +1727,7 @@ function AgentDetailsHeader({ agentId, detail, onBack }) {
1703
1727
  AgentOverflowMenu,
1704
1728
  {
1705
1729
  agentName: detail.name,
1730
+ ...detail.description === void 0 ? {} : { description: detail.description },
1706
1731
  agentSpec: detail.agentSpec,
1707
1732
  canMutate,
1708
1733
  canUse,
@@ -2202,7 +2227,7 @@ import { jsx as jsx29, jsxs as jsxs19 } from "react/jsx-runtime";
2202
2227
  function AgentOverviewCard({ title, icon, count, children }) {
2203
2228
  return /* @__PURE__ */ jsxs19("section", { className: "rounded-lg border border-border bg-card-bg p-3 text-text-primary", children: [
2204
2229
  /* @__PURE__ */ jsxs19("h2", { className: "mb-2 flex items-center gap-1.5 text-xs font-semibold", children: [
2205
- /* @__PURE__ */ jsx29(Icon, { name: icon, className: "size-3.5 text-text-secondary" }),
2230
+ icon ? /* @__PURE__ */ jsx29(Icon, { name: icon, className: "size-3.5 text-text-secondary" }) : null,
2206
2231
  title,
2207
2232
  count !== void 0 ? /* @__PURE__ */ jsxs19("span", { className: "text-text-secondary", children: [
2208
2233
  "(",
@@ -2667,7 +2692,7 @@ function auiSelectPrefixTriggerClass(className) {
2667
2692
  }
2668
2693
  function auiSelectMenuClass(className) {
2669
2694
  return cn(
2670
- "bg-card-bg text-text-primary z-50 max-h-64 overflow-y-auto rounded-md border border-border p-1 shadow-md",
2695
+ "aui-popup-enter bg-card-bg text-text-primary z-50 max-h-64 overflow-y-auto rounded-md border border-border p-1 shadow-md",
2671
2696
  className
2672
2697
  );
2673
2698
  }
@@ -2684,6 +2709,28 @@ function auiSelectOptionClass(className) {
2684
2709
  import { useEffect as useEffect5, useId as useId3, useLayoutEffect as useLayoutEffect3, useRef as useRef3, useState as useState9 } from "react";
2685
2710
  import { createPortal as createPortal3 } from "react-dom";
2686
2711
  import { Fragment as Fragment5, jsx as jsx34, jsxs as jsxs24 } from "react/jsx-runtime";
2712
+ var MENU_GAP_PX = 4;
2713
+ var MENU_MAX_HEIGHT_PX = 256;
2714
+ function estimateMenuHeight({ optionCount, hasFooter }) {
2715
+ const rows = Math.max(optionCount, 1) * 32;
2716
+ const footer = hasFooter ? 40 : 0;
2717
+ return Math.min(8 + rows + footer, MENU_MAX_HEIGHT_PX);
2718
+ }
2719
+ function resolveMenuPlacement({
2720
+ preferred,
2721
+ spaceAbove,
2722
+ spaceBelow,
2723
+ menuHeight
2724
+ }) {
2725
+ if (preferred === "bottom") {
2726
+ if (spaceBelow >= menuHeight) return "bottom";
2727
+ if (spaceAbove >= menuHeight) return "top";
2728
+ return spaceAbove > spaceBelow ? "top" : "bottom";
2729
+ }
2730
+ if (spaceAbove >= menuHeight) return "top";
2731
+ if (spaceBelow >= menuHeight) return "bottom";
2732
+ return spaceBelow > spaceAbove ? "bottom" : "top";
2733
+ }
2687
2734
  function PopoverSelect(props) {
2688
2735
  const [open, setOpen] = useState9(false);
2689
2736
  const [pos, setPos] = useState9(null);
@@ -2693,7 +2740,9 @@ function PopoverSelect(props) {
2693
2740
  const listboxRef = useRef3(null);
2694
2741
  const focusedOpenRef = useRef3(false);
2695
2742
  const listboxId = useId3();
2696
- const menuPlacement = props.menuPlacement ?? "bottom";
2743
+ const preferredPlacement = props.menuPlacement ?? "bottom";
2744
+ const hasFooter = props.footer != null;
2745
+ const optionCount = props.options.length;
2697
2746
  useLayoutEffect3(() => {
2698
2747
  if (!open) {
2699
2748
  setPos(null);
@@ -2703,20 +2752,33 @@ function PopoverSelect(props) {
2703
2752
  const el = triggerRef.current;
2704
2753
  if (!el) return;
2705
2754
  const rect = el.getBoundingClientRect();
2755
+ const spaceBelow = window.innerHeight - rect.bottom - MENU_GAP_PX;
2756
+ const spaceAbove = rect.top - MENU_GAP_PX;
2757
+ const measuredHeight = menuRef.current?.offsetHeight;
2758
+ const menuHeight = measuredHeight != null && measuredHeight > 0 ? measuredHeight : estimateMenuHeight({ optionCount, hasFooter });
2759
+ const placement = resolveMenuPlacement({
2760
+ preferred: preferredPlacement,
2761
+ spaceAbove,
2762
+ spaceBelow,
2763
+ menuHeight
2764
+ });
2706
2765
  setPos({
2707
- top: menuPlacement === "top" ? rect.top - 4 : rect.bottom + 4,
2766
+ top: placement === "top" ? rect.top - MENU_GAP_PX : rect.bottom + MENU_GAP_PX,
2708
2767
  left: rect.left,
2709
- width: rect.width
2768
+ width: rect.width,
2769
+ placement
2710
2770
  });
2711
2771
  };
2712
2772
  update();
2773
+ const rafId = requestAnimationFrame(update);
2713
2774
  window.addEventListener("scroll", update, true);
2714
2775
  window.addEventListener("resize", update);
2715
2776
  return () => {
2777
+ cancelAnimationFrame(rafId);
2716
2778
  window.removeEventListener("scroll", update, true);
2717
2779
  window.removeEventListener("resize", update);
2718
2780
  };
2719
- }, [open, menuPlacement]);
2781
+ }, [open, preferredPlacement, optionCount, hasFooter]);
2720
2782
  useEffect5(() => {
2721
2783
  if (!open) return;
2722
2784
  const handlePointerDown = (event) => {
@@ -2786,7 +2848,7 @@ function PopoverSelect(props) {
2786
2848
  top: pos.top,
2787
2849
  left: pos.left,
2788
2850
  width: pos.width,
2789
- transform: menuPlacement === "top" ? "translateY(-100%)" : void 0
2851
+ transform: pos.placement === "top" ? "translateY(-100%)" : void 0
2790
2852
  },
2791
2853
  onMouseDown: (event) => event.stopPropagation(),
2792
2854
  children: [
@@ -3239,9 +3301,9 @@ function useOptionalCurrentUser() {
3239
3301
  import { useState as useState12 } from "react";
3240
3302
  import { jsx as jsx39 } from "react/jsx-runtime";
3241
3303
  var sizeClasses = {
3242
- sm: "h-6 w-6 text-xs",
3243
- default: "h-8 w-8 text-sm",
3244
- lg: "h-10 w-10 text-base"
3304
+ sm: "h-5 w-5 text-[0.625rem] leading-none",
3305
+ default: "h-8 w-8 text-sm leading-none",
3306
+ lg: "h-10 w-10 text-base leading-none"
3245
3307
  };
3246
3308
  function Avatar({ className, size = "default", ...props }) {
3247
3309
  return /* @__PURE__ */ jsx39(
@@ -3278,7 +3340,7 @@ function AvatarFallback({ className, ...props }) {
3278
3340
  {
3279
3341
  "data-slot": "avatar-fallback",
3280
3342
  className: cn(
3281
- "flex h-full w-full items-center justify-center rounded-full bg-secondary-bg font-medium text-text-secondary",
3343
+ "flex h-full w-full items-center justify-center rounded-full bg-gradient-to-br from-primary-button-bg/20 to-primary-button-bg/10 font-medium text-primary-button-bg dark:from-primary-button-bg dark:to-primary-button-hover dark:text-primary-button-text",
3282
3344
  className
3283
3345
  ),
3284
3346
  ...props
@@ -3289,14 +3351,8 @@ function AvatarFallback({ className, ...props }) {
3289
3351
  // src/atoms/UserAvatar.tsx
3290
3352
  import { jsx as jsx40, jsxs as jsxs28 } from "react/jsx-runtime";
3291
3353
  function getUserInitials(displayName) {
3292
- const parts = displayName.trim().split(/\s+/).filter(Boolean);
3293
- const first = parts[0];
3294
- if (first === void 0) {
3295
- return "";
3296
- }
3297
- const last = parts.at(-1);
3298
- const characters = parts.length === 1 ? Array.from(first).slice(0, 2) : [Array.from(first)[0], Array.from(last ?? "")[0]];
3299
- return characters.filter((character) => character !== void 0).join("").toLocaleUpperCase();
3354
+ const first = Array.from(displayName.trim())[0];
3355
+ return first === void 0 ? "" : first.toLocaleUpperCase();
3300
3356
  }
3301
3357
  function UserAvatar({ labeled = false, className }) {
3302
3358
  const currentUser = useOptionalCurrentUser();
@@ -3316,7 +3372,7 @@ function UserAvatar({ labeled = false, className }) {
3316
3372
  className
3317
3373
  ),
3318
3374
  children: [
3319
- /* @__PURE__ */ jsx40(Avatar, { size: "sm", children: /* @__PURE__ */ jsx40(AvatarFallback, { className: "bg-primary-button-bg text-primary-button-text", children: getUserInitials(displayName) }) }),
3375
+ /* @__PURE__ */ jsx40(Avatar, { size: "sm", children: /* @__PURE__ */ jsx40(AvatarFallback, { children: getUserInitials(displayName) }) }),
3320
3376
  /* @__PURE__ */ jsx40("span", { className: "w-full truncate text-center text-[0.625rem] leading-tight", children: displayName })
3321
3377
  ]
3322
3378
  }
@@ -3596,6 +3652,7 @@ function TableTokenPagination({
3596
3652
 
3597
3653
  // src/atoms/AgentsLibrary.tsx
3598
3654
  import { Fragment as Fragment6, jsx as jsx45, jsxs as jsxs33 } from "react/jsx-runtime";
3655
+ var AGENTS_PAGE_SIZE_OPTIONS = [10, 25];
3599
3656
  function displayModelLabel(modelName) {
3600
3657
  const slash = modelName.lastIndexOf("/");
3601
3658
  return slash >= 0 ? modelName.slice(slash + 1) : modelName;
@@ -3699,17 +3756,30 @@ function AgentLibraryRow({
3699
3756
  const skillsTitle = skillNames.length ? skillNames.join(", ") : `${skillsCount} skills`;
3700
3757
  const hasConfiguration = modelLabel != null || skillsCount > 0 || mcpCount > 0;
3701
3758
  const hasNoSchedules = scheduleSummary != null && scheduleSummary.count === 0;
3759
+ const storedDescription = agent.description?.trim() || null;
3760
+ const description = storedDescription != null && storedDescription !== agent.name ? storedDescription : null;
3702
3761
  return /* @__PURE__ */ jsxs33(TableRow, { className: hasNoSchedules ? "group" : void 0, children: [
3703
- /* @__PURE__ */ jsx45(TableCell, { className: "text-text-primary font-medium", children: onOpen == null ? /* @__PURE__ */ jsx45("span", { className: "block truncate", children: agent.name }) : /* @__PURE__ */ jsx45(
3704
- "button",
3705
- {
3706
- type: "button",
3707
- className: "block max-w-full cursor-pointer text-left",
3708
- "aria-label": `Open ${agent.name}`,
3709
- onClick: onOpen,
3710
- children: /* @__PURE__ */ jsx45("span", { className: "block truncate", children: agent.name })
3711
- }
3712
- ) }),
3762
+ /* @__PURE__ */ jsxs33(TableCell, { className: "text-text-primary w-96 max-w-96 font-medium", children: [
3763
+ onOpen == null ? /* @__PURE__ */ jsx45("span", { className: "block truncate", children: agent.name }) : /* @__PURE__ */ jsx45(
3764
+ "button",
3765
+ {
3766
+ type: "button",
3767
+ className: "block max-w-full cursor-pointer text-left",
3768
+ "aria-label": `Open ${agent.name}`,
3769
+ onClick: onOpen,
3770
+ children: /* @__PURE__ */ jsx45("span", { className: "block truncate", children: agent.name })
3771
+ }
3772
+ ),
3773
+ description ? /* @__PURE__ */ jsx45(
3774
+ Tooltip,
3775
+ {
3776
+ content: description,
3777
+ className: "max-w-sm whitespace-normal text-left",
3778
+ triggerClassName: "block min-w-0 w-full max-w-full",
3779
+ children: /* @__PURE__ */ jsx45("span", { className: "text-text-secondary block truncate text-xs font-normal", children: description })
3780
+ }
3781
+ ) : null
3782
+ ] }),
3713
3783
  /* @__PURE__ */ jsx45(TableCell, { children: hasConfiguration ? /* @__PURE__ */ jsxs33("div", { className: "text-text-secondary flex min-w-0 items-center gap-2", children: [
3714
3784
  modelLabel != null ? /* @__PURE__ */ jsx45(Tooltip, { content: modelTitle, children: /* @__PURE__ */ jsxs33(
3715
3785
  "span",
@@ -3750,6 +3820,7 @@ function AgentLibraryRow({
3750
3820
  AgentOverflowMenu,
3751
3821
  {
3752
3822
  agentName: agent.name,
3823
+ ...storedDescription != null ? { description: storedDescription } : {},
3753
3824
  ...spec != null ? { agentSpec: spec } : {},
3754
3825
  canMutate,
3755
3826
  canUse: canUseAgent,
@@ -3831,11 +3902,14 @@ function AgentsLibrary({ onSelectAgent }) {
3831
3902
  window.addEventListener("keydown", onKeyDown, true);
3832
3903
  return () => window.removeEventListener("keydown", onKeyDown, true);
3833
3904
  }, [closeLibrary, open]);
3834
- const { agents, isInitialLoading, isSearching, loadingMore, error, hasMore, listRef, sentinelRef } = useSearchAgentsList({
3905
+ const { agents, isInitialLoading, isSearching, error, pageSize, setPageSize, canPrev, canNext, goPrev, goNext } = useSearchAgentsList({
3835
3906
  enabled: open,
3836
3907
  query,
3837
- refreshKey: agentsListEpoch
3908
+ refreshKey: agentsListEpoch,
3909
+ mode: "paged",
3910
+ limit: DEFAULT_TABLE_PAGE_SIZE
3838
3911
  });
3912
+ const hasPageNav = canPrev || canNext;
3839
3913
  const showCreatedByColumn = hasCreatedBySubject(agents);
3840
3914
  const permissionAgentIds = open ? agents.map(libraryAgentId) : [];
3841
3915
  const { allows } = useResourcePermissions({
@@ -3892,6 +3966,7 @@ function AgentsLibrary({ onSelectAgent }) {
3892
3966
  isCreateAgent: true,
3893
3967
  agentId: libraryAgentId(agent),
3894
3968
  agentName: agent.name,
3969
+ ...agent.description === void 0 ? {} : { description: agent.description },
3895
3970
  agentSpec
3896
3971
  });
3897
3972
  };
@@ -3907,7 +3982,7 @@ function AgentsLibrary({ onSelectAgent }) {
3907
3982
  ] })
3908
3983
  }
3909
3984
  ),
3910
- /* @__PURE__ */ jsx45("div", { className: "bg-secondary-bg/40 flex min-h-0 flex-1 flex-col", children: /* @__PURE__ */ jsx45("div", { ref: listRef, className: "min-h-0 flex-1 overflow-y-auto p-4", "aria-label": "Agents", children: isInitialLoading ? /* @__PURE__ */ jsx45("div", { className: "flex flex-col gap-2 p-1", role: "status", "aria-label": "Loading agents", children: Array.from({ length: 6 }, (_, i) => /* @__PURE__ */ jsx45(Skeleton, { className: "h-11 w-full rounded-md" }, i)) }) : error ? /* @__PURE__ */ jsx45("p", { className: "text-failure-bg px-3 py-8 text-center text-sm", children: error }) : agents.length === 0 ? /* @__PURE__ */ jsx45(
3985
+ /* @__PURE__ */ jsx45("div", { className: "bg-secondary-bg/40 flex min-h-0 flex-1 flex-col", children: /* @__PURE__ */ jsx45("div", { className: "min-h-0 flex-1 overflow-y-auto p-4", "aria-label": "Agents", children: isInitialLoading ? /* @__PURE__ */ jsx45("div", { className: "flex flex-col gap-2 p-1", role: "status", "aria-label": "Loading agents", children: Array.from({ length: 6 }, (_, i) => /* @__PURE__ */ jsx45(Skeleton, { className: "h-11 w-full rounded-md" }, i)) }) : error ? /* @__PURE__ */ jsx45("p", { className: "text-failure-bg px-3 py-8 text-center text-sm", children: error }) : agents.length === 0 && !hasPageNav ? /* @__PURE__ */ jsx45(
3911
3986
  EmptyScreen,
3912
3987
  {
3913
3988
  title: "No Agents Found",
@@ -3916,10 +3991,35 @@ function AgentsLibrary({ onSelectAgent }) {
3916
3991
  /* @__PURE__ */ jsx45(EmptyScreenQueryHighlight, { children: query.trim() })
3917
3992
  ] }) : "Build one in a chat, then save it as an agent."
3918
3993
  }
3919
- ) : /* @__PURE__ */ jsxs33(Fragment6, { children: [
3920
- /* @__PURE__ */ jsx45("div", { className: "overflow-hidden rounded-lg border border-border", children: /* @__PURE__ */ jsxs33(Table, { children: [
3994
+ ) : agents.length === 0 ? /* @__PURE__ */ jsxs33("div", { className: "flex min-h-full flex-col", children: [
3995
+ /* @__PURE__ */ jsx45(
3996
+ EmptyScreen,
3997
+ {
3998
+ title: "No Agents Found",
3999
+ description: query.trim() ? /* @__PURE__ */ jsxs33(Fragment6, { children: [
4000
+ "No search results found for ",
4001
+ /* @__PURE__ */ jsx45(EmptyScreenQueryHighlight, { children: query.trim() })
4002
+ ] }) : "Build one in a chat, then save it as an agent.",
4003
+ className: "flex-1"
4004
+ }
4005
+ ),
4006
+ /* @__PURE__ */ jsx45("div", { className: "overflow-hidden rounded-lg border border-border", children: /* @__PURE__ */ jsx45(
4007
+ TableTokenPagination,
4008
+ {
4009
+ pageSize,
4010
+ rowCount: 0,
4011
+ canPrev,
4012
+ canNext,
4013
+ onPrev: goPrev,
4014
+ onNext: goNext,
4015
+ pageSizeOptions: AGENTS_PAGE_SIZE_OPTIONS,
4016
+ onPageSizeChange: setPageSize
4017
+ }
4018
+ ) })
4019
+ ] }) : /* @__PURE__ */ jsxs33("div", { className: "overflow-hidden rounded-lg border border-border", children: [
4020
+ /* @__PURE__ */ jsxs33(Table, { children: [
3921
4021
  /* @__PURE__ */ jsx45(TableHeader, { children: /* @__PURE__ */ jsxs33(TableRow, { className: "hover:bg-transparent", children: [
3922
- /* @__PURE__ */ jsx45(TableHead, { children: "Agent name" }),
4022
+ /* @__PURE__ */ jsx45(TableHead, { className: "w-96 min-w-96", children: "Agent name" }),
3923
4023
  /* @__PURE__ */ jsx45(TableHead, { children: "Configuration" }),
3924
4024
  showCreatedByColumn ? /* @__PURE__ */ jsx45(TableHead, { children: "Created by" }) : null,
3925
4025
  showSchedulesColumn ? /* @__PURE__ */ jsx45(TableHead, { className: "w-[14rem]", children: "Schedules" }) : null,
@@ -3968,8 +4068,20 @@ function AgentsLibrary({ onSelectAgent }) {
3968
4068
  id
3969
4069
  );
3970
4070
  }) })
3971
- ] }) }),
3972
- hasMore ? /* @__PURE__ */ jsx45("div", { ref: sentinelRef, className: "flex h-8 shrink-0 items-center justify-center", "aria-hidden": true, children: loadingMore ? /* @__PURE__ */ jsx45("span", { className: "text-text-secondary text-xs", role: "status", children: "Loading more\u2026" }) : null }) : null
4071
+ ] }),
4072
+ /* @__PURE__ */ jsx45(
4073
+ TableTokenPagination,
4074
+ {
4075
+ pageSize,
4076
+ rowCount: agents.length,
4077
+ canPrev,
4078
+ canNext,
4079
+ onPrev: goPrev,
4080
+ onNext: goNext,
4081
+ pageSizeOptions: AGENTS_PAGE_SIZE_OPTIONS,
4082
+ onPageSizeChange: setPageSize
4083
+ }
4084
+ )
3973
4085
  ] }) }) })
3974
4086
  ] });
3975
4087
  }
@@ -4165,7 +4277,7 @@ function AttachmentCard({
4165
4277
  children: [
4166
4278
  /* @__PURE__ */ jsx49(Tooltip, { content: name, side: "top", triggerClassName: "size-full", children: /* @__PURE__ */ jsx49("div", { className: "bg-secondary-bg relative size-full overflow-hidden rounded-[calc(var(--composer-radius,1.5rem)-var(--composer-padding,8px))] border border-primary-button-bg/20", children: /* @__PURE__ */ jsxs37(Avatar, { className: "size-full rounded-none", children: [
4167
4279
  /* @__PURE__ */ jsx49(AvatarImage, { src: isImage ? previewSrc : void 0, alt: name, className: "object-cover" }),
4168
- /* @__PURE__ */ jsx49(AvatarFallback, { className: "rounded-none", children: /* @__PURE__ */ jsx49(Icon, { name: "file", size: "1.5rem", className: "text-text-secondary" }) })
4280
+ /* @__PURE__ */ jsx49(AvatarFallback, { className: "rounded-none bg-secondary-bg bg-none text-text-secondary", children: /* @__PURE__ */ jsx49(Icon, { name: "file", size: "1.5rem", className: "text-text-secondary" }) })
4169
4281
  ] }) }) }),
4170
4282
  /* @__PURE__ */ jsx49("span", { className: "sr-only", children: name }),
4171
4283
  onRemove && /* @__PURE__ */ jsx49(
@@ -5053,7 +5165,10 @@ function ResponsiveDropdownMenu({
5053
5165
  "div",
5054
5166
  {
5055
5167
  className: "flex min-h-0 flex-1 flex-col overflow-x-hidden overflow-y-auto",
5056
- onClick: closeOnClick ? () => setOpen(false) : void 0,
5168
+ onClick: closeOnClick ? (event) => {
5169
+ if (isSurfaceClick(event)) return;
5170
+ setOpen(false);
5171
+ } : void 0,
5057
5172
  children
5058
5173
  }
5059
5174
  ) }) : null
@@ -5431,7 +5546,8 @@ function SkillVersionSelector({
5431
5546
  onOpenChange: (open) => {
5432
5547
  if (open) load();
5433
5548
  },
5434
- className: "min-w-40",
5549
+ className: "max-h-64 min-w-40 overflow-y-auto",
5550
+ lockScroll: true,
5435
5551
  trigger: /* @__PURE__ */ jsxs49(
5436
5552
  "button",
5437
5553
  {
@@ -6209,8 +6325,10 @@ function SideDrawer({
6209
6325
  onOpenChange(false);
6210
6326
  },
6211
6327
  style: compactStyle,
6328
+ "data-anchor": anchor,
6329
+ "data-compact": compact ? "" : void 0,
6212
6330
  className: cn(
6213
- "bg-card-bg text-text-primary border-border open:flex open:flex-col overflow-hidden rounded-none p-0 shadow-xl",
6331
+ "aui-side-drawer bg-card-bg text-text-primary border-border open:flex open:flex-col overflow-hidden rounded-none p-0 shadow-xl",
6214
6332
  "backdrop:bg-black/50 backdrop:backdrop-blur-[2px] dark:backdrop:bg-black/70",
6215
6333
  compact ? "m-0 mt-auto h-[min(85dvh,40rem)] w-full max-w-none border-t pb-[env(safe-area-inset-bottom)]" : cn(
6216
6334
  // Mobile / narrow: bottom sheet
@@ -6290,7 +6408,7 @@ function AgentInstructionsDrawer({
6290
6408
  open,
6291
6409
  onOpenChange: (nextOpen) => !nextOpen && onClose(),
6292
6410
  title: "Instructions",
6293
- description: "Define the agent behavior and messages added at the start of every session.",
6411
+ description: "System prompt that defines the agent's role, goals, and how it should behave. Written once, applied to every run.",
6294
6412
  anchor: "right",
6295
6413
  size: "lg",
6296
6414
  "aria-label": "Edit Instructions",
@@ -8216,7 +8334,7 @@ function DraftReasoningEffortSelector({ disabled, isRunning }) {
8216
8334
  ]
8217
8335
  }
8218
8336
  ),
8219
- open ? isMobile || compactLayout ? /* @__PURE__ */ jsx82(BottomSheet, { open: true, onOpenChange: setOpen, "aria-label": "Select reasoning effort", children: content }) : /* @__PURE__ */ jsx82("div", { className: "bg-card-bg text-text-primary absolute right-0 bottom-full z-50 mb-2 flex max-h-[22rem] w-[12rem] flex-col overflow-hidden rounded-lg border border-border shadow-lg", children: content }) : null
8337
+ open ? isMobile || compactLayout ? /* @__PURE__ */ jsx82(BottomSheet, { open: true, onOpenChange: setOpen, "aria-label": "Select reasoning effort", children: content }) : /* @__PURE__ */ jsx82("div", { className: "aui-popup-enter bg-card-bg text-text-primary absolute right-0 bottom-full z-50 mb-2 flex max-h-[22rem] w-[12rem] flex-col overflow-hidden rounded-lg border border-border shadow-lg", children: content }) : null
8220
8338
  ] });
8221
8339
  }
8222
8340
 
@@ -8833,7 +8951,7 @@ function DraftCompositeSelector({ disabled, isRunning, onAttach }) {
8833
8951
  id: menuId,
8834
8952
  role: "dialog",
8835
8953
  "aria-label": "Add to composer",
8836
- className: "bg-card-bg text-text-primary absolute bottom-full left-0 z-50 mb-2 flex h-[22rem] w-[28rem] max-w-[min(28rem,calc(100vw-2rem))] flex-col overflow-hidden rounded-lg border border-border shadow-lg",
8954
+ className: "aui-popup-enter bg-card-bg text-text-primary absolute bottom-full left-0 z-50 mb-2 flex h-[22rem] w-[28rem] max-w-[min(28rem,calc(100vw-2rem))] flex-col overflow-hidden rounded-lg border border-border shadow-lg",
8837
8955
  children: content
8838
8956
  }
8839
8957
  ) : null
@@ -8940,7 +9058,7 @@ function DraftModelSelector({ disabled, isRunning }) {
8940
9058
  ]
8941
9059
  }
8942
9060
  ),
8943
- open ? isMobile || compactLayout ? /* @__PURE__ */ jsx85(BottomSheet, { open: true, onOpenChange: setOpen, "aria-label": "Select model", children: content }) : /* @__PURE__ */ jsx85("div", { className: "bg-card-bg text-text-primary absolute right-0 bottom-full z-50 mb-2 flex max-h-[22rem] w-[18rem] flex-col overflow-hidden rounded-lg border border-border shadow-lg", children: content }) : null
9061
+ open ? isMobile || compactLayout ? /* @__PURE__ */ jsx85(BottomSheet, { open: true, onOpenChange: setOpen, "aria-label": "Select model", children: content }) : /* @__PURE__ */ jsx85("div", { className: "aui-popup-enter bg-card-bg text-text-primary absolute right-0 bottom-full z-50 mb-2 flex max-h-[22rem] w-[18rem] flex-col overflow-hidden rounded-lg border border-border shadow-lg", children: content }) : null
8944
9062
  ] });
8945
9063
  }
8946
9064
 
@@ -8970,7 +9088,7 @@ import ReactMarkdown from "react-markdown";
8970
9088
  import remarkGfm from "remark-gfm";
8971
9089
  import { Fragment as Fragment14, jsx as jsx87 } from "react/jsx-runtime";
8972
9090
  function preloadMarkdownOpenUI() {
8973
- return import("./OpenUiFenceBlock-FHEYXZEQ.js");
9091
+ return import("./OpenUiFenceBlock-KPZFLUSC.js");
8974
9092
  }
8975
9093
  var LARGE_STREAMING_FENCE_CHARS = 8 * 1024;
8976
9094
  function getActiveStreamingFenceCode(content) {
@@ -9136,15 +9254,19 @@ function MessageErrorBanner({ message, className }) {
9136
9254
  }
9137
9255
 
9138
9256
  // src/atoms/MessageIndicator.tsx
9139
- import { jsx as jsx90 } from "react/jsx-runtime";
9257
+ import { ThinkingOrb } from "thinking-orbs";
9258
+ import { jsx as jsx90, jsxs as jsxs67 } from "react/jsx-runtime";
9140
9259
  function MessageIndicator({ className }) {
9141
- return /* @__PURE__ */ jsx90(
9260
+ return /* @__PURE__ */ jsxs67(
9142
9261
  "span",
9143
9262
  {
9144
9263
  "data-slot": "aui_assistant-message-indicator",
9145
- className: cn("animate-pulse font-sans", className),
9146
- "aria-label": "Assistant is working",
9147
- children: "\u25CF"
9264
+ role: "status",
9265
+ className: cn("inline-flex items-center gap-1.5 font-sans text-sm text-text-secondary", className),
9266
+ children: [
9267
+ /* @__PURE__ */ jsx90(ThinkingOrb, { state: "listening", size: 20, "aria-hidden": true }),
9268
+ /* @__PURE__ */ jsx90("span", { className: "aui-message-indicator-shimmer", children: "Working..." })
9269
+ ]
9148
9270
  }
9149
9271
  );
9150
9272
  }
@@ -9448,7 +9570,7 @@ function SandboxArtifactDownload({
9448
9570
  }
9449
9571
 
9450
9572
  // src/atoms/SandboxToolCallCard.tsx
9451
- import { Fragment as Fragment15, jsx as jsx95, jsxs as jsxs67 } from "react/jsx-runtime";
9573
+ import { Fragment as Fragment15, jsx as jsx95, jsxs as jsxs68 } from "react/jsx-runtime";
9452
9574
  function JsonPane({ value, className }) {
9453
9575
  const MonacoEditorCore2 = useSlot("MonacoEditorCore");
9454
9576
  return /* @__PURE__ */ jsx95(
@@ -9482,22 +9604,22 @@ function SandboxBody({
9482
9604
  onViewModeChange,
9483
9605
  dataTestPrefix
9484
9606
  }) {
9485
- return /* @__PURE__ */ jsxs67(
9607
+ return /* @__PURE__ */ jsxs68(
9486
9608
  "div",
9487
9609
  {
9488
9610
  className: "rounded-lg border border-border bg-primary-bg",
9489
9611
  "data-testid": dataTestPrefix ? `${dataTestPrefix}-sandbox` : void 0,
9490
9612
  children: [
9491
- /* @__PURE__ */ jsx95("div", { className: "rounded-t-md border-b border-primary-button-bg/30 bg-primary-button-bg/10", children: /* @__PURE__ */ jsxs67("div", { className: "flex w-full min-w-0 items-center gap-2 px-3 py-1.5", children: [
9613
+ /* @__PURE__ */ jsx95("div", { className: "rounded-t-md border-b border-primary-button-bg/30 bg-primary-button-bg/10", children: /* @__PURE__ */ jsxs68("div", { className: "flex w-full min-w-0 items-center gap-2 px-3 py-1.5", children: [
9492
9614
  /* @__PURE__ */ jsx95("p", { className: "min-w-0 font-sans text-xs font-medium text-primary-button-bg", children: "sandbox" }),
9493
- /* @__PURE__ */ jsxs67(
9615
+ /* @__PURE__ */ jsxs68(
9494
9616
  "div",
9495
9617
  {
9496
9618
  className: "ml-auto flex shrink-0 items-center gap-1.5",
9497
9619
  onClick: (e) => e.stopPropagation(),
9498
9620
  onKeyDown: (e) => e.stopPropagation(),
9499
9621
  children: [
9500
- exitCode != null && /* @__PURE__ */ jsxs67(
9622
+ exitCode != null && /* @__PURE__ */ jsxs68(
9501
9623
  "span",
9502
9624
  {
9503
9625
  className: cn(
@@ -9512,7 +9634,7 @@ function SandboxBody({
9512
9634
  ]
9513
9635
  }
9514
9636
  ),
9515
- /* @__PURE__ */ jsxs67(
9637
+ /* @__PURE__ */ jsxs68(
9516
9638
  "div",
9517
9639
  {
9518
9640
  className: "inline-flex h-6 items-center rounded-md border border-border bg-primary-bg p-0.5",
@@ -9556,33 +9678,33 @@ function SandboxBody({
9556
9678
  }
9557
9679
  )
9558
9680
  ] }) }),
9559
- /* @__PURE__ */ jsx95("div", { className: "rounded-b-lg border border-t-0 border-border p-3", children: hasContent && /* @__PURE__ */ jsx95("div", { className: "max-h-80 overflow-x-hidden overflow-y-auto whitespace-pre-wrap break-words font-mono text-xs text-text-primary", children: viewMode === "code" ? /* @__PURE__ */ jsxs67(Fragment15, { children: [
9560
- argsJson && /* @__PURE__ */ jsxs67("div", { className: "my-1 border-l-4 border-primary-button-bg px-3", children: [
9681
+ /* @__PURE__ */ jsx95("div", { className: "rounded-b-lg border border-t-0 border-border p-3", children: hasContent && /* @__PURE__ */ jsx95("div", { className: "max-h-80 overflow-x-hidden overflow-y-auto whitespace-pre-wrap break-words font-mono text-xs text-text-primary", children: viewMode === "code" ? /* @__PURE__ */ jsxs68(Fragment15, { children: [
9682
+ argsJson && /* @__PURE__ */ jsxs68("div", { className: "my-1 border-l-4 border-primary-button-bg px-3", children: [
9561
9683
  /* @__PURE__ */ jsx95("div", { className: "mb-1 font-sans text-xs font-medium leading-4", children: "Arguments" }),
9562
9684
  /* @__PURE__ */ jsx95(JsonPane, { value: argsJson, className: "pl-2" })
9563
9685
  ] }),
9564
- resultJson && /* @__PURE__ */ jsxs67("div", { className: "my-1 border-l-4 border-primary-button-bg/60 px-3", children: [
9686
+ resultJson && /* @__PURE__ */ jsxs68("div", { className: "my-1 border-l-4 border-primary-button-bg/60 px-3", children: [
9565
9687
  /* @__PURE__ */ jsx95("div", { className: "mb-1 mt-2 font-sans text-xs font-medium leading-4", children: "Result" }),
9566
9688
  /* @__PURE__ */ jsx95(JsonPane, { value: resultJson, className: "pl-2" })
9567
9689
  ] })
9568
- ] }) : /* @__PURE__ */ jsxs67(Fragment15, { children: [
9569
- command && /* @__PURE__ */ jsxs67("div", { className: "my-1 break-all border-l-4 border-primary-button-bg px-3", children: [
9690
+ ] }) : /* @__PURE__ */ jsxs68(Fragment15, { children: [
9691
+ command && /* @__PURE__ */ jsxs68("div", { className: "my-1 break-all border-l-4 border-primary-button-bg px-3", children: [
9570
9692
  /* @__PURE__ */ jsx95("div", { className: "mb-1 text-[12px] font-medium leading-4 text-text-secondary", children: "COMMAND" }),
9571
- /* @__PURE__ */ jsxs67("div", { children: [
9693
+ /* @__PURE__ */ jsxs68("div", { children: [
9572
9694
  /* @__PURE__ */ jsx95("span", { className: "text-primary-button-bg", children: "$" }),
9573
9695
  " ",
9574
9696
  command
9575
9697
  ] })
9576
9698
  ] }),
9577
- resultText ? /* @__PURE__ */ jsxs67(Fragment15, { children: [
9699
+ resultText ? /* @__PURE__ */ jsxs68(Fragment15, { children: [
9578
9700
  /* @__PURE__ */ jsx95("div", { className: "mx-3 my-1 border-t border-border" }),
9579
- /* @__PURE__ */ jsxs67("div", { className: "my-1 break-all border-l-4 border-primary-button-bg/60 px-3", children: [
9701
+ /* @__PURE__ */ jsxs68("div", { className: "my-1 break-all border-l-4 border-primary-button-bg/60 px-3", children: [
9580
9702
  /* @__PURE__ */ jsx95("div", { className: "mb-1 text-[12px] font-medium leading-4 text-text-secondary", children: "OUTPUT" }),
9581
9703
  /* @__PURE__ */ jsx95("div", { children: resultText })
9582
9704
  ] })
9583
- ] }) : resultJson && /* @__PURE__ */ jsxs67(Fragment15, { children: [
9705
+ ] }) : resultJson && /* @__PURE__ */ jsxs68(Fragment15, { children: [
9584
9706
  /* @__PURE__ */ jsx95("div", { className: "mx-3 my-1 border-t border-border" }),
9585
- /* @__PURE__ */ jsxs67("div", { className: "my-1 border-l-4 border-primary-button-bg/60 px-3", children: [
9707
+ /* @__PURE__ */ jsxs68("div", { className: "my-1 border-l-4 border-primary-button-bg/60 px-3", children: [
9586
9708
  /* @__PURE__ */ jsx95("div", { className: "mb-1 text-[12px] font-medium leading-4 text-text-secondary", children: "OUTPUT" }),
9587
9709
  /* @__PURE__ */ jsx95(JsonPane, { value: resultJson, className: "pl-2" })
9588
9710
  ] })
@@ -9741,7 +9863,7 @@ function useOptionalAgentConfigInstructions() {
9741
9863
  }
9742
9864
 
9743
9865
  // src/atoms/SaveAgentButton.tsx
9744
- import { Fragment as Fragment16, jsx as jsx97, jsxs as jsxs68 } from "react/jsx-runtime";
9866
+ import { Fragment as Fragment16, jsx as jsx97, jsxs as jsxs69 } from "react/jsx-runtime";
9745
9867
  function cloneAgentSpec(spec) {
9746
9868
  return {
9747
9869
  ...spec,
@@ -9788,12 +9910,14 @@ function SaveAgentButtonContent({
9788
9910
  const [open, setOpen] = useState36(false);
9789
9911
  const [intent, setIntent] = useState36("create");
9790
9912
  const [name, setName] = useState36("");
9913
+ const [description, setDescription] = useState36("");
9791
9914
  const [draftSpec, setDraftSpec] = useState36(null);
9792
9915
  const [saving, setSaving] = useState36(false);
9793
9916
  const [error, setError] = useState36(null);
9794
9917
  const close = () => {
9795
9918
  if (saving) return;
9796
9919
  setOpen(false);
9920
+ setDescription("");
9797
9921
  setDraftSpec(null);
9798
9922
  setError(null);
9799
9923
  };
@@ -9810,6 +9934,7 @@ function SaveAgentButtonContent({
9810
9934
  const currentName = shell?.mode.status === "active" ? shell.mode.agentName ?? shell.mode.agentId ?? "" : "";
9811
9935
  setIntent(currentName ? "update" : "create");
9812
9936
  setName(currentName);
9937
+ setDescription(currentName && shell?.mode.status === "active" ? shell.mode.description ?? "" : "");
9813
9938
  setDraftSpec(cloneAgentSpec(latestAgentSpec));
9814
9939
  setOpen(true);
9815
9940
  };
@@ -9818,11 +9943,14 @@ function SaveAgentButtonContent({
9818
9943
  if (intent === "update" && !canManageAgent) return;
9819
9944
  const normalizedName = name.trim();
9820
9945
  if (!normalizedName || !draftSpec.model.name.trim()) return;
9946
+ const normalizedDescription = description.trim();
9947
+ if (!normalizedDescription) return;
9821
9948
  setSaving(true);
9822
9949
  setError(null);
9823
9950
  try {
9824
9951
  const result = await builder.saveAgent({
9825
9952
  agentName: normalizedName,
9953
+ ...normalizedDescription ? { description: normalizedDescription } : {},
9826
9954
  agentSpec: draftSpec,
9827
9955
  intent,
9828
9956
  sessionId: draftSessionId
@@ -9831,10 +9959,12 @@ function SaveAgentButtonContent({
9831
9959
  shell?.bindMutableAgent({
9832
9960
  agentId: result.agentId ?? normalizedName,
9833
9961
  agentName: normalizedName,
9962
+ ...normalizedDescription ? { description: normalizedDescription } : {},
9834
9963
  agentSpec: draftSpec
9835
9964
  });
9836
9965
  shell?.invalidateAgentsList();
9837
9966
  setOpen(false);
9967
+ setDescription("");
9838
9968
  setDraftSpec(null);
9839
9969
  } catch (caught) {
9840
9970
  setError(getErrorMessage(caught, "Could not save agent"));
@@ -9845,8 +9975,8 @@ function SaveAgentButtonContent({
9845
9975
  const isUpdateMode = shell?.mode.status === "active" && shell.mode.isMutable && (shell.mode.agentName !== void 0 || shell.mode.agentId !== void 0);
9846
9976
  const triggerLabel = isUpdateMode && children === "Save Agent" ? "Update Agent" : children;
9847
9977
  if (!visible) return null;
9848
- return /* @__PURE__ */ jsxs68(Fragment16, { children: [
9849
- /* @__PURE__ */ jsx97(PermissionGuard2, { allowed: canManageAgent, children: /* @__PURE__ */ jsxs68(
9978
+ return /* @__PURE__ */ jsxs69(Fragment16, { children: [
9979
+ /* @__PURE__ */ jsx97(PermissionGuard2, { allowed: canManageAgent, children: /* @__PURE__ */ jsxs69(
9850
9980
  Button.Primary,
9851
9981
  {
9852
9982
  type: "button",
@@ -9874,11 +10004,12 @@ function SaveAgentButtonContent({
9874
10004
  {
9875
10005
  intent,
9876
10006
  name,
10007
+ description,
9877
10008
  spec: draftSpec,
9878
10009
  saving,
9879
10010
  error,
9880
10011
  onNameChange: setName,
9881
- onChange: setDraftSpec,
10012
+ onDescriptionChange: setDescription,
9882
10013
  onCancel: close,
9883
10014
  onSave: () => void save()
9884
10015
  }
@@ -9890,14 +10021,16 @@ function SaveAgentButtonContent({
9890
10021
 
9891
10022
  // src/atoms/SaveAgentForm.tsx
9892
10023
  import { useEffect as useEffect21, useRef as useRef20 } from "react";
9893
- import { jsx as jsx98, jsxs as jsxs69 } from "react/jsx-runtime";
10024
+ import { jsx as jsx98, jsxs as jsxs70 } from "react/jsx-runtime";
9894
10025
  function SaveAgentForm({
9895
10026
  intent,
9896
10027
  name,
10028
+ description,
9897
10029
  spec,
9898
10030
  saving,
9899
10031
  error,
9900
10032
  onNameChange,
10033
+ onDescriptionChange,
9901
10034
  onCancel,
9902
10035
  onSave
9903
10036
  }) {
@@ -9906,9 +10039,10 @@ function SaveAgentForm({
9906
10039
  if (error === null) return;
9907
10040
  errorRef.current?.scrollIntoView?.({ block: "nearest", behavior: "smooth" });
9908
10041
  }, [error]);
9909
- return /* @__PURE__ */ jsxs69("div", { className: "flex min-h-0 w-full flex-1 flex-col", children: [
9910
- /* @__PURE__ */ jsxs69("div", { className: "min-h-0 flex-1 overflow-y-auto px-5 py-3", children: [
9911
- /* @__PURE__ */ jsxs69("label", { className: "mb-3 block", children: [
10042
+ const canSave = name.trim() !== "" && spec.model.name.trim() !== "" && description.trim() !== "";
10043
+ return /* @__PURE__ */ jsxs70("div", { className: "flex min-h-0 w-full flex-1 flex-col", children: [
10044
+ /* @__PURE__ */ jsxs70("div", { className: "min-h-0 flex-1 overflow-y-auto px-5 py-3", children: [
10045
+ /* @__PURE__ */ jsxs70("label", { className: "mb-3 block", children: [
9912
10046
  /* @__PURE__ */ jsx98("span", { className: "mb-1.5 block text-sm font-medium", children: "Agent name" }),
9913
10047
  /* @__PURE__ */ jsx98(
9914
10048
  "input",
@@ -9921,6 +10055,21 @@ function SaveAgentForm({
9921
10055
  }
9922
10056
  )
9923
10057
  ] }),
10058
+ /* @__PURE__ */ jsxs70("label", { className: "mb-3 block", children: [
10059
+ /* @__PURE__ */ jsx98("span", { className: "mb-1.5 block text-sm font-medium", children: "Description" }),
10060
+ /* @__PURE__ */ jsx98(
10061
+ "textarea",
10062
+ {
10063
+ value: description,
10064
+ disabled: saving,
10065
+ onChange: (event) => onDescriptionChange(event.target.value),
10066
+ rows: 4,
10067
+ maxLength: 1024,
10068
+ placeholder: "Describe what this agent does.",
10069
+ className: auiInputClass("resize-y py-2 disabled:opacity-60")
10070
+ }
10071
+ )
10072
+ ] }),
9924
10073
  error ? /* @__PURE__ */ jsx98(
9925
10074
  "p",
9926
10075
  {
@@ -9931,22 +10080,22 @@ function SaveAgentForm({
9931
10080
  }
9932
10081
  ) : null
9933
10082
  ] }),
9934
- /* @__PURE__ */ jsxs69("div", { className: "bg-card-bg sticky bottom-0 z-10 flex shrink-0 justify-end gap-2 border-t border-border px-5 py-4", children: [
10083
+ /* @__PURE__ */ jsxs70("div", { className: "bg-card-bg sticky bottom-0 z-10 flex shrink-0 justify-end gap-2 border-t border-border px-5 py-4", children: [
9935
10084
  /* @__PURE__ */ jsx98(Button.Secondary, { type: "button", disabled: saving, onClick: onCancel, children: "Cancel" }),
9936
- /* @__PURE__ */ jsx98(Button.Primary, { type: "button", disabled: saving || !name.trim() || !spec.model.name.trim(), onClick: onSave, children: saving ? "Saving\u2026" : "Save changes" })
10085
+ /* @__PURE__ */ jsx98(Button.Primary, { type: "button", disabled: saving || !canSave, onClick: onSave, children: saving ? "Saving\u2026" : "Save changes" })
9937
10086
  ] })
9938
10087
  ] });
9939
10088
  }
9940
10089
 
9941
10090
  // src/atoms/SchedulesButton.tsx
9942
- import { Fragment as Fragment17, jsx as jsx99, jsxs as jsxs70 } from "react/jsx-runtime";
10091
+ import { Fragment as Fragment17, jsx as jsx99, jsxs as jsxs71 } from "react/jsx-runtime";
9943
10092
  function SchedulesButton({ className, compact = false }) {
9944
10093
  const shell = useOptionalShellMode();
9945
10094
  const scheduleServer = useOptionalScheduleServer();
9946
10095
  const enabled = isSchedulesChromeEnabled({ schedules: scheduleServer }) && shell != null;
9947
10096
  const open = shell?.schedulesOpen === true;
9948
10097
  if (!enabled) return null;
9949
- return /* @__PURE__ */ jsx99("div", { className: cn("relative min-w-0", compact ? "flex justify-center" : "w-full", className), children: /* @__PURE__ */ jsxs70(
10098
+ return /* @__PURE__ */ jsx99("div", { className: cn("relative min-w-0", compact ? "flex justify-center" : "w-full", className), children: /* @__PURE__ */ jsxs71(
9950
10099
  "button",
9951
10100
  {
9952
10101
  type: "button",
@@ -9965,7 +10114,7 @@ function SchedulesButton({ className, compact = false }) {
9965
10114
  onClick: () => shell.setSchedulesOpen(!open),
9966
10115
  children: [
9967
10116
  /* @__PURE__ */ jsx99(Icon, { name: "calendar-clock", size: compact ? 14 : void 0 }),
9968
- compact ? /* @__PURE__ */ jsx99("span", { className: "text-center", children: "Schedules" }) : /* @__PURE__ */ jsxs70(Fragment17, { children: [
10117
+ compact ? /* @__PURE__ */ jsx99("span", { className: "text-center", children: "Schedules" }) : /* @__PURE__ */ jsxs71(Fragment17, { children: [
9969
10118
  /* @__PURE__ */ jsx99("span", { className: "truncate", children: "Schedules" }),
9970
10119
  /* @__PURE__ */ jsx99(Icon, { name: "chevron-right", className: "ml-auto size-3.5 shrink-0 opacity-60" })
9971
10120
  ] })
@@ -10004,12 +10153,12 @@ var ScrollToBottomButton = forwardRef2(
10004
10153
  ScrollToBottomButton.displayName = "ScrollToBottomButton";
10005
10154
 
10006
10155
  // src/atoms/SelectAgentEmptyState.tsx
10007
- import { jsx as jsx101, jsxs as jsxs71 } from "react/jsx-runtime";
10156
+ import { jsx as jsx101, jsxs as jsxs72 } from "react/jsx-runtime";
10008
10157
  function SelectAgentEmptyState() {
10009
10158
  const shell = useOptionalShellMode();
10010
10159
  const AgentsLibraryButton2 = useSlot("AgentsLibraryButton");
10011
10160
  if (shell?.mode.status !== "idle") return null;
10012
- return /* @__PURE__ */ jsxs71(
10161
+ return /* @__PURE__ */ jsxs72(
10013
10162
  "div",
10014
10163
  {
10015
10164
  className: "flex h-full min-h-0 w-full flex-col items-center justify-center gap-4 px-6",
@@ -10023,7 +10172,7 @@ function SelectAgentEmptyState() {
10023
10172
  }
10024
10173
 
10025
10174
  // src/atoms/SessionsBrowserButton.tsx
10026
- import { Fragment as Fragment18, jsx as jsx102, jsxs as jsxs72 } from "react/jsx-runtime";
10175
+ import { Fragment as Fragment18, jsx as jsx102, jsxs as jsxs73 } from "react/jsx-runtime";
10027
10176
  function SessionsBrowserButton({ className, compact = false }) {
10028
10177
  const sessionsServer = useOptionalAgentSessionsServer();
10029
10178
  const shell = useOptionalShellMode();
@@ -10031,7 +10180,7 @@ function SessionsBrowserButton({ className, compact = false }) {
10031
10180
  const sessionsOpen = shell?.sessionsOpen === true;
10032
10181
  const enabled = isSessionsChromeEnabled({ sessions: sessionsServer }) && shell != null;
10033
10182
  if (!enabled) return null;
10034
- return /* @__PURE__ */ jsx102("div", { className: cn("relative min-w-0", compact ? "flex justify-center" : "w-full", className), children: /* @__PURE__ */ jsxs72(
10183
+ return /* @__PURE__ */ jsx102("div", { className: cn("relative min-w-0", compact ? "flex justify-center" : "w-full", className), children: /* @__PURE__ */ jsxs73(
10035
10184
  "button",
10036
10185
  {
10037
10186
  type: "button",
@@ -10061,7 +10210,7 @@ function SessionsBrowserButton({ className, compact = false }) {
10061
10210
  },
10062
10211
  children: [
10063
10212
  /* @__PURE__ */ jsx102(Icon, { name: "message-square-text", size: compact ? 14 : void 0 }),
10064
- compact ? /* @__PURE__ */ jsx102("span", { className: "text-center", children: "Sessions" }) : /* @__PURE__ */ jsxs72(Fragment18, { children: [
10213
+ compact ? /* @__PURE__ */ jsx102("span", { className: "text-center", children: "Sessions" }) : /* @__PURE__ */ jsxs73(Fragment18, { children: [
10065
10214
  /* @__PURE__ */ jsx102("span", { className: "truncate", children: "Sessions" }),
10066
10215
  /* @__PURE__ */ jsx102(Icon, { name: "chevron-right", className: "ml-auto size-3.5 shrink-0 opacity-60" })
10067
10216
  ] })
@@ -10076,9 +10225,9 @@ function ShellActionsActionSlot() {
10076
10225
  }
10077
10226
 
10078
10227
  // src/atoms/Skeletons.tsx
10079
- import { jsx as jsx103, jsxs as jsxs73 } from "react/jsx-runtime";
10228
+ import { jsx as jsx103, jsxs as jsxs74 } from "react/jsx-runtime";
10080
10229
  function MessageListSkeleton({ className }) {
10081
- return /* @__PURE__ */ jsxs73(
10230
+ return /* @__PURE__ */ jsxs74(
10082
10231
  "div",
10083
10232
  {
10084
10233
  role: "status",
@@ -10087,7 +10236,7 @@ function MessageListSkeleton({ className }) {
10087
10236
  className: cn("mb-14 flex flex-col gap-y-6", className),
10088
10237
  children: [
10089
10238
  /* @__PURE__ */ jsx103("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx103(Skeleton, { className: "h-10 w-[min(85%,20rem)] rounded-xl" }) }),
10090
- /* @__PURE__ */ jsxs73("div", { className: "flex flex-col gap-2 px-2", children: [
10239
+ /* @__PURE__ */ jsxs74("div", { className: "flex flex-col gap-2 px-2", children: [
10091
10240
  /* @__PURE__ */ jsx103(Skeleton, { className: "h-4 w-full max-w-md" }),
10092
10241
  /* @__PURE__ */ jsx103(Skeleton, { className: "h-4 w-full max-w-sm" }),
10093
10242
  /* @__PURE__ */ jsx103(Skeleton, { className: "h-4 w-2/3 max-w-xs" })
@@ -10098,7 +10247,7 @@ function MessageListSkeleton({ className }) {
10098
10247
  }
10099
10248
 
10100
10249
  // src/atoms/SubAgentCard.tsx
10101
- import { jsx as jsx104, jsxs as jsxs74 } from "react/jsx-runtime";
10250
+ import { jsx as jsx104, jsxs as jsxs75 } from "react/jsx-runtime";
10102
10251
  function SubAgentCard({
10103
10252
  agentName,
10104
10253
  instruction,
@@ -10120,7 +10269,7 @@ function SubAgentCard({
10120
10269
  {
10121
10270
  className: cn("aui-sub-agent-card min-w-0", className),
10122
10271
  "data-testid": dataTestPrefix ? `${dataTestPrefix}-sub-agent-card` : void 0,
10123
- children: /* @__PURE__ */ jsxs74(
10272
+ children: /* @__PURE__ */ jsxs75(
10124
10273
  AgentStepRow,
10125
10274
  {
10126
10275
  icon: "agent-2",
@@ -10133,7 +10282,7 @@ function SubAgentCard({
10133
10282
  statusText: durationText,
10134
10283
  dataTestPrefix,
10135
10284
  children: [
10136
- instructionContent != null && /* @__PURE__ */ jsxs74("div", { className: "mb-3 flex flex-col gap-2 rounded-md border border-border p-2", children: [
10285
+ instructionContent != null && /* @__PURE__ */ jsxs75("div", { className: "mb-3 flex flex-col gap-2 rounded-md border border-border p-2", children: [
10137
10286
  /* @__PURE__ */ jsx104("h4", { className: "text-sm font-semibold text-text-primary", children: "Instructions" }),
10138
10287
  /* @__PURE__ */ jsx104(
10139
10288
  "div",
@@ -11166,7 +11315,7 @@ var one_light_default = {
11166
11315
  };
11167
11316
 
11168
11317
  // src/atoms/SyntaxHighlighter.tsx
11169
- import { jsx as jsx105, jsxs as jsxs75 } from "react/jsx-runtime";
11318
+ import { jsx as jsx105, jsxs as jsxs76 } from "react/jsx-runtime";
11170
11319
  function stripTrailingNewline(code) {
11171
11320
  return code.endsWith("\n") ? code.slice(0, -1) : code;
11172
11321
  }
@@ -11190,7 +11339,7 @@ function SyntaxHighlighterImpl({ code, language, darkTheme, className, showLineN
11190
11339
  setTimeout(() => setCopied(false), 2e3);
11191
11340
  });
11192
11341
  }, [code]);
11193
- return /* @__PURE__ */ jsxs75(
11342
+ return /* @__PURE__ */ jsxs76(
11194
11343
  "div",
11195
11344
  {
11196
11345
  className: cn(
@@ -11252,7 +11401,7 @@ function SyntaxHighlighterImpl({ code, language, darkTheme, className, showLineN
11252
11401
  var SyntaxHighlighter = memo(SyntaxHighlighterImpl);
11253
11402
 
11254
11403
  // src/atoms/ThreadListMisc.tsx
11255
- import { Fragment as Fragment19, jsx as jsx106, jsxs as jsxs76 } from "react/jsx-runtime";
11404
+ import { Fragment as Fragment19, jsx as jsx106, jsxs as jsxs77 } from "react/jsx-runtime";
11256
11405
  function ThreadListNewButton({ className, children, style, ...rest }) {
11257
11406
  return /* @__PURE__ */ jsx106(
11258
11407
  "button",
@@ -11268,7 +11417,7 @@ function ThreadListNewButton({ className, children, style, ...rest }) {
11268
11417
  )
11269
11418
  }),
11270
11419
  ...rest,
11271
- children: children ?? /* @__PURE__ */ jsxs76(Fragment19, { children: [
11420
+ children: children ?? /* @__PURE__ */ jsxs77(Fragment19, { children: [
11272
11421
  /* @__PURE__ */ jsx106(Icon, { name: "square-pen" }),
11273
11422
  "New Chat"
11274
11423
  ] })
@@ -11288,14 +11437,14 @@ function ThreadListEmptyState({ message = "No threads yet", className }) {
11288
11437
  );
11289
11438
  }
11290
11439
  function ThreadListShell({ header, children, className }) {
11291
- return /* @__PURE__ */ jsxs76("div", { className: cn("font-sans-flex flex h-full min-h-0 flex-1 flex-col overflow-hidden", className), children: [
11440
+ return /* @__PURE__ */ jsxs77("div", { className: cn("font-sans-flex flex h-full min-h-0 flex-1 flex-col overflow-hidden", className), children: [
11292
11441
  header != null ? /* @__PURE__ */ jsx106("div", { className: "shrink-0 border-b border-border px-2 py-2", children: header }) : null,
11293
11442
  /* @__PURE__ */ jsx106("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden p-2", children })
11294
11443
  ] });
11295
11444
  }
11296
11445
 
11297
11446
  // src/atoms/ThreadListRow.tsx
11298
- import { jsx as jsx107, jsxs as jsxs77 } from "react/jsx-runtime";
11447
+ import { jsx as jsx107, jsxs as jsxs78 } from "react/jsx-runtime";
11299
11448
  function ThreadListRow({
11300
11449
  title,
11301
11450
  active,
@@ -11307,13 +11456,13 @@ function ThreadListRow({
11307
11456
  }) {
11308
11457
  const relative = lastMessageAt != null ? formatRelativeShort(lastMessageAt) : void 0;
11309
11458
  const hasTrailing = relative != null || actions != null;
11310
- return /* @__PURE__ */ jsxs77(
11459
+ return /* @__PURE__ */ jsxs78(
11311
11460
  "div",
11312
11461
  {
11313
11462
  "data-slot": "aui_thread-list-item",
11314
11463
  "data-active": active || void 0,
11315
11464
  className: cn(
11316
- "group flex min-w-0 items-center gap-0.5 rounded-[0.75rem] transition-colors",
11465
+ "group flex min-w-0 items-center gap-0.5 rounded-[0.5rem] transition-colors",
11317
11466
  active ? "bg-dropdown-selected-item-bg text-dropdown-selected-item-text" : "text-text-secondary hover:bg-ghost-button-hover hover:text-text-primary",
11318
11467
  className
11319
11468
  ),
@@ -11332,16 +11481,16 @@ function ThreadListRow({
11332
11481
  active ? "text-dropdown-selected-item-text" : "text-inherit"
11333
11482
  )
11334
11483
  }),
11335
- children: /* @__PURE__ */ jsxs77("span", { className: "min-w-0 flex-1", children: [
11336
- /* @__PURE__ */ jsx107("span", { className: "block truncate text-sm font-medium text-text-primary", children: title }),
11337
- agentName != null ? /* @__PURE__ */ jsxs77("span", { className: "mt-0.5 flex min-w-0 items-center gap-1 text-xs text-text-secondary", children: [
11338
- /* @__PURE__ */ jsx107(Icon, { name: "agent-2", className: "size-3 shrink-0" }),
11484
+ children: /* @__PURE__ */ jsxs78("span", { className: "min-w-0 flex-1", children: [
11485
+ /* @__PURE__ */ jsx107("span", { className: "block truncate text-sm font-normal text-text-primary", children: title }),
11486
+ agentName != null ? /* @__PURE__ */ jsxs78("span", { className: "mt-0.5 flex min-w-0 items-center gap-1 text-[0.75rem] text-text-secondary", children: [
11487
+ /* @__PURE__ */ jsx107(Icon, { name: "bot", className: "shrink-0" }),
11339
11488
  /* @__PURE__ */ jsx107("span", { className: "truncate", children: agentName })
11340
11489
  ] }) : null
11341
11490
  ] })
11342
11491
  }
11343
11492
  ),
11344
- hasTrailing ? /* @__PURE__ */ jsxs77("div", { className: "relative mr-1 flex size-7 shrink-0 items-center justify-center", children: [
11493
+ hasTrailing ? /* @__PURE__ */ jsxs78("div", { className: "relative mr-1 flex size-7 shrink-0 items-center justify-center", children: [
11345
11494
  relative != null ? /* @__PURE__ */ jsx107(
11346
11495
  "span",
11347
11496
  {
@@ -11449,7 +11598,7 @@ MessageGroup.displayName = "MessageGroup";
11449
11598
  // src/atoms/Toast.tsx
11450
11599
  import { useCallback as useCallback15, useState as useState38 } from "react";
11451
11600
  import { createPortal as createPortal4 } from "react-dom";
11452
- import { jsx as jsx109, jsxs as jsxs78 } from "react/jsx-runtime";
11601
+ import { jsx as jsx109, jsxs as jsxs79 } from "react/jsx-runtime";
11453
11602
  function Toast({ title, description, open, onOpenChange, variant = "error", className }) {
11454
11603
  const [copied, setCopied] = useState38(false);
11455
11604
  const handleCopy = useCallback15(async () => {
@@ -11463,7 +11612,7 @@ ${description}`;
11463
11612
  }
11464
11613
  }, [title, description]);
11465
11614
  if (!open) return null;
11466
- return /* @__PURE__ */ jsxs78(
11615
+ return /* @__PURE__ */ jsxs79(
11467
11616
  "div",
11468
11617
  {
11469
11618
  role: "alert",
@@ -11481,8 +11630,8 @@ ${description}`;
11481
11630
  className: cn("shrink-0", variant === "success" ? "text-success-bg" : "text-failure-bg")
11482
11631
  }
11483
11632
  ),
11484
- /* @__PURE__ */ jsxs78("div", { className: "min-w-0 flex-1", children: [
11485
- /* @__PURE__ */ jsxs78("div", { className: "flex items-start justify-between gap-2", children: [
11633
+ /* @__PURE__ */ jsxs79("div", { className: "min-w-0 flex-1", children: [
11634
+ /* @__PURE__ */ jsxs79("div", { className: "flex items-start justify-between gap-2", children: [
11486
11635
  /* @__PURE__ */ jsx109(
11487
11636
  "div",
11488
11637
  {
@@ -11493,7 +11642,7 @@ ${description}`;
11493
11642
  children: title
11494
11643
  }
11495
11644
  ),
11496
- /* @__PURE__ */ jsxs78("div", { className: "flex shrink-0 items-center gap-1", children: [
11645
+ /* @__PURE__ */ jsxs79("div", { className: "flex shrink-0 items-center gap-1", children: [
11497
11646
  variant === "error" ? /* @__PURE__ */ jsx109(
11498
11647
  "button",
11499
11648
  {
@@ -11550,7 +11699,7 @@ function ToastStack({ children, duration: _duration = Number.POSITIVE_INFINITY }
11550
11699
  }
11551
11700
 
11552
11701
  // src/atoms/ToolApprovalBar.tsx
11553
- import { jsx as jsx110, jsxs as jsxs79 } from "react/jsx-runtime";
11702
+ import { jsx as jsx110, jsxs as jsxs80 } from "react/jsx-runtime";
11554
11703
  var DEFAULT_APPROVE_OPTIONS = [{ id: "approve", label: "Approve", variant: "primary" }];
11555
11704
  var DEFAULT_DENY_OPTIONS = [
11556
11705
  { id: "deny", label: "Deny", variant: "secondary", requiresReason: true }
@@ -11583,22 +11732,22 @@ function ToolApprovalBar({
11583
11732
  const isDenied = status?.type === "denied";
11584
11733
  const interactionsLocked = disabled && !isDecided;
11585
11734
  const headingText = isApproved ? "Tool Approved" : isDenied ? "Tool Approval Denied" : "Tool Approval Required for";
11586
- return /* @__PURE__ */ jsxs79(
11735
+ return /* @__PURE__ */ jsxs80(
11587
11736
  "div",
11588
11737
  {
11589
11738
  className: cn("aui-tool-approval-bar", className),
11590
11739
  "data-testid": dataTestPrefix ? `${dataTestPrefix}-approval` : void 0,
11591
11740
  children: [
11592
- /* @__PURE__ */ jsxs79("div", { className: "flex gap-2", children: [
11593
- /* @__PURE__ */ jsxs79("div", { className: cn("flex shrink-0 flex-col items-center", !showLineBelow && "pb-1"), children: [
11741
+ /* @__PURE__ */ jsxs80("div", { className: "flex gap-2", children: [
11742
+ /* @__PURE__ */ jsxs80("div", { className: cn("flex shrink-0 flex-col items-center", !showLineBelow && "pb-1"), children: [
11594
11743
  /* @__PURE__ */ jsx110("div", { className: "min-h-[0.75rem] w-px flex-1 bg-border" }),
11595
11744
  /* @__PURE__ */ jsx110(StepIconBox, { icon: "wrench", variant: "muted", iconSize: "0.875em", className: "my-1" }),
11596
11745
  showLineBelow && /* @__PURE__ */ jsx110("div", { className: "min-h-[0.75rem] w-px flex-1 bg-border" })
11597
11746
  ] }),
11598
- /* @__PURE__ */ jsxs79("div", { className: "mt-2 flex flex-1 items-center justify-between", children: [
11599
- /* @__PURE__ */ jsxs79("div", { className: "flex w-full items-center justify-between gap-2", children: [
11600
- /* @__PURE__ */ jsxs79("div", { className: "flex items-center gap-2", children: [
11601
- /* @__PURE__ */ jsxs79("span", { className: "inline-flex flex-wrap items-center gap-1 font-sans text-xs font-medium leading-4 text-text-primary", children: [
11747
+ /* @__PURE__ */ jsxs80("div", { className: "mt-2 flex flex-1 items-center justify-between", children: [
11748
+ /* @__PURE__ */ jsxs80("div", { className: "flex w-full items-center justify-between gap-2", children: [
11749
+ /* @__PURE__ */ jsxs80("div", { className: "flex items-center gap-2", children: [
11750
+ /* @__PURE__ */ jsxs80("span", { className: "inline-flex flex-wrap items-center gap-1 font-sans text-xs font-medium leading-4 text-text-primary", children: [
11602
11751
  headingText,
11603
11752
  /* @__PURE__ */ jsx110("span", { className: "rounded bg-secondary-bg px-1.5 py-0.5 text-xs text-text-secondary", children: toolName })
11604
11753
  ] }),
@@ -11613,8 +11762,8 @@ function ToolApprovalBar({
11613
11762
  ] }),
11614
11763
  !isDecided && !readOnly && selectedDenyOption && /* @__PURE__ */ jsx110(Button.Secondary, { size: "small", disabled: interactionsLocked, onClick: () => onDenyOptionChange?.(null), children: "Back" })
11615
11764
  ] }),
11616
- !isDecided && !readOnly && !selectedDenyOption && /* @__PURE__ */ jsxs79("div", { className: "flex gap-2", children: [
11617
- approveOptions.map((option) => /* @__PURE__ */ jsxs79(
11765
+ !isDecided && !readOnly && !selectedDenyOption && /* @__PURE__ */ jsxs80("div", { className: "flex gap-2", children: [
11766
+ approveOptions.map((option) => /* @__PURE__ */ jsxs80(
11618
11767
  Button,
11619
11768
  {
11620
11769
  size: "small",
@@ -11648,16 +11797,16 @@ function ToolApprovalBar({
11648
11797
  ] })
11649
11798
  ] })
11650
11799
  ] }),
11651
- !isDecided && !readOnly && selectedDenyOption && /* @__PURE__ */ jsxs79("div", { className: "flex flex-col gap-1 pl-8 pt-3", children: [
11652
- (selectedDenyOption.confirm?.title || selectedDenyOption.confirm?.description) && /* @__PURE__ */ jsxs79("div", { className: "flex flex-col gap-0.5", children: [
11800
+ !isDecided && !readOnly && selectedDenyOption && /* @__PURE__ */ jsxs80("div", { className: "flex flex-col gap-1 pl-8 pt-3", children: [
11801
+ (selectedDenyOption.confirm?.title || selectedDenyOption.confirm?.description) && /* @__PURE__ */ jsxs80("div", { className: "flex flex-col gap-0.5", children: [
11653
11802
  selectedDenyOption.confirm.title && /* @__PURE__ */ jsx110("span", { className: "text-xs font-medium text-text-primary", children: selectedDenyOption.confirm.title }),
11654
11803
  selectedDenyOption.confirm.description && /* @__PURE__ */ jsx110("span", { className: "text-xs text-text-secondary", children: selectedDenyOption.confirm.description })
11655
11804
  ] }),
11656
- selectedDenyOption.grants && selectedDenyOption.grants.length > 0 && /* @__PURE__ */ jsxs79("div", { className: "flex flex-wrap items-center gap-1", children: [
11805
+ selectedDenyOption.grants && selectedDenyOption.grants.length > 0 && /* @__PURE__ */ jsxs80("div", { className: "flex flex-wrap items-center gap-1", children: [
11657
11806
  /* @__PURE__ */ jsx110("span", { className: "text-xs text-text-secondary", children: "Grants:" }),
11658
11807
  selectedDenyOption.grants.map((grant) => /* @__PURE__ */ jsx110("span", { className: "rounded bg-secondary-bg px-1.5 py-0.5 text-xs text-text-secondary", children: grant }, grant))
11659
11808
  ] }),
11660
- /* @__PURE__ */ jsxs79("div", { className: "flex items-center gap-2", children: [
11809
+ /* @__PURE__ */ jsxs80("div", { className: "flex items-center gap-2", children: [
11661
11810
  /* @__PURE__ */ jsx110(
11662
11811
  "input",
11663
11812
  {
@@ -11678,7 +11827,7 @@ function ToolApprovalBar({
11678
11827
  ] }),
11679
11828
  showReasonError && /* @__PURE__ */ jsx110("span", { id: "aui-denial-reason-error", className: "text-xs text-failure-bg", role: "alert", children: "Reason is required" })
11680
11829
  ] }),
11681
- isDecided && status?.reason && /* @__PURE__ */ jsx110("div", { className: "pl-8 pt-2", children: /* @__PURE__ */ jsxs79("span", { className: "text-xs text-text-secondary", children: [
11830
+ isDecided && status?.reason && /* @__PURE__ */ jsx110("div", { className: "pl-8 pt-2", children: /* @__PURE__ */ jsxs80("span", { className: "text-xs text-text-secondary", children: [
11682
11831
  "Reason: ",
11683
11832
  status.reason
11684
11833
  ] }) })
@@ -12018,7 +12167,7 @@ function useRegisterApprovalExpand(toolCallId, expand) {
12018
12167
  }
12019
12168
 
12020
12169
  // src/atoms/ToolCallCard.tsx
12021
- import { Fragment as Fragment20, jsx as jsx112, jsxs as jsxs80 } from "react/jsx-runtime";
12170
+ import { Fragment as Fragment20, jsx as jsx112, jsxs as jsxs81 } from "react/jsx-runtime";
12022
12171
  var DEFAULT_AWAITING_TEXT = "Awaiting Response...";
12023
12172
  function ToolCallCard({
12024
12173
  icon = "mcp-server",
@@ -12090,7 +12239,7 @@ function ToolCallCard({
12090
12239
  showContentConnector: true,
12091
12240
  showPersistentContentConnector: !hasApproval,
12092
12241
  dataTestPrefix: dataTestPrefix ? `${dataTestPrefix}-header` : void 0,
12093
- persistentChildren: /* @__PURE__ */ jsxs80(Fragment20, { children: [
12242
+ persistentChildren: /* @__PURE__ */ jsxs81(Fragment20, { children: [
12094
12243
  approvalSlot,
12095
12244
  expanded && showResponseLine && responseSlot && /* @__PURE__ */ jsx112("div", { "data-testid": dataTestPrefix ? `${dataTestPrefix}-response` : void 0, children: responseSlot })
12096
12245
  ] }),
@@ -12103,7 +12252,7 @@ function ToolCallCard({
12103
12252
 
12104
12253
  // src/atoms/ToolCallContentBlock.tsx
12105
12254
  import { useState as useState40 } from "react";
12106
- import { jsx as jsx113, jsxs as jsxs81 } from "react/jsx-runtime";
12255
+ import { jsx as jsx113, jsxs as jsxs82 } from "react/jsx-runtime";
12107
12256
  function JsonEditor({
12108
12257
  content,
12109
12258
  height,
@@ -12166,7 +12315,7 @@ function ToolCallContentBlock({
12166
12315
  } : {
12167
12316
  padding: "0.25rem"
12168
12317
  };
12169
- return /* @__PURE__ */ jsxs81(
12318
+ return /* @__PURE__ */ jsxs82(
12170
12319
  "div",
12171
12320
  {
12172
12321
  className: cn(
@@ -12176,9 +12325,9 @@ function ToolCallContentBlock({
12176
12325
  "data-testid": dataTestPrefix ? `${dataTestPrefix}-content-block` : "tfy-tool-call-content-block",
12177
12326
  "data-content": content,
12178
12327
  children: [
12179
- /* @__PURE__ */ jsxs81("div", { className: "flex items-center justify-between rounded-t-lg border border-primary-button-bg/30 bg-primary-button-bg/10 px-3 py-1", children: [
12328
+ /* @__PURE__ */ jsxs82("div", { className: "flex items-center justify-between rounded-t-lg border border-primary-button-bg/30 bg-primary-button-bg/10 px-3 py-1", children: [
12180
12329
  /* @__PURE__ */ jsx113("div", { className: "font-sans text-xs font-medium text-primary-button-bg", children: title }),
12181
- /* @__PURE__ */ jsxs81("div", { className: "flex items-center gap-1", children: [
12330
+ /* @__PURE__ */ jsxs82("div", { className: "flex items-center gap-1", children: [
12182
12331
  /* @__PURE__ */ jsx113(
12183
12332
  "button",
12184
12333
  {
@@ -12230,8 +12379,8 @@ function ToolCallContentBlock({
12230
12379
  )
12231
12380
  }
12232
12381
  ),
12233
- fullscreen && /* @__PURE__ */ jsx113(Dialog, { open: true, onOpenChange: (open) => onFullscreenChange?.(open), children: /* @__PURE__ */ jsxs81(DialogContent, { className: "flex h-[80vh] max-w-4xl flex-col", children: [
12234
- /* @__PURE__ */ jsxs81(DialogHeader, { className: "flex flex-row items-center justify-between gap-2", children: [
12382
+ fullscreen && /* @__PURE__ */ jsx113(Dialog, { open: true, onOpenChange: (open) => onFullscreenChange?.(open), children: /* @__PURE__ */ jsxs82(DialogContent, { className: "flex h-[80vh] max-w-4xl flex-col", children: [
12383
+ /* @__PURE__ */ jsxs82(DialogHeader, { className: "flex flex-row items-center justify-between gap-2", children: [
12235
12384
  /* @__PURE__ */ jsx113(DialogTitle, { children: title }),
12236
12385
  /* @__PURE__ */ jsx113(IconButton, { variant: "ghost", onClick: () => onFullscreenChange?.(false), "aria-label": "Minimize", children: /* @__PURE__ */ jsx113(Icon, { name: "compress", size: "0.875em" }) })
12237
12386
  ] }),
@@ -12243,7 +12392,7 @@ function ToolCallContentBlock({
12243
12392
  }
12244
12393
 
12245
12394
  // src/atoms/ToolGroupCard.tsx
12246
- import { jsx as jsx114, jsxs as jsxs82 } from "react/jsx-runtime";
12395
+ import { jsx as jsx114, jsxs as jsxs83 } from "react/jsx-runtime";
12247
12396
  function ToolGroupCard({
12248
12397
  toolCallCount,
12249
12398
  expanded,
@@ -12256,7 +12405,7 @@ function ToolGroupCard({
12256
12405
  const AccordionSummary2 = useSlot("AccordionSummary");
12257
12406
  const AccordionDetails2 = useSlot("AccordionDetails");
12258
12407
  const label = `${toolCallCount} tool ${toolCallCount === 1 ? "call" : "calls"}`;
12259
- return /* @__PURE__ */ jsxs82(
12408
+ return /* @__PURE__ */ jsxs83(
12260
12409
  Accordion2,
12261
12410
  {
12262
12411
  "data-slot": "tool-group-card",
@@ -12278,7 +12427,7 @@ function ToolGroupCard({
12278
12427
  "&:hover": { backgroundColor: "transparent" },
12279
12428
  "& .MuiAccordionSummary-content": { margin: 0, width: "100%" }
12280
12429
  },
12281
- children: /* @__PURE__ */ jsxs82("div", { className: "text-text-secondary hover:text-text-primary flex origin-left items-center gap-2 py-1.5 text-sm transition-[color,scale] active:scale-[0.98]", children: [
12430
+ children: /* @__PURE__ */ jsxs83("div", { className: "text-text-secondary hover:text-text-primary flex origin-left items-center gap-2 py-1.5 text-sm transition-[color,scale] active:scale-[0.98]", children: [
12282
12431
  active && /* @__PURE__ */ jsx114(Icon, { name: "loader", className: "size-3 shrink-0 animate-spin [animation-duration:0.6s]" }),
12283
12432
  /* @__PURE__ */ jsx114("span", { className: "text-xs font-medium", children: label }),
12284
12433
  /* @__PURE__ */ jsx114(
@@ -12301,7 +12450,7 @@ function ToolGroupCard({
12301
12450
  }
12302
12451
 
12303
12452
  // src/atoms/UserMessageActionBar.tsx
12304
- import { jsx as jsx115, jsxs as jsxs83 } from "react/jsx-runtime";
12453
+ import { jsx as jsx115, jsxs as jsxs84 } from "react/jsx-runtime";
12305
12454
  var actionBtnClass2 = "h-6 w-6 text-text-secondary hover:text-text-primary [&_svg]:size-3.5";
12306
12455
  function UserMessageActionBar({
12307
12456
  isCopied,
@@ -12314,7 +12463,7 @@ function UserMessageActionBar({
12314
12463
  className
12315
12464
  }) {
12316
12465
  const MessageTimestamp2 = useSlot("MessageTimestamp");
12317
- return /* @__PURE__ */ jsxs83("div", { className: cn("aui-user-action-bar-root animate-in fade-in flex items-center gap-1 duration-200", className), children: [
12466
+ return /* @__PURE__ */ jsxs84("div", { className: cn("aui-user-action-bar-root animate-in fade-in flex items-center gap-1 duration-200", className), children: [
12318
12467
  /* @__PURE__ */ jsx115(MessageTimestamp2, { createdAt, className: "mr-1" }),
12319
12468
  /* @__PURE__ */ jsx115(
12320
12469
  IconButton,
@@ -12345,9 +12494,9 @@ function UserMessageActionBar({
12345
12494
  }
12346
12495
 
12347
12496
  // src/atoms/UserMessageBubble.tsx
12348
- import { jsx as jsx116, jsxs as jsxs84 } from "react/jsx-runtime";
12497
+ import { jsx as jsx116, jsxs as jsxs85 } from "react/jsx-runtime";
12349
12498
  function UserMessageBubble({ text, attachments, editAction, className }) {
12350
- return /* @__PURE__ */ jsxs84(
12499
+ return /* @__PURE__ */ jsxs85(
12351
12500
  "div",
12352
12501
  {
12353
12502
  "data-slot": "aui_user-message-root",
@@ -12371,10 +12520,10 @@ function UserMessageBubble({ text, attachments, editAction, className }) {
12371
12520
 
12372
12521
  // src/atoms/UserMessageEdit.tsx
12373
12522
  import { forwardRef as forwardRef4 } from "react";
12374
- import { jsx as jsx117, jsxs as jsxs85 } from "react/jsx-runtime";
12523
+ import { jsx as jsx117, jsxs as jsxs86 } from "react/jsx-runtime";
12375
12524
  var UserMessageEdit = forwardRef4(
12376
12525
  function UserMessageEdit2({ timestamp, attachments, input, footer, className, ...rest }, ref) {
12377
- return /* @__PURE__ */ jsxs85(
12526
+ return /* @__PURE__ */ jsxs86(
12378
12527
  "div",
12379
12528
  {
12380
12529
  ref,
@@ -12382,7 +12531,7 @@ var UserMessageEdit = forwardRef4(
12382
12531
  className: cn("flex flex-col gap-2 w-full", className),
12383
12532
  ...rest,
12384
12533
  children: [
12385
- (timestamp || attachments) && /* @__PURE__ */ jsxs85("div", { className: "flex items-center gap-2 text-sm text-text-secondary", children: [
12534
+ (timestamp || attachments) && /* @__PURE__ */ jsxs86("div", { className: "flex items-center gap-2 text-sm text-text-secondary", children: [
12386
12535
  /* @__PURE__ */ jsx117("span", { className: "font-medium text-text-primary", children: "User" }),
12387
12536
  timestamp
12388
12537
  ] }),
@@ -12396,12 +12545,12 @@ var UserMessageEdit = forwardRef4(
12396
12545
  );
12397
12546
 
12398
12547
  // src/atoms/WelcomeScreen.tsx
12399
- import { jsx as jsx118, jsxs as jsxs86 } from "react/jsx-runtime";
12548
+ import { jsx as jsx118, jsxs as jsxs87 } from "react/jsx-runtime";
12400
12549
  function WelcomeScreen({ heading = "How can I help you today?", icon, className }) {
12401
12550
  const preset = useOptionalThemePreset();
12402
12551
  const BrandLogo2 = useSlot("BrandLogo");
12403
12552
  const resolvedIcon = icon !== void 0 ? icon : preset === "chatgpt" ? null : preset === "claude" ? /* @__PURE__ */ jsx118(Icon, { name: "welcome-sparkle", className: "size-5 fill-current text-primary-button-bg" }) : /* @__PURE__ */ jsx118(BrandLogo2, { variant: "icon", className: "size-10" });
12404
- return /* @__PURE__ */ jsxs86(
12553
+ return /* @__PURE__ */ jsxs87(
12405
12554
  "div",
12406
12555
  {
12407
12556
  "data-preset": preset,
@@ -14245,7 +14394,7 @@ function UserMessageContainer() {
14245
14394
  }
14246
14395
 
14247
14396
  // src/containers/AgentSessionTimelineContainer.tsx
14248
- import { Fragment as Fragment21, jsx as jsx132, jsxs as jsxs87 } from "react/jsx-runtime";
14397
+ import { Fragment as Fragment21, jsx as jsx132, jsxs as jsxs88 } from "react/jsx-runtime";
14249
14398
  var READ_ONLY_SLOT_OVERRIDES = {
14250
14399
  UserMessageActionBar: () => /* @__PURE__ */ jsx132(Fragment21, {}),
14251
14400
  MessageActionBar: () => /* @__PURE__ */ jsx132(Fragment21, {})
@@ -14359,8 +14508,8 @@ function AgentSessionTimelineContainer({ sessionId, events, listMetrics }) {
14359
14508
  if (messages.length === 0 && turnViews.length === 0) {
14360
14509
  return /* @__PURE__ */ jsx132("div", { className: "flex flex-1 items-center justify-center px-6 text-sm text-text-secondary", children: "This session has no messages yet." });
14361
14510
  }
14362
- return /* @__PURE__ */ jsxs87("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden", children: [
14363
- /* @__PURE__ */ jsxs87("div", { className: "shrink-0 border-b border-border", children: [
14511
+ return /* @__PURE__ */ jsxs88("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden", children: [
14512
+ /* @__PURE__ */ jsxs88("div", { className: "shrink-0 border-b border-border", children: [
14364
14513
  /* @__PURE__ */ jsx132(AgentSessionMetricsStrip2, { metrics: sessionMetrics }),
14365
14514
  /* @__PURE__ */ jsx132(Suspense3, { fallback: null, children: /* @__PURE__ */ jsx132(AgentSessionEventTimeline2, { turns: turnViews, segments: timelineSegments, onSelectTurn: handleSelectTurn }) })
14366
14515
  ] }),
@@ -14388,7 +14537,7 @@ function SessionTurnSection({
14388
14537
  if (!turn.showHeader && messages.length === 0) {
14389
14538
  return null;
14390
14539
  }
14391
- return /* @__PURE__ */ jsxs87("section", { ref: onMount, id: `session-turn-${turn.turnNumber}`, className: "flex flex-col gap-2", children: [
14540
+ return /* @__PURE__ */ jsxs88("section", { ref: onMount, id: `session-turn-${turn.turnNumber}`, className: "flex flex-col gap-2", children: [
14392
14541
  turn.showHeader ? /* @__PURE__ */ jsx132(
14393
14542
  AgentSessionTurnHeader2,
14394
14543
  {
@@ -14406,28 +14555,28 @@ function SessionTurnSection({
14406
14555
  }
14407
14556
 
14408
14557
  // src/theme/defaultSlots.ts
14409
- var AgentOverview = lazy(() => import("./AgentOverview-NPC4P2EY.js"));
14558
+ var AgentOverview = lazy(() => import("./AgentOverview-WC7WMNMS.js"));
14410
14559
  var AgentSessions = lazy(async () => {
14411
- const mod = await import("./AgentSessions-WHODEG2M.js");
14560
+ const mod = await import("./AgentSessions-YCAPM5GK.js");
14412
14561
  return { default: mod.AgentSessions };
14413
14562
  });
14414
14563
  var AgentCodeSnippets = lazy(
14415
- () => import("./AgentCodeSnippets-V5A56M7R.js")
14564
+ () => import("./AgentCodeSnippets-T7PR6PDP.js")
14416
14565
  );
14417
14566
  var SchedulesPage = lazy(async () => {
14418
- const mod = await import("./SchedulesPage-JIUWNYUH.js");
14567
+ const mod = await import("./SchedulesPage-2G6F4XO6.js");
14419
14568
  return { default: mod.SchedulesPage };
14420
14569
  });
14421
14570
  var AgentSessionEventTimeline = lazy(async () => {
14422
- const mod = await import("./AgentSessionEventTimeline-UUXOJXTC.js");
14571
+ const mod = await import("./AgentSessionEventTimeline-SETKGGCI.js");
14423
14572
  return { default: mod.AgentSessionEventTimeline };
14424
14573
  });
14425
14574
  var AgentSessionEventTimelineChart = lazy(async () => {
14426
- const mod = await import("./AgentSessionEventTimelineChart-FIAQCYJC.js");
14575
+ const mod = await import("./AgentSessionEventTimelineChart-4Y7PY5SJ.js");
14427
14576
  return { default: mod.AgentSessionEventTimelineChart };
14428
14577
  });
14429
14578
  var AgentMetricChart = lazy(async () => {
14430
- const mod = await import("./AgentMetricChart-GEADURES.js");
14579
+ const mod = await import("./AgentMetricChart-J3RCSCAG.js");
14431
14580
  return { default: mod.AgentMetricChart };
14432
14581
  });
14433
14582
  var defaultSlots = {
@@ -14649,6 +14798,9 @@ export {
14649
14798
  getSessionEventLabel,
14650
14799
  getSessionEventTooltipHeading,
14651
14800
  auiInputClass,
14801
+ auiSelectTriggerClass,
14802
+ auiSelectMenuClass,
14803
+ auiSelectOptionClass,
14652
14804
  PopoverSelect,
14653
14805
  AgentSessionsFilters,
14654
14806
  SessionsPage,
@@ -14797,4 +14949,4 @@ export {
14797
14949
  UserMessageContainer,
14798
14950
  defaultSlots
14799
14951
  };
14800
- //# sourceMappingURL=chunk-MMU55KCW.js.map
14952
+ //# sourceMappingURL=chunk-XANC4F2H.js.map