@tutti-os/agent-gui 0.0.210 → 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 +1 -1
- package/dist/{AgentRichTextReadonly-DFWY2WYO.js → AgentRichTextReadonly-GEGDM5UJ.js} +5 -5
- package/dist/agent-conversation/index.js +7 -7
- 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-Y6M27YYS.js → chunk-AT4DII34.js} +541 -577
- 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 +8 -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-Y6M27YYS.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,
|
|
@@ -41603,7 +41567,7 @@ function AgentGUIReferencePickerSurface({
|
|
|
41603
41567
|
onConfirm,
|
|
41604
41568
|
onConfirmBundles
|
|
41605
41569
|
}) {
|
|
41606
|
-
return aggregator ? /* @__PURE__ */
|
|
41570
|
+
return aggregator ? /* @__PURE__ */ jsx85(
|
|
41607
41571
|
ReferenceSourcePicker,
|
|
41608
41572
|
{
|
|
41609
41573
|
aggregator,
|
|
@@ -41620,7 +41584,7 @@ function AgentGUIReferencePickerSurface({
|
|
|
41620
41584
|
onConfirm,
|
|
41621
41585
|
onConfirmBundles
|
|
41622
41586
|
}
|
|
41623
|
-
) : /* @__PURE__ */
|
|
41587
|
+
) : /* @__PURE__ */ jsx85(
|
|
41624
41588
|
WorkspaceFileReferencePicker,
|
|
41625
41589
|
{
|
|
41626
41590
|
copy,
|
|
@@ -41637,7 +41601,7 @@ function AgentGUIReferencePickerSurface({
|
|
|
41637
41601
|
|
|
41638
41602
|
// agent-gui/agentGuiNode/view/AgentTargetSetupRoot.tsx
|
|
41639
41603
|
import { useCallback as useCallback63, useMemo as useMemo45 } from "react";
|
|
41640
|
-
import { jsx as
|
|
41604
|
+
import { jsx as jsx86, jsxs as jsxs63 } from "react/jsx-runtime";
|
|
41641
41605
|
function useAgentTargetSetupRoot(input) {
|
|
41642
41606
|
const { preferences } = useAgentGUIProviderRailPreferences();
|
|
41643
41607
|
const homeTargetProjection = useMemo45(
|
|
@@ -41681,9 +41645,9 @@ function AgentTargetSetupRoot({
|
|
|
41681
41645
|
controller,
|
|
41682
41646
|
openEnvironmentSetup
|
|
41683
41647
|
}) {
|
|
41684
|
-
return /* @__PURE__ */
|
|
41648
|
+
return /* @__PURE__ */ jsx86(AgentEnvPanelActionProvider, { openPanel: openEnvironmentSetup, children: /* @__PURE__ */ jsxs63(AgentTargetSetupControllerProvider, { controller, children: [
|
|
41685
41649
|
children,
|
|
41686
|
-
/* @__PURE__ */
|
|
41650
|
+
/* @__PURE__ */ jsx86(
|
|
41687
41651
|
AgentTargetSetupGate,
|
|
41688
41652
|
{
|
|
41689
41653
|
carouselMountedExternally: false,
|
|
@@ -42246,7 +42210,7 @@ function useAgentGUIExternalRequests(input) {
|
|
|
42246
42210
|
}
|
|
42247
42211
|
|
|
42248
42212
|
// agent-gui/agentGuiNode/AgentGUINodeView.tsx
|
|
42249
|
-
import { jsx as
|
|
42213
|
+
import { jsx as jsx87, jsxs as jsxs64 } from "react/jsx-runtime";
|
|
42250
42214
|
function AgentGUINodeView({
|
|
42251
42215
|
viewModel,
|
|
42252
42216
|
referenceProvenanceFilter = null,
|
|
@@ -42676,13 +42640,13 @@ function AgentGUINodeView({
|
|
|
42676
42640
|
}),
|
|
42677
42641
|
[targetPresentationKey, viewModel.shell.workspaceId]
|
|
42678
42642
|
);
|
|
42679
|
-
const content = /* @__PURE__ */
|
|
42643
|
+
const content = /* @__PURE__ */ jsx87(AgentTargetPresentationProvider, { agentTargets: agentTargetPresentations, children: /* @__PURE__ */ jsxs64(
|
|
42680
42644
|
AgentTargetSetupRoot,
|
|
42681
42645
|
{
|
|
42682
42646
|
controller: targetSetupController,
|
|
42683
42647
|
openEnvironmentSetup: onAgentEnvPanelOpen,
|
|
42684
42648
|
children: [
|
|
42685
|
-
/* @__PURE__ */
|
|
42649
|
+
/* @__PURE__ */ jsxs64(
|
|
42686
42650
|
"div",
|
|
42687
42651
|
{
|
|
42688
42652
|
ref: layoutElementRef,
|
|
@@ -42692,7 +42656,7 @@ function AgentGUINodeView({
|
|
|
42692
42656
|
inert: previewMode ? true : void 0,
|
|
42693
42657
|
style: layoutStyle,
|
|
42694
42658
|
children: [
|
|
42695
|
-
/* @__PURE__ */
|
|
42659
|
+
/* @__PURE__ */ jsxs64(
|
|
42696
42660
|
"aside",
|
|
42697
42661
|
{
|
|
42698
42662
|
className: `${AgentGUINode_styles_default.providerRailPanel} nodrag tsh-desktop-no-drag`,
|
|
@@ -42700,7 +42664,7 @@ function AgentGUINodeView({
|
|
|
42700
42664
|
"aria-hidden": conversationRailCollapsed ? "true" : void 0,
|
|
42701
42665
|
inert: conversationRailCollapsed ? true : void 0,
|
|
42702
42666
|
children: [
|
|
42703
|
-
/* @__PURE__ */
|
|
42667
|
+
/* @__PURE__ */ jsx87(
|
|
42704
42668
|
AgentGUIProviderRail,
|
|
42705
42669
|
{
|
|
42706
42670
|
activeConversation: viewModel.rail.activeConversation,
|
|
@@ -42724,7 +42688,7 @@ function AgentGUINodeView({
|
|
|
42724
42688
|
onRequestComposerFocus: requestComposerFocus
|
|
42725
42689
|
}
|
|
42726
42690
|
),
|
|
42727
|
-
renderSidebarFooter ? /* @__PURE__ */
|
|
42691
|
+
renderSidebarFooter ? /* @__PURE__ */ jsx87(
|
|
42728
42692
|
"div",
|
|
42729
42693
|
{
|
|
42730
42694
|
className: `${AgentGUINode_styles_default.providerRailFooter} ${AgentGUINode_styles_default.providerRailSidebarFooter} nodrag tsh-desktop-no-drag`,
|
|
@@ -42735,12 +42699,12 @@ function AgentGUINodeView({
|
|
|
42735
42699
|
})
|
|
42736
42700
|
}
|
|
42737
42701
|
) : null,
|
|
42738
|
-
shouldShowProviderRailConfigButton ? /* @__PURE__ */
|
|
42702
|
+
shouldShowProviderRailConfigButton ? /* @__PURE__ */ jsx87(
|
|
42739
42703
|
"div",
|
|
42740
42704
|
{
|
|
42741
42705
|
className: `${AgentGUINode_styles_default.providerRailFooter} ${AgentGUINode_styles_default.providerRailConfigFooter} nodrag tsh-desktop-no-drag`,
|
|
42742
42706
|
"data-testid": "agent-gui-config-footer",
|
|
42743
|
-
children: /* @__PURE__ */
|
|
42707
|
+
children: /* @__PURE__ */ jsx87(
|
|
42744
42708
|
AgentGUIConfigMenu,
|
|
42745
42709
|
{
|
|
42746
42710
|
environmentSetupVisible,
|
|
@@ -42767,14 +42731,14 @@ function AgentGUINodeView({
|
|
|
42767
42731
|
]
|
|
42768
42732
|
}
|
|
42769
42733
|
),
|
|
42770
|
-
/* @__PURE__ */
|
|
42734
|
+
/* @__PURE__ */ jsx87(
|
|
42771
42735
|
"aside",
|
|
42772
42736
|
{
|
|
42773
42737
|
id: "agent-gui-conversation-rail",
|
|
42774
42738
|
className: `${AgentGUINode_styles_default.railPanel}${conversationRailCollapsed ? ` ${AgentGUINode_styles_default.railPanelCollapsed}` : ""}`,
|
|
42775
42739
|
"aria-hidden": conversationRailCollapsed ? "true" : void 0,
|
|
42776
42740
|
inert: conversationRailCollapsed ? true : void 0,
|
|
42777
|
-
children: /* @__PURE__ */
|
|
42741
|
+
children: /* @__PURE__ */ jsx87(
|
|
42778
42742
|
AgentGUIConversationRailController,
|
|
42779
42743
|
{
|
|
42780
42744
|
...conversationRailStoreState,
|
|
@@ -42783,7 +42747,7 @@ function AgentGUINodeView({
|
|
|
42783
42747
|
registerInteractionLockProbe: registerRailInteractionLockProbe,
|
|
42784
42748
|
userProjects: viewModel.rail.userProjects,
|
|
42785
42749
|
workspaceId: viewModel.shell.workspaceId,
|
|
42786
|
-
footer: accountMenuState?.user ? /* @__PURE__ */
|
|
42750
|
+
footer: accountMenuState?.user ? /* @__PURE__ */ jsx87(
|
|
42787
42751
|
AgentGUIAccountRailMenu,
|
|
42788
42752
|
{
|
|
42789
42753
|
accountMenuState,
|
|
@@ -42795,7 +42759,7 @@ function AgentGUINodeView({
|
|
|
42795
42759
|
)
|
|
42796
42760
|
}
|
|
42797
42761
|
),
|
|
42798
|
-
/* @__PURE__ */
|
|
42762
|
+
/* @__PURE__ */ jsx87(
|
|
42799
42763
|
"div",
|
|
42800
42764
|
{
|
|
42801
42765
|
id: "agent-gui-conversation-rail-resize",
|
|
@@ -42819,7 +42783,7 @@ function AgentGUINodeView({
|
|
|
42819
42783
|
onPointerUp: endConversationRailResize
|
|
42820
42784
|
}
|
|
42821
42785
|
),
|
|
42822
|
-
/* @__PURE__ */
|
|
42786
|
+
/* @__PURE__ */ jsx87("section", { id: "agent-gui-detail", className: AgentGUINode_styles_default.detailPanel, children: /* @__PURE__ */ jsx87(
|
|
42823
42787
|
AgentGUIDetailPane,
|
|
42824
42788
|
{
|
|
42825
42789
|
shell: viewModel.shell,
|
|
@@ -42867,7 +42831,7 @@ function AgentGUINodeView({
|
|
|
42867
42831
|
]
|
|
42868
42832
|
}
|
|
42869
42833
|
),
|
|
42870
|
-
/* @__PURE__ */
|
|
42834
|
+
/* @__PURE__ */ jsx87(
|
|
42871
42835
|
AgentGUIReferencePickerSurface,
|
|
42872
42836
|
{
|
|
42873
42837
|
aggregator: workspaceReferencePickerAggregator,
|
|
@@ -42887,7 +42851,7 @@ function AgentGUINodeView({
|
|
|
42887
42851
|
onConfirmBundles: workspaceReferencePickerPurpose === "reference" ? confirmWorkspaceReferenceBundles : void 0
|
|
42888
42852
|
}
|
|
42889
42853
|
),
|
|
42890
|
-
/* @__PURE__ */
|
|
42854
|
+
/* @__PURE__ */ jsx87(
|
|
42891
42855
|
AgentGUIRenameConversationDialog,
|
|
42892
42856
|
{
|
|
42893
42857
|
conversation: renameConversationTarget,
|
|
@@ -42905,7 +42869,7 @@ function AgentGUINodeView({
|
|
|
42905
42869
|
]
|
|
42906
42870
|
}
|
|
42907
42871
|
) });
|
|
42908
|
-
return previewMode ? content : /* @__PURE__ */
|
|
42872
|
+
return previewMode ? content : /* @__PURE__ */ jsx87(TooltipProvider7, { children: content });
|
|
42909
42873
|
}
|
|
42910
42874
|
|
|
42911
42875
|
// agent-gui/workspaceDesktop/view/AgentProbeInfoPopover.tsx
|
|
@@ -42918,7 +42882,7 @@ import {
|
|
|
42918
42882
|
useState as useState52
|
|
42919
42883
|
} from "react";
|
|
42920
42884
|
import { createPortal as createPortal5 } from "react-dom";
|
|
42921
|
-
import { Fragment as Fragment28, jsx as
|
|
42885
|
+
import { Fragment as Fragment28, jsx as jsx88, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
42922
42886
|
var POPOVER_MIN_VIEWPORT_INSET_PX = 16;
|
|
42923
42887
|
var POPOVER_DEFAULT_WIDTH_PX = 260;
|
|
42924
42888
|
function dockAgentProbeLineKey(line) {
|
|
@@ -42928,11 +42892,11 @@ function renderDockAgentProbeLine(line) {
|
|
|
42928
42892
|
if (typeof line === "string") {
|
|
42929
42893
|
return line;
|
|
42930
42894
|
}
|
|
42931
|
-
return /* @__PURE__ */
|
|
42895
|
+
return /* @__PURE__ */ jsxs65(Fragment28, { children: [
|
|
42932
42896
|
line.primary,
|
|
42933
|
-
line.secondary ? /* @__PURE__ */
|
|
42897
|
+
line.secondary ? /* @__PURE__ */ jsxs65(Fragment28, { children: [
|
|
42934
42898
|
" ",
|
|
42935
|
-
/* @__PURE__ */
|
|
42899
|
+
/* @__PURE__ */ jsx88("span", { className: "desktop-dock-popup__agent-status-secondary", children: line.secondary })
|
|
42936
42900
|
] }) : null
|
|
42937
42901
|
] });
|
|
42938
42902
|
}
|
|
@@ -43025,7 +42989,7 @@ function AgentProbeInfoPopover({
|
|
|
43025
42989
|
if (lines.length === 0) {
|
|
43026
42990
|
return null;
|
|
43027
42991
|
}
|
|
43028
|
-
const popover = /* @__PURE__ */
|
|
42992
|
+
const popover = /* @__PURE__ */ jsx88(
|
|
43029
42993
|
"div",
|
|
43030
42994
|
{
|
|
43031
42995
|
ref: popoverRef,
|
|
@@ -43034,17 +42998,17 @@ function AgentProbeInfoPopover({
|
|
|
43034
42998
|
style: popoverStyle ?? void 0,
|
|
43035
42999
|
onMouseEnter: openPopover,
|
|
43036
43000
|
onMouseLeave: closeIfPointerLeavesPopover,
|
|
43037
|
-
children: /* @__PURE__ */
|
|
43001
|
+
children: /* @__PURE__ */ jsx88("ul", { className: "desktop-dock-popup__agent-info-list", children: lines.map((line) => {
|
|
43038
43002
|
const label = getDockAgentProbeLineLabel(line);
|
|
43039
43003
|
const valueText = formatDockAgentProbeLineText(line);
|
|
43040
|
-
return /* @__PURE__ */
|
|
43004
|
+
return /* @__PURE__ */ jsxs65(
|
|
43041
43005
|
"li",
|
|
43042
43006
|
{
|
|
43043
43007
|
className: "desktop-dock-popup__agent-info-item",
|
|
43044
43008
|
"data-has-label": label ? "true" : "false",
|
|
43045
43009
|
children: [
|
|
43046
|
-
label ? /* @__PURE__ */
|
|
43047
|
-
/* @__PURE__ */
|
|
43010
|
+
label ? /* @__PURE__ */ jsx88("span", { className: "desktop-dock-popup__agent-info-label", children: label }) : null,
|
|
43011
|
+
/* @__PURE__ */ jsx88(
|
|
43048
43012
|
"span",
|
|
43049
43013
|
{
|
|
43050
43014
|
className: "desktop-dock-popup__agent-info-value",
|
|
@@ -43059,7 +43023,7 @@ function AgentProbeInfoPopover({
|
|
|
43059
43023
|
}) })
|
|
43060
43024
|
}
|
|
43061
43025
|
);
|
|
43062
|
-
return /* @__PURE__ */
|
|
43026
|
+
return /* @__PURE__ */ jsxs65(
|
|
43063
43027
|
"div",
|
|
43064
43028
|
{
|
|
43065
43029
|
ref: anchorRef,
|
|
@@ -43079,7 +43043,7 @@ function AgentProbeInfoPopover({
|
|
|
43079
43043
|
},
|
|
43080
43044
|
onBlur: closePopover,
|
|
43081
43045
|
children: [
|
|
43082
|
-
/* @__PURE__ */
|
|
43046
|
+
/* @__PURE__ */ jsx88(Info2, { size: 15, strokeWidth: 2.1, "aria-hidden": "true" }),
|
|
43083
43047
|
isOpen ? createPortal5(popover, document.body) : null
|
|
43084
43048
|
]
|
|
43085
43049
|
}
|
|
@@ -43215,7 +43179,7 @@ function composeAgentGUIMentionService(input) {
|
|
|
43215
43179
|
}
|
|
43216
43180
|
|
|
43217
43181
|
// agent-gui/agentGuiNode/AgentGUIMentionServiceBoundary.tsx
|
|
43218
|
-
import { jsx as
|
|
43182
|
+
import { jsx as jsx89 } from "react/jsx-runtime";
|
|
43219
43183
|
function AgentGUIMentionServiceBoundary({
|
|
43220
43184
|
children,
|
|
43221
43185
|
service
|
|
@@ -43231,7 +43195,7 @@ function AgentGUIMentionServiceBoundary({
|
|
|
43231
43195
|
if (!effectiveService || effectiveService === inheritedService) {
|
|
43232
43196
|
return children;
|
|
43233
43197
|
}
|
|
43234
|
-
return /* @__PURE__ */
|
|
43198
|
+
return /* @__PURE__ */ jsx89(RichTextMentionServiceProvider, { service: effectiveService, children });
|
|
43235
43199
|
}
|
|
43236
43200
|
|
|
43237
43201
|
// agent-gui/agentGuiNode/AgentGUINode.labels.ts
|
|
@@ -44391,7 +44355,7 @@ function useAgentGUIWorkspaceFileReferenceCopy(t) {
|
|
|
44391
44355
|
}
|
|
44392
44356
|
|
|
44393
44357
|
// agent-gui/agentGuiNode/AgentGUINode.tsx
|
|
44394
|
-
import { jsx as
|
|
44358
|
+
import { jsx as jsx90, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
44395
44359
|
var DISABLED_REFERENCE_PROVENANCE_CATALOG = {
|
|
44396
44360
|
enabledDimensions: [],
|
|
44397
44361
|
agentOptions: [],
|
|
@@ -44706,7 +44670,7 @@ var AgentGUINode = memo15(function AgentGUINode2({
|
|
|
44706
44670
|
t,
|
|
44707
44671
|
viewModel
|
|
44708
44672
|
});
|
|
44709
|
-
return /* @__PURE__ */
|
|
44673
|
+
return /* @__PURE__ */ jsx90(AgentGUIMentionServiceBoundary, { service: mentionService, children: /* @__PURE__ */ jsx90(
|
|
44710
44674
|
WorkspaceNodeWindow,
|
|
44711
44675
|
{
|
|
44712
44676
|
nodeId,
|
|
@@ -44722,8 +44686,8 @@ var AgentGUINode = memo15(function AgentGUINode2({
|
|
|
44722
44686
|
className: "size-full bg-transparent",
|
|
44723
44687
|
bodyClassName: `${AgentGUINode_styles_default.shell} nodrag size-full min-h-0 min-w-0 !bg-transparent p-0`,
|
|
44724
44688
|
hideHeader: embedded,
|
|
44725
|
-
titleAccessory: /* @__PURE__ */
|
|
44726
|
-
/* @__PURE__ */
|
|
44689
|
+
titleAccessory: /* @__PURE__ */ jsxs66("span", { className: "inline-flex flex-none items-center gap-1", children: [
|
|
44690
|
+
/* @__PURE__ */ jsx90(
|
|
44727
44691
|
AgentProbeInfoPopover,
|
|
44728
44692
|
{
|
|
44729
44693
|
lines: agentProbeLines,
|
|
@@ -44733,7 +44697,7 @@ var AgentGUINode = memo15(function AgentGUINode2({
|
|
|
44733
44697
|
onClose: handleAgentProbeInfoClose
|
|
44734
44698
|
}
|
|
44735
44699
|
),
|
|
44736
|
-
/* @__PURE__ */
|
|
44700
|
+
/* @__PURE__ */ jsx90(
|
|
44737
44701
|
CanvasNodeGhostIconButton,
|
|
44738
44702
|
{
|
|
44739
44703
|
"aria-label": isConversationRailCollapsed ? t("agentHost.agentGui.expandConversationRail") : t("agentHost.agentGui.collapseConversationRail"),
|
|
@@ -44745,7 +44709,7 @@ var AgentGUINode = memo15(function AgentGUINode2({
|
|
|
44745
44709
|
event.stopPropagation();
|
|
44746
44710
|
handleConversationRailToggle();
|
|
44747
44711
|
},
|
|
44748
|
-
children: /* @__PURE__ */
|
|
44712
|
+
children: /* @__PURE__ */ jsx90(
|
|
44749
44713
|
CanvasNodePanelLinedIcon,
|
|
44750
44714
|
{
|
|
44751
44715
|
width: 18,
|
|
@@ -44769,7 +44733,7 @@ var AgentGUINode = memo15(function AgentGUINode2({
|
|
|
44769
44733
|
renderedWidth,
|
|
44770
44734
|
railAutoCollapseWidthPx
|
|
44771
44735
|
);
|
|
44772
|
-
return /* @__PURE__ */
|
|
44736
|
+
return /* @__PURE__ */ jsx90(
|
|
44773
44737
|
AgentGUINodeView,
|
|
44774
44738
|
{
|
|
44775
44739
|
viewModel,
|
|
@@ -44852,7 +44816,7 @@ var AgentGUINode = memo15(function AgentGUINode2({
|
|
|
44852
44816
|
}, areAgentGUINodePropsEqual);
|
|
44853
44817
|
|
|
44854
44818
|
// AgentGUI.tsx
|
|
44855
|
-
import { jsx as
|
|
44819
|
+
import { jsx as jsx91 } from "react/jsx-runtime";
|
|
44856
44820
|
var AgentGUI = memo16(function AgentGUI2({
|
|
44857
44821
|
agentActivityRuntime,
|
|
44858
44822
|
agentHostApi,
|
|
@@ -44924,21 +44888,21 @@ var AgentGUI = memo16(function AgentGUI2({
|
|
|
44924
44888
|
hostCapabilities: nodeHostCapabilities,
|
|
44925
44889
|
renderSlots: nodeRenderSlots
|
|
44926
44890
|
};
|
|
44927
|
-
const content = /* @__PURE__ */
|
|
44891
|
+
const content = /* @__PURE__ */ jsx91(AgentGuiI18nProvider, { runtime: i18n, locale, children: /* @__PURE__ */ jsx91(TuttiModePlanReviewRuntimeProvider, { runtime: tuttiModePlanReviewRuntime, children: /* @__PURE__ */ jsx91(
|
|
44928
44892
|
AgentActivityHostProvider,
|
|
44929
44893
|
{
|
|
44930
44894
|
agentActivityRuntime,
|
|
44931
44895
|
agentHostApi,
|
|
44932
|
-
children: /* @__PURE__ */
|
|
44896
|
+
children: /* @__PURE__ */ jsx91(
|
|
44933
44897
|
AgentCommercePresentationProvider,
|
|
44934
44898
|
{
|
|
44935
44899
|
value: props.hostCapabilities?.commercePresentation,
|
|
44936
|
-
children: /* @__PURE__ */
|
|
44900
|
+
children: /* @__PURE__ */ jsx91(AgentGUINode, { ...nodeProps })
|
|
44937
44901
|
}
|
|
44938
44902
|
)
|
|
44939
44903
|
}
|
|
44940
44904
|
) }) });
|
|
44941
|
-
return props.frame.previewMode ? content : /* @__PURE__ */
|
|
44905
|
+
return props.frame.previewMode ? content : /* @__PURE__ */ jsx91(TooltipProvider8, { delayDuration: 120, skipDelayDuration: 0, children: content });
|
|
44942
44906
|
});
|
|
44943
44907
|
|
|
44944
44908
|
export {
|
|
@@ -44958,4 +44922,4 @@ export {
|
|
|
44958
44922
|
AgentHandoffMenu,
|
|
44959
44923
|
AgentGUI
|
|
44960
44924
|
};
|
|
44961
|
-
//# sourceMappingURL=chunk-
|
|
44925
|
+
//# sourceMappingURL=chunk-AT4DII34.js.map
|