@tutti-os/agent-gui 0.0.197 → 0.0.198

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/{AgentRichTextReadonly-BFMOFCCG.js → AgentRichTextReadonly-2BWVTYD3.js} +5 -5
  2. package/dist/agent-conversation/index.d.ts +3 -3
  3. package/dist/agent-conversation/index.js +7 -7
  4. package/dist/agent-gui.d.ts +18 -4
  5. package/dist/agent-gui.js +14 -14
  6. package/dist/agent-message-center/index.d.ts +1 -1
  7. package/dist/agent-message-center/index.js +6 -6
  8. package/dist/{agentGuiNodeTypes-C9Hneq2y.d.ts → agentGuiNodeTypes-DTeerTzS.d.ts} +1 -1
  9. package/dist/{chunk-VBQ4XTRZ.js → chunk-AEMVCADI.js} +2 -2
  10. package/dist/{chunk-ECQQSLB2.js → chunk-CTZPHYKU.js} +3 -3
  11. package/dist/{chunk-5FFQZTFI.js → chunk-D5HAVQME.js} +2 -2
  12. package/dist/{chunk-PN6JQWUI.js → chunk-D7WWGXPJ.js} +4 -4
  13. package/dist/{chunk-3MKFVFK7.js → chunk-FFLXJ5RU.js} +27 -5
  14. package/dist/chunk-FFLXJ5RU.js.map +1 -0
  15. package/dist/{chunk-BCTPYE64.js → chunk-GIF2V624.js} +4 -4
  16. package/dist/{chunk-2S2I7XDC.js → chunk-GKKXAO7O.js} +3 -3
  17. package/dist/chunk-GKKXAO7O.js.map +1 -0
  18. package/dist/{chunk-S7H4HT7X.js → chunk-HU3Q2FQK.js} +2 -2
  19. package/dist/{chunk-RKRKG6GI.js → chunk-JH6OERDW.js} +2 -2
  20. package/dist/{chunk-YGSGFI7V.js → chunk-NTY3JIYS.js} +1054 -838
  21. package/dist/chunk-NTY3JIYS.js.map +1 -0
  22. package/dist/{chunk-Y7F6RY5A.js → chunk-P4LUYDRL.js} +2 -2
  23. package/dist/{chunk-CC63DEWR.js → chunk-QCNCNAZT.js} +4 -4
  24. package/dist/{chunk-6PKQ3WUK.js → chunk-T3RMAGAE.js} +2 -2
  25. package/dist/{chunk-P5326NW3.js → chunk-YC33LHRB.js} +6 -6
  26. package/dist/context-mention-palette/index.js +7 -7
  27. package/dist/i18n/index.d.ts +26 -4
  28. package/dist/i18n/index.js +2 -2
  29. package/dist/index.d.ts +43 -7
  30. package/dist/index.js +14 -14
  31. package/dist/mention-search.js +5 -5
  32. package/dist/workbench/contribution.js +3 -3
  33. package/dist/workbench/index.js +3 -3
  34. package/dist/workbench/sessionTitle.js +2 -2
  35. package/dist/{workspaceLinkActions-BmVLZszV.d.ts → workspaceLinkActions-COfr61YO.d.ts} +1 -1
  36. package/package.json +16 -16
  37. package/dist/chunk-2S2I7XDC.js.map +0 -1
  38. package/dist/chunk-3MKFVFK7.js.map +0 -1
  39. package/dist/chunk-YGSGFI7V.js.map +0 -1
  40. /package/dist/{AgentRichTextReadonly-BFMOFCCG.js.map → AgentRichTextReadonly-2BWVTYD3.js.map} +0 -0
  41. /package/dist/{chunk-VBQ4XTRZ.js.map → chunk-AEMVCADI.js.map} +0 -0
  42. /package/dist/{chunk-ECQQSLB2.js.map → chunk-CTZPHYKU.js.map} +0 -0
  43. /package/dist/{chunk-5FFQZTFI.js.map → chunk-D5HAVQME.js.map} +0 -0
  44. /package/dist/{chunk-PN6JQWUI.js.map → chunk-D7WWGXPJ.js.map} +0 -0
  45. /package/dist/{chunk-BCTPYE64.js.map → chunk-GIF2V624.js.map} +0 -0
  46. /package/dist/{chunk-S7H4HT7X.js.map → chunk-HU3Q2FQK.js.map} +0 -0
  47. /package/dist/{chunk-RKRKG6GI.js.map → chunk-JH6OERDW.js.map} +0 -0
  48. /package/dist/{chunk-Y7F6RY5A.js.map → chunk-P4LUYDRL.js.map} +0 -0
  49. /package/dist/{chunk-CC63DEWR.js.map → chunk-QCNCNAZT.js.map} +0 -0
  50. /package/dist/{chunk-6PKQ3WUK.js.map → chunk-T3RMAGAE.js.map} +0 -0
  51. /package/dist/{chunk-P5326NW3.js.map → chunk-YC33LHRB.js.map} +0 -0
@@ -15,7 +15,7 @@ import {
15
15
  resolveAgentGuiSessionProviderFlatIconUrl,
16
16
  resolveNextAgentGUIConversationRailWidthPx,
17
17
  shouldAutoCollapseAgentGUIConversationRail
18
- } from "./chunk-ECQQSLB2.js";
18
+ } from "./chunk-CTZPHYKU.js";
19
19
  import {
20
20
  resolveAgentGuiWorkbenchProviderLabel
21
21
  } from "./chunk-MGSRWYRN.js";
@@ -34,7 +34,7 @@ import {
34
34
  resolveAgentGUIFirstUserMessageDisplayPrompt,
35
35
  resolveAgentGUIProviderDisplayLabel,
36
36
  resolveAgentGUIProviderIdentity
37
- } from "./chunk-VBQ4XTRZ.js";
37
+ } from "./chunk-AEMVCADI.js";
38
38
  import {
39
39
  AgentConversationFlow,
40
40
  Button,
@@ -69,7 +69,7 @@ import {
69
69
  toLocalShortDateTime,
70
70
  updateAgentComposerDraft,
71
71
  useProjectedAgentConversation
72
- } from "./chunk-P5326NW3.js";
72
+ } from "./chunk-YC33LHRB.js";
73
73
  import {
74
74
  agentRichTextContentToPromptText,
75
75
  createAgentRichTextInputExtensions,
@@ -79,7 +79,7 @@ import {
79
79
  plainTextToAgentRichTextInlineContent,
80
80
  skillDescriptionForDisplay,
81
81
  skillTriggerForPrefix
82
- } from "./chunk-6PKQ3WUK.js";
82
+ } from "./chunk-T3RMAGAE.js";
83
83
  import {
84
84
  AgentEnvPanelActionProvider
85
85
  } from "./chunk-CXC3ROXQ.js";
@@ -94,7 +94,7 @@ import {
94
94
  AgentFileMentionPalette,
95
95
  agentMentionItemKey,
96
96
  isAgentMentionItemDisabled
97
- } from "./chunk-PN6JQWUI.js";
97
+ } from "./chunk-D7WWGXPJ.js";
98
98
  import {
99
99
  normalizeAgentGUIAgents,
100
100
  projectAgentGUIAgentsToTargets
@@ -105,7 +105,7 @@ import {
105
105
  DEFAULT_AGENT_MENTION_FILTER,
106
106
  agentGuiScheduler,
107
107
  buildWorkspaceAgentActivityListViewModel
108
- } from "./chunk-CC63DEWR.js";
108
+ } from "./chunk-QCNCNAZT.js";
109
109
  import {
110
110
  AGENT_RICH_TEXT_CARET_ANCHOR,
111
111
  agentComposerFileMentionReferences,
@@ -122,7 +122,7 @@ import {
122
122
  parseMentionItemFromHref,
123
123
  remainingAgentComposerPromptAssetSlots,
124
124
  updateAgentComposerFileMentions
125
- } from "./chunk-5FFQZTFI.js";
125
+ } from "./chunk-D5HAVQME.js";
126
126
  import {
127
127
  AgentInteractivePromptSurface,
128
128
  PLAN_IMPLEMENTATION_ACTION_FEEDBACK,
@@ -134,7 +134,7 @@ import {
134
134
  normalizePlanIssueBudgetPreset,
135
135
  planImplementationPromptFromPlanTurn,
136
136
  planIssueBudgetPresetsEqual
137
- } from "./chunk-BCTPYE64.js";
137
+ } from "./chunk-GIF2V624.js";
138
138
  import {
139
139
  useEngineSelector
140
140
  } from "./chunk-EVQ4JY3N.js";
@@ -144,7 +144,7 @@ import {
144
144
  blobToBase64,
145
145
  normalizeAgentApprovalPurpose,
146
146
  resolveWorkspaceLinkAction
147
- } from "./chunk-2S2I7XDC.js";
147
+ } from "./chunk-GKKXAO7O.js";
148
148
  import {
149
149
  AgentTargetPresentationProvider,
150
150
  cn,
@@ -162,7 +162,7 @@ import {
162
162
  useAgentHostApi,
163
163
  useOptionalAgentActivityRuntime,
164
164
  useOptionalAgentHostApi
165
- } from "./chunk-RKRKG6GI.js";
165
+ } from "./chunk-JH6OERDW.js";
166
166
  import {
167
167
  MANAGED_AGENT_ICON_FALLBACK_URL,
168
168
  MANAGED_AGENT_ICON_URLS,
@@ -172,7 +172,7 @@ import {
172
172
  AgentGuiI18nProvider,
173
173
  translate,
174
174
  useTranslation
175
- } from "./chunk-Y7F6RY5A.js";
175
+ } from "./chunk-P4LUYDRL.js";
176
176
  import {
177
177
  isBetaAgentProvider,
178
178
  normalizeManagedAgentProvider
@@ -15874,7 +15874,7 @@ import {
15874
15874
  useCallback as useCallback50,
15875
15875
  useMemo as useMemo37,
15876
15876
  useRef as useRef44,
15877
- useState as useState32
15877
+ useState as useState33
15878
15878
  } from "react";
15879
15879
  import { Tooltip as Tooltip9, TooltipContent as TooltipContent9, TooltipTrigger as TooltipTrigger9 } from "@tutti-os/ui-system";
15880
15880
 
@@ -17801,7 +17801,7 @@ function AgentSessionChrome({
17801
17801
  }
17802
17802
 
17803
17803
  // agent-gui/agentGuiNode/AgentComposer.tsx
17804
- import { useCallback as useCallback47, useEffect as useEffect28, useRef as useRef41, useState as useState28 } from "react";
17804
+ import { useCallback as useCallback47, useEffect as useEffect28, useRef as useRef41, useState as useState29 } from "react";
17805
17805
  import { repairMentionPaletteHighlight } from "@tutti-os/ui-rich-text/at-panel";
17806
17806
 
17807
17807
  // agent-gui/agentGuiNode/AgentSlashStatusPanel.tsx
@@ -21373,7 +21373,7 @@ function useComposerPresentation(input) {
21373
21373
  // agent-gui/agentGuiNode/composer/AgentComposerView.tsx
21374
21374
  import { createPortal as createPortal4 } from "react-dom";
21375
21375
  import {
21376
- Popover as Popover4,
21376
+ Popover as Popover5,
21377
21377
  PopoverAnchor as PopoverAnchor2,
21378
21378
  Tooltip as Tooltip8,
21379
21379
  TooltipContent as TooltipContent8,
@@ -26097,8 +26097,209 @@ function AgentHandoffMenu({
26097
26097
  );
26098
26098
  }
26099
26099
 
26100
+ // agent-gui/agentGuiNode/composer/TuttiBudgetPopover.tsx
26101
+ import { useState as useState23 } from "react";
26102
+ import {
26103
+ Badge,
26104
+ Button as Button4,
26105
+ Popover as Popover3,
26106
+ PopoverContent as PopoverContent3,
26107
+ PopoverTrigger as PopoverTrigger2,
26108
+ Slider
26109
+ } from "@tutti-os/ui-system";
26110
+
26111
+ // agent-gui/agentGuiNode/composer/tuttiIntensityPreview.ts
26112
+ function projectTuttiIntensityPreview(intensity) {
26113
+ const normalized = Number.isFinite(intensity) ? Math.min(100, Math.max(0, Math.round(intensity))) : 50;
26114
+ const tier = normalized <= 33 ? "cost" : normalized <= 66 ? "balance" : "powerful";
26115
+ return {
26116
+ intensity: normalized,
26117
+ tier,
26118
+ modelStrength: tier === "cost" ? "economical" : tier === "balance" ? "balanced" : "mostCapable",
26119
+ agentCount: tier === "cost" ? "single" : tier === "balance" ? "smallGroup" : "maxParallel"
26120
+ };
26121
+ }
26122
+
26123
+ // agent-gui/agentGuiNode/composer/TuttiBudgetPopover.tsx
26124
+ import { jsx as jsx38, jsxs as jsxs28 } from "react/jsx-runtime";
26125
+ var tierTone = {
26126
+ cost: {
26127
+ badgeVariant: "success",
26128
+ sliderClassName: "[&_[data-slot=slider-thumb]]:border-[var(--state-success)]"
26129
+ },
26130
+ balance: {
26131
+ badgeVariant: "warning",
26132
+ sliderClassName: "[&_[data-slot=slider-thumb]]:border-[var(--state-warning)]"
26133
+ },
26134
+ powerful: {
26135
+ badgeVariant: "pending",
26136
+ sliderClassName: "[&_[data-slot=slider-thumb]]:border-[var(--tutti-purple)]"
26137
+ }
26138
+ };
26139
+ function TuttiBudgetPopover({
26140
+ children,
26141
+ intensity,
26142
+ labels,
26143
+ onConfirm
26144
+ }) {
26145
+ const [open, setOpen] = useState23(false);
26146
+ const [draftIntensity, setDraftIntensity] = useState23(intensity);
26147
+ const preview = projectTuttiIntensityPreview(draftIntensity);
26148
+ const previewTone = tierTone[preview.tier];
26149
+ const previewLabel = {
26150
+ cost: labels.previewCost,
26151
+ balance: labels.previewBalance,
26152
+ powerful: labels.previewPowerful
26153
+ }[preview.tier];
26154
+ const modelStrength = {
26155
+ economical: labels.modelStrengthCost,
26156
+ balanced: labels.modelStrengthBalance,
26157
+ mostCapable: labels.modelStrengthPowerful
26158
+ }[preview.modelStrength];
26159
+ const agentCount = {
26160
+ single: labels.agentCountCost,
26161
+ smallGroup: labels.agentCountBalance,
26162
+ maxParallel: labels.agentCountPowerful
26163
+ }[preview.agentCount];
26164
+ return /* @__PURE__ */ jsxs28(
26165
+ Popover3,
26166
+ {
26167
+ open,
26168
+ onOpenChange: (nextOpen) => {
26169
+ if (nextOpen) {
26170
+ setDraftIntensity(intensity);
26171
+ }
26172
+ setOpen(nextOpen);
26173
+ },
26174
+ children: [
26175
+ /* @__PURE__ */ jsx38(PopoverTrigger2, { asChild: true, children }),
26176
+ /* @__PURE__ */ jsxs28(
26177
+ PopoverContent3,
26178
+ {
26179
+ align: "start",
26180
+ className: "nodrag",
26181
+ "data-agent-tutti-budget-popover": "true",
26182
+ onEscapeKeyDown: (event) => {
26183
+ event.preventDefault();
26184
+ setOpen(false);
26185
+ },
26186
+ onInteractOutside: (event) => event.preventDefault(),
26187
+ onPointerDownOutside: (event) => event.preventDefault(),
26188
+ children: [
26189
+ /* @__PURE__ */ jsx38("div", { className: "text-[13px] font-semibold text-[var(--text-primary)]", children: labels.title }),
26190
+ /* @__PURE__ */ jsxs28(
26191
+ "div",
26192
+ {
26193
+ className: "rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)] p-2.5",
26194
+ "data-agent-tutti-budget-preview": preview.tier,
26195
+ children: [
26196
+ /* @__PURE__ */ jsxs28("div", { className: "flex items-center justify-between gap-2 text-[12px] text-[var(--text-secondary)]", children: [
26197
+ /* @__PURE__ */ jsx38("span", { children: labels.intensityLabel }),
26198
+ /* @__PURE__ */ jsx38(
26199
+ "span",
26200
+ {
26201
+ className: "text-[var(--text-primary)] tabular-nums",
26202
+ "data-agent-tutti-budget-intensity-value": "true",
26203
+ children: draftIntensity
26204
+ }
26205
+ )
26206
+ ] }),
26207
+ /* @__PURE__ */ jsxs28("div", { className: "mt-2", children: [
26208
+ /* @__PURE__ */ jsx38(
26209
+ Slider,
26210
+ {
26211
+ "aria-label": labels.intensityLabel,
26212
+ className: `[&_[data-slot=slider-range]]:bg-transparent [&_[data-slot=slider-track]]:bg-[linear-gradient(90deg,var(--state-success)_0%,var(--state-warning)_50%,var(--tutti-purple)_100%)] ${previewTone.sliderClassName}`,
26213
+ "data-agent-tutti-budget-intensity-slider": "true",
26214
+ "data-agent-tutti-budget-slider-tone": preview.tier,
26215
+ max: 100,
26216
+ min: 0,
26217
+ step: 1,
26218
+ value: [draftIntensity],
26219
+ onValueChange: (values) => setDraftIntensity(values[0] ?? draftIntensity)
26220
+ }
26221
+ ),
26222
+ /* @__PURE__ */ jsxs28("div", { className: "mt-1 flex items-center justify-between gap-2 text-[10px] font-medium", children: [
26223
+ /* @__PURE__ */ jsx38("span", { className: "text-[var(--state-success)]", children: labels.previewCost }),
26224
+ /* @__PURE__ */ jsx38("span", { className: "text-[var(--state-warning)]", children: labels.previewBalance }),
26225
+ /* @__PURE__ */ jsx38("span", { className: "text-[var(--tutti-purple)]", children: labels.previewPowerful })
26226
+ ] })
26227
+ ] }),
26228
+ /* @__PURE__ */ jsxs28(
26229
+ "div",
26230
+ {
26231
+ "aria-live": "polite",
26232
+ className: "mt-2 flex items-center justify-between gap-2 border-t border-[var(--line-2)] pt-2",
26233
+ children: [
26234
+ /* @__PURE__ */ jsx38("span", { className: "text-[11px] font-medium text-[var(--text-secondary)]", children: labels.previewTitle }),
26235
+ /* @__PURE__ */ jsx38(Badge, { size: "sm", variant: previewTone.badgeVariant, children: previewLabel })
26236
+ ]
26237
+ }
26238
+ ),
26239
+ /* @__PURE__ */ jsxs28("div", { className: "mt-2 grid grid-cols-2 gap-2 text-[10px]", children: [
26240
+ /* @__PURE__ */ jsxs28("div", { className: "min-w-0", children: [
26241
+ /* @__PURE__ */ jsx38("div", { className: "text-[var(--text-tertiary)]", children: labels.modelStrengthLabel }),
26242
+ /* @__PURE__ */ jsx38(
26243
+ "div",
26244
+ {
26245
+ className: "truncate font-medium text-[var(--text-primary)]",
26246
+ "data-agent-tutti-budget-model-strength": "true",
26247
+ children: modelStrength
26248
+ }
26249
+ )
26250
+ ] }),
26251
+ /* @__PURE__ */ jsxs28("div", { className: "min-w-0", children: [
26252
+ /* @__PURE__ */ jsx38("div", { className: "text-[var(--text-tertiary)]", children: labels.agentCountLabel }),
26253
+ /* @__PURE__ */ jsx38(
26254
+ "div",
26255
+ {
26256
+ className: "truncate font-medium text-[var(--text-primary)]",
26257
+ "data-agent-tutti-budget-agent-count": "true",
26258
+ children: agentCount
26259
+ }
26260
+ )
26261
+ ] })
26262
+ ] }),
26263
+ /* @__PURE__ */ jsx38("p", { className: "mt-2 mb-0 text-[10px] leading-[1.35] text-[var(--text-tertiary)]", children: labels.previewHint })
26264
+ ]
26265
+ }
26266
+ ),
26267
+ /* @__PURE__ */ jsxs28("div", { className: "flex items-center justify-end gap-2", children: [
26268
+ /* @__PURE__ */ jsx38(
26269
+ Button4,
26270
+ {
26271
+ "data-agent-tutti-budget-cancel": "true",
26272
+ size: "sm",
26273
+ type: "button",
26274
+ variant: "secondary",
26275
+ onClick: () => setOpen(false),
26276
+ children: labels.cancel
26277
+ }
26278
+ ),
26279
+ /* @__PURE__ */ jsx38(
26280
+ Button4,
26281
+ {
26282
+ "data-agent-tutti-budget-confirm": "true",
26283
+ size: "sm",
26284
+ type: "button",
26285
+ onClick: () => {
26286
+ onConfirm(draftIntensity);
26287
+ setOpen(false);
26288
+ },
26289
+ children: labels.confirm
26290
+ }
26291
+ )
26292
+ ] })
26293
+ ]
26294
+ }
26295
+ )
26296
+ ]
26297
+ }
26298
+ );
26299
+ }
26300
+
26100
26301
  // agent-gui/agentGuiNode/composer/ComposerFooter.tsx
26101
- import { Fragment as Fragment12, jsx as jsx38, jsxs as jsxs28 } from "react/jsx-runtime";
26302
+ import { Fragment as Fragment12, jsx as jsx39, jsxs as jsxs29 } from "react/jsx-runtime";
26102
26303
  function ComposerFooter({
26103
26304
  workspaceId: _workspaceId,
26104
26305
  labels,
@@ -26118,6 +26319,7 @@ function ComposerFooter({
26118
26319
  isPlanModeActive,
26119
26320
  isTuttiModeActive,
26120
26321
  isTuttiModeUpdating,
26322
+ tuttiModeOrchestrationIntensity,
26121
26323
  composerActionButton,
26122
26324
  quickPromptControl,
26123
26325
  showHandoffSelect,
@@ -26142,14 +26344,15 @@ function ComposerFooter({
26142
26344
  onClearGoalMode: clearGoalModeBadge,
26143
26345
  draftPrompt: _draftPrompt,
26144
26346
  onClearPlanMode,
26145
- onClearTuttiMode
26347
+ onClearTuttiMode,
26348
+ onTuttiModeOrchestrationIntensityChange
26146
26349
  }) {
26147
26350
  const showSettingsLoadingPlaceholders = composerSettings.isSettingsLoading;
26148
- return /* @__PURE__ */ jsx38(Fragment12, { children: /* @__PURE__ */ jsxs28("div", { className: AgentGUINode_styles_default.composerFooter, children: [
26149
- /* @__PURE__ */ jsxs28("div", { className: composerStyles.footerGroup, children: [
26150
- /* @__PURE__ */ jsxs28("div", { className: "inline-flex shrink-0 items-center gap-1", children: [
26151
- previewMode ? /* @__PURE__ */ jsx38(TooltipProvider4, { delayDuration: 120, children: /* @__PURE__ */ jsxs28(Tooltip5, { children: [
26152
- /* @__PURE__ */ jsx38(TooltipTrigger5, { asChild: true, children: /* @__PURE__ */ jsx38(
26351
+ return /* @__PURE__ */ jsx39(Fragment12, { children: /* @__PURE__ */ jsxs29("div", { className: AgentGUINode_styles_default.composerFooter, children: [
26352
+ /* @__PURE__ */ jsxs29("div", { className: composerStyles.footerGroup, children: [
26353
+ /* @__PURE__ */ jsxs29("div", { className: "inline-flex shrink-0 items-center gap-1", children: [
26354
+ previewMode ? /* @__PURE__ */ jsx39(TooltipProvider4, { delayDuration: 120, children: /* @__PURE__ */ jsxs29(Tooltip5, { children: [
26355
+ /* @__PURE__ */ jsx39(TooltipTrigger5, { asChild: true, children: /* @__PURE__ */ jsx39(
26153
26356
  "button",
26154
26357
  {
26155
26358
  type: "button",
@@ -26159,7 +26362,7 @@ function ComposerFooter({
26159
26362
  AgentGUINode_styles_default.composerReferenceTrigger,
26160
26363
  "group w-auto justify-center text-[var(--agent-gui-text-secondary)]"
26161
26364
  ),
26162
- children: /* @__PURE__ */ jsx38(
26365
+ children: /* @__PURE__ */ jsx39(
26163
26366
  AgentComposerMaskIcon,
26164
26367
  {
26165
26368
  iconUrl: add_lined_default,
@@ -26168,8 +26371,8 @@ function ComposerFooter({
26168
26371
  )
26169
26372
  }
26170
26373
  ) }),
26171
- /* @__PURE__ */ jsx38(TooltipContent5, { side: "top", children: labels.addContent })
26172
- ] }) }) : /* @__PURE__ */ jsx38(
26374
+ /* @__PURE__ */ jsx39(TooltipContent5, { side: "top", children: labels.addContent })
26375
+ ] }) }) : /* @__PURE__ */ jsx39(
26173
26376
  Select3,
26174
26377
  {
26175
26378
  open: false,
@@ -26185,8 +26388,8 @@ function ComposerFooter({
26185
26388
  void handleWorkspaceReferencePicker();
26186
26389
  }
26187
26390
  },
26188
- children: /* @__PURE__ */ jsx38(TooltipProvider4, { delayDuration: 120, children: /* @__PURE__ */ jsxs28(Tooltip5, { children: [
26189
- /* @__PURE__ */ jsx38(TooltipTrigger5, { asChild: true, children: /* @__PURE__ */ jsx38("span", { className: "inline-flex", children: /* @__PURE__ */ jsx38(
26391
+ children: /* @__PURE__ */ jsx39(TooltipProvider4, { delayDuration: 120, children: /* @__PURE__ */ jsxs29(Tooltip5, { children: [
26392
+ /* @__PURE__ */ jsx39(TooltipTrigger5, { asChild: true, children: /* @__PURE__ */ jsx39("span", { className: "inline-flex", children: /* @__PURE__ */ jsx39(
26190
26393
  SelectTrigger3,
26191
26394
  {
26192
26395
  size: "sm",
@@ -26196,7 +26399,7 @@ function ComposerFooter({
26196
26399
  AgentGUINode_styles_default.composerReferenceTrigger,
26197
26400
  "group w-auto justify-center text-[var(--agent-gui-text-secondary)] [&>svg:last-child]:hidden"
26198
26401
  ),
26199
- children: /* @__PURE__ */ jsx38(
26402
+ children: /* @__PURE__ */ jsx39(
26200
26403
  AgentComposerMaskIcon,
26201
26404
  {
26202
26405
  iconUrl: add_lined_default,
@@ -26205,12 +26408,12 @@ function ComposerFooter({
26205
26408
  )
26206
26409
  }
26207
26410
  ) }) }),
26208
- /* @__PURE__ */ jsx38(TooltipContent5, { side: "top", children: labels.addContent })
26411
+ /* @__PURE__ */ jsx39(TooltipContent5, { side: "top", children: labels.addContent })
26209
26412
  ] }) })
26210
26413
  }
26211
26414
  ),
26212
- /* @__PURE__ */ jsx38(TooltipProvider4, { delayDuration: 120, children: /* @__PURE__ */ jsxs28(Tooltip5, { children: [
26213
- /* @__PURE__ */ jsx38(TooltipTrigger5, { asChild: true, children: /* @__PURE__ */ jsx38(
26415
+ /* @__PURE__ */ jsx39(TooltipProvider4, { delayDuration: 120, children: /* @__PURE__ */ jsxs29(Tooltip5, { children: [
26416
+ /* @__PURE__ */ jsx39(TooltipTrigger5, { asChild: true, children: /* @__PURE__ */ jsx39(
26214
26417
  "button",
26215
26418
  {
26216
26419
  type: "button",
@@ -26224,7 +26427,7 @@ function ComposerFooter({
26224
26427
  "data-testid": "agent-gui-composer-mention-trigger",
26225
26428
  onMouseDown: (event) => event.preventDefault(),
26226
26429
  onClick: handleMentionPaletteButton,
26227
- children: /* @__PURE__ */ jsx38(
26430
+ children: /* @__PURE__ */ jsx39(
26228
26431
  "span",
26229
26432
  {
26230
26433
  "aria-hidden": true,
@@ -26243,10 +26446,10 @@ function ComposerFooter({
26243
26446
  )
26244
26447
  }
26245
26448
  ) }),
26246
- /* @__PURE__ */ jsx38(TooltipContent5, { side: "top", children: labels.mentionPalette })
26449
+ /* @__PURE__ */ jsx39(TooltipContent5, { side: "top", children: labels.mentionPalette })
26247
26450
  ] }) })
26248
26451
  ] }),
26249
- showHandoffSelect ? /* @__PURE__ */ jsx38(
26452
+ showHandoffSelect ? /* @__PURE__ */ jsx39(
26250
26453
  AgentHandoffMenu,
26251
26454
  {
26252
26455
  disabled: handoffDisabled,
@@ -26264,7 +26467,7 @@ function ComposerFooter({
26264
26467
  onHandoffConversation?.(target);
26265
26468
  }
26266
26469
  }
26267
- ) : showProviderSelect && selectedProviderSwitchTarget ? /* @__PURE__ */ jsxs28(
26470
+ ) : showProviderSelect && selectedProviderSwitchTarget ? /* @__PURE__ */ jsxs29(
26268
26471
  Select3,
26269
26472
  {
26270
26473
  value: selectedProviderSwitchTarget.targetId,
@@ -26282,7 +26485,7 @@ function ComposerFooter({
26282
26485
  });
26283
26486
  },
26284
26487
  children: [
26285
- /* @__PURE__ */ jsx38(
26488
+ /* @__PURE__ */ jsx39(
26286
26489
  SelectTrigger3,
26287
26490
  {
26288
26491
  size: "sm",
@@ -26293,8 +26496,8 @@ function ComposerFooter({
26293
26496
  AgentGUINode_styles_default.composerProviderSelect,
26294
26497
  "w-auto max-w-[180px]"
26295
26498
  ),
26296
- children: /* @__PURE__ */ jsxs28("span", { className: "flex min-w-0 items-center gap-1.5", children: [
26297
- /* @__PURE__ */ jsx38(
26499
+ children: /* @__PURE__ */ jsxs29("span", { className: "flex min-w-0 items-center gap-1.5", children: [
26500
+ /* @__PURE__ */ jsx39(
26298
26501
  "img",
26299
26502
  {
26300
26503
  alt: "",
@@ -26305,22 +26508,22 @@ function ComposerFooter({
26305
26508
  )
26306
26509
  }
26307
26510
  ),
26308
- /* @__PURE__ */ jsx38("span", { className: "min-w-0 truncate", children: selectedProviderLabel })
26511
+ /* @__PURE__ */ jsx39("span", { className: "min-w-0 truncate", children: selectedProviderLabel })
26309
26512
  ] })
26310
26513
  }
26311
26514
  ),
26312
- /* @__PURE__ */ jsx38(
26515
+ /* @__PURE__ */ jsx39(
26313
26516
  SelectContent3,
26314
26517
  {
26315
26518
  align: "start",
26316
26519
  className: cn(AgentGUINode_styles_default.composerMenuContent, "min-w-[190px]"),
26317
- children: providerMenuTargets.map((target) => /* @__PURE__ */ jsx38(
26520
+ children: providerMenuTargets.map((target) => /* @__PURE__ */ jsx39(
26318
26521
  SelectItem3,
26319
26522
  {
26320
26523
  value: target.targetId,
26321
26524
  className: cn(AgentGUINode_styles_default.composerMenuItem, "gap-2"),
26322
- children: /* @__PURE__ */ jsxs28("span", { className: "flex min-w-0 items-center gap-1.5", children: [
26323
- /* @__PURE__ */ jsx38(
26525
+ children: /* @__PURE__ */ jsxs29("span", { className: "flex min-w-0 items-center gap-1.5", children: [
26526
+ /* @__PURE__ */ jsx39(
26324
26527
  "img",
26325
26528
  {
26326
26529
  alt: "",
@@ -26329,7 +26532,7 @@ function ComposerFooter({
26329
26532
  src: resolveComposerProviderTargetIconUrl(target)
26330
26533
  }
26331
26534
  ),
26332
- /* @__PURE__ */ jsx38("span", { className: "min-w-0 truncate", children: target.label })
26535
+ /* @__PURE__ */ jsx39("span", { className: "min-w-0 truncate", children: target.label })
26333
26536
  ] })
26334
26537
  },
26335
26538
  `${target.provider}:${target.targetId}`
@@ -26340,7 +26543,7 @@ function ComposerFooter({
26340
26543
  }
26341
26544
  ) : null,
26342
26545
  quickPromptControl,
26343
- composerSettings.supportsPlanMode && isPlanModeActive ? /* @__PURE__ */ jsx38(
26546
+ composerSettings.supportsPlanMode && isPlanModeActive ? /* @__PURE__ */ jsx39(
26344
26547
  "button",
26345
26548
  {
26346
26549
  type: "button",
@@ -26354,38 +26557,82 @@ function ComposerFooter({
26354
26557
  "disabled:cursor-not-allowed disabled:opacity-60"
26355
26558
  ),
26356
26559
  onClick: onClearPlanMode,
26357
- children: /* @__PURE__ */ jsxs28("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
26358
- /* @__PURE__ */ jsx38(
26560
+ children: /* @__PURE__ */ jsxs29("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
26561
+ /* @__PURE__ */ jsx39(
26359
26562
  RemovableBadgeIcon,
26360
26563
  {
26361
- icon: /* @__PURE__ */ jsx38(ListChecks2, { className: "size-3.5" })
26564
+ icon: /* @__PURE__ */ jsx39(ListChecks2, { className: "size-3.5" })
26362
26565
  }
26363
26566
  ),
26364
- /* @__PURE__ */ jsx38("span", { className: "min-w-0 truncate", children: labels.planModeLabel })
26365
- ] })
26366
- }
26367
- ) : null,
26368
- isTuttiModeActive ? /* @__PURE__ */ jsx38(
26369
- "button",
26370
- {
26371
- type: "button",
26372
- disabled: isTuttiModeUpdating,
26373
- "aria-label": labels.tuttiModeLabel,
26374
- title: labels.tuttiModeDescription,
26375
- "data-agent-tutti-mode-badge": "true",
26376
- className: cn(
26377
- AgentGUINode_styles_default.composerMenuTrigger,
26378
- "group w-auto",
26379
- "disabled:cursor-not-allowed disabled:opacity-60"
26380
- ),
26381
- onClick: onClearTuttiMode,
26382
- children: /* @__PURE__ */ jsxs28("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
26383
- /* @__PURE__ */ jsx38(RemovableBadgeIcon, { icon: /* @__PURE__ */ jsx38(Sparkles, { className: "size-3.5" }) }),
26384
- /* @__PURE__ */ jsx38("span", { className: "min-w-0 truncate", children: labels.tuttiModeLabel })
26567
+ /* @__PURE__ */ jsx39("span", { className: "min-w-0 truncate", children: labels.planModeLabel })
26385
26568
  ] })
26386
26569
  }
26387
26570
  ) : null,
26388
- isGoalModeActive ? /* @__PURE__ */ jsx38(
26571
+ isTuttiModeActive ? /* @__PURE__ */ jsxs29("span", { className: "inline-flex shrink-0 items-center gap-0.5", children: [
26572
+ /* @__PURE__ */ jsx39(
26573
+ TuttiBudgetPopover,
26574
+ {
26575
+ intensity: tuttiModeOrchestrationIntensity,
26576
+ labels: {
26577
+ title: labels.tuttiBudgetTitle,
26578
+ intensityLabel: labels.tuttiBudgetIntensityLabel,
26579
+ previewTitle: labels.tuttiBudgetPreviewTitle,
26580
+ previewHint: labels.tuttiBudgetPreviewHint,
26581
+ previewCost: labels.tuttiBudgetPreviewCost,
26582
+ previewBalance: labels.tuttiBudgetPreviewBalance,
26583
+ previewPowerful: labels.tuttiBudgetPreviewPowerful,
26584
+ modelStrengthLabel: labels.tuttiBudgetModelStrengthLabel,
26585
+ modelStrengthCost: labels.tuttiBudgetModelStrengthCost,
26586
+ modelStrengthBalance: labels.tuttiBudgetModelStrengthBalance,
26587
+ modelStrengthPowerful: labels.tuttiBudgetModelStrengthPowerful,
26588
+ agentCountLabel: labels.tuttiBudgetAgentCountLabel,
26589
+ agentCountCost: labels.tuttiBudgetAgentCountCost,
26590
+ agentCountBalance: labels.tuttiBudgetAgentCountBalance,
26591
+ agentCountPowerful: labels.tuttiBudgetAgentCountPowerful,
26592
+ confirm: labels.tuttiBudgetConfirm,
26593
+ cancel: labels.tuttiBudgetCancel
26594
+ },
26595
+ onConfirm: onTuttiModeOrchestrationIntensityChange,
26596
+ children: /* @__PURE__ */ jsx39(
26597
+ "button",
26598
+ {
26599
+ type: "button",
26600
+ disabled: isTuttiModeUpdating,
26601
+ "aria-label": labels.tuttiModeLabel,
26602
+ title: labels.tuttiModeDescription,
26603
+ "data-agent-tutti-mode-badge": "true",
26604
+ className: cn(
26605
+ AgentGUINode_styles_default.composerMenuTrigger,
26606
+ "group w-auto",
26607
+ "disabled:cursor-not-allowed disabled:opacity-60"
26608
+ ),
26609
+ children: /* @__PURE__ */ jsxs29("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
26610
+ /* @__PURE__ */ jsx39(Sparkles, { "aria-hidden": true, className: "size-3.5 shrink-0" }),
26611
+ /* @__PURE__ */ jsx39("span", { className: "min-w-0 truncate", children: labels.tuttiModeLabel })
26612
+ ] })
26613
+ }
26614
+ )
26615
+ }
26616
+ ),
26617
+ /* @__PURE__ */ jsx39(
26618
+ "button",
26619
+ {
26620
+ type: "button",
26621
+ disabled: isTuttiModeUpdating,
26622
+ "aria-label": labels.tuttiModeRemove,
26623
+ title: labels.tuttiModeRemove,
26624
+ "data-agent-tutti-mode-remove": "true",
26625
+ className: cn(
26626
+ AgentGUINode_styles_default.composerMenuTrigger,
26627
+ "group w-auto justify-center",
26628
+ "disabled:cursor-not-allowed disabled:opacity-60"
26629
+ ),
26630
+ onClick: onClearTuttiMode,
26631
+ children: /* @__PURE__ */ jsx39(X5, { "aria-hidden": true, className: "size-3", strokeWidth: 3 })
26632
+ }
26633
+ )
26634
+ ] }) : null,
26635
+ isGoalModeActive ? /* @__PURE__ */ jsx39(
26389
26636
  "button",
26390
26637
  {
26391
26638
  type: "button",
@@ -26399,21 +26646,21 @@ function ComposerFooter({
26399
26646
  "disabled:cursor-not-allowed disabled:opacity-60"
26400
26647
  ),
26401
26648
  onClick: clearGoalModeBadge,
26402
- children: /* @__PURE__ */ jsxs28("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
26403
- /* @__PURE__ */ jsxs28("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
26404
- /* @__PURE__ */ jsx38(
26649
+ children: /* @__PURE__ */ jsxs29("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
26650
+ /* @__PURE__ */ jsxs29("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
26651
+ /* @__PURE__ */ jsx39(
26405
26652
  Target2,
26406
26653
  {
26407
26654
  "aria-hidden": true,
26408
26655
  className: "size-3.5 transition-opacity duration-150 group-hover:opacity-0 group-focus-visible:opacity-0"
26409
26656
  }
26410
26657
  ),
26411
- /* @__PURE__ */ jsx38(
26658
+ /* @__PURE__ */ jsx39(
26412
26659
  "span",
26413
26660
  {
26414
26661
  "aria-hidden": true,
26415
26662
  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",
26416
- children: /* @__PURE__ */ jsx38(
26663
+ children: /* @__PURE__ */ jsx39(
26417
26664
  X5,
26418
26665
  {
26419
26666
  className: "size-2.5 text-[var(--background-fronted)]",
@@ -26423,13 +26670,13 @@ function ComposerFooter({
26423
26670
  }
26424
26671
  )
26425
26672
  ] }),
26426
- /* @__PURE__ */ jsx38("span", { className: "min-w-0 truncate", children: labels.goalLabel })
26673
+ /* @__PURE__ */ jsx39("span", { className: "min-w-0 truncate", children: labels.goalLabel })
26427
26674
  ] })
26428
26675
  }
26429
26676
  ) : null
26430
26677
  ] }),
26431
- /* @__PURE__ */ jsxs28("div", { className: composerStyles.footerGroupRight, children: [
26432
- usage && usage.percentUsed !== null ? /* @__PURE__ */ jsx38(
26678
+ /* @__PURE__ */ jsxs29("div", { className: composerStyles.footerGroupRight, children: [
26679
+ usage && usage.percentUsed !== null ? /* @__PURE__ */ jsx39(
26433
26680
  AgentUsageChip,
26434
26681
  {
26435
26682
  percentUsed: usage.percentUsed,
@@ -26448,7 +26695,7 @@ function ComposerFooter({
26448
26695
  }
26449
26696
  }
26450
26697
  ) : null,
26451
- showSettingsLoadingPlaceholders || composerSettings.supportsPermissionMode ? /* @__PURE__ */ jsx38(
26698
+ showSettingsLoadingPlaceholders || composerSettings.supportsPermissionMode ? /* @__PURE__ */ jsx39(
26452
26699
  AgentPermissionModeDropdown,
26453
26700
  {
26454
26701
  composerSettings,
@@ -26464,7 +26711,7 @@ function ComposerFooter({
26464
26711
  onSettingsChange: (patch) => onSettingsChange(patch)
26465
26712
  }
26466
26713
  ) : null,
26467
- showSettingsLoadingPlaceholders || composerSettings.supportsModel || composerSettings.supportsReasoningEffort ? /* @__PURE__ */ jsx38(
26714
+ showSettingsLoadingPlaceholders || composerSettings.supportsModel || composerSettings.supportsReasoningEffort ? /* @__PURE__ */ jsx39(
26468
26715
  AgentModelReasoningDropdown,
26469
26716
  {
26470
26717
  composerSettings,
@@ -26506,8 +26753,8 @@ function ComposerFooter({
26506
26753
  ] }) });
26507
26754
  }
26508
26755
  function RemovableBadgeIcon({ icon }) {
26509
- return /* @__PURE__ */ jsxs28("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
26510
- /* @__PURE__ */ jsx38(
26756
+ return /* @__PURE__ */ jsxs29("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
26757
+ /* @__PURE__ */ jsx39(
26511
26758
  "span",
26512
26759
  {
26513
26760
  "aria-hidden": true,
@@ -26515,12 +26762,12 @@ function RemovableBadgeIcon({ icon }) {
26515
26762
  children: icon
26516
26763
  }
26517
26764
  ),
26518
- /* @__PURE__ */ jsx38(
26765
+ /* @__PURE__ */ jsx39(
26519
26766
  "span",
26520
26767
  {
26521
26768
  "aria-hidden": true,
26522
26769
  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",
26523
- children: /* @__PURE__ */ jsx38(
26770
+ children: /* @__PURE__ */ jsx39(
26524
26771
  X5,
26525
26772
  {
26526
26773
  className: "size-2.5 text-[var(--background-fronted)]",
@@ -26533,15 +26780,15 @@ function RemovableBadgeIcon({ icon }) {
26533
26780
  }
26534
26781
 
26535
26782
  // agent-gui/agentGuiNode/composer/quickPrompts/AgentQuickPromptPopover.tsx
26536
- import { useId, useRef as useRef37, useState as useState24 } from "react";
26783
+ import { useId, useRef as useRef37, useState as useState25 } from "react";
26537
26784
  import {
26538
- Button as Button6,
26785
+ Button as Button7,
26539
26786
  ConfirmationDialog as ConfirmationDialog2,
26540
26787
  DialogFooter as DialogFooter2,
26541
26788
  Input as Input2,
26542
- Popover as Popover3,
26543
- PopoverContent as PopoverContent3,
26544
- PopoverTrigger as PopoverTrigger2,
26789
+ Popover as Popover4,
26790
+ PopoverContent as PopoverContent4,
26791
+ PopoverTrigger as PopoverTrigger3,
26545
26792
  ScrollArea,
26546
26793
  Spinner as Spinner6,
26547
26794
  Tooltip as Tooltip7,
@@ -26560,9 +26807,9 @@ import {
26560
26807
  } from "@tutti-os/ui-system/icons";
26561
26808
 
26562
26809
  // agent-gui/agentGuiNode/composer/quickPrompts/AgentQuickPromptEditorDialog.tsx
26563
- import { useRef as useRef34, useState as useState23 } from "react";
26810
+ import { useRef as useRef34, useState as useState24 } from "react";
26564
26811
  import {
26565
- Button as Button4,
26812
+ Button as Button5,
26566
26813
  Dialog,
26567
26814
  DialogContent,
26568
26815
  DialogDescription,
@@ -26573,7 +26820,7 @@ import {
26573
26820
  Spinner as Spinner5,
26574
26821
  Textarea
26575
26822
  } from "@tutti-os/ui-system";
26576
- import { jsx as jsx39, jsxs as jsxs29 } from "react/jsx-runtime";
26823
+ import { jsx as jsx40, jsxs as jsxs30 } from "react/jsx-runtime";
26577
26824
  var MAX_TITLE_CODE_POINTS = 80;
26578
26825
  var MAX_CONTENT_BYTES = 32 * 1024;
26579
26826
  function AgentQuickPromptEditorDialog({
@@ -26581,10 +26828,10 @@ function AgentQuickPromptEditorDialog({
26581
26828
  }) {
26582
26829
  const { labels } = controller;
26583
26830
  const source = controller.mode === "edit" ? controller.selectedPrompt : null;
26584
- const [draft, setDraft] = useState23(
26831
+ const [draft, setDraft] = useState24(
26585
26832
  () => controller.initialDraft ?? promptDraft(source)
26586
26833
  );
26587
- const [validationError, setValidationError] = useState23(null);
26834
+ const [validationError, setValidationError] = useState24(null);
26588
26835
  const cancelRequestedOnPointerDownRef = useRef34(false);
26589
26836
  const submit = async () => {
26590
26837
  const error = validateDraft(draft, labels);
@@ -26599,7 +26846,7 @@ function AgentQuickPromptEditorDialog({
26599
26846
  });
26600
26847
  };
26601
26848
  const mutationError = controller.mutationError === "conflict" ? labels.conflict : controller.mutationError === "generic" ? labels.mutationError : null;
26602
- return /* @__PURE__ */ jsx39(
26849
+ return /* @__PURE__ */ jsx40(
26603
26850
  Dialog,
26604
26851
  {
26605
26852
  open: controller.isEditorOpen,
@@ -26608,7 +26855,7 @@ function AgentQuickPromptEditorDialog({
26608
26855
  controller.closeDialog();
26609
26856
  }
26610
26857
  },
26611
- children: /* @__PURE__ */ jsxs29(
26858
+ children: /* @__PURE__ */ jsxs30(
26612
26859
  DialogContent,
26613
26860
  {
26614
26861
  className: "sm:max-w-[560px]",
@@ -26623,11 +26870,11 @@ function AgentQuickPromptEditorDialog({
26623
26870
  if (controller.isSaving) event.preventDefault();
26624
26871
  },
26625
26872
  children: [
26626
- /* @__PURE__ */ jsxs29(DialogHeader, { children: [
26627
- /* @__PURE__ */ jsx39(DialogTitle, { children: source ? labels.editTitle : labels.createTitle }),
26628
- /* @__PURE__ */ jsx39(DialogDescription, { className: "sr-only", children: labels.contentPlaceholder })
26873
+ /* @__PURE__ */ jsxs30(DialogHeader, { children: [
26874
+ /* @__PURE__ */ jsx40(DialogTitle, { children: source ? labels.editTitle : labels.createTitle }),
26875
+ /* @__PURE__ */ jsx40(DialogDescription, { className: "sr-only", children: labels.contentPlaceholder })
26629
26876
  ] }),
26630
- /* @__PURE__ */ jsxs29(
26877
+ /* @__PURE__ */ jsxs30(
26631
26878
  "form",
26632
26879
  {
26633
26880
  className: "flex min-h-0 flex-col gap-3",
@@ -26636,9 +26883,9 @@ function AgentQuickPromptEditorDialog({
26636
26883
  void submit();
26637
26884
  },
26638
26885
  children: [
26639
- /* @__PURE__ */ jsxs29("label", { className: "flex flex-col gap-1.5 text-[13px] text-[var(--text-secondary)]", children: [
26640
- /* @__PURE__ */ jsx39("span", { children: labels.titleLabel }),
26641
- /* @__PURE__ */ jsx39(
26886
+ /* @__PURE__ */ jsxs30("label", { className: "flex flex-col gap-1.5 text-[13px] text-[var(--text-secondary)]", children: [
26887
+ /* @__PURE__ */ jsx40("span", { children: labels.titleLabel }),
26888
+ /* @__PURE__ */ jsx40(
26642
26889
  Input,
26643
26890
  {
26644
26891
  autoFocus: true,
@@ -26654,9 +26901,9 @@ function AgentQuickPromptEditorDialog({
26654
26901
  }
26655
26902
  )
26656
26903
  ] }),
26657
- /* @__PURE__ */ jsxs29("label", { className: "flex min-h-0 flex-col gap-1.5 text-[13px] text-[var(--text-secondary)]", children: [
26658
- /* @__PURE__ */ jsx39("span", { children: labels.contentLabel }),
26659
- /* @__PURE__ */ jsx39(
26904
+ /* @__PURE__ */ jsxs30("label", { className: "flex min-h-0 flex-col gap-1.5 text-[13px] text-[var(--text-secondary)]", children: [
26905
+ /* @__PURE__ */ jsx40("span", { children: labels.contentLabel }),
26906
+ /* @__PURE__ */ jsx40(
26660
26907
  Textarea,
26661
26908
  {
26662
26909
  "aria-invalid": Boolean(validationError),
@@ -26671,10 +26918,10 @@ function AgentQuickPromptEditorDialog({
26671
26918
  }
26672
26919
  )
26673
26920
  ] }),
26674
- validationError || mutationError ? /* @__PURE__ */ jsx39("p", { className: "text-[12px] text-[var(--state-danger)]", role: "alert", children: validationError ?? mutationError }) : null,
26675
- /* @__PURE__ */ jsxs29(DialogFooter, { children: [
26676
- /* @__PURE__ */ jsx39(
26677
- Button4,
26921
+ validationError || mutationError ? /* @__PURE__ */ jsx40("p", { className: "text-[12px] text-[var(--state-danger)]", role: "alert", children: validationError ?? mutationError }) : null,
26922
+ /* @__PURE__ */ jsxs30(DialogFooter, { children: [
26923
+ /* @__PURE__ */ jsx40(
26924
+ Button5,
26678
26925
  {
26679
26926
  disabled: controller.isSaving,
26680
26927
  size: "dialog",
@@ -26696,8 +26943,8 @@ function AgentQuickPromptEditorDialog({
26696
26943
  children: labels.cancel
26697
26944
  }
26698
26945
  ),
26699
- /* @__PURE__ */ jsxs29(Button4, { disabled: controller.isSaving, size: "dialog", type: "submit", children: [
26700
- controller.isSaving ? /* @__PURE__ */ jsx39(Spinner5, { size: 14 }) : null,
26946
+ /* @__PURE__ */ jsxs30(Button5, { disabled: controller.isSaving, size: "dialog", type: "submit", children: [
26947
+ controller.isSaving ? /* @__PURE__ */ jsx40(Spinner5, { size: 14 }) : null,
26701
26948
  controller.isSaving ? labels.saving : labels.save
26702
26949
  ] })
26703
26950
  ] })
@@ -26734,7 +26981,7 @@ import { Sortable, SortableContent, SortableItem } from "@tutti-os/ui-system";
26734
26981
  import { useRef as useRef35 } from "react";
26735
26982
  import {
26736
26983
  BareIconButton,
26737
- Button as Button5,
26984
+ Button as Button6,
26738
26985
  SortableItemHandle,
26739
26986
  Tooltip as Tooltip6,
26740
26987
  TooltipContent as TooltipContent6,
@@ -26745,7 +26992,7 @@ import {
26745
26992
  EditIcon,
26746
26993
  GripVerticalIcon
26747
26994
  } from "@tutti-os/ui-system/icons";
26748
- import { Fragment as Fragment13, jsx as jsx40, jsxs as jsxs30 } from "react/jsx-runtime";
26995
+ import { Fragment as Fragment13, jsx as jsx41, jsxs as jsxs31 } from "react/jsx-runtime";
26749
26996
  function AgentQuickPromptRow({
26750
26997
  handleRef,
26751
26998
  isSorting,
@@ -26764,17 +27011,17 @@ function AgentQuickPromptRow({
26764
27011
  const editAction = usePrimaryPointerAction(onEdit);
26765
27012
  const deleteAction = usePrimaryPointerAction(onDelete);
26766
27013
  const actionRevealClass = "opacity-100 transition-opacity [@media(hover:hover)]:opacity-0 [@media(hover:hover)]:group-hover/quick-prompt-row:opacity-100 group-has-[:focus-visible]/quick-prompt-row:opacity-100 focus-visible:opacity-100";
26767
- const promptContent = /* @__PURE__ */ jsxs30("span", { className: "flex min-w-0 flex-col items-start gap-0.5", children: [
26768
- /* @__PURE__ */ jsx40("span", { className: "w-full truncate font-medium text-[var(--text-primary)]", children: prompt.title }),
26769
- /* @__PURE__ */ jsx40("span", { className: "line-clamp-2 w-full text-[12px] leading-[1.35] text-[var(--text-secondary)]", children: prompt.content })
27014
+ const promptContent = /* @__PURE__ */ jsxs31("span", { className: "flex min-w-0 flex-col items-start gap-0.5", children: [
27015
+ /* @__PURE__ */ jsx41("span", { className: "w-full truncate font-medium text-[var(--text-primary)]", children: prompt.title }),
27016
+ /* @__PURE__ */ jsx41("span", { className: "line-clamp-2 w-full text-[12px] leading-[1.35] text-[var(--text-secondary)]", children: prompt.content })
26770
27017
  ] });
26771
- return /* @__PURE__ */ jsxs30("div", { className: "group/quick-prompt-row flex min-w-0 items-start gap-1 rounded-md hover:bg-[var(--transparency-hover)]", children: [
26772
- showReorderHandle ? /* @__PURE__ */ jsx40(
27018
+ return /* @__PURE__ */ jsxs31("div", { className: "group/quick-prompt-row flex min-w-0 items-start gap-1 rounded-md hover:bg-[var(--transparency-hover)]", children: [
27019
+ showReorderHandle ? /* @__PURE__ */ jsx41(
26773
27020
  "div",
26774
27021
  {
26775
27022
  className: `mt-1.5 flex size-6 shrink-0 items-center justify-center ${reorderDisabled ? "cursor-not-allowed" : ""}`,
26776
- children: /* @__PURE__ */ jsxs30(Tooltip6, { children: [
26777
- /* @__PURE__ */ jsx40(TooltipTrigger6, { asChild: true, children: /* @__PURE__ */ jsx40(SortableItemHandle, { asChild: true, disabled: reorderDisabled, children: /* @__PURE__ */ jsx40(
27023
+ children: /* @__PURE__ */ jsxs31(Tooltip6, { children: [
27024
+ /* @__PURE__ */ jsx41(TooltipTrigger6, { asChild: true, children: /* @__PURE__ */ jsx41(SortableItemHandle, { asChild: true, disabled: reorderDisabled, children: /* @__PURE__ */ jsx41(
26778
27025
  BareIconButton,
26779
27026
  {
26780
27027
  ref: handleRef,
@@ -26782,15 +27029,15 @@ function AgentQuickPromptRow({
26782
27029
  className: "cursor-grab text-[var(--text-tertiary)] hover:text-[var(--text-primary)] focus-visible:text-[var(--text-primary)] disabled:cursor-not-allowed disabled:text-[var(--text-disabled)] disabled:opacity-100",
26783
27030
  size: "md",
26784
27031
  title: "",
26785
- children: /* @__PURE__ */ jsx40(GripVerticalIcon, {})
27032
+ children: /* @__PURE__ */ jsx41(GripVerticalIcon, {})
26786
27033
  }
26787
27034
  ) }) }),
26788
- /* @__PURE__ */ jsx40(TooltipContent6, { side: "top", children: labels.dragHandle(prompt.title) })
27035
+ /* @__PURE__ */ jsx41(TooltipContent6, { side: "top", children: labels.dragHandle(prompt.title) })
26789
27036
  ] })
26790
27037
  }
26791
27038
  ) : null,
26792
- isSorting ? /* @__PURE__ */ jsx40("div", { className: "h-auto min-w-0 flex-1 px-1 py-2 text-left whitespace-normal", children: promptContent }) : /* @__PURE__ */ jsx40(
26793
- Button5,
27039
+ isSorting ? /* @__PURE__ */ jsx41("div", { className: "h-auto min-w-0 flex-1 px-1 py-2 text-left whitespace-normal", children: promptContent }) : /* @__PURE__ */ jsx41(
27040
+ Button6,
26794
27041
  {
26795
27042
  ...selectionAction,
26796
27043
  ref: selectionRef,
@@ -26807,9 +27054,9 @@ function AgentQuickPromptRow({
26807
27054
  children: promptContent
26808
27055
  }
26809
27056
  ),
26810
- !isSorting ? /* @__PURE__ */ jsxs30(Fragment13, { children: [
26811
- /* @__PURE__ */ jsxs30(Tooltip6, { children: [
26812
- /* @__PURE__ */ jsx40(TooltipTrigger6, { asChild: true, children: /* @__PURE__ */ jsx40(
27057
+ !isSorting ? /* @__PURE__ */ jsxs31(Fragment13, { children: [
27058
+ /* @__PURE__ */ jsxs31(Tooltip6, { children: [
27059
+ /* @__PURE__ */ jsx41(TooltipTrigger6, { asChild: true, children: /* @__PURE__ */ jsx41(
26813
27060
  BareIconButton,
26814
27061
  {
26815
27062
  ...editAction,
@@ -26818,13 +27065,13 @@ function AgentQuickPromptRow({
26818
27065
  disabled: pending,
26819
27066
  size: "md",
26820
27067
  title: "",
26821
- children: /* @__PURE__ */ jsx40(EditIcon, {})
27068
+ children: /* @__PURE__ */ jsx41(EditIcon, {})
26822
27069
  }
26823
27070
  ) }),
26824
- /* @__PURE__ */ jsx40(TooltipContent6, { side: "top", children: labels.edit })
27071
+ /* @__PURE__ */ jsx41(TooltipContent6, { side: "top", children: labels.edit })
26825
27072
  ] }),
26826
- /* @__PURE__ */ jsxs30(Tooltip6, { children: [
26827
- /* @__PURE__ */ jsx40(TooltipTrigger6, { asChild: true, children: /* @__PURE__ */ jsx40(
27073
+ /* @__PURE__ */ jsxs31(Tooltip6, { children: [
27074
+ /* @__PURE__ */ jsx41(TooltipTrigger6, { asChild: true, children: /* @__PURE__ */ jsx41(
26828
27075
  BareIconButton,
26829
27076
  {
26830
27077
  ...deleteAction,
@@ -26833,10 +27080,10 @@ function AgentQuickPromptRow({
26833
27080
  disabled: pending,
26834
27081
  size: "md",
26835
27082
  title: "",
26836
- children: /* @__PURE__ */ jsx40(DeleteIcon, {})
27083
+ children: /* @__PURE__ */ jsx41(DeleteIcon, {})
26837
27084
  }
26838
27085
  ) }),
26839
- /* @__PURE__ */ jsx40(TooltipContent6, { side: "top", children: labels.delete })
27086
+ /* @__PURE__ */ jsx41(TooltipContent6, { side: "top", children: labels.delete })
26840
27087
  ] })
26841
27088
  ] }) : null
26842
27089
  ] });
@@ -26860,7 +27107,7 @@ function usePrimaryPointerAction(action) {
26860
27107
  }
26861
27108
 
26862
27109
  // agent-gui/agentGuiNode/composer/quickPrompts/AgentQuickPromptList.tsx
26863
- import { jsx as jsx41 } from "react/jsx-runtime";
27110
+ import { jsx as jsx42 } from "react/jsx-runtime";
26864
27111
  function AgentQuickPromptList({
26865
27112
  controller,
26866
27113
  isSorting,
@@ -26937,7 +27184,7 @@ function AgentQuickPromptList({
26937
27184
  }),
26938
27185
  [filteredPrompts, labels, promptsById]
26939
27186
  );
26940
- return /* @__PURE__ */ jsx41(
27187
+ return /* @__PURE__ */ jsx42(
26941
27188
  Sortable,
26942
27189
  {
26943
27190
  accessibility,
@@ -26955,7 +27202,7 @@ function AgentQuickPromptList({
26955
27202
  );
26956
27203
  });
26957
27204
  },
26958
- children: /* @__PURE__ */ jsx41(SortableContent, { className: "flex flex-col gap-0.5", children: filteredPrompts.map((prompt, index) => /* @__PURE__ */ jsx41(SortableItem, { value: prompt.id, children: /* @__PURE__ */ jsx41(
27205
+ children: /* @__PURE__ */ jsx42(SortableContent, { className: "flex flex-col gap-0.5", children: filteredPrompts.map((prompt, index) => /* @__PURE__ */ jsx42(SortableItem, { value: prompt.id, children: /* @__PURE__ */ jsx42(
26959
27206
  AgentQuickPromptRow,
26960
27207
  {
26961
27208
  handleRef: (node) => {
@@ -26985,7 +27232,7 @@ function AgentQuickPromptList({
26985
27232
  }
26986
27233
 
26987
27234
  // agent-gui/agentGuiNode/composer/quickPrompts/AgentQuickPromptPopover.tsx
26988
- import { Fragment as Fragment14, jsx as jsx42, jsxs as jsxs31 } from "react/jsx-runtime";
27235
+ import { Fragment as Fragment14, jsx as jsx43, jsxs as jsxs32 } from "react/jsx-runtime";
26989
27236
  function AgentQuickPromptPopover({
26990
27237
  controller,
26991
27238
  disabled
@@ -26996,8 +27243,8 @@ function AgentQuickPromptPopover({
26996
27243
  const preserveExternalFocusRef = useRef37(false);
26997
27244
  const createRequestedOnPointerDownRef = useRef37(false);
26998
27245
  const templateRequestedOnPointerDownRef = useRef37(false);
26999
- const [view, setView] = useState24("prompts");
27000
- const [sortingState, setSortingState] = useState24({
27246
+ const [view, setView] = useState25("prompts");
27247
+ const [sortingState, setSortingState] = useState25({
27001
27248
  isPopoverOpen: controller.isPopoverOpen,
27002
27249
  isSorting: false
27003
27250
  });
@@ -27044,9 +27291,9 @@ function AgentQuickPromptPopover({
27044
27291
  controller.openCreate({ title: template.title, content: template.content });
27045
27292
  };
27046
27293
  const isTemplateView = view === "templates";
27047
- return /* @__PURE__ */ jsxs31(Fragment14, { children: [
27048
- /* @__PURE__ */ jsxs31(
27049
- Popover3,
27294
+ return /* @__PURE__ */ jsxs32(Fragment14, { children: [
27295
+ /* @__PURE__ */ jsxs32(
27296
+ Popover4,
27050
27297
  {
27051
27298
  modal: false,
27052
27299
  open: controller.isPopoverOpen,
@@ -27058,9 +27305,9 @@ function AgentQuickPromptPopover({
27058
27305
  controller.setPopoverOpen(open);
27059
27306
  },
27060
27307
  children: [
27061
- /* @__PURE__ */ jsx42(TooltipProvider5, { delayDuration: 120, children: /* @__PURE__ */ jsxs31(Tooltip7, { children: [
27062
- /* @__PURE__ */ jsx42(TooltipTrigger7, { asChild: true, children: /* @__PURE__ */ jsx42("span", { className: "inline-flex shrink-0", children: /* @__PURE__ */ jsx42(PopoverTrigger2, { asChild: true, children: /* @__PURE__ */ jsxs31(
27063
- Button6,
27308
+ /* @__PURE__ */ jsx43(TooltipProvider5, { delayDuration: 120, children: /* @__PURE__ */ jsxs32(Tooltip7, { children: [
27309
+ /* @__PURE__ */ jsx43(TooltipTrigger7, { asChild: true, children: /* @__PURE__ */ jsx43("span", { className: "inline-flex shrink-0", children: /* @__PURE__ */ jsx43(PopoverTrigger3, { asChild: true, children: /* @__PURE__ */ jsxs32(
27310
+ Button7,
27064
27311
  {
27065
27312
  "aria-label": labels.triggerTooltip,
27066
27313
  disabled,
@@ -27068,15 +27315,15 @@ function AgentQuickPromptPopover({
27068
27315
  type: "button",
27069
27316
  variant: "chrome",
27070
27317
  children: [
27071
- /* @__PURE__ */ jsx42(MessageSquareTextIcon, { "data-icon": "inline-start" }),
27072
- /* @__PURE__ */ jsx42("span", { className: "hidden min-[900px]:inline", children: labels.trigger })
27318
+ /* @__PURE__ */ jsx43(MessageSquareTextIcon, { "data-icon": "inline-start" }),
27319
+ /* @__PURE__ */ jsx43("span", { className: "hidden min-[900px]:inline", children: labels.trigger })
27073
27320
  ]
27074
27321
  }
27075
27322
  ) }) }) }),
27076
- /* @__PURE__ */ jsx42(TooltipContent7, { side: "top", children: labels.triggerTooltip })
27323
+ /* @__PURE__ */ jsx43(TooltipContent7, { side: "top", children: labels.triggerTooltip })
27077
27324
  ] }) }),
27078
- /* @__PURE__ */ jsxs31(
27079
- PopoverContent3,
27325
+ /* @__PURE__ */ jsxs32(
27326
+ PopoverContent4,
27080
27327
  {
27081
27328
  "aria-labelledby": titleId,
27082
27329
  align: "start",
@@ -27100,8 +27347,8 @@ function AgentQuickPromptPopover({
27100
27347
  preserveExternalFocusRef.current = false;
27101
27348
  },
27102
27349
  children: [
27103
- /* @__PURE__ */ jsxs31("div", { className: "flex shrink-0 items-center justify-between gap-2 border-b border-[var(--border-1)] px-3 py-2.5", children: [
27104
- /* @__PURE__ */ jsx42(
27350
+ /* @__PURE__ */ jsxs32("div", { className: "flex shrink-0 items-center justify-between gap-2 border-b border-[var(--border-1)] px-3 py-2.5", children: [
27351
+ /* @__PURE__ */ jsx43(
27105
27352
  "h2",
27106
27353
  {
27107
27354
  id: titleId,
@@ -27109,20 +27356,20 @@ function AgentQuickPromptPopover({
27109
27356
  children: isTemplateView ? labels.recommendedTemplatesTitle : labels.title
27110
27357
  }
27111
27358
  ),
27112
- isTemplateView ? /* @__PURE__ */ jsxs31(
27113
- Button6,
27359
+ isTemplateView ? /* @__PURE__ */ jsxs32(
27360
+ Button7,
27114
27361
  {
27115
27362
  size: "sm",
27116
27363
  type: "button",
27117
27364
  variant: "ghost",
27118
27365
  ...returnToPromptsAction,
27119
27366
  children: [
27120
- /* @__PURE__ */ jsx42(ArrowLeftIcon, { "data-icon": "inline-start" }),
27367
+ /* @__PURE__ */ jsx43(ArrowLeftIcon, { "data-icon": "inline-start" }),
27121
27368
  labels.returnToPrompts
27122
27369
  ]
27123
27370
  }
27124
- ) : /* @__PURE__ */ jsx42("div", { className: "flex items-center gap-1", children: isSorting ? /* @__PURE__ */ jsxs31(
27125
- Button6,
27371
+ ) : /* @__PURE__ */ jsx43("div", { className: "flex items-center gap-1", children: isSorting ? /* @__PURE__ */ jsxs32(
27372
+ Button7,
27126
27373
  {
27127
27374
  disabled: controller.isInteractionLocked,
27128
27375
  size: "sm",
@@ -27130,13 +27377,13 @@ function AgentQuickPromptPopover({
27130
27377
  variant: "ghost",
27131
27378
  onClick: () => setIsSorting(false),
27132
27379
  children: [
27133
- /* @__PURE__ */ jsx42(CheckIcon2, { "data-icon": "inline-start" }),
27380
+ /* @__PURE__ */ jsx43(CheckIcon2, { "data-icon": "inline-start" }),
27134
27381
  labels.finishSorting
27135
27382
  ]
27136
27383
  }
27137
- ) : /* @__PURE__ */ jsxs31(Fragment14, { children: [
27138
- /* @__PURE__ */ jsxs31(
27139
- Button6,
27384
+ ) : /* @__PURE__ */ jsxs32(Fragment14, { children: [
27385
+ /* @__PURE__ */ jsxs32(
27386
+ Button7,
27140
27387
  {
27141
27388
  disabled: controller.isInteractionLocked || !controller.showReorderHandles,
27142
27389
  size: "sm",
@@ -27144,13 +27391,13 @@ function AgentQuickPromptPopover({
27144
27391
  variant: "ghost",
27145
27392
  onClick: () => setIsSorting(true),
27146
27393
  children: [
27147
- /* @__PURE__ */ jsx42(GripVerticalIcon2, { "data-icon": "inline-start" }),
27394
+ /* @__PURE__ */ jsx43(GripVerticalIcon2, { "data-icon": "inline-start" }),
27148
27395
  labels.startSorting
27149
27396
  ]
27150
27397
  }
27151
27398
  ),
27152
- /* @__PURE__ */ jsxs31(
27153
- Button6,
27399
+ /* @__PURE__ */ jsxs32(
27400
+ Button7,
27154
27401
  {
27155
27402
  disabled: controller.isInteractionLocked,
27156
27403
  size: "sm",
@@ -27169,22 +27416,22 @@ function AgentQuickPromptPopover({
27169
27416
  requestCreate();
27170
27417
  },
27171
27418
  children: [
27172
- /* @__PURE__ */ jsx42(AddIcon, { "data-icon": "inline-start" }),
27419
+ /* @__PURE__ */ jsx43(AddIcon, { "data-icon": "inline-start" }),
27173
27420
  labels.add
27174
27421
  ]
27175
27422
  }
27176
27423
  )
27177
27424
  ] }) })
27178
27425
  ] }),
27179
- !isTemplateView ? /* @__PURE__ */ jsxs31("div", { className: "relative shrink-0 px-3 py-2.5", children: [
27180
- /* @__PURE__ */ jsx42(
27426
+ !isTemplateView ? /* @__PURE__ */ jsxs32("div", { className: "relative shrink-0 px-3 py-2.5", children: [
27427
+ /* @__PURE__ */ jsx43(
27181
27428
  SearchIcon,
27182
27429
  {
27183
27430
  "aria-hidden": true,
27184
27431
  className: "pointer-events-none absolute top-1/2 left-5 size-3.5 -translate-y-1/2 text-[var(--text-tertiary)]"
27185
27432
  }
27186
27433
  ),
27187
- /* @__PURE__ */ jsx42(
27434
+ /* @__PURE__ */ jsx43(
27188
27435
  Input2,
27189
27436
  {
27190
27437
  ref: searchRef,
@@ -27203,15 +27450,15 @@ function AgentQuickPromptPopover({
27203
27450
  }
27204
27451
  )
27205
27452
  ] }) : null,
27206
- !isTemplateView && snapshot.status === "error" && snapshot.prompts.length > 0 ? /* @__PURE__ */ jsxs31(
27453
+ !isTemplateView && snapshot.status === "error" && snapshot.prompts.length > 0 ? /* @__PURE__ */ jsxs32(
27207
27454
  "div",
27208
27455
  {
27209
27456
  className: "flex shrink-0 items-center justify-between gap-2 px-3 pb-2 text-[12px] text-[var(--state-danger)]",
27210
27457
  role: "alert",
27211
27458
  children: [
27212
- /* @__PURE__ */ jsx42("span", { children: labels.loadError }),
27213
- /* @__PURE__ */ jsx42(
27214
- Button6,
27459
+ /* @__PURE__ */ jsx43("span", { children: labels.loadError }),
27460
+ /* @__PURE__ */ jsx43(
27461
+ Button7,
27215
27462
  {
27216
27463
  size: "xs",
27217
27464
  type: "button",
@@ -27223,15 +27470,15 @@ function AgentQuickPromptPopover({
27223
27470
  ]
27224
27471
  }
27225
27472
  ) : null,
27226
- !isTemplateView && controller.reorderError ? /* @__PURE__ */ jsxs31(
27473
+ !isTemplateView && controller.reorderError ? /* @__PURE__ */ jsxs32(
27227
27474
  "div",
27228
27475
  {
27229
27476
  className: "flex shrink-0 items-center justify-between gap-2 px-3 pb-2 text-[12px] text-[var(--state-danger)]",
27230
27477
  role: "alert",
27231
27478
  children: [
27232
- /* @__PURE__ */ jsx42("span", { children: controller.reorderError === "conflict" ? labels.reorderConflict : labels.reorderError }),
27233
- /* @__PURE__ */ jsx42(
27234
- Button6,
27479
+ /* @__PURE__ */ jsx43("span", { children: controller.reorderError === "conflict" ? labels.reorderConflict : labels.reorderError }),
27480
+ /* @__PURE__ */ jsx43(
27481
+ Button7,
27235
27482
  {
27236
27483
  size: "xs",
27237
27484
  type: "button",
@@ -27243,13 +27490,13 @@ function AgentQuickPromptPopover({
27243
27490
  ]
27244
27491
  }
27245
27492
  ) : null,
27246
- /* @__PURE__ */ jsx42(
27493
+ /* @__PURE__ */ jsx43(
27247
27494
  ScrollArea,
27248
27495
  {
27249
27496
  className: "min-h-0 flex-1",
27250
27497
  viewportClassName: "px-2 pb-2",
27251
27498
  viewportTestId: "agent-quick-prompt-scroll-viewport",
27252
- children: isTemplateView ? /* @__PURE__ */ jsx42(
27499
+ children: isTemplateView ? /* @__PURE__ */ jsx43(
27253
27500
  RecommendedTemplateList,
27254
27501
  {
27255
27502
  disabled: controller.isInteractionLocked,
@@ -27258,18 +27505,18 @@ function AgentQuickPromptPopover({
27258
27505
  onSelect: requestTemplate,
27259
27506
  selectionRequestedOnPointerDownRef: templateRequestedOnPointerDownRef
27260
27507
  }
27261
- ) : snapshot.status === "loading" && snapshot.prompts.length === 0 ? /* @__PURE__ */ jsx42(
27508
+ ) : snapshot.status === "loading" && snapshot.prompts.length === 0 ? /* @__PURE__ */ jsx43(
27262
27509
  PromptState,
27263
27510
  {
27264
- icon: /* @__PURE__ */ jsx42(Spinner6, { size: 16 }),
27511
+ icon: /* @__PURE__ */ jsx43(Spinner6, { size: 16 }),
27265
27512
  label: labels.loading
27266
27513
  }
27267
- ) : snapshot.status === "error" && snapshot.prompts.length === 0 ? /* @__PURE__ */ jsx42(
27514
+ ) : snapshot.status === "error" && snapshot.prompts.length === 0 ? /* @__PURE__ */ jsx43(
27268
27515
  PromptState,
27269
27516
  {
27270
27517
  label: labels.loadError,
27271
- action: /* @__PURE__ */ jsx42(
27272
- Button6,
27518
+ action: /* @__PURE__ */ jsx43(
27519
+ Button7,
27273
27520
  {
27274
27521
  disabled: controller.isInteractionLocked,
27275
27522
  size: "sm",
@@ -27280,7 +27527,7 @@ function AgentQuickPromptPopover({
27280
27527
  }
27281
27528
  )
27282
27529
  }
27283
- ) : snapshot.prompts.length === 0 && !controller.searchQuery.trim() ? /* @__PURE__ */ jsx42(
27530
+ ) : snapshot.prompts.length === 0 && !controller.searchQuery.trim() ? /* @__PURE__ */ jsx43(
27284
27531
  RecommendedTemplateList,
27285
27532
  {
27286
27533
  disabled: controller.isInteractionLocked,
@@ -27289,8 +27536,8 @@ function AgentQuickPromptPopover({
27289
27536
  onSelect: requestTemplate,
27290
27537
  selectionRequestedOnPointerDownRef: templateRequestedOnPointerDownRef
27291
27538
  }
27292
- ) : controller.filteredPrompts.length === 0 ? /* @__PURE__ */ jsx42(PromptState, { label: labels.noResults }) : /* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-0.5", children: [
27293
- /* @__PURE__ */ jsx42(
27539
+ ) : controller.filteredPrompts.length === 0 ? /* @__PURE__ */ jsx43(PromptState, { label: labels.noResults }) : /* @__PURE__ */ jsxs32("div", { className: "flex flex-col gap-0.5", children: [
27540
+ /* @__PURE__ */ jsx43(
27294
27541
  AgentQuickPromptList,
27295
27542
  {
27296
27543
  controller,
@@ -27312,7 +27559,7 @@ function AgentQuickPromptPopover({
27312
27559
  }
27313
27560
  }
27314
27561
  ),
27315
- !isSorting ? /* @__PURE__ */ jsx42(
27562
+ !isSorting ? /* @__PURE__ */ jsx43(
27316
27563
  TemplateEntry,
27317
27564
  {
27318
27565
  label: labels.createFromTemplate,
@@ -27329,17 +27576,17 @@ function AgentQuickPromptPopover({
27329
27576
  ]
27330
27577
  }
27331
27578
  ),
27332
- controller.isEditorOpen ? /* @__PURE__ */ jsx42(AgentQuickPromptEditorDialog, { controller }) : null,
27333
- /* @__PURE__ */ jsx42(
27579
+ controller.isEditorOpen ? /* @__PURE__ */ jsx43(AgentQuickPromptEditorDialog, { controller }) : null,
27580
+ /* @__PURE__ */ jsx43(
27334
27581
  ConfirmationDialog2,
27335
27582
  {
27336
27583
  cancelLabel: labels.cancel,
27337
27584
  confirmBusy: controller.isDeleting,
27338
27585
  confirmLabel: controller.isDeleting ? labels.deleting : labels.deleteConfirm,
27339
27586
  description: controller.promptToDelete ? labels.deleteDescription(controller.promptToDelete.title) : void 0,
27340
- footer: /* @__PURE__ */ jsxs31(DialogFooter2, { children: [
27341
- /* @__PURE__ */ jsx42(
27342
- Button6,
27587
+ footer: /* @__PURE__ */ jsxs32(DialogFooter2, { children: [
27588
+ /* @__PURE__ */ jsx43(
27589
+ Button7,
27343
27590
  {
27344
27591
  ...deleteCancelAction,
27345
27592
  disabled: controller.isDeleting,
@@ -27349,8 +27596,8 @@ function AgentQuickPromptPopover({
27349
27596
  children: labels.cancel
27350
27597
  }
27351
27598
  ),
27352
- /* @__PURE__ */ jsx42(
27353
- Button6,
27599
+ /* @__PURE__ */ jsx43(
27600
+ Button7,
27354
27601
  {
27355
27602
  ...deleteConfirmAction,
27356
27603
  disabled: controller.isDeleting,
@@ -27367,7 +27614,7 @@ function AgentQuickPromptPopover({
27367
27614
  open: controller.mode === "delete",
27368
27615
  title: labels.deleteTitle,
27369
27616
  tone: "destructive",
27370
- children: errorLabel ? /* @__PURE__ */ jsx42("p", { className: "text-[12px] text-[var(--state-danger)]", role: "alert", children: errorLabel }) : null
27617
+ children: errorLabel ? /* @__PURE__ */ jsx43("p", { className: "text-[12px] text-[var(--state-danger)]", role: "alert", children: errorLabel }) : null
27371
27618
  }
27372
27619
  )
27373
27620
  ] });
@@ -27379,13 +27626,13 @@ function RecommendedTemplateList({
27379
27626
  onSelect,
27380
27627
  selectionRequestedOnPointerDownRef
27381
27628
  }) {
27382
- return /* @__PURE__ */ jsxs31("section", { className: "flex flex-col gap-1 px-1 pt-2", children: [
27383
- /* @__PURE__ */ jsxs31("div", { className: "px-2 pb-1", children: [
27384
- /* @__PURE__ */ jsx42("h3", { className: "text-[13px] font-medium text-[var(--text-primary)]", children: labels.recommendedTemplatesTitle }),
27385
- /* @__PURE__ */ jsx42("p", { className: "pt-0.5 text-[12px] leading-[1.35] text-[var(--text-secondary)]", children: labels.recommendedTemplatesDescription })
27629
+ return /* @__PURE__ */ jsxs32("section", { className: "flex flex-col gap-1 px-1 pt-2", children: [
27630
+ /* @__PURE__ */ jsxs32("div", { className: "px-2 pb-1", children: [
27631
+ /* @__PURE__ */ jsx43("h3", { className: "text-[13px] font-medium text-[var(--text-primary)]", children: labels.recommendedTemplatesTitle }),
27632
+ /* @__PURE__ */ jsx43("p", { className: "pt-0.5 text-[12px] leading-[1.35] text-[var(--text-secondary)]", children: labels.recommendedTemplatesDescription })
27386
27633
  ] }),
27387
- labels.recommendedTemplates.map((template, index) => /* @__PURE__ */ jsxs31(
27388
- Button6,
27634
+ labels.recommendedTemplates.map((template, index) => /* @__PURE__ */ jsxs32(
27635
+ Button7,
27389
27636
  {
27390
27637
  ref: index === 0 ? firstTemplateRef : void 0,
27391
27638
  className: "h-auto w-full justify-between px-2 py-2 text-left whitespace-normal",
@@ -27406,13 +27653,13 @@ function RecommendedTemplateList({
27406
27653
  onSelect(template);
27407
27654
  },
27408
27655
  children: [
27409
- /* @__PURE__ */ jsxs31("span", { className: "flex min-w-0 flex-col items-start gap-0.5", children: [
27410
- /* @__PURE__ */ jsx42("span", { className: "w-full truncate font-medium text-[var(--text-primary)]", children: template.title }),
27411
- /* @__PURE__ */ jsx42("span", { className: "line-clamp-2 w-full text-[12px] leading-[1.35] text-[var(--text-secondary)]", children: template.description })
27656
+ /* @__PURE__ */ jsxs32("span", { className: "flex min-w-0 flex-col items-start gap-0.5", children: [
27657
+ /* @__PURE__ */ jsx43("span", { className: "w-full truncate font-medium text-[var(--text-primary)]", children: template.title }),
27658
+ /* @__PURE__ */ jsx43("span", { className: "line-clamp-2 w-full text-[12px] leading-[1.35] text-[var(--text-secondary)]", children: template.description })
27412
27659
  ] }),
27413
- /* @__PURE__ */ jsxs31("span", { className: "flex shrink-0 items-center gap-1 text-[12px] text-[var(--text-secondary)]", children: [
27660
+ /* @__PURE__ */ jsxs32("span", { className: "flex shrink-0 items-center gap-1 text-[12px] text-[var(--text-secondary)]", children: [
27414
27661
  labels.useTemplate,
27415
- /* @__PURE__ */ jsx42(ArrowRightIcon, { "data-icon": "inline-end" })
27662
+ /* @__PURE__ */ jsx43(ArrowRightIcon, { "data-icon": "inline-end" })
27416
27663
  ] })
27417
27664
  ]
27418
27665
  },
@@ -27425,8 +27672,8 @@ function TemplateEntry({
27425
27672
  disabled,
27426
27673
  label
27427
27674
  }) {
27428
- return /* @__PURE__ */ jsxs31(
27429
- Button6,
27675
+ return /* @__PURE__ */ jsxs32(
27676
+ Button7,
27430
27677
  {
27431
27678
  ...action,
27432
27679
  className: "mt-1 h-auto w-full justify-between px-2 py-2 text-left whitespace-normal",
@@ -27434,8 +27681,8 @@ function TemplateEntry({
27434
27681
  type: "button",
27435
27682
  variant: "ghost",
27436
27683
  children: [
27437
- /* @__PURE__ */ jsx42("span", { className: "font-medium", children: label }),
27438
- /* @__PURE__ */ jsx42(ArrowRightIcon, { "data-icon": "inline-end" })
27684
+ /* @__PURE__ */ jsx43("span", { className: "font-medium", children: label }),
27685
+ /* @__PURE__ */ jsx43(ArrowRightIcon, { "data-icon": "inline-end" })
27439
27686
  ]
27440
27687
  }
27441
27688
  );
@@ -27463,15 +27710,15 @@ function PromptState({
27463
27710
  icon,
27464
27711
  label
27465
27712
  }) {
27466
- return /* @__PURE__ */ jsxs31("div", { className: "flex min-h-[180px] flex-col items-center justify-center gap-2 px-4 text-center text-[13px] text-[var(--text-secondary)]", children: [
27713
+ return /* @__PURE__ */ jsxs32("div", { className: "flex min-h-[180px] flex-col items-center justify-center gap-2 px-4 text-center text-[13px] text-[var(--text-secondary)]", children: [
27467
27714
  icon,
27468
- /* @__PURE__ */ jsx42("span", { children: label }),
27715
+ /* @__PURE__ */ jsx43("span", { children: label }),
27469
27716
  action
27470
27717
  ] });
27471
27718
  }
27472
27719
 
27473
27720
  // agent-gui/agentGuiNode/composer/AgentComposerView.tsx
27474
- import { jsx as jsx43, jsxs as jsxs32 } from "react/jsx-runtime";
27721
+ import { jsx as jsx44, jsxs as jsxs33 } from "react/jsx-runtime";
27475
27722
  function AgentComposerView(input) {
27476
27723
  const {
27477
27724
  provider,
@@ -27591,7 +27838,7 @@ function AgentComposerView(input) {
27591
27838
  visibleActivePrompt,
27592
27839
  visibleDraftLargeTexts
27593
27840
  } = input.presentation;
27594
- return /* @__PURE__ */ jsxs32(
27841
+ return /* @__PURE__ */ jsxs33(
27595
27842
  "form",
27596
27843
  {
27597
27844
  ref: input.composerRef,
@@ -27601,12 +27848,12 @@ function AgentComposerView(input) {
27601
27848
  onSubmit: submit,
27602
27849
  children: [
27603
27850
  fileDropOverlay,
27604
- visibleActivePrompt ? /* @__PURE__ */ jsx43(
27851
+ visibleActivePrompt ? /* @__PURE__ */ jsx44(
27605
27852
  "div",
27606
27853
  {
27607
27854
  className: AgentGUINode_styles_default.composerFloatingPrompt,
27608
27855
  "data-testid": "agent-gui-composer-floating-prompt",
27609
- children: /* @__PURE__ */ jsx43(
27856
+ children: /* @__PURE__ */ jsx44(
27610
27857
  AgentInteractivePromptSurface,
27611
27858
  {
27612
27859
  prompt: visibleActivePrompt,
@@ -27639,7 +27886,7 @@ function AgentComposerView(input) {
27639
27886
  )
27640
27887
  }
27641
27888
  ) : null,
27642
- queuedPrompts.length > 0 ? /* @__PURE__ */ jsx43(
27889
+ queuedPrompts.length > 0 ? /* @__PURE__ */ jsx44(
27643
27890
  "div",
27644
27891
  {
27645
27892
  className: cn(
@@ -27647,7 +27894,7 @@ function AgentComposerView(input) {
27647
27894
  AgentGUINode_styles_default.composerQueuedPromptFloating
27648
27895
  ),
27649
27896
  "data-testid": "agent-gui-composer-queued-prompts",
27650
- children: /* @__PURE__ */ jsx43(
27897
+ children: /* @__PURE__ */ jsx44(
27651
27898
  AgentQueuedPromptPanel,
27652
27899
  {
27653
27900
  queueStatus,
@@ -27672,14 +27919,14 @@ function AgentComposerView(input) {
27672
27919
  )
27673
27920
  }
27674
27921
  ) : null,
27675
- showProjectMissingProbe ? /* @__PURE__ */ jsx43(
27922
+ showProjectMissingProbe ? /* @__PURE__ */ jsx44(
27676
27923
  AgentProjectMissingStatusProbe,
27677
27924
  {
27678
27925
  composerSettings,
27679
27926
  onProjectMissingChange: input.setIsSelectedProjectMissing
27680
27927
  }
27681
27928
  ) : null,
27682
- /* @__PURE__ */ jsx43(
27929
+ /* @__PURE__ */ jsx44(
27683
27930
  AgentFullAccessRestoredWarning,
27684
27931
  {
27685
27932
  isSettingsLoading: composerSettings.isSettingsLoading,
@@ -27689,7 +27936,7 @@ function AgentComposerView(input) {
27689
27936
  visibleOnHome: isHeroLayout
27690
27937
  }
27691
27938
  ),
27692
- /* @__PURE__ */ jsxs32(
27939
+ /* @__PURE__ */ jsxs33(
27693
27940
  "div",
27694
27941
  {
27695
27942
  className: cn(
@@ -27698,7 +27945,7 @@ function AgentComposerView(input) {
27698
27945
  ),
27699
27946
  "data-edge-glow": showEdgeGlow ? "true" : void 0,
27700
27947
  children: [
27701
- input.isSelectedProjectMissing ? /* @__PURE__ */ jsx43(
27948
+ input.isSelectedProjectMissing ? /* @__PURE__ */ jsx44(
27702
27949
  AgentChromeNotice,
27703
27950
  {
27704
27951
  tone: "danger",
@@ -27710,7 +27957,7 @@ function AgentComposerView(input) {
27710
27957
  description: labels.projectMissingDescription
27711
27958
  }
27712
27959
  ) : null,
27713
- /* @__PURE__ */ jsxs32(
27960
+ /* @__PURE__ */ jsxs33(
27714
27961
  "div",
27715
27962
  {
27716
27963
  ref: input.inputShellRef,
@@ -27720,14 +27967,14 @@ function AgentComposerView(input) {
27720
27967
  title: inputDisabled && disabledReasonText ? disabledReasonText : void 0,
27721
27968
  style: inputShellStyle,
27722
27969
  children: [
27723
- /* @__PURE__ */ jsxs32(
27724
- Popover4,
27970
+ /* @__PURE__ */ jsxs33(
27971
+ Popover5,
27725
27972
  {
27726
27973
  open: input.showFileMentionPalette,
27727
27974
  onOpenChange: input.setIsPaletteOpen,
27728
27975
  modal: false,
27729
27976
  children: [
27730
- /* @__PURE__ */ jsx43(PopoverAnchor2, { asChild: true, children: /* @__PURE__ */ jsxs32(
27977
+ /* @__PURE__ */ jsx44(PopoverAnchor2, { asChild: true, children: /* @__PURE__ */ jsxs33(
27731
27978
  "div",
27732
27979
  {
27733
27980
  ref: input.promptInputAreaRef,
@@ -27739,7 +27986,7 @@ function AgentComposerView(input) {
27739
27986
  "data-has-draft-images": draftImages.length > 0 ? "true" : void 0,
27740
27987
  style: promptInputAreaStyle,
27741
27988
  children: [
27742
- /* @__PURE__ */ jsx43(
27989
+ /* @__PURE__ */ jsx44(
27743
27990
  ComposerDraftAttachments,
27744
27991
  {
27745
27992
  draftImages,
@@ -27750,7 +27997,7 @@ function AgentComposerView(input) {
27750
27997
  onExpandLargeText: expandDraftLargeTextToPrompt
27751
27998
  }
27752
27999
  ),
27753
- /* @__PURE__ */ jsxs32(
28000
+ /* @__PURE__ */ jsxs33(
27754
28001
  "div",
27755
28002
  {
27756
28003
  className: cn(
@@ -27758,7 +28005,7 @@ function AgentComposerView(input) {
27758
28005
  !isHeroLayout && "agent-gui-node__composer-prompt-input-line"
27759
28006
  ),
27760
28007
  children: [
27761
- /* @__PURE__ */ jsx43(
28008
+ /* @__PURE__ */ jsx44(
27762
28009
  AgentRichTextEditor,
27763
28010
  {
27764
28011
  ref: input.editorHandleRef,
@@ -27805,7 +28052,7 @@ function AgentComposerView(input) {
27805
28052
  }
27806
28053
  ) }),
27807
28054
  input.showFileMentionPalette && mentionPaletteFrame ? createPortal4(
27808
- /* @__PURE__ */ jsx43(
28055
+ /* @__PURE__ */ jsx44(
27809
28056
  "div",
27810
28057
  {
27811
28058
  "data-testid": "agent-gui-mention-palette-surface",
@@ -27815,7 +28062,7 @@ function AgentComposerView(input) {
27815
28062
  "max-h-[320px] overflow-hidden border-[var(--line-1)] p-0"
27816
28063
  ),
27817
28064
  style: mentionPaletteStyle,
27818
- children: /* @__PURE__ */ jsx43(
28065
+ children: /* @__PURE__ */ jsx44(
27819
28066
  AgentFileMentionPalette,
27820
28067
  {
27821
28068
  state: input.mentionSearchState,
@@ -27835,7 +28082,7 @@ function AgentComposerView(input) {
27835
28082
  onNavigateHierarchy: navigateFileMentionHierarchy,
27836
28083
  onNavigateIntoItem: navigateIntoFileMentionItem,
27837
28084
  onOpenReferences: onRequestWorkspaceReferences ? handleOpenReferencesForEntity : void 0,
27838
- provenanceFilterControl: referenceProvenanceFilter ? /* @__PURE__ */ jsx43(
28085
+ provenanceFilterControl: referenceProvenanceFilter ? /* @__PURE__ */ jsx44(
27839
28086
  AgentReferenceProvenanceFilterControl,
27840
28087
  {
27841
28088
  filter: referenceProvenanceFilter
@@ -27847,7 +28094,7 @@ function AgentComposerView(input) {
27847
28094
  ),
27848
28095
  mentionPaletteFrame.portalTarget
27849
28096
  ) : null,
27850
- /* @__PURE__ */ jsx43(
28097
+ /* @__PURE__ */ jsx44(
27851
28098
  ComposerFloatingMenuSurface,
27852
28099
  {
27853
28100
  anchorRef: input.inputShellRef,
@@ -27863,7 +28110,7 @@ function AgentComposerView(input) {
27863
28110
  placement: "fixed-height",
27864
28111
  surfaceRef: input.paletteContentRef,
27865
28112
  testId: "agent-gui-slash-palette-surface",
27866
- children: /* @__PURE__ */ jsx43(
28113
+ children: /* @__PURE__ */ jsx44(
27867
28114
  AgentSlashCommandPalette,
27868
28115
  {
27869
28116
  entries: slashPaletteEntries,
@@ -27886,7 +28133,7 @@ function AgentComposerView(input) {
27886
28133
  )
27887
28134
  }
27888
28135
  ),
27889
- /* @__PURE__ */ jsx43(
28136
+ /* @__PURE__ */ jsx44(
27890
28137
  ComposerFloatingMenuSurface,
27891
28138
  {
27892
28139
  anchorRef: input.inputShellRef,
@@ -27898,7 +28145,7 @@ function AgentComposerView(input) {
27898
28145
  placement: "dynamic-above",
27899
28146
  surfaceRef: input.paletteContentRef,
27900
28147
  testId: "agent-gui-command-menu-surface",
27901
- children: /* @__PURE__ */ jsx43(
28148
+ children: /* @__PURE__ */ jsx44(
27902
28149
  AgentSlashStatusPanel,
27903
28150
  {
27904
28151
  status: slashStatus,
@@ -27926,7 +28173,7 @@ function AgentComposerView(input) {
27926
28173
  )
27927
28174
  }
27928
28175
  ),
27929
- /* @__PURE__ */ jsx43(
28176
+ /* @__PURE__ */ jsx44(
27930
28177
  ComposerFloatingMenuSurface,
27931
28178
  {
27932
28179
  anchorRef: input.inputShellRef,
@@ -27938,7 +28185,7 @@ function AgentComposerView(input) {
27938
28185
  placement: "dynamic-above",
27939
28186
  surfaceRef: input.paletteContentRef,
27940
28187
  testId: "agent-gui-command-menu-surface",
27941
- children: /* @__PURE__ */ jsx43(
28188
+ children: /* @__PURE__ */ jsx44(
27942
28189
  AgentReviewPickerPanel,
27943
28190
  {
27944
28191
  labels: labels.reviewPicker,
@@ -27952,7 +28199,7 @@ function AgentComposerView(input) {
27952
28199
  ]
27953
28200
  }
27954
28201
  ),
27955
- /* @__PURE__ */ jsx43(
28202
+ /* @__PURE__ */ jsx44(
27956
28203
  ComposerFooter,
27957
28204
  {
27958
28205
  workspaceId,
@@ -27973,10 +28220,12 @@ function AgentComposerView(input) {
27973
28220
  isPlanModeActive: input.isPlanModeActive,
27974
28221
  isTuttiModeActive: input.isTuttiModeActive,
27975
28222
  isTuttiModeUpdating: input.isTuttiModeUpdating,
28223
+ tuttiModeOrchestrationIntensity: input.tuttiModeOrchestrationIntensity,
27976
28224
  onClearPlanMode: input.onClearPlanMode,
27977
28225
  onClearTuttiMode: input.onClearTuttiMode,
28226
+ onTuttiModeOrchestrationIntensityChange: input.onTuttiModeOrchestrationIntensityChange,
27978
28227
  composerActionButton,
27979
- quickPromptControl: /* @__PURE__ */ jsx43(
28228
+ quickPromptControl: /* @__PURE__ */ jsx44(
27980
28229
  AgentQuickPromptPopover,
27981
28230
  {
27982
28231
  controller: input.quickPromptLibrary,
@@ -28009,13 +28258,13 @@ function AgentComposerView(input) {
28009
28258
  ]
28010
28259
  }
28011
28260
  ),
28012
- showProjectRow ? /* @__PURE__ */ jsxs32(
28261
+ showProjectRow ? /* @__PURE__ */ jsxs33(
28013
28262
  "div",
28014
28263
  {
28015
28264
  className: AgentGUINode_styles_default.composerProjectRow,
28016
28265
  "data-project-missing": input.isSelectedProjectMissing ? "true" : void 0,
28017
28266
  children: [
28018
- showHeroProjectSelector ? /* @__PURE__ */ jsx43(
28267
+ showHeroProjectSelector ? /* @__PURE__ */ jsx44(
28019
28268
  AgentProjectDropdown,
28020
28269
  {
28021
28270
  composerSettings,
@@ -28031,14 +28280,14 @@ function AgentComposerView(input) {
28031
28280
  onProjectPathChange
28032
28281
  }
28033
28282
  ) : null,
28034
- activePromptTip ? /* @__PURE__ */ jsx43(
28283
+ activePromptTip ? /* @__PURE__ */ jsx44(
28035
28284
  "div",
28036
28285
  {
28037
28286
  className: AgentGUINode_styles_default.composerPromptTips,
28038
28287
  "data-testid": "agent-gui-prompt-tips",
28039
- children: !previewMode && input.isPromptTipOverflowing && promptTipNode ? /* @__PURE__ */ jsx43(TooltipProvider6, { delayDuration: 0, children: /* @__PURE__ */ jsxs32(Tooltip8, { children: [
28040
- /* @__PURE__ */ jsx43(TooltipTrigger8, { asChild: true, children: promptTipNode }),
28041
- /* @__PURE__ */ jsx43(
28288
+ children: !previewMode && input.isPromptTipOverflowing && promptTipNode ? /* @__PURE__ */ jsx44(TooltipProvider6, { delayDuration: 0, children: /* @__PURE__ */ jsxs33(Tooltip8, { children: [
28289
+ /* @__PURE__ */ jsx44(TooltipTrigger8, { asChild: true, children: promptTipNode }),
28290
+ /* @__PURE__ */ jsx44(
28042
28291
  TooltipContent8,
28043
28292
  {
28044
28293
  align: "end",
@@ -28062,7 +28311,7 @@ function AgentComposerView(input) {
28062
28311
  }
28063
28312
 
28064
28313
  // agent-gui/agentGuiNode/composer/useAgentMentionSearchController.ts
28065
- import { useEffect as useEffect27, useMemo as useMemo33, useRef as useRef38, useState as useState25 } from "react";
28314
+ import { useEffect as useEffect27, useMemo as useMemo33, useRef as useRef38, useState as useState26 } from "react";
28066
28315
  import { useRichTextMentionService } from "@tutti-os/ui-rich-text/editor";
28067
28316
  var EMPTY_AGENT_CONTEXT_MENTION_PROVIDERS = [];
28068
28317
  function useAgentMentionSearchController(referenceProvenanceFilter) {
@@ -28071,7 +28320,7 @@ function useAgentMentionSearchController(referenceProvenanceFilter) {
28071
28320
  () => mentionService?.listProviders().filter(isAgentContextMentionProvider) ?? EMPTY_AGENT_CONTEXT_MENTION_PROVIDERS,
28072
28321
  [mentionService]
28073
28322
  );
28074
- const [mentionSearchState, setMentionSearchState] = useState25(INITIAL_AGENT_MENTION_SEARCH_STATE);
28323
+ const [mentionSearchState, setMentionSearchState] = useState26(INITIAL_AGENT_MENTION_SEARCH_STATE);
28075
28324
  const mentionControllerRef = useRef38(
28076
28325
  null
28077
28326
  );
@@ -28120,7 +28369,7 @@ var INITIAL_AGENT_MENTION_SEARCH_STATE = {
28120
28369
  };
28121
28370
 
28122
28371
  // agent-gui/agentGuiNode/composer/quickPrompts/useAgentQuickPromptLibrary.ts
28123
- import { useCallback as useCallback45, useMemo as useMemo34, useRef as useRef39, useState as useState26 } from "react";
28372
+ import { useCallback as useCallback45, useMemo as useMemo34, useRef as useRef39, useState as useState27 } from "react";
28124
28373
  var unavailableSnapshot = {
28125
28374
  enabled: false,
28126
28375
  status: "idle",
@@ -28142,21 +28391,21 @@ function useAgentQuickPromptLibrary(input) {
28142
28391
  quickPrompts ?? unavailableQuickPromptStore,
28143
28392
  selectQuickPromptSnapshot
28144
28393
  );
28145
- const [mode, setMode] = useState26("closed");
28394
+ const [mode, setMode] = useState27("closed");
28146
28395
  const modeRef = useRef39(mode);
28147
28396
  modeRef.current = mode;
28148
- const [searchQuery, setSearchQuery] = useState26("");
28149
- const [selectedPrompt, setSelectedPrompt] = useState26(null);
28150
- const [initialDraft, setInitialDraft] = useState26(null);
28151
- const [promptToDelete, setPromptToDelete] = useState26(null);
28152
- const [mutationError, setMutationError] = useState26(null);
28153
- const [isSaving, setIsSaving] = useState26(false);
28154
- const [isDeleting, setIsDeleting] = useState26(false);
28155
- const [isReordering, setIsReordering] = useState26(false);
28156
- const [reorderError, setReorderError] = useState26(null);
28397
+ const [searchQuery, setSearchQuery] = useState27("");
28398
+ const [selectedPrompt, setSelectedPrompt] = useState27(null);
28399
+ const [initialDraft, setInitialDraft] = useState27(null);
28400
+ const [promptToDelete, setPromptToDelete] = useState27(null);
28401
+ const [mutationError, setMutationError] = useState27(null);
28402
+ const [isSaving, setIsSaving] = useState27(false);
28403
+ const [isDeleting, setIsDeleting] = useState27(false);
28404
+ const [isReordering, setIsReordering] = useState27(false);
28405
+ const [reorderError, setReorderError] = useState27(null);
28157
28406
  const capabilityAvailable = Boolean(quickPrompts && snapshot.enabled);
28158
28407
  const disclosureAvailable = capabilityAvailable && !disabled;
28159
- const [previousDisclosureAvailable, setPreviousDisclosureAvailable] = useState26(disclosureAvailable);
28408
+ const [previousDisclosureAvailable, setPreviousDisclosureAvailable] = useState27(disclosureAvailable);
28160
28409
  const disclosureAvailableRef = useRef39(disclosureAvailable);
28161
28410
  disclosureAvailableRef.current = disclosureAvailable;
28162
28411
  if (previousDisclosureAvailable !== disclosureAvailable) {
@@ -28437,7 +28686,7 @@ function isVersionConflict(error) {
28437
28686
  }
28438
28687
 
28439
28688
  // agent-gui/agentGuiNode/composer/useScopedProjectMissingState.ts
28440
- import { useCallback as useCallback46, useRef as useRef40, useState as useState27 } from "react";
28689
+ import { useCallback as useCallback46, useRef as useRef40, useState as useState28 } from "react";
28441
28690
  function useScopedProjectMissingState(scopeKey) {
28442
28691
  const identityRef = useRef40({
28443
28692
  key: scopeKey,
@@ -28450,7 +28699,7 @@ function useScopedProjectMissingState(scopeKey) {
28450
28699
  };
28451
28700
  }
28452
28701
  const identity = identityRef.current;
28453
- const [result, setResult] = useState27({
28702
+ const [result, setResult] = useState28({
28454
28703
  identity,
28455
28704
  isMissing: false
28456
28705
  });
@@ -28538,7 +28787,7 @@ function preparedEntry(file, sourceIndex) {
28538
28787
  }
28539
28788
 
28540
28789
  // agent-gui/agentGuiNode/AgentComposer.tsx
28541
- import { jsx as jsx44 } from "react/jsx-runtime";
28790
+ import { jsx as jsx45 } from "react/jsx-runtime";
28542
28791
  var DOCK_COMPOSER_INPUT_MIN_HEIGHT2 = 56;
28543
28792
  var DOCK_COMPOSER_TEXT_LINE_HEIGHT2 = 24;
28544
28793
  var DOCK_COMPOSER_MAX_VISIBLE_TEXT_LINES2 = 3.5;
@@ -28598,6 +28847,8 @@ function AgentComposer(props) {
28598
28847
  onSettingsChange,
28599
28848
  onTuttiModeChange = () => {
28600
28849
  },
28850
+ onTuttiModeOrchestrationIntensityChange = () => {
28851
+ },
28601
28852
  capabilityMenuState,
28602
28853
  capabilityControlsReadOnly = false,
28603
28854
  onSubmit,
@@ -28641,8 +28892,8 @@ function AgentComposer(props) {
28641
28892
  hadPrefill: agentComposerDraftHasContent(draftContent)
28642
28893
  });
28643
28894
  };
28644
- const [isPaletteOpen, setIsPaletteOpen] = useState28(true);
28645
- const [isReviewPickerOpen, setIsReviewPickerOpen] = useState28(false);
28895
+ const [isPaletteOpen, setIsPaletteOpen] = useState29(true);
28896
+ const [isReviewPickerOpen, setIsReviewPickerOpen] = useState29(false);
28646
28897
  const submitWithComposerModifiers = (content, displayPrompt, options) => {
28647
28898
  onSubmit(
28648
28899
  content,
@@ -28663,19 +28914,19 @@ function AgentComposer(props) {
28663
28914
  } : void 0
28664
28915
  );
28665
28916
  };
28666
- const [highlightedIndex, setHighlightedIndex] = useState28(0);
28667
- const [mentionHighlightedKey, setMentionHighlightedKey] = useState28(null);
28668
- const [shouldCenterMentionHighlight, setShouldCenterMentionHighlight] = useState28(false);
28917
+ const [highlightedIndex, setHighlightedIndex] = useState29(0);
28918
+ const [mentionHighlightedKey, setMentionHighlightedKey] = useState29(null);
28919
+ const [shouldCenterMentionHighlight, setShouldCenterMentionHighlight] = useState29(false);
28669
28920
  const [
28670
28921
  shouldResetMentionHighlightToFilter,
28671
28922
  setShouldResetMentionHighlightToFilter
28672
- ] = useState28(false);
28673
- const [paletteDraftPrompt, setPaletteDraftPrompt] = useState28(
28923
+ ] = useState29(false);
28924
+ const [paletteDraftPrompt, setPaletteDraftPrompt] = useState29(
28674
28925
  goalDraftObjective ?? draftPrompt
28675
28926
  );
28676
- const [fileMentionSuggestion, setFileMentionSuggestion] = useState28(null);
28927
+ const [fileMentionSuggestion, setFileMentionSuggestion] = useState29(null);
28677
28928
  const [isSelectedProjectMissing, setIsSelectedProjectMissing] = useScopedProjectMissingState(draftScopeKey);
28678
- const [isSlashStatusPanelOpen, setIsSlashStatusPanelOpen] = useState28(false);
28929
+ const [isSlashStatusPanelOpen, setIsSlashStatusPanelOpen] = useState29(false);
28679
28930
  const slashStatusAgentSessionId = slashStatus?.agentSessionId ?? null;
28680
28931
  const previousSlashStatusAgentSessionIdRef = useRef41(
28681
28932
  slashStatusAgentSessionId
@@ -28701,15 +28952,15 @@ function AgentComposer(props) {
28701
28952
  const wasActiveRef = useRef41(isActive);
28702
28953
  const lastComposerFocusRequestRef = useRef41(null);
28703
28954
  const autoMentionHighlightedKeyRef = useRef41(null);
28704
- const [isPromptTipOverflowing, setIsPromptTipOverflowing] = useState28(false);
28705
- const [dockComposerInputHeight, setDockComposerInputHeight] = useState28(
28955
+ const [isPromptTipOverflowing, setIsPromptTipOverflowing] = useState29(false);
28956
+ const [dockComposerInputHeight, setDockComposerInputHeight] = useState29(
28706
28957
  DOCK_COMPOSER_INPUT_MIN_HEIGHT2
28707
28958
  );
28708
- const [dockComposerInputMaxHeight, setDockComposerInputMaxHeight] = useState28(
28959
+ const [dockComposerInputMaxHeight, setDockComposerInputMaxHeight] = useState29(
28709
28960
  DOCK_COMPOSER_INPUT_MAX_HEIGHT2
28710
28961
  );
28711
- const [dockComposerAttachmentHeight, setDockComposerAttachmentHeight] = useState28(0);
28712
- const [dockComposerTextHeight, setDockComposerTextHeight] = useState28(
28962
+ const [dockComposerAttachmentHeight, setDockComposerAttachmentHeight] = useState29(0);
28963
+ const [dockComposerTextHeight, setDockComposerTextHeight] = useState29(
28713
28964
  DOCK_COMPOSER_INPUT_MIN_HEIGHT2
28714
28965
  );
28715
28966
  const paletteCatalog = useComposerPaletteCatalog({
@@ -29061,7 +29312,7 @@ function AgentComposer(props) {
29061
29312
  canUploadAttachment,
29062
29313
  promptImagesSupported
29063
29314
  });
29064
- return /* @__PURE__ */ jsx44(
29315
+ return /* @__PURE__ */ jsx45(
29065
29316
  AgentComposerView,
29066
29317
  {
29067
29318
  props,
@@ -29102,19 +29353,21 @@ function AgentComposer(props) {
29102
29353
  isPlanModeActive: composerSettings.draftSettings.planMode,
29103
29354
  isTuttiModeActive: tuttiModeActive,
29104
29355
  isTuttiModeUpdating: tuttiModeUpdating,
29356
+ tuttiModeOrchestrationIntensity,
29105
29357
  onClearPlanMode: () => onSettingsChange({ planMode: false }),
29106
29358
  onClearTuttiMode: () => onTuttiModeChange(false),
29359
+ onTuttiModeOrchestrationIntensityChange,
29107
29360
  isPromptTipOverflowing
29108
29361
  }
29109
29362
  );
29110
29363
  }
29111
29364
 
29112
29365
  // agent-gui/agentGuiNode/AgentHomeSuggestions.tsx
29113
- import { memo as memo2, useState as useState29 } from "react";
29366
+ import { memo as memo2, useState as useState30 } from "react";
29114
29367
  import { ArrowLeftRight, Code, Compass, Import, Pencil, X as X6 } from "lucide-react";
29115
- import { jsx as jsx45, jsxs as jsxs33 } from "react/jsx-runtime";
29368
+ import { jsx as jsx46, jsxs as jsxs34 } from "react/jsx-runtime";
29116
29369
  function TuttiIcon(props) {
29117
- return /* @__PURE__ */ jsx45(
29370
+ return /* @__PURE__ */ jsx46(
29118
29371
  "svg",
29119
29372
  {
29120
29373
  width: "24",
@@ -29123,7 +29376,7 @@ function TuttiIcon(props) {
29123
29376
  fill: "none",
29124
29377
  xmlns: "http://www.w3.org/2000/svg",
29125
29378
  ...props,
29126
- children: /* @__PURE__ */ jsx45(
29379
+ children: /* @__PURE__ */ jsx46(
29127
29380
  "path",
29128
29381
  {
29129
29382
  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",
@@ -29134,7 +29387,7 @@ function TuttiIcon(props) {
29134
29387
  );
29135
29388
  }
29136
29389
  function TaskBreakdownIcon(props) {
29137
- return /* @__PURE__ */ jsx45(
29390
+ return /* @__PURE__ */ jsx46(
29138
29391
  "svg",
29139
29392
  {
29140
29393
  width: "24",
@@ -29143,7 +29396,7 @@ function TaskBreakdownIcon(props) {
29143
29396
  fill: "none",
29144
29397
  xmlns: "http://www.w3.org/2000/svg",
29145
29398
  ...props,
29146
- children: /* @__PURE__ */ jsx45(
29399
+ children: /* @__PURE__ */ jsx46(
29147
29400
  "path",
29148
29401
  {
29149
29402
  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",
@@ -29154,7 +29407,7 @@ function TaskBreakdownIcon(props) {
29154
29407
  );
29155
29408
  }
29156
29409
  function BattleIcon(props) {
29157
- return /* @__PURE__ */ jsx45(
29410
+ return /* @__PURE__ */ jsx46(
29158
29411
  "svg",
29159
29412
  {
29160
29413
  width: "24",
@@ -29163,7 +29416,7 @@ function BattleIcon(props) {
29163
29416
  fill: "none",
29164
29417
  xmlns: "http://www.w3.org/2000/svg",
29165
29418
  ...props,
29166
- children: /* @__PURE__ */ jsx45(
29419
+ children: /* @__PURE__ */ jsx46(
29167
29420
  "path",
29168
29421
  {
29169
29422
  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",
@@ -29174,7 +29427,7 @@ function BattleIcon(props) {
29174
29427
  );
29175
29428
  }
29176
29429
  function QualityReviewIcon(props) {
29177
- return /* @__PURE__ */ jsx45(
29430
+ return /* @__PURE__ */ jsx46(
29178
29431
  "svg",
29179
29432
  {
29180
29433
  width: "24",
@@ -29183,7 +29436,7 @@ function QualityReviewIcon(props) {
29183
29436
  fill: "none",
29184
29437
  xmlns: "http://www.w3.org/2000/svg",
29185
29438
  ...props,
29186
- children: /* @__PURE__ */ jsx45(
29439
+ children: /* @__PURE__ */ jsx46(
29187
29440
  "path",
29188
29441
  {
29189
29442
  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",
@@ -29221,7 +29474,7 @@ var AgentHomeSuggestions = memo2(function AgentHomeSuggestions2({
29221
29474
  closeLabel
29222
29475
  }) {
29223
29476
  "use memo";
29224
- const [activeCategoryId, setActiveCategoryId] = useState29(null);
29477
+ const [activeCategoryId, setActiveCategoryId] = useState30(null);
29225
29478
  if (categories.length === 0) {
29226
29479
  return null;
29227
29480
  }
@@ -29229,12 +29482,12 @@ var AgentHomeSuggestions = memo2(function AgentHomeSuggestions2({
29229
29482
  (category) => category.id === activeCategoryId && !isDirectCategory(category)
29230
29483
  ) ?? null;
29231
29484
  const ActiveCategoryIcon = activeCategory?.icon ? CATEGORY_ICON[activeCategory.icon] : null;
29232
- return /* @__PURE__ */ jsxs33("div", { className: AgentGUINode_styles_default.emptyHeroSuggestions, children: [
29233
- /* @__PURE__ */ jsx45("div", { className: AgentGUINode_styles_default.emptyHeroSuggestionsChips, children: categories.map((category) => {
29485
+ return /* @__PURE__ */ jsxs34("div", { className: AgentGUINode_styles_default.emptyHeroSuggestions, children: [
29486
+ /* @__PURE__ */ jsx46("div", { className: AgentGUINode_styles_default.emptyHeroSuggestionsChips, children: categories.map((category) => {
29234
29487
  const Icon = category.icon ? CATEGORY_ICON[category.icon] : null;
29235
29488
  const direct = isDirectCategory(category);
29236
29489
  const isActive = !direct && category.id === activeCategory?.id;
29237
- return /* @__PURE__ */ jsxs33(
29490
+ return /* @__PURE__ */ jsxs34(
29238
29491
  "button",
29239
29492
  {
29240
29493
  type: "button",
@@ -29255,23 +29508,23 @@ var AgentHomeSuggestions = memo2(function AgentHomeSuggestions2({
29255
29508
  );
29256
29509
  },
29257
29510
  children: [
29258
- Icon ? /* @__PURE__ */ jsx45(
29511
+ Icon ? /* @__PURE__ */ jsx46(
29259
29512
  Icon,
29260
29513
  {
29261
29514
  className: AgentGUINode_styles_default.emptyHeroSuggestionsChipIcon,
29262
29515
  "aria-hidden": true
29263
29516
  }
29264
29517
  ) : null,
29265
- /* @__PURE__ */ jsx45("span", { children: category.label })
29518
+ /* @__PURE__ */ jsx46("span", { children: category.label })
29266
29519
  ]
29267
29520
  },
29268
29521
  category.id
29269
29522
  );
29270
29523
  }) }),
29271
- activeCategory ? /* @__PURE__ */ jsxs33("div", { className: AgentGUINode_styles_default.emptyHeroSuggestionsCard, children: [
29272
- /* @__PURE__ */ jsxs33("div", { className: AgentGUINode_styles_default.emptyHeroSuggestionsCardHeader, children: [
29273
- /* @__PURE__ */ jsxs33("span", { className: AgentGUINode_styles_default.emptyHeroSuggestionsCardTitle, children: [
29274
- ActiveCategoryIcon ? /* @__PURE__ */ jsx45(
29524
+ activeCategory ? /* @__PURE__ */ jsxs34("div", { className: AgentGUINode_styles_default.emptyHeroSuggestionsCard, children: [
29525
+ /* @__PURE__ */ jsxs34("div", { className: AgentGUINode_styles_default.emptyHeroSuggestionsCardHeader, children: [
29526
+ /* @__PURE__ */ jsxs34("span", { className: AgentGUINode_styles_default.emptyHeroSuggestionsCardTitle, children: [
29527
+ ActiveCategoryIcon ? /* @__PURE__ */ jsx46(
29275
29528
  ActiveCategoryIcon,
29276
29529
  {
29277
29530
  className: AgentGUINode_styles_default.emptyHeroSuggestionsChipIcon,
@@ -29280,7 +29533,7 @@ var AgentHomeSuggestions = memo2(function AgentHomeSuggestions2({
29280
29533
  ) : null,
29281
29534
  activeCategory.label
29282
29535
  ] }),
29283
- /* @__PURE__ */ jsx45(
29536
+ /* @__PURE__ */ jsx46(
29284
29537
  "button",
29285
29538
  {
29286
29539
  type: "button",
@@ -29288,11 +29541,11 @@ var AgentHomeSuggestions = memo2(function AgentHomeSuggestions2({
29288
29541
  "aria-label": closeLabel,
29289
29542
  title: closeLabel,
29290
29543
  onClick: () => setActiveCategoryId(null),
29291
- children: /* @__PURE__ */ jsx45(X6, { "aria-hidden": true })
29544
+ children: /* @__PURE__ */ jsx46(X6, { "aria-hidden": true })
29292
29545
  }
29293
29546
  )
29294
29547
  ] }),
29295
- activeCategory.items?.map((item) => /* @__PURE__ */ jsx45(
29548
+ activeCategory.items?.map((item) => /* @__PURE__ */ jsx46(
29296
29549
  "button",
29297
29550
  {
29298
29551
  type: "button",
@@ -29340,7 +29593,7 @@ function createFallbackAgentGUIAgentAvatar(input) {
29340
29593
 
29341
29594
  // agent-gui/agentGuiNode/view/AgentGUIEmptyHeroCarouselStage.tsx
29342
29595
  import { Component as Component3 } from "react";
29343
- import { jsx as jsx46, jsxs as jsxs34 } from "react/jsx-runtime";
29596
+ import { jsx as jsx47, jsxs as jsxs35 } from "react/jsx-runtime";
29344
29597
  var AgentGUIEmptyHeroCarouselStage = class extends Component3 {
29345
29598
  alignmentActive = false;
29346
29599
  animationFrame = null;
@@ -29374,8 +29627,8 @@ var AgentGUIEmptyHeroCarouselStage = class extends Component3 {
29374
29627
  providerSelectLabel
29375
29628
  } = this.props;
29376
29629
  const hasCarousel = items.length > 1;
29377
- return /* @__PURE__ */ jsxs34("div", { ref: this.setStage, className: AgentGUINode_styles_default.emptyHeroCarouselStage, children: [
29378
- hasCarousel ? /* @__PURE__ */ jsx46("div", { ref: this.setLayer, className: AgentGUINode_styles_default.emptyHeroCarouselLayer, children: /* @__PURE__ */ jsx46(
29630
+ return /* @__PURE__ */ jsxs35("div", { ref: this.setStage, className: AgentGUINode_styles_default.emptyHeroCarouselStage, children: [
29631
+ hasCarousel ? /* @__PURE__ */ jsx47("div", { ref: this.setLayer, className: AgentGUINode_styles_default.emptyHeroCarouselLayer, children: /* @__PURE__ */ jsx47(
29379
29632
  AgentGUIHeroAgentCarousel,
29380
29633
  {
29381
29634
  activeAgentTargetId,
@@ -29483,7 +29736,7 @@ var AgentGUIEmptyHeroCarouselStage = class extends Component3 {
29483
29736
  // agent-gui/agentGuiNode/view/AgentTargetSetupGate.tsx
29484
29737
  import { useExternalStoreSnapshot } from "@tutti-os/ui-react-hooks";
29485
29738
  import {
29486
- Button as Button7,
29739
+ Button as Button8,
29487
29740
  RefreshIcon,
29488
29741
  Select as Select4,
29489
29742
  SelectContent as SelectContent4,
@@ -29531,7 +29784,7 @@ function isFailed(status) {
29531
29784
  }
29532
29785
 
29533
29786
  // shared/agentEnv/agentTargetSetupController.tsx
29534
- import { jsx as jsx47 } from "react/jsx-runtime";
29787
+ import { jsx as jsx48 } from "react/jsx-runtime";
29535
29788
  var DISABLED_SETUP_STATE = {
29536
29789
  snapshot: null,
29537
29790
  loading: false,
@@ -29542,7 +29795,7 @@ function AgentTargetSetupControllerProvider({
29542
29795
  children,
29543
29796
  controller
29544
29797
  }) {
29545
- return /* @__PURE__ */ jsx47(AgentTargetSetupControllerContext.Provider, { value: controller, children });
29798
+ return /* @__PURE__ */ jsx48(AgentTargetSetupControllerContext.Provider, { value: controller, children });
29546
29799
  }
29547
29800
  function useAgentTargetSetupController() {
29548
29801
  const controller = useContext(AgentTargetSetupControllerContext);
@@ -29707,7 +29960,7 @@ function createClientActionId() {
29707
29960
  }
29708
29961
 
29709
29962
  // agent-gui/agentGuiNode/view/AgentTargetSetupGate.tsx
29710
- import { Fragment as Fragment15, jsx as jsx48, jsxs as jsxs35 } from "react/jsx-runtime";
29963
+ import { Fragment as Fragment15, jsx as jsx49, jsxs as jsxs36 } from "react/jsx-runtime";
29711
29964
  function AgentTargetSetupGate({
29712
29965
  children,
29713
29966
  carouselMountedExternally,
@@ -29734,7 +29987,7 @@ function AgentTargetSetupGate({
29734
29987
  (method) => method.id === selectedAuthMethodId
29735
29988
  ) ? selectedAuthMethodId ?? "" : authMethods.some((method) => method.id === account?.authMethodId) ? account?.authMethodId ?? "" : authMethods[0]?.id ?? "";
29736
29989
  if (!enabled) {
29737
- return /* @__PURE__ */ jsx48(Fragment15, { children });
29990
+ return /* @__PURE__ */ jsx49(Fragment15, { children });
29738
29991
  }
29739
29992
  const setupChecking = !snapshot && !failed;
29740
29993
  const setupBlocked = failed || !snapshot || snapshot.status !== "ready";
@@ -29758,27 +30011,27 @@ function AgentTargetSetupGate({
29758
30011
  const accountDetail = account ? [account.displayName, account.organization].filter(Boolean).join(" \xB7 ") : void 0;
29759
30012
  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");
29760
30013
  const authenticationAvailable = snapshot?.status === "auth_required" || snapshot?.status === "ready";
29761
- return /* @__PURE__ */ jsxs35(Fragment15, { children: [
29762
- gateVisible && setupBlocked ? /* @__PURE__ */ jsx48("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs35(
30014
+ return /* @__PURE__ */ jsxs36(Fragment15, { children: [
30015
+ gateVisible && setupBlocked ? /* @__PURE__ */ jsx49("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs36(
29763
30016
  "div",
29764
30017
  {
29765
30018
  className: cn5(AgentGUINode_styles_default.emptyHeroBody, AgentGUINode_styles_default.emptyProviderGate),
29766
30019
  "data-testid": "agent-target-setup-gate",
29767
30020
  role: "status",
29768
30021
  children: [
29769
- carouselMountedExternally ? /* @__PURE__ */ jsx48(
30022
+ carouselMountedExternally ? /* @__PURE__ */ jsx49(
29770
30023
  "div",
29771
30024
  {
29772
30025
  "aria-hidden": "true",
29773
30026
  className: AgentGUINode_styles_default.emptyHeroCarouselPlaceholder
29774
30027
  }
29775
30028
  ) : null,
29776
- /* @__PURE__ */ jsx48("h2", { className: AgentGUINode_styles_default.emptyHeroTitle, children: t("agentHost.agentGui.targetSetupTitle", {
30029
+ /* @__PURE__ */ jsx49("h2", { className: AgentGUINode_styles_default.emptyHeroTitle, children: t("agentHost.agentGui.targetSetupTitle", {
29777
30030
  provider: providerLabel
29778
30031
  }) }),
29779
- /* @__PURE__ */ jsx48("p", { className: AgentGUINode_styles_default.emptyProviderGateDescription, children: setupDescription }),
29780
- !setupChecking ? /* @__PURE__ */ jsx48(
29781
- Button7,
30032
+ /* @__PURE__ */ jsx49("p", { className: AgentGUINode_styles_default.emptyProviderGateDescription, children: setupDescription }),
30033
+ !setupChecking ? /* @__PURE__ */ jsx49(
30034
+ Button8,
29782
30035
  {
29783
30036
  type: "button",
29784
30037
  className: AgentGUINode_styles_default.emptyProviderGateAction,
@@ -29789,7 +30042,7 @@ function AgentTargetSetupGate({
29789
30042
  ]
29790
30043
  }
29791
30044
  ) }) : children,
29792
- dialogOwner ? /* @__PURE__ */ jsx48(
30045
+ dialogOwner ? /* @__PURE__ */ jsx49(
29793
30046
  AgentSetupDialog,
29794
30047
  {
29795
30048
  open: dialogOpen,
@@ -29798,27 +30051,27 @@ function AgentTargetSetupGate({
29798
30051
  provider: providerLabel
29799
30052
  }),
29800
30053
  description: setupDescription,
29801
- footer: /* @__PURE__ */ jsxs35(
29802
- Button7,
30054
+ footer: /* @__PURE__ */ jsxs36(
30055
+ Button8,
29803
30056
  {
29804
30057
  size: "dialog",
29805
30058
  type: "button",
29806
30059
  disabled: loading,
29807
30060
  onClick: () => void controller.refresh(),
29808
30061
  children: [
29809
- /* @__PURE__ */ jsx48(RefreshIcon, { className: "size-4" }),
30062
+ /* @__PURE__ */ jsx49(RefreshIcon, { className: "size-4" }),
29810
30063
  t("agentHost.agentGui.targetSetupRetry")
29811
30064
  ]
29812
30065
  }
29813
30066
  ),
29814
- children: /* @__PURE__ */ jsxs35("div", { className: "flex flex-col gap-4", children: [
29815
- /* @__PURE__ */ jsx48("p", { className: "m-0 text-[13px] text-[var(--text-secondary)]", children: statusLabel2 ?? (snapshot?.status === "ready" ? t("agentHost.agentGui.targetSetupComplete", {
30067
+ children: /* @__PURE__ */ jsxs36("div", { className: "flex flex-col gap-4", children: [
30068
+ /* @__PURE__ */ jsx49("p", { className: "m-0 text-[13px] text-[var(--text-secondary)]", children: statusLabel2 ?? (snapshot?.status === "ready" ? t("agentHost.agentGui.targetSetupComplete", {
29816
30069
  provider: providerLabel
29817
30070
  }) : t("agentHost.agentGui.targetSetupRemaining", {
29818
30071
  provider: providerLabel
29819
30072
  })) }),
29820
- /* @__PURE__ */ jsxs35("ol", { className: "m-0 flex list-none flex-col divide-y divide-[var(--border-1)] p-0", children: [
29821
- /* @__PURE__ */ jsx48(
30073
+ /* @__PURE__ */ jsxs36("ol", { className: "m-0 flex list-none flex-col divide-y divide-[var(--border-1)] p-0", children: [
30074
+ /* @__PURE__ */ jsx49(
29822
30075
  SetupTrackRow,
29823
30076
  {
29824
30077
  label: t("agentHost.agentGui.targetSetupStage.detect"),
@@ -29826,15 +30079,15 @@ function AgentTargetSetupGate({
29826
30079
  detail: snapshot?.runtimeVersion ? `${snapshot.runtimeVersion} \xB7 ${snapshot.runtimeSource ?? ""}` : void 0
29827
30080
  }
29828
30081
  ),
29829
- /* @__PURE__ */ jsx48(
30082
+ /* @__PURE__ */ jsx49(
29830
30083
  SetupTrackRow,
29831
30084
  {
29832
30085
  label: t("agentHost.agentGui.targetSetupStage.install"),
29833
30086
  status: installStatus,
29834
30087
  warning: snapshot?.status === "not_installed",
29835
30088
  detail: snapshot?.plan ? `${snapshot.plan.packageName}@${snapshot.plan.packageVersion}` : void 0,
29836
- action: (snapshot?.status === "not_installed" || installRetryAvailable) && snapshot.plan ? /* @__PURE__ */ jsx48(
29837
- Button7,
30089
+ action: (snapshot?.status === "not_installed" || installRetryAvailable) && snapshot.plan ? /* @__PURE__ */ jsx49(
30090
+ Button8,
29838
30091
  {
29839
30092
  type: "button",
29840
30093
  size: "sm",
@@ -29845,10 +30098,10 @@ function AgentTargetSetupGate({
29845
30098
  )
29846
30099
  }
29847
30100
  ) : void 0,
29848
- children: snapshot?.plan ? /* @__PURE__ */ jsx48("span", { className: "mt-2 block break-all text-[12px] text-[var(--text-secondary)]", children: snapshot.plan.installRoot }) : null
30101
+ children: snapshot?.plan ? /* @__PURE__ */ jsx49("span", { className: "mt-2 block break-all text-[12px] text-[var(--text-secondary)]", children: snapshot.plan.installRoot }) : null
29849
30102
  }
29850
30103
  ),
29851
- /* @__PURE__ */ jsx48(
30104
+ /* @__PURE__ */ jsx49(
29852
30105
  SetupTrackRow,
29853
30106
  {
29854
30107
  label: t(
@@ -29857,8 +30110,8 @@ function AgentTargetSetupGate({
29857
30110
  status: loginStatus,
29858
30111
  warning: snapshot?.status === "auth_required",
29859
30112
  detail: snapshot?.status === "ready" ? accountDetail : void 0,
29860
- action: authenticationAvailable && authMethods.length > 0 ? /* @__PURE__ */ jsx48(
29861
- Button7,
30113
+ action: authenticationAvailable && authMethods.length > 0 ? /* @__PURE__ */ jsx49(
30114
+ Button8,
29862
30115
  {
29863
30116
  type: "button",
29864
30117
  size: "sm",
@@ -29867,40 +30120,40 @@ function AgentTargetSetupGate({
29867
30120
  children: authenticatePending ? t("agentHost.agentGui.targetSetupAuthStarting") : snapshot?.status === "ready" ? t("agentHost.agentGui.targetSetupReauthenticate") : t("agentHost.agentGui.targetSetupAuthenticate")
29868
30121
  }
29869
30122
  ) : void 0,
29870
- children: snapshot?.status === "auth_required" && authMethods.length > 0 ? /* @__PURE__ */ jsxs35("label", { className: "mt-2 flex flex-col gap-1 text-[12px] text-[var(--text-secondary)]", children: [
30123
+ children: snapshot?.status === "auth_required" && authMethods.length > 0 ? /* @__PURE__ */ jsxs36("label", { className: "mt-2 flex flex-col gap-1 text-[12px] text-[var(--text-secondary)]", children: [
29871
30124
  t("agentHost.agentGui.targetSetupAuthMethod"),
29872
- /* @__PURE__ */ jsxs35(
30125
+ /* @__PURE__ */ jsxs36(
29873
30126
  Select4,
29874
30127
  {
29875
30128
  value: effectiveAuthMethodId,
29876
30129
  onValueChange: controller.selectAuthMethod,
29877
30130
  children: [
29878
- /* @__PURE__ */ jsx48(
30131
+ /* @__PURE__ */ jsx49(
29879
30132
  SelectTrigger4,
29880
30133
  {
29881
30134
  "aria-label": t(
29882
30135
  "agentHost.agentGui.targetSetupAuthMethod"
29883
30136
  ),
29884
- children: /* @__PURE__ */ jsx48(SelectValue, {})
30137
+ children: /* @__PURE__ */ jsx49(SelectValue, {})
29885
30138
  }
29886
30139
  ),
29887
- /* @__PURE__ */ jsx48(
30140
+ /* @__PURE__ */ jsx49(
29888
30141
  SelectContent4,
29889
30142
  {
29890
30143
  style: { zIndex: "var(--z-dialog-popover)" },
29891
- children: authMethods.map((method) => /* @__PURE__ */ jsx48(SelectItem4, { value: method.id, children: method.name }, method.id))
30144
+ children: authMethods.map((method) => /* @__PURE__ */ jsx49(SelectItem4, { value: method.id, children: method.name }, method.id))
29892
30145
  }
29893
30146
  )
29894
30147
  ]
29895
30148
  }
29896
30149
  )
29897
- ] }) : snapshot?.status === "auth_required" ? /* @__PURE__ */ jsx48("p", { className: "mt-2 mb-0 text-[12px] text-[var(--text-secondary)]", children: t("agentHost.agentGui.targetSetupNoAuthMethods") }) : null
30150
+ ] }) : snapshot?.status === "auth_required" ? /* @__PURE__ */ jsx49("p", { className: "mt-2 mb-0 text-[12px] text-[var(--text-secondary)]", children: t("agentHost.agentGui.targetSetupNoAuthMethods") }) : null
29898
30151
  }
29899
30152
  )
29900
30153
  ] }),
29901
- failed || snapshot?.status === "failed" || actionFailed ? /* @__PURE__ */ jsxs35("p", { className: "m-0 text-[12px] text-[var(--state-danger)]", children: [
29902
- /* @__PURE__ */ jsx48("span", { className: "block", children: snapshot?.action?.kind === "authenticate" ? t("agentHost.agentGui.targetSetupAuthFailed") : t("agentHost.agentGui.targetSetupFailed") }),
29903
- snapshot?.action?.errorMessage?.trim() ? /* @__PURE__ */ jsx48("span", { className: "mt-1 block break-words text-[var(--text-secondary)]", children: snapshot.action.errorMessage.trim() }) : null
30154
+ failed || snapshot?.status === "failed" || actionFailed ? /* @__PURE__ */ jsxs36("p", { className: "m-0 text-[12px] text-[var(--state-danger)]", children: [
30155
+ /* @__PURE__ */ jsx49("span", { className: "block", children: snapshot?.action?.kind === "authenticate" ? t("agentHost.agentGui.targetSetupAuthFailed") : t("agentHost.agentGui.targetSetupFailed") }),
30156
+ snapshot?.action?.errorMessage?.trim() ? /* @__PURE__ */ jsx49("span", { className: "mt-1 block break-words text-[var(--text-secondary)]", children: snapshot.action.errorMessage.trim() }) : null
29904
30157
  ] }) : null
29905
30158
  ] })
29906
30159
  }
@@ -29921,23 +30174,23 @@ function SetupTrackRow({
29921
30174
  status,
29922
30175
  warning = false
29923
30176
  }) {
29924
- return /* @__PURE__ */ jsxs35(
30177
+ return /* @__PURE__ */ jsxs36(
29925
30178
  "li",
29926
30179
  {
29927
30180
  "data-status": status,
29928
30181
  className: `flex items-start gap-2.5 py-3 ${status === "pending" ? "opacity-50" : ""}`,
29929
30182
  children: [
29930
- /* @__PURE__ */ jsx48("span", { className: "mt-0.5 shrink-0", children: /* @__PURE__ */ jsx48(AgentSetupStepIcon, { status, warning }) }),
29931
- /* @__PURE__ */ jsxs35("span", { className: "min-w-0 flex-1", children: [
29932
- /* @__PURE__ */ jsxs35("span", { className: "flex min-w-0 items-baseline gap-2", children: [
29933
- /* @__PURE__ */ jsx48(
30183
+ /* @__PURE__ */ jsx49("span", { className: "mt-0.5 shrink-0", children: /* @__PURE__ */ jsx49(AgentSetupStepIcon, { status, warning }) }),
30184
+ /* @__PURE__ */ jsxs36("span", { className: "min-w-0 flex-1", children: [
30185
+ /* @__PURE__ */ jsxs36("span", { className: "flex min-w-0 items-baseline gap-2", children: [
30186
+ /* @__PURE__ */ jsx49(
29934
30187
  "span",
29935
30188
  {
29936
30189
  className: `shrink-0 text-[13px] font-medium ${status === "error" ? warning ? "text-[var(--state-warning)]" : "text-[var(--state-danger)]" : "text-[var(--text-primary)]"}`,
29937
30190
  children: label
29938
30191
  }
29939
30192
  ),
29940
- detail ? /* @__PURE__ */ jsx48("span", { className: "min-w-0 truncate text-[12px] text-[var(--text-secondary)]", children: detail }) : null
30193
+ detail ? /* @__PURE__ */ jsx49("span", { className: "min-w-0 truncate text-[12px] text-[var(--text-secondary)]", children: detail }) : null
29941
30194
  ] }),
29942
30195
  children
29943
30196
  ] }),
@@ -29986,7 +30239,7 @@ function targetSetupPhaseLabel(t, phase) {
29986
30239
 
29987
30240
  // agent-gui/agentGuiNode/view/AgentGUIAgentTargetName.tsx
29988
30241
  import { cn as cn6 } from "@tutti-os/ui-system";
29989
- import { Fragment as Fragment16, jsx as jsx49, jsxs as jsxs36 } from "react/jsx-runtime";
30242
+ import { Fragment as Fragment16, jsx as jsx50, jsxs as jsxs37 } from "react/jsx-runtime";
29990
30243
  function projectAgentGUIAgentTargetName(input) {
29991
30244
  const agentLabel = input.target.label.trim();
29992
30245
  const ownerLabel = input.target.ownership === "shared" ? input.target.ownerLabel?.trim() || null : null;
@@ -30007,13 +30260,13 @@ function AgentGUIAgentTargetName({
30007
30260
  ownerSeparator,
30008
30261
  target
30009
30262
  });
30010
- return /* @__PURE__ */ jsx49(
30263
+ return /* @__PURE__ */ jsx50(
30011
30264
  "span",
30012
30265
  {
30013
30266
  className: cn6("flex min-w-0 max-w-full items-baseline", className),
30014
30267
  title: presentation.fullLabel,
30015
- children: presentation.ownerLabel ? /* @__PURE__ */ jsxs36(Fragment16, { children: [
30016
- /* @__PURE__ */ jsx49(
30268
+ children: presentation.ownerLabel ? /* @__PURE__ */ jsxs37(Fragment16, { children: [
30269
+ /* @__PURE__ */ jsx50(
30017
30270
  "span",
30018
30271
  {
30019
30272
  className: "min-w-0 flex-1 truncate",
@@ -30021,7 +30274,7 @@ function AgentGUIAgentTargetName({
30021
30274
  children: presentation.ownerLabel
30022
30275
  }
30023
30276
  ),
30024
- /* @__PURE__ */ jsxs36(
30277
+ /* @__PURE__ */ jsxs37(
30025
30278
  "span",
30026
30279
  {
30027
30280
  className: "shrink-0 whitespace-pre",
@@ -30032,13 +30285,13 @@ function AgentGUIAgentTargetName({
30032
30285
  ]
30033
30286
  }
30034
30287
  )
30035
- ] }) : /* @__PURE__ */ jsx49("span", { className: "min-w-0 truncate", "data-testid": "agent-target-name", children: presentation.agentLabel })
30288
+ ] }) : /* @__PURE__ */ jsx50("span", { className: "min-w-0 truncate", "data-testid": "agent-target-name", children: presentation.agentLabel })
30036
30289
  }
30037
30290
  );
30038
30291
  }
30039
30292
 
30040
30293
  // agent-gui/agentGuiNode/view/AgentGUIEmptyState.tsx
30041
- import { Fragment as Fragment17, jsx as jsx50, jsxs as jsxs37 } from "react/jsx-runtime";
30294
+ import { Fragment as Fragment17, jsx as jsx51, jsxs as jsxs38 } from "react/jsx-runtime";
30042
30295
  function resolveAgentGUIHeroIconUrl2(provider) {
30043
30296
  const normalizedProvider = normalizeManagedAgentProvider(provider);
30044
30297
  return MANAGED_AGENT_ICON_URLS[normalizedProvider] ?? MANAGED_AGENT_ICON_FALLBACK_URL;
@@ -30084,7 +30337,7 @@ var AgentGUIEmptyHomePane = memo3(function AgentGUIEmptyHomePane2({
30084
30337
  [agentTargets, provider, providerLabel, selectedAgentTarget]
30085
30338
  );
30086
30339
  const carouselMountedExternally = avatarPresentations.length > 1;
30087
- return /* @__PURE__ */ jsx50(
30340
+ return /* @__PURE__ */ jsx51(
30088
30341
  AgentGUIEmptyHeroCarouselStage,
30089
30342
  {
30090
30343
  activeAgentTargetId: selectedAgentTarget?.agentTargetId ?? selectedAgentTarget?.targetId,
@@ -30092,11 +30345,11 @@ var AgentGUIEmptyHomePane = memo3(function AgentGUIEmptyHomePane2({
30092
30345
  onProviderSelect,
30093
30346
  previewMode,
30094
30347
  providerSelectLabel: labels.providerSwitchLabel,
30095
- children: /* @__PURE__ */ jsx50(
30348
+ children: /* @__PURE__ */ jsx51(
30096
30349
  AgentTargetSetupGate,
30097
30350
  {
30098
30351
  carouselMountedExternally,
30099
- children: providerReadinessGate ? /* @__PURE__ */ jsx50(
30352
+ children: providerReadinessGate ? /* @__PURE__ */ jsx51(
30100
30353
  AgentGUIProviderReadinessGatePane,
30101
30354
  {
30102
30355
  provider,
@@ -30112,7 +30365,7 @@ var AgentGUIEmptyHomePane = memo3(function AgentGUIEmptyHomePane2({
30112
30365
  selectedAgentTarget,
30113
30366
  labels
30114
30367
  }
30115
- ) : /* @__PURE__ */ jsx50(
30368
+ ) : /* @__PURE__ */ jsx51(
30116
30369
  AgentGUIEmptyHeroPane,
30117
30370
  {
30118
30371
  ...heroProps,
@@ -30167,13 +30420,13 @@ var AgentGUIEmptyHeroPane = memo3(function AgentGUIEmptyHeroPane2({
30167
30420
  const heroIconAnimationKey = heroAvatarPresentations.map(
30168
30421
  (avatar) => `${avatar.agentTargetId}:${avatar.iconUrl}:${avatar.badge?.iconUrl ?? ""}`
30169
30422
  ).join("|");
30170
- return /* @__PURE__ */ jsx50("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs37("div", { className: AgentGUINode_styles_default.emptyHeroBody, children: [
30171
- /* @__PURE__ */ jsx50(
30423
+ return /* @__PURE__ */ jsx51("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs38("div", { className: AgentGUINode_styles_default.emptyHeroBody, children: [
30424
+ /* @__PURE__ */ jsx51(
30172
30425
  "div",
30173
30426
  {
30174
30427
  className: AgentGUINode_styles_default.emptyHeroIconSlot,
30175
30428
  "data-carousel-placeholder": carouselMountedExternally || void 0,
30176
- children: carouselMountedExternally ? null : heroAvatarPresentations.length > 1 ? /* @__PURE__ */ jsx50(
30429
+ children: carouselMountedExternally ? null : heroAvatarPresentations.length > 1 ? /* @__PURE__ */ jsx51(
30177
30430
  AgentGUIHeroAgentCarousel,
30178
30431
  {
30179
30432
  activeAgentTargetId: selectedAgentTarget?.agentTargetId ?? selectedAgentTarget?.targetId,
@@ -30181,7 +30434,7 @@ var AgentGUIEmptyHeroPane = memo3(function AgentGUIEmptyHeroPane2({
30181
30434
  onProviderSelect,
30182
30435
  providerSelectLabel
30183
30436
  }
30184
- ) : /* @__PURE__ */ jsx50(
30437
+ ) : /* @__PURE__ */ jsx51(
30185
30438
  AgentGUIAgentAvatarVisual,
30186
30439
  {
30187
30440
  className: AgentGUINode_styles_default.emptyHeroIconEffect,
@@ -30191,7 +30444,7 @@ var AgentGUIEmptyHeroPane = memo3(function AgentGUIEmptyHeroPane2({
30191
30444
  )
30192
30445
  }
30193
30446
  ),
30194
- /* @__PURE__ */ jsx50("h2", { className: AgentGUINode_styles_default.emptyHeroTitle, children: /* @__PURE__ */ jsx50(
30447
+ /* @__PURE__ */ jsx51("h2", { className: AgentGUINode_styles_default.emptyHeroTitle, children: /* @__PURE__ */ jsx51(
30195
30448
  EmptyHeroTitle,
30196
30449
  {
30197
30450
  label: emptyLabel,
@@ -30203,7 +30456,7 @@ var AgentGUIEmptyHeroPane = memo3(function AgentGUIEmptyHeroPane2({
30203
30456
  sharedAgentOwnerSeparator
30204
30457
  }
30205
30458
  ) }),
30206
- noticeChrome ? /* @__PURE__ */ jsx50(
30459
+ noticeChrome ? /* @__PURE__ */ jsx51(
30207
30460
  AgentSessionChrome,
30208
30461
  {
30209
30462
  chrome: noticeChrome,
@@ -30215,9 +30468,9 @@ var AgentGUIEmptyHeroPane = memo3(function AgentGUIEmptyHeroPane2({
30215
30468
  labels: chromeLabels
30216
30469
  }
30217
30470
  ) : null,
30218
- /* @__PURE__ */ jsx50(AgentComposer, { ...composerProps }),
30219
- /* @__PURE__ */ jsx50(AgentGUIEmptyHeroTuttiToggle, { composerProps }),
30220
- /* @__PURE__ */ jsx50(
30471
+ /* @__PURE__ */ jsx51(AgentComposer, { ...composerProps }),
30472
+ /* @__PURE__ */ jsx51(AgentGUIEmptyHeroTuttiToggle, { composerProps }),
30473
+ /* @__PURE__ */ jsx51(
30221
30474
  AgentHomeSuggestions,
30222
30475
  {
30223
30476
  categories: suggestions,
@@ -30240,7 +30493,7 @@ function AgentGUIEmptyHeroTuttiToggle({
30240
30493
  const updating = composerProps.tuttiModeUpdating === true;
30241
30494
  const label = composerProps.labels.tuttiModeLabel;
30242
30495
  const description = composerProps.labels.tuttiModeDescription;
30243
- return /* @__PURE__ */ jsxs37(
30496
+ return /* @__PURE__ */ jsxs38(
30244
30497
  "label",
30245
30498
  {
30246
30499
  className: cn7(
@@ -30252,7 +30505,7 @@ function AgentGUIEmptyHeroTuttiToggle({
30252
30505
  title: description,
30253
30506
  "data-testid": "agent-gui-hero-tutti-toggle",
30254
30507
  children: [
30255
- /* @__PURE__ */ jsx50(
30508
+ /* @__PURE__ */ jsx51(
30256
30509
  Sparkles2,
30257
30510
  {
30258
30511
  "aria-hidden": true,
@@ -30262,11 +30515,11 @@ function AgentGUIEmptyHeroTuttiToggle({
30262
30515
  )
30263
30516
  }
30264
30517
  ),
30265
- /* @__PURE__ */ jsxs37("span", { className: "flex min-w-0 flex-1 flex-col text-left", children: [
30266
- /* @__PURE__ */ jsx50("span", { className: "text-[13px] font-medium text-[var(--text-primary)]", children: label }),
30267
- description ? /* @__PURE__ */ jsx50("span", { className: "truncate text-[11px] text-[var(--agent-gui-text-tertiary)]", children: description }) : null
30518
+ /* @__PURE__ */ jsxs38("span", { className: "flex min-w-0 flex-1 flex-col text-left", children: [
30519
+ /* @__PURE__ */ jsx51("span", { className: "text-[13px] font-medium text-[var(--text-primary)]", children: label }),
30520
+ description ? /* @__PURE__ */ jsx51("span", { className: "truncate text-[11px] text-[var(--agent-gui-text-tertiary)]", children: description }) : null
30268
30521
  ] }),
30269
- /* @__PURE__ */ jsx50(
30522
+ /* @__PURE__ */ jsx51(
30270
30523
  Switch,
30271
30524
  {
30272
30525
  id: switchId,
@@ -30317,20 +30570,20 @@ var AgentGUIProviderReadinessGatePane = memo3(
30317
30570
  const titleLabel = gate.status === "not_installed" || gate.status === "auth_required" ? emptyLabel : content.title;
30318
30571
  const action = resolveAgentGUIProviderReadinessAction(gate.status);
30319
30572
  const pendingLabel = pendingAction === "install" ? labels.providerGatePendingInstall : pendingAction === "login" ? labels.providerGatePendingLogin : pendingAction === "refresh" ? labels.providerGatePendingRefresh : null;
30320
- return /* @__PURE__ */ jsx50("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs37(
30573
+ return /* @__PURE__ */ jsx51("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs38(
30321
30574
  "div",
30322
30575
  {
30323
30576
  className: cn7(AgentGUINode_styles_default.emptyHeroBody, AgentGUINode_styles_default.emptyProviderGate),
30324
30577
  "data-testid": "agent-gui-provider-readiness-gate",
30325
30578
  role: "status",
30326
30579
  children: [
30327
- carouselMountedExternally ? /* @__PURE__ */ jsx50(
30580
+ carouselMountedExternally ? /* @__PURE__ */ jsx51(
30328
30581
  "div",
30329
30582
  {
30330
30583
  "aria-hidden": "true",
30331
30584
  className: AgentGUINode_styles_default.emptyHeroCarouselPlaceholder
30332
30585
  }
30333
- ) : heroAvatarPresentations.length > 1 ? /* @__PURE__ */ jsx50(
30586
+ ) : heroAvatarPresentations.length > 1 ? /* @__PURE__ */ jsx51(
30334
30587
  AgentGUIHeroAgentCarousel,
30335
30588
  {
30336
30589
  activeAgentTargetId: selectedAgentTarget?.agentTargetId ?? selectedAgentTarget?.targetId,
@@ -30338,14 +30591,14 @@ var AgentGUIProviderReadinessGatePane = memo3(
30338
30591
  onProviderSelect,
30339
30592
  providerSelectLabel
30340
30593
  }
30341
- ) : /* @__PURE__ */ jsx50(
30594
+ ) : /* @__PURE__ */ jsx51(
30342
30595
  AgentGUIAgentAvatarVisual,
30343
30596
  {
30344
30597
  className: AgentGUINode_styles_default.emptyHeroIconEffect,
30345
30598
  presentation: heroAvatarPresentations[0]
30346
30599
  }
30347
30600
  ),
30348
- /* @__PURE__ */ jsx50("h2", { className: AgentGUINode_styles_default.emptyHeroTitle, children: /* @__PURE__ */ jsx50(
30601
+ /* @__PURE__ */ jsx51("h2", { className: AgentGUINode_styles_default.emptyHeroTitle, children: /* @__PURE__ */ jsx51(
30349
30602
  EmptyHeroTitle,
30350
30603
  {
30351
30604
  label: titleLabel,
@@ -30357,8 +30610,8 @@ var AgentGUIProviderReadinessGatePane = memo3(
30357
30610
  sharedAgentOwnerSeparator: labels.sharedAgentOwnerSeparator
30358
30611
  }
30359
30612
  ) }),
30360
- /* @__PURE__ */ jsx50("p", { className: AgentGUINode_styles_default.emptyProviderGateDescription, children: content.description }),
30361
- pendingLabel && !action ? /* @__PURE__ */ jsx50(
30613
+ /* @__PURE__ */ jsx51("p", { className: AgentGUINode_styles_default.emptyProviderGateDescription, children: content.description }),
30614
+ pendingLabel && !action ? /* @__PURE__ */ jsx51(
30362
30615
  "div",
30363
30616
  {
30364
30617
  className: AgentGUINode_styles_default.emptyProviderGateStatus,
@@ -30366,7 +30619,7 @@ var AgentGUIProviderReadinessGatePane = memo3(
30366
30619
  children: pendingLabel
30367
30620
  }
30368
30621
  ) : null,
30369
- action ? /* @__PURE__ */ jsx50(
30622
+ action ? /* @__PURE__ */ jsx51(
30370
30623
  Button,
30371
30624
  {
30372
30625
  type: "button",
@@ -30385,7 +30638,7 @@ var AgentGUIProviderReadinessGatePane = memo3(
30385
30638
  },
30386
30639
  children: isPending && pendingLabel ? pendingLabel : content.actionLabel
30387
30640
  }
30388
- ) : content.actionLabel ? /* @__PURE__ */ jsx50(
30641
+ ) : content.actionLabel ? /* @__PURE__ */ jsx51(
30389
30642
  Button,
30390
30643
  {
30391
30644
  type: "button",
@@ -30408,7 +30661,7 @@ function AgentGUIUnifiedProviderIcon({
30408
30661
  presentation
30409
30662
  }) {
30410
30663
  const iconUrl = presentation?.iconUrl?.trim() || agentColorfulUrl;
30411
- return /* @__PURE__ */ jsx50("span", { "aria-hidden": "true", className: AgentGUINode_styles_default.providerRailAvatar, children: /* @__PURE__ */ jsx50(
30664
+ return /* @__PURE__ */ jsx51("span", { "aria-hidden": "true", className: AgentGUINode_styles_default.providerRailAvatar, children: /* @__PURE__ */ jsx51(
30412
30665
  "img",
30413
30666
  {
30414
30667
  alt: "",
@@ -30423,7 +30676,7 @@ function AgentGUIProviderIconVisual({
30423
30676
  icon,
30424
30677
  imageClassName
30425
30678
  }) {
30426
- return /* @__PURE__ */ jsx50(
30679
+ return /* @__PURE__ */ jsx51(
30427
30680
  "img",
30428
30681
  {
30429
30682
  alt: "",
@@ -30439,14 +30692,14 @@ function AgentGUIAgentAvatarVisual({
30439
30692
  imageClassName,
30440
30693
  presentation
30441
30694
  }) {
30442
- return /* @__PURE__ */ jsxs37(
30695
+ return /* @__PURE__ */ jsxs38(
30443
30696
  "span",
30444
30697
  {
30445
30698
  "aria-hidden": "true",
30446
30699
  className: cn7(AgentGUINode_styles_default.agentAvatar, className),
30447
30700
  "data-agent-target-id": presentation.agentTargetId,
30448
30701
  children: [
30449
- /* @__PURE__ */ jsx50(
30702
+ /* @__PURE__ */ jsx51(
30450
30703
  "img",
30451
30704
  {
30452
30705
  alt: "",
@@ -30455,7 +30708,7 @@ function AgentGUIAgentAvatarVisual({
30455
30708
  src: presentation.iconUrl
30456
30709
  }
30457
30710
  ),
30458
- presentation.badge?.iconUrl ? /* @__PURE__ */ jsx50("span", { className: AgentGUINode_styles_default.agentAvatarBadge, children: /* @__PURE__ */ jsx50(
30711
+ presentation.badge?.iconUrl ? /* @__PURE__ */ jsx51("span", { className: AgentGUINode_styles_default.agentAvatarBadge, children: /* @__PURE__ */ jsx51(
30459
30712
  "img",
30460
30713
  {
30461
30714
  alt: "",
@@ -30479,15 +30732,15 @@ function EmptyHeroTitle({
30479
30732
  }) {
30480
30733
  const providerStart = providerLabel ? label.indexOf(providerLabel) : -1;
30481
30734
  if (!shouldEmphasizeEmptyHeroProvider(label) || providerStart < 0) {
30482
- return /* @__PURE__ */ jsx50(Fragment17, { children: label });
30735
+ return /* @__PURE__ */ jsx51(Fragment17, { children: label });
30483
30736
  }
30484
30737
  const providerEnd = providerStart + providerLabel.length;
30485
30738
  const selectedAgentTargetId = selectedAgentTarget?.targetId ?? `local:${selectedAgentTarget?.provider ?? ""}`;
30486
30739
  const canSwitchProvider = agentTargets.length > 1 && selectedAgentTarget && onProviderSelect;
30487
30740
  const providerName = label.slice(providerStart, providerEnd);
30488
- return /* @__PURE__ */ jsxs37(Fragment17, { children: [
30741
+ return /* @__PURE__ */ jsxs38(Fragment17, { children: [
30489
30742
  label.slice(0, providerStart),
30490
- canSwitchProvider ? /* @__PURE__ */ jsxs37(
30743
+ canSwitchProvider ? /* @__PURE__ */ jsxs38(
30491
30744
  Select5,
30492
30745
  {
30493
30746
  value: selectedAgentTargetId,
@@ -30504,14 +30757,14 @@ function EmptyHeroTitle({
30504
30757
  });
30505
30758
  },
30506
30759
  children: [
30507
- /* @__PURE__ */ jsx50(
30760
+ /* @__PURE__ */ jsx51(
30508
30761
  SelectTrigger5,
30509
30762
  {
30510
30763
  size: "sm",
30511
30764
  "aria-label": providerSelectLabel,
30512
30765
  title: providerSelectLabel,
30513
30766
  className: AgentGUINode_styles_default.emptyHeroProviderSelect,
30514
- children: /* @__PURE__ */ jsx50(
30767
+ children: /* @__PURE__ */ jsx51(
30515
30768
  AgentGUIAgentTargetName,
30516
30769
  {
30517
30770
  className: cn7(AgentGUINode_styles_default.emptyHeroProvider, "max-w-[240px]"),
@@ -30521,7 +30774,7 @@ function EmptyHeroTitle({
30521
30774
  )
30522
30775
  }
30523
30776
  ),
30524
- /* @__PURE__ */ jsx50(
30777
+ /* @__PURE__ */ jsx51(
30525
30778
  SelectContent5,
30526
30779
  {
30527
30780
  align: "center",
@@ -30529,13 +30782,13 @@ function EmptyHeroTitle({
30529
30782
  AgentGUINode_styles_default.composerMenuContent,
30530
30783
  "min-w-[190px] max-w-[min(420px,calc(100vw-32px))]"
30531
30784
  ),
30532
- children: agentTargets.map((target) => /* @__PURE__ */ jsx50(
30785
+ children: agentTargets.map((target) => /* @__PURE__ */ jsx51(
30533
30786
  SelectItem5,
30534
30787
  {
30535
30788
  value: target.targetId,
30536
30789
  className: cn7(AgentGUINode_styles_default.composerMenuItem, "gap-2"),
30537
- children: /* @__PURE__ */ jsxs37("span", { className: "flex min-w-0 items-center gap-1.5", children: [
30538
- /* @__PURE__ */ jsx50(
30790
+ children: /* @__PURE__ */ jsxs38("span", { className: "flex min-w-0 items-center gap-1.5", children: [
30791
+ /* @__PURE__ */ jsx51(
30539
30792
  "img",
30540
30793
  {
30541
30794
  alt: "",
@@ -30547,7 +30800,7 @@ function EmptyHeroTitle({
30547
30800
  ).iconUrl
30548
30801
  }
30549
30802
  ),
30550
- /* @__PURE__ */ jsx50(
30803
+ /* @__PURE__ */ jsx51(
30551
30804
  AgentGUIAgentTargetName,
30552
30805
  {
30553
30806
  ownerSeparator: sharedAgentOwnerSeparator,
@@ -30562,14 +30815,14 @@ function EmptyHeroTitle({
30562
30815
  )
30563
30816
  ]
30564
30817
  }
30565
- ) : selectedAgentTarget ? /* @__PURE__ */ jsx50(
30818
+ ) : selectedAgentTarget ? /* @__PURE__ */ jsx51(
30566
30819
  AgentGUIAgentTargetName,
30567
30820
  {
30568
30821
  className: cn7(AgentGUINode_styles_default.emptyHeroProvider, "max-w-[240px]"),
30569
30822
  ownerSeparator: sharedAgentOwnerSeparator,
30570
30823
  target: selectedAgentTarget
30571
30824
  }
30572
- ) : /* @__PURE__ */ jsx50("span", { className: AgentGUINode_styles_default.emptyHeroProvider, children: providerName }),
30825
+ ) : /* @__PURE__ */ jsx51("span", { className: AgentGUINode_styles_default.emptyHeroProvider, children: providerName }),
30573
30826
  label.slice(providerEnd)
30574
30827
  ] });
30575
30828
  }
@@ -30577,11 +30830,11 @@ function EmptyHeroTitle({
30577
30830
  // agent-gui/agentGuiNode/view/AgentGUIProviderManagerDialog.tsx
30578
30831
  import {
30579
30832
  useRef as useRef43,
30580
- useState as useState30
30833
+ useState as useState31
30581
30834
  } from "react";
30582
30835
  import { CircleMinus, CirclePlus } from "lucide-react";
30583
30836
  import {
30584
- Button as Button8,
30837
+ Button as Button9,
30585
30838
  Dialog as Dialog2,
30586
30839
  DialogContent as DialogContent2,
30587
30840
  DialogDescription as DialogDescription2,
@@ -30589,7 +30842,7 @@ import {
30589
30842
  DialogTitle as DialogTitle2,
30590
30843
  toast as toast3
30591
30844
  } from "@tutti-os/ui-system";
30592
- import { jsx as jsx51, jsxs as jsxs38 } from "react/jsx-runtime";
30845
+ import { jsx as jsx52, jsxs as jsxs39 } from "react/jsx-runtime";
30593
30846
  var AGENT_MANAGER_LONG_PRESS_MOVE_TOLERANCE_PX = 8;
30594
30847
  var AGENT_MANAGER_DROP_HYSTERESIS_PX = 8;
30595
30848
  function AgentGUIProviderManagerDialog({
@@ -30610,17 +30863,17 @@ function AgentGUIProviderManagerDialog({
30610
30863
  const disabledTargets = targets.filter(
30611
30864
  (target) => hidden.has(target.targetId)
30612
30865
  );
30613
- const [editing, setEditing] = useState30(false);
30614
- const [dragState, setDragState] = useState30(
30866
+ const [editing, setEditing] = useState31(false);
30867
+ const [dragState, setDragState] = useState31(
30615
30868
  null
30616
30869
  );
30617
- const [dragOverZone, setDragOverZone] = useState30(
30870
+ const [dragOverZone, setDragOverZone] = useState31(
30618
30871
  null
30619
30872
  );
30620
- const [dragPreview, setDragPreview] = useState30(null);
30873
+ const [dragPreview, setDragPreview] = useState31(null);
30621
30874
  const dragStateRef = useRef43(null);
30622
30875
  const dragPreviewRef = useRef43(null);
30623
- const [longPressTargetId, setLongPressTargetId] = useState30(
30876
+ const [longPressTargetId, setLongPressTargetId] = useState31(
30624
30877
  null
30625
30878
  );
30626
30879
  const longPressOriginRef = useRef43(null);
@@ -30812,7 +31065,7 @@ function AgentGUIProviderManagerDialog({
30812
31065
  };
30813
31066
  const disabledDropBlocked = dragState?.source === "available" && (finalAvailableAgent || running.has(dragState.targetId));
30814
31067
  const disabledDropBlockedByRunning = dragState?.source === "available" && running.has(dragState.targetId);
30815
- return /* @__PURE__ */ jsx51(Dialog2, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsxs38(
31068
+ return /* @__PURE__ */ jsx52(Dialog2, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsxs39(
30816
31069
  DialogContent2,
30817
31070
  {
30818
31071
  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]",
@@ -30827,17 +31080,17 @@ function AgentGUIProviderManagerDialog({
30827
31080
  setEditing(false);
30828
31081
  },
30829
31082
  children: [
30830
- /* @__PURE__ */ jsxs38(DialogHeader2, { className: "shrink-0 border-b border-[var(--border-1)] px-5 py-4", children: [
30831
- /* @__PURE__ */ jsx51(DialogTitle2, { children: labels.manageAgentsTitle }),
30832
- /* @__PURE__ */ jsx51(DialogDescription2, { children: labels.manageAgentsDescription })
31083
+ /* @__PURE__ */ jsxs39(DialogHeader2, { className: "shrink-0 border-b border-[var(--border-1)] px-5 py-4", children: [
31084
+ /* @__PURE__ */ jsx52(DialogTitle2, { children: labels.manageAgentsTitle }),
31085
+ /* @__PURE__ */ jsx52(DialogDescription2, { children: labels.manageAgentsDescription })
30833
31086
  ] }),
30834
- /* @__PURE__ */ jsxs38(
31087
+ /* @__PURE__ */ jsxs39(
30835
31088
  "div",
30836
31089
  {
30837
31090
  className: "min-h-0 flex-1 overflow-y-auto px-5 py-4",
30838
31091
  onClick: exitEditingFromBlankSpace,
30839
31092
  children: [
30840
- /* @__PURE__ */ jsxs38(
31093
+ /* @__PURE__ */ jsxs39(
30841
31094
  "section",
30842
31095
  {
30843
31096
  "aria-labelledby": "agent-manager-available-heading",
@@ -30847,7 +31100,7 @@ function AgentGUIProviderManagerDialog({
30847
31100
  onDragOver: (event) => dragOverDropZone(event, "available"),
30848
31101
  onDrop: (event) => dropIntoZone(event, "available"),
30849
31102
  children: [
30850
- /* @__PURE__ */ jsx51(
31103
+ /* @__PURE__ */ jsx52(
30851
31104
  "h3",
30852
31105
  {
30853
31106
  className: "mb-3 text-[12px] font-medium text-[var(--text-secondary)]",
@@ -30855,7 +31108,7 @@ function AgentGUIProviderManagerDialog({
30855
31108
  children: labels.manageAgentsAvailable
30856
31109
  }
30857
31110
  ),
30858
- availableTargets.length > 0 ? /* @__PURE__ */ jsx51(
31111
+ availableTargets.length > 0 ? /* @__PURE__ */ jsx52(
30859
31112
  "div",
30860
31113
  {
30861
31114
  "aria-label": labels.manageAgentsAvailable,
@@ -30866,7 +31119,7 @@ function AgentGUIProviderManagerDialog({
30866
31119
  children: availableTargets.map((target) => {
30867
31120
  const label = target.label.trim() || target.provider;
30868
31121
  const targetRunning = running.has(target.targetId);
30869
- return /* @__PURE__ */ jsxs38(
31122
+ return /* @__PURE__ */ jsxs39(
30870
31123
  "div",
30871
31124
  {
30872
31125
  "aria-label": labels.dragAgentToReorder(label),
@@ -30903,7 +31156,7 @@ function AgentGUIProviderManagerDialog({
30903
31156
  role: "listitem",
30904
31157
  tabIndex: 0,
30905
31158
  children: [
30906
- dragPreview?.overTargetId === target.targetId ? /* @__PURE__ */ jsx51(
31159
+ dragPreview?.overTargetId === target.targetId ? /* @__PURE__ */ jsx52(
30907
31160
  "span",
30908
31161
  {
30909
31162
  "aria-hidden": "true",
@@ -30912,8 +31165,8 @@ function AgentGUIProviderManagerDialog({
30912
31165
  "data-testid": "agent-gui-provider-manager-drop-indicator"
30913
31166
  }
30914
31167
  ) : null,
30915
- editing ? /* @__PURE__ */ jsx51(
30916
- Button8,
31168
+ editing ? /* @__PURE__ */ jsx52(
31169
+ Button9,
30917
31170
  {
30918
31171
  "aria-label": labels.removeAgentFromSidebar(label),
30919
31172
  className: "absolute right-0.5 top-0 z-10 size-5 rounded-full bg-[var(--background-panel)] p-0 text-[var(--state-danger)] shadow-sm hover:bg-[var(--transparency-hover)] hover:text-[var(--state-danger-hover)]",
@@ -30930,10 +31183,10 @@ function AgentGUIProviderManagerDialog({
30930
31183
  title: targetRunning ? labels.manageAgentsRunningBlocked(label) : finalAvailableAgent ? labels.manageAgentsKeepOneAvailable : void 0,
30931
31184
  type: "button",
30932
31185
  variant: "ghost",
30933
- children: /* @__PURE__ */ jsx51(CircleMinus, { "aria-hidden": "true", className: "size-4" })
31186
+ children: /* @__PURE__ */ jsx52(CircleMinus, { "aria-hidden": "true", className: "size-4" })
30934
31187
  }
30935
31188
  ) : null,
30936
- /* @__PURE__ */ jsx51(
31189
+ /* @__PURE__ */ jsx52(
30937
31190
  AgentGUIProviderIconVisual,
30938
31191
  {
30939
31192
  ariaHidden: true,
@@ -30944,18 +31197,18 @@ function AgentGUIProviderManagerDialog({
30944
31197
  imageClassName: "size-9 shrink-0 rounded-[9px] object-cover"
30945
31198
  }
30946
31199
  ),
30947
- /* @__PURE__ */ jsx51("span", { className: "mt-2 block w-full truncate text-center text-[12px] font-medium text-[var(--text-primary)]", children: label })
31200
+ /* @__PURE__ */ jsx52("span", { className: "mt-2 block w-full truncate text-center text-[12px] font-medium text-[var(--text-primary)]", children: label })
30948
31201
  ]
30949
31202
  },
30950
31203
  target.targetId
30951
31204
  );
30952
31205
  })
30953
31206
  }
30954
- ) : /* @__PURE__ */ jsx51("p", { className: "rounded-[8px] bg-[var(--transparency-block)] px-3 py-4 text-center text-[12px] text-[var(--text-tertiary)]", children: labels.manageAgentsNoAvailable })
31207
+ ) : /* @__PURE__ */ jsx52("p", { className: "rounded-[8px] bg-[var(--transparency-block)] px-3 py-4 text-center text-[12px] text-[var(--text-tertiary)]", children: labels.manageAgentsNoAvailable })
30955
31208
  ]
30956
31209
  }
30957
31210
  ),
30958
- /* @__PURE__ */ jsxs38(
31211
+ /* @__PURE__ */ jsxs39(
30959
31212
  "section",
30960
31213
  {
30961
31214
  "aria-labelledby": "agent-manager-disabled-heading",
@@ -30971,7 +31224,7 @@ function AgentGUIProviderManagerDialog({
30971
31224
  )?.label ?? ""
30972
31225
  ) : labels.manageAgentsKeepOneAvailable : void 0,
30973
31226
  children: [
30974
- /* @__PURE__ */ jsx51(
31227
+ /* @__PURE__ */ jsx52(
30975
31228
  "h3",
30976
31229
  {
30977
31230
  className: "mb-3 text-[12px] font-medium text-[var(--text-secondary)]",
@@ -30979,7 +31232,7 @@ function AgentGUIProviderManagerDialog({
30979
31232
  children: labels.manageAgentsDisabled
30980
31233
  }
30981
31234
  ),
30982
- disabledTargets.length > 0 ? /* @__PURE__ */ jsx51(
31235
+ disabledTargets.length > 0 ? /* @__PURE__ */ jsx52(
30983
31236
  "div",
30984
31237
  {
30985
31238
  "aria-label": labels.manageAgentsDisabled,
@@ -30989,7 +31242,7 @@ function AgentGUIProviderManagerDialog({
30989
31242
  role: "list",
30990
31243
  children: disabledTargets.map((target) => {
30991
31244
  const label = target.label.trim() || target.provider;
30992
- return /* @__PURE__ */ jsxs38(
31245
+ return /* @__PURE__ */ jsxs39(
30993
31246
  "div",
30994
31247
  {
30995
31248
  "aria-label": labels.dragAgentToReorder(label),
@@ -31025,7 +31278,7 @@ function AgentGUIProviderManagerDialog({
31025
31278
  role: "listitem",
31026
31279
  tabIndex: 0,
31027
31280
  children: [
31028
- dragPreview?.overTargetId === target.targetId ? /* @__PURE__ */ jsx51(
31281
+ dragPreview?.overTargetId === target.targetId ? /* @__PURE__ */ jsx52(
31029
31282
  "span",
31030
31283
  {
31031
31284
  "aria-hidden": "true",
@@ -31034,8 +31287,8 @@ function AgentGUIProviderManagerDialog({
31034
31287
  "data-testid": "agent-gui-provider-manager-drop-indicator"
31035
31288
  }
31036
31289
  ) : null,
31037
- editing ? /* @__PURE__ */ jsx51(
31038
- Button8,
31290
+ editing ? /* @__PURE__ */ jsx52(
31291
+ Button9,
31039
31292
  {
31040
31293
  "aria-label": labels.addAgentToSidebar(label),
31041
31294
  className: "absolute right-0.5 top-0 z-10 size-5 rounded-full bg-[var(--background-panel)] p-0 text-[var(--state-success)] shadow-sm hover:bg-[var(--transparency-hover)] hover:text-[var(--state-success)]",
@@ -31046,10 +31299,10 @@ function AgentGUIProviderManagerDialog({
31046
31299
  size: "icon-xs",
31047
31300
  type: "button",
31048
31301
  variant: "ghost",
31049
- children: /* @__PURE__ */ jsx51(CirclePlus, { "aria-hidden": "true", className: "size-4" })
31302
+ children: /* @__PURE__ */ jsx52(CirclePlus, { "aria-hidden": "true", className: "size-4" })
31050
31303
  }
31051
31304
  ) : null,
31052
- /* @__PURE__ */ jsx51(
31305
+ /* @__PURE__ */ jsx52(
31053
31306
  AgentGUIProviderIconVisual,
31054
31307
  {
31055
31308
  ariaHidden: true,
@@ -31060,14 +31313,14 @@ function AgentGUIProviderManagerDialog({
31060
31313
  imageClassName: "size-9 shrink-0 rounded-[9px] object-cover opacity-70 grayscale-[0.25]"
31061
31314
  }
31062
31315
  ),
31063
- /* @__PURE__ */ jsx51("span", { className: "mt-2 block w-full truncate text-center text-[12px] font-medium text-[var(--text-secondary)]", children: label })
31316
+ /* @__PURE__ */ jsx52("span", { className: "mt-2 block w-full truncate text-center text-[12px] font-medium text-[var(--text-secondary)]", children: label })
31064
31317
  ]
31065
31318
  },
31066
31319
  target.targetId
31067
31320
  );
31068
31321
  })
31069
31322
  }
31070
- ) : /* @__PURE__ */ jsx51("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 })
31323
+ ) : /* @__PURE__ */ jsx52("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 })
31071
31324
  ]
31072
31325
  }
31073
31326
  )
@@ -31080,7 +31333,7 @@ function AgentGUIProviderManagerDialog({
31080
31333
  }
31081
31334
 
31082
31335
  // agent-gui/agentGuiNode/view/useAgentGUIProviderRailPreferences.ts
31083
- import { useCallback as useCallback49, useEffect as useEffect29, useState as useState31 } from "react";
31336
+ import { useCallback as useCallback49, useEffect as useEffect29, useState as useState32 } from "react";
31084
31337
  function readAgentGUIProviderRailPreferences(storageKey) {
31085
31338
  return parseAgentGUIProviderRailPreferences(
31086
31339
  globalThis.localStorage?.getItem(storageKey)
@@ -31088,7 +31341,7 @@ function readAgentGUIProviderRailPreferences(storageKey) {
31088
31341
  }
31089
31342
  function useAgentGUIProviderRailPreferences() {
31090
31343
  const storageKey = agentGUIProviderRailOrderStorageKey();
31091
- const [preferences, setPreferences] = useState31(
31344
+ const [preferences, setPreferences] = useState32(
31092
31345
  () => readAgentGUIProviderRailPreferences(storageKey)
31093
31346
  );
31094
31347
  useEffect29(() => {
@@ -31130,7 +31383,7 @@ function useAgentGUIProviderRailPreferences() {
31130
31383
  }
31131
31384
 
31132
31385
  // agent-gui/agentGuiNode/view/AgentGUIProviderRail.tsx
31133
- import { jsx as jsx52, jsxs as jsxs39 } from "react/jsx-runtime";
31386
+ import { jsx as jsx53, jsxs as jsxs40 } from "react/jsx-runtime";
31134
31387
  var agentGUIProviderRailCatalog = [
31135
31388
  ...migratedAgentGUIProviderIdentityCatalog
31136
31389
  ].sort((left, right) => left.target.sortOrder - right.target.sortOrder);
@@ -31221,7 +31474,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
31221
31474
  persistPreferences: persistProviderRailPreferences,
31222
31475
  preferences: providerRailPreferences
31223
31476
  } = useAgentGUIProviderRailPreferences();
31224
- const [dragState, setDragState] = useState32(null);
31477
+ const [dragState, setDragState] = useState33(null);
31225
31478
  const dragStateRef = useRef44(null);
31226
31479
  const setProviderRailDragState = useCallback50(
31227
31480
  (nextDragState) => {
@@ -31529,7 +31782,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
31529
31782
  },
31530
31783
  [dragState, previewMode, agentTargetsLoading, setProviderRailDragState]
31531
31784
  );
31532
- const providerManagerDialog = /* @__PURE__ */ jsx52(
31785
+ const providerManagerDialog = /* @__PURE__ */ jsx53(
31533
31786
  AgentGUIProviderManagerDialog,
31534
31787
  {
31535
31788
  hiddenTargetIds: effectiveHiddenTargetIds,
@@ -31543,7 +31796,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
31543
31796
  }
31544
31797
  );
31545
31798
  if (providerRailMode === "exact" && !agentTargetsLoading && visibleProviderTiles.length === 0 && renderProviderRailEmpty) {
31546
- return /* @__PURE__ */ jsxs39(
31799
+ return /* @__PURE__ */ jsxs40(
31547
31800
  "div",
31548
31801
  {
31549
31802
  className: AgentGUINode_styles_default.providerRail,
@@ -31558,8 +31811,8 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
31558
31811
  }
31559
31812
  );
31560
31813
  }
31561
- return /* @__PURE__ */ jsxs39("div", { className: AgentGUINode_styles_default.providerRail, children: [
31562
- /* @__PURE__ */ jsxs39(
31814
+ return /* @__PURE__ */ jsxs40("div", { className: AgentGUINode_styles_default.providerRail, children: [
31815
+ /* @__PURE__ */ jsxs40(
31563
31816
  "div",
31564
31817
  {
31565
31818
  className: "flex min-h-0 w-full flex-col items-center",
@@ -31569,7 +31822,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
31569
31822
  onDragOver: handleProviderRailContainerDragOver,
31570
31823
  onDrop: commitProviderRailDragDrop,
31571
31824
  children: [
31572
- /* @__PURE__ */ jsxs39(
31825
+ /* @__PURE__ */ jsxs40(
31573
31826
  "button",
31574
31827
  {
31575
31828
  type: "button",
@@ -31581,18 +31834,18 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
31581
31834
  disabled: previewMode,
31582
31835
  onClick: selectAllProviders,
31583
31836
  children: [
31584
- /* @__PURE__ */ jsx52(
31837
+ /* @__PURE__ */ jsx53(
31585
31838
  AgentGUIUnifiedProviderIcon,
31586
31839
  {
31587
31840
  presentation: providerRailAllPresentation
31588
31841
  }
31589
31842
  ),
31590
- /* @__PURE__ */ jsx52("span", { className: AgentGUINode_styles_default.providerRailTileLabel, children: labels.conversationFilterAll })
31843
+ /* @__PURE__ */ jsx53("span", { className: AgentGUINode_styles_default.providerRailTileLabel, children: labels.conversationFilterAll })
31591
31844
  ]
31592
31845
  }
31593
31846
  ),
31594
- /* @__PURE__ */ jsx52("span", { "aria-hidden": "true", className: AgentGUINode_styles_default.providerRailSeparator }),
31595
- agentTargetsLoading ? [0, 1, 2].map((index) => /* @__PURE__ */ jsx52(
31847
+ /* @__PURE__ */ jsx53("span", { "aria-hidden": "true", className: AgentGUINode_styles_default.providerRailSeparator }),
31848
+ agentTargetsLoading ? [0, 1, 2].map((index) => /* @__PURE__ */ jsx53(
31596
31849
  "button",
31597
31850
  {
31598
31851
  type: "button",
@@ -31602,7 +31855,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
31602
31855
  "data-loading": "true",
31603
31856
  "data-selected": "false",
31604
31857
  disabled: true,
31605
- children: /* @__PURE__ */ jsx52(
31858
+ children: /* @__PURE__ */ jsx53(
31606
31859
  "span",
31607
31860
  {
31608
31861
  "aria-hidden": "true",
@@ -31625,7 +31878,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
31625
31878
  label,
31626
31879
  target.badge?.label
31627
31880
  );
31628
- const tile = /* @__PURE__ */ jsx52(
31881
+ const tile = /* @__PURE__ */ jsx53(
31629
31882
  "button",
31630
31883
  {
31631
31884
  type: "button",
@@ -31645,8 +31898,8 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
31645
31898
  onDragEnd: clearProviderRailDragState,
31646
31899
  onDragOver: (event) => handleProviderRailDragOver(event, target),
31647
31900
  onDragStart: (event) => handleProviderRailDragStart(event, target),
31648
- children: /* @__PURE__ */ jsxs39("span", { className: AgentGUINode_styles_default.providerRailAvatar, children: [
31649
- /* @__PURE__ */ jsx52(
31901
+ children: /* @__PURE__ */ jsxs40("span", { className: AgentGUINode_styles_default.providerRailAvatar, children: [
31902
+ /* @__PURE__ */ jsx53(
31650
31903
  AgentGUIProviderIconVisual,
31651
31904
  {
31652
31905
  ariaHidden: true,
@@ -31657,7 +31910,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
31657
31910
  )
31658
31911
  }
31659
31912
  ),
31660
- target.badge?.iconUrl ? /* @__PURE__ */ jsx52("span", { "aria-hidden": "true", className: AgentGUINode_styles_default.agentAvatarBadge, children: /* @__PURE__ */ jsx52(
31913
+ target.badge?.iconUrl ? /* @__PURE__ */ jsx53("span", { "aria-hidden": "true", className: AgentGUINode_styles_default.agentAvatarBadge, children: /* @__PURE__ */ jsx53(
31661
31914
  "img",
31662
31915
  {
31663
31916
  alt: "",
@@ -31666,7 +31919,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
31666
31919
  src: target.badge.iconUrl
31667
31920
  }
31668
31921
  ) }) : null,
31669
- providerSelected && isBetaAgentProvider(target.provider) ? /* @__PURE__ */ jsx52(
31922
+ providerSelected && isBetaAgentProvider(target.provider) ? /* @__PURE__ */ jsx53(
31670
31923
  "img",
31671
31924
  {
31672
31925
  "aria-hidden": "true",
@@ -31682,9 +31935,9 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
31682
31935
  if (previewMode) {
31683
31936
  return tile;
31684
31937
  }
31685
- return /* @__PURE__ */ jsxs39(Tooltip9, { children: [
31686
- /* @__PURE__ */ jsx52(TooltipTrigger9, { asChild: true, children: tile }),
31687
- /* @__PURE__ */ jsx52(TooltipContent9, { side: "right", sideOffset: -4, children: label })
31938
+ return /* @__PURE__ */ jsxs40(Tooltip9, { children: [
31939
+ /* @__PURE__ */ jsx53(TooltipTrigger9, { asChild: true, children: tile }),
31940
+ /* @__PURE__ */ jsx53(TooltipContent9, { side: "right", sideOffset: -4, children: label })
31688
31941
  ] }, `${target.provider}:${target.targetId}:tooltip`);
31689
31942
  })
31690
31943
  ]
@@ -31695,10 +31948,10 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
31695
31948
  });
31696
31949
 
31697
31950
  // agent-gui/agentGuiNode/controller/AgentGUIConversationRailController.tsx
31698
- import { memo as memo9, useState as useState38 } from "react";
31951
+ import { memo as memo9, useState as useState39 } from "react";
31699
31952
 
31700
31953
  // agent-gui/agentGuiNode/view/AgentGUIConversationRailPane.tsx
31701
- import { Fragment as Fragment21, memo as memo8, useEffect as useEffect30, useMemo as useMemo40, useRef as useRef47, useState as useState37 } from "react";
31954
+ import { Fragment as Fragment21, memo as memo8, useEffect as useEffect30, useMemo as useMemo40, useRef as useRef47, useState as useState38 } from "react";
31702
31955
  import { Button as SystemButton } from "@tutti-os/ui-system";
31703
31956
  import { ScrollArea as ScrollArea2 } from "@tutti-os/ui-system/components";
31704
31957
  import { CreateChatIcon as CreateChatIcon2 } from "@tutti-os/ui-system/icons";
@@ -31716,7 +31969,7 @@ var styles3 = {
31716
31969
  var RoomIssueNode_styles_default = styles3;
31717
31970
 
31718
31971
  // agent-gui/RoomIssueNode/TaskSearchField.tsx
31719
- import { jsx as jsx53, jsxs as jsxs40 } from "react/jsx-runtime";
31972
+ import { jsx as jsx54, jsxs as jsxs41 } from "react/jsx-runtime";
31720
31973
  function TaskSearchField({
31721
31974
  ariaLabel,
31722
31975
  className,
@@ -31730,13 +31983,13 @@ function TaskSearchField({
31730
31983
  "use memo";
31731
31984
  const { t } = useTranslation();
31732
31985
  const searchInput = useComposedInputValue({ onCommit: onChange, value });
31733
- return /* @__PURE__ */ jsxs40(
31986
+ return /* @__PURE__ */ jsxs41(
31734
31987
  "div",
31735
31988
  {
31736
31989
  className: `${RoomIssueNode_styles_default.searchField} ${className ?? ""}`.trim(),
31737
31990
  "data-has-value": searchInput.value ? "true" : "false",
31738
31991
  children: [
31739
- /* @__PURE__ */ jsx53(
31992
+ /* @__PURE__ */ jsx54(
31740
31993
  Input3,
31741
31994
  {
31742
31995
  type: "search",
@@ -31759,7 +32012,7 @@ function TaskSearchField({
31759
32012
  "data-testid": dataTestId
31760
32013
  }
31761
32014
  ),
31762
- searchInput.value ? /* @__PURE__ */ jsx53(
32015
+ searchInput.value ? /* @__PURE__ */ jsx54(
31763
32016
  "button",
31764
32017
  {
31765
32018
  type: "button",
@@ -31767,7 +32020,7 @@ function TaskSearchField({
31767
32020
  "aria-label": clearAriaLabel ?? t("common.clear"),
31768
32021
  onMouseDown: (event) => event.preventDefault(),
31769
32022
  onClick: searchInput.clearValue,
31770
- children: /* @__PURE__ */ jsx53(CloseLinedIcon, { "aria-hidden": "true" })
32023
+ children: /* @__PURE__ */ jsx54(CloseLinedIcon, { "aria-hidden": "true" })
31771
32024
  }
31772
32025
  ) : null
31773
32026
  ]
@@ -31785,7 +32038,7 @@ function isTaskSearchImeComposing(event) {
31785
32038
  }
31786
32039
 
31787
32040
  // agent-gui/agentGuiNode/AgentConversationListSkeleton.tsx
31788
- import { jsx as jsx54, jsxs as jsxs41 } from "react/jsx-runtime";
32041
+ import { jsx as jsx55, jsxs as jsxs42 } from "react/jsx-runtime";
31789
32042
  var SKELETON_ROWS = [
31790
32043
  { id: "first", size: "long" },
31791
32044
  { id: "second", size: "medium" },
@@ -31797,23 +32050,23 @@ function AgentConversationListSkeleton({
31797
32050
  label
31798
32051
  }) {
31799
32052
  "use memo";
31800
- return /* @__PURE__ */ jsx54(
32053
+ return /* @__PURE__ */ jsx55(
31801
32054
  "div",
31802
32055
  {
31803
32056
  className: "agent-gui-node__conversation-list-skeleton",
31804
32057
  role: "status",
31805
32058
  "aria-label": label,
31806
32059
  "data-testid": "agent-gui-conversation-list-loading-skeleton",
31807
- children: SKELETON_ROWS.map((row) => /* @__PURE__ */ jsxs41(
32060
+ children: SKELETON_ROWS.map((row) => /* @__PURE__ */ jsxs42(
31808
32061
  "div",
31809
32062
  {
31810
32063
  className: "agent-gui-node__conversation-list-skeleton-row",
31811
32064
  "data-size": row.size,
31812
32065
  "aria-hidden": "true",
31813
32066
  children: [
31814
- /* @__PURE__ */ jsx54("span", { className: "agent-gui-node__conversation-list-skeleton-spine" }),
31815
- /* @__PURE__ */ jsx54("span", { className: "agent-gui-node__conversation-list-skeleton-rib agent-gui-node__conversation-list-skeleton-rib-primary" }),
31816
- /* @__PURE__ */ jsx54("span", { className: "agent-gui-node__conversation-list-skeleton-rib agent-gui-node__conversation-list-skeleton-rib-secondary" })
32067
+ /* @__PURE__ */ jsx55("span", { className: "agent-gui-node__conversation-list-skeleton-spine" }),
32068
+ /* @__PURE__ */ jsx55("span", { className: "agent-gui-node__conversation-list-skeleton-rib agent-gui-node__conversation-list-skeleton-rib-primary" }),
32069
+ /* @__PURE__ */ jsx55("span", { className: "agent-gui-node__conversation-list-skeleton-rib agent-gui-node__conversation-list-skeleton-rib-secondary" })
31817
32070
  ]
31818
32071
  },
31819
32072
  row.id
@@ -32441,7 +32694,7 @@ function reduceAgentGUIConversationRailViewState(state, action) {
32441
32694
  }
32442
32695
 
32443
32696
  // agent-gui/agentGuiNode/controller/useAgentGUIProjectDrag.ts
32444
- import { useCallback as useCallback51, useState as useState33 } from "react";
32697
+ import { useCallback as useCallback51, useState as useState34 } from "react";
32445
32698
  var PROJECT_DRAG_SCROLL_EDGE_PX = 40;
32446
32699
  function projectDragAutoScrollDelta(clientY, bounds) {
32447
32700
  if (clientY < bounds.top + PROJECT_DRAG_SCROLL_EDGE_PX) {
@@ -32459,9 +32712,9 @@ function projectDragAutoScrollDelta(clientY, bounds) {
32459
32712
  return 0;
32460
32713
  }
32461
32714
  function useAgentGUIProjectDrag(input) {
32462
- const [dragState, setDragState] = useState33(null);
32463
- const [isMovePending, setIsMovePending] = useState33(false);
32464
- const [runtime] = useState33(() => ({
32715
+ const [dragState, setDragState] = useState34(null);
32716
+ const [isMovePending, setIsMovePending] = useState34(false);
32717
+ const [runtime] = useState34(() => ({
32465
32718
  active: false,
32466
32719
  clientY: null,
32467
32720
  dragState: null,
@@ -32651,10 +32904,10 @@ import { WorkspaceUserProjectSelect as WorkspaceUserProjectSelect2 } from "@tutt
32651
32904
  import { BareIconButton as BareIconButton3 } from "@tutti-os/ui-system/components";
32652
32905
 
32653
32906
  // app/renderer/components/icons/PinFilledIcon.tsx
32654
- import { jsx as jsx55 } from "react/jsx-runtime";
32907
+ import { jsx as jsx56 } from "react/jsx-runtime";
32655
32908
  function PinFilledIcon(props) {
32656
32909
  "use memo";
32657
- return /* @__PURE__ */ jsx55(
32910
+ return /* @__PURE__ */ jsx56(
32658
32911
  "svg",
32659
32912
  {
32660
32913
  xmlns: "http://www.w3.org/2000/svg",
@@ -32662,16 +32915,16 @@ function PinFilledIcon(props) {
32662
32915
  fill: "currentColor",
32663
32916
  "aria-hidden": true,
32664
32917
  ...props,
32665
- children: /* @__PURE__ */ jsx55("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" })
32918
+ children: /* @__PURE__ */ jsx56("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" })
32666
32919
  }
32667
32920
  );
32668
32921
  }
32669
32922
 
32670
32923
  // app/renderer/components/icons/PinLinedIcon.tsx
32671
- import { jsx as jsx56 } from "react/jsx-runtime";
32924
+ import { jsx as jsx57 } from "react/jsx-runtime";
32672
32925
  function PinLinedIcon(props) {
32673
32926
  "use memo";
32674
- return /* @__PURE__ */ jsx56(
32927
+ return /* @__PURE__ */ jsx57(
32675
32928
  "svg",
32676
32929
  {
32677
32930
  xmlns: "http://www.w3.org/2000/svg",
@@ -32679,7 +32932,7 @@ function PinLinedIcon(props) {
32679
32932
  fill: "currentColor",
32680
32933
  "aria-hidden": true,
32681
32934
  ...props,
32682
- children: /* @__PURE__ */ jsx56("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" })
32935
+ children: /* @__PURE__ */ jsx57("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" })
32683
32936
  }
32684
32937
  );
32685
32938
  }
@@ -32690,7 +32943,7 @@ import { useExternalStoreSnapshot as useExternalStoreSnapshot2 } from "@tutti-os
32690
32943
  // agent-gui/agentGuiNode/agentGuiNodeViewConversation.tsx
32691
32944
  import { Spinner as Spinner7 } from "@tutti-os/ui-system";
32692
32945
  import { AskLinedIcon } from "@tutti-os/ui-system/icons";
32693
- import { jsx as jsx57 } from "react/jsx-runtime";
32946
+ import { jsx as jsx58 } from "react/jsx-runtime";
32694
32947
  function ConversationMeta({
32695
32948
  item,
32696
32949
  nowMs,
@@ -32699,24 +32952,24 @@ function ConversationMeta({
32699
32952
  "use memo";
32700
32953
  const kind = conversationMetaKind(item);
32701
32954
  if (kind === "loading") {
32702
- return /* @__PURE__ */ jsx57(
32955
+ return /* @__PURE__ */ jsx58(
32703
32956
  "span",
32704
32957
  {
32705
32958
  className: AgentGUINode_styles_default.conversationMeta,
32706
32959
  "data-kind": kind,
32707
32960
  "data-testid": `agent-gui-conversation-meta-${item.id}`,
32708
- children: /* @__PURE__ */ jsx57(LoadingGlyph, {})
32961
+ children: /* @__PURE__ */ jsx58(LoadingGlyph, {})
32709
32962
  }
32710
32963
  );
32711
32964
  }
32712
32965
  if (kind === "waiting") {
32713
- return /* @__PURE__ */ jsx57(
32966
+ return /* @__PURE__ */ jsx58(
32714
32967
  "span",
32715
32968
  {
32716
32969
  className: AgentGUINode_styles_default.conversationMeta,
32717
32970
  "data-kind": kind,
32718
32971
  "data-testid": `agent-gui-conversation-meta-${item.id}`,
32719
- children: /* @__PURE__ */ jsx57(
32972
+ children: /* @__PURE__ */ jsx58(
32720
32973
  AskLinedIcon,
32721
32974
  {
32722
32975
  "aria-hidden": "true",
@@ -32727,34 +32980,34 @@ function ConversationMeta({
32727
32980
  );
32728
32981
  }
32729
32982
  if (kind === "failed") {
32730
- return /* @__PURE__ */ jsx57(
32983
+ return /* @__PURE__ */ jsx58(
32731
32984
  "span",
32732
32985
  {
32733
32986
  className: AgentGUINode_styles_default.conversationMeta,
32734
32987
  "data-kind": kind,
32735
32988
  "data-testid": `agent-gui-conversation-meta-${item.id}`,
32736
- children: /* @__PURE__ */ jsx57(AttentionGlyph, {})
32989
+ children: /* @__PURE__ */ jsx58(AttentionGlyph, {})
32737
32990
  }
32738
32991
  );
32739
32992
  }
32740
32993
  if (kind === "unread-complete") {
32741
- return /* @__PURE__ */ jsx57(
32994
+ return /* @__PURE__ */ jsx58(
32742
32995
  "span",
32743
32996
  {
32744
32997
  className: AgentGUINode_styles_default.conversationMeta,
32745
32998
  "data-kind": kind,
32746
32999
  "data-testid": `agent-gui-conversation-meta-${item.id}`,
32747
- children: /* @__PURE__ */ jsx57("span", { className: AgentGUINode_styles_default.conversationUnreadLamp, "aria-hidden": "true" })
33000
+ children: /* @__PURE__ */ jsx58("span", { className: AgentGUINode_styles_default.conversationUnreadLamp, "aria-hidden": "true" })
32748
33001
  }
32749
33002
  );
32750
33003
  }
32751
- return /* @__PURE__ */ jsx57(
33004
+ return /* @__PURE__ */ jsx58(
32752
33005
  "span",
32753
33006
  {
32754
33007
  className: AgentGUINode_styles_default.conversationMeta,
32755
33008
  "data-kind": kind,
32756
33009
  "data-testid": `agent-gui-conversation-meta-${item.id}`,
32757
- children: /* @__PURE__ */ jsx57("span", { className: AgentGUINode_styles_default.conversationTime, children: formatConversationRelativeTime(
33010
+ children: /* @__PURE__ */ jsx58("span", { className: AgentGUINode_styles_default.conversationTime, children: formatConversationRelativeTime(
32758
33011
  resolveAgentGUIConversationSortTimeUnixMs(item),
32759
33012
  nowMs,
32760
33013
  labels
@@ -32802,7 +33055,7 @@ function formatConversationRelativeTime(updatedAtUnixMs, nowMs, labels) {
32802
33055
  }
32803
33056
  function LoadingGlyph() {
32804
33057
  "use memo";
32805
- return /* @__PURE__ */ jsx57(
33058
+ return /* @__PURE__ */ jsx58(
32806
33059
  Spinner7,
32807
33060
  {
32808
33061
  className: AgentGUINode_styles_default.conversationStatusGlyph,
@@ -32816,14 +33069,14 @@ function LoadingGlyph() {
32816
33069
  }
32817
33070
  function AttentionGlyph() {
32818
33071
  "use memo";
32819
- return /* @__PURE__ */ jsx57(
33072
+ return /* @__PURE__ */ jsx58(
32820
33073
  "svg",
32821
33074
  {
32822
33075
  viewBox: "0 0 24 24",
32823
33076
  fill: "none",
32824
33077
  "aria-hidden": "true",
32825
33078
  className: AgentGUINode_styles_default.conversationStatusGlyph,
32826
- children: /* @__PURE__ */ jsx57(
33079
+ children: /* @__PURE__ */ jsx58(
32827
33080
  "path",
32828
33081
  {
32829
33082
  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",
@@ -32835,7 +33088,7 @@ function AttentionGlyph() {
32835
33088
  }
32836
33089
 
32837
33090
  // agent-gui/agentGuiNode/view/AgentGUIConversationRailClock.tsx
32838
- import { jsx as jsx58 } from "react/jsx-runtime";
33091
+ import { jsx as jsx59 } from "react/jsx-runtime";
32839
33092
  var AgentGUIConversationRailClockStore = class {
32840
33093
  currentTimeMs = Date.now();
32841
33094
  listeners = /* @__PURE__ */ new Set();
@@ -32875,7 +33128,7 @@ function AgentGUIConversationRailRelativeTime({
32875
33128
  labels
32876
33129
  }) {
32877
33130
  const currentTimeMs = useExternalStoreSnapshot2(agentGUIConversationRailClock);
32878
- return /* @__PURE__ */ jsx58(ConversationMeta, { item, nowMs: currentTimeMs, labels });
33131
+ return /* @__PURE__ */ jsx59(ConversationMeta, { item, nowMs: currentTimeMs, labels });
32879
33132
  }
32880
33133
 
32881
33134
  // agent-gui/agentGuiNode/view/AgentGUIConversationActionsMenu.tsx
@@ -32884,7 +33137,7 @@ import {
32884
33137
  useCallback as useCallback52,
32885
33138
  useMemo as useMemo38,
32886
33139
  useRef as useRef45,
32887
- useState as useState34
33140
+ useState as useState35
32888
33141
  } from "react";
32889
33142
  import {
32890
33143
  AtSign,
@@ -32932,7 +33185,7 @@ function renderAgentConversationCopyHtml(markdown) {
32932
33185
  }
32933
33186
 
32934
33187
  // agent-gui/agentGuiNode/view/AgentGUIConversationActionsMenu.tsx
32935
- import { Fragment as Fragment19, jsx as jsx59, jsxs as jsxs42 } from "react/jsx-runtime";
33188
+ import { Fragment as Fragment19, jsx as jsx60, jsxs as jsxs43 } from "react/jsx-runtime";
32936
33189
  var menuContentClassName = "w-max min-w-44 nodrag [-webkit-app-region:no-drag]";
32937
33190
  async function writeTextAndHtmlWithWebClipboard(text, html) {
32938
33191
  if (typeof navigator === "undefined" || typeof navigator.clipboard?.write !== "function" || typeof ClipboardItem === "undefined") {
@@ -33094,7 +33347,7 @@ function useConversationActionGroups({
33094
33347
  const agentHostApi = useOptionalAgentHostApi();
33095
33348
  const agentActivityRuntime = useOptionalAgentActivityRuntime();
33096
33349
  const copyConversationValue = useAgentGUIConversationCopyAction(labels);
33097
- const [resetKey, setResetKey] = useState34(0);
33350
+ const [resetKey, setResetKey] = useState35(0);
33098
33351
  const pendingActionRef = useRef45(false);
33099
33352
  const run = useCallback52(
33100
33353
  (action) => {
@@ -33133,26 +33386,26 @@ function useConversationActionGroups({
33133
33386
  return [
33134
33387
  [
33135
33388
  {
33136
- icon: /* @__PURE__ */ jsx59(Pencil2, { "aria-hidden": "true" }),
33389
+ icon: /* @__PURE__ */ jsx60(Pencil2, { "aria-hidden": "true" }),
33137
33390
  id: "rename",
33138
33391
  label: labels.renameSession,
33139
33392
  onSelect: () => run(() => onRequestRenameConversation(conversation))
33140
33393
  },
33141
33394
  copyItem(
33142
33395
  "copy-markdown",
33143
- /* @__PURE__ */ jsx59(FileText2, { "aria-hidden": "true" }),
33396
+ /* @__PURE__ */ jsx60(FileText2, { "aria-hidden": "true" }),
33144
33397
  labels.copyAsMarkdown
33145
33398
  ),
33146
33399
  copyItem(
33147
33400
  "copy-reference",
33148
- /* @__PURE__ */ jsx59(AtSign, { "aria-hidden": "true" }),
33401
+ /* @__PURE__ */ jsx60(AtSign, { "aria-hidden": "true" }),
33149
33402
  labels.copyAsReference
33150
33403
  )
33151
33404
  ],
33152
33405
  [
33153
33406
  ...onOpenConversationWindow ? [
33154
33407
  {
33155
- icon: /* @__PURE__ */ jsx59(ExternalLink2, { "aria-hidden": "true" }),
33408
+ icon: /* @__PURE__ */ jsx60(ExternalLink2, { "aria-hidden": "true" }),
33156
33409
  id: "open-window",
33157
33410
  label: labels.openConversationWindow,
33158
33411
  onSelect: () => run(() => onOpenConversationWindow(conversation.id))
@@ -33160,7 +33413,7 @@ function useConversationActionGroups({
33160
33413
  ] : [],
33161
33414
  {
33162
33415
  disabled: !canMarkUnread,
33163
- icon: /* @__PURE__ */ jsx59(CircleDot, { "aria-hidden": "true" }),
33416
+ icon: /* @__PURE__ */ jsx60(CircleDot, { "aria-hidden": "true" }),
33164
33417
  id: "mark-unread",
33165
33418
  label: labels.markSessionUnread,
33166
33419
  onSelect: () => run(() => onMarkConversationUnread(conversation.id))
@@ -33188,9 +33441,9 @@ function AgentGUIConversationActionsDropdown({
33188
33441
  menu,
33189
33442
  moreSessionActionsLabel
33190
33443
  }) {
33191
- const [open, setOpen] = useState34(false);
33192
- return /* @__PURE__ */ jsxs42(DropdownMenu4, { onOpenChange: setOpen, children: [
33193
- /* @__PURE__ */ jsx59(DropdownMenuTrigger4, { asChild: true, children: /* @__PURE__ */ jsx59(
33444
+ const [open, setOpen] = useState35(false);
33445
+ return /* @__PURE__ */ jsxs43(DropdownMenu4, { onOpenChange: setOpen, children: [
33446
+ /* @__PURE__ */ jsx60(DropdownMenuTrigger4, { asChild: true, children: /* @__PURE__ */ jsx60(
33194
33447
  BareIconButton2,
33195
33448
  {
33196
33449
  className: buttonClassName,
@@ -33200,16 +33453,16 @@ function AgentGUIConversationActionsDropdown({
33200
33453
  onClick: (event) => event.stopPropagation(),
33201
33454
  onMouseDown: (event) => event.stopPropagation(),
33202
33455
  onPointerDown: (event) => event.stopPropagation(),
33203
- children: /* @__PURE__ */ jsx59(MoreHorizontal, { "aria-hidden": "true" })
33456
+ children: /* @__PURE__ */ jsx60(MoreHorizontal, { "aria-hidden": "true" })
33204
33457
  }
33205
33458
  ) }),
33206
- open ? /* @__PURE__ */ jsx59(
33459
+ open ? /* @__PURE__ */ jsx60(
33207
33460
  DropdownMenuContent4,
33208
33461
  {
33209
33462
  align: "end",
33210
33463
  className: menuContentClassName,
33211
33464
  sideOffset: 6,
33212
- children: /* @__PURE__ */ jsx59(DropdownActionGroups, { groups: menu.groups })
33465
+ children: /* @__PURE__ */ jsx60(DropdownActionGroups, { groups: menu.groups })
33213
33466
  }
33214
33467
  ) : null
33215
33468
  ] }, menu.resetKey);
@@ -33218,23 +33471,23 @@ function AgentGUIConversationActionsContextMenu({
33218
33471
  children,
33219
33472
  menu
33220
33473
  }) {
33221
- const [open, setOpen] = useState34(false);
33222
- return /* @__PURE__ */ jsxs42(ContextMenu, { onOpenChange: setOpen, children: [
33223
- /* @__PURE__ */ jsx59(ContextMenuTrigger, { asChild: true, children }),
33224
- open ? /* @__PURE__ */ jsx59(ContextMenuContent, { className: menuContentClassName, children: /* @__PURE__ */ jsx59(ContextActionGroups, { groups: menu.groups }) }) : null
33474
+ const [open, setOpen] = useState35(false);
33475
+ return /* @__PURE__ */ jsxs43(ContextMenu, { onOpenChange: setOpen, children: [
33476
+ /* @__PURE__ */ jsx60(ContextMenuTrigger, { asChild: true, children }),
33477
+ open ? /* @__PURE__ */ jsx60(ContextMenuContent, { className: menuContentClassName, children: /* @__PURE__ */ jsx60(ContextActionGroups, { groups: menu.groups }) }) : null
33225
33478
  ] }, menu.resetKey);
33226
33479
  }
33227
33480
  function DropdownActionGroups({
33228
33481
  groups
33229
33482
  }) {
33230
- return /* @__PURE__ */ jsx59(Fragment19, { children: groups.map((group, groupIndex) => /* @__PURE__ */ jsxs42(Fragment18, { children: [
33231
- groupIndex > 0 ? /* @__PURE__ */ jsx59(DropdownMenuSeparator2, {}) : null,
33483
+ return /* @__PURE__ */ jsx60(Fragment19, { children: groups.map((group, groupIndex) => /* @__PURE__ */ jsxs43(Fragment18, { children: [
33484
+ groupIndex > 0 ? /* @__PURE__ */ jsx60(DropdownMenuSeparator2, {}) : null,
33232
33485
  group.map((entry) => (
33233
33486
  // onClick/onPointerUp mirror onSelect so the action survives
33234
33487
  // workbench dead clicks (pointerup arrives but the click event
33235
33488
  // is swallowed); the shared runner's pending ref dedups the
33236
33489
  // overlapping events of one gesture.
33237
- /* @__PURE__ */ jsxs42(
33490
+ /* @__PURE__ */ jsxs43(
33238
33491
  DropdownMenuItem3,
33239
33492
  {
33240
33493
  disabled: entry.disabled,
@@ -33251,7 +33504,7 @@ function DropdownActionGroups({
33251
33504
  onSelect: entry.onSelect,
33252
33505
  children: [
33253
33506
  entry.icon,
33254
- /* @__PURE__ */ jsx59("span", { children: entry.label })
33507
+ /* @__PURE__ */ jsx60("span", { children: entry.label })
33255
33508
  ]
33256
33509
  },
33257
33510
  entry.id
@@ -33262,11 +33515,11 @@ function DropdownActionGroups({
33262
33515
  function ContextActionGroups({
33263
33516
  groups
33264
33517
  }) {
33265
- return /* @__PURE__ */ jsx59(Fragment19, { children: groups.map((group, groupIndex) => /* @__PURE__ */ jsxs42(Fragment18, { children: [
33266
- groupIndex > 0 ? /* @__PURE__ */ jsx59(ContextMenuSeparator, {}) : null,
33518
+ return /* @__PURE__ */ jsx60(Fragment19, { children: groups.map((group, groupIndex) => /* @__PURE__ */ jsxs43(Fragment18, { children: [
33519
+ groupIndex > 0 ? /* @__PURE__ */ jsx60(ContextMenuSeparator, {}) : null,
33267
33520
  group.map((entry) => (
33268
33521
  // Same dead-click fallbacks as DropdownActionGroups.
33269
- /* @__PURE__ */ jsxs42(
33522
+ /* @__PURE__ */ jsxs43(
33270
33523
  ContextMenuItem,
33271
33524
  {
33272
33525
  disabled: entry.disabled,
@@ -33283,7 +33536,7 @@ function ContextActionGroups({
33283
33536
  onSelect: entry.onSelect,
33284
33537
  children: [
33285
33538
  entry.icon,
33286
- /* @__PURE__ */ jsx59("span", { children: entry.label })
33539
+ /* @__PURE__ */ jsx60("span", { children: entry.label })
33287
33540
  ]
33288
33541
  },
33289
33542
  entry.id
@@ -33293,7 +33546,7 @@ function ContextActionGroups({
33293
33546
  }
33294
33547
 
33295
33548
  // agent-gui/agentGuiNode/view/AgentGUIConversationRailItem.tsx
33296
- import { Fragment as Fragment20, jsx as jsx60, jsxs as jsxs43 } from "react/jsx-runtime";
33549
+ import { Fragment as Fragment20, jsx as jsx61, jsxs as jsxs44 } from "react/jsx-runtime";
33297
33550
  function agentGUIConversationIconPresentation(provider, agentTargetId, workspaceId, agentTargets) {
33298
33551
  const targetPresentation = resolveAgentTargetPresentation({
33299
33552
  agentTargetId: agentTargetId ?? "",
@@ -33399,7 +33652,7 @@ var AgentGUIConversationRailItem = memo5(
33399
33652
  onOpenConversationWindow,
33400
33653
  onRequestRenameConversation
33401
33654
  });
33402
- const row = /* @__PURE__ */ jsxs43(
33655
+ const row = /* @__PURE__ */ jsxs44(
33403
33656
  "div",
33404
33657
  {
33405
33658
  ref: setItemElement,
@@ -33416,7 +33669,7 @@ var AgentGUIConversationRailItem = memo5(
33416
33669
  },
33417
33670
  onMouseLeave: handleMouseLeave,
33418
33671
  children: [
33419
- /* @__PURE__ */ jsxs43(
33672
+ /* @__PURE__ */ jsxs44(
33420
33673
  "button",
33421
33674
  {
33422
33675
  type: "button",
@@ -33427,8 +33680,8 @@ var AgentGUIConversationRailItem = memo5(
33427
33680
  handleRequestRename();
33428
33681
  },
33429
33682
  children: [
33430
- /* @__PURE__ */ jsxs43("span", { className: AgentGUINode_styles_default.conversationTitleRow, children: [
33431
- conversationIcon?.kind === "mask" ? /* @__PURE__ */ jsx60(
33683
+ /* @__PURE__ */ jsxs44("span", { className: AgentGUINode_styles_default.conversationTitleRow, children: [
33684
+ conversationIcon?.kind === "mask" ? /* @__PURE__ */ jsx61(
33432
33685
  "span",
33433
33686
  {
33434
33687
  "aria-hidden": "true",
@@ -33441,7 +33694,7 @@ var AgentGUIConversationRailItem = memo5(
33441
33694
  maskImage: `url("${conversationIcon.url}")`
33442
33695
  }
33443
33696
  }
33444
- ) : conversationIcon ? /* @__PURE__ */ jsx60(
33697
+ ) : conversationIcon ? /* @__PURE__ */ jsx61(
33445
33698
  "img",
33446
33699
  {
33447
33700
  alt: "",
@@ -33454,22 +33707,22 @@ var AgentGUIConversationRailItem = memo5(
33454
33707
  src: conversationIcon.url
33455
33708
  }
33456
33709
  ) : null,
33457
- item.titleLeadingMentionKind === "task" ? /* @__PURE__ */ jsx60(
33710
+ item.titleLeadingMentionKind === "task" ? /* @__PURE__ */ jsx61(
33458
33711
  "span",
33459
33712
  {
33460
33713
  "aria-hidden": "true",
33461
33714
  className: AgentGUINode_styles_default.conversationTitleMentionIcon,
33462
33715
  "data-agent-gui-conversation-title-mention-icon": item.titleLeadingMentionKind,
33463
- children: /* @__PURE__ */ jsx60(IssueIcon, {})
33716
+ children: /* @__PURE__ */ jsx61(IssueIcon, {})
33464
33717
  }
33465
33718
  ) : null,
33466
- /* @__PURE__ */ jsx60("span", { className: AgentGUINode_styles_default.conversationTitle, children: agentGUIConversationRailTitle(item, labels, uiLanguage) })
33719
+ /* @__PURE__ */ jsx61("span", { className: AgentGUINode_styles_default.conversationTitle, children: agentGUIConversationRailTitle(item, labels, uiLanguage) })
33467
33720
  ] }),
33468
- /* @__PURE__ */ jsx60(AgentGUIConversationRailRelativeTime, { item, labels })
33721
+ /* @__PURE__ */ jsx61(AgentGUIConversationRailRelativeTime, { item, labels })
33469
33722
  ]
33470
33723
  }
33471
33724
  ),
33472
- previewMode ? null : /* @__PURE__ */ jsx60("div", { className: AgentGUINode_styles_default.conversationActions, children: isPendingDeleteConversation ? /* @__PURE__ */ jsx60(
33725
+ previewMode ? null : /* @__PURE__ */ jsx61("div", { className: AgentGUINode_styles_default.conversationActions, children: isPendingDeleteConversation ? /* @__PURE__ */ jsx61(
33473
33726
  "button",
33474
33727
  {
33475
33728
  type: "button",
@@ -33483,10 +33736,10 @@ var AgentGUIConversationRailItem = memo5(
33483
33736
  onConfirmDeleteConversation();
33484
33737
  }
33485
33738
  },
33486
- children: /* @__PURE__ */ jsx60("span", { className: AgentGUINode_styles_default.conversationDeleteConfirmText, children: labels.deleteSessionConfirm })
33739
+ children: /* @__PURE__ */ jsx61("span", { className: AgentGUINode_styles_default.conversationDeleteConfirmText, children: labels.deleteSessionConfirm })
33487
33740
  }
33488
- ) : /* @__PURE__ */ jsxs43(Fragment20, { children: [
33489
- onOpenConversationWindow ? /* @__PURE__ */ jsx60(
33741
+ ) : /* @__PURE__ */ jsxs44(Fragment20, { children: [
33742
+ onOpenConversationWindow ? /* @__PURE__ */ jsx61(
33490
33743
  BareIconButton3,
33491
33744
  {
33492
33745
  className: AgentGUINode_styles_default.conversationOpenWindowButton,
@@ -33503,10 +33756,10 @@ var AgentGUIConversationRailItem = memo5(
33503
33756
  event.stopPropagation();
33504
33757
  handleOpenConversationWindow();
33505
33758
  },
33506
- children: /* @__PURE__ */ jsx60(ExternalLink3, { "aria-hidden": "true" })
33759
+ children: /* @__PURE__ */ jsx61(ExternalLink3, { "aria-hidden": "true" })
33507
33760
  }
33508
33761
  ) : null,
33509
- /* @__PURE__ */ jsx60(
33762
+ /* @__PURE__ */ jsx61(
33510
33763
  BareIconButton3,
33511
33764
  {
33512
33765
  className: AgentGUINode_styles_default.conversationPinButton,
@@ -33523,10 +33776,10 @@ var AgentGUIConversationRailItem = memo5(
33523
33776
  event.stopPropagation();
33524
33777
  handleTogglePinned();
33525
33778
  },
33526
- children: pinned ? /* @__PURE__ */ jsx60(PinFilledIcon, { "aria-hidden": "true" }) : /* @__PURE__ */ jsx60(PinLinedIcon, { "aria-hidden": "true" })
33779
+ children: pinned ? /* @__PURE__ */ jsx61(PinFilledIcon, { "aria-hidden": "true" }) : /* @__PURE__ */ jsx61(PinLinedIcon, { "aria-hidden": "true" })
33527
33780
  }
33528
33781
  ),
33529
- /* @__PURE__ */ jsx60(
33782
+ /* @__PURE__ */ jsx61(
33530
33783
  BareIconButton3,
33531
33784
  {
33532
33785
  className: AgentGUINode_styles_default.conversationDeleteButton,
@@ -33543,10 +33796,10 @@ var AgentGUIConversationRailItem = memo5(
33543
33796
  event.stopPropagation();
33544
33797
  handleRequestDelete();
33545
33798
  },
33546
- children: /* @__PURE__ */ jsx60(CanvasNodeTrashLinedIcon, { "aria-hidden": "true" })
33799
+ children: /* @__PURE__ */ jsx61(CanvasNodeTrashLinedIcon, { "aria-hidden": "true" })
33547
33800
  }
33548
33801
  ),
33549
- /* @__PURE__ */ jsx60(
33802
+ /* @__PURE__ */ jsx61(
33550
33803
  AgentGUIConversationActionsDropdown,
33551
33804
  {
33552
33805
  buttonClassName: AgentGUINode_styles_default.conversationMoreButton,
@@ -33561,7 +33814,7 @@ var AgentGUIConversationRailItem = memo5(
33561
33814
  if (previewMode) {
33562
33815
  return row;
33563
33816
  }
33564
- return /* @__PURE__ */ jsx60(AgentGUIConversationActionsContextMenu, { menu, children: row });
33817
+ return /* @__PURE__ */ jsx61(AgentGUIConversationActionsContextMenu, { menu, children: row });
33565
33818
  }
33566
33819
  );
33567
33820
  function AgentGUIProjectRailHeader({
@@ -33579,10 +33832,10 @@ function AgentGUIProjectRailHeader({
33579
33832
  }),
33580
33833
  [agentHostApi.userProjects, selectProjectDirectory]
33581
33834
  );
33582
- return /* @__PURE__ */ jsxs43("div", { className: AgentGUINode_styles_default.projectRailHeader, children: [
33583
- /* @__PURE__ */ jsx60("div", { className: AgentGUINode_styles_default.projectRailTitle, children: /* @__PURE__ */ jsx60("span", { children: workspaceUserProjectI18n.tFirst(["projectSelect.projectLabel"]) }) }),
33584
- /* @__PURE__ */ jsxs43("div", { className: AgentGUINode_styles_default.projectRailAddProject, children: [
33585
- /* @__PURE__ */ jsx60(
33835
+ return /* @__PURE__ */ jsxs44("div", { className: AgentGUINode_styles_default.projectRailHeader, children: [
33836
+ /* @__PURE__ */ jsx61("div", { className: AgentGUINode_styles_default.projectRailTitle, children: /* @__PURE__ */ jsx61("span", { children: workspaceUserProjectI18n.tFirst(["projectSelect.projectLabel"]) }) }),
33837
+ /* @__PURE__ */ jsxs44("div", { className: AgentGUINode_styles_default.projectRailAddProject, children: [
33838
+ /* @__PURE__ */ jsx61(
33586
33839
  WorkspaceUserProjectSelect2,
33587
33840
  {
33588
33841
  api: userProjectApi,
@@ -33613,7 +33866,7 @@ function AgentGUIProjectRailHeader({
33613
33866
  "projectSelect.addProject"
33614
33867
  ])
33615
33868
  },
33616
- renderAddProjectIcon: () => /* @__PURE__ */ jsx60(
33869
+ renderAddProjectIcon: () => /* @__PURE__ */ jsx61(
33617
33870
  NewWorkspaceLinedIcon2,
33618
33871
  {
33619
33872
  "aria-hidden": true,
@@ -33631,7 +33884,7 @@ function AgentGUIProjectRailHeader({
33631
33884
  }
33632
33885
  }
33633
33886
  ),
33634
- /* @__PURE__ */ jsx60(
33887
+ /* @__PURE__ */ jsx61(
33635
33888
  NewWorkspaceLinedIcon2,
33636
33889
  {
33637
33890
  "aria-hidden": true,
@@ -33643,7 +33896,7 @@ function AgentGUIProjectRailHeader({
33643
33896
  }
33644
33897
 
33645
33898
  // agent-gui/agentGuiNode/view/AgentGUIConversationRailSectionHeader.tsx
33646
- import { forwardRef as forwardRef5, memo as memo6, useCallback as useCallback54, useState as useState35 } from "react";
33899
+ import { forwardRef as forwardRef5, memo as memo6, useCallback as useCallback54, useState as useState36 } from "react";
33647
33900
  import { ChevronRight as ChevronRight2 } from "lucide-react";
33648
33901
  import {
33649
33902
  DropdownMenu as DropdownMenu5,
@@ -33666,7 +33919,7 @@ import {
33666
33919
 
33667
33920
  // agent-gui/agentGuiNode/view/agentGUIConversationRailSectionPresentationContext.tsx
33668
33921
  import { createContext as createContext2, useContext as useContext2 } from "react";
33669
- import { jsx as jsx61 } from "react/jsx-runtime";
33922
+ import { jsx as jsx62 } from "react/jsx-runtime";
33670
33923
  var AgentGUIConversationRailSectionBatchDeletionDisabledContext = createContext2(null);
33671
33924
  var AgentGUIConversationRailSectionProjectActionLockedContext = createContext2(null);
33672
33925
  var AgentGUIConversationRailSectionProjectDragDisabledContext = createContext2(null);
@@ -33676,15 +33929,15 @@ function AgentGUIConversationRailSectionPresentationProvider({
33676
33929
  projectActionLocked,
33677
33930
  projectDragDisabled
33678
33931
  }) {
33679
- return /* @__PURE__ */ jsx61(
33932
+ return /* @__PURE__ */ jsx62(
33680
33933
  AgentGUIConversationRailSectionBatchDeletionDisabledContext.Provider,
33681
33934
  {
33682
33935
  value: batchDeletionDisabled,
33683
- children: /* @__PURE__ */ jsx61(
33936
+ children: /* @__PURE__ */ jsx62(
33684
33937
  AgentGUIConversationRailSectionProjectActionLockedContext.Provider,
33685
33938
  {
33686
33939
  value: projectActionLocked,
33687
- children: /* @__PURE__ */ jsx61(
33940
+ children: /* @__PURE__ */ jsx62(
33688
33941
  AgentGUIConversationRailSectionProjectDragDisabledContext.Provider,
33689
33942
  {
33690
33943
  value: projectDragDisabled,
@@ -33722,7 +33975,7 @@ function readSectionPresentationValue(value, name) {
33722
33975
  }
33723
33976
 
33724
33977
  // agent-gui/agentGuiNode/view/AgentGUIConversationRailSectionHeader.tsx
33725
- import { jsx as jsx62, jsxs as jsxs44 } from "react/jsx-runtime";
33978
+ import { jsx as jsx63, jsxs as jsxs45 } from "react/jsx-runtime";
33726
33979
  function HeaderFrame({
33727
33980
  children,
33728
33981
  isProjectSection,
@@ -33730,7 +33983,7 @@ function HeaderFrame({
33730
33983
  onProjectDragStart
33731
33984
  }) {
33732
33985
  const projectDragDisabled = useAgentGUIConversationRailSectionProjectDragDisabled();
33733
- return /* @__PURE__ */ jsx62(
33986
+ return /* @__PURE__ */ jsx63(
33734
33987
  "div",
33735
33988
  {
33736
33989
  className: AgentGUINode_styles_default.conversationSectionHeader,
@@ -33751,9 +34004,9 @@ var HeaderIdentity = memo6(function HeaderIdentity2({
33751
34004
  }) {
33752
34005
  "use memo";
33753
34006
  if (!isProjectSection) {
33754
- return /* @__PURE__ */ jsx62("div", { className: AgentGUINode_styles_default.conversationSectionToggle, children: /* @__PURE__ */ jsx62("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: /* @__PURE__ */ jsx62("span", { children: sectionLabel }) }) });
34007
+ return /* @__PURE__ */ jsx63("div", { className: AgentGUINode_styles_default.conversationSectionToggle, children: /* @__PURE__ */ jsx63("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: /* @__PURE__ */ jsx63("span", { children: sectionLabel }) }) });
33755
34008
  }
33756
- return /* @__PURE__ */ jsxs44(
34009
+ return /* @__PURE__ */ jsxs45(
33757
34010
  "button",
33758
34011
  {
33759
34012
  type: "button",
@@ -33762,22 +34015,22 @@ var HeaderIdentity = memo6(function HeaderIdentity2({
33762
34015
  "aria-label": projectPinned ? labels.pinnedProjectAccessibleName(sectionLabel) : sectionLabel,
33763
34016
  onClick: onToggleCollapsed,
33764
34017
  children: [
33765
- /* @__PURE__ */ jsx62(
34018
+ /* @__PURE__ */ jsx63(
33766
34019
  ChevronRight2,
33767
34020
  {
33768
34021
  "aria-hidden": "true",
33769
34022
  className: AgentGUINode_styles_default.conversationSectionChevron
33770
34023
  }
33771
34024
  ),
33772
- /* @__PURE__ */ jsxs44("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: [
33773
- isSectionCollapsed ? /* @__PURE__ */ jsx62(
34025
+ /* @__PURE__ */ jsxs45("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: [
34026
+ isSectionCollapsed ? /* @__PURE__ */ jsx63(
33774
34027
  FolderIcon2,
33775
34028
  {
33776
34029
  "aria-hidden": "true",
33777
34030
  className: AgentGUINode_styles_default.conversationSectionLabelIcon,
33778
34031
  "data-project-drag-icon": "true"
33779
34032
  }
33780
- ) : /* @__PURE__ */ jsx62(
34033
+ ) : /* @__PURE__ */ jsx63(
33781
34034
  FolderOpenLinedIcon,
33782
34035
  {
33783
34036
  "aria-hidden": "true",
@@ -33785,7 +34038,7 @@ var HeaderIdentity = memo6(function HeaderIdentity2({
33785
34038
  "data-project-drag-icon": "true"
33786
34039
  }
33787
34040
  ),
33788
- /* @__PURE__ */ jsx62("span", { children: sectionLabel })
34041
+ /* @__PURE__ */ jsx63("span", { children: sectionLabel })
33789
34042
  ] })
33790
34043
  ]
33791
34044
  }
@@ -33798,7 +34051,7 @@ var CreateAction = memo6(function CreateAction2({
33798
34051
  previewMode
33799
34052
  }) {
33800
34053
  "use memo";
33801
- const button = /* @__PURE__ */ jsx62(
34054
+ const button = /* @__PURE__ */ jsx63(
33802
34055
  BareIconButton4,
33803
34056
  {
33804
34057
  className: AgentGUINode_styles_default.conversationSectionMoreButton,
@@ -33807,15 +34060,15 @@ var CreateAction = memo6(function CreateAction2({
33807
34060
  title: "",
33808
34061
  disabled: createConversationDisabled,
33809
34062
  onClick: onCreateConversation,
33810
- children: /* @__PURE__ */ jsx62(CreateChatIcon, { "aria-hidden": "true" })
34063
+ children: /* @__PURE__ */ jsx63(CreateChatIcon, { "aria-hidden": "true" })
33811
34064
  }
33812
34065
  );
33813
34066
  if (previewMode) {
33814
- return /* @__PURE__ */ jsx62("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: button });
34067
+ return /* @__PURE__ */ jsx63("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: button });
33815
34068
  }
33816
- return /* @__PURE__ */ jsxs44(Tooltip10, { children: [
33817
- /* @__PURE__ */ jsx62(TooltipTrigger10, { asChild: true, children: /* @__PURE__ */ jsx62("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: button }) }),
33818
- /* @__PURE__ */ jsx62(
34069
+ return /* @__PURE__ */ jsxs45(Tooltip10, { children: [
34070
+ /* @__PURE__ */ jsx63(TooltipTrigger10, { asChild: true, children: /* @__PURE__ */ jsx63("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: button }) }),
34071
+ /* @__PURE__ */ jsx63(
33819
34072
  TooltipContent10,
33820
34073
  {
33821
34074
  side: "top",
@@ -33829,7 +34082,7 @@ var CreateAction = memo6(function CreateAction2({
33829
34082
  var ProjectMenuButton = forwardRef5(
33830
34083
  function ProjectMenuButton2({ accessibleName, disabled, ...props }, ref) {
33831
34084
  const projectActionLocked = useAgentGUIConversationRailSectionProjectActionLocked();
33832
- return /* @__PURE__ */ jsx62(
34085
+ return /* @__PURE__ */ jsx63(
33833
34086
  BareIconButton4,
33834
34087
  {
33835
34088
  ...props,
@@ -33839,7 +34092,7 @@ var ProjectMenuButton = forwardRef5(
33839
34092
  size: "sm",
33840
34093
  title: "",
33841
34094
  disabled: projectActionLocked || disabled,
33842
- children: /* @__PURE__ */ jsx62(MoreHorizontalIcon, { "aria-hidden": "true" })
34095
+ children: /* @__PURE__ */ jsx63(MoreHorizontalIcon, { "aria-hidden": "true" })
33843
34096
  }
33844
34097
  );
33845
34098
  }
@@ -33851,11 +34104,11 @@ function ProjectMenuTrigger({
33851
34104
  }) {
33852
34105
  const accessibleName = labels.projectSectionMoreActions;
33853
34106
  if (previewMode) {
33854
- return /* @__PURE__ */ jsx62(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx62("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx62(ProjectMenuButton, { accessibleName }) }) });
34107
+ return /* @__PURE__ */ jsx63(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx63("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx63(ProjectMenuButton, { accessibleName }) }) });
33855
34108
  }
33856
- return /* @__PURE__ */ jsxs44(Tooltip10, { children: [
33857
- /* @__PURE__ */ jsx62(TooltipTrigger10, { asChild: true, children: /* @__PURE__ */ jsx62("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx62(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx62(ProjectMenuButton, { accessibleName }) }) }) }),
33858
- /* @__PURE__ */ jsx62(
34109
+ return /* @__PURE__ */ jsxs45(Tooltip10, { children: [
34110
+ /* @__PURE__ */ jsx63(TooltipTrigger10, { asChild: true, children: /* @__PURE__ */ jsx63("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx63(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx63(ProjectMenuButton, { accessibleName }) }) }) }),
34111
+ /* @__PURE__ */ jsx63(
33859
34112
  TooltipContent10,
33860
34113
  {
33861
34114
  side: "right",
@@ -33877,47 +34130,47 @@ function ProjectMenuContent({
33877
34130
  }) {
33878
34131
  const batchDeletionDisabled = useAgentGUIConversationRailSectionBatchDeletionDisabled();
33879
34132
  const projectActionLocked = useAgentGUIConversationRailSectionProjectActionLocked();
33880
- return /* @__PURE__ */ jsxs44(
34133
+ return /* @__PURE__ */ jsxs45(
33881
34134
  DropdownMenuContent5,
33882
34135
  {
33883
34136
  align: "end",
33884
34137
  className: `${AgentGUINode_styles_default.composerMenuContent} nodrag [-webkit-app-region:no-drag]`,
33885
34138
  sideOffset: 6,
33886
34139
  children: [
33887
- /* @__PURE__ */ jsx62(
34140
+ /* @__PURE__ */ jsx63(
33888
34141
  DropdownMenuItem4,
33889
34142
  {
33890
34143
  className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
33891
34144
  disabled: !onOpenProjectFiles,
33892
34145
  onSelect: onOpenProjectFiles ?? void 0,
33893
- children: /* @__PURE__ */ jsx62("span", { children: labels.projectSectionViewFiles })
34146
+ children: /* @__PURE__ */ jsx63("span", { children: labels.projectSectionViewFiles })
33894
34147
  }
33895
34148
  ),
33896
- /* @__PURE__ */ jsx62(
34149
+ /* @__PURE__ */ jsx63(
33897
34150
  DropdownMenuItem4,
33898
34151
  {
33899
34152
  className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
33900
34153
  disabled: !hasProjectId || projectActionLocked,
33901
34154
  onSelect: onToggleProjectPinned,
33902
- children: /* @__PURE__ */ jsx62("span", { children: projectPinned ? labels.unpinProject : labels.pinProject })
34155
+ children: /* @__PURE__ */ jsx63("span", { children: projectPinned ? labels.unpinProject : labels.pinProject })
33903
34156
  }
33904
34157
  ),
33905
- /* @__PURE__ */ jsx62(
34158
+ /* @__PURE__ */ jsx63(
33906
34159
  DropdownMenuItem4,
33907
34160
  {
33908
34161
  className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
33909
34162
  disabled: batchDeletionDisabled,
33910
34163
  onSelect: onRequestBatchDeletion,
33911
- children: /* @__PURE__ */ jsx62("span", { children: labels.batchDeleteProjectSessions })
34164
+ children: /* @__PURE__ */ jsx63("span", { children: labels.batchDeleteProjectSessions })
33912
34165
  }
33913
34166
  ),
33914
- /* @__PURE__ */ jsx62(
34167
+ /* @__PURE__ */ jsx63(
33915
34168
  DropdownMenuItem4,
33916
34169
  {
33917
34170
  className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
33918
34171
  disabled: projectActionLocked,
33919
34172
  onSelect: onRemoveProject,
33920
- children: /* @__PURE__ */ jsx62("span", { children: labels.removeProject })
34173
+ children: /* @__PURE__ */ jsx63("span", { children: labels.removeProject })
33921
34174
  }
33922
34175
  )
33923
34176
  ]
@@ -33937,9 +34190,9 @@ var ProjectMenu = memo6(function ProjectMenu2({
33937
34190
  projectPinned
33938
34191
  }) {
33939
34192
  "use memo";
33940
- return /* @__PURE__ */ jsxs44(DropdownMenu5, { onOpenChange, children: [
33941
- /* @__PURE__ */ jsx62(ProjectMenuTrigger, { labels, previewMode }),
33942
- open ? /* @__PURE__ */ jsx62(
34193
+ return /* @__PURE__ */ jsxs45(DropdownMenu5, { onOpenChange, children: [
34194
+ /* @__PURE__ */ jsx63(ProjectMenuTrigger, { labels, previewMode }),
34195
+ open ? /* @__PURE__ */ jsx63(
33943
34196
  ProjectMenuContent,
33944
34197
  {
33945
34198
  hasProjectId,
@@ -33959,29 +34212,29 @@ function ConversationMenuTrigger({
33959
34212
  }) {
33960
34213
  const accessibleName = labels.conversationsSectionMoreActions;
33961
34214
  if (previewMode) {
33962
- return /* @__PURE__ */ jsx62(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx62("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx62(
34215
+ return /* @__PURE__ */ jsx63(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx63("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx63(
33963
34216
  BareIconButton4,
33964
34217
  {
33965
34218
  className: AgentGUINode_styles_default.conversationSectionMoreButton,
33966
34219
  "aria-label": accessibleName,
33967
34220
  size: "sm",
33968
34221
  title: "",
33969
- children: /* @__PURE__ */ jsx62(MoreHorizontalIcon, { "aria-hidden": "true" })
34222
+ children: /* @__PURE__ */ jsx63(MoreHorizontalIcon, { "aria-hidden": "true" })
33970
34223
  }
33971
34224
  ) }) });
33972
34225
  }
33973
- return /* @__PURE__ */ jsxs44(Tooltip10, { children: [
33974
- /* @__PURE__ */ jsx62(TooltipTrigger10, { asChild: true, children: /* @__PURE__ */ jsx62("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx62(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx62(
34226
+ return /* @__PURE__ */ jsxs45(Tooltip10, { children: [
34227
+ /* @__PURE__ */ jsx63(TooltipTrigger10, { asChild: true, children: /* @__PURE__ */ jsx63("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx63(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx63(
33975
34228
  BareIconButton4,
33976
34229
  {
33977
34230
  className: AgentGUINode_styles_default.conversationSectionMoreButton,
33978
34231
  "aria-label": accessibleName,
33979
34232
  size: "sm",
33980
34233
  title: "",
33981
- children: /* @__PURE__ */ jsx62(MoreHorizontalIcon, { "aria-hidden": "true" })
34234
+ children: /* @__PURE__ */ jsx63(MoreHorizontalIcon, { "aria-hidden": "true" })
33982
34235
  }
33983
34236
  ) }) }) }),
33984
- /* @__PURE__ */ jsx62(
34237
+ /* @__PURE__ */ jsx63(
33985
34238
  TooltipContent10,
33986
34239
  {
33987
34240
  side: "right",
@@ -33997,19 +34250,19 @@ function ConversationMenuContent({
33997
34250
  onRequestBatchDeletion
33998
34251
  }) {
33999
34252
  const batchDeletionDisabled = useAgentGUIConversationRailSectionBatchDeletionDisabled();
34000
- return /* @__PURE__ */ jsx62(
34253
+ return /* @__PURE__ */ jsx63(
34001
34254
  DropdownMenuContent5,
34002
34255
  {
34003
34256
  align: "end",
34004
34257
  className: `${AgentGUINode_styles_default.composerMenuContent} nodrag [-webkit-app-region:no-drag]`,
34005
34258
  sideOffset: 6,
34006
- children: /* @__PURE__ */ jsx62(
34259
+ children: /* @__PURE__ */ jsx63(
34007
34260
  DropdownMenuItem4,
34008
34261
  {
34009
34262
  className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
34010
34263
  disabled: batchDeletionDisabled,
34011
34264
  onSelect: onRequestBatchDeletion,
34012
- children: /* @__PURE__ */ jsx62("span", { children: labels.batchDeleteConversations })
34265
+ children: /* @__PURE__ */ jsx63("span", { children: labels.batchDeleteConversations })
34013
34266
  }
34014
34267
  )
34015
34268
  }
@@ -34022,9 +34275,9 @@ function ConversationMenu({
34022
34275
  open,
34023
34276
  previewMode
34024
34277
  }) {
34025
- return /* @__PURE__ */ jsxs44(DropdownMenu5, { onOpenChange, children: [
34026
- /* @__PURE__ */ jsx62(ConversationMenuTrigger, { labels, previewMode }),
34027
- open ? /* @__PURE__ */ jsx62(
34278
+ return /* @__PURE__ */ jsxs45(DropdownMenu5, { onOpenChange, children: [
34279
+ /* @__PURE__ */ jsx63(ConversationMenuTrigger, { labels, previewMode }),
34280
+ open ? /* @__PURE__ */ jsx63(
34028
34281
  ConversationMenuContent,
34029
34282
  {
34030
34283
  labels,
@@ -34057,8 +34310,8 @@ var AgentGUIConversationRailSectionHeader = memo6(
34057
34310
  sectionLabel
34058
34311
  }) {
34059
34312
  "use memo";
34060
- const [projectMenuOpen, setProjectMenuOpen] = useState35(false);
34061
- const [conversationMenuOpen, setConversationMenuOpen] = useState35(false);
34313
+ const [projectMenuOpen, setProjectMenuOpen] = useState36(false);
34314
+ const [conversationMenuOpen, setConversationMenuOpen] = useState36(false);
34062
34315
  const handleProjectMenuOpenChange = useCallback54(
34063
34316
  (open) => {
34064
34317
  setProjectMenuOpen(open);
@@ -34067,14 +34320,14 @@ var AgentGUIConversationRailSectionHeader = memo6(
34067
34320
  [onProjectMenuOpenChange]
34068
34321
  );
34069
34322
  const isProjectSection = kind === "project";
34070
- return /* @__PURE__ */ jsxs44(
34323
+ return /* @__PURE__ */ jsxs45(
34071
34324
  HeaderFrame,
34072
34325
  {
34073
34326
  isProjectSection,
34074
34327
  onProjectDragEnd,
34075
34328
  onProjectDragStart,
34076
34329
  children: [
34077
- /* @__PURE__ */ jsx62(
34330
+ /* @__PURE__ */ jsx63(
34078
34331
  HeaderIdentity,
34079
34332
  {
34080
34333
  isProjectSection,
@@ -34085,13 +34338,13 @@ var AgentGUIConversationRailSectionHeader = memo6(
34085
34338
  sectionLabel
34086
34339
  }
34087
34340
  ),
34088
- canCreateConversation ? /* @__PURE__ */ jsxs44(
34341
+ canCreateConversation ? /* @__PURE__ */ jsxs45(
34089
34342
  "div",
34090
34343
  {
34091
34344
  className: AgentGUINode_styles_default.conversationSectionActions,
34092
34345
  "data-project-drag-block": "true",
34093
34346
  children: [
34094
- /* @__PURE__ */ jsx62(
34347
+ /* @__PURE__ */ jsx63(
34095
34348
  CreateAction,
34096
34349
  {
34097
34350
  createConversationDisabled,
@@ -34100,7 +34353,7 @@ var AgentGUIConversationRailSectionHeader = memo6(
34100
34353
  previewMode
34101
34354
  }
34102
34355
  ),
34103
- hasProjectPath ? /* @__PURE__ */ jsx62(
34356
+ hasProjectPath ? /* @__PURE__ */ jsx63(
34104
34357
  ProjectMenu,
34105
34358
  {
34106
34359
  hasProjectId,
@@ -34115,7 +34368,7 @@ var AgentGUIConversationRailSectionHeader = memo6(
34115
34368
  projectPinned
34116
34369
  }
34117
34370
  ) : null,
34118
- !hasProjectPath && kind === "conversations" ? /* @__PURE__ */ jsx62(
34371
+ !hasProjectPath && kind === "conversations" ? /* @__PURE__ */ jsx63(
34119
34372
  ConversationMenu,
34120
34373
  {
34121
34374
  labels,
@@ -34135,7 +34388,7 @@ var AgentGUIConversationRailSectionHeader = memo6(
34135
34388
  );
34136
34389
 
34137
34390
  // agent-gui/agentGuiNode/view/AgentGUIConversationRailSection.tsx
34138
- import { jsx as jsx63, jsxs as jsxs45 } from "react/jsx-runtime";
34391
+ import { jsx as jsx64, jsxs as jsxs46 } from "react/jsx-runtime";
34139
34392
  var AgentGUIConversationRailSection = memo7(
34140
34393
  function AgentGUIConversationRailSection2({
34141
34394
  section,
@@ -34288,7 +34541,7 @@ var AgentGUIConversationRailSection = memo7(
34288
34541
  if (isRailInteractionLocked()) return;
34289
34542
  onOpenProjectFiles({
34290
34543
  directoryPath: projectPath,
34291
- mode: "open-directory",
34544
+ mode: "open",
34292
34545
  path: projectPath,
34293
34546
  source: "agent-project-menu",
34294
34547
  type: "open-workspace-file",
@@ -34313,7 +34566,7 @@ var AgentGUIConversationRailSection = memo7(
34313
34566
  path: projectPath
34314
34567
  });
34315
34568
  });
34316
- return /* @__PURE__ */ jsxs45(
34569
+ return /* @__PURE__ */ jsxs46(
34317
34570
  "section",
34318
34571
  {
34319
34572
  className: AgentGUINode_styles_default.conversationSection,
@@ -34323,7 +34576,7 @@ var AgentGUIConversationRailSection = memo7(
34323
34576
  "data-project-drop-indicator": projectDropIndicator ?? void 0,
34324
34577
  onDragOver: section.kind === "project" ? handleProjectDragOver : void 0,
34325
34578
  children: [
34326
- /* @__PURE__ */ jsx63(
34579
+ /* @__PURE__ */ jsx64(
34327
34580
  AgentGUIConversationRailSectionHeader,
34328
34581
  {
34329
34582
  canCreateConversation: canCreateConversationFromSection,
@@ -34348,14 +34601,14 @@ var AgentGUIConversationRailSection = memo7(
34348
34601
  sectionLabel: section.label
34349
34602
  }
34350
34603
  ),
34351
- /* @__PURE__ */ jsx63(
34604
+ /* @__PURE__ */ jsx64(
34352
34605
  "div",
34353
34606
  {
34354
34607
  className: AgentGUINode_styles_default.conversationSectionItems,
34355
34608
  "aria-hidden": isSectionCollapsed ? "true" : void 0,
34356
- children: /* @__PURE__ */ jsxs45("div", { className: AgentGUINode_styles_default.conversationSectionItemsInner, children: [
34357
- !isSectionCollapsed && visibleItems.length === 0 ? /* @__PURE__ */ jsx63("div", { className: AgentGUINode_styles_default.conversationSectionEmpty, children: labels.emptyProjectConversations }) : null,
34358
- visibleItems.map((item) => /* @__PURE__ */ jsx63(
34609
+ children: /* @__PURE__ */ jsxs46("div", { className: AgentGUINode_styles_default.conversationSectionItemsInner, children: [
34610
+ !isSectionCollapsed && visibleItems.length === 0 ? /* @__PURE__ */ jsx64("div", { className: AgentGUINode_styles_default.conversationSectionEmpty, children: labels.emptyProjectConversations }) : null,
34611
+ visibleItems.map((item) => /* @__PURE__ */ jsx64(
34359
34612
  AgentGUIConversationRailItem,
34360
34613
  {
34361
34614
  active: item.id === activeConversationId,
@@ -34379,8 +34632,8 @@ var AgentGUIConversationRailSection = memo7(
34379
34632
  },
34380
34633
  item.id
34381
34634
  )),
34382
- canShowMore || canShowLess ? /* @__PURE__ */ jsxs45("div", { className: AgentGUINode_styles_default.conversationSectionPagination, children: [
34383
- canShowMore ? /* @__PURE__ */ jsx63(
34635
+ canShowMore || canShowLess ? /* @__PURE__ */ jsxs46("div", { className: AgentGUINode_styles_default.conversationSectionPagination, children: [
34636
+ canShowMore ? /* @__PURE__ */ jsx64(
34384
34637
  "button",
34385
34638
  {
34386
34639
  type: "button",
@@ -34390,7 +34643,7 @@ var AgentGUIConversationRailSection = memo7(
34390
34643
  children: labels.showMoreConversations
34391
34644
  }
34392
34645
  ) : null,
34393
- canShowLess ? /* @__PURE__ */ jsx63(
34646
+ canShowLess ? /* @__PURE__ */ jsx64(
34394
34647
  "button",
34395
34648
  {
34396
34649
  type: "button",
@@ -34411,11 +34664,11 @@ var AgentGUIConversationRailSection = memo7(
34411
34664
 
34412
34665
  // agent-gui/agentGuiNode/view/AgentGUIProjectActionConfirmationDialog.tsx
34413
34666
  import { ConfirmationDialog as ConfirmationDialog3 } from "@tutti-os/ui-system";
34414
- import { jsx as jsx64 } from "react/jsx-runtime";
34667
+ import { jsx as jsx65 } from "react/jsx-runtime";
34415
34668
  var DIALOG_CLASS_NAME = "nodrag tsh-desktop-no-drag [-webkit-app-region:no-drag]";
34416
34669
  function AgentGUIProjectActionConfirmationDialog(props) {
34417
34670
  const { action, labels } = props;
34418
- return /* @__PURE__ */ jsx64(
34671
+ return /* @__PURE__ */ jsx65(
34419
34672
  ConfirmationDialog3,
34420
34673
  {
34421
34674
  cancelLabel: labels.cancel,
@@ -34589,9 +34842,9 @@ function useAgentGUIConversationRailViewState(input) {
34589
34842
  }
34590
34843
 
34591
34844
  // agent-gui/agentGuiNode/view/useAgentGUIProjectMenuState.ts
34592
- import { useCallback as useCallback57, useState as useState36 } from "react";
34845
+ import { useCallback as useCallback57, useState as useState37 } from "react";
34593
34846
  function useAgentGUIProjectMenuState(isRailInteractionLocked, isUserProjectMutationPending) {
34594
- const [openSectionId, setOpenSectionId] = useState36(null);
34847
+ const [openSectionId, setOpenSectionId] = useState37(null);
34595
34848
  const isProjectActionLocked = useCallback57(
34596
34849
  () => isRailInteractionLocked() || isUserProjectMutationPending,
34597
34850
  [isRailInteractionLocked, isUserProjectMutationPending]
@@ -34612,9 +34865,9 @@ function useAgentGUIProjectMenuState(isRailInteractionLocked, isUserProjectMutat
34612
34865
  }
34613
34866
 
34614
34867
  // agent-gui/agentGuiNode/view/AgentGUIConversationRailPane.tsx
34615
- import { jsx as jsx65, jsxs as jsxs46 } from "react/jsx-runtime";
34868
+ import { jsx as jsx66, jsxs as jsxs47 } from "react/jsx-runtime";
34616
34869
  function useDelayedBoolean(value, delayMs) {
34617
- const [delayedValue, setDelayedValue] = useState37(false);
34870
+ const [delayedValue, setDelayedValue] = useState38(false);
34618
34871
  useEffect30(() => {
34619
34872
  if (!value) {
34620
34873
  setDelayedValue(false);
@@ -34668,8 +34921,8 @@ var AgentGUIConversationRailPane = memo8(
34668
34921
  onConversationQueryChange
34669
34922
  }) {
34670
34923
  "use memo";
34671
- const [pendingProjectAction, setPendingProjectAction] = useState37(null);
34672
- const [isRequestingBatchDeletion, setIsRequestingBatchDeletion] = useState37(false);
34924
+ const [pendingProjectAction, setPendingProjectAction] = useState38(null);
34925
+ const [isRequestingBatchDeletion, setIsRequestingBatchDeletion] = useState38(false);
34673
34926
  const { railSearch } = railQuery;
34674
34927
  const railElementRef = useRef47(null);
34675
34928
  const railActiveConversationRef = useRef47([]);
@@ -34902,15 +35155,15 @@ var AgentGUIConversationRailPane = memo8(
34902
35155
  useEffect30(() => {
34903
35156
  return installProjectDragGlobalListeners();
34904
35157
  }, [installProjectDragGlobalListeners]);
34905
- return /* @__PURE__ */ jsxs46(
35158
+ return /* @__PURE__ */ jsxs47(
34906
35159
  "aside",
34907
35160
  {
34908
35161
  ref: railElementRef,
34909
35162
  className: AgentGUINode_styles_default.rail,
34910
35163
  "aria-hidden": isCollapsed ? "true" : void 0,
34911
35164
  children: [
34912
- /* @__PURE__ */ jsxs46("div", { className: AgentGUINode_styles_default.railToolbar, children: [
34913
- /* @__PURE__ */ jsx65(
35165
+ /* @__PURE__ */ jsxs47("div", { className: AgentGUINode_styles_default.railToolbar, children: [
35166
+ /* @__PURE__ */ jsx66(
34914
35167
  TaskSearchField,
34915
35168
  {
34916
35169
  value: conversationQuery,
@@ -34918,7 +35171,7 @@ var AgentGUIConversationRailPane = memo8(
34918
35171
  onChange: onConversationQueryChange
34919
35172
  }
34920
35173
  ),
34921
- /* @__PURE__ */ jsxs46(
35174
+ /* @__PURE__ */ jsxs47(
34922
35175
  Button,
34923
35176
  {
34924
35177
  type: "button",
@@ -34929,13 +35182,13 @@ var AgentGUIConversationRailPane = memo8(
34929
35182
  disabled: createConversationDisabled,
34930
35183
  onClick: () => onCreateConversation(),
34931
35184
  children: [
34932
- /* @__PURE__ */ jsx65(CreateChatIcon2, { "aria-hidden": "true" }),
34933
- /* @__PURE__ */ jsx65("span", { children: labels.newConversation })
35185
+ /* @__PURE__ */ jsx66(CreateChatIcon2, { "aria-hidden": "true" }),
35186
+ /* @__PURE__ */ jsx66("span", { children: labels.newConversation })
34934
35187
  ]
34935
35188
  }
34936
35189
  )
34937
35190
  ] }),
34938
- /* @__PURE__ */ jsx65(
35191
+ /* @__PURE__ */ jsx66(
34939
35192
  ScrollArea2,
34940
35193
  {
34941
35194
  scrollbarMode: "native",
@@ -34946,14 +35199,14 @@ var AgentGUIConversationRailPane = memo8(
34946
35199
  onDragOver: keepValidProjectDropTarget,
34947
35200
  onDrop: dropProject
34948
35201
  },
34949
- children: shouldShowConversationSkeleton ? /* @__PURE__ */ jsx65(
35202
+ children: shouldShowConversationSkeleton ? /* @__PURE__ */ jsx66(
34950
35203
  AgentConversationListSkeleton,
34951
35204
  {
34952
35205
  label: labels.loadingConversations
34953
35206
  }
34954
- ) : shouldShowConversationSearchError ? /* @__PURE__ */ jsxs46("div", { className: AgentGUINode_styles_default.emptyState, children: [
34955
- /* @__PURE__ */ jsx65("span", { children: labels.searchFailed }),
34956
- /* @__PURE__ */ jsx65(
35207
+ ) : shouldShowConversationSearchError ? /* @__PURE__ */ jsxs47("div", { className: AgentGUINode_styles_default.emptyState, children: [
35208
+ /* @__PURE__ */ jsx66("span", { children: labels.searchFailed }),
35209
+ /* @__PURE__ */ jsx66(
34957
35210
  SystemButton,
34958
35211
  {
34959
35212
  type: "button",
@@ -34963,7 +35216,7 @@ var AgentGUIConversationRailPane = memo8(
34963
35216
  children: labels.retrySearch
34964
35217
  }
34965
35218
  )
34966
- ] }) : shouldShowConversationEmptyState ? /* @__PURE__ */ jsx65("div", { className: AgentGUINode_styles_default.emptyState, children: /* @__PURE__ */ jsx65("span", { children: conversationQuery.trim() ? labels.searchNoConversations : conversations.length === 0 ? labels.noConversations : labels.conversationUnavailable }) }) : /* @__PURE__ */ jsxs46("fieldset", { className: "contents", disabled: railInteractionsLocked, children: [
35219
+ ] }) : shouldShowConversationEmptyState ? /* @__PURE__ */ jsx66("div", { className: AgentGUINode_styles_default.emptyState, children: /* @__PURE__ */ jsx66("span", { children: conversationQuery.trim() ? labels.searchNoConversations : conversations.length === 0 ? labels.noConversations : labels.conversationUnavailable }) }) : /* @__PURE__ */ jsxs47("fieldset", { className: "contents", disabled: railInteractionsLocked, children: [
34967
35220
  groupedConversations.map((section, sectionIndex) => {
34968
35221
  const projectPath = section.kind === "project" ? section.project?.path ?? "" : "";
34969
35222
  const projectLabel = section.kind === "project" ? section.label : "";
@@ -34997,9 +35250,9 @@ var AgentGUIConversationRailPane = memo8(
34997
35250
  ).length + (activeOverlayCountsTowardTotal && !activeOverlayIsCanonical ? 1 : 0);
34998
35251
  const sectionHasMore = searchSectionHasMore || !conversationQuery.trim() && sectionPageState?.hasMore === true;
34999
35252
  const batchDeletionDisabled = !batchDeletionAvailable || hasConversationQuery || section.items.length === 0 && !sectionHasMore || isDeletingProjectConversations || isRequestingBatchDeletion;
35000
- return /* @__PURE__ */ jsxs46(Fragment21, { children: [
35001
- showPinnedProjectHeader ? /* @__PURE__ */ jsx65("div", { className: AgentGUINode_styles_default.pinnedProjectRailHeader, children: labels.sectionPinned }) : null,
35002
- showProjectRailHeader ? /* @__PURE__ */ jsx65(
35253
+ return /* @__PURE__ */ jsxs47(Fragment21, { children: [
35254
+ showPinnedProjectHeader ? /* @__PURE__ */ jsx66("div", { className: AgentGUINode_styles_default.pinnedProjectRailHeader, children: labels.sectionPinned }) : null,
35255
+ showProjectRailHeader ? /* @__PURE__ */ jsx66(
35003
35256
  AgentGUIProjectRailHeader,
35004
35257
  {
35005
35258
  disabled: railInteractionsLocked || isUserProjectMutationPending,
@@ -35008,13 +35261,13 @@ var AgentGUIConversationRailPane = memo8(
35008
35261
  workspaceUserProjectI18n
35009
35262
  }
35010
35263
  ) : null,
35011
- /* @__PURE__ */ jsx65(
35264
+ /* @__PURE__ */ jsx66(
35012
35265
  AgentGUIConversationRailSectionPresentationProvider,
35013
35266
  {
35014
35267
  batchDeletionDisabled,
35015
35268
  projectActionLocked,
35016
35269
  projectDragDisabled: projectDragLocked,
35017
- children: /* @__PURE__ */ jsx65(
35270
+ children: /* @__PURE__ */ jsx66(
35018
35271
  AgentGUIConversationRailSection,
35019
35272
  {
35020
35273
  activeConversation: activeOverlayConversation,
@@ -35074,7 +35327,7 @@ var AgentGUIConversationRailPane = memo8(
35074
35327
  )
35075
35328
  ] }, section.id);
35076
35329
  }),
35077
- appendProjectRailHeader ? /* @__PURE__ */ jsx65(
35330
+ appendProjectRailHeader ? /* @__PURE__ */ jsx66(
35078
35331
  AgentGUIProjectRailHeader,
35079
35332
  {
35080
35333
  disabled: railInteractionsLocked || isUserProjectMutationPending,
@@ -35086,8 +35339,8 @@ var AgentGUIConversationRailPane = memo8(
35086
35339
  ] })
35087
35340
  }
35088
35341
  ),
35089
- footer ? /* @__PURE__ */ jsx65("div", { className: "shrink-0 pb-2", children: footer }) : null,
35090
- /* @__PURE__ */ jsx65(
35342
+ footer ? /* @__PURE__ */ jsx66("div", { className: "shrink-0 pb-2", children: footer }) : null,
35343
+ /* @__PURE__ */ jsx66(
35091
35344
  AgentGUIProjectActionConfirmationDialog,
35092
35345
  {
35093
35346
  action: pendingProjectAction,
@@ -35529,7 +35782,6 @@ function replaceConversationRailFirstPages(input) {
35529
35782
  }
35530
35783
  return {
35531
35784
  ...input.queryState,
35532
- pending: false,
35533
35785
  reconcilingSessionIds: [],
35534
35786
  sectionPageStates,
35535
35787
  sections
@@ -36043,7 +36295,7 @@ var AgentGUIConversationRailQueryController = class {
36043
36295
  this.previousMembershipRecords = next;
36044
36296
  return;
36045
36297
  }
36046
- if (!this.runtimeSectionsEnabled() || state.engineRuntime.workspaceReconcile.status === "loading") {
36298
+ if (!this.runtimeSectionsEnabled() || state.engineRuntime.workspaceReconcile.status === "loading" || this.queryState.pending || this.queryState.resolvedScopeKey !== this.railSectionQueryKey) {
36047
36299
  this.previousMembershipRecords = next;
36048
36300
  this.publishIfReady(state);
36049
36301
  return;
@@ -36489,10 +36741,10 @@ function identitySnapshot(snapshot) {
36489
36741
  }
36490
36742
 
36491
36743
  // agent-gui/agentGuiNode/controller/AgentGUIConversationRailController.tsx
36492
- import { jsx as jsx66 } from "react/jsx-runtime";
36744
+ import { jsx as jsx67 } from "react/jsx-runtime";
36493
36745
  var AgentGUIConversationRailController = memo9(
36494
36746
  function AgentGUIConversationRailController2(props) {
36495
- const [conversationQuery, setConversationQuery] = useState38("");
36747
+ const [conversationQuery, setConversationQuery] = useState39("");
36496
36748
  const railQuery = useAgentGUIConversationRailQuery({
36497
36749
  activeConversationId: props.activeConversationId,
36498
36750
  conversationFilter: props.conversationFilter,
@@ -36504,7 +36756,7 @@ var AgentGUIConversationRailController = memo9(
36504
36756
  userProjects: props.userProjects,
36505
36757
  workspaceId: props.workspaceId
36506
36758
  });
36507
- return /* @__PURE__ */ jsx66(
36759
+ return /* @__PURE__ */ jsx67(
36508
36760
  AgentGUIConversationRailPane,
36509
36761
  {
36510
36762
  ...props,
@@ -36737,9 +36989,9 @@ import { ChevronsDown } from "lucide-react";
36737
36989
  import { cn as cn9 } from "@tutti-os/ui-system";
36738
36990
 
36739
36991
  // agent-gui/agentGuiNode/AgentGoalBanner.tsx
36740
- import { useEffect as useEffect32, useState as useState39 } from "react";
36992
+ import { useEffect as useEffect32, useState as useState40 } from "react";
36741
36993
  import { CirclePause, CirclePlay, Pencil as Pencil3, Target as Target3, Trash2 } from "lucide-react";
36742
- import { jsx as jsx67, jsxs as jsxs47 } from "react/jsx-runtime";
36994
+ import { jsx as jsx68, jsxs as jsxs48 } from "react/jsx-runtime";
36743
36995
  var RESUMABLE_GOAL_STATUSES = /* @__PURE__ */ new Set([
36744
36996
  "paused",
36745
36997
  "blocked",
@@ -36813,11 +37065,11 @@ function AgentGoalBanner({
36813
37065
  onClearGoal
36814
37066
  }) {
36815
37067
  "use memo";
36816
- const [editDraft, setEditDraft] = useState39(null);
37068
+ const [editDraft, setEditDraft] = useState40(null);
36817
37069
  const normalizedStatus = normalizeGoalStatus(status);
36818
37070
  const isActive = normalizedStatus === "" || normalizedStatus === "active";
36819
37071
  const serverSeconds = optimistic ? null : typeof durationMs === "number" && durationMs >= 0 ? Math.floor(durationMs / 1e3) : isActive ? 0 : null;
36820
- const [localElapsed, setLocalElapsed] = useState39(0);
37072
+ const [localElapsed, setLocalElapsed] = useState40(0);
36821
37073
  useEffect32(() => {
36822
37074
  setLocalElapsed(0);
36823
37075
  if (!isActive || serverSeconds === null) {
@@ -36849,16 +37101,16 @@ function AgentGoalBanner({
36849
37101
  onEditObjective?.(next);
36850
37102
  }
36851
37103
  };
36852
- return /* @__PURE__ */ jsx67("div", { className: AgentGUIChrome_styles_default.sessionChrome, children: /* @__PURE__ */ jsx67(
37104
+ return /* @__PURE__ */ jsx68("div", { className: AgentGUIChrome_styles_default.sessionChrome, children: /* @__PURE__ */ jsx68(
36853
37105
  "section",
36854
37106
  {
36855
37107
  className: cn(AgentGUIChrome_styles_default.chromeCard, AgentGUIChrome_styles_default.chromeCardMuted),
36856
37108
  role: "status",
36857
37109
  "data-testid": "agent-gui-goal-banner",
36858
- children: /* @__PURE__ */ jsxs47("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: [
36859
- /* @__PURE__ */ jsxs47("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
36860
- /* @__PURE__ */ jsx67("span", { className: AgentGUIChrome_styles_default.chromeIcon, children: /* @__PURE__ */ jsx67(Target3, { "aria-hidden": true, className: "size-3.5" }) }),
36861
- editDraft !== null ? /* @__PURE__ */ jsx67(
37110
+ children: /* @__PURE__ */ jsxs48("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: [
37111
+ /* @__PURE__ */ jsxs48("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
37112
+ /* @__PURE__ */ jsx68("span", { className: AgentGUIChrome_styles_default.chromeIcon, children: /* @__PURE__ */ jsx68(Target3, { "aria-hidden": true, className: "size-3.5" }) }),
37113
+ editDraft !== null ? /* @__PURE__ */ jsx68(
36862
37114
  "input",
36863
37115
  {
36864
37116
  className: AgentGUIChrome_styles_default.chromeGoalEditInput,
@@ -36878,14 +37130,14 @@ function AgentGoalBanner({
36878
37130
  },
36879
37131
  onBlur: () => setEditDraft(null)
36880
37132
  }
36881
- ) : /* @__PURE__ */ jsxs47(
37133
+ ) : /* @__PURE__ */ jsxs48(
36882
37134
  "p",
36883
37135
  {
36884
37136
  className: cn(AgentGUIChrome_styles_default.chromeMessage, AgentGUIChrome_styles_default.chromeNoticeMessage),
36885
37137
  title: fullMessage,
36886
37138
  children: [
36887
- /* @__PURE__ */ jsx67("span", { className: AgentGUIChrome_styles_default.chromeNoticeTitle, children: title }),
36888
- /* @__PURE__ */ jsx67(
37139
+ /* @__PURE__ */ jsx68("span", { className: AgentGUIChrome_styles_default.chromeNoticeTitle, children: title }),
37140
+ /* @__PURE__ */ jsx68(
36889
37141
  "span",
36890
37142
  {
36891
37143
  className: AgentGUIChrome_styles_default.chromeNoticeDescription,
@@ -36897,8 +37149,8 @@ function AgentGoalBanner({
36897
37149
  }
36898
37150
  )
36899
37151
  ] }),
36900
- hasActions ? /* @__PURE__ */ jsxs47("div", { className: AgentGUIChrome_styles_default.chromeGoalActions, children: [
36901
- onEditObjective !== void 0 && editDraft === null ? /* @__PURE__ */ jsx67(
37152
+ hasActions ? /* @__PURE__ */ jsxs48("div", { className: AgentGUIChrome_styles_default.chromeGoalActions, children: [
37153
+ onEditObjective !== void 0 && editDraft === null ? /* @__PURE__ */ jsx68(
36902
37154
  "button",
36903
37155
  {
36904
37156
  type: "button",
@@ -36906,10 +37158,10 @@ function AgentGoalBanner({
36906
37158
  title: labels.editAction,
36907
37159
  "aria-label": labels.editAction,
36908
37160
  "data-testid": "agent-gui-goal-banner-edit",
36909
- children: /* @__PURE__ */ jsx67(Pencil3, { "aria-hidden": true, className: "size-3.5" })
37161
+ children: /* @__PURE__ */ jsx68(Pencil3, { "aria-hidden": true, className: "size-3.5" })
36910
37162
  }
36911
37163
  ) : null,
36912
- showPause ? /* @__PURE__ */ jsx67(
37164
+ showPause ? /* @__PURE__ */ jsx68(
36913
37165
  "button",
36914
37166
  {
36915
37167
  type: "button",
@@ -36917,10 +37169,10 @@ function AgentGoalBanner({
36917
37169
  title: labels.pauseAction,
36918
37170
  "aria-label": labels.pauseAction,
36919
37171
  "data-testid": "agent-gui-goal-banner-pause",
36920
- children: /* @__PURE__ */ jsx67(CirclePause, { "aria-hidden": true, className: "size-3.5" })
37172
+ children: /* @__PURE__ */ jsx68(CirclePause, { "aria-hidden": true, className: "size-3.5" })
36921
37173
  }
36922
37174
  ) : null,
36923
- showResume ? /* @__PURE__ */ jsx67(
37175
+ showResume ? /* @__PURE__ */ jsx68(
36924
37176
  "button",
36925
37177
  {
36926
37178
  type: "button",
@@ -36928,10 +37180,10 @@ function AgentGoalBanner({
36928
37180
  title: labels.resumeAction,
36929
37181
  "aria-label": labels.resumeAction,
36930
37182
  "data-testid": "agent-gui-goal-banner-resume",
36931
- children: /* @__PURE__ */ jsx67(CirclePlay, { "aria-hidden": true, className: "size-3.5" })
37183
+ children: /* @__PURE__ */ jsx68(CirclePlay, { "aria-hidden": true, className: "size-3.5" })
36932
37184
  }
36933
37185
  ) : null,
36934
- onClearGoal !== void 0 ? /* @__PURE__ */ jsx67(
37186
+ onClearGoal !== void 0 ? /* @__PURE__ */ jsx68(
36935
37187
  "button",
36936
37188
  {
36937
37189
  type: "button",
@@ -36939,10 +37191,10 @@ function AgentGoalBanner({
36939
37191
  title: labels.clearAction,
36940
37192
  "aria-label": labels.clearAction,
36941
37193
  "data-testid": "agent-gui-goal-banner-clear",
36942
- children: /* @__PURE__ */ jsx67(Trash2, { "aria-hidden": true, className: "size-3.5" })
37194
+ children: /* @__PURE__ */ jsx68(Trash2, { "aria-hidden": true, className: "size-3.5" })
36943
37195
  }
36944
37196
  ) : null
36945
- ] }) : /* @__PURE__ */ jsx67(
37197
+ ] }) : /* @__PURE__ */ jsx68(
36946
37198
  "span",
36947
37199
  {
36948
37200
  className: AgentGUIChrome_styles_default.chromeGoalHint,
@@ -36957,114 +37209,6 @@ function AgentGoalBanner({
36957
37209
 
36958
37210
  // agent-gui/agentGuiNode/TuttiPlanReviewBanner.tsx
36959
37211
  import { Gauge as Gauge2, Sparkles as Sparkles3, X as X7 } from "lucide-react";
36960
-
36961
- // agent-gui/agentGuiNode/composer/TuttiBudgetPopover.tsx
36962
- import { useState as useState40 } from "react";
36963
- import {
36964
- Button as Button9,
36965
- Popover as Popover5,
36966
- PopoverContent as PopoverContent4,
36967
- PopoverTrigger as PopoverTrigger3,
36968
- Slider
36969
- } from "@tutti-os/ui-system";
36970
- import { jsx as jsx68, jsxs as jsxs48 } from "react/jsx-runtime";
36971
- function TuttiBudgetPopover({
36972
- children,
36973
- intensity,
36974
- labels,
36975
- onConfirm
36976
- }) {
36977
- const [open, setOpen] = useState40(false);
36978
- const [draftIntensity, setDraftIntensity] = useState40(intensity);
36979
- return /* @__PURE__ */ jsxs48(
36980
- Popover5,
36981
- {
36982
- open,
36983
- onOpenChange: (nextOpen) => {
36984
- if (nextOpen) {
36985
- setDraftIntensity(intensity);
36986
- }
36987
- setOpen(nextOpen);
36988
- },
36989
- children: [
36990
- /* @__PURE__ */ jsx68(PopoverTrigger3, { asChild: true, children }),
36991
- /* @__PURE__ */ jsxs48(
36992
- PopoverContent4,
36993
- {
36994
- align: "start",
36995
- className: "nodrag",
36996
- "data-agent-tutti-budget-popover": "true",
36997
- onEscapeKeyDown: (event) => {
36998
- event.preventDefault();
36999
- setOpen(false);
37000
- },
37001
- onInteractOutside: (event) => event.preventDefault(),
37002
- onPointerDownOutside: (event) => event.preventDefault(),
37003
- children: [
37004
- /* @__PURE__ */ jsx68("div", { className: "text-[13px] font-semibold text-[var(--text-primary)]", children: labels.title }),
37005
- /* @__PURE__ */ jsxs48("div", { className: "grid gap-1.5 text-[12px] text-[var(--text-secondary)]", children: [
37006
- /* @__PURE__ */ jsxs48("div", { className: "flex items-center justify-between gap-2", children: [
37007
- /* @__PURE__ */ jsx68("span", { children: labels.intensityLabel }),
37008
- /* @__PURE__ */ jsx68(
37009
- "span",
37010
- {
37011
- className: "text-[var(--text-primary)] tabular-nums",
37012
- "data-agent-tutti-budget-intensity-value": "true",
37013
- children: draftIntensity
37014
- }
37015
- )
37016
- ] }),
37017
- /* @__PURE__ */ jsx68(
37018
- Slider,
37019
- {
37020
- "aria-label": labels.intensityLabel,
37021
- max: 100,
37022
- min: 0,
37023
- step: 1,
37024
- value: [draftIntensity],
37025
- onValueChange: (values) => setDraftIntensity(values[0] ?? draftIntensity)
37026
- }
37027
- ),
37028
- /* @__PURE__ */ jsxs48("div", { className: "flex items-center justify-between gap-2 text-[11px]", children: [
37029
- /* @__PURE__ */ jsx68("span", { children: labels.intensityMin }),
37030
- /* @__PURE__ */ jsx68("span", { children: labels.intensityMax })
37031
- ] })
37032
- ] }),
37033
- /* @__PURE__ */ jsxs48("div", { className: "flex items-center justify-end gap-2", children: [
37034
- /* @__PURE__ */ jsx68(
37035
- Button9,
37036
- {
37037
- "data-agent-tutti-budget-cancel": "true",
37038
- size: "sm",
37039
- type: "button",
37040
- variant: "secondary",
37041
- onClick: () => setOpen(false),
37042
- children: labels.cancel
37043
- }
37044
- ),
37045
- /* @__PURE__ */ jsx68(
37046
- Button9,
37047
- {
37048
- "data-agent-tutti-budget-confirm": "true",
37049
- size: "sm",
37050
- type: "button",
37051
- onClick: () => {
37052
- onConfirm(draftIntensity);
37053
- setOpen(false);
37054
- },
37055
- children: labels.confirm
37056
- }
37057
- )
37058
- ] })
37059
- ]
37060
- }
37061
- )
37062
- ]
37063
- }
37064
- );
37065
- }
37066
-
37067
- // agent-gui/agentGuiNode/TuttiPlanReviewBanner.tsx
37068
37212
  import { jsx as jsx69, jsxs as jsxs49 } from "react/jsx-runtime";
37069
37213
  function TuttiPlanReviewBanner({
37070
37214
  labels,
@@ -37352,8 +37496,19 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
37352
37496
  intensityPopoverLabels: {
37353
37497
  title: composerProps.labels.tuttiBudgetTitle,
37354
37498
  intensityLabel: composerProps.labels.tuttiBudgetIntensityLabel,
37355
- intensityMin: composerProps.labels.tuttiBudgetIntensityMin,
37356
- intensityMax: composerProps.labels.tuttiBudgetIntensityMax,
37499
+ previewTitle: composerProps.labels.tuttiBudgetPreviewTitle,
37500
+ previewHint: composerProps.labels.tuttiBudgetPreviewHint,
37501
+ previewCost: composerProps.labels.tuttiBudgetPreviewCost,
37502
+ previewBalance: composerProps.labels.tuttiBudgetPreviewBalance,
37503
+ previewPowerful: composerProps.labels.tuttiBudgetPreviewPowerful,
37504
+ modelStrengthLabel: composerProps.labels.tuttiBudgetModelStrengthLabel,
37505
+ modelStrengthCost: composerProps.labels.tuttiBudgetModelStrengthCost,
37506
+ modelStrengthBalance: composerProps.labels.tuttiBudgetModelStrengthBalance,
37507
+ modelStrengthPowerful: composerProps.labels.tuttiBudgetModelStrengthPowerful,
37508
+ agentCountLabel: composerProps.labels.tuttiBudgetAgentCountLabel,
37509
+ agentCountCost: composerProps.labels.tuttiBudgetAgentCountCost,
37510
+ agentCountBalance: composerProps.labels.tuttiBudgetAgentCountBalance,
37511
+ agentCountPowerful: composerProps.labels.tuttiBudgetAgentCountPowerful,
37357
37512
  confirm: composerProps.labels.tuttiBudgetConfirm,
37358
37513
  cancel: composerProps.labels.tuttiBudgetCancel
37359
37514
  },
@@ -37511,6 +37666,15 @@ import {
37511
37666
  var AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX = 24;
37512
37667
  var AGENT_GUI_TOP_HISTORY_PREFETCH_THRESHOLD_PX = 240;
37513
37668
  var AGENT_GUI_TOP_MASK_SCROLL_EPSILON_PX = 1;
37669
+ function readTimelineGeometry(timeline) {
37670
+ const scrollHeight = timeline.scrollHeight;
37671
+ const clientHeight = timeline.clientHeight;
37672
+ return {
37673
+ clientHeight,
37674
+ maxScrollTop: Math.max(0, scrollHeight - clientHeight),
37675
+ scrollHeight
37676
+ };
37677
+ }
37514
37678
  function useAgentGUIDetailScroll(input) {
37515
37679
  const {
37516
37680
  actions,
@@ -37557,10 +37721,8 @@ function useAgentGUIDetailScroll(input) {
37557
37721
  if (!conversationChanged && !shouldScrollSubmittedPromptToBottom && !shouldRestorePrependAnchor && !timelineSkeletonChanged) {
37558
37722
  return;
37559
37723
  }
37560
- const maxScrollTop = Math.max(
37561
- 0,
37562
- timeline.scrollHeight - timeline.clientHeight
37563
- );
37724
+ const geometry = readTimelineGeometry(timeline);
37725
+ const maxScrollTop = geometry.maxScrollTop;
37564
37726
  let nextScrollTop;
37565
37727
  if (conversationChanged || shouldScrollSubmittedPromptToBottom) {
37566
37728
  bottomLockOwnerRef.current = activeConversationId;
@@ -37575,7 +37737,7 @@ function useAgentGUIDetailScroll(input) {
37575
37737
  pendingPrependScrollAnchorRef.current = null;
37576
37738
  }
37577
37739
  } else if (shouldRestorePrependAnchor && prependAnchor) {
37578
- const nextScrollHeight = timeline.scrollHeight;
37740
+ const nextScrollHeight = geometry.scrollHeight;
37579
37741
  const delta = nextScrollHeight - prependAnchor.scrollHeight;
37580
37742
  nextScrollTop = Math.max(0, prependAnchor.scrollTop + delta);
37581
37743
  timeline.scrollTop = nextScrollTop;
@@ -37600,9 +37762,9 @@ function useAgentGUIDetailScroll(input) {
37600
37762
  }
37601
37763
  timelineScrollAnchorRef.current = {
37602
37764
  conversationId: activeConversationId,
37603
- scrollHeight: timeline.scrollHeight,
37765
+ scrollHeight: geometry.scrollHeight,
37604
37766
  scrollTop: nextScrollTop,
37605
- clientHeight: timeline.clientHeight
37767
+ clientHeight: geometry.clientHeight
37606
37768
  };
37607
37769
  setIsTimelineScrolledToTop(
37608
37770
  nextScrollTop <= AGENT_GUI_TOP_MASK_SCROLL_EPSILON_PX
@@ -37690,16 +37852,14 @@ function useAgentGUIDetailScroll(input) {
37690
37852
  if (!latestBottomLocked && latestDistanceFromBottom > AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX) {
37691
37853
  return;
37692
37854
  }
37693
- const maxScrollTop = Math.max(
37694
- 0,
37695
- timeline.scrollHeight - timeline.clientHeight
37696
- );
37855
+ const geometry = readTimelineGeometry(timeline);
37856
+ const maxScrollTop = geometry.maxScrollTop;
37697
37857
  timeline.scrollTop = maxScrollTop;
37698
37858
  timelineScrollAnchorRef.current = {
37699
37859
  conversationId: activeConversationId,
37700
- scrollHeight: timeline.scrollHeight,
37860
+ scrollHeight: geometry.scrollHeight,
37701
37861
  scrollTop: maxScrollTop,
37702
- clientHeight: timeline.clientHeight
37862
+ clientHeight: geometry.clientHeight
37703
37863
  };
37704
37864
  setIsTimelineScrolledToTop(
37705
37865
  maxScrollTop <= AGENT_GUI_TOP_MASK_SCROLL_EPSILON_PX
@@ -37749,6 +37909,16 @@ function useAgentGUIDetailScroll(input) {
37749
37909
  if (!timeline || !activeConversationId) {
37750
37910
  return;
37751
37911
  }
37912
+ const loadOlderMessagesNearTop = (scrollTop, scrollHeight) => {
37913
+ if (activeConversationId === viewModel.rail.activeConversationId && viewModel.detail.hasOlderMessages && !viewModel.detail.isLoadingOlderMessages && scrollTop <= AGENT_GUI_TOP_HISTORY_PREFETCH_THRESHOLD_PX) {
37914
+ pendingPrependScrollAnchorRef.current = {
37915
+ conversationId: activeConversationId,
37916
+ scrollHeight,
37917
+ scrollTop
37918
+ };
37919
+ actions.loadOlderConversationMessages();
37920
+ }
37921
+ };
37752
37922
  const captureScrollAnchor = () => {
37753
37923
  const previousAnchor = timelineScrollAnchorRef.current;
37754
37924
  if (!previousAnchor || previousAnchor.conversationId !== activeConversationId) {
@@ -37776,23 +37946,15 @@ function useAgentGUIDetailScroll(input) {
37776
37946
  scrollTop <= AGENT_GUI_TOP_MASK_SCROLL_EPSILON_PX
37777
37947
  );
37778
37948
  setIsTimelineScrolledToBottom(effectiveAtBottom);
37779
- if (activeConversationId === viewModel.rail.activeConversationId && viewModel.detail.hasOlderMessages && !viewModel.detail.isLoadingOlderMessages && scrollTop <= AGENT_GUI_TOP_HISTORY_PREFETCH_THRESHOLD_PX) {
37780
- pendingPrependScrollAnchorRef.current = {
37781
- conversationId: activeConversationId,
37782
- scrollHeight: previousAnchor.scrollHeight,
37783
- scrollTop
37784
- };
37785
- actions.loadOlderConversationMessages();
37786
- }
37949
+ loadOlderMessagesNearTop(scrollTop, previousAnchor.scrollHeight);
37787
37950
  };
37788
37951
  const syncObservedTimelineGeometry = () => {
37789
37952
  const anchor = timelineScrollAnchorRef.current;
37790
37953
  if (!anchor || anchor.conversationId !== activeConversationId) {
37791
37954
  return;
37792
37955
  }
37793
- const scrollHeight = timeline.scrollHeight;
37794
- const clientHeight = timeline.clientHeight;
37795
- const maxScrollTop = Math.max(0, scrollHeight - clientHeight);
37956
+ const geometry = readTimelineGeometry(timeline);
37957
+ const { clientHeight, maxScrollTop, scrollHeight } = geometry;
37796
37958
  const bottomLocked = bottomLockOwnerRef.current === activeConversationId;
37797
37959
  let scrollTop = Math.min(maxScrollTop, timeline.scrollTop);
37798
37960
  if (bottomLocked) {
@@ -37824,7 +37986,13 @@ function useAgentGUIDetailScroll(input) {
37824
37986
  userScrollAwayIntentConversationRef.current = activeConversationId;
37825
37987
  }
37826
37988
  };
37827
- captureScrollAnchor();
37989
+ const initialAnchor = timelineScrollAnchorRef.current;
37990
+ if (initialAnchor?.conversationId === activeConversationId) {
37991
+ loadOlderMessagesNearTop(
37992
+ initialAnchor.scrollTop,
37993
+ initialAnchor.scrollHeight
37994
+ );
37995
+ }
37828
37996
  timeline.addEventListener("scroll", captureScrollAnchor, { passive: true });
37829
37997
  timeline.addEventListener("wheel", captureWheelIntent, { passive: true });
37830
37998
  timeline.addEventListener("keydown", captureKeyboardIntent);
@@ -37855,18 +38023,16 @@ function useAgentGUIDetailScroll(input) {
37855
38023
  if (activeConversationId !== viewModel.rail.activeConversationId) {
37856
38024
  return;
37857
38025
  }
37858
- const maxScrollTop = Math.max(
37859
- 0,
37860
- timeline.scrollHeight - timeline.clientHeight
37861
- );
38026
+ const geometry = readTimelineGeometry(timeline);
38027
+ const maxScrollTop = geometry.maxScrollTop;
37862
38028
  bottomLockOwnerRef.current = activeConversationId;
37863
38029
  userScrollAwayIntentConversationRef.current = null;
37864
38030
  setTimelineScrollTopWithUserTransition(timeline, maxScrollTop);
37865
38031
  timelineScrollAnchorRef.current = {
37866
38032
  conversationId: activeConversationId,
37867
- scrollHeight: timeline.scrollHeight,
38033
+ scrollHeight: geometry.scrollHeight,
37868
38034
  scrollTop: maxScrollTop,
37869
- clientHeight: timeline.clientHeight
38035
+ clientHeight: geometry.clientHeight
37870
38036
  };
37871
38037
  setIsTimelineScrolledToTop(
37872
38038
  maxScrollTop <= AGENT_GUI_TOP_MASK_SCROLL_EPSILON_PX
@@ -38273,10 +38439,22 @@ function useAgentGUIDetailModel(input) {
38273
38439
  normalModeDescription: labels.normalModeDescription,
38274
38440
  tuttiModeLabel: labels.tuttiModeLabel,
38275
38441
  tuttiModeDescription: labels.tuttiModeDescription,
38442
+ tuttiModeRemove: labels.tuttiModeRemove,
38276
38443
  tuttiBudgetTitle: labels.tuttiBudgetTitle,
38277
38444
  tuttiBudgetIntensityLabel: labels.tuttiBudgetIntensityLabel,
38278
- tuttiBudgetIntensityMin: labels.tuttiBudgetIntensityMin,
38279
- tuttiBudgetIntensityMax: labels.tuttiBudgetIntensityMax,
38445
+ tuttiBudgetPreviewTitle: labels.tuttiBudgetPreviewTitle,
38446
+ tuttiBudgetPreviewHint: labels.tuttiBudgetPreviewHint,
38447
+ tuttiBudgetPreviewCost: labels.tuttiBudgetPreviewCost,
38448
+ tuttiBudgetPreviewBalance: labels.tuttiBudgetPreviewBalance,
38449
+ tuttiBudgetPreviewPowerful: labels.tuttiBudgetPreviewPowerful,
38450
+ tuttiBudgetModelStrengthLabel: labels.tuttiBudgetModelStrengthLabel,
38451
+ tuttiBudgetModelStrengthCost: labels.tuttiBudgetModelStrengthCost,
38452
+ tuttiBudgetModelStrengthBalance: labels.tuttiBudgetModelStrengthBalance,
38453
+ tuttiBudgetModelStrengthPowerful: labels.tuttiBudgetModelStrengthPowerful,
38454
+ tuttiBudgetAgentCountLabel: labels.tuttiBudgetAgentCountLabel,
38455
+ tuttiBudgetAgentCountCost: labels.tuttiBudgetAgentCountCost,
38456
+ tuttiBudgetAgentCountBalance: labels.tuttiBudgetAgentCountBalance,
38457
+ tuttiBudgetAgentCountPowerful: labels.tuttiBudgetAgentCountPowerful,
38280
38458
  tuttiBudgetConfirm: labels.tuttiBudgetConfirm,
38281
38459
  tuttiBudgetCancel: labels.tuttiBudgetCancel,
38282
38460
  planModeDescription: labels.planModeDescription,
@@ -38420,10 +38598,22 @@ function useAgentGUIDetailModel(input) {
38420
38598
  labels.normalModeDescription,
38421
38599
  labels.tuttiModeLabel,
38422
38600
  labels.tuttiModeDescription,
38601
+ labels.tuttiModeRemove,
38423
38602
  labels.tuttiBudgetTitle,
38424
38603
  labels.tuttiBudgetIntensityLabel,
38425
- labels.tuttiBudgetIntensityMin,
38426
- labels.tuttiBudgetIntensityMax,
38604
+ labels.tuttiBudgetPreviewTitle,
38605
+ labels.tuttiBudgetPreviewHint,
38606
+ labels.tuttiBudgetPreviewCost,
38607
+ labels.tuttiBudgetPreviewBalance,
38608
+ labels.tuttiBudgetPreviewPowerful,
38609
+ labels.tuttiBudgetModelStrengthLabel,
38610
+ labels.tuttiBudgetModelStrengthCost,
38611
+ labels.tuttiBudgetModelStrengthBalance,
38612
+ labels.tuttiBudgetModelStrengthPowerful,
38613
+ labels.tuttiBudgetAgentCountLabel,
38614
+ labels.tuttiBudgetAgentCountCost,
38615
+ labels.tuttiBudgetAgentCountBalance,
38616
+ labels.tuttiBudgetAgentCountPowerful,
38427
38617
  labels.tuttiBudgetConfirm,
38428
38618
  labels.tuttiBudgetCancel,
38429
38619
  labels.planModeDescription,
@@ -38754,7 +38944,7 @@ import ReactMarkdown2 from "react-markdown";
38754
38944
  import rehypeSanitize from "rehype-sanitize";
38755
38945
  import remarkGfm2 from "remark-gfm";
38756
38946
  import {
38757
- Badge,
38947
+ Badge as Badge2,
38758
38948
  Card,
38759
38949
  CardContent,
38760
38950
  CardDescription,
@@ -39091,8 +39281,8 @@ function TuttiModePlanPanel({
39091
39281
  children: [
39092
39282
  /* @__PURE__ */ jsxs56(CardHeader, { children: [
39093
39283
  /* @__PURE__ */ jsxs56("div", { className: "flex flex-wrap items-center gap-2", children: [
39094
- /* @__PURE__ */ jsx78(Badge, { variant: "accent", children: labels.mode }),
39095
- /* @__PURE__ */ jsx78(Badge, { variant: "pending", children: labels.pending }),
39284
+ /* @__PURE__ */ jsx78(Badge2, { variant: "accent", children: labels.mode }),
39285
+ /* @__PURE__ */ jsx78(Badge2, { variant: "pending", children: labels.pending }),
39096
39286
  /* @__PURE__ */ jsx78("span", { className: "text-xs text-muted-foreground", children: labels.taskReview })
39097
39287
  ] }),
39098
39288
  /* @__PURE__ */ jsx78(CardTitle, { children: panel.title }),
@@ -39120,7 +39310,7 @@ function TuttiModePlanPanel({
39120
39310
  ". ",
39121
39311
  task.title
39122
39312
  ] }),
39123
- /* @__PURE__ */ jsx78(Badge, { variant: "secondary", children: priorityLabel(labels, task.priority) })
39313
+ /* @__PURE__ */ jsx78(Badge2, { variant: "secondary", children: priorityLabel(labels, task.priority) })
39124
39314
  ] }),
39125
39315
  task.content ? /* @__PURE__ */ jsx78("p", { className: "mt-1 text-xs text-muted-foreground", children: task.content }) : null,
39126
39316
  editable && assignmentCatalog ? /* @__PURE__ */ jsx78(
@@ -41956,7 +42146,7 @@ function AgentGUINodeView({
41956
42146
  const requestComposerFocus = useCallback67(() => {
41957
42147
  setLocalComposerFocusRequestSequence((current) => current + 1);
41958
42148
  }, []);
41959
- const requestCreateConversation = useCallback67(
42149
+ const requestCreateConversation = useStableEventCallback(
41960
42150
  (options) => {
41961
42151
  if (previewMode) {
41962
42152
  return;
@@ -41973,13 +42163,7 @@ function AgentGUINodeView({
41973
42163
  createConversationAction({ source: source ?? "rail_toolbar" });
41974
42164
  }
41975
42165
  requestComposerFocus();
41976
- },
41977
- [
41978
- createConversationAction,
41979
- previewMode,
41980
- requestComposerFocus,
41981
- viewModel.composer.composerSettings.selectedProjectPath
41982
- ]
42166
+ }
41983
42167
  );
41984
42168
  const effectiveWorkspaceAppIcons = useMemo48(
41985
42169
  () => mergeWorkspaceAppIconsFromCommands({
@@ -43114,6 +43298,46 @@ function agentGUITuttiModeLabels(t) {
43114
43298
  return {
43115
43299
  tuttiModeLabel: t("agentHost.agentGui.tuttiModeLabel"),
43116
43300
  tuttiModeDescription: t("agentHost.agentGui.tuttiModeDescription"),
43301
+ tuttiModeRemove: t("agentHost.agentGui.tuttiModeRemove"),
43302
+ tuttiBudgetTitle: t("agentHost.agentGui.tuttiBudgetTitle"),
43303
+ tuttiBudgetIntensityLabel: t(
43304
+ "agentHost.agentGui.tuttiBudgetIntensityLabel"
43305
+ ),
43306
+ tuttiBudgetPreviewTitle: t("agentHost.agentGui.tuttiBudgetPreviewTitle"),
43307
+ tuttiBudgetPreviewHint: t("agentHost.agentGui.tuttiBudgetPreviewHint"),
43308
+ tuttiBudgetPreviewCost: t("agentHost.agentGui.tuttiBudgetPreviewCost"),
43309
+ tuttiBudgetPreviewBalance: t(
43310
+ "agentHost.agentGui.tuttiBudgetPreviewBalance"
43311
+ ),
43312
+ tuttiBudgetPreviewPowerful: t(
43313
+ "agentHost.agentGui.tuttiBudgetPreviewPowerful"
43314
+ ),
43315
+ tuttiBudgetModelStrengthLabel: t(
43316
+ "agentHost.agentGui.tuttiBudgetModelStrengthLabel"
43317
+ ),
43318
+ tuttiBudgetModelStrengthCost: t(
43319
+ "agentHost.agentGui.tuttiBudgetModelStrengthCost"
43320
+ ),
43321
+ tuttiBudgetModelStrengthBalance: t(
43322
+ "agentHost.agentGui.tuttiBudgetModelStrengthBalance"
43323
+ ),
43324
+ tuttiBudgetModelStrengthPowerful: t(
43325
+ "agentHost.agentGui.tuttiBudgetModelStrengthPowerful"
43326
+ ),
43327
+ tuttiBudgetAgentCountLabel: t(
43328
+ "agentHost.agentGui.tuttiBudgetAgentCountLabel"
43329
+ ),
43330
+ tuttiBudgetAgentCountCost: t(
43331
+ "agentHost.agentGui.tuttiBudgetAgentCountCost"
43332
+ ),
43333
+ tuttiBudgetAgentCountBalance: t(
43334
+ "agentHost.agentGui.tuttiBudgetAgentCountBalance"
43335
+ ),
43336
+ tuttiBudgetAgentCountPowerful: t(
43337
+ "agentHost.agentGui.tuttiBudgetAgentCountPowerful"
43338
+ ),
43339
+ tuttiBudgetConfirm: t("agentHost.agentGui.tuttiBudgetConfirm"),
43340
+ tuttiBudgetCancel: t("agentHost.agentGui.tuttiBudgetCancel"),
43117
43341
  tuttiModeUpdateFailed: t("agentHost.agentGui.tuttiModeUpdateFailed"),
43118
43342
  tuttiModeUpdateUncertain: t("agentHost.agentGui.tuttiModeUpdateUncertain"),
43119
43343
  tuttiModePlanPanel: {
@@ -43390,14 +43614,6 @@ function useAgentGUIViewLabels(input) {
43390
43614
  normalModeLabel: t("agentHost.agentGui.normalModeLabel"),
43391
43615
  normalModeDescription: t("agentHost.agentGui.normalModeDescription"),
43392
43616
  ...agentGUITuttiModeLabels(t),
43393
- tuttiBudgetTitle: t("agentHost.agentGui.tuttiBudgetTitle"),
43394
- tuttiBudgetIntensityLabel: t(
43395
- "agentHost.agentGui.tuttiBudgetIntensityLabel"
43396
- ),
43397
- tuttiBudgetIntensityMin: t("agentHost.agentGui.tuttiBudgetIntensityMin"),
43398
- tuttiBudgetIntensityMax: t("agentHost.agentGui.tuttiBudgetIntensityMax"),
43399
- tuttiBudgetConfirm: t("agentHost.agentGui.tuttiBudgetConfirm"),
43400
- tuttiBudgetCancel: t("agentHost.agentGui.tuttiBudgetCancel"),
43401
43617
  planModeDescription: t("agentHost.agentGui.planModeDescription"),
43402
43618
  planModeOnLabel: t("agentHost.agentGui.planModeOnLabel"),
43403
43619
  planModeOffLabel: t("agentHost.agentGui.planModeOffLabel"),
@@ -44465,4 +44681,4 @@ export {
44465
44681
  AgentHandoffMenu,
44466
44682
  AgentGUI
44467
44683
  };
44468
- //# sourceMappingURL=chunk-YGSGFI7V.js.map
44684
+ //# sourceMappingURL=chunk-NTY3JIYS.js.map