@tutti-os/agent-gui 0.0.64 → 0.0.65
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/dist/agent-conversation/index.js +6 -6
- package/dist/agent-message-center/index.js +8 -8
- package/dist/app/renderer/agentactivity.css +3 -3
- package/dist/{chunk-F6GDUU4X.js → chunk-6OYLLPPN.js} +5 -5
- package/dist/{chunk-PVVM7MZZ.js → chunk-DL6BMEHI.js} +2 -2
- package/dist/{chunk-C465B7WK.js → chunk-EIPQGFAE.js} +2 -2
- package/dist/{chunk-52VZ54WH.js → chunk-HKKC2U6J.js} +5 -5
- package/dist/{chunk-TT2YJNEP.js → chunk-IDTB6OID.js} +3 -3
- 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-ERWDRI3F.js → chunk-N4I3TD4G.js} +2 -2
- package/dist/{chunk-ERWDRI3F.js.map → chunk-N4I3TD4G.js.map} +1 -1
- package/dist/{chunk-RDRKIMAC.js → chunk-N7BGNAA2.js} +5 -5
- package/dist/{chunk-YUMHFZ5A.js → chunk-P5C3ED3V.js} +3 -2
- package/dist/chunk-P5C3ED3V.js.map +1 -0
- package/dist/{chunk-ZTZ6STJZ.js → chunk-QULZNKPA.js} +2 -2
- package/dist/{chunk-TFPKI4XJ.js → chunk-R7PSPKBD.js} +2 -2
- package/dist/{chunk-3NSUJ7OF.js → chunk-UI3YDJTC.js} +39 -5
- package/dist/chunk-UI3YDJTC.js.map +1 -0
- package/dist/{chunk-IIXCU2UU.js → chunk-UWBX3DZK.js} +2 -2
- package/dist/{chunk-76GTKO4Q.js → chunk-W3Q7B3DV.js} +2 -2
- package/dist/{chunk-MQ6RKXXW.js → chunk-XLBJHHDX.js} +5 -3
- package/dist/chunk-XLBJHHDX.js.map +1 -0
- package/dist/{chunk-FLTLZGIN.js → chunk-XZPAU7FC.js} +3 -3
- package/dist/context-mention-palette/index.js +7 -7
- package/dist/i18n/index.d.ts +4 -2
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +18 -1
- package/dist/index.js +515 -299
- package/dist/index.js.map +1 -1
- package/dist/workbench/contribution.js +5 -5
- package/dist/workbench/index.js +8 -8
- package/dist/workbench/launch.d.ts +2 -0
- package/dist/workbench/launch.js +1 -1
- package/dist/workbench/sessionTitle.js +3 -3
- package/dist/workbench/state.js +2 -2
- package/dist/workspace-agent-generated-files.js +3 -3
- package/package.json +12 -12
- 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-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-F6GDUU4X.js.map → chunk-6OYLLPPN.js.map} +0 -0
- /package/dist/{chunk-PVVM7MZZ.js.map → chunk-DL6BMEHI.js.map} +0 -0
- /package/dist/{chunk-C465B7WK.js.map → chunk-EIPQGFAE.js.map} +0 -0
- /package/dist/{chunk-52VZ54WH.js.map → chunk-HKKC2U6J.js.map} +0 -0
- /package/dist/{chunk-TT2YJNEP.js.map → chunk-IDTB6OID.js.map} +0 -0
- /package/dist/{chunk-RDRKIMAC.js.map → chunk-N7BGNAA2.js.map} +0 -0
- /package/dist/{chunk-ZTZ6STJZ.js.map → chunk-QULZNKPA.js.map} +0 -0
- /package/dist/{chunk-TFPKI4XJ.js.map → chunk-R7PSPKBD.js.map} +0 -0
- /package/dist/{chunk-IIXCU2UU.js.map → chunk-UWBX3DZK.js.map} +0 -0
- /package/dist/{chunk-76GTKO4Q.js.map → chunk-W3Q7B3DV.js.map} +0 -0
- /package/dist/{chunk-FLTLZGIN.js.map → chunk-XZPAU7FC.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-N7BGNAA2.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-W3Q7B3DV.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-6OYLLPPN.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-IDTB6OID.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-HKKC2U6J.js";
|
|
87
88
|
import {
|
|
88
89
|
WORKSPACE_AGENT_ACTIVITY_RUNTIME_SESSION_ORIGIN,
|
|
89
90
|
buildWorkspaceAgentActivityListViewModel,
|
|
@@ -93,10 +94,10 @@ import {
|
|
|
93
94
|
isWorkspaceAgentUntitledTask,
|
|
94
95
|
mergeWorkspaceAgentActivityDurableAndOverlayMessages,
|
|
95
96
|
selectWorkspaceAgentActivityOverlayMessages
|
|
96
|
-
} from "./chunk-
|
|
97
|
+
} from "./chunk-QULZNKPA.js";
|
|
97
98
|
import {
|
|
98
99
|
Spinner
|
|
99
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-R7PSPKBD.js";
|
|
100
101
|
import {
|
|
101
102
|
resolveWorkspaceAgentSessionSortTimeUnixMs
|
|
102
103
|
} from "./chunk-IBIMGLCD.js";
|
|
@@ -107,7 +108,7 @@ import {
|
|
|
107
108
|
mentionItemToAttrs,
|
|
108
109
|
normalizeAgentSessionMentionTitle,
|
|
109
110
|
parseMentionItemFromHref
|
|
110
|
-
} from "./chunk-
|
|
111
|
+
} from "./chunk-XZPAU7FC.js";
|
|
111
112
|
import "./chunk-Y35GDLP2.js";
|
|
112
113
|
import "./chunk-LUGELG5V.js";
|
|
113
114
|
import {
|
|
@@ -129,7 +130,7 @@ import {
|
|
|
129
130
|
useAgentHostApi,
|
|
130
131
|
useOptionalAgentActivityRuntime,
|
|
131
132
|
useOptionalAgentHostApi
|
|
132
|
-
} from "./chunk-
|
|
133
|
+
} from "./chunk-N4I3TD4G.js";
|
|
133
134
|
import "./chunk-TYGL25EL.js";
|
|
134
135
|
import {
|
|
135
136
|
AgentGuiI18nProvider,
|
|
@@ -137,14 +138,14 @@ import {
|
|
|
137
138
|
agentGuiI18nResources,
|
|
138
139
|
translate,
|
|
139
140
|
useTranslation
|
|
140
|
-
} from "./chunk-
|
|
141
|
+
} from "./chunk-UWBX3DZK.js";
|
|
141
142
|
import "./chunk-PJP5BUU6.js";
|
|
142
143
|
import {
|
|
143
144
|
agentColorfulUrl,
|
|
144
145
|
cursorColorfulUrl,
|
|
145
146
|
normalizeManagedAgentProvider
|
|
146
147
|
} from "./chunk-R2NGSPQS.js";
|
|
147
|
-
import "./chunk-
|
|
148
|
+
import "./chunk-XLBJHHDX.js";
|
|
148
149
|
import {
|
|
149
150
|
AGENT_CONTEXT_MENTION_PROVIDER_IDS
|
|
150
151
|
} from "./chunk-JM24HADP.js";
|
|
@@ -2766,7 +2767,7 @@ function resolveConversationProject(session, projectResolver) {
|
|
|
2766
2767
|
}
|
|
2767
2768
|
function isExternalImportNoProjectSession(session) {
|
|
2768
2769
|
const runtimeContext = session && "runtimeContext" in session ? session.runtimeContext : void 0;
|
|
2769
|
-
return runtimeContext?.externalImportNoProject === true;
|
|
2770
|
+
return runtimeContext?.noProject === true || runtimeContext?.externalImportNoProject === true;
|
|
2770
2771
|
}
|
|
2771
2772
|
function isImportedWorkspaceAgentSession(session) {
|
|
2772
2773
|
return session?.runtimeContext?.imported === true;
|
|
@@ -9395,6 +9396,8 @@ function useAgentGUINodeController({
|
|
|
9395
9396
|
);
|
|
9396
9397
|
const handledOpenSessionSequenceRef = useRef4(null);
|
|
9397
9398
|
const pendingOpenSessionRequestRef = useRef4(null);
|
|
9399
|
+
const explicitlyOpenedConversationIdsRef = useRef4(/* @__PURE__ */ new Set());
|
|
9400
|
+
const railPinnedTransientConversationIdsRef = useRef4(/* @__PURE__ */ new Set());
|
|
9398
9401
|
const selectedConversationNotFoundRetryIdsRef = useRef4(/* @__PURE__ */ new Set());
|
|
9399
9402
|
const selectedConversationNotFoundRetryTimerRef = useRef4(null);
|
|
9400
9403
|
const sessionStateSnapshotCauseBySessionIdRef = useRef4({});
|
|
@@ -9496,6 +9499,78 @@ function useAgentGUINodeController({
|
|
|
9496
9499
|
},
|
|
9497
9500
|
[]
|
|
9498
9501
|
);
|
|
9502
|
+
const conversationSummaryFromRuntimeSession = useCallback4(
|
|
9503
|
+
(session) => {
|
|
9504
|
+
const updatedAtUnixMs = session.updatedAtUnixMs ?? Date.now();
|
|
9505
|
+
const projectedSession = {
|
|
9506
|
+
workspaceId: session.workspaceId,
|
|
9507
|
+
agentSessionId: session.agentSessionId,
|
|
9508
|
+
agentTargetId: session.agentTargetId ?? null,
|
|
9509
|
+
provider: session.provider,
|
|
9510
|
+
providerSessionId: session.providerSessionId ?? session.agentSessionId,
|
|
9511
|
+
resumable: session.resumable,
|
|
9512
|
+
cwd: session.cwd,
|
|
9513
|
+
status: session.status,
|
|
9514
|
+
title: session.title,
|
|
9515
|
+
pinnedAtUnixMs: session.pinnedAtUnixMs ?? null,
|
|
9516
|
+
createdAtUnixMs: session.createdAtUnixMs ?? updatedAtUnixMs,
|
|
9517
|
+
updatedAtUnixMs
|
|
9518
|
+
};
|
|
9519
|
+
return conversationSummaryFromAgentSession(projectedSession, {
|
|
9520
|
+
isNoProjectPath: isNoProjectPathRef.current,
|
|
9521
|
+
userProjects: userProjectsRef.current
|
|
9522
|
+
});
|
|
9523
|
+
},
|
|
9524
|
+
[]
|
|
9525
|
+
);
|
|
9526
|
+
const ensureTransientOpenSessionConversation = useCallback4(
|
|
9527
|
+
(agentSessionId) => {
|
|
9528
|
+
const normalizedAgentSessionId = agentSessionId.trim();
|
|
9529
|
+
if (!normalizedAgentSessionId) {
|
|
9530
|
+
return;
|
|
9531
|
+
}
|
|
9532
|
+
if (resolveConversationSummaryById(
|
|
9533
|
+
conversationsRef.current,
|
|
9534
|
+
normalizedAgentSessionId,
|
|
9535
|
+
transientConversationRef.current
|
|
9536
|
+
)) {
|
|
9537
|
+
return;
|
|
9538
|
+
}
|
|
9539
|
+
const snapshotSession = agentActivitySnapshotRef.current.sessions.find(
|
|
9540
|
+
(session) => session.agentSessionId.trim() === normalizedAgentSessionId && session.visible !== false
|
|
9541
|
+
);
|
|
9542
|
+
if (snapshotSession) {
|
|
9543
|
+
setTransientConversation(
|
|
9544
|
+
conversationSummaryFromRuntimeSession(snapshotSession)
|
|
9545
|
+
);
|
|
9546
|
+
return;
|
|
9547
|
+
}
|
|
9548
|
+
void agentActivityRuntime.getSession(workspaceId, normalizedAgentSessionId).then((session) => {
|
|
9549
|
+
const shouldKeepTransient = explicitlyOpenedConversationIdsRef.current.has(
|
|
9550
|
+
normalizedAgentSessionId
|
|
9551
|
+
) || railPinnedTransientConversationIdsRef.current.has(
|
|
9552
|
+
normalizedAgentSessionId
|
|
9553
|
+
);
|
|
9554
|
+
if (!isMountedRef.current || activeConversationIdRef.current !== normalizedAgentSessionId || !shouldKeepTransient || resolveConversationSummaryById(
|
|
9555
|
+
conversationsRef.current,
|
|
9556
|
+
normalizedAgentSessionId,
|
|
9557
|
+
transientConversationRef.current
|
|
9558
|
+
)) {
|
|
9559
|
+
return;
|
|
9560
|
+
}
|
|
9561
|
+
setTransientConversation(
|
|
9562
|
+
conversationSummaryFromRuntimeSession(session)
|
|
9563
|
+
);
|
|
9564
|
+
}).catch(() => {
|
|
9565
|
+
});
|
|
9566
|
+
},
|
|
9567
|
+
[
|
|
9568
|
+
agentActivityRuntime,
|
|
9569
|
+
conversationSummaryFromRuntimeSession,
|
|
9570
|
+
setTransientConversation,
|
|
9571
|
+
workspaceId
|
|
9572
|
+
]
|
|
9573
|
+
);
|
|
9499
9574
|
const ensureOpenclawGateway = useCallback4(() => {
|
|
9500
9575
|
if (dataRef.current.provider !== "openclaw") {
|
|
9501
9576
|
setOpenclawGateway(null);
|
|
@@ -9909,6 +9984,8 @@ function useAgentGUINodeController({
|
|
|
9909
9984
|
setTransientConversation(
|
|
9910
9985
|
(current) => current?.id === normalized ? { ...current, hasUnreadCompletion: false } : current
|
|
9911
9986
|
);
|
|
9987
|
+
} else if (transientConversationRef.current) {
|
|
9988
|
+
setTransientConversation(null);
|
|
9912
9989
|
}
|
|
9913
9990
|
persistActiveConversation(normalized);
|
|
9914
9991
|
},
|
|
@@ -9917,7 +9994,8 @@ function useAgentGUINodeController({
|
|
|
9917
9994
|
clearSelectedConversationNotFoundRetry,
|
|
9918
9995
|
conversationListQuery,
|
|
9919
9996
|
markSelectedConversationDetailPending,
|
|
9920
|
-
persistActiveConversation
|
|
9997
|
+
persistActiveConversation,
|
|
9998
|
+
setTransientConversation
|
|
9921
9999
|
]
|
|
9922
10000
|
);
|
|
9923
10001
|
const syncConversationListProjection = useCallback4(
|
|
@@ -10050,42 +10128,41 @@ function useAgentGUINodeController({
|
|
|
10050
10128
|
id,
|
|
10051
10129
|
transientConversationRef.current
|
|
10052
10130
|
) !== null;
|
|
10131
|
+
const resolveCanonicalId = (id) => resolveConversationSummaryById(conversations, id, null) !== null;
|
|
10053
10132
|
const inSnapshot = (id) => agentActivitySnapshotRef.current.sessions.some(
|
|
10054
10133
|
(s) => s.agentSessionId.trim() === id && s.visible !== false
|
|
10055
10134
|
);
|
|
10056
10135
|
if (hasExplicitOpenSessionRequest) {
|
|
10057
10136
|
const requestedId = pendingOpenSessionRequest.agentSessionId.trim();
|
|
10058
|
-
if (resolveId(requestedId)) {
|
|
10059
|
-
pendingOpenSessionRequestRef.current = null;
|
|
10060
|
-
selectConversation(requestedId, { reloadConversations: false });
|
|
10061
|
-
return;
|
|
10062
|
-
}
|
|
10063
10137
|
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
|
-
}
|
|
10138
|
+
explicitlyOpenedConversationIdsRef.current.add(requestedId);
|
|
10139
|
+
railPinnedTransientConversationIdsRef.current.add(requestedId);
|
|
10140
|
+
pendingOpenSessionRequestRef.current = null;
|
|
10141
|
+
selectConversation(requestedId, { reloadConversations: false });
|
|
10142
|
+
ensureTransientOpenSessionConversation(requestedId);
|
|
10082
10143
|
return;
|
|
10083
10144
|
}
|
|
10084
10145
|
switch (intent.tag) {
|
|
10085
10146
|
case "home":
|
|
10086
10147
|
return;
|
|
10087
10148
|
case "active":
|
|
10088
|
-
if (
|
|
10149
|
+
if (resolveCanonicalId(intent.id)) {
|
|
10150
|
+
explicitlyOpenedConversationIdsRef.current.delete(intent.id);
|
|
10151
|
+
railPinnedTransientConversationIdsRef.current.delete(intent.id);
|
|
10152
|
+
return;
|
|
10153
|
+
}
|
|
10154
|
+
if (resolveId(intent.id)) {
|
|
10155
|
+
return;
|
|
10156
|
+
}
|
|
10157
|
+
if (!hasLoadedConversations) return;
|
|
10158
|
+
if (inSnapshot(intent.id) && activeConversationIdRef.current === intent.id) {
|
|
10159
|
+
railPinnedTransientConversationIdsRef.current.add(intent.id);
|
|
10160
|
+
ensureTransientOpenSessionConversation(intent.id);
|
|
10161
|
+
return;
|
|
10162
|
+
}
|
|
10163
|
+
if (explicitlyOpenedConversationIdsRef.current.has(intent.id) && activeConversationIdRef.current === intent.id) {
|
|
10164
|
+
return;
|
|
10165
|
+
}
|
|
10089
10166
|
setIntent({ tag: "requested", id: intent.id });
|
|
10090
10167
|
return;
|
|
10091
10168
|
case "requested": {
|
|
@@ -10098,7 +10175,14 @@ function useAgentGUINodeController({
|
|
|
10098
10175
|
selectConversation(intent.id, { reloadConversations: false });
|
|
10099
10176
|
return;
|
|
10100
10177
|
}
|
|
10101
|
-
if (inSnapshot(intent.id))
|
|
10178
|
+
if (inSnapshot(intent.id)) {
|
|
10179
|
+
if (activeConversationIdRef.current === intent.id) {
|
|
10180
|
+
railPinnedTransientConversationIdsRef.current.add(intent.id);
|
|
10181
|
+
ensureTransientOpenSessionConversation(intent.id);
|
|
10182
|
+
setIntent({ tag: "active", id: intent.id });
|
|
10183
|
+
}
|
|
10184
|
+
return;
|
|
10185
|
+
}
|
|
10102
10186
|
setIntent({ tag: "resolving", id: intent.id });
|
|
10103
10187
|
void syncConversationListProjection(intent.id);
|
|
10104
10188
|
return;
|
|
@@ -10125,6 +10209,7 @@ function useAgentGUINodeController({
|
|
|
10125
10209
|
intent,
|
|
10126
10210
|
conversations,
|
|
10127
10211
|
hasLoadedConversations,
|
|
10212
|
+
ensureTransientOpenSessionConversation,
|
|
10128
10213
|
openSessionRequest,
|
|
10129
10214
|
previewMode,
|
|
10130
10215
|
syncConversationListProjection,
|
|
@@ -14146,10 +14231,8 @@ function useAgentGUINodeController({
|
|
|
14146
14231
|
null
|
|
14147
14232
|
);
|
|
14148
14233
|
const visibleConversations = useMemo4(() => {
|
|
14149
|
-
const
|
|
14150
|
-
|
|
14151
|
-
transientConversationRef.current
|
|
14152
|
-
);
|
|
14234
|
+
const transient = transientConversationRef.current;
|
|
14235
|
+
const source = transient && (isLoadingConversations || explicitlyOpenedConversationIdsRef.current.has(transient.id) || railPinnedTransientConversationIdsRef.current.has(transient.id)) ? mergeVisibleConversations(conversations, transient) : conversations;
|
|
14153
14236
|
const mapped = source.map((conversation2) => {
|
|
14154
14237
|
const withRuntime = mergeConversationSummaryWithRuntimeSession({
|
|
14155
14238
|
conversation: conversation2,
|
|
@@ -15385,8 +15468,8 @@ import {
|
|
|
15385
15468
|
useRef as useRef12,
|
|
15386
15469
|
useState as useState12
|
|
15387
15470
|
} from "react";
|
|
15388
|
-
import { useSnapshot } from "valtio";
|
|
15389
|
-
import { proxy as
|
|
15471
|
+
import { useSnapshot as useSnapshot2 } from "valtio";
|
|
15472
|
+
import { proxy as proxy3 } from "valtio/vanilla";
|
|
15390
15473
|
import {
|
|
15391
15474
|
ChevronRight as ChevronRight2,
|
|
15392
15475
|
ChevronsDown,
|
|
@@ -15453,6 +15536,18 @@ function AgentUsageMeter({
|
|
|
15453
15536
|
] });
|
|
15454
15537
|
}
|
|
15455
15538
|
|
|
15539
|
+
// shared/workspaceSettingsPanel/workspaceSettingsPanelStore.ts
|
|
15540
|
+
import { useSnapshot } from "valtio";
|
|
15541
|
+
import { proxy } from "valtio/vanilla";
|
|
15542
|
+
var workspaceSettingsPanelStore = proxy({
|
|
15543
|
+
section: null,
|
|
15544
|
+
requestSequence: 0
|
|
15545
|
+
});
|
|
15546
|
+
function openWorkspaceSettingsPanel(input) {
|
|
15547
|
+
workspaceSettingsPanelStore.section = input?.section ?? null;
|
|
15548
|
+
workspaceSettingsPanelStore.requestSequence += 1;
|
|
15549
|
+
}
|
|
15550
|
+
|
|
15456
15551
|
// agent-gui/agentGuiNode/AgentGUINodeView.tsx
|
|
15457
15552
|
import {
|
|
15458
15553
|
ReferenceSourcePicker,
|
|
@@ -15532,11 +15627,11 @@ function UnavailableChatIcon(props) {
|
|
|
15532
15627
|
);
|
|
15533
15628
|
}
|
|
15534
15629
|
|
|
15535
|
-
// app/renderer/components/icons/
|
|
15536
|
-
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
15537
|
-
function
|
|
15630
|
+
// app/renderer/components/icons/SettingsLinedIcon.tsx
|
|
15631
|
+
import { jsx as jsx16, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
15632
|
+
function SettingsLinedIcon(props) {
|
|
15538
15633
|
"use memo";
|
|
15539
|
-
return /* @__PURE__ */
|
|
15634
|
+
return /* @__PURE__ */ jsxs5(
|
|
15540
15635
|
"svg",
|
|
15541
15636
|
{
|
|
15542
15637
|
width: "24",
|
|
@@ -15545,13 +15640,26 @@ function EnvironmentLinedIcon(props) {
|
|
|
15545
15640
|
fill: "none",
|
|
15546
15641
|
xmlns: "http://www.w3.org/2000/svg",
|
|
15547
15642
|
...props,
|
|
15548
|
-
children:
|
|
15549
|
-
|
|
15550
|
-
|
|
15551
|
-
|
|
15552
|
-
|
|
15553
|
-
|
|
15554
|
-
|
|
15643
|
+
children: [
|
|
15644
|
+
/* @__PURE__ */ jsx16(
|
|
15645
|
+
"path",
|
|
15646
|
+
{
|
|
15647
|
+
fillRule: "evenodd",
|
|
15648
|
+
clipRule: "evenodd",
|
|
15649
|
+
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",
|
|
15650
|
+
fill: "currentColor"
|
|
15651
|
+
}
|
|
15652
|
+
),
|
|
15653
|
+
/* @__PURE__ */ jsx16(
|
|
15654
|
+
"path",
|
|
15655
|
+
{
|
|
15656
|
+
fillRule: "evenodd",
|
|
15657
|
+
clipRule: "evenodd",
|
|
15658
|
+
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",
|
|
15659
|
+
fill: "currentColor"
|
|
15660
|
+
}
|
|
15661
|
+
)
|
|
15662
|
+
]
|
|
15555
15663
|
}
|
|
15556
15664
|
);
|
|
15557
15665
|
}
|
|
@@ -15905,7 +16013,7 @@ var styles = {
|
|
|
15905
16013
|
var RoomIssueNode_styles_default = styles;
|
|
15906
16014
|
|
|
15907
16015
|
// agent-gui/RoomIssueNode/TaskSearchField.tsx
|
|
15908
|
-
import { jsx as jsx17, jsxs as
|
|
16016
|
+
import { jsx as jsx17, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
15909
16017
|
function TaskSearchField({
|
|
15910
16018
|
ariaLabel,
|
|
15911
16019
|
className,
|
|
@@ -15919,7 +16027,7 @@ function TaskSearchField({
|
|
|
15919
16027
|
"use memo";
|
|
15920
16028
|
const { t } = useTranslation();
|
|
15921
16029
|
const searchInput = useComposedInputValue({ onCommit: onChange, value });
|
|
15922
|
-
return /* @__PURE__ */
|
|
16030
|
+
return /* @__PURE__ */ jsxs6(
|
|
15923
16031
|
"div",
|
|
15924
16032
|
{
|
|
15925
16033
|
className: `${RoomIssueNode_styles_default.searchField} ${className ?? ""}`.trim(),
|
|
@@ -15989,7 +16097,7 @@ import {
|
|
|
15989
16097
|
useAnimation,
|
|
15990
16098
|
useReducedMotion
|
|
15991
16099
|
} from "framer-motion";
|
|
15992
|
-
import { jsx as jsx18, jsxs as
|
|
16100
|
+
import { jsx as jsx18, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
15993
16101
|
var CAST_VARIANTS = {
|
|
15994
16102
|
normal: { opacity: 1 },
|
|
15995
16103
|
animate: (custom) => ({
|
|
@@ -16064,7 +16172,7 @@ var CastIcon = forwardRef2(
|
|
|
16064
16172
|
onMouseEnter: handleMouseEnter,
|
|
16065
16173
|
onMouseLeave: handleMouseLeave,
|
|
16066
16174
|
...props,
|
|
16067
|
-
children: /* @__PURE__ */
|
|
16175
|
+
children: /* @__PURE__ */ jsxs7(
|
|
16068
16176
|
"svg",
|
|
16069
16177
|
{
|
|
16070
16178
|
fill: "none",
|
|
@@ -16154,7 +16262,7 @@ var styles2 = {
|
|
|
16154
16262
|
var AgentGUIChrome_styles_default = styles2;
|
|
16155
16263
|
|
|
16156
16264
|
// agent-gui/agentGuiNode/AgentSessionChrome.tsx
|
|
16157
|
-
import { Fragment as Fragment2, jsx as jsx19, jsxs as
|
|
16265
|
+
import { Fragment as Fragment2, jsx as jsx19, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
16158
16266
|
function splitTrailingEllipsis(message) {
|
|
16159
16267
|
const match = message.match(/^(.*?)(\.{3}|…)\s*$/);
|
|
16160
16268
|
if (!match) {
|
|
@@ -16167,7 +16275,7 @@ function splitTrailingEllipsis(message) {
|
|
|
16167
16275
|
}
|
|
16168
16276
|
function LoadingEllipsis() {
|
|
16169
16277
|
"use memo";
|
|
16170
|
-
return /* @__PURE__ */
|
|
16278
|
+
return /* @__PURE__ */ jsxs8("span", { className: "tsh-inline-loading-ellipsis", "aria-hidden": "true", children: [
|
|
16171
16279
|
/* @__PURE__ */ jsx19("span", {}),
|
|
16172
16280
|
/* @__PURE__ */ jsx19("span", {}),
|
|
16173
16281
|
/* @__PURE__ */ jsx19("span", {})
|
|
@@ -16178,7 +16286,7 @@ function ChromeMessageTooltip({
|
|
|
16178
16286
|
children
|
|
16179
16287
|
}) {
|
|
16180
16288
|
"use memo";
|
|
16181
|
-
return /* @__PURE__ */ jsx19(TooltipProvider, { delayDuration: 250, children: /* @__PURE__ */
|
|
16289
|
+
return /* @__PURE__ */ jsx19(TooltipProvider, { delayDuration: 250, children: /* @__PURE__ */ jsxs8(Tooltip, { children: [
|
|
16182
16290
|
/* @__PURE__ */ jsx19(TooltipTrigger, { asChild: true, children }),
|
|
16183
16291
|
/* @__PURE__ */ jsx19(
|
|
16184
16292
|
TooltipContent,
|
|
@@ -16208,9 +16316,9 @@ function AgentChromeNotice({
|
|
|
16208
16316
|
className: cn(AgentGUIChrome_styles_default.chromeCard, toneClassName),
|
|
16209
16317
|
role,
|
|
16210
16318
|
"data-testid": testId,
|
|
16211
|
-
children: /* @__PURE__ */ jsx19("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: /* @__PURE__ */
|
|
16319
|
+
children: /* @__PURE__ */ jsx19("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: /* @__PURE__ */ jsxs8("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
|
|
16212
16320
|
icon ? /* @__PURE__ */ jsx19("span", { className: AgentGUIChrome_styles_default.chromeIcon, children: icon }) : null,
|
|
16213
|
-
/* @__PURE__ */
|
|
16321
|
+
/* @__PURE__ */ jsxs8(
|
|
16214
16322
|
"p",
|
|
16215
16323
|
{
|
|
16216
16324
|
className: cn(AgentGUIChrome_styles_default.chromeMessage, AgentGUIChrome_styles_default.chromeNoticeMessage),
|
|
@@ -16244,10 +16352,10 @@ function AgentSessionChrome({
|
|
|
16244
16352
|
if (!hasContent) {
|
|
16245
16353
|
return null;
|
|
16246
16354
|
}
|
|
16247
|
-
return /* @__PURE__ */
|
|
16248
|
-
visibleAuth ? /* @__PURE__ */ jsx19("section", { className: cn(AgentGUIChrome_styles_default.chromeCard, AgentGUIChrome_styles_default.chromeCardWarning), children: /* @__PURE__ */
|
|
16355
|
+
return /* @__PURE__ */ jsxs8("div", { className: AgentGUIChrome_styles_default.sessionChrome, children: [
|
|
16356
|
+
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
16357
|
/* @__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__ */
|
|
16358
|
+
/* @__PURE__ */ jsxs8("div", { className: AgentGUIChrome_styles_default.chromeInlineActions, children: [
|
|
16251
16359
|
onAuthLogin ? /* @__PURE__ */ jsx19(
|
|
16252
16360
|
Button2,
|
|
16253
16361
|
{
|
|
@@ -16270,7 +16378,7 @@ function AgentSessionChrome({
|
|
|
16270
16378
|
)
|
|
16271
16379
|
] })
|
|
16272
16380
|
] }) }) : null,
|
|
16273
|
-
chrome.approval ? /* @__PURE__ */
|
|
16381
|
+
chrome.approval ? /* @__PURE__ */ jsxs8("section", { className: cn(AgentGUIChrome_styles_default.chromeCard, AgentGUIChrome_styles_default.chromeCardAction), children: [
|
|
16274
16382
|
/* @__PURE__ */ jsx19("div", { className: AgentGUIChrome_styles_default.chromeTitle, children: labels.approvalRequired }),
|
|
16275
16383
|
/* @__PURE__ */ jsx19("p", { className: AgentGUIChrome_styles_default.chromeMessage, children: chrome.approval.title }),
|
|
16276
16384
|
/* @__PURE__ */ jsx19("div", { className: AgentGUIChrome_styles_default.chromeActions, children: chrome.approval.options.map((option) => /* @__PURE__ */ jsx19(
|
|
@@ -16297,8 +16405,8 @@ function AgentSessionChrome({
|
|
|
16297
16405
|
AgentGUIChrome_styles_default.chromeCard,
|
|
16298
16406
|
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
16407
|
),
|
|
16300
|
-
children: /* @__PURE__ */
|
|
16301
|
-
/* @__PURE__ */
|
|
16408
|
+
children: /* @__PURE__ */ jsxs8("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: [
|
|
16409
|
+
/* @__PURE__ */ jsxs8("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
|
|
16302
16410
|
visibleRecovery.kind === "activating" ? /* @__PURE__ */ jsx19(
|
|
16303
16411
|
CastIcon,
|
|
16304
16412
|
{
|
|
@@ -16315,7 +16423,7 @@ function AgentSessionChrome({
|
|
|
16315
16423
|
className: AgentGUIChrome_styles_default.chromeMessage,
|
|
16316
16424
|
"aria-label": visibleRecovery.kind === "activating" ? recoveryMessage : void 0,
|
|
16317
16425
|
tabIndex: 0,
|
|
16318
|
-
children: visibleRecovery.kind === "activating" ? /* @__PURE__ */
|
|
16426
|
+
children: visibleRecovery.kind === "activating" ? /* @__PURE__ */ jsxs8(Fragment2, { children: [
|
|
16319
16427
|
/* @__PURE__ */ jsx19("span", { className: "tsh-inline-loading-label", children: activatingMessage.label }),
|
|
16320
16428
|
activatingMessage.ellipsis ? /* @__PURE__ */ jsx19(LoadingEllipsis, {}) : null
|
|
16321
16429
|
] }) : recoveryMessage
|
|
@@ -16352,7 +16460,7 @@ function AgentSessionChrome({
|
|
|
16352
16460
|
// agent-gui/agentGuiNode/AgentGoalBanner.tsx
|
|
16353
16461
|
import { useEffect as useEffect6, useState as useState5 } from "react";
|
|
16354
16462
|
import { CirclePause, CirclePlay, Pencil, Target, Trash2 } from "lucide-react";
|
|
16355
|
-
import { jsx as jsx20, jsxs as
|
|
16463
|
+
import { jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
16356
16464
|
var RESUMABLE_GOAL_STATUSES = /* @__PURE__ */ new Set([
|
|
16357
16465
|
"paused",
|
|
16358
16466
|
"blocked",
|
|
@@ -16467,8 +16575,8 @@ function AgentGoalBanner({
|
|
|
16467
16575
|
className: cn(AgentGUIChrome_styles_default.chromeCard, AgentGUIChrome_styles_default.chromeCardMuted),
|
|
16468
16576
|
role: "status",
|
|
16469
16577
|
"data-testid": "agent-gui-goal-banner",
|
|
16470
|
-
children: /* @__PURE__ */
|
|
16471
|
-
/* @__PURE__ */
|
|
16578
|
+
children: /* @__PURE__ */ jsxs9("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: [
|
|
16579
|
+
/* @__PURE__ */ jsxs9("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
|
|
16472
16580
|
/* @__PURE__ */ jsx20("span", { className: AgentGUIChrome_styles_default.chromeIcon, children: /* @__PURE__ */ jsx20(Target, { "aria-hidden": true, className: "size-3.5" }) }),
|
|
16473
16581
|
editDraft !== null ? /* @__PURE__ */ jsx20(
|
|
16474
16582
|
"input",
|
|
@@ -16490,7 +16598,7 @@ function AgentGoalBanner({
|
|
|
16490
16598
|
},
|
|
16491
16599
|
onBlur: () => setEditDraft(null)
|
|
16492
16600
|
}
|
|
16493
|
-
) : /* @__PURE__ */
|
|
16601
|
+
) : /* @__PURE__ */ jsxs9(
|
|
16494
16602
|
"p",
|
|
16495
16603
|
{
|
|
16496
16604
|
className: cn(AgentGUIChrome_styles_default.chromeMessage, AgentGUIChrome_styles_default.chromeNoticeMessage),
|
|
@@ -16509,7 +16617,7 @@ function AgentGoalBanner({
|
|
|
16509
16617
|
}
|
|
16510
16618
|
)
|
|
16511
16619
|
] }),
|
|
16512
|
-
hasActions ? /* @__PURE__ */
|
|
16620
|
+
hasActions ? /* @__PURE__ */ jsxs9("div", { className: AgentGUIChrome_styles_default.chromeGoalActions, children: [
|
|
16513
16621
|
onEditObjective !== void 0 && editDraft === null ? /* @__PURE__ */ jsx20(
|
|
16514
16622
|
"button",
|
|
16515
16623
|
{
|
|
@@ -17046,7 +17154,7 @@ import {
|
|
|
17046
17154
|
Target as Target2,
|
|
17047
17155
|
ZapIcon
|
|
17048
17156
|
} from "lucide-react";
|
|
17049
|
-
import { jsx as jsx21, jsxs as
|
|
17157
|
+
import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
17050
17158
|
var paletteStyles = {
|
|
17051
17159
|
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
17160
|
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 +17224,9 @@ function AgentSlashCommandPalette({
|
|
|
17116
17224
|
})
|
|
17117
17225
|
}
|
|
17118
17226
|
) : null;
|
|
17119
|
-
return /* @__PURE__ */
|
|
17227
|
+
return /* @__PURE__ */ jsxs10(Fragment3, { children: [
|
|
17120
17228
|
groupHeader,
|
|
17121
|
-
/* @__PURE__ */
|
|
17229
|
+
/* @__PURE__ */ jsxs10(
|
|
17122
17230
|
"div",
|
|
17123
17231
|
{
|
|
17124
17232
|
ref: isHighlighted ? highlightedOptionRef : null,
|
|
@@ -17148,8 +17256,8 @@ function AgentSlashCommandPalette({
|
|
|
17148
17256
|
},
|
|
17149
17257
|
children: [
|
|
17150
17258
|
entryIcon ? /* @__PURE__ */ jsx21("span", { "aria-hidden": "true", className: paletteStyles.icon, children: entryIcon }) : null,
|
|
17151
|
-
/* @__PURE__ */
|
|
17152
|
-
/* @__PURE__ */
|
|
17259
|
+
/* @__PURE__ */ jsxs10("span", { className: paletteStyles.copy, children: [
|
|
17260
|
+
/* @__PURE__ */ jsxs10("span", { className: paletteStyles.name, children: [
|
|
17153
17261
|
/* @__PURE__ */ jsx21("span", { className: paletteStyles.primaryName, children: entry.type === "command" ? entry.primaryLabel ?? entry.label : entry.label }),
|
|
17154
17262
|
entry.type === "command" && entry.secondaryLabel ? /* @__PURE__ */ jsx21("span", { className: paletteStyles.secondaryName, children: entry.secondaryLabel }) : null
|
|
17155
17263
|
] }),
|
|
@@ -17406,7 +17514,7 @@ var styles3 = {
|
|
|
17406
17514
|
var AgentGUINode_styles_default = styles3;
|
|
17407
17515
|
|
|
17408
17516
|
// agent-gui/agentGuiNode/AgentQueuedPromptPanel.tsx
|
|
17409
|
-
import { jsx as jsx22, jsxs as
|
|
17517
|
+
import { jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
17410
17518
|
var EMPTY_WORKSPACE_APP_ICONS = [];
|
|
17411
17519
|
function queuedPromptImages(queuedPrompt) {
|
|
17412
17520
|
return agentPromptContentImageBlocks(
|
|
@@ -17521,7 +17629,7 @@ function AgentQueuedPromptPanel({
|
|
|
17521
17629
|
window.removeEventListener("resize", measure);
|
|
17522
17630
|
};
|
|
17523
17631
|
}, [queuedPrompts]);
|
|
17524
|
-
return /* @__PURE__ */
|
|
17632
|
+
return /* @__PURE__ */ jsxs11(
|
|
17525
17633
|
"div",
|
|
17526
17634
|
{
|
|
17527
17635
|
className: AgentGUINode_styles_default.composerQueuedPromptPanel,
|
|
@@ -17532,7 +17640,7 @@ function AgentQueuedPromptPanel({
|
|
|
17532
17640
|
onClick: toggleExpanded,
|
|
17533
17641
|
onKeyDown: handleKeyDown,
|
|
17534
17642
|
children: [
|
|
17535
|
-
/* @__PURE__ */
|
|
17643
|
+
/* @__PURE__ */ jsxs11("div", { className: AgentGUINode_styles_default.composerQueuedPromptHeader, children: [
|
|
17536
17644
|
/* @__PURE__ */ jsx22("span", { className: AgentGUINode_styles_default.composerQueuedPromptLabel, children: labels.queuedLabel }),
|
|
17537
17645
|
/* @__PURE__ */ jsx22("span", { className: AgentGUINode_styles_default.composerQueuedPromptCount, children: queuedPrompts.length }),
|
|
17538
17646
|
canExpand ? /* @__PURE__ */ jsx22(
|
|
@@ -17558,14 +17666,14 @@ function AgentQueuedPromptPanel({
|
|
|
17558
17666
|
queuedPrompt.content
|
|
17559
17667
|
);
|
|
17560
17668
|
const title = queuedPromptTitle(queuedPrompt);
|
|
17561
|
-
return /* @__PURE__ */
|
|
17669
|
+
return /* @__PURE__ */ jsxs11(
|
|
17562
17670
|
"div",
|
|
17563
17671
|
{
|
|
17564
17672
|
className: AgentGUINode_styles_default.composerQueuedPromptRow,
|
|
17565
17673
|
"data-testid": `agent-gui-composer-queued-prompt-${queuedPrompt.id}`,
|
|
17566
17674
|
"data-draining": isDraining ? "true" : "false",
|
|
17567
17675
|
children: [
|
|
17568
|
-
/* @__PURE__ */ jsx22("div", { className: AgentGUINode_styles_default.composerQueuedPromptMain, children: /* @__PURE__ */
|
|
17676
|
+
/* @__PURE__ */ jsx22("div", { className: AgentGUINode_styles_default.composerQueuedPromptMain, children: /* @__PURE__ */ jsxs11("div", { className: AgentGUINode_styles_default.composerQueuedPromptBody, title, children: [
|
|
17569
17677
|
displayText ? /* @__PURE__ */ jsx22(
|
|
17570
17678
|
"div",
|
|
17571
17679
|
{
|
|
@@ -17603,7 +17711,7 @@ function AgentQueuedPromptPanel({
|
|
|
17603
17711
|
);
|
|
17604
17712
|
}) }) : null
|
|
17605
17713
|
] }) }),
|
|
17606
|
-
/* @__PURE__ */
|
|
17714
|
+
/* @__PURE__ */ jsxs11("div", { className: AgentGUINode_styles_default.composerQueuedPromptActions, children: [
|
|
17607
17715
|
/* @__PURE__ */ jsx22(
|
|
17608
17716
|
CanvasNodeGhostIconButton,
|
|
17609
17717
|
{
|
|
@@ -17622,7 +17730,7 @@ function AgentQueuedPromptPanel({
|
|
|
17622
17730
|
children: /* @__PURE__ */ jsx22(CanvasNodeTrashLinedIcon, { "aria-hidden": "true" })
|
|
17623
17731
|
}
|
|
17624
17732
|
),
|
|
17625
|
-
/* @__PURE__ */
|
|
17733
|
+
/* @__PURE__ */ jsxs11(DropdownMenu, { children: [
|
|
17626
17734
|
/* @__PURE__ */ jsx22(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx22(
|
|
17627
17735
|
CanvasNodeGhostIconButton,
|
|
17628
17736
|
{
|
|
@@ -18163,7 +18271,7 @@ function optionsWithSelectedValue(options, selectedValue) {
|
|
|
18163
18271
|
}
|
|
18164
18272
|
|
|
18165
18273
|
// agent-gui/agentGuiNode/AgentComposerSettingsMenus.tsx
|
|
18166
|
-
import { Fragment as Fragment5, jsx as jsx23, jsxs as
|
|
18274
|
+
import { Fragment as Fragment5, jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
18167
18275
|
function basenameProjectPath(path) {
|
|
18168
18276
|
const normalized = path.trim().replaceAll("\\", "/").replace(/\/+$/, "");
|
|
18169
18277
|
return normalized.split("/").filter(Boolean).at(-1) ?? path;
|
|
@@ -18198,7 +18306,7 @@ function AgentProjectDropdown({
|
|
|
18198
18306
|
if (previewMode) {
|
|
18199
18307
|
const selectedPath = composerSettings.selectedProjectPath?.trim() ?? "";
|
|
18200
18308
|
const triggerLabel = selectedPath ? basenameProjectPath(selectedPath) : resolvedLabels.noProject;
|
|
18201
|
-
return /* @__PURE__ */
|
|
18309
|
+
return /* @__PURE__ */ jsxs12(
|
|
18202
18310
|
"button",
|
|
18203
18311
|
{
|
|
18204
18312
|
type: "button",
|
|
@@ -18209,7 +18317,7 @@ function AgentProjectDropdown({
|
|
|
18209
18317
|
"text-[var(--agent-gui-text-tertiary)]"
|
|
18210
18318
|
),
|
|
18211
18319
|
children: [
|
|
18212
|
-
/* @__PURE__ */
|
|
18320
|
+
/* @__PURE__ */ jsxs12(
|
|
18213
18321
|
"span",
|
|
18214
18322
|
{
|
|
18215
18323
|
className: "workspace-user-project-trigger-label",
|
|
@@ -18304,7 +18412,7 @@ function AgentPermissionModeDropdown({
|
|
|
18304
18412
|
}
|
|
18305
18413
|
applyPermissionModeId(permissionModeId);
|
|
18306
18414
|
};
|
|
18307
|
-
const trigger = /* @__PURE__ */
|
|
18415
|
+
const trigger = /* @__PURE__ */ jsxs12(
|
|
18308
18416
|
"button",
|
|
18309
18417
|
{
|
|
18310
18418
|
type: "button",
|
|
@@ -18339,7 +18447,7 @@ function AgentPermissionModeDropdown({
|
|
|
18339
18447
|
children: /* @__PURE__ */ jsx23("span", { className: "flex min-w-0 flex-1 items-center", children: /* @__PURE__ */ jsx23("span", { className: "truncate", children: triggerLabel }) })
|
|
18340
18448
|
}
|
|
18341
18449
|
);
|
|
18342
|
-
return /* @__PURE__ */
|
|
18450
|
+
return /* @__PURE__ */ jsxs12(
|
|
18343
18451
|
Select,
|
|
18344
18452
|
{
|
|
18345
18453
|
open: isSelectOpen,
|
|
@@ -18352,7 +18460,7 @@ function AgentPermissionModeDropdown({
|
|
|
18352
18460
|
// The trigger is disabled while loading, so pointer events never reach
|
|
18353
18461
|
// it. Target the tooltip at a focusable wrapper span (Radix's pattern
|
|
18354
18462
|
// for disabled triggers) so hover/focus reliably surfaces the hint.
|
|
18355
|
-
/* @__PURE__ */
|
|
18463
|
+
/* @__PURE__ */ jsxs12(Tooltip2, { children: [
|
|
18356
18464
|
/* @__PURE__ */ jsx23(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ jsx23("span", { className: "inline-flex", tabIndex: 0, children: selectTrigger }) }),
|
|
18357
18465
|
/* @__PURE__ */ jsx23(TooltipContent2, { side: "top", children: labels.loadingOptions })
|
|
18358
18466
|
] })
|
|
@@ -18375,7 +18483,7 @@ function AgentPermissionModeDropdown({
|
|
|
18375
18483
|
disabled: selectDisabled,
|
|
18376
18484
|
className: cn2(AgentGUINode_styles_default.composerMenuItem, "group/composer-option"),
|
|
18377
18485
|
onPointerDown: (event) => handleSelectedItemPointerDown(event, option.value),
|
|
18378
|
-
children: /* @__PURE__ */
|
|
18486
|
+
children: /* @__PURE__ */ jsxs12("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
18379
18487
|
/* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate", children: option.label }),
|
|
18380
18488
|
option.description ? /* @__PURE__ */ jsx23(
|
|
18381
18489
|
ComposerOptionInfoTooltip,
|
|
@@ -18471,7 +18579,7 @@ function ComposerOptionInfoTooltip({
|
|
|
18471
18579
|
if (!tooltipsEnabled) {
|
|
18472
18580
|
return trigger;
|
|
18473
18581
|
}
|
|
18474
|
-
return /* @__PURE__ */
|
|
18582
|
+
return /* @__PURE__ */ jsxs12(Tooltip2, { children: [
|
|
18475
18583
|
/* @__PURE__ */ jsx23(TooltipTrigger2, { asChild: true, children: trigger }),
|
|
18476
18584
|
/* @__PURE__ */ jsx23(TooltipContent2, { side: "right", className: "max-w-[240px] whitespace-normal", children: description })
|
|
18477
18585
|
] });
|
|
@@ -18514,7 +18622,7 @@ function AgentModelReasoningDropdown({
|
|
|
18514
18622
|
onSettingsChange(patch);
|
|
18515
18623
|
setMenuOpen(false);
|
|
18516
18624
|
};
|
|
18517
|
-
const trigger = /* @__PURE__ */
|
|
18625
|
+
const trigger = /* @__PURE__ */ jsxs12(
|
|
18518
18626
|
"button",
|
|
18519
18627
|
{
|
|
18520
18628
|
type: "button",
|
|
@@ -18527,7 +18635,7 @@ function AgentModelReasoningDropdown({
|
|
|
18527
18635
|
"aria-label": `${labels.modelLabel} / ${labels.reasoningLabel}`,
|
|
18528
18636
|
"data-agent-model-reasoning-trigger": "true",
|
|
18529
18637
|
children: [
|
|
18530
|
-
/* @__PURE__ */
|
|
18638
|
+
/* @__PURE__ */ jsxs12("span", { className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden", children: [
|
|
18531
18639
|
menu.speed.show && menu.trigger.isFast ? /* @__PURE__ */ jsx23(
|
|
18532
18640
|
ZapIcon2,
|
|
18533
18641
|
{
|
|
@@ -18537,7 +18645,7 @@ function AgentModelReasoningDropdown({
|
|
|
18537
18645
|
strokeWidth: 2.5
|
|
18538
18646
|
}
|
|
18539
18647
|
) : null,
|
|
18540
|
-
menu.trigger.showCombined ? /* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate", children: menu.trigger.combinedLabel }) : /* @__PURE__ */
|
|
18648
|
+
menu.trigger.showCombined ? /* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate", children: menu.trigger.combinedLabel }) : /* @__PURE__ */ jsxs12(Fragment5, { children: [
|
|
18541
18649
|
/* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate", children: menu.trigger.modelLabel }),
|
|
18542
18650
|
/* @__PURE__ */ jsx23("span", { className: "shrink-0", children: menu.trigger.reasoningLabel })
|
|
18543
18651
|
] })
|
|
@@ -18549,17 +18657,17 @@ function AgentModelReasoningDropdown({
|
|
|
18549
18657
|
if (previewMode) {
|
|
18550
18658
|
return trigger;
|
|
18551
18659
|
}
|
|
18552
|
-
return /* @__PURE__ */
|
|
18660
|
+
return /* @__PURE__ */ jsxs12(DropdownMenu2, { open: menuOpen, onOpenChange: setMenuOpen, children: [
|
|
18553
18661
|
isModelLoading ? (
|
|
18554
18662
|
// The trigger is disabled while loading, so pointer events never reach
|
|
18555
18663
|
// it. Target the tooltip at a focusable wrapper span (Radix's pattern
|
|
18556
18664
|
// for disabled triggers) so hover/focus reliably surfaces the hint.
|
|
18557
|
-
/* @__PURE__ */
|
|
18665
|
+
/* @__PURE__ */ jsxs12(Tooltip2, { children: [
|
|
18558
18666
|
/* @__PURE__ */ jsx23(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ jsx23("span", { className: "inline-flex", tabIndex: 0, children: /* @__PURE__ */ jsx23(DropdownMenuTrigger2, { asChild: true, disabled: menuDisabled, children: trigger }) }) }),
|
|
18559
18667
|
/* @__PURE__ */ jsx23(TooltipContent2, { side: "top", children: labels.loadingOptions })
|
|
18560
18668
|
] })
|
|
18561
18669
|
) : /* @__PURE__ */ jsx23(DropdownMenuTrigger2, { asChild: true, disabled: menuDisabled, children: trigger }),
|
|
18562
|
-
/* @__PURE__ */
|
|
18670
|
+
/* @__PURE__ */ jsxs12(
|
|
18563
18671
|
DropdownMenuContent2,
|
|
18564
18672
|
{
|
|
18565
18673
|
align: "end",
|
|
@@ -18572,9 +18680,9 @@ function AgentModelReasoningDropdown({
|
|
|
18572
18680
|
),
|
|
18573
18681
|
"data-agent-composer-settings-layout": "model-primary",
|
|
18574
18682
|
children: [
|
|
18575
|
-
menu.model.show ? /* @__PURE__ */
|
|
18683
|
+
menu.model.show ? /* @__PURE__ */ jsxs12(Fragment5, { children: [
|
|
18576
18684
|
/* @__PURE__ */ jsx23(DropdownMenuLabel2, { children: labels.modelSelectionLabel }),
|
|
18577
|
-
menu.model.groups.length > 0 ? menu.model.groups.map((group, index) => /* @__PURE__ */
|
|
18685
|
+
menu.model.groups.length > 0 ? menu.model.groups.map((group, index) => /* @__PURE__ */ jsxs12(Fragment4, { children: [
|
|
18578
18686
|
group.label !== null ? /* @__PURE__ */ jsx23(DropdownMenuLabel2, { className: "text-xs text-[var(--agent-gui-text-tertiary)]", children: group.label }) : null,
|
|
18579
18687
|
/* @__PURE__ */ jsx23(
|
|
18580
18688
|
ComposerMenuOptionItems,
|
|
@@ -18598,8 +18706,8 @@ function AgentModelReasoningDropdown({
|
|
|
18598
18706
|
)
|
|
18599
18707
|
] }) : null,
|
|
18600
18708
|
menu.model.show && (menu.reasoning.show || menu.speed.show) ? /* @__PURE__ */ jsx23(DropdownMenuSeparator2, {}) : null,
|
|
18601
|
-
menu.reasoning.show ? /* @__PURE__ */
|
|
18602
|
-
/* @__PURE__ */
|
|
18709
|
+
menu.reasoning.show ? /* @__PURE__ */ jsxs12(DropdownMenuSub2, { children: [
|
|
18710
|
+
/* @__PURE__ */ jsxs12(
|
|
18603
18711
|
DropdownMenuSubTrigger2,
|
|
18604
18712
|
{
|
|
18605
18713
|
className: cn2(AgentGUINode_styles_default.composerMenuItem, "[&>svg]:!ml-0.5"),
|
|
@@ -18627,8 +18735,8 @@ function AgentModelReasoningDropdown({
|
|
|
18627
18735
|
}
|
|
18628
18736
|
)
|
|
18629
18737
|
] }) : null,
|
|
18630
|
-
menu.speed.show ? /* @__PURE__ */
|
|
18631
|
-
/* @__PURE__ */
|
|
18738
|
+
menu.speed.show ? /* @__PURE__ */ jsxs12(DropdownMenuSub2, { children: [
|
|
18739
|
+
/* @__PURE__ */ jsxs12(
|
|
18632
18740
|
DropdownMenuSubTrigger2,
|
|
18633
18741
|
{
|
|
18634
18742
|
className: cn2(AgentGUINode_styles_default.composerMenuItem, "[&>svg]:!ml-0.5"),
|
|
@@ -18674,7 +18782,7 @@ function ComposerMenuOptionItems({
|
|
|
18674
18782
|
const showInlineDescription = descriptionPresentation === "inline" && hasDescription;
|
|
18675
18783
|
const showModelTooltip = descriptionPresentation === "model-tooltip";
|
|
18676
18784
|
const showTooltipDescription = descriptionPresentation === "tooltip" && hasDescription;
|
|
18677
|
-
const item = /* @__PURE__ */
|
|
18785
|
+
const item = /* @__PURE__ */ jsxs12(
|
|
18678
18786
|
DropdownMenuItem2,
|
|
18679
18787
|
{
|
|
18680
18788
|
className: cn2(
|
|
@@ -18694,7 +18802,7 @@ function ComposerMenuOptionItems({
|
|
|
18694
18802
|
onSelect(option.value);
|
|
18695
18803
|
},
|
|
18696
18804
|
children: [
|
|
18697
|
-
showModelTooltip ? /* @__PURE__ */
|
|
18805
|
+
showModelTooltip ? /* @__PURE__ */ jsxs12("span", { className: "flex min-w-0 flex-1 items-baseline gap-2 overflow-hidden", children: [
|
|
18698
18806
|
/* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate leading-[1.15]", children: option.label }),
|
|
18699
18807
|
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
18808
|
"span",
|
|
@@ -18704,7 +18812,7 @@ function ComposerMenuOptionItems({
|
|
|
18704
18812
|
},
|
|
18705
18813
|
summary
|
|
18706
18814
|
)) }) : null
|
|
18707
|
-
] }) : /* @__PURE__ */
|
|
18815
|
+
] }) : /* @__PURE__ */ jsxs12(
|
|
18708
18816
|
"span",
|
|
18709
18817
|
{
|
|
18710
18818
|
className: cn2(
|
|
@@ -18712,7 +18820,7 @@ function ComposerMenuOptionItems({
|
|
|
18712
18820
|
showInlineDescription ? "gap-0.5" : "gap-0"
|
|
18713
18821
|
),
|
|
18714
18822
|
children: [
|
|
18715
|
-
/* @__PURE__ */
|
|
18823
|
+
/* @__PURE__ */ jsxs12("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
18716
18824
|
/* @__PURE__ */ jsx23("span", { className: "min-w-0 truncate leading-[1.15]", children: option.label }),
|
|
18717
18825
|
showTooltipDescription && option.description ? /* @__PURE__ */ jsx23(
|
|
18718
18826
|
ComposerOptionInfoTooltip,
|
|
@@ -18759,11 +18867,11 @@ function ComposerModelOptionTooltip({
|
|
|
18759
18867
|
if (!tooltipsEnabled || !option.tooltip) {
|
|
18760
18868
|
return children;
|
|
18761
18869
|
}
|
|
18762
|
-
return /* @__PURE__ */
|
|
18870
|
+
return /* @__PURE__ */ jsxs12(Tooltip2, { children: [
|
|
18763
18871
|
/* @__PURE__ */ jsx23(TooltipTrigger2, { asChild: true, children: cloneElement(children, {
|
|
18764
18872
|
"data-agent-model-option-tooltip-trigger": "true"
|
|
18765
18873
|
}) }),
|
|
18766
|
-
/* @__PURE__ */
|
|
18874
|
+
/* @__PURE__ */ jsxs12(
|
|
18767
18875
|
TooltipContent2,
|
|
18768
18876
|
{
|
|
18769
18877
|
side: "right",
|
|
@@ -19071,7 +19179,7 @@ function fileToBase64(file) {
|
|
|
19071
19179
|
}
|
|
19072
19180
|
|
|
19073
19181
|
// agent-gui/agentGuiNode/agentRichText/AgentRichTextEditor.tsx
|
|
19074
|
-
import { jsx as jsx24, jsxs as
|
|
19182
|
+
import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
19075
19183
|
function buildWorkspaceFileMentionDropContent(entries, options = {}) {
|
|
19076
19184
|
return entries.flatMap((entry, index) => [
|
|
19077
19185
|
...index === 0 && options.prefixCaretAnchor ? [
|
|
@@ -20006,7 +20114,7 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
|
|
|
20006
20114
|
editor.commands.setTextSelection(editor.state.doc.content.size);
|
|
20007
20115
|
lastEmittedPromptRef.current = value;
|
|
20008
20116
|
}, [availableCapabilities, availableSkills, editor, value]);
|
|
20009
|
-
return /* @__PURE__ */
|
|
20117
|
+
return /* @__PURE__ */ jsxs13("div", { className: "relative min-w-0", onKeyDownCapture: handleKeyDownCapture, children: [
|
|
20010
20118
|
editor ? /* @__PURE__ */ jsx24(EditorContent, { editor }) : /* @__PURE__ */ jsx24(
|
|
20011
20119
|
"div",
|
|
20012
20120
|
{
|
|
@@ -20021,7 +20129,7 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
|
|
|
20021
20129
|
}
|
|
20022
20130
|
),
|
|
20023
20131
|
contextMenu ? createPortal(
|
|
20024
|
-
/* @__PURE__ */
|
|
20132
|
+
/* @__PURE__ */ jsxs13(
|
|
20025
20133
|
"div",
|
|
20026
20134
|
{
|
|
20027
20135
|
role: "menu",
|
|
@@ -20106,7 +20214,7 @@ function AgentRichTextContextMenuButton({
|
|
|
20106
20214
|
|
|
20107
20215
|
// agent-gui/agentGuiNode/AgentSlashStatusPanel.tsx
|
|
20108
20216
|
import { Fragment as Fragment6 } from "react";
|
|
20109
|
-
import { Fragment as Fragment7, jsx as jsx25, jsxs as
|
|
20217
|
+
import { Fragment as Fragment7, jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
20110
20218
|
function formatSlashStatusTokenCount(value) {
|
|
20111
20219
|
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
20112
20220
|
return "";
|
|
@@ -20140,14 +20248,14 @@ function AgentSlashStatusPanel({
|
|
|
20140
20248
|
const agentSessionId = status?.agentSessionId?.trim() ?? "";
|
|
20141
20249
|
const baseUrl = status?.baseUrl?.trim() ?? "";
|
|
20142
20250
|
const showSessionDetails = agentSessionId.length > 0;
|
|
20143
|
-
return /* @__PURE__ */
|
|
20251
|
+
return /* @__PURE__ */ jsxs14(
|
|
20144
20252
|
"section",
|
|
20145
20253
|
{
|
|
20146
20254
|
className: "agent-gui-node__slash-status-panel",
|
|
20147
20255
|
"data-testid": "agent-gui-slash-status-panel",
|
|
20148
20256
|
role: "status",
|
|
20149
20257
|
children: [
|
|
20150
|
-
/* @__PURE__ */
|
|
20258
|
+
/* @__PURE__ */ jsxs14("div", { className: "mb-2 flex items-center justify-between gap-2", children: [
|
|
20151
20259
|
/* @__PURE__ */ jsx25("h3", { className: "truncate text-[11px] font-semibold leading-4", children: labels.slashStatusTitle }),
|
|
20152
20260
|
/* @__PURE__ */ jsx25(
|
|
20153
20261
|
"button",
|
|
@@ -20159,32 +20267,32 @@ function AgentSlashStatusPanel({
|
|
|
20159
20267
|
}
|
|
20160
20268
|
)
|
|
20161
20269
|
] }),
|
|
20162
|
-
/* @__PURE__ */
|
|
20163
|
-
showSessionDetails ? /* @__PURE__ */
|
|
20164
|
-
/* @__PURE__ */
|
|
20270
|
+
/* @__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: [
|
|
20271
|
+
showSessionDetails ? /* @__PURE__ */ jsxs14(Fragment7, { children: [
|
|
20272
|
+
/* @__PURE__ */ jsxs14("dt", { className: "text-muted-foreground", children: [
|
|
20165
20273
|
labels.slashStatusSession,
|
|
20166
20274
|
":"
|
|
20167
20275
|
] }),
|
|
20168
20276
|
/* @__PURE__ */ jsx25("dd", { className: "min-w-0 truncate", children: agentSessionId }),
|
|
20169
|
-
baseUrl ? /* @__PURE__ */
|
|
20170
|
-
/* @__PURE__ */
|
|
20277
|
+
baseUrl ? /* @__PURE__ */ jsxs14(Fragment7, { children: [
|
|
20278
|
+
/* @__PURE__ */ jsxs14("dt", { className: "text-muted-foreground", children: [
|
|
20171
20279
|
labels.slashStatusBaseUrl,
|
|
20172
20280
|
":"
|
|
20173
20281
|
] }),
|
|
20174
20282
|
/* @__PURE__ */ jsx25("dd", { className: "min-w-0 truncate", children: baseUrl })
|
|
20175
20283
|
] }) : null,
|
|
20176
|
-
/* @__PURE__ */
|
|
20284
|
+
/* @__PURE__ */ jsxs14("dt", { className: "text-muted-foreground", children: [
|
|
20177
20285
|
labels.slashStatusContext,
|
|
20178
20286
|
":"
|
|
20179
20287
|
] }),
|
|
20180
20288
|
/* @__PURE__ */ jsx25("dd", { className: "min-w-0", children: slashStatusContextText(status, labels) })
|
|
20181
20289
|
] }) : null,
|
|
20182
|
-
limits.map((limit) => /* @__PURE__ */
|
|
20183
|
-
/* @__PURE__ */
|
|
20290
|
+
limits.map((limit) => /* @__PURE__ */ jsxs14(Fragment6, { children: [
|
|
20291
|
+
/* @__PURE__ */ jsxs14("dt", { className: "text-muted-foreground", children: [
|
|
20184
20292
|
limit.label,
|
|
20185
20293
|
":"
|
|
20186
20294
|
] }),
|
|
20187
|
-
/* @__PURE__ */ jsx25("dd", { className: "min-w-0", children: /* @__PURE__ */
|
|
20295
|
+
/* @__PURE__ */ jsx25("dd", { className: "min-w-0", children: /* @__PURE__ */ jsxs14("span", { className: "agent-gui-node__slash-status-limit", children: [
|
|
20188
20296
|
typeof limit.percentRemaining === "number" && Number.isFinite(limit.percentRemaining) ? /* @__PURE__ */ jsx25(
|
|
20189
20297
|
"span",
|
|
20190
20298
|
{
|
|
@@ -20204,9 +20312,9 @@ function AgentSlashStatusPanel({
|
|
|
20204
20312
|
)
|
|
20205
20313
|
}
|
|
20206
20314
|
) : null,
|
|
20207
|
-
/* @__PURE__ */
|
|
20315
|
+
/* @__PURE__ */ jsxs14("span", { className: "agent-gui-node__slash-status-limit-value", children: [
|
|
20208
20316
|
limit.value,
|
|
20209
|
-
limit.reset ? /* @__PURE__ */
|
|
20317
|
+
limit.reset ? /* @__PURE__ */ jsxs14("span", { className: "text-muted-foreground", children: [
|
|
20210
20318
|
" ",
|
|
20211
20319
|
"(",
|
|
20212
20320
|
limit.reset,
|
|
@@ -20215,8 +20323,8 @@ function AgentSlashStatusPanel({
|
|
|
20215
20323
|
] })
|
|
20216
20324
|
] }) })
|
|
20217
20325
|
] }, limit.id)),
|
|
20218
|
-
limits.length === 0 && status?.limitsLoading ? /* @__PURE__ */
|
|
20219
|
-
/* @__PURE__ */
|
|
20326
|
+
limits.length === 0 && status?.limitsLoading ? /* @__PURE__ */ jsxs14(Fragment7, { children: [
|
|
20327
|
+
/* @__PURE__ */ jsxs14("dt", { className: "text-muted-foreground", children: [
|
|
20220
20328
|
labels.slashStatusLimits,
|
|
20221
20329
|
":"
|
|
20222
20330
|
] }),
|
|
@@ -20324,7 +20432,7 @@ var AgentReviewBranchController = class {
|
|
|
20324
20432
|
};
|
|
20325
20433
|
|
|
20326
20434
|
// agent-gui/agentGuiNode/AgentReviewPickerPanel.tsx
|
|
20327
|
-
import { jsx as jsx26, jsxs as
|
|
20435
|
+
import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
20328
20436
|
var reviewMenuStyles = {
|
|
20329
20437
|
panel: "agent-gui-node__slash-status-panel nodrag flex max-h-[280px] flex-col gap-1 overflow-hidden [-webkit-app-region:no-drag]",
|
|
20330
20438
|
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 +20628,7 @@ function AgentReviewPickerPanel({
|
|
|
20520
20628
|
},
|
|
20521
20629
|
[entries, safeHighlightedIndex, stage, query, onClose, goBackToRoot]
|
|
20522
20630
|
);
|
|
20523
|
-
return /* @__PURE__ */
|
|
20631
|
+
return /* @__PURE__ */ jsxs15(
|
|
20524
20632
|
"section",
|
|
20525
20633
|
{
|
|
20526
20634
|
className: reviewMenuStyles.panel,
|
|
@@ -20572,7 +20680,7 @@ function AgentReviewPickerPanel({
|
|
|
20572
20680
|
entry.onSelect();
|
|
20573
20681
|
}
|
|
20574
20682
|
},
|
|
20575
|
-
children: /* @__PURE__ */
|
|
20683
|
+
children: /* @__PURE__ */ jsxs15("span", { className: reviewMenuStyles.copy, children: [
|
|
20576
20684
|
/* @__PURE__ */ jsx26("span", { className: reviewMenuStyles.name, children: entry.label }),
|
|
20577
20685
|
entry.description ? /* @__PURE__ */ jsx26("span", { className: reviewMenuStyles.description, children: entry.description }) : null
|
|
20578
20686
|
] })
|
|
@@ -20859,7 +20967,7 @@ var bold_lined_default = "./@-bold-lined-BLLFKBFI.svg";
|
|
|
20859
20967
|
var handoff_lined_default = "./handoff-lined-4WQUBVG3.svg";
|
|
20860
20968
|
|
|
20861
20969
|
// agent-gui/agentGuiNode/AgentComposer.tsx
|
|
20862
|
-
import { jsx as jsx28, jsxs as
|
|
20970
|
+
import { jsx as jsx28, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
20863
20971
|
var USAGE_POPOVER_HOVER_DELAY_MS = 120;
|
|
20864
20972
|
var HANDOFF_LOTTIE_PLAYER_SCRIPT_SRC = "https://unpkg.com/@lottiefiles/dotlottie-wc@0.9.14/dist/dotlottie-wc.js";
|
|
20865
20973
|
var HANDOFF_LOTTIE_ANIMATION_SRC = "https://lottie.host/03d75946-52e5-4ccf-97df-174919a13ced/Av6piqVmPa.lottie";
|
|
@@ -21015,7 +21123,7 @@ function AgentUsageChip({
|
|
|
21015
21123
|
if (!tooltipsEnabled) {
|
|
21016
21124
|
return trigger;
|
|
21017
21125
|
}
|
|
21018
|
-
return /* @__PURE__ */
|
|
21126
|
+
return /* @__PURE__ */ jsxs16(
|
|
21019
21127
|
Popover,
|
|
21020
21128
|
{
|
|
21021
21129
|
open: usagePopoverOpen,
|
|
@@ -21033,7 +21141,7 @@ function AgentUsageChip({
|
|
|
21033
21141
|
onOpenAutoFocus: (event) => event.preventDefault(),
|
|
21034
21142
|
onPointerEnter: openUsagePopover,
|
|
21035
21143
|
onPointerLeave: scheduleUsagePopoverClose,
|
|
21036
|
-
children: /* @__PURE__ */
|
|
21144
|
+
children: /* @__PURE__ */ jsxs16("div", { className: "flex min-w-0 flex-col gap-3", children: [
|
|
21037
21145
|
/* @__PURE__ */ jsx28("span", { className: "text-[13px] font-semibold leading-4", children: labels.usagePopoverTitle }),
|
|
21038
21146
|
showTokens ? /* @__PURE__ */ jsx28(
|
|
21039
21147
|
AgentUsageMeter,
|
|
@@ -21208,7 +21316,7 @@ function AgentComposerHandoffIcon({
|
|
|
21208
21316
|
};
|
|
21209
21317
|
}, []);
|
|
21210
21318
|
const shouldShowAnimation = !disabled && isPlaying && isLottieReady;
|
|
21211
|
-
return /* @__PURE__ */
|
|
21319
|
+
return /* @__PURE__ */ jsxs16(
|
|
21212
21320
|
"span",
|
|
21213
21321
|
{
|
|
21214
21322
|
"aria-hidden": "true",
|
|
@@ -22942,7 +23050,7 @@ function AgentComposer({
|
|
|
22942
23050
|
},
|
|
22943
23051
|
[onSubmitInteractivePrompt]
|
|
22944
23052
|
);
|
|
22945
|
-
const composerActionButton = shouldShowStopButton ? /* @__PURE__ */
|
|
23053
|
+
const composerActionButton = shouldShowStopButton ? /* @__PURE__ */ jsxs16(
|
|
22946
23054
|
"button",
|
|
22947
23055
|
{
|
|
22948
23056
|
type: "button",
|
|
@@ -23002,7 +23110,7 @@ function AgentComposer({
|
|
|
23002
23110
|
"data-rotating": promptTips.length > 1 ? "true" : void 0,
|
|
23003
23111
|
"data-testid": "agent-gui-prompt-tip",
|
|
23004
23112
|
style: promptTipStyle,
|
|
23005
|
-
children: /* @__PURE__ */ jsx28("span", { className: AgentGUINode_styles_default.composerPromptTipTrack, children: rotatingPromptTips.map((tip, index) => /* @__PURE__ */
|
|
23113
|
+
children: /* @__PURE__ */ jsx28("span", { className: AgentGUINode_styles_default.composerPromptTipTrack, children: rotatingPromptTips.map((tip, index) => /* @__PURE__ */ jsxs16(
|
|
23006
23114
|
"span",
|
|
23007
23115
|
{
|
|
23008
23116
|
className: AgentGUINode_styles_default.composerPromptTipItem,
|
|
@@ -23010,7 +23118,7 @@ function AgentComposer({
|
|
|
23010
23118
|
children: [
|
|
23011
23119
|
/* @__PURE__ */ jsx28("span", { className: AgentGUINode_styles_default.composerPromptTipPrefix, children: labels.promptTipsPrefix }),
|
|
23012
23120
|
/* @__PURE__ */ jsx28("span", { className: AgentGUINode_styles_default.composerPromptTipLabel, children: tip.label }),
|
|
23013
|
-
/* @__PURE__ */
|
|
23121
|
+
/* @__PURE__ */ jsxs16("span", { className: AgentGUINode_styles_default.composerPromptTipText, children: [
|
|
23014
23122
|
" \xB7 ",
|
|
23015
23123
|
tip.prompt
|
|
23016
23124
|
] })
|
|
@@ -23021,7 +23129,7 @@ function AgentComposer({
|
|
|
23021
23129
|
},
|
|
23022
23130
|
activePromptTip.id
|
|
23023
23131
|
) : null;
|
|
23024
|
-
return /* @__PURE__ */
|
|
23132
|
+
return /* @__PURE__ */ jsxs16(
|
|
23025
23133
|
"form",
|
|
23026
23134
|
{
|
|
23027
23135
|
ref: composerRef,
|
|
@@ -23102,7 +23210,7 @@ function AgentComposer({
|
|
|
23102
23210
|
onProjectMissingChange: setIsSelectedProjectMissing
|
|
23103
23211
|
}
|
|
23104
23212
|
) : null,
|
|
23105
|
-
/* @__PURE__ */
|
|
23213
|
+
/* @__PURE__ */ jsxs16(
|
|
23106
23214
|
"div",
|
|
23107
23215
|
{
|
|
23108
23216
|
className: cn(
|
|
@@ -23133,7 +23241,7 @@ function AgentComposer({
|
|
|
23133
23241
|
description: labels.projectMissingDescription
|
|
23134
23242
|
}
|
|
23135
23243
|
) : null,
|
|
23136
|
-
/* @__PURE__ */
|
|
23244
|
+
/* @__PURE__ */ jsxs16(
|
|
23137
23245
|
"div",
|
|
23138
23246
|
{
|
|
23139
23247
|
ref: inputShellRef,
|
|
@@ -23143,14 +23251,14 @@ function AgentComposer({
|
|
|
23143
23251
|
title: inputDisabled && disabledReasonText ? disabledReasonText : void 0,
|
|
23144
23252
|
style: inputShellStyle,
|
|
23145
23253
|
children: [
|
|
23146
|
-
/* @__PURE__ */
|
|
23254
|
+
/* @__PURE__ */ jsxs16(
|
|
23147
23255
|
Popover,
|
|
23148
23256
|
{
|
|
23149
23257
|
open: showFileMentionPalette,
|
|
23150
23258
|
onOpenChange: setIsPaletteOpen,
|
|
23151
23259
|
modal: false,
|
|
23152
23260
|
children: [
|
|
23153
|
-
/* @__PURE__ */ jsx28(PopoverAnchor, { asChild: true, children: /* @__PURE__ */
|
|
23261
|
+
/* @__PURE__ */ jsx28(PopoverAnchor, { asChild: true, children: /* @__PURE__ */ jsxs16(
|
|
23154
23262
|
"div",
|
|
23155
23263
|
{
|
|
23156
23264
|
ref: promptInputAreaRef,
|
|
@@ -23182,7 +23290,7 @@ function AgentComposer({
|
|
|
23182
23290
|
{
|
|
23183
23291
|
className: "mb-2 flex max-w-[520px] flex-wrap gap-2",
|
|
23184
23292
|
"data-testid": "agent-gui-composer-file-drafts",
|
|
23185
|
-
children: visibleDraftFiles.map((file) => /* @__PURE__ */
|
|
23293
|
+
children: visibleDraftFiles.map((file) => /* @__PURE__ */ jsxs16(
|
|
23186
23294
|
"div",
|
|
23187
23295
|
{
|
|
23188
23296
|
className: cn(
|
|
@@ -23227,7 +23335,7 @@ function AgentComposer({
|
|
|
23227
23335
|
))
|
|
23228
23336
|
}
|
|
23229
23337
|
) : null,
|
|
23230
|
-
/* @__PURE__ */
|
|
23338
|
+
/* @__PURE__ */ jsxs16(
|
|
23231
23339
|
"div",
|
|
23232
23340
|
{
|
|
23233
23341
|
className: cn(
|
|
@@ -23396,10 +23504,10 @@ function AgentComposer({
|
|
|
23396
23504
|
]
|
|
23397
23505
|
}
|
|
23398
23506
|
),
|
|
23399
|
-
/* @__PURE__ */
|
|
23400
|
-
/* @__PURE__ */
|
|
23401
|
-
/* @__PURE__ */
|
|
23402
|
-
previewMode ? /* @__PURE__ */ jsx28(TooltipProvider, { delayDuration: 120, children: /* @__PURE__ */
|
|
23507
|
+
/* @__PURE__ */ jsxs16("div", { className: AgentGUINode_styles_default.composerFooter, children: [
|
|
23508
|
+
/* @__PURE__ */ jsxs16("div", { className: composerStyles.footerGroup, children: [
|
|
23509
|
+
/* @__PURE__ */ jsxs16("div", { className: "inline-flex shrink-0 items-center gap-1", children: [
|
|
23510
|
+
previewMode ? /* @__PURE__ */ jsx28(TooltipProvider, { delayDuration: 120, children: /* @__PURE__ */ jsxs16(Tooltip, { children: [
|
|
23403
23511
|
/* @__PURE__ */ jsx28(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx28(
|
|
23404
23512
|
"button",
|
|
23405
23513
|
{
|
|
@@ -23420,7 +23528,7 @@ function AgentComposer({
|
|
|
23420
23528
|
}
|
|
23421
23529
|
) }),
|
|
23422
23530
|
/* @__PURE__ */ jsx28(TooltipContent, { side: "top", children: labels.addContent })
|
|
23423
|
-
] }) }) : /* @__PURE__ */ jsx28(TooltipProvider, { delayDuration: 120, children: /* @__PURE__ */
|
|
23531
|
+
] }) }) : /* @__PURE__ */ jsx28(TooltipProvider, { delayDuration: 120, children: /* @__PURE__ */ jsxs16(Tooltip, { children: [
|
|
23424
23532
|
/* @__PURE__ */ jsx28(
|
|
23425
23533
|
Select2,
|
|
23426
23534
|
{
|
|
@@ -23461,7 +23569,7 @@ function AgentComposer({
|
|
|
23461
23569
|
),
|
|
23462
23570
|
/* @__PURE__ */ jsx28(TooltipContent, { side: "top", children: labels.addContent })
|
|
23463
23571
|
] }) }),
|
|
23464
|
-
/* @__PURE__ */ jsx28(TooltipProvider, { delayDuration: 120, children: /* @__PURE__ */
|
|
23572
|
+
/* @__PURE__ */ jsx28(TooltipProvider, { delayDuration: 120, children: /* @__PURE__ */ jsxs16(Tooltip, { children: [
|
|
23465
23573
|
/* @__PURE__ */ jsx28(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx28(
|
|
23466
23574
|
"button",
|
|
23467
23575
|
{
|
|
@@ -23497,7 +23605,7 @@ function AgentComposer({
|
|
|
23497
23605
|
/* @__PURE__ */ jsx28(TooltipContent, { side: "top", children: labels.mentionPalette })
|
|
23498
23606
|
] }) })
|
|
23499
23607
|
] }),
|
|
23500
|
-
showHandoffSelect ? /* @__PURE__ */
|
|
23608
|
+
showHandoffSelect ? /* @__PURE__ */ jsxs16(
|
|
23501
23609
|
Select2,
|
|
23502
23610
|
{
|
|
23503
23611
|
value: HANDOFF_SELECT_IDLE_VALUE,
|
|
@@ -23536,7 +23644,7 @@ function AgentComposer({
|
|
|
23536
23644
|
AgentGUINode_styles_default.composerHandoffTrigger,
|
|
23537
23645
|
"w-auto max-w-[180px] [&>svg:last-child]:hidden"
|
|
23538
23646
|
),
|
|
23539
|
-
children: /* @__PURE__ */
|
|
23647
|
+
children: /* @__PURE__ */ jsxs16("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
23540
23648
|
/* @__PURE__ */ jsx28(
|
|
23541
23649
|
AgentComposerHandoffIcon,
|
|
23542
23650
|
{
|
|
@@ -23564,7 +23672,7 @@ function AgentComposer({
|
|
|
23564
23672
|
value: target.targetId,
|
|
23565
23673
|
className: cn(AgentGUINode_styles_default.composerMenuItem, "gap-2"),
|
|
23566
23674
|
disabled: target.disabled === true,
|
|
23567
|
-
children: /* @__PURE__ */
|
|
23675
|
+
children: /* @__PURE__ */ jsxs16("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
23568
23676
|
/* @__PURE__ */ jsx28(
|
|
23569
23677
|
"img",
|
|
23570
23678
|
{
|
|
@@ -23583,7 +23691,7 @@ function AgentComposer({
|
|
|
23583
23691
|
)
|
|
23584
23692
|
]
|
|
23585
23693
|
}
|
|
23586
|
-
) : showProviderSelect && selectedProviderSwitchTarget ? /* @__PURE__ */
|
|
23694
|
+
) : showProviderSelect && selectedProviderSwitchTarget ? /* @__PURE__ */ jsxs16(
|
|
23587
23695
|
Select2,
|
|
23588
23696
|
{
|
|
23589
23697
|
value: selectedProviderSwitchTarget.targetId,
|
|
@@ -23612,7 +23720,7 @@ function AgentComposer({
|
|
|
23612
23720
|
AgentGUINode_styles_default.composerProviderSelect,
|
|
23613
23721
|
"w-auto max-w-[180px]"
|
|
23614
23722
|
),
|
|
23615
|
-
children: /* @__PURE__ */
|
|
23723
|
+
children: /* @__PURE__ */ jsxs16("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
23616
23724
|
/* @__PURE__ */ jsx28(
|
|
23617
23725
|
"img",
|
|
23618
23726
|
{
|
|
@@ -23639,7 +23747,7 @@ function AgentComposer({
|
|
|
23639
23747
|
value: target.targetId,
|
|
23640
23748
|
className: cn(AgentGUINode_styles_default.composerMenuItem, "gap-2"),
|
|
23641
23749
|
disabled: target.disabled === true,
|
|
23642
|
-
children: /* @__PURE__ */
|
|
23750
|
+
children: /* @__PURE__ */ jsxs16("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
23643
23751
|
/* @__PURE__ */ jsx28(
|
|
23644
23752
|
"img",
|
|
23645
23753
|
{
|
|
@@ -23673,8 +23781,8 @@ function AgentComposer({
|
|
|
23673
23781
|
"disabled:cursor-not-allowed disabled:opacity-60"
|
|
23674
23782
|
),
|
|
23675
23783
|
onClick: () => onSettingsChange({ planMode: false }),
|
|
23676
|
-
children: /* @__PURE__ */
|
|
23677
|
-
/* @__PURE__ */
|
|
23784
|
+
children: /* @__PURE__ */ jsxs16("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
|
|
23785
|
+
/* @__PURE__ */ jsxs16("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
|
|
23678
23786
|
/* @__PURE__ */ jsx28(
|
|
23679
23787
|
ListChecks2,
|
|
23680
23788
|
{
|
|
@@ -23715,8 +23823,8 @@ function AgentComposer({
|
|
|
23715
23823
|
"disabled:cursor-not-allowed disabled:opacity-60"
|
|
23716
23824
|
),
|
|
23717
23825
|
onClick: clearGoalModeBadge,
|
|
23718
|
-
children: /* @__PURE__ */
|
|
23719
|
-
/* @__PURE__ */
|
|
23826
|
+
children: /* @__PURE__ */ jsxs16("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
|
|
23827
|
+
/* @__PURE__ */ jsxs16("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
|
|
23720
23828
|
/* @__PURE__ */ jsx28(
|
|
23721
23829
|
Target3,
|
|
23722
23830
|
{
|
|
@@ -23744,7 +23852,7 @@ function AgentComposer({
|
|
|
23744
23852
|
}
|
|
23745
23853
|
) : null
|
|
23746
23854
|
] }),
|
|
23747
|
-
/* @__PURE__ */
|
|
23855
|
+
/* @__PURE__ */ jsxs16("div", { className: composerStyles.footerGroupRight, children: [
|
|
23748
23856
|
usage && usage.percentUsed !== null ? /* @__PURE__ */ jsx28(
|
|
23749
23857
|
AgentUsageChip,
|
|
23750
23858
|
{
|
|
@@ -23819,7 +23927,7 @@ function AgentComposer({
|
|
|
23819
23927
|
]
|
|
23820
23928
|
}
|
|
23821
23929
|
),
|
|
23822
|
-
showProjectRow ? /* @__PURE__ */
|
|
23930
|
+
showProjectRow ? /* @__PURE__ */ jsxs16(
|
|
23823
23931
|
"div",
|
|
23824
23932
|
{
|
|
23825
23933
|
className: AgentGUINode_styles_default.composerProjectRow,
|
|
@@ -23845,7 +23953,7 @@ function AgentComposer({
|
|
|
23845
23953
|
{
|
|
23846
23954
|
className: AgentGUINode_styles_default.composerPromptTips,
|
|
23847
23955
|
"data-testid": "agent-gui-prompt-tips",
|
|
23848
|
-
children: !previewMode && isPromptTipOverflowing && promptTipNode ? /* @__PURE__ */ jsx28(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */
|
|
23956
|
+
children: !previewMode && isPromptTipOverflowing && promptTipNode ? /* @__PURE__ */ jsx28(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsxs16(Tooltip, { children: [
|
|
23849
23957
|
/* @__PURE__ */ jsx28(TooltipTrigger, { asChild: true, children: promptTipNode }),
|
|
23850
23958
|
/* @__PURE__ */ jsx28(
|
|
23851
23959
|
TooltipContent,
|
|
@@ -23888,7 +23996,7 @@ function AgentComposerDraftImagePreview({
|
|
|
23888
23996
|
aspectRatio: String(aspectRatio),
|
|
23889
23997
|
width: `${previewWidth}px`
|
|
23890
23998
|
};
|
|
23891
|
-
return /* @__PURE__ */
|
|
23999
|
+
return /* @__PURE__ */ jsxs16(
|
|
23892
24000
|
"div",
|
|
23893
24001
|
{
|
|
23894
24002
|
className: cn(
|
|
@@ -24050,9 +24158,9 @@ function SendFilledIcon() {
|
|
|
24050
24158
|
}
|
|
24051
24159
|
|
|
24052
24160
|
// agent-gui/agentGuiNode/AgentGUIBottomDockStore.ts
|
|
24053
|
-
import { proxy } from "valtio/vanilla";
|
|
24161
|
+
import { proxy as proxy2 } from "valtio/vanilla";
|
|
24054
24162
|
function createAgentGUIBottomDockStore(initialState) {
|
|
24055
|
-
return
|
|
24163
|
+
return proxy2(initialState);
|
|
24056
24164
|
}
|
|
24057
24165
|
function syncAgentGUIBottomDockStore(store, next) {
|
|
24058
24166
|
if (agentGUIBottomDockStoreSnapshotsEqual(store, next)) {
|
|
@@ -24065,7 +24173,7 @@ function agentGUIBottomDockStoreSnapshotsEqual(current, next) {
|
|
|
24065
24173
|
}
|
|
24066
24174
|
|
|
24067
24175
|
// agent-gui/agentGuiNode/AgentConversationListSkeleton.tsx
|
|
24068
|
-
import { jsx as jsx29, jsxs as
|
|
24176
|
+
import { jsx as jsx29, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
24069
24177
|
var SKELETON_ROWS = [
|
|
24070
24178
|
{ id: "first", size: "long" },
|
|
24071
24179
|
{ id: "second", size: "medium" },
|
|
@@ -24084,7 +24192,7 @@ function AgentConversationListSkeleton({
|
|
|
24084
24192
|
role: "status",
|
|
24085
24193
|
"aria-label": label,
|
|
24086
24194
|
"data-testid": "agent-gui-conversation-list-loading-skeleton",
|
|
24087
|
-
children: SKELETON_ROWS.map((row) => /* @__PURE__ */
|
|
24195
|
+
children: SKELETON_ROWS.map((row) => /* @__PURE__ */ jsxs17(
|
|
24088
24196
|
"div",
|
|
24089
24197
|
{
|
|
24090
24198
|
className: "agent-gui-node__conversation-list-skeleton-row",
|
|
@@ -24370,7 +24478,7 @@ function AttentionGlyph() {
|
|
|
24370
24478
|
|
|
24371
24479
|
// agent-gui/agentGuiNode/AgentGUINodeView.tsx
|
|
24372
24480
|
import { createRichTextMentionHref as createRichTextMentionHref2 } from "@tutti-os/ui-rich-text/core";
|
|
24373
|
-
import { Fragment as Fragment9, jsx as jsx31, jsxs as
|
|
24481
|
+
import { Fragment as Fragment9, jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
24374
24482
|
var AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX = 24;
|
|
24375
24483
|
var AGENT_GUI_TOP_HISTORY_PREFETCH_THRESHOLD_PX = 240;
|
|
24376
24484
|
var AGENT_GUI_TOP_MASK_SCROLL_EPSILON_PX = 1;
|
|
@@ -24625,6 +24733,7 @@ function handoffProjectPathForConversation(conversation) {
|
|
|
24625
24733
|
}
|
|
24626
24734
|
function AgentGUINodeView({
|
|
24627
24735
|
viewModel,
|
|
24736
|
+
renderSidebarFooter,
|
|
24628
24737
|
onLinkAction,
|
|
24629
24738
|
onHandoffConversation,
|
|
24630
24739
|
capabilityMenuState,
|
|
@@ -24992,11 +25101,11 @@ function AgentGUINodeView({
|
|
|
24992
25101
|
);
|
|
24993
25102
|
const sectionAgentTargetFallbackId = enabledProviderTargets.length <= 1 ? viewModel.selectedProviderTarget.agentTargetId?.trim() || viewModel.selectedProviderTarget.targetId?.trim() || null : null;
|
|
24994
25103
|
const openAgentEnvSetup = useCallback10(() => {
|
|
24995
|
-
if (!effectiveRailConfigProvider) {
|
|
24996
|
-
return;
|
|
24997
|
-
}
|
|
24998
25104
|
openAgentEnvPanel({ provider: effectiveRailConfigProvider, focus: null });
|
|
24999
25105
|
}, [effectiveRailConfigProvider]);
|
|
25106
|
+
const openAgentSettings = useCallback10(() => {
|
|
25107
|
+
openWorkspaceSettingsPanel({ section: "agent" });
|
|
25108
|
+
}, []);
|
|
25000
25109
|
const conversationRailStoreState = useMemo10(
|
|
25001
25110
|
() => ({
|
|
25002
25111
|
activeConversationId: viewModel.activeConversationId,
|
|
@@ -25022,6 +25131,7 @@ function AgentGUINodeView({
|
|
|
25022
25131
|
onUpdateConversationFilter: actions.updateConversationFilter,
|
|
25023
25132
|
onSelectConversationFilterTarget: actions.selectConversationFilterTarget,
|
|
25024
25133
|
onOpenAgentEnvSetup: openAgentEnvSetup,
|
|
25134
|
+
onOpenAgentSettings: openAgentSettings,
|
|
25025
25135
|
onAgentConfigMenuOpen,
|
|
25026
25136
|
onRetryOpenclawGateway: retryOpenclawGateway,
|
|
25027
25137
|
onSelectConversation: selectConversation,
|
|
@@ -25046,6 +25156,7 @@ function AgentGUINodeView({
|
|
|
25046
25156
|
labels,
|
|
25047
25157
|
onAgentConfigMenuOpen,
|
|
25048
25158
|
openAgentEnvSetup,
|
|
25159
|
+
openAgentSettings,
|
|
25049
25160
|
openConversationWindow,
|
|
25050
25161
|
openProjectFiles,
|
|
25051
25162
|
openclawGateway,
|
|
@@ -25101,8 +25212,8 @@ function AgentGUINodeView({
|
|
|
25101
25212
|
),
|
|
25102
25213
|
[viewModel.providerTargets, viewModel.workspaceId]
|
|
25103
25214
|
);
|
|
25104
|
-
const content = /* @__PURE__ */
|
|
25105
|
-
/* @__PURE__ */
|
|
25215
|
+
const content = /* @__PURE__ */ jsxs18(AgentTargetPresentationProvider, { agentTargets: agentTargetPresentations, children: [
|
|
25216
|
+
/* @__PURE__ */ jsxs18(
|
|
25106
25217
|
"div",
|
|
25107
25218
|
{
|
|
25108
25219
|
ref: layoutElementRef,
|
|
@@ -25146,6 +25257,9 @@ function AgentGUINodeView({
|
|
|
25146
25257
|
AgentGUIConversationRailStorePane,
|
|
25147
25258
|
{
|
|
25148
25259
|
conversations: viewModel.conversations,
|
|
25260
|
+
currentUserId: viewModel.currentUserId,
|
|
25261
|
+
activeConversation: viewModel.activeConversation,
|
|
25262
|
+
renderSidebarFooter,
|
|
25149
25263
|
store: conversationRailStore,
|
|
25150
25264
|
storeState: conversationRailStoreState,
|
|
25151
25265
|
userProjects: viewModel.userProjects,
|
|
@@ -25455,7 +25569,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
25455
25569
|
]
|
|
25456
25570
|
);
|
|
25457
25571
|
const conversationFlowEmpty = useMemo10(
|
|
25458
|
-
() => /* @__PURE__ */
|
|
25572
|
+
() => /* @__PURE__ */ jsxs18(
|
|
25459
25573
|
"div",
|
|
25460
25574
|
{
|
|
25461
25575
|
className: AgentGUINode_styles_default.unavailableChatEmpty,
|
|
@@ -26315,7 +26429,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
26315
26429
|
);
|
|
26316
26430
|
setIsTimelineScrolledToBottom(true);
|
|
26317
26431
|
}, [viewModel.activeConversationId]);
|
|
26318
|
-
return /* @__PURE__ */
|
|
26432
|
+
return /* @__PURE__ */ jsxs18("main", { className: AgentGUINode_styles_default.detail, children: [
|
|
26319
26433
|
/* @__PURE__ */ jsx31(
|
|
26320
26434
|
AgentGUIDetailHeader,
|
|
26321
26435
|
{
|
|
@@ -26330,7 +26444,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
26330
26444
|
previewMode
|
|
26331
26445
|
}
|
|
26332
26446
|
),
|
|
26333
|
-
showProviderSetupNotice ? /* @__PURE__ */
|
|
26447
|
+
showProviderSetupNotice ? /* @__PURE__ */ jsxs18(
|
|
26334
26448
|
"div",
|
|
26335
26449
|
{
|
|
26336
26450
|
className: cn3(
|
|
@@ -26460,12 +26574,12 @@ var AgentGUIDetailHeader = memo(function AgentGUIDetailHeader2({
|
|
|
26460
26574
|
}
|
|
26461
26575
|
const runPath = activeConversation.cwd.trim();
|
|
26462
26576
|
const statusTitle = showSyncIndicator ? syncLabel : void 0;
|
|
26463
|
-
return /* @__PURE__ */
|
|
26464
|
-
/* @__PURE__ */
|
|
26577
|
+
return /* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.detailHeader, children: [
|
|
26578
|
+
/* @__PURE__ */ jsxs18("span", { className: AgentGUINode_styles_default.detailHeaderTitleGroup, children: [
|
|
26465
26579
|
/* @__PURE__ */ jsx31("span", { className: AgentGUINode_styles_default.detailHeaderTitle, children: conversationPlainTitle(activeConversation, labels, uiLanguage) }),
|
|
26466
26580
|
runPath ? /* @__PURE__ */ jsx31(AgentRunPathInfo, { path: runPath, previewMode }) : null
|
|
26467
26581
|
] }),
|
|
26468
|
-
/* @__PURE__ */
|
|
26582
|
+
/* @__PURE__ */ jsxs18(
|
|
26469
26583
|
"span",
|
|
26470
26584
|
{
|
|
26471
26585
|
className: "inline-flex flex-none items-center gap-2 whitespace-nowrap",
|
|
@@ -26504,7 +26618,7 @@ function AgentRunPathInfo({
|
|
|
26504
26618
|
if (previewMode) {
|
|
26505
26619
|
return trigger;
|
|
26506
26620
|
}
|
|
26507
|
-
return /* @__PURE__ */
|
|
26621
|
+
return /* @__PURE__ */ jsxs18(Tooltip3, { children: [
|
|
26508
26622
|
/* @__PURE__ */ jsx31(TooltipTrigger3, { asChild: true, children: trigger }),
|
|
26509
26623
|
/* @__PURE__ */ jsx31(
|
|
26510
26624
|
TooltipContent3,
|
|
@@ -26557,7 +26671,7 @@ var AgentGUIEmptyHeroPane = memo(function AgentGUIEmptyHeroPane2({
|
|
|
26557
26671
|
"use memo";
|
|
26558
26672
|
const heroIconPresentations = iconPresentations.length > 0 ? iconPresentations : [agentGUIProviderIconPresentation(provider)];
|
|
26559
26673
|
const heroIconAnimationKey = heroIconPresentations.map((icon) => `${icon.provider}:${icon.iconUrl}`).join("|");
|
|
26560
|
-
return /* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */
|
|
26674
|
+
return /* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.emptyHeroBody, children: [
|
|
26561
26675
|
heroIconPresentations.length > 1 ? /* @__PURE__ */ jsx31(
|
|
26562
26676
|
AgentGUIAllProviderGridIcon,
|
|
26563
26677
|
{
|
|
@@ -26622,7 +26736,7 @@ var AgentGUIProviderReadinessGatePane = memo(
|
|
|
26622
26736
|
});
|
|
26623
26737
|
const action = providerGateAction(gate.status);
|
|
26624
26738
|
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__ */
|
|
26739
|
+
return /* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs18(
|
|
26626
26740
|
"div",
|
|
26627
26741
|
{
|
|
26628
26742
|
className: cn3(AgentGUINode_styles_default.emptyHeroBody, AgentGUINode_styles_default.emptyProviderGate),
|
|
@@ -26822,9 +26936,9 @@ function EmptyHeroTitle({
|
|
|
26822
26936
|
);
|
|
26823
26937
|
const canSwitchProvider = enabledProviderTargets.length > 1 && selectedProviderTarget && onProviderSelect;
|
|
26824
26938
|
const providerName = label.slice(providerStart, providerEnd);
|
|
26825
|
-
return /* @__PURE__ */
|
|
26939
|
+
return /* @__PURE__ */ jsxs18(Fragment9, { children: [
|
|
26826
26940
|
label.slice(0, providerStart),
|
|
26827
|
-
canSwitchProvider ? /* @__PURE__ */
|
|
26941
|
+
canSwitchProvider ? /* @__PURE__ */ jsxs18(
|
|
26828
26942
|
Select3,
|
|
26829
26943
|
{
|
|
26830
26944
|
value: selectedProviderTargetId,
|
|
@@ -26861,7 +26975,7 @@ function EmptyHeroTitle({
|
|
|
26861
26975
|
{
|
|
26862
26976
|
value: target.targetId,
|
|
26863
26977
|
className: cn3(AgentGUINode_styles_default.composerMenuItem, "gap-2"),
|
|
26864
|
-
children: /* @__PURE__ */
|
|
26978
|
+
children: /* @__PURE__ */ jsxs18("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
26865
26979
|
/* @__PURE__ */ jsx31(
|
|
26866
26980
|
"img",
|
|
26867
26981
|
{
|
|
@@ -26909,7 +27023,7 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
26909
27023
|
goalPauseSupported
|
|
26910
27024
|
}) {
|
|
26911
27025
|
"use memo";
|
|
26912
|
-
const state =
|
|
27026
|
+
const state = useSnapshot2(store);
|
|
26913
27027
|
const {
|
|
26914
27028
|
composerProps,
|
|
26915
27029
|
inlineNoticeChrome,
|
|
@@ -26924,7 +27038,7 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
26924
27038
|
const goalTokensUsed = goal ? numberValue2(goal.tokensUsed) : null;
|
|
26925
27039
|
const goalTimeUsedSeconds = goal ? numberValue2(goal.timeUsedSeconds) : null;
|
|
26926
27040
|
const showGoalBanner = isGoalBannerVisible(goalObjective, goalStatus);
|
|
26927
|
-
return /* @__PURE__ */
|
|
27041
|
+
return /* @__PURE__ */ jsxs18(
|
|
26928
27042
|
"div",
|
|
26929
27043
|
{
|
|
26930
27044
|
ref: bottomDockRef,
|
|
@@ -27031,7 +27145,7 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
27031
27145
|
);
|
|
27032
27146
|
});
|
|
27033
27147
|
function createAgentGUIConversationRailStore(initialState) {
|
|
27034
|
-
return
|
|
27148
|
+
return proxy3(initialState);
|
|
27035
27149
|
}
|
|
27036
27150
|
function syncAgentGUIConversationRailStore(store, next) {
|
|
27037
27151
|
if (agentGUIConversationRailStoreSnapshotsEqual(store, next)) {
|
|
@@ -27040,23 +27154,29 @@ function syncAgentGUIConversationRailStore(store, next) {
|
|
|
27040
27154
|
Object.assign(store, next);
|
|
27041
27155
|
}
|
|
27042
27156
|
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;
|
|
27157
|
+
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
27158
|
}
|
|
27045
27159
|
var AgentGUIConversationRailStorePane = memo(
|
|
27046
27160
|
function AgentGUIConversationRailStorePane2({
|
|
27161
|
+
activeConversation,
|
|
27047
27162
|
conversations,
|
|
27163
|
+
currentUserId,
|
|
27164
|
+
renderSidebarFooter,
|
|
27048
27165
|
store,
|
|
27049
27166
|
storeState: _storeState,
|
|
27050
27167
|
userProjects,
|
|
27051
27168
|
workspaceId
|
|
27052
27169
|
}) {
|
|
27053
27170
|
"use memo";
|
|
27054
|
-
const state =
|
|
27171
|
+
const state = useSnapshot2(store);
|
|
27055
27172
|
return /* @__PURE__ */ jsx31(
|
|
27056
27173
|
AgentGUIConversationRailPane,
|
|
27057
27174
|
{
|
|
27058
27175
|
...state,
|
|
27176
|
+
activeConversation,
|
|
27059
27177
|
conversations,
|
|
27178
|
+
currentUserId,
|
|
27179
|
+
renderSidebarFooter,
|
|
27060
27180
|
userProjects,
|
|
27061
27181
|
workspaceId
|
|
27062
27182
|
}
|
|
@@ -27171,37 +27291,81 @@ function updateConversationSectionsFromSummaries(previous, conversations, option
|
|
|
27171
27291
|
const summariesById = new Map(
|
|
27172
27292
|
conversations.map((conversation) => [conversation.id, conversation])
|
|
27173
27293
|
);
|
|
27294
|
+
const summarySectionItemsById = /* @__PURE__ */ new Map();
|
|
27295
|
+
for (const conversation of conversations) {
|
|
27296
|
+
if ((conversation.pinnedAtUnixMs ?? 0) > 0) {
|
|
27297
|
+
continue;
|
|
27298
|
+
}
|
|
27299
|
+
const sectionId = conversation.project ? `project:${normalizeConversationProjectPath(conversation.project.path)}` : "conversations";
|
|
27300
|
+
const items = summarySectionItemsById.get(sectionId) ?? [];
|
|
27301
|
+
items.push(conversation);
|
|
27302
|
+
summarySectionItemsById.set(sectionId, items);
|
|
27303
|
+
}
|
|
27174
27304
|
const seenIds = /* @__PURE__ */ new Set();
|
|
27175
27305
|
let changed = false;
|
|
27176
27306
|
const nextSections = previous.map((section) => {
|
|
27177
27307
|
let sectionChanged = false;
|
|
27308
|
+
const summaryItems = summarySectionItemsById.get(section.id) ?? [];
|
|
27309
|
+
const summaryIdsForSection = new Set(summaryItems.map((item) => item.id));
|
|
27178
27310
|
const items = section.items.map((item) => {
|
|
27179
27311
|
seenIds.add(item.id);
|
|
27180
27312
|
const summary = summariesById.get(item.id);
|
|
27181
27313
|
if (!summary) {
|
|
27182
27314
|
return item;
|
|
27183
27315
|
}
|
|
27184
|
-
const nextItem = {
|
|
27316
|
+
const nextItem = section.project ? {
|
|
27185
27317
|
...summary,
|
|
27186
|
-
project:
|
|
27187
|
-
};
|
|
27318
|
+
project: section.project
|
|
27319
|
+
} : summary;
|
|
27188
27320
|
if (conversationSummariesRenderEqual2(item, nextItem)) {
|
|
27189
27321
|
return item;
|
|
27190
27322
|
}
|
|
27191
27323
|
sectionChanged = true;
|
|
27192
27324
|
return nextItem;
|
|
27325
|
+
}).filter((item) => {
|
|
27326
|
+
const summary = summariesById.get(item.id);
|
|
27327
|
+
if (!summary || summaryIdsForSection.has(item.id)) {
|
|
27328
|
+
return true;
|
|
27329
|
+
}
|
|
27330
|
+
sectionChanged = true;
|
|
27331
|
+
return false;
|
|
27193
27332
|
});
|
|
27194
|
-
|
|
27195
|
-
|
|
27333
|
+
const nextSection = sectionChanged ? {
|
|
27334
|
+
...section,
|
|
27335
|
+
items
|
|
27336
|
+
} : section;
|
|
27337
|
+
if (section.kind === "pinned" || summaryItems.length === 0) {
|
|
27338
|
+
if (sectionChanged) {
|
|
27339
|
+
changed = true;
|
|
27340
|
+
}
|
|
27341
|
+
return nextSection;
|
|
27342
|
+
}
|
|
27343
|
+
const summaryIds = new Set(summaryItems.map((item) => item.id));
|
|
27344
|
+
const mergedItems = [
|
|
27345
|
+
...summaryItems.map(
|
|
27346
|
+
(item) => section.project ? { ...item, project: section.project } : item
|
|
27347
|
+
),
|
|
27348
|
+
...items.filter((item) => !summaryIds.has(item.id))
|
|
27349
|
+
];
|
|
27350
|
+
const stableItems = stabilizeConversationSectionItems(
|
|
27351
|
+
section.items,
|
|
27352
|
+
mergedItems
|
|
27353
|
+
);
|
|
27354
|
+
if (stableItems === section.items) {
|
|
27355
|
+
if (sectionChanged) {
|
|
27356
|
+
changed = true;
|
|
27357
|
+
}
|
|
27358
|
+
return nextSection;
|
|
27196
27359
|
}
|
|
27197
27360
|
changed = true;
|
|
27198
27361
|
return {
|
|
27199
|
-
...
|
|
27200
|
-
items
|
|
27362
|
+
...nextSection,
|
|
27363
|
+
items: stableItems
|
|
27201
27364
|
};
|
|
27202
27365
|
});
|
|
27203
|
-
const
|
|
27204
|
-
|
|
27366
|
+
const existingSectionIds = new Set(nextSections.map((section) => section.id));
|
|
27367
|
+
const newConversations = [...summarySectionItemsById.entries()].flatMap(
|
|
27368
|
+
([sectionId, items]) => existingSectionIds.has(sectionId) ? [] : items.filter((conversation) => !seenIds.has(conversation.id))
|
|
27205
27369
|
);
|
|
27206
27370
|
if (newConversations.length === 0) {
|
|
27207
27371
|
return changed ? nextSections : previous;
|
|
@@ -27216,7 +27380,7 @@ function updateConversationSectionsFromSummaries(previous, conversations, option
|
|
|
27216
27380
|
if (targetIndex !== -1 && target) {
|
|
27217
27381
|
sectionsWithInsertions[targetIndex] = {
|
|
27218
27382
|
...target,
|
|
27219
|
-
items: [
|
|
27383
|
+
items: [...target.items, conversation]
|
|
27220
27384
|
};
|
|
27221
27385
|
continue;
|
|
27222
27386
|
}
|
|
@@ -27445,7 +27609,7 @@ var AgentGUIProviderRail = memo(function AgentGUIProviderRail2({
|
|
|
27445
27609
|
},
|
|
27446
27610
|
[onSelectConversationFilterTarget]
|
|
27447
27611
|
);
|
|
27448
|
-
return /* @__PURE__ */
|
|
27612
|
+
return /* @__PURE__ */ jsxs18(
|
|
27449
27613
|
"div",
|
|
27450
27614
|
{
|
|
27451
27615
|
className: AgentGUINode_styles_default.providerRail,
|
|
@@ -27453,7 +27617,7 @@ var AgentGUIProviderRail = memo(function AgentGUIProviderRail2({
|
|
|
27453
27617
|
"aria-label": labels.providerSwitchLabel,
|
|
27454
27618
|
"aria-busy": providerTargetsLoading,
|
|
27455
27619
|
children: [
|
|
27456
|
-
/* @__PURE__ */
|
|
27620
|
+
/* @__PURE__ */ jsxs18(
|
|
27457
27621
|
"button",
|
|
27458
27622
|
{
|
|
27459
27623
|
type: "button",
|
|
@@ -27525,7 +27689,7 @@ var AgentGUIProviderRail = memo(function AgentGUIProviderRail2({
|
|
|
27525
27689
|
if (previewMode) {
|
|
27526
27690
|
return tile;
|
|
27527
27691
|
}
|
|
27528
|
-
return /* @__PURE__ */
|
|
27692
|
+
return /* @__PURE__ */ jsxs18(Tooltip3, { children: [
|
|
27529
27693
|
/* @__PURE__ */ jsx31(TooltipTrigger3, { asChild: true, children: tile }),
|
|
27530
27694
|
/* @__PURE__ */ jsx31(TooltipContent3, { side: "right", sideOffset: -4, children: label })
|
|
27531
27695
|
] }, `${target.provider}:${target.targetId}:tooltip`);
|
|
@@ -27547,6 +27711,7 @@ function useAgentGUIConversationRail({
|
|
|
27547
27711
|
const agentActivityRuntime = useAgentActivityRuntime();
|
|
27548
27712
|
const [runtimeRailSections, setRuntimeRailSections] = useState12(null);
|
|
27549
27713
|
const [sectionPageStates, setSectionPageStates] = useState12(() => /* @__PURE__ */ new Map());
|
|
27714
|
+
const conversationsRef = useRef12(conversations);
|
|
27550
27715
|
const pagingRequestSequenceRef = useRef12(0);
|
|
27551
27716
|
const pagingAbortControllersRef = useRef12(/* @__PURE__ */ new Map());
|
|
27552
27717
|
const runtimeListSessionSections = agentActivityRuntime.listSessionSections;
|
|
@@ -27568,6 +27733,9 @@ function useAgentGUIConversationRail({
|
|
|
27568
27733
|
}),
|
|
27569
27734
|
[labels.sectionConversations, labels.sectionPinned]
|
|
27570
27735
|
);
|
|
27736
|
+
useEffect13(() => {
|
|
27737
|
+
conversationsRef.current = conversations;
|
|
27738
|
+
}, [conversations]);
|
|
27571
27739
|
useEffect13(() => {
|
|
27572
27740
|
pagingRequestSequenceRef.current += 1;
|
|
27573
27741
|
for (const controller of pagingAbortControllersRef.current.values()) {
|
|
@@ -27611,8 +27779,16 @@ function useAgentGUIConversationRail({
|
|
|
27611
27779
|
sections: page.sections,
|
|
27612
27780
|
workspaceId: page.workspaceId
|
|
27613
27781
|
});
|
|
27782
|
+
const sectionsWithSummaries = updateConversationSectionsFromSummaries(
|
|
27783
|
+
sections,
|
|
27784
|
+
conversationsRef.current,
|
|
27785
|
+
{ sectionConversationsLabel: labels.sectionConversations }
|
|
27786
|
+
);
|
|
27614
27787
|
setRuntimeRailSections(
|
|
27615
|
-
(current) => stabilizeConversationSections(
|
|
27788
|
+
(current) => stabilizeConversationSections(
|
|
27789
|
+
current,
|
|
27790
|
+
sectionsWithSummaries ?? sections
|
|
27791
|
+
)
|
|
27616
27792
|
);
|
|
27617
27793
|
setSectionPageStates(() => {
|
|
27618
27794
|
const next = /* @__PURE__ */ new Map();
|
|
@@ -27637,6 +27813,7 @@ function useAgentGUIConversationRail({
|
|
|
27637
27813
|
}, [
|
|
27638
27814
|
conversationFilter,
|
|
27639
27815
|
conversationMembershipKey,
|
|
27816
|
+
labels.sectionConversations,
|
|
27640
27817
|
runtimeListSessionSections,
|
|
27641
27818
|
runtimeSectionsEnabled,
|
|
27642
27819
|
sectionProjectionLabels,
|
|
@@ -27771,6 +27948,9 @@ var AgentGUIConversationRailPane = memo(
|
|
|
27771
27948
|
conversations,
|
|
27772
27949
|
workspaceId,
|
|
27773
27950
|
userProjects,
|
|
27951
|
+
currentUserId,
|
|
27952
|
+
activeConversation,
|
|
27953
|
+
renderSidebarFooter,
|
|
27774
27954
|
activeConversationId,
|
|
27775
27955
|
pendingDeleteConversationId,
|
|
27776
27956
|
isLoadingConversations,
|
|
@@ -27783,12 +27963,13 @@ var AgentGUIConversationRailPane = memo(
|
|
|
27783
27963
|
createConversationDisabled,
|
|
27784
27964
|
openclawGateway,
|
|
27785
27965
|
isCollapsed,
|
|
27786
|
-
railConfigProvider,
|
|
27787
27966
|
slashStatusLimits,
|
|
27967
|
+
selectedProviderTarget,
|
|
27788
27968
|
conversationFilter,
|
|
27789
27969
|
sectionAgentTargetFallbackId,
|
|
27790
27970
|
onCreateConversation,
|
|
27791
27971
|
onOpenAgentEnvSetup,
|
|
27972
|
+
onOpenAgentSettings,
|
|
27792
27973
|
onAgentConfigMenuOpen,
|
|
27793
27974
|
onRetryOpenclawGateway,
|
|
27794
27975
|
onSelectConversation,
|
|
@@ -27950,14 +28131,14 @@ var AgentGUIConversationRailPane = memo(
|
|
|
27950
28131
|
activeElement.scrollIntoView({ block: "nearest" });
|
|
27951
28132
|
activeConversationScrollCompletedRef.current = activeId;
|
|
27952
28133
|
}, [activeConversationId, groupedConversationIdentityKey]);
|
|
27953
|
-
return /* @__PURE__ */
|
|
28134
|
+
return /* @__PURE__ */ jsxs18(
|
|
27954
28135
|
"aside",
|
|
27955
28136
|
{
|
|
27956
28137
|
ref: railElementRef,
|
|
27957
28138
|
className: AgentGUINode_styles_default.rail,
|
|
27958
28139
|
"aria-hidden": isCollapsed ? "true" : void 0,
|
|
27959
28140
|
children: [
|
|
27960
|
-
/* @__PURE__ */
|
|
28141
|
+
/* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.railToolbar, children: [
|
|
27961
28142
|
/* @__PURE__ */ jsx31(
|
|
27962
28143
|
TaskSearchField,
|
|
27963
28144
|
{
|
|
@@ -27966,7 +28147,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
27966
28147
|
onChange: setConversationQuery
|
|
27967
28148
|
}
|
|
27968
28149
|
),
|
|
27969
|
-
/* @__PURE__ */
|
|
28150
|
+
/* @__PURE__ */ jsxs18(
|
|
27970
28151
|
Button,
|
|
27971
28152
|
{
|
|
27972
28153
|
type: "button",
|
|
@@ -27983,7 +28164,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
27983
28164
|
}
|
|
27984
28165
|
)
|
|
27985
28166
|
] }),
|
|
27986
|
-
openclawGateway?.status === "starting" ? /* @__PURE__ */
|
|
28167
|
+
openclawGateway?.status === "starting" ? /* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.gatewayStatus, "data-state": "starting", children: [
|
|
27987
28168
|
/* @__PURE__ */ jsx31(
|
|
27988
28169
|
StatusDot,
|
|
27989
28170
|
{
|
|
@@ -27994,7 +28175,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
27994
28175
|
}
|
|
27995
28176
|
),
|
|
27996
28177
|
/* @__PURE__ */ jsx31("span", { children: labels.openclawGatewayStarting })
|
|
27997
|
-
] }) : openclawGateway?.status === "failed" ? /* @__PURE__ */
|
|
28178
|
+
] }) : openclawGateway?.status === "failed" ? /* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.gatewayStatus, "data-state": "failed", children: [
|
|
27998
28179
|
/* @__PURE__ */ jsx31("span", { children: openclawGateway.error || labels.openclawGatewayFailed }),
|
|
27999
28180
|
/* @__PURE__ */ jsx31(
|
|
28000
28181
|
"button",
|
|
@@ -28028,7 +28209,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
28028
28209
|
const projectConversationCount = normalizedProjectPath ? projectConversationCountsByPath.get(normalizedProjectPath) ?? 0 : 0;
|
|
28029
28210
|
const sectionPageState = sectionPageStates.get(section.id);
|
|
28030
28211
|
const sectionHasMore = !conversationQuery.trim() && section.kind !== "pinned" && sectionPageState?.hasMore === true;
|
|
28031
|
-
return /* @__PURE__ */
|
|
28212
|
+
return /* @__PURE__ */ jsxs18(Fragment8, { children: [
|
|
28032
28213
|
showProjectRailHeader ? /* @__PURE__ */ jsx31(
|
|
28033
28214
|
AgentGUIProjectRailHeader,
|
|
28034
28215
|
{
|
|
@@ -28073,7 +28254,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
28073
28254
|
})
|
|
28074
28255
|
}
|
|
28075
28256
|
),
|
|
28076
|
-
|
|
28257
|
+
selectedProviderTarget?.disabled === true ? null : /* @__PURE__ */ jsx31("div", { className: "shrink-0 px-2 py-1.5", children: /* @__PURE__ */ jsxs18(
|
|
28077
28258
|
Popover,
|
|
28078
28259
|
{
|
|
28079
28260
|
onOpenChange: (open) => {
|
|
@@ -28082,7 +28263,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
28082
28263
|
}
|
|
28083
28264
|
},
|
|
28084
28265
|
children: [
|
|
28085
|
-
/* @__PURE__ */ jsx31(PopoverTrigger, { asChild: true, children: /* @__PURE__ */
|
|
28266
|
+
/* @__PURE__ */ jsx31(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs18(
|
|
28086
28267
|
Button,
|
|
28087
28268
|
{
|
|
28088
28269
|
type: "button",
|
|
@@ -28092,7 +28273,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
28092
28273
|
disabled: previewMode,
|
|
28093
28274
|
children: [
|
|
28094
28275
|
/* @__PURE__ */ jsx31(
|
|
28095
|
-
|
|
28276
|
+
SettingsLinedIcon,
|
|
28096
28277
|
{
|
|
28097
28278
|
"aria-hidden": "true",
|
|
28098
28279
|
width: 16,
|
|
@@ -28110,61 +28291,76 @@ var AgentGUIConversationRailPane = memo(
|
|
|
28110
28291
|
align: "start",
|
|
28111
28292
|
className: "w-[300px] max-w-[calc(100vw-32px)] gap-3 p-1 text-xs",
|
|
28112
28293
|
"data-testid": "agent-gui-config-menu",
|
|
28113
|
-
children: /* @__PURE__ */
|
|
28114
|
-
/* @__PURE__ */
|
|
28115
|
-
/* @__PURE__ */
|
|
28116
|
-
|
|
28117
|
-
|
|
28294
|
+
children: /* @__PURE__ */ jsxs18("div", { className: "flex min-w-0 flex-col gap-3", children: [
|
|
28295
|
+
slashStatusLimits.length > 0 ? /* @__PURE__ */ jsxs18(Fragment9, { children: [
|
|
28296
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex min-w-0 flex-col gap-2 p-2", children: [
|
|
28297
|
+
/* @__PURE__ */ jsx31("span", { className: "text-[13px] font-semibold leading-4", children: labels.slashStatusLimits }),
|
|
28298
|
+
slashStatusLimits.map((limit) => /* @__PURE__ */ jsx31(
|
|
28299
|
+
AgentUsageMeter,
|
|
28300
|
+
{
|
|
28301
|
+
label: limit.label,
|
|
28302
|
+
value: `${limit.value}${limit.reset ? ` (${limit.reset})` : ""}`,
|
|
28303
|
+
percent: typeof limit.percentRemaining === "number" && Number.isFinite(limit.percentRemaining) ? limit.percentRemaining : null
|
|
28304
|
+
},
|
|
28305
|
+
limit.id
|
|
28306
|
+
))
|
|
28307
|
+
] }),
|
|
28308
|
+
/* @__PURE__ */ jsx31("div", { className: "px-2", children: /* @__PURE__ */ jsx31("span", { className: "block h-px bg-[var(--border-1)]" }) })
|
|
28309
|
+
] }) : null,
|
|
28310
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex min-w-0 flex-col gap-1", children: [
|
|
28311
|
+
/* @__PURE__ */ jsxs18(
|
|
28312
|
+
"button",
|
|
28118
28313
|
{
|
|
28119
|
-
|
|
28120
|
-
|
|
28121
|
-
|
|
28122
|
-
|
|
28123
|
-
|
|
28124
|
-
|
|
28125
|
-
|
|
28126
|
-
|
|
28127
|
-
|
|
28128
|
-
|
|
28129
|
-
|
|
28130
|
-
|
|
28131
|
-
|
|
28132
|
-
|
|
28133
|
-
|
|
28134
|
-
|
|
28135
|
-
|
|
28136
|
-
|
|
28137
|
-
|
|
28138
|
-
|
|
28139
|
-
|
|
28140
|
-
|
|
28314
|
+
type: "button",
|
|
28315
|
+
"data-testid": "agent-gui-config-settings",
|
|
28316
|
+
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]",
|
|
28317
|
+
disabled: previewMode,
|
|
28318
|
+
onClick: () => onOpenAgentSettings(),
|
|
28319
|
+
children: [
|
|
28320
|
+
/* @__PURE__ */ jsx31(
|
|
28321
|
+
SettingsLinedIcon,
|
|
28322
|
+
{
|
|
28323
|
+
"aria-hidden": "true",
|
|
28324
|
+
width: 16,
|
|
28325
|
+
height: 16
|
|
28326
|
+
}
|
|
28327
|
+
),
|
|
28328
|
+
/* @__PURE__ */ jsx31("span", { children: labels.agentSettingsMenu })
|
|
28329
|
+
]
|
|
28330
|
+
}
|
|
28331
|
+
),
|
|
28332
|
+
/* @__PURE__ */ jsxs18(
|
|
28333
|
+
"button",
|
|
28334
|
+
{
|
|
28335
|
+
type: "button",
|
|
28336
|
+
"data-testid": "agent-gui-config-env-setup",
|
|
28337
|
+
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]",
|
|
28338
|
+
disabled: previewMode,
|
|
28339
|
+
onClick: () => onOpenAgentEnvSetup(),
|
|
28340
|
+
children: [
|
|
28341
|
+
/* @__PURE__ */ jsx31(Wrench, { "aria-hidden": "true", size: 16, strokeWidth: 1.8 }),
|
|
28342
|
+
/* @__PURE__ */ jsx31("span", { children: labels.agentEnvSetup })
|
|
28343
|
+
]
|
|
28344
|
+
}
|
|
28345
|
+
)
|
|
28346
|
+
] })
|
|
28141
28347
|
] })
|
|
28142
28348
|
}
|
|
28143
28349
|
)
|
|
28144
28350
|
]
|
|
28145
28351
|
}
|
|
28146
|
-
)
|
|
28147
|
-
|
|
28352
|
+
) }),
|
|
28353
|
+
renderSidebarFooter ? /* @__PURE__ */ jsx31(
|
|
28354
|
+
"div",
|
|
28148
28355
|
{
|
|
28149
|
-
|
|
28150
|
-
|
|
28151
|
-
|
|
28152
|
-
|
|
28153
|
-
|
|
28154
|
-
|
|
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
|
-
]
|
|
28356
|
+
className: "shrink-0 px-2 py-1.5",
|
|
28357
|
+
"data-testid": "agent-gui-sidebar-footer-slot",
|
|
28358
|
+
children: renderSidebarFooter({
|
|
28359
|
+
currentUserId,
|
|
28360
|
+
activeConversation
|
|
28361
|
+
})
|
|
28166
28362
|
}
|
|
28167
|
-
)
|
|
28363
|
+
) : null,
|
|
28168
28364
|
/* @__PURE__ */ jsx31(
|
|
28169
28365
|
ConfirmationDialog,
|
|
28170
28366
|
{
|
|
@@ -28249,7 +28445,23 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28249
28445
|
AGENT_GUI_CONVERSATION_RAIL_SECTION_PAGE_SIZE
|
|
28250
28446
|
);
|
|
28251
28447
|
const visibleItemCount = isSectionCollapsed ? 0 : Math.min(visibleItemLimit, section.items.length);
|
|
28252
|
-
const visibleItems =
|
|
28448
|
+
const visibleItems = useMemo10(() => {
|
|
28449
|
+
if (isSectionCollapsed) {
|
|
28450
|
+
return [];
|
|
28451
|
+
}
|
|
28452
|
+
const baseItems = section.items.slice(0, visibleItemCount);
|
|
28453
|
+
const activeId = activeConversationId?.trim() ?? "";
|
|
28454
|
+
if (!activeId || baseItems.some((item) => item.id === activeId)) {
|
|
28455
|
+
return baseItems;
|
|
28456
|
+
}
|
|
28457
|
+
const activeItem = section.items.find((item) => item.id === activeId);
|
|
28458
|
+
return activeItem ? [...baseItems, activeItem] : baseItems;
|
|
28459
|
+
}, [
|
|
28460
|
+
activeConversationId,
|
|
28461
|
+
isSectionCollapsed,
|
|
28462
|
+
section.items,
|
|
28463
|
+
visibleItemCount
|
|
28464
|
+
]);
|
|
28253
28465
|
const canShowMore = !isSectionCollapsed && (visibleItemCount < section.items.length || sectionHasMore);
|
|
28254
28466
|
const canShowLess = !isSectionCollapsed && visibleItemCount > AGENT_GUI_CONVERSATION_RAIL_SECTION_PAGE_SIZE;
|
|
28255
28467
|
const showMoreConversations = useCallback10(() => {
|
|
@@ -28288,15 +28500,15 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28288
28500
|
source: "unscoped_section"
|
|
28289
28501
|
});
|
|
28290
28502
|
}, [onCreateConversation, projectPath]);
|
|
28291
|
-
return /* @__PURE__ */
|
|
28503
|
+
return /* @__PURE__ */ jsxs18(
|
|
28292
28504
|
"section",
|
|
28293
28505
|
{
|
|
28294
28506
|
className: AgentGUINode_styles_default.conversationSection,
|
|
28295
28507
|
"data-collapsed": isSectionCollapsed,
|
|
28296
28508
|
"data-kind": section.kind,
|
|
28297
28509
|
children: [
|
|
28298
|
-
/* @__PURE__ */
|
|
28299
|
-
isProjectSection ? /* @__PURE__ */
|
|
28510
|
+
/* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.conversationSectionHeader, children: [
|
|
28511
|
+
isProjectSection ? /* @__PURE__ */ jsxs18(
|
|
28300
28512
|
"button",
|
|
28301
28513
|
{
|
|
28302
28514
|
type: "button",
|
|
@@ -28311,7 +28523,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28311
28523
|
className: AgentGUINode_styles_default.conversationSectionChevron
|
|
28312
28524
|
}
|
|
28313
28525
|
),
|
|
28314
|
-
/* @__PURE__ */
|
|
28526
|
+
/* @__PURE__ */ jsxs18("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: [
|
|
28315
28527
|
isSectionCollapsed ? /* @__PURE__ */ jsx31(
|
|
28316
28528
|
FolderIcon2,
|
|
28317
28529
|
{
|
|
@@ -28330,7 +28542,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28330
28542
|
]
|
|
28331
28543
|
}
|
|
28332
28544
|
) : /* @__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__ */
|
|
28545
|
+
canCreateConversationFromSection ? /* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.conversationSectionActions, children: [
|
|
28334
28546
|
previewMode ? /* @__PURE__ */ jsx31("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx31(
|
|
28335
28547
|
BareIconButton,
|
|
28336
28548
|
{
|
|
@@ -28341,7 +28553,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28341
28553
|
onClick: handleCreateConversation,
|
|
28342
28554
|
children: /* @__PURE__ */ jsx31(CreateChatIcon, { "aria-hidden": "true" })
|
|
28343
28555
|
}
|
|
28344
|
-
) }) : /* @__PURE__ */
|
|
28556
|
+
) }) : /* @__PURE__ */ jsxs18(Tooltip3, { children: [
|
|
28345
28557
|
/* @__PURE__ */ jsx31(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx31(
|
|
28346
28558
|
"span",
|
|
28347
28559
|
{
|
|
@@ -28369,7 +28581,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28369
28581
|
}
|
|
28370
28582
|
)
|
|
28371
28583
|
] }),
|
|
28372
|
-
projectPath ? /* @__PURE__ */
|
|
28584
|
+
projectPath ? /* @__PURE__ */ jsxs18(DropdownMenu, { children: [
|
|
28373
28585
|
previewMode ? /* @__PURE__ */ jsx31(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx31(
|
|
28374
28586
|
"span",
|
|
28375
28587
|
{
|
|
@@ -28384,7 +28596,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28384
28596
|
}
|
|
28385
28597
|
)
|
|
28386
28598
|
}
|
|
28387
|
-
) }) : /* @__PURE__ */
|
|
28599
|
+
) }) : /* @__PURE__ */ jsxs18(Tooltip3, { children: [
|
|
28388
28600
|
/* @__PURE__ */ jsx31(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx31(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx31(
|
|
28389
28601
|
"span",
|
|
28390
28602
|
{
|
|
@@ -28410,7 +28622,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28410
28622
|
}
|
|
28411
28623
|
)
|
|
28412
28624
|
] }),
|
|
28413
|
-
/* @__PURE__ */
|
|
28625
|
+
/* @__PURE__ */ jsxs18(
|
|
28414
28626
|
DropdownMenuContent,
|
|
28415
28627
|
{
|
|
28416
28628
|
align: "end",
|
|
@@ -28470,7 +28682,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28470
28682
|
}
|
|
28471
28683
|
)
|
|
28472
28684
|
] }) : null,
|
|
28473
|
-
!projectPath && section.kind === "conversations" && section.items.length > 0 ? /* @__PURE__ */
|
|
28685
|
+
!projectPath && section.kind === "conversations" && section.items.length > 0 ? /* @__PURE__ */ jsxs18(DropdownMenu, { children: [
|
|
28474
28686
|
previewMode ? /* @__PURE__ */ jsx31(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx31(
|
|
28475
28687
|
"span",
|
|
28476
28688
|
{
|
|
@@ -28485,7 +28697,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28485
28697
|
}
|
|
28486
28698
|
)
|
|
28487
28699
|
}
|
|
28488
|
-
) }) : /* @__PURE__ */
|
|
28700
|
+
) }) : /* @__PURE__ */ jsxs18(Tooltip3, { children: [
|
|
28489
28701
|
/* @__PURE__ */ jsx31(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx31(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx31(
|
|
28490
28702
|
"span",
|
|
28491
28703
|
{
|
|
@@ -28542,7 +28754,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28542
28754
|
{
|
|
28543
28755
|
className: AgentGUINode_styles_default.conversationSectionItems,
|
|
28544
28756
|
"aria-hidden": isSectionCollapsed ? "true" : void 0,
|
|
28545
|
-
children: /* @__PURE__ */
|
|
28757
|
+
children: /* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.conversationSectionItemsInner, children: [
|
|
28546
28758
|
!isSectionCollapsed && section.items.length === 0 ? /* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.conversationSectionEmpty, children: labels.emptyProjectConversations }) : null,
|
|
28547
28759
|
visibleItems.map((item) => /* @__PURE__ */ jsx31(
|
|
28548
28760
|
AgentGUIConversationRailItem,
|
|
@@ -28565,7 +28777,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
28565
28777
|
},
|
|
28566
28778
|
item.id
|
|
28567
28779
|
)),
|
|
28568
|
-
canShowMore || canShowLess ? /* @__PURE__ */
|
|
28780
|
+
canShowMore || canShowLess ? /* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.conversationSectionPagination, children: [
|
|
28569
28781
|
canShowMore ? /* @__PURE__ */ jsx31(
|
|
28570
28782
|
"button",
|
|
28571
28783
|
{
|
|
@@ -28638,7 +28850,7 @@ var AgentGUIConversationRailItem = memo(
|
|
|
28638
28850
|
const handleRequestDelete = useCallback10(() => {
|
|
28639
28851
|
onRequestDeleteConversation(item.id);
|
|
28640
28852
|
}, [item.id, onRequestDeleteConversation]);
|
|
28641
|
-
return /* @__PURE__ */
|
|
28853
|
+
return /* @__PURE__ */ jsxs18(
|
|
28642
28854
|
"div",
|
|
28643
28855
|
{
|
|
28644
28856
|
ref: setItemElement,
|
|
@@ -28649,14 +28861,14 @@ var AgentGUIConversationRailItem = memo(
|
|
|
28649
28861
|
"data-testid": `agent-gui-conversation-item-${item.id}`,
|
|
28650
28862
|
onMouseLeave: handleMouseLeave,
|
|
28651
28863
|
children: [
|
|
28652
|
-
/* @__PURE__ */
|
|
28864
|
+
/* @__PURE__ */ jsxs18(
|
|
28653
28865
|
"button",
|
|
28654
28866
|
{
|
|
28655
28867
|
type: "button",
|
|
28656
28868
|
className: AgentGUINode_styles_default.conversationSelect,
|
|
28657
28869
|
onClick: handleSelect,
|
|
28658
28870
|
children: [
|
|
28659
|
-
/* @__PURE__ */
|
|
28871
|
+
/* @__PURE__ */ jsxs18("span", { className: AgentGUINode_styles_default.conversationTitleRow, children: [
|
|
28660
28872
|
providerIconUrl ? /* @__PURE__ */ jsx31(
|
|
28661
28873
|
"span",
|
|
28662
28874
|
{
|
|
@@ -28687,7 +28899,7 @@ var AgentGUIConversationRailItem = memo(
|
|
|
28687
28899
|
},
|
|
28688
28900
|
children: /* @__PURE__ */ jsx31("span", { className: AgentGUINode_styles_default.conversationDeleteConfirmText, children: labels.deleteSessionConfirm })
|
|
28689
28901
|
}
|
|
28690
|
-
) : /* @__PURE__ */
|
|
28902
|
+
) : /* @__PURE__ */ jsxs18(Fragment9, { children: [
|
|
28691
28903
|
onOpenConversationWindow ? /* @__PURE__ */ jsx31(
|
|
28692
28904
|
BareIconButton,
|
|
28693
28905
|
{
|
|
@@ -28772,9 +28984,9 @@ function AgentGUIProjectRailHeader({
|
|
|
28772
28984
|
selectProjectDirectory
|
|
28773
28985
|
]
|
|
28774
28986
|
);
|
|
28775
|
-
return /* @__PURE__ */
|
|
28987
|
+
return /* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.projectRailHeader, children: [
|
|
28776
28988
|
/* @__PURE__ */ jsx31("div", { className: AgentGUINode_styles_default.projectRailTitle, children: /* @__PURE__ */ jsx31("span", { children: workspaceUserProjectI18n.tFirst(["projectSelect.projectLabel"]) }) }),
|
|
28777
|
-
/* @__PURE__ */
|
|
28989
|
+
/* @__PURE__ */ jsxs18("div", { className: AgentGUINode_styles_default.projectRailAddProject, children: [
|
|
28778
28990
|
/* @__PURE__ */ jsx31(
|
|
28779
28991
|
WorkspaceUserProjectSelect2,
|
|
28780
28992
|
{
|
|
@@ -28848,7 +29060,7 @@ var AgentGUIConversationTimelinePane = memo(
|
|
|
28848
29060
|
labels
|
|
28849
29061
|
}) {
|
|
28850
29062
|
"use memo";
|
|
28851
|
-
return /* @__PURE__ */
|
|
29063
|
+
return /* @__PURE__ */ jsxs18(Fragment9, { children: [
|
|
28852
29064
|
isLoadingOlderMessages && !isLoading ? /* @__PURE__ */ jsx31(
|
|
28853
29065
|
"div",
|
|
28854
29066
|
{
|
|
@@ -29069,7 +29281,7 @@ import {
|
|
|
29069
29281
|
useState as useState13
|
|
29070
29282
|
} from "react";
|
|
29071
29283
|
import { createPortal as createPortal4 } from "react-dom";
|
|
29072
|
-
import { Fragment as Fragment10, jsx as jsx32, jsxs as
|
|
29284
|
+
import { Fragment as Fragment10, jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
29073
29285
|
var POPOVER_MIN_VIEWPORT_INSET_PX = 16;
|
|
29074
29286
|
var POPOVER_DEFAULT_WIDTH_PX = 260;
|
|
29075
29287
|
function dockAgentProbeLineKey(line) {
|
|
@@ -29079,9 +29291,9 @@ function renderDockAgentProbeLine(line) {
|
|
|
29079
29291
|
if (typeof line === "string") {
|
|
29080
29292
|
return line;
|
|
29081
29293
|
}
|
|
29082
|
-
return /* @__PURE__ */
|
|
29294
|
+
return /* @__PURE__ */ jsxs19(Fragment10, { children: [
|
|
29083
29295
|
line.primary,
|
|
29084
|
-
line.secondary ? /* @__PURE__ */
|
|
29296
|
+
line.secondary ? /* @__PURE__ */ jsxs19(Fragment10, { children: [
|
|
29085
29297
|
" ",
|
|
29086
29298
|
/* @__PURE__ */ jsx32("span", { className: "desktop-dock-popup__agent-status-secondary", children: line.secondary })
|
|
29087
29299
|
] }) : null
|
|
@@ -29179,7 +29391,7 @@ function AgentProbeInfoPopover({
|
|
|
29179
29391
|
children: /* @__PURE__ */ jsx32("ul", { className: "desktop-dock-popup__agent-info-list", children: lines.map((line) => {
|
|
29180
29392
|
const label = getDockAgentProbeLineLabel(line);
|
|
29181
29393
|
const valueText = formatDockAgentProbeLineText(line);
|
|
29182
|
-
return /* @__PURE__ */
|
|
29394
|
+
return /* @__PURE__ */ jsxs19(
|
|
29183
29395
|
"li",
|
|
29184
29396
|
{
|
|
29185
29397
|
className: "desktop-dock-popup__agent-info-item",
|
|
@@ -29201,7 +29413,7 @@ function AgentProbeInfoPopover({
|
|
|
29201
29413
|
}) })
|
|
29202
29414
|
}
|
|
29203
29415
|
);
|
|
29204
|
-
return /* @__PURE__ */
|
|
29416
|
+
return /* @__PURE__ */ jsxs19(
|
|
29205
29417
|
"div",
|
|
29206
29418
|
{
|
|
29207
29419
|
ref: anchorRef,
|
|
@@ -29374,7 +29586,7 @@ function getAgentHostManagedToolchainAgentByName(name) {
|
|
|
29374
29586
|
}
|
|
29375
29587
|
|
|
29376
29588
|
// agent-gui/agentGuiNode/AgentGUINode.tsx
|
|
29377
|
-
import { jsx as jsx33, jsxs as
|
|
29589
|
+
import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
29378
29590
|
var workspaceFileReferenceLocaleKeyByPickerKey = {
|
|
29379
29591
|
"actions.cancel": "common.cancel",
|
|
29380
29592
|
"referencePicker.confirm": "agentHost.agentGui.referencePicker.confirm",
|
|
@@ -29603,7 +29815,7 @@ function composerOverridesByAgentTargetIdEqual(left, right) {
|
|
|
29603
29815
|
return true;
|
|
29604
29816
|
}
|
|
29605
29817
|
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;
|
|
29818
|
+
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.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
29819
|
}
|
|
29608
29820
|
var AgentGUINode = memo2(function AgentGUINode2({
|
|
29609
29821
|
nodeId,
|
|
@@ -29632,6 +29844,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
29632
29844
|
onAgentProviderLogin,
|
|
29633
29845
|
providerTargets,
|
|
29634
29846
|
providerTargetsLoading = false,
|
|
29847
|
+
renderSidebarFooter,
|
|
29635
29848
|
comingSoonProviders,
|
|
29636
29849
|
providerReadinessGates = null,
|
|
29637
29850
|
defaultProviderTargetId = null,
|
|
@@ -30051,6 +30264,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
30051
30264
|
conversations: t("agentHost.agentGui.conversations"),
|
|
30052
30265
|
newConversation: t("agentHost.agentGui.newConversation"),
|
|
30053
30266
|
agentConfig: t("agentHost.agentGui.agentConfig"),
|
|
30267
|
+
agentSettingsMenu: t("agentHost.agentGui.agentSettingsMenu"),
|
|
30054
30268
|
agentEnvSetup: t("agentHost.agentGui.agentEnvSetup"),
|
|
30055
30269
|
noConversations: t("agentHost.agentGui.noConversations"),
|
|
30056
30270
|
emptyProjectConversations: t(
|
|
@@ -30542,7 +30756,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
30542
30756
|
className: "size-full bg-transparent",
|
|
30543
30757
|
bodyClassName: `${AgentGUINode_styles_default.shell} nodrag size-full min-h-0 min-w-0 !bg-transparent p-0`,
|
|
30544
30758
|
hideHeader: embedded,
|
|
30545
|
-
titleAccessory: /* @__PURE__ */
|
|
30759
|
+
titleAccessory: /* @__PURE__ */ jsxs20("span", { className: "inline-flex flex-none items-center gap-1", children: [
|
|
30546
30760
|
/* @__PURE__ */ jsx33(
|
|
30547
30761
|
AgentProbeInfoPopover,
|
|
30548
30762
|
{
|
|
@@ -30589,6 +30803,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
30589
30803
|
AgentGUINodeView,
|
|
30590
30804
|
{
|
|
30591
30805
|
viewModel,
|
|
30806
|
+
renderSidebarFooter,
|
|
30592
30807
|
actions: viewActions,
|
|
30593
30808
|
isActive,
|
|
30594
30809
|
composerFocusRequestSequence,
|
|
@@ -30683,6 +30898,7 @@ export {
|
|
|
30683
30898
|
createAgentQueuedPromptRuntime,
|
|
30684
30899
|
createLocalAgentGUIProviderTarget,
|
|
30685
30900
|
createLocalAgentGUIProviderTargets,
|
|
30901
|
+
createSharedAgentGUIProviderTarget,
|
|
30686
30902
|
getAgentActivityRuntime,
|
|
30687
30903
|
getAgentCustomMentionKind,
|
|
30688
30904
|
getOptionalAgentActivityRuntime,
|