@tutti-os/agent-gui 0.0.216 → 0.0.218

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 (103) hide show
  1. package/README.md +6 -0
  2. package/dist/{agentFileMentionContracts-BeBex-Sf.d.ts → AgentMentionSearchContracts-y1_u9cPi.d.ts} +73 -1
  3. package/dist/{AgentRichTextReadonly-IPPNAAWG.js → AgentRichTextReadonly-NBYQHR6U.js} +9 -9
  4. package/dist/agent-conversation/index.js +11 -11
  5. package/dist/agent-gui.d.ts +16 -3
  6. package/dist/agent-gui.js +26 -25
  7. package/dist/agent-message-center/index.js +8 -8
  8. package/dist/app/renderer/agentactivity.css +93 -69
  9. package/dist/app/renderer/assets/icons/agent-vinyl-player-chassis.png +0 -0
  10. package/dist/app/renderer/assets/icons/agent-vinyl-tonearm.png +0 -0
  11. package/dist/app/renderer/assets/icons/agent-vinyls/claude-vinyl.png +0 -0
  12. package/dist/app/renderer/assets/icons/agent-vinyls/codex-vinyl.png +0 -0
  13. package/dist/app/renderer/assets/icons/agent-vinyls/cursor-vinyl.png +0 -0
  14. package/dist/app/renderer/assets/icons/agent-vinyls/openclaw-vinyl.png +0 -0
  15. package/dist/app/renderer/assets/icons/agent-vinyls/opencode-vinyl.png +0 -0
  16. package/dist/app/renderer/assets/icons/agent-vinyls/tutti-vinyl.png +0 -0
  17. package/dist/app/renderer/assets/icons/agents/agent-colorful.png +0 -0
  18. package/dist/app/renderer/assets/icons/agents/claude-rounded.png +0 -0
  19. package/dist/app/renderer/assets/icons/agents/codex-rounded.png +0 -0
  20. package/dist/app/renderer/assets/icons/agents/cursor-colorful.png +0 -0
  21. package/dist/app/renderer/assets/icons/agents/cursor-rounded.png +0 -0
  22. package/dist/app/renderer/assets/icons/agents/gemini-rounded.png +0 -0
  23. package/dist/app/renderer/assets/icons/agents/manage-agent-tutti.png +0 -0
  24. package/dist/app/renderer/assets/icons/agents/openclaw-rounded.png +0 -0
  25. package/dist/app/renderer/assets/icons/agents/opencode-rounded.png +0 -0
  26. package/dist/app/renderer/assets/icons/agents/provider-rail-claude-code-colorful.png +0 -0
  27. package/dist/app/renderer/assets/icons/agents/provider-rail-codex-colorful.png +0 -0
  28. package/dist/app/renderer/assets/icons/agents/provider-rail-opencode-colorful.png +0 -0
  29. package/dist/app/renderer/assets/icons/agents/provider-rail-tutti.png +0 -0
  30. package/dist/app/renderer/assets/icons/user-avatar-placeholder.png +0 -0
  31. package/dist/{chunk-VMPPZO5C.js → chunk-2QF3RBR4.js} +4 -4
  32. package/dist/{chunk-M6HTOCQK.js → chunk-3X5VDG6T.js} +2 -2
  33. package/dist/chunk-6GX57XB5.js +135 -0
  34. package/dist/chunk-6GX57XB5.js.map +1 -0
  35. package/dist/{chunk-MOCBHFJ2.js → chunk-7V5XYXKB.js} +44 -120
  36. package/dist/chunk-7V5XYXKB.js.map +1 -0
  37. package/dist/chunk-BCBB4HOV.js +56 -0
  38. package/dist/{chunk-DLN33TPF.js → chunk-F6J3LJXK.js} +8 -8
  39. package/dist/{chunk-UERICUWM.js → chunk-GLVENTN6.js} +2 -2
  40. package/dist/{chunk-DTP2OMCE.js → chunk-KRITI65C.js} +10 -12
  41. package/dist/chunk-KRITI65C.js.map +1 -0
  42. package/dist/{chunk-EZRQMJTX.js → chunk-KZIW5CCW.js} +4 -4
  43. package/dist/{chunk-QFYOJMEQ.js → chunk-M6WEFXPL.js} +2 -2
  44. package/dist/chunk-OB7GGK6S.js +44534 -0
  45. package/dist/chunk-OB7GGK6S.js.map +1 -0
  46. package/dist/{chunk-G7DS23D4.js → chunk-PPA2OB2H.js} +2 -2
  47. package/dist/{chunk-YY5WM3OE.js → chunk-PZWBLTYH.js} +242 -81
  48. package/dist/chunk-PZWBLTYH.js.map +1 -0
  49. package/dist/chunk-SEHJINGH.js +150 -0
  50. package/dist/{chunk-4CHBM3G3.js → chunk-SUVMLCED.js} +5 -5
  51. package/dist/{chunk-B4TM2HYJ.js → chunk-SWO67UWQ.js} +6 -6
  52. package/dist/{chunk-6A6OVD66.js → chunk-UC2QN7FK.js} +44 -18
  53. package/dist/chunk-UC2QN7FK.js.map +1 -0
  54. package/dist/{chunk-Z5UJC4Q3.js → chunk-Z35E22WS.js} +4 -4
  55. package/dist/{chunk-P2RIZAK5.js → chunk-ZXEICU6J.js} +3 -1
  56. package/dist/chunk-ZXEICU6J.js.map +1 -0
  57. package/dist/context-mention-palette/index.d.ts +3 -3
  58. package/dist/context-mention-palette/index.js +14 -14
  59. package/dist/dock-icons.js +2 -2
  60. package/dist/headerLayout-CP4ujEbo.d.ts +14 -0
  61. package/dist/i18n/index.d.ts +2 -0
  62. package/dist/i18n/index.js +2 -2
  63. package/dist/index.d.ts +77 -46
  64. package/dist/index.js +49 -42
  65. package/dist/index.js.map +1 -1
  66. package/dist/layout.d.ts +7 -0
  67. package/dist/layout.js +9 -0
  68. package/dist/layout.js.map +1 -0
  69. package/dist/mention-search.d.ts +6 -73
  70. package/dist/mention-search.js +10 -10
  71. package/dist/provider-icons.js +1 -1
  72. package/dist/workbench/browser-element-context/index.js +2 -2
  73. package/dist/workbench/contribution.js +9 -8
  74. package/dist/workbench/index.d.ts +3 -1
  75. package/dist/workbench/index.js +12 -11
  76. package/dist/workbench/launch.js +2 -2
  77. package/dist/workbench/sessionTitle.js +2 -2
  78. package/dist/workbench/tool-sidebar/index.d.ts +14 -13
  79. package/dist/workbench/tool-sidebar/index.js +66 -55
  80. package/dist/workbench/tool-sidebar/index.js.map +1 -1
  81. package/package.json +22 -15
  82. package/dist/chunk-6A6OVD66.js.map +0 -1
  83. package/dist/chunk-AOK22J62.js +0 -56
  84. package/dist/chunk-DTP2OMCE.js.map +0 -1
  85. package/dist/chunk-KJA3HHUJ.js +0 -44291
  86. package/dist/chunk-KJA3HHUJ.js.map +0 -1
  87. package/dist/chunk-MOCBHFJ2.js.map +0 -1
  88. package/dist/chunk-P2RIZAK5.js.map +0 -1
  89. package/dist/chunk-QNE2ZPPV.js +0 -150
  90. package/dist/chunk-YY5WM3OE.js.map +0 -1
  91. /package/dist/{AgentRichTextReadonly-IPPNAAWG.js.map → AgentRichTextReadonly-NBYQHR6U.js.map} +0 -0
  92. /package/dist/{chunk-VMPPZO5C.js.map → chunk-2QF3RBR4.js.map} +0 -0
  93. /package/dist/{chunk-M6HTOCQK.js.map → chunk-3X5VDG6T.js.map} +0 -0
  94. /package/dist/{chunk-AOK22J62.js.map → chunk-BCBB4HOV.js.map} +0 -0
  95. /package/dist/{chunk-DLN33TPF.js.map → chunk-F6J3LJXK.js.map} +0 -0
  96. /package/dist/{chunk-UERICUWM.js.map → chunk-GLVENTN6.js.map} +0 -0
  97. /package/dist/{chunk-EZRQMJTX.js.map → chunk-KZIW5CCW.js.map} +0 -0
  98. /package/dist/{chunk-QFYOJMEQ.js.map → chunk-M6WEFXPL.js.map} +0 -0
  99. /package/dist/{chunk-G7DS23D4.js.map → chunk-PPA2OB2H.js.map} +0 -0
  100. /package/dist/{chunk-QNE2ZPPV.js.map → chunk-SEHJINGH.js.map} +0 -0
  101. /package/dist/{chunk-4CHBM3G3.js.map → chunk-SUVMLCED.js.map} +0 -0
  102. /package/dist/{chunk-B4TM2HYJ.js.map → chunk-SWO67UWQ.js.map} +0 -0
  103. /package/dist/{chunk-Z5UJC4Q3.js.map → chunk-Z35E22WS.js.map} +0 -0
@@ -198,6 +198,12 @@ function resolveAgentToolPanelPreferredWidth(input) {
198
198
  function shouldResizeAgentToolContainer(input) {
199
199
  return input.currentWidth !== input.requestedWidth && !(input.lastResize?.requestedWidth === input.requestedWidth && input.lastResize.actualWidth === input.currentWidth);
200
200
  }
201
+ function shouldAutoCollapseAgentToolSidebar(input) {
202
+ if (!Number.isFinite(input.containerWidth) || input.containerWidth <= 0 || !Number.isFinite(input.mainContentMinWidth) || !Number.isFinite(input.sidebarWidth)) {
203
+ return false;
204
+ }
205
+ return input.containerWidth < Math.max(0, input.mainContentMinWidth) + Math.max(0, input.sidebarWidth);
206
+ }
201
207
  function formatAgentToolReminderCount(value) {
202
208
  if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) {
203
209
  return null;
@@ -410,6 +416,7 @@ function AgentToolSidebarToolbar({
410
416
  panels,
411
417
  quickActionPanels = [],
412
418
  reminders = {},
419
+ showToggleButton = true,
413
420
  onAddPanel,
414
421
  onOpenPanel,
415
422
  onToggleExpansion,
@@ -428,7 +435,7 @@ function AgentToolSidebarToolbar({
428
435
  "nodrag pointer-events-auto flex h-[var(--agent-gui-workbench-header-height,44px)] items-center gap-1 [-webkit-app-region:no-drag]",
429
436
  activePanel === null && isOpen && "ml-auto"
430
437
  ),
431
- "data-standalone-agent-tool-sidebar-toolbar": "true",
438
+ "data-agent-tool-sidebar-toolbar": "true",
432
439
  onDoubleClick: (event) => event.stopPropagation(),
433
440
  onPointerDown: (event) => event.stopPropagation(),
434
441
  children: [
@@ -481,7 +488,7 @@ function AgentToolSidebarToolbar({
481
488
  "aria-label": labelByPanel.get(panel) ?? panel,
482
489
  "aria-pressed": false,
483
490
  className: "relative text-[var(--text-secondary)]",
484
- "data-standalone-agent-tool-sidebar-quick-action": panel,
491
+ "data-agent-tool-sidebar-quick-action": panel,
485
492
  size: "icon-sm",
486
493
  type: "button",
487
494
  variant: "chrome",
@@ -515,14 +522,14 @@ function AgentToolSidebarToolbar({
515
522
  children: isExpanded ? /* @__PURE__ */ jsx2(RestoreIcon, { "aria-hidden": true, className: "size-3.5" }) : /* @__PURE__ */ jsx2(MaximizeIcon, { "aria-hidden": true, className: "size-3.5" })
516
523
  }
517
524
  ) : null,
518
- /* @__PURE__ */ jsxs(Tooltip, { children: [
525
+ showToggleButton ? /* @__PURE__ */ jsxs(Tooltip, { children: [
519
526
  /* @__PURE__ */ jsx2(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx2(
520
527
  Button,
521
528
  {
522
529
  "aria-label": label,
523
530
  "aria-pressed": isOpen,
524
531
  className: "relative",
525
- "data-standalone-agent-tool-sidebar-toggle": "true",
532
+ "data-agent-tool-sidebar-toggle": "true",
526
533
  size: "icon-sm",
527
534
  type: "button",
528
535
  variant: isOpen && activePanel !== null ? "secondary" : "chrome",
@@ -531,7 +538,7 @@ function AgentToolSidebarToolbar({
531
538
  }
532
539
  ) }),
533
540
  /* @__PURE__ */ jsx2(TooltipContent, { side: "bottom", children: label })
534
- ] })
541
+ ] }) : null
535
542
  ]
536
543
  }
537
544
  ) });
@@ -560,7 +567,7 @@ function AgentToolSidebarPicker({
560
567
  "div",
561
568
  {
562
569
  className: "flex h-full min-h-0 items-center justify-center overflow-auto px-6 py-10",
563
- "data-standalone-agent-tool-sidebar-picker": "true",
570
+ "data-agent-tool-sidebar-picker": "true",
564
571
  children: /* @__PURE__ */ jsx3("div", { className: "flex w-full max-w-[340px] flex-col gap-2", children: panels.map((panel) => /* @__PURE__ */ jsxs2(
565
572
  Button2,
566
573
  {
@@ -869,6 +876,7 @@ function useAgentToolSidebarLayout({
869
876
  handleResizePointerMove,
870
877
  isActivePanelExpanded,
871
878
  resetContainerResizeBaseline,
879
+ resetPanelExpansion,
872
880
  resizeForPanel,
873
881
  stopResizing,
874
882
  togglePanelExpansion
@@ -956,6 +964,18 @@ function useAgentToolSidebarController({
956
964
  setIsEmptySidebarClosing(false);
957
965
  setIsSidebarOpen(true);
958
966
  }, []);
967
+ const collapseSidebarForContainerConstraint = useCallback3(() => {
968
+ setIsEmptySidebarClosing(false);
969
+ setIsSidebarOpen(false);
970
+ dispatch({ type: "close" });
971
+ onActivePanelChange?.(null);
972
+ layout.resetPanelExpansion(null);
973
+ layout.resetContainerResizeBaseline();
974
+ }, [
975
+ layout.resetContainerResizeBaseline,
976
+ layout.resetPanelExpansion,
977
+ onActivePanelChange
978
+ ]);
959
979
  const markContentReady = useCallback3((tabId) => {
960
980
  if (prefersReducedMotion()) {
961
981
  setContentReadyTabIds(
@@ -1200,6 +1220,7 @@ function useAgentToolSidebarController({
1200
1220
  bindLayoutWidthProjection,
1201
1221
  bindLifecycle,
1202
1222
  closePanel,
1223
+ collapseSidebarForContainerConstraint,
1203
1224
  closePanelTab,
1204
1225
  contentReadyTabIds,
1205
1226
  ensurePanel,
@@ -1240,17 +1261,16 @@ var AgentToolSidebar = forwardRef(function AgentToolSidebar2({
1240
1261
  children,
1241
1262
  containerWidth,
1242
1263
  copy,
1243
- headerDrag,
1244
- headerPlacement = "inline",
1264
+ header,
1245
1265
  mainContentMinWidthPx,
1246
1266
  panels: unfilteredPanels,
1247
1267
  quickActionPanels,
1248
1268
  reminders,
1249
- renderHeader,
1250
1269
  renderLoading,
1251
1270
  renderPanel,
1252
1271
  renderTabIcon,
1253
1272
  resolveTabLabel,
1273
+ showToggleButton,
1254
1274
  resizeContainerContentWidth,
1255
1275
  onActivePanelChange,
1256
1276
  onLayoutWidthChange,
@@ -1276,6 +1296,7 @@ var AgentToolSidebar = forwardRef(function AgentToolSidebar2({
1276
1296
  bindLayoutWidthProjection,
1277
1297
  bindLifecycle,
1278
1298
  closePanel,
1299
+ collapseSidebarForContainerConstraint,
1279
1300
  closePanelTab,
1280
1301
  contentReadyTabIds,
1281
1302
  ensurePanel,
@@ -1308,47 +1329,33 @@ var AgentToolSidebar = forwardRef(function AgentToolSidebar2({
1308
1329
  () => ({
1309
1330
  addPanel,
1310
1331
  close: closePanel,
1332
+ collapseForContainerConstraint: collapseSidebarForContainerConstraint,
1311
1333
  closeTab: closePanelTab,
1312
1334
  ensurePanel,
1313
1335
  openPanel
1314
1336
  }),
1315
- [addPanel, closePanel, closePanelTab, ensurePanel, openPanel]
1337
+ [
1338
+ addPanel,
1339
+ closePanel,
1340
+ closePanelTab,
1341
+ collapseSidebarForContainerConstraint,
1342
+ ensurePanel,
1343
+ openPanel
1344
+ ]
1316
1345
  );
1317
- const isHostHeaderDrag = headerDrag?.mode === "host";
1318
- const handleHeaderDoubleClick = (event) => {
1319
- if (isAgentToolSidebarHeaderControl(event.target)) {
1320
- event.stopPropagation();
1321
- return;
1322
- }
1323
- if (headerDrag?.mode === "host") {
1324
- event.stopPropagation();
1325
- headerDrag.onDoubleClick?.(event);
1326
- }
1327
- };
1328
- const handleHeaderPointerDown = (event) => {
1329
- if (isAgentToolSidebarHeaderControl(event.target)) {
1330
- event.stopPropagation();
1331
- return;
1332
- }
1333
- if (headerDrag?.mode === "host") {
1334
- event.stopPropagation();
1335
- headerDrag.onPointerDown?.(event);
1336
- }
1337
- };
1346
+ const isHostOwnedHeader = header.owner === "host";
1338
1347
  const toolActions = /* @__PURE__ */ jsxs3(
1339
1348
  "div",
1340
1349
  {
1341
1350
  className: cn2(
1342
1351
  "flex h-[var(--agent-gui-workbench-header-height,44px)] min-w-0 max-w-full shrink-0 cursor-grab items-center pr-[var(--agent-gui-workbench-header-padding-x)] active:cursor-grabbing",
1343
- isHostHeaderDrag ? "[-webkit-app-region:no-drag]" : "[-webkit-app-region:drag]",
1352
+ isHostOwnedHeader ? "[-webkit-app-region:no-drag]" : "[-webkit-app-region:drag]",
1344
1353
  isSidebarOpen && "border-b border-[var(--border-1)]"
1345
1354
  ),
1346
- "data-standalone-agent-tool-sidebar-drag-region": "true",
1347
- "data-standalone-agent-tool-sidebar-header": "true",
1355
+ "data-agent-tool-sidebar-drag-region": "true",
1356
+ "data-agent-tool-sidebar-header": "true",
1348
1357
  ref: measureToolActions,
1349
1358
  style: isSidebarOpen ? { width: `${activePanelWidth}px`, maxWidth: "100%" } : void 0,
1350
- onDoubleClick: isHostHeaderDrag ? handleHeaderDoubleClick : void 0,
1351
- onPointerDown: isHostHeaderDrag ? handleHeaderPointerDown : void 0,
1352
1359
  children: [
1353
1360
  activeTabId ? /* @__PURE__ */ jsx4(
1354
1361
  ToolSidebarTabBar,
@@ -1373,6 +1380,7 @@ var AgentToolSidebar = forwardRef(function AgentToolSidebar2({
1373
1380
  panels,
1374
1381
  quickActionPanels,
1375
1382
  reminders,
1383
+ showToggleButton,
1376
1384
  onAddPanel: addPanel,
1377
1385
  onOpenPanel: openPanel,
1378
1386
  onToggleExpansion: () => {
@@ -1384,17 +1392,21 @@ var AgentToolSidebar = forwardRef(function AgentToolSidebar2({
1384
1392
  ]
1385
1393
  }
1386
1394
  );
1395
+ const headerLayout = {
1396
+ actions: toolActions,
1397
+ isSidebarOpen,
1398
+ layoutWidthPx: isSidebarOpen ? activePanelLayoutWidth : toolActionsWidth
1399
+ };
1400
+ const renderedHeader = header.render(headerLayout);
1387
1401
  return /* @__PURE__ */ jsxs3(Fragment, { children: [
1388
- headerPlacement === "external" || headerPlacement === "panel" ? renderHeader(
1389
- headerPlacement === "panel" && isSidebarOpen ? null : toolActions
1390
- ) : /* @__PURE__ */ jsx4(
1402
+ header.owner === "host" ? renderedHeader : /* @__PURE__ */ jsx4(
1391
1403
  "div",
1392
1404
  {
1393
1405
  className: "workbench-window__header workbench-window__header--custom",
1394
1406
  style: {
1395
- "--agent-gui-tool-sidebar-layout-width": isSidebarOpen ? `${activePanelLayoutWidth}px` : `${toolActionsWidth}px`
1407
+ "--agent-gui-tool-sidebar-layout-width": `${headerLayout.layoutWidthPx}px`
1396
1408
  },
1397
- children: renderHeader(toolActions)
1409
+ children: renderedHeader
1398
1410
  }
1399
1411
  ),
1400
1412
  /* @__PURE__ */ jsx4(
@@ -1402,7 +1414,7 @@ var AgentToolSidebar = forwardRef(function AgentToolSidebar2({
1402
1414
  {
1403
1415
  className: cn2(
1404
1416
  "flex h-full min-h-0 min-w-0 flex-col overflow-hidden",
1405
- headerPlacement === "inline" && "workbench-window__body"
1417
+ header.owner === "window" && "workbench-window__body"
1406
1418
  ),
1407
1419
  ref: bindLifecycle,
1408
1420
  children: /* @__PURE__ */ jsxs3("div", { className: "flex min-h-0 min-w-0 flex-1 overflow-hidden", children: [
@@ -1417,7 +1429,7 @@ var AgentToolSidebar = forwardRef(function AgentToolSidebar2({
1417
1429
  isActivePanelExpanded && "border-l border-[var(--line-1)]",
1418
1430
  !isSidebarOpen && "pointer-events-none"
1419
1431
  ),
1420
- "data-standalone-agent-tool-sidebar": "true",
1432
+ "data-agent-tool-sidebar": "true",
1421
1433
  ref: bindLayoutWidthProjection,
1422
1434
  style: {
1423
1435
  width: isSidebarOpen ? `${activePanelLayoutWidth}px` : "0px",
@@ -1446,7 +1458,7 @@ var AgentToolSidebar = forwardRef(function AgentToolSidebar2({
1446
1458
  "aria-valuemin": activePanelMinWidth,
1447
1459
  "aria-valuenow": activePanelWidth,
1448
1460
  className: "absolute top-0 left-0 z-20 h-full w-2 cursor-col-resize touch-none outline-none before:absolute before:left-0 before:h-full before:w-px before:bg-transparent hover:before:bg-[var(--border-focus)] focus-visible:before:bg-[var(--border-focus)]",
1449
- "data-standalone-agent-tool-sidebar-resize-handle": "true",
1461
+ "data-agent-tool-sidebar-resize-handle": "true",
1450
1462
  role: "separator",
1451
1463
  tabIndex: 0,
1452
1464
  onKeyDown: handleResizeKeyDown,
@@ -1456,13 +1468,12 @@ var AgentToolSidebar = forwardRef(function AgentToolSidebar2({
1456
1468
  onPointerUp: stopResizing
1457
1469
  }
1458
1470
  ) : null,
1459
- isSidebarOpen && headerPlacement === "panel" ? toolActions : null,
1460
- isSidebarOpen && headerPlacement === "inline" ? /* @__PURE__ */ jsx4(
1471
+ isSidebarOpen && header.layout === "overlay" ? /* @__PURE__ */ jsx4(
1461
1472
  "div",
1462
1473
  {
1463
1474
  "aria-hidden": true,
1464
1475
  className: "shrink-0",
1465
- "data-standalone-agent-tool-sidebar-header-spacer": "true",
1476
+ "data-agent-tool-sidebar-header-spacer": "true",
1466
1477
  style: {
1467
1478
  height: "var(--agent-gui-workbench-header-height, 44px)"
1468
1479
  }
@@ -1527,7 +1538,7 @@ function ToolSidebarTabBar({
1527
1538
  {
1528
1539
  "aria-label": copy.tool,
1529
1540
  className: "flex h-[var(--agent-gui-workbench-header-height,44px)] min-w-0 flex-1 cursor-grab items-center gap-1 overflow-hidden px-2 active:cursor-grabbing",
1530
- "data-standalone-agent-tool-tab-list": "true",
1541
+ "data-agent-tool-tab-list": "true",
1531
1542
  role: "tablist",
1532
1543
  children: /* @__PURE__ */ jsx4("div", { className: "flex min-w-0 flex-1 items-center gap-1 overflow-x-auto", children: mountedTabs.map((tab) => {
1533
1544
  const defaultLabel = labelByPanel.get(tab.panel) ?? tab.panel;
@@ -1545,11 +1556,13 @@ function ToolSidebarTabBar({
1545
1556
  {
1546
1557
  "aria-selected": activeTabId === tab.id,
1547
1558
  className: "nodrag flex h-full min-w-0 flex-1 items-center gap-1.5 overflow-hidden px-2 text-left outline-none [-webkit-app-region:no-drag] focus-visible:ring-2 focus-visible:ring-[var(--border-focus)]",
1548
- "data-standalone-agent-tool-tab": tab.panel,
1549
- "data-standalone-agent-tool-tab-id": tab.id,
1559
+ "data-agent-tool-tab": tab.panel,
1560
+ "data-agent-tool-tab-id": tab.id,
1550
1561
  role: "tab",
1551
1562
  type: "button",
1552
1563
  onClick: () => onOpenPanel(tab),
1564
+ onDoubleClick: (event) => event.stopPropagation(),
1565
+ onPointerDown: (event) => event.stopPropagation(),
1553
1566
  children: [
1554
1567
  renderTabIcon?.(tab) ?? /* @__PURE__ */ jsx4(
1555
1568
  AgentToolPanelIcon,
@@ -1570,6 +1583,8 @@ function ToolSidebarTabBar({
1570
1583
  className: "nodrag mr-1 rounded p-0.5 opacity-100 hover:bg-[var(--transparency-block)] [-webkit-app-region:no-drag]",
1571
1584
  type: "button",
1572
1585
  onClick: () => onClosePanel(tab.id),
1586
+ onDoubleClick: (event) => event.stopPropagation(),
1587
+ onPointerDown: (event) => event.stopPropagation(),
1573
1588
  children: /* @__PURE__ */ jsx4(CloseIcon, { "aria-hidden": true, className: "size-3" })
1574
1589
  }
1575
1590
  )
@@ -1581,11 +1596,6 @@ function ToolSidebarTabBar({
1581
1596
  }
1582
1597
  );
1583
1598
  }
1584
- function isAgentToolSidebarHeaderControl(target) {
1585
- return target instanceof Element && target.closest(
1586
- '.nodrag, button, a, input, textarea, select, option, [role="button"], [role="menuitem"], [contenteditable="true"]'
1587
- ) !== null;
1588
- }
1589
1599
  export {
1590
1600
  AgentToolBrowserPanel,
1591
1601
  AgentToolPanelIcon,
@@ -1612,6 +1622,7 @@ export {
1612
1622
  resolveAgentToolPanelPreferredWidth,
1613
1623
  resolveAgentToolSidebarLayoutWidth,
1614
1624
  resolveAgentToolSidebarWidth,
1625
+ shouldAutoCollapseAgentToolSidebar,
1615
1626
  shouldResizeAgentToolContainer
1616
1627
  };
1617
1628
  //# sourceMappingURL=index.js.map