@tutti-os/agent-gui 0.0.141 → 0.0.143

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.
@@ -12,7 +12,7 @@ import {
12
12
  resolveAgentGuiSessionProviderFlatIconUrl,
13
13
  resolveNextAgentGUIConversationRailWidthPx,
14
14
  shouldAutoCollapseAgentGUIConversationRail
15
- } from "./chunk-LIQWMDME.js";
15
+ } from "./chunk-JME2T7T7.js";
16
16
  import {
17
17
  AGENT_PROVIDERS,
18
18
  AGENT_PROVIDER_LABEL,
@@ -88,8 +88,8 @@ import {
88
88
  } from "./chunk-TJW5NWWH.js";
89
89
  import {
90
90
  normalizeAgentGUIAgents,
91
- projectAgentGUIAgentsToInternalTargets
92
- } from "./chunk-C4ACYHOY.js";
91
+ projectAgentGUIAgentsToTargets
92
+ } from "./chunk-66JZ7BQM.js";
93
93
  import {
94
94
  AGENT_MENTION_FILTER_TAB_ORDER,
95
95
  AgentMentionSearchController,
@@ -9769,7 +9769,7 @@ function useAgentGUISubmitInteractionActions(input) {
9769
9769
  agentSessionId,
9770
9770
  normalizedContent,
9771
9771
  displayPromptText,
9772
- { sendNow: true }
9772
+ { sendNow: true, trackDraft: true }
9773
9773
  );
9774
9774
  },
9775
9775
  [
@@ -13319,7 +13319,7 @@ import {
13319
13319
  useEffect as useEffect38,
13320
13320
  useMemo as useMemo41,
13321
13321
  useRef as useRef49,
13322
- useState as useState40
13322
+ useState as useState41
13323
13323
  } from "react";
13324
13324
  import { TooltipProvider as TooltipProvider5 } from "@tutti-os/ui-system";
13325
13325
 
@@ -13435,7 +13435,9 @@ var styles = {
13435
13435
  conversationList: "agent-gui-node__conversation-list",
13436
13436
  conversationMeta: "agent-gui-node__conversation-meta",
13437
13437
  conversationMoreButton: "agent-gui-node__conversation-more-button",
13438
+ conversationProviderImage: "agent-gui-node__conversation-provider-image",
13438
13439
  conversationProviderIcon: "agent-gui-node__conversation-provider-icon",
13440
+ conversationProviderMaskIcon: "agent-gui-node__conversation-provider-mask-icon",
13439
13441
  conversationOpenWindowButton: "agent-gui-node__conversation-open-window-button",
13440
13442
  conversationPinButton: "agent-gui-node__conversation-pin-button",
13441
13443
  conversationSection: "agent-gui-node__conversation-section",
@@ -14251,7 +14253,7 @@ import {
14251
14253
  useCallback as useCallback44,
14252
14254
  useMemo as useMemo32,
14253
14255
  useRef as useRef36,
14254
- useState as useState26
14256
+ useState as useState27
14255
14257
  } from "react";
14256
14258
  import { Tooltip as Tooltip5, TooltipContent as TooltipContent5, TooltipTrigger as TooltipTrigger5 } from "@tutti-os/ui-system";
14257
14259
 
@@ -14476,10 +14478,10 @@ function changeAgentGUIProviderManagerVisibility(input) {
14476
14478
  // agent-gui/agentGuiNode/view/AgentGUIEmptyState.tsx
14477
14479
  import { memo as memo3, useMemo as useMemo31 } from "react";
14478
14480
  import {
14479
- Select as Select4,
14480
- SelectContent as SelectContent4,
14481
- SelectItem as SelectItem4,
14482
- SelectTrigger as SelectTrigger4,
14481
+ Select as Select5,
14482
+ SelectContent as SelectContent5,
14483
+ SelectItem as SelectItem5,
14484
+ SelectTrigger as SelectTrigger5,
14483
14485
  cn as cn6
14484
14486
  } from "@tutti-os/ui-system";
14485
14487
 
@@ -16180,7 +16182,7 @@ function AgentSessionChrome({
16180
16182
  }
16181
16183
 
16182
16184
  // agent-gui/agentGuiNode/AgentComposer.tsx
16183
- import { useEffect as useEffect28, useRef as useRef33, useState as useState22 } from "react";
16185
+ import { useEffect as useEffect28, useRef as useRef33, useState as useState23 } from "react";
16184
16186
  import { repairMentionPaletteHighlight } from "@tutti-os/ui-rich-text/at-panel";
16185
16187
 
16186
16188
  // agent-gui/agentGuiNode/AgentSlashStatusPanel.tsx
@@ -17838,6 +17840,7 @@ function AgentComposerHandoffAnimation() {
17838
17840
  "aria-hidden": "true",
17839
17841
  className: AgentGUINode_styles_default.composerHandoffAnimatedIcon,
17840
17842
  "data-active": isLoaded ? "true" : void 0,
17843
+ decoding: "async",
17841
17844
  draggable: false,
17842
17845
  src: handoff_clap_default,
17843
17846
  onLoad: () => {
@@ -23883,10 +23886,10 @@ function ComposerDraftAttachments({
23883
23886
  // agent-gui/agentGuiNode/composer/ComposerFooter.tsx
23884
23887
  import { ListChecks as ListChecks2, Target as Target2, X as X5 } from "lucide-react";
23885
23888
  import {
23886
- Select as Select2,
23887
- SelectContent as SelectContent2,
23888
- SelectItem as SelectItem2,
23889
- SelectTrigger as SelectTrigger2,
23889
+ Select as Select3,
23890
+ SelectContent as SelectContent3,
23891
+ SelectItem as SelectItem3,
23892
+ SelectTrigger as SelectTrigger3,
23890
23893
  Tooltip as Tooltip3,
23891
23894
  TooltipContent as TooltipContent3,
23892
23895
  TooltipProvider as TooltipProvider3,
@@ -23899,6 +23902,15 @@ var add_lined_default = "data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3
23899
23902
  // app/renderer/assets/icons/@-lined.svg
23900
23903
  var lined_default = "data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M7.33754%202.03697C9.58184%200.986806%2012.1154%200.724603%2014.527%201.29381C16.9386%201.8631%2019.0879%203.23075%2020.6257%205.17369C22.1632%207.11667%2022.9996%209.52209%2022.9997%2011.9999V12.9999C22.9997%2014.0607%2022.5779%2015.0778%2021.8278%2015.828C21.0777%2016.5781%2020.0605%2016.9999%2018.9997%2016.9999C17.9389%2016.9998%2016.9216%2016.578%2016.1715%2015.828C16.0122%2015.6687%2015.8687%2015.4966%2015.7399%2015.3153C14.8239%2016.3478%2013.4885%2016.9999%2011.9997%2016.9999C9.23839%2016.9997%206.99965%2014.7612%206.99965%2011.9999C6.99973%209.23862%209.23844%207.00005%2011.9997%206.99986C13.125%206.99986%2014.1641%207.37146%2014.9997%207.99888C15.0003%207.44723%2015.4479%207.00005%2015.9997%206.99986C16.5519%206.99986%2016.9996%207.44764%2016.9997%207.99986V12.9999C16.9997%2013.5302%2017.2107%2014.0389%2017.5856%2014.4139C17.9606%2014.7889%2018.4694%2014.9998%2018.9997%2014.9999C19.5301%2014.9999%2020.0387%2014.7889%2020.4137%2014.4139C20.7888%2014.0389%2020.9997%2013.5303%2020.9997%2012.9999V11.9999C20.9996%209.97263%2020.3153%208.00459%2019.0573%206.4149C17.7991%204.82524%2016.0401%203.70686%2014.067%203.24107C12.094%202.77546%2010.0213%202.98932%208.1852%203.84849C6.34918%204.70773%204.85649%206.1614%203.94984%207.97447C3.04319%209.78779%202.77575%2011.8551%203.19008%2013.8397C3.6045%2015.8241%204.67674%2017.6111%206.23305%2018.91C7.78948%2020.2089%209.73975%2020.9442%2011.7663%2020.9969C13.7928%2021.0495%2015.7783%2020.4163%2017.4001%2019.2001C17.8418%2018.8689%2018.4681%2018.9587%2018.7995%2019.4003C19.1307%2019.8421%2019.0411%2020.4683%2018.5993%2020.7997C16.617%2022.2863%2014.1905%2023.0603%2011.7135%2022.996C9.23674%2022.9314%206.85405%2022.0327%204.9518%2020.4452C3.04947%2018.8574%201.73851%2016.6735%201.23206%2014.2479C0.72574%2011.8225%201.05282%209.29706%202.16078%207.08092C3.26889%204.86469%205.09332%203.08721%207.33754%202.03697ZM11.9997%208.99986C10.343%209.00005%208.99973%2010.3432%208.99966%2011.9999C8.99966%2013.6566%2010.343%2014.9997%2011.9997%2014.9999C13.6565%2014.9999%2014.9997%2013.6567%2014.9997%2011.9999C14.9996%2010.3431%2013.6565%208.99986%2011.9997%208.99986Z%22%20fill%3D%22black%22%2F%3E%0A%3C%2Fsvg%3E%0A";
23901
23904
 
23905
+ // agent-gui/agentGuiNode/composer/AgentHandoffMenu.tsx
23906
+ import { useState as useState21 } from "react";
23907
+ import {
23908
+ Select as Select2,
23909
+ SelectContent as SelectContent2,
23910
+ SelectItem as SelectItem2,
23911
+ SelectTrigger as SelectTrigger2
23912
+ } from "@tutti-os/ui-system";
23913
+
23902
23914
  // agent-gui/agentGuiNode/composer/handoffTargetPresentation.ts
23903
23915
  function resolveHandoffTargetOwnershipLabel(target, labels) {
23904
23916
  const ownerLabel = target.ownerLabel?.trim() ?? "";
@@ -23911,8 +23923,161 @@ function resolveHandoffTargetOwnershipLabel(target, labels) {
23911
23923
  return null;
23912
23924
  }
23913
23925
 
23926
+ // agent-gui/agentGuiNode/composer/AgentHandoffMenu.tsx
23927
+ import { jsx as jsx36, jsxs as jsxs26 } from "react/jsx-runtime";
23928
+ function AgentHandoffMenu({
23929
+ align = "start",
23930
+ contentClassName,
23931
+ disabled = false,
23932
+ iconOnly = false,
23933
+ isolateTriggerEvents = false,
23934
+ labels,
23935
+ onSelect,
23936
+ targets,
23937
+ testId,
23938
+ triggerClassName,
23939
+ triggerLabel = labels.action
23940
+ }) {
23941
+ const [isIconPlaying, setIsIconPlaying] = useState21(false);
23942
+ const menuDisabled = disabled || targets.length === 0;
23943
+ return /* @__PURE__ */ jsx36(
23944
+ "span",
23945
+ {
23946
+ className: "contents",
23947
+ onClick: isolateTriggerEvents ? (event) => {
23948
+ event.stopPropagation();
23949
+ } : void 0,
23950
+ onKeyDown: isolateTriggerEvents ? (event) => {
23951
+ event.stopPropagation();
23952
+ } : void 0,
23953
+ onPointerDown: isolateTriggerEvents ? (event) => {
23954
+ event.stopPropagation();
23955
+ } : void 0,
23956
+ children: /* @__PURE__ */ jsxs26(
23957
+ Select2,
23958
+ {
23959
+ value: HANDOFF_SELECT_IDLE_VALUE,
23960
+ disabled: menuDisabled,
23961
+ onValueChange: (nextTargetId) => {
23962
+ const target = targets.find(
23963
+ (candidate) => candidate.targetId === nextTargetId
23964
+ );
23965
+ if (!target || target.disabled === true) {
23966
+ return;
23967
+ }
23968
+ onSelect(target);
23969
+ },
23970
+ children: [
23971
+ /* @__PURE__ */ jsx36(
23972
+ SelectTrigger2,
23973
+ {
23974
+ size: "sm",
23975
+ "aria-label": labels.action,
23976
+ title: labels.tooltip,
23977
+ "data-testid": testId,
23978
+ onClick: isolateTriggerEvents ? (event) => {
23979
+ event.stopPropagation();
23980
+ } : void 0,
23981
+ onKeyDown: isolateTriggerEvents ? (event) => {
23982
+ event.stopPropagation();
23983
+ } : void 0,
23984
+ onPointerDown: isolateTriggerEvents ? (event) => {
23985
+ event.stopPropagation();
23986
+ } : void 0,
23987
+ onBlur: () => {
23988
+ setIsIconPlaying(false);
23989
+ },
23990
+ onFocus: () => {
23991
+ setIsIconPlaying(true);
23992
+ },
23993
+ onMouseEnter: () => {
23994
+ setIsIconPlaying(true);
23995
+ },
23996
+ onMouseLeave: () => {
23997
+ setIsIconPlaying(false);
23998
+ },
23999
+ className: cn(
24000
+ AgentGUINode_styles_default.composerMenuTrigger,
24001
+ AgentGUINode_styles_default.composerProviderSelect,
24002
+ AgentGUINode_styles_default.composerHandoffTrigger,
24003
+ "w-auto max-w-[180px] [&>svg:last-child]:hidden",
24004
+ triggerClassName
24005
+ ),
24006
+ children: /* @__PURE__ */ jsxs26("span", { className: "flex min-w-0 items-center gap-1.5", children: [
24007
+ /* @__PURE__ */ jsx36(
24008
+ AgentComposerHandoffIcon,
24009
+ {
24010
+ disabled: menuDisabled,
24011
+ isPlaying: isIconPlaying
24012
+ }
24013
+ ),
24014
+ !iconOnly ? /* @__PURE__ */ jsx36("span", { className: "min-w-0 truncate", children: triggerLabel }) : null
24015
+ ] })
24016
+ }
24017
+ ),
24018
+ /* @__PURE__ */ jsx36(
24019
+ SelectContent2,
24020
+ {
24021
+ align,
24022
+ className: cn(
24023
+ AgentGUINode_styles_default.composerMenuContent,
24024
+ AgentGUINode_styles_default.composerHandoffMenuContent,
24025
+ "min-w-[190px]",
24026
+ contentClassName
24027
+ ),
24028
+ "aria-label": labels.menu,
24029
+ children: targets.map((target) => {
24030
+ const ownershipLabel = resolveHandoffTargetOwnershipLabel(target, {
24031
+ self: labels.self,
24032
+ shared: labels.shared
24033
+ });
24034
+ return /* @__PURE__ */ jsx36(
24035
+ SelectItem2,
24036
+ {
24037
+ value: target.targetId,
24038
+ className: cn(AgentGUINode_styles_default.composerMenuItem, "gap-2 py-1.5"),
24039
+ disabled: target.disabled === true,
24040
+ children: /* @__PURE__ */ jsxs26("span", { className: "flex min-w-0 items-center gap-2", children: [
24041
+ /* @__PURE__ */ jsxs26("span", { className: "relative size-5 shrink-0", children: [
24042
+ /* @__PURE__ */ jsx36(
24043
+ "img",
24044
+ {
24045
+ alt: "",
24046
+ "aria-hidden": "true",
24047
+ className: "size-5 rounded-[4px]",
24048
+ src: resolveComposerProviderTargetIconUrl(target)
24049
+ }
24050
+ ),
24051
+ target.badge?.iconUrl ? /* @__PURE__ */ jsx36(
24052
+ "img",
24053
+ {
24054
+ alt: "",
24055
+ "aria-hidden": "true",
24056
+ className: "absolute -bottom-0.5 -right-0.5 size-2.5 rounded-full border border-[var(--background-fronted)] bg-[var(--background-fronted)] object-cover",
24057
+ src: target.badge.iconUrl
24058
+ }
24059
+ ) : null
24060
+ ] }),
24061
+ /* @__PURE__ */ jsxs26("span", { className: "flex min-w-0 flex-col gap-0.5", children: [
24062
+ /* @__PURE__ */ jsx36("span", { className: "min-w-0 truncate", children: target.label }),
24063
+ ownershipLabel ? /* @__PURE__ */ jsx36("span", { className: "min-w-0 truncate text-[11px] leading-none text-[var(--agent-gui-text-secondary)]", children: ownershipLabel }) : null
24064
+ ] })
24065
+ ] })
24066
+ },
24067
+ `${target.provider}:${target.targetId}`
24068
+ );
24069
+ })
24070
+ }
24071
+ )
24072
+ ]
24073
+ }
24074
+ )
24075
+ }
24076
+ );
24077
+ }
24078
+
23914
24079
  // agent-gui/agentGuiNode/composer/ComposerFooter.tsx
23915
- import { Fragment as Fragment10, jsx as jsx36, jsxs as jsxs26 } from "react/jsx-runtime";
24080
+ import { Fragment as Fragment10, jsx as jsx37, jsxs as jsxs27 } from "react/jsx-runtime";
23916
24081
  function ComposerFooter({
23917
24082
  labels,
23918
24083
  provider,
@@ -23933,8 +24098,6 @@ function ComposerFooter({
23933
24098
  handoffDisabled,
23934
24099
  effectiveHandoffLabel,
23935
24100
  effectiveHandoffMenuLabel,
23936
- isHandoffIconPlaying,
23937
- setIsHandoffIconPlaying,
23938
24101
  handoffMenuTargets,
23939
24102
  onHandoffConversation,
23940
24103
  showProviderSelect,
@@ -23953,11 +24116,11 @@ function ComposerFooter({
23953
24116
  onClearGoalMode: clearGoalModeBadge
23954
24117
  }) {
23955
24118
  const showSettingsLoadingPlaceholders = composerSettings.isSettingsLoading;
23956
- return /* @__PURE__ */ jsx36(Fragment10, { children: /* @__PURE__ */ jsxs26("div", { className: AgentGUINode_styles_default.composerFooter, children: [
23957
- /* @__PURE__ */ jsxs26("div", { className: composerStyles.footerGroup, children: [
23958
- /* @__PURE__ */ jsxs26("div", { className: "inline-flex shrink-0 items-center gap-1", children: [
23959
- previewMode ? /* @__PURE__ */ jsx36(TooltipProvider3, { delayDuration: 120, children: /* @__PURE__ */ jsxs26(Tooltip3, { children: [
23960
- /* @__PURE__ */ jsx36(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx36(
24119
+ return /* @__PURE__ */ jsx37(Fragment10, { children: /* @__PURE__ */ jsxs27("div", { className: AgentGUINode_styles_default.composerFooter, children: [
24120
+ /* @__PURE__ */ jsxs27("div", { className: composerStyles.footerGroup, children: [
24121
+ /* @__PURE__ */ jsxs27("div", { className: "inline-flex shrink-0 items-center gap-1", children: [
24122
+ previewMode ? /* @__PURE__ */ jsx37(TooltipProvider3, { delayDuration: 120, children: /* @__PURE__ */ jsxs27(Tooltip3, { children: [
24123
+ /* @__PURE__ */ jsx37(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx37(
23961
24124
  "button",
23962
24125
  {
23963
24126
  type: "button",
@@ -23967,7 +24130,7 @@ function ComposerFooter({
23967
24130
  AgentGUINode_styles_default.composerReferenceTrigger,
23968
24131
  "group w-auto justify-center text-[var(--agent-gui-text-secondary)]"
23969
24132
  ),
23970
- children: /* @__PURE__ */ jsx36(
24133
+ children: /* @__PURE__ */ jsx37(
23971
24134
  AgentComposerMaskIcon,
23972
24135
  {
23973
24136
  iconUrl: add_lined_default,
@@ -23976,9 +24139,9 @@ function ComposerFooter({
23976
24139
  )
23977
24140
  }
23978
24141
  ) }),
23979
- /* @__PURE__ */ jsx36(TooltipContent3, { side: "top", children: labels.addContent })
23980
- ] }) }) : /* @__PURE__ */ jsx36(
23981
- Select2,
24142
+ /* @__PURE__ */ jsx37(TooltipContent3, { side: "top", children: labels.addContent })
24143
+ ] }) }) : /* @__PURE__ */ jsx37(
24144
+ Select3,
23982
24145
  {
23983
24146
  open: false,
23984
24147
  value: workspaceReferenceSelectValue,
@@ -23993,8 +24156,8 @@ function ComposerFooter({
23993
24156
  void handleWorkspaceReferencePicker();
23994
24157
  }
23995
24158
  },
23996
- children: /* @__PURE__ */ jsx36(
23997
- SelectTrigger2,
24159
+ children: /* @__PURE__ */ jsx37(
24160
+ SelectTrigger3,
23998
24161
  {
23999
24162
  size: "sm",
24000
24163
  "aria-label": labels.referenceWorkspaceFiles,
@@ -24004,7 +24167,7 @@ function ComposerFooter({
24004
24167
  AgentGUINode_styles_default.composerReferenceTrigger,
24005
24168
  "group w-auto justify-center text-[var(--agent-gui-text-secondary)] [&>svg:last-child]:hidden"
24006
24169
  ),
24007
- children: /* @__PURE__ */ jsx36(
24170
+ children: /* @__PURE__ */ jsx37(
24008
24171
  AgentComposerMaskIcon,
24009
24172
  {
24010
24173
  iconUrl: add_lined_default,
@@ -24015,8 +24178,8 @@ function ComposerFooter({
24015
24178
  )
24016
24179
  }
24017
24180
  ),
24018
- /* @__PURE__ */ jsx36(TooltipProvider3, { delayDuration: 120, children: /* @__PURE__ */ jsxs26(Tooltip3, { children: [
24019
- /* @__PURE__ */ jsx36(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx36(
24181
+ /* @__PURE__ */ jsx37(TooltipProvider3, { delayDuration: 120, children: /* @__PURE__ */ jsxs27(Tooltip3, { children: [
24182
+ /* @__PURE__ */ jsx37(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx37(
24020
24183
  "button",
24021
24184
  {
24022
24185
  type: "button",
@@ -24029,7 +24192,7 @@ function ComposerFooter({
24029
24192
  ),
24030
24193
  onMouseDown: (event) => event.preventDefault(),
24031
24194
  onClick: handleMentionPaletteButton,
24032
- children: /* @__PURE__ */ jsx36(
24195
+ children: /* @__PURE__ */ jsx37(
24033
24196
  "span",
24034
24197
  {
24035
24198
  "aria-hidden": true,
@@ -24048,120 +24211,28 @@ function ComposerFooter({
24048
24211
  )
24049
24212
  }
24050
24213
  ) }),
24051
- /* @__PURE__ */ jsx36(TooltipContent3, { side: "top", children: labels.mentionPalette })
24214
+ /* @__PURE__ */ jsx37(TooltipContent3, { side: "top", children: labels.mentionPalette })
24052
24215
  ] }) })
24053
24216
  ] }),
24054
- showHandoffSelect ? /* @__PURE__ */ jsxs26(
24055
- Select2,
24217
+ showHandoffSelect ? /* @__PURE__ */ jsx37(
24218
+ AgentHandoffMenu,
24056
24219
  {
24057
- value: HANDOFF_SELECT_IDLE_VALUE,
24058
24220
  disabled: handoffDisabled,
24059
- onValueChange: (nextTargetId) => {
24060
- const target = handoffMenuTargets.find(
24061
- (candidate) => candidate.targetId === nextTargetId
24062
- );
24063
- if (!target || target.disabled === true) {
24064
- return;
24065
- }
24066
- onHandoffConversation?.(target);
24221
+ labels: {
24222
+ action: effectiveHandoffLabel,
24223
+ menu: effectiveHandoffMenuLabel,
24224
+ self: labels.handoffTargetSelf,
24225
+ shared: labels.handoffTargetShared,
24226
+ tooltip: labels.handoffConversationTooltip
24067
24227
  },
24068
- children: [
24069
- /* @__PURE__ */ jsx36(
24070
- SelectTrigger2,
24071
- {
24072
- size: "sm",
24073
- "aria-label": effectiveHandoffLabel,
24074
- title: labels.handoffConversationTooltip,
24075
- onBlur: () => {
24076
- setIsHandoffIconPlaying(false);
24077
- },
24078
- onFocus: () => {
24079
- setIsHandoffIconPlaying(true);
24080
- },
24081
- onMouseEnter: () => {
24082
- setIsHandoffIconPlaying(true);
24083
- },
24084
- onMouseLeave: () => {
24085
- setIsHandoffIconPlaying(false);
24086
- },
24087
- className: cn(
24088
- AgentGUINode_styles_default.composerMenuTrigger,
24089
- AgentGUINode_styles_default.composerProviderSelect,
24090
- AgentGUINode_styles_default.composerHandoffTrigger,
24091
- "w-auto max-w-[180px] [&>svg:last-child]:hidden"
24092
- ),
24093
- children: /* @__PURE__ */ jsxs26("span", { className: "flex min-w-0 items-center gap-1.5", children: [
24094
- /* @__PURE__ */ jsx36(
24095
- AgentComposerHandoffIcon,
24096
- {
24097
- disabled: handoffDisabled,
24098
- isPlaying: isHandoffIconPlaying
24099
- }
24100
- ),
24101
- /* @__PURE__ */ jsx36("span", { className: "min-w-0 truncate", children: effectiveHandoffLabel })
24102
- ] })
24103
- }
24104
- ),
24105
- /* @__PURE__ */ jsx36(
24106
- SelectContent2,
24107
- {
24108
- align: "start",
24109
- className: cn(
24110
- AgentGUINode_styles_default.composerMenuContent,
24111
- AgentGUINode_styles_default.composerHandoffMenuContent,
24112
- "min-w-[190px]"
24113
- ),
24114
- "aria-label": effectiveHandoffMenuLabel,
24115
- children: handoffMenuTargets.map((target) => {
24116
- const ownershipLabel = resolveHandoffTargetOwnershipLabel(
24117
- target,
24118
- {
24119
- self: labels.handoffTargetSelf,
24120
- shared: labels.handoffTargetShared
24121
- }
24122
- );
24123
- return /* @__PURE__ */ jsx36(
24124
- SelectItem2,
24125
- {
24126
- value: target.targetId,
24127
- className: cn(AgentGUINode_styles_default.composerMenuItem, "gap-2 py-1.5"),
24128
- disabled: target.disabled === true,
24129
- children: /* @__PURE__ */ jsxs26("span", { className: "flex min-w-0 items-center gap-2", children: [
24130
- /* @__PURE__ */ jsxs26("span", { className: "relative size-5 shrink-0", children: [
24131
- /* @__PURE__ */ jsx36(
24132
- "img",
24133
- {
24134
- alt: "",
24135
- "aria-hidden": "true",
24136
- className: "size-5 rounded-[4px]",
24137
- src: resolveComposerProviderTargetIconUrl(target)
24138
- }
24139
- ),
24140
- target.badge?.iconUrl ? /* @__PURE__ */ jsx36(
24141
- "img",
24142
- {
24143
- alt: "",
24144
- "aria-hidden": "true",
24145
- className: "absolute -bottom-0.5 -right-0.5 size-2.5 rounded-full border border-[var(--background-fronted)] bg-[var(--background-fronted)] object-cover",
24146
- src: target.badge.iconUrl
24147
- }
24148
- ) : null
24149
- ] }),
24150
- /* @__PURE__ */ jsxs26("span", { className: "flex min-w-0 flex-col gap-0.5", children: [
24151
- /* @__PURE__ */ jsx36("span", { className: "min-w-0 truncate", children: target.label }),
24152
- ownershipLabel ? /* @__PURE__ */ jsx36("span", { className: "min-w-0 truncate text-[11px] leading-none text-[var(--agent-gui-text-secondary)]", children: ownershipLabel }) : null
24153
- ] })
24154
- ] })
24155
- },
24156
- `${target.provider}:${target.targetId}`
24157
- );
24158
- })
24159
- }
24160
- )
24161
- ]
24228
+ targets: handoffMenuTargets,
24229
+ triggerLabel: effectiveHandoffLabel,
24230
+ onSelect: (target) => {
24231
+ onHandoffConversation?.(target);
24232
+ }
24162
24233
  }
24163
- ) : showProviderSelect && selectedProviderSwitchTarget ? /* @__PURE__ */ jsxs26(
24164
- Select2,
24234
+ ) : showProviderSelect && selectedProviderSwitchTarget ? /* @__PURE__ */ jsxs27(
24235
+ Select3,
24165
24236
  {
24166
24237
  value: selectedProviderSwitchTarget.targetId,
24167
24238
  disabled: providerSelectDisabled,
@@ -24178,8 +24249,8 @@ function ComposerFooter({
24178
24249
  });
24179
24250
  },
24180
24251
  children: [
24181
- /* @__PURE__ */ jsx36(
24182
- SelectTrigger2,
24252
+ /* @__PURE__ */ jsx37(
24253
+ SelectTrigger3,
24183
24254
  {
24184
24255
  size: "sm",
24185
24256
  "aria-label": providerSelectLabel,
@@ -24189,8 +24260,8 @@ function ComposerFooter({
24189
24260
  AgentGUINode_styles_default.composerProviderSelect,
24190
24261
  "w-auto max-w-[180px]"
24191
24262
  ),
24192
- children: /* @__PURE__ */ jsxs26("span", { className: "flex min-w-0 items-center gap-1.5", children: [
24193
- /* @__PURE__ */ jsx36(
24263
+ children: /* @__PURE__ */ jsxs27("span", { className: "flex min-w-0 items-center gap-1.5", children: [
24264
+ /* @__PURE__ */ jsx37(
24194
24265
  "img",
24195
24266
  {
24196
24267
  alt: "",
@@ -24201,22 +24272,22 @@ function ComposerFooter({
24201
24272
  )
24202
24273
  }
24203
24274
  ),
24204
- /* @__PURE__ */ jsx36("span", { className: "min-w-0 truncate", children: selectedProviderLabel })
24275
+ /* @__PURE__ */ jsx37("span", { className: "min-w-0 truncate", children: selectedProviderLabel })
24205
24276
  ] })
24206
24277
  }
24207
24278
  ),
24208
- /* @__PURE__ */ jsx36(
24209
- SelectContent2,
24279
+ /* @__PURE__ */ jsx37(
24280
+ SelectContent3,
24210
24281
  {
24211
24282
  align: "start",
24212
24283
  className: cn(AgentGUINode_styles_default.composerMenuContent, "min-w-[190px]"),
24213
- children: providerMenuTargets.map((target) => /* @__PURE__ */ jsx36(
24214
- SelectItem2,
24284
+ children: providerMenuTargets.map((target) => /* @__PURE__ */ jsx37(
24285
+ SelectItem3,
24215
24286
  {
24216
24287
  value: target.targetId,
24217
24288
  className: cn(AgentGUINode_styles_default.composerMenuItem, "gap-2"),
24218
- children: /* @__PURE__ */ jsxs26("span", { className: "flex min-w-0 items-center gap-1.5", children: [
24219
- /* @__PURE__ */ jsx36(
24289
+ children: /* @__PURE__ */ jsxs27("span", { className: "flex min-w-0 items-center gap-1.5", children: [
24290
+ /* @__PURE__ */ jsx37(
24220
24291
  "img",
24221
24292
  {
24222
24293
  alt: "",
@@ -24225,7 +24296,7 @@ function ComposerFooter({
24225
24296
  src: resolveComposerProviderTargetIconUrl(target)
24226
24297
  }
24227
24298
  ),
24228
- /* @__PURE__ */ jsx36("span", { className: "min-w-0 truncate", children: target.label })
24299
+ /* @__PURE__ */ jsx37("span", { className: "min-w-0 truncate", children: target.label })
24229
24300
  ] })
24230
24301
  },
24231
24302
  `${target.provider}:${target.targetId}`
@@ -24235,7 +24306,7 @@ function ComposerFooter({
24235
24306
  ]
24236
24307
  }
24237
24308
  ) : null,
24238
- composerSettings.supportsPlanMode && composerSettings.draftSettings.planMode ? /* @__PURE__ */ jsx36(
24309
+ composerSettings.supportsPlanMode && composerSettings.draftSettings.planMode ? /* @__PURE__ */ jsx37(
24239
24310
  "button",
24240
24311
  {
24241
24312
  type: "button",
@@ -24249,21 +24320,21 @@ function ComposerFooter({
24249
24320
  "disabled:cursor-not-allowed disabled:opacity-60"
24250
24321
  ),
24251
24322
  onClick: () => onSettingsChange({ planMode: false }),
24252
- children: /* @__PURE__ */ jsxs26("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
24253
- /* @__PURE__ */ jsxs26("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
24254
- /* @__PURE__ */ jsx36(
24323
+ children: /* @__PURE__ */ jsxs27("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
24324
+ /* @__PURE__ */ jsxs27("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
24325
+ /* @__PURE__ */ jsx37(
24255
24326
  ListChecks2,
24256
24327
  {
24257
24328
  "aria-hidden": true,
24258
24329
  className: "size-3.5 transition-opacity duration-150 group-hover:opacity-0 group-focus-visible:opacity-0"
24259
24330
  }
24260
24331
  ),
24261
- /* @__PURE__ */ jsx36(
24332
+ /* @__PURE__ */ jsx37(
24262
24333
  "span",
24263
24334
  {
24264
24335
  "aria-hidden": true,
24265
24336
  className: "absolute inset-0 flex items-center justify-center rounded-full bg-[var(--text-secondary)] opacity-0 transition-opacity duration-150 group-hover:opacity-100 group-focus-visible:opacity-100 group-disabled:opacity-0",
24266
- children: /* @__PURE__ */ jsx36(
24337
+ children: /* @__PURE__ */ jsx37(
24267
24338
  X5,
24268
24339
  {
24269
24340
  className: "size-2.5 text-[var(--background-fronted)]",
@@ -24273,11 +24344,11 @@ function ComposerFooter({
24273
24344
  }
24274
24345
  )
24275
24346
  ] }),
24276
- /* @__PURE__ */ jsx36("span", { className: "min-w-0 truncate", children: labels.planModeLabel })
24347
+ /* @__PURE__ */ jsx37("span", { className: "min-w-0 truncate", children: labels.planModeLabel })
24277
24348
  ] })
24278
24349
  }
24279
24350
  ) : null,
24280
- isGoalModeActive ? /* @__PURE__ */ jsx36(
24351
+ isGoalModeActive ? /* @__PURE__ */ jsx37(
24281
24352
  "button",
24282
24353
  {
24283
24354
  type: "button",
@@ -24291,21 +24362,21 @@ function ComposerFooter({
24291
24362
  "disabled:cursor-not-allowed disabled:opacity-60"
24292
24363
  ),
24293
24364
  onClick: clearGoalModeBadge,
24294
- children: /* @__PURE__ */ jsxs26("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
24295
- /* @__PURE__ */ jsxs26("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
24296
- /* @__PURE__ */ jsx36(
24365
+ children: /* @__PURE__ */ jsxs27("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
24366
+ /* @__PURE__ */ jsxs27("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
24367
+ /* @__PURE__ */ jsx37(
24297
24368
  Target2,
24298
24369
  {
24299
24370
  "aria-hidden": true,
24300
24371
  className: "size-3.5 transition-opacity duration-150 group-hover:opacity-0 group-focus-visible:opacity-0"
24301
24372
  }
24302
24373
  ),
24303
- /* @__PURE__ */ jsx36(
24374
+ /* @__PURE__ */ jsx37(
24304
24375
  "span",
24305
24376
  {
24306
24377
  "aria-hidden": true,
24307
24378
  className: "absolute inset-0 flex items-center justify-center rounded-full bg-[var(--text-secondary)] opacity-0 transition-opacity duration-150 group-hover:opacity-100 group-focus-visible:opacity-100 group-disabled:opacity-0",
24308
- children: /* @__PURE__ */ jsx36(
24379
+ children: /* @__PURE__ */ jsx37(
24309
24380
  X5,
24310
24381
  {
24311
24382
  className: "size-2.5 text-[var(--background-fronted)]",
@@ -24315,13 +24386,13 @@ function ComposerFooter({
24315
24386
  }
24316
24387
  )
24317
24388
  ] }),
24318
- /* @__PURE__ */ jsx36("span", { className: "min-w-0 truncate", children: labels.goalLabel })
24389
+ /* @__PURE__ */ jsx37("span", { className: "min-w-0 truncate", children: labels.goalLabel })
24319
24390
  ] })
24320
24391
  }
24321
24392
  ) : null
24322
24393
  ] }),
24323
- /* @__PURE__ */ jsxs26("div", { className: composerStyles.footerGroupRight, children: [
24324
- usage && usage.percentUsed !== null ? /* @__PURE__ */ jsx36(
24394
+ /* @__PURE__ */ jsxs27("div", { className: composerStyles.footerGroupRight, children: [
24395
+ usage && usage.percentUsed !== null ? /* @__PURE__ */ jsx37(
24325
24396
  AgentUsageChip,
24326
24397
  {
24327
24398
  percentUsed: usage.percentUsed,
@@ -24340,7 +24411,7 @@ function ComposerFooter({
24340
24411
  }
24341
24412
  }
24342
24413
  ) : null,
24343
- showSettingsLoadingPlaceholders || composerSettings.supportsPermissionMode ? /* @__PURE__ */ jsx36(
24414
+ showSettingsLoadingPlaceholders || composerSettings.supportsPermissionMode ? /* @__PURE__ */ jsx37(
24344
24415
  AgentPermissionModeDropdown,
24345
24416
  {
24346
24417
  composerSettings,
@@ -24356,7 +24427,7 @@ function ComposerFooter({
24356
24427
  onSettingsChange: (patch) => onSettingsChange(patch)
24357
24428
  }
24358
24429
  ) : null,
24359
- showSettingsLoadingPlaceholders || composerSettings.supportsModel || composerSettings.supportsReasoningEffort ? /* @__PURE__ */ jsx36(
24430
+ showSettingsLoadingPlaceholders || composerSettings.supportsModel || composerSettings.supportsReasoningEffort ? /* @__PURE__ */ jsx37(
24360
24431
  AgentModelReasoningDropdown,
24361
24432
  {
24362
24433
  composerSettings,
@@ -24399,7 +24470,7 @@ function ComposerFooter({
24399
24470
  }
24400
24471
 
24401
24472
  // agent-gui/agentGuiNode/composer/AgentComposerView.tsx
24402
- import { jsx as jsx37, jsxs as jsxs27 } from "react/jsx-runtime";
24473
+ import { jsx as jsx38, jsxs as jsxs28 } from "react/jsx-runtime";
24403
24474
  function AgentComposerView(input) {
24404
24475
  const {
24405
24476
  provider,
@@ -24518,7 +24589,7 @@ function AgentComposerView(input) {
24518
24589
  visibleActivePrompt,
24519
24590
  visibleDraftLargeTexts
24520
24591
  } = input.presentation;
24521
- return /* @__PURE__ */ jsxs27(
24592
+ return /* @__PURE__ */ jsxs28(
24522
24593
  "form",
24523
24594
  {
24524
24595
  ref: input.composerRef,
@@ -24528,12 +24599,12 @@ function AgentComposerView(input) {
24528
24599
  onSubmit: submit,
24529
24600
  children: [
24530
24601
  fileDropOverlay,
24531
- visibleActivePrompt ? /* @__PURE__ */ jsx37(
24602
+ visibleActivePrompt ? /* @__PURE__ */ jsx38(
24532
24603
  "div",
24533
24604
  {
24534
24605
  className: AgentGUINode_styles_default.composerFloatingPrompt,
24535
24606
  "data-testid": "agent-gui-composer-floating-prompt",
24536
- children: /* @__PURE__ */ jsx37(
24607
+ children: /* @__PURE__ */ jsx38(
24537
24608
  AgentInteractivePromptSurface,
24538
24609
  {
24539
24610
  prompt: visibleActivePrompt,
@@ -24566,7 +24637,7 @@ function AgentComposerView(input) {
24566
24637
  )
24567
24638
  }
24568
24639
  ) : null,
24569
- queuedPrompts.length > 0 ? /* @__PURE__ */ jsx37(
24640
+ queuedPrompts.length > 0 ? /* @__PURE__ */ jsx38(
24570
24641
  "div",
24571
24642
  {
24572
24643
  className: cn(
@@ -24574,7 +24645,7 @@ function AgentComposerView(input) {
24574
24645
  AgentGUINode_styles_default.composerQueuedPromptFloating
24575
24646
  ),
24576
24647
  "data-testid": "agent-gui-composer-queued-prompts",
24577
- children: /* @__PURE__ */ jsx37(
24648
+ children: /* @__PURE__ */ jsx38(
24578
24649
  AgentQueuedPromptPanel,
24579
24650
  {
24580
24651
  queueStatus,
@@ -24599,14 +24670,14 @@ function AgentComposerView(input) {
24599
24670
  )
24600
24671
  }
24601
24672
  ) : null,
24602
- showProjectMissingProbe ? /* @__PURE__ */ jsx37(
24673
+ showProjectMissingProbe ? /* @__PURE__ */ jsx38(
24603
24674
  AgentProjectMissingStatusProbe,
24604
24675
  {
24605
24676
  composerSettings,
24606
24677
  onProjectMissingChange: input.setIsSelectedProjectMissing
24607
24678
  }
24608
24679
  ) : null,
24609
- /* @__PURE__ */ jsx37(
24680
+ /* @__PURE__ */ jsx38(
24610
24681
  AgentFullAccessRestoredWarning,
24611
24682
  {
24612
24683
  isSettingsLoading: composerSettings.isSettingsLoading,
@@ -24616,7 +24687,7 @@ function AgentComposerView(input) {
24616
24687
  visibleOnHome: isHeroLayout
24617
24688
  }
24618
24689
  ),
24619
- /* @__PURE__ */ jsxs27(
24690
+ /* @__PURE__ */ jsxs28(
24620
24691
  "div",
24621
24692
  {
24622
24693
  className: cn(
@@ -24625,7 +24696,7 @@ function AgentComposerView(input) {
24625
24696
  ),
24626
24697
  "data-edge-glow": showEdgeGlow ? "true" : void 0,
24627
24698
  children: [
24628
- input.isSelectedProjectMissing ? /* @__PURE__ */ jsx37(
24699
+ input.isSelectedProjectMissing ? /* @__PURE__ */ jsx38(
24629
24700
  AgentChromeNotice,
24630
24701
  {
24631
24702
  tone: "danger",
@@ -24637,7 +24708,7 @@ function AgentComposerView(input) {
24637
24708
  description: labels.projectMissingDescription
24638
24709
  }
24639
24710
  ) : null,
24640
- /* @__PURE__ */ jsxs27(
24711
+ /* @__PURE__ */ jsxs28(
24641
24712
  "div",
24642
24713
  {
24643
24714
  ref: input.inputShellRef,
@@ -24647,14 +24718,14 @@ function AgentComposerView(input) {
24647
24718
  title: inputDisabled && disabledReasonText ? disabledReasonText : void 0,
24648
24719
  style: inputShellStyle,
24649
24720
  children: [
24650
- /* @__PURE__ */ jsxs27(
24721
+ /* @__PURE__ */ jsxs28(
24651
24722
  Popover3,
24652
24723
  {
24653
24724
  open: input.showFileMentionPalette,
24654
24725
  onOpenChange: input.setIsPaletteOpen,
24655
24726
  modal: false,
24656
24727
  children: [
24657
- /* @__PURE__ */ jsx37(PopoverAnchor2, { asChild: true, children: /* @__PURE__ */ jsxs27(
24728
+ /* @__PURE__ */ jsx38(PopoverAnchor2, { asChild: true, children: /* @__PURE__ */ jsxs28(
24658
24729
  "div",
24659
24730
  {
24660
24731
  ref: input.promptInputAreaRef,
@@ -24666,7 +24737,7 @@ function AgentComposerView(input) {
24666
24737
  "data-has-draft-images": draftImages.length > 0 ? "true" : void 0,
24667
24738
  style: promptInputAreaStyle,
24668
24739
  children: [
24669
- /* @__PURE__ */ jsx37(
24740
+ /* @__PURE__ */ jsx38(
24670
24741
  ComposerDraftAttachments,
24671
24742
  {
24672
24743
  draftImages,
@@ -24677,7 +24748,7 @@ function AgentComposerView(input) {
24677
24748
  onExpandLargeText: expandDraftLargeTextToPrompt
24678
24749
  }
24679
24750
  ),
24680
- /* @__PURE__ */ jsxs27(
24751
+ /* @__PURE__ */ jsxs28(
24681
24752
  "div",
24682
24753
  {
24683
24754
  className: cn(
@@ -24685,7 +24756,7 @@ function AgentComposerView(input) {
24685
24756
  !isHeroLayout && "agent-gui-node__composer-prompt-input-line"
24686
24757
  ),
24687
24758
  children: [
24688
- /* @__PURE__ */ jsx37(
24759
+ /* @__PURE__ */ jsx38(
24689
24760
  AgentRichTextEditor,
24690
24761
  {
24691
24762
  ref: input.editorHandleRef,
@@ -24732,7 +24803,7 @@ function AgentComposerView(input) {
24732
24803
  }
24733
24804
  ) }),
24734
24805
  input.showFileMentionPalette && mentionPaletteFrame ? createPortal4(
24735
- /* @__PURE__ */ jsx37(
24806
+ /* @__PURE__ */ jsx38(
24736
24807
  "div",
24737
24808
  {
24738
24809
  "data-testid": "agent-gui-mention-palette-surface",
@@ -24742,7 +24813,7 @@ function AgentComposerView(input) {
24742
24813
  "max-h-[320px] overflow-hidden border-[var(--line-1)] p-0"
24743
24814
  ),
24744
24815
  style: mentionPaletteStyle,
24745
- children: /* @__PURE__ */ jsx37(
24816
+ children: /* @__PURE__ */ jsx38(
24746
24817
  AgentFileMentionPalette,
24747
24818
  {
24748
24819
  state: input.mentionSearchState,
@@ -24762,7 +24833,7 @@ function AgentComposerView(input) {
24762
24833
  onNavigateHierarchy: navigateFileMentionHierarchy,
24763
24834
  onNavigateIntoItem: navigateIntoFileMentionItem,
24764
24835
  onOpenReferences: onRequestWorkspaceReferences ? handleOpenReferencesForEntity : void 0,
24765
- provenanceFilterControl: referenceProvenanceFilter ? /* @__PURE__ */ jsx37(
24836
+ provenanceFilterControl: referenceProvenanceFilter ? /* @__PURE__ */ jsx38(
24766
24837
  AgentReferenceProvenanceFilterControl,
24767
24838
  {
24768
24839
  filter: referenceProvenanceFilter
@@ -24774,7 +24845,7 @@ function AgentComposerView(input) {
24774
24845
  ),
24775
24846
  mentionPaletteFrame.portalTarget
24776
24847
  ) : null,
24777
- /* @__PURE__ */ jsx37(
24848
+ /* @__PURE__ */ jsx38(
24778
24849
  ComposerFloatingMenuSurface,
24779
24850
  {
24780
24851
  anchorRef: input.inputShellRef,
@@ -24790,7 +24861,7 @@ function AgentComposerView(input) {
24790
24861
  placement: "fixed-height",
24791
24862
  surfaceRef: input.paletteContentRef,
24792
24863
  testId: "agent-gui-slash-palette-surface",
24793
- children: /* @__PURE__ */ jsx37(
24864
+ children: /* @__PURE__ */ jsx38(
24794
24865
  AgentSlashCommandPalette,
24795
24866
  {
24796
24867
  entries: slashPaletteEntries,
@@ -24813,7 +24884,7 @@ function AgentComposerView(input) {
24813
24884
  )
24814
24885
  }
24815
24886
  ),
24816
- /* @__PURE__ */ jsx37(
24887
+ /* @__PURE__ */ jsx38(
24817
24888
  ComposerFloatingMenuSurface,
24818
24889
  {
24819
24890
  anchorRef: input.inputShellRef,
@@ -24825,7 +24896,7 @@ function AgentComposerView(input) {
24825
24896
  placement: "dynamic-above",
24826
24897
  surfaceRef: input.paletteContentRef,
24827
24898
  testId: "agent-gui-command-menu-surface",
24828
- children: /* @__PURE__ */ jsx37(
24899
+ children: /* @__PURE__ */ jsx38(
24829
24900
  AgentSlashStatusPanel,
24830
24901
  {
24831
24902
  status: slashStatus,
@@ -24845,7 +24916,7 @@ function AgentComposerView(input) {
24845
24916
  )
24846
24917
  }
24847
24918
  ),
24848
- /* @__PURE__ */ jsx37(
24919
+ /* @__PURE__ */ jsx38(
24849
24920
  ComposerFloatingMenuSurface,
24850
24921
  {
24851
24922
  anchorRef: input.inputShellRef,
@@ -24857,7 +24928,7 @@ function AgentComposerView(input) {
24857
24928
  placement: "dynamic-above",
24858
24929
  surfaceRef: input.paletteContentRef,
24859
24930
  testId: "agent-gui-command-menu-surface",
24860
- children: /* @__PURE__ */ jsx37(
24931
+ children: /* @__PURE__ */ jsx38(
24861
24932
  AgentReviewPickerPanel,
24862
24933
  {
24863
24934
  labels: labels.reviewPicker,
@@ -24871,7 +24942,7 @@ function AgentComposerView(input) {
24871
24942
  ]
24872
24943
  }
24873
24944
  ),
24874
- /* @__PURE__ */ jsx37(
24945
+ /* @__PURE__ */ jsx38(
24875
24946
  ComposerFooter,
24876
24947
  {
24877
24948
  labels,
@@ -24893,8 +24964,6 @@ function AgentComposerView(input) {
24893
24964
  handoffDisabled,
24894
24965
  effectiveHandoffLabel,
24895
24966
  effectiveHandoffMenuLabel,
24896
- isHandoffIconPlaying: input.isHandoffIconPlaying,
24897
- setIsHandoffIconPlaying: input.setIsHandoffIconPlaying,
24898
24967
  handoffMenuTargets,
24899
24968
  onHandoffConversation,
24900
24969
  showProviderSelect,
@@ -24916,13 +24985,13 @@ function AgentComposerView(input) {
24916
24985
  ]
24917
24986
  }
24918
24987
  ),
24919
- showProjectRow ? /* @__PURE__ */ jsxs27(
24988
+ showProjectRow ? /* @__PURE__ */ jsxs28(
24920
24989
  "div",
24921
24990
  {
24922
24991
  className: AgentGUINode_styles_default.composerProjectRow,
24923
24992
  "data-project-missing": input.isSelectedProjectMissing ? "true" : void 0,
24924
24993
  children: [
24925
- showHeroProjectSelector ? /* @__PURE__ */ jsx37(
24994
+ showHeroProjectSelector ? /* @__PURE__ */ jsx38(
24926
24995
  AgentProjectDropdown,
24927
24996
  {
24928
24997
  composerSettings,
@@ -24938,14 +25007,14 @@ function AgentComposerView(input) {
24938
25007
  onProjectPathChange
24939
25008
  }
24940
25009
  ) : null,
24941
- activePromptTip ? /* @__PURE__ */ jsx37(
25010
+ activePromptTip ? /* @__PURE__ */ jsx38(
24942
25011
  "div",
24943
25012
  {
24944
25013
  className: AgentGUINode_styles_default.composerPromptTips,
24945
25014
  "data-testid": "agent-gui-prompt-tips",
24946
- children: !previewMode && input.isPromptTipOverflowing && promptTipNode ? /* @__PURE__ */ jsx37(TooltipProvider4, { delayDuration: 0, children: /* @__PURE__ */ jsxs27(Tooltip4, { children: [
24947
- /* @__PURE__ */ jsx37(TooltipTrigger4, { asChild: true, children: promptTipNode }),
24948
- /* @__PURE__ */ jsx37(
25015
+ children: !previewMode && input.isPromptTipOverflowing && promptTipNode ? /* @__PURE__ */ jsx38(TooltipProvider4, { delayDuration: 0, children: /* @__PURE__ */ jsxs28(Tooltip4, { children: [
25016
+ /* @__PURE__ */ jsx38(TooltipTrigger4, { asChild: true, children: promptTipNode }),
25017
+ /* @__PURE__ */ jsx38(
24949
25018
  TooltipContent4,
24950
25019
  {
24951
25020
  align: "end",
@@ -24969,7 +25038,7 @@ function AgentComposerView(input) {
24969
25038
  }
24970
25039
 
24971
25040
  // agent-gui/agentGuiNode/composer/useAgentMentionSearchController.ts
24972
- import { useEffect as useEffect27, useMemo as useMemo29, useRef as useRef32, useState as useState21 } from "react";
25041
+ import { useEffect as useEffect27, useMemo as useMemo29, useRef as useRef32, useState as useState22 } from "react";
24973
25042
  import { useRichTextMentionService } from "@tutti-os/ui-rich-text/editor";
24974
25043
  var EMPTY_AGENT_CONTEXT_MENTION_PROVIDERS = [];
24975
25044
  function useAgentMentionSearchController(referenceProvenanceFilter) {
@@ -24978,7 +25047,7 @@ function useAgentMentionSearchController(referenceProvenanceFilter) {
24978
25047
  () => mentionService?.listProviders().filter(isAgentContextMentionProvider) ?? EMPTY_AGENT_CONTEXT_MENTION_PROVIDERS,
24979
25048
  [mentionService]
24980
25049
  );
24981
- const [mentionSearchState, setMentionSearchState] = useState21(INITIAL_AGENT_MENTION_SEARCH_STATE);
25050
+ const [mentionSearchState, setMentionSearchState] = useState22(INITIAL_AGENT_MENTION_SEARCH_STATE);
24982
25051
  const mentionControllerRef = useRef32(
24983
25052
  null
24984
25053
  );
@@ -25027,7 +25096,7 @@ var INITIAL_AGENT_MENTION_SEARCH_STATE = {
25027
25096
  };
25028
25097
 
25029
25098
  // agent-gui/agentGuiNode/AgentComposer.tsx
25030
- import { jsx as jsx38 } from "react/jsx-runtime";
25099
+ import { jsx as jsx39 } from "react/jsx-runtime";
25031
25100
  var DOCK_COMPOSER_INPUT_MIN_HEIGHT2 = 56;
25032
25101
  var DOCK_COMPOSER_TEXT_LINE_HEIGHT2 = 24;
25033
25102
  var DOCK_COMPOSER_MAX_VISIBLE_TEXT_LINES2 = 3.5;
@@ -25116,22 +25185,21 @@ function AgentComposer(props) {
25116
25185
  hadPrefill: agentComposerDraftHasContent(draftContent)
25117
25186
  });
25118
25187
  };
25119
- const [isPaletteOpen, setIsPaletteOpen] = useState22(true);
25120
- const [isReviewPickerOpen, setIsReviewPickerOpen] = useState22(false);
25121
- const [isHandoffIconPlaying, setIsHandoffIconPlaying] = useState22(false);
25122
- const [highlightedIndex, setHighlightedIndex] = useState22(0);
25123
- const [mentionHighlightedKey, setMentionHighlightedKey] = useState22(null);
25124
- const [shouldCenterMentionHighlight, setShouldCenterMentionHighlight] = useState22(false);
25188
+ const [isPaletteOpen, setIsPaletteOpen] = useState23(true);
25189
+ const [isReviewPickerOpen, setIsReviewPickerOpen] = useState23(false);
25190
+ const [highlightedIndex, setHighlightedIndex] = useState23(0);
25191
+ const [mentionHighlightedKey, setMentionHighlightedKey] = useState23(null);
25192
+ const [shouldCenterMentionHighlight, setShouldCenterMentionHighlight] = useState23(false);
25125
25193
  const [
25126
25194
  shouldResetMentionHighlightToFilter,
25127
25195
  setShouldResetMentionHighlightToFilter
25128
- ] = useState22(false);
25129
- const [paletteDraftPrompt, setPaletteDraftPrompt] = useState22(
25196
+ ] = useState23(false);
25197
+ const [paletteDraftPrompt, setPaletteDraftPrompt] = useState23(
25130
25198
  goalDraftObjective ?? draftPrompt
25131
25199
  );
25132
- const [fileMentionSuggestion, setFileMentionSuggestion] = useState22(null);
25133
- const [isSelectedProjectMissing, setIsSelectedProjectMissing] = useState22(false);
25134
- const [isSlashStatusPanelOpen, setIsSlashStatusPanelOpen] = useState22(false);
25200
+ const [fileMentionSuggestion, setFileMentionSuggestion] = useState23(null);
25201
+ const [isSelectedProjectMissing, setIsSelectedProjectMissing] = useState23(false);
25202
+ const [isSlashStatusPanelOpen, setIsSlashStatusPanelOpen] = useState23(false);
25135
25203
  const slashStatusAgentSessionId = slashStatus?.agentSessionId ?? null;
25136
25204
  const previousSlashStatusAgentSessionIdRef = useRef33(
25137
25205
  slashStatusAgentSessionId
@@ -25157,15 +25225,15 @@ function AgentComposer(props) {
25157
25225
  const wasActiveRef = useRef33(isActive);
25158
25226
  const lastComposerFocusRequestRef = useRef33(null);
25159
25227
  const autoMentionHighlightedKeyRef = useRef33(null);
25160
- const [isPromptTipOverflowing, setIsPromptTipOverflowing] = useState22(false);
25161
- const [dockComposerInputHeight, setDockComposerInputHeight] = useState22(
25228
+ const [isPromptTipOverflowing, setIsPromptTipOverflowing] = useState23(false);
25229
+ const [dockComposerInputHeight, setDockComposerInputHeight] = useState23(
25162
25230
  DOCK_COMPOSER_INPUT_MIN_HEIGHT2
25163
25231
  );
25164
- const [dockComposerInputMaxHeight, setDockComposerInputMaxHeight] = useState22(
25232
+ const [dockComposerInputMaxHeight, setDockComposerInputMaxHeight] = useState23(
25165
25233
  DOCK_COMPOSER_INPUT_MAX_HEIGHT2
25166
25234
  );
25167
- const [dockComposerAttachmentHeight, setDockComposerAttachmentHeight] = useState22(0);
25168
- const [dockComposerTextHeight, setDockComposerTextHeight] = useState22(
25235
+ const [dockComposerAttachmentHeight, setDockComposerAttachmentHeight] = useState23(0);
25236
+ const [dockComposerTextHeight, setDockComposerTextHeight] = useState23(
25169
25237
  DOCK_COMPOSER_INPUT_MIN_HEIGHT2
25170
25238
  );
25171
25239
  const paletteCatalog = useComposerPaletteCatalog({
@@ -25476,7 +25544,7 @@ function AgentComposer(props) {
25476
25544
  canUploadAttachment,
25477
25545
  promptImagesSupported
25478
25546
  });
25479
- return /* @__PURE__ */ jsx38(
25547
+ return /* @__PURE__ */ jsx39(
25480
25548
  AgentComposerView,
25481
25549
  {
25482
25550
  props,
@@ -25511,8 +25579,6 @@ function AgentComposer(props) {
25511
25579
  setIsSelectedProjectMissing,
25512
25580
  setIsPaletteOpen,
25513
25581
  setHighlightedIndex,
25514
- isHandoffIconPlaying,
25515
- setIsHandoffIconPlaying,
25516
25582
  isGoalModeActive,
25517
25583
  isPromptTipOverflowing
25518
25584
  }
@@ -25520,11 +25586,11 @@ function AgentComposer(props) {
25520
25586
  }
25521
25587
 
25522
25588
  // agent-gui/agentGuiNode/AgentHomeSuggestions.tsx
25523
- import { memo as memo2, useState as useState23 } from "react";
25589
+ import { memo as memo2, useState as useState24 } from "react";
25524
25590
  import { ArrowLeftRight, Code, Compass, Import, Pencil, X as X6 } from "lucide-react";
25525
- import { jsx as jsx39, jsxs as jsxs28 } from "react/jsx-runtime";
25591
+ import { jsx as jsx40, jsxs as jsxs29 } from "react/jsx-runtime";
25526
25592
  function TuttiIcon(props) {
25527
- return /* @__PURE__ */ jsx39(
25593
+ return /* @__PURE__ */ jsx40(
25528
25594
  "svg",
25529
25595
  {
25530
25596
  width: "24",
@@ -25533,7 +25599,7 @@ function TuttiIcon(props) {
25533
25599
  fill: "none",
25534
25600
  xmlns: "http://www.w3.org/2000/svg",
25535
25601
  ...props,
25536
- children: /* @__PURE__ */ jsx39(
25602
+ children: /* @__PURE__ */ jsx40(
25537
25603
  "path",
25538
25604
  {
25539
25605
  d: "M11.9239 0.561676C15.4275 0.704643 18.0594 1.93856 19.9297 3.83316L20.0235 3.92984C23.0545 7.07999 23.0228 10.8742 22.9942 11.9015C22.8949 15.4888 21.1541 19.3943 18.0293 21.4328C15.586 23.0271 12.2829 23.8614 9.04007 23.215C5.73644 22.5564 2.62421 20.3849 0.626007 16.2238L3.20804 14.9836C4.83809 18.3782 7.22804 19.9325 9.60062 20.4054C12.0339 20.8904 14.5821 20.262 16.4649 19.0334C16.5072 19.0058 16.5482 18.9761 16.5899 18.9474C16.1093 18.8715 15.6404 18.7558 15.2119 18.5773C14.5812 18.3145 13.9737 17.8946 13.5371 17.2316C13.3482 16.9446 13.2091 16.6341 13.1094 16.3068V19.089C11.9062 19.089 10.438 19.0648 9.26761 18.5773C8.63673 18.3144 8.0285 17.8949 7.59183 17.2316C7.19348 16.6265 7.00806 15.9216 6.97952 15.1593C5.38231 15.2733 4.05048 14.8926 3.01273 14.0617C1.45415 12.8137 0.967716 10.8679 0.965851 9.3605C0.960457 5.06718 4.93349 0.556422 11.211 0.548004L11.9239 0.561676ZM12.3096 13.4562C11.6218 13.7868 10.8654 14.1393 9.99808 14.4611C9.94487 14.4808 9.89073 14.4979 9.83792 14.5168V14.9503C9.83792 15.3764 9.92819 15.571 9.98441 15.6564C10.0384 15.7384 10.1371 15.8371 10.3692 15.9337C10.921 16.1636 11.797 16.223 13.084 16.2238C12.9714 15.8224 12.918 15.3955 12.918 14.9503V13.1632C12.7221 13.2577 12.5204 13.3549 12.3096 13.4562ZM11.2149 3.41226C6.37997 3.4188 3.86603 6.76409 3.83011 9.29703V9.3566C3.83137 10.3769 4.17272 11.3206 4.80276 11.8253C5.17526 12.1236 5.83321 12.4102 6.97366 12.2882V6.38785H9.83792V11.4386C10.2583 11.2583 10.6625 11.0703 11.0684 10.8752C11.6533 10.594 12.2733 10.2876 12.918 10.008V6.38785H15.7823V9.08414C16.6423 8.90981 17.6005 8.80628 18.708 8.80484L18.7119 11.6691C17.5478 11.6706 16.6096 11.8073 15.7823 12.0255V14.9503C15.7823 15.3762 15.8725 15.5709 15.9287 15.6564C15.9827 15.7384 16.0816 15.8371 16.3135 15.9337C16.8534 16.1586 17.7037 16.2204 18.9453 16.2238C19.6618 14.896 20.0887 13.3489 20.1309 11.8214C20.1545 10.9724 20.155 8.19654 17.96 5.91519C16.5592 4.45958 14.4443 3.40841 11.2149 3.41226Z",
@@ -25544,7 +25610,7 @@ function TuttiIcon(props) {
25544
25610
  );
25545
25611
  }
25546
25612
  function TaskBreakdownIcon(props) {
25547
- return /* @__PURE__ */ jsx39(
25613
+ return /* @__PURE__ */ jsx40(
25548
25614
  "svg",
25549
25615
  {
25550
25616
  width: "24",
@@ -25553,7 +25619,7 @@ function TaskBreakdownIcon(props) {
25553
25619
  fill: "none",
25554
25620
  xmlns: "http://www.w3.org/2000/svg",
25555
25621
  ...props,
25556
- children: /* @__PURE__ */ jsx39(
25622
+ children: /* @__PURE__ */ jsx40(
25557
25623
  "path",
25558
25624
  {
25559
25625
  d: "M8.29297 14.793C8.68349 14.4025 9.31651 14.4025 9.70703 14.793C10.0976 15.1835 10.0976 15.8166 9.70703 16.2071L5.70703 20.2071C5.31651 20.5976 4.68349 20.5976 4.29297 20.2071L2.29297 18.2071C1.90244 17.8166 1.90244 17.1836 2.29297 16.793C2.68349 16.4025 3.31651 16.4025 3.70703 16.793L5 18.086L8.29297 14.793ZM21 18.0001C21.5523 18.0001 22 18.4478 22 19.0001C22 19.5524 21.5523 20.0001 21 20.0001H13C12.4477 20.0001 12 19.5524 12 19.0001C12 18.4478 12.4477 18.0001 13 18.0001H21ZM21 11C21.5523 11 22 11.4478 22 12C22 12.5523 21.5523 13 21 13H13C12.4477 13 12 12.5523 12 12C12 11.4478 12.4477 11 13 11H21ZM8 3.5C9.10457 3.5 10 4.39543 10 5.50001V9.50003C10 10.6046 9.10457 11.5 8 11.5H4C2.89543 11.5 2 10.6046 2 9.50003V5.50001C2 4.39543 2.89543 3.5 4 3.5H8ZM4 9.50003H8V5.50001H4V9.50003ZM21 4C21.5523 4 22 4.44772 22 5.00001C22 5.55229 21.5523 6.00001 21 6.00001H13C12.4477 6.00001 12 5.55229 12 5.00001C12 4.44772 12.4477 4 13 4H21Z",
@@ -25564,7 +25630,7 @@ function TaskBreakdownIcon(props) {
25564
25630
  );
25565
25631
  }
25566
25632
  function BattleIcon(props) {
25567
- return /* @__PURE__ */ jsx39(
25633
+ return /* @__PURE__ */ jsx40(
25568
25634
  "svg",
25569
25635
  {
25570
25636
  width: "24",
@@ -25573,7 +25639,7 @@ function BattleIcon(props) {
25573
25639
  fill: "none",
25574
25640
  xmlns: "http://www.w3.org/2000/svg",
25575
25641
  ...props,
25576
- children: /* @__PURE__ */ jsx39(
25642
+ children: /* @__PURE__ */ jsx40(
25577
25643
  "path",
25578
25644
  {
25579
25645
  d: "M4.29297 13.293C4.68349 12.9024 5.31651 12.9024 5.70703 13.293L9.70703 17.293C10.0976 17.6835 10.0976 18.3165 9.70703 18.707C9.31651 19.0976 8.68349 19.0976 8.29297 18.707L7.5 17.9141L5.41406 20L5.70703 20.293C6.09756 20.6835 6.09756 21.3165 5.70703 21.707C5.31651 22.0976 4.68349 22.0976 4.29297 21.707L2.29297 19.707C1.90244 19.3165 1.90244 18.6835 2.29297 18.293C2.68349 17.9024 3.31651 17.9024 3.70703 18.293L4 18.5859L6.08594 16.5L4.29297 14.707C3.90244 14.3165 3.90244 13.6835 4.29297 13.293ZM6 2C6.26522 2 6.51949 2.10543 6.70703 2.29297L17.5 13.0859L18.293 12.293C18.6835 11.9024 19.3165 11.9024 19.707 12.293C20.0976 12.6835 20.0976 13.3165 19.707 13.707L17.4141 16L20 18.5859L20.293 18.293C20.6835 17.9024 21.3165 17.9024 21.707 18.293C22.0976 18.6835 22.0976 19.3165 21.707 19.707L19.707 21.707C19.3165 22.0976 18.6835 22.0976 18.293 21.707C17.9024 21.3165 17.9024 20.6835 18.293 20.293L18.5859 20L16 17.4141L13.707 19.707C13.3165 20.0976 12.6835 20.0976 12.293 19.707C11.9024 19.3165 11.9024 18.6835 12.293 18.293L13.0859 17.5L2.29297 6.70703C2.10543 6.51949 2 6.26522 2 6V3C2 2.44772 2.44772 2 3 2H6ZM4 5.58594L14.5 16.0859L16.0859 14.5L5.58594 4H4V5.58594ZM21 2C21.5523 2 22 2.44772 22 3V6C22 6.26522 21.8946 6.51949 21.707 6.70703L18.207 10.207C17.8165 10.5976 17.1835 10.5976 16.793 10.207C16.4024 9.81651 16.4024 9.18349 16.793 8.79297L20 5.58594V4H18.4141L15.207 7.20703C14.8165 7.59756 14.1835 7.59756 13.793 7.20703C13.4024 6.81651 13.4024 6.18349 13.793 5.79297L17.293 2.29297L17.3662 2.22656C17.5442 2.08073 17.7679 2 18 2H21Z",
@@ -25584,7 +25650,7 @@ function BattleIcon(props) {
25584
25650
  );
25585
25651
  }
25586
25652
  function QualityReviewIcon(props) {
25587
- return /* @__PURE__ */ jsx39(
25653
+ return /* @__PURE__ */ jsx40(
25588
25654
  "svg",
25589
25655
  {
25590
25656
  width: "24",
@@ -25593,7 +25659,7 @@ function QualityReviewIcon(props) {
25593
25659
  fill: "none",
25594
25660
  xmlns: "http://www.w3.org/2000/svg",
25595
25661
  ...props,
25596
- children: /* @__PURE__ */ jsx39(
25662
+ children: /* @__PURE__ */ jsx40(
25597
25663
  "path",
25598
25664
  {
25599
25665
  d: "M20 2C20.7957 2 21.5585 2.3163 22.1211 2.87891C22.6837 3.44152 23 4.20435 23 5V17C23 17.7957 22.6837 18.5585 22.1211 19.1211C21.5585 19.6837 20.7957 20 20 20H6.82812C6.56296 20.0001 6.30857 20.1054 6.12109 20.293L3.91895 22.4951C3.6799 22.7341 3.37545 22.8969 3.04395 22.9629C2.71233 23.0288 2.36805 22.9956 2.05566 22.8662C1.74327 22.7368 1.47598 22.5174 1.28809 22.2363C1.10019 21.9552 1.00004 21.6243 1 21.2861V5C1 4.20435 1.3163 3.44152 1.87891 2.87891C2.44152 2.3163 3.20435 2 4 2H20ZM4 4C3.73478 4 3.4805 4.10543 3.29297 4.29297C3.10543 4.4805 3 4.73478 3 5V20.5859L4.70703 18.8789L4.92676 18.6797C5.46048 18.2422 6.13198 18.0001 6.82812 18H20C20.2652 18 20.5195 17.8946 20.707 17.707C20.8946 17.5195 21 17.2652 21 17V5C21 4.73478 20.8946 4.48051 20.707 4.29297C20.5195 4.10543 20.2652 4 20 4H4ZM9.29297 7.29297C9.68349 6.90244 10.3165 6.90244 10.707 7.29297C11.0976 7.68349 11.0976 8.31651 10.707 8.70703L8.41406 11L10.707 13.293C11.0976 13.6835 11.0976 14.3165 10.707 14.707C10.3165 15.0976 9.68349 15.0976 9.29297 14.707L6.29297 11.707C5.90244 11.3165 5.90244 10.6835 6.29297 10.293L9.29297 7.29297ZM13.293 7.29297C13.6835 6.90244 14.3165 6.90244 14.707 7.29297L17.707 10.293C18.0976 10.6835 18.0976 11.3165 17.707 11.707L14.707 14.707C14.3165 15.0976 13.6835 15.0976 13.293 14.707C12.9024 14.3165 12.9024 13.6835 13.293 13.293L15.5859 11L13.293 8.70703C12.9024 8.31651 12.9024 7.68349 13.293 7.29297Z",
@@ -25631,7 +25697,7 @@ var AgentHomeSuggestions = memo2(function AgentHomeSuggestions2({
25631
25697
  closeLabel
25632
25698
  }) {
25633
25699
  "use memo";
25634
- const [activeCategoryId, setActiveCategoryId] = useState23(null);
25700
+ const [activeCategoryId, setActiveCategoryId] = useState24(null);
25635
25701
  if (categories.length === 0) {
25636
25702
  return null;
25637
25703
  }
@@ -25639,12 +25705,12 @@ var AgentHomeSuggestions = memo2(function AgentHomeSuggestions2({
25639
25705
  (category) => category.id === activeCategoryId && !isDirectCategory(category)
25640
25706
  ) ?? null;
25641
25707
  const ActiveCategoryIcon = activeCategory?.icon ? CATEGORY_ICON[activeCategory.icon] : null;
25642
- return /* @__PURE__ */ jsxs28("div", { className: AgentGUINode_styles_default.emptyHeroSuggestions, children: [
25643
- /* @__PURE__ */ jsx39("div", { className: AgentGUINode_styles_default.emptyHeroSuggestionsChips, children: categories.map((category) => {
25708
+ return /* @__PURE__ */ jsxs29("div", { className: AgentGUINode_styles_default.emptyHeroSuggestions, children: [
25709
+ /* @__PURE__ */ jsx40("div", { className: AgentGUINode_styles_default.emptyHeroSuggestionsChips, children: categories.map((category) => {
25644
25710
  const Icon = category.icon ? CATEGORY_ICON[category.icon] : null;
25645
25711
  const direct = isDirectCategory(category);
25646
25712
  const isActive = !direct && category.id === activeCategory?.id;
25647
- return /* @__PURE__ */ jsxs28(
25713
+ return /* @__PURE__ */ jsxs29(
25648
25714
  "button",
25649
25715
  {
25650
25716
  type: "button",
@@ -25665,23 +25731,23 @@ var AgentHomeSuggestions = memo2(function AgentHomeSuggestions2({
25665
25731
  );
25666
25732
  },
25667
25733
  children: [
25668
- Icon ? /* @__PURE__ */ jsx39(
25734
+ Icon ? /* @__PURE__ */ jsx40(
25669
25735
  Icon,
25670
25736
  {
25671
25737
  className: AgentGUINode_styles_default.emptyHeroSuggestionsChipIcon,
25672
25738
  "aria-hidden": true
25673
25739
  }
25674
25740
  ) : null,
25675
- /* @__PURE__ */ jsx39("span", { children: category.label })
25741
+ /* @__PURE__ */ jsx40("span", { children: category.label })
25676
25742
  ]
25677
25743
  },
25678
25744
  category.id
25679
25745
  );
25680
25746
  }) }),
25681
- activeCategory ? /* @__PURE__ */ jsxs28("div", { className: AgentGUINode_styles_default.emptyHeroSuggestionsCard, children: [
25682
- /* @__PURE__ */ jsxs28("div", { className: AgentGUINode_styles_default.emptyHeroSuggestionsCardHeader, children: [
25683
- /* @__PURE__ */ jsxs28("span", { className: AgentGUINode_styles_default.emptyHeroSuggestionsCardTitle, children: [
25684
- ActiveCategoryIcon ? /* @__PURE__ */ jsx39(
25747
+ activeCategory ? /* @__PURE__ */ jsxs29("div", { className: AgentGUINode_styles_default.emptyHeroSuggestionsCard, children: [
25748
+ /* @__PURE__ */ jsxs29("div", { className: AgentGUINode_styles_default.emptyHeroSuggestionsCardHeader, children: [
25749
+ /* @__PURE__ */ jsxs29("span", { className: AgentGUINode_styles_default.emptyHeroSuggestionsCardTitle, children: [
25750
+ ActiveCategoryIcon ? /* @__PURE__ */ jsx40(
25685
25751
  ActiveCategoryIcon,
25686
25752
  {
25687
25753
  className: AgentGUINode_styles_default.emptyHeroSuggestionsChipIcon,
@@ -25690,7 +25756,7 @@ var AgentHomeSuggestions = memo2(function AgentHomeSuggestions2({
25690
25756
  ) : null,
25691
25757
  activeCategory.label
25692
25758
  ] }),
25693
- /* @__PURE__ */ jsx39(
25759
+ /* @__PURE__ */ jsx40(
25694
25760
  "button",
25695
25761
  {
25696
25762
  type: "button",
@@ -25698,11 +25764,11 @@ var AgentHomeSuggestions = memo2(function AgentHomeSuggestions2({
25698
25764
  "aria-label": closeLabel,
25699
25765
  title: closeLabel,
25700
25766
  onClick: () => setActiveCategoryId(null),
25701
- children: /* @__PURE__ */ jsx39(X6, { "aria-hidden": true })
25767
+ children: /* @__PURE__ */ jsx40(X6, { "aria-hidden": true })
25702
25768
  }
25703
25769
  )
25704
25770
  ] }),
25705
- activeCategory.items?.map((item) => /* @__PURE__ */ jsx39(
25771
+ activeCategory.items?.map((item) => /* @__PURE__ */ jsx40(
25706
25772
  "button",
25707
25773
  {
25708
25774
  type: "button",
@@ -25750,7 +25816,7 @@ function createFallbackAgentGUIAgentAvatar(input) {
25750
25816
 
25751
25817
  // agent-gui/agentGuiNode/view/AgentGUIEmptyHeroCarouselStage.tsx
25752
25818
  import { Component as Component3 } from "react";
25753
- import { jsx as jsx40, jsxs as jsxs29 } from "react/jsx-runtime";
25819
+ import { jsx as jsx41, jsxs as jsxs30 } from "react/jsx-runtime";
25754
25820
  var AgentGUIEmptyHeroCarouselStage = class extends Component3 {
25755
25821
  animationFrame = null;
25756
25822
  layer = null;
@@ -25775,8 +25841,8 @@ var AgentGUIEmptyHeroCarouselStage = class extends Component3 {
25775
25841
  providerSelectLabel
25776
25842
  } = this.props;
25777
25843
  const hasCarousel = items.length > 1;
25778
- return /* @__PURE__ */ jsxs29("div", { ref: this.setStage, className: AgentGUINode_styles_default.emptyHeroCarouselStage, children: [
25779
- hasCarousel ? /* @__PURE__ */ jsx40("div", { ref: this.setLayer, className: AgentGUINode_styles_default.emptyHeroCarouselLayer, children: /* @__PURE__ */ jsx40(
25844
+ return /* @__PURE__ */ jsxs30("div", { ref: this.setStage, className: AgentGUINode_styles_default.emptyHeroCarouselStage, children: [
25845
+ hasCarousel ? /* @__PURE__ */ jsx41("div", { ref: this.setLayer, className: AgentGUINode_styles_default.emptyHeroCarouselLayer, children: /* @__PURE__ */ jsx41(
25780
25846
  AgentGUIHeroAgentCarousel,
25781
25847
  {
25782
25848
  activeAgentTargetId,
@@ -25878,10 +25944,10 @@ import { useExternalStoreSnapshot } from "@tutti-os/ui-react-hooks";
25878
25944
  import {
25879
25945
  Button as Button4,
25880
25946
  RefreshIcon,
25881
- Select as Select3,
25882
- SelectContent as SelectContent3,
25883
- SelectItem as SelectItem3,
25884
- SelectTrigger as SelectTrigger3,
25947
+ Select as Select4,
25948
+ SelectContent as SelectContent4,
25949
+ SelectItem as SelectItem4,
25950
+ SelectTrigger as SelectTrigger4,
25885
25951
  SelectValue,
25886
25952
  cn as cn4
25887
25953
  } from "@tutti-os/ui-system";
@@ -25924,7 +25990,7 @@ function isFailed(status) {
25924
25990
  }
25925
25991
 
25926
25992
  // shared/agentEnv/agentTargetSetupController.tsx
25927
- import { jsx as jsx41 } from "react/jsx-runtime";
25993
+ import { jsx as jsx42 } from "react/jsx-runtime";
25928
25994
  var DISABLED_SETUP_STATE = {
25929
25995
  snapshot: null,
25930
25996
  loading: false,
@@ -25935,7 +26001,7 @@ function AgentTargetSetupControllerProvider({
25935
26001
  children,
25936
26002
  controller
25937
26003
  }) {
25938
- return /* @__PURE__ */ jsx41(AgentTargetSetupControllerContext.Provider, { value: controller, children });
26004
+ return /* @__PURE__ */ jsx42(AgentTargetSetupControllerContext.Provider, { value: controller, children });
25939
26005
  }
25940
26006
  function useAgentTargetSetupController() {
25941
26007
  const controller = useContext(AgentTargetSetupControllerContext);
@@ -26100,7 +26166,7 @@ function createClientActionId() {
26100
26166
  }
26101
26167
 
26102
26168
  // agent-gui/agentGuiNode/view/AgentTargetSetupGate.tsx
26103
- import { Fragment as Fragment11, jsx as jsx42, jsxs as jsxs30 } from "react/jsx-runtime";
26169
+ import { Fragment as Fragment11, jsx as jsx43, jsxs as jsxs31 } from "react/jsx-runtime";
26104
26170
  function AgentTargetSetupGate({
26105
26171
  children,
26106
26172
  carouselMountedExternally,
@@ -26127,7 +26193,7 @@ function AgentTargetSetupGate({
26127
26193
  (method) => method.id === selectedAuthMethodId
26128
26194
  ) ? selectedAuthMethodId ?? "" : authMethods.some((method) => method.id === account?.authMethodId) ? account?.authMethodId ?? "" : authMethods[0]?.id ?? "";
26129
26195
  if (!enabled) {
26130
- return /* @__PURE__ */ jsx42(Fragment11, { children });
26196
+ return /* @__PURE__ */ jsx43(Fragment11, { children });
26131
26197
  }
26132
26198
  const setupChecking = !snapshot && !failed;
26133
26199
  const setupBlocked = failed || !snapshot || snapshot.status !== "ready";
@@ -26150,26 +26216,26 @@ function AgentTargetSetupGate({
26150
26216
  const accountDetail = account ? [account.displayName, account.organization].filter(Boolean).join(" \xB7 ") : void 0;
26151
26217
  const setupDescription = setupChecking ? t("agentHost.agentGui.targetSetupChecking") : snapshot?.status === "auth_required" ? t("agentHost.agentGui.targetSetupAuthRequired") : snapshot?.status === "ready" ? t("agentHost.agentGui.targetSetupReady") : t("agentHost.agentGui.targetSetupDescription");
26152
26218
  const authenticationAvailable = snapshot?.status === "auth_required" || snapshot?.status === "ready";
26153
- return /* @__PURE__ */ jsxs30(Fragment11, { children: [
26154
- gateVisible && setupBlocked ? /* @__PURE__ */ jsx42("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs30(
26219
+ return /* @__PURE__ */ jsxs31(Fragment11, { children: [
26220
+ gateVisible && setupBlocked ? /* @__PURE__ */ jsx43("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs31(
26155
26221
  "div",
26156
26222
  {
26157
26223
  className: cn4(AgentGUINode_styles_default.emptyHeroBody, AgentGUINode_styles_default.emptyProviderGate),
26158
26224
  "data-testid": "agent-target-setup-gate",
26159
26225
  role: "status",
26160
26226
  children: [
26161
- carouselMountedExternally ? /* @__PURE__ */ jsx42(
26227
+ carouselMountedExternally ? /* @__PURE__ */ jsx43(
26162
26228
  "div",
26163
26229
  {
26164
26230
  "aria-hidden": "true",
26165
26231
  className: AgentGUINode_styles_default.emptyHeroCarouselPlaceholder
26166
26232
  }
26167
26233
  ) : null,
26168
- /* @__PURE__ */ jsx42("h2", { className: AgentGUINode_styles_default.emptyHeroTitle, children: t("agentHost.agentGui.targetSetupTitle", {
26234
+ /* @__PURE__ */ jsx43("h2", { className: AgentGUINode_styles_default.emptyHeroTitle, children: t("agentHost.agentGui.targetSetupTitle", {
26169
26235
  provider: providerLabel
26170
26236
  }) }),
26171
- /* @__PURE__ */ jsx42("p", { className: AgentGUINode_styles_default.emptyProviderGateDescription, children: setupDescription }),
26172
- !setupChecking ? /* @__PURE__ */ jsx42(
26237
+ /* @__PURE__ */ jsx43("p", { className: AgentGUINode_styles_default.emptyProviderGateDescription, children: setupDescription }),
26238
+ !setupChecking ? /* @__PURE__ */ jsx43(
26173
26239
  Button4,
26174
26240
  {
26175
26241
  type: "button",
@@ -26181,7 +26247,7 @@ function AgentTargetSetupGate({
26181
26247
  ]
26182
26248
  }
26183
26249
  ) }) : children,
26184
- dialogOwner ? /* @__PURE__ */ jsx42(
26250
+ dialogOwner ? /* @__PURE__ */ jsx43(
26185
26251
  AgentSetupDialog,
26186
26252
  {
26187
26253
  open: dialogOpen,
@@ -26190,7 +26256,7 @@ function AgentTargetSetupGate({
26190
26256
  provider: providerLabel
26191
26257
  }),
26192
26258
  description: setupDescription,
26193
- footer: /* @__PURE__ */ jsxs30(
26259
+ footer: /* @__PURE__ */ jsxs31(
26194
26260
  Button4,
26195
26261
  {
26196
26262
  size: "dialog",
@@ -26198,19 +26264,19 @@ function AgentTargetSetupGate({
26198
26264
  disabled: loading,
26199
26265
  onClick: () => void controller.refresh(),
26200
26266
  children: [
26201
- /* @__PURE__ */ jsx42(RefreshIcon, { className: "size-4" }),
26267
+ /* @__PURE__ */ jsx43(RefreshIcon, { className: "size-4" }),
26202
26268
  t("agentHost.agentGui.targetSetupRetry")
26203
26269
  ]
26204
26270
  }
26205
26271
  ),
26206
- children: /* @__PURE__ */ jsxs30("div", { className: "flex flex-col gap-4", children: [
26207
- /* @__PURE__ */ jsx42("p", { className: "m-0 text-[13px] text-[var(--text-secondary)]", children: statusLabel ?? (snapshot?.status === "ready" ? t("agentHost.agentGui.targetSetupComplete", {
26272
+ children: /* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-4", children: [
26273
+ /* @__PURE__ */ jsx43("p", { className: "m-0 text-[13px] text-[var(--text-secondary)]", children: statusLabel ?? (snapshot?.status === "ready" ? t("agentHost.agentGui.targetSetupComplete", {
26208
26274
  provider: providerLabel
26209
26275
  }) : t("agentHost.agentGui.targetSetupRemaining", {
26210
26276
  provider: providerLabel
26211
26277
  })) }),
26212
- /* @__PURE__ */ jsxs30("ol", { className: "m-0 flex list-none flex-col divide-y divide-[var(--border-1)] p-0", children: [
26213
- /* @__PURE__ */ jsx42(
26278
+ /* @__PURE__ */ jsxs31("ol", { className: "m-0 flex list-none flex-col divide-y divide-[var(--border-1)] p-0", children: [
26279
+ /* @__PURE__ */ jsx43(
26214
26280
  SetupTrackRow,
26215
26281
  {
26216
26282
  label: t("agentHost.agentGui.targetSetupStage.detect"),
@@ -26218,14 +26284,14 @@ function AgentTargetSetupGate({
26218
26284
  detail: snapshot?.runtimeVersion ? `${snapshot.runtimeVersion} \xB7 ${snapshot.runtimeSource ?? ""}` : void 0
26219
26285
  }
26220
26286
  ),
26221
- /* @__PURE__ */ jsx42(
26287
+ /* @__PURE__ */ jsx43(
26222
26288
  SetupTrackRow,
26223
26289
  {
26224
26290
  label: t("agentHost.agentGui.targetSetupStage.install"),
26225
26291
  status: installStatus,
26226
26292
  warning: snapshot?.status === "not_installed",
26227
26293
  detail: snapshot?.plan ? `${snapshot.plan.packageName}@${snapshot.plan.packageVersion}` : void 0,
26228
- action: snapshot?.status === "not_installed" && snapshot.plan ? /* @__PURE__ */ jsx42(
26294
+ action: snapshot?.status === "not_installed" && snapshot.plan ? /* @__PURE__ */ jsx43(
26229
26295
  Button4,
26230
26296
  {
26231
26297
  type: "button",
@@ -26235,10 +26301,10 @@ function AgentTargetSetupGate({
26235
26301
  children: installPending ? t("agentHost.agentGui.targetSetupStarting") : t("agentHost.agentGui.targetSetupInstall")
26236
26302
  }
26237
26303
  ) : void 0,
26238
- children: snapshot?.plan ? /* @__PURE__ */ jsx42("span", { className: "mt-2 block break-all text-[12px] text-[var(--text-secondary)]", children: snapshot.plan.installRoot }) : null
26304
+ children: snapshot?.plan ? /* @__PURE__ */ jsx43("span", { className: "mt-2 block break-all text-[12px] text-[var(--text-secondary)]", children: snapshot.plan.installRoot }) : null
26239
26305
  }
26240
26306
  ),
26241
- /* @__PURE__ */ jsx42(
26307
+ /* @__PURE__ */ jsx43(
26242
26308
  SetupTrackRow,
26243
26309
  {
26244
26310
  label: t(
@@ -26247,7 +26313,7 @@ function AgentTargetSetupGate({
26247
26313
  status: loginStatus,
26248
26314
  warning: snapshot?.status === "auth_required",
26249
26315
  detail: snapshot?.status === "ready" ? accountDetail : void 0,
26250
- action: authenticationAvailable && authMethods.length > 0 ? /* @__PURE__ */ jsx42(
26316
+ action: authenticationAvailable && authMethods.length > 0 ? /* @__PURE__ */ jsx43(
26251
26317
  Button4,
26252
26318
  {
26253
26319
  type: "button",
@@ -26257,40 +26323,40 @@ function AgentTargetSetupGate({
26257
26323
  children: authenticatePending ? t("agentHost.agentGui.targetSetupAuthStarting") : snapshot?.status === "ready" ? t("agentHost.agentGui.targetSetupReauthenticate") : t("agentHost.agentGui.targetSetupAuthenticate")
26258
26324
  }
26259
26325
  ) : void 0,
26260
- children: snapshot?.status === "auth_required" && authMethods.length > 0 ? /* @__PURE__ */ jsxs30("label", { className: "mt-2 flex flex-col gap-1 text-[12px] text-[var(--text-secondary)]", children: [
26326
+ children: snapshot?.status === "auth_required" && authMethods.length > 0 ? /* @__PURE__ */ jsxs31("label", { className: "mt-2 flex flex-col gap-1 text-[12px] text-[var(--text-secondary)]", children: [
26261
26327
  t("agentHost.agentGui.targetSetupAuthMethod"),
26262
- /* @__PURE__ */ jsxs30(
26263
- Select3,
26328
+ /* @__PURE__ */ jsxs31(
26329
+ Select4,
26264
26330
  {
26265
26331
  value: effectiveAuthMethodId,
26266
26332
  onValueChange: controller.selectAuthMethod,
26267
26333
  children: [
26268
- /* @__PURE__ */ jsx42(
26269
- SelectTrigger3,
26334
+ /* @__PURE__ */ jsx43(
26335
+ SelectTrigger4,
26270
26336
  {
26271
26337
  "aria-label": t(
26272
26338
  "agentHost.agentGui.targetSetupAuthMethod"
26273
26339
  ),
26274
- children: /* @__PURE__ */ jsx42(SelectValue, {})
26340
+ children: /* @__PURE__ */ jsx43(SelectValue, {})
26275
26341
  }
26276
26342
  ),
26277
- /* @__PURE__ */ jsx42(
26278
- SelectContent3,
26343
+ /* @__PURE__ */ jsx43(
26344
+ SelectContent4,
26279
26345
  {
26280
26346
  style: { zIndex: "var(--z-dialog-popover)" },
26281
- children: authMethods.map((method) => /* @__PURE__ */ jsx42(SelectItem3, { value: method.id, children: method.name }, method.id))
26347
+ children: authMethods.map((method) => /* @__PURE__ */ jsx43(SelectItem4, { value: method.id, children: method.name }, method.id))
26282
26348
  }
26283
26349
  )
26284
26350
  ]
26285
26351
  }
26286
26352
  )
26287
- ] }) : snapshot?.status === "auth_required" ? /* @__PURE__ */ jsx42("p", { className: "mt-2 mb-0 text-[12px] text-[var(--text-secondary)]", children: t("agentHost.agentGui.targetSetupNoAuthMethods") }) : null
26353
+ ] }) : snapshot?.status === "auth_required" ? /* @__PURE__ */ jsx43("p", { className: "mt-2 mb-0 text-[12px] text-[var(--text-secondary)]", children: t("agentHost.agentGui.targetSetupNoAuthMethods") }) : null
26288
26354
  }
26289
26355
  )
26290
26356
  ] }),
26291
- failed || snapshot?.status === "failed" || actionFailed ? /* @__PURE__ */ jsxs30("p", { className: "m-0 text-[12px] text-[var(--state-danger)]", children: [
26292
- /* @__PURE__ */ jsx42("span", { className: "block", children: snapshot?.action?.kind === "authenticate" ? t("agentHost.agentGui.targetSetupAuthFailed") : t("agentHost.agentGui.targetSetupFailed") }),
26293
- snapshot?.action?.errorMessage?.trim() ? /* @__PURE__ */ jsx42("span", { className: "mt-1 block break-words text-[var(--text-secondary)]", children: snapshot.action.errorMessage.trim() }) : null
26357
+ failed || snapshot?.status === "failed" || actionFailed ? /* @__PURE__ */ jsxs31("p", { className: "m-0 text-[12px] text-[var(--state-danger)]", children: [
26358
+ /* @__PURE__ */ jsx43("span", { className: "block", children: snapshot?.action?.kind === "authenticate" ? t("agentHost.agentGui.targetSetupAuthFailed") : t("agentHost.agentGui.targetSetupFailed") }),
26359
+ snapshot?.action?.errorMessage?.trim() ? /* @__PURE__ */ jsx43("span", { className: "mt-1 block break-words text-[var(--text-secondary)]", children: snapshot.action.errorMessage.trim() }) : null
26294
26360
  ] }) : null
26295
26361
  ] })
26296
26362
  }
@@ -26311,23 +26377,23 @@ function SetupTrackRow({
26311
26377
  status,
26312
26378
  warning = false
26313
26379
  }) {
26314
- return /* @__PURE__ */ jsxs30(
26380
+ return /* @__PURE__ */ jsxs31(
26315
26381
  "li",
26316
26382
  {
26317
26383
  "data-status": status,
26318
26384
  className: `flex items-start gap-2.5 py-3 ${status === "pending" ? "opacity-50" : ""}`,
26319
26385
  children: [
26320
- /* @__PURE__ */ jsx42("span", { className: "mt-0.5 shrink-0", children: /* @__PURE__ */ jsx42(AgentSetupStepIcon, { status, warning }) }),
26321
- /* @__PURE__ */ jsxs30("span", { className: "min-w-0 flex-1", children: [
26322
- /* @__PURE__ */ jsxs30("span", { className: "flex min-w-0 items-baseline gap-2", children: [
26323
- /* @__PURE__ */ jsx42(
26386
+ /* @__PURE__ */ jsx43("span", { className: "mt-0.5 shrink-0", children: /* @__PURE__ */ jsx43(AgentSetupStepIcon, { status, warning }) }),
26387
+ /* @__PURE__ */ jsxs31("span", { className: "min-w-0 flex-1", children: [
26388
+ /* @__PURE__ */ jsxs31("span", { className: "flex min-w-0 items-baseline gap-2", children: [
26389
+ /* @__PURE__ */ jsx43(
26324
26390
  "span",
26325
26391
  {
26326
26392
  className: `shrink-0 text-[13px] font-medium ${status === "error" ? warning ? "text-[var(--state-warning)]" : "text-[var(--state-danger)]" : "text-[var(--text-primary)]"}`,
26327
26393
  children: label
26328
26394
  }
26329
26395
  ),
26330
- detail ? /* @__PURE__ */ jsx42("span", { className: "min-w-0 truncate text-[12px] text-[var(--text-secondary)]", children: detail }) : null
26396
+ detail ? /* @__PURE__ */ jsx43("span", { className: "min-w-0 truncate text-[12px] text-[var(--text-secondary)]", children: detail }) : null
26331
26397
  ] }),
26332
26398
  children
26333
26399
  ] }),
@@ -26376,7 +26442,7 @@ function targetSetupPhaseLabel(t, phase) {
26376
26442
 
26377
26443
  // agent-gui/agentGuiNode/view/AgentGUIAgentTargetName.tsx
26378
26444
  import { cn as cn5 } from "@tutti-os/ui-system";
26379
- import { Fragment as Fragment12, jsx as jsx43, jsxs as jsxs31 } from "react/jsx-runtime";
26445
+ import { Fragment as Fragment12, jsx as jsx44, jsxs as jsxs32 } from "react/jsx-runtime";
26380
26446
  function projectAgentGUIAgentTargetName(input) {
26381
26447
  const agentLabel = input.target.label.trim();
26382
26448
  const ownerLabel = input.target.ownership === "shared" ? input.target.ownerLabel?.trim() || null : null;
@@ -26397,13 +26463,13 @@ function AgentGUIAgentTargetName({
26397
26463
  ownerSeparator,
26398
26464
  target
26399
26465
  });
26400
- return /* @__PURE__ */ jsx43(
26466
+ return /* @__PURE__ */ jsx44(
26401
26467
  "span",
26402
26468
  {
26403
26469
  className: cn5("flex min-w-0 max-w-full items-baseline", className),
26404
26470
  title: presentation.fullLabel,
26405
- children: presentation.ownerLabel ? /* @__PURE__ */ jsxs31(Fragment12, { children: [
26406
- /* @__PURE__ */ jsx43(
26471
+ children: presentation.ownerLabel ? /* @__PURE__ */ jsxs32(Fragment12, { children: [
26472
+ /* @__PURE__ */ jsx44(
26407
26473
  "span",
26408
26474
  {
26409
26475
  className: "min-w-0 flex-1 truncate",
@@ -26411,7 +26477,7 @@ function AgentGUIAgentTargetName({
26411
26477
  children: presentation.ownerLabel
26412
26478
  }
26413
26479
  ),
26414
- /* @__PURE__ */ jsxs31(
26480
+ /* @__PURE__ */ jsxs32(
26415
26481
  "span",
26416
26482
  {
26417
26483
  className: "shrink-0 whitespace-pre",
@@ -26422,13 +26488,13 @@ function AgentGUIAgentTargetName({
26422
26488
  ]
26423
26489
  }
26424
26490
  )
26425
- ] }) : /* @__PURE__ */ jsx43("span", { className: "min-w-0 truncate", "data-testid": "agent-target-name", children: presentation.agentLabel })
26491
+ ] }) : /* @__PURE__ */ jsx44("span", { className: "min-w-0 truncate", "data-testid": "agent-target-name", children: presentation.agentLabel })
26426
26492
  }
26427
26493
  );
26428
26494
  }
26429
26495
 
26430
26496
  // agent-gui/agentGuiNode/view/AgentGUIEmptyState.tsx
26431
- import { Fragment as Fragment13, jsx as jsx44, jsxs as jsxs32 } from "react/jsx-runtime";
26497
+ import { Fragment as Fragment13, jsx as jsx45, jsxs as jsxs33 } from "react/jsx-runtime";
26432
26498
  function resolveAgentGUIHeroIconUrl2(provider) {
26433
26499
  const normalizedProvider = normalizeManagedAgentProvider(provider);
26434
26500
  return MANAGED_AGENT_ICON_URLS[normalizedProvider] ?? MANAGED_AGENT_ICON_FALLBACK_URL;
@@ -26473,18 +26539,18 @@ var AgentGUIEmptyHomePane = memo3(function AgentGUIEmptyHomePane2({
26473
26539
  [agentTargets, provider, providerLabel, selectedAgentTarget]
26474
26540
  );
26475
26541
  const carouselMountedExternally = avatarPresentations.length > 1;
26476
- return /* @__PURE__ */ jsx44(
26542
+ return /* @__PURE__ */ jsx45(
26477
26543
  AgentGUIEmptyHeroCarouselStage,
26478
26544
  {
26479
26545
  activeAgentTargetId: selectedAgentTarget?.agentTargetId ?? selectedAgentTarget?.targetId,
26480
26546
  items: avatarPresentations,
26481
26547
  onProviderSelect,
26482
26548
  providerSelectLabel: labels.providerSwitchLabel,
26483
- children: /* @__PURE__ */ jsx44(
26549
+ children: /* @__PURE__ */ jsx45(
26484
26550
  AgentTargetSetupGate,
26485
26551
  {
26486
26552
  carouselMountedExternally,
26487
- children: providerReadinessGate ? /* @__PURE__ */ jsx44(
26553
+ children: providerReadinessGate ? /* @__PURE__ */ jsx45(
26488
26554
  AgentGUIProviderReadinessGatePane,
26489
26555
  {
26490
26556
  provider,
@@ -26500,7 +26566,7 @@ var AgentGUIEmptyHomePane = memo3(function AgentGUIEmptyHomePane2({
26500
26566
  selectedAgentTarget,
26501
26567
  labels
26502
26568
  }
26503
- ) : /* @__PURE__ */ jsx44(
26569
+ ) : /* @__PURE__ */ jsx45(
26504
26570
  AgentGUIEmptyHeroPane,
26505
26571
  {
26506
26572
  ...heroProps,
@@ -26555,13 +26621,13 @@ var AgentGUIEmptyHeroPane = memo3(function AgentGUIEmptyHeroPane2({
26555
26621
  const heroIconAnimationKey = heroAvatarPresentations.map(
26556
26622
  (avatar) => `${avatar.agentTargetId}:${avatar.iconUrl}:${avatar.badge?.iconUrl ?? ""}`
26557
26623
  ).join("|");
26558
- return /* @__PURE__ */ jsx44("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs32("div", { className: AgentGUINode_styles_default.emptyHeroBody, children: [
26559
- /* @__PURE__ */ jsx44(
26624
+ return /* @__PURE__ */ jsx45("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs33("div", { className: AgentGUINode_styles_default.emptyHeroBody, children: [
26625
+ /* @__PURE__ */ jsx45(
26560
26626
  "div",
26561
26627
  {
26562
26628
  className: AgentGUINode_styles_default.emptyHeroIconSlot,
26563
26629
  "data-carousel-placeholder": carouselMountedExternally || void 0,
26564
- children: carouselMountedExternally ? null : heroAvatarPresentations.length > 1 ? /* @__PURE__ */ jsx44(
26630
+ children: carouselMountedExternally ? null : heroAvatarPresentations.length > 1 ? /* @__PURE__ */ jsx45(
26565
26631
  AgentGUIHeroAgentCarousel,
26566
26632
  {
26567
26633
  activeAgentTargetId: selectedAgentTarget?.agentTargetId ?? selectedAgentTarget?.targetId,
@@ -26569,7 +26635,7 @@ var AgentGUIEmptyHeroPane = memo3(function AgentGUIEmptyHeroPane2({
26569
26635
  onProviderSelect,
26570
26636
  providerSelectLabel
26571
26637
  }
26572
- ) : /* @__PURE__ */ jsx44(
26638
+ ) : /* @__PURE__ */ jsx45(
26573
26639
  AgentGUIAgentAvatarVisual,
26574
26640
  {
26575
26641
  className: AgentGUINode_styles_default.emptyHeroIconEffect,
@@ -26579,7 +26645,7 @@ var AgentGUIEmptyHeroPane = memo3(function AgentGUIEmptyHeroPane2({
26579
26645
  )
26580
26646
  }
26581
26647
  ),
26582
- /* @__PURE__ */ jsx44("h2", { className: AgentGUINode_styles_default.emptyHeroTitle, children: /* @__PURE__ */ jsx44(
26648
+ /* @__PURE__ */ jsx45("h2", { className: AgentGUINode_styles_default.emptyHeroTitle, children: /* @__PURE__ */ jsx45(
26583
26649
  EmptyHeroTitle,
26584
26650
  {
26585
26651
  label: emptyLabel,
@@ -26591,7 +26657,7 @@ var AgentGUIEmptyHeroPane = memo3(function AgentGUIEmptyHeroPane2({
26591
26657
  sharedAgentOwnerSeparator
26592
26658
  }
26593
26659
  ) }),
26594
- inlineNoticeChrome ? /* @__PURE__ */ jsx44(
26660
+ inlineNoticeChrome ? /* @__PURE__ */ jsx45(
26595
26661
  AgentSessionChrome,
26596
26662
  {
26597
26663
  chrome: inlineNoticeChrome,
@@ -26603,8 +26669,8 @@ var AgentGUIEmptyHeroPane = memo3(function AgentGUIEmptyHeroPane2({
26603
26669
  labels: chromeLabels
26604
26670
  }
26605
26671
  ) : null,
26606
- /* @__PURE__ */ jsx44(AgentComposer, { ...composerProps }),
26607
- /* @__PURE__ */ jsx44(
26672
+ /* @__PURE__ */ jsx45(AgentComposer, { ...composerProps }),
26673
+ /* @__PURE__ */ jsx45(
26608
26674
  AgentHomeSuggestions,
26609
26675
  {
26610
26676
  categories: suggestions,
@@ -26650,20 +26716,20 @@ var AgentGUIProviderReadinessGatePane = memo3(
26650
26716
  const titleLabel = gate.status === "not_installed" || gate.status === "auth_required" ? emptyLabel : content.title;
26651
26717
  const action = resolveAgentGUIProviderReadinessAction(gate.status);
26652
26718
  const pendingLabel = pendingAction === "install" ? labels.providerGatePendingInstall : pendingAction === "login" ? labels.providerGatePendingLogin : pendingAction === "refresh" ? labels.providerGatePendingRefresh : null;
26653
- return /* @__PURE__ */ jsx44("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs32(
26719
+ return /* @__PURE__ */ jsx45("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs33(
26654
26720
  "div",
26655
26721
  {
26656
26722
  className: cn6(AgentGUINode_styles_default.emptyHeroBody, AgentGUINode_styles_default.emptyProviderGate),
26657
26723
  "data-testid": "agent-gui-provider-readiness-gate",
26658
26724
  role: "status",
26659
26725
  children: [
26660
- carouselMountedExternally ? /* @__PURE__ */ jsx44(
26726
+ carouselMountedExternally ? /* @__PURE__ */ jsx45(
26661
26727
  "div",
26662
26728
  {
26663
26729
  "aria-hidden": "true",
26664
26730
  className: AgentGUINode_styles_default.emptyHeroCarouselPlaceholder
26665
26731
  }
26666
- ) : heroAvatarPresentations.length > 1 ? /* @__PURE__ */ jsx44(
26732
+ ) : heroAvatarPresentations.length > 1 ? /* @__PURE__ */ jsx45(
26667
26733
  AgentGUIHeroAgentCarousel,
26668
26734
  {
26669
26735
  activeAgentTargetId: selectedAgentTarget?.agentTargetId ?? selectedAgentTarget?.targetId,
@@ -26671,14 +26737,14 @@ var AgentGUIProviderReadinessGatePane = memo3(
26671
26737
  onProviderSelect,
26672
26738
  providerSelectLabel
26673
26739
  }
26674
- ) : /* @__PURE__ */ jsx44(
26740
+ ) : /* @__PURE__ */ jsx45(
26675
26741
  AgentGUIAgentAvatarVisual,
26676
26742
  {
26677
26743
  className: AgentGUINode_styles_default.emptyHeroIconEffect,
26678
26744
  presentation: heroAvatarPresentations[0]
26679
26745
  }
26680
26746
  ),
26681
- /* @__PURE__ */ jsx44("h2", { className: AgentGUINode_styles_default.emptyHeroTitle, children: /* @__PURE__ */ jsx44(
26747
+ /* @__PURE__ */ jsx45("h2", { className: AgentGUINode_styles_default.emptyHeroTitle, children: /* @__PURE__ */ jsx45(
26682
26748
  EmptyHeroTitle,
26683
26749
  {
26684
26750
  label: titleLabel,
@@ -26690,8 +26756,8 @@ var AgentGUIProviderReadinessGatePane = memo3(
26690
26756
  sharedAgentOwnerSeparator: labels.sharedAgentOwnerSeparator
26691
26757
  }
26692
26758
  ) }),
26693
- /* @__PURE__ */ jsx44("p", { className: AgentGUINode_styles_default.emptyProviderGateDescription, children: content.description }),
26694
- pendingLabel && !action ? /* @__PURE__ */ jsx44(
26759
+ /* @__PURE__ */ jsx45("p", { className: AgentGUINode_styles_default.emptyProviderGateDescription, children: content.description }),
26760
+ pendingLabel && !action ? /* @__PURE__ */ jsx45(
26695
26761
  "div",
26696
26762
  {
26697
26763
  className: AgentGUINode_styles_default.emptyProviderGateStatus,
@@ -26699,7 +26765,7 @@ var AgentGUIProviderReadinessGatePane = memo3(
26699
26765
  children: pendingLabel
26700
26766
  }
26701
26767
  ) : null,
26702
- action ? /* @__PURE__ */ jsx44(
26768
+ action ? /* @__PURE__ */ jsx45(
26703
26769
  Button,
26704
26770
  {
26705
26771
  type: "button",
@@ -26718,7 +26784,7 @@ var AgentGUIProviderReadinessGatePane = memo3(
26718
26784
  },
26719
26785
  children: isPending && pendingLabel ? pendingLabel : content.actionLabel
26720
26786
  }
26721
- ) : content.actionLabel ? /* @__PURE__ */ jsx44(
26787
+ ) : content.actionLabel ? /* @__PURE__ */ jsx45(
26722
26788
  Button,
26723
26789
  {
26724
26790
  type: "button",
@@ -26741,7 +26807,7 @@ function AgentGUIUnifiedProviderIcon({
26741
26807
  presentation
26742
26808
  }) {
26743
26809
  const iconUrl = presentation?.iconUrl?.trim() || agentColorfulUrl;
26744
- return /* @__PURE__ */ jsx44("span", { "aria-hidden": "true", className: AgentGUINode_styles_default.providerRailAvatar, children: /* @__PURE__ */ jsx44(
26810
+ return /* @__PURE__ */ jsx45("span", { "aria-hidden": "true", className: AgentGUINode_styles_default.providerRailAvatar, children: /* @__PURE__ */ jsx45(
26745
26811
  "img",
26746
26812
  {
26747
26813
  alt: "",
@@ -26756,7 +26822,7 @@ function AgentGUIProviderIconVisual({
26756
26822
  icon,
26757
26823
  imageClassName
26758
26824
  }) {
26759
- return /* @__PURE__ */ jsx44(
26825
+ return /* @__PURE__ */ jsx45(
26760
26826
  "img",
26761
26827
  {
26762
26828
  alt: "",
@@ -26772,14 +26838,14 @@ function AgentGUIAgentAvatarVisual({
26772
26838
  imageClassName,
26773
26839
  presentation
26774
26840
  }) {
26775
- return /* @__PURE__ */ jsxs32(
26841
+ return /* @__PURE__ */ jsxs33(
26776
26842
  "span",
26777
26843
  {
26778
26844
  "aria-hidden": "true",
26779
26845
  className: cn6(AgentGUINode_styles_default.agentAvatar, className),
26780
26846
  "data-agent-target-id": presentation.agentTargetId,
26781
26847
  children: [
26782
- /* @__PURE__ */ jsx44(
26848
+ /* @__PURE__ */ jsx45(
26783
26849
  "img",
26784
26850
  {
26785
26851
  alt: "",
@@ -26788,7 +26854,7 @@ function AgentGUIAgentAvatarVisual({
26788
26854
  src: presentation.iconUrl
26789
26855
  }
26790
26856
  ),
26791
- presentation.badge?.iconUrl ? /* @__PURE__ */ jsx44("span", { className: AgentGUINode_styles_default.agentAvatarBadge, children: /* @__PURE__ */ jsx44(
26857
+ presentation.badge?.iconUrl ? /* @__PURE__ */ jsx45("span", { className: AgentGUINode_styles_default.agentAvatarBadge, children: /* @__PURE__ */ jsx45(
26792
26858
  "img",
26793
26859
  {
26794
26860
  alt: "",
@@ -26812,16 +26878,16 @@ function EmptyHeroTitle({
26812
26878
  }) {
26813
26879
  const providerStart = providerLabel ? label.indexOf(providerLabel) : -1;
26814
26880
  if (!shouldEmphasizeEmptyHeroProvider(label) || providerStart < 0) {
26815
- return /* @__PURE__ */ jsx44(Fragment13, { children: label });
26881
+ return /* @__PURE__ */ jsx45(Fragment13, { children: label });
26816
26882
  }
26817
26883
  const providerEnd = providerStart + providerLabel.length;
26818
26884
  const selectedAgentTargetId = selectedAgentTarget?.targetId ?? `local:${selectedAgentTarget?.provider ?? ""}`;
26819
26885
  const canSwitchProvider = agentTargets.length > 1 && selectedAgentTarget && onProviderSelect;
26820
26886
  const providerName = label.slice(providerStart, providerEnd);
26821
- return /* @__PURE__ */ jsxs32(Fragment13, { children: [
26887
+ return /* @__PURE__ */ jsxs33(Fragment13, { children: [
26822
26888
  label.slice(0, providerStart),
26823
- canSwitchProvider ? /* @__PURE__ */ jsxs32(
26824
- Select4,
26889
+ canSwitchProvider ? /* @__PURE__ */ jsxs33(
26890
+ Select5,
26825
26891
  {
26826
26892
  value: selectedAgentTargetId,
26827
26893
  onValueChange: (nextTargetId) => {
@@ -26837,14 +26903,14 @@ function EmptyHeroTitle({
26837
26903
  });
26838
26904
  },
26839
26905
  children: [
26840
- /* @__PURE__ */ jsx44(
26841
- SelectTrigger4,
26906
+ /* @__PURE__ */ jsx45(
26907
+ SelectTrigger5,
26842
26908
  {
26843
26909
  size: "sm",
26844
26910
  "aria-label": providerSelectLabel,
26845
26911
  title: providerSelectLabel,
26846
26912
  className: AgentGUINode_styles_default.emptyHeroProviderSelect,
26847
- children: /* @__PURE__ */ jsx44(
26913
+ children: /* @__PURE__ */ jsx45(
26848
26914
  AgentGUIAgentTargetName,
26849
26915
  {
26850
26916
  className: cn6(AgentGUINode_styles_default.emptyHeroProvider, "max-w-[240px]"),
@@ -26854,21 +26920,21 @@ function EmptyHeroTitle({
26854
26920
  )
26855
26921
  }
26856
26922
  ),
26857
- /* @__PURE__ */ jsx44(
26858
- SelectContent4,
26923
+ /* @__PURE__ */ jsx45(
26924
+ SelectContent5,
26859
26925
  {
26860
26926
  align: "center",
26861
26927
  className: cn6(
26862
26928
  AgentGUINode_styles_default.composerMenuContent,
26863
26929
  "min-w-[190px] max-w-[min(420px,calc(100vw-32px))]"
26864
26930
  ),
26865
- children: agentTargets.map((target) => /* @__PURE__ */ jsx44(
26866
- SelectItem4,
26931
+ children: agentTargets.map((target) => /* @__PURE__ */ jsx45(
26932
+ SelectItem5,
26867
26933
  {
26868
26934
  value: target.targetId,
26869
26935
  className: cn6(AgentGUINode_styles_default.composerMenuItem, "gap-2"),
26870
- children: /* @__PURE__ */ jsxs32("span", { className: "flex min-w-0 items-center gap-1.5", children: [
26871
- /* @__PURE__ */ jsx44(
26936
+ children: /* @__PURE__ */ jsxs33("span", { className: "flex min-w-0 items-center gap-1.5", children: [
26937
+ /* @__PURE__ */ jsx45(
26872
26938
  "img",
26873
26939
  {
26874
26940
  alt: "",
@@ -26880,7 +26946,7 @@ function EmptyHeroTitle({
26880
26946
  ).iconUrl
26881
26947
  }
26882
26948
  ),
26883
- /* @__PURE__ */ jsx44(
26949
+ /* @__PURE__ */ jsx45(
26884
26950
  AgentGUIAgentTargetName,
26885
26951
  {
26886
26952
  ownerSeparator: sharedAgentOwnerSeparator,
@@ -26895,14 +26961,14 @@ function EmptyHeroTitle({
26895
26961
  )
26896
26962
  ]
26897
26963
  }
26898
- ) : selectedAgentTarget ? /* @__PURE__ */ jsx44(
26964
+ ) : selectedAgentTarget ? /* @__PURE__ */ jsx45(
26899
26965
  AgentGUIAgentTargetName,
26900
26966
  {
26901
26967
  className: cn6(AgentGUINode_styles_default.emptyHeroProvider, "max-w-[240px]"),
26902
26968
  ownerSeparator: sharedAgentOwnerSeparator,
26903
26969
  target: selectedAgentTarget
26904
26970
  }
26905
- ) : /* @__PURE__ */ jsx44("span", { className: AgentGUINode_styles_default.emptyHeroProvider, children: providerName }),
26971
+ ) : /* @__PURE__ */ jsx45("span", { className: AgentGUINode_styles_default.emptyHeroProvider, children: providerName }),
26906
26972
  label.slice(providerEnd)
26907
26973
  ] });
26908
26974
  }
@@ -26910,7 +26976,7 @@ function EmptyHeroTitle({
26910
26976
  // agent-gui/agentGuiNode/view/AgentGUIProviderManagerDialog.tsx
26911
26977
  import {
26912
26978
  useRef as useRef35,
26913
- useState as useState24
26979
+ useState as useState25
26914
26980
  } from "react";
26915
26981
  import { CircleMinus, CirclePlus } from "lucide-react";
26916
26982
  import {
@@ -26922,7 +26988,7 @@ import {
26922
26988
  DialogTitle,
26923
26989
  toast as toast3
26924
26990
  } from "@tutti-os/ui-system";
26925
- import { jsx as jsx45, jsxs as jsxs33 } from "react/jsx-runtime";
26991
+ import { jsx as jsx46, jsxs as jsxs34 } from "react/jsx-runtime";
26926
26992
  var AGENT_MANAGER_LONG_PRESS_MOVE_TOLERANCE_PX = 8;
26927
26993
  var AGENT_MANAGER_DROP_HYSTERESIS_PX = 8;
26928
26994
  function AgentGUIProviderManagerDialog({
@@ -26943,17 +27009,17 @@ function AgentGUIProviderManagerDialog({
26943
27009
  const disabledTargets = targets.filter(
26944
27010
  (target) => hidden.has(target.targetId)
26945
27011
  );
26946
- const [editing, setEditing] = useState24(false);
26947
- const [dragState, setDragState] = useState24(
27012
+ const [editing, setEditing] = useState25(false);
27013
+ const [dragState, setDragState] = useState25(
26948
27014
  null
26949
27015
  );
26950
- const [dragOverZone, setDragOverZone] = useState24(
27016
+ const [dragOverZone, setDragOverZone] = useState25(
26951
27017
  null
26952
27018
  );
26953
- const [dragPreview, setDragPreview] = useState24(null);
27019
+ const [dragPreview, setDragPreview] = useState25(null);
26954
27020
  const dragStateRef = useRef35(null);
26955
27021
  const dragPreviewRef = useRef35(null);
26956
- const [longPressTargetId, setLongPressTargetId] = useState24(
27022
+ const [longPressTargetId, setLongPressTargetId] = useState25(
26957
27023
  null
26958
27024
  );
26959
27025
  const longPressOriginRef = useRef35(null);
@@ -27145,7 +27211,7 @@ function AgentGUIProviderManagerDialog({
27145
27211
  };
27146
27212
  const disabledDropBlocked = dragState?.source === "available" && (finalAvailableAgent || running.has(dragState.targetId));
27147
27213
  const disabledDropBlockedByRunning = dragState?.source === "available" && running.has(dragState.targetId);
27148
- return /* @__PURE__ */ jsx45(Dialog, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsxs33(
27214
+ return /* @__PURE__ */ jsx46(Dialog, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsxs34(
27149
27215
  DialogContent,
27150
27216
  {
27151
27217
  className: "nodrag tsh-desktop-no-drag flex max-h-[min(680px,calc(100vh-32px))] flex-col gap-0 overflow-hidden p-0 [-webkit-app-region:no-drag] sm:max-w-[520px]",
@@ -27160,17 +27226,17 @@ function AgentGUIProviderManagerDialog({
27160
27226
  setEditing(false);
27161
27227
  },
27162
27228
  children: [
27163
- /* @__PURE__ */ jsxs33(DialogHeader, { className: "shrink-0 border-b border-[var(--border-1)] px-5 py-4", children: [
27164
- /* @__PURE__ */ jsx45(DialogTitle, { children: labels.manageAgentsTitle }),
27165
- /* @__PURE__ */ jsx45(DialogDescription, { children: labels.manageAgentsDescription })
27229
+ /* @__PURE__ */ jsxs34(DialogHeader, { className: "shrink-0 border-b border-[var(--border-1)] px-5 py-4", children: [
27230
+ /* @__PURE__ */ jsx46(DialogTitle, { children: labels.manageAgentsTitle }),
27231
+ /* @__PURE__ */ jsx46(DialogDescription, { children: labels.manageAgentsDescription })
27166
27232
  ] }),
27167
- /* @__PURE__ */ jsxs33(
27233
+ /* @__PURE__ */ jsxs34(
27168
27234
  "div",
27169
27235
  {
27170
27236
  className: "min-h-0 flex-1 overflow-y-auto px-5 py-4",
27171
27237
  onClick: exitEditingFromBlankSpace,
27172
27238
  children: [
27173
- /* @__PURE__ */ jsxs33(
27239
+ /* @__PURE__ */ jsxs34(
27174
27240
  "section",
27175
27241
  {
27176
27242
  "aria-labelledby": "agent-manager-available-heading",
@@ -27180,7 +27246,7 @@ function AgentGUIProviderManagerDialog({
27180
27246
  onDragOver: (event) => dragOverDropZone(event, "available"),
27181
27247
  onDrop: (event) => dropIntoZone(event, "available"),
27182
27248
  children: [
27183
- /* @__PURE__ */ jsx45(
27249
+ /* @__PURE__ */ jsx46(
27184
27250
  "h3",
27185
27251
  {
27186
27252
  className: "mb-3 text-[12px] font-medium text-[var(--text-secondary)]",
@@ -27188,7 +27254,7 @@ function AgentGUIProviderManagerDialog({
27188
27254
  children: labels.manageAgentsAvailable
27189
27255
  }
27190
27256
  ),
27191
- availableTargets.length > 0 ? /* @__PURE__ */ jsx45(
27257
+ availableTargets.length > 0 ? /* @__PURE__ */ jsx46(
27192
27258
  "div",
27193
27259
  {
27194
27260
  "aria-label": labels.manageAgentsAvailable,
@@ -27199,7 +27265,7 @@ function AgentGUIProviderManagerDialog({
27199
27265
  children: availableTargets.map((target) => {
27200
27266
  const label = target.label.trim() || target.provider;
27201
27267
  const targetRunning = running.has(target.targetId);
27202
- return /* @__PURE__ */ jsxs33(
27268
+ return /* @__PURE__ */ jsxs34(
27203
27269
  "div",
27204
27270
  {
27205
27271
  "aria-label": labels.dragAgentToReorder(label),
@@ -27236,7 +27302,7 @@ function AgentGUIProviderManagerDialog({
27236
27302
  role: "listitem",
27237
27303
  tabIndex: 0,
27238
27304
  children: [
27239
- dragPreview?.overTargetId === target.targetId ? /* @__PURE__ */ jsx45(
27305
+ dragPreview?.overTargetId === target.targetId ? /* @__PURE__ */ jsx46(
27240
27306
  "span",
27241
27307
  {
27242
27308
  "aria-hidden": "true",
@@ -27245,7 +27311,7 @@ function AgentGUIProviderManagerDialog({
27245
27311
  "data-testid": "agent-gui-provider-manager-drop-indicator"
27246
27312
  }
27247
27313
  ) : null,
27248
- editing ? /* @__PURE__ */ jsx45(
27314
+ editing ? /* @__PURE__ */ jsx46(
27249
27315
  Button5,
27250
27316
  {
27251
27317
  "aria-label": labels.removeAgentFromSidebar(label),
@@ -27263,10 +27329,10 @@ function AgentGUIProviderManagerDialog({
27263
27329
  title: targetRunning ? labels.manageAgentsRunningBlocked(label) : finalAvailableAgent ? labels.manageAgentsKeepOneAvailable : void 0,
27264
27330
  type: "button",
27265
27331
  variant: "ghost",
27266
- children: /* @__PURE__ */ jsx45(CircleMinus, { "aria-hidden": "true", className: "size-4" })
27332
+ children: /* @__PURE__ */ jsx46(CircleMinus, { "aria-hidden": "true", className: "size-4" })
27267
27333
  }
27268
27334
  ) : null,
27269
- /* @__PURE__ */ jsx45(
27335
+ /* @__PURE__ */ jsx46(
27270
27336
  AgentGUIProviderIconVisual,
27271
27337
  {
27272
27338
  ariaHidden: true,
@@ -27277,18 +27343,18 @@ function AgentGUIProviderManagerDialog({
27277
27343
  imageClassName: "size-9 shrink-0 rounded-[9px] object-cover"
27278
27344
  }
27279
27345
  ),
27280
- /* @__PURE__ */ jsx45("span", { className: "mt-2 block w-full truncate text-center text-[12px] font-medium text-[var(--text-primary)]", children: label })
27346
+ /* @__PURE__ */ jsx46("span", { className: "mt-2 block w-full truncate text-center text-[12px] font-medium text-[var(--text-primary)]", children: label })
27281
27347
  ]
27282
27348
  },
27283
27349
  target.targetId
27284
27350
  );
27285
27351
  })
27286
27352
  }
27287
- ) : /* @__PURE__ */ jsx45("p", { className: "rounded-[8px] bg-[var(--transparency-block)] px-3 py-4 text-center text-[12px] text-[var(--text-tertiary)]", children: labels.manageAgentsNoAvailable })
27353
+ ) : /* @__PURE__ */ jsx46("p", { className: "rounded-[8px] bg-[var(--transparency-block)] px-3 py-4 text-center text-[12px] text-[var(--text-tertiary)]", children: labels.manageAgentsNoAvailable })
27288
27354
  ]
27289
27355
  }
27290
27356
  ),
27291
- /* @__PURE__ */ jsxs33(
27357
+ /* @__PURE__ */ jsxs34(
27292
27358
  "section",
27293
27359
  {
27294
27360
  "aria-labelledby": "agent-manager-disabled-heading",
@@ -27304,7 +27370,7 @@ function AgentGUIProviderManagerDialog({
27304
27370
  )?.label ?? ""
27305
27371
  ) : labels.manageAgentsKeepOneAvailable : void 0,
27306
27372
  children: [
27307
- /* @__PURE__ */ jsx45(
27373
+ /* @__PURE__ */ jsx46(
27308
27374
  "h3",
27309
27375
  {
27310
27376
  className: "mb-3 text-[12px] font-medium text-[var(--text-secondary)]",
@@ -27312,7 +27378,7 @@ function AgentGUIProviderManagerDialog({
27312
27378
  children: labels.manageAgentsDisabled
27313
27379
  }
27314
27380
  ),
27315
- disabledTargets.length > 0 ? /* @__PURE__ */ jsx45(
27381
+ disabledTargets.length > 0 ? /* @__PURE__ */ jsx46(
27316
27382
  "div",
27317
27383
  {
27318
27384
  "aria-label": labels.manageAgentsDisabled,
@@ -27322,7 +27388,7 @@ function AgentGUIProviderManagerDialog({
27322
27388
  role: "list",
27323
27389
  children: disabledTargets.map((target) => {
27324
27390
  const label = target.label.trim() || target.provider;
27325
- return /* @__PURE__ */ jsxs33(
27391
+ return /* @__PURE__ */ jsxs34(
27326
27392
  "div",
27327
27393
  {
27328
27394
  "aria-label": labels.dragAgentToReorder(label),
@@ -27358,7 +27424,7 @@ function AgentGUIProviderManagerDialog({
27358
27424
  role: "listitem",
27359
27425
  tabIndex: 0,
27360
27426
  children: [
27361
- dragPreview?.overTargetId === target.targetId ? /* @__PURE__ */ jsx45(
27427
+ dragPreview?.overTargetId === target.targetId ? /* @__PURE__ */ jsx46(
27362
27428
  "span",
27363
27429
  {
27364
27430
  "aria-hidden": "true",
@@ -27367,7 +27433,7 @@ function AgentGUIProviderManagerDialog({
27367
27433
  "data-testid": "agent-gui-provider-manager-drop-indicator"
27368
27434
  }
27369
27435
  ) : null,
27370
- editing ? /* @__PURE__ */ jsx45(
27436
+ editing ? /* @__PURE__ */ jsx46(
27371
27437
  Button5,
27372
27438
  {
27373
27439
  "aria-label": labels.addAgentToSidebar(label),
@@ -27379,10 +27445,10 @@ function AgentGUIProviderManagerDialog({
27379
27445
  size: "icon-xs",
27380
27446
  type: "button",
27381
27447
  variant: "ghost",
27382
- children: /* @__PURE__ */ jsx45(CirclePlus, { "aria-hidden": "true", className: "size-4" })
27448
+ children: /* @__PURE__ */ jsx46(CirclePlus, { "aria-hidden": "true", className: "size-4" })
27383
27449
  }
27384
27450
  ) : null,
27385
- /* @__PURE__ */ jsx45(
27451
+ /* @__PURE__ */ jsx46(
27386
27452
  AgentGUIProviderIconVisual,
27387
27453
  {
27388
27454
  ariaHidden: true,
@@ -27393,14 +27459,14 @@ function AgentGUIProviderManagerDialog({
27393
27459
  imageClassName: "size-9 shrink-0 rounded-[9px] object-cover opacity-70 grayscale-[0.25]"
27394
27460
  }
27395
27461
  ),
27396
- /* @__PURE__ */ jsx45("span", { className: "mt-2 block w-full truncate text-center text-[12px] font-medium text-[var(--text-secondary)]", children: label })
27462
+ /* @__PURE__ */ jsx46("span", { className: "mt-2 block w-full truncate text-center text-[12px] font-medium text-[var(--text-secondary)]", children: label })
27397
27463
  ]
27398
27464
  },
27399
27465
  target.targetId
27400
27466
  );
27401
27467
  })
27402
27468
  }
27403
- ) : /* @__PURE__ */ jsx45("p", { className: "flex min-h-[72px] items-center justify-center rounded-[8px] border border-dashed border-[var(--border-1)] px-3 py-4 text-center text-[12px] text-[var(--text-tertiary)]", children: labels.manageAgentsNoDisabled })
27469
+ ) : /* @__PURE__ */ jsx46("p", { className: "flex min-h-[72px] items-center justify-center rounded-[8px] border border-dashed border-[var(--border-1)] px-3 py-4 text-center text-[12px] text-[var(--text-tertiary)]", children: labels.manageAgentsNoDisabled })
27404
27470
  ]
27405
27471
  }
27406
27472
  )
@@ -27413,7 +27479,7 @@ function AgentGUIProviderManagerDialog({
27413
27479
  }
27414
27480
 
27415
27481
  // agent-gui/agentGuiNode/view/useAgentGUIProviderRailPreferences.ts
27416
- import { useCallback as useCallback43, useEffect as useEffect29, useState as useState25 } from "react";
27482
+ import { useCallback as useCallback43, useEffect as useEffect29, useState as useState26 } from "react";
27417
27483
  function readAgentGUIProviderRailPreferences(storageKey) {
27418
27484
  return parseAgentGUIProviderRailPreferences(
27419
27485
  globalThis.localStorage?.getItem(storageKey)
@@ -27421,7 +27487,7 @@ function readAgentGUIProviderRailPreferences(storageKey) {
27421
27487
  }
27422
27488
  function useAgentGUIProviderRailPreferences() {
27423
27489
  const storageKey = agentGUIProviderRailOrderStorageKey();
27424
- const [preferences, setPreferences] = useState25(
27490
+ const [preferences, setPreferences] = useState26(
27425
27491
  () => readAgentGUIProviderRailPreferences(storageKey)
27426
27492
  );
27427
27493
  useEffect29(() => {
@@ -27463,7 +27529,7 @@ function useAgentGUIProviderRailPreferences() {
27463
27529
  }
27464
27530
 
27465
27531
  // agent-gui/agentGuiNode/view/AgentGUIProviderRail.tsx
27466
- import { jsx as jsx46, jsxs as jsxs34 } from "react/jsx-runtime";
27532
+ import { jsx as jsx47, jsxs as jsxs35 } from "react/jsx-runtime";
27467
27533
  var agentGUIProviderRailCatalog = [
27468
27534
  ...migratedAgentGUIProviderIdentityCatalog
27469
27535
  ].sort((left, right) => left.target.sortOrder - right.target.sortOrder);
@@ -27554,7 +27620,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
27554
27620
  persistPreferences: persistProviderRailPreferences,
27555
27621
  preferences: providerRailPreferences
27556
27622
  } = useAgentGUIProviderRailPreferences();
27557
- const [dragState, setDragState] = useState26(null);
27623
+ const [dragState, setDragState] = useState27(null);
27558
27624
  const dragStateRef = useRef36(null);
27559
27625
  const setProviderRailDragState = useCallback44(
27560
27626
  (nextDragState) => {
@@ -27862,7 +27928,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
27862
27928
  },
27863
27929
  [dragState, previewMode, agentTargetsLoading, setProviderRailDragState]
27864
27930
  );
27865
- const providerManagerDialog = /* @__PURE__ */ jsx46(
27931
+ const providerManagerDialog = /* @__PURE__ */ jsx47(
27866
27932
  AgentGUIProviderManagerDialog,
27867
27933
  {
27868
27934
  hiddenTargetIds: effectiveHiddenTargetIds,
@@ -27876,7 +27942,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
27876
27942
  }
27877
27943
  );
27878
27944
  if (providerRailMode === "exact" && !agentTargetsLoading && visibleProviderTiles.length === 0 && renderProviderRailEmpty) {
27879
- return /* @__PURE__ */ jsxs34(
27945
+ return /* @__PURE__ */ jsxs35(
27880
27946
  "div",
27881
27947
  {
27882
27948
  className: AgentGUINode_styles_default.providerRail,
@@ -27891,8 +27957,8 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
27891
27957
  }
27892
27958
  );
27893
27959
  }
27894
- return /* @__PURE__ */ jsxs34("div", { className: AgentGUINode_styles_default.providerRail, children: [
27895
- /* @__PURE__ */ jsxs34(
27960
+ return /* @__PURE__ */ jsxs35("div", { className: AgentGUINode_styles_default.providerRail, children: [
27961
+ /* @__PURE__ */ jsxs35(
27896
27962
  "div",
27897
27963
  {
27898
27964
  className: "flex min-h-0 w-full flex-col items-center",
@@ -27902,7 +27968,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
27902
27968
  onDragOver: handleProviderRailContainerDragOver,
27903
27969
  onDrop: commitProviderRailDragDrop,
27904
27970
  children: [
27905
- /* @__PURE__ */ jsxs34(
27971
+ /* @__PURE__ */ jsxs35(
27906
27972
  "button",
27907
27973
  {
27908
27974
  type: "button",
@@ -27914,18 +27980,18 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
27914
27980
  disabled: previewMode,
27915
27981
  onClick: selectAllProviders,
27916
27982
  children: [
27917
- /* @__PURE__ */ jsx46(
27983
+ /* @__PURE__ */ jsx47(
27918
27984
  AgentGUIUnifiedProviderIcon,
27919
27985
  {
27920
27986
  presentation: providerRailAllPresentation
27921
27987
  }
27922
27988
  ),
27923
- /* @__PURE__ */ jsx46("span", { className: AgentGUINode_styles_default.providerRailTileLabel, children: labels.conversationFilterAll })
27989
+ /* @__PURE__ */ jsx47("span", { className: AgentGUINode_styles_default.providerRailTileLabel, children: labels.conversationFilterAll })
27924
27990
  ]
27925
27991
  }
27926
27992
  ),
27927
- /* @__PURE__ */ jsx46("span", { "aria-hidden": "true", className: AgentGUINode_styles_default.providerRailSeparator }),
27928
- agentTargetsLoading ? [0, 1, 2].map((index) => /* @__PURE__ */ jsx46(
27993
+ /* @__PURE__ */ jsx47("span", { "aria-hidden": "true", className: AgentGUINode_styles_default.providerRailSeparator }),
27994
+ agentTargetsLoading ? [0, 1, 2].map((index) => /* @__PURE__ */ jsx47(
27929
27995
  "button",
27930
27996
  {
27931
27997
  type: "button",
@@ -27935,7 +28001,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
27935
28001
  "data-loading": "true",
27936
28002
  "data-selected": "false",
27937
28003
  disabled: true,
27938
- children: /* @__PURE__ */ jsx46(
28004
+ children: /* @__PURE__ */ jsx47(
27939
28005
  "span",
27940
28006
  {
27941
28007
  "aria-hidden": "true",
@@ -27958,7 +28024,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
27958
28024
  label,
27959
28025
  target.badge?.label
27960
28026
  );
27961
- const tile = /* @__PURE__ */ jsx46(
28027
+ const tile = /* @__PURE__ */ jsx47(
27962
28028
  "button",
27963
28029
  {
27964
28030
  type: "button",
@@ -27978,8 +28044,8 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
27978
28044
  onDragEnd: clearProviderRailDragState,
27979
28045
  onDragOver: (event) => handleProviderRailDragOver(event, target),
27980
28046
  onDragStart: (event) => handleProviderRailDragStart(event, target),
27981
- children: /* @__PURE__ */ jsxs34("span", { className: AgentGUINode_styles_default.providerRailAvatar, children: [
27982
- /* @__PURE__ */ jsx46(
28047
+ children: /* @__PURE__ */ jsxs35("span", { className: AgentGUINode_styles_default.providerRailAvatar, children: [
28048
+ /* @__PURE__ */ jsx47(
27983
28049
  AgentGUIProviderIconVisual,
27984
28050
  {
27985
28051
  ariaHidden: true,
@@ -27990,7 +28056,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
27990
28056
  )
27991
28057
  }
27992
28058
  ),
27993
- target.badge?.iconUrl ? /* @__PURE__ */ jsx46("span", { "aria-hidden": "true", className: AgentGUINode_styles_default.agentAvatarBadge, children: /* @__PURE__ */ jsx46(
28059
+ target.badge?.iconUrl ? /* @__PURE__ */ jsx47("span", { "aria-hidden": "true", className: AgentGUINode_styles_default.agentAvatarBadge, children: /* @__PURE__ */ jsx47(
27994
28060
  "img",
27995
28061
  {
27996
28062
  alt: "",
@@ -27999,7 +28065,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
27999
28065
  src: target.badge.iconUrl
28000
28066
  }
28001
28067
  ) }) : null,
28002
- providerSelected && isBetaAgentProvider(target.provider) ? /* @__PURE__ */ jsx46(
28068
+ providerSelected && isBetaAgentProvider(target.provider) ? /* @__PURE__ */ jsx47(
28003
28069
  "img",
28004
28070
  {
28005
28071
  "aria-hidden": "true",
@@ -28015,9 +28081,9 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
28015
28081
  if (previewMode) {
28016
28082
  return tile;
28017
28083
  }
28018
- return /* @__PURE__ */ jsxs34(Tooltip5, { children: [
28019
- /* @__PURE__ */ jsx46(TooltipTrigger5, { asChild: true, children: tile }),
28020
- /* @__PURE__ */ jsx46(TooltipContent5, { side: "right", sideOffset: -4, children: label })
28084
+ return /* @__PURE__ */ jsxs35(Tooltip5, { children: [
28085
+ /* @__PURE__ */ jsx47(TooltipTrigger5, { asChild: true, children: tile }),
28086
+ /* @__PURE__ */ jsx47(TooltipContent5, { side: "right", sideOffset: -4, children: label })
28021
28087
  ] }, `${target.provider}:${target.targetId}:tooltip`);
28022
28088
  })
28023
28089
  ]
@@ -28028,10 +28094,10 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
28028
28094
  });
28029
28095
 
28030
28096
  // agent-gui/agentGuiNode/controller/AgentGUIConversationRailController.tsx
28031
- import { memo as memo9, useState as useState32 } from "react";
28097
+ import { memo as memo9, useState as useState33 } from "react";
28032
28098
 
28033
28099
  // agent-gui/agentGuiNode/view/AgentGUIConversationRailPane.tsx
28034
- import { Fragment as Fragment17, memo as memo8, useEffect as useEffect30, useMemo as useMemo35, useRef as useRef39, useState as useState31 } from "react";
28100
+ import { Fragment as Fragment17, memo as memo8, useEffect as useEffect30, useMemo as useMemo35, useRef as useRef39, useState as useState32 } from "react";
28035
28101
  import { Button as SystemButton } from "@tutti-os/ui-system";
28036
28102
  import { ScrollArea } from "@tutti-os/ui-system/components";
28037
28103
  import { CreateChatIcon as CreateChatIcon2 } from "@tutti-os/ui-system/icons";
@@ -28049,7 +28115,7 @@ var styles3 = {
28049
28115
  var RoomIssueNode_styles_default = styles3;
28050
28116
 
28051
28117
  // agent-gui/RoomIssueNode/TaskSearchField.tsx
28052
- import { jsx as jsx47, jsxs as jsxs35 } from "react/jsx-runtime";
28118
+ import { jsx as jsx48, jsxs as jsxs36 } from "react/jsx-runtime";
28053
28119
  function TaskSearchField({
28054
28120
  ariaLabel,
28055
28121
  className,
@@ -28063,13 +28129,13 @@ function TaskSearchField({
28063
28129
  "use memo";
28064
28130
  const { t } = useTranslation();
28065
28131
  const searchInput = useComposedInputValue({ onCommit: onChange, value });
28066
- return /* @__PURE__ */ jsxs35(
28132
+ return /* @__PURE__ */ jsxs36(
28067
28133
  "div",
28068
28134
  {
28069
28135
  className: `${RoomIssueNode_styles_default.searchField} ${className ?? ""}`.trim(),
28070
28136
  "data-has-value": searchInput.value ? "true" : "false",
28071
28137
  children: [
28072
- /* @__PURE__ */ jsx47(
28138
+ /* @__PURE__ */ jsx48(
28073
28139
  Input,
28074
28140
  {
28075
28141
  type: "search",
@@ -28092,7 +28158,7 @@ function TaskSearchField({
28092
28158
  "data-testid": dataTestId
28093
28159
  }
28094
28160
  ),
28095
- searchInput.value ? /* @__PURE__ */ jsx47(
28161
+ searchInput.value ? /* @__PURE__ */ jsx48(
28096
28162
  "button",
28097
28163
  {
28098
28164
  type: "button",
@@ -28100,7 +28166,7 @@ function TaskSearchField({
28100
28166
  "aria-label": clearAriaLabel ?? t("common.clear"),
28101
28167
  onMouseDown: (event) => event.preventDefault(),
28102
28168
  onClick: searchInput.clearValue,
28103
- children: /* @__PURE__ */ jsx47(CloseLinedIcon, { "aria-hidden": "true" })
28169
+ children: /* @__PURE__ */ jsx48(CloseLinedIcon, { "aria-hidden": "true" })
28104
28170
  }
28105
28171
  ) : null
28106
28172
  ]
@@ -28118,7 +28184,7 @@ function isTaskSearchImeComposing(event) {
28118
28184
  }
28119
28185
 
28120
28186
  // agent-gui/agentGuiNode/AgentConversationListSkeleton.tsx
28121
- import { jsx as jsx48, jsxs as jsxs36 } from "react/jsx-runtime";
28187
+ import { jsx as jsx49, jsxs as jsxs37 } from "react/jsx-runtime";
28122
28188
  var SKELETON_ROWS = [
28123
28189
  { id: "first", size: "long" },
28124
28190
  { id: "second", size: "medium" },
@@ -28130,23 +28196,23 @@ function AgentConversationListSkeleton({
28130
28196
  label
28131
28197
  }) {
28132
28198
  "use memo";
28133
- return /* @__PURE__ */ jsx48(
28199
+ return /* @__PURE__ */ jsx49(
28134
28200
  "div",
28135
28201
  {
28136
28202
  className: "agent-gui-node__conversation-list-skeleton",
28137
28203
  role: "status",
28138
28204
  "aria-label": label,
28139
28205
  "data-testid": "agent-gui-conversation-list-loading-skeleton",
28140
- children: SKELETON_ROWS.map((row) => /* @__PURE__ */ jsxs36(
28206
+ children: SKELETON_ROWS.map((row) => /* @__PURE__ */ jsxs37(
28141
28207
  "div",
28142
28208
  {
28143
28209
  className: "agent-gui-node__conversation-list-skeleton-row",
28144
28210
  "data-size": row.size,
28145
28211
  "aria-hidden": "true",
28146
28212
  children: [
28147
- /* @__PURE__ */ jsx48("span", { className: "agent-gui-node__conversation-list-skeleton-spine" }),
28148
- /* @__PURE__ */ jsx48("span", { className: "agent-gui-node__conversation-list-skeleton-rib agent-gui-node__conversation-list-skeleton-rib-primary" }),
28149
- /* @__PURE__ */ jsx48("span", { className: "agent-gui-node__conversation-list-skeleton-rib agent-gui-node__conversation-list-skeleton-rib-secondary" })
28213
+ /* @__PURE__ */ jsx49("span", { className: "agent-gui-node__conversation-list-skeleton-spine" }),
28214
+ /* @__PURE__ */ jsx49("span", { className: "agent-gui-node__conversation-list-skeleton-rib agent-gui-node__conversation-list-skeleton-rib-primary" }),
28215
+ /* @__PURE__ */ jsx49("span", { className: "agent-gui-node__conversation-list-skeleton-rib agent-gui-node__conversation-list-skeleton-rib-secondary" })
28150
28216
  ]
28151
28217
  },
28152
28218
  row.id
@@ -28774,7 +28840,7 @@ function reduceAgentGUIConversationRailViewState(state, action) {
28774
28840
  }
28775
28841
 
28776
28842
  // agent-gui/agentGuiNode/controller/useAgentGUIProjectDrag.ts
28777
- import { useCallback as useCallback45, useState as useState27 } from "react";
28843
+ import { useCallback as useCallback45, useState as useState28 } from "react";
28778
28844
  var PROJECT_DRAG_SCROLL_EDGE_PX = 40;
28779
28845
  function projectDragAutoScrollDelta(clientY, bounds) {
28780
28846
  if (clientY < bounds.top + PROJECT_DRAG_SCROLL_EDGE_PX) {
@@ -28792,9 +28858,9 @@ function projectDragAutoScrollDelta(clientY, bounds) {
28792
28858
  return 0;
28793
28859
  }
28794
28860
  function useAgentGUIProjectDrag(input) {
28795
- const [dragState, setDragState] = useState27(null);
28796
- const [isMovePending, setIsMovePending] = useState27(false);
28797
- const [runtime] = useState27(() => ({
28861
+ const [dragState, setDragState] = useState28(null);
28862
+ const [isMovePending, setIsMovePending] = useState28(false);
28863
+ const [runtime] = useState28(() => ({
28798
28864
  active: false,
28799
28865
  clientY: null,
28800
28866
  dragState: null,
@@ -28984,10 +29050,10 @@ import { WorkspaceUserProjectSelect as WorkspaceUserProjectSelect2 } from "@tutt
28984
29050
  import { BareIconButton as BareIconButton2 } from "@tutti-os/ui-system/components";
28985
29051
 
28986
29052
  // app/renderer/components/icons/PinFilledIcon.tsx
28987
- import { jsx as jsx49 } from "react/jsx-runtime";
29053
+ import { jsx as jsx50 } from "react/jsx-runtime";
28988
29054
  function PinFilledIcon(props) {
28989
29055
  "use memo";
28990
- return /* @__PURE__ */ jsx49(
29056
+ return /* @__PURE__ */ jsx50(
28991
29057
  "svg",
28992
29058
  {
28993
29059
  xmlns: "http://www.w3.org/2000/svg",
@@ -28995,16 +29061,16 @@ function PinFilledIcon(props) {
28995
29061
  fill: "currentColor",
28996
29062
  "aria-hidden": true,
28997
29063
  ...props,
28998
- children: /* @__PURE__ */ jsx49("path", { d: "M21.6066 8.05025C22.1692 8.61286 22.4849 9.37592 22.4849 10.1716C22.4849 10.9672 22.1692 11.7303 21.6066 12.2929C21.044 12.8555 20.2809 13.1713 19.4853 13.1713C18.6896 13.1713 17.9266 12.8555 17.3639 12.2929L14.7054 14.9514L14.6142 15.0564C14.531 15.1669 14.4714 15.2943 14.4395 15.43C14.3972 15.6109 14.406 15.8 14.4651 15.9762L14.4678 15.9831L15.0873 17.8717L15.1466 18.072C15.2691 18.5425 15.2761 19.037 15.1646 19.5124C15.0372 20.0557 14.7607 20.5526 14.3663 20.9474L13.8284 21.4853C13.4533 21.8604 12.9446 22.0709 12.4142 22.0709C11.8838 22.0709 11.3751 21.8604 11 21.4853L7.46445 17.9497L4.63603 20.7782C4.2455 21.1687 3.61234 21.1687 3.22181 20.7782C2.83129 20.3877 2.83129 19.7545 3.22181 19.364L6.05024 16.5355L2.51471 13C2.13963 12.6249 1.92913 12.1162 1.92913 11.5858C1.92913 11.0554 2.13963 10.5466 2.51471 10.1716L3.05263 9.63365L3.20524 9.49209C3.57235 9.17309 4.01205 8.94693 4.48756 8.83539C5.03093 8.70798 5.59924 8.73494 6.12827 8.91273L8.01688 9.53214L8.02379 9.5349C8.19995 9.59404 8.38907 9.60282 8.57 9.56045C8.7057 9.52863 8.83304 9.46898 8.94358 9.38575L9.04854 9.2946L11.7071 6.63604C11.1445 6.07343 10.8287 5.31037 10.8287 4.51472C10.8287 3.71907 11.1445 2.95601 11.7071 2.3934C12.2697 1.83079 13.0328 1.51504 13.8284 1.51504C14.6241 1.51504 15.3871 1.83079 15.9497 2.3934L21.6066 8.05025Z" })
29064
+ children: /* @__PURE__ */ jsx50("path", { d: "M21.6066 8.05025C22.1692 8.61286 22.4849 9.37592 22.4849 10.1716C22.4849 10.9672 22.1692 11.7303 21.6066 12.2929C21.044 12.8555 20.2809 13.1713 19.4853 13.1713C18.6896 13.1713 17.9266 12.8555 17.3639 12.2929L14.7054 14.9514L14.6142 15.0564C14.531 15.1669 14.4714 15.2943 14.4395 15.43C14.3972 15.6109 14.406 15.8 14.4651 15.9762L14.4678 15.9831L15.0873 17.8717L15.1466 18.072C15.2691 18.5425 15.2761 19.037 15.1646 19.5124C15.0372 20.0557 14.7607 20.5526 14.3663 20.9474L13.8284 21.4853C13.4533 21.8604 12.9446 22.0709 12.4142 22.0709C11.8838 22.0709 11.3751 21.8604 11 21.4853L7.46445 17.9497L4.63603 20.7782C4.2455 21.1687 3.61234 21.1687 3.22181 20.7782C2.83129 20.3877 2.83129 19.7545 3.22181 19.364L6.05024 16.5355L2.51471 13C2.13963 12.6249 1.92913 12.1162 1.92913 11.5858C1.92913 11.0554 2.13963 10.5466 2.51471 10.1716L3.05263 9.63365L3.20524 9.49209C3.57235 9.17309 4.01205 8.94693 4.48756 8.83539C5.03093 8.70798 5.59924 8.73494 6.12827 8.91273L8.01688 9.53214L8.02379 9.5349C8.19995 9.59404 8.38907 9.60282 8.57 9.56045C8.7057 9.52863 8.83304 9.46898 8.94358 9.38575L9.04854 9.2946L11.7071 6.63604C11.1445 6.07343 10.8287 5.31037 10.8287 4.51472C10.8287 3.71907 11.1445 2.95601 11.7071 2.3934C12.2697 1.83079 13.0328 1.51504 13.8284 1.51504C14.6241 1.51504 15.3871 1.83079 15.9497 2.3934L21.6066 8.05025Z" })
28999
29065
  }
29000
29066
  );
29001
29067
  }
29002
29068
 
29003
29069
  // app/renderer/components/icons/PinLinedIcon.tsx
29004
- import { jsx as jsx50 } from "react/jsx-runtime";
29070
+ import { jsx as jsx51 } from "react/jsx-runtime";
29005
29071
  function PinLinedIcon(props) {
29006
29072
  "use memo";
29007
- return /* @__PURE__ */ jsx50(
29073
+ return /* @__PURE__ */ jsx51(
29008
29074
  "svg",
29009
29075
  {
29010
29076
  xmlns: "http://www.w3.org/2000/svg",
@@ -29012,7 +29078,7 @@ function PinLinedIcon(props) {
29012
29078
  fill: "currentColor",
29013
29079
  "aria-hidden": true,
29014
29080
  ...props,
29015
- children: /* @__PURE__ */ jsx50("path", { d: "M21.6066 8.05025C22.1692 8.61286 22.4849 9.37592 22.4849 10.1716C22.4849 10.9672 22.1692 11.7303 21.6066 12.2929C21.044 12.8555 20.2809 13.1713 19.4853 13.1713C18.6896 13.1713 17.9266 12.8555 17.3639 12.2929L14.7054 14.9514L14.6142 15.0564C14.531 15.1669 14.4714 15.2943 14.4395 15.43C14.3972 15.6109 14.406 15.8 14.4651 15.9762L14.4678 15.9831L15.0873 17.8717L15.1466 18.072C15.2691 18.5425 15.2761 19.037 15.1646 19.5124C15.0372 20.0557 14.7607 20.5526 14.3663 20.9474L13.8284 21.4853C13.4533 21.8604 12.9446 22.0709 12.4142 22.0709C11.8838 22.0709 11.3751 21.8604 11 21.4853L7.46445 17.9497L4.63603 20.7782C4.2455 21.1687 3.61234 21.1687 3.22181 20.7782C2.83129 20.3877 2.83129 19.7545 3.22181 19.364L6.05024 16.5355L2.51471 13C2.13963 12.6249 1.92913 12.1162 1.92913 11.5858C1.92913 11.0554 2.13963 10.5466 2.51471 10.1716L3.05263 9.63365L3.20524 9.49209C3.57235 9.17309 4.01205 8.94693 4.48756 8.83539C5.03093 8.70798 5.59924 8.73494 6.12827 8.91273L8.01688 9.53214L8.02379 9.5349C8.19995 9.59404 8.38907 9.60282 8.57 9.56045C8.7057 9.52863 8.83304 9.46898 8.94358 9.38575L9.04854 9.2946L11.7071 6.63604C11.1445 6.07343 10.8287 5.31037 10.8287 4.51472C10.8287 3.71907 11.1445 2.95601 11.7071 2.3934C12.2697 1.83079 13.0328 1.51504 13.8284 1.51504C14.6241 1.51504 15.3871 1.83079 15.9497 2.3934L21.6066 8.05025ZM14.5355 3.80761C14.348 3.62008 14.0936 3.51483 13.8284 3.51483C13.5632 3.51483 13.3088 3.62008 13.1213 3.80761C12.9338 3.99515 12.8285 4.2495 12.8285 4.51472C12.8285 4.74685 12.9091 4.97066 13.055 5.14863L13.2539 5.36822C13.5457 5.72416 13.7069 6.17177 13.7069 6.63604C13.7069 7.16647 13.4964 7.67518 13.1213 8.05025L10.4621 10.7095C10.0673 11.1038 9.57037 11.3803 9.02713 11.5078C8.48575 11.6347 7.92002 11.6071 7.39264 11.4311V11.4325L5.49781 10.811L5.49091 10.8082C5.31475 10.7491 5.12562 10.7403 4.94469 10.7827C4.76366 10.8251 4.59774 10.9172 4.46615 11.0486L3.92892 11.5858L12.4142 20.0711L12.9514 19.5338C13.0828 19.4022 13.1748 19.2363 13.2173 19.0553C13.2597 18.8744 13.2509 18.6852 13.1917 18.5091L13.189 18.5022L12.5675 16.6073L12.5682 16.6067C12.3924 16.0795 12.3654 15.514 12.4922 14.9729C12.6197 14.4296 12.8962 13.9327 13.2905 13.5379L15.9497 10.8787C16.3248 10.5036 16.8335 10.2931 17.3639 10.2931C17.8282 10.2931 18.2758 10.4543 18.6318 10.7461L18.8514 10.945C19.0293 11.0909 19.2531 11.1715 19.4853 11.1715C19.7505 11.1715 20.0048 11.0662 20.1924 10.8787C20.3799 10.6911 20.4852 10.4368 20.4852 10.1716C20.4852 9.90636 20.3799 9.652 20.1924 9.46447L14.5355 3.80761Z" })
29081
+ children: /* @__PURE__ */ jsx51("path", { d: "M21.6066 8.05025C22.1692 8.61286 22.4849 9.37592 22.4849 10.1716C22.4849 10.9672 22.1692 11.7303 21.6066 12.2929C21.044 12.8555 20.2809 13.1713 19.4853 13.1713C18.6896 13.1713 17.9266 12.8555 17.3639 12.2929L14.7054 14.9514L14.6142 15.0564C14.531 15.1669 14.4714 15.2943 14.4395 15.43C14.3972 15.6109 14.406 15.8 14.4651 15.9762L14.4678 15.9831L15.0873 17.8717L15.1466 18.072C15.2691 18.5425 15.2761 19.037 15.1646 19.5124C15.0372 20.0557 14.7607 20.5526 14.3663 20.9474L13.8284 21.4853C13.4533 21.8604 12.9446 22.0709 12.4142 22.0709C11.8838 22.0709 11.3751 21.8604 11 21.4853L7.46445 17.9497L4.63603 20.7782C4.2455 21.1687 3.61234 21.1687 3.22181 20.7782C2.83129 20.3877 2.83129 19.7545 3.22181 19.364L6.05024 16.5355L2.51471 13C2.13963 12.6249 1.92913 12.1162 1.92913 11.5858C1.92913 11.0554 2.13963 10.5466 2.51471 10.1716L3.05263 9.63365L3.20524 9.49209C3.57235 9.17309 4.01205 8.94693 4.48756 8.83539C5.03093 8.70798 5.59924 8.73494 6.12827 8.91273L8.01688 9.53214L8.02379 9.5349C8.19995 9.59404 8.38907 9.60282 8.57 9.56045C8.7057 9.52863 8.83304 9.46898 8.94358 9.38575L9.04854 9.2946L11.7071 6.63604C11.1445 6.07343 10.8287 5.31037 10.8287 4.51472C10.8287 3.71907 11.1445 2.95601 11.7071 2.3934C12.2697 1.83079 13.0328 1.51504 13.8284 1.51504C14.6241 1.51504 15.3871 1.83079 15.9497 2.3934L21.6066 8.05025ZM14.5355 3.80761C14.348 3.62008 14.0936 3.51483 13.8284 3.51483C13.5632 3.51483 13.3088 3.62008 13.1213 3.80761C12.9338 3.99515 12.8285 4.2495 12.8285 4.51472C12.8285 4.74685 12.9091 4.97066 13.055 5.14863L13.2539 5.36822C13.5457 5.72416 13.7069 6.17177 13.7069 6.63604C13.7069 7.16647 13.4964 7.67518 13.1213 8.05025L10.4621 10.7095C10.0673 11.1038 9.57037 11.3803 9.02713 11.5078C8.48575 11.6347 7.92002 11.6071 7.39264 11.4311V11.4325L5.49781 10.811L5.49091 10.8082C5.31475 10.7491 5.12562 10.7403 4.94469 10.7827C4.76366 10.8251 4.59774 10.9172 4.46615 11.0486L3.92892 11.5858L12.4142 20.0711L12.9514 19.5338C13.0828 19.4022 13.1748 19.2363 13.2173 19.0553C13.2597 18.8744 13.2509 18.6852 13.1917 18.5091L13.189 18.5022L12.5675 16.6073L12.5682 16.6067C12.3924 16.0795 12.3654 15.514 12.4922 14.9729C12.6197 14.4296 12.8962 13.9327 13.2905 13.5379L15.9497 10.8787C16.3248 10.5036 16.8335 10.2931 17.3639 10.2931C17.8282 10.2931 18.2758 10.4543 18.6318 10.7461L18.8514 10.945C19.0293 11.0909 19.2531 11.1715 19.4853 11.1715C19.7505 11.1715 20.0048 11.0662 20.1924 10.8787C20.3799 10.6911 20.4852 10.4368 20.4852 10.1716C20.4852 9.90636 20.3799 9.652 20.1924 9.46447L14.5355 3.80761Z" })
29016
29082
  }
29017
29083
  );
29018
29084
  }
@@ -29023,7 +29089,7 @@ import { useExternalStoreSnapshot as useExternalStoreSnapshot2 } from "@tutti-os
29023
29089
  // agent-gui/agentGuiNode/agentGuiNodeViewConversation.tsx
29024
29090
  import { Spinner as Spinner5 } from "@tutti-os/ui-system";
29025
29091
  import { AskLinedIcon } from "@tutti-os/ui-system/icons";
29026
- import { jsx as jsx51 } from "react/jsx-runtime";
29092
+ import { jsx as jsx52 } from "react/jsx-runtime";
29027
29093
  function ConversationMeta({
29028
29094
  item,
29029
29095
  nowMs,
@@ -29032,24 +29098,24 @@ function ConversationMeta({
29032
29098
  "use memo";
29033
29099
  const kind = conversationMetaKind(item);
29034
29100
  if (kind === "loading") {
29035
- return /* @__PURE__ */ jsx51(
29101
+ return /* @__PURE__ */ jsx52(
29036
29102
  "span",
29037
29103
  {
29038
29104
  className: AgentGUINode_styles_default.conversationMeta,
29039
29105
  "data-kind": kind,
29040
29106
  "data-testid": `agent-gui-conversation-meta-${item.id}`,
29041
- children: /* @__PURE__ */ jsx51(LoadingGlyph, {})
29107
+ children: /* @__PURE__ */ jsx52(LoadingGlyph, {})
29042
29108
  }
29043
29109
  );
29044
29110
  }
29045
29111
  if (kind === "waiting") {
29046
- return /* @__PURE__ */ jsx51(
29112
+ return /* @__PURE__ */ jsx52(
29047
29113
  "span",
29048
29114
  {
29049
29115
  className: AgentGUINode_styles_default.conversationMeta,
29050
29116
  "data-kind": kind,
29051
29117
  "data-testid": `agent-gui-conversation-meta-${item.id}`,
29052
- children: /* @__PURE__ */ jsx51(
29118
+ children: /* @__PURE__ */ jsx52(
29053
29119
  AskLinedIcon,
29054
29120
  {
29055
29121
  "aria-hidden": "true",
@@ -29060,34 +29126,34 @@ function ConversationMeta({
29060
29126
  );
29061
29127
  }
29062
29128
  if (kind === "failed") {
29063
- return /* @__PURE__ */ jsx51(
29129
+ return /* @__PURE__ */ jsx52(
29064
29130
  "span",
29065
29131
  {
29066
29132
  className: AgentGUINode_styles_default.conversationMeta,
29067
29133
  "data-kind": kind,
29068
29134
  "data-testid": `agent-gui-conversation-meta-${item.id}`,
29069
- children: /* @__PURE__ */ jsx51(AttentionGlyph, {})
29135
+ children: /* @__PURE__ */ jsx52(AttentionGlyph, {})
29070
29136
  }
29071
29137
  );
29072
29138
  }
29073
29139
  if (kind === "unread-complete") {
29074
- return /* @__PURE__ */ jsx51(
29140
+ return /* @__PURE__ */ jsx52(
29075
29141
  "span",
29076
29142
  {
29077
29143
  className: AgentGUINode_styles_default.conversationMeta,
29078
29144
  "data-kind": kind,
29079
29145
  "data-testid": `agent-gui-conversation-meta-${item.id}`,
29080
- children: /* @__PURE__ */ jsx51("span", { className: AgentGUINode_styles_default.conversationUnreadLamp, "aria-hidden": "true" })
29146
+ children: /* @__PURE__ */ jsx52("span", { className: AgentGUINode_styles_default.conversationUnreadLamp, "aria-hidden": "true" })
29081
29147
  }
29082
29148
  );
29083
29149
  }
29084
- return /* @__PURE__ */ jsx51(
29150
+ return /* @__PURE__ */ jsx52(
29085
29151
  "span",
29086
29152
  {
29087
29153
  className: AgentGUINode_styles_default.conversationMeta,
29088
29154
  "data-kind": kind,
29089
29155
  "data-testid": `agent-gui-conversation-meta-${item.id}`,
29090
- children: /* @__PURE__ */ jsx51("span", { className: AgentGUINode_styles_default.conversationTime, children: formatConversationRelativeTime(
29156
+ children: /* @__PURE__ */ jsx52("span", { className: AgentGUINode_styles_default.conversationTime, children: formatConversationRelativeTime(
29091
29157
  resolveAgentGUIConversationSortTimeUnixMs(item),
29092
29158
  nowMs,
29093
29159
  labels
@@ -29135,7 +29201,7 @@ function formatConversationRelativeTime(updatedAtUnixMs, nowMs, labels) {
29135
29201
  }
29136
29202
  function LoadingGlyph() {
29137
29203
  "use memo";
29138
- return /* @__PURE__ */ jsx51(
29204
+ return /* @__PURE__ */ jsx52(
29139
29205
  Spinner5,
29140
29206
  {
29141
29207
  className: AgentGUINode_styles_default.conversationStatusGlyph,
@@ -29149,14 +29215,14 @@ function LoadingGlyph() {
29149
29215
  }
29150
29216
  function AttentionGlyph() {
29151
29217
  "use memo";
29152
- return /* @__PURE__ */ jsx51(
29218
+ return /* @__PURE__ */ jsx52(
29153
29219
  "svg",
29154
29220
  {
29155
29221
  viewBox: "0 0 24 24",
29156
29222
  fill: "none",
29157
29223
  "aria-hidden": "true",
29158
29224
  className: AgentGUINode_styles_default.conversationStatusGlyph,
29159
- children: /* @__PURE__ */ jsx51(
29225
+ children: /* @__PURE__ */ jsx52(
29160
29226
  "path",
29161
29227
  {
29162
29228
  d: "M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4ZM12.5 15C12.7761 15 13 15.2239 13 15.5V16.5C13 16.7761 12.7761 17 12.5 17H11.5C11.2239 17 11 16.7761 11 16.5V15.5C11 15.2239 11.2239 15 11.5 15H12.5ZM12.5 7C12.7761 7 13 7.22386 13 7.5V13.5C13 13.7761 12.7761 14 12.5 14H11.5C11.2239 14 11 13.7761 11 13.5V7.5C11 7.22386 11.2239 7 11.5 7H12.5Z",
@@ -29168,7 +29234,7 @@ function AttentionGlyph() {
29168
29234
  }
29169
29235
 
29170
29236
  // agent-gui/agentGuiNode/view/AgentGUIConversationRailClock.tsx
29171
- import { jsx as jsx52 } from "react/jsx-runtime";
29237
+ import { jsx as jsx53 } from "react/jsx-runtime";
29172
29238
  var AgentGUIConversationRailClockStore = class {
29173
29239
  currentTimeMs = Date.now();
29174
29240
  listeners = /* @__PURE__ */ new Set();
@@ -29208,7 +29274,7 @@ function AgentGUIConversationRailRelativeTime({
29208
29274
  labels
29209
29275
  }) {
29210
29276
  const currentTimeMs = useExternalStoreSnapshot2(agentGUIConversationRailClock);
29211
- return /* @__PURE__ */ jsx52(ConversationMeta, { item, nowMs: currentTimeMs, labels });
29277
+ return /* @__PURE__ */ jsx53(ConversationMeta, { item, nowMs: currentTimeMs, labels });
29212
29278
  }
29213
29279
 
29214
29280
  // agent-gui/agentGuiNode/view/AgentGUIConversationActionsMenu.tsx
@@ -29217,7 +29283,7 @@ import {
29217
29283
  useCallback as useCallback46,
29218
29284
  useMemo as useMemo33,
29219
29285
  useRef as useRef37,
29220
- useState as useState28
29286
+ useState as useState29
29221
29287
  } from "react";
29222
29288
  import {
29223
29289
  AtSign,
@@ -29631,7 +29697,7 @@ function renderAgentConversationCopyHtml(markdown) {
29631
29697
  }
29632
29698
 
29633
29699
  // agent-gui/agentGuiNode/view/AgentGUIConversationActionsMenu.tsx
29634
- import { Fragment as Fragment15, jsx as jsx53, jsxs as jsxs37 } from "react/jsx-runtime";
29700
+ import { Fragment as Fragment15, jsx as jsx54, jsxs as jsxs38 } from "react/jsx-runtime";
29635
29701
  var menuContentClassName = "w-max min-w-44 nodrag [-webkit-app-region:no-drag]";
29636
29702
  async function writeTextAndHtmlWithWebClipboard(text, html) {
29637
29703
  if (typeof navigator === "undefined" || typeof navigator.clipboard?.write !== "function" || typeof ClipboardItem === "undefined") {
@@ -29793,7 +29859,7 @@ function useConversationActionGroups({
29793
29859
  const agentHostApi = useOptionalAgentHostApi();
29794
29860
  const agentActivityRuntime = useOptionalAgentActivityRuntime();
29795
29861
  const copyConversationValue = useAgentGUIConversationCopyAction(labels);
29796
- const [resetKey, setResetKey] = useState28(0);
29862
+ const [resetKey, setResetKey] = useState29(0);
29797
29863
  const pendingActionRef = useRef37(false);
29798
29864
  const run = useCallback46(
29799
29865
  (action) => {
@@ -29832,26 +29898,26 @@ function useConversationActionGroups({
29832
29898
  return [
29833
29899
  [
29834
29900
  {
29835
- icon: /* @__PURE__ */ jsx53(Pencil2, { "aria-hidden": "true" }),
29901
+ icon: /* @__PURE__ */ jsx54(Pencil2, { "aria-hidden": "true" }),
29836
29902
  id: "rename",
29837
29903
  label: labels.renameSession,
29838
29904
  onSelect: () => run(() => onRequestRenameConversation(conversation))
29839
29905
  },
29840
29906
  copyItem(
29841
29907
  "copy-markdown",
29842
- /* @__PURE__ */ jsx53(FileText2, { "aria-hidden": "true" }),
29908
+ /* @__PURE__ */ jsx54(FileText2, { "aria-hidden": "true" }),
29843
29909
  labels.copyAsMarkdown
29844
29910
  ),
29845
29911
  copyItem(
29846
29912
  "copy-reference",
29847
- /* @__PURE__ */ jsx53(AtSign, { "aria-hidden": "true" }),
29913
+ /* @__PURE__ */ jsx54(AtSign, { "aria-hidden": "true" }),
29848
29914
  labels.copyAsReference
29849
29915
  )
29850
29916
  ],
29851
29917
  [
29852
29918
  ...onOpenConversationWindow ? [
29853
29919
  {
29854
- icon: /* @__PURE__ */ jsx53(ExternalLink2, { "aria-hidden": "true" }),
29920
+ icon: /* @__PURE__ */ jsx54(ExternalLink2, { "aria-hidden": "true" }),
29855
29921
  id: "open-window",
29856
29922
  label: labels.openConversationWindow,
29857
29923
  onSelect: () => run(() => onOpenConversationWindow(conversation.id))
@@ -29859,7 +29925,7 @@ function useConversationActionGroups({
29859
29925
  ] : [],
29860
29926
  {
29861
29927
  disabled: !canMarkUnread,
29862
- icon: /* @__PURE__ */ jsx53(CircleDot, { "aria-hidden": "true" }),
29928
+ icon: /* @__PURE__ */ jsx54(CircleDot, { "aria-hidden": "true" }),
29863
29929
  id: "mark-unread",
29864
29930
  label: labels.markSessionUnread,
29865
29931
  onSelect: () => run(() => onMarkConversationUnread(conversation.id))
@@ -29887,9 +29953,9 @@ function AgentGUIConversationActionsDropdown({
29887
29953
  menu,
29888
29954
  moreSessionActionsLabel
29889
29955
  }) {
29890
- const [open, setOpen] = useState28(false);
29891
- return /* @__PURE__ */ jsxs37(DropdownMenu4, { onOpenChange: setOpen, children: [
29892
- /* @__PURE__ */ jsx53(DropdownMenuTrigger4, { asChild: true, children: /* @__PURE__ */ jsx53(
29956
+ const [open, setOpen] = useState29(false);
29957
+ return /* @__PURE__ */ jsxs38(DropdownMenu4, { onOpenChange: setOpen, children: [
29958
+ /* @__PURE__ */ jsx54(DropdownMenuTrigger4, { asChild: true, children: /* @__PURE__ */ jsx54(
29893
29959
  BareIconButton,
29894
29960
  {
29895
29961
  className: buttonClassName,
@@ -29899,16 +29965,16 @@ function AgentGUIConversationActionsDropdown({
29899
29965
  onClick: (event) => event.stopPropagation(),
29900
29966
  onMouseDown: (event) => event.stopPropagation(),
29901
29967
  onPointerDown: (event) => event.stopPropagation(),
29902
- children: /* @__PURE__ */ jsx53(MoreHorizontal, { "aria-hidden": "true" })
29968
+ children: /* @__PURE__ */ jsx54(MoreHorizontal, { "aria-hidden": "true" })
29903
29969
  }
29904
29970
  ) }),
29905
- open ? /* @__PURE__ */ jsx53(
29971
+ open ? /* @__PURE__ */ jsx54(
29906
29972
  DropdownMenuContent4,
29907
29973
  {
29908
29974
  align: "end",
29909
29975
  className: menuContentClassName,
29910
29976
  sideOffset: 6,
29911
- children: /* @__PURE__ */ jsx53(DropdownActionGroups, { groups: menu.groups })
29977
+ children: /* @__PURE__ */ jsx54(DropdownActionGroups, { groups: menu.groups })
29912
29978
  }
29913
29979
  ) : null
29914
29980
  ] }, menu.resetKey);
@@ -29917,23 +29983,23 @@ function AgentGUIConversationActionsContextMenu({
29917
29983
  children,
29918
29984
  menu
29919
29985
  }) {
29920
- const [open, setOpen] = useState28(false);
29921
- return /* @__PURE__ */ jsxs37(ContextMenu, { onOpenChange: setOpen, children: [
29922
- /* @__PURE__ */ jsx53(ContextMenuTrigger, { asChild: true, children }),
29923
- open ? /* @__PURE__ */ jsx53(ContextMenuContent, { className: menuContentClassName, children: /* @__PURE__ */ jsx53(ContextActionGroups, { groups: menu.groups }) }) : null
29986
+ const [open, setOpen] = useState29(false);
29987
+ return /* @__PURE__ */ jsxs38(ContextMenu, { onOpenChange: setOpen, children: [
29988
+ /* @__PURE__ */ jsx54(ContextMenuTrigger, { asChild: true, children }),
29989
+ open ? /* @__PURE__ */ jsx54(ContextMenuContent, { className: menuContentClassName, children: /* @__PURE__ */ jsx54(ContextActionGroups, { groups: menu.groups }) }) : null
29924
29990
  ] }, menu.resetKey);
29925
29991
  }
29926
29992
  function DropdownActionGroups({
29927
29993
  groups
29928
29994
  }) {
29929
- return /* @__PURE__ */ jsx53(Fragment15, { children: groups.map((group, groupIndex) => /* @__PURE__ */ jsxs37(Fragment14, { children: [
29930
- groupIndex > 0 ? /* @__PURE__ */ jsx53(DropdownMenuSeparator2, {}) : null,
29995
+ return /* @__PURE__ */ jsx54(Fragment15, { children: groups.map((group, groupIndex) => /* @__PURE__ */ jsxs38(Fragment14, { children: [
29996
+ groupIndex > 0 ? /* @__PURE__ */ jsx54(DropdownMenuSeparator2, {}) : null,
29931
29997
  group.map((entry) => (
29932
29998
  // onClick/onPointerUp mirror onSelect so the action survives
29933
29999
  // workbench dead clicks (pointerup arrives but the click event
29934
30000
  // is swallowed); the shared runner's pending ref dedups the
29935
30001
  // overlapping events of one gesture.
29936
- /* @__PURE__ */ jsxs37(
30002
+ /* @__PURE__ */ jsxs38(
29937
30003
  DropdownMenuItem3,
29938
30004
  {
29939
30005
  disabled: entry.disabled,
@@ -29950,7 +30016,7 @@ function DropdownActionGroups({
29950
30016
  onSelect: entry.onSelect,
29951
30017
  children: [
29952
30018
  entry.icon,
29953
- /* @__PURE__ */ jsx53("span", { children: entry.label })
30019
+ /* @__PURE__ */ jsx54("span", { children: entry.label })
29954
30020
  ]
29955
30021
  },
29956
30022
  entry.id
@@ -29961,11 +30027,11 @@ function DropdownActionGroups({
29961
30027
  function ContextActionGroups({
29962
30028
  groups
29963
30029
  }) {
29964
- return /* @__PURE__ */ jsx53(Fragment15, { children: groups.map((group, groupIndex) => /* @__PURE__ */ jsxs37(Fragment14, { children: [
29965
- groupIndex > 0 ? /* @__PURE__ */ jsx53(ContextMenuSeparator, {}) : null,
30030
+ return /* @__PURE__ */ jsx54(Fragment15, { children: groups.map((group, groupIndex) => /* @__PURE__ */ jsxs38(Fragment14, { children: [
30031
+ groupIndex > 0 ? /* @__PURE__ */ jsx54(ContextMenuSeparator, {}) : null,
29966
30032
  group.map((entry) => (
29967
30033
  // Same dead-click fallbacks as DropdownActionGroups.
29968
- /* @__PURE__ */ jsxs37(
30034
+ /* @__PURE__ */ jsxs38(
29969
30035
  ContextMenuItem,
29970
30036
  {
29971
30037
  disabled: entry.disabled,
@@ -29982,7 +30048,7 @@ function ContextActionGroups({
29982
30048
  onSelect: entry.onSelect,
29983
30049
  children: [
29984
30050
  entry.icon,
29985
- /* @__PURE__ */ jsx53("span", { children: entry.label })
30051
+ /* @__PURE__ */ jsx54("span", { children: entry.label })
29986
30052
  ]
29987
30053
  },
29988
30054
  entry.id
@@ -29992,15 +30058,23 @@ function ContextActionGroups({
29992
30058
  }
29993
30059
 
29994
30060
  // agent-gui/agentGuiNode/view/AgentGUIConversationRailItem.tsx
29995
- import { Fragment as Fragment16, jsx as jsx54, jsxs as jsxs38 } from "react/jsx-runtime";
29996
- function agentGUIConversationIconUrl(provider, agentTargetId, workspaceId, agentTargets) {
30061
+ import { Fragment as Fragment16, jsx as jsx55, jsxs as jsxs39 } from "react/jsx-runtime";
30062
+ function agentGUIConversationIconPresentation(provider, agentTargetId, workspaceId, agentTargets) {
29997
30063
  const targetPresentation = resolveAgentTargetPresentation({
29998
30064
  agentTargetId: agentTargetId ?? "",
29999
30065
  agentTargets,
30000
30066
  workspaceId
30001
30067
  });
30002
- const targetIconUrl = targetPresentation?.maskIconUrl?.trim() || targetPresentation?.iconUrl?.trim();
30003
- return targetIconUrl || resolveAgentGuiSessionProviderFlatIconUrl(provider);
30068
+ const maskIconUrl = targetPresentation?.maskIconUrl?.trim() ?? "";
30069
+ if (maskIconUrl) {
30070
+ return { kind: "mask", url: maskIconUrl };
30071
+ }
30072
+ const iconUrl = targetPresentation?.iconUrl?.trim() ?? "";
30073
+ if (iconUrl) {
30074
+ return { kind: "image", url: iconUrl };
30075
+ }
30076
+ const providerIconUrl = resolveAgentGuiSessionProviderFlatIconUrl(provider);
30077
+ return providerIconUrl ? { kind: "mask", url: providerIconUrl } : null;
30004
30078
  }
30005
30079
  function agentGUIConversationRailTitle(item, labels, uiLanguage) {
30006
30080
  const title = conversationPlainTitle(item, labels, uiLanguage);
@@ -30030,7 +30104,7 @@ var AgentGUIConversationRailItem = memo5(
30030
30104
  "use memo";
30031
30105
  const pinned = (item.pinnedAtUnixMs ?? 0) > 0;
30032
30106
  const agentTargets = useAgentTargetPresentations();
30033
- const conversationIconUrl = agentGUIConversationIconUrl(
30107
+ const conversationIcon = agentGUIConversationIconPresentation(
30034
30108
  item.provider,
30035
30109
  item.agentTargetId,
30036
30110
  workspaceId,
@@ -30090,7 +30164,7 @@ var AgentGUIConversationRailItem = memo5(
30090
30164
  onOpenConversationWindow,
30091
30165
  onRequestRenameConversation
30092
30166
  });
30093
- const row = /* @__PURE__ */ jsxs38(
30167
+ const row = /* @__PURE__ */ jsxs39(
30094
30168
  "div",
30095
30169
  {
30096
30170
  ref: setItemElement,
@@ -30107,7 +30181,7 @@ var AgentGUIConversationRailItem = memo5(
30107
30181
  },
30108
30182
  onMouseLeave: handleMouseLeave,
30109
30183
  children: [
30110
- /* @__PURE__ */ jsxs38(
30184
+ /* @__PURE__ */ jsxs39(
30111
30185
  "button",
30112
30186
  {
30113
30187
  type: "button",
@@ -30118,34 +30192,49 @@ var AgentGUIConversationRailItem = memo5(
30118
30192
  handleRequestRename();
30119
30193
  },
30120
30194
  children: [
30121
- /* @__PURE__ */ jsxs38("span", { className: AgentGUINode_styles_default.conversationTitleRow, children: [
30122
- conversationIconUrl ? /* @__PURE__ */ jsx54(
30195
+ /* @__PURE__ */ jsxs39("span", { className: AgentGUINode_styles_default.conversationTitleRow, children: [
30196
+ conversationIcon?.kind === "mask" ? /* @__PURE__ */ jsx55(
30123
30197
  "span",
30124
30198
  {
30125
30199
  "aria-hidden": "true",
30126
- className: AgentGUINode_styles_default.conversationProviderIcon,
30200
+ className: cn7(
30201
+ AgentGUINode_styles_default.conversationProviderIcon,
30202
+ AgentGUINode_styles_default.conversationProviderMaskIcon
30203
+ ),
30127
30204
  style: {
30128
- WebkitMaskImage: `url("${conversationIconUrl}")`,
30129
- maskImage: `url("${conversationIconUrl}")`
30205
+ WebkitMaskImage: `url("${conversationIcon.url}")`,
30206
+ maskImage: `url("${conversationIcon.url}")`
30130
30207
  }
30131
30208
  }
30209
+ ) : conversationIcon ? /* @__PURE__ */ jsx55(
30210
+ "img",
30211
+ {
30212
+ alt: "",
30213
+ "aria-hidden": "true",
30214
+ className: cn7(
30215
+ AgentGUINode_styles_default.conversationProviderIcon,
30216
+ AgentGUINode_styles_default.conversationProviderImage
30217
+ ),
30218
+ draggable: false,
30219
+ src: conversationIcon.url
30220
+ }
30132
30221
  ) : null,
30133
- item.titleLeadingMentionKind === "task" ? /* @__PURE__ */ jsx54(
30222
+ item.titleLeadingMentionKind === "task" ? /* @__PURE__ */ jsx55(
30134
30223
  "span",
30135
30224
  {
30136
30225
  "aria-hidden": "true",
30137
30226
  className: AgentGUINode_styles_default.conversationTitleMentionIcon,
30138
30227
  "data-agent-gui-conversation-title-mention-icon": item.titleLeadingMentionKind,
30139
- children: /* @__PURE__ */ jsx54(IssueIcon, {})
30228
+ children: /* @__PURE__ */ jsx55(IssueIcon, {})
30140
30229
  }
30141
30230
  ) : null,
30142
- /* @__PURE__ */ jsx54("span", { className: AgentGUINode_styles_default.conversationTitle, children: agentGUIConversationRailTitle(item, labels, uiLanguage) })
30231
+ /* @__PURE__ */ jsx55("span", { className: AgentGUINode_styles_default.conversationTitle, children: agentGUIConversationRailTitle(item, labels, uiLanguage) })
30143
30232
  ] }),
30144
- /* @__PURE__ */ jsx54(AgentGUIConversationRailRelativeTime, { item, labels })
30233
+ /* @__PURE__ */ jsx55(AgentGUIConversationRailRelativeTime, { item, labels })
30145
30234
  ]
30146
30235
  }
30147
30236
  ),
30148
- previewMode ? null : /* @__PURE__ */ jsx54("div", { className: AgentGUINode_styles_default.conversationActions, children: isPendingDeleteConversation ? /* @__PURE__ */ jsx54(
30237
+ previewMode ? null : /* @__PURE__ */ jsx55("div", { className: AgentGUINode_styles_default.conversationActions, children: isPendingDeleteConversation ? /* @__PURE__ */ jsx55(
30149
30238
  "button",
30150
30239
  {
30151
30240
  type: "button",
@@ -30159,10 +30248,10 @@ var AgentGUIConversationRailItem = memo5(
30159
30248
  onConfirmDeleteConversation();
30160
30249
  }
30161
30250
  },
30162
- children: /* @__PURE__ */ jsx54("span", { className: AgentGUINode_styles_default.conversationDeleteConfirmText, children: labels.deleteSessionConfirm })
30251
+ children: /* @__PURE__ */ jsx55("span", { className: AgentGUINode_styles_default.conversationDeleteConfirmText, children: labels.deleteSessionConfirm })
30163
30252
  }
30164
- ) : /* @__PURE__ */ jsxs38(Fragment16, { children: [
30165
- onOpenConversationWindow ? /* @__PURE__ */ jsx54(
30253
+ ) : /* @__PURE__ */ jsxs39(Fragment16, { children: [
30254
+ onOpenConversationWindow ? /* @__PURE__ */ jsx55(
30166
30255
  BareIconButton2,
30167
30256
  {
30168
30257
  className: AgentGUINode_styles_default.conversationOpenWindowButton,
@@ -30179,10 +30268,10 @@ var AgentGUIConversationRailItem = memo5(
30179
30268
  event.stopPropagation();
30180
30269
  handleOpenConversationWindow();
30181
30270
  },
30182
- children: /* @__PURE__ */ jsx54(ExternalLink3, { "aria-hidden": "true" })
30271
+ children: /* @__PURE__ */ jsx55(ExternalLink3, { "aria-hidden": "true" })
30183
30272
  }
30184
30273
  ) : null,
30185
- /* @__PURE__ */ jsx54(
30274
+ /* @__PURE__ */ jsx55(
30186
30275
  BareIconButton2,
30187
30276
  {
30188
30277
  className: AgentGUINode_styles_default.conversationPinButton,
@@ -30199,10 +30288,10 @@ var AgentGUIConversationRailItem = memo5(
30199
30288
  event.stopPropagation();
30200
30289
  handleTogglePinned();
30201
30290
  },
30202
- children: pinned ? /* @__PURE__ */ jsx54(PinFilledIcon, { "aria-hidden": "true" }) : /* @__PURE__ */ jsx54(PinLinedIcon, { "aria-hidden": "true" })
30291
+ children: pinned ? /* @__PURE__ */ jsx55(PinFilledIcon, { "aria-hidden": "true" }) : /* @__PURE__ */ jsx55(PinLinedIcon, { "aria-hidden": "true" })
30203
30292
  }
30204
30293
  ),
30205
- /* @__PURE__ */ jsx54(
30294
+ /* @__PURE__ */ jsx55(
30206
30295
  BareIconButton2,
30207
30296
  {
30208
30297
  className: AgentGUINode_styles_default.conversationDeleteButton,
@@ -30219,10 +30308,10 @@ var AgentGUIConversationRailItem = memo5(
30219
30308
  event.stopPropagation();
30220
30309
  handleRequestDelete();
30221
30310
  },
30222
- children: /* @__PURE__ */ jsx54(CanvasNodeTrashLinedIcon, { "aria-hidden": "true" })
30311
+ children: /* @__PURE__ */ jsx55(CanvasNodeTrashLinedIcon, { "aria-hidden": "true" })
30223
30312
  }
30224
30313
  ),
30225
- /* @__PURE__ */ jsx54(
30314
+ /* @__PURE__ */ jsx55(
30226
30315
  AgentGUIConversationActionsDropdown,
30227
30316
  {
30228
30317
  buttonClassName: AgentGUINode_styles_default.conversationMoreButton,
@@ -30237,7 +30326,7 @@ var AgentGUIConversationRailItem = memo5(
30237
30326
  if (previewMode) {
30238
30327
  return row;
30239
30328
  }
30240
- return /* @__PURE__ */ jsx54(AgentGUIConversationActionsContextMenu, { menu, children: row });
30329
+ return /* @__PURE__ */ jsx55(AgentGUIConversationActionsContextMenu, { menu, children: row });
30241
30330
  }
30242
30331
  );
30243
30332
  function AgentGUIProjectRailHeader({
@@ -30259,10 +30348,10 @@ function AgentGUIProjectRailHeader({
30259
30348
  selectProjectDirectory
30260
30349
  ]
30261
30350
  );
30262
- return /* @__PURE__ */ jsxs38("div", { className: AgentGUINode_styles_default.projectRailHeader, children: [
30263
- /* @__PURE__ */ jsx54("div", { className: AgentGUINode_styles_default.projectRailTitle, children: /* @__PURE__ */ jsx54("span", { children: workspaceUserProjectI18n.tFirst(["projectSelect.projectLabel"]) }) }),
30264
- /* @__PURE__ */ jsxs38("div", { className: AgentGUINode_styles_default.projectRailAddProject, children: [
30265
- /* @__PURE__ */ jsx54(
30351
+ return /* @__PURE__ */ jsxs39("div", { className: AgentGUINode_styles_default.projectRailHeader, children: [
30352
+ /* @__PURE__ */ jsx55("div", { className: AgentGUINode_styles_default.projectRailTitle, children: /* @__PURE__ */ jsx55("span", { children: workspaceUserProjectI18n.tFirst(["projectSelect.projectLabel"]) }) }),
30353
+ /* @__PURE__ */ jsxs39("div", { className: AgentGUINode_styles_default.projectRailAddProject, children: [
30354
+ /* @__PURE__ */ jsx55(
30266
30355
  WorkspaceUserProjectSelect2,
30267
30356
  {
30268
30357
  api: userProjectApi,
@@ -30293,7 +30382,7 @@ function AgentGUIProjectRailHeader({
30293
30382
  "projectSelect.addProject"
30294
30383
  ])
30295
30384
  },
30296
- renderAddProjectIcon: () => /* @__PURE__ */ jsx54(
30385
+ renderAddProjectIcon: () => /* @__PURE__ */ jsx55(
30297
30386
  NewWorkspaceLinedIcon2,
30298
30387
  {
30299
30388
  "aria-hidden": true,
@@ -30311,7 +30400,7 @@ function AgentGUIProjectRailHeader({
30311
30400
  }
30312
30401
  }
30313
30402
  ),
30314
- /* @__PURE__ */ jsx54(
30403
+ /* @__PURE__ */ jsx55(
30315
30404
  NewWorkspaceLinedIcon2,
30316
30405
  {
30317
30406
  "aria-hidden": true,
@@ -30323,7 +30412,7 @@ function AgentGUIProjectRailHeader({
30323
30412
  }
30324
30413
 
30325
30414
  // agent-gui/agentGuiNode/view/AgentGUIConversationRailSectionHeader.tsx
30326
- import { forwardRef as forwardRef5, memo as memo6, useCallback as useCallback48, useState as useState29 } from "react";
30415
+ import { forwardRef as forwardRef5, memo as memo6, useCallback as useCallback48, useState as useState30 } from "react";
30327
30416
  import { ChevronRight as ChevronRight2 } from "lucide-react";
30328
30417
  import {
30329
30418
  DropdownMenu as DropdownMenu5,
@@ -30346,7 +30435,7 @@ import {
30346
30435
 
30347
30436
  // agent-gui/agentGuiNode/view/agentGUIConversationRailSectionPresentationContext.tsx
30348
30437
  import { createContext as createContext2, useContext as useContext2 } from "react";
30349
- import { jsx as jsx55 } from "react/jsx-runtime";
30438
+ import { jsx as jsx56 } from "react/jsx-runtime";
30350
30439
  var AgentGUIConversationRailSectionBatchDeletionDisabledContext = createContext2(null);
30351
30440
  var AgentGUIConversationRailSectionProjectActionLockedContext = createContext2(null);
30352
30441
  var AgentGUIConversationRailSectionProjectDragDisabledContext = createContext2(null);
@@ -30356,15 +30445,15 @@ function AgentGUIConversationRailSectionPresentationProvider({
30356
30445
  projectActionLocked,
30357
30446
  projectDragDisabled
30358
30447
  }) {
30359
- return /* @__PURE__ */ jsx55(
30448
+ return /* @__PURE__ */ jsx56(
30360
30449
  AgentGUIConversationRailSectionBatchDeletionDisabledContext.Provider,
30361
30450
  {
30362
30451
  value: batchDeletionDisabled,
30363
- children: /* @__PURE__ */ jsx55(
30452
+ children: /* @__PURE__ */ jsx56(
30364
30453
  AgentGUIConversationRailSectionProjectActionLockedContext.Provider,
30365
30454
  {
30366
30455
  value: projectActionLocked,
30367
- children: /* @__PURE__ */ jsx55(
30456
+ children: /* @__PURE__ */ jsx56(
30368
30457
  AgentGUIConversationRailSectionProjectDragDisabledContext.Provider,
30369
30458
  {
30370
30459
  value: projectDragDisabled,
@@ -30402,7 +30491,7 @@ function readSectionPresentationValue(value, name) {
30402
30491
  }
30403
30492
 
30404
30493
  // agent-gui/agentGuiNode/view/AgentGUIConversationRailSectionHeader.tsx
30405
- import { jsx as jsx56, jsxs as jsxs39 } from "react/jsx-runtime";
30494
+ import { jsx as jsx57, jsxs as jsxs40 } from "react/jsx-runtime";
30406
30495
  function HeaderFrame({
30407
30496
  children,
30408
30497
  isProjectSection,
@@ -30410,7 +30499,7 @@ function HeaderFrame({
30410
30499
  onProjectDragStart
30411
30500
  }) {
30412
30501
  const projectDragDisabled = useAgentGUIConversationRailSectionProjectDragDisabled();
30413
- return /* @__PURE__ */ jsx56(
30502
+ return /* @__PURE__ */ jsx57(
30414
30503
  "div",
30415
30504
  {
30416
30505
  className: AgentGUINode_styles_default.conversationSectionHeader,
@@ -30431,9 +30520,9 @@ var HeaderIdentity = memo6(function HeaderIdentity2({
30431
30520
  }) {
30432
30521
  "use memo";
30433
30522
  if (!isProjectSection) {
30434
- return /* @__PURE__ */ jsx56("div", { className: AgentGUINode_styles_default.conversationSectionToggle, children: /* @__PURE__ */ jsx56("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: /* @__PURE__ */ jsx56("span", { children: sectionLabel }) }) });
30523
+ return /* @__PURE__ */ jsx57("div", { className: AgentGUINode_styles_default.conversationSectionToggle, children: /* @__PURE__ */ jsx57("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: /* @__PURE__ */ jsx57("span", { children: sectionLabel }) }) });
30435
30524
  }
30436
- return /* @__PURE__ */ jsxs39(
30525
+ return /* @__PURE__ */ jsxs40(
30437
30526
  "button",
30438
30527
  {
30439
30528
  type: "button",
@@ -30442,22 +30531,22 @@ var HeaderIdentity = memo6(function HeaderIdentity2({
30442
30531
  "aria-label": projectPinned ? labels.pinnedProjectAccessibleName(sectionLabel) : sectionLabel,
30443
30532
  onClick: onToggleCollapsed,
30444
30533
  children: [
30445
- /* @__PURE__ */ jsx56(
30534
+ /* @__PURE__ */ jsx57(
30446
30535
  ChevronRight2,
30447
30536
  {
30448
30537
  "aria-hidden": "true",
30449
30538
  className: AgentGUINode_styles_default.conversationSectionChevron
30450
30539
  }
30451
30540
  ),
30452
- /* @__PURE__ */ jsxs39("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: [
30453
- isSectionCollapsed ? /* @__PURE__ */ jsx56(
30541
+ /* @__PURE__ */ jsxs40("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: [
30542
+ isSectionCollapsed ? /* @__PURE__ */ jsx57(
30454
30543
  FolderIcon2,
30455
30544
  {
30456
30545
  "aria-hidden": "true",
30457
30546
  className: AgentGUINode_styles_default.conversationSectionLabelIcon,
30458
30547
  "data-project-drag-icon": "true"
30459
30548
  }
30460
- ) : /* @__PURE__ */ jsx56(
30549
+ ) : /* @__PURE__ */ jsx57(
30461
30550
  FolderOpenLinedIcon,
30462
30551
  {
30463
30552
  "aria-hidden": "true",
@@ -30465,7 +30554,7 @@ var HeaderIdentity = memo6(function HeaderIdentity2({
30465
30554
  "data-project-drag-icon": "true"
30466
30555
  }
30467
30556
  ),
30468
- /* @__PURE__ */ jsx56("span", { children: sectionLabel })
30557
+ /* @__PURE__ */ jsx57("span", { children: sectionLabel })
30469
30558
  ] })
30470
30559
  ]
30471
30560
  }
@@ -30478,7 +30567,7 @@ var CreateAction = memo6(function CreateAction2({
30478
30567
  previewMode
30479
30568
  }) {
30480
30569
  "use memo";
30481
- const button = /* @__PURE__ */ jsx56(
30570
+ const button = /* @__PURE__ */ jsx57(
30482
30571
  BareIconButton3,
30483
30572
  {
30484
30573
  className: AgentGUINode_styles_default.conversationSectionMoreButton,
@@ -30486,15 +30575,15 @@ var CreateAction = memo6(function CreateAction2({
30486
30575
  size: "sm",
30487
30576
  disabled: createConversationDisabled,
30488
30577
  onClick: onCreateConversation,
30489
- children: /* @__PURE__ */ jsx56(CreateChatIcon, { "aria-hidden": "true" })
30578
+ children: /* @__PURE__ */ jsx57(CreateChatIcon, { "aria-hidden": "true" })
30490
30579
  }
30491
30580
  );
30492
30581
  if (previewMode) {
30493
- return /* @__PURE__ */ jsx56("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: button });
30582
+ return /* @__PURE__ */ jsx57("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: button });
30494
30583
  }
30495
- return /* @__PURE__ */ jsxs39(Tooltip6, { children: [
30496
- /* @__PURE__ */ jsx56(TooltipTrigger6, { asChild: true, children: /* @__PURE__ */ jsx56("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: button }) }),
30497
- /* @__PURE__ */ jsx56(
30584
+ return /* @__PURE__ */ jsxs40(Tooltip6, { children: [
30585
+ /* @__PURE__ */ jsx57(TooltipTrigger6, { asChild: true, children: /* @__PURE__ */ jsx57("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: button }) }),
30586
+ /* @__PURE__ */ jsx57(
30498
30587
  TooltipContent6,
30499
30588
  {
30500
30589
  side: "top",
@@ -30508,7 +30597,7 @@ var CreateAction = memo6(function CreateAction2({
30508
30597
  var ProjectMenuButton = forwardRef5(
30509
30598
  function ProjectMenuButton2({ accessibleName, disabled, ...props }, ref) {
30510
30599
  const projectActionLocked = useAgentGUIConversationRailSectionProjectActionLocked();
30511
- return /* @__PURE__ */ jsx56(
30600
+ return /* @__PURE__ */ jsx57(
30512
30601
  BareIconButton3,
30513
30602
  {
30514
30603
  ...props,
@@ -30517,7 +30606,7 @@ var ProjectMenuButton = forwardRef5(
30517
30606
  "aria-label": accessibleName,
30518
30607
  size: "sm",
30519
30608
  disabled: projectActionLocked || disabled,
30520
- children: /* @__PURE__ */ jsx56(MoreHorizontalIcon, { "aria-hidden": "true" })
30609
+ children: /* @__PURE__ */ jsx57(MoreHorizontalIcon, { "aria-hidden": "true" })
30521
30610
  }
30522
30611
  );
30523
30612
  }
@@ -30529,11 +30618,11 @@ function ProjectMenuTrigger({
30529
30618
  }) {
30530
30619
  const accessibleName = labels.projectSectionMoreActions;
30531
30620
  if (previewMode) {
30532
- return /* @__PURE__ */ jsx56(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx56("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx56(ProjectMenuButton, { accessibleName }) }) });
30621
+ return /* @__PURE__ */ jsx57(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx57("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx57(ProjectMenuButton, { accessibleName }) }) });
30533
30622
  }
30534
- return /* @__PURE__ */ jsxs39(Tooltip6, { children: [
30535
- /* @__PURE__ */ jsx56(TooltipTrigger6, { asChild: true, children: /* @__PURE__ */ jsx56("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx56(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx56(ProjectMenuButton, { accessibleName }) }) }) }),
30536
- /* @__PURE__ */ jsx56(
30623
+ return /* @__PURE__ */ jsxs40(Tooltip6, { children: [
30624
+ /* @__PURE__ */ jsx57(TooltipTrigger6, { asChild: true, children: /* @__PURE__ */ jsx57("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx57(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx57(ProjectMenuButton, { accessibleName }) }) }) }),
30625
+ /* @__PURE__ */ jsx57(
30537
30626
  TooltipContent6,
30538
30627
  {
30539
30628
  side: "right",
@@ -30555,47 +30644,47 @@ function ProjectMenuContent({
30555
30644
  }) {
30556
30645
  const batchDeletionDisabled = useAgentGUIConversationRailSectionBatchDeletionDisabled();
30557
30646
  const projectActionLocked = useAgentGUIConversationRailSectionProjectActionLocked();
30558
- return /* @__PURE__ */ jsxs39(
30647
+ return /* @__PURE__ */ jsxs40(
30559
30648
  DropdownMenuContent5,
30560
30649
  {
30561
30650
  align: "end",
30562
30651
  className: `${AgentGUINode_styles_default.composerMenuContent} nodrag [-webkit-app-region:no-drag]`,
30563
30652
  sideOffset: 6,
30564
30653
  children: [
30565
- /* @__PURE__ */ jsx56(
30654
+ /* @__PURE__ */ jsx57(
30566
30655
  DropdownMenuItem4,
30567
30656
  {
30568
30657
  className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
30569
30658
  disabled: !onOpenProjectFiles,
30570
30659
  onSelect: onOpenProjectFiles ?? void 0,
30571
- children: /* @__PURE__ */ jsx56("span", { children: labels.projectSectionViewFiles })
30660
+ children: /* @__PURE__ */ jsx57("span", { children: labels.projectSectionViewFiles })
30572
30661
  }
30573
30662
  ),
30574
- /* @__PURE__ */ jsx56(
30663
+ /* @__PURE__ */ jsx57(
30575
30664
  DropdownMenuItem4,
30576
30665
  {
30577
30666
  className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
30578
30667
  disabled: !hasProjectId || projectActionLocked,
30579
30668
  onSelect: onToggleProjectPinned,
30580
- children: /* @__PURE__ */ jsx56("span", { children: projectPinned ? labels.unpinProject : labels.pinProject })
30669
+ children: /* @__PURE__ */ jsx57("span", { children: projectPinned ? labels.unpinProject : labels.pinProject })
30581
30670
  }
30582
30671
  ),
30583
- /* @__PURE__ */ jsx56(
30672
+ /* @__PURE__ */ jsx57(
30584
30673
  DropdownMenuItem4,
30585
30674
  {
30586
30675
  className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
30587
30676
  disabled: batchDeletionDisabled,
30588
30677
  onSelect: onRequestBatchDeletion,
30589
- children: /* @__PURE__ */ jsx56("span", { children: labels.batchDeleteProjectSessions })
30678
+ children: /* @__PURE__ */ jsx57("span", { children: labels.batchDeleteProjectSessions })
30590
30679
  }
30591
30680
  ),
30592
- /* @__PURE__ */ jsx56(
30681
+ /* @__PURE__ */ jsx57(
30593
30682
  DropdownMenuItem4,
30594
30683
  {
30595
30684
  className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
30596
30685
  disabled: projectActionLocked,
30597
30686
  onSelect: onRemoveProject,
30598
- children: /* @__PURE__ */ jsx56("span", { children: labels.removeProject })
30687
+ children: /* @__PURE__ */ jsx57("span", { children: labels.removeProject })
30599
30688
  }
30600
30689
  )
30601
30690
  ]
@@ -30615,9 +30704,9 @@ var ProjectMenu = memo6(function ProjectMenu2({
30615
30704
  projectPinned
30616
30705
  }) {
30617
30706
  "use memo";
30618
- return /* @__PURE__ */ jsxs39(DropdownMenu5, { onOpenChange, children: [
30619
- /* @__PURE__ */ jsx56(ProjectMenuTrigger, { labels, previewMode }),
30620
- open ? /* @__PURE__ */ jsx56(
30707
+ return /* @__PURE__ */ jsxs40(DropdownMenu5, { onOpenChange, children: [
30708
+ /* @__PURE__ */ jsx57(ProjectMenuTrigger, { labels, previewMode }),
30709
+ open ? /* @__PURE__ */ jsx57(
30621
30710
  ProjectMenuContent,
30622
30711
  {
30623
30712
  hasProjectId,
@@ -30637,27 +30726,27 @@ function ConversationMenuTrigger({
30637
30726
  }) {
30638
30727
  const accessibleName = labels.conversationsSectionMoreActions;
30639
30728
  if (previewMode) {
30640
- return /* @__PURE__ */ jsx56(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx56("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx56(
30729
+ return /* @__PURE__ */ jsx57(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx57("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx57(
30641
30730
  BareIconButton3,
30642
30731
  {
30643
30732
  className: AgentGUINode_styles_default.conversationSectionMoreButton,
30644
30733
  "aria-label": accessibleName,
30645
30734
  size: "sm",
30646
- children: /* @__PURE__ */ jsx56(MoreHorizontalIcon, { "aria-hidden": "true" })
30735
+ children: /* @__PURE__ */ jsx57(MoreHorizontalIcon, { "aria-hidden": "true" })
30647
30736
  }
30648
30737
  ) }) });
30649
30738
  }
30650
- return /* @__PURE__ */ jsxs39(Tooltip6, { children: [
30651
- /* @__PURE__ */ jsx56(TooltipTrigger6, { asChild: true, children: /* @__PURE__ */ jsx56("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx56(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx56(
30739
+ return /* @__PURE__ */ jsxs40(Tooltip6, { children: [
30740
+ /* @__PURE__ */ jsx57(TooltipTrigger6, { asChild: true, children: /* @__PURE__ */ jsx57("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx57(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx57(
30652
30741
  BareIconButton3,
30653
30742
  {
30654
30743
  className: AgentGUINode_styles_default.conversationSectionMoreButton,
30655
30744
  "aria-label": accessibleName,
30656
30745
  size: "sm",
30657
- children: /* @__PURE__ */ jsx56(MoreHorizontalIcon, { "aria-hidden": "true" })
30746
+ children: /* @__PURE__ */ jsx57(MoreHorizontalIcon, { "aria-hidden": "true" })
30658
30747
  }
30659
30748
  ) }) }) }),
30660
- /* @__PURE__ */ jsx56(
30749
+ /* @__PURE__ */ jsx57(
30661
30750
  TooltipContent6,
30662
30751
  {
30663
30752
  side: "right",
@@ -30673,19 +30762,19 @@ function ConversationMenuContent({
30673
30762
  onRequestBatchDeletion
30674
30763
  }) {
30675
30764
  const batchDeletionDisabled = useAgentGUIConversationRailSectionBatchDeletionDisabled();
30676
- return /* @__PURE__ */ jsx56(
30765
+ return /* @__PURE__ */ jsx57(
30677
30766
  DropdownMenuContent5,
30678
30767
  {
30679
30768
  align: "end",
30680
30769
  className: `${AgentGUINode_styles_default.composerMenuContent} nodrag [-webkit-app-region:no-drag]`,
30681
30770
  sideOffset: 6,
30682
- children: /* @__PURE__ */ jsx56(
30771
+ children: /* @__PURE__ */ jsx57(
30683
30772
  DropdownMenuItem4,
30684
30773
  {
30685
30774
  className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
30686
30775
  disabled: batchDeletionDisabled,
30687
30776
  onSelect: onRequestBatchDeletion,
30688
- children: /* @__PURE__ */ jsx56("span", { children: labels.batchDeleteConversations })
30777
+ children: /* @__PURE__ */ jsx57("span", { children: labels.batchDeleteConversations })
30689
30778
  }
30690
30779
  )
30691
30780
  }
@@ -30698,9 +30787,9 @@ function ConversationMenu({
30698
30787
  open,
30699
30788
  previewMode
30700
30789
  }) {
30701
- return /* @__PURE__ */ jsxs39(DropdownMenu5, { onOpenChange, children: [
30702
- /* @__PURE__ */ jsx56(ConversationMenuTrigger, { labels, previewMode }),
30703
- open ? /* @__PURE__ */ jsx56(
30790
+ return /* @__PURE__ */ jsxs40(DropdownMenu5, { onOpenChange, children: [
30791
+ /* @__PURE__ */ jsx57(ConversationMenuTrigger, { labels, previewMode }),
30792
+ open ? /* @__PURE__ */ jsx57(
30704
30793
  ConversationMenuContent,
30705
30794
  {
30706
30795
  labels,
@@ -30733,8 +30822,8 @@ var AgentGUIConversationRailSectionHeader = memo6(
30733
30822
  sectionLabel
30734
30823
  }) {
30735
30824
  "use memo";
30736
- const [projectMenuOpen, setProjectMenuOpen] = useState29(false);
30737
- const [conversationMenuOpen, setConversationMenuOpen] = useState29(false);
30825
+ const [projectMenuOpen, setProjectMenuOpen] = useState30(false);
30826
+ const [conversationMenuOpen, setConversationMenuOpen] = useState30(false);
30738
30827
  const handleProjectMenuOpenChange = useCallback48(
30739
30828
  (open) => {
30740
30829
  setProjectMenuOpen(open);
@@ -30743,14 +30832,14 @@ var AgentGUIConversationRailSectionHeader = memo6(
30743
30832
  [onProjectMenuOpenChange]
30744
30833
  );
30745
30834
  const isProjectSection = kind === "project";
30746
- return /* @__PURE__ */ jsxs39(
30835
+ return /* @__PURE__ */ jsxs40(
30747
30836
  HeaderFrame,
30748
30837
  {
30749
30838
  isProjectSection,
30750
30839
  onProjectDragEnd,
30751
30840
  onProjectDragStart,
30752
30841
  children: [
30753
- /* @__PURE__ */ jsx56(
30842
+ /* @__PURE__ */ jsx57(
30754
30843
  HeaderIdentity,
30755
30844
  {
30756
30845
  isProjectSection,
@@ -30761,13 +30850,13 @@ var AgentGUIConversationRailSectionHeader = memo6(
30761
30850
  sectionLabel
30762
30851
  }
30763
30852
  ),
30764
- canCreateConversation ? /* @__PURE__ */ jsxs39(
30853
+ canCreateConversation ? /* @__PURE__ */ jsxs40(
30765
30854
  "div",
30766
30855
  {
30767
30856
  className: AgentGUINode_styles_default.conversationSectionActions,
30768
30857
  "data-project-drag-block": "true",
30769
30858
  children: [
30770
- /* @__PURE__ */ jsx56(
30859
+ /* @__PURE__ */ jsx57(
30771
30860
  CreateAction,
30772
30861
  {
30773
30862
  createConversationDisabled,
@@ -30776,7 +30865,7 @@ var AgentGUIConversationRailSectionHeader = memo6(
30776
30865
  previewMode
30777
30866
  }
30778
30867
  ),
30779
- hasProjectPath ? /* @__PURE__ */ jsx56(
30868
+ hasProjectPath ? /* @__PURE__ */ jsx57(
30780
30869
  ProjectMenu,
30781
30870
  {
30782
30871
  hasProjectId,
@@ -30791,7 +30880,7 @@ var AgentGUIConversationRailSectionHeader = memo6(
30791
30880
  projectPinned
30792
30881
  }
30793
30882
  ) : null,
30794
- !hasProjectPath && kind === "conversations" ? /* @__PURE__ */ jsx56(
30883
+ !hasProjectPath && kind === "conversations" ? /* @__PURE__ */ jsx57(
30795
30884
  ConversationMenu,
30796
30885
  {
30797
30886
  labels,
@@ -30811,7 +30900,7 @@ var AgentGUIConversationRailSectionHeader = memo6(
30811
30900
  );
30812
30901
 
30813
30902
  // agent-gui/agentGuiNode/view/AgentGUIConversationRailSection.tsx
30814
- import { jsx as jsx57, jsxs as jsxs40 } from "react/jsx-runtime";
30903
+ import { jsx as jsx58, jsxs as jsxs41 } from "react/jsx-runtime";
30815
30904
  var AgentGUIConversationRailSection = memo7(
30816
30905
  function AgentGUIConversationRailSection2({
30817
30906
  section,
@@ -30989,7 +31078,7 @@ var AgentGUIConversationRailSection = memo7(
30989
31078
  path: projectPath
30990
31079
  });
30991
31080
  });
30992
- return /* @__PURE__ */ jsxs40(
31081
+ return /* @__PURE__ */ jsxs41(
30993
31082
  "section",
30994
31083
  {
30995
31084
  className: AgentGUINode_styles_default.conversationSection,
@@ -30999,7 +31088,7 @@ var AgentGUIConversationRailSection = memo7(
30999
31088
  "data-project-drop-indicator": projectDropIndicator ?? void 0,
31000
31089
  onDragOver: section.kind === "project" ? handleProjectDragOver : void 0,
31001
31090
  children: [
31002
- /* @__PURE__ */ jsx57(
31091
+ /* @__PURE__ */ jsx58(
31003
31092
  AgentGUIConversationRailSectionHeader,
31004
31093
  {
31005
31094
  canCreateConversation: canCreateConversationFromSection,
@@ -31024,14 +31113,14 @@ var AgentGUIConversationRailSection = memo7(
31024
31113
  sectionLabel: section.label
31025
31114
  }
31026
31115
  ),
31027
- /* @__PURE__ */ jsx57(
31116
+ /* @__PURE__ */ jsx58(
31028
31117
  "div",
31029
31118
  {
31030
31119
  className: AgentGUINode_styles_default.conversationSectionItems,
31031
31120
  "aria-hidden": isSectionCollapsed ? "true" : void 0,
31032
- children: /* @__PURE__ */ jsxs40("div", { className: AgentGUINode_styles_default.conversationSectionItemsInner, children: [
31033
- !isSectionCollapsed && visibleItems.length === 0 ? /* @__PURE__ */ jsx57("div", { className: AgentGUINode_styles_default.conversationSectionEmpty, children: labels.emptyProjectConversations }) : null,
31034
- visibleItems.map((item) => /* @__PURE__ */ jsx57(
31121
+ children: /* @__PURE__ */ jsxs41("div", { className: AgentGUINode_styles_default.conversationSectionItemsInner, children: [
31122
+ !isSectionCollapsed && visibleItems.length === 0 ? /* @__PURE__ */ jsx58("div", { className: AgentGUINode_styles_default.conversationSectionEmpty, children: labels.emptyProjectConversations }) : null,
31123
+ visibleItems.map((item) => /* @__PURE__ */ jsx58(
31035
31124
  AgentGUIConversationRailItem,
31036
31125
  {
31037
31126
  active: item.id === activeConversationId,
@@ -31055,8 +31144,8 @@ var AgentGUIConversationRailSection = memo7(
31055
31144
  },
31056
31145
  item.id
31057
31146
  )),
31058
- canShowMore || canShowLess ? /* @__PURE__ */ jsxs40("div", { className: AgentGUINode_styles_default.conversationSectionPagination, children: [
31059
- canShowMore ? /* @__PURE__ */ jsx57(
31147
+ canShowMore || canShowLess ? /* @__PURE__ */ jsxs41("div", { className: AgentGUINode_styles_default.conversationSectionPagination, children: [
31148
+ canShowMore ? /* @__PURE__ */ jsx58(
31060
31149
  "button",
31061
31150
  {
31062
31151
  type: "button",
@@ -31066,7 +31155,7 @@ var AgentGUIConversationRailSection = memo7(
31066
31155
  children: labels.showMoreConversations
31067
31156
  }
31068
31157
  ) : null,
31069
- canShowLess ? /* @__PURE__ */ jsx57(
31158
+ canShowLess ? /* @__PURE__ */ jsx58(
31070
31159
  "button",
31071
31160
  {
31072
31161
  type: "button",
@@ -31087,11 +31176,11 @@ var AgentGUIConversationRailSection = memo7(
31087
31176
 
31088
31177
  // agent-gui/agentGuiNode/view/AgentGUIProjectActionConfirmationDialog.tsx
31089
31178
  import { ConfirmationDialog as ConfirmationDialog2 } from "@tutti-os/ui-system";
31090
- import { jsx as jsx58 } from "react/jsx-runtime";
31179
+ import { jsx as jsx59 } from "react/jsx-runtime";
31091
31180
  var DIALOG_CLASS_NAME = "nodrag tsh-desktop-no-drag [-webkit-app-region:no-drag]";
31092
31181
  function AgentGUIProjectActionConfirmationDialog(props) {
31093
31182
  const { action, labels } = props;
31094
- return /* @__PURE__ */ jsx58(
31183
+ return /* @__PURE__ */ jsx59(
31095
31184
  ConfirmationDialog2,
31096
31185
  {
31097
31186
  cancelLabel: labels.cancel,
@@ -31266,9 +31355,9 @@ function useAgentGUIConversationRailViewState(input) {
31266
31355
  }
31267
31356
 
31268
31357
  // agent-gui/agentGuiNode/view/useAgentGUIProjectMenuState.ts
31269
- import { useCallback as useCallback51, useState as useState30 } from "react";
31358
+ import { useCallback as useCallback51, useState as useState31 } from "react";
31270
31359
  function useAgentGUIProjectMenuState(isRailInteractionLocked, isUserProjectMutationPending) {
31271
- const [openSectionId, setOpenSectionId] = useState30(null);
31360
+ const [openSectionId, setOpenSectionId] = useState31(null);
31272
31361
  const isProjectActionLocked = useCallback51(
31273
31362
  () => isRailInteractionLocked() || isUserProjectMutationPending,
31274
31363
  [isRailInteractionLocked, isUserProjectMutationPending]
@@ -31289,9 +31378,9 @@ function useAgentGUIProjectMenuState(isRailInteractionLocked, isUserProjectMutat
31289
31378
  }
31290
31379
 
31291
31380
  // agent-gui/agentGuiNode/view/AgentGUIConversationRailPane.tsx
31292
- import { jsx as jsx59, jsxs as jsxs41 } from "react/jsx-runtime";
31381
+ import { jsx as jsx60, jsxs as jsxs42 } from "react/jsx-runtime";
31293
31382
  function useDelayedBoolean(value, delayMs) {
31294
- const [delayedValue, setDelayedValue] = useState31(false);
31383
+ const [delayedValue, setDelayedValue] = useState32(false);
31295
31384
  useEffect30(() => {
31296
31385
  if (!value) {
31297
31386
  setDelayedValue(false);
@@ -31345,8 +31434,8 @@ var AgentGUIConversationRailPane = memo8(
31345
31434
  onConversationQueryChange
31346
31435
  }) {
31347
31436
  "use memo";
31348
- const [pendingProjectAction, setPendingProjectAction] = useState31(null);
31349
- const [isRequestingBatchDeletion, setIsRequestingBatchDeletion] = useState31(false);
31437
+ const [pendingProjectAction, setPendingProjectAction] = useState32(null);
31438
+ const [isRequestingBatchDeletion, setIsRequestingBatchDeletion] = useState32(false);
31350
31439
  const { railSearch } = railQuery;
31351
31440
  const railElementRef = useRef39(null);
31352
31441
  const railActiveConversationRef = useRef39([]);
@@ -31578,15 +31667,15 @@ var AgentGUIConversationRailPane = memo8(
31578
31667
  useEffect30(() => {
31579
31668
  return installProjectDragGlobalListeners();
31580
31669
  }, [installProjectDragGlobalListeners]);
31581
- return /* @__PURE__ */ jsxs41(
31670
+ return /* @__PURE__ */ jsxs42(
31582
31671
  "aside",
31583
31672
  {
31584
31673
  ref: railElementRef,
31585
31674
  className: AgentGUINode_styles_default.rail,
31586
31675
  "aria-hidden": isCollapsed ? "true" : void 0,
31587
31676
  children: [
31588
- /* @__PURE__ */ jsxs41("div", { className: AgentGUINode_styles_default.railToolbar, children: [
31589
- /* @__PURE__ */ jsx59(
31677
+ /* @__PURE__ */ jsxs42("div", { className: AgentGUINode_styles_default.railToolbar, children: [
31678
+ /* @__PURE__ */ jsx60(
31590
31679
  TaskSearchField,
31591
31680
  {
31592
31681
  value: conversationQuery,
@@ -31594,7 +31683,7 @@ var AgentGUIConversationRailPane = memo8(
31594
31683
  onChange: onConversationQueryChange
31595
31684
  }
31596
31685
  ),
31597
- /* @__PURE__ */ jsxs41(
31686
+ /* @__PURE__ */ jsxs42(
31598
31687
  Button,
31599
31688
  {
31600
31689
  type: "button",
@@ -31605,13 +31694,13 @@ var AgentGUIConversationRailPane = memo8(
31605
31694
  disabled: createConversationDisabled,
31606
31695
  onClick: () => onCreateConversation(),
31607
31696
  children: [
31608
- /* @__PURE__ */ jsx59(CreateChatIcon2, { "aria-hidden": "true" }),
31609
- /* @__PURE__ */ jsx59("span", { children: labels.newConversation })
31697
+ /* @__PURE__ */ jsx60(CreateChatIcon2, { "aria-hidden": "true" }),
31698
+ /* @__PURE__ */ jsx60("span", { children: labels.newConversation })
31610
31699
  ]
31611
31700
  }
31612
31701
  )
31613
31702
  ] }),
31614
- /* @__PURE__ */ jsx59(
31703
+ /* @__PURE__ */ jsx60(
31615
31704
  ScrollArea,
31616
31705
  {
31617
31706
  scrollbarMode: "native",
@@ -31622,14 +31711,14 @@ var AgentGUIConversationRailPane = memo8(
31622
31711
  onDragOver: keepValidProjectDropTarget,
31623
31712
  onDrop: dropProject
31624
31713
  },
31625
- children: shouldShowConversationSkeleton ? /* @__PURE__ */ jsx59(
31714
+ children: shouldShowConversationSkeleton ? /* @__PURE__ */ jsx60(
31626
31715
  AgentConversationListSkeleton,
31627
31716
  {
31628
31717
  label: labels.loadingConversations
31629
31718
  }
31630
- ) : shouldShowConversationSearchError ? /* @__PURE__ */ jsxs41("div", { className: AgentGUINode_styles_default.emptyState, children: [
31631
- /* @__PURE__ */ jsx59("span", { children: labels.searchFailed }),
31632
- /* @__PURE__ */ jsx59(
31719
+ ) : shouldShowConversationSearchError ? /* @__PURE__ */ jsxs42("div", { className: AgentGUINode_styles_default.emptyState, children: [
31720
+ /* @__PURE__ */ jsx60("span", { children: labels.searchFailed }),
31721
+ /* @__PURE__ */ jsx60(
31633
31722
  SystemButton,
31634
31723
  {
31635
31724
  type: "button",
@@ -31639,7 +31728,7 @@ var AgentGUIConversationRailPane = memo8(
31639
31728
  children: labels.retrySearch
31640
31729
  }
31641
31730
  )
31642
- ] }) : shouldShowConversationEmptyState ? /* @__PURE__ */ jsx59("div", { className: AgentGUINode_styles_default.emptyState, children: /* @__PURE__ */ jsx59("span", { children: conversationQuery.trim() ? labels.searchNoConversations : conversations.length === 0 ? labels.noConversations : labels.conversationUnavailable }) }) : /* @__PURE__ */ jsxs41("fieldset", { className: "contents", disabled: railInteractionsLocked, children: [
31731
+ ] }) : shouldShowConversationEmptyState ? /* @__PURE__ */ jsx60("div", { className: AgentGUINode_styles_default.emptyState, children: /* @__PURE__ */ jsx60("span", { children: conversationQuery.trim() ? labels.searchNoConversations : conversations.length === 0 ? labels.noConversations : labels.conversationUnavailable }) }) : /* @__PURE__ */ jsxs42("fieldset", { className: "contents", disabled: railInteractionsLocked, children: [
31643
31732
  groupedConversations.map((section, sectionIndex) => {
31644
31733
  const projectPath = section.kind === "project" ? section.project?.path ?? "" : "";
31645
31734
  const projectLabel = section.kind === "project" ? section.label : "";
@@ -31673,9 +31762,9 @@ var AgentGUIConversationRailPane = memo8(
31673
31762
  ).length + (activeOverlayCountsTowardTotal && !activeOverlayIsCanonical ? 1 : 0);
31674
31763
  const sectionHasMore = searchSectionHasMore || !conversationQuery.trim() && sectionPageState?.hasMore === true;
31675
31764
  const batchDeletionDisabled = hasConversationQuery || section.items.length === 0 && !sectionHasMore || isDeletingProjectConversations || isRequestingBatchDeletion;
31676
- return /* @__PURE__ */ jsxs41(Fragment17, { children: [
31677
- showPinnedProjectHeader ? /* @__PURE__ */ jsx59("div", { className: AgentGUINode_styles_default.pinnedProjectRailHeader, children: labels.sectionPinned }) : null,
31678
- showProjectRailHeader ? /* @__PURE__ */ jsx59(
31765
+ return /* @__PURE__ */ jsxs42(Fragment17, { children: [
31766
+ showPinnedProjectHeader ? /* @__PURE__ */ jsx60("div", { className: AgentGUINode_styles_default.pinnedProjectRailHeader, children: labels.sectionPinned }) : null,
31767
+ showProjectRailHeader ? /* @__PURE__ */ jsx60(
31679
31768
  AgentGUIProjectRailHeader,
31680
31769
  {
31681
31770
  disabled: railInteractionsLocked || isUserProjectMutationPending,
@@ -31684,13 +31773,13 @@ var AgentGUIConversationRailPane = memo8(
31684
31773
  workspaceUserProjectI18n
31685
31774
  }
31686
31775
  ) : null,
31687
- /* @__PURE__ */ jsx59(
31776
+ /* @__PURE__ */ jsx60(
31688
31777
  AgentGUIConversationRailSectionPresentationProvider,
31689
31778
  {
31690
31779
  batchDeletionDisabled,
31691
31780
  projectActionLocked,
31692
31781
  projectDragDisabled: projectDragLocked,
31693
- children: /* @__PURE__ */ jsx59(
31782
+ children: /* @__PURE__ */ jsx60(
31694
31783
  AgentGUIConversationRailSection,
31695
31784
  {
31696
31785
  activeConversation: activeOverlayConversation,
@@ -31750,7 +31839,7 @@ var AgentGUIConversationRailPane = memo8(
31750
31839
  )
31751
31840
  ] }, section.id);
31752
31841
  }),
31753
- appendProjectRailHeader ? /* @__PURE__ */ jsx59(
31842
+ appendProjectRailHeader ? /* @__PURE__ */ jsx60(
31754
31843
  AgentGUIProjectRailHeader,
31755
31844
  {
31756
31845
  disabled: railInteractionsLocked || isUserProjectMutationPending,
@@ -31762,8 +31851,8 @@ var AgentGUIConversationRailPane = memo8(
31762
31851
  ] })
31763
31852
  }
31764
31853
  ),
31765
- footer ? /* @__PURE__ */ jsx59("div", { className: "shrink-0 pb-2", children: footer }) : null,
31766
- /* @__PURE__ */ jsx59(
31854
+ footer ? /* @__PURE__ */ jsx60("div", { className: "shrink-0 pb-2", children: footer }) : null,
31855
+ /* @__PURE__ */ jsx60(
31767
31856
  AgentGUIProjectActionConfirmationDialog,
31768
31857
  {
31769
31858
  action: pendingProjectAction,
@@ -32979,10 +33068,10 @@ function identitySnapshot(snapshot) {
32979
33068
  }
32980
33069
 
32981
33070
  // agent-gui/agentGuiNode/controller/AgentGUIConversationRailController.tsx
32982
- import { jsx as jsx60 } from "react/jsx-runtime";
33071
+ import { jsx as jsx61 } from "react/jsx-runtime";
32983
33072
  var AgentGUIConversationRailController = memo9(
32984
33073
  function AgentGUIConversationRailController2(props) {
32985
- const [conversationQuery, setConversationQuery] = useState32("");
33074
+ const [conversationQuery, setConversationQuery] = useState33("");
32986
33075
  const railQuery = useAgentGUIConversationRailQuery({
32987
33076
  activeConversationId: props.activeConversationId,
32988
33077
  conversationFilter: props.conversationFilter,
@@ -32993,7 +33082,7 @@ var AgentGUIConversationRailController = memo9(
32993
33082
  userProjects: props.userProjects,
32994
33083
  workspaceId: props.workspaceId
32995
33084
  });
32996
- return /* @__PURE__ */ jsx60(
33085
+ return /* @__PURE__ */ jsx61(
32997
33086
  AgentGUIConversationRailPane,
32998
33087
  {
32999
33088
  ...props,
@@ -33012,7 +33101,7 @@ import {
33012
33101
  useEffect as useEffect34,
33013
33102
  useMemo as useMemo38,
33014
33103
  useRef as useRef43,
33015
- useState as useState37
33104
+ useState as useState38
33016
33105
  } from "react";
33017
33106
  import { ScrollArea as ScrollArea2 } from "@tutti-os/ui-system/components";
33018
33107
 
@@ -33173,9 +33262,9 @@ import { ChevronsDown } from "lucide-react";
33173
33262
  import { cn as cn8 } from "@tutti-os/ui-system";
33174
33263
 
33175
33264
  // agent-gui/agentGuiNode/AgentGoalBanner.tsx
33176
- import { useEffect as useEffect32, useState as useState33 } from "react";
33265
+ import { useEffect as useEffect32, useState as useState34 } from "react";
33177
33266
  import { CirclePause, CirclePlay, Pencil as Pencil3, Target as Target3, Trash2 } from "lucide-react";
33178
- import { jsx as jsx61, jsxs as jsxs42 } from "react/jsx-runtime";
33267
+ import { jsx as jsx62, jsxs as jsxs43 } from "react/jsx-runtime";
33179
33268
  var RESUMABLE_GOAL_STATUSES = /* @__PURE__ */ new Set([
33180
33269
  "paused",
33181
33270
  "blocked",
@@ -33249,11 +33338,11 @@ function AgentGoalBanner({
33249
33338
  onClearGoal
33250
33339
  }) {
33251
33340
  "use memo";
33252
- const [editDraft, setEditDraft] = useState33(null);
33341
+ const [editDraft, setEditDraft] = useState34(null);
33253
33342
  const normalizedStatus = normalizeGoalStatus(status);
33254
33343
  const isActive = normalizedStatus === "" || normalizedStatus === "active";
33255
33344
  const serverSeconds = optimistic ? null : typeof durationMs === "number" && durationMs >= 0 ? Math.floor(durationMs / 1e3) : isActive ? 0 : null;
33256
- const [localElapsed, setLocalElapsed] = useState33(0);
33345
+ const [localElapsed, setLocalElapsed] = useState34(0);
33257
33346
  useEffect32(() => {
33258
33347
  setLocalElapsed(0);
33259
33348
  if (!isActive || serverSeconds === null) {
@@ -33285,16 +33374,16 @@ function AgentGoalBanner({
33285
33374
  onEditObjective?.(next);
33286
33375
  }
33287
33376
  };
33288
- return /* @__PURE__ */ jsx61("div", { className: AgentGUIChrome_styles_default.sessionChrome, children: /* @__PURE__ */ jsx61(
33377
+ return /* @__PURE__ */ jsx62("div", { className: AgentGUIChrome_styles_default.sessionChrome, children: /* @__PURE__ */ jsx62(
33289
33378
  "section",
33290
33379
  {
33291
33380
  className: cn(AgentGUIChrome_styles_default.chromeCard, AgentGUIChrome_styles_default.chromeCardMuted),
33292
33381
  role: "status",
33293
33382
  "data-testid": "agent-gui-goal-banner",
33294
- children: /* @__PURE__ */ jsxs42("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: [
33295
- /* @__PURE__ */ jsxs42("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
33296
- /* @__PURE__ */ jsx61("span", { className: AgentGUIChrome_styles_default.chromeIcon, children: /* @__PURE__ */ jsx61(Target3, { "aria-hidden": true, className: "size-3.5" }) }),
33297
- editDraft !== null ? /* @__PURE__ */ jsx61(
33383
+ children: /* @__PURE__ */ jsxs43("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: [
33384
+ /* @__PURE__ */ jsxs43("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
33385
+ /* @__PURE__ */ jsx62("span", { className: AgentGUIChrome_styles_default.chromeIcon, children: /* @__PURE__ */ jsx62(Target3, { "aria-hidden": true, className: "size-3.5" }) }),
33386
+ editDraft !== null ? /* @__PURE__ */ jsx62(
33298
33387
  "input",
33299
33388
  {
33300
33389
  className: AgentGUIChrome_styles_default.chromeGoalEditInput,
@@ -33314,14 +33403,14 @@ function AgentGoalBanner({
33314
33403
  },
33315
33404
  onBlur: () => setEditDraft(null)
33316
33405
  }
33317
- ) : /* @__PURE__ */ jsxs42(
33406
+ ) : /* @__PURE__ */ jsxs43(
33318
33407
  "p",
33319
33408
  {
33320
33409
  className: cn(AgentGUIChrome_styles_default.chromeMessage, AgentGUIChrome_styles_default.chromeNoticeMessage),
33321
33410
  title: fullMessage,
33322
33411
  children: [
33323
- /* @__PURE__ */ jsx61("span", { className: AgentGUIChrome_styles_default.chromeNoticeTitle, children: title }),
33324
- /* @__PURE__ */ jsx61(
33412
+ /* @__PURE__ */ jsx62("span", { className: AgentGUIChrome_styles_default.chromeNoticeTitle, children: title }),
33413
+ /* @__PURE__ */ jsx62(
33325
33414
  "span",
33326
33415
  {
33327
33416
  className: AgentGUIChrome_styles_default.chromeNoticeDescription,
@@ -33333,8 +33422,8 @@ function AgentGoalBanner({
33333
33422
  }
33334
33423
  )
33335
33424
  ] }),
33336
- hasActions ? /* @__PURE__ */ jsxs42("div", { className: AgentGUIChrome_styles_default.chromeGoalActions, children: [
33337
- onEditObjective !== void 0 && editDraft === null ? /* @__PURE__ */ jsx61(
33425
+ hasActions ? /* @__PURE__ */ jsxs43("div", { className: AgentGUIChrome_styles_default.chromeGoalActions, children: [
33426
+ onEditObjective !== void 0 && editDraft === null ? /* @__PURE__ */ jsx62(
33338
33427
  "button",
33339
33428
  {
33340
33429
  type: "button",
@@ -33342,10 +33431,10 @@ function AgentGoalBanner({
33342
33431
  title: labels.editAction,
33343
33432
  "aria-label": labels.editAction,
33344
33433
  "data-testid": "agent-gui-goal-banner-edit",
33345
- children: /* @__PURE__ */ jsx61(Pencil3, { "aria-hidden": true, className: "size-3.5" })
33434
+ children: /* @__PURE__ */ jsx62(Pencil3, { "aria-hidden": true, className: "size-3.5" })
33346
33435
  }
33347
33436
  ) : null,
33348
- showPause ? /* @__PURE__ */ jsx61(
33437
+ showPause ? /* @__PURE__ */ jsx62(
33349
33438
  "button",
33350
33439
  {
33351
33440
  type: "button",
@@ -33353,10 +33442,10 @@ function AgentGoalBanner({
33353
33442
  title: labels.pauseAction,
33354
33443
  "aria-label": labels.pauseAction,
33355
33444
  "data-testid": "agent-gui-goal-banner-pause",
33356
- children: /* @__PURE__ */ jsx61(CirclePause, { "aria-hidden": true, className: "size-3.5" })
33445
+ children: /* @__PURE__ */ jsx62(CirclePause, { "aria-hidden": true, className: "size-3.5" })
33357
33446
  }
33358
33447
  ) : null,
33359
- showResume ? /* @__PURE__ */ jsx61(
33448
+ showResume ? /* @__PURE__ */ jsx62(
33360
33449
  "button",
33361
33450
  {
33362
33451
  type: "button",
@@ -33364,10 +33453,10 @@ function AgentGoalBanner({
33364
33453
  title: labels.resumeAction,
33365
33454
  "aria-label": labels.resumeAction,
33366
33455
  "data-testid": "agent-gui-goal-banner-resume",
33367
- children: /* @__PURE__ */ jsx61(CirclePlay, { "aria-hidden": true, className: "size-3.5" })
33456
+ children: /* @__PURE__ */ jsx62(CirclePlay, { "aria-hidden": true, className: "size-3.5" })
33368
33457
  }
33369
33458
  ) : null,
33370
- onClearGoal !== void 0 ? /* @__PURE__ */ jsx61(
33459
+ onClearGoal !== void 0 ? /* @__PURE__ */ jsx62(
33371
33460
  "button",
33372
33461
  {
33373
33462
  type: "button",
@@ -33375,10 +33464,10 @@ function AgentGoalBanner({
33375
33464
  title: labels.clearAction,
33376
33465
  "aria-label": labels.clearAction,
33377
33466
  "data-testid": "agent-gui-goal-banner-clear",
33378
- children: /* @__PURE__ */ jsx61(Trash2, { "aria-hidden": true, className: "size-3.5" })
33467
+ children: /* @__PURE__ */ jsx62(Trash2, { "aria-hidden": true, className: "size-3.5" })
33379
33468
  }
33380
33469
  ) : null
33381
- ] }) : /* @__PURE__ */ jsx61(
33470
+ ] }) : /* @__PURE__ */ jsx62(
33382
33471
  "span",
33383
33472
  {
33384
33473
  className: AgentGUIChrome_styles_default.chromeGoalHint,
@@ -33392,7 +33481,7 @@ function AgentGoalBanner({
33392
33481
  }
33393
33482
 
33394
33483
  // agent-gui/agentGuiNode/view/AgentGUIBottomDockPane.tsx
33395
- import { jsx as jsx62, jsxs as jsxs43 } from "react/jsx-runtime";
33484
+ import { jsx as jsx63, jsxs as jsxs44 } from "react/jsx-runtime";
33396
33485
  var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
33397
33486
  bottomDockRef,
33398
33487
  showScrollToBottom,
@@ -33426,14 +33515,14 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
33426
33515
  const goalDurationMs = goal ? numberValue(goal.durationMs) : null;
33427
33516
  const goalIsOptimistic = sessionChrome.rawState?.goalIsOptimistic === true;
33428
33517
  const showGoalBanner = isGoalBannerVisible(goalObjective, goalStatus);
33429
- return /* @__PURE__ */ jsxs43(
33518
+ return /* @__PURE__ */ jsxs44(
33430
33519
  "div",
33431
33520
  {
33432
33521
  ref: bottomDockRef,
33433
33522
  className: AgentGUINode_styles_default.bottomDock,
33434
33523
  "data-testid": "agent-gui-bottom-dock",
33435
33524
  children: [
33436
- showScrollToBottom ? /* @__PURE__ */ jsx62(
33525
+ showScrollToBottom ? /* @__PURE__ */ jsx63(
33437
33526
  "button",
33438
33527
  {
33439
33528
  type: "button",
@@ -33446,15 +33535,15 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
33446
33535
  title: scrollToBottomLabel,
33447
33536
  onPointerDown: (event) => event.stopPropagation(),
33448
33537
  onClick: onScrollToBottom,
33449
- children: /* @__PURE__ */ jsx62(ChevronsDown, { "aria-hidden": "true", size: 15, strokeWidth: 2.2 })
33538
+ children: /* @__PURE__ */ jsx63(ChevronsDown, { "aria-hidden": "true", size: 15, strokeWidth: 2.2 })
33450
33539
  }
33451
33540
  ) : null,
33452
- bottomDockLiftedPrompt ? /* @__PURE__ */ jsx62(
33541
+ bottomDockLiftedPrompt ? /* @__PURE__ */ jsx63(
33453
33542
  "div",
33454
33543
  {
33455
33544
  className: AgentGUINode_styles_default.bottomDockPrompt,
33456
33545
  "data-testid": "agent-gui-bottom-dock-active-prompt",
33457
- children: /* @__PURE__ */ jsx62(
33546
+ children: /* @__PURE__ */ jsx63(
33458
33547
  AgentInteractivePromptSurface,
33459
33548
  {
33460
33549
  prompt: bottomDockLiftedPrompt,
@@ -33469,7 +33558,7 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
33469
33558
  )
33470
33559
  }
33471
33560
  ) : null,
33472
- inlineNoticeChrome ? /* @__PURE__ */ jsx62(
33561
+ inlineNoticeChrome ? /* @__PURE__ */ jsx63(
33473
33562
  AgentSessionChrome,
33474
33563
  {
33475
33564
  chrome: inlineNoticeChrome,
@@ -33481,7 +33570,7 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
33481
33570
  labels: chromeLabels
33482
33571
  }
33483
33572
  ) : null,
33484
- /* @__PURE__ */ jsx62(
33573
+ /* @__PURE__ */ jsx63(
33485
33574
  AgentSessionChrome,
33486
33575
  {
33487
33576
  chrome: sessionChrome,
@@ -33493,7 +33582,7 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
33493
33582
  labels: chromeLabels
33494
33583
  }
33495
33584
  ),
33496
- showGoalBanner ? /* @__PURE__ */ jsx62(
33585
+ showGoalBanner ? /* @__PURE__ */ jsx63(
33497
33586
  AgentGoalBanner,
33498
33587
  {
33499
33588
  objective: goalObjective,
@@ -33508,12 +33597,12 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
33508
33597
  onClearGoal: () => onGoalControl("clear")
33509
33598
  }
33510
33599
  ) : null,
33511
- bottomDockReplacementPrompt ? /* @__PURE__ */ jsx62(
33600
+ bottomDockReplacementPrompt ? /* @__PURE__ */ jsx63(
33512
33601
  "div",
33513
33602
  {
33514
33603
  className: AgentGUINode_styles_default.bottomDockPrompt,
33515
33604
  "data-testid": "agent-gui-bottom-dock-active-prompt",
33516
- children: /* @__PURE__ */ jsx62(
33605
+ children: /* @__PURE__ */ jsx63(
33517
33606
  AgentInteractivePromptSurface,
33518
33607
  {
33519
33608
  prompt: bottomDockReplacementPrompt,
@@ -33527,28 +33616,28 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
33527
33616
  }
33528
33617
  )
33529
33618
  }
33530
- ) : /* @__PURE__ */ jsx62(AgentComposer, { ...composerProps })
33619
+ ) : /* @__PURE__ */ jsx63(AgentComposer, { ...composerProps })
33531
33620
  ]
33532
33621
  }
33533
33622
  );
33534
33623
  });
33535
33624
 
33536
33625
  // agent-gui/agentGuiNode/view/AgentGUIContentToast.tsx
33537
- import { useState as useState34 } from "react";
33626
+ import { useState as useState35 } from "react";
33538
33627
  import {
33539
33628
  ToastProvider,
33540
33629
  ToastRoot,
33541
33630
  ToastTitle,
33542
33631
  ToastViewport
33543
33632
  } from "@tutti-os/ui-system";
33544
- import { jsx as jsx63, jsxs as jsxs44 } from "react/jsx-runtime";
33633
+ import { jsx as jsx64, jsxs as jsxs45 } from "react/jsx-runtime";
33545
33634
  function AgentGUIContentToast({
33546
33635
  insetTopPx,
33547
33636
  message
33548
33637
  }) {
33549
- const [open, setOpen] = useState34(true);
33550
- return /* @__PURE__ */ jsxs44(ToastProvider, { children: [
33551
- /* @__PURE__ */ jsx63(
33638
+ const [open, setOpen] = useState35(true);
33639
+ return /* @__PURE__ */ jsxs45(ToastProvider, { children: [
33640
+ /* @__PURE__ */ jsx64(
33552
33641
  ToastRoot,
33553
33642
  {
33554
33643
  open,
@@ -33556,10 +33645,10 @@ function AgentGUIContentToast({
33556
33645
  "data-testid": "agent-gui-content-toast",
33557
33646
  variant: "default",
33558
33647
  onOpenChange: setOpen,
33559
- children: /* @__PURE__ */ jsx63(ToastTitle, { children: message })
33648
+ children: /* @__PURE__ */ jsx64(ToastTitle, { children: message })
33560
33649
  }
33561
33650
  ),
33562
- /* @__PURE__ */ jsx63(
33651
+ /* @__PURE__ */ jsx64(
33563
33652
  ToastViewport,
33564
33653
  {
33565
33654
  className: "nodrag tsh-desktop-no-drag absolute left-0 w-full translate-x-0 px-4 [-webkit-app-region:no-drag]",
@@ -33572,7 +33661,7 @@ function AgentGUIContentToast({
33572
33661
 
33573
33662
  // agent-gui/agentGuiNode/view/AgentGUIConversationTimelinePane.tsx
33574
33663
  import { memo as memo11 } from "react";
33575
- import { Fragment as Fragment18, jsx as jsx64, jsxs as jsxs45 } from "react/jsx-runtime";
33664
+ import { Fragment as Fragment18, jsx as jsx65, jsxs as jsxs46 } from "react/jsx-runtime";
33576
33665
  var EMPTY_WORKSPACE_APP_ICONS3 = [];
33577
33666
  var AgentGUIConversationTimelinePane = memo11(
33578
33667
  function AgentGUIConversationTimelinePane2({
@@ -33589,17 +33678,17 @@ var AgentGUIConversationTimelinePane = memo11(
33589
33678
  labels
33590
33679
  }) {
33591
33680
  "use memo";
33592
- return /* @__PURE__ */ jsxs45(Fragment18, { children: [
33593
- isLoadingOlderMessages && !isLoading ? /* @__PURE__ */ jsx64(
33681
+ return /* @__PURE__ */ jsxs46(Fragment18, { children: [
33682
+ isLoadingOlderMessages && !isLoading ? /* @__PURE__ */ jsx65(
33594
33683
  "div",
33595
33684
  {
33596
33685
  className: "mx-auto flex h-8 items-center justify-center text-[12px] text-[var(--text-secondary)]",
33597
33686
  "data-testid": "agent-gui-older-messages-loading",
33598
33687
  role: "status",
33599
- children: /* @__PURE__ */ jsx64("span", { className: "tsh-inline-loading-ellipsis", children: loadingLabel })
33688
+ children: /* @__PURE__ */ jsx65("span", { className: "tsh-inline-loading-ellipsis", children: loadingLabel })
33600
33689
  }
33601
33690
  ) : null,
33602
- /* @__PURE__ */ jsx64(
33691
+ /* @__PURE__ */ jsx65(
33603
33692
  AgentConversationFlow,
33604
33693
  {
33605
33694
  conversation,
@@ -33638,7 +33727,7 @@ import {
33638
33727
  useEffect as useEffect33,
33639
33728
  useLayoutEffect as useLayoutEffect7,
33640
33729
  useRef as useRef42,
33641
- useState as useState35
33730
+ useState as useState36
33642
33731
  } from "react";
33643
33732
  var AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX = 24;
33644
33733
  var AGENT_GUI_TOP_HISTORY_PREFETCH_THRESHOLD_PX = 240;
@@ -33657,8 +33746,8 @@ function useAgentGUIDetailScroll(input) {
33657
33746
  timelineScrollAnchorRef,
33658
33747
  viewModel
33659
33748
  } = input;
33660
- const [isTimelineScrolledToTop, setIsTimelineScrolledToTop] = useState35(true);
33661
- const [isTimelineScrolledToBottom, setIsTimelineScrolledToBottom] = useState35(true);
33749
+ const [isTimelineScrolledToTop, setIsTimelineScrolledToTop] = useState36(true);
33750
+ const [isTimelineScrolledToBottom, setIsTimelineScrolledToBottom] = useState36(true);
33662
33751
  const bottomLockOwnerRef = useRef42(null);
33663
33752
  const userScrollAwayIntentConversationRef = useRef42(null);
33664
33753
  useLayoutEffect7(() => {
@@ -33980,10 +34069,10 @@ function useAgentGUIDetailScroll(input) {
33980
34069
  import { useMemo as useMemo37 } from "react";
33981
34070
 
33982
34071
  // app/renderer/components/icons/UnavailableChatIcon.tsx
33983
- import { jsx as jsx65 } from "react/jsx-runtime";
34072
+ import { jsx as jsx66 } from "react/jsx-runtime";
33984
34073
  function UnavailableChatIcon(props) {
33985
34074
  "use memo";
33986
- return /* @__PURE__ */ jsx65(
34075
+ return /* @__PURE__ */ jsx66(
33987
34076
  "svg",
33988
34077
  {
33989
34078
  xmlns: "http://www.w3.org/2000/svg",
@@ -33991,21 +34080,21 @@ function UnavailableChatIcon(props) {
33991
34080
  fill: "currentColor",
33992
34081
  "aria-hidden": true,
33993
34082
  ...props,
33994
- children: /* @__PURE__ */ jsx65("path", { d: "M20.833 2.125C21.6507 2.125 22.4355 2.45019 23.0137 3.02832C23.5916 3.60645 23.9159 4.39053 23.916 5.20801V17.708C23.916 18.5257 23.5918 19.3104 23.0137 19.8887C22.4355 20.4668 21.6507 20.792 20.833 20.792H7.1123C6.82516 20.7922 6.5497 20.9063 6.34668 21.1094L4.05273 23.4033C3.80954 23.6464 3.49934 23.8118 3.16211 23.8789C2.82492 23.9459 2.47487 23.9118 2.15723 23.7803C1.83953 23.6486 1.56707 23.4256 1.37598 23.1396C1.18489 22.8536 1.08305 22.5168 1.08301 22.1729V5.20801C1.08309 4.39045 1.40827 3.60647 1.98633 3.02832C2.56441 2.45024 3.3485 2.12517 4.16602 2.125H20.833ZM16.1533 7.80566C15.7628 7.41518 15.1298 7.41527 14.7393 7.80566L12.5 10.0439L10.2607 7.80469C9.87031 7.41464 9.23712 7.41465 8.84668 7.80469C8.45627 8.19509 8.45651 8.8282 8.84668 9.21875L11.0859 11.458L8.84668 13.6982C8.45651 14.0888 8.45627 14.7219 8.84668 15.1123C9.2371 15.5026 9.87024 15.5024 10.2607 15.1123L12.5 12.873L14.7393 15.1113C15.1298 15.5017 15.7628 15.5018 16.1533 15.1113C16.5434 14.7208 16.5436 14.0877 16.1533 13.6973L13.9141 11.458L16.1533 9.21973C16.5437 8.82924 16.5437 8.19616 16.1533 7.80566Z" })
34083
+ children: /* @__PURE__ */ jsx66("path", { d: "M20.833 2.125C21.6507 2.125 22.4355 2.45019 23.0137 3.02832C23.5916 3.60645 23.9159 4.39053 23.916 5.20801V17.708C23.916 18.5257 23.5918 19.3104 23.0137 19.8887C22.4355 20.4668 21.6507 20.792 20.833 20.792H7.1123C6.82516 20.7922 6.5497 20.9063 6.34668 21.1094L4.05273 23.4033C3.80954 23.6464 3.49934 23.8118 3.16211 23.8789C2.82492 23.9459 2.47487 23.9118 2.15723 23.7803C1.83953 23.6486 1.56707 23.4256 1.37598 23.1396C1.18489 22.8536 1.08305 22.5168 1.08301 22.1729V5.20801C1.08309 4.39045 1.40827 3.60647 1.98633 3.02832C2.56441 2.45024 3.3485 2.12517 4.16602 2.125H20.833ZM16.1533 7.80566C15.7628 7.41518 15.1298 7.41527 14.7393 7.80566L12.5 10.0439L10.2607 7.80469C9.87031 7.41464 9.23712 7.41465 8.84668 7.80469C8.45627 8.19509 8.45651 8.8282 8.84668 9.21875L11.0859 11.458L8.84668 13.6982C8.45651 14.0888 8.45627 14.7219 8.84668 15.1123C9.2371 15.5026 9.87024 15.5024 10.2607 15.1123L12.5 12.873L14.7393 15.1113C15.1298 15.5017 15.7628 15.5018 16.1533 15.1113C16.5434 14.7208 16.5436 14.0877 16.1533 13.6973L13.9141 11.458L16.1533 9.21973C16.5437 8.82924 16.5437 8.19616 16.1533 7.80566Z" })
33995
34084
  }
33996
34085
  );
33997
34086
  }
33998
34087
 
33999
34088
  // agent-gui/agentGuiNode/view/useAgentGUITimelineTransition.ts
34000
- import { useLayoutEffect as useLayoutEffect8, useState as useState36 } from "react";
34089
+ import { useLayoutEffect as useLayoutEffect8, useState as useState37 } from "react";
34001
34090
  var AGENT_GUI_TIMELINE_SKELETON_DELAY_MS = 300;
34002
34091
  function useAgentGUITimelineTransition(input) {
34003
34092
  const activeConversationId = input.activeConversationId;
34004
- const [committedTimeline, setCommittedTimeline] = useState36(() => ({
34093
+ const [committedTimeline, setCommittedTimeline] = useState37(() => ({
34005
34094
  conversation: input.conversation,
34006
34095
  conversationId: activeConversationId
34007
34096
  }));
34008
- const [revealedSkeletonConversationId, setRevealedSkeletonConversationId] = useState36(null);
34097
+ const [revealedSkeletonConversationId, setRevealedSkeletonConversationId] = useState37(null);
34009
34098
  const transitionPending = activeConversationId !== null && input.availability === "loading" && (!input.conversation || input.conversation.rows.length === 0);
34010
34099
  useLayoutEffect8(() => {
34011
34100
  if (!transitionPending || activeConversationId === null) {
@@ -34037,7 +34126,7 @@ function useAgentGUITimelineTransition(input) {
34037
34126
  }
34038
34127
 
34039
34128
  // agent-gui/agentGuiNode/view/useAgentGUIDetailModel.tsx
34040
- import { Fragment as Fragment19, jsx as jsx66, jsxs as jsxs46 } from "react/jsx-runtime";
34129
+ import { Fragment as Fragment19, jsx as jsx67, jsxs as jsxs47 } from "react/jsx-runtime";
34041
34130
  function useAgentGUIDetailModel(input) {
34042
34131
  const {
34043
34132
  bottomDockDismissedPromptRequestId,
@@ -34185,17 +34274,17 @@ function useAgentGUIDetailModel(input) {
34185
34274
  ]
34186
34275
  );
34187
34276
  const conversationFlowEmpty = useMemo37(
34188
- () => showUnavailableChatEmpty ? /* @__PURE__ */ jsxs46(
34277
+ () => showUnavailableChatEmpty ? /* @__PURE__ */ jsxs47(
34189
34278
  "div",
34190
34279
  {
34191
34280
  className: AgentGUINode_styles_default.unavailableChatEmpty,
34192
34281
  "data-testid": "agent-gui-unavailable-chat-empty",
34193
34282
  children: [
34194
- /* @__PURE__ */ jsx66(UnavailableChatIcon, { className: AgentGUINode_styles_default.unavailableChatEmptyIcon }),
34195
- /* @__PURE__ */ jsx66("span", { className: AgentGUINode_styles_default.unavailableChatEmptyText, children: labels.conversationUnavailable })
34283
+ /* @__PURE__ */ jsx67(UnavailableChatIcon, { className: AgentGUINode_styles_default.unavailableChatEmptyIcon }),
34284
+ /* @__PURE__ */ jsx67("span", { className: AgentGUINode_styles_default.unavailableChatEmptyText, children: labels.conversationUnavailable })
34196
34285
  ]
34197
34286
  }
34198
- ) : /* @__PURE__ */ jsx66(Fragment19, {}),
34287
+ ) : /* @__PURE__ */ jsx67(Fragment19, {}),
34199
34288
  [labels.conversationUnavailable, showUnavailableChatEmpty]
34200
34289
  );
34201
34290
  const chromeLabels = useMemo37(
@@ -34572,7 +34661,7 @@ function useAgentGUIDetailModel(input) {
34572
34661
  }
34573
34662
 
34574
34663
  // agent-gui/agentGuiNode/view/AgentGUIDetailPane.tsx
34575
- import { Fragment as Fragment20, jsx as jsx67, jsxs as jsxs47 } from "react/jsx-runtime";
34664
+ import { Fragment as Fragment20, jsx as jsx68, jsxs as jsxs48 } from "react/jsx-runtime";
34576
34665
  var AGENT_GUI_TIMELINE_SCROLL_AREA_CONTENT_STYLE = {
34577
34666
  width: "100%",
34578
34667
  minWidth: "100%",
@@ -34662,7 +34751,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
34662
34751
  const [
34663
34752
  bottomDockDismissedPromptRequestId,
34664
34753
  setBottomDockDismissedPromptRequestId
34665
- ] = useState37(null);
34754
+ ] = useState38(null);
34666
34755
  const {
34667
34756
  activePromptRequestId,
34668
34757
  bottomDockLiftedPrompt,
@@ -35028,14 +35117,14 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
35028
35117
  timelineScrollAnchorRef,
35029
35118
  viewModel
35030
35119
  });
35031
- return /* @__PURE__ */ jsxs47(
35120
+ return /* @__PURE__ */ jsxs48(
35032
35121
  "main",
35033
35122
  {
35034
35123
  className: AgentGUINode_styles_default.detail,
35035
35124
  "aria-busy": timelineInteractionLocked || void 0,
35036
35125
  inert: timelineInteractionLocked,
35037
35126
  children: [
35038
- viewModel.operations.goalClearNoticeSequence > 0 ? /* @__PURE__ */ jsx67(
35127
+ viewModel.operations.goalClearNoticeSequence > 0 ? /* @__PURE__ */ jsx68(
35039
35128
  AgentGUIContentToast,
35040
35129
  {
35041
35130
  insetTopPx: 16,
@@ -35043,7 +35132,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
35043
35132
  },
35044
35133
  viewModel.operations.goalClearNoticeSequence
35045
35134
  ) : null,
35046
- /* @__PURE__ */ jsx67(
35135
+ /* @__PURE__ */ jsx68(
35047
35136
  ScrollArea2,
35048
35137
  {
35049
35138
  scrollbarMode: "native",
@@ -35052,7 +35141,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
35052
35141
  viewportTestId: "agent-gui-timeline",
35053
35142
  viewportClassName: `${AgentGUINode_styles_default.timeline} ${hasActiveConversation ? AgentGUINode_styles_default.timelineWithComposer : AgentGUINode_styles_default.timelineCentered} ${!isTimelineScrolledToTop ? AgentGUINode_styles_default.timelineScrolledFromTop : ""} ${showUnavailableChatEmpty ? AgentGUINode_styles_default.timelineUnavailableChatEmpty : ""}`.trim(),
35054
35143
  viewportContentStyle: AGENT_GUI_TIMELINE_SCROLL_AREA_CONTENT_STYLE,
35055
- children: !hasActiveConversation ? shouldRenderProviderUnavailableState && disabledProviderTarget ? /* @__PURE__ */ jsx67(Fragment20, { children: renderProviderUnavailableState?.({
35144
+ children: !hasActiveConversation ? shouldRenderProviderUnavailableState && disabledProviderTarget ? /* @__PURE__ */ jsx68(Fragment20, { children: renderProviderUnavailableState?.({
35056
35145
  provider: disabledProviderTarget.provider,
35057
35146
  providerLabel: labels.emptyProviderForProvider?.(
35058
35147
  disabledProviderTarget.provider
@@ -35064,7 +35153,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
35064
35153
  disabledProviderTarget.provider
35065
35154
  ),
35066
35155
  unavailableReason: disabledProviderTarget.unavailableReason ?? null
35067
- }) }) : /* @__PURE__ */ jsx67(
35156
+ }) }) : /* @__PURE__ */ jsx68(
35068
35157
  AgentGUIEmptyHomePane,
35069
35158
  {
35070
35159
  provider: emptyHeroProvider,
@@ -35087,7 +35176,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
35087
35176
  onSelectSuggestion: handleSelectHomeSuggestion,
35088
35177
  onSelectSuggestionAction: handleHomeSuggestionAction
35089
35178
  }
35090
- ) : /* @__PURE__ */ jsx67(
35179
+ ) : /* @__PURE__ */ jsx68(
35091
35180
  AgentGUIConversationTimelinePane,
35092
35181
  {
35093
35182
  conversation,
@@ -35105,7 +35194,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
35105
35194
  )
35106
35195
  }
35107
35196
  ),
35108
- hasActiveConversation ? /* @__PURE__ */ jsx67(
35197
+ hasActiveConversation ? /* @__PURE__ */ jsx68(
35109
35198
  AgentGUIBottomDockPane,
35110
35199
  {
35111
35200
  bottomDockRef,
@@ -35137,9 +35226,9 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
35137
35226
  });
35138
35227
 
35139
35228
  // agent-gui/agentGuiNode/view/AgentGUIRenameConversationDialog.tsx
35140
- import { memo as memo13, useCallback as useCallback54, useEffect as useEffect35, useRef as useRef44, useState as useState38 } from "react";
35229
+ import { memo as memo13, useCallback as useCallback54, useEffect as useEffect35, useRef as useRef44, useState as useState39 } from "react";
35141
35230
  import { ConfirmationDialog as ConfirmationDialog3, Input as Input2 } from "@tutti-os/ui-system";
35142
- import { jsx as jsx68, jsxs as jsxs48 } from "react/jsx-runtime";
35231
+ import { jsx as jsx69, jsxs as jsxs49 } from "react/jsx-runtime";
35143
35232
  var AgentGUIRenameConversationDialog = memo13(
35144
35233
  function AgentGUIRenameConversationDialog2({
35145
35234
  conversation,
@@ -35149,8 +35238,8 @@ var AgentGUIRenameConversationDialog = memo13(
35149
35238
  onRename
35150
35239
  }) {
35151
35240
  "use memo";
35152
- const [title, setTitle] = useState38("");
35153
- const [isSaving, setIsSaving] = useState38(false);
35241
+ const [title, setTitle] = useState39("");
35242
+ const [isSaving, setIsSaving] = useState39(false);
35154
35243
  const isSavingRef = useRef44(false);
35155
35244
  const armedPointerActionRef = useRef44(null);
35156
35245
  const inputRef = useRef44(null);
@@ -35195,7 +35284,7 @@ var AgentGUIRenameConversationDialog = memo13(
35195
35284
  setIsSaving(false);
35196
35285
  });
35197
35286
  }, [conversation, onOpenChange, onRename, trimmedTitle]);
35198
- return /* @__PURE__ */ jsx68(
35287
+ return /* @__PURE__ */ jsx69(
35199
35288
  ConfirmationDialog3,
35200
35289
  {
35201
35290
  cancelLabel: labels.cancel,
@@ -35204,8 +35293,8 @@ var AgentGUIRenameConversationDialog = memo13(
35204
35293
  confirmDisabled: !trimmedTitle,
35205
35294
  confirmLabel: labels.renameSessionSave,
35206
35295
  description: labels.renameSessionDescription,
35207
- footer: /* @__PURE__ */ jsxs48("div", { className: "flex justify-end gap-2", children: [
35208
- /* @__PURE__ */ jsx68(
35296
+ footer: /* @__PURE__ */ jsxs49("div", { className: "flex justify-end gap-2", children: [
35297
+ /* @__PURE__ */ jsx69(
35209
35298
  Button,
35210
35299
  {
35211
35300
  disabled: isSaving,
@@ -35243,7 +35332,7 @@ var AgentGUIRenameConversationDialog = memo13(
35243
35332
  children: labels.cancel
35244
35333
  }
35245
35334
  ),
35246
- /* @__PURE__ */ jsx68(
35335
+ /* @__PURE__ */ jsx69(
35247
35336
  Button,
35248
35337
  {
35249
35338
  className: "shadow-none",
@@ -35298,7 +35387,7 @@ var AgentGUIRenameConversationDialog = memo13(
35298
35387
  title: labels.renameSessionTitle,
35299
35388
  onConfirm: confirmRename,
35300
35389
  onOpenChange,
35301
- children: /* @__PURE__ */ jsx68(
35390
+ children: /* @__PURE__ */ jsx69(
35302
35391
  Input2,
35303
35392
  {
35304
35393
  ref: inputRef,
@@ -35326,7 +35415,7 @@ import {
35326
35415
  ReferenceSourcePicker,
35327
35416
  WorkspaceFileReferencePicker
35328
35417
  } from "@tutti-os/workspace-file-reference/ui";
35329
- import { jsx as jsx69 } from "react/jsx-runtime";
35418
+ import { jsx as jsx70 } from "react/jsx-runtime";
35330
35419
  function AgentGUIReferencePickerSurface({
35331
35420
  aggregator,
35332
35421
  copy,
@@ -35343,7 +35432,7 @@ function AgentGUIReferencePickerSurface({
35343
35432
  onConfirm,
35344
35433
  onConfirmBundles
35345
35434
  }) {
35346
- return aggregator ? /* @__PURE__ */ jsx69(
35435
+ return aggregator ? /* @__PURE__ */ jsx70(
35347
35436
  ReferenceSourcePicker,
35348
35437
  {
35349
35438
  aggregator,
@@ -35353,7 +35442,7 @@ function AgentGUIReferencePickerSurface({
35353
35442
  fileManagerCopy: fileManagerCopy ?? void 0,
35354
35443
  open,
35355
35444
  provenanceFilter: provenanceFilter?.snapshot.value,
35356
- provenanceFilterControl: provenanceFilter ? /* @__PURE__ */ jsx69(
35445
+ provenanceFilterControl: provenanceFilter ? /* @__PURE__ */ jsx70(
35357
35446
  AgentReferenceProvenanceFilterControl,
35358
35447
  {
35359
35448
  filter: provenanceFilter,
@@ -35366,7 +35455,7 @@ function AgentGUIReferencePickerSurface({
35366
35455
  onConfirm,
35367
35456
  onConfirmBundles
35368
35457
  }
35369
- ) : /* @__PURE__ */ jsx69(
35458
+ ) : /* @__PURE__ */ jsx70(
35370
35459
  WorkspaceFileReferencePicker,
35371
35460
  {
35372
35461
  copy,
@@ -35383,7 +35472,7 @@ function AgentGUIReferencePickerSurface({
35383
35472
 
35384
35473
  // agent-gui/agentGuiNode/view/AgentTargetSetupRoot.tsx
35385
35474
  import { useCallback as useCallback55, useMemo as useMemo39 } from "react";
35386
- import { jsx as jsx70, jsxs as jsxs49 } from "react/jsx-runtime";
35475
+ import { jsx as jsx71, jsxs as jsxs50 } from "react/jsx-runtime";
35387
35476
  function useAgentTargetSetupRoot(input) {
35388
35477
  const { preferences } = useAgentGUIProviderRailPreferences();
35389
35478
  const homeTargetProjection = useMemo39(
@@ -35427,9 +35516,9 @@ function AgentTargetSetupRoot({
35427
35516
  controller,
35428
35517
  openEnvironmentSetup
35429
35518
  }) {
35430
- return /* @__PURE__ */ jsx70(AgentEnvPanelActionProvider, { openPanel: openEnvironmentSetup, children: /* @__PURE__ */ jsxs49(AgentTargetSetupControllerProvider, { controller, children: [
35519
+ return /* @__PURE__ */ jsx71(AgentEnvPanelActionProvider, { openPanel: openEnvironmentSetup, children: /* @__PURE__ */ jsxs50(AgentTargetSetupControllerProvider, { controller, children: [
35431
35520
  children,
35432
- /* @__PURE__ */ jsx70(
35521
+ /* @__PURE__ */ jsx71(
35433
35522
  AgentTargetSetupGate,
35434
35523
  {
35435
35524
  carouselMountedExternally: false,
@@ -35441,7 +35530,7 @@ function AgentTargetSetupRoot({
35441
35530
  }
35442
35531
 
35443
35532
  // agent-gui/agentGuiNode/view/useAgentGUIWorkspaceReferencePicker.ts
35444
- import { useCallback as useCallback56, useMemo as useMemo40, useRef as useRef45, useState as useState39 } from "react";
35533
+ import { useCallback as useCallback56, useMemo as useMemo40, useRef as useRef45, useState as useState40 } from "react";
35445
35534
  import { createRichTextMentionHref } from "@tutti-os/ui-rich-text/core";
35446
35535
  function useAgentGUIWorkspaceReferencePicker(input) {
35447
35536
  const {
@@ -35454,8 +35543,8 @@ function useAgentGUIWorkspaceReferencePicker(input) {
35454
35543
  workspaceFileReferenceAdapter,
35455
35544
  workspaceFileReferenceCopy
35456
35545
  } = input;
35457
- const [workspaceReferencePickerOpen, setWorkspaceReferencePickerOpen] = useState39(false);
35458
- const [workspaceReferencePickerTarget, setWorkspaceReferencePickerTarget] = useState39(null);
35546
+ const [workspaceReferencePickerOpen, setWorkspaceReferencePickerOpen] = useState40(false);
35547
+ const [workspaceReferencePickerTarget, setWorkspaceReferencePickerTarget] = useState40(null);
35459
35548
  const workspaceReferencePickerResolverRef = useRef45(null);
35460
35549
  const emptyReferencePickResult = useMemo40(
35461
35550
  () => ({ files: [], mentionItems: [] }),
@@ -35902,7 +35991,7 @@ function useAgentGUIExternalRequests(input) {
35902
35991
  }
35903
35992
 
35904
35993
  // agent-gui/agentGuiNode/AgentGUINodeView.tsx
35905
- import { jsx as jsx71, jsxs as jsxs50 } from "react/jsx-runtime";
35994
+ import { jsx as jsx72, jsxs as jsxs51 } from "react/jsx-runtime";
35906
35995
  function AgentGUINodeView({
35907
35996
  viewModel,
35908
35997
  referenceProvenanceFilter = null,
@@ -35974,16 +36063,16 @@ function AgentGUINodeView({
35974
36063
  previewMode,
35975
36064
  viewModel
35976
36065
  });
35977
- const [providerManagerOpen, setProviderManagerOpen] = useState40(false);
36066
+ const [providerManagerOpen, setProviderManagerOpen] = useState41(false);
35978
36067
  const railResizeInteractionRef = useRef49(null);
35979
- const [isRailResizing, setIsRailResizing] = useState40(false);
35980
- const [railResizeWidthPx, setRailResizeWidthPx] = useState40(
36068
+ const [isRailResizing, setIsRailResizing] = useState41(false);
36069
+ const [railResizeWidthPx, setRailResizeWidthPx] = useState41(
35981
36070
  null
35982
36071
  );
35983
36072
  const [
35984
36073
  localComposerFocusRequestSequence,
35985
36074
  setLocalComposerFocusRequestSequence
35986
- ] = useState40(0);
36075
+ ] = useState41(0);
35987
36076
  const {
35988
36077
  closeWorkspaceReferencePicker,
35989
36078
  confirmWorkspaceReferenceBundles,
@@ -36227,8 +36316,8 @@ function AgentGUINodeView({
36227
36316
  const openAgentSettings = useCallback58(() => {
36228
36317
  openWorkspaceSettingsPanel({ section: "agent" });
36229
36318
  }, []);
36230
- const [renameConversationTarget, setRenameConversationTarget] = useState40(null);
36231
- const [renameConversationDialogOpen, setRenameConversationDialogOpen] = useState40(false);
36319
+ const [renameConversationTarget, setRenameConversationTarget] = useState41(null);
36320
+ const [renameConversationDialogOpen, setRenameConversationDialogOpen] = useState41(false);
36232
36321
  const requestRenameConversation = useCallback58(
36233
36322
  (conversation) => {
36234
36323
  setRenameConversationTarget(conversation);
@@ -36334,13 +36423,13 @@ function AgentGUINodeView({
36334
36423
  }),
36335
36424
  [targetPresentationKey, viewModel.shell.workspaceId]
36336
36425
  );
36337
- const content = /* @__PURE__ */ jsx71(AgentTargetPresentationProvider, { agentTargets: agentTargetPresentations, children: /* @__PURE__ */ jsxs50(
36426
+ const content = /* @__PURE__ */ jsx72(AgentTargetPresentationProvider, { agentTargets: agentTargetPresentations, children: /* @__PURE__ */ jsxs51(
36338
36427
  AgentTargetSetupRoot,
36339
36428
  {
36340
36429
  controller: targetSetupController,
36341
36430
  openEnvironmentSetup: onAgentEnvPanelOpen,
36342
36431
  children: [
36343
- /* @__PURE__ */ jsxs50(
36432
+ /* @__PURE__ */ jsxs51(
36344
36433
  "div",
36345
36434
  {
36346
36435
  ref: layoutElementRef,
@@ -36350,7 +36439,7 @@ function AgentGUINodeView({
36350
36439
  inert: previewMode ? true : void 0,
36351
36440
  style: layoutStyle,
36352
36441
  children: [
36353
- /* @__PURE__ */ jsxs50(
36442
+ /* @__PURE__ */ jsxs51(
36354
36443
  "aside",
36355
36444
  {
36356
36445
  className: `${AgentGUINode_styles_default.providerRailPanel} nodrag tsh-desktop-no-drag`,
@@ -36358,7 +36447,7 @@ function AgentGUINodeView({
36358
36447
  "aria-hidden": conversationRailCollapsed ? "true" : void 0,
36359
36448
  inert: conversationRailCollapsed ? true : void 0,
36360
36449
  children: [
36361
- /* @__PURE__ */ jsx71(
36450
+ /* @__PURE__ */ jsx72(
36362
36451
  AgentGUIProviderRail,
36363
36452
  {
36364
36453
  activeConversation: viewModel.rail.activeConversation,
@@ -36382,7 +36471,7 @@ function AgentGUINodeView({
36382
36471
  onRequestComposerFocus: requestComposerFocus
36383
36472
  }
36384
36473
  ),
36385
- renderSidebarFooter ? /* @__PURE__ */ jsx71(
36474
+ renderSidebarFooter ? /* @__PURE__ */ jsx72(
36386
36475
  "div",
36387
36476
  {
36388
36477
  className: `${AgentGUINode_styles_default.providerRailFooter} ${AgentGUINode_styles_default.providerRailSidebarFooter} nodrag tsh-desktop-no-drag`,
@@ -36393,12 +36482,12 @@ function AgentGUINodeView({
36393
36482
  })
36394
36483
  }
36395
36484
  ) : null,
36396
- shouldShowProviderRailConfigButton ? /* @__PURE__ */ jsx71(
36485
+ shouldShowProviderRailConfigButton ? /* @__PURE__ */ jsx72(
36397
36486
  "div",
36398
36487
  {
36399
36488
  className: `${AgentGUINode_styles_default.providerRailFooter} ${AgentGUINode_styles_default.providerRailConfigFooter} nodrag tsh-desktop-no-drag`,
36400
36489
  "data-testid": "agent-gui-config-footer",
36401
- children: /* @__PURE__ */ jsx71(
36490
+ children: /* @__PURE__ */ jsx72(
36402
36491
  AgentGUIConfigMenu,
36403
36492
  {
36404
36493
  environmentSetupVisible,
@@ -36424,14 +36513,14 @@ function AgentGUINodeView({
36424
36513
  ]
36425
36514
  }
36426
36515
  ),
36427
- /* @__PURE__ */ jsx71(
36516
+ /* @__PURE__ */ jsx72(
36428
36517
  "aside",
36429
36518
  {
36430
36519
  id: "agent-gui-conversation-rail",
36431
36520
  className: `${AgentGUINode_styles_default.railPanel}${conversationRailCollapsed ? ` ${AgentGUINode_styles_default.railPanelCollapsed}` : ""}`,
36432
36521
  "aria-hidden": conversationRailCollapsed ? "true" : void 0,
36433
36522
  inert: conversationRailCollapsed ? true : void 0,
36434
- children: /* @__PURE__ */ jsx71(
36523
+ children: /* @__PURE__ */ jsx72(
36435
36524
  AgentGUIConversationRailController,
36436
36525
  {
36437
36526
  ...conversationRailStoreState,
@@ -36439,7 +36528,7 @@ function AgentGUINodeView({
36439
36528
  registerInteractionLockProbe: registerRailInteractionLockProbe,
36440
36529
  userProjects: viewModel.rail.userProjects,
36441
36530
  workspaceId: viewModel.shell.workspaceId,
36442
- footer: accountMenuState?.user ? /* @__PURE__ */ jsx71(
36531
+ footer: accountMenuState?.user ? /* @__PURE__ */ jsx72(
36443
36532
  AgentGUIAccountRailMenu,
36444
36533
  {
36445
36534
  accountMenuState,
@@ -36451,7 +36540,7 @@ function AgentGUINodeView({
36451
36540
  )
36452
36541
  }
36453
36542
  ),
36454
- /* @__PURE__ */ jsx71(
36543
+ /* @__PURE__ */ jsx72(
36455
36544
  "div",
36456
36545
  {
36457
36546
  id: "agent-gui-conversation-rail-resize",
@@ -36475,7 +36564,7 @@ function AgentGUINodeView({
36475
36564
  onPointerUp: endConversationRailResize
36476
36565
  }
36477
36566
  ),
36478
- /* @__PURE__ */ jsx71("section", { id: "agent-gui-detail", className: AgentGUINode_styles_default.detailPanel, children: /* @__PURE__ */ jsx71(
36567
+ /* @__PURE__ */ jsx72("section", { id: "agent-gui-detail", className: AgentGUINode_styles_default.detailPanel, children: /* @__PURE__ */ jsx72(
36479
36568
  AgentGUIDetailPane,
36480
36569
  {
36481
36570
  viewModel,
@@ -36512,7 +36601,7 @@ function AgentGUINodeView({
36512
36601
  ]
36513
36602
  }
36514
36603
  ),
36515
- /* @__PURE__ */ jsx71(
36604
+ /* @__PURE__ */ jsx72(
36516
36605
  AgentGUIReferencePickerSurface,
36517
36606
  {
36518
36607
  aggregator: referenceSourceAggregator,
@@ -36531,7 +36620,7 @@ function AgentGUINodeView({
36531
36620
  onConfirmBundles: confirmWorkspaceReferenceBundles
36532
36621
  }
36533
36622
  ),
36534
- /* @__PURE__ */ jsx71(
36623
+ /* @__PURE__ */ jsx72(
36535
36624
  AgentGUIRenameConversationDialog,
36536
36625
  {
36537
36626
  conversation: renameConversationTarget,
@@ -36549,7 +36638,7 @@ function AgentGUINodeView({
36549
36638
  ]
36550
36639
  }
36551
36640
  ) });
36552
- return previewMode ? content : /* @__PURE__ */ jsx71(TooltipProvider5, { children: content });
36641
+ return previewMode ? content : /* @__PURE__ */ jsx72(TooltipProvider5, { children: content });
36553
36642
  }
36554
36643
 
36555
36644
  // agent-gui/workspaceDesktop/view/desktopDockAgentProbeTooltipModel.ts
@@ -36727,10 +36816,10 @@ import {
36727
36816
  useEffect as useEffect39,
36728
36817
  useLayoutEffect as useLayoutEffect9,
36729
36818
  useRef as useRef50,
36730
- useState as useState41
36819
+ useState as useState42
36731
36820
  } from "react";
36732
36821
  import { createPortal as createPortal5 } from "react-dom";
36733
- import { Fragment as Fragment21, jsx as jsx72, jsxs as jsxs51 } from "react/jsx-runtime";
36822
+ import { Fragment as Fragment21, jsx as jsx73, jsxs as jsxs52 } from "react/jsx-runtime";
36734
36823
  var POPOVER_MIN_VIEWPORT_INSET_PX = 16;
36735
36824
  var POPOVER_DEFAULT_WIDTH_PX = 260;
36736
36825
  function dockAgentProbeLineKey(line) {
@@ -36740,11 +36829,11 @@ function renderDockAgentProbeLine(line) {
36740
36829
  if (typeof line === "string") {
36741
36830
  return line;
36742
36831
  }
36743
- return /* @__PURE__ */ jsxs51(Fragment21, { children: [
36832
+ return /* @__PURE__ */ jsxs52(Fragment21, { children: [
36744
36833
  line.primary,
36745
- line.secondary ? /* @__PURE__ */ jsxs51(Fragment21, { children: [
36834
+ line.secondary ? /* @__PURE__ */ jsxs52(Fragment21, { children: [
36746
36835
  " ",
36747
- /* @__PURE__ */ jsx72("span", { className: "desktop-dock-popup__agent-status-secondary", children: line.secondary })
36836
+ /* @__PURE__ */ jsx73("span", { className: "desktop-dock-popup__agent-status-secondary", children: line.secondary })
36748
36837
  ] }) : null
36749
36838
  ] });
36750
36839
  }
@@ -36766,8 +36855,8 @@ function AgentProbeInfoPopover({
36766
36855
  "use memo";
36767
36856
  const anchorRef = useRef50(null);
36768
36857
  const popoverRef = useRef50(null);
36769
- const [isOpen, setIsOpen] = useState41(false);
36770
- const [popoverStyle, setPopoverStyle] = useState41(null);
36858
+ const [isOpen, setIsOpen] = useState42(false);
36859
+ const [popoverStyle, setPopoverStyle] = useState42(null);
36771
36860
  const openPopover = useCallback59(() => {
36772
36861
  if (!isOpen) {
36773
36862
  onOpen?.();
@@ -36828,7 +36917,7 @@ function AgentProbeInfoPopover({
36828
36917
  if (lines.length === 0) {
36829
36918
  return null;
36830
36919
  }
36831
- const popover = /* @__PURE__ */ jsx72(
36920
+ const popover = /* @__PURE__ */ jsx73(
36832
36921
  "div",
36833
36922
  {
36834
36923
  ref: popoverRef,
@@ -36837,17 +36926,17 @@ function AgentProbeInfoPopover({
36837
36926
  style: popoverStyle ?? void 0,
36838
36927
  onMouseEnter: openPopover,
36839
36928
  onMouseLeave: closeIfPointerLeavesPopover,
36840
- children: /* @__PURE__ */ jsx72("ul", { className: "desktop-dock-popup__agent-info-list", children: lines.map((line) => {
36929
+ children: /* @__PURE__ */ jsx73("ul", { className: "desktop-dock-popup__agent-info-list", children: lines.map((line) => {
36841
36930
  const label = getDockAgentProbeLineLabel(line);
36842
36931
  const valueText = formatDockAgentProbeLineText(line);
36843
- return /* @__PURE__ */ jsxs51(
36932
+ return /* @__PURE__ */ jsxs52(
36844
36933
  "li",
36845
36934
  {
36846
36935
  className: "desktop-dock-popup__agent-info-item",
36847
36936
  "data-has-label": label ? "true" : "false",
36848
36937
  children: [
36849
- label ? /* @__PURE__ */ jsx72("span", { className: "desktop-dock-popup__agent-info-label", children: label }) : null,
36850
- /* @__PURE__ */ jsx72(
36938
+ label ? /* @__PURE__ */ jsx73("span", { className: "desktop-dock-popup__agent-info-label", children: label }) : null,
36939
+ /* @__PURE__ */ jsx73(
36851
36940
  "span",
36852
36941
  {
36853
36942
  className: "desktop-dock-popup__agent-info-value",
@@ -36862,7 +36951,7 @@ function AgentProbeInfoPopover({
36862
36951
  }) })
36863
36952
  }
36864
36953
  );
36865
- return /* @__PURE__ */ jsxs51(
36954
+ return /* @__PURE__ */ jsxs52(
36866
36955
  "div",
36867
36956
  {
36868
36957
  ref: anchorRef,
@@ -36882,7 +36971,7 @@ function AgentProbeInfoPopover({
36882
36971
  },
36883
36972
  onBlur: () => setIsOpen(false),
36884
36973
  children: [
36885
- /* @__PURE__ */ jsx72(Info2, { size: 15, strokeWidth: 2.1, "aria-hidden": "true" }),
36974
+ /* @__PURE__ */ jsx73(Info2, { size: 15, strokeWidth: 2.1, "aria-hidden": "true" }),
36886
36975
  isOpen ? createPortal5(popover, document.body) : null
36887
36976
  ]
36888
36977
  }
@@ -37018,7 +37107,7 @@ function composeAgentGUIMentionService(input) {
37018
37107
  }
37019
37108
 
37020
37109
  // agent-gui/agentGuiNode/AgentGUIMentionServiceBoundary.tsx
37021
- import { jsx as jsx73 } from "react/jsx-runtime";
37110
+ import { jsx as jsx74 } from "react/jsx-runtime";
37022
37111
  function AgentGUIMentionServiceBoundary({
37023
37112
  children,
37024
37113
  service
@@ -37034,7 +37123,7 @@ function AgentGUIMentionServiceBoundary({
37034
37123
  if (!effectiveService || effectiveService === inheritedService) {
37035
37124
  return children;
37036
37125
  }
37037
- return /* @__PURE__ */ jsx73(RichTextMentionServiceProvider, { service: effectiveService, children });
37126
+ return /* @__PURE__ */ jsx74(RichTextMentionServiceProvider, { service: effectiveService, children });
37038
37127
  }
37039
37128
 
37040
37129
  // agent-gui/agentGuiNode/AgentGUINode.labels.ts
@@ -38001,7 +38090,7 @@ function resolveAgentGUIRailStatusProvider(input) {
38001
38090
  }
38002
38091
 
38003
38092
  // agent-gui/agentGuiNode/AgentGUINode.tsx
38004
- import { jsx as jsx74, jsxs as jsxs52 } from "react/jsx-runtime";
38093
+ import { jsx as jsx75, jsxs as jsxs53 } from "react/jsx-runtime";
38005
38094
  var EMPTY_SLASH_STATUS_QUOTAS = [];
38006
38095
  var DISABLED_REFERENCE_PROVENANCE_CATALOG = {
38007
38096
  enabledDimensions: [],
@@ -38415,7 +38504,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
38415
38504
  previewMode,
38416
38505
  railStatusProvider
38417
38506
  ]);
38418
- return /* @__PURE__ */ jsx74(AgentGUIMentionServiceBoundary, { service: mentionService, children: /* @__PURE__ */ jsx74(
38507
+ return /* @__PURE__ */ jsx75(AgentGUIMentionServiceBoundary, { service: mentionService, children: /* @__PURE__ */ jsx75(
38419
38508
  WorkspaceNodeWindow,
38420
38509
  {
38421
38510
  nodeId,
@@ -38431,8 +38520,8 @@ var AgentGUINode = memo14(function AgentGUINode2({
38431
38520
  className: "size-full bg-transparent",
38432
38521
  bodyClassName: `${AgentGUINode_styles_default.shell} nodrag size-full min-h-0 min-w-0 !bg-transparent p-0`,
38433
38522
  hideHeader: embedded,
38434
- titleAccessory: /* @__PURE__ */ jsxs52("span", { className: "inline-flex flex-none items-center gap-1", children: [
38435
- /* @__PURE__ */ jsx74(
38523
+ titleAccessory: /* @__PURE__ */ jsxs53("span", { className: "inline-flex flex-none items-center gap-1", children: [
38524
+ /* @__PURE__ */ jsx75(
38436
38525
  AgentProbeInfoPopover,
38437
38526
  {
38438
38527
  lines: agentProbeLines,
@@ -38441,7 +38530,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
38441
38530
  onOpen: handleAgentProbeInfoOpen
38442
38531
  }
38443
38532
  ),
38444
- /* @__PURE__ */ jsx74(
38533
+ /* @__PURE__ */ jsx75(
38445
38534
  CanvasNodeGhostIconButton,
38446
38535
  {
38447
38536
  "aria-label": isConversationRailCollapsed ? t("agentHost.agentGui.expandConversationRail") : t("agentHost.agentGui.collapseConversationRail"),
@@ -38453,7 +38542,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
38453
38542
  event.stopPropagation();
38454
38543
  handleConversationRailToggle();
38455
38544
  },
38456
- children: /* @__PURE__ */ jsx74(
38545
+ children: /* @__PURE__ */ jsx75(
38457
38546
  CanvasNodePanelLinedIcon,
38458
38547
  {
38459
38548
  width: 18,
@@ -38477,7 +38566,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
38477
38566
  renderedWidth,
38478
38567
  railAutoCollapseWidthPx
38479
38568
  );
38480
- return /* @__PURE__ */ jsx74(
38569
+ return /* @__PURE__ */ jsx75(
38481
38570
  AgentGUINodeView,
38482
38571
  {
38483
38572
  viewModel,
@@ -38550,7 +38639,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
38550
38639
  }, areAgentGUINodePropsEqual);
38551
38640
 
38552
38641
  // AgentGUI.tsx
38553
- import { jsx as jsx75 } from "react/jsx-runtime";
38642
+ import { jsx as jsx76 } from "react/jsx-runtime";
38554
38643
  var AgentGUI = memo15(function AgentGUI2({
38555
38644
  agentActivityRuntime,
38556
38645
  agentHostApi,
@@ -38568,7 +38657,7 @@ var AgentGUI = memo15(function AgentGUI2({
38568
38657
  [agentDirectory.agents]
38569
38658
  );
38570
38659
  const agentTargets = useMemo45(
38571
- () => projectAgentGUIAgentsToInternalTargets(normalizedAgents),
38660
+ () => projectAgentGUIAgentsToTargets(normalizedAgents),
38572
38661
  [normalizedAgents]
38573
38662
  );
38574
38663
  const effectiveHandoffAgentDirectory = handoffAgentDirectory ?? agentDirectory;
@@ -38581,7 +38670,7 @@ var AgentGUI = memo15(function AgentGUI2({
38581
38670
  ]
38582
38671
  );
38583
38672
  const handoffAgentTargets = useMemo45(
38584
- () => normalizedHandoffAgents === normalizedAgents ? agentTargets : projectAgentGUIAgentsToInternalTargets(normalizedHandoffAgents),
38673
+ () => normalizedHandoffAgents === normalizedAgents ? agentTargets : projectAgentGUIAgentsToTargets(normalizedHandoffAgents),
38585
38674
  [agentTargets, normalizedAgents, normalizedHandoffAgents]
38586
38675
  );
38587
38676
  const hostCapabilities = props.hostCapabilities;
@@ -38621,15 +38710,15 @@ var AgentGUI = memo15(function AgentGUI2({
38621
38710
  hostCapabilities: nodeHostCapabilities,
38622
38711
  renderSlots: nodeRenderSlots
38623
38712
  };
38624
- const content = /* @__PURE__ */ jsx75(AgentGuiI18nProvider, { runtime: i18n, locale, children: /* @__PURE__ */ jsx75(
38713
+ const content = /* @__PURE__ */ jsx76(AgentGuiI18nProvider, { runtime: i18n, locale, children: /* @__PURE__ */ jsx76(
38625
38714
  AgentActivityHostProvider,
38626
38715
  {
38627
38716
  agentActivityRuntime,
38628
38717
  agentHostApi,
38629
- children: /* @__PURE__ */ jsx75(AgentGUINode, { ...nodeProps })
38718
+ children: /* @__PURE__ */ jsx76(AgentGUINode, { ...nodeProps })
38630
38719
  }
38631
38720
  ) });
38632
- return props.frame.previewMode ? content : /* @__PURE__ */ jsx75(TooltipProvider6, { delayDuration: 120, skipDelayDuration: 0, children: content });
38721
+ return props.frame.previewMode ? content : /* @__PURE__ */ jsx76(TooltipProvider6, { delayDuration: 120, skipDelayDuration: 0, children: content });
38633
38722
  });
38634
38723
 
38635
38724
  export {
@@ -38640,6 +38729,7 @@ export {
38640
38729
  localAgentGUIAgentTargetId,
38641
38730
  normalizeAgentGUIAgentTargets,
38642
38731
  resolveAgentGUIAgentTarget,
38732
+ AgentHandoffMenu,
38643
38733
  AgentGUI
38644
38734
  };
38645
- //# sourceMappingURL=chunk-VF5HD6RF.js.map
38735
+ //# sourceMappingURL=chunk-Z2J3NPPX.js.map