@tutti-os/agent-gui 0.0.64 → 0.0.66
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/LICENSE +1 -2
- package/README.md +1 -1
- package/dist/agent-conversation/index.d.ts +2 -2
- package/dist/agent-conversation/index.js +6 -6
- package/dist/agent-message-center/index.js +8 -8
- package/dist/{agentGuiNodeTypes-CCjzXdTe.d.ts → agentGuiNodeTypes-B9Aq3UEU.d.ts} +3 -1
- package/dist/app/renderer/agentactivity.css +46 -3
- package/dist/{chunk-IIXCU2UU.js → chunk-6ULTMCKP.js} +2 -2
- package/dist/{chunk-52VZ54WH.js → chunk-CTJQTUQ3.js} +6 -6
- package/dist/{chunk-52VZ54WH.js.map → chunk-CTJQTUQ3.js.map} +1 -1
- package/dist/{chunk-PVVM7MZZ.js → chunk-DL6BMEHI.js} +2 -2
- package/dist/{chunk-TFPKI4XJ.js → chunk-DXVMRZHH.js} +2 -6
- package/dist/chunk-DXVMRZHH.js.map +1 -0
- package/dist/{chunk-76GTKO4Q.js → chunk-HNODQVG2.js} +2 -2
- package/dist/{chunk-RDRKIMAC.js → chunk-JTFWT6DK.js} +7 -9
- package/dist/chunk-JTFWT6DK.js.map +1 -0
- package/dist/{chunk-MQ6RKXXW.js → chunk-KRJF7WLJ.js} +15 -3
- package/dist/chunk-KRJF7WLJ.js.map +1 -0
- package/dist/{chunk-FUJ73PTH.js → chunk-LJE2W4EM.js} +3 -5
- package/dist/chunk-LJE2W4EM.js.map +1 -0
- package/dist/{chunk-YFTQK2G4.js → chunk-LQHYHF36.js} +7 -7
- package/dist/chunk-LQHYHF36.js.map +1 -0
- package/dist/{chunk-TG3ZXLPM.js → chunk-MYD37I32.js} +27 -3
- package/dist/chunk-MYD37I32.js.map +1 -0
- package/dist/{chunk-ERWDRI3F.js → chunk-N4I3TD4G.js} +2 -2
- package/dist/{chunk-ERWDRI3F.js.map → chunk-N4I3TD4G.js.map} +1 -1
- package/dist/{chunk-FLTLZGIN.js → chunk-NOTZW5WH.js} +3 -3
- package/dist/{chunk-YUMHFZ5A.js → chunk-P5C3ED3V.js} +3 -2
- package/dist/chunk-P5C3ED3V.js.map +1 -0
- package/dist/{chunk-TT2YJNEP.js → chunk-T3KGZV35.js} +50 -12
- package/dist/chunk-T3KGZV35.js.map +1 -0
- package/dist/{chunk-F6GDUU4X.js → chunk-UBBHWDMP.js} +13 -9
- package/dist/{chunk-F6GDUU4X.js.map → chunk-UBBHWDMP.js.map} +1 -1
- package/dist/{chunk-3NSUJ7OF.js → chunk-UI3YDJTC.js} +39 -5
- package/dist/chunk-UI3YDJTC.js.map +1 -0
- package/dist/{chunk-C465B7WK.js → chunk-VBTPXEFH.js} +2 -2
- package/dist/{chunk-ZTZ6STJZ.js → chunk-Z26P2QNT.js} +2 -2
- package/dist/context-mention-palette/index.js +7 -7
- package/dist/i18n/index.d.ts +14 -2
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +37 -5
- package/dist/index.js +750 -774
- package/dist/index.js.map +1 -1
- package/dist/queued-prompt-runtime.d.ts +22 -3
- package/dist/queued-prompt-runtime.js +1 -1
- package/dist/{types-BAPEle8b.d.ts → types-Bxn8bLEp.d.ts} +14 -1
- package/dist/workbench/contribution.d.ts +1 -1
- package/dist/workbench/contribution.js +5 -5
- package/dist/workbench/index.d.ts +1 -1
- package/dist/workbench/index.js +8 -8
- package/dist/workbench/launch.d.ts +3 -1
- package/dist/workbench/launch.js +1 -1
- package/dist/workbench/providerCatalog.d.ts +1 -1
- package/dist/workbench/sessionTitle.d.ts +1 -1
- package/dist/workbench/sessionTitle.js +3 -3
- package/dist/workbench/state.d.ts +1 -1
- package/dist/workbench/state.js +2 -2
- package/dist/workbench/types.d.ts +1 -1
- package/dist/workspace-agent-generated-files.js +3 -3
- package/package.json +12 -12
- package/dist/app/renderer/assets/icons/@-lined-14px.svg +0 -3
- package/dist/app/renderer/assets/icons/agents/manage-agent-claude-code.png +0 -0
- package/dist/app/renderer/assets/icons/agents/manage-agent-codex.png +0 -0
- package/dist/app/renderer/assets/icons/agents/manage-agent-gemini.png +0 -0
- package/dist/app/renderer/assets/icons/agents/manage-agent-hermes.png +0 -0
- package/dist/app/renderer/assets/icons/agents/manage-agent-openclaw.png +0 -0
- package/dist/app/renderer/assets/icons/agents/tutti-doc-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-claude-code.png +0 -0
- package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-codex.png +0 -0
- package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-gemini.png +0 -0
- package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-nexight.png +0 -0
- package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-openclaw.png +0 -0
- package/dist/app/renderer/assets/icons/arrow-left-filled.svg +0 -1
- package/dist/chunk-3NSUJ7OF.js.map +0 -1
- package/dist/chunk-FUJ73PTH.js.map +0 -1
- package/dist/chunk-MQ6RKXXW.js.map +0 -1
- package/dist/chunk-RDRKIMAC.js.map +0 -1
- package/dist/chunk-TFPKI4XJ.js.map +0 -1
- package/dist/chunk-TG3ZXLPM.js.map +0 -1
- package/dist/chunk-TT2YJNEP.js.map +0 -1
- package/dist/chunk-YFTQK2G4.js.map +0 -1
- package/dist/chunk-YUMHFZ5A.js.map +0 -1
- package/dist/cursor-flat-filled-CL7N3BTZ.svg +0 -3
- /package/dist/{chunk-IIXCU2UU.js.map → chunk-6ULTMCKP.js.map} +0 -0
- /package/dist/{chunk-PVVM7MZZ.js.map → chunk-DL6BMEHI.js.map} +0 -0
- /package/dist/{chunk-76GTKO4Q.js.map → chunk-HNODQVG2.js.map} +0 -0
- /package/dist/{chunk-FLTLZGIN.js.map → chunk-NOTZW5WH.js.map} +0 -0
- /package/dist/{chunk-C465B7WK.js.map → chunk-VBTPXEFH.js.map} +0 -0
- /package/dist/{chunk-ZTZ6STJZ.js.map → chunk-Z26P2QNT.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -10,22 +10,23 @@ import {
|
|
|
10
10
|
resolveAgentGuiSessionProviderIconUrl,
|
|
11
11
|
resolveNextAgentGUIConversationRailWidthPx,
|
|
12
12
|
shouldAutoCollapseAgentGUIConversationRail
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-LJE2W4EM.js";
|
|
14
14
|
import {
|
|
15
15
|
agentGUIDefaultTargetProviders,
|
|
16
16
|
agentGUIProviderTargetRefsEqual,
|
|
17
17
|
createDisabledPlaceholderAgentGUIProviderTarget,
|
|
18
18
|
createLocalAgentGUIProviderTarget,
|
|
19
19
|
createLocalAgentGUIProviderTargets,
|
|
20
|
+
createSharedAgentGUIProviderTarget,
|
|
20
21
|
localAgentGUIAgentTargetId,
|
|
21
22
|
localAgentGUIProviderTargetId,
|
|
22
23
|
normalizeAgentGUIProviderTargets,
|
|
23
24
|
resolveAgentGUIProviderTarget
|
|
24
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-UI3YDJTC.js";
|
|
25
26
|
import {
|
|
26
27
|
AgentInteractivePromptSurface,
|
|
27
28
|
approvalOptionDisplayLabel
|
|
28
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-JTFWT6DK.js";
|
|
29
30
|
import {
|
|
30
31
|
PLAN_IMPLEMENTATION_ACTION_FEEDBACK,
|
|
31
32
|
PLAN_IMPLEMENTATION_ACTION_IMPLEMENT,
|
|
@@ -44,7 +45,7 @@ import {
|
|
|
44
45
|
resolveAgentGUIExplicitConversationTitle,
|
|
45
46
|
resolveAgentGUIProviderDisplayLabel,
|
|
46
47
|
resolveAgentGUIProviderIdentity
|
|
47
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-HNODQVG2.js";
|
|
48
49
|
import {
|
|
49
50
|
AgentConversationFlow,
|
|
50
51
|
Button,
|
|
@@ -65,14 +66,14 @@ import {
|
|
|
65
66
|
skillTriggerForPrefix,
|
|
66
67
|
toLocalShortDateTime,
|
|
67
68
|
useProjectedAgentConversation
|
|
68
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-UBBHWDMP.js";
|
|
69
70
|
import {
|
|
70
71
|
AgentMessageMarkdown,
|
|
71
72
|
AgentTargetPresentationProvider,
|
|
72
73
|
ZoomableImage,
|
|
73
74
|
cn,
|
|
74
75
|
resolveWorkspaceLinkAction
|
|
75
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-T3KGZV35.js";
|
|
76
77
|
import {
|
|
77
78
|
openAgentEnvPanel
|
|
78
79
|
} from "./chunk-PSLAWU25.js";
|
|
@@ -83,7 +84,7 @@ import {
|
|
|
83
84
|
DEFAULT_AGENT_MENTION_FILTER,
|
|
84
85
|
agentMentionItemKey,
|
|
85
86
|
preloadAgentMentionBrowse
|
|
86
|
-
} from "./chunk-
|
|
87
|
+
} from "./chunk-CTJQTUQ3.js";
|
|
87
88
|
import {
|
|
88
89
|
WORKSPACE_AGENT_ACTIVITY_RUNTIME_SESSION_ORIGIN,
|
|
89
90
|
buildWorkspaceAgentActivityListViewModel,
|
|
@@ -93,10 +94,8 @@ import {
|
|
|
93
94
|
isWorkspaceAgentUntitledTask,
|
|
94
95
|
mergeWorkspaceAgentActivityDurableAndOverlayMessages,
|
|
95
96
|
selectWorkspaceAgentActivityOverlayMessages
|
|
96
|
-
} from "./chunk-
|
|
97
|
-
import
|
|
98
|
-
Spinner
|
|
99
|
-
} from "./chunk-TFPKI4XJ.js";
|
|
97
|
+
} from "./chunk-Z26P2QNT.js";
|
|
98
|
+
import "./chunk-DXVMRZHH.js";
|
|
100
99
|
import {
|
|
101
100
|
resolveWorkspaceAgentSessionSortTimeUnixMs
|
|
102
101
|
} from "./chunk-IBIMGLCD.js";
|
|
@@ -107,7 +106,7 @@ import {
|
|
|
107
106
|
mentionItemToAttrs,
|
|
108
107
|
normalizeAgentSessionMentionTitle,
|
|
109
108
|
parseMentionItemFromHref
|
|
110
|
-
} from "./chunk-
|
|
109
|
+
} from "./chunk-NOTZW5WH.js";
|
|
111
110
|
import "./chunk-Y35GDLP2.js";
|
|
112
111
|
import "./chunk-LUGELG5V.js";
|
|
113
112
|
import {
|
|
@@ -129,7 +128,7 @@ import {
|
|
|
129
128
|
useAgentHostApi,
|
|
130
129
|
useOptionalAgentActivityRuntime,
|
|
131
130
|
useOptionalAgentHostApi
|
|
132
|
-
} from "./chunk-
|
|
131
|
+
} from "./chunk-N4I3TD4G.js";
|
|
133
132
|
import "./chunk-TYGL25EL.js";
|
|
134
133
|
import {
|
|
135
134
|
AgentGuiI18nProvider,
|
|
@@ -137,21 +136,21 @@ import {
|
|
|
137
136
|
agentGuiI18nResources,
|
|
138
137
|
translate,
|
|
139
138
|
useTranslation
|
|
140
|
-
} from "./chunk-
|
|
139
|
+
} from "./chunk-6ULTMCKP.js";
|
|
141
140
|
import "./chunk-PJP5BUU6.js";
|
|
142
141
|
import {
|
|
143
142
|
agentColorfulUrl,
|
|
144
143
|
cursorColorfulUrl,
|
|
145
144
|
normalizeManagedAgentProvider
|
|
146
145
|
} from "./chunk-R2NGSPQS.js";
|
|
147
|
-
import "./chunk-
|
|
146
|
+
import "./chunk-KRJF7WLJ.js";
|
|
148
147
|
import {
|
|
149
148
|
AGENT_CONTEXT_MENTION_PROVIDER_IDS
|
|
150
149
|
} from "./chunk-JM24HADP.js";
|
|
151
150
|
import "./chunk-GCBDIQDX.js";
|
|
152
151
|
import {
|
|
153
152
|
createAgentQueuedPromptRuntime
|
|
154
|
-
} from "./chunk-
|
|
153
|
+
} from "./chunk-MYD37I32.js";
|
|
155
154
|
|
|
156
155
|
// shared/agentActivitySnapshotProjection.ts
|
|
157
156
|
import {
|
|
@@ -314,7 +313,7 @@ function agentHostTurnPhaseFromDisplay(status) {
|
|
|
314
313
|
|
|
315
314
|
// AgentGUI.tsx
|
|
316
315
|
import { memo as memo3 } from "react";
|
|
317
|
-
import { TooltipProvider as
|
|
316
|
+
import { TooltipProvider as TooltipProvider4 } from "@tutti-os/ui-system";
|
|
318
317
|
|
|
319
318
|
// agent-gui/agentGuiNode/AgentGUINode.tsx
|
|
320
319
|
import { memo as memo2, useCallback as useCallback12, useEffect as useEffect15, useMemo as useMemo11 } from "react";
|
|
@@ -456,22 +455,10 @@ function GridTopLinedIcon(props) {
|
|
|
456
455
|
);
|
|
457
456
|
}
|
|
458
457
|
|
|
459
|
-
//
|
|
458
|
+
// agent-gui/workspaceDesktop/view/WindowLayoutMenuButton.tsx
|
|
460
459
|
import {
|
|
461
460
|
DropdownMenu,
|
|
462
|
-
DropdownMenuCheckboxItem,
|
|
463
461
|
DropdownMenuContent,
|
|
464
|
-
DropdownMenuGroup,
|
|
465
|
-
DropdownMenuItem,
|
|
466
|
-
DropdownMenuLabel,
|
|
467
|
-
DropdownMenuPortal,
|
|
468
|
-
DropdownMenuRadioGroup,
|
|
469
|
-
DropdownMenuRadioItem,
|
|
470
|
-
DropdownMenuSeparator,
|
|
471
|
-
DropdownMenuShortcut,
|
|
472
|
-
DropdownMenuSub,
|
|
473
|
-
DropdownMenuSubContent,
|
|
474
|
-
DropdownMenuSubTrigger,
|
|
475
462
|
DropdownMenuTrigger
|
|
476
463
|
} from "@tutti-os/ui-system";
|
|
477
464
|
|
|
@@ -2251,6 +2238,7 @@ function getTestAgentQueuedPromptRuntime() {
|
|
|
2251
2238
|
|
|
2252
2239
|
// agent-gui/agentGuiNode/controller/useAgentGUINodeController.ts
|
|
2253
2240
|
import {
|
|
2241
|
+
resolveSubmitAvailability,
|
|
2254
2242
|
resolveAgentActivityCapability as resolveAgentActivityCapability2,
|
|
2255
2243
|
resolveAgentActivityUsage,
|
|
2256
2244
|
selectSessionDisplayStatuses
|
|
@@ -2766,7 +2754,7 @@ function resolveConversationProject(session, projectResolver) {
|
|
|
2766
2754
|
}
|
|
2767
2755
|
function isExternalImportNoProjectSession(session) {
|
|
2768
2756
|
const runtimeContext = session && "runtimeContext" in session ? session.runtimeContext : void 0;
|
|
2769
|
-
return runtimeContext?.externalImportNoProject === true;
|
|
2757
|
+
return runtimeContext?.noProject === true || runtimeContext?.externalImportNoProject === true;
|
|
2770
2758
|
}
|
|
2771
2759
|
function isImportedWorkspaceAgentSession(session) {
|
|
2772
2760
|
return session?.runtimeContext?.imported === true;
|
|
@@ -6733,6 +6721,7 @@ var ACTIVITY_STREAM_STATE_RELOAD_DEBOUNCE_MS = 150;
|
|
|
6733
6721
|
var AGENT_GUI_DETAIL_MESSAGES_PAGE_SIZE = 100;
|
|
6734
6722
|
var AGENT_GUI_DETAIL_MISSING_USER_BACKFILL_PAGE_LIMIT = 3;
|
|
6735
6723
|
var AGENT_GUI_SUBMIT_RETARGET_EARLY_MESSAGE_TOLERANCE_MS = 5e3;
|
|
6724
|
+
var GOAL_CLEAR_PROMPT = "/goal clear";
|
|
6736
6725
|
function mergeAgentModelCatalogInvalidationEvents(events) {
|
|
6737
6726
|
const providers = /* @__PURE__ */ new Set();
|
|
6738
6727
|
let occurredAtUnixMs = 0;
|
|
@@ -8849,6 +8838,7 @@ function useAgentGUINodeController({
|
|
|
8849
8838
|
data,
|
|
8850
8839
|
providerTargets,
|
|
8851
8840
|
providerTargetsLoading = false,
|
|
8841
|
+
providerRailMode = "catalog",
|
|
8852
8842
|
comingSoonProviders,
|
|
8853
8843
|
providerReadinessGates = null,
|
|
8854
8844
|
defaultProviderTargetId = null,
|
|
@@ -8867,21 +8857,22 @@ function useAgentGUINodeController({
|
|
|
8867
8857
|
() => comingSoonProviders && comingSoonProviders.length > 0 ? [...comingSoonProviders] : emptyComingSoonProviders,
|
|
8868
8858
|
[comingSoonProviders]
|
|
8869
8859
|
);
|
|
8870
|
-
const
|
|
8871
|
-
|
|
8872
|
-
|
|
8873
|
-
|
|
8874
|
-
|
|
8875
|
-
|
|
8860
|
+
const isExactProviderRailMode = providerRailMode === "exact";
|
|
8861
|
+
const normalizedExplicitProviderTargets = useMemo4(() => {
|
|
8862
|
+
const normalized = normalizeAgentGUIProviderTargets(providerTargets, {
|
|
8863
|
+
includeDisabledPlaceholders: !isExactProviderRailMode,
|
|
8864
|
+
useStaticCatalog: false
|
|
8865
|
+
});
|
|
8866
|
+
return isExactProviderRailMode ? normalized : applyComingSoonProviderTargets(
|
|
8867
|
+
normalized,
|
|
8876
8868
|
normalizedComingSoonProviders
|
|
8877
|
-
)
|
|
8878
|
-
|
|
8879
|
-
);
|
|
8869
|
+
);
|
|
8870
|
+
}, [isExactProviderRailMode, normalizedComingSoonProviders, providerTargets]);
|
|
8880
8871
|
const normalizedProviderTargets = useMemo4(() => {
|
|
8881
8872
|
if (providerTargetsLoading) {
|
|
8882
8873
|
return [];
|
|
8883
8874
|
}
|
|
8884
|
-
if (providerTargets === void 0 || normalizedExplicitProviderTargets.length === 0) {
|
|
8875
|
+
if (!isExactProviderRailMode && (providerTargets === void 0 || normalizedExplicitProviderTargets.length === 0)) {
|
|
8885
8876
|
return applyComingSoonProviderTargets(
|
|
8886
8877
|
normalizeAgentGUIProviderTargets(null, {
|
|
8887
8878
|
includeDisabledPlaceholders: true
|
|
@@ -8891,12 +8882,13 @@ function useAgentGUINodeController({
|
|
|
8891
8882
|
}
|
|
8892
8883
|
return normalizedExplicitProviderTargets;
|
|
8893
8884
|
}, [
|
|
8885
|
+
isExactProviderRailMode,
|
|
8894
8886
|
normalizedExplicitProviderTargets,
|
|
8895
8887
|
normalizedComingSoonProviders,
|
|
8896
8888
|
providerTargets,
|
|
8897
8889
|
providerTargetsLoading
|
|
8898
8890
|
]);
|
|
8899
|
-
const shouldUseStaticProviderTargets = !providerTargetsLoading && (providerTargets === void 0 || normalizedExplicitProviderTargets.length === 0);
|
|
8891
|
+
const shouldUseStaticProviderTargets = !isExactProviderRailMode && !providerTargetsLoading && (providerTargets === void 0 || normalizedExplicitProviderTargets.length === 0);
|
|
8900
8892
|
const selectedProviderTarget = useMemo4(() => {
|
|
8901
8893
|
const resolved = resolveAgentGUIProviderTarget({
|
|
8902
8894
|
agentTargetId: data.agentTargetId,
|
|
@@ -9395,6 +9387,8 @@ function useAgentGUINodeController({
|
|
|
9395
9387
|
);
|
|
9396
9388
|
const handledOpenSessionSequenceRef = useRef4(null);
|
|
9397
9389
|
const pendingOpenSessionRequestRef = useRef4(null);
|
|
9390
|
+
const explicitlyOpenedConversationIdsRef = useRef4(/* @__PURE__ */ new Set());
|
|
9391
|
+
const railPinnedTransientConversationIdsRef = useRef4(/* @__PURE__ */ new Set());
|
|
9398
9392
|
const selectedConversationNotFoundRetryIdsRef = useRef4(/* @__PURE__ */ new Set());
|
|
9399
9393
|
const selectedConversationNotFoundRetryTimerRef = useRef4(null);
|
|
9400
9394
|
const sessionStateSnapshotCauseBySessionIdRef = useRef4({});
|
|
@@ -9496,6 +9490,78 @@ function useAgentGUINodeController({
|
|
|
9496
9490
|
},
|
|
9497
9491
|
[]
|
|
9498
9492
|
);
|
|
9493
|
+
const conversationSummaryFromRuntimeSession = useCallback4(
|
|
9494
|
+
(session) => {
|
|
9495
|
+
const updatedAtUnixMs = session.updatedAtUnixMs ?? Date.now();
|
|
9496
|
+
const projectedSession = {
|
|
9497
|
+
workspaceId: session.workspaceId,
|
|
9498
|
+
agentSessionId: session.agentSessionId,
|
|
9499
|
+
agentTargetId: session.agentTargetId ?? null,
|
|
9500
|
+
provider: session.provider,
|
|
9501
|
+
providerSessionId: session.providerSessionId ?? session.agentSessionId,
|
|
9502
|
+
resumable: session.resumable,
|
|
9503
|
+
cwd: session.cwd,
|
|
9504
|
+
status: session.status,
|
|
9505
|
+
title: session.title,
|
|
9506
|
+
pinnedAtUnixMs: session.pinnedAtUnixMs ?? null,
|
|
9507
|
+
createdAtUnixMs: session.createdAtUnixMs ?? updatedAtUnixMs,
|
|
9508
|
+
updatedAtUnixMs
|
|
9509
|
+
};
|
|
9510
|
+
return conversationSummaryFromAgentSession(projectedSession, {
|
|
9511
|
+
isNoProjectPath: isNoProjectPathRef.current,
|
|
9512
|
+
userProjects: userProjectsRef.current
|
|
9513
|
+
});
|
|
9514
|
+
},
|
|
9515
|
+
[]
|
|
9516
|
+
);
|
|
9517
|
+
const ensureTransientOpenSessionConversation = useCallback4(
|
|
9518
|
+
(agentSessionId) => {
|
|
9519
|
+
const normalizedAgentSessionId = agentSessionId.trim();
|
|
9520
|
+
if (!normalizedAgentSessionId) {
|
|
9521
|
+
return;
|
|
9522
|
+
}
|
|
9523
|
+
if (resolveConversationSummaryById(
|
|
9524
|
+
conversationsRef.current,
|
|
9525
|
+
normalizedAgentSessionId,
|
|
9526
|
+
transientConversationRef.current
|
|
9527
|
+
)) {
|
|
9528
|
+
return;
|
|
9529
|
+
}
|
|
9530
|
+
const snapshotSession = agentActivitySnapshotRef.current.sessions.find(
|
|
9531
|
+
(session) => session.agentSessionId.trim() === normalizedAgentSessionId && session.visible !== false
|
|
9532
|
+
);
|
|
9533
|
+
if (snapshotSession) {
|
|
9534
|
+
setTransientConversation(
|
|
9535
|
+
conversationSummaryFromRuntimeSession(snapshotSession)
|
|
9536
|
+
);
|
|
9537
|
+
return;
|
|
9538
|
+
}
|
|
9539
|
+
void agentActivityRuntime.getSession(workspaceId, normalizedAgentSessionId).then((session) => {
|
|
9540
|
+
const shouldKeepTransient = explicitlyOpenedConversationIdsRef.current.has(
|
|
9541
|
+
normalizedAgentSessionId
|
|
9542
|
+
) || railPinnedTransientConversationIdsRef.current.has(
|
|
9543
|
+
normalizedAgentSessionId
|
|
9544
|
+
);
|
|
9545
|
+
if (!isMountedRef.current || activeConversationIdRef.current !== normalizedAgentSessionId || !shouldKeepTransient || resolveConversationSummaryById(
|
|
9546
|
+
conversationsRef.current,
|
|
9547
|
+
normalizedAgentSessionId,
|
|
9548
|
+
transientConversationRef.current
|
|
9549
|
+
)) {
|
|
9550
|
+
return;
|
|
9551
|
+
}
|
|
9552
|
+
setTransientConversation(
|
|
9553
|
+
conversationSummaryFromRuntimeSession(session)
|
|
9554
|
+
);
|
|
9555
|
+
}).catch(() => {
|
|
9556
|
+
});
|
|
9557
|
+
},
|
|
9558
|
+
[
|
|
9559
|
+
agentActivityRuntime,
|
|
9560
|
+
conversationSummaryFromRuntimeSession,
|
|
9561
|
+
setTransientConversation,
|
|
9562
|
+
workspaceId
|
|
9563
|
+
]
|
|
9564
|
+
);
|
|
9499
9565
|
const ensureOpenclawGateway = useCallback4(() => {
|
|
9500
9566
|
if (dataRef.current.provider !== "openclaw") {
|
|
9501
9567
|
setOpenclawGateway(null);
|
|
@@ -9909,6 +9975,8 @@ function useAgentGUINodeController({
|
|
|
9909
9975
|
setTransientConversation(
|
|
9910
9976
|
(current) => current?.id === normalized ? { ...current, hasUnreadCompletion: false } : current
|
|
9911
9977
|
);
|
|
9978
|
+
} else if (transientConversationRef.current) {
|
|
9979
|
+
setTransientConversation(null);
|
|
9912
9980
|
}
|
|
9913
9981
|
persistActiveConversation(normalized);
|
|
9914
9982
|
},
|
|
@@ -9917,7 +9985,8 @@ function useAgentGUINodeController({
|
|
|
9917
9985
|
clearSelectedConversationNotFoundRetry,
|
|
9918
9986
|
conversationListQuery,
|
|
9919
9987
|
markSelectedConversationDetailPending,
|
|
9920
|
-
persistActiveConversation
|
|
9988
|
+
persistActiveConversation,
|
|
9989
|
+
setTransientConversation
|
|
9921
9990
|
]
|
|
9922
9991
|
);
|
|
9923
9992
|
const syncConversationListProjection = useCallback4(
|
|
@@ -10050,42 +10119,41 @@ function useAgentGUINodeController({
|
|
|
10050
10119
|
id,
|
|
10051
10120
|
transientConversationRef.current
|
|
10052
10121
|
) !== null;
|
|
10122
|
+
const resolveCanonicalId = (id) => resolveConversationSummaryById(conversations, id, null) !== null;
|
|
10053
10123
|
const inSnapshot = (id) => agentActivitySnapshotRef.current.sessions.some(
|
|
10054
10124
|
(s) => s.agentSessionId.trim() === id && s.visible !== false
|
|
10055
10125
|
);
|
|
10056
10126
|
if (hasExplicitOpenSessionRequest) {
|
|
10057
10127
|
const requestedId = pendingOpenSessionRequest.agentSessionId.trim();
|
|
10058
|
-
if (resolveId(requestedId)) {
|
|
10059
|
-
pendingOpenSessionRequestRef.current = null;
|
|
10060
|
-
selectConversation(requestedId, { reloadConversations: false });
|
|
10061
|
-
return;
|
|
10062
|
-
}
|
|
10063
10128
|
if (!hasLoadedConversations) return;
|
|
10064
|
-
|
|
10065
|
-
|
|
10066
|
-
|
|
10067
|
-
|
|
10068
|
-
|
|
10069
|
-
}
|
|
10070
|
-
if (!isAgentGUIConversationListRefreshing(conversationListQuery)) {
|
|
10071
|
-
pendingOpenSessionRequestRef.current = null;
|
|
10072
|
-
const fallback = selectAgentGUIConversationId(
|
|
10073
|
-
conversations,
|
|
10074
|
-
activeConversationIdRef.current
|
|
10075
|
-
);
|
|
10076
|
-
if (fallback) {
|
|
10077
|
-
selectConversation(fallback, { reloadConversations: false });
|
|
10078
|
-
} else {
|
|
10079
|
-
setIntent({ tag: "home" });
|
|
10080
|
-
}
|
|
10081
|
-
}
|
|
10129
|
+
explicitlyOpenedConversationIdsRef.current.add(requestedId);
|
|
10130
|
+
railPinnedTransientConversationIdsRef.current.add(requestedId);
|
|
10131
|
+
pendingOpenSessionRequestRef.current = null;
|
|
10132
|
+
selectConversation(requestedId, { reloadConversations: false });
|
|
10133
|
+
ensureTransientOpenSessionConversation(requestedId);
|
|
10082
10134
|
return;
|
|
10083
10135
|
}
|
|
10084
10136
|
switch (intent.tag) {
|
|
10085
10137
|
case "home":
|
|
10086
10138
|
return;
|
|
10087
10139
|
case "active":
|
|
10088
|
-
if (
|
|
10140
|
+
if (resolveCanonicalId(intent.id)) {
|
|
10141
|
+
explicitlyOpenedConversationIdsRef.current.delete(intent.id);
|
|
10142
|
+
railPinnedTransientConversationIdsRef.current.delete(intent.id);
|
|
10143
|
+
return;
|
|
10144
|
+
}
|
|
10145
|
+
if (resolveId(intent.id)) {
|
|
10146
|
+
return;
|
|
10147
|
+
}
|
|
10148
|
+
if (!hasLoadedConversations) return;
|
|
10149
|
+
if (inSnapshot(intent.id) && activeConversationIdRef.current === intent.id) {
|
|
10150
|
+
railPinnedTransientConversationIdsRef.current.add(intent.id);
|
|
10151
|
+
ensureTransientOpenSessionConversation(intent.id);
|
|
10152
|
+
return;
|
|
10153
|
+
}
|
|
10154
|
+
if (explicitlyOpenedConversationIdsRef.current.has(intent.id) && activeConversationIdRef.current === intent.id) {
|
|
10155
|
+
return;
|
|
10156
|
+
}
|
|
10089
10157
|
setIntent({ tag: "requested", id: intent.id });
|
|
10090
10158
|
return;
|
|
10091
10159
|
case "requested": {
|
|
@@ -10098,7 +10166,14 @@ function useAgentGUINodeController({
|
|
|
10098
10166
|
selectConversation(intent.id, { reloadConversations: false });
|
|
10099
10167
|
return;
|
|
10100
10168
|
}
|
|
10101
|
-
if (inSnapshot(intent.id))
|
|
10169
|
+
if (inSnapshot(intent.id)) {
|
|
10170
|
+
if (activeConversationIdRef.current === intent.id) {
|
|
10171
|
+
railPinnedTransientConversationIdsRef.current.add(intent.id);
|
|
10172
|
+
ensureTransientOpenSessionConversation(intent.id);
|
|
10173
|
+
setIntent({ tag: "active", id: intent.id });
|
|
10174
|
+
}
|
|
10175
|
+
return;
|
|
10176
|
+
}
|
|
10102
10177
|
setIntent({ tag: "resolving", id: intent.id });
|
|
10103
10178
|
void syncConversationListProjection(intent.id);
|
|
10104
10179
|
return;
|
|
@@ -10125,6 +10200,7 @@ function useAgentGUINodeController({
|
|
|
10125
10200
|
intent,
|
|
10126
10201
|
conversations,
|
|
10127
10202
|
hasLoadedConversations,
|
|
10203
|
+
ensureTransientOpenSessionConversation,
|
|
10128
10204
|
openSessionRequest,
|
|
10129
10205
|
previewMode,
|
|
10130
10206
|
syncConversationListProjection,
|
|
@@ -12355,7 +12431,7 @@ function useAgentGUINodeController({
|
|
|
12355
12431
|
workspaceId
|
|
12356
12432
|
]);
|
|
12357
12433
|
const executePrompt = useCallback4(
|
|
12358
|
-
(agentSessionId, content, displayPrompt) => {
|
|
12434
|
+
(agentSessionId, content, displayPrompt, options) => {
|
|
12359
12435
|
const normalizedContent = normalizeAgentPromptContentBlocks(content);
|
|
12360
12436
|
if (!agentSessionId || normalizedContent.length === 0) {
|
|
12361
12437
|
return;
|
|
@@ -12475,6 +12551,7 @@ function useAgentGUINodeController({
|
|
|
12475
12551
|
agentSessionId,
|
|
12476
12552
|
content: normalizedContent,
|
|
12477
12553
|
displayPrompt: displayPrompt && displayPrompt.trim() ? displayPrompt : null,
|
|
12554
|
+
...options?.guidance === true ? { guidance: true } : {},
|
|
12478
12555
|
metadata: agentSubmitTraceMetadata(submitTrace)
|
|
12479
12556
|
});
|
|
12480
12557
|
}).then((result) => {
|
|
@@ -12707,7 +12784,12 @@ function useAgentGUINodeController({
|
|
|
12707
12784
|
);
|
|
12708
12785
|
return;
|
|
12709
12786
|
}
|
|
12710
|
-
|
|
12787
|
+
const hasQueuedPrompts = agentQueuedPromptRuntime.getSessionSnapshot({
|
|
12788
|
+
workspaceId,
|
|
12789
|
+
agentSessionId
|
|
12790
|
+
}).prompts.length > 0;
|
|
12791
|
+
agentQueuedPromptRuntime.resumeQueue({ workspaceId, agentSessionId });
|
|
12792
|
+
if ((hasQueuedPrompts || shouldQueuePromptLocally(agentSessionId)) && options?.bypassLocalQueue !== true) {
|
|
12711
12793
|
queuePromptLocally(
|
|
12712
12794
|
agentSessionId,
|
|
12713
12795
|
normalizedContent,
|
|
@@ -12715,14 +12797,18 @@ function useAgentGUINodeController({
|
|
|
12715
12797
|
);
|
|
12716
12798
|
return;
|
|
12717
12799
|
}
|
|
12718
|
-
executePrompt(agentSessionId, normalizedContent, displayPromptText
|
|
12800
|
+
executePrompt(agentSessionId, normalizedContent, displayPromptText, {
|
|
12801
|
+
guidance: options?.guidance === true
|
|
12802
|
+
});
|
|
12719
12803
|
},
|
|
12720
12804
|
[
|
|
12721
12805
|
activation,
|
|
12806
|
+
agentQueuedPromptRuntime,
|
|
12722
12807
|
executePrompt,
|
|
12723
12808
|
isSessionMarkedNonResumable,
|
|
12724
12809
|
queuePromptLocally,
|
|
12725
|
-
shouldQueuePromptLocally
|
|
12810
|
+
shouldQueuePromptLocally,
|
|
12811
|
+
workspaceId
|
|
12726
12812
|
]
|
|
12727
12813
|
);
|
|
12728
12814
|
const goalControl = useCallback4(
|
|
@@ -12735,6 +12821,14 @@ function useAgentGUINodeController({
|
|
|
12735
12821
|
return;
|
|
12736
12822
|
}
|
|
12737
12823
|
setDetailError(null);
|
|
12824
|
+
if (action === "clear") {
|
|
12825
|
+
executePrompt(
|
|
12826
|
+
agentSessionId,
|
|
12827
|
+
textPromptContent(GOAL_CLEAR_PROMPT),
|
|
12828
|
+
GOAL_CLEAR_PROMPT
|
|
12829
|
+
);
|
|
12830
|
+
return;
|
|
12831
|
+
}
|
|
12738
12832
|
void agentActivityRuntime.goalControl({
|
|
12739
12833
|
workspaceId,
|
|
12740
12834
|
agentSessionId,
|
|
@@ -12749,6 +12843,7 @@ function useAgentGUINodeController({
|
|
|
12749
12843
|
},
|
|
12750
12844
|
[
|
|
12751
12845
|
agentActivityRuntime,
|
|
12846
|
+
executePrompt,
|
|
12752
12847
|
isCurrentConversation,
|
|
12753
12848
|
previewMode,
|
|
12754
12849
|
setDetailError,
|
|
@@ -12848,7 +12943,7 @@ function useAgentGUINodeController({
|
|
|
12848
12943
|
agentSessionId,
|
|
12849
12944
|
normalizedContent,
|
|
12850
12945
|
displayPromptText,
|
|
12851
|
-
{ bypassLocalQueue: true }
|
|
12946
|
+
{ bypassLocalQueue: true, guidance: true }
|
|
12852
12947
|
);
|
|
12853
12948
|
},
|
|
12854
12949
|
[
|
|
@@ -12966,6 +13061,11 @@ function useAgentGUINodeController({
|
|
|
12966
13061
|
...current,
|
|
12967
13062
|
[agentSessionId]: true
|
|
12968
13063
|
}));
|
|
13064
|
+
agentQueuedPromptRuntime.suspendQueue({
|
|
13065
|
+
workspaceId,
|
|
13066
|
+
agentSessionId,
|
|
13067
|
+
reason: "user_stop"
|
|
13068
|
+
});
|
|
12969
13069
|
setDetailError(null);
|
|
12970
13070
|
void Promise.resolve().then(() => {
|
|
12971
13071
|
if (!isCurrentConversation(agentSessionId)) {
|
|
@@ -13043,6 +13143,7 @@ function useAgentGUINodeController({
|
|
|
13043
13143
|
});
|
|
13044
13144
|
},
|
|
13045
13145
|
[
|
|
13146
|
+
agentQueuedPromptRuntime,
|
|
13046
13147
|
interruptingSessionIds,
|
|
13047
13148
|
isCurrentConversation,
|
|
13048
13149
|
syncConversationListProjection,
|
|
@@ -14146,10 +14247,8 @@ function useAgentGUINodeController({
|
|
|
14146
14247
|
null
|
|
14147
14248
|
);
|
|
14148
14249
|
const visibleConversations = useMemo4(() => {
|
|
14149
|
-
const
|
|
14150
|
-
|
|
14151
|
-
transientConversationRef.current
|
|
14152
|
-
);
|
|
14250
|
+
const transient = transientConversationRef.current;
|
|
14251
|
+
const source = transient && (isLoadingConversations || explicitlyOpenedConversationIdsRef.current.has(transient.id) || railPinnedTransientConversationIdsRef.current.has(transient.id)) ? mergeVisibleConversations(conversations, transient) : conversations;
|
|
14153
14252
|
const mapped = source.map((conversation2) => {
|
|
14154
14253
|
const withRuntime = mergeConversationSummaryWithRuntimeSession({
|
|
14155
14254
|
conversation: conversation2,
|
|
@@ -14500,7 +14599,7 @@ function useAgentGUINodeController({
|
|
|
14500
14599
|
]);
|
|
14501
14600
|
const activeActivityDisplayStatus = activeConversationId ? agentActivityDisplayStatuses.get(activeConversationId) ?? null : null;
|
|
14502
14601
|
const activeHasPendingSubmittedTurn = activeConversationId ? Boolean(pendingTurnIdBySessionIdRef.current[activeConversationId]) : false;
|
|
14503
|
-
const activeSubmitBlocked = activeSessionState
|
|
14602
|
+
const activeSubmitBlocked = activeSessionState ? resolveSubmitAvailability(activeSessionState).state === "blocked" : false;
|
|
14504
14603
|
const activeConversationBusy = agentActivityDisplayStatusBusy(activeActivityDisplayStatus) || activeHasPendingSubmittedTurn || activeSubmitBlocked;
|
|
14505
14604
|
const activeSessionResumable = activeRuntimeSession?.resumable ?? activeConversation?.resumable ?? activeSessionState?.resumable;
|
|
14506
14605
|
const normalizedActiveConversationId = activeConversationId ?? "";
|
|
@@ -15080,6 +15179,7 @@ function useAgentGUINodeController({
|
|
|
15080
15179
|
selectedProviderTarget: effectiveSelectedProviderTarget,
|
|
15081
15180
|
providerTargets: normalizedProviderTargets,
|
|
15082
15181
|
providerTargetsLoading,
|
|
15182
|
+
providerRailMode,
|
|
15083
15183
|
comingSoonProviders: normalizedComingSoonProviders,
|
|
15084
15184
|
conversationFilter,
|
|
15085
15185
|
conversations: visibleConversations,
|
|
@@ -15153,6 +15253,7 @@ function useAgentGUINodeController({
|
|
|
15153
15253
|
effectiveSelectedProviderTarget,
|
|
15154
15254
|
normalizedComingSoonProviders,
|
|
15155
15255
|
normalizedProviderTargets,
|
|
15256
|
+
providerRailMode,
|
|
15156
15257
|
providerReadinessGate,
|
|
15157
15258
|
providerTargetsLoading,
|
|
15158
15259
|
detailError,
|
|
@@ -15385,8 +15486,8 @@ import {
|
|
|
15385
15486
|
useRef as useRef12,
|
|
15386
15487
|
useState as useState12
|
|
15387
15488
|
} from "react";
|
|
15388
|
-
import { useSnapshot } from "valtio";
|
|
15389
|
-
import { proxy as
|
|
15489
|
+
import { useSnapshot as useSnapshot2 } from "valtio";
|
|
15490
|
+
import { proxy as proxy3 } from "valtio/vanilla";
|
|
15390
15491
|
import {
|
|
15391
15492
|
ChevronRight as ChevronRight2,
|
|
15392
15493
|
ChevronsDown,
|
|
@@ -15395,16 +15496,6 @@ import {
|
|
|
15395
15496
|
Wrench
|
|
15396
15497
|
} from "lucide-react";
|
|
15397
15498
|
|
|
15398
|
-
// app/renderer/components/ui/popover.tsx
|
|
15399
|
-
import {
|
|
15400
|
-
Popover,
|
|
15401
|
-
PopoverAnchor,
|
|
15402
|
-
PopoverClose,
|
|
15403
|
-
PopoverContent,
|
|
15404
|
-
PopoverPortal,
|
|
15405
|
-
PopoverTrigger
|
|
15406
|
-
} from "@tutti-os/ui-system";
|
|
15407
|
-
|
|
15408
15499
|
// agent-gui/agentGuiNode/model/agentUsageThresholds.ts
|
|
15409
15500
|
var USAGE_WARN_PERCENT = 80;
|
|
15410
15501
|
var USAGE_CRITICAL_PERCENT = 95;
|
|
@@ -15453,22 +15544,42 @@ function AgentUsageMeter({
|
|
|
15453
15544
|
] });
|
|
15454
15545
|
}
|
|
15455
15546
|
|
|
15547
|
+
// shared/workspaceSettingsPanel/workspaceSettingsPanelStore.ts
|
|
15548
|
+
import { useSnapshot } from "valtio";
|
|
15549
|
+
import { proxy } from "valtio/vanilla";
|
|
15550
|
+
var workspaceSettingsPanelStore = proxy({
|
|
15551
|
+
section: null,
|
|
15552
|
+
requestSequence: 0
|
|
15553
|
+
});
|
|
15554
|
+
function openWorkspaceSettingsPanel(input) {
|
|
15555
|
+
workspaceSettingsPanelStore.section = input?.section ?? null;
|
|
15556
|
+
workspaceSettingsPanelStore.requestSequence += 1;
|
|
15557
|
+
}
|
|
15558
|
+
|
|
15456
15559
|
// agent-gui/agentGuiNode/AgentGUINodeView.tsx
|
|
15457
15560
|
import {
|
|
15458
15561
|
ReferenceSourcePicker,
|
|
15459
15562
|
WorkspaceFileReferencePicker
|
|
15460
15563
|
} from "@tutti-os/workspace-file-reference/ui";
|
|
15461
15564
|
import {
|
|
15462
|
-
Tooltip as
|
|
15463
|
-
TooltipContent as
|
|
15464
|
-
TooltipProvider as
|
|
15465
|
-
TooltipTrigger as
|
|
15565
|
+
Tooltip as Tooltip4,
|
|
15566
|
+
TooltipContent as TooltipContent4,
|
|
15567
|
+
TooltipProvider as TooltipProvider3,
|
|
15568
|
+
TooltipTrigger as TooltipTrigger4,
|
|
15466
15569
|
Select as Select3,
|
|
15467
15570
|
SelectContent as SelectContent3,
|
|
15468
15571
|
SelectItem as SelectItem3,
|
|
15469
15572
|
SelectTrigger as SelectTrigger3,
|
|
15470
15573
|
NewWorkspaceLinedIcon as NewWorkspaceLinedIcon2,
|
|
15471
15574
|
ConfirmationDialog,
|
|
15575
|
+
DropdownMenu as DropdownMenu4,
|
|
15576
|
+
DropdownMenuContent as DropdownMenuContent4,
|
|
15577
|
+
DropdownMenuItem as DropdownMenuItem3,
|
|
15578
|
+
DropdownMenuTrigger as DropdownMenuTrigger4,
|
|
15579
|
+
Popover as Popover2,
|
|
15580
|
+
PopoverContent as PopoverContent2,
|
|
15581
|
+
PopoverTrigger,
|
|
15582
|
+
StatusDot,
|
|
15472
15583
|
toastVariants,
|
|
15473
15584
|
cn as cn3
|
|
15474
15585
|
} from "@tutti-os/ui-system";
|
|
@@ -15532,11 +15643,11 @@ function UnavailableChatIcon(props) {
|
|
|
15532
15643
|
);
|
|
15533
15644
|
}
|
|
15534
15645
|
|
|
15535
|
-
// app/renderer/components/icons/
|
|
15536
|
-
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
15537
|
-
function
|
|
15646
|
+
// app/renderer/components/icons/SettingsLinedIcon.tsx
|
|
15647
|
+
import { jsx as jsx16, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
15648
|
+
function SettingsLinedIcon(props) {
|
|
15538
15649
|
"use memo";
|
|
15539
|
-
return /* @__PURE__ */
|
|
15650
|
+
return /* @__PURE__ */ jsxs5(
|
|
15540
15651
|
"svg",
|
|
15541
15652
|
{
|
|
15542
15653
|
width: "24",
|
|
@@ -15545,367 +15656,44 @@ function EnvironmentLinedIcon(props) {
|
|
|
15545
15656
|
fill: "none",
|
|
15546
15657
|
xmlns: "http://www.w3.org/2000/svg",
|
|
15547
15658
|
...props,
|
|
15548
|
-
children:
|
|
15549
|
-
|
|
15550
|
-
|
|
15551
|
-
|
|
15552
|
-
|
|
15553
|
-
|
|
15554
|
-
|
|
15659
|
+
children: [
|
|
15660
|
+
/* @__PURE__ */ jsx16(
|
|
15661
|
+
"path",
|
|
15662
|
+
{
|
|
15663
|
+
fillRule: "evenodd",
|
|
15664
|
+
clipRule: "evenodd",
|
|
15665
|
+
d: "M12 8C9.79088 8 8.00002 9.79086 8.00002 12C8.00002 14.2091 9.79088 16 12 16C14.2092 16 16 14.2091 16 12C16 9.79086 14.2092 8 12 8ZM10 12C10 10.8954 10.8955 10 12 10C13.1046 10 14 10.8954 14 12C14 13.1046 13.1046 14 12 14C10.8955 14 10 13.1046 10 12Z",
|
|
15666
|
+
fill: "currentColor"
|
|
15667
|
+
}
|
|
15668
|
+
),
|
|
15669
|
+
/* @__PURE__ */ jsx16(
|
|
15670
|
+
"path",
|
|
15671
|
+
{
|
|
15672
|
+
fillRule: "evenodd",
|
|
15673
|
+
clipRule: "evenodd",
|
|
15674
|
+
d: "M12.5147 2.08484C12.1951 1.90505 11.8048 1.90505 11.4852 2.08484L3.48518 6.58484C3.15456 6.77082 2.94995 7.12066 2.94995 7.5V16.5C2.94995 16.8793 3.15456 17.2292 3.48518 17.4152L11.4852 21.9152C11.8048 22.0949 12.1951 22.0949 12.5147 21.9152L20.5147 17.4152C20.8453 17.2292 21.0499 16.8793 21.0499 16.5V7.5C21.0499 7.12066 20.8453 6.77082 20.5147 6.58484L12.5147 2.08484ZM5.04995 15.8859V8.11409L12 4.20471L18.95 8.11409V15.8859L12 19.7953L5.04995 15.8859Z",
|
|
15675
|
+
fill: "currentColor"
|
|
15676
|
+
}
|
|
15677
|
+
)
|
|
15678
|
+
]
|
|
15555
15679
|
}
|
|
15556
15680
|
);
|
|
15557
15681
|
}
|
|
15558
15682
|
|
|
15559
|
-
// app/renderer/components/StatusDot.tsx
|
|
15560
|
-
import { StatusDot } from "@tutti-os/ui-system";
|
|
15561
|
-
|
|
15562
15683
|
// agent-gui/RoomIssueNode/TaskSearchField.tsx
|
|
15563
15684
|
import { useComposedInputValue } from "@tutti-os/ui-react-hooks";
|
|
15564
|
-
|
|
15565
|
-
// app/renderer/components/ui/input.tsx
|
|
15566
15685
|
import { Input } from "@tutti-os/ui-system";
|
|
15567
15686
|
|
|
15568
15687
|
// agent-gui/RoomIssueNode/RoomIssueNode.styles.ts
|
|
15569
15688
|
var styles = {
|
|
15570
|
-
actionGrid: "room-issue-node__action-grid",
|
|
15571
|
-
actionRow: "room-issue-node__action-row",
|
|
15572
|
-
actionStack: "room-issue-node__action-stack",
|
|
15573
|
-
attachEmptyHint: "room-issue-node__attach-empty-hint",
|
|
15574
|
-
attachSection: "room-issue-node__attach-section",
|
|
15575
|
-
body: "room-issue-node__body",
|
|
15576
|
-
compactLayout: "room-issue-node__compact-layout",
|
|
15577
|
-
compactSummary: "room-issue-node__compact-summary",
|
|
15578
|
-
confirmDialogFooter: "room-issue-node__confirm-dialog-footer",
|
|
15579
|
-
confirmDialogLead: "room-issue-node__confirm-dialog-lead",
|
|
15580
|
-
confirmDialogOverlayCard: "room-issue-node__confirm-dialog-overlay-card",
|
|
15581
|
-
contentArea: "room-issue-node__content-area",
|
|
15582
|
-
contextAttachmentBox: "room-issue-node__context-attachment-box",
|
|
15583
|
-
contextCardMain: "room-issue-node__context-card-main",
|
|
15584
|
-
contextCardMeta: "room-issue-node__context-card-meta",
|
|
15585
|
-
contextCardTitle: "room-issue-node__context-card-title",
|
|
15586
|
-
contextList: "room-issue-node__context-list",
|
|
15587
|
-
contextListCompact: "room-issue-node__context-list-compact",
|
|
15588
|
-
contextRow: "room-issue-node__context-row",
|
|
15589
|
-
contextRowLeading: "room-issue-node__context-row-leading",
|
|
15590
|
-
contextRowOpenButton: "room-issue-node__context-row-open-button",
|
|
15591
|
-
createFooterBar: "room-issue-node__create-footer-bar",
|
|
15592
|
-
createFormScroll: "room-issue-node__create-form-scroll",
|
|
15593
|
-
createPanel: "room-issue-node__create-panel",
|
|
15594
|
-
dangerMenuItem: "room-issue-node__danger-menu-item",
|
|
15595
|
-
datePicker: "room-issue-node__date-picker",
|
|
15596
|
-
detailBodyScroll: "room-issue-node__detail-body-scroll",
|
|
15597
|
-
detailBodyStack: "room-issue-node__detail-body-stack",
|
|
15598
|
-
detailExecutionActionsRow: "room-issue-node__detail-execution-actions-row",
|
|
15599
|
-
detailExecutionFooter: "room-issue-node__detail-execution-footer",
|
|
15600
|
-
detailExecutionHintWrap: "room-issue-node__detail-execution-hint-wrap",
|
|
15601
|
-
detailHeaderEditButton: "room-issue-node__detail-header-edit-button",
|
|
15602
|
-
detailPanel: "room-issue-node__detail-panel",
|
|
15603
|
-
detailPanelStretchWithFooter: "room-issue-node__detail-panel-stretch-with-footer",
|
|
15604
|
-
detailReadHeader: "room-issue-node__detail-read-header",
|
|
15605
|
-
detailSectionPlain: "room-issue-node__detail-section-plain",
|
|
15606
|
-
editFooterBar: "room-issue-node__edit-footer-bar",
|
|
15607
|
-
editorActionGroup: "room-issue-node__editor-action-group",
|
|
15608
|
-
editorTitleInput: "room-issue-node__editor-title-input",
|
|
15609
|
-
emptyHint: "room-issue-node__empty-hint",
|
|
15610
|
-
emptyState: "room-issue-node__empty-state",
|
|
15611
|
-
emptyStateBody: "room-issue-node__empty-state-body",
|
|
15612
|
-
emptyStateDescription: "room-issue-node__empty-state-description",
|
|
15613
|
-
emptyStateTitle: "room-issue-node__empty-state-title",
|
|
15614
|
-
executionActionGrid: "room-issue-node__execution-action-grid",
|
|
15615
|
-
executionButtonIcon: "room-issue-node__execution-button-icon",
|
|
15616
|
-
executionCardActions: "room-issue-node__execution-card-actions",
|
|
15617
|
-
executionCardFooter: "room-issue-node__execution-card-footer",
|
|
15618
|
-
executionCardFooterMeta: "room-issue-node__execution-card-footer-meta",
|
|
15619
|
-
executionCardFooterTimestamp: "room-issue-node__execution-card-footer-timestamp",
|
|
15620
|
-
executionCardHeader: "room-issue-node__execution-card-header",
|
|
15621
|
-
executionCardHeaderMain: "room-issue-node__execution-card-header-main",
|
|
15622
|
-
executionCardList: "room-issue-node__execution-card-list",
|
|
15623
|
-
executionCardSummary: "room-issue-node__execution-card-summary",
|
|
15624
|
-
executionCardTitle: "room-issue-node__execution-card-title",
|
|
15625
|
-
executionCardTitleRow: "room-issue-node__execution-card-title-row",
|
|
15626
|
-
executionContentCard: "room-issue-node__execution-content-card",
|
|
15627
|
-
executionEmptyCard: "room-issue-node__execution-empty-card",
|
|
15628
|
-
executionHeaderButton: "room-issue-node__execution-header-button",
|
|
15629
|
-
executionHintText: "room-issue-node__execution-hint-text",
|
|
15630
|
-
executionInfoBody: "room-issue-node__execution-info-body",
|
|
15631
|
-
executionInfoCard: "room-issue-node__execution-info-card",
|
|
15632
|
-
executionInfoEmpty: "room-issue-node__execution-info-empty",
|
|
15633
|
-
executionInfoGrid: "room-issue-node__execution-info-grid",
|
|
15634
|
-
executionInfoTitle: "room-issue-node__execution-info-title",
|
|
15635
|
-
executionInviteTooltip: "room-issue-node__execution-invite-tooltip",
|
|
15636
|
-
executionInviteTooltipWrap: "room-issue-node__execution-invite-tooltip-wrap",
|
|
15637
|
-
executionLatestSection: "room-issue-node__execution-latest-section",
|
|
15638
|
-
executionLoadingCard: "room-issue-node__execution-loading-card",
|
|
15639
|
-
executionPrimaryButton: "room-issue-node__execution-primary-button",
|
|
15640
|
-
executionSecondaryButton: "room-issue-node__execution-secondary-button",
|
|
15641
|
-
fieldBlock: "room-issue-node__field-block",
|
|
15642
|
-
fieldRow: "room-issue-node__field-row",
|
|
15643
|
-
filePicker: "room-issue-node__file-picker",
|
|
15644
|
-
filePickerActions: "room-issue-node__file-picker-actions",
|
|
15645
|
-
filePickerFooter: "room-issue-node__file-picker-footer",
|
|
15646
|
-
filePickerFooterActions: "room-issue-node__file-picker-footer-actions",
|
|
15647
|
-
filePickerLayout: "room-issue-node__file-picker-layout",
|
|
15648
|
-
filePickerListPane: "room-issue-node__file-picker-list-pane",
|
|
15649
|
-
filePickerListPaneEmpty: "room-issue-node__file-picker-list-pane-empty",
|
|
15650
|
-
filePickerLoadingState: "room-issue-node__file-picker-loading-state",
|
|
15651
|
-
filePickerPreview: "room-issue-node__file-picker-preview",
|
|
15652
|
-
filePickerPreviewBody: "room-issue-node__file-picker-preview-body",
|
|
15653
|
-
filePickerSkeletonIcon: "room-issue-node__file-picker-skeleton-icon",
|
|
15654
|
-
filePickerSkeletonName: "room-issue-node__file-picker-skeleton-name",
|
|
15655
|
-
filePickerSkeletonRow: "room-issue-node__file-picker-skeleton-row",
|
|
15656
|
-
filePickerScrollbar: "room-issue-node__file-picker-scrollbar",
|
|
15657
|
-
filePickerScrollbarThumb: "workspace-agents-status-panel__scrollbar-thumb",
|
|
15658
|
-
filePickerToolbar: "room-issue-node__file-picker-toolbar",
|
|
15659
|
-
filePickerTree: "room-issue-node__file-picker-tree",
|
|
15660
|
-
fileRow: "room-issue-node__file-row",
|
|
15661
|
-
fileRowCheckbox: "room-issue-node__file-row-checkbox",
|
|
15662
|
-
fileRowCheckboxButton: "room-issue-node__file-row-checkbox-button",
|
|
15663
|
-
fileRowContainer: "room-issue-node__file-row-container",
|
|
15664
|
-
fileRowExpand: "room-issue-node__file-row-expand",
|
|
15665
|
-
fileRowExpandButton: "room-issue-node__file-row-expand-button",
|
|
15666
|
-
fileRowExpandSpacer: "room-issue-node__file-row-expand-spacer",
|
|
15667
|
-
fileRowGlyph: "room-issue-node__file-row-glyph",
|
|
15668
|
-
fileRowLabel: "room-issue-node__file-row-label",
|
|
15669
|
-
fileRowPath: "room-issue-node__file-row-path",
|
|
15670
|
-
fileRowText: "room-issue-node__file-row-text",
|
|
15671
|
-
filterCount: "room-issue-node__filter-count",
|
|
15672
|
-
filterTab: "room-issue-node__filter-tab",
|
|
15673
|
-
filterTabIndicator: "room-issue-node__filter-tab-indicator",
|
|
15674
|
-
filterTabs: "room-issue-node__filter-tabs",
|
|
15675
|
-
filterTabsMask: "room-issue-node__filter-tabs-mask",
|
|
15676
|
-
filterTabsMaskLeft: "room-issue-node__filter-tabs-mask-left",
|
|
15677
|
-
filterTabsMaskRight: "room-issue-node__filter-tabs-mask-right",
|
|
15678
|
-
filterTabsRow: "room-issue-node__filter-tabs-row",
|
|
15679
|
-
filterTabsScrollButton: "room-issue-node__filter-tabs-scroll-button",
|
|
15680
|
-
filterTabsScrollButtonLeft: "room-issue-node__filter-tabs-scroll-button-left",
|
|
15681
|
-
filterTabsScrollButtonRight: "room-issue-node__filter-tabs-scroll-button-right",
|
|
15682
|
-
filterTabsViewport: "room-issue-node__filter-tabs-viewport",
|
|
15683
|
-
footerActions: "room-issue-node__footer-actions",
|
|
15684
|
-
formGrid: "room-issue-node__form-grid",
|
|
15685
|
-
formGridCreateSpacing: "room-issue-node__form-grid-create-spacing",
|
|
15686
|
-
formSelect: "room-issue-node__form-select",
|
|
15687
|
-
header: "room-issue-node__header",
|
|
15688
|
-
headerActions: "room-issue-node__header-actions",
|
|
15689
|
-
headerSelect: "room-issue-node__header-select",
|
|
15690
|
-
headerTitle: "room-issue-node__header-title",
|
|
15691
|
-
headerTitleText: "room-issue-node__header-title-text",
|
|
15692
|
-
// i18n-check-ignore: CSS class name.
|
|
15693
|
-
helperText: "room-issue-node__helper-text",
|
|
15694
|
-
inlineGhostButton: "room-issue-node__inline-ghost-button",
|
|
15695
|
-
issueActivityCard: "room-issue-node__issue-activity-card",
|
|
15696
|
-
issueDrawer: "room-issue-node__issue-drawer",
|
|
15697
|
-
issueDrawerBody: "room-issue-node__issue-drawer-body",
|
|
15698
|
-
issueDrawerClosing: "room-issue-node__issue-drawer-closing",
|
|
15699
|
-
issueDrawerContent: "room-issue-node__issue-drawer-content",
|
|
15700
|
-
issueDrawerFooter: "room-issue-node__issue-drawer-footer",
|
|
15701
|
-
issueDrawerFooterActions: "room-issue-node__issue-drawer-footer-actions",
|
|
15702
|
-
issueDrawerHeader: "room-issue-node__issue-drawer-header",
|
|
15703
|
-
issueDrawerHeaderActions: "room-issue-node__issue-drawer-header-actions",
|
|
15704
|
-
issueDrawerHeaderMain: "room-issue-node__issue-drawer-header-main",
|
|
15705
|
-
issueDrawerOverlay: "room-issue-node__issue-drawer-overlay",
|
|
15706
|
-
issueDrawerOverlayClosing: "room-issue-node__issue-drawer-overlay-closing",
|
|
15707
|
-
issueDrawerRunSelect: "room-issue-node__issue-drawer-run-select",
|
|
15708
|
-
issueDrawerRunTrigger: "room-issue-node__issue-drawer-run-trigger",
|
|
15709
|
-
issueDrawerTitle: "room-issue-node__issue-drawer-title",
|
|
15710
|
-
issueEditorDialogBody: "room-issue-node__issue-editor-dialog-body",
|
|
15711
|
-
issueEditorDialogFooter: "room-issue-node__issue-editor-dialog-footer",
|
|
15712
|
-
issueEditorOverlayCard: "room-issue-node__issue-editor-overlay-card",
|
|
15713
|
-
issueExpandedToolbar: "room-issue-node__issue-expanded-toolbar",
|
|
15714
|
-
issueId: "room-issue-node__issue-id",
|
|
15715
|
-
issueInlineAction: "room-issue-node__issue-inline-action",
|
|
15716
|
-
issueLaunchButton: "room-issue-node__issue-launch-button",
|
|
15717
|
-
issueLaunchChevron: "room-issue-node__issue-launch-chevron",
|
|
15718
|
-
issueList: "room-issue-node__issue-list",
|
|
15719
|
-
issueListEmptyCell: "room-issue-node__issue-list-empty-cell",
|
|
15720
|
-
issueListFooter: "room-issue-node__issue-list-footer",
|
|
15721
|
-
issueListItem: "room-issue-node__issue-list-item",
|
|
15722
|
-
issueListLoadingState: "room-issue-node__issue-list-loading-state",
|
|
15723
|
-
issueListRow: "room-issue-node__issue-list-row",
|
|
15724
|
-
issueListRowActions: "room-issue-node__issue-list-row-actions",
|
|
15725
|
-
issueListRowActive: "room-issue-node__issue-list-row-active",
|
|
15726
|
-
issueListRowHeader: "room-issue-node__issue-list-row-header",
|
|
15727
|
-
issueListRowHeaderMeta: "room-issue-node__issue-list-row-header-meta",
|
|
15728
|
-
issueListRowMain: "room-issue-node__issue-list-row-main",
|
|
15729
|
-
issueListRowMeta: "room-issue-node__issue-list-row-meta",
|
|
15730
|
-
issueListRowRunSelect: "room-issue-node__issue-list-row-run-select",
|
|
15731
|
-
issueListRowSummary: "room-issue-node__issue-list-row-summary",
|
|
15732
|
-
issueListRowTimestamp: "room-issue-node__issue-list-row-timestamp",
|
|
15733
|
-
issueListRowTitle: "room-issue-node__issue-list-row-title",
|
|
15734
|
-
issueListRowTitleWrap: "room-issue-node__issue-list-row-title-wrap",
|
|
15735
|
-
issueListScrollRegion: "room-issue-node__issue-list-scroll-region",
|
|
15736
|
-
issueListSkeletonCard: "room-issue-node__issue-list-skeleton-card",
|
|
15737
|
-
issueListSpacer: "room-issue-node__issue-list-spacer",
|
|
15738
|
-
issueListSurface: "room-issue-node__issue-list-surface",
|
|
15739
|
-
issueListTitleRow: "room-issue-node__issue-list-title-row",
|
|
15740
|
-
issueSectionSurface: "room-issue-node__issue-section-surface",
|
|
15741
|
-
issueSectionSurfaceIdle: "room-issue-node__issue-section-surface-idle",
|
|
15742
|
-
issueMainLoadingState: "room-issue-node__issue-main-loading-state",
|
|
15743
|
-
issueMainSkeletonBlock: "room-issue-node__issue-main-skeleton-block",
|
|
15744
|
-
issueMainSkeletonEyebrow: "room-issue-node__issue-main-skeleton-eyebrow",
|
|
15745
|
-
issueMainSkeletonLineFull: "room-issue-node__issue-main-skeleton-line-full",
|
|
15746
|
-
issueMainSkeletonLineMid: "room-issue-node__issue-main-skeleton-line-mid",
|
|
15747
|
-
issueMainSkeletonLineShort: "room-issue-node__issue-main-skeleton-line-short",
|
|
15748
|
-
issueMainSkeletonMeta: "room-issue-node__issue-main-skeleton-meta",
|
|
15749
|
-
issueMainSkeletonMetaRow: "room-issue-node__issue-main-skeleton-meta-row",
|
|
15750
|
-
issueMainSkeletonMetaShort: "room-issue-node__issue-main-skeleton-meta-short",
|
|
15751
|
-
issueMainSkeletonPanel: "room-issue-node__issue-main-skeleton-panel",
|
|
15752
|
-
issueMainSkeletonSection: "room-issue-node__issue-main-skeleton-section",
|
|
15753
|
-
issueMainSkeletonTitle: "room-issue-node__issue-main-skeleton-title",
|
|
15754
|
-
issueMeta: "room-issue-node__issue-meta",
|
|
15755
|
-
issueMoreAction: "room-issue-node__issue-more-action",
|
|
15756
|
-
issueMoreIconAction: "room-issue-node__issue-more-icon-action",
|
|
15757
|
-
issuePrimaryAction: "room-issue-node__issue-primary-action",
|
|
15758
|
-
issueSecondaryAction: "room-issue-node__issue-secondary-action",
|
|
15759
|
-
issueSectionHeader: "room-issue-node__issue-section-header",
|
|
15760
|
-
issueSectionTitle: "room-issue-node__issue-section-title",
|
|
15761
|
-
issueSkeletonBar: "room-issue-node__issue-skeleton-bar",
|
|
15762
|
-
issueSkeletonBarMeta: "room-issue-node__issue-skeleton-bar-meta",
|
|
15763
|
-
issueSkeletonBarSummary: "room-issue-node__issue-skeleton-bar-summary",
|
|
15764
|
-
issueSkeletonBarTitle: "room-issue-node__issue-skeleton-bar-title",
|
|
15765
|
-
issueTaskShellSurface: "room-issue-node__issue-task-shell-surface",
|
|
15766
|
-
issueTitle: "room-issue-node__issue-title",
|
|
15767
|
-
loadingHint: "room-issue-node__loading-hint",
|
|
15768
|
-
loadingMask: "room-issue-node__loading-mask",
|
|
15769
|
-
metaRow: "room-issue-node__meta-row",
|
|
15770
|
-
metaRowSeparator: "room-issue-node__meta-row-separator",
|
|
15771
|
-
node: "room-issue-node__node",
|
|
15772
|
-
nodeMaximized: "room-issue-node__node-maximized",
|
|
15773
|
-
nodeMuted: "room-issue-node__node-muted",
|
|
15774
|
-
outputAttachmentBox: "room-issue-node__output-attachment-box",
|
|
15775
|
-
outputButton: "room-issue-node__output-button",
|
|
15776
|
-
outputButtonPath: "room-issue-node__output-button-path",
|
|
15777
|
-
outputButtonTitle: "room-issue-node__output-button-title",
|
|
15778
|
-
outputCard: "room-issue-node__output-card",
|
|
15779
|
-
outputCardMainButton: "room-issue-node__output-card-main-button",
|
|
15780
|
-
outputList: "room-issue-node__output-list",
|
|
15781
|
-
outputMeta: "room-issue-node__output-meta",
|
|
15782
|
-
outputTitle: "room-issue-node__output-title",
|
|
15783
|
-
outputsList: "room-issue-node__outputs-list",
|
|
15784
|
-
overlay: "room-issue-node__overlay",
|
|
15785
|
-
overlayCard: "room-issue-node__overlay-card",
|
|
15786
|
-
overlayCardNarrow: "room-issue-node__overlay-card-narrow",
|
|
15787
|
-
overlayNarrow: "room-issue-node__overlay-narrow",
|
|
15788
|
-
panelDescription: "room-issue-node__panel-description",
|
|
15789
|
-
panelEyebrow: "room-issue-node__panel-eyebrow",
|
|
15790
|
-
panelHeader: "room-issue-node__panel-header",
|
|
15791
|
-
panelTitle: "room-issue-node__panel-title",
|
|
15792
|
-
panelTitleIssueName: "room-issue-node__panel-title-issue-name",
|
|
15793
|
-
prioritySelectWrap: "room-issue-node__priority-select-wrap",
|
|
15794
|
-
resultCard: "room-issue-node__result-card",
|
|
15795
|
-
resultSessionDetail: "room-issue-node__result-session-detail",
|
|
15796
|
-
resultStatusRow: "room-issue-node__result-status-row",
|
|
15797
|
-
resultTitle: "room-issue-node__result-title",
|
|
15798
|
-
richTextEditorCompact: "room-issue-node__rich-text-editor-compact",
|
|
15799
|
-
richTextEditorRead: "room-issue-node__rich-text-editor-read",
|
|
15800
|
-
richTextEditorTall: "room-issue-node__rich-text-editor-tall",
|
|
15801
|
-
runActionSelect: "room-issue-node__run-action-select",
|
|
15802
|
-
runActionSelectMenu: "room-issue-node__run-action-select-menu",
|
|
15803
|
-
runActionTriggerLabel: "room-issue-node__run-action-trigger-label",
|
|
15804
|
-
runActionTriggerLabelText: "room-issue-node__run-action-trigger-label-text",
|
|
15805
|
-
runActionWrap: "room-issue-node__run-action-wrap",
|
|
15806
|
-
searchBar: "room-issue-node__search-bar",
|
|
15807
15689
|
searchClearButton: "room-issue-node__search-clear-button",
|
|
15808
15690
|
searchField: "room-issue-node__search-field",
|
|
15809
|
-
searchInput: "room-issue-node__search-input"
|
|
15810
|
-
sectionHeader: "room-issue-node__section-header",
|
|
15811
|
-
sectionHeaderActions: "room-issue-node__section-header-actions",
|
|
15812
|
-
sectionLabel: "room-issue-node__section-label",
|
|
15813
|
-
sectionTitle: "room-issue-node__section-title",
|
|
15814
|
-
selectionHint: "room-issue-node__selection-hint",
|
|
15815
|
-
sidebarCategoryEmptyHint: "room-issue-node__sidebar-category-empty-hint",
|
|
15816
|
-
sidebarCreateButton: "room-issue-node__sidebar-create-button",
|
|
15817
|
-
sidebarEmptyHint: "room-issue-node__sidebar-empty-hint",
|
|
15818
|
-
sidebarEmptySkeleton: "room-issue-node__sidebar-empty-skeleton",
|
|
15819
|
-
sidebarEmptySkeletonCard: "room-issue-node__sidebar-empty-skeleton-card",
|
|
15820
|
-
sidebarEmptyText: "room-issue-node__sidebar-empty-text",
|
|
15821
|
-
sidebarEmptyTitle: "room-issue-node__sidebar-empty-title",
|
|
15822
|
-
sidebarHeader: "room-issue-node__sidebar-header",
|
|
15823
|
-
standardLayout: "room-issue-node__standard-layout",
|
|
15824
|
-
standardLayoutEmpty: "room-issue-node__standard-layout-empty",
|
|
15825
|
-
standardLayoutNarrow: "room-issue-node__standard-layout-narrow",
|
|
15826
|
-
standardLayoutSidebarCollapsed: "room-issue-node__standard-layout-sidebar-collapsed",
|
|
15827
|
-
standardMain: "room-issue-node__standard-main",
|
|
15828
|
-
standardMainScroll: "room-issue-node__standard-main-scroll",
|
|
15829
|
-
standardMainStretch: "room-issue-node__standard-main-stretch",
|
|
15830
|
-
standardSidebar: "room-issue-node__standard-sidebar",
|
|
15831
|
-
standardSidebarResizer: "room-issue-node__standard-sidebar-resizer",
|
|
15832
|
-
standardSidebarResizerLine: "room-issue-node__standard-sidebar-resizer-line",
|
|
15833
|
-
statusBadge: "room-issue-node__status-badge",
|
|
15834
|
-
statusBadgeCanceled: "room-issue-node__status-badge-canceled",
|
|
15835
|
-
statusBadgeCompleted: "room-issue-node__status-badge-completed",
|
|
15836
|
-
statusBadgeDefault: "room-issue-node__status-badge-default",
|
|
15837
|
-
statusBadgeFailed: "room-issue-node__status-badge-failed",
|
|
15838
|
-
statusBadgePending: "room-issue-node__status-badge-pending",
|
|
15839
|
-
statusBadgeRunning: "room-issue-node__status-badge-running",
|
|
15840
|
-
statusFieldSelectWrap: "room-issue-node__status-field-select-wrap",
|
|
15841
|
-
statusSelectWrap: "room-issue-node__status-select-wrap",
|
|
15842
|
-
summaryText: "room-issue-node__summary-text",
|
|
15843
|
-
taskCardFooter: "room-issue-node__task-card-footer",
|
|
15844
|
-
taskCardHeader: "room-issue-node__task-card-header",
|
|
15845
|
-
taskCenterMain: "room-issue-node__task-center-main",
|
|
15846
|
-
taskCenterMainEditing: "room-issue-node__task-center-main-editing",
|
|
15847
|
-
taskContentGrid: "room-issue-node__task-content-grid",
|
|
15848
|
-
taskExecutionPanelsGroup: "room-issue-node__task-execution-panels-group",
|
|
15849
|
-
taskDescriptionBody: "room-issue-node__task-description-body",
|
|
15850
|
-
taskDescriptionBodyWrap: "room-issue-node__task-description-body-wrap",
|
|
15851
|
-
taskDescriptionScrollable: "room-issue-node__task-description-scrollable",
|
|
15852
|
-
taskDescriptionContent: "room-issue-node__task-description-content",
|
|
15853
|
-
taskDescriptionEmpty: "room-issue-node__task-description-empty",
|
|
15854
|
-
taskDescriptionFadeMask: "room-issue-node__task-description-fade-mask",
|
|
15855
|
-
taskDescriptionSurface: "room-issue-node__task-description-surface",
|
|
15856
|
-
taskDescriptionSurfaceOverflowing: "room-issue-node__task-description-surface-overflowing",
|
|
15857
|
-
taskDescriptionViewport: "room-issue-node__task-description-viewport",
|
|
15858
|
-
taskEmptyStateBody: "room-issue-node__task-empty-state-body",
|
|
15859
|
-
taskEmptyStateButton: "room-issue-node__task-empty-state-button",
|
|
15860
|
-
taskEmptyStateDescription: "room-issue-node__task-empty-state-description",
|
|
15861
|
-
taskEmptyStateIcon: "room-issue-node__task-empty-state-icon",
|
|
15862
|
-
taskEmptyStatePanel: "room-issue-node__task-empty-state-panel",
|
|
15863
|
-
taskEmptyStateTitle: "room-issue-node__task-empty-state-title",
|
|
15864
|
-
taskHeader: "room-issue-node__task-header",
|
|
15865
|
-
taskHeaderActions: "room-issue-node__task-header-actions",
|
|
15866
|
-
taskHeaderDangerAction: "room-issue-node__task-header-danger-action",
|
|
15867
|
-
taskHeaderMain: "room-issue-node__task-header-main",
|
|
15868
|
-
taskHeaderMetaRow: "room-issue-node__task-header-meta-row",
|
|
15869
|
-
taskHeaderStatusTag: "room-issue-node__task-header-status-tag",
|
|
15870
|
-
taskHeaderTextAction: "room-issue-node__task-header-text-action",
|
|
15871
|
-
taskOverviewCard: "room-issue-node__task-overview-card",
|
|
15872
|
-
taskOverviewPill: "room-issue-node__task-overview-pill",
|
|
15873
|
-
taskOverviewPills: "room-issue-node__task-overview-pills",
|
|
15874
|
-
taskOverviewStatCard: "room-issue-node__task-overview-stat-card",
|
|
15875
|
-
taskOverviewStatLabel: "room-issue-node__task-overview-stat-label",
|
|
15876
|
-
taskOverviewStatValue: "room-issue-node__task-overview-stat-value",
|
|
15877
|
-
taskOverviewStatsGrid: "room-issue-node__task-overview-stats-grid",
|
|
15878
|
-
taskRefChip: "room-issue-node__task-ref-chip",
|
|
15879
|
-
taskRefChips: "room-issue-node__task-ref-chips",
|
|
15880
|
-
taskReferencePickerBody: "room-issue-node__task-reference-picker-body",
|
|
15881
|
-
taskReferencePickerCard: "room-issue-node__task-reference-picker-card",
|
|
15882
|
-
taskReferencePickerEmpty: "room-issue-node__task-reference-picker-empty",
|
|
15883
|
-
taskReferencePickerFooter: "room-issue-node__task-reference-picker-footer",
|
|
15884
|
-
taskReferencePickerHeader: "room-issue-node__task-reference-picker-header",
|
|
15885
|
-
taskReferencePickerList: "room-issue-node__task-reference-picker-list",
|
|
15886
|
-
taskReferencePickerOverlay: "room-issue-node__task-reference-picker-overlay",
|
|
15887
|
-
taskReferencePickerOverlayCard: "room-issue-node__task-reference-picker-overlay-card",
|
|
15888
|
-
taskReferencePickerRow: "room-issue-node__task-reference-picker-row",
|
|
15889
|
-
taskReferencePickerSelection: "room-issue-node__task-reference-picker-selection",
|
|
15890
|
-
taskReferencePickerSelectionChip: "room-issue-node__task-reference-picker-selection-chip",
|
|
15891
|
-
taskReferencePickerSelectionList: "room-issue-node__task-reference-picker-selection-list",
|
|
15892
|
-
taskReferencePickerSummary: "room-issue-node__task-reference-picker-summary",
|
|
15893
|
-
taskRefsEmpty: "room-issue-node__task-refs-empty",
|
|
15894
|
-
taskRefsSection: "room-issue-node__task-refs-section",
|
|
15895
|
-
taskShellActions: "room-issue-node__task-shell-actions",
|
|
15896
|
-
taskShellBottomBar: "room-issue-node__task-shell-bottom-bar",
|
|
15897
|
-
taskShellCard: "room-issue-node__task-shell-card",
|
|
15898
|
-
taskShellDescription: "room-issue-node__task-shell-description",
|
|
15899
|
-
taskShellRunningHeader: "room-issue-node__task-shell-running-header",
|
|
15900
|
-
taskShellTitle: "room-issue-node__task-shell-title",
|
|
15901
|
-
taskTitle: "room-issue-node__task-title",
|
|
15902
|
-
taskTitleRow: "room-issue-node__task-title-row",
|
|
15903
|
-
textInput: "room-issue-node__text-input"
|
|
15691
|
+
searchInput: "room-issue-node__search-input"
|
|
15904
15692
|
};
|
|
15905
15693
|
var RoomIssueNode_styles_default = styles;
|
|
15906
15694
|
|
|
15907
15695
|
// agent-gui/RoomIssueNode/TaskSearchField.tsx
|
|
15908
|
-
import { jsx as jsx17, jsxs as
|
|
15696
|
+
import { jsx as jsx17, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
15909
15697
|
function TaskSearchField({
|
|
15910
15698
|
ariaLabel,
|
|
15911
15699
|
className,
|
|
@@ -15919,7 +15707,7 @@ function TaskSearchField({
|
|
|
15919
15707
|
"use memo";
|
|
15920
15708
|
const { t } = useTranslation();
|
|
15921
15709
|
const searchInput = useComposedInputValue({ onCommit: onChange, value });
|
|
15922
|
-
return /* @__PURE__ */
|
|
15710
|
+
return /* @__PURE__ */ jsxs6(
|
|
15923
15711
|
"div",
|
|
15924
15712
|
{
|
|
15925
15713
|
className: `${RoomIssueNode_styles_default.searchField} ${className ?? ""}`.trim(),
|
|
@@ -15974,7 +15762,13 @@ function isTaskSearchImeComposing(event) {
|
|
|
15974
15762
|
}
|
|
15975
15763
|
|
|
15976
15764
|
// agent-gui/agentGuiNode/AgentSessionChrome.tsx
|
|
15977
|
-
import {
|
|
15765
|
+
import {
|
|
15766
|
+
Button as Button2,
|
|
15767
|
+
Tooltip,
|
|
15768
|
+
TooltipContent,
|
|
15769
|
+
TooltipProvider,
|
|
15770
|
+
TooltipTrigger
|
|
15771
|
+
} from "@tutti-os/ui-system";
|
|
15978
15772
|
|
|
15979
15773
|
// app/renderer/components/icons/CastIcon.tsx
|
|
15980
15774
|
import {
|
|
@@ -15989,7 +15783,7 @@ import {
|
|
|
15989
15783
|
useAnimation,
|
|
15990
15784
|
useReducedMotion
|
|
15991
15785
|
} from "framer-motion";
|
|
15992
|
-
import { jsx as jsx18, jsxs as
|
|
15786
|
+
import { jsx as jsx18, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
15993
15787
|
var CAST_VARIANTS = {
|
|
15994
15788
|
normal: { opacity: 1 },
|
|
15995
15789
|
animate: (custom) => ({
|
|
@@ -16064,7 +15858,7 @@ var CastIcon = forwardRef2(
|
|
|
16064
15858
|
onMouseEnter: handleMouseEnter,
|
|
16065
15859
|
onMouseLeave: handleMouseLeave,
|
|
16066
15860
|
...props,
|
|
16067
|
-
children: /* @__PURE__ */
|
|
15861
|
+
children: /* @__PURE__ */ jsxs7(
|
|
16068
15862
|
"svg",
|
|
16069
15863
|
{
|
|
16070
15864
|
fill: "none",
|
|
@@ -16117,15 +15911,6 @@ var CastIcon = forwardRef2(
|
|
|
16117
15911
|
);
|
|
16118
15912
|
CastIcon.displayName = "CastIcon";
|
|
16119
15913
|
|
|
16120
|
-
// app/renderer/components/ui/tooltip.tsx
|
|
16121
|
-
import {
|
|
16122
|
-
Tooltip,
|
|
16123
|
-
TooltipContent,
|
|
16124
|
-
TooltipPortal,
|
|
16125
|
-
TooltipProvider,
|
|
16126
|
-
TooltipTrigger
|
|
16127
|
-
} from "@tutti-os/ui-system";
|
|
16128
|
-
|
|
16129
15914
|
// agent-gui/agentGuiNode/AgentGUIChrome.styles.ts
|
|
16130
15915
|
var styles2 = {
|
|
16131
15916
|
sessionChrome: "agent-gui-chrome__session-chrome",
|
|
@@ -16154,7 +15939,7 @@ var styles2 = {
|
|
|
16154
15939
|
var AgentGUIChrome_styles_default = styles2;
|
|
16155
15940
|
|
|
16156
15941
|
// agent-gui/agentGuiNode/AgentSessionChrome.tsx
|
|
16157
|
-
import { Fragment as Fragment2, jsx as jsx19, jsxs as
|
|
15942
|
+
import { Fragment as Fragment2, jsx as jsx19, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
16158
15943
|
function splitTrailingEllipsis(message) {
|
|
16159
15944
|
const match = message.match(/^(.*?)(\.{3}|…)\s*$/);
|
|
16160
15945
|
if (!match) {
|
|
@@ -16167,7 +15952,7 @@ function splitTrailingEllipsis(message) {
|
|
|
16167
15952
|
}
|
|
16168
15953
|
function LoadingEllipsis() {
|
|
16169
15954
|
"use memo";
|
|
16170
|
-
return /* @__PURE__ */
|
|
15955
|
+
return /* @__PURE__ */ jsxs8("span", { className: "tsh-inline-loading-ellipsis", "aria-hidden": "true", children: [
|
|
16171
15956
|
/* @__PURE__ */ jsx19("span", {}),
|
|
16172
15957
|
/* @__PURE__ */ jsx19("span", {}),
|
|
16173
15958
|
/* @__PURE__ */ jsx19("span", {})
|
|
@@ -16178,7 +15963,7 @@ function ChromeMessageTooltip({
|
|
|
16178
15963
|
children
|
|
16179
15964
|
}) {
|
|
16180
15965
|
"use memo";
|
|
16181
|
-
return /* @__PURE__ */ jsx19(TooltipProvider, { delayDuration: 250, children: /* @__PURE__ */
|
|
15966
|
+
return /* @__PURE__ */ jsx19(TooltipProvider, { delayDuration: 250, children: /* @__PURE__ */ jsxs8(Tooltip, { children: [
|
|
16182
15967
|
/* @__PURE__ */ jsx19(TooltipTrigger, { asChild: true, children }),
|
|
16183
15968
|
/* @__PURE__ */ jsx19(
|
|
16184
15969
|
TooltipContent,
|
|
@@ -16208,9 +15993,9 @@ function AgentChromeNotice({
|
|
|
16208
15993
|
className: cn(AgentGUIChrome_styles_default.chromeCard, toneClassName),
|
|
16209
15994
|
role,
|
|
16210
15995
|
"data-testid": testId,
|
|
16211
|
-
children: /* @__PURE__ */ jsx19("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: /* @__PURE__ */
|
|
15996
|
+
children: /* @__PURE__ */ jsx19("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: /* @__PURE__ */ jsxs8("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
|
|
16212
15997
|
icon ? /* @__PURE__ */ jsx19("span", { className: AgentGUIChrome_styles_default.chromeIcon, children: icon }) : null,
|
|
16213
|
-
/* @__PURE__ */
|
|
15998
|
+
/* @__PURE__ */ jsxs8(
|
|
16214
15999
|
"p",
|
|
16215
16000
|
{
|
|
16216
16001
|
className: cn(AgentGUIChrome_styles_default.chromeMessage, AgentGUIChrome_styles_default.chromeNoticeMessage),
|
|
@@ -16244,10 +16029,10 @@ function AgentSessionChrome({
|
|
|
16244
16029
|
if (!hasContent) {
|
|
16245
16030
|
return null;
|
|
16246
16031
|
}
|
|
16247
|
-
return /* @__PURE__ */
|
|
16248
|
-
visibleAuth ? /* @__PURE__ */ jsx19("section", { className: cn(AgentGUIChrome_styles_default.chromeCard, AgentGUIChrome_styles_default.chromeCardWarning), children: /* @__PURE__ */
|
|
16032
|
+
return /* @__PURE__ */ jsxs8("div", { className: AgentGUIChrome_styles_default.sessionChrome, children: [
|
|
16033
|
+
visibleAuth ? /* @__PURE__ */ jsx19("section", { className: cn(AgentGUIChrome_styles_default.chromeCard, AgentGUIChrome_styles_default.chromeCardWarning), children: /* @__PURE__ */ jsxs8("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: [
|
|
16249
16034
|
/* @__PURE__ */ jsx19("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: /* @__PURE__ */ jsx19(ChromeMessageTooltip, { message: visibleAuth.message, children: /* @__PURE__ */ jsx19("p", { className: AgentGUIChrome_styles_default.chromeMessage, tabIndex: 0, children: visibleAuth.message }) }) }),
|
|
16250
|
-
/* @__PURE__ */
|
|
16035
|
+
/* @__PURE__ */ jsxs8("div", { className: AgentGUIChrome_styles_default.chromeInlineActions, children: [
|
|
16251
16036
|
onAuthLogin ? /* @__PURE__ */ jsx19(
|
|
16252
16037
|
Button2,
|
|
16253
16038
|
{
|
|
@@ -16270,7 +16055,7 @@ function AgentSessionChrome({
|
|
|
16270
16055
|
)
|
|
16271
16056
|
] })
|
|
16272
16057
|
] }) }) : null,
|
|
16273
|
-
chrome.approval ? /* @__PURE__ */
|
|
16058
|
+
chrome.approval ? /* @__PURE__ */ jsxs8("section", { className: cn(AgentGUIChrome_styles_default.chromeCard, AgentGUIChrome_styles_default.chromeCardAction), children: [
|
|
16274
16059
|
/* @__PURE__ */ jsx19("div", { className: AgentGUIChrome_styles_default.chromeTitle, children: labels.approvalRequired }),
|
|
16275
16060
|
/* @__PURE__ */ jsx19("p", { className: AgentGUIChrome_styles_default.chromeMessage, children: chrome.approval.title }),
|
|
16276
16061
|
/* @__PURE__ */ jsx19("div", { className: AgentGUIChrome_styles_default.chromeActions, children: chrome.approval.options.map((option) => /* @__PURE__ */ jsx19(
|
|
@@ -16297,8 +16082,8 @@ function AgentSessionChrome({
|
|
|
16297
16082
|
AgentGUIChrome_styles_default.chromeCard,
|
|
16298
16083
|
visibleRecovery.kind === "failed" ? AgentGUIChrome_styles_default.chromeCardDanger : visibleRecovery.kind === "warning" ? AgentGUIChrome_styles_default.chromeCardDanger : visibleRecovery.kind === "activating" ? AgentGUIChrome_styles_default.chromeCardConnecting : AgentGUIChrome_styles_default.chromeCardMuted
|
|
16299
16084
|
),
|
|
16300
|
-
children: /* @__PURE__ */
|
|
16301
|
-
/* @__PURE__ */
|
|
16085
|
+
children: /* @__PURE__ */ jsxs8("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: [
|
|
16086
|
+
/* @__PURE__ */ jsxs8("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
|
|
16302
16087
|
visibleRecovery.kind === "activating" ? /* @__PURE__ */ jsx19(
|
|
16303
16088
|
CastIcon,
|
|
16304
16089
|
{
|
|
@@ -16315,7 +16100,7 @@ function AgentSessionChrome({
|
|
|
16315
16100
|
className: AgentGUIChrome_styles_default.chromeMessage,
|
|
16316
16101
|
"aria-label": visibleRecovery.kind === "activating" ? recoveryMessage : void 0,
|
|
16317
16102
|
tabIndex: 0,
|
|
16318
|
-
children: visibleRecovery.kind === "activating" ? /* @__PURE__ */
|
|
16103
|
+
children: visibleRecovery.kind === "activating" ? /* @__PURE__ */ jsxs8(Fragment2, { children: [
|
|
16319
16104
|
/* @__PURE__ */ jsx19("span", { className: "tsh-inline-loading-label", children: activatingMessage.label }),
|
|
16320
16105
|
activatingMessage.ellipsis ? /* @__PURE__ */ jsx19(LoadingEllipsis, {}) : null
|
|
16321
16106
|
] }) : recoveryMessage
|
|
@@ -16352,7 +16137,7 @@ function AgentSessionChrome({
|
|
|
16352
16137
|
// agent-gui/agentGuiNode/AgentGoalBanner.tsx
|
|
16353
16138
|
import { useEffect as useEffect6, useState as useState5 } from "react";
|
|
16354
16139
|
import { CirclePause, CirclePlay, Pencil, Target, Trash2 } from "lucide-react";
|
|
16355
|
-
import { jsx as jsx20, jsxs as
|
|
16140
|
+
import { jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
16356
16141
|
var RESUMABLE_GOAL_STATUSES = /* @__PURE__ */ new Set([
|
|
16357
16142
|
"paused",
|
|
16358
16143
|
"blocked",
|
|
@@ -16467,8 +16252,8 @@ function AgentGoalBanner({
|
|
|
16467
16252
|
className: cn(AgentGUIChrome_styles_default.chromeCard, AgentGUIChrome_styles_default.chromeCardMuted),
|
|
16468
16253
|
role: "status",
|
|
16469
16254
|
"data-testid": "agent-gui-goal-banner",
|
|
16470
|
-
children: /* @__PURE__ */
|
|
16471
|
-
/* @__PURE__ */
|
|
16255
|
+
children: /* @__PURE__ */ jsxs9("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: [
|
|
16256
|
+
/* @__PURE__ */ jsxs9("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
|
|
16472
16257
|
/* @__PURE__ */ jsx20("span", { className: AgentGUIChrome_styles_default.chromeIcon, children: /* @__PURE__ */ jsx20(Target, { "aria-hidden": true, className: "size-3.5" }) }),
|
|
16473
16258
|
editDraft !== null ? /* @__PURE__ */ jsx20(
|
|
16474
16259
|
"input",
|
|
@@ -16490,7 +16275,7 @@ function AgentGoalBanner({
|
|
|
16490
16275
|
},
|
|
16491
16276
|
onBlur: () => setEditDraft(null)
|
|
16492
16277
|
}
|
|
16493
|
-
) : /* @__PURE__ */
|
|
16278
|
+
) : /* @__PURE__ */ jsxs9(
|
|
16494
16279
|
"p",
|
|
16495
16280
|
{
|
|
16496
16281
|
className: cn(AgentGUIChrome_styles_default.chromeMessage, AgentGUIChrome_styles_default.chromeNoticeMessage),
|
|
@@ -16509,7 +16294,7 @@ function AgentGoalBanner({
|
|
|
16509
16294
|
}
|
|
16510
16295
|
)
|
|
16511
16296
|
] }),
|
|
16512
|
-
hasActions ? /* @__PURE__ */
|
|
16297
|
+
hasActions ? /* @__PURE__ */ jsxs9("div", { className: AgentGUIChrome_styles_default.chromeGoalActions, children: [
|
|
16513
16298
|
onEditObjective !== void 0 && editDraft === null ? /* @__PURE__ */ jsx20(
|
|
16514
16299
|
"button",
|
|
16515
16300
|
{
|
|
@@ -16579,10 +16364,18 @@ import {
|
|
|
16579
16364
|
import { createPortal as createPortal3, flushSync } from "react-dom";
|
|
16580
16365
|
import {
|
|
16581
16366
|
Button as Button3,
|
|
16367
|
+
Popover,
|
|
16368
|
+
PopoverAnchor,
|
|
16369
|
+
PopoverContent,
|
|
16582
16370
|
Select as Select2,
|
|
16583
16371
|
SelectContent as SelectContent2,
|
|
16584
16372
|
SelectItem as SelectItem2,
|
|
16585
|
-
SelectTrigger as SelectTrigger2
|
|
16373
|
+
SelectTrigger as SelectTrigger2,
|
|
16374
|
+
Spinner,
|
|
16375
|
+
Tooltip as Tooltip3,
|
|
16376
|
+
TooltipContent as TooltipContent3,
|
|
16377
|
+
TooltipProvider as TooltipProvider2,
|
|
16378
|
+
TooltipTrigger as TooltipTrigger3
|
|
16586
16379
|
} from "@tutti-os/ui-system";
|
|
16587
16380
|
import { ListChecks as ListChecks2, Target as Target3, X } from "lucide-react";
|
|
16588
16381
|
import {
|
|
@@ -17046,7 +16839,7 @@ import {
|
|
|
17046
16839
|
Target as Target2,
|
|
17047
16840
|
ZapIcon
|
|
17048
16841
|
} from "lucide-react";
|
|
17049
|
-
import { jsx as jsx21, jsxs as
|
|
16842
|
+
import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
17050
16843
|
var paletteStyles = {
|
|
17051
16844
|
palette: "nodrag agent-gui-node__mention-palette flex h-full min-h-0 flex-col gap-1 overflow-y-auto px-1 pb-1 pt-2 [-webkit-app-region:no-drag]",
|
|
17052
16845
|
option: "nodrag relative flex min-h-9 w-full min-w-0 cursor-pointer select-none items-center gap-2 overflow-hidden rounded-[6px] border-0 bg-transparent px-2.5 py-2 text-left text-[13px] text-[var(--text-primary)] outline-hidden transition-colors duration-200 [-webkit-app-region:no-drag] hover:bg-[var(--transparency-block)] focus-visible:bg-[var(--transparency-block)] focus-visible:outline-none active:bg-[var(--transparency-active)] data-[highlighted]:bg-[var(--transparency-block)] data-[highlighted]:text-[var(--text-primary)] [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
@@ -17116,9 +16909,9 @@ function AgentSlashCommandPalette({
|
|
|
17116
16909
|
})
|
|
17117
16910
|
}
|
|
17118
16911
|
) : null;
|
|
17119
|
-
return /* @__PURE__ */
|
|
16912
|
+
return /* @__PURE__ */ jsxs10(Fragment3, { children: [
|
|
17120
16913
|
groupHeader,
|
|
17121
|
-
/* @__PURE__ */
|
|
16914
|
+
/* @__PURE__ */ jsxs10(
|
|
17122
16915
|
"div",
|
|
17123
16916
|
{
|
|
17124
16917
|
ref: isHighlighted ? highlightedOptionRef : null,
|
|
@@ -17148,8 +16941,8 @@ function AgentSlashCommandPalette({
|
|
|
17148
16941
|
},
|
|
17149
16942
|
children: [
|
|
17150
16943
|
entryIcon ? /* @__PURE__ */ jsx21("span", { "aria-hidden": "true", className: paletteStyles.icon, children: entryIcon }) : null,
|
|
17151
|
-
/* @__PURE__ */
|
|
17152
|
-
/* @__PURE__ */
|
|
16944
|
+
/* @__PURE__ */ jsxs10("span", { className: paletteStyles.copy, children: [
|
|
16945
|
+
/* @__PURE__ */ jsxs10("span", { className: paletteStyles.name, children: [
|
|
17153
16946
|
/* @__PURE__ */ jsx21("span", { className: paletteStyles.primaryName, children: entry.type === "command" ? entry.primaryLabel ?? entry.label : entry.label }),
|
|
17154
16947
|
entry.type === "command" && entry.secondaryLabel ? /* @__PURE__ */ jsx21("span", { className: paletteStyles.secondaryName, children: entry.secondaryLabel }) : null
|
|
17155
16948
|
] }),
|
|
@@ -17240,6 +17033,12 @@ import {
|
|
|
17240
17033
|
useState as useState6
|
|
17241
17034
|
} from "react";
|
|
17242
17035
|
import { ChevronRight } from "lucide-react";
|
|
17036
|
+
import {
|
|
17037
|
+
DropdownMenu as DropdownMenu2,
|
|
17038
|
+
DropdownMenuContent as DropdownMenuContent2,
|
|
17039
|
+
DropdownMenuItem,
|
|
17040
|
+
DropdownMenuTrigger as DropdownMenuTrigger2
|
|
17041
|
+
} from "@tutti-os/ui-system";
|
|
17243
17042
|
|
|
17244
17043
|
// agent-gui/agentGuiNode/AgentGUINode.styles.ts
|
|
17245
17044
|
var styles3 = {
|
|
@@ -17374,6 +17173,7 @@ var styles3 = {
|
|
|
17374
17173
|
providerRailLaunchpadIcon: "agent-gui-node__provider-rail-launchpad-icon",
|
|
17375
17174
|
emptyHeroLaunchpadIcon: "agent-gui-node__empty-hero-launchpad-icon",
|
|
17376
17175
|
providerRailLaunchpadItem: "agent-gui-node__provider-rail-launchpad-item",
|
|
17176
|
+
providerRailFooter: "agent-gui-node__provider-rail-footer",
|
|
17377
17177
|
providerRailPanel: "agent-gui-node__provider-rail-panel",
|
|
17378
17178
|
providerRailSeparator: "agent-gui-node__provider-rail-separator",
|
|
17379
17179
|
providerRailTile: "agent-gui-node__provider-rail-tile",
|
|
@@ -17406,7 +17206,7 @@ var styles3 = {
|
|
|
17406
17206
|
var AgentGUINode_styles_default = styles3;
|
|
17407
17207
|
|
|
17408
17208
|
// agent-gui/agentGuiNode/AgentQueuedPromptPanel.tsx
|
|
17409
|
-
import { jsx as jsx22, jsxs as
|
|
17209
|
+
import { jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
17410
17210
|
var EMPTY_WORKSPACE_APP_ICONS = [];
|
|
17411
17211
|
function queuedPromptImages(queuedPrompt) {
|
|
17412
17212
|
return agentPromptContentImageBlocks(
|
|
@@ -17521,7 +17321,7 @@ function AgentQueuedPromptPanel({
|
|
|
17521
17321
|
window.removeEventListener("resize", measure);
|
|
17522
17322
|
};
|
|
17523
17323
|
}, [queuedPrompts]);
|
|
17524
|
-
return /* @__PURE__ */
|
|
17324
|
+
return /* @__PURE__ */ jsxs11(
|
|
17525
17325
|
"div",
|
|
17526
17326
|
{
|
|
17527
17327
|
className: AgentGUINode_styles_default.composerQueuedPromptPanel,
|
|
@@ -17532,7 +17332,7 @@ function AgentQueuedPromptPanel({
|
|
|
17532
17332
|
onClick: toggleExpanded,
|
|
17533
17333
|
onKeyDown: handleKeyDown,
|
|
17534
17334
|
children: [
|
|
17535
|
-
/* @__PURE__ */
|
|
17335
|
+
/* @__PURE__ */ jsxs11("div", { className: AgentGUINode_styles_default.composerQueuedPromptHeader, children: [
|
|
17536
17336
|
/* @__PURE__ */ jsx22("span", { className: AgentGUINode_styles_default.composerQueuedPromptLabel, children: labels.queuedLabel }),
|
|
17537
17337
|
/* @__PURE__ */ jsx22("span", { className: AgentGUINode_styles_default.composerQueuedPromptCount, children: queuedPrompts.length }),
|
|
17538
17338
|
canExpand ? /* @__PURE__ */ jsx22(
|
|
@@ -17558,14 +17358,14 @@ function AgentQueuedPromptPanel({
|
|
|
17558
17358
|
queuedPrompt.content
|
|
17559
17359
|
);
|
|
17560
17360
|
const title = queuedPromptTitle(queuedPrompt);
|
|
17561
|
-
return /* @__PURE__ */
|
|
17361
|
+
return /* @__PURE__ */ jsxs11(
|
|
17562
17362
|
"div",
|
|
17563
17363
|
{
|
|
17564
17364
|
className: AgentGUINode_styles_default.composerQueuedPromptRow,
|
|
17565
17365
|
"data-testid": `agent-gui-composer-queued-prompt-${queuedPrompt.id}`,
|
|
17566
17366
|
"data-draining": isDraining ? "true" : "false",
|
|
17567
17367
|
children: [
|
|
17568
|
-
/* @__PURE__ */ jsx22("div", { className: AgentGUINode_styles_default.composerQueuedPromptMain, children: /* @__PURE__ */
|
|
17368
|
+
/* @__PURE__ */ jsx22("div", { className: AgentGUINode_styles_default.composerQueuedPromptMain, children: /* @__PURE__ */ jsxs11("div", { className: AgentGUINode_styles_default.composerQueuedPromptBody, title, children: [
|
|
17569
17369
|
displayText ? /* @__PURE__ */ jsx22(
|
|
17570
17370
|
"div",
|
|
17571
17371
|
{
|
|
@@ -17603,7 +17403,7 @@ function AgentQueuedPromptPanel({
|
|
|
17603
17403
|
);
|
|
17604
17404
|
}) }) : null
|
|
17605
17405
|
] }) }),
|
|
17606
|
-
/* @__PURE__ */
|
|
17406
|
+
/* @__PURE__ */ jsxs11("div", { className: AgentGUINode_styles_default.composerQueuedPromptActions, children: [
|
|
17607
17407
|
/* @__PURE__ */ jsx22(
|
|
17608
17408
|
CanvasNodeGhostIconButton,
|
|
17609
17409
|
{
|
|
@@ -17622,8 +17422,8 @@ function AgentQueuedPromptPanel({
|
|
|
17622
17422
|
children: /* @__PURE__ */ jsx22(CanvasNodeTrashLinedIcon, { "aria-hidden": "true" })
|
|
17623
17423
|
}
|
|
17624
17424
|
),
|
|
17625
|
-
/* @__PURE__ */
|
|
17626
|
-
/* @__PURE__ */ jsx22(
|
|
17425
|
+
/* @__PURE__ */ jsxs11(DropdownMenu2, { children: [
|
|
17426
|
+
/* @__PURE__ */ jsx22(DropdownMenuTrigger2, { asChild: true, children: /* @__PURE__ */ jsx22(
|
|
17627
17427
|
CanvasNodeGhostIconButton,
|
|
17628
17428
|
{
|
|
17629
17429
|
"aria-label": labels.queuedPromptMoreActions,
|
|
@@ -17634,7 +17434,7 @@ function AgentQueuedPromptPanel({
|
|
|
17634
17434
|
}
|
|
17635
17435
|
) }),
|
|
17636
17436
|
/* @__PURE__ */ jsx22(
|
|
17637
|
-
|
|
17437
|
+
DropdownMenuContent2,
|
|
17638
17438
|
{
|
|
17639
17439
|
align: "end",
|
|
17640
17440
|
className: AgentGUINode_styles_default.composerMenuContent,
|
|
@@ -17688,15 +17488,15 @@ import {
|
|
|
17688
17488
|
import { prepareWorkspaceUserProjectSelection } from "@tutti-os/workspace-user-project/core";
|
|
17689
17489
|
import {
|
|
17690
17490
|
CheckIcon,
|
|
17691
|
-
DropdownMenu as
|
|
17692
|
-
DropdownMenuContent as
|
|
17491
|
+
DropdownMenu as DropdownMenu3,
|
|
17492
|
+
DropdownMenuContent as DropdownMenuContent3,
|
|
17693
17493
|
DropdownMenuItem as DropdownMenuItem2,
|
|
17694
|
-
DropdownMenuLabel
|
|
17695
|
-
DropdownMenuSeparator
|
|
17696
|
-
DropdownMenuSub
|
|
17697
|
-
DropdownMenuSubContent
|
|
17698
|
-
DropdownMenuSubTrigger
|
|
17699
|
-
DropdownMenuTrigger as
|
|
17494
|
+
DropdownMenuLabel,
|
|
17495
|
+
DropdownMenuSeparator,
|
|
17496
|
+
DropdownMenuSub,
|
|
17497
|
+
DropdownMenuSubContent,
|
|
17498
|
+
DropdownMenuSubTrigger,
|
|
17499
|
+
DropdownMenuTrigger as DropdownMenuTrigger3,
|
|
17700
17500
|
FolderIcon,
|
|
17701
17501
|
NewWorkspaceLinedIcon,
|
|
17702
17502
|
NoWorkspaceLinedIcon,
|
|
@@ -18163,7 +17963,7 @@ function optionsWithSelectedValue(options, selectedValue) {
|
|
|
18163
17963
|
}
|
|
18164
17964
|
|
|
18165
17965
|
// agent-gui/agentGuiNode/AgentComposerSettingsMenus.tsx
|
|
18166
|
-
import { Fragment as Fragment5, jsx as jsx23, jsxs as
|
|
17966
|
+
import { Fragment as Fragment5, jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
18167
17967
|
function basenameProjectPath(path) {
|
|
18168
17968
|
const normalized = path.trim().replaceAll("\\", "/").replace(/\/+$/, "");
|
|
18169
17969
|
return normalized.split("/").filter(Boolean).at(-1) ?? path;
|
|
@@ -18198,7 +17998,7 @@ function AgentProjectDropdown({
|
|
|
18198
17998
|
if (previewMode) {
|
|
18199
17999
|
const selectedPath = composerSettings.selectedProjectPath?.trim() ?? "";
|
|
18200
18000
|
const triggerLabel = selectedPath ? basenameProjectPath(selectedPath) : resolvedLabels.noProject;
|
|
18201
|
-
return /* @__PURE__ */
|
|
18001
|
+
return /* @__PURE__ */ jsxs12(
|
|
18202
18002
|
"button",
|
|
18203
18003
|
{
|
|
18204
18004
|
type: "button",
|
|
@@ -18209,7 +18009,7 @@ function AgentProjectDropdown({
|
|
|
18209
18009
|
"text-[var(--agent-gui-text-tertiary)]"
|
|
18210
18010
|
),
|
|
18211
18011
|
children: [
|
|
18212
|
-
/* @__PURE__ */
|
|
18012
|
+
/* @__PURE__ */ jsxs12(
|
|
18213
18013
|
"span",
|
|
18214
18014
|
{
|
|
18215
18015
|
className: "workspace-user-project-trigger-label",
|
|
@@ -18304,7 +18104,7 @@ function AgentPermissionModeDropdown({
|
|
|
18304
18104
|
}
|
|
18305
18105
|
applyPermissionModeId(permissionModeId);
|
|
18306
18106
|
};
|
|
18307
|
-
const trigger = /* @__PURE__ */
|
|
18107
|
+
const trigger = /* @__PURE__ */ jsxs12(
|
|
18308
18108
|
"button",
|
|
18309
18109
|
{
|
|
18310
18110
|
type: "button",
|
|
@@ -18339,7 +18139,7 @@ function AgentPermissionModeDropdown({
|
|
|
18339
18139
|
children: /* @__PURE__ */ jsx23("span", { className: "flex min-w-0 flex-1 items-center", children: /* @__PURE__ */ jsx23("span", { className: "truncate", children: triggerLabel }) })
|
|
18340
18140
|
}
|
|
18341
18141
|
);
|
|
18342
|
-
return /* @__PURE__ */
|
|
18142
|
+
return /* @__PURE__ */ jsxs12(
|
|
18343
18143
|
Select,
|
|
18344
18144
|
{
|
|
18345
18145
|
open: isSelectOpen,
|
|
@@ -18352,7 +18152,7 @@ function AgentPermissionModeDropdown({
|
|
|
18352
18152
|
// The trigger is disabled while loading, so pointer events never reach
|
|
18353
18153
|
// it. Target the tooltip at a focusable wrapper span (Radix's pattern
|
|
18354
18154
|
// for disabled triggers) so hover/focus reliably surfaces the hint.
|
|
18355
|
-
/* @__PURE__ */
|
|
18155
|
+
/* @__PURE__ */ jsxs12(Tooltip2, { children: [
|
|
18356
18156
|
/* @__PURE__ */ jsx23(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ jsx23("span", { className: "inline-flex", tabIndex: 0, children: selectTrigger }) }),
|
|
18357
18157
|
/* @__PURE__ */ jsx23(TooltipContent2, { side: "top", children: labels.loadingOptions })
|
|
18358
18158
|
] })
|
|
@@ -18375,7 +18175,7 @@ function AgentPermissionModeDropdown({
|
|
|
18375
18175
|
disabled: selectDisabled,
|
|
18376
18176
|
className: cn2(AgentGUINode_styles_default.composerMenuItem, "group/composer-option"),
|
|
18377
18177
|
onPointerDown: (event) => handleSelectedItemPointerDown(event, option.value),
|
|
18378
|
-
children: /* @__PURE__ */
|
|
18178
|
+
children: /* @__PURE__ */ jsxs12("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
18379
18179
|
/* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate", children: option.label }),
|
|
18380
18180
|
option.description ? /* @__PURE__ */ jsx23(
|
|
18381
18181
|
ComposerOptionInfoTooltip,
|
|
@@ -18471,7 +18271,7 @@ function ComposerOptionInfoTooltip({
|
|
|
18471
18271
|
if (!tooltipsEnabled) {
|
|
18472
18272
|
return trigger;
|
|
18473
18273
|
}
|
|
18474
|
-
return /* @__PURE__ */
|
|
18274
|
+
return /* @__PURE__ */ jsxs12(Tooltip2, { children: [
|
|
18475
18275
|
/* @__PURE__ */ jsx23(TooltipTrigger2, { asChild: true, children: trigger }),
|
|
18476
18276
|
/* @__PURE__ */ jsx23(TooltipContent2, { side: "right", className: "max-w-[240px] whitespace-normal", children: description })
|
|
18477
18277
|
] });
|
|
@@ -18514,7 +18314,7 @@ function AgentModelReasoningDropdown({
|
|
|
18514
18314
|
onSettingsChange(patch);
|
|
18515
18315
|
setMenuOpen(false);
|
|
18516
18316
|
};
|
|
18517
|
-
const trigger = /* @__PURE__ */
|
|
18317
|
+
const trigger = /* @__PURE__ */ jsxs12(
|
|
18518
18318
|
"button",
|
|
18519
18319
|
{
|
|
18520
18320
|
type: "button",
|
|
@@ -18527,7 +18327,7 @@ function AgentModelReasoningDropdown({
|
|
|
18527
18327
|
"aria-label": `${labels.modelLabel} / ${labels.reasoningLabel}`,
|
|
18528
18328
|
"data-agent-model-reasoning-trigger": "true",
|
|
18529
18329
|
children: [
|
|
18530
|
-
/* @__PURE__ */
|
|
18330
|
+
/* @__PURE__ */ jsxs12("span", { className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden", children: [
|
|
18531
18331
|
menu.speed.show && menu.trigger.isFast ? /* @__PURE__ */ jsx23(
|
|
18532
18332
|
ZapIcon2,
|
|
18533
18333
|
{
|
|
@@ -18537,7 +18337,7 @@ function AgentModelReasoningDropdown({
|
|
|
18537
18337
|
strokeWidth: 2.5
|
|
18538
18338
|
}
|
|
18539
18339
|
) : null,
|
|
18540
|
-
menu.trigger.showCombined ? /* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate", children: menu.trigger.combinedLabel }) : /* @__PURE__ */
|
|
18340
|
+
menu.trigger.showCombined ? /* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate", children: menu.trigger.combinedLabel }) : /* @__PURE__ */ jsxs12(Fragment5, { children: [
|
|
18541
18341
|
/* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate", children: menu.trigger.modelLabel }),
|
|
18542
18342
|
/* @__PURE__ */ jsx23("span", { className: "shrink-0", children: menu.trigger.reasoningLabel })
|
|
18543
18343
|
] })
|
|
@@ -18549,18 +18349,18 @@ function AgentModelReasoningDropdown({
|
|
|
18549
18349
|
if (previewMode) {
|
|
18550
18350
|
return trigger;
|
|
18551
18351
|
}
|
|
18552
|
-
return /* @__PURE__ */
|
|
18352
|
+
return /* @__PURE__ */ jsxs12(DropdownMenu3, { open: menuOpen, onOpenChange: setMenuOpen, children: [
|
|
18553
18353
|
isModelLoading ? (
|
|
18554
18354
|
// The trigger is disabled while loading, so pointer events never reach
|
|
18555
18355
|
// it. Target the tooltip at a focusable wrapper span (Radix's pattern
|
|
18556
18356
|
// for disabled triggers) so hover/focus reliably surfaces the hint.
|
|
18557
|
-
/* @__PURE__ */
|
|
18558
|
-
/* @__PURE__ */ jsx23(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ jsx23("span", { className: "inline-flex", tabIndex: 0, children: /* @__PURE__ */ jsx23(
|
|
18357
|
+
/* @__PURE__ */ jsxs12(Tooltip2, { children: [
|
|
18358
|
+
/* @__PURE__ */ jsx23(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ jsx23("span", { className: "inline-flex", tabIndex: 0, children: /* @__PURE__ */ jsx23(DropdownMenuTrigger3, { asChild: true, disabled: menuDisabled, children: trigger }) }) }),
|
|
18559
18359
|
/* @__PURE__ */ jsx23(TooltipContent2, { side: "top", children: labels.loadingOptions })
|
|
18560
18360
|
] })
|
|
18561
|
-
) : /* @__PURE__ */ jsx23(
|
|
18562
|
-
/* @__PURE__ */
|
|
18563
|
-
|
|
18361
|
+
) : /* @__PURE__ */ jsx23(DropdownMenuTrigger3, { asChild: true, disabled: menuDisabled, children: trigger }),
|
|
18362
|
+
/* @__PURE__ */ jsxs12(
|
|
18363
|
+
DropdownMenuContent3,
|
|
18564
18364
|
{
|
|
18565
18365
|
align: "end",
|
|
18566
18366
|
side: "top",
|
|
@@ -18572,10 +18372,10 @@ function AgentModelReasoningDropdown({
|
|
|
18572
18372
|
),
|
|
18573
18373
|
"data-agent-composer-settings-layout": "model-primary",
|
|
18574
18374
|
children: [
|
|
18575
|
-
menu.model.show ? /* @__PURE__ */
|
|
18576
|
-
/* @__PURE__ */ jsx23(
|
|
18577
|
-
menu.model.groups.length > 0 ? menu.model.groups.map((group, index) => /* @__PURE__ */
|
|
18578
|
-
group.label !== null ? /* @__PURE__ */ jsx23(
|
|
18375
|
+
menu.model.show ? /* @__PURE__ */ jsxs12(Fragment5, { children: [
|
|
18376
|
+
/* @__PURE__ */ jsx23(DropdownMenuLabel, { children: labels.modelSelectionLabel }),
|
|
18377
|
+
menu.model.groups.length > 0 ? menu.model.groups.map((group, index) => /* @__PURE__ */ jsxs12(Fragment4, { children: [
|
|
18378
|
+
group.label !== null ? /* @__PURE__ */ jsx23(DropdownMenuLabel, { className: "text-xs text-[var(--agent-gui-text-tertiary)]", children: group.label }) : null,
|
|
18579
18379
|
/* @__PURE__ */ jsx23(
|
|
18580
18380
|
ComposerMenuOptionItems,
|
|
18581
18381
|
{
|
|
@@ -18597,10 +18397,10 @@ function AgentModelReasoningDropdown({
|
|
|
18597
18397
|
}
|
|
18598
18398
|
)
|
|
18599
18399
|
] }) : null,
|
|
18600
|
-
menu.model.show && (menu.reasoning.show || menu.speed.show) ? /* @__PURE__ */ jsx23(
|
|
18601
|
-
menu.reasoning.show ? /* @__PURE__ */
|
|
18602
|
-
/* @__PURE__ */
|
|
18603
|
-
|
|
18400
|
+
menu.model.show && (menu.reasoning.show || menu.speed.show) ? /* @__PURE__ */ jsx23(DropdownMenuSeparator, {}) : null,
|
|
18401
|
+
menu.reasoning.show ? /* @__PURE__ */ jsxs12(DropdownMenuSub, { children: [
|
|
18402
|
+
/* @__PURE__ */ jsxs12(
|
|
18403
|
+
DropdownMenuSubTrigger,
|
|
18604
18404
|
{
|
|
18605
18405
|
className: cn2(AgentGUINode_styles_default.composerMenuItem, "[&>svg]:!ml-0.5"),
|
|
18606
18406
|
"data-agent-reasoning-submenu-trigger": "true",
|
|
@@ -18611,7 +18411,7 @@ function AgentModelReasoningDropdown({
|
|
|
18611
18411
|
}
|
|
18612
18412
|
),
|
|
18613
18413
|
/* @__PURE__ */ jsx23(
|
|
18614
|
-
|
|
18414
|
+
DropdownMenuSubContent,
|
|
18615
18415
|
{
|
|
18616
18416
|
className: cn2(AgentGUINode_styles_default.composerMenuContent, "min-w-[132px]"),
|
|
18617
18417
|
"data-agent-composer-settings-layout": "model-submenu",
|
|
@@ -18627,9 +18427,9 @@ function AgentModelReasoningDropdown({
|
|
|
18627
18427
|
}
|
|
18628
18428
|
)
|
|
18629
18429
|
] }) : null,
|
|
18630
|
-
menu.speed.show ? /* @__PURE__ */
|
|
18631
|
-
/* @__PURE__ */
|
|
18632
|
-
|
|
18430
|
+
menu.speed.show ? /* @__PURE__ */ jsxs12(DropdownMenuSub, { children: [
|
|
18431
|
+
/* @__PURE__ */ jsxs12(
|
|
18432
|
+
DropdownMenuSubTrigger,
|
|
18633
18433
|
{
|
|
18634
18434
|
className: cn2(AgentGUINode_styles_default.composerMenuItem, "[&>svg]:!ml-0.5"),
|
|
18635
18435
|
"data-agent-speed-submenu-trigger": "true",
|
|
@@ -18640,7 +18440,7 @@ function AgentModelReasoningDropdown({
|
|
|
18640
18440
|
}
|
|
18641
18441
|
),
|
|
18642
18442
|
/* @__PURE__ */ jsx23(
|
|
18643
|
-
|
|
18443
|
+
DropdownMenuSubContent,
|
|
18644
18444
|
{
|
|
18645
18445
|
className: cn2(AgentGUINode_styles_default.composerMenuContent, "w-[200px]"),
|
|
18646
18446
|
"data-agent-composer-settings-layout": "model-submenu",
|
|
@@ -18674,7 +18474,7 @@ function ComposerMenuOptionItems({
|
|
|
18674
18474
|
const showInlineDescription = descriptionPresentation === "inline" && hasDescription;
|
|
18675
18475
|
const showModelTooltip = descriptionPresentation === "model-tooltip";
|
|
18676
18476
|
const showTooltipDescription = descriptionPresentation === "tooltip" && hasDescription;
|
|
18677
|
-
const item = /* @__PURE__ */
|
|
18477
|
+
const item = /* @__PURE__ */ jsxs12(
|
|
18678
18478
|
DropdownMenuItem2,
|
|
18679
18479
|
{
|
|
18680
18480
|
className: cn2(
|
|
@@ -18694,7 +18494,7 @@ function ComposerMenuOptionItems({
|
|
|
18694
18494
|
onSelect(option.value);
|
|
18695
18495
|
},
|
|
18696
18496
|
children: [
|
|
18697
|
-
showModelTooltip ? /* @__PURE__ */
|
|
18497
|
+
showModelTooltip ? /* @__PURE__ */ jsxs12("span", { className: "flex min-w-0 flex-1 items-baseline gap-2 overflow-hidden", children: [
|
|
18698
18498
|
/* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate leading-[1.15]", children: option.label }),
|
|
18699
18499
|
option.summary && option.summary.length > 0 ? /* @__PURE__ */ jsx23("span", { className: "flex min-w-0 shrink-0 items-baseline gap-1.5 overflow-hidden text-[var(--agent-gui-text-tertiary)]", children: option.summary.map((summary) => /* @__PURE__ */ jsx23(
|
|
18700
18500
|
"span",
|
|
@@ -18704,7 +18504,7 @@ function ComposerMenuOptionItems({
|
|
|
18704
18504
|
},
|
|
18705
18505
|
summary
|
|
18706
18506
|
)) }) : null
|
|
18707
|
-
] }) : /* @__PURE__ */
|
|
18507
|
+
] }) : /* @__PURE__ */ jsxs12(
|
|
18708
18508
|
"span",
|
|
18709
18509
|
{
|
|
18710
18510
|
className: cn2(
|
|
@@ -18712,7 +18512,7 @@ function ComposerMenuOptionItems({
|
|
|
18712
18512
|
showInlineDescription ? "gap-0.5" : "gap-0"
|
|
18713
18513
|
),
|
|
18714
18514
|
children: [
|
|
18715
|
-
/* @__PURE__ */
|
|
18515
|
+
/* @__PURE__ */ jsxs12("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
18716
18516
|
/* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate leading-[1.15]", children: option.label }),
|
|
18717
18517
|
showTooltipDescription && option.description ? /* @__PURE__ */ jsx23(
|
|
18718
18518
|
ComposerOptionInfoTooltip,
|
|
@@ -18759,11 +18559,11 @@ function ComposerModelOptionTooltip({
|
|
|
18759
18559
|
if (!tooltipsEnabled || !option.tooltip) {
|
|
18760
18560
|
return children;
|
|
18761
18561
|
}
|
|
18762
|
-
return /* @__PURE__ */
|
|
18562
|
+
return /* @__PURE__ */ jsxs12(Tooltip2, { children: [
|
|
18763
18563
|
/* @__PURE__ */ jsx23(TooltipTrigger2, { asChild: true, children: cloneElement(children, {
|
|
18764
18564
|
"data-agent-model-option-tooltip-trigger": "true"
|
|
18765
18565
|
}) }),
|
|
18766
|
-
/* @__PURE__ */
|
|
18566
|
+
/* @__PURE__ */ jsxs12(
|
|
18767
18567
|
TooltipContent2,
|
|
18768
18568
|
{
|
|
18769
18569
|
side: "right",
|
|
@@ -19071,7 +18871,7 @@ function fileToBase64(file) {
|
|
|
19071
18871
|
}
|
|
19072
18872
|
|
|
19073
18873
|
// agent-gui/agentGuiNode/agentRichText/AgentRichTextEditor.tsx
|
|
19074
|
-
import { jsx as jsx24, jsxs as
|
|
18874
|
+
import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
19075
18875
|
function buildWorkspaceFileMentionDropContent(entries, options = {}) {
|
|
19076
18876
|
return entries.flatMap((entry, index) => [
|
|
19077
18877
|
...index === 0 && options.prefixCaretAnchor ? [
|
|
@@ -20006,7 +19806,7 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
|
|
|
20006
19806
|
editor.commands.setTextSelection(editor.state.doc.content.size);
|
|
20007
19807
|
lastEmittedPromptRef.current = value;
|
|
20008
19808
|
}, [availableCapabilities, availableSkills, editor, value]);
|
|
20009
|
-
return /* @__PURE__ */
|
|
19809
|
+
return /* @__PURE__ */ jsxs13("div", { className: "relative min-w-0", onKeyDownCapture: handleKeyDownCapture, children: [
|
|
20010
19810
|
editor ? /* @__PURE__ */ jsx24(EditorContent, { editor }) : /* @__PURE__ */ jsx24(
|
|
20011
19811
|
"div",
|
|
20012
19812
|
{
|
|
@@ -20021,7 +19821,7 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
|
|
|
20021
19821
|
}
|
|
20022
19822
|
),
|
|
20023
19823
|
contextMenu ? createPortal(
|
|
20024
|
-
/* @__PURE__ */
|
|
19824
|
+
/* @__PURE__ */ jsxs13(
|
|
20025
19825
|
"div",
|
|
20026
19826
|
{
|
|
20027
19827
|
role: "menu",
|
|
@@ -20106,7 +19906,7 @@ function AgentRichTextContextMenuButton({
|
|
|
20106
19906
|
|
|
20107
19907
|
// agent-gui/agentGuiNode/AgentSlashStatusPanel.tsx
|
|
20108
19908
|
import { Fragment as Fragment6 } from "react";
|
|
20109
|
-
import { Fragment as Fragment7, jsx as jsx25, jsxs as
|
|
19909
|
+
import { Fragment as Fragment7, jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
20110
19910
|
function formatSlashStatusTokenCount(value) {
|
|
20111
19911
|
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
20112
19912
|
return "";
|
|
@@ -20140,14 +19940,14 @@ function AgentSlashStatusPanel({
|
|
|
20140
19940
|
const agentSessionId = status?.agentSessionId?.trim() ?? "";
|
|
20141
19941
|
const baseUrl = status?.baseUrl?.trim() ?? "";
|
|
20142
19942
|
const showSessionDetails = agentSessionId.length > 0;
|
|
20143
|
-
return /* @__PURE__ */
|
|
19943
|
+
return /* @__PURE__ */ jsxs14(
|
|
20144
19944
|
"section",
|
|
20145
19945
|
{
|
|
20146
19946
|
className: "agent-gui-node__slash-status-panel",
|
|
20147
19947
|
"data-testid": "agent-gui-slash-status-panel",
|
|
20148
19948
|
role: "status",
|
|
20149
19949
|
children: [
|
|
20150
|
-
/* @__PURE__ */
|
|
19950
|
+
/* @__PURE__ */ jsxs14("div", { className: "mb-2 flex items-center justify-between gap-2", children: [
|
|
20151
19951
|
/* @__PURE__ */ jsx25("h3", { className: "truncate text-[11px] font-semibold leading-4", children: labels.slashStatusTitle }),
|
|
20152
19952
|
/* @__PURE__ */ jsx25(
|
|
20153
19953
|
"button",
|
|
@@ -20159,32 +19959,32 @@ function AgentSlashStatusPanel({
|
|
|
20159
19959
|
}
|
|
20160
19960
|
)
|
|
20161
19961
|
] }),
|
|
20162
|
-
/* @__PURE__ */
|
|
20163
|
-
showSessionDetails ? /* @__PURE__ */
|
|
20164
|
-
/* @__PURE__ */
|
|
19962
|
+
/* @__PURE__ */ jsxs14("dl", { className: "grid grid-cols-[max-content_minmax(0,1fr)] gap-x-3 gap-y-1 font-mono text-[11px] leading-4", children: [
|
|
19963
|
+
showSessionDetails ? /* @__PURE__ */ jsxs14(Fragment7, { children: [
|
|
19964
|
+
/* @__PURE__ */ jsxs14("dt", { className: "text-muted-foreground", children: [
|
|
20165
19965
|
labels.slashStatusSession,
|
|
20166
19966
|
":"
|
|
20167
19967
|
] }),
|
|
20168
19968
|
/* @__PURE__ */ jsx25("dd", { className: "min-w-0 truncate", children: agentSessionId }),
|
|
20169
|
-
baseUrl ? /* @__PURE__ */
|
|
20170
|
-
/* @__PURE__ */
|
|
19969
|
+
baseUrl ? /* @__PURE__ */ jsxs14(Fragment7, { children: [
|
|
19970
|
+
/* @__PURE__ */ jsxs14("dt", { className: "text-muted-foreground", children: [
|
|
20171
19971
|
labels.slashStatusBaseUrl,
|
|
20172
19972
|
":"
|
|
20173
19973
|
] }),
|
|
20174
19974
|
/* @__PURE__ */ jsx25("dd", { className: "min-w-0 truncate", children: baseUrl })
|
|
20175
19975
|
] }) : null,
|
|
20176
|
-
/* @__PURE__ */
|
|
19976
|
+
/* @__PURE__ */ jsxs14("dt", { className: "text-muted-foreground", children: [
|
|
20177
19977
|
labels.slashStatusContext,
|
|
20178
19978
|
":"
|
|
20179
19979
|
] }),
|
|
20180
19980
|
/* @__PURE__ */ jsx25("dd", { className: "min-w-0", children: slashStatusContextText(status, labels) })
|
|
20181
19981
|
] }) : null,
|
|
20182
|
-
limits.map((limit) => /* @__PURE__ */
|
|
20183
|
-
/* @__PURE__ */
|
|
19982
|
+
limits.map((limit) => /* @__PURE__ */ jsxs14(Fragment6, { children: [
|
|
19983
|
+
/* @__PURE__ */ jsxs14("dt", { className: "text-muted-foreground", children: [
|
|
20184
19984
|
limit.label,
|
|
20185
19985
|
":"
|
|
20186
19986
|
] }),
|
|
20187
|
-
/* @__PURE__ */ jsx25("dd", { className: "min-w-0", children: /* @__PURE__ */
|
|
19987
|
+
/* @__PURE__ */ jsx25("dd", { className: "min-w-0", children: /* @__PURE__ */ jsxs14("span", { className: "agent-gui-node__slash-status-limit", children: [
|
|
20188
19988
|
typeof limit.percentRemaining === "number" && Number.isFinite(limit.percentRemaining) ? /* @__PURE__ */ jsx25(
|
|
20189
19989
|
"span",
|
|
20190
19990
|
{
|
|
@@ -20204,9 +20004,9 @@ function AgentSlashStatusPanel({
|
|
|
20204
20004
|
)
|
|
20205
20005
|
}
|
|
20206
20006
|
) : null,
|
|
20207
|
-
/* @__PURE__ */
|
|
20007
|
+
/* @__PURE__ */ jsxs14("span", { className: "agent-gui-node__slash-status-limit-value", children: [
|
|
20208
20008
|
limit.value,
|
|
20209
|
-
limit.reset ? /* @__PURE__ */
|
|
20009
|
+
limit.reset ? /* @__PURE__ */ jsxs14("span", { className: "text-muted-foreground", children: [
|
|
20210
20010
|
" ",
|
|
20211
20011
|
"(",
|
|
20212
20012
|
limit.reset,
|
|
@@ -20215,8 +20015,8 @@ function AgentSlashStatusPanel({
|
|
|
20215
20015
|
] })
|
|
20216
20016
|
] }) })
|
|
20217
20017
|
] }, limit.id)),
|
|
20218
|
-
limits.length === 0 && status?.limitsLoading ? /* @__PURE__ */
|
|
20219
|
-
/* @__PURE__ */
|
|
20018
|
+
limits.length === 0 && status?.limitsLoading ? /* @__PURE__ */ jsxs14(Fragment7, { children: [
|
|
20019
|
+
/* @__PURE__ */ jsxs14("dt", { className: "text-muted-foreground", children: [
|
|
20220
20020
|
labels.slashStatusLimits,
|
|
20221
20021
|
":"
|
|
20222
20022
|
] }),
|
|
@@ -20324,7 +20124,7 @@ var AgentReviewBranchController = class {
|
|
|
20324
20124
|
};
|
|
20325
20125
|
|
|
20326
20126
|
// agent-gui/agentGuiNode/AgentReviewPickerPanel.tsx
|
|
20327
|
-
import { jsx as jsx26, jsxs as
|
|
20127
|
+
import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
20328
20128
|
var reviewMenuStyles = {
|
|
20329
20129
|
panel: "agent-gui-node__slash-status-panel nodrag flex max-h-[280px] flex-col gap-1 overflow-hidden [-webkit-app-region:no-drag]",
|
|
20330
20130
|
search: "nodrag h-8 w-full shrink-0 rounded-[6px] border-0 bg-transparent px-2.5 text-[11px] leading-4 text-[var(--text-primary)] placeholder:text-[var(--text-secondary)] focus-visible:outline-none [-webkit-app-region:no-drag]",
|
|
@@ -20520,7 +20320,7 @@ function AgentReviewPickerPanel({
|
|
|
20520
20320
|
},
|
|
20521
20321
|
[entries, safeHighlightedIndex, stage, query, onClose, goBackToRoot]
|
|
20522
20322
|
);
|
|
20523
|
-
return /* @__PURE__ */
|
|
20323
|
+
return /* @__PURE__ */ jsxs15(
|
|
20524
20324
|
"section",
|
|
20525
20325
|
{
|
|
20526
20326
|
className: reviewMenuStyles.panel,
|
|
@@ -20572,7 +20372,7 @@ function AgentReviewPickerPanel({
|
|
|
20572
20372
|
entry.onSelect();
|
|
20573
20373
|
}
|
|
20574
20374
|
},
|
|
20575
|
-
children: /* @__PURE__ */
|
|
20375
|
+
children: /* @__PURE__ */ jsxs15("span", { className: reviewMenuStyles.copy, children: [
|
|
20576
20376
|
/* @__PURE__ */ jsx26("span", { className: reviewMenuStyles.name, children: entry.label }),
|
|
20577
20377
|
entry.description ? /* @__PURE__ */ jsx26("span", { className: reviewMenuStyles.description, children: entry.description }) : null
|
|
20578
20378
|
] })
|
|
@@ -20859,7 +20659,7 @@ var bold_lined_default = "./@-bold-lined-BLLFKBFI.svg";
|
|
|
20859
20659
|
var handoff_lined_default = "./handoff-lined-4WQUBVG3.svg";
|
|
20860
20660
|
|
|
20861
20661
|
// agent-gui/agentGuiNode/AgentComposer.tsx
|
|
20862
|
-
import { jsx as jsx28, jsxs as
|
|
20662
|
+
import { jsx as jsx28, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
20863
20663
|
var USAGE_POPOVER_HOVER_DELAY_MS = 120;
|
|
20864
20664
|
var HANDOFF_LOTTIE_PLAYER_SCRIPT_SRC = "https://unpkg.com/@lottiefiles/dotlottie-wc@0.9.14/dist/dotlottie-wc.js";
|
|
20865
20665
|
var HANDOFF_LOTTIE_ANIMATION_SRC = "https://lottie.host/03d75946-52e5-4ccf-97df-174919a13ced/Av6piqVmPa.lottie";
|
|
@@ -21015,7 +20815,7 @@ function AgentUsageChip({
|
|
|
21015
20815
|
if (!tooltipsEnabled) {
|
|
21016
20816
|
return trigger;
|
|
21017
20817
|
}
|
|
21018
|
-
return /* @__PURE__ */
|
|
20818
|
+
return /* @__PURE__ */ jsxs16(
|
|
21019
20819
|
Popover,
|
|
21020
20820
|
{
|
|
21021
20821
|
open: usagePopoverOpen,
|
|
@@ -21033,7 +20833,7 @@ function AgentUsageChip({
|
|
|
21033
20833
|
onOpenAutoFocus: (event) => event.preventDefault(),
|
|
21034
20834
|
onPointerEnter: openUsagePopover,
|
|
21035
20835
|
onPointerLeave: scheduleUsagePopoverClose,
|
|
21036
|
-
children: /* @__PURE__ */
|
|
20836
|
+
children: /* @__PURE__ */ jsxs16("div", { className: "flex min-w-0 flex-col gap-3", children: [
|
|
21037
20837
|
/* @__PURE__ */ jsx28("span", { className: "text-[13px] font-semibold leading-4", children: labels.usagePopoverTitle }),
|
|
21038
20838
|
showTokens ? /* @__PURE__ */ jsx28(
|
|
21039
20839
|
AgentUsageMeter,
|
|
@@ -21208,7 +21008,7 @@ function AgentComposerHandoffIcon({
|
|
|
21208
21008
|
};
|
|
21209
21009
|
}, []);
|
|
21210
21010
|
const shouldShowAnimation = !disabled && isPlaying && isLottieReady;
|
|
21211
|
-
return /* @__PURE__ */
|
|
21011
|
+
return /* @__PURE__ */ jsxs16(
|
|
21212
21012
|
"span",
|
|
21213
21013
|
{
|
|
21214
21014
|
"aria-hidden": "true",
|
|
@@ -22942,7 +22742,7 @@ function AgentComposer({
|
|
|
22942
22742
|
},
|
|
22943
22743
|
[onSubmitInteractivePrompt]
|
|
22944
22744
|
);
|
|
22945
|
-
const composerActionButton = shouldShowStopButton ? /* @__PURE__ */
|
|
22745
|
+
const composerActionButton = shouldShowStopButton ? /* @__PURE__ */ jsxs16(
|
|
22946
22746
|
"button",
|
|
22947
22747
|
{
|
|
22948
22748
|
type: "button",
|
|
@@ -23002,7 +22802,7 @@ function AgentComposer({
|
|
|
23002
22802
|
"data-rotating": promptTips.length > 1 ? "true" : void 0,
|
|
23003
22803
|
"data-testid": "agent-gui-prompt-tip",
|
|
23004
22804
|
style: promptTipStyle,
|
|
23005
|
-
children: /* @__PURE__ */ jsx28("span", { className: AgentGUINode_styles_default.composerPromptTipTrack, children: rotatingPromptTips.map((tip, index) => /* @__PURE__ */
|
|
22805
|
+
children: /* @__PURE__ */ jsx28("span", { className: AgentGUINode_styles_default.composerPromptTipTrack, children: rotatingPromptTips.map((tip, index) => /* @__PURE__ */ jsxs16(
|
|
23006
22806
|
"span",
|
|
23007
22807
|
{
|
|
23008
22808
|
className: AgentGUINode_styles_default.composerPromptTipItem,
|
|
@@ -23010,7 +22810,7 @@ function AgentComposer({
|
|
|
23010
22810
|
children: [
|
|
23011
22811
|
/* @__PURE__ */ jsx28("span", { className: AgentGUINode_styles_default.composerPromptTipPrefix, children: labels.promptTipsPrefix }),
|
|
23012
22812
|
/* @__PURE__ */ jsx28("span", { className: AgentGUINode_styles_default.composerPromptTipLabel, children: tip.label }),
|
|
23013
|
-
/* @__PURE__ */
|
|
22813
|
+
/* @__PURE__ */ jsxs16("span", { className: AgentGUINode_styles_default.composerPromptTipText, children: [
|
|
23014
22814
|
" \xB7 ",
|
|
23015
22815
|
tip.prompt
|
|
23016
22816
|
] })
|
|
@@ -23021,7 +22821,7 @@ function AgentComposer({
|
|
|
23021
22821
|
},
|
|
23022
22822
|
activePromptTip.id
|
|
23023
22823
|
) : null;
|
|
23024
|
-
return /* @__PURE__ */
|
|
22824
|
+
return /* @__PURE__ */ jsxs16(
|
|
23025
22825
|
"form",
|
|
23026
22826
|
{
|
|
23027
22827
|
ref: composerRef,
|
|
@@ -23102,7 +22902,7 @@ function AgentComposer({
|
|
|
23102
22902
|
onProjectMissingChange: setIsSelectedProjectMissing
|
|
23103
22903
|
}
|
|
23104
22904
|
) : null,
|
|
23105
|
-
/* @__PURE__ */
|
|
22905
|
+
/* @__PURE__ */ jsxs16(
|
|
23106
22906
|
"div",
|
|
23107
22907
|
{
|
|
23108
22908
|
className: cn(
|
|
@@ -23133,7 +22933,7 @@ function AgentComposer({
|
|
|
23133
22933
|
description: labels.projectMissingDescription
|
|
23134
22934
|
}
|
|
23135
22935
|
) : null,
|
|
23136
|
-
/* @__PURE__ */
|
|
22936
|
+
/* @__PURE__ */ jsxs16(
|
|
23137
22937
|
"div",
|
|
23138
22938
|
{
|
|
23139
22939
|
ref: inputShellRef,
|
|
@@ -23143,14 +22943,14 @@ function AgentComposer({
|
|
|
23143
22943
|
title: inputDisabled && disabledReasonText ? disabledReasonText : void 0,
|
|
23144
22944
|
style: inputShellStyle,
|
|
23145
22945
|
children: [
|
|
23146
|
-
/* @__PURE__ */
|
|
22946
|
+
/* @__PURE__ */ jsxs16(
|
|
23147
22947
|
Popover,
|
|
23148
22948
|
{
|
|
23149
22949
|
open: showFileMentionPalette,
|
|
23150
22950
|
onOpenChange: setIsPaletteOpen,
|
|
23151
22951
|
modal: false,
|
|
23152
22952
|
children: [
|
|
23153
|
-
/* @__PURE__ */ jsx28(PopoverAnchor, { asChild: true, children: /* @__PURE__ */
|
|
22953
|
+
/* @__PURE__ */ jsx28(PopoverAnchor, { asChild: true, children: /* @__PURE__ */ jsxs16(
|
|
23154
22954
|
"div",
|
|
23155
22955
|
{
|
|
23156
22956
|
ref: promptInputAreaRef,
|
|
@@ -23182,7 +22982,7 @@ function AgentComposer({
|
|
|
23182
22982
|
{
|
|
23183
22983
|
className: "mb-2 flex max-w-[520px] flex-wrap gap-2",
|
|
23184
22984
|
"data-testid": "agent-gui-composer-file-drafts",
|
|
23185
|
-
children: visibleDraftFiles.map((file) => /* @__PURE__ */
|
|
22985
|
+
children: visibleDraftFiles.map((file) => /* @__PURE__ */ jsxs16(
|
|
23186
22986
|
"div",
|
|
23187
22987
|
{
|
|
23188
22988
|
className: cn(
|
|
@@ -23227,7 +23027,7 @@ function AgentComposer({
|
|
|
23227
23027
|
))
|
|
23228
23028
|
}
|
|
23229
23029
|
) : null,
|
|
23230
|
-
/* @__PURE__ */
|
|
23030
|
+
/* @__PURE__ */ jsxs16(
|
|
23231
23031
|
"div",
|
|
23232
23032
|
{
|
|
23233
23033
|
className: cn(
|
|
@@ -23396,11 +23196,11 @@ function AgentComposer({
|
|
|
23396
23196
|
]
|
|
23397
23197
|
}
|
|
23398
23198
|
),
|
|
23399
|
-
/* @__PURE__ */
|
|
23400
|
-
/* @__PURE__ */
|
|
23401
|
-
/* @__PURE__ */
|
|
23402
|
-
previewMode ? /* @__PURE__ */ jsx28(
|
|
23403
|
-
/* @__PURE__ */ jsx28(
|
|
23199
|
+
/* @__PURE__ */ jsxs16("div", { className: AgentGUINode_styles_default.composerFooter, children: [
|
|
23200
|
+
/* @__PURE__ */ jsxs16("div", { className: composerStyles.footerGroup, children: [
|
|
23201
|
+
/* @__PURE__ */ jsxs16("div", { className: "inline-flex shrink-0 items-center gap-1", children: [
|
|
23202
|
+
previewMode ? /* @__PURE__ */ jsx28(TooltipProvider2, { delayDuration: 120, children: /* @__PURE__ */ jsxs16(Tooltip3, { children: [
|
|
23203
|
+
/* @__PURE__ */ jsx28(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx28(
|
|
23404
23204
|
"button",
|
|
23405
23205
|
{
|
|
23406
23206
|
type: "button",
|
|
@@ -23419,8 +23219,8 @@ function AgentComposer({
|
|
|
23419
23219
|
)
|
|
23420
23220
|
}
|
|
23421
23221
|
) }),
|
|
23422
|
-
/* @__PURE__ */ jsx28(
|
|
23423
|
-
] }) }) : /* @__PURE__ */ jsx28(
|
|
23222
|
+
/* @__PURE__ */ jsx28(TooltipContent3, { side: "top", children: labels.addContent })
|
|
23223
|
+
] }) }) : /* @__PURE__ */ jsx28(TooltipProvider2, { delayDuration: 120, children: /* @__PURE__ */ jsxs16(Tooltip3, { children: [
|
|
23424
23224
|
/* @__PURE__ */ jsx28(
|
|
23425
23225
|
Select2,
|
|
23426
23226
|
{
|
|
@@ -23437,7 +23237,7 @@ function AgentComposer({
|
|
|
23437
23237
|
void handleWorkspaceReferencePicker();
|
|
23438
23238
|
}
|
|
23439
23239
|
},
|
|
23440
|
-
children: /* @__PURE__ */ jsx28(
|
|
23240
|
+
children: /* @__PURE__ */ jsx28(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx28(
|
|
23441
23241
|
SelectTrigger2,
|
|
23442
23242
|
{
|
|
23443
23243
|
size: "sm",
|
|
@@ -23459,10 +23259,10 @@ function AgentComposer({
|
|
|
23459
23259
|
) })
|
|
23460
23260
|
}
|
|
23461
23261
|
),
|
|
23462
|
-
/* @__PURE__ */ jsx28(
|
|
23262
|
+
/* @__PURE__ */ jsx28(TooltipContent3, { side: "top", children: labels.addContent })
|
|
23463
23263
|
] }) }),
|
|
23464
|
-
/* @__PURE__ */ jsx28(
|
|
23465
|
-
/* @__PURE__ */ jsx28(
|
|
23264
|
+
/* @__PURE__ */ jsx28(TooltipProvider2, { delayDuration: 120, children: /* @__PURE__ */ jsxs16(Tooltip3, { children: [
|
|
23265
|
+
/* @__PURE__ */ jsx28(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx28(
|
|
23466
23266
|
"button",
|
|
23467
23267
|
{
|
|
23468
23268
|
type: "button",
|
|
@@ -23494,10 +23294,10 @@ function AgentComposer({
|
|
|
23494
23294
|
)
|
|
23495
23295
|
}
|
|
23496
23296
|
) }),
|
|
23497
|
-
/* @__PURE__ */ jsx28(
|
|
23297
|
+
/* @__PURE__ */ jsx28(TooltipContent3, { side: "top", children: labels.mentionPalette })
|
|
23498
23298
|
] }) })
|
|
23499
23299
|
] }),
|
|
23500
|
-
showHandoffSelect ? /* @__PURE__ */
|
|
23300
|
+
showHandoffSelect ? /* @__PURE__ */ jsxs16(
|
|
23501
23301
|
Select2,
|
|
23502
23302
|
{
|
|
23503
23303
|
value: HANDOFF_SELECT_IDLE_VALUE,
|
|
@@ -23536,7 +23336,7 @@ function AgentComposer({
|
|
|
23536
23336
|
AgentGUINode_styles_default.composerHandoffTrigger,
|
|
23537
23337
|
"w-auto max-w-[180px] [&>svg:last-child]:hidden"
|
|
23538
23338
|
),
|
|
23539
|
-
children: /* @__PURE__ */
|
|
23339
|
+
children: /* @__PURE__ */ jsxs16("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
23540
23340
|
/* @__PURE__ */ jsx28(
|
|
23541
23341
|
AgentComposerHandoffIcon,
|
|
23542
23342
|
{
|
|
@@ -23564,7 +23364,7 @@ function AgentComposer({
|
|
|
23564
23364
|
value: target.targetId,
|
|
23565
23365
|
className: cn(AgentGUINode_styles_default.composerMenuItem, "gap-2"),
|
|
23566
23366
|
disabled: target.disabled === true,
|
|
23567
|
-
children: /* @__PURE__ */
|
|
23367
|
+
children: /* @__PURE__ */ jsxs16("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
23568
23368
|
/* @__PURE__ */ jsx28(
|
|
23569
23369
|
"img",
|
|
23570
23370
|
{
|
|
@@ -23583,7 +23383,7 @@ function AgentComposer({
|
|
|
23583
23383
|
)
|
|
23584
23384
|
]
|
|
23585
23385
|
}
|
|
23586
|
-
) : showProviderSelect && selectedProviderSwitchTarget ? /* @__PURE__ */
|
|
23386
|
+
) : showProviderSelect && selectedProviderSwitchTarget ? /* @__PURE__ */ jsxs16(
|
|
23587
23387
|
Select2,
|
|
23588
23388
|
{
|
|
23589
23389
|
value: selectedProviderSwitchTarget.targetId,
|
|
@@ -23612,7 +23412,7 @@ function AgentComposer({
|
|
|
23612
23412
|
AgentGUINode_styles_default.composerProviderSelect,
|
|
23613
23413
|
"w-auto max-w-[180px]"
|
|
23614
23414
|
),
|
|
23615
|
-
children: /* @__PURE__ */
|
|
23415
|
+
children: /* @__PURE__ */ jsxs16("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
23616
23416
|
/* @__PURE__ */ jsx28(
|
|
23617
23417
|
"img",
|
|
23618
23418
|
{
|
|
@@ -23639,7 +23439,7 @@ function AgentComposer({
|
|
|
23639
23439
|
value: target.targetId,
|
|
23640
23440
|
className: cn(AgentGUINode_styles_default.composerMenuItem, "gap-2"),
|
|
23641
23441
|
disabled: target.disabled === true,
|
|
23642
|
-
children: /* @__PURE__ */
|
|
23442
|
+
children: /* @__PURE__ */ jsxs16("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
23643
23443
|
/* @__PURE__ */ jsx28(
|
|
23644
23444
|
"img",
|
|
23645
23445
|
{
|
|
@@ -23673,8 +23473,8 @@ function AgentComposer({
|
|
|
23673
23473
|
"disabled:cursor-not-allowed disabled:opacity-60"
|
|
23674
23474
|
),
|
|
23675
23475
|
onClick: () => onSettingsChange({ planMode: false }),
|
|
23676
|
-
children: /* @__PURE__ */
|
|
23677
|
-
/* @__PURE__ */
|
|
23476
|
+
children: /* @__PURE__ */ jsxs16("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
|
|
23477
|
+
/* @__PURE__ */ jsxs16("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
|
|
23678
23478
|
/* @__PURE__ */ jsx28(
|
|
23679
23479
|
ListChecks2,
|
|
23680
23480
|
{
|
|
@@ -23715,8 +23515,8 @@ function AgentComposer({
|
|
|
23715
23515
|
"disabled:cursor-not-allowed disabled:opacity-60"
|
|
23716
23516
|
),
|
|
23717
23517
|
onClick: clearGoalModeBadge,
|
|
23718
|
-
children: /* @__PURE__ */
|
|
23719
|
-
/* @__PURE__ */
|
|
23518
|
+
children: /* @__PURE__ */ jsxs16("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
|
|
23519
|
+
/* @__PURE__ */ jsxs16("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
|
|
23720
23520
|
/* @__PURE__ */ jsx28(
|
|
23721
23521
|
Target3,
|
|
23722
23522
|
{
|
|
@@ -23744,7 +23544,7 @@ function AgentComposer({
|
|
|
23744
23544
|
}
|
|
23745
23545
|
) : null
|
|
23746
23546
|
] }),
|
|
23747
|
-
/* @__PURE__ */
|
|
23547
|
+
/* @__PURE__ */ jsxs16("div", { className: composerStyles.footerGroupRight, children: [
|
|
23748
23548
|
usage && usage.percentUsed !== null ? /* @__PURE__ */ jsx28(
|
|
23749
23549
|
AgentUsageChip,
|
|
23750
23550
|
{
|
|
@@ -23819,7 +23619,7 @@ function AgentComposer({
|
|
|
23819
23619
|
]
|
|
23820
23620
|
}
|
|
23821
23621
|
),
|
|
23822
|
-
showProjectRow ? /* @__PURE__ */
|
|
23622
|
+
showProjectRow ? /* @__PURE__ */ jsxs16(
|
|
23823
23623
|
"div",
|
|
23824
23624
|
{
|
|
23825
23625
|
className: AgentGUINode_styles_default.composerProjectRow,
|
|
@@ -23845,10 +23645,10 @@ function AgentComposer({
|
|
|
23845
23645
|
{
|
|
23846
23646
|
className: AgentGUINode_styles_default.composerPromptTips,
|
|
23847
23647
|
"data-testid": "agent-gui-prompt-tips",
|
|
23848
|
-
children: !previewMode && isPromptTipOverflowing && promptTipNode ? /* @__PURE__ */ jsx28(
|
|
23849
|
-
/* @__PURE__ */ jsx28(
|
|
23648
|
+
children: !previewMode && isPromptTipOverflowing && promptTipNode ? /* @__PURE__ */ jsx28(TooltipProvider2, { delayDuration: 0, children: /* @__PURE__ */ jsxs16(Tooltip3, { children: [
|
|
23649
|
+
/* @__PURE__ */ jsx28(TooltipTrigger3, { asChild: true, children: promptTipNode }),
|
|
23850
23650
|
/* @__PURE__ */ jsx28(
|
|
23851
|
-
|
|
23651
|
+
TooltipContent3,
|
|
23852
23652
|
{
|
|
23853
23653
|
align: "end",
|
|
23854
23654
|
className: AgentGUINode_styles_default.composerPromptTipTooltip,
|
|
@@ -23888,7 +23688,7 @@ function AgentComposerDraftImagePreview({
|
|
|
23888
23688
|
aspectRatio: String(aspectRatio),
|
|
23889
23689
|
width: `${previewWidth}px`
|
|
23890
23690
|
};
|
|
23891
|
-
return /* @__PURE__ */
|
|
23691
|
+
return /* @__PURE__ */ jsxs16(
|
|
23892
23692
|
"div",
|
|
23893
23693
|
{
|
|
23894
23694
|
className: cn(
|
|
@@ -24050,9 +23850,9 @@ function SendFilledIcon() {
|
|
|
24050
23850
|
}
|
|
24051
23851
|
|
|
24052
23852
|
// agent-gui/agentGuiNode/AgentGUIBottomDockStore.ts
|
|
24053
|
-
import { proxy } from "valtio/vanilla";
|
|
23853
|
+
import { proxy as proxy2 } from "valtio/vanilla";
|
|
24054
23854
|
function createAgentGUIBottomDockStore(initialState) {
|
|
24055
|
-
return
|
|
23855
|
+
return proxy2(initialState);
|
|
24056
23856
|
}
|
|
24057
23857
|
function syncAgentGUIBottomDockStore(store, next) {
|
|
24058
23858
|
if (agentGUIBottomDockStoreSnapshotsEqual(store, next)) {
|
|
@@ -24065,7 +23865,7 @@ function agentGUIBottomDockStoreSnapshotsEqual(current, next) {
|
|
|
24065
23865
|
}
|
|
24066
23866
|
|
|
24067
23867
|
// agent-gui/agentGuiNode/AgentConversationListSkeleton.tsx
|
|
24068
|
-
import { jsx as jsx29, jsxs as
|
|
23868
|
+
import { jsx as jsx29, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
24069
23869
|
var SKELETON_ROWS = [
|
|
24070
23870
|
{ id: "first", size: "long" },
|
|
24071
23871
|
{ id: "second", size: "medium" },
|
|
@@ -24084,7 +23884,7 @@ function AgentConversationListSkeleton({
|
|
|
24084
23884
|
role: "status",
|
|
24085
23885
|
"aria-label": label,
|
|
24086
23886
|
"data-testid": "agent-gui-conversation-list-loading-skeleton",
|
|
24087
|
-
children: SKELETON_ROWS.map((row) => /* @__PURE__ */
|
|
23887
|
+
children: SKELETON_ROWS.map((row) => /* @__PURE__ */ jsxs17(
|
|
24088
23888
|
"div",
|
|
24089
23889
|
{
|
|
24090
23890
|
className: "agent-gui-node__conversation-list-skeleton-row",
|
|
@@ -24103,6 +23903,7 @@ function AgentConversationListSkeleton({
|
|
|
24103
23903
|
}
|
|
24104
23904
|
|
|
24105
23905
|
// agent-gui/agentGuiNode/agentGuiNodeViewConversation.tsx
|
|
23906
|
+
import { Spinner as Spinner2 } from "@tutti-os/ui-system";
|
|
24106
23907
|
import { AskLinedIcon } from "@tutti-os/ui-system/icons";
|
|
24107
23908
|
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
24108
23909
|
function ConversationMeta({
|
|
@@ -24337,7 +24138,7 @@ function formatConversationRelativeTime(updatedAtUnixMs, nowMs, labels) {
|
|
|
24337
24138
|
function LoadingGlyph() {
|
|
24338
24139
|
"use memo";
|
|
24339
24140
|
return /* @__PURE__ */ jsx30(
|
|
24340
|
-
|
|
24141
|
+
Spinner2,
|
|
24341
24142
|
{
|
|
24342
24143
|
className: AgentGUINode_styles_default.conversationStatusGlyph,
|
|
24343
24144
|
size: 14,
|
|
@@ -24370,11 +24171,12 @@ function AttentionGlyph() {
|
|
|
24370
24171
|
|
|
24371
24172
|
// agent-gui/agentGuiNode/AgentGUINodeView.tsx
|
|
24372
24173
|
import { createRichTextMentionHref as createRichTextMentionHref2 } from "@tutti-os/ui-rich-text/core";
|
|
24373
|
-
import { Fragment as Fragment9, jsx as jsx31, jsxs as
|
|
24174
|
+
import { Fragment as Fragment9, jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
24374
24175
|
var AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX = 24;
|
|
24375
24176
|
var AGENT_GUI_TOP_HISTORY_PREFETCH_THRESHOLD_PX = 240;
|
|
24376
24177
|
var AGENT_GUI_TOP_MASK_SCROLL_EPSILON_PX = 1;
|
|
24377
24178
|
var AGENT_GUI_CONVERSATION_RAIL_SECTION_PAGE_SIZE = 5;
|
|
24179
|
+
var AGENT_GUI_CONVERSATION_RAIL_LOADING_SKELETON_DELAY_MS = 300;
|
|
24378
24180
|
var AGENT_GUI_CONVERSATION_RAIL_PROJECTION_PROVIDER = "codex";
|
|
24379
24181
|
var AGENT_GUI_TIMELINE_SCROLL_AREA_CONTENT_STYLE = {
|
|
24380
24182
|
width: "100%",
|
|
@@ -24417,6 +24219,22 @@ var fallbackWorkspaceFileReferenceCopy = {
|
|
|
24417
24219
|
function agentGuiPerfNowMs() {
|
|
24418
24220
|
return globalThis.performance?.now?.() ?? Date.now();
|
|
24419
24221
|
}
|
|
24222
|
+
function useDelayedBoolean(value, delayMs) {
|
|
24223
|
+
const [delayedValue, setDelayedValue] = useState12(false);
|
|
24224
|
+
useEffect13(() => {
|
|
24225
|
+
if (!value) {
|
|
24226
|
+
setDelayedValue(false);
|
|
24227
|
+
return void 0;
|
|
24228
|
+
}
|
|
24229
|
+
const timer = window.setTimeout(() => {
|
|
24230
|
+
setDelayedValue(true);
|
|
24231
|
+
}, delayMs);
|
|
24232
|
+
return () => {
|
|
24233
|
+
window.clearTimeout(timer);
|
|
24234
|
+
};
|
|
24235
|
+
}, [delayMs, value]);
|
|
24236
|
+
return delayedValue;
|
|
24237
|
+
}
|
|
24420
24238
|
function roundAgentGuiPerfMs(value) {
|
|
24421
24239
|
return Math.round(value * 100) / 100;
|
|
24422
24240
|
}
|
|
@@ -24625,6 +24443,8 @@ function handoffProjectPathForConversation(conversation) {
|
|
|
24625
24443
|
}
|
|
24626
24444
|
function AgentGUINodeView({
|
|
24627
24445
|
viewModel,
|
|
24446
|
+
renderSidebarFooter,
|
|
24447
|
+
renderProviderRailEmpty,
|
|
24628
24448
|
onLinkAction,
|
|
24629
24449
|
onHandoffConversation,
|
|
24630
24450
|
capabilityMenuState,
|
|
@@ -24821,6 +24641,9 @@ function AgentGUINodeView({
|
|
|
24821
24641
|
);
|
|
24822
24642
|
const openProjectFiles = useOptionalStableEventCallback(onLinkAction);
|
|
24823
24643
|
const detailComposerFocusRequestSequence = localComposerFocusRequestSequence === 0 ? composerFocusRequestSequence : (composerFocusRequestSequence ?? 0) + localComposerFocusRequestSequence;
|
|
24644
|
+
const requestComposerFocus = useCallback10(() => {
|
|
24645
|
+
setLocalComposerFocusRequestSequence((current) => current + 1);
|
|
24646
|
+
}, []);
|
|
24824
24647
|
const requestCreateConversation = useCallback10(
|
|
24825
24648
|
(options) => {
|
|
24826
24649
|
if (previewMode) {
|
|
@@ -24837,11 +24660,12 @@ function AgentGUINodeView({
|
|
|
24837
24660
|
} else {
|
|
24838
24661
|
createConversationAction({ source: source ?? "rail_toolbar" });
|
|
24839
24662
|
}
|
|
24840
|
-
|
|
24663
|
+
requestComposerFocus();
|
|
24841
24664
|
},
|
|
24842
24665
|
[
|
|
24843
24666
|
createConversationAction,
|
|
24844
24667
|
previewMode,
|
|
24668
|
+
requestComposerFocus,
|
|
24845
24669
|
viewModel.composerSettings.selectedProjectPath
|
|
24846
24670
|
]
|
|
24847
24671
|
);
|
|
@@ -24992,11 +24816,11 @@ function AgentGUINodeView({
|
|
|
24992
24816
|
);
|
|
24993
24817
|
const sectionAgentTargetFallbackId = enabledProviderTargets.length <= 1 ? viewModel.selectedProviderTarget.agentTargetId?.trim() || viewModel.selectedProviderTarget.targetId?.trim() || null : null;
|
|
24994
24818
|
const openAgentEnvSetup = useCallback10(() => {
|
|
24995
|
-
if (!effectiveRailConfigProvider) {
|
|
24996
|
-
return;
|
|
24997
|
-
}
|
|
24998
24819
|
openAgentEnvPanel({ provider: effectiveRailConfigProvider, focus: null });
|
|
24999
24820
|
}, [effectiveRailConfigProvider]);
|
|
24821
|
+
const openAgentSettings = useCallback10(() => {
|
|
24822
|
+
openWorkspaceSettingsPanel({ section: "agent" });
|
|
24823
|
+
}, []);
|
|
25000
24824
|
const conversationRailStoreState = useMemo10(
|
|
25001
24825
|
() => ({
|
|
25002
24826
|
activeConversationId: viewModel.activeConversationId,
|
|
@@ -25022,6 +24846,7 @@ function AgentGUINodeView({
|
|
|
25022
24846
|
onUpdateConversationFilter: actions.updateConversationFilter,
|
|
25023
24847
|
onSelectConversationFilterTarget: actions.selectConversationFilterTarget,
|
|
25024
24848
|
onOpenAgentEnvSetup: openAgentEnvSetup,
|
|
24849
|
+
onOpenAgentSettings: openAgentSettings,
|
|
25025
24850
|
onAgentConfigMenuOpen,
|
|
25026
24851
|
onRetryOpenclawGateway: retryOpenclawGateway,
|
|
25027
24852
|
onSelectConversation: selectConversation,
|
|
@@ -25046,6 +24871,7 @@ function AgentGUINodeView({
|
|
|
25046
24871
|
labels,
|
|
25047
24872
|
onAgentConfigMenuOpen,
|
|
25048
24873
|
openAgentEnvSetup,
|
|
24874
|
+
openAgentSettings,
|
|
25049
24875
|
openConversationWindow,
|
|
25050
24876
|
openProjectFiles,
|
|
25051
24877
|
openclawGateway,
|
|
@@ -25101,8 +24927,8 @@ function AgentGUINodeView({
|
|
|
25101
24927
|
),
|
|
25102
24928
|
[viewModel.providerTargets, viewModel.workspaceId]
|
|
25103
24929
|
);
|
|
25104
|
-
const content = /* @__PURE__ */
|
|
25105
|
-
/* @__PURE__ */
|
|
24930
|
+
const content = /* @__PURE__ */ jsxs18(AgentTargetPresentationProvider, { agentTargets: agentTargetPresentations, children: [
|
|
24931
|
+
/* @__PURE__ */ jsxs18(
|
|
25106
24932
|
"div",
|
|
25107
24933
|
{
|
|
25108
24934
|
ref: layoutElementRef,
|
|
@@ -25112,27 +24938,43 @@ function AgentGUINodeView({
|
|
|
25112
24938
|
inert: previewMode ? true : void 0,
|
|
25113
24939
|
style: layoutStyle,
|
|
25114
24940
|
children: [
|
|
25115
|
-
showProviderRail ? /* @__PURE__ */
|
|
24941
|
+
showProviderRail ? /* @__PURE__ */ jsxs18(
|
|
25116
24942
|
"aside",
|
|
25117
24943
|
{
|
|
25118
24944
|
className: `${AgentGUINode_styles_default.providerRailPanel} nodrag tsh-desktop-no-drag`,
|
|
25119
24945
|
"aria-label": labels.providerSwitchLabel,
|
|
25120
24946
|
"aria-hidden": conversationRailCollapsed ? "true" : void 0,
|
|
25121
24947
|
inert: conversationRailCollapsed ? true : void 0,
|
|
25122
|
-
children:
|
|
25123
|
-
|
|
25124
|
-
|
|
25125
|
-
|
|
25126
|
-
|
|
25127
|
-
|
|
25128
|
-
|
|
25129
|
-
|
|
25130
|
-
|
|
25131
|
-
|
|
25132
|
-
|
|
25133
|
-
|
|
25134
|
-
|
|
25135
|
-
|
|
24948
|
+
children: [
|
|
24949
|
+
/* @__PURE__ */ jsx31(
|
|
24950
|
+
AgentGUIProviderRail,
|
|
24951
|
+
{
|
|
24952
|
+
conversationFilter: viewModel.conversationFilter,
|
|
24953
|
+
labels,
|
|
24954
|
+
previewMode,
|
|
24955
|
+
selectedProviderTarget: viewModel.selectedProviderTarget,
|
|
24956
|
+
providerTargets: viewModel.providerTargets,
|
|
24957
|
+
providerTargetsLoading: viewModel.providerTargetsLoading,
|
|
24958
|
+
providerRailMode: viewModel.providerRailMode,
|
|
24959
|
+
renderProviderRailEmpty,
|
|
24960
|
+
comingSoonProviders: viewModel.comingSoonProviders,
|
|
24961
|
+
onSelectConversationFilterTarget: actions.selectConversationFilterTarget,
|
|
24962
|
+
onUpdateConversationFilter: actions.updateConversationFilter,
|
|
24963
|
+
onRequestComposerFocus: requestComposerFocus
|
|
24964
|
+
}
|
|
24965
|
+
),
|
|
24966
|
+
renderSidebarFooter ? /* @__PURE__ */ jsx31(
|
|
24967
|
+
"div",
|
|
24968
|
+
{
|
|
24969
|
+
className: `${AgentGUINode_styles_default.providerRailFooter} nodrag tsh-desktop-no-drag`,
|
|
24970
|
+
"data-testid": "agent-gui-sidebar-footer-slot",
|
|
24971
|
+
children: renderSidebarFooter({
|
|
24972
|
+
currentUserId: viewModel.currentUserId,
|
|
24973
|
+
activeConversation: viewModel.activeConversation
|
|
24974
|
+
})
|
|
24975
|
+
}
|
|
24976
|
+
) : null
|
|
24977
|
+
]
|
|
25136
24978
|
}
|
|
25137
24979
|
) : null,
|
|
25138
24980
|
/* @__PURE__ */ jsx31(
|
|
@@ -25239,7 +25081,7 @@ function AgentGUINodeView({
|
|
|
25239
25081
|
}
|
|
25240
25082
|
)
|
|
25241
25083
|
] });
|
|
25242
|
-
return previewMode ? content : /* @__PURE__ */ jsx31(
|
|
25084
|
+
return previewMode ? content : /* @__PURE__ */ jsx31(TooltipProvider3, { children: content });
|
|
25243
25085
|
}
|
|
25244
25086
|
function mergeWorkspaceAppIconsFromCommands(input) {
|
|
25245
25087
|
const seen = new Set(
|
|
@@ -25455,7 +25297,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
25455
25297
|
]
|
|
25456
25298
|
);
|
|
25457
25299
|
const conversationFlowEmpty = useMemo10(
|
|
25458
|
-
() => /* @__PURE__ */
|
|
25300
|
+
() => /* @__PURE__ */ jsxs18(
|
|
25459
25301
|
"div",
|
|
25460
25302
|
{
|
|
25461
25303
|
className: AgentGUINode_styles_default.unavailableChatEmpty,
|
|
@@ -26315,7 +26157,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
26315
26157
|
);
|
|
26316
26158
|
setIsTimelineScrolledToBottom(true);
|
|
26317
26159
|
}, [viewModel.activeConversationId]);
|
|
26318
|
-
return /* @__PURE__ */
|
|
26160
|
+
return /* @__PURE__ */ jsxs18("main", { className: AgentGUINode_styles_default.detail, children: [
|
|
26319
26161
|
/* @__PURE__ */ jsx31(
|
|
26320
26162
|
AgentGUIDetailHeader,
|
|
26321
26163
|
{
|
|
@@ -26330,7 +26172,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
26330
26172
|
previewMode
|
|
26331
26173
|
}
|
|
26332
26174
|
),
|
|
26333
|
-
showProviderSetupNotice ? /* @__PURE__ */
|
|
26175
|
+
showProviderSetupNotice ? /* @__PURE__ */ jsxs18(
|
|
26334
26176
|
"div",
|
|
26335
26177
|
{
|
|
26336
26178
|
className: cn3(
|
|
@@ -26460,12 +26302,12 @@ var AgentGUIDetailHeader = memo(function AgentGUIDetailHeader2({
|
|
|
26460
26302
|
}
|
|
26461
26303
|
const runPath = activeConversation.cwd.trim();
|
|
26462
26304
|
const statusTitle = showSyncIndicator ? syncLabel : void 0;
|
|
26463
|
-
return /* @__PURE__ */
|
|
26464
|
-
/* @__PURE__ */
|
|
26305
|
+
return /* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.detailHeader, children: [
|
|
26306
|
+
/* @__PURE__ */ jsxs18("span", { className: AgentGUINode_styles_default.detailHeaderTitleGroup, children: [
|
|
26465
26307
|
/* @__PURE__ */ jsx31("span", { className: AgentGUINode_styles_default.detailHeaderTitle, children: conversationPlainTitle(activeConversation, labels, uiLanguage) }),
|
|
26466
26308
|
runPath ? /* @__PURE__ */ jsx31(AgentRunPathInfo, { path: runPath, previewMode }) : null
|
|
26467
26309
|
] }),
|
|
26468
|
-
/* @__PURE__ */
|
|
26310
|
+
/* @__PURE__ */ jsxs18(
|
|
26469
26311
|
"span",
|
|
26470
26312
|
{
|
|
26471
26313
|
className: "inline-flex flex-none items-center gap-2 whitespace-nowrap",
|
|
@@ -26504,10 +26346,10 @@ function AgentRunPathInfo({
|
|
|
26504
26346
|
if (previewMode) {
|
|
26505
26347
|
return trigger;
|
|
26506
26348
|
}
|
|
26507
|
-
return /* @__PURE__ */
|
|
26508
|
-
/* @__PURE__ */ jsx31(
|
|
26349
|
+
return /* @__PURE__ */ jsxs18(Tooltip4, { children: [
|
|
26350
|
+
/* @__PURE__ */ jsx31(TooltipTrigger4, { asChild: true, children: trigger }),
|
|
26509
26351
|
/* @__PURE__ */ jsx31(
|
|
26510
|
-
|
|
26352
|
+
TooltipContent4,
|
|
26511
26353
|
{
|
|
26512
26354
|
side: "top",
|
|
26513
26355
|
align: "start",
|
|
@@ -26557,7 +26399,7 @@ var AgentGUIEmptyHeroPane = memo(function AgentGUIEmptyHeroPane2({
|
|
|
26557
26399
|
"use memo";
|
|
26558
26400
|
const heroIconPresentations = iconPresentations.length > 0 ? iconPresentations : [agentGUIProviderIconPresentation(provider)];
|
|
26559
26401
|
const heroIconAnimationKey = heroIconPresentations.map((icon) => `${icon.provider}:${icon.iconUrl}`).join("|");
|
|
26560
|
-
return /* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */
|
|
26402
|
+
return /* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.emptyHeroBody, children: [
|
|
26561
26403
|
heroIconPresentations.length > 1 ? /* @__PURE__ */ jsx31(
|
|
26562
26404
|
AgentGUIAllProviderGridIcon,
|
|
26563
26405
|
{
|
|
@@ -26622,7 +26464,7 @@ var AgentGUIProviderReadinessGatePane = memo(
|
|
|
26622
26464
|
});
|
|
26623
26465
|
const action = providerGateAction(gate.status);
|
|
26624
26466
|
const pendingLabel = pendingAction === "install" ? labels.providerGatePendingInstall : pendingAction === "login" ? labels.providerGatePendingLogin : pendingAction === "refresh" ? labels.providerGatePendingRefresh : null;
|
|
26625
|
-
return /* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */
|
|
26467
|
+
return /* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs18(
|
|
26626
26468
|
"div",
|
|
26627
26469
|
{
|
|
26628
26470
|
className: cn3(AgentGUINode_styles_default.emptyHeroBody, AgentGUINode_styles_default.emptyProviderGate),
|
|
@@ -26822,9 +26664,9 @@ function EmptyHeroTitle({
|
|
|
26822
26664
|
);
|
|
26823
26665
|
const canSwitchProvider = enabledProviderTargets.length > 1 && selectedProviderTarget && onProviderSelect;
|
|
26824
26666
|
const providerName = label.slice(providerStart, providerEnd);
|
|
26825
|
-
return /* @__PURE__ */
|
|
26667
|
+
return /* @__PURE__ */ jsxs18(Fragment9, { children: [
|
|
26826
26668
|
label.slice(0, providerStart),
|
|
26827
|
-
canSwitchProvider ? /* @__PURE__ */
|
|
26669
|
+
canSwitchProvider ? /* @__PURE__ */ jsxs18(
|
|
26828
26670
|
Select3,
|
|
26829
26671
|
{
|
|
26830
26672
|
value: selectedProviderTargetId,
|
|
@@ -26861,7 +26703,7 @@ function EmptyHeroTitle({
|
|
|
26861
26703
|
{
|
|
26862
26704
|
value: target.targetId,
|
|
26863
26705
|
className: cn3(AgentGUINode_styles_default.composerMenuItem, "gap-2"),
|
|
26864
|
-
children: /* @__PURE__ */
|
|
26706
|
+
children: /* @__PURE__ */ jsxs18("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
26865
26707
|
/* @__PURE__ */ jsx31(
|
|
26866
26708
|
"img",
|
|
26867
26709
|
{
|
|
@@ -26909,7 +26751,7 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
26909
26751
|
goalPauseSupported
|
|
26910
26752
|
}) {
|
|
26911
26753
|
"use memo";
|
|
26912
|
-
const state =
|
|
26754
|
+
const state = useSnapshot2(store);
|
|
26913
26755
|
const {
|
|
26914
26756
|
composerProps,
|
|
26915
26757
|
inlineNoticeChrome,
|
|
@@ -26924,7 +26766,7 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
26924
26766
|
const goalTokensUsed = goal ? numberValue2(goal.tokensUsed) : null;
|
|
26925
26767
|
const goalTimeUsedSeconds = goal ? numberValue2(goal.timeUsedSeconds) : null;
|
|
26926
26768
|
const showGoalBanner = isGoalBannerVisible(goalObjective, goalStatus);
|
|
26927
|
-
return /* @__PURE__ */
|
|
26769
|
+
return /* @__PURE__ */ jsxs18(
|
|
26928
26770
|
"div",
|
|
26929
26771
|
{
|
|
26930
26772
|
ref: bottomDockRef,
|
|
@@ -27000,7 +26842,6 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
27000
26842
|
tokensUsed: goalTokensUsed ?? void 0,
|
|
27001
26843
|
timeUsedSeconds: goalTimeUsedSeconds ?? void 0,
|
|
27002
26844
|
labels: goalBannerLabels,
|
|
27003
|
-
onEditObjective: (objective) => onGoalControl("set", objective),
|
|
27004
26845
|
onPauseGoal: goalPauseSupported ? () => onGoalControl("pause") : void 0,
|
|
27005
26846
|
onResumeGoal: goalPauseSupported ? () => onGoalControl("resume") : void 0,
|
|
27006
26847
|
onClearGoal: () => onGoalControl("clear")
|
|
@@ -27031,7 +26872,7 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
27031
26872
|
);
|
|
27032
26873
|
});
|
|
27033
26874
|
function createAgentGUIConversationRailStore(initialState) {
|
|
27034
|
-
return
|
|
26875
|
+
return proxy3(initialState);
|
|
27035
26876
|
}
|
|
27036
26877
|
function syncAgentGUIConversationRailStore(store, next) {
|
|
27037
26878
|
if (agentGUIConversationRailStoreSnapshotsEqual(store, next)) {
|
|
@@ -27040,7 +26881,7 @@ function syncAgentGUIConversationRailStore(store, next) {
|
|
|
27040
26881
|
Object.assign(store, next);
|
|
27041
26882
|
}
|
|
27042
26883
|
function agentGUIConversationRailStoreSnapshotsEqual(current, next) {
|
|
27043
|
-
return current.activeConversationId === next.activeConversationId && current.pendingDeleteConversationId === next.pendingDeleteConversationId && current.isLoadingConversations === next.isLoadingConversations && current.isDeletingConversation === next.isDeletingConversation && current.isDeletingProjectConversations === next.isDeletingProjectConversations && current.labels === next.labels && current.workspaceUserProjectI18n === next.workspaceUserProjectI18n && current.uiLanguage === next.uiLanguage && current.previewMode === next.previewMode && current.createConversationDisabled === next.createConversationDisabled && current.openclawGateway === next.openclawGateway && current.isCollapsed === next.isCollapsed && current.railConfigProvider === next.railConfigProvider && current.slashStatusLimits === next.slashStatusLimits && current.selectedProviderTarget === next.selectedProviderTarget && current.providerTargets === next.providerTargets && current.providerTargetsLoading === next.providerTargetsLoading && current.conversationFilter === next.conversationFilter && current.sectionAgentTargetFallbackId === next.sectionAgentTargetFallbackId && current.onUpdateConversationFilter === next.onUpdateConversationFilter && current.onSelectConversationFilterTarget === next.onSelectConversationFilterTarget && current.onCreateConversation === next.onCreateConversation && current.onOpenAgentEnvSetup === next.onOpenAgentEnvSetup && current.onAgentConfigMenuOpen === next.onAgentConfigMenuOpen && current.onRetryOpenclawGateway === next.onRetryOpenclawGateway && current.onSelectConversation === next.onSelectConversation && current.onToggleConversationPinned === next.onToggleConversationPinned && current.onOpenProjectFiles === next.onOpenProjectFiles && current.onOpenConversationWindow === next.onOpenConversationWindow && current.selectProjectDirectory === next.selectProjectDirectory && current.onRemoveProject === next.onRemoveProject && current.onConfirmDeleteProjectConversations === next.onConfirmDeleteProjectConversations && current.onRequestDeleteConversation === next.onRequestDeleteConversation && current.onCancelDeleteConversation === next.onCancelDeleteConversation && current.onConfirmDeleteConversation === next.onConfirmDeleteConversation;
|
|
26884
|
+
return current.activeConversationId === next.activeConversationId && current.pendingDeleteConversationId === next.pendingDeleteConversationId && current.isLoadingConversations === next.isLoadingConversations && current.isDeletingConversation === next.isDeletingConversation && current.isDeletingProjectConversations === next.isDeletingProjectConversations && current.labels === next.labels && current.workspaceUserProjectI18n === next.workspaceUserProjectI18n && current.uiLanguage === next.uiLanguage && current.previewMode === next.previewMode && current.createConversationDisabled === next.createConversationDisabled && current.openclawGateway === next.openclawGateway && current.isCollapsed === next.isCollapsed && current.railConfigProvider === next.railConfigProvider && current.slashStatusLimits === next.slashStatusLimits && current.selectedProviderTarget === next.selectedProviderTarget && current.providerTargets === next.providerTargets && current.providerTargetsLoading === next.providerTargetsLoading && current.conversationFilter === next.conversationFilter && current.sectionAgentTargetFallbackId === next.sectionAgentTargetFallbackId && current.onUpdateConversationFilter === next.onUpdateConversationFilter && current.onSelectConversationFilterTarget === next.onSelectConversationFilterTarget && current.onCreateConversation === next.onCreateConversation && current.onOpenAgentEnvSetup === next.onOpenAgentEnvSetup && current.onOpenAgentSettings === next.onOpenAgentSettings && current.onAgentConfigMenuOpen === next.onAgentConfigMenuOpen && current.onRetryOpenclawGateway === next.onRetryOpenclawGateway && current.onSelectConversation === next.onSelectConversation && current.onToggleConversationPinned === next.onToggleConversationPinned && current.onOpenProjectFiles === next.onOpenProjectFiles && current.onOpenConversationWindow === next.onOpenConversationWindow && current.selectProjectDirectory === next.selectProjectDirectory && current.onRemoveProject === next.onRemoveProject && current.onConfirmDeleteProjectConversations === next.onConfirmDeleteProjectConversations && current.onRequestDeleteConversation === next.onRequestDeleteConversation && current.onCancelDeleteConversation === next.onCancelDeleteConversation && current.onConfirmDeleteConversation === next.onConfirmDeleteConversation;
|
|
27044
26885
|
}
|
|
27045
26886
|
var AgentGUIConversationRailStorePane = memo(
|
|
27046
26887
|
function AgentGUIConversationRailStorePane2({
|
|
@@ -27051,7 +26892,7 @@ var AgentGUIConversationRailStorePane = memo(
|
|
|
27051
26892
|
workspaceId
|
|
27052
26893
|
}) {
|
|
27053
26894
|
"use memo";
|
|
27054
|
-
const state =
|
|
26895
|
+
const state = useSnapshot2(store);
|
|
27055
26896
|
return /* @__PURE__ */ jsx31(
|
|
27056
26897
|
AgentGUIConversationRailPane,
|
|
27057
26898
|
{
|
|
@@ -27171,37 +27012,81 @@ function updateConversationSectionsFromSummaries(previous, conversations, option
|
|
|
27171
27012
|
const summariesById = new Map(
|
|
27172
27013
|
conversations.map((conversation) => [conversation.id, conversation])
|
|
27173
27014
|
);
|
|
27015
|
+
const summarySectionItemsById = /* @__PURE__ */ new Map();
|
|
27016
|
+
for (const conversation of conversations) {
|
|
27017
|
+
if ((conversation.pinnedAtUnixMs ?? 0) > 0) {
|
|
27018
|
+
continue;
|
|
27019
|
+
}
|
|
27020
|
+
const sectionId = conversation.project ? `project:${normalizeConversationProjectPath(conversation.project.path)}` : "conversations";
|
|
27021
|
+
const items = summarySectionItemsById.get(sectionId) ?? [];
|
|
27022
|
+
items.push(conversation);
|
|
27023
|
+
summarySectionItemsById.set(sectionId, items);
|
|
27024
|
+
}
|
|
27174
27025
|
const seenIds = /* @__PURE__ */ new Set();
|
|
27175
27026
|
let changed = false;
|
|
27176
27027
|
const nextSections = previous.map((section) => {
|
|
27177
27028
|
let sectionChanged = false;
|
|
27029
|
+
const summaryItems = summarySectionItemsById.get(section.id) ?? [];
|
|
27030
|
+
const summaryIdsForSection = new Set(summaryItems.map((item) => item.id));
|
|
27178
27031
|
const items = section.items.map((item) => {
|
|
27179
27032
|
seenIds.add(item.id);
|
|
27180
27033
|
const summary = summariesById.get(item.id);
|
|
27181
27034
|
if (!summary) {
|
|
27182
27035
|
return item;
|
|
27183
27036
|
}
|
|
27184
|
-
const nextItem = {
|
|
27037
|
+
const nextItem = section.project ? {
|
|
27185
27038
|
...summary,
|
|
27186
|
-
project:
|
|
27187
|
-
};
|
|
27039
|
+
project: section.project
|
|
27040
|
+
} : summary;
|
|
27188
27041
|
if (conversationSummariesRenderEqual2(item, nextItem)) {
|
|
27189
27042
|
return item;
|
|
27190
27043
|
}
|
|
27191
27044
|
sectionChanged = true;
|
|
27192
27045
|
return nextItem;
|
|
27046
|
+
}).filter((item) => {
|
|
27047
|
+
const summary = summariesById.get(item.id);
|
|
27048
|
+
if (!summary || summaryIdsForSection.has(item.id)) {
|
|
27049
|
+
return true;
|
|
27050
|
+
}
|
|
27051
|
+
sectionChanged = true;
|
|
27052
|
+
return false;
|
|
27193
27053
|
});
|
|
27194
|
-
|
|
27195
|
-
|
|
27054
|
+
const nextSection = sectionChanged ? {
|
|
27055
|
+
...section,
|
|
27056
|
+
items
|
|
27057
|
+
} : section;
|
|
27058
|
+
if (section.kind === "pinned" || summaryItems.length === 0) {
|
|
27059
|
+
if (sectionChanged) {
|
|
27060
|
+
changed = true;
|
|
27061
|
+
}
|
|
27062
|
+
return nextSection;
|
|
27063
|
+
}
|
|
27064
|
+
const summaryIds = new Set(summaryItems.map((item) => item.id));
|
|
27065
|
+
const mergedItems = [
|
|
27066
|
+
...summaryItems.map(
|
|
27067
|
+
(item) => section.project ? { ...item, project: section.project } : item
|
|
27068
|
+
),
|
|
27069
|
+
...items.filter((item) => !summaryIds.has(item.id))
|
|
27070
|
+
];
|
|
27071
|
+
const stableItems = stabilizeConversationSectionItems(
|
|
27072
|
+
section.items,
|
|
27073
|
+
mergedItems
|
|
27074
|
+
);
|
|
27075
|
+
if (stableItems === section.items) {
|
|
27076
|
+
if (sectionChanged) {
|
|
27077
|
+
changed = true;
|
|
27078
|
+
}
|
|
27079
|
+
return nextSection;
|
|
27196
27080
|
}
|
|
27197
27081
|
changed = true;
|
|
27198
27082
|
return {
|
|
27199
|
-
...
|
|
27200
|
-
items
|
|
27083
|
+
...nextSection,
|
|
27084
|
+
items: stableItems
|
|
27201
27085
|
};
|
|
27202
27086
|
});
|
|
27203
|
-
const
|
|
27204
|
-
|
|
27087
|
+
const existingSectionIds = new Set(nextSections.map((section) => section.id));
|
|
27088
|
+
const newConversations = [...summarySectionItemsById.entries()].flatMap(
|
|
27089
|
+
([sectionId, items]) => existingSectionIds.has(sectionId) ? [] : items.filter((conversation) => !seenIds.has(conversation.id))
|
|
27205
27090
|
);
|
|
27206
27091
|
if (newConversations.length === 0) {
|
|
27207
27092
|
return changed ? nextSections : previous;
|
|
@@ -27216,7 +27101,7 @@ function updateConversationSectionsFromSummaries(previous, conversations, option
|
|
|
27216
27101
|
if (targetIndex !== -1 && target) {
|
|
27217
27102
|
sectionsWithInsertions[targetIndex] = {
|
|
27218
27103
|
...target,
|
|
27219
|
-
items: [
|
|
27104
|
+
items: [...target.items, conversation]
|
|
27220
27105
|
};
|
|
27221
27106
|
continue;
|
|
27222
27107
|
}
|
|
@@ -27349,10 +27234,13 @@ function agentGUIProviderRailLabel(provider, targetLabel, labels) {
|
|
|
27349
27234
|
function agentGUIProviderTargetMatchesConversationFilter(target, filter) {
|
|
27350
27235
|
return filter.kind === "agentTarget" && (target.agentTargetId?.trim() ?? "") === filter.agentTargetId;
|
|
27351
27236
|
}
|
|
27352
|
-
function agentGUIProviderRailTargets(providerTargets, providerTargetsLoading, comingSoonProviders) {
|
|
27237
|
+
function agentGUIProviderRailTargets(providerTargets, providerTargetsLoading, comingSoonProviders, providerRailMode) {
|
|
27353
27238
|
if (providerTargetsLoading) {
|
|
27354
27239
|
return [];
|
|
27355
27240
|
}
|
|
27241
|
+
if (providerRailMode === "exact") {
|
|
27242
|
+
return providerTargets;
|
|
27243
|
+
}
|
|
27356
27244
|
const comingSoon = new Set(comingSoonProviders);
|
|
27357
27245
|
const source = providerTargets.length > 0 && !agentGUIProviderRailTargetsAreFullLocalFallback(providerTargets) ? providerTargets : [];
|
|
27358
27246
|
const seenProviders = new Set(source.map((target) => target.provider));
|
|
@@ -27385,7 +27273,10 @@ var AgentGUIProviderRail = memo(function AgentGUIProviderRail2({
|
|
|
27385
27273
|
selectedProviderTarget,
|
|
27386
27274
|
providerTargets,
|
|
27387
27275
|
providerTargetsLoading,
|
|
27276
|
+
providerRailMode,
|
|
27277
|
+
renderProviderRailEmpty,
|
|
27388
27278
|
comingSoonProviders,
|
|
27279
|
+
onRequestComposerFocus,
|
|
27389
27280
|
onSelectConversationFilterTarget,
|
|
27390
27281
|
onUpdateConversationFilter
|
|
27391
27282
|
}) {
|
|
@@ -27394,12 +27285,21 @@ var AgentGUIProviderRail = memo(function AgentGUIProviderRail2({
|
|
|
27394
27285
|
() => agentGUIProviderRailTargets(
|
|
27395
27286
|
providerTargets,
|
|
27396
27287
|
providerTargetsLoading,
|
|
27397
|
-
comingSoonProviders
|
|
27288
|
+
comingSoonProviders,
|
|
27289
|
+
providerRailMode
|
|
27398
27290
|
),
|
|
27399
|
-
[
|
|
27291
|
+
[
|
|
27292
|
+
comingSoonProviders,
|
|
27293
|
+
providerRailMode,
|
|
27294
|
+
providerTargets,
|
|
27295
|
+
providerTargetsLoading
|
|
27296
|
+
]
|
|
27400
27297
|
);
|
|
27401
27298
|
const providerTiles = useMemo10(() => {
|
|
27402
27299
|
const targets = [...railProviderTargets];
|
|
27300
|
+
if (providerRailMode === "exact") {
|
|
27301
|
+
return targets;
|
|
27302
|
+
}
|
|
27403
27303
|
const originalIndexByTarget = /* @__PURE__ */ new Map();
|
|
27404
27304
|
targets.forEach((target, index) => {
|
|
27405
27305
|
originalIndexByTarget.set(
|
|
@@ -27416,7 +27316,7 @@ var AgentGUIProviderRail = memo(function AgentGUIProviderRail2({
|
|
|
27416
27316
|
`${right.provider}\0${right.targetId}`
|
|
27417
27317
|
) ?? 0);
|
|
27418
27318
|
});
|
|
27419
|
-
}, [railProviderTargets]);
|
|
27319
|
+
}, [providerRailMode, railProviderTargets]);
|
|
27420
27320
|
const selectedProviderTargetIsPlaceholder = selectedProviderTarget?.disabled === true;
|
|
27421
27321
|
const allTileSelected = conversationFilter.kind === "all" && !selectedProviderTargetIsPlaceholder;
|
|
27422
27322
|
const selectAllProviders = useCallback10(() => {
|
|
@@ -27430,8 +27330,10 @@ var AgentGUIProviderRail = memo(function AgentGUIProviderRail2({
|
|
|
27430
27330
|
});
|
|
27431
27331
|
}
|
|
27432
27332
|
}
|
|
27333
|
+
onRequestComposerFocus();
|
|
27433
27334
|
}, [
|
|
27434
27335
|
onSelectConversationFilterTarget,
|
|
27336
|
+
onRequestComposerFocus,
|
|
27435
27337
|
onUpdateConversationFilter,
|
|
27436
27338
|
railProviderTargets,
|
|
27437
27339
|
selectedProviderTargetIsPlaceholder
|
|
@@ -27442,10 +27344,24 @@ var AgentGUIProviderRail = memo(function AgentGUIProviderRail2({
|
|
|
27442
27344
|
provider: target.provider,
|
|
27443
27345
|
providerTargetId: target.targetId
|
|
27444
27346
|
});
|
|
27347
|
+
onRequestComposerFocus();
|
|
27445
27348
|
},
|
|
27446
|
-
[onSelectConversationFilterTarget]
|
|
27349
|
+
[onRequestComposerFocus, onSelectConversationFilterTarget]
|
|
27447
27350
|
);
|
|
27448
|
-
|
|
27351
|
+
if (providerRailMode === "exact" && !providerTargetsLoading && providerTiles.length === 0 && renderProviderRailEmpty) {
|
|
27352
|
+
return /* @__PURE__ */ jsx31(
|
|
27353
|
+
"div",
|
|
27354
|
+
{
|
|
27355
|
+
className: AgentGUINode_styles_default.providerRail,
|
|
27356
|
+
role: "tablist",
|
|
27357
|
+
"aria-label": labels.providerSwitchLabel,
|
|
27358
|
+
"aria-busy": providerTargetsLoading,
|
|
27359
|
+
"data-empty": "true",
|
|
27360
|
+
children: renderProviderRailEmpty()
|
|
27361
|
+
}
|
|
27362
|
+
);
|
|
27363
|
+
}
|
|
27364
|
+
return /* @__PURE__ */ jsxs18(
|
|
27449
27365
|
"div",
|
|
27450
27366
|
{
|
|
27451
27367
|
className: AgentGUINode_styles_default.providerRail,
|
|
@@ -27453,7 +27369,7 @@ var AgentGUIProviderRail = memo(function AgentGUIProviderRail2({
|
|
|
27453
27369
|
"aria-label": labels.providerSwitchLabel,
|
|
27454
27370
|
"aria-busy": providerTargetsLoading,
|
|
27455
27371
|
children: [
|
|
27456
|
-
/* @__PURE__ */
|
|
27372
|
+
/* @__PURE__ */ jsxs18(
|
|
27457
27373
|
"button",
|
|
27458
27374
|
{
|
|
27459
27375
|
type: "button",
|
|
@@ -27525,9 +27441,9 @@ var AgentGUIProviderRail = memo(function AgentGUIProviderRail2({
|
|
|
27525
27441
|
if (previewMode) {
|
|
27526
27442
|
return tile;
|
|
27527
27443
|
}
|
|
27528
|
-
return /* @__PURE__ */
|
|
27529
|
-
/* @__PURE__ */ jsx31(
|
|
27530
|
-
/* @__PURE__ */ jsx31(
|
|
27444
|
+
return /* @__PURE__ */ jsxs18(Tooltip4, { children: [
|
|
27445
|
+
/* @__PURE__ */ jsx31(TooltipTrigger4, { asChild: true, children: tile }),
|
|
27446
|
+
/* @__PURE__ */ jsx31(TooltipContent4, { side: "right", sideOffset: -4, children: label })
|
|
27531
27447
|
] }, `${target.provider}:${target.targetId}:tooltip`);
|
|
27532
27448
|
})
|
|
27533
27449
|
]
|
|
@@ -27546,9 +27462,12 @@ function useAgentGUIConversationRail({
|
|
|
27546
27462
|
}) {
|
|
27547
27463
|
const agentActivityRuntime = useAgentActivityRuntime();
|
|
27548
27464
|
const [runtimeRailSections, setRuntimeRailSections] = useState12(null);
|
|
27465
|
+
const [runtimeRailSectionsPending, setRuntimeRailSectionsPending] = useState12(false);
|
|
27549
27466
|
const [sectionPageStates, setSectionPageStates] = useState12(() => /* @__PURE__ */ new Map());
|
|
27467
|
+
const conversationsRef = useRef12(conversations);
|
|
27550
27468
|
const pagingRequestSequenceRef = useRef12(0);
|
|
27551
27469
|
const pagingAbortControllersRef = useRef12(/* @__PURE__ */ new Map());
|
|
27470
|
+
const workspaceIdRef = useRef12(workspaceId);
|
|
27552
27471
|
const runtimeListSessionSections = agentActivityRuntime.listSessionSections;
|
|
27553
27472
|
const runtimeListSessionSectionPage = agentActivityRuntime.listSessionSectionPage;
|
|
27554
27473
|
const runtimeSectionsEnabled = !previewMode && Boolean(runtimeListSessionSections) && Boolean(runtimeListSessionSectionPage);
|
|
@@ -27569,12 +27488,19 @@ function useAgentGUIConversationRail({
|
|
|
27569
27488
|
[labels.sectionConversations, labels.sectionPinned]
|
|
27570
27489
|
);
|
|
27571
27490
|
useEffect13(() => {
|
|
27491
|
+
conversationsRef.current = conversations;
|
|
27492
|
+
}, [conversations]);
|
|
27493
|
+
useEffect13(() => {
|
|
27494
|
+
const workspaceChanged = workspaceIdRef.current !== workspaceId;
|
|
27495
|
+
workspaceIdRef.current = workspaceId;
|
|
27572
27496
|
pagingRequestSequenceRef.current += 1;
|
|
27573
27497
|
for (const controller of pagingAbortControllersRef.current.values()) {
|
|
27574
27498
|
controller.abort();
|
|
27575
27499
|
}
|
|
27576
27500
|
pagingAbortControllersRef.current.clear();
|
|
27577
|
-
|
|
27501
|
+
if (workspaceChanged) {
|
|
27502
|
+
setRuntimeRailSections(null);
|
|
27503
|
+
}
|
|
27578
27504
|
setSectionPageStates(/* @__PURE__ */ new Map());
|
|
27579
27505
|
return () => {
|
|
27580
27506
|
pagingRequestSequenceRef.current += 1;
|
|
@@ -27592,10 +27518,12 @@ function useAgentGUIConversationRail({
|
|
|
27592
27518
|
);
|
|
27593
27519
|
useEffect13(() => {
|
|
27594
27520
|
if (!runtimeSectionsEnabled || !runtimeListSessionSections) {
|
|
27521
|
+
setRuntimeRailSectionsPending(false);
|
|
27595
27522
|
return;
|
|
27596
27523
|
}
|
|
27597
27524
|
const requestSequence = pagingRequestSequenceRef.current;
|
|
27598
27525
|
const abortController = new AbortController();
|
|
27526
|
+
setRuntimeRailSectionsPending(true);
|
|
27599
27527
|
void runtimeListSessionSections({
|
|
27600
27528
|
agentTargetId: sectionAgentTargetId || void 0,
|
|
27601
27529
|
limitPerSection: AGENT_GUI_CONVERSATION_RAIL_SECTION_PAGE_SIZE,
|
|
@@ -27611,9 +27539,18 @@ function useAgentGUIConversationRail({
|
|
|
27611
27539
|
sections: page.sections,
|
|
27612
27540
|
workspaceId: page.workspaceId
|
|
27613
27541
|
});
|
|
27542
|
+
const sectionsWithSummaries = updateConversationSectionsFromSummaries(
|
|
27543
|
+
sections,
|
|
27544
|
+
conversationsRef.current,
|
|
27545
|
+
{ sectionConversationsLabel: labels.sectionConversations }
|
|
27546
|
+
);
|
|
27614
27547
|
setRuntimeRailSections(
|
|
27615
|
-
(current) => stabilizeConversationSections(
|
|
27548
|
+
(current) => stabilizeConversationSections(
|
|
27549
|
+
current,
|
|
27550
|
+
sectionsWithSummaries ?? sections
|
|
27551
|
+
)
|
|
27616
27552
|
);
|
|
27553
|
+
setRuntimeRailSectionsPending(false);
|
|
27617
27554
|
setSectionPageStates(() => {
|
|
27618
27555
|
const next = /* @__PURE__ */ new Map();
|
|
27619
27556
|
for (const section of page.sections) {
|
|
@@ -27630,6 +27567,7 @@ function useAgentGUIConversationRail({
|
|
|
27630
27567
|
return;
|
|
27631
27568
|
}
|
|
27632
27569
|
setRuntimeRailSections([]);
|
|
27570
|
+
setRuntimeRailSectionsPending(false);
|
|
27633
27571
|
});
|
|
27634
27572
|
return () => {
|
|
27635
27573
|
abortController.abort();
|
|
@@ -27637,6 +27575,7 @@ function useAgentGUIConversationRail({
|
|
|
27637
27575
|
}, [
|
|
27638
27576
|
conversationFilter,
|
|
27639
27577
|
conversationMembershipKey,
|
|
27578
|
+
labels.sectionConversations,
|
|
27640
27579
|
runtimeListSessionSections,
|
|
27641
27580
|
runtimeSectionsEnabled,
|
|
27642
27581
|
sectionProjectionLabels,
|
|
@@ -27763,6 +27702,7 @@ function useAgentGUIConversationRail({
|
|
|
27763
27702
|
loadMoreSectionConversations,
|
|
27764
27703
|
runtimeSectionsEnabled,
|
|
27765
27704
|
runtimeRailSections,
|
|
27705
|
+
runtimeRailSectionsPending,
|
|
27766
27706
|
sectionPageStates
|
|
27767
27707
|
};
|
|
27768
27708
|
}
|
|
@@ -27783,12 +27723,13 @@ var AgentGUIConversationRailPane = memo(
|
|
|
27783
27723
|
createConversationDisabled,
|
|
27784
27724
|
openclawGateway,
|
|
27785
27725
|
isCollapsed,
|
|
27786
|
-
railConfigProvider,
|
|
27787
27726
|
slashStatusLimits,
|
|
27727
|
+
selectedProviderTarget,
|
|
27788
27728
|
conversationFilter,
|
|
27789
27729
|
sectionAgentTargetFallbackId,
|
|
27790
27730
|
onCreateConversation,
|
|
27791
27731
|
onOpenAgentEnvSetup,
|
|
27732
|
+
onOpenAgentSettings,
|
|
27792
27733
|
onAgentConfigMenuOpen,
|
|
27793
27734
|
onRetryOpenclawGateway,
|
|
27794
27735
|
onSelectConversation,
|
|
@@ -27820,6 +27761,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
27820
27761
|
loadMoreSectionConversations,
|
|
27821
27762
|
runtimeSectionsEnabled,
|
|
27822
27763
|
runtimeRailSections,
|
|
27764
|
+
runtimeRailSectionsPending,
|
|
27823
27765
|
sectionPageStates
|
|
27824
27766
|
} = useAgentGUIConversationRail({
|
|
27825
27767
|
conversationFilter,
|
|
@@ -27918,7 +27860,13 @@ var AgentGUIConversationRailPane = memo(
|
|
|
27918
27860
|
}
|
|
27919
27861
|
return counts;
|
|
27920
27862
|
}, [displayConversations]);
|
|
27921
|
-
const isRuntimeRailLoading = runtimeSectionsEnabled && runtimeRailSections === null;
|
|
27863
|
+
const isRuntimeRailLoading = runtimeSectionsEnabled && (runtimeRailSections === null || runtimeRailSectionsPending);
|
|
27864
|
+
const isConversationRailListLoading = isRuntimeRailLoading || isLoadingConversations && conversations.length === 0;
|
|
27865
|
+
const shouldShowConversationSkeleton = useDelayedBoolean(
|
|
27866
|
+
isConversationRailListLoading,
|
|
27867
|
+
AGENT_GUI_CONVERSATION_RAIL_LOADING_SKELETON_DELAY_MS
|
|
27868
|
+
);
|
|
27869
|
+
const shouldShowConversationEmptyState = !isConversationRailListLoading && groupedConversations.length === 0;
|
|
27922
27870
|
const registerConversationItemElement = useCallback10(
|
|
27923
27871
|
(itemId, element) => {
|
|
27924
27872
|
if (element) {
|
|
@@ -27950,14 +27898,14 @@ var AgentGUIConversationRailPane = memo(
|
|
|
27950
27898
|
activeElement.scrollIntoView({ block: "nearest" });
|
|
27951
27899
|
activeConversationScrollCompletedRef.current = activeId;
|
|
27952
27900
|
}, [activeConversationId, groupedConversationIdentityKey]);
|
|
27953
|
-
return /* @__PURE__ */
|
|
27901
|
+
return /* @__PURE__ */ jsxs18(
|
|
27954
27902
|
"aside",
|
|
27955
27903
|
{
|
|
27956
27904
|
ref: railElementRef,
|
|
27957
27905
|
className: AgentGUINode_styles_default.rail,
|
|
27958
27906
|
"aria-hidden": isCollapsed ? "true" : void 0,
|
|
27959
27907
|
children: [
|
|
27960
|
-
/* @__PURE__ */
|
|
27908
|
+
/* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.railToolbar, children: [
|
|
27961
27909
|
/* @__PURE__ */ jsx31(
|
|
27962
27910
|
TaskSearchField,
|
|
27963
27911
|
{
|
|
@@ -27966,7 +27914,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
27966
27914
|
onChange: setConversationQuery
|
|
27967
27915
|
}
|
|
27968
27916
|
),
|
|
27969
|
-
/* @__PURE__ */
|
|
27917
|
+
/* @__PURE__ */ jsxs18(
|
|
27970
27918
|
Button,
|
|
27971
27919
|
{
|
|
27972
27920
|
type: "button",
|
|
@@ -27983,7 +27931,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
27983
27931
|
}
|
|
27984
27932
|
)
|
|
27985
27933
|
] }),
|
|
27986
|
-
openclawGateway?.status === "starting" ? /* @__PURE__ */
|
|
27934
|
+
openclawGateway?.status === "starting" ? /* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.gatewayStatus, "data-state": "starting", children: [
|
|
27987
27935
|
/* @__PURE__ */ jsx31(
|
|
27988
27936
|
StatusDot,
|
|
27989
27937
|
{
|
|
@@ -27994,7 +27942,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
27994
27942
|
}
|
|
27995
27943
|
),
|
|
27996
27944
|
/* @__PURE__ */ jsx31("span", { children: labels.openclawGatewayStarting })
|
|
27997
|
-
] }) : openclawGateway?.status === "failed" ? /* @__PURE__ */
|
|
27945
|
+
] }) : openclawGateway?.status === "failed" ? /* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.gatewayStatus, "data-state": "failed", children: [
|
|
27998
27946
|
/* @__PURE__ */ jsx31("span", { children: openclawGateway.error || labels.openclawGatewayFailed }),
|
|
27999
27947
|
/* @__PURE__ */ jsx31(
|
|
28000
27948
|
"button",
|
|
@@ -28013,12 +27961,12 @@ var AgentGUIConversationRailPane = memo(
|
|
|
28013
27961
|
className: "min-h-0 flex-1 [&_[data-orientation=vertical][data-slot=scroll-area-scrollbar]]:opacity-100",
|
|
28014
27962
|
viewportRef: conversationListRef,
|
|
28015
27963
|
viewportClassName: AgentGUINode_styles_default.conversationList,
|
|
28016
|
-
children:
|
|
27964
|
+
children: shouldShowConversationSkeleton ? /* @__PURE__ */ jsx31(
|
|
28017
27965
|
AgentConversationListSkeleton,
|
|
28018
27966
|
{
|
|
28019
27967
|
label: labels.loadingConversations
|
|
28020
27968
|
}
|
|
28021
|
-
) :
|
|
27969
|
+
) : shouldShowConversationEmptyState ? /* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.emptyState, children: /* @__PURE__ */ jsx31("span", { children: conversations.length === 0 ? labels.noConversations : conversationQuery.trim() ? labels.searchNoConversations : labels.conversationUnavailable }) }) : groupedConversations.map((section, sectionIndex) => {
|
|
28022
27970
|
const projectPath = section.kind === "project" ? section.project?.path ?? "" : "";
|
|
28023
27971
|
const normalizedProjectPath = normalizeConversationRailProjectPath(projectPath);
|
|
28024
27972
|
const projectLabel = section.kind === "project" ? section.label : "";
|
|
@@ -28028,7 +27976,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
28028
27976
|
const projectConversationCount = normalizedProjectPath ? projectConversationCountsByPath.get(normalizedProjectPath) ?? 0 : 0;
|
|
28029
27977
|
const sectionPageState = sectionPageStates.get(section.id);
|
|
28030
27978
|
const sectionHasMore = !conversationQuery.trim() && section.kind !== "pinned" && sectionPageState?.hasMore === true;
|
|
28031
|
-
return /* @__PURE__ */
|
|
27979
|
+
return /* @__PURE__ */ jsxs18(Fragment8, { children: [
|
|
28032
27980
|
showProjectRailHeader ? /* @__PURE__ */ jsx31(
|
|
28033
27981
|
AgentGUIProjectRailHeader,
|
|
28034
27982
|
{
|
|
@@ -28073,8 +28021,8 @@ var AgentGUIConversationRailPane = memo(
|
|
|
28073
28021
|
})
|
|
28074
28022
|
}
|
|
28075
28023
|
),
|
|
28076
|
-
|
|
28077
|
-
|
|
28024
|
+
selectedProviderTarget?.disabled === true || conversationFilter.kind === "all" ? null : /* @__PURE__ */ jsx31("div", { className: "shrink-0 px-2 py-1.5", children: /* @__PURE__ */ jsxs18(
|
|
28025
|
+
Popover2,
|
|
28078
28026
|
{
|
|
28079
28027
|
onOpenChange: (open) => {
|
|
28080
28028
|
if (open) {
|
|
@@ -28082,7 +28030,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
28082
28030
|
}
|
|
28083
28031
|
},
|
|
28084
28032
|
children: [
|
|
28085
|
-
/* @__PURE__ */ jsx31(PopoverTrigger, { asChild: true, children: /* @__PURE__ */
|
|
28033
|
+
/* @__PURE__ */ jsx31(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs18(
|
|
28086
28034
|
Button,
|
|
28087
28035
|
{
|
|
28088
28036
|
type: "button",
|
|
@@ -28092,7 +28040,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
28092
28040
|
disabled: previewMode,
|
|
28093
28041
|
children: [
|
|
28094
28042
|
/* @__PURE__ */ jsx31(
|
|
28095
|
-
|
|
28043
|
+
SettingsLinedIcon,
|
|
28096
28044
|
{
|
|
28097
28045
|
"aria-hidden": "true",
|
|
28098
28046
|
width: 16,
|
|
@@ -28104,67 +28052,71 @@ var AgentGUIConversationRailPane = memo(
|
|
|
28104
28052
|
}
|
|
28105
28053
|
) }),
|
|
28106
28054
|
/* @__PURE__ */ jsx31(
|
|
28107
|
-
|
|
28055
|
+
PopoverContent2,
|
|
28108
28056
|
{
|
|
28109
28057
|
side: "top",
|
|
28110
28058
|
align: "start",
|
|
28111
28059
|
className: "w-[300px] max-w-[calc(100vw-32px)] gap-3 p-1 text-xs",
|
|
28112
28060
|
"data-testid": "agent-gui-config-menu",
|
|
28113
|
-
children: /* @__PURE__ */
|
|
28114
|
-
/* @__PURE__ */
|
|
28115
|
-
/* @__PURE__ */
|
|
28116
|
-
|
|
28117
|
-
|
|
28061
|
+
children: /* @__PURE__ */ jsxs18("div", { className: "flex min-w-0 flex-col gap-3", children: [
|
|
28062
|
+
slashStatusLimits.length > 0 ? /* @__PURE__ */ jsxs18(Fragment9, { children: [
|
|
28063
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex min-w-0 flex-col gap-2 p-2", children: [
|
|
28064
|
+
/* @__PURE__ */ jsx31("span", { className: "text-[13px] font-semibold leading-4", children: labels.slashStatusLimits }),
|
|
28065
|
+
slashStatusLimits.map((limit) => /* @__PURE__ */ jsx31(
|
|
28066
|
+
AgentUsageMeter,
|
|
28067
|
+
{
|
|
28068
|
+
label: limit.label,
|
|
28069
|
+
value: `${limit.value}${limit.reset ? ` (${limit.reset})` : ""}`,
|
|
28070
|
+
percent: typeof limit.percentRemaining === "number" && Number.isFinite(limit.percentRemaining) ? limit.percentRemaining : null
|
|
28071
|
+
},
|
|
28072
|
+
limit.id
|
|
28073
|
+
))
|
|
28074
|
+
] }),
|
|
28075
|
+
/* @__PURE__ */ jsx31("div", { className: "px-2", children: /* @__PURE__ */ jsx31("span", { className: "block h-px bg-[var(--border-1)]" }) })
|
|
28076
|
+
] }) : null,
|
|
28077
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex min-w-0 flex-col gap-1", children: [
|
|
28078
|
+
/* @__PURE__ */ jsxs18(
|
|
28079
|
+
"button",
|
|
28118
28080
|
{
|
|
28119
|
-
|
|
28120
|
-
|
|
28121
|
-
|
|
28122
|
-
|
|
28123
|
-
|
|
28124
|
-
|
|
28125
|
-
|
|
28126
|
-
|
|
28127
|
-
|
|
28128
|
-
|
|
28129
|
-
|
|
28130
|
-
|
|
28131
|
-
|
|
28132
|
-
|
|
28133
|
-
|
|
28134
|
-
|
|
28135
|
-
|
|
28136
|
-
|
|
28137
|
-
|
|
28138
|
-
|
|
28139
|
-
|
|
28140
|
-
|
|
28081
|
+
type: "button",
|
|
28082
|
+
"data-testid": "agent-gui-config-settings",
|
|
28083
|
+
className: "nodrag flex h-7 w-full items-center gap-2 rounded-[6px] px-2 text-[13px] text-[var(--text-primary)] transition-colors hover:bg-[var(--transparency-hover)] hover:text-[var(--text-primary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-focus)] disabled:text-[var(--text-tertiary)] [-webkit-app-region:no-drag]",
|
|
28084
|
+
disabled: previewMode,
|
|
28085
|
+
onClick: () => onOpenAgentSettings(),
|
|
28086
|
+
children: [
|
|
28087
|
+
/* @__PURE__ */ jsx31(
|
|
28088
|
+
SettingsLinedIcon,
|
|
28089
|
+
{
|
|
28090
|
+
"aria-hidden": "true",
|
|
28091
|
+
width: 16,
|
|
28092
|
+
height: 16
|
|
28093
|
+
}
|
|
28094
|
+
),
|
|
28095
|
+
/* @__PURE__ */ jsx31("span", { children: labels.agentSettingsMenu })
|
|
28096
|
+
]
|
|
28097
|
+
}
|
|
28098
|
+
),
|
|
28099
|
+
/* @__PURE__ */ jsxs18(
|
|
28100
|
+
"button",
|
|
28101
|
+
{
|
|
28102
|
+
type: "button",
|
|
28103
|
+
"data-testid": "agent-gui-config-env-setup",
|
|
28104
|
+
className: "nodrag flex h-7 w-full items-center gap-2 rounded-[6px] px-2 text-[13px] text-[var(--text-primary)] transition-colors hover:bg-[var(--transparency-hover)] hover:text-[var(--text-primary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-focus)] disabled:text-[var(--text-tertiary)] [-webkit-app-region:no-drag]",
|
|
28105
|
+
disabled: previewMode,
|
|
28106
|
+
onClick: () => onOpenAgentEnvSetup(),
|
|
28107
|
+
children: [
|
|
28108
|
+
/* @__PURE__ */ jsx31(Wrench, { "aria-hidden": "true", size: 16, strokeWidth: 1.8 }),
|
|
28109
|
+
/* @__PURE__ */ jsx31("span", { children: labels.agentEnvSetup })
|
|
28110
|
+
]
|
|
28111
|
+
}
|
|
28112
|
+
)
|
|
28113
|
+
] })
|
|
28141
28114
|
] })
|
|
28142
28115
|
}
|
|
28143
28116
|
)
|
|
28144
28117
|
]
|
|
28145
28118
|
}
|
|
28146
|
-
)
|
|
28147
|
-
Button,
|
|
28148
|
-
{
|
|
28149
|
-
type: "button",
|
|
28150
|
-
variant: "ghost",
|
|
28151
|
-
className: "flex w-full items-center justify-start gap-2 text-[13px] text-[var(--text-secondary)] hover:text-[var(--text-primary)]",
|
|
28152
|
-
title: labels.agentEnvSetup,
|
|
28153
|
-
disabled: previewMode,
|
|
28154
|
-
onClick: () => onOpenAgentEnvSetup(),
|
|
28155
|
-
children: [
|
|
28156
|
-
/* @__PURE__ */ jsx31(
|
|
28157
|
-
EnvironmentLinedIcon,
|
|
28158
|
-
{
|
|
28159
|
-
"aria-hidden": "true",
|
|
28160
|
-
width: 16,
|
|
28161
|
-
height: 16
|
|
28162
|
-
}
|
|
28163
|
-
),
|
|
28164
|
-
/* @__PURE__ */ jsx31("span", { children: labels.agentEnvSetup })
|
|
28165
|
-
]
|
|
28166
|
-
}
|
|
28167
|
-
) }) : null,
|
|
28119
|
+
) }),
|
|
28168
28120
|
/* @__PURE__ */ jsx31(
|
|
28169
28121
|
ConfirmationDialog,
|
|
28170
28122
|
{
|
|
@@ -28249,7 +28201,23 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28249
28201
|
AGENT_GUI_CONVERSATION_RAIL_SECTION_PAGE_SIZE
|
|
28250
28202
|
);
|
|
28251
28203
|
const visibleItemCount = isSectionCollapsed ? 0 : Math.min(visibleItemLimit, section.items.length);
|
|
28252
|
-
const visibleItems =
|
|
28204
|
+
const visibleItems = useMemo10(() => {
|
|
28205
|
+
if (isSectionCollapsed) {
|
|
28206
|
+
return [];
|
|
28207
|
+
}
|
|
28208
|
+
const baseItems = section.items.slice(0, visibleItemCount);
|
|
28209
|
+
const activeId = activeConversationId?.trim() ?? "";
|
|
28210
|
+
if (!activeId || baseItems.some((item) => item.id === activeId)) {
|
|
28211
|
+
return baseItems;
|
|
28212
|
+
}
|
|
28213
|
+
const activeItem = section.items.find((item) => item.id === activeId);
|
|
28214
|
+
return activeItem ? [...baseItems, activeItem] : baseItems;
|
|
28215
|
+
}, [
|
|
28216
|
+
activeConversationId,
|
|
28217
|
+
isSectionCollapsed,
|
|
28218
|
+
section.items,
|
|
28219
|
+
visibleItemCount
|
|
28220
|
+
]);
|
|
28253
28221
|
const canShowMore = !isSectionCollapsed && (visibleItemCount < section.items.length || sectionHasMore);
|
|
28254
28222
|
const canShowLess = !isSectionCollapsed && visibleItemCount > AGENT_GUI_CONVERSATION_RAIL_SECTION_PAGE_SIZE;
|
|
28255
28223
|
const showMoreConversations = useCallback10(() => {
|
|
@@ -28288,15 +28256,15 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28288
28256
|
source: "unscoped_section"
|
|
28289
28257
|
});
|
|
28290
28258
|
}, [onCreateConversation, projectPath]);
|
|
28291
|
-
return /* @__PURE__ */
|
|
28259
|
+
return /* @__PURE__ */ jsxs18(
|
|
28292
28260
|
"section",
|
|
28293
28261
|
{
|
|
28294
28262
|
className: AgentGUINode_styles_default.conversationSection,
|
|
28295
28263
|
"data-collapsed": isSectionCollapsed,
|
|
28296
28264
|
"data-kind": section.kind,
|
|
28297
28265
|
children: [
|
|
28298
|
-
/* @__PURE__ */
|
|
28299
|
-
isProjectSection ? /* @__PURE__ */
|
|
28266
|
+
/* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.conversationSectionHeader, children: [
|
|
28267
|
+
isProjectSection ? /* @__PURE__ */ jsxs18(
|
|
28300
28268
|
"button",
|
|
28301
28269
|
{
|
|
28302
28270
|
type: "button",
|
|
@@ -28311,7 +28279,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28311
28279
|
className: AgentGUINode_styles_default.conversationSectionChevron
|
|
28312
28280
|
}
|
|
28313
28281
|
),
|
|
28314
|
-
/* @__PURE__ */
|
|
28282
|
+
/* @__PURE__ */ jsxs18("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: [
|
|
28315
28283
|
isSectionCollapsed ? /* @__PURE__ */ jsx31(
|
|
28316
28284
|
FolderIcon2,
|
|
28317
28285
|
{
|
|
@@ -28330,7 +28298,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28330
28298
|
]
|
|
28331
28299
|
}
|
|
28332
28300
|
) : /* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.conversationSectionToggle, children: /* @__PURE__ */ jsx31("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: /* @__PURE__ */ jsx31("span", { children: section.label }) }) }),
|
|
28333
|
-
canCreateConversationFromSection ? /* @__PURE__ */
|
|
28301
|
+
canCreateConversationFromSection ? /* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.conversationSectionActions, children: [
|
|
28334
28302
|
previewMode ? /* @__PURE__ */ jsx31("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx31(
|
|
28335
28303
|
BareIconButton,
|
|
28336
28304
|
{
|
|
@@ -28341,8 +28309,8 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28341
28309
|
onClick: handleCreateConversation,
|
|
28342
28310
|
children: /* @__PURE__ */ jsx31(CreateChatIcon, { "aria-hidden": "true" })
|
|
28343
28311
|
}
|
|
28344
|
-
) }) : /* @__PURE__ */
|
|
28345
|
-
/* @__PURE__ */ jsx31(
|
|
28312
|
+
) }) : /* @__PURE__ */ jsxs18(Tooltip4, { children: [
|
|
28313
|
+
/* @__PURE__ */ jsx31(TooltipTrigger4, { asChild: true, children: /* @__PURE__ */ jsx31(
|
|
28346
28314
|
"span",
|
|
28347
28315
|
{
|
|
28348
28316
|
className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap,
|
|
@@ -28360,7 +28328,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28360
28328
|
}
|
|
28361
28329
|
) }),
|
|
28362
28330
|
/* @__PURE__ */ jsx31(
|
|
28363
|
-
|
|
28331
|
+
TooltipContent4,
|
|
28364
28332
|
{
|
|
28365
28333
|
side: "top",
|
|
28366
28334
|
sideOffset: 6,
|
|
@@ -28369,8 +28337,8 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28369
28337
|
}
|
|
28370
28338
|
)
|
|
28371
28339
|
] }),
|
|
28372
|
-
projectPath ? /* @__PURE__ */
|
|
28373
|
-
previewMode ? /* @__PURE__ */ jsx31(
|
|
28340
|
+
projectPath ? /* @__PURE__ */ jsxs18(DropdownMenu4, { children: [
|
|
28341
|
+
previewMode ? /* @__PURE__ */ jsx31(DropdownMenuTrigger4, { asChild: true, children: /* @__PURE__ */ jsx31(
|
|
28374
28342
|
"span",
|
|
28375
28343
|
{
|
|
28376
28344
|
className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap,
|
|
@@ -28384,8 +28352,8 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28384
28352
|
}
|
|
28385
28353
|
)
|
|
28386
28354
|
}
|
|
28387
|
-
) }) : /* @__PURE__ */
|
|
28388
|
-
/* @__PURE__ */ jsx31(
|
|
28355
|
+
) }) : /* @__PURE__ */ jsxs18(Tooltip4, { children: [
|
|
28356
|
+
/* @__PURE__ */ jsx31(DropdownMenuTrigger4, { asChild: true, children: /* @__PURE__ */ jsx31(TooltipTrigger4, { asChild: true, children: /* @__PURE__ */ jsx31(
|
|
28389
28357
|
"span",
|
|
28390
28358
|
{
|
|
28391
28359
|
className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap,
|
|
@@ -28401,7 +28369,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28401
28369
|
}
|
|
28402
28370
|
) }) }),
|
|
28403
28371
|
/* @__PURE__ */ jsx31(
|
|
28404
|
-
|
|
28372
|
+
TooltipContent4,
|
|
28405
28373
|
{
|
|
28406
28374
|
side: "right",
|
|
28407
28375
|
sideOffset: 6,
|
|
@@ -28410,15 +28378,15 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28410
28378
|
}
|
|
28411
28379
|
)
|
|
28412
28380
|
] }),
|
|
28413
|
-
/* @__PURE__ */
|
|
28414
|
-
|
|
28381
|
+
/* @__PURE__ */ jsxs18(
|
|
28382
|
+
DropdownMenuContent4,
|
|
28415
28383
|
{
|
|
28416
28384
|
align: "end",
|
|
28417
28385
|
className: `${AgentGUINode_styles_default.composerMenuContent} nodrag [-webkit-app-region:no-drag]`,
|
|
28418
28386
|
sideOffset: 6,
|
|
28419
28387
|
children: [
|
|
28420
28388
|
/* @__PURE__ */ jsx31(
|
|
28421
|
-
|
|
28389
|
+
DropdownMenuItem3,
|
|
28422
28390
|
{
|
|
28423
28391
|
className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
|
|
28424
28392
|
disabled: !onOpenProjectFiles,
|
|
@@ -28436,7 +28404,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28436
28404
|
}
|
|
28437
28405
|
),
|
|
28438
28406
|
projectConversationCount > 0 ? /* @__PURE__ */ jsx31(
|
|
28439
|
-
|
|
28407
|
+
DropdownMenuItem3,
|
|
28440
28408
|
{
|
|
28441
28409
|
className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
|
|
28442
28410
|
onSelect: () => {
|
|
@@ -28452,7 +28420,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28452
28420
|
}
|
|
28453
28421
|
) : null,
|
|
28454
28422
|
/* @__PURE__ */ jsx31(
|
|
28455
|
-
|
|
28423
|
+
DropdownMenuItem3,
|
|
28456
28424
|
{
|
|
28457
28425
|
className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
|
|
28458
28426
|
onSelect: () => {
|
|
@@ -28470,8 +28438,8 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28470
28438
|
}
|
|
28471
28439
|
)
|
|
28472
28440
|
] }) : null,
|
|
28473
|
-
!projectPath && section.kind === "conversations" && section.items.length > 0 ? /* @__PURE__ */
|
|
28474
|
-
previewMode ? /* @__PURE__ */ jsx31(
|
|
28441
|
+
!projectPath && section.kind === "conversations" && section.items.length > 0 ? /* @__PURE__ */ jsxs18(DropdownMenu4, { children: [
|
|
28442
|
+
previewMode ? /* @__PURE__ */ jsx31(DropdownMenuTrigger4, { asChild: true, children: /* @__PURE__ */ jsx31(
|
|
28475
28443
|
"span",
|
|
28476
28444
|
{
|
|
28477
28445
|
className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap,
|
|
@@ -28485,8 +28453,8 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28485
28453
|
}
|
|
28486
28454
|
)
|
|
28487
28455
|
}
|
|
28488
|
-
) }) : /* @__PURE__ */
|
|
28489
|
-
/* @__PURE__ */ jsx31(
|
|
28456
|
+
) }) : /* @__PURE__ */ jsxs18(Tooltip4, { children: [
|
|
28457
|
+
/* @__PURE__ */ jsx31(DropdownMenuTrigger4, { asChild: true, children: /* @__PURE__ */ jsx31(TooltipTrigger4, { asChild: true, children: /* @__PURE__ */ jsx31(
|
|
28490
28458
|
"span",
|
|
28491
28459
|
{
|
|
28492
28460
|
className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap,
|
|
@@ -28502,7 +28470,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28502
28470
|
}
|
|
28503
28471
|
) }) }),
|
|
28504
28472
|
/* @__PURE__ */ jsx31(
|
|
28505
|
-
|
|
28473
|
+
TooltipContent4,
|
|
28506
28474
|
{
|
|
28507
28475
|
side: "right",
|
|
28508
28476
|
sideOffset: 6,
|
|
@@ -28512,13 +28480,13 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28512
28480
|
)
|
|
28513
28481
|
] }),
|
|
28514
28482
|
/* @__PURE__ */ jsx31(
|
|
28515
|
-
|
|
28483
|
+
DropdownMenuContent4,
|
|
28516
28484
|
{
|
|
28517
28485
|
align: "end",
|
|
28518
28486
|
className: `${AgentGUINode_styles_default.composerMenuContent} nodrag [-webkit-app-region:no-drag]`,
|
|
28519
28487
|
sideOffset: 6,
|
|
28520
28488
|
children: /* @__PURE__ */ jsx31(
|
|
28521
|
-
|
|
28489
|
+
DropdownMenuItem3,
|
|
28522
28490
|
{
|
|
28523
28491
|
className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
|
|
28524
28492
|
onSelect: () => {
|
|
@@ -28542,7 +28510,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28542
28510
|
{
|
|
28543
28511
|
className: AgentGUINode_styles_default.conversationSectionItems,
|
|
28544
28512
|
"aria-hidden": isSectionCollapsed ? "true" : void 0,
|
|
28545
|
-
children: /* @__PURE__ */
|
|
28513
|
+
children: /* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.conversationSectionItemsInner, children: [
|
|
28546
28514
|
!isSectionCollapsed && section.items.length === 0 ? /* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.conversationSectionEmpty, children: labels.emptyProjectConversations }) : null,
|
|
28547
28515
|
visibleItems.map((item) => /* @__PURE__ */ jsx31(
|
|
28548
28516
|
AgentGUIConversationRailItem,
|
|
@@ -28565,7 +28533,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28565
28533
|
},
|
|
28566
28534
|
item.id
|
|
28567
28535
|
)),
|
|
28568
|
-
canShowMore || canShowLess ? /* @__PURE__ */
|
|
28536
|
+
canShowMore || canShowLess ? /* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.conversationSectionPagination, children: [
|
|
28569
28537
|
canShowMore ? /* @__PURE__ */ jsx31(
|
|
28570
28538
|
"button",
|
|
28571
28539
|
{
|
|
@@ -28638,7 +28606,7 @@ var AgentGUIConversationRailItem = memo(
|
|
|
28638
28606
|
const handleRequestDelete = useCallback10(() => {
|
|
28639
28607
|
onRequestDeleteConversation(item.id);
|
|
28640
28608
|
}, [item.id, onRequestDeleteConversation]);
|
|
28641
|
-
return /* @__PURE__ */
|
|
28609
|
+
return /* @__PURE__ */ jsxs18(
|
|
28642
28610
|
"div",
|
|
28643
28611
|
{
|
|
28644
28612
|
ref: setItemElement,
|
|
@@ -28649,14 +28617,14 @@ var AgentGUIConversationRailItem = memo(
|
|
|
28649
28617
|
"data-testid": `agent-gui-conversation-item-${item.id}`,
|
|
28650
28618
|
onMouseLeave: handleMouseLeave,
|
|
28651
28619
|
children: [
|
|
28652
|
-
/* @__PURE__ */
|
|
28620
|
+
/* @__PURE__ */ jsxs18(
|
|
28653
28621
|
"button",
|
|
28654
28622
|
{
|
|
28655
28623
|
type: "button",
|
|
28656
28624
|
className: AgentGUINode_styles_default.conversationSelect,
|
|
28657
28625
|
onClick: handleSelect,
|
|
28658
28626
|
children: [
|
|
28659
|
-
/* @__PURE__ */
|
|
28627
|
+
/* @__PURE__ */ jsxs18("span", { className: AgentGUINode_styles_default.conversationTitleRow, children: [
|
|
28660
28628
|
providerIconUrl ? /* @__PURE__ */ jsx31(
|
|
28661
28629
|
"span",
|
|
28662
28630
|
{
|
|
@@ -28687,7 +28655,7 @@ var AgentGUIConversationRailItem = memo(
|
|
|
28687
28655
|
},
|
|
28688
28656
|
children: /* @__PURE__ */ jsx31("span", { className: AgentGUINode_styles_default.conversationDeleteConfirmText, children: labels.deleteSessionConfirm })
|
|
28689
28657
|
}
|
|
28690
|
-
) : /* @__PURE__ */
|
|
28658
|
+
) : /* @__PURE__ */ jsxs18(Fragment9, { children: [
|
|
28691
28659
|
onOpenConversationWindow ? /* @__PURE__ */ jsx31(
|
|
28692
28660
|
BareIconButton,
|
|
28693
28661
|
{
|
|
@@ -28772,9 +28740,9 @@ function AgentGUIProjectRailHeader({
|
|
|
28772
28740
|
selectProjectDirectory
|
|
28773
28741
|
]
|
|
28774
28742
|
);
|
|
28775
|
-
return /* @__PURE__ */
|
|
28743
|
+
return /* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.projectRailHeader, children: [
|
|
28776
28744
|
/* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.projectRailTitle, children: /* @__PURE__ */ jsx31("span", { children: workspaceUserProjectI18n.tFirst(["projectSelect.projectLabel"]) }) }),
|
|
28777
|
-
/* @__PURE__ */
|
|
28745
|
+
/* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.projectRailAddProject, children: [
|
|
28778
28746
|
/* @__PURE__ */ jsx31(
|
|
28779
28747
|
WorkspaceUserProjectSelect2,
|
|
28780
28748
|
{
|
|
@@ -28848,7 +28816,7 @@ var AgentGUIConversationTimelinePane = memo(
|
|
|
28848
28816
|
labels
|
|
28849
28817
|
}) {
|
|
28850
28818
|
"use memo";
|
|
28851
|
-
return /* @__PURE__ */
|
|
28819
|
+
return /* @__PURE__ */ jsxs18(Fragment9, { children: [
|
|
28852
28820
|
isLoadingOlderMessages && !isLoading ? /* @__PURE__ */ jsx31(
|
|
28853
28821
|
"div",
|
|
28854
28822
|
{
|
|
@@ -29069,7 +29037,7 @@ import {
|
|
|
29069
29037
|
useState as useState13
|
|
29070
29038
|
} from "react";
|
|
29071
29039
|
import { createPortal as createPortal4 } from "react-dom";
|
|
29072
|
-
import { Fragment as Fragment10, jsx as jsx32, jsxs as
|
|
29040
|
+
import { Fragment as Fragment10, jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
29073
29041
|
var POPOVER_MIN_VIEWPORT_INSET_PX = 16;
|
|
29074
29042
|
var POPOVER_DEFAULT_WIDTH_PX = 260;
|
|
29075
29043
|
function dockAgentProbeLineKey(line) {
|
|
@@ -29079,9 +29047,9 @@ function renderDockAgentProbeLine(line) {
|
|
|
29079
29047
|
if (typeof line === "string") {
|
|
29080
29048
|
return line;
|
|
29081
29049
|
}
|
|
29082
|
-
return /* @__PURE__ */
|
|
29050
|
+
return /* @__PURE__ */ jsxs19(Fragment10, { children: [
|
|
29083
29051
|
line.primary,
|
|
29084
|
-
line.secondary ? /* @__PURE__ */
|
|
29052
|
+
line.secondary ? /* @__PURE__ */ jsxs19(Fragment10, { children: [
|
|
29085
29053
|
" ",
|
|
29086
29054
|
/* @__PURE__ */ jsx32("span", { className: "desktop-dock-popup__agent-status-secondary", children: line.secondary })
|
|
29087
29055
|
] }) : null
|
|
@@ -29179,7 +29147,7 @@ function AgentProbeInfoPopover({
|
|
|
29179
29147
|
children: /* @__PURE__ */ jsx32("ul", { className: "desktop-dock-popup__agent-info-list", children: lines.map((line) => {
|
|
29180
29148
|
const label = getDockAgentProbeLineLabel(line);
|
|
29181
29149
|
const valueText = formatDockAgentProbeLineText(line);
|
|
29182
|
-
return /* @__PURE__ */
|
|
29150
|
+
return /* @__PURE__ */ jsxs19(
|
|
29183
29151
|
"li",
|
|
29184
29152
|
{
|
|
29185
29153
|
className: "desktop-dock-popup__agent-info-item",
|
|
@@ -29201,7 +29169,7 @@ function AgentProbeInfoPopover({
|
|
|
29201
29169
|
}) })
|
|
29202
29170
|
}
|
|
29203
29171
|
);
|
|
29204
|
-
return /* @__PURE__ */
|
|
29172
|
+
return /* @__PURE__ */ jsxs19(
|
|
29205
29173
|
"div",
|
|
29206
29174
|
{
|
|
29207
29175
|
ref: anchorRef,
|
|
@@ -29374,7 +29342,7 @@ function getAgentHostManagedToolchainAgentByName(name) {
|
|
|
29374
29342
|
}
|
|
29375
29343
|
|
|
29376
29344
|
// agent-gui/agentGuiNode/AgentGUINode.tsx
|
|
29377
|
-
import { jsx as jsx33, jsxs as
|
|
29345
|
+
import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
29378
29346
|
var workspaceFileReferenceLocaleKeyByPickerKey = {
|
|
29379
29347
|
"actions.cancel": "common.cancel",
|
|
29380
29348
|
"referencePicker.confirm": "agentHost.agentGui.referencePicker.confirm",
|
|
@@ -29603,7 +29571,7 @@ function composerOverridesByAgentTargetIdEqual(left, right) {
|
|
|
29603
29571
|
return true;
|
|
29604
29572
|
}
|
|
29605
29573
|
function areAgentGUINodePropsEqual(previous, next) {
|
|
29606
|
-
return previous.nodeId === next.nodeId && previous.workspaceId === next.workspaceId && previous.currentUserId === next.currentUserId && previous.workspacePath === next.workspacePath && previous.workspaceFileReferenceAdapter === next.workspaceFileReferenceAdapter && previous.resolveDroppedFileReferences === next.resolveDroppedFileReferences && previous.selectProjectDirectory === next.selectProjectDirectory && previous.referenceSourceAggregator === next.referenceSourceAggregator && previous.resolveWorkspaceReferenceEntryIconUrl === next.resolveWorkspaceReferenceEntryIconUrl && previous.resolveMentionReferenceTarget === next.resolveMentionReferenceTarget && previous.resolveWorkspaceReferenceInitialTarget === next.resolveWorkspaceReferenceInitialTarget && previous.onWorkspaceFileReferencesAdded === next.onWorkspaceFileReferencesAdded && previous.agentSettings.avoidGroupingEdits === next.agentSettings.avoidGroupingEdits && previous.title === next.title && agentGuiStateEquals(previous.state, next.state) && previous.position.x === next.position.x && previous.position.y === next.position.y && previous.width === next.width && previous.height === next.height && previous.desktopSize.width === next.desktopSize.width && previous.desktopSize.height === next.desktopSize.height && previous.onLinkAction === next.onLinkAction && previous.onHandoffConversation === next.onHandoffConversation && previous.onCapabilitySettingsRequest === next.onCapabilitySettingsRequest && previous.onAgentProviderLogin === next.onAgentProviderLogin && previous.providerTargets === next.providerTargets && previous.providerTargetsLoading === next.providerTargetsLoading && previous.comingSoonProviders === next.comingSoonProviders && previous.providerReadinessGates === next.providerReadinessGates && previous.defaultProviderTargetId === next.defaultProviderTargetId && previous.onClose === next.onClose && previous.onResize === next.onResize && previous.onUpdateNode === next.onUpdateNode && previous.onRememberComposerDefaults === next.onRememberComposerDefaults && previous.onOpenConversationWindow === next.onOpenConversationWindow && previous.isMaximized === next.isMaximized && previous.isMuted === next.isMuted && previous.onMinimize === next.onMinimize && previous.onToggleMaximize === next.onToggleMaximize && previous.onShowMessage === next.onShowMessage && previous.workspaceAgentProbes === next.workspaceAgentProbes && previous.onAgentProbeDemandChange === next.onAgentProbeDemandChange && previous.onAgentProbeRefreshRequest === next.onAgentProbeRefreshRequest && previous.managedAgentsState === next.managedAgentsState && previous.contextMentionProviders === next.contextMentionProviders && previous.workspaceAppIcons === next.workspaceAppIcons && previous.embedded === next.embedded && previous.previewMode === next.previewMode && previous.isActive === next.isActive && previous.composerFocusRequestSequence === next.composerFocusRequestSequence && previous.newConversationRequestSequence === next.newConversationRequestSequence && previous.openSessionRequest === next.openSessionRequest && previous.prefillPromptRequest === next.prefillPromptRequest;
|
|
29574
|
+
return previous.nodeId === next.nodeId && previous.workspaceId === next.workspaceId && previous.currentUserId === next.currentUserId && previous.workspacePath === next.workspacePath && previous.workspaceFileReferenceAdapter === next.workspaceFileReferenceAdapter && previous.resolveDroppedFileReferences === next.resolveDroppedFileReferences && previous.selectProjectDirectory === next.selectProjectDirectory && previous.referenceSourceAggregator === next.referenceSourceAggregator && previous.resolveWorkspaceReferenceEntryIconUrl === next.resolveWorkspaceReferenceEntryIconUrl && previous.resolveMentionReferenceTarget === next.resolveMentionReferenceTarget && previous.resolveWorkspaceReferenceInitialTarget === next.resolveWorkspaceReferenceInitialTarget && previous.onWorkspaceFileReferencesAdded === next.onWorkspaceFileReferencesAdded && previous.agentSettings.avoidGroupingEdits === next.agentSettings.avoidGroupingEdits && previous.title === next.title && agentGuiStateEquals(previous.state, next.state) && previous.position.x === next.position.x && previous.position.y === next.position.y && previous.width === next.width && previous.height === next.height && previous.desktopSize.width === next.desktopSize.width && previous.desktopSize.height === next.desktopSize.height && previous.onLinkAction === next.onLinkAction && previous.onHandoffConversation === next.onHandoffConversation && previous.onCapabilitySettingsRequest === next.onCapabilitySettingsRequest && previous.onAgentProviderLogin === next.onAgentProviderLogin && previous.providerTargets === next.providerTargets && previous.providerTargetsLoading === next.providerTargetsLoading && previous.renderSidebarFooter === next.renderSidebarFooter && previous.providerRailMode === next.providerRailMode && previous.renderProviderRailEmpty === next.renderProviderRailEmpty && previous.comingSoonProviders === next.comingSoonProviders && previous.providerReadinessGates === next.providerReadinessGates && previous.defaultProviderTargetId === next.defaultProviderTargetId && previous.onClose === next.onClose && previous.onResize === next.onResize && previous.onUpdateNode === next.onUpdateNode && previous.onRememberComposerDefaults === next.onRememberComposerDefaults && previous.onOpenConversationWindow === next.onOpenConversationWindow && previous.isMaximized === next.isMaximized && previous.isMuted === next.isMuted && previous.onMinimize === next.onMinimize && previous.onToggleMaximize === next.onToggleMaximize && previous.onShowMessage === next.onShowMessage && previous.workspaceAgentProbes === next.workspaceAgentProbes && previous.onAgentProbeDemandChange === next.onAgentProbeDemandChange && previous.onAgentProbeRefreshRequest === next.onAgentProbeRefreshRequest && previous.managedAgentsState === next.managedAgentsState && previous.contextMentionProviders === next.contextMentionProviders && previous.workspaceAppIcons === next.workspaceAppIcons && previous.embedded === next.embedded && previous.previewMode === next.previewMode && previous.isActive === next.isActive && previous.composerFocusRequestSequence === next.composerFocusRequestSequence && previous.newConversationRequestSequence === next.newConversationRequestSequence && previous.openSessionRequest === next.openSessionRequest && previous.prefillPromptRequest === next.prefillPromptRequest;
|
|
29607
29575
|
}
|
|
29608
29576
|
var AgentGUINode = memo2(function AgentGUINode2({
|
|
29609
29577
|
nodeId,
|
|
@@ -29632,6 +29600,9 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
29632
29600
|
onAgentProviderLogin,
|
|
29633
29601
|
providerTargets,
|
|
29634
29602
|
providerTargetsLoading = false,
|
|
29603
|
+
providerRailMode = "catalog",
|
|
29604
|
+
renderProviderRailEmpty,
|
|
29605
|
+
renderSidebarFooter,
|
|
29635
29606
|
comingSoonProviders,
|
|
29636
29607
|
providerReadinessGates = null,
|
|
29637
29608
|
defaultProviderTargetId = null,
|
|
@@ -29795,6 +29766,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
29795
29766
|
prefillPromptRequest,
|
|
29796
29767
|
providerTargets,
|
|
29797
29768
|
providerTargetsLoading,
|
|
29769
|
+
providerRailMode,
|
|
29798
29770
|
comingSoonProviders,
|
|
29799
29771
|
providerReadinessGates,
|
|
29800
29772
|
defaultProviderTargetId,
|
|
@@ -30051,6 +30023,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
30051
30023
|
conversations: t("agentHost.agentGui.conversations"),
|
|
30052
30024
|
newConversation: t("agentHost.agentGui.newConversation"),
|
|
30053
30025
|
agentConfig: t("agentHost.agentGui.agentConfig"),
|
|
30026
|
+
agentSettingsMenu: t("agentHost.agentGui.agentSettingsMenu"),
|
|
30054
30027
|
agentEnvSetup: t("agentHost.agentGui.agentEnvSetup"),
|
|
30055
30028
|
noConversations: t("agentHost.agentGui.noConversations"),
|
|
30056
30029
|
emptyProjectConversations: t(
|
|
@@ -30542,7 +30515,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
30542
30515
|
className: "size-full bg-transparent",
|
|
30543
30516
|
bodyClassName: `${AgentGUINode_styles_default.shell} nodrag size-full min-h-0 min-w-0 !bg-transparent p-0`,
|
|
30544
30517
|
hideHeader: embedded,
|
|
30545
|
-
titleAccessory: /* @__PURE__ */
|
|
30518
|
+
titleAccessory: /* @__PURE__ */ jsxs20("span", { className: "inline-flex flex-none items-center gap-1", children: [
|
|
30546
30519
|
/* @__PURE__ */ jsx33(
|
|
30547
30520
|
AgentProbeInfoPopover,
|
|
30548
30521
|
{
|
|
@@ -30589,6 +30562,8 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
30589
30562
|
AgentGUINodeView,
|
|
30590
30563
|
{
|
|
30591
30564
|
viewModel,
|
|
30565
|
+
renderSidebarFooter,
|
|
30566
|
+
renderProviderRailEmpty,
|
|
30592
30567
|
actions: viewActions,
|
|
30593
30568
|
isActive,
|
|
30594
30569
|
composerFocusRequestSequence,
|
|
@@ -30658,7 +30633,7 @@ var AgentGUI = memo3(function AgentGUI2({
|
|
|
30658
30633
|
children: /* @__PURE__ */ jsx34(AgentQueuedPromptRuntimeProvider, { runtime: agentQueuedPromptRuntime, children: /* @__PURE__ */ jsx34(AgentGUINode, { ...props }) })
|
|
30659
30634
|
}
|
|
30660
30635
|
) });
|
|
30661
|
-
return props.previewMode ? content : /* @__PURE__ */ jsx34(
|
|
30636
|
+
return props.previewMode ? content : /* @__PURE__ */ jsx34(TooltipProvider4, { delayDuration: 120, skipDelayDuration: 0, children: content });
|
|
30662
30637
|
});
|
|
30663
30638
|
|
|
30664
30639
|
// index.ts
|
|
@@ -30683,6 +30658,7 @@ export {
|
|
|
30683
30658
|
createAgentQueuedPromptRuntime,
|
|
30684
30659
|
createLocalAgentGUIProviderTarget,
|
|
30685
30660
|
createLocalAgentGUIProviderTargets,
|
|
30661
|
+
createSharedAgentGUIProviderTarget,
|
|
30686
30662
|
getAgentActivityRuntime,
|
|
30687
30663
|
getAgentCustomMentionKind,
|
|
30688
30664
|
getOptionalAgentActivityRuntime,
|