@tutti-os/agent-gui 0.0.216 → 0.0.217
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 +6 -0
- package/dist/{agentFileMentionContracts-BeBex-Sf.d.ts → AgentMentionSearchContracts-y1_u9cPi.d.ts} +73 -1
- package/dist/{AgentRichTextReadonly-IPPNAAWG.js → AgentRichTextReadonly-WZHUIARR.js} +7 -7
- package/dist/agent-conversation/index.js +9 -9
- package/dist/agent-gui.d.ts +16 -3
- package/dist/agent-gui.js +23 -22
- package/dist/agent-message-center/index.js +6 -6
- package/dist/app/renderer/agentactivity.css +93 -69
- package/dist/{chunk-VMPPZO5C.js → chunk-2QF3RBR4.js} +4 -4
- package/dist/{chunk-DTP2OMCE.js → chunk-44OCOBJS.js} +9 -11
- package/dist/chunk-44OCOBJS.js.map +1 -0
- package/dist/chunk-6GX57XB5.js +135 -0
- package/dist/chunk-6GX57XB5.js.map +1 -0
- package/dist/{chunk-EZRQMJTX.js → chunk-FS7EMOVD.js} +4 -4
- package/dist/{chunk-6A6OVD66.js → chunk-G2KRK7Z5.js} +44 -18
- package/dist/chunk-G2KRK7Z5.js.map +1 -0
- package/dist/{chunk-YY5WM3OE.js → chunk-GDLM6FLK.js} +90 -47
- package/dist/chunk-GDLM6FLK.js.map +1 -0
- package/dist/{chunk-UERICUWM.js → chunk-GLVENTN6.js} +2 -2
- package/dist/{chunk-B4TM2HYJ.js → chunk-JQOQETPN.js} +5 -5
- package/dist/{chunk-QFYOJMEQ.js → chunk-M6WEFXPL.js} +2 -2
- package/dist/{chunk-AOK22J62.js → chunk-N2M4B3G3.js} +2 -2
- package/dist/{chunk-DLN33TPF.js → chunk-NXQGAXIE.js} +8 -8
- package/dist/{chunk-MOCBHFJ2.js → chunk-O4QFGCLU.js} +42 -118
- package/dist/chunk-O4QFGCLU.js.map +1 -0
- package/dist/{chunk-Z5UJC4Q3.js → chunk-PPAV2TB4.js} +3 -3
- package/dist/{chunk-4CHBM3G3.js → chunk-SUVMLCED.js} +5 -5
- package/dist/{chunk-KJA3HHUJ.js → chunk-TKECUCUW.js} +529 -291
- package/dist/chunk-TKECUCUW.js.map +1 -0
- package/dist/{chunk-P2RIZAK5.js → chunk-ZXEICU6J.js} +3 -1
- package/dist/chunk-ZXEICU6J.js.map +1 -0
- package/dist/context-mention-palette/index.d.ts +3 -3
- package/dist/context-mention-palette/index.js +12 -12
- package/dist/headerLayout-CP4ujEbo.d.ts +14 -0
- package/dist/i18n/index.d.ts +2 -0
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +77 -46
- package/dist/index.js +46 -39
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts +7 -0
- package/dist/layout.js +9 -0
- package/dist/layout.js.map +1 -0
- package/dist/mention-search.d.ts +6 -73
- package/dist/mention-search.js +8 -8
- package/dist/workbench/browser-element-context/index.js +2 -2
- package/dist/workbench/contribution.js +7 -6
- package/dist/workbench/index.d.ts +3 -1
- package/dist/workbench/index.js +10 -9
- package/dist/workbench/launch.js +2 -2
- package/dist/workbench/sessionTitle.js +2 -2
- package/dist/workbench/tool-sidebar/index.d.ts +14 -13
- package/dist/workbench/tool-sidebar/index.js +66 -55
- package/dist/workbench/tool-sidebar/index.js.map +1 -1
- package/package.json +23 -16
- package/dist/chunk-6A6OVD66.js.map +0 -1
- package/dist/chunk-DTP2OMCE.js.map +0 -1
- package/dist/chunk-KJA3HHUJ.js.map +0 -1
- package/dist/chunk-MOCBHFJ2.js.map +0 -1
- package/dist/chunk-P2RIZAK5.js.map +0 -1
- package/dist/chunk-YY5WM3OE.js.map +0 -1
- /package/dist/{AgentRichTextReadonly-IPPNAAWG.js.map → AgentRichTextReadonly-WZHUIARR.js.map} +0 -0
- /package/dist/{chunk-VMPPZO5C.js.map → chunk-2QF3RBR4.js.map} +0 -0
- /package/dist/{chunk-EZRQMJTX.js.map → chunk-FS7EMOVD.js.map} +0 -0
- /package/dist/{chunk-UERICUWM.js.map → chunk-GLVENTN6.js.map} +0 -0
- /package/dist/{chunk-B4TM2HYJ.js.map → chunk-JQOQETPN.js.map} +0 -0
- /package/dist/{chunk-QFYOJMEQ.js.map → chunk-M6WEFXPL.js.map} +0 -0
- /package/dist/{chunk-AOK22J62.js.map → chunk-N2M4B3G3.js.map} +0 -0
- /package/dist/{chunk-DLN33TPF.js.map → chunk-NXQGAXIE.js.map} +0 -0
- /package/dist/{chunk-Z5UJC4Q3.js.map → chunk-PPAV2TB4.js.map} +0 -0
- /package/dist/{chunk-4CHBM3G3.js.map → chunk-SUVMLCED.js.map} +0 -0
|
@@ -5,17 +5,9 @@ import {
|
|
|
5
5
|
createWorkspaceQueryCache
|
|
6
6
|
} from "./chunk-A4WCTHWS.js";
|
|
7
7
|
import {
|
|
8
|
-
AGENT_GUI_COLLAPSED_MIN_WIDTH_PX,
|
|
9
|
-
AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,
|
|
10
|
-
AGENT_GUI_DETAIL_MIN_WIDTH_PX,
|
|
11
8
|
AGENT_GUI_WORKBENCH_OPEN_EXTERNAL_IMPORT_EVENT,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
resolveAgentGUIExpandedWindowFrame,
|
|
15
|
-
resolveAgentGuiSessionProviderFlatIconUrl,
|
|
16
|
-
resolveNextAgentGUIConversationRailWidthPx,
|
|
17
|
-
shouldAutoCollapseAgentGUIConversationRail
|
|
18
|
-
} from "./chunk-MOCBHFJ2.js";
|
|
9
|
+
resolveAgentGuiSessionProviderFlatIconUrl
|
|
10
|
+
} from "./chunk-O4QFGCLU.js";
|
|
19
11
|
import {
|
|
20
12
|
AGENT_PROVIDERS,
|
|
21
13
|
AGENT_PROVIDER_LABEL,
|
|
@@ -31,10 +23,25 @@ import {
|
|
|
31
23
|
resolveAgentGUIFirstUserMessageDisplayPrompt,
|
|
32
24
|
resolveAgentGUIProviderDisplayLabel,
|
|
33
25
|
resolveAgentGUIProviderIdentity
|
|
34
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-2QF3RBR4.js";
|
|
35
27
|
import {
|
|
36
28
|
resolveAgentGuiWorkbenchProviderLabel
|
|
37
29
|
} from "./chunk-MGSRWYRN.js";
|
|
30
|
+
import {
|
|
31
|
+
AgentInteractivePromptSurface,
|
|
32
|
+
PLAN_IMPLEMENTATION_ACTION_FEEDBACK,
|
|
33
|
+
PLAN_IMPLEMENTATION_ACTION_IMPLEMENT,
|
|
34
|
+
PLAN_IMPLEMENTATION_ACTION_SKIP,
|
|
35
|
+
approvalOptionDisplayLabel,
|
|
36
|
+
dispatchAgentPlanPromptAction,
|
|
37
|
+
latestPlanTurnId,
|
|
38
|
+
normalizePlanIssueBudgetPreset,
|
|
39
|
+
planImplementationPromptFromPlanTurn,
|
|
40
|
+
planIssueBudgetPresetsEqual
|
|
41
|
+
} from "./chunk-FS7EMOVD.js";
|
|
42
|
+
import {
|
|
43
|
+
useEngineSelector
|
|
44
|
+
} from "./chunk-EVQ4JY3N.js";
|
|
38
45
|
import {
|
|
39
46
|
AgentConversationFlow,
|
|
40
47
|
AgentVisibleErrorPresentationProvider,
|
|
@@ -70,7 +77,7 @@ import {
|
|
|
70
77
|
toLocalShortDateTime,
|
|
71
78
|
updateAgentComposerDraft,
|
|
72
79
|
useProjectedAgentConversation
|
|
73
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-GDLM6FLK.js";
|
|
74
81
|
import {
|
|
75
82
|
agentRichTextContentToPromptText,
|
|
76
83
|
createAgentRichTextInputExtensions,
|
|
@@ -80,7 +87,20 @@ import {
|
|
|
80
87
|
plainTextToAgentRichTextInlineContent,
|
|
81
88
|
skillDescriptionForDisplay,
|
|
82
89
|
skillTriggerForPrefix
|
|
83
|
-
} from "./chunk-
|
|
90
|
+
} from "./chunk-NXQGAXIE.js";
|
|
91
|
+
import {
|
|
92
|
+
AgentMessageMarkdown,
|
|
93
|
+
ZoomableImage,
|
|
94
|
+
blobToBase64,
|
|
95
|
+
normalizeAgentApprovalPurpose,
|
|
96
|
+
resolveWorkspaceLinkAction
|
|
97
|
+
} from "./chunk-PPAV2TB4.js";
|
|
98
|
+
import {
|
|
99
|
+
AgentTargetPresentationProvider,
|
|
100
|
+
cn,
|
|
101
|
+
resolveAgentTargetPresentation,
|
|
102
|
+
useAgentTargetPresentations
|
|
103
|
+
} from "./chunk-LQMIEH4C.js";
|
|
84
104
|
import {
|
|
85
105
|
AgentEnvPanelActionProvider
|
|
86
106
|
} from "./chunk-N4HLBSMJ.js";
|
|
@@ -95,18 +115,31 @@ import {
|
|
|
95
115
|
AgentFileMentionPalette,
|
|
96
116
|
agentMentionItemKey,
|
|
97
117
|
isAgentMentionItemDisabled
|
|
98
|
-
} from "./chunk-
|
|
118
|
+
} from "./chunk-44OCOBJS.js";
|
|
99
119
|
import {
|
|
100
120
|
normalizeAgentGUIAgents,
|
|
101
121
|
projectAgentGUIAgentsToTargets
|
|
102
122
|
} from "./chunk-3MVSOLX3.js";
|
|
123
|
+
import {
|
|
124
|
+
AGENT_GUI_COLLAPSED_MIN_WIDTH_PX,
|
|
125
|
+
AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,
|
|
126
|
+
AGENT_GUI_DETAIL_MIN_WIDTH_PX,
|
|
127
|
+
clampAgentGUIConversationRailWidthPx,
|
|
128
|
+
resolveAgentGUIConversationRailMaxWidthPx,
|
|
129
|
+
resolveAgentGUIConversationRailPresentation,
|
|
130
|
+
resolveAgentGUIExpandedWindowFrame,
|
|
131
|
+
resolveNextAgentGUIConversationRailWidthPx
|
|
132
|
+
} from "./chunk-6GX57XB5.js";
|
|
103
133
|
import {
|
|
104
134
|
AGENT_MENTION_FILTER_TAB_ORDER,
|
|
105
135
|
AgentMentionSearchController,
|
|
106
136
|
DEFAULT_AGENT_MENTION_FILTER,
|
|
107
137
|
agentGuiScheduler,
|
|
108
138
|
buildWorkspaceAgentActivityListViewModel
|
|
109
|
-
} from "./chunk-
|
|
139
|
+
} from "./chunk-G2KRK7Z5.js";
|
|
140
|
+
import {
|
|
141
|
+
resolveWorkspaceAgentSessionSortTimeUnixMs
|
|
142
|
+
} from "./chunk-YMXYBG7U.js";
|
|
110
143
|
import {
|
|
111
144
|
AGENT_RICH_TEXT_CARET_ANCHOR,
|
|
112
145
|
agentComposerFileMentionReferences,
|
|
@@ -123,38 +156,7 @@ import {
|
|
|
123
156
|
parseMentionItemFromHref,
|
|
124
157
|
remainingAgentComposerPromptAssetSlots,
|
|
125
158
|
updateAgentComposerFileMentions
|
|
126
|
-
} from "./chunk-
|
|
127
|
-
import {
|
|
128
|
-
AgentInteractivePromptSurface,
|
|
129
|
-
PLAN_IMPLEMENTATION_ACTION_FEEDBACK,
|
|
130
|
-
PLAN_IMPLEMENTATION_ACTION_IMPLEMENT,
|
|
131
|
-
PLAN_IMPLEMENTATION_ACTION_SKIP,
|
|
132
|
-
approvalOptionDisplayLabel,
|
|
133
|
-
dispatchAgentPlanPromptAction,
|
|
134
|
-
latestPlanTurnId,
|
|
135
|
-
normalizePlanIssueBudgetPreset,
|
|
136
|
-
planImplementationPromptFromPlanTurn,
|
|
137
|
-
planIssueBudgetPresetsEqual
|
|
138
|
-
} from "./chunk-EZRQMJTX.js";
|
|
139
|
-
import {
|
|
140
|
-
useEngineSelector
|
|
141
|
-
} from "./chunk-EVQ4JY3N.js";
|
|
142
|
-
import {
|
|
143
|
-
AgentMessageMarkdown,
|
|
144
|
-
ZoomableImage,
|
|
145
|
-
blobToBase64,
|
|
146
|
-
normalizeAgentApprovalPurpose,
|
|
147
|
-
resolveWorkspaceLinkAction
|
|
148
|
-
} from "./chunk-Z5UJC4Q3.js";
|
|
149
|
-
import {
|
|
150
|
-
AgentTargetPresentationProvider,
|
|
151
|
-
cn,
|
|
152
|
-
resolveAgentTargetPresentation,
|
|
153
|
-
useAgentTargetPresentations
|
|
154
|
-
} from "./chunk-LQMIEH4C.js";
|
|
155
|
-
import {
|
|
156
|
-
resolveWorkspaceAgentSessionSortTimeUnixMs
|
|
157
|
-
} from "./chunk-YMXYBG7U.js";
|
|
159
|
+
} from "./chunk-JQOQETPN.js";
|
|
158
160
|
import {
|
|
159
161
|
AgentActivityHostProvider,
|
|
160
162
|
getOptionalAgentHostApi,
|
|
@@ -163,7 +165,7 @@ import {
|
|
|
163
165
|
useAgentHostApi,
|
|
164
166
|
useOptionalAgentActivityRuntime,
|
|
165
167
|
useOptionalAgentHostApi
|
|
166
|
-
} from "./chunk-
|
|
168
|
+
} from "./chunk-M6WEFXPL.js";
|
|
167
169
|
import {
|
|
168
170
|
MANAGED_AGENT_ICON_FALLBACK_URL,
|
|
169
171
|
MANAGED_AGENT_ICON_URLS,
|
|
@@ -173,7 +175,7 @@ import {
|
|
|
173
175
|
AgentGuiI18nProvider,
|
|
174
176
|
translate,
|
|
175
177
|
useTranslation
|
|
176
|
-
} from "./chunk-
|
|
178
|
+
} from "./chunk-GLVENTN6.js";
|
|
177
179
|
import {
|
|
178
180
|
isBetaAgentProvider,
|
|
179
181
|
normalizeManagedAgentProvider
|
|
@@ -183,20 +185,20 @@ import {
|
|
|
183
185
|
resolveProviderIconAsset
|
|
184
186
|
} from "./chunk-QNE2ZPPV.js";
|
|
185
187
|
import {
|
|
188
|
+
agentGUIProviderIdentityDisplayName,
|
|
186
189
|
migratedAgentGUIProviderIdentityCatalog,
|
|
187
190
|
resolveAgentGUIProviderCatalogIdentity,
|
|
188
191
|
resolveMigratedAgentGUIProviderIdentity
|
|
189
192
|
} from "./chunk-O433KXLK.js";
|
|
190
193
|
|
|
191
194
|
// AgentGUI.tsx
|
|
192
|
-
import { memo as memo15, useMemo as
|
|
195
|
+
import { memo as memo15, useMemo as useMemo52 } from "react";
|
|
193
196
|
import { TooltipProvider as TooltipProvider8 } from "@tutti-os/ui-system";
|
|
194
197
|
|
|
195
198
|
// agent-gui/agentGuiNode/AgentGUINode.tsx
|
|
196
|
-
import { memo as memo14, useCallback as useCallback68, useMemo as
|
|
199
|
+
import { memo as memo14, useCallback as useCallback68, useMemo as useMemo51, useRef as useRef61 } from "react";
|
|
197
200
|
import { createWorkspaceUserProjectI18nRuntime } from "@tutti-os/workspace-user-project/i18n";
|
|
198
201
|
import { createWorkspaceFileManagerI18nRuntime } from "@tutti-os/workspace-file-manager";
|
|
199
|
-
import { useReferenceProvenanceFilterCatalog } from "@tutti-os/workspace-file-reference/react";
|
|
200
202
|
|
|
201
203
|
// utils/workspaceNodeSizing.ts
|
|
202
204
|
var MIN_SIZE_BY_KIND = {
|
|
@@ -7743,6 +7745,53 @@ function useAgentGUIControllerRefs(input) {
|
|
|
7743
7745
|
import { selectEngineSession as selectEngineSession4 } from "@tutti-os/agent-activity-core";
|
|
7744
7746
|
import { useCallback as useCallback20 } from "react";
|
|
7745
7747
|
|
|
7748
|
+
// agent-gui/agentGuiNode/controller/agentGuiNewConversationRequest.ts
|
|
7749
|
+
function requestAgentGUINewConversation(input) {
|
|
7750
|
+
if (input.options && "projectPath" in input.options) {
|
|
7751
|
+
input.createConversation(input.options);
|
|
7752
|
+
return true;
|
|
7753
|
+
}
|
|
7754
|
+
const selection = resolveAgentGUINewConversationProjectSelection({
|
|
7755
|
+
activeConversationId: input.activeConversationId,
|
|
7756
|
+
conversations: input.conversations,
|
|
7757
|
+
transientConversation: input.transientConversation
|
|
7758
|
+
});
|
|
7759
|
+
if (selection.kind === "unresolved") {
|
|
7760
|
+
return false;
|
|
7761
|
+
}
|
|
7762
|
+
if (selection.kind === "preserve_home") {
|
|
7763
|
+
input.createConversation(input.options ?? {});
|
|
7764
|
+
return true;
|
|
7765
|
+
}
|
|
7766
|
+
input.createConversation({
|
|
7767
|
+
...input.options,
|
|
7768
|
+
projectPath: selection.projectPath
|
|
7769
|
+
});
|
|
7770
|
+
return true;
|
|
7771
|
+
}
|
|
7772
|
+
function resolveAgentGUINewConversationProjectSelection(input) {
|
|
7773
|
+
if (input.activeConversationId === null) {
|
|
7774
|
+
return { kind: "preserve_home" };
|
|
7775
|
+
}
|
|
7776
|
+
const activeConversation = resolveConversationSummaryById(
|
|
7777
|
+
input.conversations,
|
|
7778
|
+
input.activeConversationId,
|
|
7779
|
+
input.transientConversation
|
|
7780
|
+
);
|
|
7781
|
+
if (!activeConversation) {
|
|
7782
|
+
return { kind: "unresolved" };
|
|
7783
|
+
}
|
|
7784
|
+
const sectionKey = activeConversation.railSectionKey?.trim() ?? "";
|
|
7785
|
+
if (sectionKey === "conversations") {
|
|
7786
|
+
return { kind: "replace", projectPath: null };
|
|
7787
|
+
}
|
|
7788
|
+
const projectPath = activeConversation.cwd.trim();
|
|
7789
|
+
if (!sectionKey || !projectPath) {
|
|
7790
|
+
return { kind: "unresolved" };
|
|
7791
|
+
}
|
|
7792
|
+
return { kind: "replace", projectPath };
|
|
7793
|
+
}
|
|
7794
|
+
|
|
7746
7795
|
// agent-gui/agentGuiNode/controller/useAgentGUIComposerSettingsActions.ts
|
|
7747
7796
|
import {
|
|
7748
7797
|
selectEngineSession as selectEngineSession2,
|
|
@@ -10475,7 +10524,7 @@ function useAgentGUIOperationActions(input) {
|
|
|
10475
10524
|
...input,
|
|
10476
10525
|
getCachedComposerOptions: () => input.providerComposerOptions
|
|
10477
10526
|
});
|
|
10478
|
-
const { createConversation } = useAgentGUIConversationHome({
|
|
10527
|
+
const { createConversation: enterConversationHome } = useAgentGUIConversationHome({
|
|
10479
10528
|
...input,
|
|
10480
10529
|
submitPrefillPrompt: (prompt) => {
|
|
10481
10530
|
queueMicrotask(() => {
|
|
@@ -10483,9 +10532,32 @@ function useAgentGUIOperationActions(input) {
|
|
|
10483
10532
|
});
|
|
10484
10533
|
}
|
|
10485
10534
|
});
|
|
10535
|
+
const createConversation = useCallback20(
|
|
10536
|
+
(options) => {
|
|
10537
|
+
if (requestAgentGUINewConversation({
|
|
10538
|
+
activeConversationId: input.activeConversationIdRef.current,
|
|
10539
|
+
conversations: input.conversationsRef.current,
|
|
10540
|
+
createConversation: enterConversationHome,
|
|
10541
|
+
options,
|
|
10542
|
+
transientConversation: input.transientConversation
|
|
10543
|
+
})) {
|
|
10544
|
+
return;
|
|
10545
|
+
}
|
|
10546
|
+
input.setDetailError(
|
|
10547
|
+
translate("agentHost.agentGui.sessionActivationFailed")
|
|
10548
|
+
);
|
|
10549
|
+
},
|
|
10550
|
+
[
|
|
10551
|
+
enterConversationHome,
|
|
10552
|
+
input.activeConversationIdRef,
|
|
10553
|
+
input.conversationsRef,
|
|
10554
|
+
input.setDetailError,
|
|
10555
|
+
input.transientConversation
|
|
10556
|
+
]
|
|
10557
|
+
);
|
|
10486
10558
|
const continueInNewConversation = useAgentGUIContinueConversation({
|
|
10487
10559
|
...input,
|
|
10488
|
-
createConversation
|
|
10560
|
+
createConversation: enterConversationHome
|
|
10489
10561
|
});
|
|
10490
10562
|
const isSessionMarkedNonResumable = useCallback20(
|
|
10491
10563
|
(agentSessionId) => {
|
|
@@ -15231,6 +15303,7 @@ function conversationPlainTitle(conversation, labels, uiLanguage) {
|
|
|
15231
15303
|
import { useState as useState9 } from "react";
|
|
15232
15304
|
import { Gauge, Wrench } from "lucide-react";
|
|
15233
15305
|
import { Popover, PopoverContent, PopoverTrigger } from "@tutti-os/ui-system";
|
|
15306
|
+
import { MoreHorizontalIcon } from "@tutti-os/ui-system/icons";
|
|
15234
15307
|
|
|
15235
15308
|
// agent-gui/agentGuiNode/AgentProbeUsageFreshness.tsx
|
|
15236
15309
|
import { RefreshCw } from "lucide-react";
|
|
@@ -15416,6 +15489,8 @@ function AgentGUIConfigMenu({
|
|
|
15416
15489
|
const providerFlatIconUrl = resolveAgentGuiSessionProviderFlatIconUrl(
|
|
15417
15490
|
provider ?? void 0
|
|
15418
15491
|
);
|
|
15492
|
+
const providerDisplayTitle = provider?.trim() ? labels.slashStatusProviderAccount(provider.trim()) : null;
|
|
15493
|
+
const accountTitle = providerDisplayTitle ?? labels.slashStatusAccount;
|
|
15419
15494
|
return /* @__PURE__ */ jsxs7(
|
|
15420
15495
|
Popover,
|
|
15421
15496
|
{
|
|
@@ -15436,7 +15511,7 @@ function AgentGUIConfigMenu({
|
|
|
15436
15511
|
"aria-label": labels.agentConfig,
|
|
15437
15512
|
className: `${AgentGUINode_styles_default.providerRailConfigButton} nodrag tsh-desktop-no-drag`,
|
|
15438
15513
|
title: labels.agentConfig,
|
|
15439
|
-
children: /* @__PURE__ */ jsx14(
|
|
15514
|
+
children: /* @__PURE__ */ jsx14(MoreHorizontalIcon, { "aria-hidden": "true", width: 18, height: 18 })
|
|
15440
15515
|
}
|
|
15441
15516
|
) }),
|
|
15442
15517
|
/* @__PURE__ */ jsx14(
|
|
@@ -15461,7 +15536,7 @@ function AgentGUIConfigMenu({
|
|
|
15461
15536
|
}
|
|
15462
15537
|
}
|
|
15463
15538
|
) : null,
|
|
15464
|
-
/* @__PURE__ */ jsx14("span", { className: "text-[13px] font-semibold leading-4", children:
|
|
15539
|
+
/* @__PURE__ */ jsx14("span", { className: "text-[13px] font-semibold leading-4", children: accountTitle })
|
|
15465
15540
|
] }),
|
|
15466
15541
|
/* @__PURE__ */ jsx14("span", { className: "text-[13px] leading-5 text-[var(--text-secondary)]", children: providerAuthAccountLabel })
|
|
15467
15542
|
] }),
|
|
@@ -22672,14 +22747,20 @@ function ComposerMenuOptionItems({
|
|
|
22672
22747
|
"ml-1 inline-flex size-5 shrink-0 items-center justify-center rounded-[4px] text-[var(--agent-gui-text-tertiary)] transition-opacity hover:text-[var(--text-secondary)]",
|
|
22673
22748
|
isFavorite ? "text-[var(--tutti-purple)] opacity-100 hover:text-[var(--tutti-purple)]" : "opacity-0 group-hover/composer-option:opacity-100 group-data-[highlighted]/composer-option:opacity-100"
|
|
22674
22749
|
),
|
|
22675
|
-
|
|
22676
|
-
event.
|
|
22677
|
-
|
|
22750
|
+
onPointerUp: (event) => {
|
|
22751
|
+
const shouldToggle = event.button === 0 && !event.ctrlKey;
|
|
22752
|
+
if (shouldToggle) {
|
|
22753
|
+
event.stopPropagation();
|
|
22754
|
+
onToggleFavorite(option.value);
|
|
22755
|
+
}
|
|
22678
22756
|
},
|
|
22679
22757
|
onClick: (event) => {
|
|
22680
22758
|
event.preventDefault();
|
|
22681
22759
|
event.stopPropagation();
|
|
22682
|
-
|
|
22760
|
+
const isKeyboardActivation = event.detail === 0;
|
|
22761
|
+
if (isKeyboardActivation) {
|
|
22762
|
+
onToggleFavorite(option.value);
|
|
22763
|
+
}
|
|
22683
22764
|
},
|
|
22684
22765
|
children: /* @__PURE__ */ jsx25(
|
|
22685
22766
|
Star,
|
|
@@ -22703,6 +22784,11 @@ function ComposerMenuOptionItems({
|
|
|
22703
22784
|
),
|
|
22704
22785
|
"data-agent-model-option": showModelTooltip ? "true" : void 0,
|
|
22705
22786
|
onPointerDown: (event) => {
|
|
22787
|
+
if (event.target instanceof Element && event.target.closest(
|
|
22788
|
+
'[data-agent-model-favorite-toggle="true"]'
|
|
22789
|
+
)) {
|
|
22790
|
+
return;
|
|
22791
|
+
}
|
|
22706
22792
|
if (event.button === 0 && !event.ctrlKey) {
|
|
22707
22793
|
event.preventDefault();
|
|
22708
22794
|
onSelect(option.value);
|
|
@@ -25814,7 +25900,7 @@ function ComposerTuttiModeChip({
|
|
|
25814
25900
|
className: cn(
|
|
25815
25901
|
AgentGUINode_styles_default.composerMenuTrigger,
|
|
25816
25902
|
"group w-auto !gap-1.5",
|
|
25817
|
-
updating ? "cursor-wait
|
|
25903
|
+
updating ? "cursor-wait" : "cursor-pointer"
|
|
25818
25904
|
),
|
|
25819
25905
|
children: [
|
|
25820
25906
|
/* @__PURE__ */ jsx37(
|
|
@@ -27222,7 +27308,7 @@ function AgentComposerView(input) {
|
|
|
27222
27308
|
onEditQueuedPrompt,
|
|
27223
27309
|
onPromptImagesUnsupported,
|
|
27224
27310
|
onRequestWorkspaceReferences,
|
|
27225
|
-
|
|
27311
|
+
referenceProvenanceFilters,
|
|
27226
27312
|
selectProjectDirectory,
|
|
27227
27313
|
onProjectPathChange = () => {
|
|
27228
27314
|
},
|
|
@@ -27558,10 +27644,10 @@ function AgentComposerView(input) {
|
|
|
27558
27644
|
onNavigateHierarchy: navigateFileMentionHierarchy,
|
|
27559
27645
|
onNavigateIntoItem: navigateIntoFileMentionItem,
|
|
27560
27646
|
onOpenReferences: onRequestWorkspaceReferences ? handleOpenReferencesForEntity : void 0,
|
|
27561
|
-
provenanceFilterControl:
|
|
27647
|
+
provenanceFilterControl: referenceProvenanceFilters ? /* @__PURE__ */ jsx43(
|
|
27562
27648
|
AgentReferenceProvenanceFilterControl,
|
|
27563
27649
|
{
|
|
27564
|
-
filter:
|
|
27650
|
+
filter: referenceProvenanceFilters.byFilter[input.mentionSearchState.filter]
|
|
27565
27651
|
}
|
|
27566
27652
|
) : void 0
|
|
27567
27653
|
}
|
|
@@ -27787,7 +27873,7 @@ function AgentComposerView(input) {
|
|
|
27787
27873
|
import { useEffect as useEffect26, useMemo as useMemo33, useRef as useRef39, useState as useState25 } from "react";
|
|
27788
27874
|
import { useRichTextMentionService } from "@tutti-os/ui-rich-text/editor";
|
|
27789
27875
|
var EMPTY_AGENT_CONTEXT_MENTION_PROVIDERS = [];
|
|
27790
|
-
function useAgentMentionSearchController(
|
|
27876
|
+
function useAgentMentionSearchController(referenceProvenanceFilters) {
|
|
27791
27877
|
const mentionService = useRichTextMentionService();
|
|
27792
27878
|
const contextMentionProviders = useMemo33(
|
|
27793
27879
|
() => mentionService?.listProviders().filter(isAgentContextMentionProvider) ?? EMPTY_AGENT_CONTEXT_MENTION_PROVIDERS,
|
|
@@ -27797,16 +27883,24 @@ function useAgentMentionSearchController(referenceProvenanceFilter) {
|
|
|
27797
27883
|
const mentionControllerRef = useRef39(
|
|
27798
27884
|
null
|
|
27799
27885
|
);
|
|
27886
|
+
const sessionProvenanceFilter = referenceProvenanceFilters?.byFilter.session.snapshot.value ?? null;
|
|
27887
|
+
const fileProvenanceFilter = referenceProvenanceFilters?.byFilter.file.snapshot.value ?? null;
|
|
27888
|
+
const issueProvenanceFilter = referenceProvenanceFilters?.byFilter.issue.snapshot.value ?? null;
|
|
27889
|
+
const agentProvenanceFilter = referenceProvenanceFilters?.byFilter.agent.snapshot.value ?? null;
|
|
27890
|
+
const appProvenanceFilter = referenceProvenanceFilters?.byFilter.app.snapshot.value ?? null;
|
|
27891
|
+
const provenanceCatalog = referenceProvenanceFilters?.byFilter.session.snapshot.catalog ?? null;
|
|
27800
27892
|
useEffect26(() => {
|
|
27801
27893
|
const controller = new AgentMentionSearchController({
|
|
27802
27894
|
contextMentionProviders
|
|
27803
27895
|
});
|
|
27804
|
-
controller.setProvenanceCatalog(
|
|
27805
|
-
|
|
27806
|
-
|
|
27807
|
-
|
|
27808
|
-
|
|
27809
|
-
|
|
27896
|
+
controller.setProvenanceCatalog(provenanceCatalog);
|
|
27897
|
+
controller.setProvenanceFilters({
|
|
27898
|
+
session: sessionProvenanceFilter,
|
|
27899
|
+
file: fileProvenanceFilter,
|
|
27900
|
+
issue: issueProvenanceFilter,
|
|
27901
|
+
agent: agentProvenanceFilter,
|
|
27902
|
+
app: appProvenanceFilter
|
|
27903
|
+
});
|
|
27810
27904
|
mentionControllerRef.current = controller;
|
|
27811
27905
|
const unsubscribe = controller.subscribe(setMentionSearchState);
|
|
27812
27906
|
return () => {
|
|
@@ -27816,15 +27910,21 @@ function useAgentMentionSearchController(referenceProvenanceFilter) {
|
|
|
27816
27910
|
};
|
|
27817
27911
|
}, [contextMentionProviders]);
|
|
27818
27912
|
useEffect26(() => {
|
|
27819
|
-
mentionControllerRef.current?.setProvenanceCatalog(
|
|
27820
|
-
|
|
27821
|
-
|
|
27822
|
-
|
|
27823
|
-
|
|
27824
|
-
|
|
27913
|
+
mentionControllerRef.current?.setProvenanceCatalog(provenanceCatalog);
|
|
27914
|
+
mentionControllerRef.current?.setProvenanceFilters({
|
|
27915
|
+
session: sessionProvenanceFilter,
|
|
27916
|
+
file: fileProvenanceFilter,
|
|
27917
|
+
issue: issueProvenanceFilter,
|
|
27918
|
+
agent: agentProvenanceFilter,
|
|
27919
|
+
app: appProvenanceFilter
|
|
27920
|
+
});
|
|
27825
27921
|
}, [
|
|
27826
|
-
|
|
27827
|
-
|
|
27922
|
+
provenanceCatalog,
|
|
27923
|
+
sessionProvenanceFilter,
|
|
27924
|
+
fileProvenanceFilter,
|
|
27925
|
+
issueProvenanceFilter,
|
|
27926
|
+
agentProvenanceFilter,
|
|
27927
|
+
appProvenanceFilter
|
|
27828
27928
|
]);
|
|
27829
27929
|
return { mentionControllerRef, mentionSearchState };
|
|
27830
27930
|
}
|
|
@@ -28334,7 +28434,7 @@ function AgentComposer(props) {
|
|
|
28334
28434
|
prepareExternalPromptFiles = null,
|
|
28335
28435
|
promptAssetLimit = null,
|
|
28336
28436
|
onRequestGitBranches = null,
|
|
28337
|
-
|
|
28437
|
+
referenceProvenanceFilters = null
|
|
28338
28438
|
} = props;
|
|
28339
28439
|
const draftPrompt = agentComposerDraftPrompt(draftContent);
|
|
28340
28440
|
const goalDraftObjective = canGoalControl ? goalDraftObjectiveFromPrompt(draftPrompt) : null;
|
|
@@ -28415,7 +28515,7 @@ function AgentComposer(props) {
|
|
|
28415
28515
|
});
|
|
28416
28516
|
draftByScopeKeyRef.current[draftScopeKey] = draftContent;
|
|
28417
28517
|
const promptTipRef = useRef42(null);
|
|
28418
|
-
const { mentionControllerRef, mentionSearchState } = useAgentMentionSearchController(
|
|
28518
|
+
const { mentionControllerRef, mentionSearchState } = useAgentMentionSearchController(referenceProvenanceFilters);
|
|
28419
28519
|
const editorHandleRef = useRef42(null);
|
|
28420
28520
|
const wasActiveRef = useRef42(isActive);
|
|
28421
28521
|
const lastComposerFocusRequestRef = useRef42(null);
|
|
@@ -33290,7 +33390,7 @@ import {
|
|
|
33290
33390
|
CreateChatIcon,
|
|
33291
33391
|
FolderIcon,
|
|
33292
33392
|
FolderOpenLinedIcon,
|
|
33293
|
-
MoreHorizontalIcon
|
|
33393
|
+
MoreHorizontalIcon as MoreHorizontalIcon2
|
|
33294
33394
|
} from "@tutti-os/ui-system/icons";
|
|
33295
33395
|
|
|
33296
33396
|
// agent-gui/agentGuiNode/view/agentGUIConversationRailSectionPresentationContext.tsx
|
|
@@ -33464,7 +33564,7 @@ var ProjectMenuButton = forwardRef5(
|
|
|
33464
33564
|
size: "sm",
|
|
33465
33565
|
title: "",
|
|
33466
33566
|
disabled: projectActionLocked || disabled,
|
|
33467
|
-
children: /* @__PURE__ */ jsx62(
|
|
33567
|
+
children: /* @__PURE__ */ jsx62(MoreHorizontalIcon2, { "aria-hidden": "true" })
|
|
33468
33568
|
}
|
|
33469
33569
|
);
|
|
33470
33570
|
}
|
|
@@ -33585,7 +33685,7 @@ function ConversationMenuTrigger({
|
|
|
33585
33685
|
"aria-label": accessibleName,
|
|
33586
33686
|
size: "sm",
|
|
33587
33687
|
title: "",
|
|
33588
|
-
children: /* @__PURE__ */ jsx62(
|
|
33688
|
+
children: /* @__PURE__ */ jsx62(MoreHorizontalIcon2, { "aria-hidden": "true" })
|
|
33589
33689
|
}
|
|
33590
33690
|
) }) }) }),
|
|
33591
33691
|
/* @__PURE__ */ jsx62(
|
|
@@ -38132,8 +38232,94 @@ function projectTuttiIntensityPreview(intensity) {
|
|
|
38132
38232
|
};
|
|
38133
38233
|
}
|
|
38134
38234
|
|
|
38235
|
+
// agent-gui/agentGuiNode/composer/TuttiIntensityStarStream.tsx
|
|
38236
|
+
import { jsx as jsx73 } from "react/jsx-runtime";
|
|
38237
|
+
var STAR_POOL_SIZE = 14;
|
|
38238
|
+
function buildStarSpecs() {
|
|
38239
|
+
let seed = 49734321;
|
|
38240
|
+
const next = () => {
|
|
38241
|
+
seed |= 0;
|
|
38242
|
+
seed = seed + 1831565813 | 0;
|
|
38243
|
+
let t = Math.imul(seed ^ seed >>> 15, 1 | seed);
|
|
38244
|
+
t = t + Math.imul(t ^ t >>> 7, 61 | t) ^ t;
|
|
38245
|
+
return ((t ^ t >>> 14) >>> 0) / 4294967296;
|
|
38246
|
+
};
|
|
38247
|
+
return Array.from({ length: STAR_POOL_SIZE }, (_, index) => ({
|
|
38248
|
+
size: 6 + Math.round(next() * 5),
|
|
38249
|
+
topOffset: Math.round((next() - 0.5) * 12),
|
|
38250
|
+
// Spread spawn phases evenly across the pool, then add jitter.
|
|
38251
|
+
delayRatio: (index + next() * 0.8) / STAR_POOL_SIZE,
|
|
38252
|
+
durationJitter: 0.8 + next() * 0.45,
|
|
38253
|
+
drift: Math.round((next() - 0.5) * 6)
|
|
38254
|
+
}));
|
|
38255
|
+
}
|
|
38256
|
+
var STAR_SPECS = buildStarSpecs();
|
|
38257
|
+
function activeStarCount(intensity) {
|
|
38258
|
+
if (intensity <= 0) {
|
|
38259
|
+
return 0;
|
|
38260
|
+
}
|
|
38261
|
+
return Math.min(
|
|
38262
|
+
STAR_POOL_SIZE,
|
|
38263
|
+
Math.max(1, Math.round(1 + intensity / 100 * (STAR_POOL_SIZE - 1)))
|
|
38264
|
+
);
|
|
38265
|
+
}
|
|
38266
|
+
function baseDurationSeconds(intensity) {
|
|
38267
|
+
const quantized = Math.round(intensity / 10) * 10;
|
|
38268
|
+
return 2.8 - quantized / 100 * 1.6;
|
|
38269
|
+
}
|
|
38270
|
+
function TuttiIntensityStarStream({
|
|
38271
|
+
intensity,
|
|
38272
|
+
tier
|
|
38273
|
+
}) {
|
|
38274
|
+
const activeCount = activeStarCount(intensity);
|
|
38275
|
+
const baseDuration = baseDurationSeconds(intensity);
|
|
38276
|
+
return /* @__PURE__ */ jsx73(
|
|
38277
|
+
"div",
|
|
38278
|
+
{
|
|
38279
|
+
"aria-hidden": "true",
|
|
38280
|
+
className: "agent-gui-intensity-star-stream",
|
|
38281
|
+
"data-agent-tutti-budget-star-stream": tier,
|
|
38282
|
+
style: {
|
|
38283
|
+
// The overlay matches the slider track box; the stream fills from
|
|
38284
|
+
// the track start up to just before the handle's left edge.
|
|
38285
|
+
"--agent-gui-star-stream-width": `calc(${intensity}% - 24px)`,
|
|
38286
|
+
// Stars and their glow are always white, regardless of tier.
|
|
38287
|
+
color: "var(--white-stationary)"
|
|
38288
|
+
},
|
|
38289
|
+
children: STAR_SPECS.map((spec, index) => {
|
|
38290
|
+
const duration = baseDuration * spec.durationJitter;
|
|
38291
|
+
return /* @__PURE__ */ jsx73(
|
|
38292
|
+
"svg",
|
|
38293
|
+
{
|
|
38294
|
+
className: "agent-gui-intensity-star-stream__star",
|
|
38295
|
+
style: {
|
|
38296
|
+
width: spec.size,
|
|
38297
|
+
height: spec.size,
|
|
38298
|
+
top: `calc(50% - ${spec.size / 2}px + ${spec.topOffset}px)`,
|
|
38299
|
+
visibility: index < activeCount ? "visible" : "hidden",
|
|
38300
|
+
"--agent-gui-star-duration": `${duration}s`,
|
|
38301
|
+
"--agent-gui-star-delay": `${-duration * spec.delayRatio}s`,
|
|
38302
|
+
"--agent-gui-star-drift": `${spec.drift}px`
|
|
38303
|
+
},
|
|
38304
|
+
viewBox: "0 0 24 24",
|
|
38305
|
+
fill: "none",
|
|
38306
|
+
children: /* @__PURE__ */ jsx73(
|
|
38307
|
+
"path",
|
|
38308
|
+
{
|
|
38309
|
+
d: "M11.2696 1.50911C11.5206 0.830794 12.4805 0.830794 12.7315 1.50911L13.876 4.60189C14.8231 7.16058 16.8406 9.17847 19.3994 10.1253L22.4922 11.2699C23.1693 11.5213 23.1695 12.4795 22.4922 12.7308L19.3994 13.8753C16.8403 14.8223 14.823 16.8406 13.876 19.3997L12.7315 22.4915C12.4804 23.1694 11.5209 23.1692 11.2696 22.4915L10.126 19.3997C9.17911 16.8408 7.16046 14.8224 4.60159 13.8753L1.50882 12.7308C0.831157 12.4796 0.831096 11.521 1.50882 11.2699L4.60159 10.1253C7.1605 9.17836 9.17903 7.16078 10.126 4.60189L11.2696 1.50911Z",
|
|
38310
|
+
fill: "currentColor"
|
|
38311
|
+
}
|
|
38312
|
+
)
|
|
38313
|
+
},
|
|
38314
|
+
index
|
|
38315
|
+
);
|
|
38316
|
+
})
|
|
38317
|
+
}
|
|
38318
|
+
);
|
|
38319
|
+
}
|
|
38320
|
+
|
|
38135
38321
|
// agent-gui/agentGuiNode/composer/TuttiBudgetPopover.tsx
|
|
38136
|
-
import { jsx as
|
|
38322
|
+
import { jsx as jsx74, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
38137
38323
|
var tierTone = {
|
|
38138
38324
|
cost: {
|
|
38139
38325
|
sliderHandleUrl: tutti_intensity_handle_cost_default,
|
|
@@ -38179,7 +38365,7 @@ function TuttiBudgetPopover({
|
|
|
38179
38365
|
setOpen(nextOpen);
|
|
38180
38366
|
},
|
|
38181
38367
|
children: [
|
|
38182
|
-
/* @__PURE__ */
|
|
38368
|
+
/* @__PURE__ */ jsx74(PopoverTrigger3, { asChild: true, children }),
|
|
38183
38369
|
/* @__PURE__ */ jsxs52(
|
|
38184
38370
|
PopoverContent4,
|
|
38185
38371
|
{
|
|
@@ -38191,7 +38377,7 @@ function TuttiBudgetPopover({
|
|
|
38191
38377
|
setOpen(false);
|
|
38192
38378
|
},
|
|
38193
38379
|
children: [
|
|
38194
|
-
/* @__PURE__ */
|
|
38380
|
+
/* @__PURE__ */ jsx74("div", { className: "text-[13px] font-semibold text-[var(--text-primary)]", children: labels.title }),
|
|
38195
38381
|
/* @__PURE__ */ jsxs52(
|
|
38196
38382
|
"div",
|
|
38197
38383
|
{
|
|
@@ -38199,8 +38385,8 @@ function TuttiBudgetPopover({
|
|
|
38199
38385
|
"data-agent-tutti-budget-preview": preview.tier,
|
|
38200
38386
|
children: [
|
|
38201
38387
|
/* @__PURE__ */ jsxs52("div", { className: "flex items-center justify-between gap-2 text-[12px] text-[var(--text-secondary)]", children: [
|
|
38202
|
-
/* @__PURE__ */
|
|
38203
|
-
/* @__PURE__ */
|
|
38388
|
+
/* @__PURE__ */ jsx74("span", { children: labels.intensityLabel }),
|
|
38389
|
+
/* @__PURE__ */ jsx74(
|
|
38204
38390
|
"span",
|
|
38205
38391
|
{
|
|
38206
38392
|
className: "text-[var(--text-primary)] tabular-nums",
|
|
@@ -38210,45 +38396,54 @@ function TuttiBudgetPopover({
|
|
|
38210
38396
|
)
|
|
38211
38397
|
] }),
|
|
38212
38398
|
/* @__PURE__ */ jsxs52("div", { className: "mt-3", children: [
|
|
38213
|
-
/* @__PURE__ */
|
|
38214
|
-
|
|
38215
|
-
|
|
38216
|
-
|
|
38217
|
-
|
|
38218
|
-
|
|
38219
|
-
"--tutti-intensity-handle-url": `url("${previewTone.sliderHandleUrl}")`
|
|
38220
|
-
},
|
|
38221
|
-
"data-agent-tutti-budget-intensity-slider": "true",
|
|
38222
|
-
"data-agent-tutti-budget-slider-tone": preview.tier,
|
|
38223
|
-
max: 100,
|
|
38224
|
-
min: 0,
|
|
38225
|
-
step: 1,
|
|
38226
|
-
value: [draftIntensity],
|
|
38227
|
-
onValueChange: (values) => {
|
|
38228
|
-
const next = values[0] ?? draftIntensity;
|
|
38229
|
-
setDraftIntensity(next);
|
|
38230
|
-
onChange(next);
|
|
38399
|
+
/* @__PURE__ */ jsxs52("div", { className: "relative", children: [
|
|
38400
|
+
/* @__PURE__ */ jsx74(
|
|
38401
|
+
TuttiIntensityStarStream,
|
|
38402
|
+
{
|
|
38403
|
+
intensity: draftIntensity,
|
|
38404
|
+
tier: preview.tier
|
|
38231
38405
|
}
|
|
38232
|
-
|
|
38233
|
-
|
|
38406
|
+
),
|
|
38407
|
+
/* @__PURE__ */ jsx74(
|
|
38408
|
+
Slider,
|
|
38409
|
+
{
|
|
38410
|
+
"aria-label": labels.intensityLabel,
|
|
38411
|
+
className: `-mx-1 w-[calc(100%_+_8px)] [&_[data-slot=slider-range]]:bg-transparent [&_[data-slot=slider-track]]:mx-1 [&_[data-slot=slider-track]]:h-5 [&_[data-slot=slider-track]]:bg-[linear-gradient(90deg,var(--state-success)_0%,var(--accent-codex)_50%,var(--tutti-purple)_100%)] [&_[data-slot=slider-thumb]]:size-10 [&_[data-slot=slider-thumb]]:border-transparent [&_[data-slot=slider-thumb]]:bg-transparent [&_[data-slot=slider-thumb]]:bg-[image:var(--tutti-intensity-handle-url)] [&_[data-slot=slider-thumb]]:bg-contain [&_[data-slot=slider-thumb]]:bg-center [&_[data-slot=slider-thumb]]:bg-no-repeat [&_[data-slot=slider-thumb]]:shadow-none [&_[data-slot=slider-thumb]]:hover:ring-0 [&_[data-slot=slider-thumb]]:focus-visible:ring-0 [&_[data-slot=slider-thumb]]:-translate-y-1 [&_[data-slot=slider-thumb]]:cursor-grab [&_[data-slot=slider-thumb]]:active:cursor-grabbing [&_[data-slot=slider-thumb]]:z-[2]`,
|
|
38412
|
+
style: {
|
|
38413
|
+
"--tutti-intensity-handle-url": `url("${previewTone.sliderHandleUrl}")`
|
|
38414
|
+
},
|
|
38415
|
+
"data-agent-tutti-budget-intensity-slider": "true",
|
|
38416
|
+
"data-agent-tutti-budget-slider-tone": preview.tier,
|
|
38417
|
+
max: 100,
|
|
38418
|
+
min: 0,
|
|
38419
|
+
step: 1,
|
|
38420
|
+
value: [draftIntensity],
|
|
38421
|
+
onValueChange: (values) => {
|
|
38422
|
+
const next = values[0] ?? draftIntensity;
|
|
38423
|
+
setDraftIntensity(next);
|
|
38424
|
+
onChange(next);
|
|
38425
|
+
}
|
|
38426
|
+
}
|
|
38427
|
+
)
|
|
38428
|
+
] }),
|
|
38234
38429
|
/* @__PURE__ */ jsxs52("div", { className: "mt-3 flex items-center justify-between gap-2 text-[11px] font-medium", children: [
|
|
38235
|
-
/* @__PURE__ */
|
|
38236
|
-
/* @__PURE__ */
|
|
38237
|
-
/* @__PURE__ */
|
|
38430
|
+
/* @__PURE__ */ jsx74("span", { className: "text-[var(--state-success)]", children: labels.previewCost }),
|
|
38431
|
+
/* @__PURE__ */ jsx74("span", { className: "text-[var(--accent-codex)]", children: labels.previewBalance }),
|
|
38432
|
+
/* @__PURE__ */ jsx74("span", { className: "text-[var(--tutti-purple)]", children: labels.previewPowerful })
|
|
38238
38433
|
] })
|
|
38239
38434
|
] }),
|
|
38240
|
-
/* @__PURE__ */
|
|
38435
|
+
/* @__PURE__ */ jsx74(
|
|
38241
38436
|
"div",
|
|
38242
38437
|
{
|
|
38243
38438
|
"aria-live": "polite",
|
|
38244
38439
|
className: "mt-2 border-t border-[var(--line-2)] pt-2",
|
|
38245
|
-
children: /* @__PURE__ */
|
|
38440
|
+
children: /* @__PURE__ */ jsx74("span", { className: "text-[12px] font-medium text-[var(--text-secondary)]", children: labels.previewTitle })
|
|
38246
38441
|
}
|
|
38247
38442
|
),
|
|
38248
38443
|
/* @__PURE__ */ jsxs52("div", { className: "mt-2 grid grid-cols-2 gap-2 text-[11px]", children: [
|
|
38249
38444
|
/* @__PURE__ */ jsxs52("div", { className: "min-w-0", children: [
|
|
38250
|
-
/* @__PURE__ */
|
|
38251
|
-
/* @__PURE__ */
|
|
38445
|
+
/* @__PURE__ */ jsx74("div", { className: "text-[var(--text-tertiary)]", children: labels.modelStrengthLabel }),
|
|
38446
|
+
/* @__PURE__ */ jsx74(
|
|
38252
38447
|
"div",
|
|
38253
38448
|
{
|
|
38254
38449
|
className: `truncate text-[13px] font-medium ${previewTone.valueClassName}`,
|
|
@@ -38258,8 +38453,8 @@ function TuttiBudgetPopover({
|
|
|
38258
38453
|
)
|
|
38259
38454
|
] }),
|
|
38260
38455
|
/* @__PURE__ */ jsxs52("div", { className: "min-w-0", children: [
|
|
38261
|
-
/* @__PURE__ */
|
|
38262
|
-
/* @__PURE__ */
|
|
38456
|
+
/* @__PURE__ */ jsx74("div", { className: "text-[var(--text-tertiary)]", children: labels.agentCountLabel }),
|
|
38457
|
+
/* @__PURE__ */ jsx74(
|
|
38263
38458
|
"div",
|
|
38264
38459
|
{
|
|
38265
38460
|
className: "truncate text-[13px] font-medium text-[var(--text-primary)]",
|
|
@@ -38269,7 +38464,7 @@ function TuttiBudgetPopover({
|
|
|
38269
38464
|
)
|
|
38270
38465
|
] })
|
|
38271
38466
|
] }),
|
|
38272
|
-
/* @__PURE__ */
|
|
38467
|
+
/* @__PURE__ */ jsx74("p", { className: "mt-2 mb-0 text-[11px] leading-[1.35] text-[var(--text-tertiary)]", children: labels.previewHint })
|
|
38273
38468
|
]
|
|
38274
38469
|
}
|
|
38275
38470
|
)
|
|
@@ -38282,7 +38477,7 @@ function TuttiBudgetPopover({
|
|
|
38282
38477
|
}
|
|
38283
38478
|
|
|
38284
38479
|
// agent-gui/agentGuiNode/TuttiWorkflowDock.tsx
|
|
38285
|
-
import { Fragment as Fragment22, jsx as
|
|
38480
|
+
import { Fragment as Fragment22, jsx as jsx75, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
38286
38481
|
function countIssueTasks(issue, status) {
|
|
38287
38482
|
return issue.tasks.filter((task) => task.status === status).length;
|
|
38288
38483
|
}
|
|
@@ -38344,15 +38539,10 @@ function TuttiWorkflowDock({
|
|
|
38344
38539
|
};
|
|
38345
38540
|
const title = review !== null ? labels.reviewTitle : phase.kind === "materializing" ? labels.materializingTitle : execution !== null ? execution.issue.title : labels.errorTitle;
|
|
38346
38541
|
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 ?? "";
|
|
38347
|
-
const icon = review !== null ? /* @__PURE__ */
|
|
38542
|
+
const icon = review !== null ? /* @__PURE__ */ jsx75(TaskIcon, { "aria-hidden": true, className: "size-3.5" }) : phase.kind === "materializing" ? /* @__PURE__ */ jsx75(LoaderCircle, { "aria-hidden": true, className: "size-3.5 animate-spin" }) : execution !== null ? countIssueTasks(execution.issue, "running") > 0 ? /* @__PURE__ */ jsx75(LoaderCircle, { "aria-hidden": true, className: "size-3.5 animate-spin" }) : /* @__PURE__ */ jsx75(ListChecks4, { "aria-hidden": true, className: "size-3.5" }) : /* @__PURE__ */ jsx75(AlertTriangle, { "aria-hidden": true, className: "size-3.5" });
|
|
38348
38543
|
const reviewTier = reviewDisplayIntensity !== null ? projectTuttiIntensityPreview(reviewDisplayIntensity).tier : null;
|
|
38349
|
-
const reviewTierLabel = reviewTier !== null ? {
|
|
38350
|
-
cost: intensityPopoverLabels.previewCost,
|
|
38351
|
-
balance: intensityPopoverLabels.previewBalance,
|
|
38352
|
-
powerful: intensityPopoverLabels.previewPowerful
|
|
38353
|
-
}[reviewTier] : null;
|
|
38354
38544
|
const actions = review !== null ? /* @__PURE__ */ jsxs53(Fragment22, { children: [
|
|
38355
|
-
/* @__PURE__ */
|
|
38545
|
+
/* @__PURE__ */ jsx75(
|
|
38356
38546
|
TuttiBudgetPopover,
|
|
38357
38547
|
{
|
|
38358
38548
|
intensity: reviewDisplayIntensity ?? review.intensity,
|
|
@@ -38369,21 +38559,32 @@ function TuttiWorkflowDock({
|
|
|
38369
38559
|
"data-testid": "agent-gui-tutti-workflow-intensity",
|
|
38370
38560
|
className: cn(
|
|
38371
38561
|
"flex items-center gap-1 rounded-md px-1.5 py-0.5 transition-colors",
|
|
38372
|
-
"hover:bg-[var(--transparency-hover)]",
|
|
38373
38562
|
"data-[state=open]:bg-[color-mix(in_srgb,var(--tutti-purple)_12%,transparent)] data-[state=open]:text-[var(--tutti-purple)]"
|
|
38374
38563
|
),
|
|
38375
38564
|
children: [
|
|
38376
|
-
/* @__PURE__ */
|
|
38565
|
+
/* @__PURE__ */ jsx75(Gauge2, { "aria-hidden": true, className: "size-3.5" }),
|
|
38377
38566
|
/* @__PURE__ */ jsxs53("span", { className: "flex items-center gap-0.5", children: [
|
|
38378
|
-
|
|
38379
|
-
|
|
38567
|
+
/* @__PURE__ */ jsx75("span", { className: "grid text-[11px]", children: [
|
|
38568
|
+
["cost", intensityPopoverLabels.previewCost],
|
|
38569
|
+
["balance", intensityPopoverLabels.previewBalance],
|
|
38570
|
+
["powerful", intensityPopoverLabels.previewPowerful]
|
|
38571
|
+
].map(([tier, label]) => /* @__PURE__ */ jsx75(
|
|
38572
|
+
"span",
|
|
38573
|
+
{
|
|
38574
|
+
"aria-hidden": tier !== reviewTier,
|
|
38575
|
+
className: tier === reviewTier ? "[grid-area:1/1]" : "invisible [grid-area:1/1]",
|
|
38576
|
+
children: label
|
|
38577
|
+
},
|
|
38578
|
+
tier
|
|
38579
|
+
)) }),
|
|
38580
|
+
/* @__PURE__ */ jsx75("span", { className: "inline-block w-[3ch] text-left text-[11px] tabular-nums", children: reviewDisplayIntensity ?? review.intensity })
|
|
38380
38581
|
] })
|
|
38381
38582
|
]
|
|
38382
38583
|
}
|
|
38383
38584
|
)
|
|
38384
38585
|
}
|
|
38385
38586
|
),
|
|
38386
|
-
/* @__PURE__ */
|
|
38587
|
+
/* @__PURE__ */ jsx75(
|
|
38387
38588
|
"button",
|
|
38388
38589
|
{
|
|
38389
38590
|
type: "button",
|
|
@@ -38393,7 +38594,7 @@ function TuttiWorkflowDock({
|
|
|
38393
38594
|
"aria-label": labels.cancel,
|
|
38394
38595
|
"data-testid": "agent-gui-tutti-workflow-cancel",
|
|
38395
38596
|
className: "flex size-5 items-center justify-center rounded-md transition-colors hover:bg-[var(--transparency-hover)]",
|
|
38396
|
-
children: /* @__PURE__ */
|
|
38597
|
+
children: /* @__PURE__ */ jsx75(X6, { "aria-hidden": true, className: "size-3.5" })
|
|
38397
38598
|
}
|
|
38398
38599
|
)
|
|
38399
38600
|
] }) : phase.kind === "error" && phase.retryable ? /* @__PURE__ */ jsxs53(
|
|
@@ -38405,12 +38606,12 @@ function TuttiWorkflowDock({
|
|
|
38405
38606
|
"aria-label": labels.retry,
|
|
38406
38607
|
"data-testid": "agent-gui-tutti-workflow-retry",
|
|
38407
38608
|
children: [
|
|
38408
|
-
/* @__PURE__ */
|
|
38609
|
+
/* @__PURE__ */ jsx75(RotateCcw, { "aria-hidden": true, className: "size-3.5" }),
|
|
38409
38610
|
labels.retry
|
|
38410
38611
|
]
|
|
38411
38612
|
}
|
|
38412
38613
|
) : null;
|
|
38413
|
-
return /* @__PURE__ */
|
|
38614
|
+
return /* @__PURE__ */ jsx75(
|
|
38414
38615
|
AgentComposerDisclosureCard,
|
|
38415
38616
|
{
|
|
38416
38617
|
actions,
|
|
@@ -38423,7 +38624,7 @@ function TuttiWorkflowDock({
|
|
|
38423
38624
|
summary,
|
|
38424
38625
|
testId: "agent-gui-tutti-workflow-dock",
|
|
38425
38626
|
title,
|
|
38426
|
-
children: review !== null ? /* @__PURE__ */
|
|
38627
|
+
children: review !== null ? /* @__PURE__ */ jsx75(
|
|
38427
38628
|
TuttiModePlanPanel,
|
|
38428
38629
|
{
|
|
38429
38630
|
assignmentCatalog,
|
|
@@ -38440,17 +38641,17 @@ function TuttiWorkflowDock({
|
|
|
38440
38641
|
className: "grid min-h-28 place-items-center gap-2 text-center text-sm text-muted-foreground",
|
|
38441
38642
|
role: "status",
|
|
38442
38643
|
children: [
|
|
38443
|
-
/* @__PURE__ */
|
|
38644
|
+
/* @__PURE__ */ jsx75(
|
|
38444
38645
|
LoaderCircle,
|
|
38445
38646
|
{
|
|
38446
38647
|
"aria-hidden": true,
|
|
38447
38648
|
className: "size-5 animate-spin text-[var(--tutti-purple)]"
|
|
38448
38649
|
}
|
|
38449
38650
|
),
|
|
38450
|
-
/* @__PURE__ */
|
|
38651
|
+
/* @__PURE__ */ jsx75("span", { children: labels.materializingHint })
|
|
38451
38652
|
]
|
|
38452
38653
|
}
|
|
38453
|
-
) : execution !== null ? /* @__PURE__ */
|
|
38654
|
+
) : execution !== null ? /* @__PURE__ */ jsx75(
|
|
38454
38655
|
TuttiPlanIssuePanel,
|
|
38455
38656
|
{
|
|
38456
38657
|
embedded: true,
|
|
@@ -38461,7 +38662,7 @@ function TuttiWorkflowDock({
|
|
|
38461
38662
|
onOpenIssue,
|
|
38462
38663
|
onOpenTask
|
|
38463
38664
|
}
|
|
38464
|
-
) : /* @__PURE__ */
|
|
38665
|
+
) : /* @__PURE__ */ jsx75(
|
|
38465
38666
|
"div",
|
|
38466
38667
|
{
|
|
38467
38668
|
className: "rounded-md border border-[color-mix(in_srgb,var(--state-danger)_45%,transparent)] px-4 py-3 text-sm text-muted-foreground",
|
|
@@ -38474,7 +38675,7 @@ function TuttiWorkflowDock({
|
|
|
38474
38675
|
}
|
|
38475
38676
|
|
|
38476
38677
|
// agent-gui/agentGuiNode/view/AgentGUIBottomDockPane.tsx
|
|
38477
|
-
import { Fragment as Fragment23, jsx as
|
|
38678
|
+
import { Fragment as Fragment23, jsx as jsx76, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
38478
38679
|
var AgentGUIBottomDockPane = memo9(function AgentGUIBottomDockPane2({
|
|
38479
38680
|
bottomDockRef,
|
|
38480
38681
|
showScrollToBottom,
|
|
@@ -38513,11 +38714,11 @@ var AgentGUIBottomDockPane = memo9(function AgentGUIBottomDockPane2({
|
|
|
38513
38714
|
const goalIsOptimistic = sessionChrome.rawState?.goalIsOptimistic === true;
|
|
38514
38715
|
const showGoalBanner = isGoalBannerVisible(goalObjective, goalStatus);
|
|
38515
38716
|
const workflowPhase = tuttiWorkflowDock.phase;
|
|
38516
|
-
return /* @__PURE__ */
|
|
38717
|
+
return /* @__PURE__ */ jsx76(
|
|
38517
38718
|
AgentComposerRegion,
|
|
38518
38719
|
{
|
|
38519
38720
|
regionRef: bottomDockRef,
|
|
38520
|
-
floating: showScrollToBottom ? /* @__PURE__ */
|
|
38721
|
+
floating: showScrollToBottom ? /* @__PURE__ */ jsx76(
|
|
38521
38722
|
"button",
|
|
38522
38723
|
{
|
|
38523
38724
|
type: "button",
|
|
@@ -38530,15 +38731,15 @@ var AgentGUIBottomDockPane = memo9(function AgentGUIBottomDockPane2({
|
|
|
38530
38731
|
title: scrollToBottomLabel,
|
|
38531
38732
|
onPointerDown: (event) => event.stopPropagation(),
|
|
38532
38733
|
onClick: onScrollToBottom,
|
|
38533
|
-
children: /* @__PURE__ */
|
|
38734
|
+
children: /* @__PURE__ */ jsx76(ChevronsDown, { "aria-hidden": "true", size: 15, strokeWidth: 2.2 })
|
|
38534
38735
|
}
|
|
38535
38736
|
) : null,
|
|
38536
|
-
lifted: bottomDockLiftedPrompt ? /* @__PURE__ */
|
|
38737
|
+
lifted: bottomDockLiftedPrompt ? /* @__PURE__ */ jsx76(
|
|
38537
38738
|
"div",
|
|
38538
38739
|
{
|
|
38539
38740
|
className: AgentGUINode_styles_default.bottomDockPrompt,
|
|
38540
38741
|
"data-testid": "agent-gui-bottom-dock-active-prompt",
|
|
38541
|
-
children: /* @__PURE__ */
|
|
38742
|
+
children: /* @__PURE__ */ jsx76(
|
|
38542
38743
|
AgentInteractivePromptSurface,
|
|
38543
38744
|
{
|
|
38544
38745
|
prompt: bottomDockLiftedPrompt,
|
|
@@ -38553,7 +38754,7 @@ var AgentGUIBottomDockPane = memo9(function AgentGUIBottomDockPane2({
|
|
|
38553
38754
|
}
|
|
38554
38755
|
) : null,
|
|
38555
38756
|
accessories: /* @__PURE__ */ jsxs54(Fragment23, { children: [
|
|
38556
|
-
inlineNoticeChrome ? /* @__PURE__ */
|
|
38757
|
+
inlineNoticeChrome ? /* @__PURE__ */ jsx76(
|
|
38557
38758
|
AgentSessionChrome,
|
|
38558
38759
|
{
|
|
38559
38760
|
chrome: inlineNoticeChrome,
|
|
@@ -38565,7 +38766,7 @@ var AgentGUIBottomDockPane = memo9(function AgentGUIBottomDockPane2({
|
|
|
38565
38766
|
labels: chromeLabels
|
|
38566
38767
|
}
|
|
38567
38768
|
) : null,
|
|
38568
|
-
/* @__PURE__ */
|
|
38769
|
+
/* @__PURE__ */ jsx76(
|
|
38569
38770
|
AgentSessionChrome,
|
|
38570
38771
|
{
|
|
38571
38772
|
chrome: sessionChrome,
|
|
@@ -38577,7 +38778,7 @@ var AgentGUIBottomDockPane = memo9(function AgentGUIBottomDockPane2({
|
|
|
38577
38778
|
labels: chromeLabels
|
|
38578
38779
|
}
|
|
38579
38780
|
),
|
|
38580
|
-
showGoalBanner ? /* @__PURE__ */
|
|
38781
|
+
showGoalBanner ? /* @__PURE__ */ jsx76(
|
|
38581
38782
|
AgentGoalBanner,
|
|
38582
38783
|
{
|
|
38583
38784
|
objective: goalObjective,
|
|
@@ -38592,7 +38793,7 @@ var AgentGUIBottomDockPane = memo9(function AgentGUIBottomDockPane2({
|
|
|
38592
38793
|
onClearGoal: () => onGoalControl("clear")
|
|
38593
38794
|
}
|
|
38594
38795
|
) : null,
|
|
38595
|
-
workflowPhase ? /* @__PURE__ */
|
|
38796
|
+
workflowPhase ? /* @__PURE__ */ jsx76(
|
|
38596
38797
|
TuttiWorkflowDock,
|
|
38597
38798
|
{
|
|
38598
38799
|
assignmentCatalog: tuttiWorkflowDock.assignmentCatalog,
|
|
@@ -38629,12 +38830,12 @@ var AgentGUIBottomDockPane = memo9(function AgentGUIBottomDockPane2({
|
|
|
38629
38830
|
}
|
|
38630
38831
|
) : null
|
|
38631
38832
|
] }),
|
|
38632
|
-
primary: bottomDockReplacementPrompt ? /* @__PURE__ */
|
|
38833
|
+
primary: bottomDockReplacementPrompt ? /* @__PURE__ */ jsx76(
|
|
38633
38834
|
"div",
|
|
38634
38835
|
{
|
|
38635
38836
|
className: AgentGUINode_styles_default.bottomDockPrompt,
|
|
38636
38837
|
"data-testid": "agent-gui-bottom-dock-active-prompt",
|
|
38637
|
-
children: /* @__PURE__ */
|
|
38838
|
+
children: /* @__PURE__ */ jsx76(
|
|
38638
38839
|
AgentInteractivePromptSurface,
|
|
38639
38840
|
{
|
|
38640
38841
|
prompt: bottomDockReplacementPrompt,
|
|
@@ -38647,7 +38848,7 @@ var AgentGUIBottomDockPane = memo9(function AgentGUIBottomDockPane2({
|
|
|
38647
38848
|
}
|
|
38648
38849
|
)
|
|
38649
38850
|
}
|
|
38650
|
-
) : /* @__PURE__ */
|
|
38851
|
+
) : /* @__PURE__ */ jsx76(AgentComposer, { ...composerProps })
|
|
38651
38852
|
}
|
|
38652
38853
|
);
|
|
38653
38854
|
});
|
|
@@ -38660,14 +38861,14 @@ import {
|
|
|
38660
38861
|
ToastTitle,
|
|
38661
38862
|
ToastViewport
|
|
38662
38863
|
} from "@tutti-os/ui-system";
|
|
38663
|
-
import { jsx as
|
|
38864
|
+
import { jsx as jsx77, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
38664
38865
|
function AgentGUIContentToast({
|
|
38665
38866
|
insetTopPx,
|
|
38666
38867
|
message
|
|
38667
38868
|
}) {
|
|
38668
38869
|
const [open, setOpen] = useState44(true);
|
|
38669
38870
|
return /* @__PURE__ */ jsxs55(ToastProvider, { children: [
|
|
38670
|
-
/* @__PURE__ */
|
|
38871
|
+
/* @__PURE__ */ jsx77(
|
|
38671
38872
|
ToastRoot,
|
|
38672
38873
|
{
|
|
38673
38874
|
open,
|
|
@@ -38675,10 +38876,10 @@ function AgentGUIContentToast({
|
|
|
38675
38876
|
"data-testid": "agent-gui-content-toast",
|
|
38676
38877
|
variant: "default",
|
|
38677
38878
|
onOpenChange: setOpen,
|
|
38678
|
-
children: /* @__PURE__ */
|
|
38879
|
+
children: /* @__PURE__ */ jsx77(ToastTitle, { children: message })
|
|
38679
38880
|
}
|
|
38680
38881
|
),
|
|
38681
|
-
/* @__PURE__ */
|
|
38882
|
+
/* @__PURE__ */ jsx77(
|
|
38682
38883
|
ToastViewport,
|
|
38683
38884
|
{
|
|
38684
38885
|
className: "nodrag tsh-desktop-no-drag absolute left-0 w-full translate-x-0 px-4 [-webkit-app-region:no-drag]",
|
|
@@ -38697,7 +38898,7 @@ import { ScrollArea as ScrollArea3 } from "@tutti-os/ui-system/components";
|
|
|
38697
38898
|
|
|
38698
38899
|
// agent-gui/agentGuiNode/view/AgentGUIConversationTimelinePane.tsx
|
|
38699
38900
|
import { memo as memo10 } from "react";
|
|
38700
|
-
import { Fragment as Fragment24, jsx as
|
|
38901
|
+
import { Fragment as Fragment24, jsx as jsx78, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
38701
38902
|
var EMPTY_WORKSPACE_APP_ICONS3 = [];
|
|
38702
38903
|
var AgentGUIConversationTimelinePane = memo10(
|
|
38703
38904
|
function AgentGUIConversationTimelinePane2({
|
|
@@ -38717,16 +38918,16 @@ var AgentGUIConversationTimelinePane = memo10(
|
|
|
38717
38918
|
}) {
|
|
38718
38919
|
"use memo";
|
|
38719
38920
|
return /* @__PURE__ */ jsxs56(Fragment24, { children: [
|
|
38720
|
-
isLoadingOlderMessages && !isLoading ? /* @__PURE__ */
|
|
38921
|
+
isLoadingOlderMessages && !isLoading ? /* @__PURE__ */ jsx78(
|
|
38721
38922
|
"div",
|
|
38722
38923
|
{
|
|
38723
38924
|
className: "mx-auto flex h-8 items-center justify-center text-[12px] text-[var(--text-secondary)]",
|
|
38724
38925
|
"data-testid": "agent-gui-older-messages-loading",
|
|
38725
38926
|
role: "status",
|
|
38726
|
-
children: /* @__PURE__ */
|
|
38927
|
+
children: /* @__PURE__ */ jsx78("span", { className: "tsh-inline-loading-ellipsis", children: loadingLabel })
|
|
38727
38928
|
}
|
|
38728
38929
|
) : null,
|
|
38729
|
-
/* @__PURE__ */
|
|
38930
|
+
/* @__PURE__ */ jsx78(
|
|
38730
38931
|
AgentConversationFlow,
|
|
38731
38932
|
{
|
|
38732
38933
|
conversation,
|
|
@@ -38762,7 +38963,7 @@ function setTimelineScrollTopWithUserTransition(element, top) {
|
|
|
38762
38963
|
}
|
|
38763
38964
|
|
|
38764
38965
|
// agent-gui/agentGuiNode/view/AgentGUIDetailTimeline.tsx
|
|
38765
|
-
import { jsx as
|
|
38966
|
+
import { jsx as jsx79 } from "react/jsx-runtime";
|
|
38766
38967
|
var TIMELINE_CONTENT_STYLE = {
|
|
38767
38968
|
width: "100%",
|
|
38768
38969
|
minWidth: "100%",
|
|
@@ -38789,7 +38990,7 @@ var AgentGUIDetailTimeline = memo11(function AgentGUIDetailTimeline2({
|
|
|
38789
38990
|
workspaceAppIcons
|
|
38790
38991
|
}) {
|
|
38791
38992
|
"use memo";
|
|
38792
|
-
return /* @__PURE__ */
|
|
38993
|
+
return /* @__PURE__ */ jsx79(
|
|
38793
38994
|
ScrollArea3,
|
|
38794
38995
|
{
|
|
38795
38996
|
scrollbarMode: "native",
|
|
@@ -38799,7 +39000,7 @@ var AgentGUIDetailTimeline = memo11(function AgentGUIDetailTimeline2({
|
|
|
38799
39000
|
viewportTestId: "agent-gui-timeline",
|
|
38800
39001
|
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(),
|
|
38801
39002
|
viewportContentStyle: TIMELINE_CONTENT_STYLE,
|
|
38802
|
-
children: hasActiveConversation ? /* @__PURE__ */
|
|
39003
|
+
children: hasActiveConversation ? /* @__PURE__ */ jsx79(
|
|
38803
39004
|
AgentGUIConversationTimelinePane,
|
|
38804
39005
|
{
|
|
38805
39006
|
conversation,
|
|
@@ -39295,10 +39496,10 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39295
39496
|
import { useMemo as useMemo43 } from "react";
|
|
39296
39497
|
|
|
39297
39498
|
// app/renderer/components/icons/UnavailableChatIcon.tsx
|
|
39298
|
-
import { jsx as
|
|
39499
|
+
import { jsx as jsx80 } from "react/jsx-runtime";
|
|
39299
39500
|
function UnavailableChatIcon(props) {
|
|
39300
39501
|
"use memo";
|
|
39301
|
-
return /* @__PURE__ */
|
|
39502
|
+
return /* @__PURE__ */ jsx80(
|
|
39302
39503
|
"svg",
|
|
39303
39504
|
{
|
|
39304
39505
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -39306,7 +39507,7 @@ function UnavailableChatIcon(props) {
|
|
|
39306
39507
|
fill: "currentColor",
|
|
39307
39508
|
"aria-hidden": true,
|
|
39308
39509
|
...props,
|
|
39309
|
-
children: /* @__PURE__ */
|
|
39510
|
+
children: /* @__PURE__ */ jsx80("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" })
|
|
39310
39511
|
}
|
|
39311
39512
|
);
|
|
39312
39513
|
}
|
|
@@ -39352,7 +39553,7 @@ function useAgentGUITimelineTransition(input) {
|
|
|
39352
39553
|
}
|
|
39353
39554
|
|
|
39354
39555
|
// agent-gui/agentGuiNode/view/useAgentGUIDetailModel.tsx
|
|
39355
|
-
import { Fragment as Fragment25, jsx as
|
|
39556
|
+
import { Fragment as Fragment25, jsx as jsx81, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
39356
39557
|
function resolveTuttiModeUpdateInlineNotice(input) {
|
|
39357
39558
|
if (input.status !== "failed" && input.status !== "uncertain") return null;
|
|
39358
39559
|
const localizedMessage = input.status === "failed" ? input.failedMessage : input.uncertainMessage;
|
|
@@ -39556,11 +39757,11 @@ function useAgentGUIDetailModel(input) {
|
|
|
39556
39757
|
className: AgentGUINode_styles_default.unavailableChatEmpty,
|
|
39557
39758
|
"data-testid": "agent-gui-unavailable-chat-empty",
|
|
39558
39759
|
children: [
|
|
39559
|
-
/* @__PURE__ */
|
|
39560
|
-
/* @__PURE__ */
|
|
39760
|
+
/* @__PURE__ */ jsx81(UnavailableChatIcon, { className: AgentGUINode_styles_default.unavailableChatEmptyIcon }),
|
|
39761
|
+
/* @__PURE__ */ jsx81("span", { className: AgentGUINode_styles_default.unavailableChatEmptyText, children: labels.conversationUnavailable })
|
|
39561
39762
|
]
|
|
39562
39763
|
}
|
|
39563
|
-
) : /* @__PURE__ */
|
|
39764
|
+
) : /* @__PURE__ */ jsx81(Fragment25, {}),
|
|
39564
39765
|
[labels.conversationUnavailable, showUnavailableChatEmpty]
|
|
39565
39766
|
);
|
|
39566
39767
|
const chromeLabels = useMemo43(
|
|
@@ -39770,6 +39971,7 @@ function useAgentGUIDetailModel(input) {
|
|
|
39770
39971
|
slashStatusContext: labels.slashStatusContext,
|
|
39771
39972
|
slashStatusLimits: labels.slashStatusLimits,
|
|
39772
39973
|
slashStatusAccount: labels.slashStatusAccount,
|
|
39974
|
+
slashStatusProviderAccount: labels.slashStatusProviderAccount,
|
|
39773
39975
|
slashStatusClose: labels.slashStatusClose,
|
|
39774
39976
|
slashStatusContextValue: labels.slashStatusContextValue,
|
|
39775
39977
|
slashStatusContextUnavailable: labels.slashStatusContextUnavailable,
|
|
@@ -40226,7 +40428,7 @@ function useAgentGUITuttiWorkflow(input) {
|
|
|
40226
40428
|
}
|
|
40227
40429
|
|
|
40228
40430
|
// agent-gui/agentGuiNode/view/AgentGUIDetailPane.tsx
|
|
40229
|
-
import { Fragment as Fragment26, jsx as
|
|
40431
|
+
import { Fragment as Fragment26, jsx as jsx82, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
40230
40432
|
var EMPTY_WORKSPACE_APP_ICONS4 = [];
|
|
40231
40433
|
var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
40232
40434
|
shell,
|
|
@@ -40237,7 +40439,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
40237
40439
|
readiness,
|
|
40238
40440
|
operations,
|
|
40239
40441
|
homeTargetProjection,
|
|
40240
|
-
|
|
40442
|
+
referenceProvenanceFilters = null,
|
|
40241
40443
|
composerEngagement,
|
|
40242
40444
|
actions,
|
|
40243
40445
|
labels,
|
|
@@ -40525,7 +40727,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
40525
40727
|
showStopButton,
|
|
40526
40728
|
stopDisabled: stopDisabled || timelineInteractionLocked,
|
|
40527
40729
|
workspaceReferencePickerOpen,
|
|
40528
|
-
|
|
40730
|
+
referenceProvenanceFilters,
|
|
40529
40731
|
// Plan decisions replace the composer; approval / ask-user embed here.
|
|
40530
40732
|
activePrompt: composerActivePrompt,
|
|
40531
40733
|
activePromptKeyboardShortcutsEnabled: isActive,
|
|
@@ -40666,7 +40868,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
40666
40868
|
viewModel.detail.usage,
|
|
40667
40869
|
viewModel.shell.workspaceId,
|
|
40668
40870
|
viewModel.shell.workspacePath,
|
|
40669
|
-
|
|
40871
|
+
referenceProvenanceFilters,
|
|
40670
40872
|
workspaceUserProjectI18n,
|
|
40671
40873
|
workspaceAppIcons,
|
|
40672
40874
|
selectHomeComposerAgentTargetAndFocus
|
|
@@ -40715,7 +40917,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
40715
40917
|
timelineScrollAnchorRef,
|
|
40716
40918
|
viewModel
|
|
40717
40919
|
});
|
|
40718
|
-
const homeContent = !hasActiveConversation ? shouldRenderProviderUnavailableState && disabledProviderTarget ? /* @__PURE__ */
|
|
40920
|
+
const homeContent = !hasActiveConversation ? shouldRenderProviderUnavailableState && disabledProviderTarget ? /* @__PURE__ */ jsx82(Fragment26, { children: renderProviderUnavailableState?.({
|
|
40719
40921
|
provider: disabledProviderTarget.provider,
|
|
40720
40922
|
providerLabel: labels.emptyProviderForProvider?.(
|
|
40721
40923
|
disabledProviderTarget.provider
|
|
@@ -40725,7 +40927,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
40725
40927
|
target: disabledProviderTarget,
|
|
40726
40928
|
iconUrl: resolveAgentGUIHeroIconUrl2(disabledProviderTarget.provider),
|
|
40727
40929
|
unavailableReason: disabledProviderTarget.unavailableReason ?? null
|
|
40728
|
-
}) }) : /* @__PURE__ */
|
|
40930
|
+
}) }) : /* @__PURE__ */ jsx82(
|
|
40729
40931
|
AgentGUIEmptyHomePane,
|
|
40730
40932
|
{
|
|
40731
40933
|
provider: emptyHeroProvider,
|
|
@@ -40756,7 +40958,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
40756
40958
|
"aria-busy": timelineInteractionLocked || void 0,
|
|
40757
40959
|
inert: timelineInteractionLocked,
|
|
40758
40960
|
children: [
|
|
40759
|
-
viewModel.operations.goalClearNoticeSequence > 0 ? /* @__PURE__ */
|
|
40961
|
+
viewModel.operations.goalClearNoticeSequence > 0 ? /* @__PURE__ */ jsx82(
|
|
40760
40962
|
AgentGUIContentToast,
|
|
40761
40963
|
{
|
|
40762
40964
|
insetTopPx: 16,
|
|
@@ -40764,7 +40966,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
40764
40966
|
},
|
|
40765
40967
|
viewModel.operations.goalClearNoticeSequence
|
|
40766
40968
|
) : null,
|
|
40767
|
-
/* @__PURE__ */
|
|
40969
|
+
/* @__PURE__ */ jsx82(
|
|
40768
40970
|
AgentGUIDetailTimeline,
|
|
40769
40971
|
{
|
|
40770
40972
|
availableSkills: viewModel.composer.availableSkills,
|
|
@@ -40785,7 +40987,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
40785
40987
|
workspaceAppIcons
|
|
40786
40988
|
}
|
|
40787
40989
|
),
|
|
40788
|
-
hasActiveConversation ? /* @__PURE__ */
|
|
40990
|
+
hasActiveConversation ? /* @__PURE__ */ jsx82(
|
|
40789
40991
|
AgentGUIBottomDockPane,
|
|
40790
40992
|
{
|
|
40791
40993
|
bottomDockRef,
|
|
@@ -40824,7 +41026,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
40824
41026
|
// agent-gui/agentGuiNode/view/AgentGUIRenameConversationDialog.tsx
|
|
40825
41027
|
import { memo as memo13, useCallback as useCallback61, useEffect as useEffect35, useRef as useRef54, useState as useState49 } from "react";
|
|
40826
41028
|
import { ConfirmationDialog as ConfirmationDialog4, Input as Input4 } from "@tutti-os/ui-system";
|
|
40827
|
-
import { jsx as
|
|
41029
|
+
import { jsx as jsx83, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
40828
41030
|
var AgentGUIRenameConversationDialog = memo13(
|
|
40829
41031
|
function AgentGUIRenameConversationDialog2({
|
|
40830
41032
|
conversation,
|
|
@@ -40880,7 +41082,7 @@ var AgentGUIRenameConversationDialog = memo13(
|
|
|
40880
41082
|
setIsSaving(false);
|
|
40881
41083
|
});
|
|
40882
41084
|
}, [conversation, onOpenChange, onRename, trimmedTitle]);
|
|
40883
|
-
return /* @__PURE__ */
|
|
41085
|
+
return /* @__PURE__ */ jsx83(
|
|
40884
41086
|
ConfirmationDialog4,
|
|
40885
41087
|
{
|
|
40886
41088
|
cancelLabel: labels.cancel,
|
|
@@ -40890,7 +41092,7 @@ var AgentGUIRenameConversationDialog = memo13(
|
|
|
40890
41092
|
confirmLabel: labels.renameSessionSave,
|
|
40891
41093
|
description: labels.renameSessionDescription,
|
|
40892
41094
|
footer: /* @__PURE__ */ jsxs59("div", { className: "flex justify-end gap-2", children: [
|
|
40893
|
-
/* @__PURE__ */
|
|
41095
|
+
/* @__PURE__ */ jsx83(
|
|
40894
41096
|
Button,
|
|
40895
41097
|
{
|
|
40896
41098
|
disabled: isSaving,
|
|
@@ -40928,7 +41130,7 @@ var AgentGUIRenameConversationDialog = memo13(
|
|
|
40928
41130
|
children: labels.cancel
|
|
40929
41131
|
}
|
|
40930
41132
|
),
|
|
40931
|
-
/* @__PURE__ */
|
|
41133
|
+
/* @__PURE__ */ jsx83(
|
|
40932
41134
|
Button,
|
|
40933
41135
|
{
|
|
40934
41136
|
className: "shadow-none",
|
|
@@ -40983,7 +41185,7 @@ var AgentGUIRenameConversationDialog = memo13(
|
|
|
40983
41185
|
title: labels.renameSessionTitle,
|
|
40984
41186
|
onConfirm: confirmRename,
|
|
40985
41187
|
onOpenChange,
|
|
40986
|
-
children: /* @__PURE__ */
|
|
41188
|
+
children: /* @__PURE__ */ jsx83(
|
|
40987
41189
|
Input4,
|
|
40988
41190
|
{
|
|
40989
41191
|
ref: inputRef,
|
|
@@ -41011,7 +41213,7 @@ import {
|
|
|
41011
41213
|
ReferenceSourcePicker,
|
|
41012
41214
|
WorkspaceFileReferencePicker
|
|
41013
41215
|
} from "@tutti-os/workspace-file-reference/ui";
|
|
41014
|
-
import { jsx as
|
|
41216
|
+
import { jsx as jsx84 } from "react/jsx-runtime";
|
|
41015
41217
|
function AgentGUIReferencePickerSurface({
|
|
41016
41218
|
aggregator,
|
|
41017
41219
|
copy,
|
|
@@ -41022,6 +41224,7 @@ function AgentGUIReferencePickerSurface({
|
|
|
41022
41224
|
isNodeSelectable,
|
|
41023
41225
|
open,
|
|
41024
41226
|
purpose,
|
|
41227
|
+
renderDirectoryHeaderActions,
|
|
41025
41228
|
resolveContentErrorAction,
|
|
41026
41229
|
resolveEntryIconUrl,
|
|
41027
41230
|
workspaceId,
|
|
@@ -41029,7 +41232,7 @@ function AgentGUIReferencePickerSurface({
|
|
|
41029
41232
|
onConfirm,
|
|
41030
41233
|
onConfirmBundles
|
|
41031
41234
|
}) {
|
|
41032
|
-
return aggregator ? /* @__PURE__ */
|
|
41235
|
+
return aggregator ? /* @__PURE__ */ jsx84(
|
|
41033
41236
|
ReferenceSourcePicker,
|
|
41034
41237
|
{
|
|
41035
41238
|
aggregator,
|
|
@@ -41039,6 +41242,7 @@ function AgentGUIReferencePickerSurface({
|
|
|
41039
41242
|
fileManagerCopy: fileManagerCopy ?? void 0,
|
|
41040
41243
|
open,
|
|
41041
41244
|
purpose,
|
|
41245
|
+
renderHeaderActions: purpose === "directory" ? renderDirectoryHeaderActions : void 0,
|
|
41042
41246
|
resolveContentErrorAction,
|
|
41043
41247
|
resolveEntryIconUrl,
|
|
41044
41248
|
workspaceId,
|
|
@@ -41046,7 +41250,7 @@ function AgentGUIReferencePickerSurface({
|
|
|
41046
41250
|
onConfirm,
|
|
41047
41251
|
onConfirmBundles
|
|
41048
41252
|
}
|
|
41049
|
-
) : /* @__PURE__ */
|
|
41253
|
+
) : /* @__PURE__ */ jsx84(
|
|
41050
41254
|
WorkspaceFileReferencePicker,
|
|
41051
41255
|
{
|
|
41052
41256
|
copy,
|
|
@@ -41063,7 +41267,7 @@ function AgentGUIReferencePickerSurface({
|
|
|
41063
41267
|
|
|
41064
41268
|
// agent-gui/agentGuiNode/view/AgentTargetSetupRoot.tsx
|
|
41065
41269
|
import { useCallback as useCallback62, useMemo as useMemo45 } from "react";
|
|
41066
|
-
import { jsx as
|
|
41270
|
+
import { jsx as jsx85, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
41067
41271
|
function useAgentTargetSetupRoot(input) {
|
|
41068
41272
|
const { preferences } = useAgentGUIProviderRailPreferences();
|
|
41069
41273
|
const homeTargetProjection = useMemo45(
|
|
@@ -41107,9 +41311,9 @@ function AgentTargetSetupRoot({
|
|
|
41107
41311
|
controller,
|
|
41108
41312
|
openEnvironmentSetup
|
|
41109
41313
|
}) {
|
|
41110
|
-
return /* @__PURE__ */
|
|
41314
|
+
return /* @__PURE__ */ jsx85(AgentEnvPanelActionProvider, { openPanel: openEnvironmentSetup, children: /* @__PURE__ */ jsxs60(AgentTargetSetupControllerProvider, { controller, children: [
|
|
41111
41315
|
children,
|
|
41112
|
-
/* @__PURE__ */
|
|
41316
|
+
/* @__PURE__ */ jsx85(
|
|
41113
41317
|
AgentTargetSetupGate,
|
|
41114
41318
|
{
|
|
41115
41319
|
carouselMountedExternally: false,
|
|
@@ -41661,10 +41865,11 @@ function useAgentGUIExternalRequests(input) {
|
|
|
41661
41865
|
}
|
|
41662
41866
|
|
|
41663
41867
|
// agent-gui/agentGuiNode/AgentGUINodeView.tsx
|
|
41664
|
-
import { jsx as
|
|
41868
|
+
import { jsx as jsx86, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
41665
41869
|
function AgentGUINodeView({
|
|
41666
41870
|
viewModel,
|
|
41667
|
-
|
|
41871
|
+
referenceProvenanceFilters = null,
|
|
41872
|
+
renderProjectDirectoryPickerHeaderActions,
|
|
41668
41873
|
renderSidebarFooter,
|
|
41669
41874
|
renderProviderRailEmpty,
|
|
41670
41875
|
renderProviderUnavailableState,
|
|
@@ -41810,17 +42015,7 @@ function AgentGUINodeView({
|
|
|
41810
42015
|
}, []);
|
|
41811
42016
|
const requestCreateConversation = useStableEventCallback(
|
|
41812
42017
|
(options) => {
|
|
41813
|
-
|
|
41814
|
-
if (options && "projectPath" in options) {
|
|
41815
|
-
createConversationAction(options);
|
|
41816
|
-
} else if (viewModel.composer.composerSettings.selectedProjectPath) {
|
|
41817
|
-
createConversationAction({
|
|
41818
|
-
projectPath: viewModel.composer.composerSettings.selectedProjectPath,
|
|
41819
|
-
source: source ?? "selected_project"
|
|
41820
|
-
});
|
|
41821
|
-
} else {
|
|
41822
|
-
createConversationAction({ source: source ?? "rail_toolbar" });
|
|
41823
|
-
}
|
|
42018
|
+
createConversationAction(options);
|
|
41824
42019
|
requestComposerFocus();
|
|
41825
42020
|
}
|
|
41826
42021
|
);
|
|
@@ -42073,7 +42268,7 @@ function AgentGUINodeView({
|
|
|
42073
42268
|
}),
|
|
42074
42269
|
[targetPresentationKey, viewModel.shell.workspaceId]
|
|
42075
42270
|
);
|
|
42076
|
-
const content = /* @__PURE__ */
|
|
42271
|
+
const content = /* @__PURE__ */ jsx86(AgentTargetPresentationProvider, { agentTargets: agentTargetPresentations, children: /* @__PURE__ */ jsxs61(
|
|
42077
42272
|
AgentTargetSetupRoot,
|
|
42078
42273
|
{
|
|
42079
42274
|
controller: targetSetupController,
|
|
@@ -42095,7 +42290,7 @@ function AgentGUINodeView({
|
|
|
42095
42290
|
"aria-hidden": conversationRailCollapsed ? "true" : void 0,
|
|
42096
42291
|
inert: conversationRailCollapsed ? true : void 0,
|
|
42097
42292
|
children: [
|
|
42098
|
-
/* @__PURE__ */
|
|
42293
|
+
/* @__PURE__ */ jsx86(
|
|
42099
42294
|
AgentGUIProviderRail,
|
|
42100
42295
|
{
|
|
42101
42296
|
activeConversation: viewModel.rail.activeConversation,
|
|
@@ -42118,7 +42313,7 @@ function AgentGUINodeView({
|
|
|
42118
42313
|
onRequestComposerFocus: requestComposerFocus
|
|
42119
42314
|
}
|
|
42120
42315
|
),
|
|
42121
|
-
renderSidebarFooter ? /* @__PURE__ */
|
|
42316
|
+
renderSidebarFooter ? /* @__PURE__ */ jsx86(
|
|
42122
42317
|
"div",
|
|
42123
42318
|
{
|
|
42124
42319
|
className: `${AgentGUINode_styles_default.providerRailFooter} ${AgentGUINode_styles_default.providerRailSidebarFooter} nodrag tsh-desktop-no-drag`,
|
|
@@ -42129,12 +42324,12 @@ function AgentGUINodeView({
|
|
|
42129
42324
|
})
|
|
42130
42325
|
}
|
|
42131
42326
|
) : null,
|
|
42132
|
-
shouldShowProviderRailConfigButton ? /* @__PURE__ */
|
|
42327
|
+
shouldShowProviderRailConfigButton ? /* @__PURE__ */ jsx86(
|
|
42133
42328
|
"div",
|
|
42134
42329
|
{
|
|
42135
42330
|
className: `${AgentGUINode_styles_default.providerRailFooter} ${AgentGUINode_styles_default.providerRailConfigFooter} nodrag tsh-desktop-no-drag`,
|
|
42136
42331
|
"data-testid": "agent-gui-config-footer",
|
|
42137
|
-
children: /* @__PURE__ */
|
|
42332
|
+
children: /* @__PURE__ */ jsx86(
|
|
42138
42333
|
AgentGUIConfigMenu,
|
|
42139
42334
|
{
|
|
42140
42335
|
environmentSetupVisible,
|
|
@@ -42160,14 +42355,14 @@ function AgentGUINodeView({
|
|
|
42160
42355
|
]
|
|
42161
42356
|
}
|
|
42162
42357
|
),
|
|
42163
|
-
/* @__PURE__ */
|
|
42358
|
+
/* @__PURE__ */ jsx86(
|
|
42164
42359
|
"aside",
|
|
42165
42360
|
{
|
|
42166
42361
|
id: "agent-gui-conversation-rail",
|
|
42167
42362
|
className: `${AgentGUINode_styles_default.railPanel}${conversationRailCollapsed ? ` ${AgentGUINode_styles_default.railPanelCollapsed}` : ""}`,
|
|
42168
42363
|
"aria-hidden": conversationRailCollapsed ? "true" : void 0,
|
|
42169
42364
|
inert: conversationRailCollapsed ? true : void 0,
|
|
42170
|
-
children: /* @__PURE__ */
|
|
42365
|
+
children: /* @__PURE__ */ jsx86(
|
|
42171
42366
|
AgentGUIConversationRailController,
|
|
42172
42367
|
{
|
|
42173
42368
|
...conversationRailStoreState,
|
|
@@ -42180,7 +42375,7 @@ function AgentGUINodeView({
|
|
|
42180
42375
|
)
|
|
42181
42376
|
}
|
|
42182
42377
|
),
|
|
42183
|
-
/* @__PURE__ */
|
|
42378
|
+
/* @__PURE__ */ jsx86(
|
|
42184
42379
|
"div",
|
|
42185
42380
|
{
|
|
42186
42381
|
id: "agent-gui-conversation-rail-resize",
|
|
@@ -42204,7 +42399,7 @@ function AgentGUINodeView({
|
|
|
42204
42399
|
onPointerUp: endConversationRailResize
|
|
42205
42400
|
}
|
|
42206
42401
|
),
|
|
42207
|
-
/* @__PURE__ */
|
|
42402
|
+
/* @__PURE__ */ jsx86("section", { id: "agent-gui-detail", className: AgentGUINode_styles_default.detailPanel, children: /* @__PURE__ */ jsx86(
|
|
42208
42403
|
AgentGUIDetailPane,
|
|
42209
42404
|
{
|
|
42210
42405
|
shell: viewModel.shell,
|
|
@@ -42215,7 +42410,7 @@ function AgentGUINodeView({
|
|
|
42215
42410
|
readiness: viewModel.readiness,
|
|
42216
42411
|
operations: viewModel.operations,
|
|
42217
42412
|
homeTargetProjection,
|
|
42218
|
-
|
|
42413
|
+
referenceProvenanceFilters,
|
|
42219
42414
|
composerEngagement,
|
|
42220
42415
|
actions,
|
|
42221
42416
|
labels,
|
|
@@ -42251,7 +42446,7 @@ function AgentGUINodeView({
|
|
|
42251
42446
|
]
|
|
42252
42447
|
}
|
|
42253
42448
|
),
|
|
42254
|
-
/* @__PURE__ */
|
|
42449
|
+
/* @__PURE__ */ jsx86(
|
|
42255
42450
|
AgentGUIReferencePickerSurface,
|
|
42256
42451
|
{
|
|
42257
42452
|
aggregator: workspaceReferencePickerAggregator,
|
|
@@ -42263,6 +42458,7 @@ function AgentGUINodeView({
|
|
|
42263
42458
|
isNodeSelectable: isWorkspaceReferencePickerNodeSelectable,
|
|
42264
42459
|
open: workspaceReferencePickerOpen,
|
|
42265
42460
|
purpose: workspaceReferencePickerPurpose,
|
|
42461
|
+
renderDirectoryHeaderActions: renderProjectDirectoryPickerHeaderActions,
|
|
42266
42462
|
resolveContentErrorAction: resolveReferenceContentErrorAction,
|
|
42267
42463
|
resolveEntryIconUrl: resolveWorkspaceReferenceEntryIconUrl,
|
|
42268
42464
|
workspaceId: viewModel.shell.workspaceId,
|
|
@@ -42271,7 +42467,7 @@ function AgentGUINodeView({
|
|
|
42271
42467
|
onConfirmBundles: workspaceReferencePickerPurpose === "reference" ? confirmWorkspaceReferenceBundles : void 0
|
|
42272
42468
|
}
|
|
42273
42469
|
),
|
|
42274
|
-
/* @__PURE__ */
|
|
42470
|
+
/* @__PURE__ */ jsx86(
|
|
42275
42471
|
AgentGUIRenameConversationDialog,
|
|
42276
42472
|
{
|
|
42277
42473
|
conversation: renameConversationTarget,
|
|
@@ -42289,7 +42485,7 @@ function AgentGUINodeView({
|
|
|
42289
42485
|
]
|
|
42290
42486
|
}
|
|
42291
42487
|
) });
|
|
42292
|
-
return /* @__PURE__ */
|
|
42488
|
+
return /* @__PURE__ */ jsx86(TooltipProvider7, { children: content });
|
|
42293
42489
|
}
|
|
42294
42490
|
|
|
42295
42491
|
// agent-gui/workspaceDesktop/view/AgentProbeInfoPopover.tsx
|
|
@@ -42302,7 +42498,7 @@ import {
|
|
|
42302
42498
|
useState as useState52
|
|
42303
42499
|
} from "react";
|
|
42304
42500
|
import { createPortal as createPortal5 } from "react-dom";
|
|
42305
|
-
import { Fragment as Fragment27, jsx as
|
|
42501
|
+
import { Fragment as Fragment27, jsx as jsx87, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
42306
42502
|
var POPOVER_MIN_VIEWPORT_INSET_PX = 16;
|
|
42307
42503
|
var POPOVER_DEFAULT_WIDTH_PX = 260;
|
|
42308
42504
|
function dockAgentProbeLineKey(line) {
|
|
@@ -42316,7 +42512,7 @@ function renderDockAgentProbeLine(line) {
|
|
|
42316
42512
|
line.primary,
|
|
42317
42513
|
line.secondary ? /* @__PURE__ */ jsxs62(Fragment27, { children: [
|
|
42318
42514
|
" ",
|
|
42319
|
-
/* @__PURE__ */
|
|
42515
|
+
/* @__PURE__ */ jsx87("span", { className: "desktop-dock-popup__agent-status-secondary", children: line.secondary })
|
|
42320
42516
|
] }) : null
|
|
42321
42517
|
] });
|
|
42322
42518
|
}
|
|
@@ -42409,7 +42605,7 @@ function AgentProbeInfoPopover({
|
|
|
42409
42605
|
if (lines.length === 0) {
|
|
42410
42606
|
return null;
|
|
42411
42607
|
}
|
|
42412
|
-
const popover = /* @__PURE__ */
|
|
42608
|
+
const popover = /* @__PURE__ */ jsx87(
|
|
42413
42609
|
"div",
|
|
42414
42610
|
{
|
|
42415
42611
|
ref: popoverRef,
|
|
@@ -42418,7 +42614,7 @@ function AgentProbeInfoPopover({
|
|
|
42418
42614
|
style: popoverStyle ?? void 0,
|
|
42419
42615
|
onMouseEnter: openPopover,
|
|
42420
42616
|
onMouseLeave: closeIfPointerLeavesPopover,
|
|
42421
|
-
children: /* @__PURE__ */
|
|
42617
|
+
children: /* @__PURE__ */ jsx87("ul", { className: "desktop-dock-popup__agent-info-list", children: lines.map((line) => {
|
|
42422
42618
|
const label = getDockAgentProbeLineLabel(line);
|
|
42423
42619
|
const valueText = formatDockAgentProbeLineText(line);
|
|
42424
42620
|
return /* @__PURE__ */ jsxs62(
|
|
@@ -42427,8 +42623,8 @@ function AgentProbeInfoPopover({
|
|
|
42427
42623
|
className: "desktop-dock-popup__agent-info-item",
|
|
42428
42624
|
"data-has-label": label ? "true" : "false",
|
|
42429
42625
|
children: [
|
|
42430
|
-
label ? /* @__PURE__ */
|
|
42431
|
-
/* @__PURE__ */
|
|
42626
|
+
label ? /* @__PURE__ */ jsx87("span", { className: "desktop-dock-popup__agent-info-label", children: label }) : null,
|
|
42627
|
+
/* @__PURE__ */ jsx87(
|
|
42432
42628
|
"span",
|
|
42433
42629
|
{
|
|
42434
42630
|
className: "desktop-dock-popup__agent-info-value",
|
|
@@ -42463,38 +42659,13 @@ function AgentProbeInfoPopover({
|
|
|
42463
42659
|
},
|
|
42464
42660
|
onBlur: closePopover,
|
|
42465
42661
|
children: [
|
|
42466
|
-
/* @__PURE__ */
|
|
42662
|
+
/* @__PURE__ */ jsx87(Info2, { size: 15, strokeWidth: 2.1, "aria-hidden": "true" }),
|
|
42467
42663
|
isOpen ? createPortal5(popover, document.body) : null
|
|
42468
42664
|
]
|
|
42469
42665
|
}
|
|
42470
42666
|
);
|
|
42471
42667
|
}
|
|
42472
42668
|
|
|
42473
|
-
// agent-gui/agentGuiNode/model/agentReferenceProvenanceCatalog.ts
|
|
42474
|
-
function resolveAgentGUIReferenceProvenanceFilterCatalog(input) {
|
|
42475
|
-
if (input.injectedCatalog !== void 0) {
|
|
42476
|
-
return input.injectedCatalog;
|
|
42477
|
-
}
|
|
42478
|
-
if (!input.legacyAgentFilterEnabled) {
|
|
42479
|
-
return null;
|
|
42480
|
-
}
|
|
42481
|
-
return {
|
|
42482
|
-
enabledDimensions: ["agent"],
|
|
42483
|
-
agentOptions: (input.agentTargets ?? []).flatMap((target) => {
|
|
42484
|
-
const agentTargetId = target.agentTargetId?.trim();
|
|
42485
|
-
return agentTargetId ? [
|
|
42486
|
-
{
|
|
42487
|
-
disabled: target.disabled,
|
|
42488
|
-
iconUrl: target.iconUrl,
|
|
42489
|
-
id: agentTargetId,
|
|
42490
|
-
label: target.label
|
|
42491
|
-
}
|
|
42492
|
-
] : [];
|
|
42493
|
-
}),
|
|
42494
|
-
memberOptions: []
|
|
42495
|
-
};
|
|
42496
|
-
}
|
|
42497
|
-
|
|
42498
42669
|
// agent-gui/agentGuiNode/AgentGUINode.types.ts
|
|
42499
42670
|
function agentGuiStateEquals(left, right) {
|
|
42500
42671
|
return left === right || left.provider === right.provider && (left.agentTargetId ?? null) === (right.agentTargetId ?? null) && left.lastActiveAgentSessionId === right.lastActiveAgentSessionId && stringRecordsEqual(
|
|
@@ -42552,7 +42723,7 @@ function areAgentGUINodePropsEqual(previous, next) {
|
|
|
42552
42723
|
const pc = previous.hostCapabilities, nc = next.hostCapabilities;
|
|
42553
42724
|
const pa = previous.hostActions, na = next.hostActions;
|
|
42554
42725
|
const ps = previous.renderSlots, ns = next.renderSlots;
|
|
42555
|
-
return pi.nodeId === ni.nodeId && pi.workspaceId === ni.workspaceId && pi.currentUserId === ni.currentUserId && pi.title === ni.title && pw.path === nw.path && pw.fileReferenceAdapter === nw.fileReferenceAdapter && pw.onRequestGitBranches === nw.onRequestGitBranches && pw.selectProjectDirectory === nw.selectProjectDirectory && pw.resolveExternalPromptEntries === nw.resolveExternalPromptEntries && pw.prepareExternalPromptFiles === nw.prepareExternalPromptFiles && pw.promptAssetLimit === nw.promptAssetLimit && pw.projectDirectorySourceAggregator === nw.projectDirectorySourceAggregator && pw.referenceSourceAggregator === nw.referenceSourceAggregator && pw.resolveReferenceContentErrorAction === nw.resolveReferenceContentErrorAction && pw.resolveReferenceEntryIconUrl === nw.resolveReferenceEntryIconUrl && pw.resolveMentionReferenceTarget === nw.resolveMentionReferenceTarget && pw.resolveReferenceInitialTarget === nw.resolveReferenceInitialTarget && pw.onFileReferencesAdded === nw.onFileReferencesAdded && pw.agentSettings.avoidGroupingEdits === nw.agentSettings.avoidGroupingEdits && pc.referenceProvenanceFilterCatalog === nc.referenceProvenanceFilterCatalog && pc.referenceProvenanceFilterEnabled === nc.referenceProvenanceFilterEnabled && agentGuiStateEquals(previous.state, next.state) && pf.position.x === nf.position.x && pf.position.y === nf.position.y && pf.width === nf.width && pf.height === nf.height && pf.desktopSize.width === nf.desktopSize.width && pf.desktopSize.height === nf.desktopSize.height && pf.isMaximized === nf.isMaximized && pf.isActive === nf.isActive && pf.isVisible === nf.isVisible && pf.embedded === nf.embedded && pf.
|
|
42726
|
+
return pi.nodeId === ni.nodeId && pi.workspaceId === ni.workspaceId && pi.currentUserId === ni.currentUserId && pi.title === ni.title && pw.path === nw.path && pw.fileReferenceAdapter === nw.fileReferenceAdapter && pw.onRequestGitBranches === nw.onRequestGitBranches && pw.selectProjectDirectory === nw.selectProjectDirectory && pw.resolveExternalPromptEntries === nw.resolveExternalPromptEntries && pw.prepareExternalPromptFiles === nw.prepareExternalPromptFiles && pw.promptAssetLimit === nw.promptAssetLimit && pw.projectDirectorySourceAggregator === nw.projectDirectorySourceAggregator && pw.referenceSourceAggregator === nw.referenceSourceAggregator && pw.resolveReferenceContentErrorAction === nw.resolveReferenceContentErrorAction && pw.resolveReferenceEntryIconUrl === nw.resolveReferenceEntryIconUrl && pw.resolveMentionReferenceTarget === nw.resolveMentionReferenceTarget && pw.resolveReferenceInitialTarget === nw.resolveReferenceInitialTarget && pw.onFileReferencesAdded === nw.onFileReferencesAdded && pw.agentSettings.avoidGroupingEdits === nw.agentSettings.avoidGroupingEdits && pc.referenceProvenanceFilterCatalog === nc.referenceProvenanceFilterCatalog && pc.referenceProvenanceFilterEnabled === nc.referenceProvenanceFilterEnabled && agentGuiStateEquals(previous.state, next.state) && pf.position.x === nf.position.x && pf.position.y === nf.position.y && pf.width === nf.width && pf.height === nf.height && pf.desktopSize.width === nf.desktopSize.width && pf.desktopSize.height === nf.desktopSize.height && pf.isMaximized === nf.isMaximized && pf.isActive === nf.isActive && pf.isVisible === nf.isVisible && pf.embedded === nf.embedded && pf.conversationRailAutoCollapseMode === nf.conversationRailAutoCollapseMode && pr.composerFocusSequence === nr.composerFocusSequence && pr.composerAppend === nr.composerAppend && pr.newConversationSequence === nr.newConversationSequence && pr.sessionAction === nr.sessionAction && pr.openSession === nr.openSession && pr.prefillPrompt === nr.prefillPrompt && pr.agentStatusController === nr.agentStatusController && pc.capabilityMenuState === nc.capabilityMenuState && pc.capabilityControlsReadOnly === nc.capabilityControlsReadOnly && pc.agentTargets === nc.agentTargets && pc.agentTargetsLoading === nc.agentTargetsLoading && pc.handoffAgentTargets === nc.handoffAgentTargets && pc.handoffAgentTargetsLoading === nc.handoffAgentTargetsLoading && pc.providerRailAllPresentation?.iconUrl === nc.providerRailAllPresentation?.iconUrl && pc.providerRailMode === nc.providerRailMode && pc.comingSoonProviders === nc.comingSoonProviders && pc.providerReadinessGates === nc.providerReadinessGates && pc.targetConnectionSource === nc.targetConnectionSource && pc.defaultAgentTargetId === nc.defaultAgentTargetId && pc.providerAuthAccountLabels === nc.providerAuthAccountLabels && pc.mentionService === nc.mentionService && pc.workspaceAppIcons === nc.workspaceAppIcons && pc.disabledHomeSuggestions === nc.disabledHomeSuggestions && pa.onLinkAction === na.onLinkAction && pa.onHandoffConversation === na.onHandoffConversation && pa.onCapabilitySettingsRequest === na.onCapabilitySettingsRequest && pa.onAgentProviderLogin === na.onAgentProviderLogin && pa.onAgentEnvPanelOpen === na.onAgentEnvPanelOpen && pa.onOpenConversationWindow === na.onOpenConversationWindow && pa.onClose === na.onClose && pa.onResize === na.onResize && pa.onUpdateNode === na.onUpdateNode && pa.onRememberComposerDefaults === na.onRememberComposerDefaults && pa.isMuted === na.isMuted && pa.onMinimize === na.onMinimize && pa.onToggleMaximize === na.onToggleMaximize && pa.onShowMessage === na.onShowMessage && pa.onEngagementEvent === na.onEngagementEvent && pa.onConversationRailLayoutChange === na.onConversationRailLayoutChange && ps.providerRailEmpty === ns.providerRailEmpty && ps.providerUnavailableState === ns.providerUnavailableState && ps.projectDirectoryPickerHeaderActions === ns.projectDirectoryPickerHeaderActions && ps.sidebarFooter === ns.sidebarFooter;
|
|
42556
42727
|
}
|
|
42557
42728
|
|
|
42558
42729
|
// agent-gui/agentGuiNode/AgentGUIMentionServiceBoundary.tsx
|
|
@@ -42599,7 +42770,7 @@ function composeAgentGUIMentionService(input) {
|
|
|
42599
42770
|
}
|
|
42600
42771
|
|
|
42601
42772
|
// agent-gui/agentGuiNode/AgentGUIMentionServiceBoundary.tsx
|
|
42602
|
-
import { jsx as
|
|
42773
|
+
import { jsx as jsx88 } from "react/jsx-runtime";
|
|
42603
42774
|
function AgentGUIMentionServiceBoundary({
|
|
42604
42775
|
children,
|
|
42605
42776
|
service
|
|
@@ -42615,7 +42786,7 @@ function AgentGUIMentionServiceBoundary({
|
|
|
42615
42786
|
if (!effectiveService || effectiveService === inheritedService) {
|
|
42616
42787
|
return children;
|
|
42617
42788
|
}
|
|
42618
|
-
return /* @__PURE__ */
|
|
42789
|
+
return /* @__PURE__ */ jsx88(RichTextMentionServiceProvider, { service: effectiveService, children });
|
|
42619
42790
|
}
|
|
42620
42791
|
|
|
42621
42792
|
// agent-gui/agentGuiNode/AgentGUINode.labels.ts
|
|
@@ -43276,6 +43447,15 @@ function useAgentGUIViewLabels(input) {
|
|
|
43276
43447
|
slashStatusContext: t("agentHost.agentGui.slashStatusContext"),
|
|
43277
43448
|
slashStatusLimits: t("agentHost.agentGui.slashStatusLimits"),
|
|
43278
43449
|
slashStatusAccount: t("agentHost.agentGui.slashStatusAccount"),
|
|
43450
|
+
slashStatusProviderAccount: (provider) => {
|
|
43451
|
+
const identity = resolveAgentGUIProviderCatalogIdentity(provider);
|
|
43452
|
+
if (!identity) {
|
|
43453
|
+
return null;
|
|
43454
|
+
}
|
|
43455
|
+
return t("agentHost.agentGui.slashStatusProviderAccount", {
|
|
43456
|
+
provider: agentGUIProviderIdentityDisplayName(identity, t)
|
|
43457
|
+
});
|
|
43458
|
+
},
|
|
43279
43459
|
slashStatusClose: t("agentHost.agentGui.slashStatusClose"),
|
|
43280
43460
|
slashStatusContextValue: (input2) => t("agentHost.agentGui.slashStatusContextValue", {
|
|
43281
43461
|
percentLeft: input2.percentLeft,
|
|
@@ -43743,13 +43923,68 @@ function useAgentGUIWorkspaceFileReferenceCopy(t) {
|
|
|
43743
43923
|
);
|
|
43744
43924
|
}
|
|
43745
43925
|
|
|
43746
|
-
// agent-gui/agentGuiNode/
|
|
43747
|
-
import {
|
|
43926
|
+
// agent-gui/agentGuiNode/composer/useAgentMentionProvenanceFilters.ts
|
|
43927
|
+
import { useMemo as useMemo50 } from "react";
|
|
43928
|
+
import { useReferenceProvenanceFilterCatalog } from "@tutti-os/workspace-file-reference/react";
|
|
43929
|
+
|
|
43930
|
+
// agent-gui/agentGuiNode/model/agentReferenceProvenanceCatalog.ts
|
|
43931
|
+
function resolveAgentGUIReferenceProvenanceFilterCatalog(input) {
|
|
43932
|
+
if (input.injectedCatalog !== void 0) {
|
|
43933
|
+
return input.injectedCatalog;
|
|
43934
|
+
}
|
|
43935
|
+
if (!input.legacyAgentFilterEnabled) {
|
|
43936
|
+
return null;
|
|
43937
|
+
}
|
|
43938
|
+
return {
|
|
43939
|
+
enabledDimensions: ["agent"],
|
|
43940
|
+
agentOptions: (input.agentTargets ?? []).flatMap((target) => {
|
|
43941
|
+
const agentTargetId = target.agentTargetId?.trim();
|
|
43942
|
+
return agentTargetId ? [
|
|
43943
|
+
{
|
|
43944
|
+
disabled: target.disabled,
|
|
43945
|
+
iconUrl: target.iconUrl,
|
|
43946
|
+
id: agentTargetId,
|
|
43947
|
+
label: target.label
|
|
43948
|
+
}
|
|
43949
|
+
] : [];
|
|
43950
|
+
}),
|
|
43951
|
+
memberOptions: []
|
|
43952
|
+
};
|
|
43953
|
+
}
|
|
43954
|
+
|
|
43955
|
+
// agent-gui/agentGuiNode/composer/useAgentMentionProvenanceFilters.ts
|
|
43748
43956
|
var DISABLED_REFERENCE_PROVENANCE_CATALOG = {
|
|
43749
43957
|
enabledDimensions: [],
|
|
43750
43958
|
agentOptions: [],
|
|
43751
43959
|
memberOptions: []
|
|
43752
43960
|
};
|
|
43961
|
+
function useAgentMentionProvenanceFilters(input) {
|
|
43962
|
+
const catalog = useMemo50(
|
|
43963
|
+
() => resolveAgentGUIReferenceProvenanceFilterCatalog(input),
|
|
43964
|
+
[input.agentTargets, input.injectedCatalog, input.legacyAgentFilterEnabled]
|
|
43965
|
+
);
|
|
43966
|
+
const effectiveCatalog = catalog ?? DISABLED_REFERENCE_PROVENANCE_CATALOG;
|
|
43967
|
+
const session = useReferenceProvenanceFilterCatalog(effectiveCatalog);
|
|
43968
|
+
const file = useReferenceProvenanceFilterCatalog(effectiveCatalog);
|
|
43969
|
+
const issue = useReferenceProvenanceFilterCatalog(effectiveCatalog);
|
|
43970
|
+
const agent = useReferenceProvenanceFilterCatalog(effectiveCatalog);
|
|
43971
|
+
const app = useReferenceProvenanceFilterCatalog(effectiveCatalog);
|
|
43972
|
+
return useMemo50(
|
|
43973
|
+
() => session.snapshot.catalog.enabledDimensions.length === 0 ? null : {
|
|
43974
|
+
byFilter: {
|
|
43975
|
+
session,
|
|
43976
|
+
file,
|
|
43977
|
+
issue,
|
|
43978
|
+
agent,
|
|
43979
|
+
app
|
|
43980
|
+
}
|
|
43981
|
+
},
|
|
43982
|
+
[agent, app, file, issue, session]
|
|
43983
|
+
);
|
|
43984
|
+
}
|
|
43985
|
+
|
|
43986
|
+
// agent-gui/agentGuiNode/AgentGUINode.tsx
|
|
43987
|
+
import { jsx as jsx89, jsxs as jsxs63 } from "react/jsx-runtime";
|
|
43753
43988
|
var AgentGUINode = memo14(function AgentGUINode2({
|
|
43754
43989
|
identity,
|
|
43755
43990
|
workspace,
|
|
@@ -43787,10 +44022,8 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
43787
44022
|
isMaximized = false,
|
|
43788
44023
|
isActive,
|
|
43789
44024
|
isVisible = true,
|
|
43790
|
-
embedded = false
|
|
43791
|
-
conversationRailAutoCollapseWidthPx = null
|
|
44025
|
+
embedded = false
|
|
43792
44026
|
} = frame;
|
|
43793
|
-
const railAutoCollapseWidthPx = conversationRailAutoCollapseWidthPx ?? void 0;
|
|
43794
44027
|
const widthRef = useRef61(width);
|
|
43795
44028
|
widthRef.current = width;
|
|
43796
44029
|
const {
|
|
@@ -43822,15 +44055,11 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
43822
44055
|
referenceProvenanceFilterCatalog: injectedReferenceProvenanceFilterCatalog,
|
|
43823
44056
|
referenceProvenanceFilterEnabled = false
|
|
43824
44057
|
} = hostCapabilities;
|
|
43825
|
-
const
|
|
44058
|
+
const referenceProvenanceFilters = useAgentMentionProvenanceFilters({
|
|
43826
44059
|
agentTargets,
|
|
43827
44060
|
injectedCatalog: injectedReferenceProvenanceFilterCatalog,
|
|
43828
44061
|
legacyAgentFilterEnabled: referenceProvenanceFilterEnabled
|
|
43829
44062
|
});
|
|
43830
|
-
const referenceProvenanceFilterBinding = useReferenceProvenanceFilterCatalog(
|
|
43831
|
-
referenceProvenanceFilterCatalog ?? DISABLED_REFERENCE_PROVENANCE_CATALOG
|
|
43832
|
-
);
|
|
43833
|
-
const referenceProvenanceFilter = referenceProvenanceFilterBinding.snapshot.catalog.enabledDimensions.length > 0 ? referenceProvenanceFilterBinding : null;
|
|
43834
44063
|
const {
|
|
43835
44064
|
onLinkAction,
|
|
43836
44065
|
onHandoffConversation,
|
|
@@ -43850,16 +44079,17 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
43850
44079
|
onConversationRailLayoutChange
|
|
43851
44080
|
} = hostActions;
|
|
43852
44081
|
const {
|
|
44082
|
+
projectDirectoryPickerHeaderActions: renderProjectDirectoryPickerHeaderActions,
|
|
43853
44083
|
providerRailEmpty: renderProviderRailEmpty,
|
|
43854
44084
|
providerUnavailableState: renderProviderUnavailableState,
|
|
43855
44085
|
sidebarFooter: renderSidebarFooter
|
|
43856
44086
|
} = renderSlots;
|
|
43857
44087
|
const { i18n, locale, t } = useTranslation();
|
|
43858
|
-
const workspaceUserProjectI18n =
|
|
44088
|
+
const workspaceUserProjectI18n = useMemo51(
|
|
43859
44089
|
() => createWorkspaceUserProjectI18nRuntime(i18n),
|
|
43860
44090
|
[i18n]
|
|
43861
44091
|
);
|
|
43862
|
-
const workspaceFileManagerI18n =
|
|
44092
|
+
const workspaceFileManagerI18n = useMemo51(
|
|
43863
44093
|
() => typeof i18n?.t === "function" ? createWorkspaceFileManagerI18nRuntime(i18n) : null,
|
|
43864
44094
|
[i18n]
|
|
43865
44095
|
);
|
|
@@ -43912,10 +44142,15 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
43912
44142
|
},
|
|
43913
44143
|
[onUpdateNode]
|
|
43914
44144
|
);
|
|
43915
|
-
const
|
|
43916
|
-
|
|
43917
|
-
|
|
43918
|
-
|
|
44145
|
+
const conversationRailPresentation = resolveAgentGUIConversationRailPresentation({
|
|
44146
|
+
autoCollapseMode: frame.conversationRailAutoCollapseMode,
|
|
44147
|
+
containerWidthPx: width,
|
|
44148
|
+
conversationRailCollapsed: state.conversationRailCollapsed,
|
|
44149
|
+
conversationRailWidthPx: state.conversationRailWidthPx
|
|
44150
|
+
});
|
|
44151
|
+
const isConversationRailAutoCollapsed = conversationRailPresentation.isAutoCollapsed;
|
|
44152
|
+
const isConversationRailCollapsed = conversationRailPresentation.isCollapsed;
|
|
44153
|
+
const minSize = useMemo51(
|
|
43919
44154
|
() => ({
|
|
43920
44155
|
...resolveCanonicalNodeMinSize("agentGui"),
|
|
43921
44156
|
width: AGENT_GUI_COLLAPSED_MIN_WIDTH_PX
|
|
@@ -43999,7 +44234,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
43999
44234
|
},
|
|
44000
44235
|
[actions, onUpdateNode]
|
|
44001
44236
|
);
|
|
44002
|
-
const viewActions =
|
|
44237
|
+
const viewActions = useMemo51(
|
|
44003
44238
|
() => ({
|
|
44004
44239
|
...actions,
|
|
44005
44240
|
createConversation: handleCreateConversation
|
|
@@ -44042,7 +44277,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44042
44277
|
t,
|
|
44043
44278
|
viewModel
|
|
44044
44279
|
});
|
|
44045
|
-
return /* @__PURE__ */
|
|
44280
|
+
return /* @__PURE__ */ jsx89(AgentGUIMentionServiceBoundary, { service: mentionService, children: /* @__PURE__ */ jsx89(
|
|
44046
44281
|
WorkspaceNodeWindow,
|
|
44047
44282
|
{
|
|
44048
44283
|
nodeId,
|
|
@@ -44059,7 +44294,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44059
44294
|
bodyClassName: `${AgentGUINode_styles_default.shell} nodrag size-full min-h-0 min-w-0 !bg-transparent p-0`,
|
|
44060
44295
|
hideHeader: embedded,
|
|
44061
44296
|
titleAccessory: /* @__PURE__ */ jsxs63("span", { className: "inline-flex flex-none items-center gap-1", children: [
|
|
44062
|
-
/* @__PURE__ */
|
|
44297
|
+
/* @__PURE__ */ jsx89(
|
|
44063
44298
|
AgentProbeInfoPopover,
|
|
44064
44299
|
{
|
|
44065
44300
|
lines: agentProbeLines,
|
|
@@ -44069,7 +44304,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44069
44304
|
onClose: handleAgentProbeInfoClose
|
|
44070
44305
|
}
|
|
44071
44306
|
),
|
|
44072
|
-
/* @__PURE__ */
|
|
44307
|
+
/* @__PURE__ */ jsx89(
|
|
44073
44308
|
CanvasNodeGhostIconButton,
|
|
44074
44309
|
{
|
|
44075
44310
|
"aria-label": isConversationRailCollapsed ? t("agentHost.agentGui.expandConversationRail") : t("agentHost.agentGui.collapseConversationRail"),
|
|
@@ -44081,7 +44316,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44081
44316
|
event.stopPropagation();
|
|
44082
44317
|
handleConversationRailToggle();
|
|
44083
44318
|
},
|
|
44084
|
-
children: /* @__PURE__ */
|
|
44319
|
+
children: /* @__PURE__ */ jsx89(
|
|
44085
44320
|
CanvasNodePanelLinedIcon,
|
|
44086
44321
|
{
|
|
44087
44322
|
width: 18,
|
|
@@ -44101,11 +44336,13 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44101
44336
|
onToggleMaximize,
|
|
44102
44337
|
children: (renderFrame) => {
|
|
44103
44338
|
const renderedWidth = renderFrame.size.width;
|
|
44104
|
-
const isRenderedConversationRailCollapsed = isConversationRailCollapsed ||
|
|
44105
|
-
|
|
44106
|
-
|
|
44107
|
-
|
|
44108
|
-
|
|
44339
|
+
const isRenderedConversationRailCollapsed = isConversationRailCollapsed || resolveAgentGUIConversationRailPresentation({
|
|
44340
|
+
autoCollapseMode: frame.conversationRailAutoCollapseMode,
|
|
44341
|
+
containerWidthPx: renderedWidth,
|
|
44342
|
+
conversationRailCollapsed: state.conversationRailCollapsed,
|
|
44343
|
+
conversationRailWidthPx: state.conversationRailWidthPx
|
|
44344
|
+
}).isCollapsed;
|
|
44345
|
+
return /* @__PURE__ */ jsx89(
|
|
44109
44346
|
AgentGUINodeView,
|
|
44110
44347
|
{
|
|
44111
44348
|
viewModel,
|
|
@@ -44177,7 +44414,8 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44177
44414
|
resolveWorkspaceReferenceInitialTarget,
|
|
44178
44415
|
workspaceFileReferenceCopy,
|
|
44179
44416
|
workspaceAppIcons,
|
|
44180
|
-
|
|
44417
|
+
referenceProvenanceFilters,
|
|
44418
|
+
renderProjectDirectoryPickerHeaderActions
|
|
44181
44419
|
}
|
|
44182
44420
|
);
|
|
44183
44421
|
}
|
|
@@ -44186,7 +44424,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44186
44424
|
}, areAgentGUINodePropsEqual);
|
|
44187
44425
|
|
|
44188
44426
|
// AgentGUI.tsx
|
|
44189
|
-
import { jsx as
|
|
44427
|
+
import { jsx as jsx90 } from "react/jsx-runtime";
|
|
44190
44428
|
var AgentGUI = memo15(function AgentGUI2({
|
|
44191
44429
|
agentActivityRuntime,
|
|
44192
44430
|
agentHostApi,
|
|
@@ -44200,16 +44438,16 @@ var AgentGUI = memo15(function AgentGUI2({
|
|
|
44200
44438
|
locale,
|
|
44201
44439
|
...props
|
|
44202
44440
|
}) {
|
|
44203
|
-
const normalizedAgents =
|
|
44441
|
+
const normalizedAgents = useMemo52(
|
|
44204
44442
|
() => normalizeAgentGUIAgents(agentDirectory.agents),
|
|
44205
44443
|
[agentDirectory.agents]
|
|
44206
44444
|
);
|
|
44207
|
-
const agentTargets =
|
|
44445
|
+
const agentTargets = useMemo52(
|
|
44208
44446
|
() => projectAgentGUIAgentsToTargets(normalizedAgents),
|
|
44209
44447
|
[normalizedAgents]
|
|
44210
44448
|
);
|
|
44211
44449
|
const effectiveHandoffAgentDirectory = handoffAgentDirectory ?? agentDirectory;
|
|
44212
|
-
const normalizedHandoffAgents =
|
|
44450
|
+
const normalizedHandoffAgents = useMemo52(
|
|
44213
44451
|
() => effectiveHandoffAgentDirectory.agents === agentDirectory.agents ? normalizedAgents : normalizeAgentGUIAgents(effectiveHandoffAgentDirectory.agents),
|
|
44214
44452
|
[
|
|
44215
44453
|
agentDirectory.agents,
|
|
@@ -44217,13 +44455,13 @@ var AgentGUI = memo15(function AgentGUI2({
|
|
|
44217
44455
|
normalizedAgents
|
|
44218
44456
|
]
|
|
44219
44457
|
);
|
|
44220
|
-
const handoffAgentTargets =
|
|
44458
|
+
const handoffAgentTargets = useMemo52(
|
|
44221
44459
|
() => normalizedHandoffAgents === normalizedAgents ? agentTargets : projectAgentGUIAgentsToTargets(normalizedHandoffAgents),
|
|
44222
44460
|
[agentTargets, normalizedAgents, normalizedHandoffAgents]
|
|
44223
44461
|
);
|
|
44224
44462
|
const hostCapabilities = props.hostCapabilities;
|
|
44225
44463
|
const renderSlots = props.renderSlots;
|
|
44226
|
-
const nodeHostCapabilities =
|
|
44464
|
+
const nodeHostCapabilities = useMemo52(
|
|
44227
44465
|
() => ({
|
|
44228
44466
|
...hostCapabilities,
|
|
44229
44467
|
agentTargets,
|
|
@@ -44246,7 +44484,7 @@ var AgentGUI = memo15(function AgentGUI2({
|
|
|
44246
44484
|
hostCapabilities
|
|
44247
44485
|
]
|
|
44248
44486
|
);
|
|
44249
|
-
const nodeRenderSlots =
|
|
44487
|
+
const nodeRenderSlots = useMemo52(
|
|
44250
44488
|
() => ({
|
|
44251
44489
|
...renderSlots,
|
|
44252
44490
|
providerRailEmpty: renderAgentsEmpty
|
|
@@ -44258,21 +44496,21 @@ var AgentGUI = memo15(function AgentGUI2({
|
|
|
44258
44496
|
hostCapabilities: nodeHostCapabilities,
|
|
44259
44497
|
renderSlots: nodeRenderSlots
|
|
44260
44498
|
};
|
|
44261
|
-
const content = /* @__PURE__ */
|
|
44499
|
+
const content = /* @__PURE__ */ jsx90(AgentGuiI18nProvider, { runtime: i18n, locale, children: /* @__PURE__ */ jsx90(TuttiModePlanReviewRuntimeProvider, { runtime: tuttiModePlanReviewRuntime, children: /* @__PURE__ */ jsx90(
|
|
44262
44500
|
AgentActivityHostProvider,
|
|
44263
44501
|
{
|
|
44264
44502
|
agentActivityRuntime,
|
|
44265
44503
|
agentHostApi,
|
|
44266
|
-
children: /* @__PURE__ */
|
|
44504
|
+
children: /* @__PURE__ */ jsx90(
|
|
44267
44505
|
AgentVisibleErrorPresentationProvider,
|
|
44268
44506
|
{
|
|
44269
44507
|
value: props.hostCapabilities?.visibleErrorPresentationOverrides,
|
|
44270
|
-
children: /* @__PURE__ */
|
|
44508
|
+
children: /* @__PURE__ */ jsx90(AgentGUINode, { ...nodeProps })
|
|
44271
44509
|
}
|
|
44272
44510
|
)
|
|
44273
44511
|
}
|
|
44274
44512
|
) }) });
|
|
44275
|
-
return /* @__PURE__ */
|
|
44513
|
+
return /* @__PURE__ */ jsx90(TooltipProvider8, { delayDuration: 120, skipDelayDuration: 0, children: content });
|
|
44276
44514
|
});
|
|
44277
44515
|
|
|
44278
44516
|
export {
|
|
@@ -44288,4 +44526,4 @@ export {
|
|
|
44288
44526
|
AgentHandoffMenu,
|
|
44289
44527
|
AgentGUI
|
|
44290
44528
|
};
|
|
44291
|
-
//# sourceMappingURL=chunk-
|
|
44529
|
+
//# sourceMappingURL=chunk-TKECUCUW.js.map
|