@tutti-os/agent-gui 0.0.209 → 0.0.211
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -1
- package/dist/{AgentRichTextReadonly-DFWY2WYO.js → AgentRichTextReadonly-GEGDM5UJ.js} +5 -5
- package/dist/agent-conversation/index.js +7 -7
- package/dist/agent-gui.d.ts +2 -0
- package/dist/agent-gui.js +14 -14
- package/dist/agent-message-center/index.js +6 -6
- package/dist/app/renderer/agentactivity.css +5 -0
- package/dist/app/renderer/assets/icons/agents/tutti-mode.png +0 -0
- package/dist/app/renderer/assets/icons/tutti-intensity-handle-balance.png +0 -0
- package/dist/app/renderer/assets/icons/tutti-intensity-handle-cost.png +0 -0
- package/dist/app/renderer/assets/icons/tutti-intensity-handle-powerful.png +0 -0
- package/dist/app/renderer/assets/icons/tutti-mode-lined.svg +3 -0
- package/dist/{chunk-CKUR2VKA.js → chunk-3MMKYY6R.js} +2 -2
- package/dist/{chunk-RAO2PI3T.js → chunk-4VXUWPPZ.js} +4 -4
- package/dist/{chunk-5RZVXSQQ.js → chunk-7CJEFNHW.js} +2 -2
- package/dist/{chunk-RTKIOE4R.js → chunk-AT4DII34.js} +548 -578
- package/dist/chunk-AT4DII34.js.map +1 -0
- package/dist/{chunk-HXAOFFZJ.js → chunk-CVGUT36H.js} +2 -2
- package/dist/{chunk-FWR5BZYR.js → chunk-HH5EWBH2.js} +2 -2
- package/dist/{chunk-6LXC5BME.js → chunk-KY2IYJXK.js} +4 -4
- package/dist/{chunk-DKRX5IZS.js → chunk-P4LVBSFC.js} +3 -3
- package/dist/{chunk-JRYR2EA5.js → chunk-PLAOIDNY.js} +4 -4
- package/dist/{chunk-CCFYCSBK.js → chunk-SXZJ3MDI.js} +6 -6
- package/dist/{chunk-V2MU37VN.js → chunk-U5NVLMW2.js} +2 -2
- package/dist/{chunk-THRBLO2B.js → chunk-X2LSVRRX.js} +2 -2
- package/dist/{chunk-M2VRYG7U.js → chunk-Y2VQMPUR.js} +9 -9
- package/dist/chunk-Y2VQMPUR.js.map +1 -0
- package/dist/{chunk-VGPFDVSK.js → chunk-Z23HCYYR.js} +3 -3
- package/dist/context-mention-palette/index.js +7 -7
- package/dist/i18n/index.d.ts +8 -8
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +10 -8
- package/dist/index.js +14 -14
- package/dist/mention-search.js +5 -5
- package/dist/workbench/contribution.js +3 -3
- package/dist/workbench/index.js +3 -3
- package/dist/workbench/sessionTitle.js +2 -2
- package/package.json +16 -16
- package/dist/chunk-M2VRYG7U.js.map +0 -1
- package/dist/chunk-RTKIOE4R.js.map +0 -1
- /package/dist/{AgentRichTextReadonly-DFWY2WYO.js.map → AgentRichTextReadonly-GEGDM5UJ.js.map} +0 -0
- /package/dist/{chunk-CKUR2VKA.js.map → chunk-3MMKYY6R.js.map} +0 -0
- /package/dist/{chunk-RAO2PI3T.js.map → chunk-4VXUWPPZ.js.map} +0 -0
- /package/dist/{chunk-5RZVXSQQ.js.map → chunk-7CJEFNHW.js.map} +0 -0
- /package/dist/{chunk-HXAOFFZJ.js.map → chunk-CVGUT36H.js.map} +0 -0
- /package/dist/{chunk-FWR5BZYR.js.map → chunk-HH5EWBH2.js.map} +0 -0
- /package/dist/{chunk-6LXC5BME.js.map → chunk-KY2IYJXK.js.map} +0 -0
- /package/dist/{chunk-DKRX5IZS.js.map → chunk-P4LVBSFC.js.map} +0 -0
- /package/dist/{chunk-JRYR2EA5.js.map → chunk-PLAOIDNY.js.map} +0 -0
- /package/dist/{chunk-CCFYCSBK.js.map → chunk-SXZJ3MDI.js.map} +0 -0
- /package/dist/{chunk-V2MU37VN.js.map → chunk-U5NVLMW2.js.map} +0 -0
- /package/dist/{chunk-THRBLO2B.js.map → chunk-X2LSVRRX.js.map} +0 -0
- /package/dist/{chunk-VGPFDVSK.js.map → chunk-Z23HCYYR.js.map} +0 -0
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
resolveAgentGuiSessionProviderFlatIconUrl,
|
|
16
16
|
resolveNextAgentGUIConversationRailWidthPx,
|
|
17
17
|
shouldAutoCollapseAgentGUIConversationRail
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-P4LVBSFC.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-
|
|
37
|
+
} from "./chunk-U5NVLMW2.js";
|
|
38
38
|
import {
|
|
39
39
|
AgentCommercePresentationProvider,
|
|
40
40
|
AgentConversationFlow,
|
|
@@ -70,7 +70,7 @@ import {
|
|
|
70
70
|
toLocalShortDateTime,
|
|
71
71
|
updateAgentComposerDraft,
|
|
72
72
|
useProjectedAgentConversation
|
|
73
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-SXZJ3MDI.js";
|
|
74
74
|
import {
|
|
75
75
|
agentRichTextContentToPromptText,
|
|
76
76
|
createAgentRichTextInputExtensions,
|
|
@@ -80,7 +80,7 @@ import {
|
|
|
80
80
|
plainTextToAgentRichTextInlineContent,
|
|
81
81
|
skillDescriptionForDisplay,
|
|
82
82
|
skillTriggerForPrefix
|
|
83
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-CVGUT36H.js";
|
|
84
84
|
import {
|
|
85
85
|
AgentEnvPanelActionProvider
|
|
86
86
|
} from "./chunk-JZ6KUUDY.js";
|
|
@@ -95,7 +95,7 @@ import {
|
|
|
95
95
|
AgentFileMentionPalette,
|
|
96
96
|
agentMentionItemKey,
|
|
97
97
|
isAgentMentionItemDisabled
|
|
98
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-KY2IYJXK.js";
|
|
99
99
|
import {
|
|
100
100
|
normalizeAgentGUIAgents,
|
|
101
101
|
projectAgentGUIAgentsToTargets
|
|
@@ -106,7 +106,7 @@ import {
|
|
|
106
106
|
DEFAULT_AGENT_MENTION_FILTER,
|
|
107
107
|
agentGuiScheduler,
|
|
108
108
|
buildWorkspaceAgentActivityListViewModel
|
|
109
|
-
} from "./chunk-
|
|
109
|
+
} from "./chunk-PLAOIDNY.js";
|
|
110
110
|
import {
|
|
111
111
|
AGENT_RICH_TEXT_CARET_ANCHOR,
|
|
112
112
|
agentComposerFileMentionReferences,
|
|
@@ -123,7 +123,7 @@ import {
|
|
|
123
123
|
parseMentionItemFromHref,
|
|
124
124
|
remainingAgentComposerPromptAssetSlots,
|
|
125
125
|
updateAgentComposerFileMentions
|
|
126
|
-
} from "./chunk-
|
|
126
|
+
} from "./chunk-7CJEFNHW.js";
|
|
127
127
|
import {
|
|
128
128
|
AgentInteractivePromptSurface,
|
|
129
129
|
PLAN_IMPLEMENTATION_ACTION_FEEDBACK,
|
|
@@ -135,7 +135,7 @@ import {
|
|
|
135
135
|
normalizePlanIssueBudgetPreset,
|
|
136
136
|
planImplementationPromptFromPlanTurn,
|
|
137
137
|
planIssueBudgetPresetsEqual
|
|
138
|
-
} from "./chunk-
|
|
138
|
+
} from "./chunk-4VXUWPPZ.js";
|
|
139
139
|
import {
|
|
140
140
|
useEngineSelector
|
|
141
141
|
} from "./chunk-EVQ4JY3N.js";
|
|
@@ -145,7 +145,7 @@ import {
|
|
|
145
145
|
blobToBase64,
|
|
146
146
|
normalizeAgentApprovalPurpose,
|
|
147
147
|
resolveWorkspaceLinkAction
|
|
148
|
-
} from "./chunk-
|
|
148
|
+
} from "./chunk-Z23HCYYR.js";
|
|
149
149
|
import {
|
|
150
150
|
AgentTargetPresentationProvider,
|
|
151
151
|
cn,
|
|
@@ -163,7 +163,7 @@ import {
|
|
|
163
163
|
useAgentHostApi,
|
|
164
164
|
useOptionalAgentActivityRuntime,
|
|
165
165
|
useOptionalAgentHostApi
|
|
166
|
-
} from "./chunk-
|
|
166
|
+
} from "./chunk-HH5EWBH2.js";
|
|
167
167
|
import {
|
|
168
168
|
MANAGED_AGENT_ICON_FALLBACK_URL,
|
|
169
169
|
MANAGED_AGENT_ICON_URLS,
|
|
@@ -173,7 +173,7 @@ import {
|
|
|
173
173
|
AgentGuiI18nProvider,
|
|
174
174
|
translate,
|
|
175
175
|
useTranslation
|
|
176
|
-
} from "./chunk-
|
|
176
|
+
} from "./chunk-X2LSVRRX.js";
|
|
177
177
|
import {
|
|
178
178
|
isBetaAgentProvider,
|
|
179
179
|
normalizeManagedAgentProvider
|
|
@@ -15050,6 +15050,7 @@ var styles = {
|
|
|
15050
15050
|
composerFooterRight: "agent-gui-node__composer-footer-right",
|
|
15051
15051
|
composerHero: "agent-gui-node__composer-hero",
|
|
15052
15052
|
composerFloatingPrompt: "agent-gui-node__composer-floating-prompt",
|
|
15053
|
+
composerDisclosurePanel: "agent-gui-chrome__composer-disclosure-panel",
|
|
15053
15054
|
composerFileDropOverlay: "agent-gui-node__composer-file-drop-overlay",
|
|
15054
15055
|
composerFileDropOverlayActive: "agent-gui-node__composer-file-drop-overlay--active",
|
|
15055
15056
|
composerFileDropOverlayCard: "agent-gui-node__composer-file-drop-overlay-card",
|
|
@@ -15992,7 +15993,7 @@ import {
|
|
|
15992
15993
|
useCallback as useCallback51,
|
|
15993
15994
|
useMemo as useMemo37,
|
|
15994
15995
|
useRef as useRef45,
|
|
15995
|
-
useState as
|
|
15996
|
+
useState as useState32
|
|
15996
15997
|
} from "react";
|
|
15997
15998
|
import { Tooltip as Tooltip9, TooltipContent as TooltipContent9, TooltipTrigger as TooltipTrigger9 } from "@tutti-os/ui-system";
|
|
15998
15999
|
|
|
@@ -16215,14 +16216,12 @@ function changeAgentGUIProviderManagerVisibility(input) {
|
|
|
16215
16216
|
}
|
|
16216
16217
|
|
|
16217
16218
|
// agent-gui/agentGuiNode/view/AgentGUIEmptyState.tsx
|
|
16218
|
-
import { memo as memo3,
|
|
16219
|
-
import { Sparkles as Sparkles2 } from "lucide-react";
|
|
16219
|
+
import { memo as memo3, useMemo as useMemo36 } from "react";
|
|
16220
16220
|
import {
|
|
16221
16221
|
Select as Select5,
|
|
16222
16222
|
SelectContent as SelectContent5,
|
|
16223
16223
|
SelectItem as SelectItem5,
|
|
16224
16224
|
SelectTrigger as SelectTrigger5,
|
|
16225
|
-
Switch,
|
|
16226
16225
|
cn as cn7
|
|
16227
16226
|
} from "@tutti-os/ui-system";
|
|
16228
16227
|
|
|
@@ -17925,7 +17924,7 @@ function AgentSessionChrome({
|
|
|
17925
17924
|
}
|
|
17926
17925
|
|
|
17927
17926
|
// agent-gui/agentGuiNode/AgentComposer.tsx
|
|
17928
|
-
import { useCallback as useCallback48, useEffect as useEffect28, useRef as useRef42, useState as
|
|
17927
|
+
import { useCallback as useCallback48, useEffect as useEffect28, useRef as useRef42, useState as useState28 } from "react";
|
|
17929
17928
|
import { repairMentionPaletteHighlight } from "@tutti-os/ui-rich-text/at-panel";
|
|
17930
17929
|
|
|
17931
17930
|
// agent-gui/agentGuiNode/AgentSlashStatusPanel.tsx
|
|
@@ -19601,7 +19600,7 @@ function AgentComposerMaskIcon({
|
|
|
19601
19600
|
"span",
|
|
19602
19601
|
{
|
|
19603
19602
|
"aria-hidden": true,
|
|
19604
|
-
className: "inline-block size-
|
|
19603
|
+
className: "inline-block size-4 bg-[var(--text-secondary)] transition-colors group-hover:bg-[var(--text-primary)] group-focus-visible:bg-[var(--text-primary)]",
|
|
19605
19604
|
"data-agent-reference-add-icon": marker === "reference-add" ? "true" : void 0,
|
|
19606
19605
|
style: {
|
|
19607
19606
|
WebkitMaskImage: `url("${iconUrl}")`,
|
|
@@ -21523,7 +21522,7 @@ function useComposerPresentation(input) {
|
|
|
21523
21522
|
// agent-gui/agentGuiNode/composer/AgentComposerView.tsx
|
|
21524
21523
|
import { createPortal as createPortal4 } from "react-dom";
|
|
21525
21524
|
import {
|
|
21526
|
-
Popover as
|
|
21525
|
+
Popover as Popover5,
|
|
21527
21526
|
PopoverAnchor as PopoverAnchor2,
|
|
21528
21527
|
Tooltip as Tooltip8,
|
|
21529
21528
|
TooltipContent as TooltipContent8,
|
|
@@ -26095,7 +26094,7 @@ function ComposerDraftAttachments({
|
|
|
26095
26094
|
}
|
|
26096
26095
|
|
|
26097
26096
|
// agent-gui/agentGuiNode/composer/ComposerFooter.tsx
|
|
26098
|
-
import { ListChecks as ListChecks2,
|
|
26097
|
+
import { ListChecks as ListChecks2, Target as Target2, X as X5 } from "lucide-react";
|
|
26099
26098
|
import {
|
|
26100
26099
|
Select as Select3,
|
|
26101
26100
|
SelectContent as SelectContent3,
|
|
@@ -26300,200 +26299,69 @@ function AgentHandoffMenu({
|
|
|
26300
26299
|
);
|
|
26301
26300
|
}
|
|
26302
26301
|
|
|
26303
|
-
// agent-gui/agentGuiNode/composer/
|
|
26304
|
-
import {
|
|
26305
|
-
import {
|
|
26306
|
-
Badge,
|
|
26307
|
-
Button as Button4,
|
|
26308
|
-
Popover as Popover4,
|
|
26309
|
-
PopoverContent as PopoverContent4,
|
|
26310
|
-
PopoverTrigger as PopoverTrigger3,
|
|
26311
|
-
Slider
|
|
26312
|
-
} from "@tutti-os/ui-system";
|
|
26302
|
+
// agent-gui/agentGuiNode/composer/ComposerTuttiModeChip.tsx
|
|
26303
|
+
import { useId } from "react";
|
|
26304
|
+
import { Switch } from "@tutti-os/ui-system";
|
|
26313
26305
|
|
|
26314
|
-
//
|
|
26315
|
-
|
|
26316
|
-
const normalized = Number.isFinite(intensity) ? Math.min(100, Math.max(0, Math.round(intensity))) : 50;
|
|
26317
|
-
const tier = normalized <= 33 ? "cost" : normalized <= 66 ? "balance" : "powerful";
|
|
26318
|
-
return {
|
|
26319
|
-
intensity: normalized,
|
|
26320
|
-
tier,
|
|
26321
|
-
modelStrength: tier === "cost" ? "economical" : tier === "balance" ? "balanced" : "mostCapable",
|
|
26322
|
-
agentCount: tier === "cost" ? "single" : tier === "balance" ? "smallGroup" : "maxParallel"
|
|
26323
|
-
};
|
|
26324
|
-
}
|
|
26306
|
+
// app/renderer/assets/icons/tutti-mode-lined.svg
|
|
26307
|
+
var tutti_mode_lined_default = "data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M6.2525%202.29982C7.33705%201.67365%208.42639%201.76315%209.30719%202.19923C10.1442%202.61379%2010.7869%203.32997%2011.1783%204.00782C11.182%204.01417%2011.1865%204.02092%2011.19%204.02735L14.6041%2010.2568C14.8975%209.82469%2015.2682%209.41791%2015.6949%209.08398C16.562%208.40562%2017.7709%207.94423%2019.1187%208.30273C20.0625%208.55396%2020.6751%209.17174%2020.9293%2010.0039C21.1566%2010.7488%2021.0723%2011.5815%2020.9039%2012.3262C20.5644%2013.8263%2019.7411%2015.5353%2019.1636%2016.7519C18.1461%2018.8959%2016.5837%2020.9345%2014.6656%2022.2089C12.7211%2023.5006%2010.3591%2024.0285%207.92243%2022.9794C6.53406%2022.3816%205.11984%2021.3547%204.02984%2020.1396C2.95362%2018.9398%202.08969%2017.4375%202.0191%2015.8711C2.00256%2015.5011%202.07428%2015.0786%202.21051%2014.707C2.32007%2014.4085%202.5283%2013.9859%202.9107%2013.6933L3.08551%2013.5761C3.52116%2013.3247%204.00247%2013.2136%204.47613%2013.2246C4.56029%2012.337%205.00243%2011.5023%205.92926%2010.9639C6.24585%2010.78%206.59784%2010.6401%206.96442%2010.5586L5.18121%207.4707C4.77623%206.76922%204.50913%205.83092%204.59723%204.89063C4.68916%203.91106%205.17521%202.92193%206.2525%202.29982ZM8.4195%203.99219C8.0585%203.81354%207.68432%203.78292%207.2525%204.03223C6.81383%204.28569%206.62867%204.64873%206.58844%205.07715C6.54458%205.54507%206.6839%206.07275%206.91364%206.4707L9.6861%2011.2724C9.72481%2011.3395%209.75419%2011.4094%209.77594%2011.4805C9.83692%2011.5617%209.89457%2011.649%209.94782%2011.7412C10.2235%2012.2194%2010.0596%2012.8313%209.58161%2013.1074C9.10351%2013.3833%208.49163%2013.219%208.2154%2012.7412C8.13017%2012.5938%208.00116%2012.508%207.78668%2012.4844C7.54655%2012.458%207.22985%2012.5217%206.93414%2012.6933C6.47716%2012.9588%206.21644%2013.6335%206.75055%2014.5586C6.80212%2014.648%206.8383%2014.7422%206.85993%2014.8379C6.88169%2014.9341%206.88921%2015.0325%206.88239%2015.1289C6.88011%2015.1605%206.87591%2015.1924%206.87067%2015.2236C6.84953%2015.3497%206.80398%2015.4712%206.73688%2015.581C6.71999%2015.6086%206.70182%2015.6361%206.68219%2015.6621C6.604%2015.7655%206.50365%2015.8558%206.38434%2015.9248C6.26484%2015.9937%206.13622%2016.0358%206.00739%2016.0517C5.97532%2016.0557%205.94278%2016.0567%205.91071%2016.0576C5.78181%2016.0609%205.65369%2016.0399%205.53375%2015.9951C5.50399%2015.984%205.47451%2015.9719%205.44586%2015.958C5.38803%2015.9299%205.33274%2015.8956%205.28082%2015.8564C5.22884%2015.8172%205.17952%2015.7725%205.13531%2015.7226C5.0915%2015.6731%205.05248%2015.618%205.01813%2015.5586C4.84584%2015.2603%204.44767%2015.1429%204.13824%2015.2851C4.12447%2015.3096%204.10645%2015.3465%204.08844%2015.3955C4.06324%2015.4643%204.04336%2015.542%204.03082%2015.6172C4.01804%2015.6941%204.01585%2015.7518%204.01715%2015.7812C4.05847%2016.6992%204.59721%2017.777%205.5191%2018.8046C6.42748%2019.8172%207.60728%2020.6662%208.71344%2021.1425C10.3938%2021.8659%2012.0425%2021.5504%2013.5592%2020.5429C15.1019%2019.5179%2016.4527%2017.7999%2017.357%2015.8945C17.965%2014.6134%2018.6735%2013.1231%2018.9537%2011.8847C19.0949%2011.2602%2019.0921%2010.8367%2019.0162%2010.5879C18.967%2010.4271%2018.8907%2010.3115%2018.6051%2010.2353C18.0234%2010.0806%2017.4482%2010.2526%2016.9283%2010.6592C16.3901%2011.0803%2016.0271%2011.6697%2015.9146%2012.0888C15.8847%2012.2004%2015.8355%2012.3022%2015.774%2012.3926L15.8941%2012.6133C16.1594%2013.0975%2015.9828%2013.7052%2015.4986%2013.9707C15.0144%2014.236%2014.4067%2014.0583%2014.1412%2013.5742L9.44196%204.99903C9.19845%204.58079%208.82143%204.19137%208.4195%203.99219ZM16.8004%201.13869C16.8688%200.95384%2017.1302%200.953926%2017.1988%201.13869L17.5113%201.98243C17.7695%202.67996%2018.3197%203.22996%2019.0172%203.48829L19.8609%203.80079C20.0458%203.86929%2020.0458%204.13073%2019.8609%204.19922L19.0172%204.51172C18.3197%204.77005%2017.7695%205.32004%2017.5113%206.01758L17.1988%206.86133C17.1302%207.04606%2016.8689%207.04614%2016.8004%206.86133L16.4879%206.01758C16.2296%205.31999%2015.6796%204.76998%2014.982%204.51172L14.1383%204.19922C13.9538%204.13058%2013.9538%203.86944%2014.1383%203.80079L14.982%203.48829C15.6796%203.23003%2016.2296%202.68002%2016.4879%201.98243L16.8004%201.13869Z%22%20fill%3D%22black%22%2F%3E%0A%3C%2Fsvg%3E%0A";
|
|
26325
26308
|
|
|
26326
|
-
// agent-gui/agentGuiNode/composer/
|
|
26309
|
+
// agent-gui/agentGuiNode/composer/ComposerTuttiModeChip.tsx
|
|
26327
26310
|
import { jsx as jsx39, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
26328
|
-
|
|
26329
|
-
|
|
26330
|
-
|
|
26331
|
-
|
|
26332
|
-
|
|
26333
|
-
|
|
26334
|
-
|
|
26335
|
-
sliderClassName: "[&_[data-slot=slider-thumb]]:border-[var(--state-warning)]"
|
|
26336
|
-
},
|
|
26337
|
-
powerful: {
|
|
26338
|
-
badgeVariant: "pending",
|
|
26339
|
-
sliderClassName: "[&_[data-slot=slider-thumb]]:border-[var(--tutti-purple)]"
|
|
26340
|
-
}
|
|
26341
|
-
};
|
|
26342
|
-
function TuttiBudgetPopover({
|
|
26343
|
-
children,
|
|
26344
|
-
intensity,
|
|
26345
|
-
labels,
|
|
26346
|
-
onConfirm
|
|
26311
|
+
function ComposerTuttiModeChip({
|
|
26312
|
+
active,
|
|
26313
|
+
updating,
|
|
26314
|
+
label,
|
|
26315
|
+
description,
|
|
26316
|
+
tuttiModeSupported,
|
|
26317
|
+
onTuttiModeChange
|
|
26347
26318
|
}) {
|
|
26348
|
-
const
|
|
26349
|
-
|
|
26350
|
-
|
|
26351
|
-
|
|
26352
|
-
const previewLabel = {
|
|
26353
|
-
cost: labels.previewCost,
|
|
26354
|
-
balance: labels.previewBalance,
|
|
26355
|
-
powerful: labels.previewPowerful
|
|
26356
|
-
}[preview.tier];
|
|
26357
|
-
const modelStrength = {
|
|
26358
|
-
economical: labels.modelStrengthCost,
|
|
26359
|
-
balanced: labels.modelStrengthBalance,
|
|
26360
|
-
mostCapable: labels.modelStrengthPowerful
|
|
26361
|
-
}[preview.modelStrength];
|
|
26362
|
-
const agentCount = {
|
|
26363
|
-
single: labels.agentCountCost,
|
|
26364
|
-
smallGroup: labels.agentCountBalance,
|
|
26365
|
-
maxParallel: labels.agentCountPowerful
|
|
26366
|
-
}[preview.agentCount];
|
|
26319
|
+
const switchId = useId();
|
|
26320
|
+
if (!onTuttiModeChange || !tuttiModeSupported) {
|
|
26321
|
+
return null;
|
|
26322
|
+
}
|
|
26367
26323
|
return /* @__PURE__ */ jsxs29(
|
|
26368
|
-
|
|
26324
|
+
"label",
|
|
26369
26325
|
{
|
|
26370
|
-
|
|
26371
|
-
|
|
26372
|
-
|
|
26373
|
-
|
|
26374
|
-
|
|
26375
|
-
|
|
26376
|
-
|
|
26326
|
+
htmlFor: switchId,
|
|
26327
|
+
title: description ?? label,
|
|
26328
|
+
"data-testid": "agent-gui-composer-tutti-mode-toggle",
|
|
26329
|
+
"data-agent-tutti-mode-active": active ? "true" : void 0,
|
|
26330
|
+
className: cn(
|
|
26331
|
+
AgentGUINode_styles_default.composerMenuTrigger,
|
|
26332
|
+
"group w-auto !gap-1.5",
|
|
26333
|
+
updating ? "cursor-wait opacity-70" : "cursor-pointer"
|
|
26334
|
+
),
|
|
26377
26335
|
children: [
|
|
26378
|
-
/* @__PURE__ */ jsx39(
|
|
26379
|
-
|
|
26380
|
-
PopoverContent4,
|
|
26336
|
+
/* @__PURE__ */ jsx39(
|
|
26337
|
+
"span",
|
|
26381
26338
|
{
|
|
26382
|
-
|
|
26383
|
-
className: "
|
|
26384
|
-
|
|
26385
|
-
|
|
26386
|
-
|
|
26387
|
-
|
|
26388
|
-
|
|
26389
|
-
|
|
26390
|
-
|
|
26391
|
-
|
|
26392
|
-
|
|
26393
|
-
|
|
26394
|
-
|
|
26395
|
-
|
|
26396
|
-
|
|
26397
|
-
|
|
26398
|
-
|
|
26399
|
-
|
|
26400
|
-
|
|
26401
|
-
|
|
26402
|
-
|
|
26403
|
-
|
|
26404
|
-
|
|
26405
|
-
|
|
26406
|
-
|
|
26407
|
-
|
|
26408
|
-
)
|
|
26409
|
-
] }),
|
|
26410
|
-
/* @__PURE__ */ jsxs29("div", { className: "mt-2", children: [
|
|
26411
|
-
/* @__PURE__ */ jsx39(
|
|
26412
|
-
Slider,
|
|
26413
|
-
{
|
|
26414
|
-
"aria-label": labels.intensityLabel,
|
|
26415
|
-
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}`,
|
|
26416
|
-
"data-agent-tutti-budget-intensity-slider": "true",
|
|
26417
|
-
"data-agent-tutti-budget-slider-tone": preview.tier,
|
|
26418
|
-
max: 100,
|
|
26419
|
-
min: 0,
|
|
26420
|
-
step: 1,
|
|
26421
|
-
value: [draftIntensity],
|
|
26422
|
-
onValueChange: (values) => setDraftIntensity(values[0] ?? draftIntensity)
|
|
26423
|
-
}
|
|
26424
|
-
),
|
|
26425
|
-
/* @__PURE__ */ jsxs29("div", { className: "mt-1 flex items-center justify-between gap-2 text-[10px] font-medium", children: [
|
|
26426
|
-
/* @__PURE__ */ jsx39("span", { className: "text-[var(--state-success)]", children: labels.previewCost }),
|
|
26427
|
-
/* @__PURE__ */ jsx39("span", { className: "text-[var(--state-warning)]", children: labels.previewBalance }),
|
|
26428
|
-
/* @__PURE__ */ jsx39("span", { className: "text-[var(--tutti-purple)]", children: labels.previewPowerful })
|
|
26429
|
-
] })
|
|
26430
|
-
] }),
|
|
26431
|
-
/* @__PURE__ */ jsxs29(
|
|
26432
|
-
"div",
|
|
26433
|
-
{
|
|
26434
|
-
"aria-live": "polite",
|
|
26435
|
-
className: "mt-2 flex items-center justify-between gap-2 border-t border-[var(--line-2)] pt-2",
|
|
26436
|
-
children: [
|
|
26437
|
-
/* @__PURE__ */ jsx39("span", { className: "text-[11px] font-medium text-[var(--text-secondary)]", children: labels.previewTitle }),
|
|
26438
|
-
/* @__PURE__ */ jsx39(Badge, { size: "sm", variant: previewTone.badgeVariant, children: previewLabel })
|
|
26439
|
-
]
|
|
26440
|
-
}
|
|
26441
|
-
),
|
|
26442
|
-
/* @__PURE__ */ jsxs29("div", { className: "mt-2 grid grid-cols-2 gap-2 text-[10px]", children: [
|
|
26443
|
-
/* @__PURE__ */ jsxs29("div", { className: "min-w-0", children: [
|
|
26444
|
-
/* @__PURE__ */ jsx39("div", { className: "text-[var(--text-tertiary)]", children: labels.modelStrengthLabel }),
|
|
26445
|
-
/* @__PURE__ */ jsx39(
|
|
26446
|
-
"div",
|
|
26447
|
-
{
|
|
26448
|
-
className: "truncate font-medium text-[var(--text-primary)]",
|
|
26449
|
-
"data-agent-tutti-budget-model-strength": "true",
|
|
26450
|
-
children: modelStrength
|
|
26451
|
-
}
|
|
26452
|
-
)
|
|
26453
|
-
] }),
|
|
26454
|
-
/* @__PURE__ */ jsxs29("div", { className: "min-w-0", children: [
|
|
26455
|
-
/* @__PURE__ */ jsx39("div", { className: "text-[var(--text-tertiary)]", children: labels.agentCountLabel }),
|
|
26456
|
-
/* @__PURE__ */ jsx39(
|
|
26457
|
-
"div",
|
|
26458
|
-
{
|
|
26459
|
-
className: "truncate font-medium text-[var(--text-primary)]",
|
|
26460
|
-
"data-agent-tutti-budget-agent-count": "true",
|
|
26461
|
-
children: agentCount
|
|
26462
|
-
}
|
|
26463
|
-
)
|
|
26464
|
-
] })
|
|
26465
|
-
] }),
|
|
26466
|
-
/* @__PURE__ */ jsx39("p", { className: "mt-2 mb-0 text-[10px] leading-[1.35] text-[var(--text-tertiary)]", children: labels.previewHint })
|
|
26467
|
-
]
|
|
26468
|
-
}
|
|
26469
|
-
),
|
|
26470
|
-
/* @__PURE__ */ jsxs29("div", { className: "flex items-center justify-end gap-2", children: [
|
|
26471
|
-
/* @__PURE__ */ jsx39(
|
|
26472
|
-
Button4,
|
|
26473
|
-
{
|
|
26474
|
-
"data-agent-tutti-budget-cancel": "true",
|
|
26475
|
-
size: "sm",
|
|
26476
|
-
type: "button",
|
|
26477
|
-
variant: "secondary",
|
|
26478
|
-
onClick: () => setOpen(false),
|
|
26479
|
-
children: labels.cancel
|
|
26480
|
-
}
|
|
26481
|
-
),
|
|
26482
|
-
/* @__PURE__ */ jsx39(
|
|
26483
|
-
Button4,
|
|
26484
|
-
{
|
|
26485
|
-
"data-agent-tutti-budget-confirm": "true",
|
|
26486
|
-
size: "sm",
|
|
26487
|
-
type: "button",
|
|
26488
|
-
onClick: () => {
|
|
26489
|
-
onConfirm(draftIntensity);
|
|
26490
|
-
setOpen(false);
|
|
26491
|
-
},
|
|
26492
|
-
children: labels.confirm
|
|
26493
|
-
}
|
|
26494
|
-
)
|
|
26495
|
-
] })
|
|
26496
|
-
]
|
|
26339
|
+
"aria-hidden": true,
|
|
26340
|
+
className: "inline-block size-4 shrink-0 bg-current transition-colors",
|
|
26341
|
+
style: {
|
|
26342
|
+
WebkitMaskImage: `url("${tutti_mode_lined_default}")`,
|
|
26343
|
+
WebkitMaskPosition: "center",
|
|
26344
|
+
WebkitMaskRepeat: "no-repeat",
|
|
26345
|
+
WebkitMaskSize: "contain",
|
|
26346
|
+
maskImage: `url("${tutti_mode_lined_default}")`,
|
|
26347
|
+
maskPosition: "center",
|
|
26348
|
+
maskRepeat: "no-repeat",
|
|
26349
|
+
maskSize: "contain"
|
|
26350
|
+
}
|
|
26351
|
+
}
|
|
26352
|
+
),
|
|
26353
|
+
/* @__PURE__ */ jsx39("span", { className: "min-w-0 truncate", children: label }),
|
|
26354
|
+
/* @__PURE__ */ jsx39(
|
|
26355
|
+
Switch,
|
|
26356
|
+
{
|
|
26357
|
+
id: switchId,
|
|
26358
|
+
size: "sm",
|
|
26359
|
+
checked: active,
|
|
26360
|
+
disabled: updating,
|
|
26361
|
+
"aria-label": label,
|
|
26362
|
+
className: "ml-0.5",
|
|
26363
|
+
"data-testid": "agent-gui-composer-tutti-mode-toggle-switch",
|
|
26364
|
+
onCheckedChange: (checked) => onTuttiModeChange(checked)
|
|
26497
26365
|
}
|
|
26498
26366
|
)
|
|
26499
26367
|
]
|
|
@@ -26522,7 +26390,8 @@ function ComposerFooter({
|
|
|
26522
26390
|
isPlanModeActive,
|
|
26523
26391
|
isTuttiModeActive,
|
|
26524
26392
|
isTuttiModeUpdating,
|
|
26525
|
-
|
|
26393
|
+
tuttiModeSupported,
|
|
26394
|
+
onTuttiModeChange,
|
|
26526
26395
|
composerActionButton,
|
|
26527
26396
|
quickPromptControl,
|
|
26528
26397
|
showHandoffSelect,
|
|
@@ -26546,9 +26415,7 @@ function ComposerFooter({
|
|
|
26546
26415
|
onSubmit,
|
|
26547
26416
|
onClearGoalMode: clearGoalModeBadge,
|
|
26548
26417
|
draftPrompt: _draftPrompt,
|
|
26549
|
-
onClearPlanMode
|
|
26550
|
-
onClearTuttiMode,
|
|
26551
|
-
onTuttiModeOrchestrationIntensityChange
|
|
26418
|
+
onClearPlanMode
|
|
26552
26419
|
}) {
|
|
26553
26420
|
const showSettingsLoadingPlaceholders = composerSettings.isSettingsLoading;
|
|
26554
26421
|
return /* @__PURE__ */ jsx40(Fragment13, { children: /* @__PURE__ */ jsxs30("div", { className: AgentGUINode_styles_default.composerFooter, children: [
|
|
@@ -26634,7 +26501,7 @@ function ComposerFooter({
|
|
|
26634
26501
|
"span",
|
|
26635
26502
|
{
|
|
26636
26503
|
"aria-hidden": true,
|
|
26637
|
-
className: "inline-block size-
|
|
26504
|
+
className: "inline-block size-4 bg-current transition-colors",
|
|
26638
26505
|
style: {
|
|
26639
26506
|
WebkitMaskImage: `url("${lined_default}")`,
|
|
26640
26507
|
WebkitMaskPosition: "center",
|
|
@@ -26652,6 +26519,17 @@ function ComposerFooter({
|
|
|
26652
26519
|
/* @__PURE__ */ jsx40(TooltipContent5, { side: "top", children: labels.mentionPalette })
|
|
26653
26520
|
] }) })
|
|
26654
26521
|
] }),
|
|
26522
|
+
/* @__PURE__ */ jsx40(
|
|
26523
|
+
ComposerTuttiModeChip,
|
|
26524
|
+
{
|
|
26525
|
+
active: isTuttiModeActive,
|
|
26526
|
+
updating: isTuttiModeUpdating,
|
|
26527
|
+
label: labels.tuttiModeLabel,
|
|
26528
|
+
description: labels.tuttiModeDescription,
|
|
26529
|
+
tuttiModeSupported,
|
|
26530
|
+
onTuttiModeChange
|
|
26531
|
+
}
|
|
26532
|
+
),
|
|
26655
26533
|
showHandoffSelect ? /* @__PURE__ */ jsx40(
|
|
26656
26534
|
AgentHandoffMenu,
|
|
26657
26535
|
{
|
|
@@ -26771,70 +26649,6 @@ function ComposerFooter({
|
|
|
26771
26649
|
] })
|
|
26772
26650
|
}
|
|
26773
26651
|
) : null,
|
|
26774
|
-
isTuttiModeActive ? /* @__PURE__ */ jsxs30("span", { className: "inline-flex shrink-0 items-center gap-0.5", children: [
|
|
26775
|
-
/* @__PURE__ */ jsx40(
|
|
26776
|
-
TuttiBudgetPopover,
|
|
26777
|
-
{
|
|
26778
|
-
intensity: tuttiModeOrchestrationIntensity,
|
|
26779
|
-
labels: {
|
|
26780
|
-
title: labels.tuttiBudgetTitle,
|
|
26781
|
-
intensityLabel: labels.tuttiBudgetIntensityLabel,
|
|
26782
|
-
previewTitle: labels.tuttiBudgetPreviewTitle,
|
|
26783
|
-
previewHint: labels.tuttiBudgetPreviewHint,
|
|
26784
|
-
previewCost: labels.tuttiBudgetPreviewCost,
|
|
26785
|
-
previewBalance: labels.tuttiBudgetPreviewBalance,
|
|
26786
|
-
previewPowerful: labels.tuttiBudgetPreviewPowerful,
|
|
26787
|
-
modelStrengthLabel: labels.tuttiBudgetModelStrengthLabel,
|
|
26788
|
-
modelStrengthCost: labels.tuttiBudgetModelStrengthCost,
|
|
26789
|
-
modelStrengthBalance: labels.tuttiBudgetModelStrengthBalance,
|
|
26790
|
-
modelStrengthPowerful: labels.tuttiBudgetModelStrengthPowerful,
|
|
26791
|
-
agentCountLabel: labels.tuttiBudgetAgentCountLabel,
|
|
26792
|
-
agentCountCost: labels.tuttiBudgetAgentCountCost,
|
|
26793
|
-
agentCountBalance: labels.tuttiBudgetAgentCountBalance,
|
|
26794
|
-
agentCountPowerful: labels.tuttiBudgetAgentCountPowerful,
|
|
26795
|
-
confirm: labels.tuttiBudgetConfirm,
|
|
26796
|
-
cancel: labels.tuttiBudgetCancel
|
|
26797
|
-
},
|
|
26798
|
-
onConfirm: onTuttiModeOrchestrationIntensityChange,
|
|
26799
|
-
children: /* @__PURE__ */ jsx40(
|
|
26800
|
-
"button",
|
|
26801
|
-
{
|
|
26802
|
-
type: "button",
|
|
26803
|
-
disabled: isTuttiModeUpdating,
|
|
26804
|
-
"aria-label": labels.tuttiModeLabel,
|
|
26805
|
-
title: labels.tuttiModeDescription,
|
|
26806
|
-
"data-agent-tutti-mode-badge": "true",
|
|
26807
|
-
className: cn(
|
|
26808
|
-
AgentGUINode_styles_default.composerMenuTrigger,
|
|
26809
|
-
"group w-auto",
|
|
26810
|
-
"disabled:cursor-not-allowed disabled:opacity-60"
|
|
26811
|
-
),
|
|
26812
|
-
children: /* @__PURE__ */ jsxs30("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
|
|
26813
|
-
/* @__PURE__ */ jsx40(Sparkles, { "aria-hidden": true, className: "size-3.5 shrink-0" }),
|
|
26814
|
-
/* @__PURE__ */ jsx40("span", { className: "min-w-0 truncate", children: labels.tuttiModeLabel })
|
|
26815
|
-
] })
|
|
26816
|
-
}
|
|
26817
|
-
)
|
|
26818
|
-
}
|
|
26819
|
-
),
|
|
26820
|
-
/* @__PURE__ */ jsx40(
|
|
26821
|
-
"button",
|
|
26822
|
-
{
|
|
26823
|
-
type: "button",
|
|
26824
|
-
disabled: isTuttiModeUpdating,
|
|
26825
|
-
"aria-label": labels.tuttiModeRemove,
|
|
26826
|
-
title: labels.tuttiModeRemove,
|
|
26827
|
-
"data-agent-tutti-mode-remove": "true",
|
|
26828
|
-
className: cn(
|
|
26829
|
-
AgentGUINode_styles_default.composerMenuTrigger,
|
|
26830
|
-
"group w-auto justify-center",
|
|
26831
|
-
"disabled:cursor-not-allowed disabled:opacity-60"
|
|
26832
|
-
),
|
|
26833
|
-
onClick: onClearTuttiMode,
|
|
26834
|
-
children: /* @__PURE__ */ jsx40(X5, { "aria-hidden": true, className: "size-3", strokeWidth: 3 })
|
|
26835
|
-
}
|
|
26836
|
-
)
|
|
26837
|
-
] }) : null,
|
|
26838
26652
|
isGoalModeActive ? /* @__PURE__ */ jsx40(
|
|
26839
26653
|
"button",
|
|
26840
26654
|
{
|
|
@@ -26983,15 +26797,15 @@ function RemovableBadgeIcon({ icon }) {
|
|
|
26983
26797
|
}
|
|
26984
26798
|
|
|
26985
26799
|
// agent-gui/agentGuiNode/composer/quickPrompts/AgentQuickPromptPopover.tsx
|
|
26986
|
-
import { useId, useRef as useRef38, useState as
|
|
26800
|
+
import { useId as useId2, useRef as useRef38, useState as useState24 } from "react";
|
|
26987
26801
|
import {
|
|
26988
|
-
Button as
|
|
26802
|
+
Button as Button6,
|
|
26989
26803
|
ConfirmationDialog as ConfirmationDialog2,
|
|
26990
26804
|
DialogFooter as DialogFooter2,
|
|
26991
26805
|
Input as Input2,
|
|
26992
|
-
Popover as
|
|
26993
|
-
PopoverContent as
|
|
26994
|
-
PopoverTrigger as
|
|
26806
|
+
Popover as Popover4,
|
|
26807
|
+
PopoverContent as PopoverContent4,
|
|
26808
|
+
PopoverTrigger as PopoverTrigger3,
|
|
26995
26809
|
ScrollArea,
|
|
26996
26810
|
Spinner as Spinner6,
|
|
26997
26811
|
Tooltip as Tooltip7,
|
|
@@ -27010,9 +26824,9 @@ import {
|
|
|
27010
26824
|
} from "@tutti-os/ui-system/icons";
|
|
27011
26825
|
|
|
27012
26826
|
// agent-gui/agentGuiNode/composer/quickPrompts/AgentQuickPromptEditorDialog.tsx
|
|
27013
|
-
import { useRef as useRef35, useState as
|
|
26827
|
+
import { useRef as useRef35, useState as useState23 } from "react";
|
|
27014
26828
|
import {
|
|
27015
|
-
Button as
|
|
26829
|
+
Button as Button4,
|
|
27016
26830
|
Dialog,
|
|
27017
26831
|
DialogContent,
|
|
27018
26832
|
DialogDescription,
|
|
@@ -27031,10 +26845,10 @@ function AgentQuickPromptEditorDialog({
|
|
|
27031
26845
|
}) {
|
|
27032
26846
|
const { labels } = controller;
|
|
27033
26847
|
const source = controller.mode === "edit" ? controller.selectedPrompt : null;
|
|
27034
|
-
const [draft, setDraft] =
|
|
26848
|
+
const [draft, setDraft] = useState23(
|
|
27035
26849
|
() => controller.initialDraft ?? promptDraft(source)
|
|
27036
26850
|
);
|
|
27037
|
-
const [validationError, setValidationError] =
|
|
26851
|
+
const [validationError, setValidationError] = useState23(null);
|
|
27038
26852
|
const cancelRequestedOnPointerDownRef = useRef35(false);
|
|
27039
26853
|
const submit = async () => {
|
|
27040
26854
|
const error = validateDraft(draft, labels);
|
|
@@ -27124,7 +26938,7 @@ function AgentQuickPromptEditorDialog({
|
|
|
27124
26938
|
validationError || mutationError ? /* @__PURE__ */ jsx41("p", { className: "text-[12px] text-[var(--state-danger)]", role: "alert", children: validationError ?? mutationError }) : null,
|
|
27125
26939
|
/* @__PURE__ */ jsxs31(DialogFooter, { children: [
|
|
27126
26940
|
/* @__PURE__ */ jsx41(
|
|
27127
|
-
|
|
26941
|
+
Button4,
|
|
27128
26942
|
{
|
|
27129
26943
|
disabled: controller.isSaving,
|
|
27130
26944
|
size: "dialog",
|
|
@@ -27146,7 +26960,7 @@ function AgentQuickPromptEditorDialog({
|
|
|
27146
26960
|
children: labels.cancel
|
|
27147
26961
|
}
|
|
27148
26962
|
),
|
|
27149
|
-
/* @__PURE__ */ jsxs31(
|
|
26963
|
+
/* @__PURE__ */ jsxs31(Button4, { disabled: controller.isSaving, size: "dialog", type: "submit", children: [
|
|
27150
26964
|
controller.isSaving ? /* @__PURE__ */ jsx41(Spinner5, { size: 14 }) : null,
|
|
27151
26965
|
controller.isSaving ? labels.saving : labels.save
|
|
27152
26966
|
] })
|
|
@@ -27184,7 +26998,7 @@ import { Sortable, SortableContent, SortableItem } from "@tutti-os/ui-system";
|
|
|
27184
26998
|
import { useRef as useRef36 } from "react";
|
|
27185
26999
|
import {
|
|
27186
27000
|
BareIconButton,
|
|
27187
|
-
Button as
|
|
27001
|
+
Button as Button5,
|
|
27188
27002
|
SortableItemHandle,
|
|
27189
27003
|
Tooltip as Tooltip6,
|
|
27190
27004
|
TooltipContent as TooltipContent6,
|
|
@@ -27240,7 +27054,7 @@ function AgentQuickPromptRow({
|
|
|
27240
27054
|
}
|
|
27241
27055
|
) : null,
|
|
27242
27056
|
isSorting ? /* @__PURE__ */ jsx42("div", { className: "h-auto min-w-0 flex-1 px-1 py-2 text-left whitespace-normal", children: promptContent }) : /* @__PURE__ */ jsx42(
|
|
27243
|
-
|
|
27057
|
+
Button5,
|
|
27244
27058
|
{
|
|
27245
27059
|
...selectionAction,
|
|
27246
27060
|
ref: selectionRef,
|
|
@@ -27446,8 +27260,8 @@ function AgentQuickPromptPopover({
|
|
|
27446
27260
|
const preserveExternalFocusRef = useRef38(false);
|
|
27447
27261
|
const createRequestedOnPointerDownRef = useRef38(false);
|
|
27448
27262
|
const templateRequestedOnPointerDownRef = useRef38(false);
|
|
27449
|
-
const [view, setView] =
|
|
27450
|
-
const [sortingState, setSortingState] =
|
|
27263
|
+
const [view, setView] = useState24("prompts");
|
|
27264
|
+
const [sortingState, setSortingState] = useState24({
|
|
27451
27265
|
isPopoverOpen: controller.isPopoverOpen,
|
|
27452
27266
|
isSorting: false
|
|
27453
27267
|
});
|
|
@@ -27465,7 +27279,7 @@ function AgentQuickPromptPopover({
|
|
|
27465
27279
|
isSorting: next
|
|
27466
27280
|
});
|
|
27467
27281
|
};
|
|
27468
|
-
const titleId =
|
|
27282
|
+
const titleId = useId2();
|
|
27469
27283
|
const { labels, snapshot } = controller;
|
|
27470
27284
|
const templateEntryAction = usePrimaryPointerAction2(
|
|
27471
27285
|
() => setView("templates")
|
|
@@ -27496,7 +27310,7 @@ function AgentQuickPromptPopover({
|
|
|
27496
27310
|
const isTemplateView = view === "templates";
|
|
27497
27311
|
return /* @__PURE__ */ jsxs33(Fragment15, { children: [
|
|
27498
27312
|
/* @__PURE__ */ jsxs33(
|
|
27499
|
-
|
|
27313
|
+
Popover4,
|
|
27500
27314
|
{
|
|
27501
27315
|
modal: false,
|
|
27502
27316
|
open: controller.isPopoverOpen,
|
|
@@ -27509,8 +27323,8 @@ function AgentQuickPromptPopover({
|
|
|
27509
27323
|
},
|
|
27510
27324
|
children: [
|
|
27511
27325
|
/* @__PURE__ */ jsx44(TooltipProvider5, { delayDuration: 120, children: /* @__PURE__ */ jsxs33(Tooltip7, { children: [
|
|
27512
|
-
/* @__PURE__ */ jsx44(TooltipTrigger7, { asChild: true, children: /* @__PURE__ */ jsx44("span", { className: "inline-flex shrink-0", children: /* @__PURE__ */ jsx44(
|
|
27513
|
-
|
|
27326
|
+
/* @__PURE__ */ jsx44(TooltipTrigger7, { asChild: true, children: /* @__PURE__ */ jsx44("span", { className: "inline-flex shrink-0", children: /* @__PURE__ */ jsx44(PopoverTrigger3, { asChild: true, children: /* @__PURE__ */ jsxs33(
|
|
27327
|
+
Button6,
|
|
27514
27328
|
{
|
|
27515
27329
|
"aria-label": labels.triggerTooltip,
|
|
27516
27330
|
disabled,
|
|
@@ -27526,7 +27340,7 @@ function AgentQuickPromptPopover({
|
|
|
27526
27340
|
/* @__PURE__ */ jsx44(TooltipContent7, { side: "top", children: labels.triggerTooltip })
|
|
27527
27341
|
] }) }),
|
|
27528
27342
|
/* @__PURE__ */ jsxs33(
|
|
27529
|
-
|
|
27343
|
+
PopoverContent4,
|
|
27530
27344
|
{
|
|
27531
27345
|
"aria-labelledby": titleId,
|
|
27532
27346
|
align: "start",
|
|
@@ -27560,7 +27374,7 @@ function AgentQuickPromptPopover({
|
|
|
27560
27374
|
}
|
|
27561
27375
|
),
|
|
27562
27376
|
isTemplateView ? /* @__PURE__ */ jsxs33(
|
|
27563
|
-
|
|
27377
|
+
Button6,
|
|
27564
27378
|
{
|
|
27565
27379
|
size: "sm",
|
|
27566
27380
|
type: "button",
|
|
@@ -27572,7 +27386,7 @@ function AgentQuickPromptPopover({
|
|
|
27572
27386
|
]
|
|
27573
27387
|
}
|
|
27574
27388
|
) : /* @__PURE__ */ jsx44("div", { className: "flex items-center gap-1", children: isSorting ? /* @__PURE__ */ jsxs33(
|
|
27575
|
-
|
|
27389
|
+
Button6,
|
|
27576
27390
|
{
|
|
27577
27391
|
disabled: controller.isInteractionLocked,
|
|
27578
27392
|
size: "sm",
|
|
@@ -27586,7 +27400,7 @@ function AgentQuickPromptPopover({
|
|
|
27586
27400
|
}
|
|
27587
27401
|
) : /* @__PURE__ */ jsxs33(Fragment15, { children: [
|
|
27588
27402
|
/* @__PURE__ */ jsxs33(
|
|
27589
|
-
|
|
27403
|
+
Button6,
|
|
27590
27404
|
{
|
|
27591
27405
|
disabled: controller.isInteractionLocked || !controller.showReorderHandles,
|
|
27592
27406
|
size: "sm",
|
|
@@ -27600,7 +27414,7 @@ function AgentQuickPromptPopover({
|
|
|
27600
27414
|
}
|
|
27601
27415
|
),
|
|
27602
27416
|
/* @__PURE__ */ jsxs33(
|
|
27603
|
-
|
|
27417
|
+
Button6,
|
|
27604
27418
|
{
|
|
27605
27419
|
disabled: controller.isInteractionLocked,
|
|
27606
27420
|
size: "sm",
|
|
@@ -27661,7 +27475,7 @@ function AgentQuickPromptPopover({
|
|
|
27661
27475
|
children: [
|
|
27662
27476
|
/* @__PURE__ */ jsx44("span", { children: labels.loadError }),
|
|
27663
27477
|
/* @__PURE__ */ jsx44(
|
|
27664
|
-
|
|
27478
|
+
Button6,
|
|
27665
27479
|
{
|
|
27666
27480
|
size: "xs",
|
|
27667
27481
|
type: "button",
|
|
@@ -27681,7 +27495,7 @@ function AgentQuickPromptPopover({
|
|
|
27681
27495
|
children: [
|
|
27682
27496
|
/* @__PURE__ */ jsx44("span", { children: controller.reorderError === "conflict" ? labels.reorderConflict : labels.reorderError }),
|
|
27683
27497
|
/* @__PURE__ */ jsx44(
|
|
27684
|
-
|
|
27498
|
+
Button6,
|
|
27685
27499
|
{
|
|
27686
27500
|
size: "xs",
|
|
27687
27501
|
type: "button",
|
|
@@ -27719,7 +27533,7 @@ function AgentQuickPromptPopover({
|
|
|
27719
27533
|
{
|
|
27720
27534
|
label: labels.loadError,
|
|
27721
27535
|
action: /* @__PURE__ */ jsx44(
|
|
27722
|
-
|
|
27536
|
+
Button6,
|
|
27723
27537
|
{
|
|
27724
27538
|
disabled: controller.isInteractionLocked,
|
|
27725
27539
|
size: "sm",
|
|
@@ -27789,7 +27603,7 @@ function AgentQuickPromptPopover({
|
|
|
27789
27603
|
description: controller.promptToDelete ? labels.deleteDescription(controller.promptToDelete.title) : void 0,
|
|
27790
27604
|
footer: /* @__PURE__ */ jsxs33(DialogFooter2, { children: [
|
|
27791
27605
|
/* @__PURE__ */ jsx44(
|
|
27792
|
-
|
|
27606
|
+
Button6,
|
|
27793
27607
|
{
|
|
27794
27608
|
...deleteCancelAction,
|
|
27795
27609
|
disabled: controller.isDeleting,
|
|
@@ -27800,7 +27614,7 @@ function AgentQuickPromptPopover({
|
|
|
27800
27614
|
}
|
|
27801
27615
|
),
|
|
27802
27616
|
/* @__PURE__ */ jsx44(
|
|
27803
|
-
|
|
27617
|
+
Button6,
|
|
27804
27618
|
{
|
|
27805
27619
|
...deleteConfirmAction,
|
|
27806
27620
|
disabled: controller.isDeleting,
|
|
@@ -27835,7 +27649,7 @@ function RecommendedTemplateList({
|
|
|
27835
27649
|
/* @__PURE__ */ jsx44("p", { className: "pt-0.5 text-[12px] leading-[1.35] text-[var(--text-secondary)]", children: labels.recommendedTemplatesDescription })
|
|
27836
27650
|
] }),
|
|
27837
27651
|
labels.recommendedTemplates.map((template, index) => /* @__PURE__ */ jsxs33(
|
|
27838
|
-
|
|
27652
|
+
Button6,
|
|
27839
27653
|
{
|
|
27840
27654
|
ref: index === 0 ? firstTemplateRef : void 0,
|
|
27841
27655
|
className: "h-auto w-full justify-between px-2 py-2 text-left whitespace-normal",
|
|
@@ -27876,7 +27690,7 @@ function TemplateEntry({
|
|
|
27876
27690
|
label
|
|
27877
27691
|
}) {
|
|
27878
27692
|
return /* @__PURE__ */ jsxs33(
|
|
27879
|
-
|
|
27693
|
+
Button6,
|
|
27880
27694
|
{
|
|
27881
27695
|
...action,
|
|
27882
27696
|
className: "mt-1 h-auto w-full justify-between px-2 py-2 text-left whitespace-normal",
|
|
@@ -28171,7 +27985,7 @@ function AgentComposerView(input) {
|
|
|
28171
27985
|
style: inputShellStyle,
|
|
28172
27986
|
children: [
|
|
28173
27987
|
/* @__PURE__ */ jsxs34(
|
|
28174
|
-
|
|
27988
|
+
Popover5,
|
|
28175
27989
|
{
|
|
28176
27990
|
open: input.showFileMentionPalette,
|
|
28177
27991
|
onOpenChange: input.setIsPaletteOpen,
|
|
@@ -28425,10 +28239,9 @@ function AgentComposerView(input) {
|
|
|
28425
28239
|
isPlanModeActive: input.isPlanModeActive,
|
|
28426
28240
|
isTuttiModeActive: input.isTuttiModeActive,
|
|
28427
28241
|
isTuttiModeUpdating: input.isTuttiModeUpdating,
|
|
28428
|
-
|
|
28242
|
+
tuttiModeSupported: input.props.capabilityMenuState?.tuttiMode?.enabled === true,
|
|
28243
|
+
onTuttiModeChange: input.props.onTuttiModeChange,
|
|
28429
28244
|
onClearPlanMode: input.onClearPlanMode,
|
|
28430
|
-
onClearTuttiMode: input.onClearTuttiMode,
|
|
28431
|
-
onTuttiModeOrchestrationIntensityChange: input.onTuttiModeOrchestrationIntensityChange,
|
|
28432
28245
|
composerActionButton,
|
|
28433
28246
|
quickPromptControl: /* @__PURE__ */ jsx45(
|
|
28434
28247
|
AgentQuickPromptPopover,
|
|
@@ -28516,7 +28329,7 @@ function AgentComposerView(input) {
|
|
|
28516
28329
|
}
|
|
28517
28330
|
|
|
28518
28331
|
// agent-gui/agentGuiNode/composer/useAgentMentionSearchController.ts
|
|
28519
|
-
import { useEffect as useEffect27, useMemo as useMemo33, useRef as useRef39, useState as
|
|
28332
|
+
import { useEffect as useEffect27, useMemo as useMemo33, useRef as useRef39, useState as useState25 } from "react";
|
|
28520
28333
|
import { useRichTextMentionService } from "@tutti-os/ui-rich-text/editor";
|
|
28521
28334
|
var EMPTY_AGENT_CONTEXT_MENTION_PROVIDERS = [];
|
|
28522
28335
|
function useAgentMentionSearchController(referenceProvenanceFilter) {
|
|
@@ -28525,7 +28338,7 @@ function useAgentMentionSearchController(referenceProvenanceFilter) {
|
|
|
28525
28338
|
() => mentionService?.listProviders().filter(isAgentContextMentionProvider) ?? EMPTY_AGENT_CONTEXT_MENTION_PROVIDERS,
|
|
28526
28339
|
[mentionService]
|
|
28527
28340
|
);
|
|
28528
|
-
const [mentionSearchState, setMentionSearchState] =
|
|
28341
|
+
const [mentionSearchState, setMentionSearchState] = useState25(INITIAL_AGENT_MENTION_SEARCH_STATE);
|
|
28529
28342
|
const mentionControllerRef = useRef39(
|
|
28530
28343
|
null
|
|
28531
28344
|
);
|
|
@@ -28574,7 +28387,7 @@ var INITIAL_AGENT_MENTION_SEARCH_STATE = {
|
|
|
28574
28387
|
};
|
|
28575
28388
|
|
|
28576
28389
|
// agent-gui/agentGuiNode/composer/quickPrompts/useAgentQuickPromptLibrary.ts
|
|
28577
|
-
import { useCallback as useCallback46, useMemo as useMemo34, useRef as useRef40, useState as
|
|
28390
|
+
import { useCallback as useCallback46, useMemo as useMemo34, useRef as useRef40, useState as useState26 } from "react";
|
|
28578
28391
|
var unavailableSnapshot = {
|
|
28579
28392
|
enabled: false,
|
|
28580
28393
|
status: "idle",
|
|
@@ -28596,21 +28409,21 @@ function useAgentQuickPromptLibrary(input) {
|
|
|
28596
28409
|
quickPrompts ?? unavailableQuickPromptStore,
|
|
28597
28410
|
selectQuickPromptSnapshot
|
|
28598
28411
|
);
|
|
28599
|
-
const [mode, setMode] =
|
|
28412
|
+
const [mode, setMode] = useState26("closed");
|
|
28600
28413
|
const modeRef = useRef40(mode);
|
|
28601
28414
|
modeRef.current = mode;
|
|
28602
|
-
const [searchQuery, setSearchQuery] =
|
|
28603
|
-
const [selectedPrompt, setSelectedPrompt] =
|
|
28604
|
-
const [initialDraft, setInitialDraft] =
|
|
28605
|
-
const [promptToDelete, setPromptToDelete] =
|
|
28606
|
-
const [mutationError, setMutationError] =
|
|
28607
|
-
const [isSaving, setIsSaving] =
|
|
28608
|
-
const [isDeleting, setIsDeleting] =
|
|
28609
|
-
const [isReordering, setIsReordering] =
|
|
28610
|
-
const [reorderError, setReorderError] =
|
|
28415
|
+
const [searchQuery, setSearchQuery] = useState26("");
|
|
28416
|
+
const [selectedPrompt, setSelectedPrompt] = useState26(null);
|
|
28417
|
+
const [initialDraft, setInitialDraft] = useState26(null);
|
|
28418
|
+
const [promptToDelete, setPromptToDelete] = useState26(null);
|
|
28419
|
+
const [mutationError, setMutationError] = useState26(null);
|
|
28420
|
+
const [isSaving, setIsSaving] = useState26(false);
|
|
28421
|
+
const [isDeleting, setIsDeleting] = useState26(false);
|
|
28422
|
+
const [isReordering, setIsReordering] = useState26(false);
|
|
28423
|
+
const [reorderError, setReorderError] = useState26(null);
|
|
28611
28424
|
const capabilityAvailable = Boolean(quickPrompts && snapshot.enabled);
|
|
28612
28425
|
const disclosureAvailable = capabilityAvailable && !disabled;
|
|
28613
|
-
const [previousDisclosureAvailable, setPreviousDisclosureAvailable] =
|
|
28426
|
+
const [previousDisclosureAvailable, setPreviousDisclosureAvailable] = useState26(disclosureAvailable);
|
|
28614
28427
|
const disclosureAvailableRef = useRef40(disclosureAvailable);
|
|
28615
28428
|
disclosureAvailableRef.current = disclosureAvailable;
|
|
28616
28429
|
if (previousDisclosureAvailable !== disclosureAvailable) {
|
|
@@ -28891,7 +28704,7 @@ function isVersionConflict(error) {
|
|
|
28891
28704
|
}
|
|
28892
28705
|
|
|
28893
28706
|
// agent-gui/agentGuiNode/composer/useScopedProjectMissingState.ts
|
|
28894
|
-
import { useCallback as useCallback47, useRef as useRef41, useState as
|
|
28707
|
+
import { useCallback as useCallback47, useRef as useRef41, useState as useState27 } from "react";
|
|
28895
28708
|
function useScopedProjectMissingState(scopeKey) {
|
|
28896
28709
|
const identityRef = useRef41({
|
|
28897
28710
|
key: scopeKey,
|
|
@@ -28904,7 +28717,7 @@ function useScopedProjectMissingState(scopeKey) {
|
|
|
28904
28717
|
};
|
|
28905
28718
|
}
|
|
28906
28719
|
const identity = identityRef.current;
|
|
28907
|
-
const [result, setResult] =
|
|
28720
|
+
const [result, setResult] = useState27({
|
|
28908
28721
|
identity,
|
|
28909
28722
|
isMissing: false
|
|
28910
28723
|
});
|
|
@@ -29091,8 +28904,8 @@ function AgentComposer(props) {
|
|
|
29091
28904
|
hadPrefill: agentComposerDraftHasContent(draftContent)
|
|
29092
28905
|
});
|
|
29093
28906
|
};
|
|
29094
|
-
const [isPaletteOpen, setIsPaletteOpen] =
|
|
29095
|
-
const [isReviewPickerOpen, setIsReviewPickerOpen] =
|
|
28907
|
+
const [isPaletteOpen, setIsPaletteOpen] = useState28(true);
|
|
28908
|
+
const [isReviewPickerOpen, setIsReviewPickerOpen] = useState28(false);
|
|
29096
28909
|
const submitWithComposerModifiers = (content, displayPrompt, options) => {
|
|
29097
28910
|
onSubmit(
|
|
29098
28911
|
content,
|
|
@@ -29113,19 +28926,19 @@ function AgentComposer(props) {
|
|
|
29113
28926
|
} : void 0
|
|
29114
28927
|
);
|
|
29115
28928
|
};
|
|
29116
|
-
const [highlightedIndex, setHighlightedIndex] =
|
|
29117
|
-
const [mentionHighlightedKey, setMentionHighlightedKey] =
|
|
29118
|
-
const [shouldCenterMentionHighlight, setShouldCenterMentionHighlight] =
|
|
28929
|
+
const [highlightedIndex, setHighlightedIndex] = useState28(0);
|
|
28930
|
+
const [mentionHighlightedKey, setMentionHighlightedKey] = useState28(null);
|
|
28931
|
+
const [shouldCenterMentionHighlight, setShouldCenterMentionHighlight] = useState28(false);
|
|
29119
28932
|
const [
|
|
29120
28933
|
shouldResetMentionHighlightToFilter,
|
|
29121
28934
|
setShouldResetMentionHighlightToFilter
|
|
29122
|
-
] =
|
|
29123
|
-
const [paletteDraftPrompt, setPaletteDraftPrompt] =
|
|
28935
|
+
] = useState28(false);
|
|
28936
|
+
const [paletteDraftPrompt, setPaletteDraftPrompt] = useState28(
|
|
29124
28937
|
goalDraftObjective ?? draftPrompt
|
|
29125
28938
|
);
|
|
29126
|
-
const [fileMentionSuggestion, setFileMentionSuggestion] =
|
|
28939
|
+
const [fileMentionSuggestion, setFileMentionSuggestion] = useState28(null);
|
|
29127
28940
|
const [isSelectedProjectMissing, setIsSelectedProjectMissing] = useScopedProjectMissingState(draftScopeKey);
|
|
29128
|
-
const [isSlashStatusPanelOpen, setIsSlashStatusPanelOpen] =
|
|
28941
|
+
const [isSlashStatusPanelOpen, setIsSlashStatusPanelOpen] = useState28(false);
|
|
29129
28942
|
const slashStatusAgentSessionId = slashStatus?.agentSessionId ?? null;
|
|
29130
28943
|
const previousSlashStatusAgentSessionIdRef = useRef42(
|
|
29131
28944
|
slashStatusAgentSessionId
|
|
@@ -29151,8 +28964,8 @@ function AgentComposer(props) {
|
|
|
29151
28964
|
const wasActiveRef = useRef42(isActive);
|
|
29152
28965
|
const lastComposerFocusRequestRef = useRef42(null);
|
|
29153
28966
|
const autoMentionHighlightedKeyRef = useRef42(null);
|
|
29154
|
-
const [isPromptTipOverflowing, setIsPromptTipOverflowing] =
|
|
29155
|
-
const [dockComposerMetrics, setDockComposerMetrics] =
|
|
28967
|
+
const [isPromptTipOverflowing, setIsPromptTipOverflowing] = useState28(false);
|
|
28968
|
+
const [dockComposerMetrics, setDockComposerMetrics] = useState28(
|
|
29156
28969
|
INITIAL_DOCK_COMPOSER_METRICS
|
|
29157
28970
|
);
|
|
29158
28971
|
const paletteCatalog = useComposerPaletteCatalog({
|
|
@@ -29265,7 +29078,7 @@ function AgentComposer(props) {
|
|
|
29265
29078
|
availableSkills,
|
|
29266
29079
|
composerSettings,
|
|
29267
29080
|
// Host-gated product capability: omit or enabled:false must hide Tutti Mode
|
|
29268
|
-
// entries (
|
|
29081
|
+
// entries (footer chip, badge activation, /tutti). Fail closed like other
|
|
29269
29082
|
// unsupported host capabilities — do not treat a missing flag as enabled.
|
|
29270
29083
|
tuttiModeSupported: capabilityMenuState?.tuttiMode?.enabled === true,
|
|
29271
29084
|
capabilityControlsReadOnly,
|
|
@@ -29552,7 +29365,7 @@ function AgentComposer(props) {
|
|
|
29552
29365
|
}
|
|
29553
29366
|
|
|
29554
29367
|
// agent-gui/agentGuiNode/AgentHomeSuggestions.tsx
|
|
29555
|
-
import { memo as memo2, useState as
|
|
29368
|
+
import { memo as memo2, useState as useState29 } from "react";
|
|
29556
29369
|
import { ArrowLeftRight, Code, Compass, Import, Pencil, X as X6 } from "lucide-react";
|
|
29557
29370
|
import { jsx as jsx47, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
29558
29371
|
function TuttiIcon(props) {
|
|
@@ -29663,7 +29476,7 @@ var AgentHomeSuggestions = memo2(function AgentHomeSuggestions2({
|
|
|
29663
29476
|
closeLabel
|
|
29664
29477
|
}) {
|
|
29665
29478
|
"use memo";
|
|
29666
|
-
const [activeCategoryId, setActiveCategoryId] =
|
|
29479
|
+
const [activeCategoryId, setActiveCategoryId] = useState29(null);
|
|
29667
29480
|
if (categories.length === 0) {
|
|
29668
29481
|
return null;
|
|
29669
29482
|
}
|
|
@@ -29925,7 +29738,7 @@ var AgentGUIEmptyHeroCarouselStage = class extends Component3 {
|
|
|
29925
29738
|
// agent-gui/agentGuiNode/view/AgentTargetSetupGate.tsx
|
|
29926
29739
|
import { useExternalStoreSnapshot } from "@tutti-os/ui-react-hooks";
|
|
29927
29740
|
import {
|
|
29928
|
-
Button as
|
|
29741
|
+
Button as Button7,
|
|
29929
29742
|
RefreshIcon,
|
|
29930
29743
|
Select as Select4,
|
|
29931
29744
|
SelectContent as SelectContent4,
|
|
@@ -30220,7 +30033,7 @@ function AgentTargetSetupGate({
|
|
|
30220
30033
|
}) }),
|
|
30221
30034
|
/* @__PURE__ */ jsx50("p", { className: AgentGUINode_styles_default.emptyProviderGateDescription, children: setupDescription }),
|
|
30222
30035
|
!setupChecking ? /* @__PURE__ */ jsx50(
|
|
30223
|
-
|
|
30036
|
+
Button7,
|
|
30224
30037
|
{
|
|
30225
30038
|
type: "button",
|
|
30226
30039
|
className: AgentGUINode_styles_default.emptyProviderGateAction,
|
|
@@ -30241,7 +30054,7 @@ function AgentTargetSetupGate({
|
|
|
30241
30054
|
}),
|
|
30242
30055
|
description: setupDescription,
|
|
30243
30056
|
footer: /* @__PURE__ */ jsxs37(
|
|
30244
|
-
|
|
30057
|
+
Button7,
|
|
30245
30058
|
{
|
|
30246
30059
|
size: "dialog",
|
|
30247
30060
|
type: "button",
|
|
@@ -30276,7 +30089,7 @@ function AgentTargetSetupGate({
|
|
|
30276
30089
|
warning: snapshot?.status === "not_installed",
|
|
30277
30090
|
detail: snapshot?.plan ? `${snapshot.plan.packageName}@${snapshot.plan.packageVersion}` : void 0,
|
|
30278
30091
|
action: (snapshot?.status === "not_installed" || installRetryAvailable) && snapshot.plan ? /* @__PURE__ */ jsx50(
|
|
30279
|
-
|
|
30092
|
+
Button7,
|
|
30280
30093
|
{
|
|
30281
30094
|
type: "button",
|
|
30282
30095
|
size: "sm",
|
|
@@ -30300,7 +30113,7 @@ function AgentTargetSetupGate({
|
|
|
30300
30113
|
warning: snapshot?.status === "auth_required",
|
|
30301
30114
|
detail: snapshot?.status === "ready" ? accountDetail : void 0,
|
|
30302
30115
|
action: authenticationAvailable && authMethods.length > 0 ? /* @__PURE__ */ jsx50(
|
|
30303
|
-
|
|
30116
|
+
Button7,
|
|
30304
30117
|
{
|
|
30305
30118
|
type: "button",
|
|
30306
30119
|
size: "sm",
|
|
@@ -30658,7 +30471,6 @@ var AgentGUIEmptyHeroPane = memo3(function AgentGUIEmptyHeroPane2({
|
|
|
30658
30471
|
}
|
|
30659
30472
|
) : null,
|
|
30660
30473
|
/* @__PURE__ */ jsx52(AgentComposer, { ...composerProps }),
|
|
30661
|
-
/* @__PURE__ */ jsx52(AgentGUIEmptyHeroTuttiToggle, { composerProps }),
|
|
30662
30474
|
/* @__PURE__ */ jsx52(
|
|
30663
30475
|
AgentHomeSuggestions,
|
|
30664
30476
|
{
|
|
@@ -30670,61 +30482,6 @@ var AgentGUIEmptyHeroPane = memo3(function AgentGUIEmptyHeroPane2({
|
|
|
30670
30482
|
)
|
|
30671
30483
|
] }) });
|
|
30672
30484
|
});
|
|
30673
|
-
function AgentGUIEmptyHeroTuttiToggle({
|
|
30674
|
-
composerProps
|
|
30675
|
-
}) {
|
|
30676
|
-
const switchId = useId2();
|
|
30677
|
-
const onTuttiModeChange = composerProps.onTuttiModeChange;
|
|
30678
|
-
const tuttiModeEnabled = composerProps.capabilityMenuState?.tuttiMode?.enabled === true;
|
|
30679
|
-
if (!onTuttiModeChange || !tuttiModeEnabled) {
|
|
30680
|
-
return null;
|
|
30681
|
-
}
|
|
30682
|
-
const active = composerProps.tuttiModeActive === true;
|
|
30683
|
-
const updating = composerProps.tuttiModeUpdating === true;
|
|
30684
|
-
const label = composerProps.labels.tuttiModeLabel;
|
|
30685
|
-
const description = composerProps.labels.tuttiModeDescription;
|
|
30686
|
-
return /* @__PURE__ */ jsxs39(
|
|
30687
|
-
"label",
|
|
30688
|
-
{
|
|
30689
|
-
className: cn7(
|
|
30690
|
-
"mx-auto flex w-full max-w-[560px] items-center gap-2.5 rounded-xl border px-3 py-2 transition-colors",
|
|
30691
|
-
active ? "border-[var(--tutti-purple)] bg-[color-mix(in_srgb,var(--tutti-purple)_8%,transparent)]" : "border-[var(--line-2)] hover:border-[var(--tutti-purple)]",
|
|
30692
|
-
updating ? "cursor-wait opacity-70" : "cursor-pointer"
|
|
30693
|
-
),
|
|
30694
|
-
htmlFor: switchId,
|
|
30695
|
-
title: description,
|
|
30696
|
-
"data-testid": "agent-gui-hero-tutti-toggle",
|
|
30697
|
-
children: [
|
|
30698
|
-
/* @__PURE__ */ jsx52(
|
|
30699
|
-
Sparkles2,
|
|
30700
|
-
{
|
|
30701
|
-
"aria-hidden": true,
|
|
30702
|
-
className: cn7(
|
|
30703
|
-
"size-4 shrink-0",
|
|
30704
|
-
active ? "text-[var(--tutti-purple)]" : "text-[var(--agent-gui-text-secondary)]"
|
|
30705
|
-
)
|
|
30706
|
-
}
|
|
30707
|
-
),
|
|
30708
|
-
/* @__PURE__ */ jsxs39("span", { className: "flex min-w-0 flex-1 flex-col text-left", children: [
|
|
30709
|
-
/* @__PURE__ */ jsx52("span", { className: "text-[13px] font-medium text-[var(--text-primary)]", children: label }),
|
|
30710
|
-
description ? /* @__PURE__ */ jsx52("span", { className: "truncate text-[11px] text-[var(--agent-gui-text-tertiary)]", children: description }) : null
|
|
30711
|
-
] }),
|
|
30712
|
-
/* @__PURE__ */ jsx52(
|
|
30713
|
-
Switch,
|
|
30714
|
-
{
|
|
30715
|
-
id: switchId,
|
|
30716
|
-
size: "sm",
|
|
30717
|
-
checked: active,
|
|
30718
|
-
disabled: updating,
|
|
30719
|
-
"aria-label": label,
|
|
30720
|
-
"data-testid": "agent-gui-hero-tutti-toggle-switch",
|
|
30721
|
-
onCheckedChange: (checked) => onTuttiModeChange(checked)
|
|
30722
|
-
}
|
|
30723
|
-
)
|
|
30724
|
-
]
|
|
30725
|
-
}
|
|
30726
|
-
);
|
|
30727
|
-
}
|
|
30728
30485
|
var AgentGUIProviderReadinessGatePane = memo3(
|
|
30729
30486
|
function AgentGUIProviderReadinessGatePane2({
|
|
30730
30487
|
provider,
|
|
@@ -31020,11 +30777,11 @@ function EmptyHeroTitle({
|
|
|
31020
30777
|
// agent-gui/agentGuiNode/view/AgentGUIProviderManagerDialog.tsx
|
|
31021
30778
|
import {
|
|
31022
30779
|
useRef as useRef44,
|
|
31023
|
-
useState as
|
|
30780
|
+
useState as useState30
|
|
31024
30781
|
} from "react";
|
|
31025
30782
|
import { CircleMinus, CirclePlus } from "lucide-react";
|
|
31026
30783
|
import {
|
|
31027
|
-
Button as
|
|
30784
|
+
Button as Button8,
|
|
31028
30785
|
Dialog as Dialog2,
|
|
31029
30786
|
DialogContent as DialogContent2,
|
|
31030
30787
|
DialogDescription as DialogDescription2,
|
|
@@ -31053,17 +30810,17 @@ function AgentGUIProviderManagerDialog({
|
|
|
31053
30810
|
const disabledTargets = targets.filter(
|
|
31054
30811
|
(target) => hidden.has(target.targetId)
|
|
31055
30812
|
);
|
|
31056
|
-
const [editing, setEditing] =
|
|
31057
|
-
const [dragState, setDragState] =
|
|
30813
|
+
const [editing, setEditing] = useState30(false);
|
|
30814
|
+
const [dragState, setDragState] = useState30(
|
|
31058
30815
|
null
|
|
31059
30816
|
);
|
|
31060
|
-
const [dragOverZone, setDragOverZone] =
|
|
30817
|
+
const [dragOverZone, setDragOverZone] = useState30(
|
|
31061
30818
|
null
|
|
31062
30819
|
);
|
|
31063
|
-
const [dragPreview, setDragPreview] =
|
|
30820
|
+
const [dragPreview, setDragPreview] = useState30(null);
|
|
31064
30821
|
const dragStateRef = useRef44(null);
|
|
31065
30822
|
const dragPreviewRef = useRef44(null);
|
|
31066
|
-
const [longPressTargetId, setLongPressTargetId] =
|
|
30823
|
+
const [longPressTargetId, setLongPressTargetId] = useState30(
|
|
31067
30824
|
null
|
|
31068
30825
|
);
|
|
31069
30826
|
const longPressOriginRef = useRef44(null);
|
|
@@ -31356,7 +31113,7 @@ function AgentGUIProviderManagerDialog({
|
|
|
31356
31113
|
}
|
|
31357
31114
|
) : null,
|
|
31358
31115
|
editing ? /* @__PURE__ */ jsx53(
|
|
31359
|
-
|
|
31116
|
+
Button8,
|
|
31360
31117
|
{
|
|
31361
31118
|
"aria-label": labels.removeAgentFromSidebar(label),
|
|
31362
31119
|
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)]",
|
|
@@ -31478,7 +31235,7 @@ function AgentGUIProviderManagerDialog({
|
|
|
31478
31235
|
}
|
|
31479
31236
|
) : null,
|
|
31480
31237
|
editing ? /* @__PURE__ */ jsx53(
|
|
31481
|
-
|
|
31238
|
+
Button8,
|
|
31482
31239
|
{
|
|
31483
31240
|
"aria-label": labels.addAgentToSidebar(label),
|
|
31484
31241
|
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)]",
|
|
@@ -31523,7 +31280,7 @@ function AgentGUIProviderManagerDialog({
|
|
|
31523
31280
|
}
|
|
31524
31281
|
|
|
31525
31282
|
// agent-gui/agentGuiNode/view/useAgentGUIProviderRailPreferences.ts
|
|
31526
|
-
import { useCallback as useCallback50, useEffect as useEffect29, useState as
|
|
31283
|
+
import { useCallback as useCallback50, useEffect as useEffect29, useState as useState31 } from "react";
|
|
31527
31284
|
function readAgentGUIProviderRailPreferences(storageKey) {
|
|
31528
31285
|
return parseAgentGUIProviderRailPreferences(
|
|
31529
31286
|
globalThis.localStorage?.getItem(storageKey)
|
|
@@ -31531,7 +31288,7 @@ function readAgentGUIProviderRailPreferences(storageKey) {
|
|
|
31531
31288
|
}
|
|
31532
31289
|
function useAgentGUIProviderRailPreferences() {
|
|
31533
31290
|
const storageKey = agentGUIProviderRailOrderStorageKey();
|
|
31534
|
-
const [preferences, setPreferences] =
|
|
31291
|
+
const [preferences, setPreferences] = useState31(
|
|
31535
31292
|
() => readAgentGUIProviderRailPreferences(storageKey)
|
|
31536
31293
|
);
|
|
31537
31294
|
useEffect29(() => {
|
|
@@ -31664,7 +31421,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
|
|
|
31664
31421
|
persistPreferences: persistProviderRailPreferences,
|
|
31665
31422
|
preferences: providerRailPreferences
|
|
31666
31423
|
} = useAgentGUIProviderRailPreferences();
|
|
31667
|
-
const [dragState, setDragState] =
|
|
31424
|
+
const [dragState, setDragState] = useState32(null);
|
|
31668
31425
|
const dragStateRef = useRef45(null);
|
|
31669
31426
|
const setProviderRailDragState = useCallback51(
|
|
31670
31427
|
(nextDragState) => {
|
|
@@ -32138,10 +31895,10 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
|
|
|
32138
31895
|
});
|
|
32139
31896
|
|
|
32140
31897
|
// agent-gui/agentGuiNode/controller/AgentGUIConversationRailController.tsx
|
|
32141
|
-
import { memo as memo9, useState as
|
|
31898
|
+
import { memo as memo9, useState as useState38 } from "react";
|
|
32142
31899
|
|
|
32143
31900
|
// agent-gui/agentGuiNode/view/AgentGUIConversationRailPane.tsx
|
|
32144
|
-
import { Fragment as Fragment22, memo as memo8, useEffect as useEffect30, useMemo as useMemo40, useRef as useRef48, useState as
|
|
31901
|
+
import { Fragment as Fragment22, memo as memo8, useEffect as useEffect30, useMemo as useMemo40, useRef as useRef48, useState as useState37 } from "react";
|
|
32145
31902
|
import { Button as SystemButton } from "@tutti-os/ui-system";
|
|
32146
31903
|
import { ScrollArea as ScrollArea2 } from "@tutti-os/ui-system/components";
|
|
32147
31904
|
import { CreateChatIcon as CreateChatIcon2 } from "@tutti-os/ui-system/icons";
|
|
@@ -32884,7 +32641,7 @@ function reduceAgentGUIConversationRailViewState(state, action) {
|
|
|
32884
32641
|
}
|
|
32885
32642
|
|
|
32886
32643
|
// agent-gui/agentGuiNode/controller/useAgentGUIProjectDrag.ts
|
|
32887
|
-
import { useCallback as useCallback52, useState as
|
|
32644
|
+
import { useCallback as useCallback52, useState as useState33 } from "react";
|
|
32888
32645
|
var PROJECT_DRAG_SCROLL_EDGE_PX = 40;
|
|
32889
32646
|
function projectDragAutoScrollDelta(clientY, bounds) {
|
|
32890
32647
|
if (clientY < bounds.top + PROJECT_DRAG_SCROLL_EDGE_PX) {
|
|
@@ -32902,9 +32659,9 @@ function projectDragAutoScrollDelta(clientY, bounds) {
|
|
|
32902
32659
|
return 0;
|
|
32903
32660
|
}
|
|
32904
32661
|
function useAgentGUIProjectDrag(input) {
|
|
32905
|
-
const [dragState, setDragState] =
|
|
32906
|
-
const [isMovePending, setIsMovePending] =
|
|
32907
|
-
const [runtime] =
|
|
32662
|
+
const [dragState, setDragState] = useState33(null);
|
|
32663
|
+
const [isMovePending, setIsMovePending] = useState33(false);
|
|
32664
|
+
const [runtime] = useState33(() => ({
|
|
32908
32665
|
active: false,
|
|
32909
32666
|
clientY: null,
|
|
32910
32667
|
dragState: null,
|
|
@@ -33327,7 +33084,7 @@ import {
|
|
|
33327
33084
|
useCallback as useCallback53,
|
|
33328
33085
|
useMemo as useMemo38,
|
|
33329
33086
|
useRef as useRef46,
|
|
33330
|
-
useState as
|
|
33087
|
+
useState as useState34
|
|
33331
33088
|
} from "react";
|
|
33332
33089
|
import {
|
|
33333
33090
|
AtSign,
|
|
@@ -33537,7 +33294,7 @@ function useConversationActionGroups({
|
|
|
33537
33294
|
const agentHostApi = useOptionalAgentHostApi();
|
|
33538
33295
|
const agentActivityRuntime = useOptionalAgentActivityRuntime();
|
|
33539
33296
|
const copyConversationValue = useAgentGUIConversationCopyAction(labels);
|
|
33540
|
-
const [resetKey, setResetKey] =
|
|
33297
|
+
const [resetKey, setResetKey] = useState34(0);
|
|
33541
33298
|
const pendingActionRef = useRef46(false);
|
|
33542
33299
|
const run = useCallback53(
|
|
33543
33300
|
(action) => {
|
|
@@ -33631,7 +33388,7 @@ function AgentGUIConversationActionsDropdown({
|
|
|
33631
33388
|
menu,
|
|
33632
33389
|
moreSessionActionsLabel
|
|
33633
33390
|
}) {
|
|
33634
|
-
const [open, setOpen] =
|
|
33391
|
+
const [open, setOpen] = useState34(false);
|
|
33635
33392
|
return /* @__PURE__ */ jsxs44(DropdownMenu4, { onOpenChange: setOpen, children: [
|
|
33636
33393
|
/* @__PURE__ */ jsx61(DropdownMenuTrigger4, { asChild: true, children: /* @__PURE__ */ jsx61(
|
|
33637
33394
|
BareIconButton2,
|
|
@@ -33661,7 +33418,7 @@ function AgentGUIConversationActionsContextMenu({
|
|
|
33661
33418
|
children,
|
|
33662
33419
|
menu
|
|
33663
33420
|
}) {
|
|
33664
|
-
const [open, setOpen] =
|
|
33421
|
+
const [open, setOpen] = useState34(false);
|
|
33665
33422
|
return /* @__PURE__ */ jsxs44(ContextMenu2, { onOpenChange: setOpen, children: [
|
|
33666
33423
|
/* @__PURE__ */ jsx61(ContextMenuTrigger2, { asChild: true, children }),
|
|
33667
33424
|
open ? /* @__PURE__ */ jsx61(ContextMenuContent2, { className: menuContentClassName, children: /* @__PURE__ */ jsx61(ContextActionGroups, { groups: menu.groups }) }) : null
|
|
@@ -34086,7 +33843,7 @@ function AgentGUIProjectRailHeader({
|
|
|
34086
33843
|
}
|
|
34087
33844
|
|
|
34088
33845
|
// agent-gui/agentGuiNode/view/AgentGUIConversationRailSectionHeader.tsx
|
|
34089
|
-
import { forwardRef as forwardRef5, memo as memo6, useCallback as useCallback55, useState as
|
|
33846
|
+
import { forwardRef as forwardRef5, memo as memo6, useCallback as useCallback55, useState as useState35 } from "react";
|
|
34090
33847
|
import { ChevronRight as ChevronRight2 } from "lucide-react";
|
|
34091
33848
|
import {
|
|
34092
33849
|
DropdownMenu as DropdownMenu5,
|
|
@@ -34500,8 +34257,8 @@ var AgentGUIConversationRailSectionHeader = memo6(
|
|
|
34500
34257
|
sectionLabel
|
|
34501
34258
|
}) {
|
|
34502
34259
|
"use memo";
|
|
34503
|
-
const [projectMenuOpen, setProjectMenuOpen] =
|
|
34504
|
-
const [conversationMenuOpen, setConversationMenuOpen] =
|
|
34260
|
+
const [projectMenuOpen, setProjectMenuOpen] = useState35(false);
|
|
34261
|
+
const [conversationMenuOpen, setConversationMenuOpen] = useState35(false);
|
|
34505
34262
|
const handleProjectMenuOpenChange = useCallback55(
|
|
34506
34263
|
(open) => {
|
|
34507
34264
|
setProjectMenuOpen(open);
|
|
@@ -35032,9 +34789,9 @@ function useAgentGUIConversationRailViewState(input) {
|
|
|
35032
34789
|
}
|
|
35033
34790
|
|
|
35034
34791
|
// agent-gui/agentGuiNode/view/useAgentGUIProjectMenuState.ts
|
|
35035
|
-
import { useCallback as useCallback58, useState as
|
|
34792
|
+
import { useCallback as useCallback58, useState as useState36 } from "react";
|
|
35036
34793
|
function useAgentGUIProjectMenuState(isRailInteractionLocked, isUserProjectMutationPending) {
|
|
35037
|
-
const [openSectionId, setOpenSectionId] =
|
|
34794
|
+
const [openSectionId, setOpenSectionId] = useState36(null);
|
|
35038
34795
|
const isProjectActionLocked = useCallback58(
|
|
35039
34796
|
() => isRailInteractionLocked() || isUserProjectMutationPending,
|
|
35040
34797
|
[isRailInteractionLocked, isUserProjectMutationPending]
|
|
@@ -35057,7 +34814,7 @@ function useAgentGUIProjectMenuState(isRailInteractionLocked, isUserProjectMutat
|
|
|
35057
34814
|
// agent-gui/agentGuiNode/view/AgentGUIConversationRailPane.tsx
|
|
35058
34815
|
import { jsx as jsx67, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
35059
34816
|
function useDelayedBoolean(value, delayMs) {
|
|
35060
|
-
const [delayedValue, setDelayedValue] =
|
|
34817
|
+
const [delayedValue, setDelayedValue] = useState37(false);
|
|
35061
34818
|
useEffect30(() => {
|
|
35062
34819
|
if (!value) {
|
|
35063
34820
|
setDelayedValue(false);
|
|
@@ -35111,8 +34868,8 @@ var AgentGUIConversationRailPane = memo8(
|
|
|
35111
34868
|
onConversationQueryChange
|
|
35112
34869
|
}) {
|
|
35113
34870
|
"use memo";
|
|
35114
|
-
const [pendingProjectAction, setPendingProjectAction] =
|
|
35115
|
-
const [isRequestingBatchDeletion, setIsRequestingBatchDeletion] =
|
|
34871
|
+
const [pendingProjectAction, setPendingProjectAction] = useState37(null);
|
|
34872
|
+
const [isRequestingBatchDeletion, setIsRequestingBatchDeletion] = useState37(false);
|
|
35116
34873
|
const { railSearch } = railQuery;
|
|
35117
34874
|
const railElementRef = useRef48(null);
|
|
35118
34875
|
const railActiveConversationRef = useRef48([]);
|
|
@@ -36934,7 +36691,7 @@ function identitySnapshot(snapshot) {
|
|
|
36934
36691
|
import { jsx as jsx68 } from "react/jsx-runtime";
|
|
36935
36692
|
var AgentGUIConversationRailController = memo9(
|
|
36936
36693
|
function AgentGUIConversationRailController2(props) {
|
|
36937
|
-
const [conversationQuery, setConversationQuery] =
|
|
36694
|
+
const [conversationQuery, setConversationQuery] = useState38("");
|
|
36938
36695
|
const railQuery = useAgentGUIConversationRailQuery({
|
|
36939
36696
|
activeConversationId: props.activeConversationId,
|
|
36940
36697
|
conversationFilter: props.conversationFilter,
|
|
@@ -37196,7 +36953,7 @@ function AgentComposerRegion({
|
|
|
37196
36953
|
}
|
|
37197
36954
|
|
|
37198
36955
|
// agent-gui/agentGuiNode/AgentGoalBanner.tsx
|
|
37199
|
-
import { useEffect as useEffect32, useState as
|
|
36956
|
+
import { useEffect as useEffect32, useState as useState39 } from "react";
|
|
37200
36957
|
import { CirclePause, CirclePlay, Pencil as Pencil3, Target as Target3, Trash2 } from "lucide-react";
|
|
37201
36958
|
import { jsx as jsx69, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
37202
36959
|
var RESUMABLE_GOAL_STATUSES = /* @__PURE__ */ new Set([
|
|
@@ -37272,11 +37029,11 @@ function AgentGoalBanner({
|
|
|
37272
37029
|
onClearGoal
|
|
37273
37030
|
}) {
|
|
37274
37031
|
"use memo";
|
|
37275
|
-
const [editDraft, setEditDraft] =
|
|
37032
|
+
const [editDraft, setEditDraft] = useState39(null);
|
|
37276
37033
|
const normalizedStatus = normalizeGoalStatus(status);
|
|
37277
37034
|
const isActive = normalizedStatus === "" || normalizedStatus === "active";
|
|
37278
37035
|
const serverSeconds = optimistic ? null : typeof durationMs === "number" && durationMs >= 0 ? Math.floor(durationMs / 1e3) : isActive ? 0 : null;
|
|
37279
|
-
const [localElapsed, setLocalElapsed] =
|
|
37036
|
+
const [localElapsed, setLocalElapsed] = useState39(0);
|
|
37280
37037
|
useEffect32(() => {
|
|
37281
37038
|
setLocalElapsed(0);
|
|
37282
37039
|
if (!isActive || serverSeconds === null) {
|
|
@@ -37422,9 +37179,9 @@ import {
|
|
|
37422
37179
|
ListChecks as ListChecks4,
|
|
37423
37180
|
LoaderCircle,
|
|
37424
37181
|
RotateCcw,
|
|
37425
|
-
Sparkles as Sparkles3,
|
|
37426
37182
|
X as X7
|
|
37427
37183
|
} from "lucide-react";
|
|
37184
|
+
import { TaskIcon } from "@tutti-os/ui-system/icons";
|
|
37428
37185
|
|
|
37429
37186
|
// workspaceWorkflow/workspaceWorkflowRuntime.tsx
|
|
37430
37187
|
import { createContext as createContext3, useContext as useContext3 } from "react";
|
|
@@ -37613,7 +37370,7 @@ import ReactMarkdown2 from "react-markdown";
|
|
|
37613
37370
|
import rehypeSanitize from "rehype-sanitize";
|
|
37614
37371
|
import remarkGfm2 from "remark-gfm";
|
|
37615
37372
|
import {
|
|
37616
|
-
Badge
|
|
37373
|
+
Badge,
|
|
37617
37374
|
Card,
|
|
37618
37375
|
CardContent,
|
|
37619
37376
|
CardDescription,
|
|
@@ -37693,7 +37450,7 @@ function TuttiModePlanTaskAssignmentEditor({
|
|
|
37693
37450
|
return /* @__PURE__ */ jsxs51(
|
|
37694
37451
|
"div",
|
|
37695
37452
|
{
|
|
37696
|
-
className: "mt-3 flex flex-wrap items-center gap-
|
|
37453
|
+
className: "tutti-plan-task-assignment-row mt-3 flex flex-wrap items-center gap-1 border-t border-[var(--line-2)] pt-2",
|
|
37697
37454
|
"data-testid": `tutti-plan-task-assignment-${task.id}`,
|
|
37698
37455
|
children: [
|
|
37699
37456
|
/* @__PURE__ */ jsxs51(
|
|
@@ -37784,7 +37541,7 @@ function TuttiModePlanTaskAssignmentEditor({
|
|
|
37784
37541
|
"label",
|
|
37785
37542
|
{
|
|
37786
37543
|
className: cn9(
|
|
37787
|
-
"flex min-h-[28px] w-auto shrink-0 items-center gap-1.5 px-
|
|
37544
|
+
"flex min-h-[28px] w-auto shrink-0 items-center gap-1.5 px-1 text-[13px]",
|
|
37788
37545
|
disabled ? "cursor-not-allowed text-[var(--agent-gui-text-tertiary)]" : "cursor-pointer text-[var(--agent-gui-text-secondary)]"
|
|
37789
37546
|
),
|
|
37790
37547
|
htmlFor: `tutti-plan-task-parallel-${task.id}`,
|
|
@@ -37811,7 +37568,7 @@ function TuttiModePlanTaskAssignmentEditor({
|
|
|
37811
37568
|
"label",
|
|
37812
37569
|
{
|
|
37813
37570
|
className: cn9(
|
|
37814
|
-
"flex min-h-[28px] w-auto shrink-0 items-center gap-1.5 px-
|
|
37571
|
+
"flex min-h-[28px] w-auto shrink-0 items-center gap-1.5 px-1 text-[13px]",
|
|
37815
37572
|
disabled ? "cursor-not-allowed text-[var(--agent-gui-text-tertiary)]" : "cursor-pointer text-[var(--agent-gui-text-secondary)]"
|
|
37816
37573
|
),
|
|
37817
37574
|
htmlFor: `tutti-plan-task-auto-accept-${task.id}`,
|
|
@@ -37970,7 +37727,7 @@ function TuttiModePlanPanel({
|
|
|
37970
37727
|
/* @__PURE__ */ jsx72("ol", { className: "grid gap-2", children: panel.tasks.map((task) => /* @__PURE__ */ jsxs52(
|
|
37971
37728
|
"li",
|
|
37972
37729
|
{
|
|
37973
|
-
className: "rounded-
|
|
37730
|
+
className: "rounded-lg border border-[var(--line-2)] bg-[var(--background-board-card)] px-4 pt-3 pb-2 text-sm",
|
|
37974
37731
|
children: [
|
|
37975
37732
|
/* @__PURE__ */ jsxs52("div", { className: "flex flex-wrap items-start justify-between gap-2", children: [
|
|
37976
37733
|
/* @__PURE__ */ jsxs52("div", { className: "font-medium text-foreground", children: [
|
|
@@ -37978,7 +37735,7 @@ function TuttiModePlanPanel({
|
|
|
37978
37735
|
". ",
|
|
37979
37736
|
task.title
|
|
37980
37737
|
] }),
|
|
37981
|
-
/* @__PURE__ */ jsx72(
|
|
37738
|
+
/* @__PURE__ */ jsx72(Badge, { variant: "secondary", children: priorityLabel(labels, task.priority) })
|
|
37982
37739
|
] }),
|
|
37983
37740
|
task.content ? /* @__PURE__ */ jsx72("p", { className: "mt-1 text-xs text-muted-foreground", children: task.content }) : null,
|
|
37984
37741
|
editable && assignmentCatalog ? /* @__PURE__ */ jsx72(
|
|
@@ -38029,7 +37786,7 @@ function TaskAssignmentSummary({
|
|
|
38029
37786
|
if (chips.length === 0) {
|
|
38030
37787
|
return null;
|
|
38031
37788
|
}
|
|
38032
|
-
return /* @__PURE__ */ jsx72("div", { className: "mt-3 flex flex-wrap items-center gap-0.5 border-t border-
|
|
37789
|
+
return /* @__PURE__ */ jsx72("div", { className: "mt-3 flex flex-wrap items-center gap-0.5 border-t border-[var(--line-2)] pt-2", children: chips.map((chip) => /* @__PURE__ */ jsx72(
|
|
38033
37790
|
"span",
|
|
38034
37791
|
{
|
|
38035
37792
|
title: chip.label,
|
|
@@ -38055,9 +37812,9 @@ function priorityLabel(labels, priority) {
|
|
|
38055
37812
|
}
|
|
38056
37813
|
|
|
38057
37814
|
// workspaceWorkflow/tuttiModePlan/TuttiPlanIssuePanel.tsx
|
|
38058
|
-
import { useState as
|
|
37815
|
+
import { useState as useState40 } from "react";
|
|
38059
37816
|
import { ExternalLink as ExternalLink4, ListChecks as ListChecks3, Square } from "lucide-react";
|
|
38060
|
-
import { Button as
|
|
37817
|
+
import { Button as Button9, Card as Card2, CardContent as CardContent2, CardHeader as CardHeader2, cn as cn11 } from "@tutti-os/ui-system";
|
|
38061
37818
|
import { jsx as jsx73, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
38062
37819
|
var BOARD_STATUS_ORDER = [
|
|
38063
37820
|
"not_started",
|
|
@@ -38134,9 +37891,9 @@ function TuttiPlanIssuePanel({
|
|
|
38134
37891
|
onCancelExecution,
|
|
38135
37892
|
onOpenTask
|
|
38136
37893
|
}) {
|
|
38137
|
-
const [viewMode, setViewMode] =
|
|
38138
|
-
const [decidingTaskIds, setDecidingTaskIds] =
|
|
38139
|
-
const [stopping, setStopping] =
|
|
37894
|
+
const [viewMode, setViewMode] = useState40("board");
|
|
37895
|
+
const [decidingTaskIds, setDecidingTaskIds] = useState40([]);
|
|
37896
|
+
const [stopping, setStopping] = useState40(false);
|
|
38140
37897
|
const decideTask = onDecideTask ? (taskId, decision) => {
|
|
38141
37898
|
setDecidingTaskIds(
|
|
38142
37899
|
(current) => current.includes(taskId) ? current : [...current, taskId]
|
|
@@ -38204,7 +37961,7 @@ function TuttiPlanIssuePanel({
|
|
|
38204
37961
|
mode
|
|
38205
37962
|
)) }),
|
|
38206
37963
|
stopExecution ? /* @__PURE__ */ jsxs53(
|
|
38207
|
-
|
|
37964
|
+
Button9,
|
|
38208
37965
|
{
|
|
38209
37966
|
type: "button",
|
|
38210
37967
|
size: "sm",
|
|
@@ -38220,7 +37977,7 @@ function TuttiPlanIssuePanel({
|
|
|
38220
37977
|
}
|
|
38221
37978
|
) : null,
|
|
38222
37979
|
onOpenIssue ? /* @__PURE__ */ jsxs53(
|
|
38223
|
-
|
|
37980
|
+
Button9,
|
|
38224
37981
|
{
|
|
38225
37982
|
type: "button",
|
|
38226
37983
|
size: "sm",
|
|
@@ -38272,7 +38029,7 @@ function TaskStructureChips({
|
|
|
38272
38029
|
dependencies.length > 0 ? /* @__PURE__ */ jsxs53(
|
|
38273
38030
|
"span",
|
|
38274
38031
|
{
|
|
38275
|
-
className: "min-w-0 truncate rounded-full border border-
|
|
38032
|
+
className: "min-w-0 truncate rounded-full border border-[var(--line-2)] px-1.5 text-[10px] leading-4 text-muted-foreground",
|
|
38276
38033
|
title: dependencies.join(", "),
|
|
38277
38034
|
children: [
|
|
38278
38035
|
labels.dependencies,
|
|
@@ -38296,7 +38053,7 @@ function TaskDecisionActions({
|
|
|
38296
38053
|
}
|
|
38297
38054
|
return /* @__PURE__ */ jsxs53("span", { className: "flex shrink-0 items-center gap-1", children: [
|
|
38298
38055
|
canAccept ? /* @__PURE__ */ jsx73(
|
|
38299
|
-
|
|
38056
|
+
Button9,
|
|
38300
38057
|
{
|
|
38301
38058
|
type: "button",
|
|
38302
38059
|
size: "sm",
|
|
@@ -38311,7 +38068,7 @@ function TaskDecisionActions({
|
|
|
38311
38068
|
}
|
|
38312
38069
|
) : null,
|
|
38313
38070
|
/* @__PURE__ */ jsx73(
|
|
38314
|
-
|
|
38071
|
+
Button9,
|
|
38315
38072
|
{
|
|
38316
38073
|
type: "button",
|
|
38317
38074
|
size: "sm",
|
|
@@ -38355,7 +38112,7 @@ function TuttiPlanIssueBoard({
|
|
|
38355
38112
|
return /* @__PURE__ */ jsxs53(
|
|
38356
38113
|
"div",
|
|
38357
38114
|
{
|
|
38358
|
-
className: "min-h-[220px] rounded-lg border border-
|
|
38115
|
+
className: "min-h-[220px] rounded-lg border border-[var(--line-2)] bg-muted/30 px-2 py-2",
|
|
38359
38116
|
"data-testid": `tutti-plan-issue-column-${status}`,
|
|
38360
38117
|
children: [
|
|
38361
38118
|
/* @__PURE__ */ jsxs53("div", { className: "mb-1.5 flex items-center justify-between gap-2", children: [
|
|
@@ -38426,11 +38183,11 @@ function TuttiPlanIssueList({
|
|
|
38426
38183
|
}) {
|
|
38427
38184
|
const showStages = issue.tasks.some((task) => task.parallelizable);
|
|
38428
38185
|
const stages = showStages ? groupTuttiPlanIssueTasksIntoStages(issue.tasks) : [{ kind: "sequential", tasks: [...issue.tasks] }];
|
|
38429
|
-
return /* @__PURE__ */ jsx73("div", { className: "overflow-hidden rounded-lg border border-
|
|
38186
|
+
return /* @__PURE__ */ jsx73("div", { className: "overflow-hidden rounded-lg border border-[var(--line-2)]", children: stages.map((stage, index) => /* @__PURE__ */ jsxs53("div", { children: [
|
|
38430
38187
|
showStages ? /* @__PURE__ */ jsx73(
|
|
38431
38188
|
"div",
|
|
38432
38189
|
{
|
|
38433
|
-
className: "border-b border-
|
|
38190
|
+
className: "border-b border-[var(--line-2)] bg-muted/40 px-3 py-1 text-[10px] font-medium text-muted-foreground",
|
|
38434
38191
|
"data-testid": `tutti-plan-issue-stage-${stage.kind}`,
|
|
38435
38192
|
children: stage.kind === "parallel" ? labels.stageParallel(
|
|
38436
38193
|
String(index + 1),
|
|
@@ -38448,7 +38205,7 @@ function TuttiPlanIssueList({
|
|
|
38448
38205
|
tabIndex: openable ? 0 : void 0,
|
|
38449
38206
|
"data-testid": `tutti-plan-issue-row-${task.taskId}`,
|
|
38450
38207
|
className: cn11(
|
|
38451
|
-
"flex items-start justify-between gap-3 border-b border-
|
|
38208
|
+
"flex items-start justify-between gap-3 border-b border-[var(--line-2)] px-3 py-2 last:border-b-0",
|
|
38452
38209
|
openable && "cursor-pointer transition-colors hover:bg-muted/40"
|
|
38453
38210
|
),
|
|
38454
38211
|
onClick: openable ? () => void openTask(task.taskId) : void 0,
|
|
@@ -38498,7 +38255,7 @@ function TuttiPlanIssueList({
|
|
|
38498
38255
|
}
|
|
38499
38256
|
|
|
38500
38257
|
// workspaceWorkflow/tuttiModePlan/useTuttiModePlanPanels.ts
|
|
38501
|
-
import { useCallback as useCallback59, useEffect as useEffect33, useMemo as useMemo42, useRef as useRef51, useState as
|
|
38258
|
+
import { useCallback as useCallback59, useEffect as useEffect33, useMemo as useMemo42, useRef as useRef51, useState as useState41 } from "react";
|
|
38502
38259
|
function emptyState(scopeKey) {
|
|
38503
38260
|
return {
|
|
38504
38261
|
error: null,
|
|
@@ -38519,14 +38276,14 @@ var EMPTY_AGENT_DETAIL = {
|
|
|
38519
38276
|
};
|
|
38520
38277
|
function useTuttiModePlanPanels(input) {
|
|
38521
38278
|
const runtime = useOptionalTuttiModePlanReviewRuntime();
|
|
38522
|
-
const [state, setState] =
|
|
38523
|
-
const [assignmentState, setAssignmentState] =
|
|
38524
|
-
const [planIssueState, setPlanIssueState] =
|
|
38279
|
+
const [state, setState] = useState41(() => emptyState(""));
|
|
38280
|
+
const [assignmentState, setAssignmentState] = useState41(() => emptyAssignmentState(""));
|
|
38281
|
+
const [planIssueState, setPlanIssueState] = useState41({
|
|
38525
38282
|
result: null,
|
|
38526
38283
|
scopeKey: ""
|
|
38527
38284
|
});
|
|
38528
38285
|
const requestSequenceRef = useRef51(0);
|
|
38529
|
-
const [retrySequence, setRetrySequence] =
|
|
38286
|
+
const [retrySequence, setRetrySequence] = useState41(0);
|
|
38530
38287
|
const enabled = input.enabled ?? true;
|
|
38531
38288
|
const workspaceId = input.workspaceId.trim();
|
|
38532
38289
|
const sourceSessionId = input.sourceSessionId?.trim() ?? "";
|
|
@@ -38950,8 +38707,209 @@ function AgentComposerDisclosureCard({
|
|
|
38950
38707
|
) });
|
|
38951
38708
|
}
|
|
38952
38709
|
|
|
38710
|
+
// agent-gui/agentGuiNode/composer/TuttiBudgetPopover.tsx
|
|
38711
|
+
import { useState as useState42 } from "react";
|
|
38712
|
+
import {
|
|
38713
|
+
Badge as Badge2,
|
|
38714
|
+
Button as Button10,
|
|
38715
|
+
Popover as Popover6,
|
|
38716
|
+
PopoverContent as PopoverContent5,
|
|
38717
|
+
PopoverTrigger as PopoverTrigger4,
|
|
38718
|
+
Slider
|
|
38719
|
+
} from "@tutti-os/ui-system";
|
|
38720
|
+
|
|
38721
|
+
// agent-gui/agentGuiNode/composer/tuttiIntensityPreview.ts
|
|
38722
|
+
function projectTuttiIntensityPreview(intensity) {
|
|
38723
|
+
const normalized = Number.isFinite(intensity) ? Math.min(100, Math.max(0, Math.round(intensity))) : 50;
|
|
38724
|
+
const tier = normalized <= 33 ? "cost" : normalized <= 66 ? "balance" : "powerful";
|
|
38725
|
+
return {
|
|
38726
|
+
intensity: normalized,
|
|
38727
|
+
tier,
|
|
38728
|
+
modelStrength: tier === "cost" ? "economical" : tier === "balance" ? "balanced" : "mostCapable",
|
|
38729
|
+
agentCount: tier === "cost" ? "single" : tier === "balance" ? "smallGroup" : "maxParallel"
|
|
38730
|
+
};
|
|
38731
|
+
}
|
|
38732
|
+
|
|
38733
|
+
// agent-gui/agentGuiNode/composer/TuttiBudgetPopover.tsx
|
|
38734
|
+
import { jsx as jsx75, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
38735
|
+
var tierTone = {
|
|
38736
|
+
cost: {
|
|
38737
|
+
badgeVariant: "success",
|
|
38738
|
+
sliderClassName: "[&_[data-slot=slider-thumb]]:border-[var(--state-success)]"
|
|
38739
|
+
},
|
|
38740
|
+
balance: {
|
|
38741
|
+
badgeVariant: "warning",
|
|
38742
|
+
sliderClassName: "[&_[data-slot=slider-thumb]]:border-[var(--state-warning)]"
|
|
38743
|
+
},
|
|
38744
|
+
powerful: {
|
|
38745
|
+
badgeVariant: "pending",
|
|
38746
|
+
sliderClassName: "[&_[data-slot=slider-thumb]]:border-[var(--tutti-purple)]"
|
|
38747
|
+
}
|
|
38748
|
+
};
|
|
38749
|
+
function TuttiBudgetPopover({
|
|
38750
|
+
children,
|
|
38751
|
+
intensity,
|
|
38752
|
+
labels,
|
|
38753
|
+
onConfirm
|
|
38754
|
+
}) {
|
|
38755
|
+
const [open, setOpen] = useState42(false);
|
|
38756
|
+
const [draftIntensity, setDraftIntensity] = useState42(intensity);
|
|
38757
|
+
const preview = projectTuttiIntensityPreview(draftIntensity);
|
|
38758
|
+
const previewTone = tierTone[preview.tier];
|
|
38759
|
+
const previewLabel = {
|
|
38760
|
+
cost: labels.previewCost,
|
|
38761
|
+
balance: labels.previewBalance,
|
|
38762
|
+
powerful: labels.previewPowerful
|
|
38763
|
+
}[preview.tier];
|
|
38764
|
+
const modelStrength = {
|
|
38765
|
+
economical: labels.modelStrengthCost,
|
|
38766
|
+
balanced: labels.modelStrengthBalance,
|
|
38767
|
+
mostCapable: labels.modelStrengthPowerful
|
|
38768
|
+
}[preview.modelStrength];
|
|
38769
|
+
const agentCount = {
|
|
38770
|
+
single: labels.agentCountCost,
|
|
38771
|
+
smallGroup: labels.agentCountBalance,
|
|
38772
|
+
maxParallel: labels.agentCountPowerful
|
|
38773
|
+
}[preview.agentCount];
|
|
38774
|
+
return /* @__PURE__ */ jsxs55(
|
|
38775
|
+
Popover6,
|
|
38776
|
+
{
|
|
38777
|
+
open,
|
|
38778
|
+
onOpenChange: (nextOpen) => {
|
|
38779
|
+
if (nextOpen) {
|
|
38780
|
+
setDraftIntensity(intensity);
|
|
38781
|
+
}
|
|
38782
|
+
setOpen(nextOpen);
|
|
38783
|
+
},
|
|
38784
|
+
children: [
|
|
38785
|
+
/* @__PURE__ */ jsx75(PopoverTrigger4, { asChild: true, children }),
|
|
38786
|
+
/* @__PURE__ */ jsxs55(
|
|
38787
|
+
PopoverContent5,
|
|
38788
|
+
{
|
|
38789
|
+
align: "start",
|
|
38790
|
+
className: "nodrag",
|
|
38791
|
+
"data-agent-tutti-budget-popover": "true",
|
|
38792
|
+
onEscapeKeyDown: (event) => {
|
|
38793
|
+
event.preventDefault();
|
|
38794
|
+
setOpen(false);
|
|
38795
|
+
},
|
|
38796
|
+
onInteractOutside: (event) => event.preventDefault(),
|
|
38797
|
+
onPointerDownOutside: (event) => event.preventDefault(),
|
|
38798
|
+
children: [
|
|
38799
|
+
/* @__PURE__ */ jsx75("div", { className: "text-[13px] font-semibold text-[var(--text-primary)]", children: labels.title }),
|
|
38800
|
+
/* @__PURE__ */ jsxs55(
|
|
38801
|
+
"div",
|
|
38802
|
+
{
|
|
38803
|
+
className: "rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)] p-2.5",
|
|
38804
|
+
"data-agent-tutti-budget-preview": preview.tier,
|
|
38805
|
+
children: [
|
|
38806
|
+
/* @__PURE__ */ jsxs55("div", { className: "flex items-center justify-between gap-2 text-[12px] text-[var(--text-secondary)]", children: [
|
|
38807
|
+
/* @__PURE__ */ jsx75("span", { children: labels.intensityLabel }),
|
|
38808
|
+
/* @__PURE__ */ jsx75(
|
|
38809
|
+
"span",
|
|
38810
|
+
{
|
|
38811
|
+
className: "text-[var(--text-primary)] tabular-nums",
|
|
38812
|
+
"data-agent-tutti-budget-intensity-value": "true",
|
|
38813
|
+
children: draftIntensity
|
|
38814
|
+
}
|
|
38815
|
+
)
|
|
38816
|
+
] }),
|
|
38817
|
+
/* @__PURE__ */ jsxs55("div", { className: "mt-2", children: [
|
|
38818
|
+
/* @__PURE__ */ jsx75(
|
|
38819
|
+
Slider,
|
|
38820
|
+
{
|
|
38821
|
+
"aria-label": labels.intensityLabel,
|
|
38822
|
+
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} [&_[data-slot=slider-thumb]]:cursor-grab [&_[data-slot=slider-thumb]]:active:cursor-grabbing`,
|
|
38823
|
+
"data-agent-tutti-budget-intensity-slider": "true",
|
|
38824
|
+
"data-agent-tutti-budget-slider-tone": preview.tier,
|
|
38825
|
+
max: 100,
|
|
38826
|
+
min: 0,
|
|
38827
|
+
step: 1,
|
|
38828
|
+
value: [draftIntensity],
|
|
38829
|
+
onValueChange: (values) => setDraftIntensity(values[0] ?? draftIntensity)
|
|
38830
|
+
}
|
|
38831
|
+
),
|
|
38832
|
+
/* @__PURE__ */ jsxs55("div", { className: "mt-1 flex items-center justify-between gap-2 text-[10px] font-medium", children: [
|
|
38833
|
+
/* @__PURE__ */ jsx75("span", { className: "text-[var(--state-success)]", children: labels.previewCost }),
|
|
38834
|
+
/* @__PURE__ */ jsx75("span", { className: "text-[var(--state-warning)]", children: labels.previewBalance }),
|
|
38835
|
+
/* @__PURE__ */ jsx75("span", { className: "text-[var(--tutti-purple)]", children: labels.previewPowerful })
|
|
38836
|
+
] })
|
|
38837
|
+
] }),
|
|
38838
|
+
/* @__PURE__ */ jsxs55(
|
|
38839
|
+
"div",
|
|
38840
|
+
{
|
|
38841
|
+
"aria-live": "polite",
|
|
38842
|
+
className: "mt-2 flex items-center justify-between gap-2 border-t border-[var(--line-2)] pt-2",
|
|
38843
|
+
children: [
|
|
38844
|
+
/* @__PURE__ */ jsx75("span", { className: "text-[11px] font-medium text-[var(--text-secondary)]", children: labels.previewTitle }),
|
|
38845
|
+
/* @__PURE__ */ jsx75(Badge2, { size: "sm", variant: previewTone.badgeVariant, children: previewLabel })
|
|
38846
|
+
]
|
|
38847
|
+
}
|
|
38848
|
+
),
|
|
38849
|
+
/* @__PURE__ */ jsxs55("div", { className: "mt-2 grid grid-cols-2 gap-2 text-[10px]", children: [
|
|
38850
|
+
/* @__PURE__ */ jsxs55("div", { className: "min-w-0", children: [
|
|
38851
|
+
/* @__PURE__ */ jsx75("div", { className: "text-[var(--text-tertiary)]", children: labels.modelStrengthLabel }),
|
|
38852
|
+
/* @__PURE__ */ jsx75(
|
|
38853
|
+
"div",
|
|
38854
|
+
{
|
|
38855
|
+
className: "truncate font-medium text-[var(--text-primary)]",
|
|
38856
|
+
"data-agent-tutti-budget-model-strength": "true",
|
|
38857
|
+
children: modelStrength
|
|
38858
|
+
}
|
|
38859
|
+
)
|
|
38860
|
+
] }),
|
|
38861
|
+
/* @__PURE__ */ jsxs55("div", { className: "min-w-0", children: [
|
|
38862
|
+
/* @__PURE__ */ jsx75("div", { className: "text-[var(--text-tertiary)]", children: labels.agentCountLabel }),
|
|
38863
|
+
/* @__PURE__ */ jsx75(
|
|
38864
|
+
"div",
|
|
38865
|
+
{
|
|
38866
|
+
className: "truncate font-medium text-[var(--text-primary)]",
|
|
38867
|
+
"data-agent-tutti-budget-agent-count": "true",
|
|
38868
|
+
children: agentCount
|
|
38869
|
+
}
|
|
38870
|
+
)
|
|
38871
|
+
] })
|
|
38872
|
+
] }),
|
|
38873
|
+
/* @__PURE__ */ jsx75("p", { className: "mt-2 mb-0 text-[10px] leading-[1.35] text-[var(--text-tertiary)]", children: labels.previewHint })
|
|
38874
|
+
]
|
|
38875
|
+
}
|
|
38876
|
+
),
|
|
38877
|
+
/* @__PURE__ */ jsxs55("div", { className: "flex items-center justify-end gap-2", children: [
|
|
38878
|
+
/* @__PURE__ */ jsx75(
|
|
38879
|
+
Button10,
|
|
38880
|
+
{
|
|
38881
|
+
"data-agent-tutti-budget-cancel": "true",
|
|
38882
|
+
size: "sm",
|
|
38883
|
+
type: "button",
|
|
38884
|
+
variant: "secondary",
|
|
38885
|
+
onClick: () => setOpen(false),
|
|
38886
|
+
children: labels.cancel
|
|
38887
|
+
}
|
|
38888
|
+
),
|
|
38889
|
+
/* @__PURE__ */ jsx75(
|
|
38890
|
+
Button10,
|
|
38891
|
+
{
|
|
38892
|
+
"data-agent-tutti-budget-confirm": "true",
|
|
38893
|
+
size: "sm",
|
|
38894
|
+
type: "button",
|
|
38895
|
+
onClick: () => {
|
|
38896
|
+
onConfirm(draftIntensity);
|
|
38897
|
+
setOpen(false);
|
|
38898
|
+
},
|
|
38899
|
+
children: labels.confirm
|
|
38900
|
+
}
|
|
38901
|
+
)
|
|
38902
|
+
] })
|
|
38903
|
+
]
|
|
38904
|
+
}
|
|
38905
|
+
)
|
|
38906
|
+
]
|
|
38907
|
+
}
|
|
38908
|
+
);
|
|
38909
|
+
}
|
|
38910
|
+
|
|
38953
38911
|
// agent-gui/agentGuiNode/TuttiWorkflowDock.tsx
|
|
38954
|
-
import { Fragment as Fragment23, jsx as
|
|
38912
|
+
import { Fragment as Fragment23, jsx as jsx76, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
38955
38913
|
function countIssueTasks(issue, status) {
|
|
38956
38914
|
return issue.tasks.filter((task) => task.status === status).length;
|
|
38957
38915
|
}
|
|
@@ -39004,15 +38962,15 @@ function TuttiWorkflowDock({
|
|
|
39004
38962
|
};
|
|
39005
38963
|
const title = review !== null ? labels.reviewTitle : phase.kind === "materializing" ? labels.materializingTitle : execution !== null ? execution.issue.title : labels.errorTitle;
|
|
39006
38964
|
const summary = review !== null ? `${review.panel.title} \xB7 ${review.intensityDiverged ? labels.reviewHintReplan : labels.reviewHint}` : phase.kind === "materializing" ? `${phase.title} \xB7 ${labels.materializingHint}` : execution !== null ? issueSummary(labels, execution.issue) : failure?.message ?? "";
|
|
39007
|
-
const icon = review !== null ? /* @__PURE__ */
|
|
39008
|
-
const actions = review !== null ? /* @__PURE__ */
|
|
39009
|
-
/* @__PURE__ */
|
|
38965
|
+
const icon = review !== null ? /* @__PURE__ */ jsx76(TaskIcon, { "aria-hidden": true, className: "size-3.5" }) : phase.kind === "materializing" ? /* @__PURE__ */ jsx76(LoaderCircle, { "aria-hidden": true, className: "size-3.5 animate-spin" }) : execution !== null ? countIssueTasks(execution.issue, "running") > 0 ? /* @__PURE__ */ jsx76(LoaderCircle, { "aria-hidden": true, className: "size-3.5 animate-spin" }) : /* @__PURE__ */ jsx76(ListChecks4, { "aria-hidden": true, className: "size-3.5" }) : /* @__PURE__ */ jsx76(AlertTriangle, { "aria-hidden": true, className: "size-3.5" });
|
|
38966
|
+
const actions = review !== null ? /* @__PURE__ */ jsxs56(Fragment23, { children: [
|
|
38967
|
+
/* @__PURE__ */ jsx76(
|
|
39010
38968
|
TuttiBudgetPopover,
|
|
39011
38969
|
{
|
|
39012
38970
|
intensity: review.intensity,
|
|
39013
38971
|
labels: intensityPopoverLabels,
|
|
39014
38972
|
onConfirm: onIntensityChange,
|
|
39015
|
-
children: /* @__PURE__ */
|
|
38973
|
+
children: /* @__PURE__ */ jsxs56(
|
|
39016
38974
|
"button",
|
|
39017
38975
|
{
|
|
39018
38976
|
type: "button",
|
|
@@ -39021,18 +38979,20 @@ function TuttiWorkflowDock({
|
|
|
39021
38979
|
"aria-label": intensityPopoverLabels.intensityLabel,
|
|
39022
38980
|
"data-testid": "agent-gui-tutti-workflow-intensity",
|
|
39023
38981
|
className: cn(
|
|
39024
|
-
"flex items-center gap-1",
|
|
38982
|
+
"flex items-center gap-1 rounded-md px-1.5 py-0.5 transition-colors",
|
|
38983
|
+
"hover:bg-[var(--transparency-hover)]",
|
|
38984
|
+
"data-[state=open]:bg-[color-mix(in_srgb,var(--tutti-purple)_12%,transparent)] data-[state=open]:text-[var(--tutti-purple)]",
|
|
39025
38985
|
review.intensityDiverged && "text-[var(--tutti-purple)]"
|
|
39026
38986
|
),
|
|
39027
38987
|
children: [
|
|
39028
|
-
/* @__PURE__ */
|
|
39029
|
-
/* @__PURE__ */
|
|
38988
|
+
/* @__PURE__ */ jsx76(Gauge2, { "aria-hidden": true, className: "size-3.5" }),
|
|
38989
|
+
/* @__PURE__ */ jsx76("span", { className: "text-[11px] tabular-nums", children: review.intensity })
|
|
39030
38990
|
]
|
|
39031
38991
|
}
|
|
39032
38992
|
)
|
|
39033
38993
|
}
|
|
39034
38994
|
),
|
|
39035
|
-
/* @__PURE__ */
|
|
38995
|
+
/* @__PURE__ */ jsx76(
|
|
39036
38996
|
"button",
|
|
39037
38997
|
{
|
|
39038
38998
|
type: "button",
|
|
@@ -39041,10 +39001,10 @@ function TuttiWorkflowDock({
|
|
|
39041
39001
|
title: labels.cancel,
|
|
39042
39002
|
"aria-label": labels.cancel,
|
|
39043
39003
|
"data-testid": "agent-gui-tutti-workflow-cancel",
|
|
39044
|
-
children: /* @__PURE__ */
|
|
39004
|
+
children: /* @__PURE__ */ jsx76(X7, { "aria-hidden": true, className: "size-3.5" })
|
|
39045
39005
|
}
|
|
39046
39006
|
)
|
|
39047
|
-
] }) : phase.kind === "error" && phase.retryable ? /* @__PURE__ */
|
|
39007
|
+
] }) : phase.kind === "error" && phase.retryable ? /* @__PURE__ */ jsxs56(
|
|
39048
39008
|
"button",
|
|
39049
39009
|
{
|
|
39050
39010
|
type: "button",
|
|
@@ -39053,12 +39013,12 @@ function TuttiWorkflowDock({
|
|
|
39053
39013
|
"aria-label": labels.retry,
|
|
39054
39014
|
"data-testid": "agent-gui-tutti-workflow-retry",
|
|
39055
39015
|
children: [
|
|
39056
|
-
/* @__PURE__ */
|
|
39016
|
+
/* @__PURE__ */ jsx76(RotateCcw, { "aria-hidden": true, className: "size-3.5" }),
|
|
39057
39017
|
labels.retry
|
|
39058
39018
|
]
|
|
39059
39019
|
}
|
|
39060
39020
|
) : null;
|
|
39061
|
-
return /* @__PURE__ */
|
|
39021
|
+
return /* @__PURE__ */ jsx76(
|
|
39062
39022
|
AgentComposerDisclosureCard,
|
|
39063
39023
|
{
|
|
39064
39024
|
actions,
|
|
@@ -39069,7 +39029,7 @@ function TuttiWorkflowDock({
|
|
|
39069
39029
|
summary,
|
|
39070
39030
|
testId: "agent-gui-tutti-workflow-dock",
|
|
39071
39031
|
title,
|
|
39072
|
-
children: review !== null ? /* @__PURE__ */
|
|
39032
|
+
children: review !== null ? /* @__PURE__ */ jsx76(
|
|
39073
39033
|
TuttiModePlanPanel,
|
|
39074
39034
|
{
|
|
39075
39035
|
assignmentCatalog,
|
|
@@ -39080,23 +39040,23 @@ function TuttiWorkflowDock({
|
|
|
39080
39040
|
submitting: review.submitting,
|
|
39081
39041
|
onAssignmentDraftChange
|
|
39082
39042
|
}
|
|
39083
|
-
) : phase.kind === "materializing" ? /* @__PURE__ */
|
|
39043
|
+
) : phase.kind === "materializing" ? /* @__PURE__ */ jsxs56(
|
|
39084
39044
|
"div",
|
|
39085
39045
|
{
|
|
39086
39046
|
className: "grid min-h-28 place-items-center gap-2 text-center text-sm text-muted-foreground",
|
|
39087
39047
|
role: "status",
|
|
39088
39048
|
children: [
|
|
39089
|
-
/* @__PURE__ */
|
|
39049
|
+
/* @__PURE__ */ jsx76(
|
|
39090
39050
|
LoaderCircle,
|
|
39091
39051
|
{
|
|
39092
39052
|
"aria-hidden": true,
|
|
39093
39053
|
className: "size-5 animate-spin text-[var(--tutti-purple)]"
|
|
39094
39054
|
}
|
|
39095
39055
|
),
|
|
39096
|
-
/* @__PURE__ */
|
|
39056
|
+
/* @__PURE__ */ jsx76("span", { children: labels.materializingHint })
|
|
39097
39057
|
]
|
|
39098
39058
|
}
|
|
39099
|
-
) : execution !== null ? /* @__PURE__ */
|
|
39059
|
+
) : execution !== null ? /* @__PURE__ */ jsx76(
|
|
39100
39060
|
TuttiPlanIssuePanel,
|
|
39101
39061
|
{
|
|
39102
39062
|
embedded: true,
|
|
@@ -39107,7 +39067,7 @@ function TuttiWorkflowDock({
|
|
|
39107
39067
|
onOpenIssue,
|
|
39108
39068
|
onOpenTask
|
|
39109
39069
|
}
|
|
39110
|
-
) : /* @__PURE__ */
|
|
39070
|
+
) : /* @__PURE__ */ jsx76(
|
|
39111
39071
|
"div",
|
|
39112
39072
|
{
|
|
39113
39073
|
className: "rounded-md border border-[color-mix(in_srgb,var(--state-danger)_45%,transparent)] px-4 py-3 text-sm text-muted-foreground",
|
|
@@ -39120,7 +39080,7 @@ function TuttiWorkflowDock({
|
|
|
39120
39080
|
}
|
|
39121
39081
|
|
|
39122
39082
|
// agent-gui/agentGuiNode/view/AgentGUIBottomDockPane.tsx
|
|
39123
|
-
import { Fragment as Fragment24, jsx as
|
|
39083
|
+
import { Fragment as Fragment24, jsx as jsx77, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
39124
39084
|
var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
|
|
39125
39085
|
bottomDockRef,
|
|
39126
39086
|
showScrollToBottom,
|
|
@@ -39160,11 +39120,11 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
|
|
|
39160
39120
|
const goalIsOptimistic = sessionChrome.rawState?.goalIsOptimistic === true;
|
|
39161
39121
|
const showGoalBanner = isGoalBannerVisible(goalObjective, goalStatus);
|
|
39162
39122
|
const workflowPhase = tuttiWorkflowDock.phase;
|
|
39163
|
-
return /* @__PURE__ */
|
|
39123
|
+
return /* @__PURE__ */ jsx77(
|
|
39164
39124
|
AgentComposerRegion,
|
|
39165
39125
|
{
|
|
39166
39126
|
regionRef: bottomDockRef,
|
|
39167
|
-
floating: showScrollToBottom ? /* @__PURE__ */
|
|
39127
|
+
floating: showScrollToBottom ? /* @__PURE__ */ jsx77(
|
|
39168
39128
|
"button",
|
|
39169
39129
|
{
|
|
39170
39130
|
type: "button",
|
|
@@ -39177,15 +39137,15 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
|
|
|
39177
39137
|
title: scrollToBottomLabel,
|
|
39178
39138
|
onPointerDown: (event) => event.stopPropagation(),
|
|
39179
39139
|
onClick: onScrollToBottom,
|
|
39180
|
-
children: /* @__PURE__ */
|
|
39140
|
+
children: /* @__PURE__ */ jsx77(ChevronsDown, { "aria-hidden": "true", size: 15, strokeWidth: 2.2 })
|
|
39181
39141
|
}
|
|
39182
39142
|
) : null,
|
|
39183
|
-
lifted: bottomDockLiftedPrompt ? /* @__PURE__ */
|
|
39143
|
+
lifted: bottomDockLiftedPrompt ? /* @__PURE__ */ jsx77(
|
|
39184
39144
|
"div",
|
|
39185
39145
|
{
|
|
39186
39146
|
className: AgentGUINode_styles_default.bottomDockPrompt,
|
|
39187
39147
|
"data-testid": "agent-gui-bottom-dock-active-prompt",
|
|
39188
|
-
children: /* @__PURE__ */
|
|
39148
|
+
children: /* @__PURE__ */ jsx77(
|
|
39189
39149
|
AgentInteractivePromptSurface,
|
|
39190
39150
|
{
|
|
39191
39151
|
prompt: bottomDockLiftedPrompt,
|
|
@@ -39200,8 +39160,8 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
|
|
|
39200
39160
|
)
|
|
39201
39161
|
}
|
|
39202
39162
|
) : null,
|
|
39203
|
-
accessories: /* @__PURE__ */
|
|
39204
|
-
inlineNoticeChrome ? /* @__PURE__ */
|
|
39163
|
+
accessories: /* @__PURE__ */ jsxs57(Fragment24, { children: [
|
|
39164
|
+
inlineNoticeChrome ? /* @__PURE__ */ jsx77(
|
|
39205
39165
|
AgentSessionChrome,
|
|
39206
39166
|
{
|
|
39207
39167
|
chrome: inlineNoticeChrome,
|
|
@@ -39213,7 +39173,7 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
|
|
|
39213
39173
|
labels: chromeLabels
|
|
39214
39174
|
}
|
|
39215
39175
|
) : null,
|
|
39216
|
-
/* @__PURE__ */
|
|
39176
|
+
/* @__PURE__ */ jsx77(
|
|
39217
39177
|
AgentSessionChrome,
|
|
39218
39178
|
{
|
|
39219
39179
|
chrome: sessionChrome,
|
|
@@ -39225,7 +39185,7 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
|
|
|
39225
39185
|
labels: chromeLabels
|
|
39226
39186
|
}
|
|
39227
39187
|
),
|
|
39228
|
-
showGoalBanner ? /* @__PURE__ */
|
|
39188
|
+
showGoalBanner ? /* @__PURE__ */ jsx77(
|
|
39229
39189
|
AgentGoalBanner,
|
|
39230
39190
|
{
|
|
39231
39191
|
objective: goalObjective,
|
|
@@ -39240,7 +39200,7 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
|
|
|
39240
39200
|
onClearGoal: () => onGoalControl("clear")
|
|
39241
39201
|
}
|
|
39242
39202
|
) : null,
|
|
39243
|
-
workflowPhase ? /* @__PURE__ */
|
|
39203
|
+
workflowPhase ? /* @__PURE__ */ jsx77(
|
|
39244
39204
|
TuttiWorkflowDock,
|
|
39245
39205
|
{
|
|
39246
39206
|
assignmentCatalog: tuttiWorkflowDock.assignmentCatalog,
|
|
@@ -39279,12 +39239,12 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
|
|
|
39279
39239
|
}
|
|
39280
39240
|
) : null
|
|
39281
39241
|
] }),
|
|
39282
|
-
primary: bottomDockReplacementPrompt ? /* @__PURE__ */
|
|
39242
|
+
primary: bottomDockReplacementPrompt ? /* @__PURE__ */ jsx77(
|
|
39283
39243
|
"div",
|
|
39284
39244
|
{
|
|
39285
39245
|
className: AgentGUINode_styles_default.bottomDockPrompt,
|
|
39286
39246
|
"data-testid": "agent-gui-bottom-dock-active-prompt",
|
|
39287
|
-
children: /* @__PURE__ */
|
|
39247
|
+
children: /* @__PURE__ */ jsx77(
|
|
39288
39248
|
AgentInteractivePromptSurface,
|
|
39289
39249
|
{
|
|
39290
39250
|
prompt: bottomDockReplacementPrompt,
|
|
@@ -39298,7 +39258,7 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
|
|
|
39298
39258
|
}
|
|
39299
39259
|
)
|
|
39300
39260
|
}
|
|
39301
|
-
) : /* @__PURE__ */
|
|
39261
|
+
) : /* @__PURE__ */ jsx77(AgentComposer, { ...composerProps })
|
|
39302
39262
|
}
|
|
39303
39263
|
);
|
|
39304
39264
|
});
|
|
@@ -39311,14 +39271,14 @@ import {
|
|
|
39311
39271
|
ToastTitle,
|
|
39312
39272
|
ToastViewport
|
|
39313
39273
|
} from "@tutti-os/ui-system";
|
|
39314
|
-
import { jsx as
|
|
39274
|
+
import { jsx as jsx78, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
39315
39275
|
function AgentGUIContentToast({
|
|
39316
39276
|
insetTopPx,
|
|
39317
39277
|
message
|
|
39318
39278
|
}) {
|
|
39319
39279
|
const [open, setOpen] = useState44(true);
|
|
39320
|
-
return /* @__PURE__ */
|
|
39321
|
-
/* @__PURE__ */
|
|
39280
|
+
return /* @__PURE__ */ jsxs58(ToastProvider, { children: [
|
|
39281
|
+
/* @__PURE__ */ jsx78(
|
|
39322
39282
|
ToastRoot,
|
|
39323
39283
|
{
|
|
39324
39284
|
open,
|
|
@@ -39326,10 +39286,10 @@ function AgentGUIContentToast({
|
|
|
39326
39286
|
"data-testid": "agent-gui-content-toast",
|
|
39327
39287
|
variant: "default",
|
|
39328
39288
|
onOpenChange: setOpen,
|
|
39329
|
-
children: /* @__PURE__ */
|
|
39289
|
+
children: /* @__PURE__ */ jsx78(ToastTitle, { children: message })
|
|
39330
39290
|
}
|
|
39331
39291
|
),
|
|
39332
|
-
/* @__PURE__ */
|
|
39292
|
+
/* @__PURE__ */ jsx78(
|
|
39333
39293
|
ToastViewport,
|
|
39334
39294
|
{
|
|
39335
39295
|
className: "nodrag tsh-desktop-no-drag absolute left-0 w-full translate-x-0 px-4 [-webkit-app-region:no-drag]",
|
|
@@ -39348,7 +39308,7 @@ import { ScrollArea as ScrollArea3 } from "@tutti-os/ui-system/components";
|
|
|
39348
39308
|
|
|
39349
39309
|
// agent-gui/agentGuiNode/view/AgentGUIConversationTimelinePane.tsx
|
|
39350
39310
|
import { memo as memo11 } from "react";
|
|
39351
|
-
import { Fragment as Fragment25, jsx as
|
|
39311
|
+
import { Fragment as Fragment25, jsx as jsx79, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
39352
39312
|
var EMPTY_WORKSPACE_APP_ICONS3 = [];
|
|
39353
39313
|
var AgentGUIConversationTimelinePane = memo11(
|
|
39354
39314
|
function AgentGUIConversationTimelinePane2({
|
|
@@ -39368,17 +39328,17 @@ var AgentGUIConversationTimelinePane = memo11(
|
|
|
39368
39328
|
labels
|
|
39369
39329
|
}) {
|
|
39370
39330
|
"use memo";
|
|
39371
|
-
return /* @__PURE__ */
|
|
39372
|
-
isLoadingOlderMessages && !isLoading ? /* @__PURE__ */
|
|
39331
|
+
return /* @__PURE__ */ jsxs59(Fragment25, { children: [
|
|
39332
|
+
isLoadingOlderMessages && !isLoading ? /* @__PURE__ */ jsx79(
|
|
39373
39333
|
"div",
|
|
39374
39334
|
{
|
|
39375
39335
|
className: "mx-auto flex h-8 items-center justify-center text-[12px] text-[var(--text-secondary)]",
|
|
39376
39336
|
"data-testid": "agent-gui-older-messages-loading",
|
|
39377
39337
|
role: "status",
|
|
39378
|
-
children: /* @__PURE__ */
|
|
39338
|
+
children: /* @__PURE__ */ jsx79("span", { className: "tsh-inline-loading-ellipsis", children: loadingLabel })
|
|
39379
39339
|
}
|
|
39380
39340
|
) : null,
|
|
39381
|
-
/* @__PURE__ */
|
|
39341
|
+
/* @__PURE__ */ jsx79(
|
|
39382
39342
|
AgentConversationFlow,
|
|
39383
39343
|
{
|
|
39384
39344
|
conversation,
|
|
@@ -39415,7 +39375,7 @@ function setTimelineScrollTopWithUserTransition(element, top) {
|
|
|
39415
39375
|
}
|
|
39416
39376
|
|
|
39417
39377
|
// agent-gui/agentGuiNode/view/AgentGUIDetailTimeline.tsx
|
|
39418
|
-
import { jsx as
|
|
39378
|
+
import { jsx as jsx80 } from "react/jsx-runtime";
|
|
39419
39379
|
var TIMELINE_CONTENT_STYLE = {
|
|
39420
39380
|
width: "100%",
|
|
39421
39381
|
minWidth: "100%",
|
|
@@ -39443,7 +39403,7 @@ var AgentGUIDetailTimeline = memo12(function AgentGUIDetailTimeline2({
|
|
|
39443
39403
|
workspaceAppIcons
|
|
39444
39404
|
}) {
|
|
39445
39405
|
"use memo";
|
|
39446
|
-
return /* @__PURE__ */
|
|
39406
|
+
return /* @__PURE__ */ jsx80(
|
|
39447
39407
|
ScrollArea3,
|
|
39448
39408
|
{
|
|
39449
39409
|
scrollbarMode: "native",
|
|
@@ -39453,7 +39413,7 @@ var AgentGUIDetailTimeline = memo12(function AgentGUIDetailTimeline2({
|
|
|
39453
39413
|
viewportTestId: "agent-gui-timeline",
|
|
39454
39414
|
viewportClassName: `${AgentGUINode_styles_default.timeline} ${hasActiveConversation ? AgentGUINode_styles_default.timelineWithComposer : AgentGUINode_styles_default.timelineCentered} ${!isTimelineScrolledToTop ? AgentGUINode_styles_default.timelineScrolledFromTop : ""} ${showUnavailableChatEmpty ? AgentGUINode_styles_default.timelineUnavailableChatEmpty : ""}`.trim(),
|
|
39455
39415
|
viewportContentStyle: TIMELINE_CONTENT_STYLE,
|
|
39456
|
-
children: hasActiveConversation ? /* @__PURE__ */
|
|
39416
|
+
children: hasActiveConversation ? /* @__PURE__ */ jsx80(
|
|
39457
39417
|
AgentGUIConversationTimelinePane,
|
|
39458
39418
|
{
|
|
39459
39419
|
conversation,
|
|
@@ -39622,6 +39582,10 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39622
39582
|
}
|
|
39623
39583
|
return;
|
|
39624
39584
|
}
|
|
39585
|
+
if (element.closest(`.${AgentGUINode_styles_default.composerDisclosurePanel}`)) {
|
|
39586
|
+
floatingVisualTop = Math.min(floatingVisualTop, rect.top);
|
|
39587
|
+
return;
|
|
39588
|
+
}
|
|
39625
39589
|
floatingVisualTop = Math.min(floatingVisualTop, rect.top);
|
|
39626
39590
|
timelineVisualTop = Math.min(timelineVisualTop, rect.top);
|
|
39627
39591
|
});
|
|
@@ -39868,10 +39832,10 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39868
39832
|
import { useMemo as useMemo43 } from "react";
|
|
39869
39833
|
|
|
39870
39834
|
// app/renderer/components/icons/UnavailableChatIcon.tsx
|
|
39871
|
-
import { jsx as
|
|
39835
|
+
import { jsx as jsx81 } from "react/jsx-runtime";
|
|
39872
39836
|
function UnavailableChatIcon(props) {
|
|
39873
39837
|
"use memo";
|
|
39874
|
-
return /* @__PURE__ */
|
|
39838
|
+
return /* @__PURE__ */ jsx81(
|
|
39875
39839
|
"svg",
|
|
39876
39840
|
{
|
|
39877
39841
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -39879,7 +39843,7 @@ function UnavailableChatIcon(props) {
|
|
|
39879
39843
|
fill: "currentColor",
|
|
39880
39844
|
"aria-hidden": true,
|
|
39881
39845
|
...props,
|
|
39882
|
-
children: /* @__PURE__ */
|
|
39846
|
+
children: /* @__PURE__ */ jsx81("path", { d: "M20.833 2.125C21.6507 2.125 22.4355 2.45019 23.0137 3.02832C23.5916 3.60645 23.9159 4.39053 23.916 5.20801V17.708C23.916 18.5257 23.5918 19.3104 23.0137 19.8887C22.4355 20.4668 21.6507 20.792 20.833 20.792H7.1123C6.82516 20.7922 6.5497 20.9063 6.34668 21.1094L4.05273 23.4033C3.80954 23.6464 3.49934 23.8118 3.16211 23.8789C2.82492 23.9459 2.47487 23.9118 2.15723 23.7803C1.83953 23.6486 1.56707 23.4256 1.37598 23.1396C1.18489 22.8536 1.08305 22.5168 1.08301 22.1729V5.20801C1.08309 4.39045 1.40827 3.60647 1.98633 3.02832C2.56441 2.45024 3.3485 2.12517 4.16602 2.125H20.833ZM16.1533 7.80566C15.7628 7.41518 15.1298 7.41527 14.7393 7.80566L12.5 10.0439L10.2607 7.80469C9.87031 7.41464 9.23712 7.41465 8.84668 7.80469C8.45627 8.19509 8.45651 8.8282 8.84668 9.21875L11.0859 11.458L8.84668 13.6982C8.45651 14.0888 8.45627 14.7219 8.84668 15.1123C9.2371 15.5026 9.87024 15.5024 10.2607 15.1123L12.5 12.873L14.7393 15.1113C15.1298 15.5017 15.7628 15.5018 16.1533 15.1113C16.5434 14.7208 16.5436 14.0877 16.1533 13.6973L13.9141 11.458L16.1533 9.21973C16.5437 8.82924 16.5437 8.19616 16.1533 7.80566Z" })
|
|
39883
39847
|
}
|
|
39884
39848
|
);
|
|
39885
39849
|
}
|
|
@@ -39925,7 +39889,7 @@ function useAgentGUITimelineTransition(input) {
|
|
|
39925
39889
|
}
|
|
39926
39890
|
|
|
39927
39891
|
// agent-gui/agentGuiNode/view/useAgentGUIDetailModel.tsx
|
|
39928
|
-
import { Fragment as Fragment26, jsx as
|
|
39892
|
+
import { Fragment as Fragment26, jsx as jsx82, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
39929
39893
|
function resolveTuttiModeUpdateInlineNotice(input) {
|
|
39930
39894
|
if (input.status !== "failed" && input.status !== "uncertain") return null;
|
|
39931
39895
|
const localizedMessage = input.status === "failed" ? input.failedMessage : input.uncertainMessage;
|
|
@@ -40113,17 +40077,17 @@ function useAgentGUIDetailModel(input) {
|
|
|
40113
40077
|
]
|
|
40114
40078
|
);
|
|
40115
40079
|
const conversationFlowEmpty = useMemo43(
|
|
40116
|
-
() => showUnavailableChatEmpty ? /* @__PURE__ */
|
|
40080
|
+
() => showUnavailableChatEmpty ? /* @__PURE__ */ jsxs60(
|
|
40117
40081
|
"div",
|
|
40118
40082
|
{
|
|
40119
40083
|
className: AgentGUINode_styles_default.unavailableChatEmpty,
|
|
40120
40084
|
"data-testid": "agent-gui-unavailable-chat-empty",
|
|
40121
40085
|
children: [
|
|
40122
|
-
/* @__PURE__ */
|
|
40123
|
-
/* @__PURE__ */
|
|
40086
|
+
/* @__PURE__ */ jsx82(UnavailableChatIcon, { className: AgentGUINode_styles_default.unavailableChatEmptyIcon }),
|
|
40087
|
+
/* @__PURE__ */ jsx82("span", { className: AgentGUINode_styles_default.unavailableChatEmptyText, children: labels.conversationUnavailable })
|
|
40124
40088
|
]
|
|
40125
40089
|
}
|
|
40126
|
-
) : /* @__PURE__ */
|
|
40090
|
+
) : /* @__PURE__ */ jsx82(Fragment26, {}),
|
|
40127
40091
|
[labels.conversationUnavailable, showUnavailableChatEmpty]
|
|
40128
40092
|
);
|
|
40129
40093
|
const chromeLabels = useMemo43(
|
|
@@ -40794,7 +40758,7 @@ function useAgentGUITuttiWorkflow(input) {
|
|
|
40794
40758
|
}
|
|
40795
40759
|
|
|
40796
40760
|
// agent-gui/agentGuiNode/view/AgentGUIDetailPane.tsx
|
|
40797
|
-
import { Fragment as Fragment27, jsx as
|
|
40761
|
+
import { Fragment as Fragment27, jsx as jsx83, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
40798
40762
|
var EMPTY_WORKSPACE_APP_ICONS4 = [];
|
|
40799
40763
|
var AgentGUIDetailPane = memo13(function AgentGUIDetailPane2({
|
|
40800
40764
|
shell,
|
|
@@ -41124,7 +41088,7 @@ var AgentGUIDetailPane = memo13(function AgentGUIDetailPane2({
|
|
|
41124
41088
|
onSettingsChange: updateComposerSettings,
|
|
41125
41089
|
onRetryComposerOptions: retryComposerOptions,
|
|
41126
41090
|
// Only wire Tutti Mode callbacks when the host explicitly enables the
|
|
41127
|
-
// capability.
|
|
41091
|
+
// capability. Composer footer chip keys off callback presence; slash/badge
|
|
41128
41092
|
// use capabilityMenuState.tuttiMode.enabled === true (fail closed).
|
|
41129
41093
|
onTuttiModeChange: capabilityMenuState?.tuttiMode?.enabled === true ? tuttiWorkflowComposer.setTuttiModeActiveAndSettleReview : void 0,
|
|
41130
41094
|
onTuttiModeOrchestrationIntensityChange: capabilityMenuState?.tuttiMode?.enabled === true ? setTuttiModeOrchestrationIntensity : void 0,
|
|
@@ -41287,7 +41251,7 @@ var AgentGUIDetailPane = memo13(function AgentGUIDetailPane2({
|
|
|
41287
41251
|
timelineScrollAnchorRef,
|
|
41288
41252
|
viewModel
|
|
41289
41253
|
});
|
|
41290
|
-
const homeContent = !hasActiveConversation ? shouldRenderProviderUnavailableState && disabledProviderTarget ? /* @__PURE__ */
|
|
41254
|
+
const homeContent = !hasActiveConversation ? shouldRenderProviderUnavailableState && disabledProviderTarget ? /* @__PURE__ */ jsx83(Fragment27, { children: renderProviderUnavailableState?.({
|
|
41291
41255
|
provider: disabledProviderTarget.provider,
|
|
41292
41256
|
providerLabel: labels.emptyProviderForProvider?.(
|
|
41293
41257
|
disabledProviderTarget.provider
|
|
@@ -41297,7 +41261,7 @@ var AgentGUIDetailPane = memo13(function AgentGUIDetailPane2({
|
|
|
41297
41261
|
target: disabledProviderTarget,
|
|
41298
41262
|
iconUrl: resolveAgentGUIHeroIconUrl2(disabledProviderTarget.provider),
|
|
41299
41263
|
unavailableReason: disabledProviderTarget.unavailableReason ?? null
|
|
41300
|
-
}) }) : /* @__PURE__ */
|
|
41264
|
+
}) }) : /* @__PURE__ */ jsx83(
|
|
41301
41265
|
AgentGUIEmptyHomePane,
|
|
41302
41266
|
{
|
|
41303
41267
|
provider: emptyHeroProvider,
|
|
@@ -41322,14 +41286,14 @@ var AgentGUIDetailPane = memo13(function AgentGUIDetailPane2({
|
|
|
41322
41286
|
onSelectSuggestionAction: handleHomeSuggestionAction
|
|
41323
41287
|
}
|
|
41324
41288
|
) : null;
|
|
41325
|
-
return /* @__PURE__ */
|
|
41289
|
+
return /* @__PURE__ */ jsxs61(
|
|
41326
41290
|
"main",
|
|
41327
41291
|
{
|
|
41328
41292
|
className: AgentGUINode_styles_default.detail,
|
|
41329
41293
|
"aria-busy": timelineInteractionLocked || void 0,
|
|
41330
41294
|
inert: timelineInteractionLocked,
|
|
41331
41295
|
children: [
|
|
41332
|
-
viewModel.operations.goalClearNoticeSequence > 0 ? /* @__PURE__ */
|
|
41296
|
+
viewModel.operations.goalClearNoticeSequence > 0 ? /* @__PURE__ */ jsx83(
|
|
41333
41297
|
AgentGUIContentToast,
|
|
41334
41298
|
{
|
|
41335
41299
|
insetTopPx: 16,
|
|
@@ -41337,7 +41301,7 @@ var AgentGUIDetailPane = memo13(function AgentGUIDetailPane2({
|
|
|
41337
41301
|
},
|
|
41338
41302
|
viewModel.operations.goalClearNoticeSequence
|
|
41339
41303
|
) : null,
|
|
41340
|
-
/* @__PURE__ */
|
|
41304
|
+
/* @__PURE__ */ jsx83(
|
|
41341
41305
|
AgentGUIDetailTimeline,
|
|
41342
41306
|
{
|
|
41343
41307
|
availableSkills: viewModel.composer.availableSkills,
|
|
@@ -41359,7 +41323,7 @@ var AgentGUIDetailPane = memo13(function AgentGUIDetailPane2({
|
|
|
41359
41323
|
workspaceAppIcons
|
|
41360
41324
|
}
|
|
41361
41325
|
),
|
|
41362
|
-
hasActiveConversation ? /* @__PURE__ */
|
|
41326
|
+
hasActiveConversation ? /* @__PURE__ */ jsx83(
|
|
41363
41327
|
AgentGUIBottomDockPane,
|
|
41364
41328
|
{
|
|
41365
41329
|
bottomDockRef,
|
|
@@ -41398,7 +41362,7 @@ var AgentGUIDetailPane = memo13(function AgentGUIDetailPane2({
|
|
|
41398
41362
|
// agent-gui/agentGuiNode/view/AgentGUIRenameConversationDialog.tsx
|
|
41399
41363
|
import { memo as memo14, useCallback as useCallback62, useEffect as useEffect36, useRef as useRef54, useState as useState49 } from "react";
|
|
41400
41364
|
import { ConfirmationDialog as ConfirmationDialog4, Input as Input4 } from "@tutti-os/ui-system";
|
|
41401
|
-
import { jsx as
|
|
41365
|
+
import { jsx as jsx84, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
41402
41366
|
var AgentGUIRenameConversationDialog = memo14(
|
|
41403
41367
|
function AgentGUIRenameConversationDialog2({
|
|
41404
41368
|
conversation,
|
|
@@ -41454,7 +41418,7 @@ var AgentGUIRenameConversationDialog = memo14(
|
|
|
41454
41418
|
setIsSaving(false);
|
|
41455
41419
|
});
|
|
41456
41420
|
}, [conversation, onOpenChange, onRename, trimmedTitle]);
|
|
41457
|
-
return /* @__PURE__ */
|
|
41421
|
+
return /* @__PURE__ */ jsx84(
|
|
41458
41422
|
ConfirmationDialog4,
|
|
41459
41423
|
{
|
|
41460
41424
|
cancelLabel: labels.cancel,
|
|
@@ -41463,8 +41427,8 @@ var AgentGUIRenameConversationDialog = memo14(
|
|
|
41463
41427
|
confirmDisabled: !trimmedTitle,
|
|
41464
41428
|
confirmLabel: labels.renameSessionSave,
|
|
41465
41429
|
description: labels.renameSessionDescription,
|
|
41466
|
-
footer: /* @__PURE__ */
|
|
41467
|
-
/* @__PURE__ */
|
|
41430
|
+
footer: /* @__PURE__ */ jsxs62("div", { className: "flex justify-end gap-2", children: [
|
|
41431
|
+
/* @__PURE__ */ jsx84(
|
|
41468
41432
|
Button,
|
|
41469
41433
|
{
|
|
41470
41434
|
disabled: isSaving,
|
|
@@ -41502,7 +41466,7 @@ var AgentGUIRenameConversationDialog = memo14(
|
|
|
41502
41466
|
children: labels.cancel
|
|
41503
41467
|
}
|
|
41504
41468
|
),
|
|
41505
|
-
/* @__PURE__ */
|
|
41469
|
+
/* @__PURE__ */ jsx84(
|
|
41506
41470
|
Button,
|
|
41507
41471
|
{
|
|
41508
41472
|
className: "shadow-none",
|
|
@@ -41557,7 +41521,7 @@ var AgentGUIRenameConversationDialog = memo14(
|
|
|
41557
41521
|
title: labels.renameSessionTitle,
|
|
41558
41522
|
onConfirm: confirmRename,
|
|
41559
41523
|
onOpenChange,
|
|
41560
|
-
children: /* @__PURE__ */
|
|
41524
|
+
children: /* @__PURE__ */ jsx84(
|
|
41561
41525
|
Input4,
|
|
41562
41526
|
{
|
|
41563
41527
|
ref: inputRef,
|
|
@@ -41585,7 +41549,7 @@ import {
|
|
|
41585
41549
|
ReferenceSourcePicker,
|
|
41586
41550
|
WorkspaceFileReferencePicker
|
|
41587
41551
|
} from "@tutti-os/workspace-file-reference/ui";
|
|
41588
|
-
import { jsx as
|
|
41552
|
+
import { jsx as jsx85 } from "react/jsx-runtime";
|
|
41589
41553
|
function AgentGUIReferencePickerSurface({
|
|
41590
41554
|
aggregator,
|
|
41591
41555
|
copy,
|
|
@@ -41596,13 +41560,14 @@ function AgentGUIReferencePickerSurface({
|
|
|
41596
41560
|
isNodeSelectable,
|
|
41597
41561
|
open,
|
|
41598
41562
|
purpose,
|
|
41563
|
+
resolveContentErrorAction,
|
|
41599
41564
|
resolveEntryIconUrl,
|
|
41600
41565
|
workspaceId,
|
|
41601
41566
|
onClose,
|
|
41602
41567
|
onConfirm,
|
|
41603
41568
|
onConfirmBundles
|
|
41604
41569
|
}) {
|
|
41605
|
-
return aggregator ? /* @__PURE__ */
|
|
41570
|
+
return aggregator ? /* @__PURE__ */ jsx85(
|
|
41606
41571
|
ReferenceSourcePicker,
|
|
41607
41572
|
{
|
|
41608
41573
|
aggregator,
|
|
@@ -41612,13 +41577,14 @@ function AgentGUIReferencePickerSurface({
|
|
|
41612
41577
|
fileManagerCopy: fileManagerCopy ?? void 0,
|
|
41613
41578
|
open,
|
|
41614
41579
|
purpose,
|
|
41580
|
+
resolveContentErrorAction,
|
|
41615
41581
|
resolveEntryIconUrl,
|
|
41616
41582
|
workspaceId,
|
|
41617
41583
|
onClose,
|
|
41618
41584
|
onConfirm,
|
|
41619
41585
|
onConfirmBundles
|
|
41620
41586
|
}
|
|
41621
|
-
) : /* @__PURE__ */
|
|
41587
|
+
) : /* @__PURE__ */ jsx85(
|
|
41622
41588
|
WorkspaceFileReferencePicker,
|
|
41623
41589
|
{
|
|
41624
41590
|
copy,
|
|
@@ -41635,7 +41601,7 @@ function AgentGUIReferencePickerSurface({
|
|
|
41635
41601
|
|
|
41636
41602
|
// agent-gui/agentGuiNode/view/AgentTargetSetupRoot.tsx
|
|
41637
41603
|
import { useCallback as useCallback63, useMemo as useMemo45 } from "react";
|
|
41638
|
-
import { jsx as
|
|
41604
|
+
import { jsx as jsx86, jsxs as jsxs63 } from "react/jsx-runtime";
|
|
41639
41605
|
function useAgentTargetSetupRoot(input) {
|
|
41640
41606
|
const { preferences } = useAgentGUIProviderRailPreferences();
|
|
41641
41607
|
const homeTargetProjection = useMemo45(
|
|
@@ -41679,9 +41645,9 @@ function AgentTargetSetupRoot({
|
|
|
41679
41645
|
controller,
|
|
41680
41646
|
openEnvironmentSetup
|
|
41681
41647
|
}) {
|
|
41682
|
-
return /* @__PURE__ */
|
|
41648
|
+
return /* @__PURE__ */ jsx86(AgentEnvPanelActionProvider, { openPanel: openEnvironmentSetup, children: /* @__PURE__ */ jsxs63(AgentTargetSetupControllerProvider, { controller, children: [
|
|
41683
41649
|
children,
|
|
41684
|
-
/* @__PURE__ */
|
|
41650
|
+
/* @__PURE__ */ jsx86(
|
|
41685
41651
|
AgentTargetSetupGate,
|
|
41686
41652
|
{
|
|
41687
41653
|
carouselMountedExternally: false,
|
|
@@ -42244,7 +42210,7 @@ function useAgentGUIExternalRequests(input) {
|
|
|
42244
42210
|
}
|
|
42245
42211
|
|
|
42246
42212
|
// agent-gui/agentGuiNode/AgentGUINodeView.tsx
|
|
42247
|
-
import { jsx as
|
|
42213
|
+
import { jsx as jsx87, jsxs as jsxs64 } from "react/jsx-runtime";
|
|
42248
42214
|
function AgentGUINodeView({
|
|
42249
42215
|
viewModel,
|
|
42250
42216
|
referenceProvenanceFilter = null,
|
|
@@ -42308,6 +42274,7 @@ function AgentGUINodeView({
|
|
|
42308
42274
|
onRequestGitBranches = null,
|
|
42309
42275
|
projectDirectorySourceAggregator = null,
|
|
42310
42276
|
referenceSourceAggregator = null,
|
|
42277
|
+
resolveReferenceContentErrorAction,
|
|
42311
42278
|
resolveWorkspaceReferenceEntryIconUrl,
|
|
42312
42279
|
resolveMentionReferenceTarget = null,
|
|
42313
42280
|
resolveWorkspaceReferenceInitialTarget = null,
|
|
@@ -42673,13 +42640,13 @@ function AgentGUINodeView({
|
|
|
42673
42640
|
}),
|
|
42674
42641
|
[targetPresentationKey, viewModel.shell.workspaceId]
|
|
42675
42642
|
);
|
|
42676
|
-
const content = /* @__PURE__ */
|
|
42643
|
+
const content = /* @__PURE__ */ jsx87(AgentTargetPresentationProvider, { agentTargets: agentTargetPresentations, children: /* @__PURE__ */ jsxs64(
|
|
42677
42644
|
AgentTargetSetupRoot,
|
|
42678
42645
|
{
|
|
42679
42646
|
controller: targetSetupController,
|
|
42680
42647
|
openEnvironmentSetup: onAgentEnvPanelOpen,
|
|
42681
42648
|
children: [
|
|
42682
|
-
/* @__PURE__ */
|
|
42649
|
+
/* @__PURE__ */ jsxs64(
|
|
42683
42650
|
"div",
|
|
42684
42651
|
{
|
|
42685
42652
|
ref: layoutElementRef,
|
|
@@ -42689,7 +42656,7 @@ function AgentGUINodeView({
|
|
|
42689
42656
|
inert: previewMode ? true : void 0,
|
|
42690
42657
|
style: layoutStyle,
|
|
42691
42658
|
children: [
|
|
42692
|
-
/* @__PURE__ */
|
|
42659
|
+
/* @__PURE__ */ jsxs64(
|
|
42693
42660
|
"aside",
|
|
42694
42661
|
{
|
|
42695
42662
|
className: `${AgentGUINode_styles_default.providerRailPanel} nodrag tsh-desktop-no-drag`,
|
|
@@ -42697,7 +42664,7 @@ function AgentGUINodeView({
|
|
|
42697
42664
|
"aria-hidden": conversationRailCollapsed ? "true" : void 0,
|
|
42698
42665
|
inert: conversationRailCollapsed ? true : void 0,
|
|
42699
42666
|
children: [
|
|
42700
|
-
/* @__PURE__ */
|
|
42667
|
+
/* @__PURE__ */ jsx87(
|
|
42701
42668
|
AgentGUIProviderRail,
|
|
42702
42669
|
{
|
|
42703
42670
|
activeConversation: viewModel.rail.activeConversation,
|
|
@@ -42721,7 +42688,7 @@ function AgentGUINodeView({
|
|
|
42721
42688
|
onRequestComposerFocus: requestComposerFocus
|
|
42722
42689
|
}
|
|
42723
42690
|
),
|
|
42724
|
-
renderSidebarFooter ? /* @__PURE__ */
|
|
42691
|
+
renderSidebarFooter ? /* @__PURE__ */ jsx87(
|
|
42725
42692
|
"div",
|
|
42726
42693
|
{
|
|
42727
42694
|
className: `${AgentGUINode_styles_default.providerRailFooter} ${AgentGUINode_styles_default.providerRailSidebarFooter} nodrag tsh-desktop-no-drag`,
|
|
@@ -42732,12 +42699,12 @@ function AgentGUINodeView({
|
|
|
42732
42699
|
})
|
|
42733
42700
|
}
|
|
42734
42701
|
) : null,
|
|
42735
|
-
shouldShowProviderRailConfigButton ? /* @__PURE__ */
|
|
42702
|
+
shouldShowProviderRailConfigButton ? /* @__PURE__ */ jsx87(
|
|
42736
42703
|
"div",
|
|
42737
42704
|
{
|
|
42738
42705
|
className: `${AgentGUINode_styles_default.providerRailFooter} ${AgentGUINode_styles_default.providerRailConfigFooter} nodrag tsh-desktop-no-drag`,
|
|
42739
42706
|
"data-testid": "agent-gui-config-footer",
|
|
42740
|
-
children: /* @__PURE__ */
|
|
42707
|
+
children: /* @__PURE__ */ jsx87(
|
|
42741
42708
|
AgentGUIConfigMenu,
|
|
42742
42709
|
{
|
|
42743
42710
|
environmentSetupVisible,
|
|
@@ -42764,14 +42731,14 @@ function AgentGUINodeView({
|
|
|
42764
42731
|
]
|
|
42765
42732
|
}
|
|
42766
42733
|
),
|
|
42767
|
-
/* @__PURE__ */
|
|
42734
|
+
/* @__PURE__ */ jsx87(
|
|
42768
42735
|
"aside",
|
|
42769
42736
|
{
|
|
42770
42737
|
id: "agent-gui-conversation-rail",
|
|
42771
42738
|
className: `${AgentGUINode_styles_default.railPanel}${conversationRailCollapsed ? ` ${AgentGUINode_styles_default.railPanelCollapsed}` : ""}`,
|
|
42772
42739
|
"aria-hidden": conversationRailCollapsed ? "true" : void 0,
|
|
42773
42740
|
inert: conversationRailCollapsed ? true : void 0,
|
|
42774
|
-
children: /* @__PURE__ */
|
|
42741
|
+
children: /* @__PURE__ */ jsx87(
|
|
42775
42742
|
AgentGUIConversationRailController,
|
|
42776
42743
|
{
|
|
42777
42744
|
...conversationRailStoreState,
|
|
@@ -42780,7 +42747,7 @@ function AgentGUINodeView({
|
|
|
42780
42747
|
registerInteractionLockProbe: registerRailInteractionLockProbe,
|
|
42781
42748
|
userProjects: viewModel.rail.userProjects,
|
|
42782
42749
|
workspaceId: viewModel.shell.workspaceId,
|
|
42783
|
-
footer: accountMenuState?.user ? /* @__PURE__ */
|
|
42750
|
+
footer: accountMenuState?.user ? /* @__PURE__ */ jsx87(
|
|
42784
42751
|
AgentGUIAccountRailMenu,
|
|
42785
42752
|
{
|
|
42786
42753
|
accountMenuState,
|
|
@@ -42792,7 +42759,7 @@ function AgentGUINodeView({
|
|
|
42792
42759
|
)
|
|
42793
42760
|
}
|
|
42794
42761
|
),
|
|
42795
|
-
/* @__PURE__ */
|
|
42762
|
+
/* @__PURE__ */ jsx87(
|
|
42796
42763
|
"div",
|
|
42797
42764
|
{
|
|
42798
42765
|
id: "agent-gui-conversation-rail-resize",
|
|
@@ -42816,7 +42783,7 @@ function AgentGUINodeView({
|
|
|
42816
42783
|
onPointerUp: endConversationRailResize
|
|
42817
42784
|
}
|
|
42818
42785
|
),
|
|
42819
|
-
/* @__PURE__ */
|
|
42786
|
+
/* @__PURE__ */ jsx87("section", { id: "agent-gui-detail", className: AgentGUINode_styles_default.detailPanel, children: /* @__PURE__ */ jsx87(
|
|
42820
42787
|
AgentGUIDetailPane,
|
|
42821
42788
|
{
|
|
42822
42789
|
shell: viewModel.shell,
|
|
@@ -42864,7 +42831,7 @@ function AgentGUINodeView({
|
|
|
42864
42831
|
]
|
|
42865
42832
|
}
|
|
42866
42833
|
),
|
|
42867
|
-
/* @__PURE__ */
|
|
42834
|
+
/* @__PURE__ */ jsx87(
|
|
42868
42835
|
AgentGUIReferencePickerSurface,
|
|
42869
42836
|
{
|
|
42870
42837
|
aggregator: workspaceReferencePickerAggregator,
|
|
@@ -42876,6 +42843,7 @@ function AgentGUINodeView({
|
|
|
42876
42843
|
isNodeSelectable: isWorkspaceReferencePickerNodeSelectable,
|
|
42877
42844
|
open: workspaceReferencePickerOpen,
|
|
42878
42845
|
purpose: workspaceReferencePickerPurpose,
|
|
42846
|
+
resolveContentErrorAction: resolveReferenceContentErrorAction,
|
|
42879
42847
|
resolveEntryIconUrl: resolveWorkspaceReferenceEntryIconUrl,
|
|
42880
42848
|
workspaceId: viewModel.shell.workspaceId,
|
|
42881
42849
|
onClose: closeWorkspaceReferencePicker,
|
|
@@ -42883,7 +42851,7 @@ function AgentGUINodeView({
|
|
|
42883
42851
|
onConfirmBundles: workspaceReferencePickerPurpose === "reference" ? confirmWorkspaceReferenceBundles : void 0
|
|
42884
42852
|
}
|
|
42885
42853
|
),
|
|
42886
|
-
/* @__PURE__ */
|
|
42854
|
+
/* @__PURE__ */ jsx87(
|
|
42887
42855
|
AgentGUIRenameConversationDialog,
|
|
42888
42856
|
{
|
|
42889
42857
|
conversation: renameConversationTarget,
|
|
@@ -42901,7 +42869,7 @@ function AgentGUINodeView({
|
|
|
42901
42869
|
]
|
|
42902
42870
|
}
|
|
42903
42871
|
) });
|
|
42904
|
-
return previewMode ? content : /* @__PURE__ */
|
|
42872
|
+
return previewMode ? content : /* @__PURE__ */ jsx87(TooltipProvider7, { children: content });
|
|
42905
42873
|
}
|
|
42906
42874
|
|
|
42907
42875
|
// agent-gui/workspaceDesktop/view/AgentProbeInfoPopover.tsx
|
|
@@ -42914,7 +42882,7 @@ import {
|
|
|
42914
42882
|
useState as useState52
|
|
42915
42883
|
} from "react";
|
|
42916
42884
|
import { createPortal as createPortal5 } from "react-dom";
|
|
42917
|
-
import { Fragment as Fragment28, jsx as
|
|
42885
|
+
import { Fragment as Fragment28, jsx as jsx88, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
42918
42886
|
var POPOVER_MIN_VIEWPORT_INSET_PX = 16;
|
|
42919
42887
|
var POPOVER_DEFAULT_WIDTH_PX = 260;
|
|
42920
42888
|
function dockAgentProbeLineKey(line) {
|
|
@@ -42924,11 +42892,11 @@ function renderDockAgentProbeLine(line) {
|
|
|
42924
42892
|
if (typeof line === "string") {
|
|
42925
42893
|
return line;
|
|
42926
42894
|
}
|
|
42927
|
-
return /* @__PURE__ */
|
|
42895
|
+
return /* @__PURE__ */ jsxs65(Fragment28, { children: [
|
|
42928
42896
|
line.primary,
|
|
42929
|
-
line.secondary ? /* @__PURE__ */
|
|
42897
|
+
line.secondary ? /* @__PURE__ */ jsxs65(Fragment28, { children: [
|
|
42930
42898
|
" ",
|
|
42931
|
-
/* @__PURE__ */
|
|
42899
|
+
/* @__PURE__ */ jsx88("span", { className: "desktop-dock-popup__agent-status-secondary", children: line.secondary })
|
|
42932
42900
|
] }) : null
|
|
42933
42901
|
] });
|
|
42934
42902
|
}
|
|
@@ -43021,7 +42989,7 @@ function AgentProbeInfoPopover({
|
|
|
43021
42989
|
if (lines.length === 0) {
|
|
43022
42990
|
return null;
|
|
43023
42991
|
}
|
|
43024
|
-
const popover = /* @__PURE__ */
|
|
42992
|
+
const popover = /* @__PURE__ */ jsx88(
|
|
43025
42993
|
"div",
|
|
43026
42994
|
{
|
|
43027
42995
|
ref: popoverRef,
|
|
@@ -43030,17 +42998,17 @@ function AgentProbeInfoPopover({
|
|
|
43030
42998
|
style: popoverStyle ?? void 0,
|
|
43031
42999
|
onMouseEnter: openPopover,
|
|
43032
43000
|
onMouseLeave: closeIfPointerLeavesPopover,
|
|
43033
|
-
children: /* @__PURE__ */
|
|
43001
|
+
children: /* @__PURE__ */ jsx88("ul", { className: "desktop-dock-popup__agent-info-list", children: lines.map((line) => {
|
|
43034
43002
|
const label = getDockAgentProbeLineLabel(line);
|
|
43035
43003
|
const valueText = formatDockAgentProbeLineText(line);
|
|
43036
|
-
return /* @__PURE__ */
|
|
43004
|
+
return /* @__PURE__ */ jsxs65(
|
|
43037
43005
|
"li",
|
|
43038
43006
|
{
|
|
43039
43007
|
className: "desktop-dock-popup__agent-info-item",
|
|
43040
43008
|
"data-has-label": label ? "true" : "false",
|
|
43041
43009
|
children: [
|
|
43042
|
-
label ? /* @__PURE__ */
|
|
43043
|
-
/* @__PURE__ */
|
|
43010
|
+
label ? /* @__PURE__ */ jsx88("span", { className: "desktop-dock-popup__agent-info-label", children: label }) : null,
|
|
43011
|
+
/* @__PURE__ */ jsx88(
|
|
43044
43012
|
"span",
|
|
43045
43013
|
{
|
|
43046
43014
|
className: "desktop-dock-popup__agent-info-value",
|
|
@@ -43055,7 +43023,7 @@ function AgentProbeInfoPopover({
|
|
|
43055
43023
|
}) })
|
|
43056
43024
|
}
|
|
43057
43025
|
);
|
|
43058
|
-
return /* @__PURE__ */
|
|
43026
|
+
return /* @__PURE__ */ jsxs65(
|
|
43059
43027
|
"div",
|
|
43060
43028
|
{
|
|
43061
43029
|
ref: anchorRef,
|
|
@@ -43075,7 +43043,7 @@ function AgentProbeInfoPopover({
|
|
|
43075
43043
|
},
|
|
43076
43044
|
onBlur: closePopover,
|
|
43077
43045
|
children: [
|
|
43078
|
-
/* @__PURE__ */
|
|
43046
|
+
/* @__PURE__ */ jsx88(Info2, { size: 15, strokeWidth: 2.1, "aria-hidden": "true" }),
|
|
43079
43047
|
isOpen ? createPortal5(popover, document.body) : null
|
|
43080
43048
|
]
|
|
43081
43049
|
}
|
|
@@ -43164,7 +43132,7 @@ function areAgentGUINodePropsEqual(previous, next) {
|
|
|
43164
43132
|
const pc = previous.hostCapabilities, nc = next.hostCapabilities;
|
|
43165
43133
|
const pa = previous.hostActions, na = next.hostActions;
|
|
43166
43134
|
const ps = previous.renderSlots, ns = next.renderSlots;
|
|
43167
|
-
return pi.nodeId === ni.nodeId && pi.workspaceId === ni.workspaceId && pi.currentUserId === ni.currentUserId && pi.title === ni.title && pw.path === nw.path && pw.fileReferenceAdapter === nw.fileReferenceAdapter && pw.onRequestGitBranches === nw.onRequestGitBranches && pw.selectProjectDirectory === nw.selectProjectDirectory && pw.resolveExternalPromptEntries === nw.resolveExternalPromptEntries && pw.prepareExternalPromptFiles === nw.prepareExternalPromptFiles && pw.promptAssetLimit === nw.promptAssetLimit && pw.projectDirectorySourceAggregator === nw.projectDirectorySourceAggregator && pw.referenceSourceAggregator === nw.referenceSourceAggregator && pw.resolveReferenceEntryIconUrl === nw.resolveReferenceEntryIconUrl && pw.resolveMentionReferenceTarget === nw.resolveMentionReferenceTarget && pw.resolveReferenceInitialTarget === nw.resolveReferenceInitialTarget && pw.onFileReferencesAdded === nw.onFileReferencesAdded && pw.agentSettings.avoidGroupingEdits === nw.agentSettings.avoidGroupingEdits && pc.referenceProvenanceFilterCatalog === nc.referenceProvenanceFilterCatalog && pc.referenceProvenanceFilterEnabled === nc.referenceProvenanceFilterEnabled && agentGuiStateEquals(previous.state, next.state) && pf.position.x === nf.position.x && pf.position.y === nf.position.y && pf.width === nf.width && pf.height === nf.height && pf.desktopSize.width === nf.desktopSize.width && pf.desktopSize.height === nf.desktopSize.height && pf.isMaximized === nf.isMaximized && pf.isActive === nf.isActive && pf.isVisible === nf.isVisible && pf.embedded === nf.embedded && pf.previewMode === nf.previewMode && pf.conversationRailAutoCollapseWidthPx === nf.conversationRailAutoCollapseWidthPx && pr.composerFocusSequence === nr.composerFocusSequence && pr.composerAppend === nr.composerAppend && pr.newConversationSequence === nr.newConversationSequence && pr.sessionAction === nr.sessionAction && pr.openSession === nr.openSession && pr.prefillPrompt === nr.prefillPrompt && pr.agentStatusController === nr.agentStatusController && pc.capabilityMenuState === nc.capabilityMenuState && pc.capabilityControlsReadOnly === nc.capabilityControlsReadOnly && pc.accountMenuState === nc.accountMenuState && pc.agentTargets === nc.agentTargets && pc.agentTargetsLoading === nc.agentTargetsLoading && pc.handoffAgentTargets === nc.handoffAgentTargets && pc.handoffAgentTargetsLoading === nc.handoffAgentTargetsLoading && pc.providerRailAllPresentation?.iconUrl === nc.providerRailAllPresentation?.iconUrl && pc.providerRailMode === nc.providerRailMode && pc.comingSoonProviders === nc.comingSoonProviders && pc.providerReadinessGates === nc.providerReadinessGates && pc.targetConnectionSource === nc.targetConnectionSource && pc.defaultAgentTargetId === nc.defaultAgentTargetId && pc.providerAuthAccountLabels === nc.providerAuthAccountLabels && pc.mentionService === nc.mentionService && pc.workspaceAppIcons === nc.workspaceAppIcons && pc.disabledHomeSuggestions === nc.disabledHomeSuggestions && pa.onLinkAction === na.onLinkAction && pa.onHandoffConversation === na.onHandoffConversation && pa.onCapabilitySettingsRequest === na.onCapabilitySettingsRequest && pa.onAgentProviderLogin === na.onAgentProviderLogin && pa.onAgentEnvPanelOpen === na.onAgentEnvPanelOpen && pa.onOpenConversationWindow === na.onOpenConversationWindow && pa.onClose === na.onClose && pa.onResize === na.onResize && pa.onUpdateNode === na.onUpdateNode && pa.onRememberComposerDefaults === na.onRememberComposerDefaults && pa.isMuted === na.isMuted && pa.onMinimize === na.onMinimize && pa.onToggleMaximize === na.onToggleMaximize && pa.onShowMessage === na.onShowMessage && pa.onEngagementEvent === na.onEngagementEvent && pa.onConversationRailLayoutChange === na.onConversationRailLayoutChange && ps.providerRailEmpty === ns.providerRailEmpty && ps.providerUnavailableState === ns.providerUnavailableState && ps.sidebarFooter === ns.sidebarFooter;
|
|
43135
|
+
return pi.nodeId === ni.nodeId && pi.workspaceId === ni.workspaceId && pi.currentUserId === ni.currentUserId && pi.title === ni.title && pw.path === nw.path && pw.fileReferenceAdapter === nw.fileReferenceAdapter && pw.onRequestGitBranches === nw.onRequestGitBranches && pw.selectProjectDirectory === nw.selectProjectDirectory && pw.resolveExternalPromptEntries === nw.resolveExternalPromptEntries && pw.prepareExternalPromptFiles === nw.prepareExternalPromptFiles && pw.promptAssetLimit === nw.promptAssetLimit && pw.projectDirectorySourceAggregator === nw.projectDirectorySourceAggregator && pw.referenceSourceAggregator === nw.referenceSourceAggregator && pw.resolveReferenceContentErrorAction === nw.resolveReferenceContentErrorAction && pw.resolveReferenceEntryIconUrl === nw.resolveReferenceEntryIconUrl && pw.resolveMentionReferenceTarget === nw.resolveMentionReferenceTarget && pw.resolveReferenceInitialTarget === nw.resolveReferenceInitialTarget && pw.onFileReferencesAdded === nw.onFileReferencesAdded && pw.agentSettings.avoidGroupingEdits === nw.agentSettings.avoidGroupingEdits && pc.referenceProvenanceFilterCatalog === nc.referenceProvenanceFilterCatalog && pc.referenceProvenanceFilterEnabled === nc.referenceProvenanceFilterEnabled && agentGuiStateEquals(previous.state, next.state) && pf.position.x === nf.position.x && pf.position.y === nf.position.y && pf.width === nf.width && pf.height === nf.height && pf.desktopSize.width === nf.desktopSize.width && pf.desktopSize.height === nf.desktopSize.height && pf.isMaximized === nf.isMaximized && pf.isActive === nf.isActive && pf.isVisible === nf.isVisible && pf.embedded === nf.embedded && pf.previewMode === nf.previewMode && pf.conversationRailAutoCollapseWidthPx === nf.conversationRailAutoCollapseWidthPx && pr.composerFocusSequence === nr.composerFocusSequence && pr.composerAppend === nr.composerAppend && pr.newConversationSequence === nr.newConversationSequence && pr.sessionAction === nr.sessionAction && pr.openSession === nr.openSession && pr.prefillPrompt === nr.prefillPrompt && pr.agentStatusController === nr.agentStatusController && pc.capabilityMenuState === nc.capabilityMenuState && pc.capabilityControlsReadOnly === nc.capabilityControlsReadOnly && pc.accountMenuState === nc.accountMenuState && pc.agentTargets === nc.agentTargets && pc.agentTargetsLoading === nc.agentTargetsLoading && pc.handoffAgentTargets === nc.handoffAgentTargets && pc.handoffAgentTargetsLoading === nc.handoffAgentTargetsLoading && pc.providerRailAllPresentation?.iconUrl === nc.providerRailAllPresentation?.iconUrl && pc.providerRailMode === nc.providerRailMode && pc.comingSoonProviders === nc.comingSoonProviders && pc.providerReadinessGates === nc.providerReadinessGates && pc.targetConnectionSource === nc.targetConnectionSource && pc.defaultAgentTargetId === nc.defaultAgentTargetId && pc.providerAuthAccountLabels === nc.providerAuthAccountLabels && pc.mentionService === nc.mentionService && pc.workspaceAppIcons === nc.workspaceAppIcons && pc.disabledHomeSuggestions === nc.disabledHomeSuggestions && pa.onLinkAction === na.onLinkAction && pa.onHandoffConversation === na.onHandoffConversation && pa.onCapabilitySettingsRequest === na.onCapabilitySettingsRequest && pa.onAgentProviderLogin === na.onAgentProviderLogin && pa.onAgentEnvPanelOpen === na.onAgentEnvPanelOpen && pa.onOpenConversationWindow === na.onOpenConversationWindow && pa.onClose === na.onClose && pa.onResize === na.onResize && pa.onUpdateNode === na.onUpdateNode && pa.onRememberComposerDefaults === na.onRememberComposerDefaults && pa.isMuted === na.isMuted && pa.onMinimize === na.onMinimize && pa.onToggleMaximize === na.onToggleMaximize && pa.onShowMessage === na.onShowMessage && pa.onEngagementEvent === na.onEngagementEvent && pa.onConversationRailLayoutChange === na.onConversationRailLayoutChange && ps.providerRailEmpty === ns.providerRailEmpty && ps.providerUnavailableState === ns.providerUnavailableState && ps.sidebarFooter === ns.sidebarFooter;
|
|
43168
43136
|
}
|
|
43169
43137
|
|
|
43170
43138
|
// agent-gui/agentGuiNode/AgentGUIMentionServiceBoundary.tsx
|
|
@@ -43211,7 +43179,7 @@ function composeAgentGUIMentionService(input) {
|
|
|
43211
43179
|
}
|
|
43212
43180
|
|
|
43213
43181
|
// agent-gui/agentGuiNode/AgentGUIMentionServiceBoundary.tsx
|
|
43214
|
-
import { jsx as
|
|
43182
|
+
import { jsx as jsx89 } from "react/jsx-runtime";
|
|
43215
43183
|
function AgentGUIMentionServiceBoundary({
|
|
43216
43184
|
children,
|
|
43217
43185
|
service
|
|
@@ -43227,7 +43195,7 @@ function AgentGUIMentionServiceBoundary({
|
|
|
43227
43195
|
if (!effectiveService || effectiveService === inheritedService) {
|
|
43228
43196
|
return children;
|
|
43229
43197
|
}
|
|
43230
|
-
return /* @__PURE__ */
|
|
43198
|
+
return /* @__PURE__ */ jsx89(RichTextMentionServiceProvider, { service: effectiveService, children });
|
|
43231
43199
|
}
|
|
43232
43200
|
|
|
43233
43201
|
// agent-gui/agentGuiNode/AgentGUINode.labels.ts
|
|
@@ -44387,7 +44355,7 @@ function useAgentGUIWorkspaceFileReferenceCopy(t) {
|
|
|
44387
44355
|
}
|
|
44388
44356
|
|
|
44389
44357
|
// agent-gui/agentGuiNode/AgentGUINode.tsx
|
|
44390
|
-
import { jsx as
|
|
44358
|
+
import { jsx as jsx90, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
44391
44359
|
var DISABLED_REFERENCE_PROVENANCE_CATALOG = {
|
|
44392
44360
|
enabledDimensions: [],
|
|
44393
44361
|
agentOptions: [],
|
|
@@ -44415,6 +44383,7 @@ var AgentGUINode = memo15(function AgentGUINode2({
|
|
|
44415
44383
|
promptAssetLimit = null,
|
|
44416
44384
|
projectDirectorySourceAggregator = null,
|
|
44417
44385
|
referenceSourceAggregator = null,
|
|
44386
|
+
resolveReferenceContentErrorAction: resolveWorkspaceReferenceContentErrorAction,
|
|
44418
44387
|
resolveReferenceEntryIconUrl: resolveWorkspaceReferenceEntryIconUrl,
|
|
44419
44388
|
resolveMentionReferenceTarget = null,
|
|
44420
44389
|
resolveReferenceInitialTarget: resolveWorkspaceReferenceInitialTarget = null,
|
|
@@ -44701,7 +44670,7 @@ var AgentGUINode = memo15(function AgentGUINode2({
|
|
|
44701
44670
|
t,
|
|
44702
44671
|
viewModel
|
|
44703
44672
|
});
|
|
44704
|
-
return /* @__PURE__ */
|
|
44673
|
+
return /* @__PURE__ */ jsx90(AgentGUIMentionServiceBoundary, { service: mentionService, children: /* @__PURE__ */ jsx90(
|
|
44705
44674
|
WorkspaceNodeWindow,
|
|
44706
44675
|
{
|
|
44707
44676
|
nodeId,
|
|
@@ -44717,8 +44686,8 @@ var AgentGUINode = memo15(function AgentGUINode2({
|
|
|
44717
44686
|
className: "size-full bg-transparent",
|
|
44718
44687
|
bodyClassName: `${AgentGUINode_styles_default.shell} nodrag size-full min-h-0 min-w-0 !bg-transparent p-0`,
|
|
44719
44688
|
hideHeader: embedded,
|
|
44720
|
-
titleAccessory: /* @__PURE__ */
|
|
44721
|
-
/* @__PURE__ */
|
|
44689
|
+
titleAccessory: /* @__PURE__ */ jsxs66("span", { className: "inline-flex flex-none items-center gap-1", children: [
|
|
44690
|
+
/* @__PURE__ */ jsx90(
|
|
44722
44691
|
AgentProbeInfoPopover,
|
|
44723
44692
|
{
|
|
44724
44693
|
lines: agentProbeLines,
|
|
@@ -44728,7 +44697,7 @@ var AgentGUINode = memo15(function AgentGUINode2({
|
|
|
44728
44697
|
onClose: handleAgentProbeInfoClose
|
|
44729
44698
|
}
|
|
44730
44699
|
),
|
|
44731
|
-
/* @__PURE__ */
|
|
44700
|
+
/* @__PURE__ */ jsx90(
|
|
44732
44701
|
CanvasNodeGhostIconButton,
|
|
44733
44702
|
{
|
|
44734
44703
|
"aria-label": isConversationRailCollapsed ? t("agentHost.agentGui.expandConversationRail") : t("agentHost.agentGui.collapseConversationRail"),
|
|
@@ -44740,7 +44709,7 @@ var AgentGUINode = memo15(function AgentGUINode2({
|
|
|
44740
44709
|
event.stopPropagation();
|
|
44741
44710
|
handleConversationRailToggle();
|
|
44742
44711
|
},
|
|
44743
|
-
children: /* @__PURE__ */
|
|
44712
|
+
children: /* @__PURE__ */ jsx90(
|
|
44744
44713
|
CanvasNodePanelLinedIcon,
|
|
44745
44714
|
{
|
|
44746
44715
|
width: 18,
|
|
@@ -44764,7 +44733,7 @@ var AgentGUINode = memo15(function AgentGUINode2({
|
|
|
44764
44733
|
renderedWidth,
|
|
44765
44734
|
railAutoCollapseWidthPx
|
|
44766
44735
|
);
|
|
44767
|
-
return /* @__PURE__ */
|
|
44736
|
+
return /* @__PURE__ */ jsx90(
|
|
44768
44737
|
AgentGUINodeView,
|
|
44769
44738
|
{
|
|
44770
44739
|
viewModel,
|
|
@@ -44832,6 +44801,7 @@ var AgentGUINode = memo15(function AgentGUINode2({
|
|
|
44832
44801
|
selectProjectDirectory,
|
|
44833
44802
|
projectDirectorySourceAggregator,
|
|
44834
44803
|
referenceSourceAggregator,
|
|
44804
|
+
resolveReferenceContentErrorAction: resolveWorkspaceReferenceContentErrorAction,
|
|
44835
44805
|
resolveWorkspaceReferenceEntryIconUrl,
|
|
44836
44806
|
resolveMentionReferenceTarget,
|
|
44837
44807
|
resolveWorkspaceReferenceInitialTarget,
|
|
@@ -44846,7 +44816,7 @@ var AgentGUINode = memo15(function AgentGUINode2({
|
|
|
44846
44816
|
}, areAgentGUINodePropsEqual);
|
|
44847
44817
|
|
|
44848
44818
|
// AgentGUI.tsx
|
|
44849
|
-
import { jsx as
|
|
44819
|
+
import { jsx as jsx91 } from "react/jsx-runtime";
|
|
44850
44820
|
var AgentGUI = memo16(function AgentGUI2({
|
|
44851
44821
|
agentActivityRuntime,
|
|
44852
44822
|
agentHostApi,
|
|
@@ -44918,21 +44888,21 @@ var AgentGUI = memo16(function AgentGUI2({
|
|
|
44918
44888
|
hostCapabilities: nodeHostCapabilities,
|
|
44919
44889
|
renderSlots: nodeRenderSlots
|
|
44920
44890
|
};
|
|
44921
|
-
const content = /* @__PURE__ */
|
|
44891
|
+
const content = /* @__PURE__ */ jsx91(AgentGuiI18nProvider, { runtime: i18n, locale, children: /* @__PURE__ */ jsx91(TuttiModePlanReviewRuntimeProvider, { runtime: tuttiModePlanReviewRuntime, children: /* @__PURE__ */ jsx91(
|
|
44922
44892
|
AgentActivityHostProvider,
|
|
44923
44893
|
{
|
|
44924
44894
|
agentActivityRuntime,
|
|
44925
44895
|
agentHostApi,
|
|
44926
|
-
children: /* @__PURE__ */
|
|
44896
|
+
children: /* @__PURE__ */ jsx91(
|
|
44927
44897
|
AgentCommercePresentationProvider,
|
|
44928
44898
|
{
|
|
44929
44899
|
value: props.hostCapabilities?.commercePresentation,
|
|
44930
|
-
children: /* @__PURE__ */
|
|
44900
|
+
children: /* @__PURE__ */ jsx91(AgentGUINode, { ...nodeProps })
|
|
44931
44901
|
}
|
|
44932
44902
|
)
|
|
44933
44903
|
}
|
|
44934
44904
|
) }) });
|
|
44935
|
-
return props.frame.previewMode ? content : /* @__PURE__ */
|
|
44905
|
+
return props.frame.previewMode ? content : /* @__PURE__ */ jsx91(TooltipProvider8, { delayDuration: 120, skipDelayDuration: 0, children: content });
|
|
44936
44906
|
});
|
|
44937
44907
|
|
|
44938
44908
|
export {
|
|
@@ -44952,4 +44922,4 @@ export {
|
|
|
44952
44922
|
AgentHandoffMenu,
|
|
44953
44923
|
AgentGUI
|
|
44954
44924
|
};
|
|
44955
|
-
//# sourceMappingURL=chunk-
|
|
44925
|
+
//# sourceMappingURL=chunk-AT4DII34.js.map
|