@tutti-os/agent-gui 0.0.42 → 0.0.44
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 +4 -4
- package/dist/agent-message-center/index.js +4 -4
- package/dist/app/renderer/agentactivity.css +17 -3
- package/dist/{chunk-XTFRVACA.js → chunk-25VZHG6G.js} +22 -7
- package/dist/chunk-25VZHG6G.js.map +1 -0
- package/dist/{chunk-3WZWZHAJ.js → chunk-64OSXJRE.js} +2 -2
- package/dist/{chunk-3PVSIL3H.js → chunk-GMLK2EFU.js} +4 -4
- package/dist/{chunk-LKOPLDPM.js → chunk-IGXC7NRW.js} +51 -3
- package/dist/chunk-IGXC7NRW.js.map +1 -0
- package/dist/{chunk-42WP3P5C.js → chunk-J4MU53PH.js} +2 -2
- package/dist/{chunk-5U4SXENC.js → chunk-SF2PE7M6.js} +16 -5
- package/dist/{chunk-5U4SXENC.js.map → chunk-SF2PE7M6.js.map} +1 -1
- package/dist/{chunk-5LVFYNIP.js → chunk-ZORA4UAT.js} +2 -2
- package/dist/{chunk-OLZP2EFK.js → chunk-ZTQKIJ5J.js} +2 -2
- package/dist/context-mention-palette/index.d.ts +2 -1
- package/dist/context-mention-palette/index.js +5 -5
- package/dist/i18n/index.d.ts +50 -2
- package/dist/i18n/index.js +1 -1
- package/dist/index.js +1007 -450
- package/dist/index.js.map +1 -1
- package/dist/workspace-agent-generated-files.js +2 -2
- package/package.json +12 -12
- package/dist/chunk-LKOPLDPM.js.map +0 -1
- package/dist/chunk-XTFRVACA.js.map +0 -1
- /package/dist/{chunk-3WZWZHAJ.js.map → chunk-64OSXJRE.js.map} +0 -0
- /package/dist/{chunk-3PVSIL3H.js.map → chunk-GMLK2EFU.js.map} +0 -0
- /package/dist/{chunk-42WP3P5C.js.map → chunk-J4MU53PH.js.map} +0 -0
- /package/dist/{chunk-5LVFYNIP.js.map → chunk-ZORA4UAT.js.map} +0 -0
- /package/dist/{chunk-OLZP2EFK.js.map → chunk-ZTQKIJ5J.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
AgentInteractivePromptSurface,
|
|
24
24
|
approvalOptionDisplayLabel,
|
|
25
25
|
formatAgentSessionMentionText
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-GMLK2EFU.js";
|
|
27
27
|
import {
|
|
28
28
|
PLAN_IMPLEMENTATION_ACTION_FEEDBACK,
|
|
29
29
|
PLAN_IMPLEMENTATION_ACTION_IMPLEMENT,
|
|
@@ -48,13 +48,13 @@ import {
|
|
|
48
48
|
skillDescriptionForDisplay,
|
|
49
49
|
skillTriggerForPrefix,
|
|
50
50
|
useProjectedAgentConversation
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-25VZHG6G.js";
|
|
52
52
|
import {
|
|
53
53
|
AgentMessageMarkdown,
|
|
54
54
|
ZoomableImage,
|
|
55
55
|
cn,
|
|
56
56
|
resolveWorkspaceLinkAction
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-ZTQKIJ5J.js";
|
|
58
58
|
import {
|
|
59
59
|
AGENT_MENTION_FILTER_TAB_ORDER,
|
|
60
60
|
AgentFileMentionPalette,
|
|
@@ -62,7 +62,7 @@ import {
|
|
|
62
62
|
DEFAULT_AGENT_MENTION_FILTER,
|
|
63
63
|
agentMentionItemKey,
|
|
64
64
|
preloadAgentMentionBrowse
|
|
65
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-SF2PE7M6.js";
|
|
66
66
|
import {
|
|
67
67
|
WORKSPACE_AGENT_ACTIVITY_RUNTIME_SESSION_ORIGIN,
|
|
68
68
|
buildWorkspaceAgentActivityListViewModel,
|
|
@@ -72,13 +72,13 @@ import {
|
|
|
72
72
|
isWorkspaceAgentUntitledTask,
|
|
73
73
|
mergeWorkspaceAgentActivityDurableAndOverlayMessages,
|
|
74
74
|
selectWorkspaceAgentActivityOverlayMessages
|
|
75
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-ZORA4UAT.js";
|
|
76
76
|
import {
|
|
77
77
|
MANAGED_AGENT_ICON_FALLBACK_URL,
|
|
78
78
|
MANAGED_AGENT_ICON_URLS,
|
|
79
79
|
Spinner,
|
|
80
80
|
normalizeManagedAgentProvider
|
|
81
|
-
} from "./chunk-
|
|
81
|
+
} from "./chunk-J4MU53PH.js";
|
|
82
82
|
import "./chunk-MTFSQWZ6.js";
|
|
83
83
|
import {
|
|
84
84
|
resolveWorkspaceAgentSessionSortTimeUnixMs
|
|
@@ -89,7 +89,7 @@ import {
|
|
|
89
89
|
mentionItemToAttrs,
|
|
90
90
|
normalizeAgentSessionMentionTitle,
|
|
91
91
|
parseMentionItemFromHref
|
|
92
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-64OSXJRE.js";
|
|
93
93
|
import "./chunk-Y35GDLP2.js";
|
|
94
94
|
import {
|
|
95
95
|
AgentActivityHostProvider,
|
|
@@ -118,7 +118,7 @@ import {
|
|
|
118
118
|
getActiveUiLanguage,
|
|
119
119
|
translate,
|
|
120
120
|
useTranslation
|
|
121
|
-
} from "./chunk-
|
|
121
|
+
} from "./chunk-IGXC7NRW.js";
|
|
122
122
|
import "./chunk-LUGELG5V.js";
|
|
123
123
|
import "./chunk-PJP5BUU6.js";
|
|
124
124
|
|
|
@@ -13232,6 +13232,72 @@ function useAgentGUINodeController({
|
|
|
13232
13232
|
agentActivityRuntime,
|
|
13233
13233
|
removeConversations
|
|
13234
13234
|
]);
|
|
13235
|
+
const finalizeConversationBatchDeletion = useCallback4(
|
|
13236
|
+
(targetIds) => {
|
|
13237
|
+
for (const id of targetIds) {
|
|
13238
|
+
activatedConversationIdsRef.current.delete(id);
|
|
13239
|
+
deleteAgentSessionView(sessionViewRef(id));
|
|
13240
|
+
}
|
|
13241
|
+
if (conversationListQuery) {
|
|
13242
|
+
for (const id of targetIds) {
|
|
13243
|
+
markLocalDeletedAgentGUIConversation({
|
|
13244
|
+
query: conversationListQuery,
|
|
13245
|
+
agentSessionId: id
|
|
13246
|
+
});
|
|
13247
|
+
}
|
|
13248
|
+
scheduleAgentGUIConversationListProjection(
|
|
13249
|
+
conversationListQuery,
|
|
13250
|
+
"local-delete"
|
|
13251
|
+
);
|
|
13252
|
+
}
|
|
13253
|
+
setTransientConversation(
|
|
13254
|
+
(current) => current && targetIds.has(current.id) ? null : current
|
|
13255
|
+
);
|
|
13256
|
+
setDraftBySessionId(
|
|
13257
|
+
(current) => omitConversationLocalState(current, targetIds)
|
|
13258
|
+
);
|
|
13259
|
+
setQueuedPromptsBySessionId(
|
|
13260
|
+
(current) => omitConversationLocalState(current, targetIds)
|
|
13261
|
+
);
|
|
13262
|
+
setSendNextQueuedPromptIdBySessionId(
|
|
13263
|
+
(current) => omitConversationLocalState(current, targetIds)
|
|
13264
|
+
);
|
|
13265
|
+
setFailedQueuedPromptIdBySessionId(
|
|
13266
|
+
(current) => omitConversationLocalState(current, targetIds)
|
|
13267
|
+
);
|
|
13268
|
+
setQueuedPromptRetryBlockBySessionId(
|
|
13269
|
+
(current) => omitConversationLocalState(current, targetIds)
|
|
13270
|
+
);
|
|
13271
|
+
const nextConversations = conversationsRef.current.filter(
|
|
13272
|
+
(conversation2) => !targetIds.has(conversation2.id)
|
|
13273
|
+
);
|
|
13274
|
+
const currentActiveId = activeConversationIdRef.current;
|
|
13275
|
+
if (currentActiveId && targetIds.has(currentActiveId)) {
|
|
13276
|
+
const nextActive = nextConversations[0]?.id ?? null;
|
|
13277
|
+
if (nextActive) {
|
|
13278
|
+
markSelectedConversationDetailPending(nextActive);
|
|
13279
|
+
setIntent({ tag: "active", id: nextActive });
|
|
13280
|
+
} else {
|
|
13281
|
+
clearSelectedConversationNotFoundRetry();
|
|
13282
|
+
setIsLoadingMessages(false);
|
|
13283
|
+
setIntent({ tag: "home" });
|
|
13284
|
+
}
|
|
13285
|
+
activeConversationIdRef.current = nextActive;
|
|
13286
|
+
setActiveConversationId(nextActive);
|
|
13287
|
+
persistActiveConversation(nextActive);
|
|
13288
|
+
}
|
|
13289
|
+
removeConversations([...targetIds]);
|
|
13290
|
+
},
|
|
13291
|
+
[
|
|
13292
|
+
conversationListQuery,
|
|
13293
|
+
clearSelectedConversationNotFoundRetry,
|
|
13294
|
+
markSelectedConversationDetailPending,
|
|
13295
|
+
persistActiveConversation,
|
|
13296
|
+
sessionViewRef,
|
|
13297
|
+
setTransientConversation,
|
|
13298
|
+
removeConversations
|
|
13299
|
+
]
|
|
13300
|
+
);
|
|
13235
13301
|
const confirmDeleteProjectConversations = useCallback4(
|
|
13236
13302
|
(path) => {
|
|
13237
13303
|
const normalizedPath = normalizeProjectConversationPath(path);
|
|
@@ -13290,59 +13356,7 @@ function useAgentGUINodeController({
|
|
|
13290
13356
|
});
|
|
13291
13357
|
})
|
|
13292
13358
|
).then(() => {
|
|
13293
|
-
|
|
13294
|
-
activatedConversationIdsRef.current.delete(id);
|
|
13295
|
-
deleteAgentSessionView(sessionViewRef(id));
|
|
13296
|
-
}
|
|
13297
|
-
if (conversationListQuery) {
|
|
13298
|
-
for (const id of targetIds) {
|
|
13299
|
-
markLocalDeletedAgentGUIConversation({
|
|
13300
|
-
query: conversationListQuery,
|
|
13301
|
-
agentSessionId: id
|
|
13302
|
-
});
|
|
13303
|
-
}
|
|
13304
|
-
scheduleAgentGUIConversationListProjection(
|
|
13305
|
-
conversationListQuery,
|
|
13306
|
-
"local-delete"
|
|
13307
|
-
);
|
|
13308
|
-
}
|
|
13309
|
-
setTransientConversation(
|
|
13310
|
-
(current) => current && targetIds.has(current.id) ? null : current
|
|
13311
|
-
);
|
|
13312
|
-
setDraftBySessionId(
|
|
13313
|
-
(current) => omitConversationLocalState(current, targetIds)
|
|
13314
|
-
);
|
|
13315
|
-
setQueuedPromptsBySessionId(
|
|
13316
|
-
(current) => omitConversationLocalState(current, targetIds)
|
|
13317
|
-
);
|
|
13318
|
-
setSendNextQueuedPromptIdBySessionId(
|
|
13319
|
-
(current) => omitConversationLocalState(current, targetIds)
|
|
13320
|
-
);
|
|
13321
|
-
setFailedQueuedPromptIdBySessionId(
|
|
13322
|
-
(current) => omitConversationLocalState(current, targetIds)
|
|
13323
|
-
);
|
|
13324
|
-
setQueuedPromptRetryBlockBySessionId(
|
|
13325
|
-
(current) => omitConversationLocalState(current, targetIds)
|
|
13326
|
-
);
|
|
13327
|
-
const nextConversations = conversationsRef.current.filter(
|
|
13328
|
-
(conversation2) => !targetIds.has(conversation2.id)
|
|
13329
|
-
);
|
|
13330
|
-
const currentActiveId = activeConversationIdRef.current;
|
|
13331
|
-
if (currentActiveId && targetIds.has(currentActiveId)) {
|
|
13332
|
-
const nextActive = nextConversations[0]?.id ?? null;
|
|
13333
|
-
if (nextActive) {
|
|
13334
|
-
markSelectedConversationDetailPending(nextActive);
|
|
13335
|
-
setIntent({ tag: "active", id: nextActive });
|
|
13336
|
-
} else {
|
|
13337
|
-
clearSelectedConversationNotFoundRetry();
|
|
13338
|
-
setIsLoadingMessages(false);
|
|
13339
|
-
setIntent({ tag: "home" });
|
|
13340
|
-
}
|
|
13341
|
-
activeConversationIdRef.current = nextActive;
|
|
13342
|
-
setActiveConversationId(nextActive);
|
|
13343
|
-
persistActiveConversation(nextActive);
|
|
13344
|
-
}
|
|
13345
|
-
removeConversations([...targetIds]);
|
|
13359
|
+
finalizeConversationBatchDeletion(targetIds);
|
|
13346
13360
|
setPendingDeleteProjectConversations(null);
|
|
13347
13361
|
}).catch((error) => {
|
|
13348
13362
|
const message = getAgentGUIErrorMessage(error);
|
|
@@ -13376,6 +13390,7 @@ function useAgentGUINodeController({
|
|
|
13376
13390
|
agentActivityRuntime,
|
|
13377
13391
|
conversationListQuery,
|
|
13378
13392
|
clearSelectedConversationNotFoundRetry,
|
|
13393
|
+
finalizeConversationBatchDeletion,
|
|
13379
13394
|
isDeletingProjectConversations,
|
|
13380
13395
|
markSelectedConversationDetailPending,
|
|
13381
13396
|
pendingDeleteProjectConversations,
|
|
@@ -13386,6 +13401,78 @@ function useAgentGUINodeController({
|
|
|
13386
13401
|
workspaceId
|
|
13387
13402
|
]
|
|
13388
13403
|
);
|
|
13404
|
+
const confirmDeleteConversations = useCallback4(
|
|
13405
|
+
(agentSessionIds) => {
|
|
13406
|
+
if (isDeletingProjectConversations) {
|
|
13407
|
+
return;
|
|
13408
|
+
}
|
|
13409
|
+
const targetIds = new Set(
|
|
13410
|
+
agentSessionIds.map((id) => id.trim()).filter((id) => id !== "")
|
|
13411
|
+
);
|
|
13412
|
+
const targetConversations = conversationsRef.current.filter(
|
|
13413
|
+
(conversation2) => targetIds.has(conversation2.id)
|
|
13414
|
+
);
|
|
13415
|
+
if (targetConversations.length === 0) {
|
|
13416
|
+
return;
|
|
13417
|
+
}
|
|
13418
|
+
setIsDeletingProjectConversations(true);
|
|
13419
|
+
setDetailError(null);
|
|
13420
|
+
setListError(null);
|
|
13421
|
+
const activeDeletedConversationId = activeConversationIdRef.current;
|
|
13422
|
+
if (activeDeletedConversationId && targetIds.has(activeDeletedConversationId)) {
|
|
13423
|
+
clearSelectedConversationNotFoundRetry();
|
|
13424
|
+
setIsLoadingMessages(true);
|
|
13425
|
+
setAgentSessionViewMessagesLoading(
|
|
13426
|
+
sessionViewRef(activeDeletedConversationId),
|
|
13427
|
+
true
|
|
13428
|
+
);
|
|
13429
|
+
}
|
|
13430
|
+
void Promise.all(
|
|
13431
|
+
targetConversations.map(async (conversation2) => {
|
|
13432
|
+
await activation.unactivate(conversation2.id);
|
|
13433
|
+
await agentActivityRuntime.deleteSession({
|
|
13434
|
+
workspaceId,
|
|
13435
|
+
agentSessionId: conversation2.id
|
|
13436
|
+
});
|
|
13437
|
+
})
|
|
13438
|
+
).then(() => {
|
|
13439
|
+
finalizeConversationBatchDeletion(targetIds);
|
|
13440
|
+
}).catch((error) => {
|
|
13441
|
+
const message = getAgentGUIErrorMessage(error);
|
|
13442
|
+
reportAgentGUIRuntimeError({
|
|
13443
|
+
error,
|
|
13444
|
+
phase: "delete_conversation",
|
|
13445
|
+
provider: dataRef.current.provider,
|
|
13446
|
+
runtime: agentActivityRuntime,
|
|
13447
|
+
workspaceId,
|
|
13448
|
+
context: {
|
|
13449
|
+
conversationCount: targetConversations.length
|
|
13450
|
+
}
|
|
13451
|
+
});
|
|
13452
|
+
setListError(message);
|
|
13453
|
+
toast.error(message);
|
|
13454
|
+
setDetailError(message);
|
|
13455
|
+
if (activeDeletedConversationId && activeConversationIdRef.current === activeDeletedConversationId) {
|
|
13456
|
+
setIsLoadingMessages(false);
|
|
13457
|
+
setAgentSessionViewMessagesLoading(
|
|
13458
|
+
sessionViewRef(activeDeletedConversationId),
|
|
13459
|
+
false
|
|
13460
|
+
);
|
|
13461
|
+
}
|
|
13462
|
+
}).finally(() => {
|
|
13463
|
+
setIsDeletingProjectConversations(false);
|
|
13464
|
+
});
|
|
13465
|
+
},
|
|
13466
|
+
[
|
|
13467
|
+
activation,
|
|
13468
|
+
agentActivityRuntime,
|
|
13469
|
+
clearSelectedConversationNotFoundRetry,
|
|
13470
|
+
finalizeConversationBatchDeletion,
|
|
13471
|
+
isDeletingProjectConversations,
|
|
13472
|
+
sessionViewRef,
|
|
13473
|
+
workspaceId
|
|
13474
|
+
]
|
|
13475
|
+
);
|
|
13389
13476
|
const toggleConversationPinned = useCallback4(
|
|
13390
13477
|
(agentSessionId, pinned) => {
|
|
13391
13478
|
const normalizedAgentSessionId = agentSessionId.trim();
|
|
@@ -14064,6 +14151,9 @@ function useAgentGUINodeController({
|
|
|
14064
14151
|
const stableRequestDeleteProjectConversations = useStableControllerEventCallback(requestDeleteProjectConversations);
|
|
14065
14152
|
const stableCancelDeleteProjectConversations = useStableControllerEventCallback(cancelDeleteProjectConversations);
|
|
14066
14153
|
const stableConfirmDeleteProjectConversations = useStableControllerEventCallback(confirmDeleteProjectConversations);
|
|
14154
|
+
const stableConfirmDeleteConversations = useStableControllerEventCallback(
|
|
14155
|
+
confirmDeleteConversations
|
|
14156
|
+
);
|
|
14067
14157
|
const stableToggleConversationPinned = useStableControllerEventCallback(
|
|
14068
14158
|
toggleConversationPinned
|
|
14069
14159
|
);
|
|
@@ -14107,6 +14197,7 @@ function useAgentGUINodeController({
|
|
|
14107
14197
|
requestDeleteProjectConversations: stableRequestDeleteProjectConversations,
|
|
14108
14198
|
cancelDeleteProjectConversations: stableCancelDeleteProjectConversations,
|
|
14109
14199
|
confirmDeleteProjectConversations: stableConfirmDeleteProjectConversations,
|
|
14200
|
+
confirmDeleteConversations: stableConfirmDeleteConversations,
|
|
14110
14201
|
toggleConversationPinned: stableToggleConversationPinned,
|
|
14111
14202
|
requestDeleteConversation: stableRequestDeleteConversation,
|
|
14112
14203
|
retryActivation: stableRetryActivation,
|
|
@@ -14119,6 +14210,7 @@ function useAgentGUINodeController({
|
|
|
14119
14210
|
stableCancelDeleteConversation,
|
|
14120
14211
|
stableCancelDeleteProjectConversations,
|
|
14121
14212
|
stableConfirmDeleteConversation,
|
|
14213
|
+
stableConfirmDeleteConversations,
|
|
14122
14214
|
stableConfirmDeleteProjectConversations,
|
|
14123
14215
|
stableContinueInNewConversation,
|
|
14124
14216
|
stableCreateConversation,
|
|
@@ -14443,13 +14535,7 @@ import {
|
|
|
14443
14535
|
} from "react";
|
|
14444
14536
|
import { useSnapshot } from "valtio";
|
|
14445
14537
|
import { proxy as proxy2 } from "valtio/vanilla";
|
|
14446
|
-
import {
|
|
14447
|
-
ChevronRight as ChevronRight2,
|
|
14448
|
-
ExternalLink,
|
|
14449
|
-
Info,
|
|
14450
|
-
Settings,
|
|
14451
|
-
Wrench
|
|
14452
|
-
} from "lucide-react";
|
|
14538
|
+
import { ChevronRight as ChevronRight2, ExternalLink, Info as Info2, Wrench } from "lucide-react";
|
|
14453
14539
|
|
|
14454
14540
|
// app/renderer/components/ui/popover.tsx
|
|
14455
14541
|
import {
|
|
@@ -14583,6 +14669,30 @@ function UnavailableChatIcon(props) {
|
|
|
14583
14669
|
);
|
|
14584
14670
|
}
|
|
14585
14671
|
|
|
14672
|
+
// app/renderer/components/icons/EnvironmentLinedIcon.tsx
|
|
14673
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
14674
|
+
function EnvironmentLinedIcon(props) {
|
|
14675
|
+
"use memo";
|
|
14676
|
+
return /* @__PURE__ */ jsx15(
|
|
14677
|
+
"svg",
|
|
14678
|
+
{
|
|
14679
|
+
width: "24",
|
|
14680
|
+
height: "24",
|
|
14681
|
+
viewBox: "0 0 24 24",
|
|
14682
|
+
fill: "none",
|
|
14683
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
14684
|
+
...props,
|
|
14685
|
+
children: /* @__PURE__ */ jsx15(
|
|
14686
|
+
"path",
|
|
14687
|
+
{
|
|
14688
|
+
d: "M2.0094 19.0001C2.56169 19.0001 3.0094 19.4478 3.0094 20.0001C3.0094 20.5523 2.56169 21.0001 2.0094 21.0001H1.99964C1.44752 20.9999 0.999635 20.5522 0.999635 20.0001C0.999635 19.4479 1.44752 19.0002 1.99964 19.0001H2.0094ZM1.01624 15.8174C1.1173 15.2748 1.63961 14.9161 2.18225 15.0166C3.37336 15.2385 4.47004 15.8162 5.32679 16.6729C6.18355 17.5297 6.76118 18.6263 6.98304 19.8174C7.08384 20.3602 6.72504 20.8824 6.18226 20.9835C5.63962 21.084 5.11731 20.7253 5.01624 20.1827C4.86826 19.3888 4.48377 18.658 3.91272 18.087C3.34169 17.516 2.61086 17.1314 1.81702 16.9834C1.27446 16.8822 0.915501 16.3601 1.01624 15.8174ZM2.1051 11.0059C4.37989 11.2473 6.50315 12.2614 8.12074 13.8789C9.73833 15.4965 10.7524 17.6197 10.9938 19.8946C11.052 20.4438 10.6543 20.9359 10.1051 20.9942C9.55607 21.0523 9.06377 20.6546 9.0055 20.1055C8.81236 18.2857 8.00074 16.5871 6.70667 15.293C5.41262 13.999 3.71397 13.1873 1.89417 12.9942C1.34517 12.9357 0.947265 12.4436 1.00549 11.8946C1.06376 11.3455 1.55606 10.9478 2.1051 11.0059ZM19.9997 3C20.7952 3 21.5582 3.31641 22.1208 3.87891C22.6834 4.44152 22.9997 5.20436 22.9997 6.00001V18.0001C22.9997 18.7957 22.6834 19.5585 22.1208 20.1212C21.5582 20.6837 20.7952 21.0001 19.9997 21.0001H13.9996C13.4475 20.9999 12.9996 20.5522 12.9996 20.0001C12.9996 19.4479 13.4475 19.0002 13.9996 19.0001H19.9997C20.2648 19.0001 20.5192 18.8945 20.7067 18.7071C20.8942 18.5195 20.9997 18.2653 20.9997 18.0001V6.00001C20.9997 5.73479 20.8942 5.48051 20.7067 5.29298C20.5192 5.10555 20.2648 5.00001 19.9997 5.00001H3.99964C3.73455 5.0001 3.48006 5.10552 3.29261 5.29298C3.10518 5.4805 2.99964 5.73488 2.99964 6.00001V8.00002C2.99964 8.5523 2.55192 9.00002 1.99964 9.00002C1.44752 8.99983 0.999635 8.55218 0.999635 8.00002V6.00001C0.999635 5.20444 1.31605 4.4415 1.87854 3.87891C2.44107 3.31638 3.20412 3.0001 3.99964 3H19.9997Z",
|
|
14689
|
+
fill: "currentColor"
|
|
14690
|
+
}
|
|
14691
|
+
)
|
|
14692
|
+
}
|
|
14693
|
+
);
|
|
14694
|
+
}
|
|
14695
|
+
|
|
14586
14696
|
// app/renderer/components/StatusDot.tsx
|
|
14587
14697
|
import { StatusDot } from "@tutti-os/ui-system";
|
|
14588
14698
|
|
|
@@ -14932,7 +15042,7 @@ var styles = {
|
|
|
14932
15042
|
var RoomIssueNode_styles_default = styles;
|
|
14933
15043
|
|
|
14934
15044
|
// agent-gui/RoomIssueNode/TaskSearchField.tsx
|
|
14935
|
-
import { jsx as
|
|
15045
|
+
import { jsx as jsx16, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
14936
15046
|
function TaskSearchField({
|
|
14937
15047
|
ariaLabel,
|
|
14938
15048
|
className,
|
|
@@ -14952,7 +15062,7 @@ function TaskSearchField({
|
|
|
14952
15062
|
className: `${RoomIssueNode_styles_default.searchField} ${className ?? ""}`.trim(),
|
|
14953
15063
|
"data-has-value": searchInput.value ? "true" : "false",
|
|
14954
15064
|
children: [
|
|
14955
|
-
/* @__PURE__ */
|
|
15065
|
+
/* @__PURE__ */ jsx16(
|
|
14956
15066
|
Input,
|
|
14957
15067
|
{
|
|
14958
15068
|
type: "search",
|
|
@@ -14975,7 +15085,7 @@ function TaskSearchField({
|
|
|
14975
15085
|
"data-testid": dataTestId
|
|
14976
15086
|
}
|
|
14977
15087
|
),
|
|
14978
|
-
searchInput.value ? /* @__PURE__ */
|
|
15088
|
+
searchInput.value ? /* @__PURE__ */ jsx16(
|
|
14979
15089
|
"button",
|
|
14980
15090
|
{
|
|
14981
15091
|
type: "button",
|
|
@@ -14983,7 +15093,7 @@ function TaskSearchField({
|
|
|
14983
15093
|
"aria-label": clearAriaLabel ?? t("common.clear"),
|
|
14984
15094
|
onMouseDown: (event) => event.preventDefault(),
|
|
14985
15095
|
onClick: searchInput.clearValue,
|
|
14986
|
-
children: /* @__PURE__ */
|
|
15096
|
+
children: /* @__PURE__ */ jsx16(CloseLinedIcon, { "aria-hidden": "true" })
|
|
14987
15097
|
}
|
|
14988
15098
|
) : null
|
|
14989
15099
|
]
|
|
@@ -15022,7 +15132,7 @@ import {
|
|
|
15022
15132
|
useAnimation,
|
|
15023
15133
|
useReducedMotion
|
|
15024
15134
|
} from "framer-motion";
|
|
15025
|
-
import { jsx as
|
|
15135
|
+
import { jsx as jsx17, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
15026
15136
|
var CAST_VARIANTS = {
|
|
15027
15137
|
normal: { opacity: 1 },
|
|
15028
15138
|
animate: (custom) => ({
|
|
@@ -15090,7 +15200,7 @@ var CastIcon = forwardRef2(
|
|
|
15090
15200
|
},
|
|
15091
15201
|
[onMouseLeave, stopAnimation]
|
|
15092
15202
|
);
|
|
15093
|
-
return /* @__PURE__ */
|
|
15203
|
+
return /* @__PURE__ */ jsx17(
|
|
15094
15204
|
"div",
|
|
15095
15205
|
{
|
|
15096
15206
|
className: cn("inline-flex items-center justify-center", className),
|
|
@@ -15110,8 +15220,8 @@ var CastIcon = forwardRef2(
|
|
|
15110
15220
|
width: size,
|
|
15111
15221
|
xmlns: "http://www.w3.org/2000/svg",
|
|
15112
15222
|
children: [
|
|
15113
|
-
/* @__PURE__ */
|
|
15114
|
-
/* @__PURE__ */
|
|
15223
|
+
/* @__PURE__ */ jsx17("path", { d: "M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6" }),
|
|
15224
|
+
/* @__PURE__ */ jsx17(
|
|
15115
15225
|
motion.path,
|
|
15116
15226
|
{
|
|
15117
15227
|
animate: controls,
|
|
@@ -15120,7 +15230,7 @@ var CastIcon = forwardRef2(
|
|
|
15120
15230
|
variants: CAST_VARIANTS
|
|
15121
15231
|
}
|
|
15122
15232
|
),
|
|
15123
|
-
/* @__PURE__ */
|
|
15233
|
+
/* @__PURE__ */ jsx17(
|
|
15124
15234
|
motion.path,
|
|
15125
15235
|
{
|
|
15126
15236
|
animate: controls,
|
|
@@ -15129,7 +15239,7 @@ var CastIcon = forwardRef2(
|
|
|
15129
15239
|
variants: CAST_VARIANTS
|
|
15130
15240
|
}
|
|
15131
15241
|
),
|
|
15132
|
-
/* @__PURE__ */
|
|
15242
|
+
/* @__PURE__ */ jsx17(
|
|
15133
15243
|
motion.line,
|
|
15134
15244
|
{
|
|
15135
15245
|
animate: controls,
|
|
@@ -15179,7 +15289,7 @@ var styles2 = {
|
|
|
15179
15289
|
var AgentGUIChrome_styles_default = styles2;
|
|
15180
15290
|
|
|
15181
15291
|
// agent-gui/agentGuiNode/AgentSessionChrome.tsx
|
|
15182
|
-
import { Fragment as Fragment2, jsx as
|
|
15292
|
+
import { Fragment as Fragment2, jsx as jsx18, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
15183
15293
|
function splitTrailingEllipsis(message) {
|
|
15184
15294
|
const match = message.match(/^(.*?)(\.{3}|…)\s*$/);
|
|
15185
15295
|
if (!match) {
|
|
@@ -15193,9 +15303,9 @@ function splitTrailingEllipsis(message) {
|
|
|
15193
15303
|
function LoadingEllipsis() {
|
|
15194
15304
|
"use memo";
|
|
15195
15305
|
return /* @__PURE__ */ jsxs7("span", { className: "tsh-inline-loading-ellipsis", "aria-hidden": "true", children: [
|
|
15196
|
-
/* @__PURE__ */
|
|
15197
|
-
/* @__PURE__ */
|
|
15198
|
-
/* @__PURE__ */
|
|
15306
|
+
/* @__PURE__ */ jsx18("span", {}),
|
|
15307
|
+
/* @__PURE__ */ jsx18("span", {}),
|
|
15308
|
+
/* @__PURE__ */ jsx18("span", {})
|
|
15199
15309
|
] });
|
|
15200
15310
|
}
|
|
15201
15311
|
function AgentChromeNotice({
|
|
@@ -15208,7 +15318,7 @@ function AgentChromeNotice({
|
|
|
15208
15318
|
}) {
|
|
15209
15319
|
"use memo";
|
|
15210
15320
|
const fullMessage = description ? `${title} ${description}` : title;
|
|
15211
|
-
return /* @__PURE__ */
|
|
15321
|
+
return /* @__PURE__ */ jsx18("div", { className: AgentGUIChrome_styles_default.sessionChrome, children: /* @__PURE__ */ jsx18(
|
|
15212
15322
|
"section",
|
|
15213
15323
|
{
|
|
15214
15324
|
className: cn(
|
|
@@ -15219,16 +15329,16 @@ function AgentChromeNotice({
|
|
|
15219
15329
|
"data-expanded": "false",
|
|
15220
15330
|
role,
|
|
15221
15331
|
"data-testid": testId,
|
|
15222
|
-
children: /* @__PURE__ */
|
|
15223
|
-
icon ? /* @__PURE__ */
|
|
15332
|
+
children: /* @__PURE__ */ jsx18("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: /* @__PURE__ */ jsxs7("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
|
|
15333
|
+
icon ? /* @__PURE__ */ jsx18("span", { className: AgentGUIChrome_styles_default.chromeIcon, children: icon }) : null,
|
|
15224
15334
|
/* @__PURE__ */ jsxs7(
|
|
15225
15335
|
"p",
|
|
15226
15336
|
{
|
|
15227
15337
|
className: cn(AgentGUIChrome_styles_default.chromeMessage, AgentGUIChrome_styles_default.chromeNoticeMessage),
|
|
15228
15338
|
title: fullMessage,
|
|
15229
15339
|
children: [
|
|
15230
|
-
/* @__PURE__ */
|
|
15231
|
-
description ? /* @__PURE__ */
|
|
15340
|
+
/* @__PURE__ */ jsx18("span", { className: AgentGUIChrome_styles_default.chromeNoticeTitle, children: title }),
|
|
15341
|
+
description ? /* @__PURE__ */ jsx18("span", { className: AgentGUIChrome_styles_default.chromeNoticeDescription, children: description }) : null
|
|
15232
15342
|
]
|
|
15233
15343
|
}
|
|
15234
15344
|
)
|
|
@@ -15377,7 +15487,7 @@ function AgentSessionChrome({
|
|
|
15377
15487
|
event.stopPropagation();
|
|
15378
15488
|
};
|
|
15379
15489
|
return /* @__PURE__ */ jsxs7("div", { className: AgentGUIChrome_styles_default.sessionChrome, children: [
|
|
15380
|
-
visibleAuth ? /* @__PURE__ */
|
|
15490
|
+
visibleAuth ? /* @__PURE__ */ jsx18(
|
|
15381
15491
|
"section",
|
|
15382
15492
|
{
|
|
15383
15493
|
ref: authCardRef,
|
|
@@ -15389,7 +15499,7 @@ function AgentSessionChrome({
|
|
|
15389
15499
|
onKeyDown: handleExpandableCardKeyDown("auth"),
|
|
15390
15500
|
children: /* @__PURE__ */ jsxs7("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: [
|
|
15391
15501
|
/* @__PURE__ */ jsxs7("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
|
|
15392
|
-
/* @__PURE__ */
|
|
15502
|
+
/* @__PURE__ */ jsx18(
|
|
15393
15503
|
"p",
|
|
15394
15504
|
{
|
|
15395
15505
|
ref: authMessageRef,
|
|
@@ -15398,7 +15508,7 @@ function AgentSessionChrome({
|
|
|
15398
15508
|
children: visibleAuth.message
|
|
15399
15509
|
}
|
|
15400
15510
|
),
|
|
15401
|
-
/* @__PURE__ */
|
|
15511
|
+
/* @__PURE__ */ jsx18(
|
|
15402
15512
|
ChevronDown,
|
|
15403
15513
|
{
|
|
15404
15514
|
"aria-hidden": "true",
|
|
@@ -15411,7 +15521,7 @@ function AgentSessionChrome({
|
|
|
15411
15521
|
)
|
|
15412
15522
|
] }),
|
|
15413
15523
|
/* @__PURE__ */ jsxs7("div", { className: AgentGUIChrome_styles_default.chromeInlineActions, children: [
|
|
15414
|
-
onAuthLogin ? /* @__PURE__ */
|
|
15524
|
+
onAuthLogin ? /* @__PURE__ */ jsx18(
|
|
15415
15525
|
Button2,
|
|
15416
15526
|
{
|
|
15417
15527
|
type: "button",
|
|
@@ -15424,7 +15534,7 @@ function AgentSessionChrome({
|
|
|
15424
15534
|
children: labels.authLogin ?? labels.retryActivation
|
|
15425
15535
|
}
|
|
15426
15536
|
) : null,
|
|
15427
|
-
/* @__PURE__ */
|
|
15537
|
+
/* @__PURE__ */ jsx18(
|
|
15428
15538
|
Button2,
|
|
15429
15539
|
{
|
|
15430
15540
|
type: "button",
|
|
@@ -15442,9 +15552,9 @@ function AgentSessionChrome({
|
|
|
15442
15552
|
}
|
|
15443
15553
|
) : null,
|
|
15444
15554
|
chrome.approval ? /* @__PURE__ */ jsxs7("section", { className: cn(AgentGUIChrome_styles_default.chromeCard, AgentGUIChrome_styles_default.chromeCardAction), children: [
|
|
15445
|
-
/* @__PURE__ */
|
|
15446
|
-
/* @__PURE__ */
|
|
15447
|
-
/* @__PURE__ */
|
|
15555
|
+
/* @__PURE__ */ jsx18("div", { className: AgentGUIChrome_styles_default.chromeTitle, children: labels.approvalRequired }),
|
|
15556
|
+
/* @__PURE__ */ jsx18("p", { className: AgentGUIChrome_styles_default.chromeMessage, children: chrome.approval.title }),
|
|
15557
|
+
/* @__PURE__ */ jsx18("div", { className: AgentGUIChrome_styles_default.chromeActions, children: chrome.approval.options.map((option) => /* @__PURE__ */ jsx18(
|
|
15448
15558
|
"button",
|
|
15449
15559
|
{
|
|
15450
15560
|
type: "button",
|
|
@@ -15458,7 +15568,7 @@ function AgentSessionChrome({
|
|
|
15458
15568
|
option.id
|
|
15459
15569
|
)) })
|
|
15460
15570
|
] }) : null,
|
|
15461
|
-
visibleRecovery ? /* @__PURE__ */
|
|
15571
|
+
visibleRecovery ? /* @__PURE__ */ jsx18(
|
|
15462
15572
|
"section",
|
|
15463
15573
|
{
|
|
15464
15574
|
ref: recoveryCardRef,
|
|
@@ -15476,7 +15586,7 @@ function AgentSessionChrome({
|
|
|
15476
15586
|
onKeyDown: handleExpandableCardKeyDown("recovery"),
|
|
15477
15587
|
children: /* @__PURE__ */ jsxs7("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: [
|
|
15478
15588
|
/* @__PURE__ */ jsxs7("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
|
|
15479
|
-
visibleRecovery.kind === "activating" ? /* @__PURE__ */
|
|
15589
|
+
visibleRecovery.kind === "activating" ? /* @__PURE__ */ jsx18(
|
|
15480
15590
|
CastIcon,
|
|
15481
15591
|
{
|
|
15482
15592
|
active: true,
|
|
@@ -15486,7 +15596,7 @@ function AgentSessionChrome({
|
|
|
15486
15596
|
size: 16
|
|
15487
15597
|
}
|
|
15488
15598
|
) : null,
|
|
15489
|
-
/* @__PURE__ */
|
|
15599
|
+
/* @__PURE__ */ jsx18(
|
|
15490
15600
|
"p",
|
|
15491
15601
|
{
|
|
15492
15602
|
ref: recoveryMessageRef,
|
|
@@ -15494,12 +15604,12 @@ function AgentSessionChrome({
|
|
|
15494
15604
|
"aria-label": visibleRecovery.kind === "activating" ? recoveryMessage : void 0,
|
|
15495
15605
|
title: recoveryMessage,
|
|
15496
15606
|
children: visibleRecovery.kind === "activating" ? /* @__PURE__ */ jsxs7(Fragment2, { children: [
|
|
15497
|
-
/* @__PURE__ */
|
|
15498
|
-
activatingMessage.ellipsis ? /* @__PURE__ */
|
|
15607
|
+
/* @__PURE__ */ jsx18("span", { className: "tsh-inline-loading-label", children: activatingMessage.label }),
|
|
15608
|
+
activatingMessage.ellipsis ? /* @__PURE__ */ jsx18(LoadingEllipsis, {}) : null
|
|
15499
15609
|
] }) : recoveryMessage
|
|
15500
15610
|
}
|
|
15501
15611
|
),
|
|
15502
|
-
/* @__PURE__ */
|
|
15612
|
+
/* @__PURE__ */ jsx18(
|
|
15503
15613
|
ChevronDown,
|
|
15504
15614
|
{
|
|
15505
15615
|
"aria-hidden": "true",
|
|
@@ -15511,7 +15621,7 @@ function AgentSessionChrome({
|
|
|
15511
15621
|
}
|
|
15512
15622
|
)
|
|
15513
15623
|
] }),
|
|
15514
|
-
/* @__PURE__ */
|
|
15624
|
+
/* @__PURE__ */ jsx18("div", { className: AgentGUIChrome_styles_default.chromeInlineActions, children: visibleRecovery.kind === "failed" && visibleRecovery.followupAction === "continue-in-new-conversation" ? /* @__PURE__ */ jsx18(
|
|
15515
15625
|
Button2,
|
|
15516
15626
|
{
|
|
15517
15627
|
type: "button",
|
|
@@ -15524,7 +15634,7 @@ function AgentSessionChrome({
|
|
|
15524
15634
|
},
|
|
15525
15635
|
children: labels.continueInNewConversation
|
|
15526
15636
|
}
|
|
15527
|
-
) : visibleRecovery.kind === "failed" && visibleRecovery.canRetry !== false ? /* @__PURE__ */
|
|
15637
|
+
) : visibleRecovery.kind === "failed" && visibleRecovery.canRetry !== false ? /* @__PURE__ */ jsx18(
|
|
15528
15638
|
Button2,
|
|
15529
15639
|
{
|
|
15530
15640
|
type: "button",
|
|
@@ -15546,7 +15656,7 @@ function AgentSessionChrome({
|
|
|
15546
15656
|
|
|
15547
15657
|
// agent-gui/agentGuiNode/AgentGoalBanner.tsx
|
|
15548
15658
|
import { Target } from "lucide-react";
|
|
15549
|
-
import { jsx as
|
|
15659
|
+
import { jsx as jsx19, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
15550
15660
|
var TERMINAL_GOAL_STATUSES = /* @__PURE__ */ new Set(["complete", "completed", "done"]);
|
|
15551
15661
|
function normalizeGoalStatus(status) {
|
|
15552
15662
|
return (status ?? "").trim().toLowerCase();
|
|
@@ -15557,7 +15667,7 @@ function isGoalBannerVisible(objective, status) {
|
|
|
15557
15667
|
}
|
|
15558
15668
|
return !TERMINAL_GOAL_STATUSES.has(normalizeGoalStatus(status));
|
|
15559
15669
|
}
|
|
15560
|
-
function
|
|
15670
|
+
function goalStatusLabel(status, labels) {
|
|
15561
15671
|
switch (normalizeGoalStatus(status)) {
|
|
15562
15672
|
case "paused":
|
|
15563
15673
|
return labels.statusPaused;
|
|
@@ -15575,6 +15685,15 @@ function statusLabel(status, labels) {
|
|
|
15575
15685
|
return labels.statusActive;
|
|
15576
15686
|
}
|
|
15577
15687
|
}
|
|
15688
|
+
function describeGoal(input) {
|
|
15689
|
+
const trimmedObjective = input.objective.trim();
|
|
15690
|
+
const detailParts = [goalStatusLabel(input.status, input.labels)];
|
|
15691
|
+
if (typeof input.tokenBudget === "number" && input.tokenBudget > 0) {
|
|
15692
|
+
const used = typeof input.tokensUsed === "number" && input.tokensUsed >= 0 ? input.tokensUsed : 0;
|
|
15693
|
+
detailParts.push(input.labels.budgetUsage(used, input.tokenBudget));
|
|
15694
|
+
}
|
|
15695
|
+
return `${trimmedObjective} \xB7 ${detailParts.join(" \xB7 ")}`;
|
|
15696
|
+
}
|
|
15578
15697
|
function AgentGoalBanner({
|
|
15579
15698
|
objective,
|
|
15580
15699
|
status,
|
|
@@ -15583,15 +15702,15 @@ function AgentGoalBanner({
|
|
|
15583
15702
|
labels
|
|
15584
15703
|
}) {
|
|
15585
15704
|
"use memo";
|
|
15586
|
-
const
|
|
15587
|
-
|
|
15588
|
-
|
|
15589
|
-
|
|
15590
|
-
|
|
15591
|
-
|
|
15592
|
-
|
|
15705
|
+
const description = describeGoal({
|
|
15706
|
+
objective,
|
|
15707
|
+
status,
|
|
15708
|
+
tokenBudget,
|
|
15709
|
+
tokensUsed,
|
|
15710
|
+
labels
|
|
15711
|
+
});
|
|
15593
15712
|
const fullMessage = `${labels.goalLabel} ${description}`;
|
|
15594
|
-
return /* @__PURE__ */
|
|
15713
|
+
return /* @__PURE__ */ jsx19("div", { className: AgentGUIChrome_styles_default.sessionChrome, children: /* @__PURE__ */ jsx19(
|
|
15595
15714
|
"section",
|
|
15596
15715
|
{
|
|
15597
15716
|
className: cn(AgentGUIChrome_styles_default.chromeCard, AgentGUIChrome_styles_default.chromeCardMuted),
|
|
@@ -15601,20 +15720,20 @@ function AgentGoalBanner({
|
|
|
15601
15720
|
"data-testid": "agent-gui-goal-banner",
|
|
15602
15721
|
children: /* @__PURE__ */ jsxs8("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: [
|
|
15603
15722
|
/* @__PURE__ */ jsxs8("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
|
|
15604
|
-
/* @__PURE__ */
|
|
15723
|
+
/* @__PURE__ */ jsx19("span", { className: AgentGUIChrome_styles_default.chromeIcon, children: /* @__PURE__ */ jsx19(Target, { "aria-hidden": true, className: "size-3.5" }) }),
|
|
15605
15724
|
/* @__PURE__ */ jsxs8(
|
|
15606
15725
|
"p",
|
|
15607
15726
|
{
|
|
15608
15727
|
className: cn(AgentGUIChrome_styles_default.chromeMessage, AgentGUIChrome_styles_default.chromeNoticeMessage),
|
|
15609
15728
|
title: fullMessage,
|
|
15610
15729
|
children: [
|
|
15611
|
-
/* @__PURE__ */
|
|
15612
|
-
/* @__PURE__ */
|
|
15730
|
+
/* @__PURE__ */ jsx19("span", { className: AgentGUIChrome_styles_default.chromeNoticeTitle, children: labels.goalLabel }),
|
|
15731
|
+
/* @__PURE__ */ jsx19("span", { className: AgentGUIChrome_styles_default.chromeNoticeDescription, children: description })
|
|
15613
15732
|
]
|
|
15614
15733
|
}
|
|
15615
15734
|
)
|
|
15616
15735
|
] }),
|
|
15617
|
-
/* @__PURE__ */
|
|
15736
|
+
/* @__PURE__ */ jsx19(
|
|
15618
15737
|
"span",
|
|
15619
15738
|
{
|
|
15620
15739
|
className: AgentGUIChrome_styles_default.chromeGoalHint,
|
|
@@ -15649,7 +15768,7 @@ import {
|
|
|
15649
15768
|
|
|
15650
15769
|
// agent-gui/agentGuiNode/AgentComposer.tsx
|
|
15651
15770
|
import { AddIcon, Select as Select2, SelectTrigger as SelectTrigger2 } from "@tutti-os/ui-system";
|
|
15652
|
-
import { ListChecks, X } from "lucide-react";
|
|
15771
|
+
import { ListChecks as ListChecks2, Target as Target3, X } from "lucide-react";
|
|
15653
15772
|
import {
|
|
15654
15773
|
createMentionPaletteStateAdapter,
|
|
15655
15774
|
makeAtPanelKeyDown,
|
|
@@ -15944,6 +16063,9 @@ function resolveSlashCommandSelectionEffect({
|
|
|
15944
16063
|
if (isLocalTogglePlanCommand(provider, commandName)) {
|
|
15945
16064
|
return { kind: "togglePlanMode" };
|
|
15946
16065
|
}
|
|
16066
|
+
if (isGoalModeCommand(commandName)) {
|
|
16067
|
+
return { kind: "activateGoalMode" };
|
|
16068
|
+
}
|
|
15947
16069
|
if (isLocalToggleSpeedCommand(provider, commandName)) {
|
|
15948
16070
|
return { kind: "toggleSpeed" };
|
|
15949
16071
|
}
|
|
@@ -16031,6 +16153,9 @@ function resolveSlashCommandSubmitEffect({
|
|
|
16031
16153
|
function isLocalTogglePlanCommand(provider, commandName) {
|
|
16032
16154
|
return isACPProvider(provider) && ACP_LOCAL_TOGGLE_PLAN_COMMANDS.has(commandName.trim().toLowerCase());
|
|
16033
16155
|
}
|
|
16156
|
+
function isGoalModeCommand(commandName) {
|
|
16157
|
+
return commandName.trim().toLowerCase() === "goal";
|
|
16158
|
+
}
|
|
16034
16159
|
function isReviewPickerCommand(provider, commandName) {
|
|
16035
16160
|
return providerSlashPolicy(provider)?.reviewPickerCommands.has(commandName) ?? false;
|
|
16036
16161
|
}
|
|
@@ -16086,12 +16211,25 @@ function filterUnavailableSlashCommands(commands, input) {
|
|
|
16086
16211
|
|
|
16087
16212
|
// agent-gui/agentGuiNode/AgentSlashCommandPalette.tsx
|
|
16088
16213
|
import { Fragment as Fragment3, useEffect as useEffect6, useRef as useRef7 } from "react";
|
|
16089
|
-
import {
|
|
16214
|
+
import {
|
|
16215
|
+
Globe,
|
|
16216
|
+
Info,
|
|
16217
|
+
ListChecks,
|
|
16218
|
+
Minimize2,
|
|
16219
|
+
Monitor,
|
|
16220
|
+
Search,
|
|
16221
|
+
Target as Target2,
|
|
16222
|
+
ZapIcon
|
|
16223
|
+
} from "lucide-react";
|
|
16224
|
+
import { jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
16090
16225
|
var paletteStyles = {
|
|
16091
16226
|
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]",
|
|
16092
|
-
option: "nodrag relative flex min-h-9 w-full min-w-0 cursor-pointer select-none items-center gap-
|
|
16093
|
-
|
|
16094
|
-
|
|
16227
|
+
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] 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",
|
|
16228
|
+
icon: "flex w-3 shrink-0 items-center justify-center self-center text-[var(--text-secondary)]",
|
|
16229
|
+
copy: "flex min-w-0 flex-1 items-center gap-1 overflow-hidden leading-[16px]",
|
|
16230
|
+
name: "flex min-w-0 max-w-[48%] shrink-0 items-center gap-1 overflow-hidden",
|
|
16231
|
+
primaryName: "min-w-0 truncate text-[11px] font-semibold text-[var(--text-primary)]",
|
|
16232
|
+
secondaryName: "shrink-0 text-[10px] font-normal text-[var(--text-secondary)]",
|
|
16095
16233
|
descriptionText: "min-w-0 flex-1 truncate text-[11px] font-normal text-[var(--text-secondary)]",
|
|
16096
16234
|
groupHeader: "select-none px-2.5 pb-0.5 text-[11px] font-normal text-[var(--text-secondary)]",
|
|
16097
16235
|
groupHeaderFirst: "pt-1.5",
|
|
@@ -16131,10 +16269,11 @@ function AgentSlashCommandPalette({
|
|
|
16131
16269
|
firstEntryIndexByType.set(groupType, index);
|
|
16132
16270
|
}
|
|
16133
16271
|
});
|
|
16134
|
-
return /* @__PURE__ */
|
|
16272
|
+
return /* @__PURE__ */ jsx20("div", { className: paletteStyles.palette, role: "listbox", "aria-label": label, children: entries.map((entry, index) => {
|
|
16135
16273
|
const isHighlighted = index === highlightedIndex;
|
|
16136
16274
|
const groupType = entryGroupType(entry);
|
|
16137
|
-
const
|
|
16275
|
+
const entryIcon = slashPaletteEntryIcon(entry);
|
|
16276
|
+
const groupHeader = showGroupHeaders && firstEntryIndexByType.get(groupType) === index ? /* @__PURE__ */ jsx20(
|
|
16138
16277
|
"div",
|
|
16139
16278
|
{
|
|
16140
16279
|
"aria-hidden": "true",
|
|
@@ -16183,11 +16322,15 @@ function AgentSlashCommandPalette({
|
|
|
16183
16322
|
onSelectSkill(entry.skill);
|
|
16184
16323
|
},
|
|
16185
16324
|
children: [
|
|
16325
|
+
entryIcon ? /* @__PURE__ */ jsx20("span", { "aria-hidden": "true", className: paletteStyles.icon, children: entryIcon }) : null,
|
|
16186
16326
|
/* @__PURE__ */ jsxs9("span", { className: paletteStyles.copy, children: [
|
|
16187
|
-
/* @__PURE__ */
|
|
16188
|
-
|
|
16327
|
+
/* @__PURE__ */ jsxs9("span", { className: paletteStyles.name, children: [
|
|
16328
|
+
/* @__PURE__ */ jsx20("span", { className: paletteStyles.primaryName, children: entry.type === "command" ? entry.primaryLabel ?? entry.label : entry.label }),
|
|
16329
|
+
entry.type === "command" && entry.secondaryLabel ? /* @__PURE__ */ jsx20("span", { className: paletteStyles.secondaryName, children: entry.secondaryLabel }) : null
|
|
16330
|
+
] }),
|
|
16331
|
+
entry.description ? /* @__PURE__ */ jsx20("span", { className: paletteStyles.descriptionText, children: entry.description }) : null
|
|
16189
16332
|
] }),
|
|
16190
|
-
entry.type === "capability" && entry.settingsLabel && onSelectCapabilitySettings ? /* @__PURE__ */
|
|
16333
|
+
entry.type === "capability" && entry.settingsLabel && onSelectCapabilitySettings ? /* @__PURE__ */ jsx20(
|
|
16191
16334
|
"button",
|
|
16192
16335
|
{
|
|
16193
16336
|
"aria-label": entry.settingsAriaLabel ?? entry.settingsLabel,
|
|
@@ -16239,6 +16382,31 @@ function labelForEntryGroupType(groupType, labels) {
|
|
|
16239
16382
|
return labels.skillsGroupLabel;
|
|
16240
16383
|
}
|
|
16241
16384
|
}
|
|
16385
|
+
var SLASH_PALETTE_ICON_CLASS = "size-3";
|
|
16386
|
+
function slashPaletteEntryIcon(entry) {
|
|
16387
|
+
if (entry.type === "capability") {
|
|
16388
|
+
return entry.capability.capability === "computerUse" ? /* @__PURE__ */ jsx20(Monitor, { className: SLASH_PALETTE_ICON_CLASS }) : /* @__PURE__ */ jsx20(Globe, { className: SLASH_PALETTE_ICON_CLASS });
|
|
16389
|
+
}
|
|
16390
|
+
if (entry.type !== "command") {
|
|
16391
|
+
return null;
|
|
16392
|
+
}
|
|
16393
|
+
switch (entry.command.name.trim().toLowerCase()) {
|
|
16394
|
+
case "compact":
|
|
16395
|
+
return /* @__PURE__ */ jsx20(Minimize2, { className: SLASH_PALETTE_ICON_CLASS });
|
|
16396
|
+
case "fast":
|
|
16397
|
+
return /* @__PURE__ */ jsx20(ZapIcon, { className: SLASH_PALETTE_ICON_CLASS });
|
|
16398
|
+
case "goal":
|
|
16399
|
+
return /* @__PURE__ */ jsx20(Target2, { className: SLASH_PALETTE_ICON_CLASS });
|
|
16400
|
+
case "plan":
|
|
16401
|
+
return /* @__PURE__ */ jsx20(ListChecks, { className: SLASH_PALETTE_ICON_CLASS });
|
|
16402
|
+
case "review":
|
|
16403
|
+
return /* @__PURE__ */ jsx20(Search, { className: SLASH_PALETTE_ICON_CLASS });
|
|
16404
|
+
case "status":
|
|
16405
|
+
return /* @__PURE__ */ jsx20(Info, { className: SLASH_PALETTE_ICON_CLASS });
|
|
16406
|
+
default:
|
|
16407
|
+
return null;
|
|
16408
|
+
}
|
|
16409
|
+
}
|
|
16242
16410
|
|
|
16243
16411
|
// agent-gui/agentGuiNode/AgentQueuedPromptPanel.tsx
|
|
16244
16412
|
import {
|
|
@@ -16384,7 +16552,7 @@ var styles3 = {
|
|
|
16384
16552
|
var AgentGUINode_styles_default = styles3;
|
|
16385
16553
|
|
|
16386
16554
|
// agent-gui/agentGuiNode/AgentQueuedPromptPanel.tsx
|
|
16387
|
-
import { jsx as
|
|
16555
|
+
import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
16388
16556
|
var EMPTY_WORKSPACE_APP_ICONS = [];
|
|
16389
16557
|
function queuedPromptImages(queuedPrompt) {
|
|
16390
16558
|
return agentPromptContentImageBlocks(
|
|
@@ -16511,9 +16679,9 @@ function AgentQueuedPromptPanel({
|
|
|
16511
16679
|
onKeyDown: handleKeyDown,
|
|
16512
16680
|
children: [
|
|
16513
16681
|
/* @__PURE__ */ jsxs10("div", { className: AgentGUINode_styles_default.composerQueuedPromptHeader, children: [
|
|
16514
|
-
/* @__PURE__ */
|
|
16515
|
-
/* @__PURE__ */
|
|
16516
|
-
canExpand ? /* @__PURE__ */
|
|
16682
|
+
/* @__PURE__ */ jsx21("span", { className: AgentGUINode_styles_default.composerQueuedPromptLabel, children: labels.queuedLabel }),
|
|
16683
|
+
/* @__PURE__ */ jsx21("span", { className: AgentGUINode_styles_default.composerQueuedPromptCount, children: queuedPrompts.length }),
|
|
16684
|
+
canExpand ? /* @__PURE__ */ jsx21(
|
|
16517
16685
|
ChevronRight,
|
|
16518
16686
|
{
|
|
16519
16687
|
"aria-hidden": "true",
|
|
@@ -16524,7 +16692,7 @@ function AgentQueuedPromptPanel({
|
|
|
16524
16692
|
}
|
|
16525
16693
|
) : null
|
|
16526
16694
|
] }),
|
|
16527
|
-
/* @__PURE__ */
|
|
16695
|
+
/* @__PURE__ */ jsx21(
|
|
16528
16696
|
"div",
|
|
16529
16697
|
{
|
|
16530
16698
|
ref: queuedPromptListRef,
|
|
@@ -16543,8 +16711,8 @@ function AgentQueuedPromptPanel({
|
|
|
16543
16711
|
"data-testid": `agent-gui-composer-queued-prompt-${queuedPrompt.id}`,
|
|
16544
16712
|
"data-draining": isDraining ? "true" : "false",
|
|
16545
16713
|
children: [
|
|
16546
|
-
/* @__PURE__ */
|
|
16547
|
-
displayText ? /* @__PURE__ */
|
|
16714
|
+
/* @__PURE__ */ jsx21("div", { className: AgentGUINode_styles_default.composerQueuedPromptMain, children: /* @__PURE__ */ jsxs10("div", { className: AgentGUINode_styles_default.composerQueuedPromptBody, title, children: [
|
|
16715
|
+
displayText ? /* @__PURE__ */ jsx21(
|
|
16548
16716
|
"div",
|
|
16549
16717
|
{
|
|
16550
16718
|
ref: queuedPrompts.length === 1 ? singlePromptTextRef : void 0,
|
|
@@ -16554,7 +16722,7 @@ function AgentQueuedPromptPanel({
|
|
|
16554
16722
|
event.stopPropagation();
|
|
16555
16723
|
}
|
|
16556
16724
|
},
|
|
16557
|
-
children: /* @__PURE__ */
|
|
16725
|
+
children: /* @__PURE__ */ jsx21(
|
|
16558
16726
|
AgentMessageMarkdown,
|
|
16559
16727
|
{
|
|
16560
16728
|
content: displayText,
|
|
@@ -16566,7 +16734,7 @@ function AgentQueuedPromptPanel({
|
|
|
16566
16734
|
)
|
|
16567
16735
|
}
|
|
16568
16736
|
) : null,
|
|
16569
|
-
images.length > 0 ? /* @__PURE__ */
|
|
16737
|
+
images.length > 0 ? /* @__PURE__ */ jsx21("div", { className: AgentGUINode_styles_default.composerQueuedPromptImages, children: images.slice(0, 3).map((image, index) => /* @__PURE__ */ jsx21(
|
|
16570
16738
|
"img",
|
|
16571
16739
|
{
|
|
16572
16740
|
alt: "",
|
|
@@ -16577,42 +16745,42 @@ function AgentQueuedPromptPanel({
|
|
|
16577
16745
|
)) }) : null
|
|
16578
16746
|
] }) }),
|
|
16579
16747
|
/* @__PURE__ */ jsxs10("div", { className: AgentGUINode_styles_default.composerQueuedPromptActions, children: [
|
|
16580
|
-
/* @__PURE__ */
|
|
16748
|
+
/* @__PURE__ */ jsx21(
|
|
16581
16749
|
CanvasNodeGhostIconButton,
|
|
16582
16750
|
{
|
|
16583
16751
|
"aria-label": labels.sendQueuedPromptNext,
|
|
16584
16752
|
disabled: isDraining,
|
|
16585
16753
|
onClick: () => onSendQueuedPromptNext(queuedPrompt.id),
|
|
16586
|
-
children: /* @__PURE__ */
|
|
16754
|
+
children: /* @__PURE__ */ jsx21(CanvasNodeGuideLinedIcon, { "aria-hidden": "true" })
|
|
16587
16755
|
}
|
|
16588
16756
|
),
|
|
16589
|
-
/* @__PURE__ */
|
|
16757
|
+
/* @__PURE__ */ jsx21(
|
|
16590
16758
|
CanvasNodeGhostIconButton,
|
|
16591
16759
|
{
|
|
16592
16760
|
"aria-label": labels.deleteQueuedPrompt,
|
|
16593
16761
|
disabled: isDraining,
|
|
16594
16762
|
onClick: () => onRemoveQueuedPrompt(queuedPrompt.id),
|
|
16595
|
-
children: /* @__PURE__ */
|
|
16763
|
+
children: /* @__PURE__ */ jsx21(CanvasNodeTrashLinedIcon, { "aria-hidden": "true" })
|
|
16596
16764
|
}
|
|
16597
16765
|
),
|
|
16598
16766
|
/* @__PURE__ */ jsxs10(DropdownMenu, { children: [
|
|
16599
|
-
/* @__PURE__ */
|
|
16767
|
+
/* @__PURE__ */ jsx21(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx21(
|
|
16600
16768
|
CanvasNodeGhostIconButton,
|
|
16601
16769
|
{
|
|
16602
16770
|
"aria-label": labels.queuedPromptMoreActions,
|
|
16603
16771
|
disabled: isDraining,
|
|
16604
16772
|
stopsEventPropagation: false,
|
|
16605
16773
|
onClick: (event) => event.stopPropagation(),
|
|
16606
|
-
children: /* @__PURE__ */
|
|
16774
|
+
children: /* @__PURE__ */ jsx21(CanvasNodeMoreLinedIcon, { "aria-hidden": "true" })
|
|
16607
16775
|
}
|
|
16608
16776
|
) }),
|
|
16609
|
-
/* @__PURE__ */
|
|
16777
|
+
/* @__PURE__ */ jsx21(
|
|
16610
16778
|
DropdownMenuContent,
|
|
16611
16779
|
{
|
|
16612
16780
|
align: "end",
|
|
16613
16781
|
className: AgentGUINode_styles_default.composerMenuContent,
|
|
16614
16782
|
sideOffset: 8,
|
|
16615
|
-
children: /* @__PURE__ */
|
|
16783
|
+
children: /* @__PURE__ */ jsx21(
|
|
16616
16784
|
DropdownMenuItem,
|
|
16617
16785
|
{
|
|
16618
16786
|
className: AgentGUINode_styles_default.composerMenuItem,
|
|
@@ -16626,7 +16794,7 @@ function AgentQueuedPromptPanel({
|
|
|
16626
16794
|
onSelect: () => {
|
|
16627
16795
|
handleEditQueuedPromptSelect(queuedPrompt.id);
|
|
16628
16796
|
},
|
|
16629
|
-
children: /* @__PURE__ */
|
|
16797
|
+
children: /* @__PURE__ */ jsx21("span", { children: labels.editQueuedPrompt })
|
|
16630
16798
|
}
|
|
16631
16799
|
)
|
|
16632
16800
|
}
|
|
@@ -16652,7 +16820,7 @@ import {
|
|
|
16652
16820
|
useMemo as useMemo5,
|
|
16653
16821
|
useState as useState7
|
|
16654
16822
|
} from "react";
|
|
16655
|
-
import { ChevronDown as ChevronDown2, ZapIcon } from "lucide-react";
|
|
16823
|
+
import { ChevronDown as ChevronDown2, ZapIcon as ZapIcon2 } from "lucide-react";
|
|
16656
16824
|
import {
|
|
16657
16825
|
WorkspaceUserProjectSelect,
|
|
16658
16826
|
resolveWorkspaceUserProjectSelectLabels
|
|
@@ -17010,7 +17178,7 @@ function optionsWithSelectedValue(options, selectedValue) {
|
|
|
17010
17178
|
}
|
|
17011
17179
|
|
|
17012
17180
|
// agent-gui/agentGuiNode/AgentComposerSettingsMenus.tsx
|
|
17013
|
-
import { Fragment as Fragment4, jsx as
|
|
17181
|
+
import { Fragment as Fragment4, jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
17014
17182
|
function basenameProjectPath(path) {
|
|
17015
17183
|
const normalized = path.trim().replaceAll("\\", "/").replace(/\/+$/, "");
|
|
17016
17184
|
return normalized.split("/").filter(Boolean).at(-1) ?? path;
|
|
@@ -17062,7 +17230,7 @@ function AgentProjectDropdown({
|
|
|
17062
17230
|
className: "workspace-user-project-trigger-label",
|
|
17063
17231
|
"data-workspace-user-project-trigger-label": "true",
|
|
17064
17232
|
children: [
|
|
17065
|
-
selectedPath ? /* @__PURE__ */
|
|
17233
|
+
selectedPath ? /* @__PURE__ */ jsx22(FolderIcon, { "aria-hidden": true, className: "shrink-0", size: 15 }) : /* @__PURE__ */ jsx22(
|
|
17066
17234
|
NoWorkspaceLinedIcon,
|
|
17067
17235
|
{
|
|
17068
17236
|
"aria-hidden": true,
|
|
@@ -17071,16 +17239,16 @@ function AgentProjectDropdown({
|
|
|
17071
17239
|
size: 15
|
|
17072
17240
|
}
|
|
17073
17241
|
),
|
|
17074
|
-
/* @__PURE__ */
|
|
17242
|
+
/* @__PURE__ */ jsx22("span", { className: "min-w-0 truncate", children: triggerLabel })
|
|
17075
17243
|
]
|
|
17076
17244
|
}
|
|
17077
17245
|
),
|
|
17078
|
-
/* @__PURE__ */
|
|
17246
|
+
/* @__PURE__ */ jsx22(ChevronDown2, { "aria-hidden": "true", className: "shrink-0", size: 16 })
|
|
17079
17247
|
]
|
|
17080
17248
|
}
|
|
17081
17249
|
);
|
|
17082
17250
|
}
|
|
17083
|
-
return /* @__PURE__ */
|
|
17251
|
+
return /* @__PURE__ */ jsx22(
|
|
17084
17252
|
WorkspaceUserProjectSelect,
|
|
17085
17253
|
{
|
|
17086
17254
|
api: userProjectApi,
|
|
@@ -17100,7 +17268,7 @@ function AgentProjectDropdown({
|
|
|
17100
17268
|
i18n,
|
|
17101
17269
|
labels,
|
|
17102
17270
|
projectLocked: Boolean(composerSettings.projectLocked),
|
|
17103
|
-
renderAddProjectIcon: () => /* @__PURE__ */
|
|
17271
|
+
renderAddProjectIcon: () => /* @__PURE__ */ jsx22(
|
|
17104
17272
|
NewWorkspaceLinedIcon,
|
|
17105
17273
|
{
|
|
17106
17274
|
"aria-hidden": true,
|
|
@@ -17164,15 +17332,15 @@ function AgentPermissionModeDropdown({
|
|
|
17164
17332
|
"aria-label": labels.permissionLabel,
|
|
17165
17333
|
"data-permission-tone": triggerTone,
|
|
17166
17334
|
children: [
|
|
17167
|
-
/* @__PURE__ */
|
|
17168
|
-
/* @__PURE__ */
|
|
17335
|
+
/* @__PURE__ */ jsx22("span", { className: "flex min-w-0 flex-1 items-center", children: /* @__PURE__ */ jsx22("span", { className: "truncate", children: triggerLabel }) }),
|
|
17336
|
+
/* @__PURE__ */ jsx22(ChevronDown2, { "aria-hidden": "true", className: "shrink-0", size: 16 })
|
|
17169
17337
|
]
|
|
17170
17338
|
}
|
|
17171
17339
|
);
|
|
17172
17340
|
if (previewMode) {
|
|
17173
17341
|
return trigger;
|
|
17174
17342
|
}
|
|
17175
|
-
const selectTrigger = /* @__PURE__ */
|
|
17343
|
+
const selectTrigger = /* @__PURE__ */ jsx22(
|
|
17176
17344
|
SelectTrigger,
|
|
17177
17345
|
{
|
|
17178
17346
|
className: cn2(
|
|
@@ -17183,7 +17351,7 @@ function AgentPermissionModeDropdown({
|
|
|
17183
17351
|
),
|
|
17184
17352
|
"aria-label": labels.permissionLabel,
|
|
17185
17353
|
"data-permission-tone": triggerTone,
|
|
17186
|
-
children: /* @__PURE__ */
|
|
17354
|
+
children: /* @__PURE__ */ jsx22("span", { className: "flex min-w-0 flex-1 items-center", children: /* @__PURE__ */ jsx22("span", { className: "truncate", children: triggerLabel }) })
|
|
17187
17355
|
}
|
|
17188
17356
|
);
|
|
17189
17357
|
return /* @__PURE__ */ jsxs11(
|
|
@@ -17200,11 +17368,11 @@ function AgentPermissionModeDropdown({
|
|
|
17200
17368
|
// it. Target the tooltip at a focusable wrapper span (Radix's pattern
|
|
17201
17369
|
// for disabled triggers) so hover/focus reliably surfaces the hint.
|
|
17202
17370
|
/* @__PURE__ */ jsxs11(Tooltip2, { children: [
|
|
17203
|
-
/* @__PURE__ */
|
|
17204
|
-
/* @__PURE__ */
|
|
17371
|
+
/* @__PURE__ */ jsx22(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ jsx22("span", { className: "inline-flex", tabIndex: 0, children: selectTrigger }) }),
|
|
17372
|
+
/* @__PURE__ */ jsx22(TooltipContent2, { side: "top", children: labels.loadingOptions })
|
|
17205
17373
|
] })
|
|
17206
17374
|
) : selectTrigger,
|
|
17207
|
-
isSelectOpen ? /* @__PURE__ */
|
|
17375
|
+
isSelectOpen ? /* @__PURE__ */ jsx22(
|
|
17208
17376
|
SelectContent,
|
|
17209
17377
|
{
|
|
17210
17378
|
align: "end",
|
|
@@ -17215,7 +17383,7 @@ function AgentPermissionModeDropdown({
|
|
|
17215
17383
|
AgentGUINode_styles_default.composerMenuContent,
|
|
17216
17384
|
"w-max min-w-[220px] max-w-[calc(100vw-32px)] data-[side=top]:!translate-y-0"
|
|
17217
17385
|
),
|
|
17218
|
-
children: permissionOptions.map((option) => /* @__PURE__ */
|
|
17386
|
+
children: permissionOptions.map((option) => /* @__PURE__ */ jsx22(
|
|
17219
17387
|
SelectItem,
|
|
17220
17388
|
{
|
|
17221
17389
|
value: option.value,
|
|
@@ -17223,8 +17391,8 @@ function AgentPermissionModeDropdown({
|
|
|
17223
17391
|
className: cn2(AgentGUINode_styles_default.composerMenuItem, "group/composer-option"),
|
|
17224
17392
|
onPointerDown: (event) => handleSelectedItemPointerDown(event, option.value),
|
|
17225
17393
|
children: /* @__PURE__ */ jsxs11("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
17226
|
-
/* @__PURE__ */
|
|
17227
|
-
option.description ? /* @__PURE__ */
|
|
17394
|
+
/* @__PURE__ */ jsx22("span", { className: "min-w-0 truncate", children: option.label }),
|
|
17395
|
+
option.description ? /* @__PURE__ */ jsx22(
|
|
17228
17396
|
ComposerOptionInfoTooltip,
|
|
17229
17397
|
{
|
|
17230
17398
|
description: option.description,
|
|
@@ -17305,22 +17473,22 @@ function ComposerOptionInfoTooltip({
|
|
|
17305
17473
|
event.preventDefault();
|
|
17306
17474
|
event.stopPropagation();
|
|
17307
17475
|
};
|
|
17308
|
-
const trigger = /* @__PURE__ */
|
|
17476
|
+
const trigger = /* @__PURE__ */ jsx22(
|
|
17309
17477
|
"span",
|
|
17310
17478
|
{
|
|
17311
17479
|
className: "pointer-events-none inline-flex shrink-0 cursor-help text-[var(--agent-gui-text-tertiary)] opacity-0 transition-opacity group-hover/composer-option:pointer-events-auto group-hover/composer-option:opacity-100 group-data-[highlighted]/composer-option:pointer-events-auto group-data-[highlighted]/composer-option:opacity-100",
|
|
17312
17480
|
"data-agent-composer-option-info-trigger": "true",
|
|
17313
17481
|
onClick: stopSelect,
|
|
17314
17482
|
onPointerDown: stopSelect,
|
|
17315
|
-
children: /* @__PURE__ */
|
|
17483
|
+
children: /* @__PURE__ */ jsx22(RoomsHintIcon, { "aria-hidden": true, className: "size-3" })
|
|
17316
17484
|
}
|
|
17317
17485
|
);
|
|
17318
17486
|
if (!tooltipsEnabled) {
|
|
17319
17487
|
return trigger;
|
|
17320
17488
|
}
|
|
17321
17489
|
return /* @__PURE__ */ jsxs11(Tooltip2, { children: [
|
|
17322
|
-
/* @__PURE__ */
|
|
17323
|
-
/* @__PURE__ */
|
|
17490
|
+
/* @__PURE__ */ jsx22(TooltipTrigger2, { asChild: true, children: trigger }),
|
|
17491
|
+
/* @__PURE__ */ jsx22(TooltipContent2, { side: "right", className: "max-w-[240px] whitespace-normal", children: description })
|
|
17324
17492
|
] });
|
|
17325
17493
|
}
|
|
17326
17494
|
function resolvePermissionModeTriggerTone(value) {
|
|
@@ -17375,8 +17543,8 @@ function AgentModelReasoningDropdown({
|
|
|
17375
17543
|
"data-agent-model-reasoning-trigger": "true",
|
|
17376
17544
|
children: [
|
|
17377
17545
|
/* @__PURE__ */ jsxs11("span", { className: "flex min-w-0 flex-1 items-center gap-2 overflow-hidden", children: [
|
|
17378
|
-
menu.speed.show && menu.trigger.isFast ? /* @__PURE__ */
|
|
17379
|
-
|
|
17546
|
+
menu.speed.show && menu.trigger.isFast ? /* @__PURE__ */ jsx22(
|
|
17547
|
+
ZapIcon2,
|
|
17380
17548
|
{
|
|
17381
17549
|
"aria-hidden": true,
|
|
17382
17550
|
className: "size-3.5 shrink-0",
|
|
@@ -17384,12 +17552,12 @@ function AgentModelReasoningDropdown({
|
|
|
17384
17552
|
strokeWidth: 2.5
|
|
17385
17553
|
}
|
|
17386
17554
|
) : null,
|
|
17387
|
-
menu.trigger.showCombined ? /* @__PURE__ */
|
|
17388
|
-
/* @__PURE__ */
|
|
17389
|
-
/* @__PURE__ */
|
|
17555
|
+
menu.trigger.showCombined ? /* @__PURE__ */ jsx22("span", { className: "min-w-0 truncate", children: menu.trigger.combinedLabel }) : /* @__PURE__ */ jsxs11(Fragment4, { children: [
|
|
17556
|
+
/* @__PURE__ */ jsx22("span", { className: "min-w-0 truncate", children: menu.trigger.modelLabel }),
|
|
17557
|
+
/* @__PURE__ */ jsx22("span", { className: "shrink-0", children: menu.trigger.reasoningLabel })
|
|
17390
17558
|
] })
|
|
17391
17559
|
] }),
|
|
17392
|
-
/* @__PURE__ */
|
|
17560
|
+
/* @__PURE__ */ jsx22(ChevronDown2, { "aria-hidden": "true", className: "shrink-0", size: 16 })
|
|
17393
17561
|
]
|
|
17394
17562
|
}
|
|
17395
17563
|
);
|
|
@@ -17402,10 +17570,10 @@ function AgentModelReasoningDropdown({
|
|
|
17402
17570
|
// it. Target the tooltip at a focusable wrapper span (Radix's pattern
|
|
17403
17571
|
// for disabled triggers) so hover/focus reliably surfaces the hint.
|
|
17404
17572
|
/* @__PURE__ */ jsxs11(Tooltip2, { children: [
|
|
17405
|
-
/* @__PURE__ */
|
|
17406
|
-
/* @__PURE__ */
|
|
17573
|
+
/* @__PURE__ */ jsx22(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ jsx22("span", { className: "inline-flex", tabIndex: 0, children: /* @__PURE__ */ jsx22(DropdownMenuTrigger2, { asChild: true, disabled: menuDisabled, children: trigger }) }) }),
|
|
17574
|
+
/* @__PURE__ */ jsx22(TooltipContent2, { side: "top", children: labels.loadingOptions })
|
|
17407
17575
|
] })
|
|
17408
|
-
) : /* @__PURE__ */
|
|
17576
|
+
) : /* @__PURE__ */ jsx22(DropdownMenuTrigger2, { asChild: true, disabled: menuDisabled, children: trigger }),
|
|
17409
17577
|
/* @__PURE__ */ jsxs11(
|
|
17410
17578
|
DropdownMenuContent2,
|
|
17411
17579
|
{
|
|
@@ -17420,8 +17588,8 @@ function AgentModelReasoningDropdown({
|
|
|
17420
17588
|
"data-agent-composer-settings-layout": "model-primary",
|
|
17421
17589
|
children: [
|
|
17422
17590
|
menu.model.show ? /* @__PURE__ */ jsxs11(Fragment4, { children: [
|
|
17423
|
-
/* @__PURE__ */
|
|
17424
|
-
/* @__PURE__ */
|
|
17591
|
+
/* @__PURE__ */ jsx22(DropdownMenuLabel2, { children: labels.modelSelectionLabel }),
|
|
17592
|
+
/* @__PURE__ */ jsx22(
|
|
17425
17593
|
ComposerMenuOptionItems,
|
|
17426
17594
|
{
|
|
17427
17595
|
options: menu.model.options,
|
|
@@ -17432,7 +17600,7 @@ function AgentModelReasoningDropdown({
|
|
|
17432
17600
|
}
|
|
17433
17601
|
)
|
|
17434
17602
|
] }) : null,
|
|
17435
|
-
menu.model.show && (menu.reasoning.show || menu.speed.show) ? /* @__PURE__ */
|
|
17603
|
+
menu.model.show && (menu.reasoning.show || menu.speed.show) ? /* @__PURE__ */ jsx22(DropdownMenuSeparator2, {}) : null,
|
|
17436
17604
|
menu.reasoning.show ? /* @__PURE__ */ jsxs11(DropdownMenuSub2, { children: [
|
|
17437
17605
|
/* @__PURE__ */ jsxs11(
|
|
17438
17606
|
DropdownMenuSubTrigger2,
|
|
@@ -17440,17 +17608,17 @@ function AgentModelReasoningDropdown({
|
|
|
17440
17608
|
className: cn2(AgentGUINode_styles_default.composerMenuItem, "[&>svg]:!ml-0.5"),
|
|
17441
17609
|
"data-agent-reasoning-submenu-trigger": "true",
|
|
17442
17610
|
children: [
|
|
17443
|
-
/* @__PURE__ */
|
|
17444
|
-
/* @__PURE__ */
|
|
17611
|
+
/* @__PURE__ */ jsx22("span", { className: "min-w-0 flex-1 truncate", children: labels.reasoningLabel }),
|
|
17612
|
+
/* @__PURE__ */ jsx22("span", { className: "text-[var(--text-tertiary)]", children: menu.reasoning.selectedLabel })
|
|
17445
17613
|
]
|
|
17446
17614
|
}
|
|
17447
17615
|
),
|
|
17448
|
-
/* @__PURE__ */
|
|
17616
|
+
/* @__PURE__ */ jsx22(
|
|
17449
17617
|
DropdownMenuSubContent2,
|
|
17450
17618
|
{
|
|
17451
17619
|
className: cn2(AgentGUINode_styles_default.composerMenuContent, "min-w-[132px]"),
|
|
17452
17620
|
"data-agent-composer-settings-layout": "model-submenu",
|
|
17453
|
-
children: /* @__PURE__ */
|
|
17621
|
+
children: /* @__PURE__ */ jsx22(
|
|
17454
17622
|
ComposerMenuOptionItems,
|
|
17455
17623
|
{
|
|
17456
17624
|
options: menu.reasoning.options,
|
|
@@ -17469,17 +17637,17 @@ function AgentModelReasoningDropdown({
|
|
|
17469
17637
|
className: cn2(AgentGUINode_styles_default.composerMenuItem, "[&>svg]:!ml-0.5"),
|
|
17470
17638
|
"data-agent-speed-submenu-trigger": "true",
|
|
17471
17639
|
children: [
|
|
17472
|
-
/* @__PURE__ */
|
|
17473
|
-
/* @__PURE__ */
|
|
17640
|
+
/* @__PURE__ */ jsx22("span", { className: "min-w-0 flex-1 truncate", children: labels.speedLabel }),
|
|
17641
|
+
/* @__PURE__ */ jsx22("span", { className: "text-[var(--text-tertiary)]", children: menu.speed.selectedLabel })
|
|
17474
17642
|
]
|
|
17475
17643
|
}
|
|
17476
17644
|
),
|
|
17477
|
-
/* @__PURE__ */
|
|
17645
|
+
/* @__PURE__ */ jsx22(
|
|
17478
17646
|
DropdownMenuSubContent2,
|
|
17479
17647
|
{
|
|
17480
17648
|
className: cn2(AgentGUINode_styles_default.composerMenuContent, "w-[200px]"),
|
|
17481
17649
|
"data-agent-composer-settings-layout": "model-submenu",
|
|
17482
|
-
children: /* @__PURE__ */
|
|
17650
|
+
children: /* @__PURE__ */ jsx22(
|
|
17483
17651
|
ComposerMenuOptionItems,
|
|
17484
17652
|
{
|
|
17485
17653
|
options: menu.speed.options,
|
|
@@ -17504,7 +17672,7 @@ function ComposerMenuOptionItems({
|
|
|
17504
17672
|
tooltipsEnabled = true,
|
|
17505
17673
|
onSelect
|
|
17506
17674
|
}) {
|
|
17507
|
-
return /* @__PURE__ */
|
|
17675
|
+
return /* @__PURE__ */ jsx22(Fragment4, { children: options.map((option) => {
|
|
17508
17676
|
const hasDescription = Boolean(option.description);
|
|
17509
17677
|
const showInlineDescription = descriptionPresentation === "inline" && hasDescription;
|
|
17510
17678
|
const showModelTooltip = descriptionPresentation === "model-tooltip";
|
|
@@ -17530,8 +17698,8 @@ function ComposerMenuOptionItems({
|
|
|
17530
17698
|
},
|
|
17531
17699
|
children: [
|
|
17532
17700
|
showModelTooltip ? /* @__PURE__ */ jsxs11("span", { className: "flex min-w-0 flex-1 items-baseline gap-2 overflow-hidden", children: [
|
|
17533
|
-
/* @__PURE__ */
|
|
17534
|
-
option.summary && option.summary.length > 0 ? /* @__PURE__ */
|
|
17701
|
+
/* @__PURE__ */ jsx22("span", { className: "min-w-0 truncate leading-[1.15]", children: option.label }),
|
|
17702
|
+
option.summary && option.summary.length > 0 ? /* @__PURE__ */ jsx22("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__ */ jsx22(
|
|
17535
17703
|
"span",
|
|
17536
17704
|
{
|
|
17537
17705
|
className: "max-w-[64px] truncate leading-[1.15]",
|
|
@@ -17548,8 +17716,8 @@ function ComposerMenuOptionItems({
|
|
|
17548
17716
|
),
|
|
17549
17717
|
children: [
|
|
17550
17718
|
/* @__PURE__ */ jsxs11("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
17551
|
-
/* @__PURE__ */
|
|
17552
|
-
showTooltipDescription && option.description ? /* @__PURE__ */
|
|
17719
|
+
/* @__PURE__ */ jsx22("span", { className: "min-w-0 truncate leading-[1.15]", children: option.label }),
|
|
17720
|
+
showTooltipDescription && option.description ? /* @__PURE__ */ jsx22(
|
|
17553
17721
|
ComposerOptionInfoTooltip,
|
|
17554
17722
|
{
|
|
17555
17723
|
description: option.description,
|
|
@@ -17557,11 +17725,11 @@ function ComposerMenuOptionItems({
|
|
|
17557
17725
|
}
|
|
17558
17726
|
) : null
|
|
17559
17727
|
] }),
|
|
17560
|
-
showInlineDescription && option.description ? /* @__PURE__ */
|
|
17728
|
+
showInlineDescription && option.description ? /* @__PURE__ */ jsx22("span", { className: "whitespace-normal text-[11px] leading-[1.2] text-[var(--text-tertiary)]", children: option.description }) : null
|
|
17561
17729
|
]
|
|
17562
17730
|
}
|
|
17563
17731
|
),
|
|
17564
|
-
/* @__PURE__ */
|
|
17732
|
+
/* @__PURE__ */ jsx22(
|
|
17565
17733
|
CheckIcon,
|
|
17566
17734
|
{
|
|
17567
17735
|
"aria-hidden": true,
|
|
@@ -17575,7 +17743,7 @@ function ComposerMenuOptionItems({
|
|
|
17575
17743
|
},
|
|
17576
17744
|
option.value
|
|
17577
17745
|
);
|
|
17578
|
-
return showModelTooltip ? /* @__PURE__ */
|
|
17746
|
+
return showModelTooltip ? /* @__PURE__ */ jsx22(
|
|
17579
17747
|
ComposerModelOptionTooltip,
|
|
17580
17748
|
{
|
|
17581
17749
|
option,
|
|
@@ -17595,7 +17763,7 @@ function ComposerModelOptionTooltip({
|
|
|
17595
17763
|
return children;
|
|
17596
17764
|
}
|
|
17597
17765
|
return /* @__PURE__ */ jsxs11(Tooltip2, { children: [
|
|
17598
|
-
/* @__PURE__ */
|
|
17766
|
+
/* @__PURE__ */ jsx22(TooltipTrigger2, { asChild: true, children: cloneElement(children, {
|
|
17599
17767
|
"data-agent-model-option-tooltip-trigger": "true"
|
|
17600
17768
|
}) }),
|
|
17601
17769
|
/* @__PURE__ */ jsxs11(
|
|
@@ -17607,10 +17775,10 @@ function ComposerModelOptionTooltip({
|
|
|
17607
17775
|
className: "flex w-[320px] max-w-[calc(100vw-32px)] flex-col items-start gap-0 whitespace-normal rounded-lg border border-[var(--line-2)] bg-[var(--background-fronted)] px-4 py-3 text-[13px] leading-[1.3] text-[var(--text-primary)] shadow-lg",
|
|
17608
17776
|
"data-agent-model-option-tooltip": "true",
|
|
17609
17777
|
children: [
|
|
17610
|
-
/* @__PURE__ */
|
|
17611
|
-
option.tooltip.description ? /* @__PURE__ */
|
|
17612
|
-
option.tooltip.contextWindow ? /* @__PURE__ */
|
|
17613
|
-
option.tooltip.version ? /* @__PURE__ */
|
|
17778
|
+
/* @__PURE__ */ jsx22("span", { className: "block text-[15px] font-semibold leading-[1.2]", children: option.tooltip.title }),
|
|
17779
|
+
option.tooltip.description ? /* @__PURE__ */ jsx22("span", { className: "mt-1.5 block text-[13px] leading-[1.35]", children: option.tooltip.description }) : null,
|
|
17780
|
+
option.tooltip.contextWindow ? /* @__PURE__ */ jsx22("span", { className: "mt-4 block", children: option.tooltip.contextWindow }) : null,
|
|
17781
|
+
option.tooltip.version ? /* @__PURE__ */ jsx22("span", { className: "mt-4 block italic", children: option.tooltip.version }) : null
|
|
17614
17782
|
]
|
|
17615
17783
|
}
|
|
17616
17784
|
)
|
|
@@ -17829,7 +17997,7 @@ function fileToBase64(file) {
|
|
|
17829
17997
|
}
|
|
17830
17998
|
|
|
17831
17999
|
// agent-gui/agentGuiNode/agentRichText/AgentRichTextEditor.tsx
|
|
17832
|
-
import { jsx as
|
|
18000
|
+
import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
17833
18001
|
function buildWorkspaceFileMentionDropContent(entries) {
|
|
17834
18002
|
return entries.flatMap((entry) => [
|
|
17835
18003
|
{
|
|
@@ -18528,7 +18696,7 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
|
|
|
18528
18696
|
lastEmittedPromptRef.current = value;
|
|
18529
18697
|
}, [availableCapabilities, availableSkills, editor, value]);
|
|
18530
18698
|
return /* @__PURE__ */ jsxs12("div", { className: "relative min-w-0", onKeyDownCapture: handleKeyDownCapture, children: [
|
|
18531
|
-
editor ? /* @__PURE__ */
|
|
18699
|
+
editor ? /* @__PURE__ */ jsx23(EditorContent, { editor }) : /* @__PURE__ */ jsx23(
|
|
18532
18700
|
"div",
|
|
18533
18701
|
{
|
|
18534
18702
|
role: "textbox",
|
|
@@ -18556,7 +18724,7 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
|
|
|
18556
18724
|
onContextMenu: (event) => event.preventDefault(),
|
|
18557
18725
|
onPointerDown: (event) => event.stopPropagation(),
|
|
18558
18726
|
children: [
|
|
18559
|
-
/* @__PURE__ */
|
|
18727
|
+
/* @__PURE__ */ jsx23(
|
|
18560
18728
|
AgentRichTextContextMenuButton,
|
|
18561
18729
|
{
|
|
18562
18730
|
disabled: !contextMenu.canEdit || !contextMenu.hasSelection,
|
|
@@ -18564,7 +18732,7 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
|
|
|
18564
18732
|
onSelect: cutSelection
|
|
18565
18733
|
}
|
|
18566
18734
|
),
|
|
18567
|
-
/* @__PURE__ */
|
|
18735
|
+
/* @__PURE__ */ jsx23(
|
|
18568
18736
|
AgentRichTextContextMenuButton,
|
|
18569
18737
|
{
|
|
18570
18738
|
disabled: !contextMenu.hasSelection,
|
|
@@ -18572,7 +18740,7 @@ var AgentRichTextEditor = forwardRef3(function AgentRichTextEditor2({
|
|
|
18572
18740
|
onSelect: copySelection
|
|
18573
18741
|
}
|
|
18574
18742
|
),
|
|
18575
|
-
/* @__PURE__ */
|
|
18743
|
+
/* @__PURE__ */ jsx23(
|
|
18576
18744
|
AgentRichTextContextMenuButton,
|
|
18577
18745
|
{
|
|
18578
18746
|
disabled: !contextMenu.canEdit,
|
|
@@ -18602,7 +18770,7 @@ function AgentRichTextContextMenuButton({
|
|
|
18602
18770
|
selectionStartedRef.current = false;
|
|
18603
18771
|
});
|
|
18604
18772
|
}, [disabled, onSelect]);
|
|
18605
|
-
return /* @__PURE__ */
|
|
18773
|
+
return /* @__PURE__ */ jsx23(
|
|
18606
18774
|
"button",
|
|
18607
18775
|
{
|
|
18608
18776
|
role: "menuitem",
|
|
@@ -18627,7 +18795,7 @@ function AgentRichTextContextMenuButton({
|
|
|
18627
18795
|
|
|
18628
18796
|
// agent-gui/agentGuiNode/AgentSlashStatusPanel.tsx
|
|
18629
18797
|
import { Fragment as Fragment5 } from "react";
|
|
18630
|
-
import { Fragment as Fragment6, jsx as
|
|
18798
|
+
import { Fragment as Fragment6, jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
18631
18799
|
function formatSlashStatusTokenCount(value) {
|
|
18632
18800
|
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
18633
18801
|
return "";
|
|
@@ -18669,8 +18837,8 @@ function AgentSlashStatusPanel({
|
|
|
18669
18837
|
role: "status",
|
|
18670
18838
|
children: [
|
|
18671
18839
|
/* @__PURE__ */ jsxs13("div", { className: "mb-2 flex items-center justify-between gap-2", children: [
|
|
18672
|
-
/* @__PURE__ */
|
|
18673
|
-
/* @__PURE__ */
|
|
18840
|
+
/* @__PURE__ */ jsx24("h3", { className: "truncate text-[11px] font-semibold leading-4", children: labels.slashStatusTitle }),
|
|
18841
|
+
/* @__PURE__ */ jsx24(
|
|
18674
18842
|
"button",
|
|
18675
18843
|
{
|
|
18676
18844
|
className: "nodrag shrink-0 rounded-[5px] px-1.5 py-0.5 text-[11px] leading-4 text-muted-foreground transition-colors hover:bg-background-hover hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring [-webkit-app-region:no-drag]",
|
|
@@ -18686,32 +18854,32 @@ function AgentSlashStatusPanel({
|
|
|
18686
18854
|
labels.slashStatusSession,
|
|
18687
18855
|
":"
|
|
18688
18856
|
] }),
|
|
18689
|
-
/* @__PURE__ */
|
|
18857
|
+
/* @__PURE__ */ jsx24("dd", { className: "min-w-0 truncate", children: agentSessionId }),
|
|
18690
18858
|
baseUrl ? /* @__PURE__ */ jsxs13(Fragment6, { children: [
|
|
18691
18859
|
/* @__PURE__ */ jsxs13("dt", { className: "text-muted-foreground", children: [
|
|
18692
18860
|
labels.slashStatusBaseUrl,
|
|
18693
18861
|
":"
|
|
18694
18862
|
] }),
|
|
18695
|
-
/* @__PURE__ */
|
|
18863
|
+
/* @__PURE__ */ jsx24("dd", { className: "min-w-0 truncate", children: baseUrl })
|
|
18696
18864
|
] }) : null,
|
|
18697
18865
|
/* @__PURE__ */ jsxs13("dt", { className: "text-muted-foreground", children: [
|
|
18698
18866
|
labels.slashStatusContext,
|
|
18699
18867
|
":"
|
|
18700
18868
|
] }),
|
|
18701
|
-
/* @__PURE__ */
|
|
18869
|
+
/* @__PURE__ */ jsx24("dd", { className: "min-w-0", children: slashStatusContextText(status, labels) })
|
|
18702
18870
|
] }) : null,
|
|
18703
18871
|
limits.map((limit) => /* @__PURE__ */ jsxs13(Fragment5, { children: [
|
|
18704
18872
|
/* @__PURE__ */ jsxs13("dt", { className: "text-muted-foreground", children: [
|
|
18705
18873
|
limit.label,
|
|
18706
18874
|
":"
|
|
18707
18875
|
] }),
|
|
18708
|
-
/* @__PURE__ */
|
|
18709
|
-
typeof limit.percentRemaining === "number" && Number.isFinite(limit.percentRemaining) ? /* @__PURE__ */
|
|
18876
|
+
/* @__PURE__ */ jsx24("dd", { className: "min-w-0", children: /* @__PURE__ */ jsxs13("span", { className: "agent-gui-node__slash-status-limit", children: [
|
|
18877
|
+
typeof limit.percentRemaining === "number" && Number.isFinite(limit.percentRemaining) ? /* @__PURE__ */ jsx24(
|
|
18710
18878
|
"span",
|
|
18711
18879
|
{
|
|
18712
18880
|
"aria-hidden": "true",
|
|
18713
18881
|
className: "agent-gui-node__slash-status-limit-meter",
|
|
18714
|
-
children: /* @__PURE__ */
|
|
18882
|
+
children: /* @__PURE__ */ jsx24(
|
|
18715
18883
|
"span",
|
|
18716
18884
|
{
|
|
18717
18885
|
className: "agent-gui-node__slash-status-limit-meter-fill",
|
|
@@ -18741,7 +18909,7 @@ function AgentSlashStatusPanel({
|
|
|
18741
18909
|
labels.slashStatusLimits,
|
|
18742
18910
|
":"
|
|
18743
18911
|
] }),
|
|
18744
|
-
/* @__PURE__ */
|
|
18912
|
+
/* @__PURE__ */ jsx24("dd", { className: "min-w-0 text-muted-foreground", children: labels.slashStatusLimitsUnavailable })
|
|
18745
18913
|
] }) : null
|
|
18746
18914
|
] })
|
|
18747
18915
|
]
|
|
@@ -18845,7 +19013,7 @@ var AgentReviewBranchController = class {
|
|
|
18845
19013
|
};
|
|
18846
19014
|
|
|
18847
19015
|
// agent-gui/agentGuiNode/AgentReviewPickerPanel.tsx
|
|
18848
|
-
import { jsx as
|
|
19016
|
+
import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
18849
19017
|
var reviewMenuStyles = {
|
|
18850
19018
|
panel: "agent-gui-node__slash-status-panel nodrag flex max-h-[280px] flex-col gap-1 overflow-hidden [-webkit-app-region:no-drag]",
|
|
18851
19019
|
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]",
|
|
@@ -19049,7 +19217,7 @@ function AgentReviewPickerPanel({
|
|
|
19049
19217
|
role: "dialog",
|
|
19050
19218
|
"aria-label": labels.title,
|
|
19051
19219
|
children: [
|
|
19052
|
-
/* @__PURE__ */
|
|
19220
|
+
/* @__PURE__ */ jsx25(
|
|
19053
19221
|
"input",
|
|
19054
19222
|
{
|
|
19055
19223
|
ref: searchInputRef,
|
|
@@ -19065,15 +19233,15 @@ function AgentReviewPickerPanel({
|
|
|
19065
19233
|
onKeyDown: handleKeyDown
|
|
19066
19234
|
}
|
|
19067
19235
|
),
|
|
19068
|
-
/* @__PURE__ */
|
|
19236
|
+
/* @__PURE__ */ jsx25(
|
|
19069
19237
|
"div",
|
|
19070
19238
|
{
|
|
19071
19239
|
className: reviewMenuStyles.list,
|
|
19072
19240
|
role: "listbox",
|
|
19073
19241
|
"aria-label": labels.title,
|
|
19074
|
-
children: entries.length === 0 ? /* @__PURE__ */
|
|
19242
|
+
children: entries.length === 0 ? /* @__PURE__ */ jsx25("div", { className: reviewMenuStyles.message, children: emptyMessage }) : entries.map((entry, index) => {
|
|
19075
19243
|
const isHighlighted = index === safeHighlightedIndex;
|
|
19076
|
-
return /* @__PURE__ */
|
|
19244
|
+
return /* @__PURE__ */ jsx25(
|
|
19077
19245
|
"button",
|
|
19078
19246
|
{
|
|
19079
19247
|
ref: isHighlighted ? highlightedOptionRef : null,
|
|
@@ -19094,8 +19262,8 @@ function AgentReviewPickerPanel({
|
|
|
19094
19262
|
}
|
|
19095
19263
|
},
|
|
19096
19264
|
children: /* @__PURE__ */ jsxs14("span", { className: reviewMenuStyles.copy, children: [
|
|
19097
|
-
/* @__PURE__ */
|
|
19098
|
-
entry.description ? /* @__PURE__ */
|
|
19265
|
+
/* @__PURE__ */ jsx25("span", { className: reviewMenuStyles.name, children: entry.label }),
|
|
19266
|
+
entry.description ? /* @__PURE__ */ jsx25("span", { className: reviewMenuStyles.description, children: entry.description }) : null
|
|
19099
19267
|
] })
|
|
19100
19268
|
},
|
|
19101
19269
|
entry.key
|
|
@@ -19119,7 +19287,7 @@ import {
|
|
|
19119
19287
|
useState as useState10
|
|
19120
19288
|
} from "react";
|
|
19121
19289
|
import { createPortal as createPortal2 } from "react-dom";
|
|
19122
|
-
import { jsx as
|
|
19290
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
19123
19291
|
var COMPOSER_MENU_GAP_PX = 8;
|
|
19124
19292
|
var COMPOSER_MENU_VIEWPORT_PADDING_PX = 8;
|
|
19125
19293
|
var COMPOSER_MENU_MIN_HEIGHT_PX = 280;
|
|
@@ -19337,7 +19505,7 @@ var ComposerFloatingMenuSurface = forwardRef4(function ComposerFloatingMenuSurfa
|
|
|
19337
19505
|
}
|
|
19338
19506
|
const portalTarget = frame?.portalTarget ?? (anchorRef.current ? resolveComposerMenuPortalTarget(anchorRef.current) : document.body);
|
|
19339
19507
|
return createPortal2(
|
|
19340
|
-
/* @__PURE__ */
|
|
19508
|
+
/* @__PURE__ */ jsx26(
|
|
19341
19509
|
"div",
|
|
19342
19510
|
{
|
|
19343
19511
|
"data-testid": testId,
|
|
@@ -19348,7 +19516,7 @@ var ComposerFloatingMenuSurface = forwardRef4(function ComposerFloatingMenuSurfa
|
|
|
19348
19516
|
className
|
|
19349
19517
|
),
|
|
19350
19518
|
style,
|
|
19351
|
-
children: contentClassName ? /* @__PURE__ */
|
|
19519
|
+
children: contentClassName ? /* @__PURE__ */ jsx26("div", { className: contentClassName, children }) : children
|
|
19352
19520
|
}
|
|
19353
19521
|
),
|
|
19354
19522
|
portalTarget
|
|
@@ -19356,11 +19524,12 @@ var ComposerFloatingMenuSurface = forwardRef4(function ComposerFloatingMenuSurfa
|
|
|
19356
19524
|
});
|
|
19357
19525
|
|
|
19358
19526
|
// agent-gui/agentGuiNode/AgentComposer.tsx
|
|
19359
|
-
import { jsx as
|
|
19527
|
+
import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
19360
19528
|
var USAGE_POPOVER_HOVER_DELAY_MS = 120;
|
|
19361
19529
|
var DOCK_COMPOSER_INPUT_MIN_HEIGHT = 56;
|
|
19362
19530
|
var DOCK_COMPOSER_INPUT_MAX_HEIGHT = 120;
|
|
19363
19531
|
var DOCK_COMPOSER_INPUT_BORDER_HEIGHT = 2;
|
|
19532
|
+
var DOCK_COMPOSER_INPUT_PADDING_BLOCK_HEIGHT = 24;
|
|
19364
19533
|
var DOCK_COMPOSER_INPUT_TEXT_CHROME_HEIGHT = 26;
|
|
19365
19534
|
function agentUsageChipLevel(percentUsed) {
|
|
19366
19535
|
if (percentUsed >= USAGE_CRITICAL_PERCENT) {
|
|
@@ -19454,7 +19623,7 @@ function AgentUsageChip({
|
|
|
19454
19623
|
},
|
|
19455
19624
|
[clearUsagePopoverCloseTimer, clearUsagePopoverHoverTimer]
|
|
19456
19625
|
);
|
|
19457
|
-
const trigger = /* @__PURE__ */
|
|
19626
|
+
const trigger = /* @__PURE__ */ jsx27(
|
|
19458
19627
|
"button",
|
|
19459
19628
|
{
|
|
19460
19629
|
type: "button",
|
|
@@ -19478,7 +19647,7 @@ function AgentUsageChip({
|
|
|
19478
19647
|
style: {
|
|
19479
19648
|
background: `conic-gradient(${ringColor} ${clampedPercent}%, color-mix(in srgb, ${ringColor} 16%, transparent) 0)`
|
|
19480
19649
|
},
|
|
19481
|
-
children: /* @__PURE__ */
|
|
19650
|
+
children: /* @__PURE__ */ jsx27(
|
|
19482
19651
|
"span",
|
|
19483
19652
|
{
|
|
19484
19653
|
"aria-hidden": "true",
|
|
@@ -19496,8 +19665,8 @@ function AgentUsageChip({
|
|
|
19496
19665
|
open: usagePopoverOpen,
|
|
19497
19666
|
onOpenChange: handleUsagePopoverOpenChange,
|
|
19498
19667
|
children: [
|
|
19499
|
-
/* @__PURE__ */
|
|
19500
|
-
usagePopoverOpen ? /* @__PURE__ */
|
|
19668
|
+
/* @__PURE__ */ jsx27(PopoverTrigger, { asChild: true, children: trigger }),
|
|
19669
|
+
usagePopoverOpen ? /* @__PURE__ */ jsx27(
|
|
19501
19670
|
PopoverContent,
|
|
19502
19671
|
{
|
|
19503
19672
|
side: "bottom",
|
|
@@ -19508,8 +19677,8 @@ function AgentUsageChip({
|
|
|
19508
19677
|
onPointerEnter: openUsagePopover,
|
|
19509
19678
|
onPointerLeave: scheduleUsagePopoverClose,
|
|
19510
19679
|
children: /* @__PURE__ */ jsxs15("div", { className: "flex min-w-0 flex-col gap-3", children: [
|
|
19511
|
-
/* @__PURE__ */
|
|
19512
|
-
showTokens ? /* @__PURE__ */
|
|
19680
|
+
/* @__PURE__ */ jsx27("span", { className: "text-[13px] font-semibold leading-4", children: labels.usagePopoverTitle }),
|
|
19681
|
+
showTokens ? /* @__PURE__ */ jsx27(
|
|
19513
19682
|
AgentUsageMeter,
|
|
19514
19683
|
{
|
|
19515
19684
|
label: labels.usageContextWindowLabel,
|
|
@@ -19519,7 +19688,7 @@ function AgentUsageChip({
|
|
|
19519
19688
|
testId: "agent-gui-usage-context-meter"
|
|
19520
19689
|
}
|
|
19521
19690
|
) : null,
|
|
19522
|
-
compactSupported && onCompact ? /* @__PURE__ */
|
|
19691
|
+
compactSupported && onCompact ? /* @__PURE__ */ jsx27(
|
|
19523
19692
|
"button",
|
|
19524
19693
|
{
|
|
19525
19694
|
type: "button",
|
|
@@ -19559,6 +19728,7 @@ var EMPTY_CONTEXT_MENTION_PROVIDERS = [];
|
|
|
19559
19728
|
var EMPTY_PROMPT_TIPS = [];
|
|
19560
19729
|
var EMPTY_PROVIDER_SKILLS = [];
|
|
19561
19730
|
var EMPTY_WORKSPACE_APP_ICONS2 = [];
|
|
19731
|
+
var GOAL_MODE_SLASH_COMMAND = "/goal";
|
|
19562
19732
|
var PROMPT_TIP_CYCLE_STEP_MS = 5200;
|
|
19563
19733
|
var MENTION_PALETTE_DISMISS_INTERACTION_SELECTOR = [
|
|
19564
19734
|
"[data-node-drag-handle]",
|
|
@@ -19624,6 +19794,7 @@ function AgentComposer({
|
|
|
19624
19794
|
isInterrupting,
|
|
19625
19795
|
isSendingTurn,
|
|
19626
19796
|
isSubmittingPrompt,
|
|
19797
|
+
uiLanguage = "en",
|
|
19627
19798
|
isActive = true,
|
|
19628
19799
|
previewMode = false,
|
|
19629
19800
|
promptImagesSupported = true,
|
|
@@ -19653,6 +19824,8 @@ function AgentComposer({
|
|
|
19653
19824
|
}) {
|
|
19654
19825
|
"use memo";
|
|
19655
19826
|
const draftPrompt = draftContent.prompt;
|
|
19827
|
+
const goalDraftObjective = goalDraftObjectiveFromPrompt(draftPrompt);
|
|
19828
|
+
const isGoalModeActive = goalDraftObjective !== null;
|
|
19656
19829
|
const draftImages = draftContent.images;
|
|
19657
19830
|
const draftFiles = draftContent.files ?? [];
|
|
19658
19831
|
const agentActivityRuntime = useOptionalAgentActivityRuntime();
|
|
@@ -19665,7 +19838,9 @@ function AgentComposer({
|
|
|
19665
19838
|
shouldResetMentionHighlightToFilter,
|
|
19666
19839
|
setShouldResetMentionHighlightToFilter
|
|
19667
19840
|
] = useState11(false);
|
|
19668
|
-
const [paletteDraftPrompt, setPaletteDraftPrompt] = useState11(
|
|
19841
|
+
const [paletteDraftPrompt, setPaletteDraftPrompt] = useState11(
|
|
19842
|
+
goalDraftObjective ?? draftPrompt
|
|
19843
|
+
);
|
|
19669
19844
|
const [fileMentionSuggestion, setFileMentionSuggestion] = useState11(null);
|
|
19670
19845
|
const [isSelectedProjectMissing, setIsSelectedProjectMissing] = useState11(false);
|
|
19671
19846
|
const [isSlashStatusPanelOpen, setIsSlashStatusPanelOpen] = useState11(false);
|
|
@@ -19710,7 +19885,7 @@ function AgentComposer({
|
|
|
19710
19885
|
const [dockComposerTextHeight, setDockComposerTextHeight] = useState11(
|
|
19711
19886
|
DOCK_COMPOSER_INPUT_MIN_HEIGHT
|
|
19712
19887
|
);
|
|
19713
|
-
const slashQuery = getPromptStartSlashCommandQuery(paletteDraftPrompt);
|
|
19888
|
+
const slashQuery = isGoalModeActive ? null : getPromptStartSlashCommandQuery(paletteDraftPrompt);
|
|
19714
19889
|
const promptBeforeSelection = editorHandleRef.current?.getPromptTextBeforeSelection() ?? "";
|
|
19715
19890
|
const skillQueryDraft = promptBeforeSelection || paletteDraftPrompt;
|
|
19716
19891
|
const skillQueryMatch = getAgentComposerTriggerQueryMatch(skillQueryDraft);
|
|
@@ -19792,11 +19967,16 @@ function AgentComposer({
|
|
|
19792
19967
|
};
|
|
19793
19968
|
return [capabilityEntry];
|
|
19794
19969
|
}
|
|
19970
|
+
const commandDescription = slashCommandDescriptionForDisplay(
|
|
19971
|
+
command,
|
|
19972
|
+
labels
|
|
19973
|
+
);
|
|
19795
19974
|
const commandEntry = {
|
|
19796
19975
|
type: "command",
|
|
19797
19976
|
key: `command:${command.name}`,
|
|
19798
19977
|
label: labelForSlashCommand(command),
|
|
19799
|
-
...command
|
|
19978
|
+
...slashCommandLabelForDisplay(command, labels, uiLanguage),
|
|
19979
|
+
...commandDescription ? { description: commandDescription } : {},
|
|
19800
19980
|
command
|
|
19801
19981
|
};
|
|
19802
19982
|
return [commandEntry];
|
|
@@ -19832,6 +20012,25 @@ function AgentComposer({
|
|
|
19832
20012
|
labels.computerUseCapabilitySetupRequiredDescription,
|
|
19833
20013
|
labels.computerUseCapabilityLabel,
|
|
19834
20014
|
labels.computerUseCapabilitySettingsLabel,
|
|
20015
|
+
labels.slashCommandCompactLabel,
|
|
20016
|
+
labels.slashCommandContextLabel,
|
|
20017
|
+
labels.slashCommandFastLabel,
|
|
20018
|
+
labels.slashCommandGoalLabel,
|
|
20019
|
+
labels.slashCommandInitLabel,
|
|
20020
|
+
labels.slashCommandPlanLabel,
|
|
20021
|
+
labels.slashCommandReviewLabel,
|
|
20022
|
+
labels.slashCommandStatusLabel,
|
|
20023
|
+
labels.slashCommandUsageLabel,
|
|
20024
|
+
labels.slashCommandCompactDescription,
|
|
20025
|
+
labels.slashCommandContextDescription,
|
|
20026
|
+
labels.slashCommandFastDescription,
|
|
20027
|
+
labels.slashCommandGoalDescription,
|
|
20028
|
+
labels.slashCommandInitDescription,
|
|
20029
|
+
labels.slashCommandPlanDescription,
|
|
20030
|
+
labels.slashCommandReviewDescription,
|
|
20031
|
+
labels.slashCommandStatusDescription,
|
|
20032
|
+
labels.slashCommandUsageDescription,
|
|
20033
|
+
uiLanguage,
|
|
19835
20034
|
skillQueryMatch?.prefix
|
|
19836
20035
|
]);
|
|
19837
20036
|
const showFileMentionPalette = !disabled && isPaletteOpen && fileMentionSuggestion !== null;
|
|
@@ -19894,7 +20093,7 @@ function AgentComposer({
|
|
|
19894
20093
|
useEffect11(() => {
|
|
19895
20094
|
const isExternalDraftReplacement = draftPromptRef.current !== draftPrompt;
|
|
19896
20095
|
draftPromptRef.current = draftPrompt;
|
|
19897
|
-
setPaletteDraftPrompt(draftPrompt);
|
|
20096
|
+
setPaletteDraftPrompt(goalDraftObjective ?? draftPrompt);
|
|
19898
20097
|
if (isExternalDraftReplacement && draftPrompt) {
|
|
19899
20098
|
window.requestAnimationFrame(() => {
|
|
19900
20099
|
window.requestAnimationFrame(() => {
|
|
@@ -19902,7 +20101,7 @@ function AgentComposer({
|
|
|
19902
20101
|
});
|
|
19903
20102
|
});
|
|
19904
20103
|
}
|
|
19905
|
-
}, [draftPrompt]);
|
|
20104
|
+
}, [draftPrompt, goalDraftObjective]);
|
|
19906
20105
|
useEffect11(() => {
|
|
19907
20106
|
draftImagesRef.current = draftImages;
|
|
19908
20107
|
}, [draftImages]);
|
|
@@ -19926,6 +20125,7 @@ function AgentComposer({
|
|
|
19926
20125
|
setIsSlashStatusPanelOpen(false);
|
|
19927
20126
|
}, []);
|
|
19928
20127
|
const settingsControlsDisabled = isSendingTurn || isSubmittingPrompt || showStopButton;
|
|
20128
|
+
const composerControlsHardDisabled = isSelectedProjectMissing || isSubmittingPrompt || disabled && !isSendingTurn && !showStopButton;
|
|
19929
20129
|
const closeReviewPicker = useCallback10(() => {
|
|
19930
20130
|
setIsReviewPickerOpen(false);
|
|
19931
20131
|
}, []);
|
|
@@ -19980,6 +20180,18 @@ function AgentComposer({
|
|
|
19980
20180
|
setIsReviewPickerOpen(true);
|
|
19981
20181
|
return;
|
|
19982
20182
|
}
|
|
20183
|
+
if (effect.kind === "activateGoalMode") {
|
|
20184
|
+
draftPromptRef.current = GOAL_MODE_SLASH_COMMAND;
|
|
20185
|
+
setPaletteDraftPrompt("");
|
|
20186
|
+
setIsSlashStatusPanelOpen(false);
|
|
20187
|
+
setIsReviewPickerOpen(false);
|
|
20188
|
+
setIsPaletteOpen(false);
|
|
20189
|
+
onDraftContentChange({
|
|
20190
|
+
...draftContent,
|
|
20191
|
+
prompt: GOAL_MODE_SLASH_COMMAND
|
|
20192
|
+
});
|
|
20193
|
+
return;
|
|
20194
|
+
}
|
|
19983
20195
|
if (effect.kind === "togglePlanMode") {
|
|
19984
20196
|
clearSlashCommandDraft();
|
|
19985
20197
|
onSettingsChange({
|
|
@@ -20326,6 +20538,12 @@ function AgentComposer({
|
|
|
20326
20538
|
},
|
|
20327
20539
|
[createFileMentionPaletteAdapter]
|
|
20328
20540
|
);
|
|
20541
|
+
const navigateIntoFileMentionItem = useCallback10(
|
|
20542
|
+
(item) => {
|
|
20543
|
+
mentionControllerRef.current?.selectAgentGeneratedMentionItem(item);
|
|
20544
|
+
},
|
|
20545
|
+
[]
|
|
20546
|
+
);
|
|
20329
20547
|
const handleFileMentionKeyDown = useCallback10(
|
|
20330
20548
|
(event) => {
|
|
20331
20549
|
if (!showFileMentionPalette) {
|
|
@@ -20475,12 +20693,43 @@ function AgentComposer({
|
|
|
20475
20693
|
}, [closeOpenPalette, showFileMentionPalette]);
|
|
20476
20694
|
const handleDraftChange = useStableEventCallback(
|
|
20477
20695
|
(nextDraft) => {
|
|
20696
|
+
if (isGoalModeActive) {
|
|
20697
|
+
const nextGoalPrompt = buildGoalModePrompt(nextDraft);
|
|
20698
|
+
draftPromptRef.current = nextGoalPrompt;
|
|
20699
|
+
setPaletteDraftPrompt(nextDraft);
|
|
20700
|
+
setIsPaletteOpen(true);
|
|
20701
|
+
onDraftContentChange({ ...draftContent, prompt: nextGoalPrompt });
|
|
20702
|
+
return;
|
|
20703
|
+
}
|
|
20704
|
+
const nextGoalObjective = goalDraftObjectiveFromPrompt(nextDraft);
|
|
20705
|
+
if (nextGoalObjective !== null) {
|
|
20706
|
+
const nextGoalPrompt = buildGoalModePrompt(nextGoalObjective);
|
|
20707
|
+
draftPromptRef.current = nextGoalPrompt;
|
|
20708
|
+
setPaletteDraftPrompt(nextGoalObjective);
|
|
20709
|
+
setIsPaletteOpen(true);
|
|
20710
|
+
onDraftContentChange({ ...draftContent, prompt: nextGoalPrompt });
|
|
20711
|
+
return;
|
|
20712
|
+
}
|
|
20478
20713
|
draftPromptRef.current = nextDraft;
|
|
20479
20714
|
setPaletteDraftPrompt(nextDraft);
|
|
20480
20715
|
setIsPaletteOpen(true);
|
|
20481
20716
|
onDraftContentChange({ ...draftContent, prompt: nextDraft });
|
|
20482
20717
|
}
|
|
20483
20718
|
);
|
|
20719
|
+
const clearGoalModeBadge = useCallback10(() => {
|
|
20720
|
+
if (!isGoalModeActive) {
|
|
20721
|
+
return;
|
|
20722
|
+
}
|
|
20723
|
+
const nextPrompt = goalDraftObjective ?? "";
|
|
20724
|
+
draftPromptRef.current = nextPrompt;
|
|
20725
|
+
setPaletteDraftPrompt(nextPrompt);
|
|
20726
|
+
onDraftContentChange({ ...draftContent, prompt: nextPrompt });
|
|
20727
|
+
}, [
|
|
20728
|
+
draftContent,
|
|
20729
|
+
goalDraftObjective,
|
|
20730
|
+
isGoalModeActive,
|
|
20731
|
+
onDraftContentChange
|
|
20732
|
+
]);
|
|
20484
20733
|
const addDraftImages = useCallback10(
|
|
20485
20734
|
(images) => {
|
|
20486
20735
|
if (images.length === 0) {
|
|
@@ -20942,7 +21191,8 @@ function AgentComposer({
|
|
|
20942
21191
|
editor.scrollHeight + DOCK_COMPOSER_INPUT_TEXT_CHROME_HEIGHT
|
|
20943
21192
|
)
|
|
20944
21193
|
);
|
|
20945
|
-
const
|
|
21194
|
+
const attachmentChromeHeight = attachmentHeight > 0 ? DOCK_COMPOSER_INPUT_PADDING_BLOCK_HEIGHT : 0;
|
|
21195
|
+
const maxHeight = DOCK_COMPOSER_INPUT_MAX_HEIGHT + Math.max(0, attachmentHeight) + attachmentChromeHeight;
|
|
20946
21196
|
const previousHeight = inputArea.style.height;
|
|
20947
21197
|
const previousInputHeight = inputArea.style.getPropertyValue(
|
|
20948
21198
|
"--agent-gui-composer-input-height"
|
|
@@ -20996,7 +21246,7 @@ function AgentComposer({
|
|
|
20996
21246
|
}
|
|
20997
21247
|
const measuredHeight = Math.max(
|
|
20998
21248
|
contentHeight + DOCK_COMPOSER_INPUT_BORDER_HEIGHT,
|
|
20999
|
-
attachmentHeight + textHeight
|
|
21249
|
+
attachmentHeight + textHeight + attachmentChromeHeight
|
|
21000
21250
|
);
|
|
21001
21251
|
const nextHeight = Math.min(
|
|
21002
21252
|
maxHeight,
|
|
@@ -21098,7 +21348,7 @@ function AgentComposer({
|
|
|
21098
21348
|
title: isInterrupting ? labels.stopping : labels.stop,
|
|
21099
21349
|
onClick: onInterruptCurrentTurn,
|
|
21100
21350
|
children: [
|
|
21101
|
-
/* @__PURE__ */
|
|
21351
|
+
/* @__PURE__ */ jsx27(
|
|
21102
21352
|
Spinner,
|
|
21103
21353
|
{
|
|
21104
21354
|
className: "size-7 text-[var(--text-primary)]",
|
|
@@ -21108,7 +21358,7 @@ function AgentComposer({
|
|
|
21108
21358
|
testId: "agent-gui-composer-stop-spinner"
|
|
21109
21359
|
}
|
|
21110
21360
|
),
|
|
21111
|
-
/* @__PURE__ */
|
|
21361
|
+
/* @__PURE__ */ jsx27(
|
|
21112
21362
|
"span",
|
|
21113
21363
|
{
|
|
21114
21364
|
"aria-hidden": "true",
|
|
@@ -21118,7 +21368,7 @@ function AgentComposer({
|
|
|
21118
21368
|
)
|
|
21119
21369
|
]
|
|
21120
21370
|
}
|
|
21121
|
-
) : /* @__PURE__ */
|
|
21371
|
+
) : /* @__PURE__ */ jsx27(
|
|
21122
21372
|
"button",
|
|
21123
21373
|
{
|
|
21124
21374
|
type: "submit",
|
|
@@ -21128,7 +21378,7 @@ function AgentComposer({
|
|
|
21128
21378
|
"aria-label": labels.send,
|
|
21129
21379
|
title: labels.send,
|
|
21130
21380
|
"aria-busy": sendButtonBusy,
|
|
21131
|
-
children: sendButtonBusy ? /* @__PURE__ */
|
|
21381
|
+
children: sendButtonBusy ? /* @__PURE__ */ jsx27(
|
|
21132
21382
|
Spinner,
|
|
21133
21383
|
{
|
|
21134
21384
|
className: "text-[var(--text-primary)]",
|
|
@@ -21137,10 +21387,10 @@ function AgentComposer({
|
|
|
21137
21387
|
trackColor: "var(--transparency-hover)",
|
|
21138
21388
|
testId: "agent-gui-composer-send-spinner"
|
|
21139
21389
|
}
|
|
21140
|
-
) : /* @__PURE__ */
|
|
21390
|
+
) : /* @__PURE__ */ jsx27(SendFilledIcon, {})
|
|
21141
21391
|
}
|
|
21142
21392
|
);
|
|
21143
|
-
const promptTipNode = activePromptTip ? /* @__PURE__ */
|
|
21393
|
+
const promptTipNode = activePromptTip ? /* @__PURE__ */ jsx27(
|
|
21144
21394
|
"span",
|
|
21145
21395
|
{
|
|
21146
21396
|
ref: promptTipRef,
|
|
@@ -21148,14 +21398,14 @@ function AgentComposer({
|
|
|
21148
21398
|
"data-rotating": promptTips.length > 1 ? "true" : void 0,
|
|
21149
21399
|
"data-testid": "agent-gui-prompt-tip",
|
|
21150
21400
|
style: promptTipStyle,
|
|
21151
|
-
children: /* @__PURE__ */
|
|
21401
|
+
children: /* @__PURE__ */ jsx27("span", { className: AgentGUINode_styles_default.composerPromptTipTrack, children: rotatingPromptTips.map((tip, index) => /* @__PURE__ */ jsxs15(
|
|
21152
21402
|
"span",
|
|
21153
21403
|
{
|
|
21154
21404
|
className: AgentGUINode_styles_default.composerPromptTipItem,
|
|
21155
21405
|
"aria-hidden": index >= promptTips.length ? true : void 0,
|
|
21156
21406
|
children: [
|
|
21157
|
-
/* @__PURE__ */
|
|
21158
|
-
/* @__PURE__ */
|
|
21407
|
+
/* @__PURE__ */ jsx27("span", { className: AgentGUINode_styles_default.composerPromptTipPrefix, children: labels.promptTipsPrefix }),
|
|
21408
|
+
/* @__PURE__ */ jsx27("span", { className: AgentGUINode_styles_default.composerPromptTipLabel, children: tip.label }),
|
|
21159
21409
|
/* @__PURE__ */ jsxs15("span", { className: AgentGUINode_styles_default.composerPromptTipText, children: [
|
|
21160
21410
|
" \xB7 ",
|
|
21161
21411
|
tip.prompt
|
|
@@ -21175,12 +21425,12 @@ function AgentComposer({
|
|
|
21175
21425
|
"data-layout": layoutMode,
|
|
21176
21426
|
onSubmit: submit,
|
|
21177
21427
|
children: [
|
|
21178
|
-
visibleActivePrompt ? /* @__PURE__ */
|
|
21428
|
+
visibleActivePrompt ? /* @__PURE__ */ jsx27(
|
|
21179
21429
|
"div",
|
|
21180
21430
|
{
|
|
21181
21431
|
className: AgentGUINode_styles_default.composerFloatingPrompt,
|
|
21182
21432
|
"data-testid": "agent-gui-composer-floating-prompt",
|
|
21183
|
-
children: /* @__PURE__ */
|
|
21433
|
+
children: /* @__PURE__ */ jsx27(
|
|
21184
21434
|
AgentInteractivePromptSurface,
|
|
21185
21435
|
{
|
|
21186
21436
|
prompt: visibleActivePrompt,
|
|
@@ -21212,7 +21462,7 @@ function AgentComposer({
|
|
|
21212
21462
|
)
|
|
21213
21463
|
}
|
|
21214
21464
|
) : null,
|
|
21215
|
-
queuedPrompts.length > 0 ? /* @__PURE__ */
|
|
21465
|
+
queuedPrompts.length > 0 ? /* @__PURE__ */ jsx27(
|
|
21216
21466
|
"div",
|
|
21217
21467
|
{
|
|
21218
21468
|
className: cn(
|
|
@@ -21220,7 +21470,7 @@ function AgentComposer({
|
|
|
21220
21470
|
AgentGUINode_styles_default.composerQueuedPromptFloating
|
|
21221
21471
|
),
|
|
21222
21472
|
"data-testid": "agent-gui-composer-queued-prompts",
|
|
21223
|
-
children: /* @__PURE__ */
|
|
21473
|
+
children: /* @__PURE__ */ jsx27(
|
|
21224
21474
|
AgentQueuedPromptPanel,
|
|
21225
21475
|
{
|
|
21226
21476
|
queuedPrompts,
|
|
@@ -21241,7 +21491,7 @@ function AgentComposer({
|
|
|
21241
21491
|
)
|
|
21242
21492
|
}
|
|
21243
21493
|
) : null,
|
|
21244
|
-
showProjectMissingProbe ? /* @__PURE__ */
|
|
21494
|
+
showProjectMissingProbe ? /* @__PURE__ */ jsx27(
|
|
21245
21495
|
AgentProjectMissingStatusProbe,
|
|
21246
21496
|
{
|
|
21247
21497
|
composerSettings,
|
|
@@ -21257,7 +21507,7 @@ function AgentComposer({
|
|
|
21257
21507
|
),
|
|
21258
21508
|
"data-edge-glow": showEdgeGlow ? "true" : void 0,
|
|
21259
21509
|
children: [
|
|
21260
|
-
isSelectedProjectMissing ? /* @__PURE__ */
|
|
21510
|
+
isSelectedProjectMissing ? /* @__PURE__ */ jsx27(
|
|
21261
21511
|
AgentChromeNotice,
|
|
21262
21512
|
{
|
|
21263
21513
|
tone: "danger",
|
|
@@ -21286,7 +21536,7 @@ function AgentComposer({
|
|
|
21286
21536
|
onOpenChange: setIsPaletteOpen,
|
|
21287
21537
|
modal: false,
|
|
21288
21538
|
children: [
|
|
21289
|
-
/* @__PURE__ */
|
|
21539
|
+
/* @__PURE__ */ jsx27(PopoverAnchor, { asChild: true, children: /* @__PURE__ */ jsxs15(
|
|
21290
21540
|
"div",
|
|
21291
21541
|
{
|
|
21292
21542
|
ref: promptInputAreaRef,
|
|
@@ -21297,12 +21547,12 @@ function AgentComposer({
|
|
|
21297
21547
|
"data-has-draft-images": draftImages.length > 0 ? "true" : void 0,
|
|
21298
21548
|
style: promptInputAreaStyle,
|
|
21299
21549
|
children: [
|
|
21300
|
-
draftImages.length > 0 ? /* @__PURE__ */
|
|
21550
|
+
draftImages.length > 0 ? /* @__PURE__ */ jsx27(
|
|
21301
21551
|
"div",
|
|
21302
21552
|
{
|
|
21303
21553
|
className: "mb-2 flex w-full max-w-full flex-wrap items-start gap-2",
|
|
21304
21554
|
"data-testid": "agent-gui-composer-image-drafts",
|
|
21305
|
-
children: draftImages.map((image) => /* @__PURE__ */
|
|
21555
|
+
children: draftImages.map((image) => /* @__PURE__ */ jsx27(
|
|
21306
21556
|
AgentComposerDraftImagePreview,
|
|
21307
21557
|
{
|
|
21308
21558
|
image,
|
|
@@ -21313,7 +21563,7 @@ function AgentComposer({
|
|
|
21313
21563
|
))
|
|
21314
21564
|
}
|
|
21315
21565
|
) : null,
|
|
21316
|
-
visibleDraftFiles.length > 0 ? /* @__PURE__ */
|
|
21566
|
+
visibleDraftFiles.length > 0 ? /* @__PURE__ */ jsx27(
|
|
21317
21567
|
"div",
|
|
21318
21568
|
{
|
|
21319
21569
|
className: "mb-2 flex max-w-[520px] flex-wrap gap-2",
|
|
@@ -21329,7 +21579,7 @@ function AgentComposer({
|
|
|
21329
21579
|
"data-upload-error": file.uploadError ? "true" : void 0,
|
|
21330
21580
|
title: file.hostPath ?? file.path ?? file.name,
|
|
21331
21581
|
children: [
|
|
21332
|
-
file.uploading ? /* @__PURE__ */
|
|
21582
|
+
file.uploading ? /* @__PURE__ */ jsx27(
|
|
21333
21583
|
Spinner,
|
|
21334
21584
|
{
|
|
21335
21585
|
className: "shrink-0 text-[var(--text-primary)]",
|
|
@@ -21338,15 +21588,15 @@ function AgentComposer({
|
|
|
21338
21588
|
trackColor: "var(--transparency-hover)",
|
|
21339
21589
|
testId: "agent-gui-composer-file-upload-spinner"
|
|
21340
21590
|
}
|
|
21341
|
-
) : /* @__PURE__ */
|
|
21591
|
+
) : /* @__PURE__ */ jsx27(
|
|
21342
21592
|
"span",
|
|
21343
21593
|
{
|
|
21344
21594
|
className: "size-2 shrink-0 rounded-full bg-[var(--text-tertiary)]",
|
|
21345
21595
|
"aria-hidden": true
|
|
21346
21596
|
}
|
|
21347
21597
|
),
|
|
21348
|
-
/* @__PURE__ */
|
|
21349
|
-
/* @__PURE__ */
|
|
21598
|
+
/* @__PURE__ */ jsx27("span", { className: "min-w-0 max-w-[220px] truncate", children: file.name }),
|
|
21599
|
+
/* @__PURE__ */ jsx27(
|
|
21350
21600
|
"button",
|
|
21351
21601
|
{
|
|
21352
21602
|
type: "button",
|
|
@@ -21354,7 +21604,7 @@ function AgentComposer({
|
|
|
21354
21604
|
"aria-label": labels.removeMention,
|
|
21355
21605
|
title: labels.removeMention,
|
|
21356
21606
|
onClick: () => removeDraftFile(file.id),
|
|
21357
|
-
children: /* @__PURE__ */
|
|
21607
|
+
children: /* @__PURE__ */ jsx27(X, { size: 12, strokeWidth: 2.4, "aria-hidden": true })
|
|
21358
21608
|
}
|
|
21359
21609
|
)
|
|
21360
21610
|
]
|
|
@@ -21371,7 +21621,7 @@ function AgentComposer({
|
|
|
21371
21621
|
!isHeroLayout && "agent-gui-node__composer-prompt-input-line"
|
|
21372
21622
|
),
|
|
21373
21623
|
children: [
|
|
21374
|
-
/* @__PURE__ */
|
|
21624
|
+
/* @__PURE__ */ jsx27(
|
|
21375
21625
|
AgentRichTextEditor,
|
|
21376
21626
|
{
|
|
21377
21627
|
ref: editorHandleRef,
|
|
@@ -21402,7 +21652,7 @@ function AgentComposer({
|
|
|
21402
21652
|
}
|
|
21403
21653
|
) }),
|
|
21404
21654
|
showFileMentionPalette && mentionPaletteFrame ? createPortal3(
|
|
21405
|
-
/* @__PURE__ */
|
|
21655
|
+
/* @__PURE__ */ jsx27(
|
|
21406
21656
|
"div",
|
|
21407
21657
|
{
|
|
21408
21658
|
"data-testid": "agent-gui-mention-palette-surface",
|
|
@@ -21412,7 +21662,7 @@ function AgentComposer({
|
|
|
21412
21662
|
"max-h-[320px] overflow-hidden border-[var(--line-1)] p-0"
|
|
21413
21663
|
),
|
|
21414
21664
|
style: mentionPaletteStyle,
|
|
21415
|
-
children: /* @__PURE__ */
|
|
21665
|
+
children: /* @__PURE__ */ jsx27(
|
|
21416
21666
|
AgentFileMentionPalette,
|
|
21417
21667
|
{
|
|
21418
21668
|
state: mentionSearchState,
|
|
@@ -21430,6 +21680,7 @@ function AgentComposer({
|
|
|
21430
21680
|
onSelectFilter: (filter) => mentionControllerRef.current?.setFilter(filter),
|
|
21431
21681
|
onExpandGroup: (groupId) => mentionControllerRef.current?.expandGroup(groupId),
|
|
21432
21682
|
onNavigateHierarchy: navigateFileMentionHierarchy,
|
|
21683
|
+
onNavigateIntoItem: navigateIntoFileMentionItem,
|
|
21433
21684
|
onOpenReferences: onRequestWorkspaceReferences ? handleOpenReferencesForEntity : void 0
|
|
21434
21685
|
}
|
|
21435
21686
|
)
|
|
@@ -21437,7 +21688,7 @@ function AgentComposer({
|
|
|
21437
21688
|
),
|
|
21438
21689
|
mentionPaletteFrame.portalTarget
|
|
21439
21690
|
) : null,
|
|
21440
|
-
/* @__PURE__ */
|
|
21691
|
+
/* @__PURE__ */ jsx27(
|
|
21441
21692
|
ComposerFloatingMenuSurface,
|
|
21442
21693
|
{
|
|
21443
21694
|
anchorRef: inputShellRef,
|
|
@@ -21450,7 +21701,7 @@ function AgentComposer({
|
|
|
21450
21701
|
placement: "fixed-height",
|
|
21451
21702
|
surfaceRef: paletteContentRef,
|
|
21452
21703
|
testId: "agent-gui-slash-palette-surface",
|
|
21453
|
-
children: /* @__PURE__ */
|
|
21704
|
+
children: /* @__PURE__ */ jsx27(
|
|
21454
21705
|
AgentSlashCommandPalette,
|
|
21455
21706
|
{
|
|
21456
21707
|
entries: slashPaletteEntries,
|
|
@@ -21471,7 +21722,7 @@ function AgentComposer({
|
|
|
21471
21722
|
)
|
|
21472
21723
|
}
|
|
21473
21724
|
),
|
|
21474
|
-
/* @__PURE__ */
|
|
21725
|
+
/* @__PURE__ */ jsx27(
|
|
21475
21726
|
ComposerFloatingMenuSurface,
|
|
21476
21727
|
{
|
|
21477
21728
|
anchorRef: inputShellRef,
|
|
@@ -21483,7 +21734,7 @@ function AgentComposer({
|
|
|
21483
21734
|
placement: "dynamic-above",
|
|
21484
21735
|
surfaceRef: paletteContentRef,
|
|
21485
21736
|
testId: "agent-gui-command-menu-surface",
|
|
21486
|
-
children: /* @__PURE__ */
|
|
21737
|
+
children: /* @__PURE__ */ jsx27(
|
|
21487
21738
|
AgentSlashStatusPanel,
|
|
21488
21739
|
{
|
|
21489
21740
|
status: slashStatus,
|
|
@@ -21503,7 +21754,7 @@ function AgentComposer({
|
|
|
21503
21754
|
)
|
|
21504
21755
|
}
|
|
21505
21756
|
),
|
|
21506
|
-
/* @__PURE__ */
|
|
21757
|
+
/* @__PURE__ */ jsx27(
|
|
21507
21758
|
ComposerFloatingMenuSurface,
|
|
21508
21759
|
{
|
|
21509
21760
|
anchorRef: inputShellRef,
|
|
@@ -21515,7 +21766,7 @@ function AgentComposer({
|
|
|
21515
21766
|
placement: "dynamic-above",
|
|
21516
21767
|
surfaceRef: paletteContentRef,
|
|
21517
21768
|
testId: "agent-gui-command-menu-surface",
|
|
21518
|
-
children: /* @__PURE__ */
|
|
21769
|
+
children: /* @__PURE__ */ jsx27(
|
|
21519
21770
|
AgentReviewPickerPanel,
|
|
21520
21771
|
{
|
|
21521
21772
|
labels: labels.reviewPicker,
|
|
@@ -21531,7 +21782,7 @@ function AgentComposer({
|
|
|
21531
21782
|
),
|
|
21532
21783
|
/* @__PURE__ */ jsxs15("div", { className: AgentGUINode_styles_default.composerFooter, children: [
|
|
21533
21784
|
/* @__PURE__ */ jsxs15("div", { className: composerStyles.footerGroup, children: [
|
|
21534
|
-
previewMode ? /* @__PURE__ */
|
|
21785
|
+
previewMode ? /* @__PURE__ */ jsx27(
|
|
21535
21786
|
"button",
|
|
21536
21787
|
{
|
|
21537
21788
|
type: "button",
|
|
@@ -21542,7 +21793,7 @@ function AgentComposer({
|
|
|
21542
21793
|
AgentGUINode_styles_default.composerReferenceTrigger,
|
|
21543
21794
|
"w-auto justify-center text-[var(--agent-gui-text-secondary)] [&_svg]:shrink-0"
|
|
21544
21795
|
),
|
|
21545
|
-
children: /* @__PURE__ */
|
|
21796
|
+
children: /* @__PURE__ */ jsx27(
|
|
21546
21797
|
AddIcon,
|
|
21547
21798
|
{
|
|
21548
21799
|
"aria-hidden": true,
|
|
@@ -21551,12 +21802,12 @@ function AgentComposer({
|
|
|
21551
21802
|
}
|
|
21552
21803
|
)
|
|
21553
21804
|
}
|
|
21554
|
-
) : /* @__PURE__ */
|
|
21805
|
+
) : /* @__PURE__ */ jsx27(
|
|
21555
21806
|
Select2,
|
|
21556
21807
|
{
|
|
21557
21808
|
open: false,
|
|
21558
21809
|
value: workspaceReferenceSelectValue,
|
|
21559
|
-
disabled:
|
|
21810
|
+
disabled: !onRequestWorkspaceReferences || composerControlsHardDisabled,
|
|
21560
21811
|
onOpenChange: (isOpen) => {
|
|
21561
21812
|
if (isOpen) {
|
|
21562
21813
|
void handleWorkspaceReferencePicker();
|
|
@@ -21567,7 +21818,7 @@ function AgentComposer({
|
|
|
21567
21818
|
void handleWorkspaceReferencePicker();
|
|
21568
21819
|
}
|
|
21569
21820
|
},
|
|
21570
|
-
children: /* @__PURE__ */
|
|
21821
|
+
children: /* @__PURE__ */ jsx27(
|
|
21571
21822
|
SelectTrigger2,
|
|
21572
21823
|
{
|
|
21573
21824
|
size: "sm",
|
|
@@ -21578,7 +21829,7 @@ function AgentComposer({
|
|
|
21578
21829
|
AgentGUINode_styles_default.composerReferenceTrigger,
|
|
21579
21830
|
"w-auto justify-center text-[var(--agent-gui-text-secondary)] [&>svg:last-child]:hidden [&_svg]:shrink-0"
|
|
21580
21831
|
),
|
|
21581
|
-
children: /* @__PURE__ */
|
|
21832
|
+
children: /* @__PURE__ */ jsx27(
|
|
21582
21833
|
AddIcon,
|
|
21583
21834
|
{
|
|
21584
21835
|
"aria-hidden": true,
|
|
@@ -21590,7 +21841,7 @@ function AgentComposer({
|
|
|
21590
21841
|
)
|
|
21591
21842
|
}
|
|
21592
21843
|
),
|
|
21593
|
-
composerSettings.supportsPlanMode && composerSettings.draftSettings.planMode ? /* @__PURE__ */
|
|
21844
|
+
composerSettings.supportsPlanMode && composerSettings.draftSettings.planMode ? /* @__PURE__ */ jsx27(
|
|
21594
21845
|
"button",
|
|
21595
21846
|
{
|
|
21596
21847
|
type: "button",
|
|
@@ -21600,19 +21851,83 @@ function AgentComposer({
|
|
|
21600
21851
|
"data-agent-plan-mode-badge": "true",
|
|
21601
21852
|
className: cn(
|
|
21602
21853
|
AgentGUINode_styles_default.composerMenuTrigger,
|
|
21603
|
-
"w-auto",
|
|
21854
|
+
"group w-auto",
|
|
21604
21855
|
"disabled:cursor-not-allowed disabled:opacity-60"
|
|
21605
21856
|
),
|
|
21606
21857
|
onClick: () => onSettingsChange({ planMode: false }),
|
|
21607
21858
|
children: /* @__PURE__ */ jsxs15("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
|
|
21608
|
-
/* @__PURE__ */
|
|
21609
|
-
|
|
21859
|
+
/* @__PURE__ */ jsxs15("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
|
|
21860
|
+
/* @__PURE__ */ jsx27(
|
|
21861
|
+
ListChecks2,
|
|
21862
|
+
{
|
|
21863
|
+
"aria-hidden": true,
|
|
21864
|
+
className: "size-3.5 transition-opacity duration-150 group-hover:opacity-0 group-focus-visible:opacity-0"
|
|
21865
|
+
}
|
|
21866
|
+
),
|
|
21867
|
+
/* @__PURE__ */ jsx27(
|
|
21868
|
+
"span",
|
|
21869
|
+
{
|
|
21870
|
+
"aria-hidden": true,
|
|
21871
|
+
className: "absolute inset-0 flex items-center justify-center rounded-full bg-[var(--text-secondary)] opacity-0 transition-opacity duration-150 group-hover:opacity-100 group-focus-visible:opacity-100 group-disabled:opacity-0",
|
|
21872
|
+
children: /* @__PURE__ */ jsx27(
|
|
21873
|
+
X,
|
|
21874
|
+
{
|
|
21875
|
+
className: "size-2.5 text-[var(--background-fronted)]",
|
|
21876
|
+
strokeWidth: 3
|
|
21877
|
+
}
|
|
21878
|
+
)
|
|
21879
|
+
}
|
|
21880
|
+
)
|
|
21881
|
+
] }),
|
|
21882
|
+
/* @__PURE__ */ jsx27("span", { className: "min-w-0 truncate", children: labels.planModeLabel })
|
|
21883
|
+
] })
|
|
21884
|
+
}
|
|
21885
|
+
) : null,
|
|
21886
|
+
isGoalModeActive ? /* @__PURE__ */ jsx27(
|
|
21887
|
+
"button",
|
|
21888
|
+
{
|
|
21889
|
+
type: "button",
|
|
21890
|
+
disabled: settingsControlsDisabled,
|
|
21891
|
+
"aria-label": labels.goalLabel,
|
|
21892
|
+
title: labels.goalLabel,
|
|
21893
|
+
"data-agent-goal-badge": "true",
|
|
21894
|
+
className: cn(
|
|
21895
|
+
AgentGUINode_styles_default.composerMenuTrigger,
|
|
21896
|
+
"group w-auto",
|
|
21897
|
+
"disabled:cursor-not-allowed disabled:opacity-60"
|
|
21898
|
+
),
|
|
21899
|
+
onClick: clearGoalModeBadge,
|
|
21900
|
+
children: /* @__PURE__ */ jsxs15("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
|
|
21901
|
+
/* @__PURE__ */ jsxs15("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
|
|
21902
|
+
/* @__PURE__ */ jsx27(
|
|
21903
|
+
Target3,
|
|
21904
|
+
{
|
|
21905
|
+
"aria-hidden": true,
|
|
21906
|
+
className: "size-3.5 transition-opacity duration-150 group-hover:opacity-0 group-focus-visible:opacity-0"
|
|
21907
|
+
}
|
|
21908
|
+
),
|
|
21909
|
+
/* @__PURE__ */ jsx27(
|
|
21910
|
+
"span",
|
|
21911
|
+
{
|
|
21912
|
+
"aria-hidden": true,
|
|
21913
|
+
className: "absolute inset-0 flex items-center justify-center rounded-full bg-[var(--text-secondary)] opacity-0 transition-opacity duration-150 group-hover:opacity-100 group-focus-visible:opacity-100 group-disabled:opacity-0",
|
|
21914
|
+
children: /* @__PURE__ */ jsx27(
|
|
21915
|
+
X,
|
|
21916
|
+
{
|
|
21917
|
+
className: "size-2.5 text-[var(--background-fronted)]",
|
|
21918
|
+
strokeWidth: 3
|
|
21919
|
+
}
|
|
21920
|
+
)
|
|
21921
|
+
}
|
|
21922
|
+
)
|
|
21923
|
+
] }),
|
|
21924
|
+
/* @__PURE__ */ jsx27("span", { className: "min-w-0 truncate", children: labels.goalLabel })
|
|
21610
21925
|
] })
|
|
21611
21926
|
}
|
|
21612
21927
|
) : null
|
|
21613
21928
|
] }),
|
|
21614
21929
|
/* @__PURE__ */ jsxs15("div", { className: composerStyles.footerGroupRight, children: [
|
|
21615
|
-
usage && usage.percentUsed !== null ? /* @__PURE__ */
|
|
21930
|
+
usage && usage.percentUsed !== null ? /* @__PURE__ */ jsx27(
|
|
21616
21931
|
AgentUsageChip,
|
|
21617
21932
|
{
|
|
21618
21933
|
percentUsed: usage.percentUsed,
|
|
@@ -21620,7 +21935,7 @@ function AgentComposer({
|
|
|
21620
21935
|
totalTokens: usage.totalTokens,
|
|
21621
21936
|
tooltipsEnabled: !previewMode,
|
|
21622
21937
|
compactSupported: compactSupported ?? false,
|
|
21623
|
-
compactDisabled: !hasCompactableContext ||
|
|
21938
|
+
compactDisabled: !hasCompactableContext || composerControlsHardDisabled,
|
|
21624
21939
|
onCompact: () => onSubmit(textPromptContent("/compact")),
|
|
21625
21940
|
labels: {
|
|
21626
21941
|
usageChipLabel: labels.usageChipLabel,
|
|
@@ -21631,7 +21946,7 @@ function AgentComposer({
|
|
|
21631
21946
|
}
|
|
21632
21947
|
}
|
|
21633
21948
|
) : null,
|
|
21634
|
-
composerSettings.supportsPermissionMode ? /* @__PURE__ */
|
|
21949
|
+
composerSettings.supportsPermissionMode ? /* @__PURE__ */ jsx27(
|
|
21635
21950
|
AgentPermissionModeDropdown,
|
|
21636
21951
|
{
|
|
21637
21952
|
composerSettings,
|
|
@@ -21644,7 +21959,7 @@ function AgentComposer({
|
|
|
21644
21959
|
onSettingsChange: (patch) => onSettingsChange(patch)
|
|
21645
21960
|
}
|
|
21646
21961
|
) : null,
|
|
21647
|
-
composerSettings.supportsModel || composerSettings.supportsReasoningEffort ? /* @__PURE__ */
|
|
21962
|
+
composerSettings.supportsModel || composerSettings.supportsReasoningEffort ? /* @__PURE__ */ jsx27(
|
|
21648
21963
|
AgentModelReasoningDropdown,
|
|
21649
21964
|
{
|
|
21650
21965
|
composerSettings,
|
|
@@ -21692,7 +22007,7 @@ function AgentComposer({
|
|
|
21692
22007
|
className: AgentGUINode_styles_default.composerProjectRow,
|
|
21693
22008
|
"data-project-missing": isSelectedProjectMissing ? "true" : void 0,
|
|
21694
22009
|
children: [
|
|
21695
|
-
showHeroProjectSelector ? /* @__PURE__ */
|
|
22010
|
+
showHeroProjectSelector ? /* @__PURE__ */ jsx27(
|
|
21696
22011
|
AgentProjectDropdown,
|
|
21697
22012
|
{
|
|
21698
22013
|
composerSettings,
|
|
@@ -21707,14 +22022,14 @@ function AgentComposer({
|
|
|
21707
22022
|
onProjectPathChange
|
|
21708
22023
|
}
|
|
21709
22024
|
) : null,
|
|
21710
|
-
activePromptTip ? /* @__PURE__ */
|
|
22025
|
+
activePromptTip ? /* @__PURE__ */ jsx27(
|
|
21711
22026
|
"div",
|
|
21712
22027
|
{
|
|
21713
22028
|
className: AgentGUINode_styles_default.composerPromptTips,
|
|
21714
22029
|
"data-testid": "agent-gui-prompt-tips",
|
|
21715
|
-
children: !previewMode && isPromptTipOverflowing && promptTipNode ? /* @__PURE__ */
|
|
21716
|
-
/* @__PURE__ */
|
|
21717
|
-
/* @__PURE__ */
|
|
22030
|
+
children: !previewMode && isPromptTipOverflowing && promptTipNode ? /* @__PURE__ */ jsx27(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsxs15(Tooltip, { children: [
|
|
22031
|
+
/* @__PURE__ */ jsx27(TooltipTrigger, { asChild: true, children: promptTipNode }),
|
|
22032
|
+
/* @__PURE__ */ jsx27(
|
|
21718
22033
|
TooltipContent,
|
|
21719
22034
|
{
|
|
21720
22035
|
align: "end",
|
|
@@ -21769,7 +22084,7 @@ function AgentComposerDraftImagePreview({
|
|
|
21769
22084
|
"data-upload-error": image.uploadError ? "true" : void 0,
|
|
21770
22085
|
style: previewStyle,
|
|
21771
22086
|
children: [
|
|
21772
|
-
/* @__PURE__ */
|
|
22087
|
+
/* @__PURE__ */ jsx27(
|
|
21773
22088
|
ZoomableImage,
|
|
21774
22089
|
{
|
|
21775
22090
|
src: image.previewUrl,
|
|
@@ -21792,12 +22107,12 @@ function AgentComposerDraftImagePreview({
|
|
|
21792
22107
|
}
|
|
21793
22108
|
}
|
|
21794
22109
|
),
|
|
21795
|
-
image.uploading ? /* @__PURE__ */
|
|
22110
|
+
image.uploading ? /* @__PURE__ */ jsx27(
|
|
21796
22111
|
"div",
|
|
21797
22112
|
{
|
|
21798
22113
|
className: "absolute inset-0 grid place-items-center bg-[color-mix(in_srgb,var(--background-fronted)_62%,transparent)]",
|
|
21799
22114
|
"data-testid": "agent-gui-composer-image-uploading",
|
|
21800
|
-
children: /* @__PURE__ */
|
|
22115
|
+
children: /* @__PURE__ */ jsx27(
|
|
21801
22116
|
Spinner,
|
|
21802
22117
|
{
|
|
21803
22118
|
className: "text-[var(--text-primary)]",
|
|
@@ -21809,7 +22124,7 @@ function AgentComposerDraftImagePreview({
|
|
|
21809
22124
|
)
|
|
21810
22125
|
}
|
|
21811
22126
|
) : null,
|
|
21812
|
-
/* @__PURE__ */
|
|
22127
|
+
/* @__PURE__ */ jsx27(
|
|
21813
22128
|
"button",
|
|
21814
22129
|
{
|
|
21815
22130
|
type: "button",
|
|
@@ -21817,13 +22132,76 @@ function AgentComposerDraftImagePreview({
|
|
|
21817
22132
|
"aria-label": removeLabel,
|
|
21818
22133
|
title: removeLabel,
|
|
21819
22134
|
onClick: () => onRemove(image.id),
|
|
21820
|
-
children: /* @__PURE__ */
|
|
22135
|
+
children: /* @__PURE__ */ jsx27(X, { size: 12, strokeWidth: 2.4, "aria-hidden": true })
|
|
21821
22136
|
}
|
|
21822
22137
|
)
|
|
21823
22138
|
]
|
|
21824
22139
|
}
|
|
21825
22140
|
);
|
|
21826
22141
|
}
|
|
22142
|
+
function slashCommandDescriptionForDisplay(command, labels) {
|
|
22143
|
+
switch (command.name.trim().toLowerCase()) {
|
|
22144
|
+
case "compact":
|
|
22145
|
+
return labels.slashCommandCompactDescription;
|
|
22146
|
+
case "context":
|
|
22147
|
+
return labels.slashCommandContextDescription;
|
|
22148
|
+
case "fast":
|
|
22149
|
+
return labels.slashCommandFastDescription;
|
|
22150
|
+
case "goal":
|
|
22151
|
+
return labels.slashCommandGoalDescription;
|
|
22152
|
+
case "init":
|
|
22153
|
+
return labels.slashCommandInitDescription;
|
|
22154
|
+
case "plan":
|
|
22155
|
+
return labels.slashCommandPlanDescription;
|
|
22156
|
+
case "review":
|
|
22157
|
+
return labels.slashCommandReviewDescription;
|
|
22158
|
+
case "status":
|
|
22159
|
+
return labels.slashCommandStatusDescription;
|
|
22160
|
+
case "usage":
|
|
22161
|
+
return labels.slashCommandUsageDescription;
|
|
22162
|
+
default:
|
|
22163
|
+
return command.description;
|
|
22164
|
+
}
|
|
22165
|
+
}
|
|
22166
|
+
function slashCommandLabelForDisplay(command, labels, uiLanguage) {
|
|
22167
|
+
const canonicalLabel = labelForSlashCommand(command);
|
|
22168
|
+
const primaryLabel = localizedSlashCommandLabel(command, labels);
|
|
22169
|
+
return uiLanguage === "en" || primaryLabel === canonicalLabel ? { primaryLabel } : { primaryLabel, secondaryLabel: canonicalLabel };
|
|
22170
|
+
}
|
|
22171
|
+
function localizedSlashCommandLabel(command, labels) {
|
|
22172
|
+
switch (command.name.trim().toLowerCase()) {
|
|
22173
|
+
case "compact":
|
|
22174
|
+
return labels.slashCommandCompactLabel;
|
|
22175
|
+
case "context":
|
|
22176
|
+
return labels.slashCommandContextLabel;
|
|
22177
|
+
case "fast":
|
|
22178
|
+
return labels.slashCommandFastLabel;
|
|
22179
|
+
case "goal":
|
|
22180
|
+
return labels.slashCommandGoalLabel;
|
|
22181
|
+
case "init":
|
|
22182
|
+
return labels.slashCommandInitLabel;
|
|
22183
|
+
case "plan":
|
|
22184
|
+
return labels.slashCommandPlanLabel;
|
|
22185
|
+
case "review":
|
|
22186
|
+
return labels.slashCommandReviewLabel;
|
|
22187
|
+
case "status":
|
|
22188
|
+
return labels.slashCommandStatusLabel;
|
|
22189
|
+
case "usage":
|
|
22190
|
+
return labels.slashCommandUsageLabel;
|
|
22191
|
+
default:
|
|
22192
|
+
return labelForSlashCommand(command);
|
|
22193
|
+
}
|
|
22194
|
+
}
|
|
22195
|
+
function goalDraftObjectiveFromPrompt(prompt) {
|
|
22196
|
+
const match = /^\s*\/goal(?:\s+([\s\S]*))?\s*$/u.exec(prompt);
|
|
22197
|
+
if (!match) {
|
|
22198
|
+
return null;
|
|
22199
|
+
}
|
|
22200
|
+
return match[1] ?? "";
|
|
22201
|
+
}
|
|
22202
|
+
function buildGoalModePrompt(objective) {
|
|
22203
|
+
return objective.trim() === "" ? GOAL_MODE_SLASH_COMMAND : `${GOAL_MODE_SLASH_COMMAND} ${objective}`;
|
|
22204
|
+
}
|
|
21827
22205
|
function isSlashCommandCapability(command) {
|
|
21828
22206
|
return "kind" in command && command.kind === "capability";
|
|
21829
22207
|
}
|
|
@@ -21834,7 +22212,7 @@ function useStableEventCallback(callback) {
|
|
|
21834
22212
|
}
|
|
21835
22213
|
function SendFilledIcon() {
|
|
21836
22214
|
"use memo";
|
|
21837
|
-
return /* @__PURE__ */
|
|
22215
|
+
return /* @__PURE__ */ jsx27(
|
|
21838
22216
|
"svg",
|
|
21839
22217
|
{
|
|
21840
22218
|
width: "24",
|
|
@@ -21842,7 +22220,7 @@ function SendFilledIcon() {
|
|
|
21842
22220
|
viewBox: "0 0 24 24",
|
|
21843
22221
|
fill: "none",
|
|
21844
22222
|
"aria-hidden": "true",
|
|
21845
|
-
children: /* @__PURE__ */
|
|
22223
|
+
children: /* @__PURE__ */ jsx27(
|
|
21846
22224
|
"path",
|
|
21847
22225
|
{
|
|
21848
22226
|
d: "M2.74311 8.80587C2.84592 8.40096 3.14571 8.08844 3.54551 7.97033L18.5197 3.51569C18.9336 3.39383 19.3809 3.5054 19.6881 3.81262C19.9951 4.11984 20.1076 4.56798 19.9857 4.9817L15.5311 19.9559C15.413 20.3557 15.1005 20.6555 14.6956 20.7583C14.2895 20.8597 13.869 20.7438 13.5721 20.4469L10.455 15.1823C10.8585 14.6483 12.1563 12.9094 14.3475 9.96528C14.6086 9.70419 14.6382 9.31168 14.4138 9.08692C14.1891 8.86221 13.796 8.8913 13.5348 9.15252L8.31088 13.0423L3.05316 9.92799C2.7562 9.63104 2.64049 9.21071 2.74311 8.80587Z",
|
|
@@ -21869,7 +22247,7 @@ function agentGUIBottomDockStoreSnapshotsEqual(current, next) {
|
|
|
21869
22247
|
}
|
|
21870
22248
|
|
|
21871
22249
|
// agent-gui/agentGuiNode/AgentConversationListSkeleton.tsx
|
|
21872
|
-
import { jsx as
|
|
22250
|
+
import { jsx as jsx28, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
21873
22251
|
var SKELETON_ROWS = [
|
|
21874
22252
|
{ id: "first", size: "long" },
|
|
21875
22253
|
{ id: "second", size: "medium" },
|
|
@@ -21881,7 +22259,7 @@ function AgentConversationListSkeleton({
|
|
|
21881
22259
|
label
|
|
21882
22260
|
}) {
|
|
21883
22261
|
"use memo";
|
|
21884
|
-
return /* @__PURE__ */
|
|
22262
|
+
return /* @__PURE__ */ jsx28(
|
|
21885
22263
|
"div",
|
|
21886
22264
|
{
|
|
21887
22265
|
className: "agent-gui-node__conversation-list-skeleton",
|
|
@@ -21895,9 +22273,9 @@ function AgentConversationListSkeleton({
|
|
|
21895
22273
|
"data-size": row.size,
|
|
21896
22274
|
"aria-hidden": "true",
|
|
21897
22275
|
children: [
|
|
21898
|
-
/* @__PURE__ */
|
|
21899
|
-
/* @__PURE__ */
|
|
21900
|
-
/* @__PURE__ */
|
|
22276
|
+
/* @__PURE__ */ jsx28("span", { className: "agent-gui-node__conversation-list-skeleton-spine" }),
|
|
22277
|
+
/* @__PURE__ */ jsx28("span", { className: "agent-gui-node__conversation-list-skeleton-rib agent-gui-node__conversation-list-skeleton-rib-primary" }),
|
|
22278
|
+
/* @__PURE__ */ jsx28("span", { className: "agent-gui-node__conversation-list-skeleton-rib agent-gui-node__conversation-list-skeleton-rib-secondary" })
|
|
21901
22279
|
]
|
|
21902
22280
|
},
|
|
21903
22281
|
row.id
|
|
@@ -21908,7 +22286,7 @@ function AgentConversationListSkeleton({
|
|
|
21908
22286
|
|
|
21909
22287
|
// agent-gui/agentGuiNode/agentGuiNodeViewConversation.tsx
|
|
21910
22288
|
import { AskLinedIcon } from "@tutti-os/ui-system/icons";
|
|
21911
|
-
import { jsx as
|
|
22289
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
21912
22290
|
function ConversationMeta({
|
|
21913
22291
|
item,
|
|
21914
22292
|
nowMs,
|
|
@@ -21917,24 +22295,24 @@ function ConversationMeta({
|
|
|
21917
22295
|
"use memo";
|
|
21918
22296
|
const kind = conversationMetaKind(item);
|
|
21919
22297
|
if (kind === "loading") {
|
|
21920
|
-
return /* @__PURE__ */
|
|
22298
|
+
return /* @__PURE__ */ jsx29(
|
|
21921
22299
|
"span",
|
|
21922
22300
|
{
|
|
21923
22301
|
className: AgentGUINode_styles_default.conversationMeta,
|
|
21924
22302
|
"data-kind": kind,
|
|
21925
22303
|
"data-testid": `agent-gui-conversation-meta-${item.id}`,
|
|
21926
|
-
children: /* @__PURE__ */
|
|
22304
|
+
children: /* @__PURE__ */ jsx29(LoadingGlyph, {})
|
|
21927
22305
|
}
|
|
21928
22306
|
);
|
|
21929
22307
|
}
|
|
21930
22308
|
if (kind === "waiting") {
|
|
21931
|
-
return /* @__PURE__ */
|
|
22309
|
+
return /* @__PURE__ */ jsx29(
|
|
21932
22310
|
"span",
|
|
21933
22311
|
{
|
|
21934
22312
|
className: AgentGUINode_styles_default.conversationMeta,
|
|
21935
22313
|
"data-kind": kind,
|
|
21936
22314
|
"data-testid": `agent-gui-conversation-meta-${item.id}`,
|
|
21937
|
-
children: /* @__PURE__ */
|
|
22315
|
+
children: /* @__PURE__ */ jsx29(
|
|
21938
22316
|
AskLinedIcon,
|
|
21939
22317
|
{
|
|
21940
22318
|
"aria-hidden": "true",
|
|
@@ -21945,34 +22323,34 @@ function ConversationMeta({
|
|
|
21945
22323
|
);
|
|
21946
22324
|
}
|
|
21947
22325
|
if (kind === "failed") {
|
|
21948
|
-
return /* @__PURE__ */
|
|
22326
|
+
return /* @__PURE__ */ jsx29(
|
|
21949
22327
|
"span",
|
|
21950
22328
|
{
|
|
21951
22329
|
className: AgentGUINode_styles_default.conversationMeta,
|
|
21952
22330
|
"data-kind": kind,
|
|
21953
22331
|
"data-testid": `agent-gui-conversation-meta-${item.id}`,
|
|
21954
|
-
children: /* @__PURE__ */
|
|
22332
|
+
children: /* @__PURE__ */ jsx29(AttentionGlyph, {})
|
|
21955
22333
|
}
|
|
21956
22334
|
);
|
|
21957
22335
|
}
|
|
21958
22336
|
if (kind === "unread-complete") {
|
|
21959
|
-
return /* @__PURE__ */
|
|
22337
|
+
return /* @__PURE__ */ jsx29(
|
|
21960
22338
|
"span",
|
|
21961
22339
|
{
|
|
21962
22340
|
className: AgentGUINode_styles_default.conversationMeta,
|
|
21963
22341
|
"data-kind": kind,
|
|
21964
22342
|
"data-testid": `agent-gui-conversation-meta-${item.id}`,
|
|
21965
|
-
children: /* @__PURE__ */
|
|
22343
|
+
children: /* @__PURE__ */ jsx29("span", { className: AgentGUINode_styles_default.conversationUnreadLamp, "aria-hidden": "true" })
|
|
21966
22344
|
}
|
|
21967
22345
|
);
|
|
21968
22346
|
}
|
|
21969
|
-
return /* @__PURE__ */
|
|
22347
|
+
return /* @__PURE__ */ jsx29(
|
|
21970
22348
|
"span",
|
|
21971
22349
|
{
|
|
21972
22350
|
className: AgentGUINode_styles_default.conversationMeta,
|
|
21973
22351
|
"data-kind": kind,
|
|
21974
22352
|
"data-testid": `agent-gui-conversation-meta-${item.id}`,
|
|
21975
|
-
children: /* @__PURE__ */
|
|
22353
|
+
children: /* @__PURE__ */ jsx29("span", { className: AgentGUINode_styles_default.conversationTime, children: formatConversationRelativeTime(
|
|
21976
22354
|
resolveAgentGUIConversationSortTimeUnixMs(item),
|
|
21977
22355
|
nowMs,
|
|
21978
22356
|
labels
|
|
@@ -22140,7 +22518,7 @@ function formatConversationRelativeTime(updatedAtUnixMs, nowMs, labels) {
|
|
|
22140
22518
|
}
|
|
22141
22519
|
function LoadingGlyph() {
|
|
22142
22520
|
"use memo";
|
|
22143
|
-
return /* @__PURE__ */
|
|
22521
|
+
return /* @__PURE__ */ jsx29(
|
|
22144
22522
|
Spinner,
|
|
22145
22523
|
{
|
|
22146
22524
|
className: AgentGUINode_styles_default.conversationStatusGlyph,
|
|
@@ -22154,14 +22532,14 @@ function LoadingGlyph() {
|
|
|
22154
22532
|
}
|
|
22155
22533
|
function AttentionGlyph() {
|
|
22156
22534
|
"use memo";
|
|
22157
|
-
return /* @__PURE__ */
|
|
22535
|
+
return /* @__PURE__ */ jsx29(
|
|
22158
22536
|
"svg",
|
|
22159
22537
|
{
|
|
22160
22538
|
viewBox: "0 0 24 24",
|
|
22161
22539
|
fill: "none",
|
|
22162
22540
|
"aria-hidden": "true",
|
|
22163
22541
|
className: AgentGUINode_styles_default.conversationStatusGlyph,
|
|
22164
|
-
children: /* @__PURE__ */
|
|
22542
|
+
children: /* @__PURE__ */ jsx29(
|
|
22165
22543
|
"path",
|
|
22166
22544
|
{
|
|
22167
22545
|
d: "M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4ZM12.5 15C12.7761 15 13 15.2239 13 15.5V16.5C13 16.7761 12.7761 17 12.5 17H11.5C11.2239 17 11 16.7761 11 16.5V15.5C11 15.2239 11.2239 15 11.5 15H12.5ZM12.5 7C12.7761 7 13 7.22386 13 7.5V13.5C13 13.7761 12.7761 14 12.5 14H11.5C11.2239 14 11 13.7761 11 13.5V7.5C11 7.22386 11.2239 7 11.5 7H12.5Z",
|
|
@@ -22174,7 +22552,7 @@ function AttentionGlyph() {
|
|
|
22174
22552
|
|
|
22175
22553
|
// agent-gui/agentGuiNode/AgentGUINodeView.tsx
|
|
22176
22554
|
import { createRichTextMentionHref as createRichTextMentionHref2 } from "@tutti-os/ui-rich-text/core";
|
|
22177
|
-
import { Fragment as Fragment8, jsx as
|
|
22555
|
+
import { Fragment as Fragment8, jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
22178
22556
|
var AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX = 24;
|
|
22179
22557
|
var AGENT_GUI_TOP_HISTORY_PREFETCH_THRESHOLD_PX = 240;
|
|
22180
22558
|
var AGENT_GUI_CONVERSATION_RAIL_SECTION_PAGE_SIZE = 5;
|
|
@@ -22558,6 +22936,9 @@ function AgentGUINodeView({
|
|
|
22558
22936
|
const confirmDeleteProjectConversations = useStableEventCallback2(
|
|
22559
22937
|
actions.confirmDeleteProjectConversations
|
|
22560
22938
|
);
|
|
22939
|
+
const confirmDeleteConversations = useStableEventCallback2(
|
|
22940
|
+
actions.confirmDeleteConversations
|
|
22941
|
+
);
|
|
22561
22942
|
const requestDeleteConversation = useStableEventCallback2(
|
|
22562
22943
|
actions.requestDeleteConversation
|
|
22563
22944
|
);
|
|
@@ -22756,6 +23137,7 @@ function AgentGUINodeView({
|
|
|
22756
23137
|
onToggleConversationPinned: toggleConversationPinned,
|
|
22757
23138
|
onRemoveProject: removeProject,
|
|
22758
23139
|
onConfirmDeleteProjectConversations: confirmDeleteProjectConversations,
|
|
23140
|
+
onConfirmDeleteConversations: confirmDeleteConversations,
|
|
22759
23141
|
onRequestDeleteConversation: requestDeleteConversation,
|
|
22760
23142
|
onCancelDeleteConversation: cancelDeleteConversation,
|
|
22761
23143
|
onConfirmDeleteConversation: confirmDeleteConversation,
|
|
@@ -22766,6 +23148,7 @@ function AgentGUINodeView({
|
|
|
22766
23148
|
[
|
|
22767
23149
|
cancelDeleteConversation,
|
|
22768
23150
|
confirmDeleteConversation,
|
|
23151
|
+
confirmDeleteConversations,
|
|
22769
23152
|
confirmDeleteProjectConversations,
|
|
22770
23153
|
conversationRailCollapsed,
|
|
22771
23154
|
createConversationDisabled,
|
|
@@ -22816,14 +23199,14 @@ function AgentGUINodeView({
|
|
|
22816
23199
|
inert: previewMode ? true : void 0,
|
|
22817
23200
|
style: layoutStyle,
|
|
22818
23201
|
children: [
|
|
22819
|
-
/* @__PURE__ */
|
|
23202
|
+
/* @__PURE__ */ jsx30(
|
|
22820
23203
|
"aside",
|
|
22821
23204
|
{
|
|
22822
23205
|
id: "agent-gui-conversation-rail",
|
|
22823
23206
|
className: `${AgentGUINode_styles_default.railPanel}${conversationRailCollapsed ? ` ${AgentGUINode_styles_default.railPanelCollapsed}` : ""}`,
|
|
22824
23207
|
"aria-hidden": conversationRailCollapsed ? "true" : void 0,
|
|
22825
23208
|
inert: conversationRailCollapsed ? true : void 0,
|
|
22826
|
-
children: /* @__PURE__ */
|
|
23209
|
+
children: /* @__PURE__ */ jsx30(
|
|
22827
23210
|
AgentGUIConversationRailStorePane,
|
|
22828
23211
|
{
|
|
22829
23212
|
conversations: viewModel.conversations,
|
|
@@ -22834,7 +23217,7 @@ function AgentGUINodeView({
|
|
|
22834
23217
|
)
|
|
22835
23218
|
}
|
|
22836
23219
|
),
|
|
22837
|
-
/* @__PURE__ */
|
|
23220
|
+
/* @__PURE__ */ jsx30(
|
|
22838
23221
|
"div",
|
|
22839
23222
|
{
|
|
22840
23223
|
id: "agent-gui-conversation-rail-resize",
|
|
@@ -22858,7 +23241,7 @@ function AgentGUINodeView({
|
|
|
22858
23241
|
onPointerUp: endConversationRailResize
|
|
22859
23242
|
}
|
|
22860
23243
|
),
|
|
22861
|
-
/* @__PURE__ */
|
|
23244
|
+
/* @__PURE__ */ jsx30("section", { id: "agent-gui-detail", className: AgentGUINode_styles_default.detailPanel, children: /* @__PURE__ */ jsx30(
|
|
22862
23245
|
AgentGUIDetailPane,
|
|
22863
23246
|
{
|
|
22864
23247
|
viewModel,
|
|
@@ -22887,7 +23270,7 @@ function AgentGUINodeView({
|
|
|
22887
23270
|
]
|
|
22888
23271
|
}
|
|
22889
23272
|
),
|
|
22890
|
-
referenceSourceAggregator ? /* @__PURE__ */
|
|
23273
|
+
referenceSourceAggregator ? /* @__PURE__ */ jsx30(
|
|
22891
23274
|
ReferenceSourcePicker,
|
|
22892
23275
|
{
|
|
22893
23276
|
aggregator: referenceSourceAggregator,
|
|
@@ -22901,7 +23284,7 @@ function AgentGUINodeView({
|
|
|
22901
23284
|
onConfirm: confirmWorkspaceReferencePicker,
|
|
22902
23285
|
onConfirmBundles: confirmWorkspaceReferenceBundles
|
|
22903
23286
|
}
|
|
22904
|
-
) : /* @__PURE__ */
|
|
23287
|
+
) : /* @__PURE__ */ jsx30(
|
|
22905
23288
|
WorkspaceFileReferencePicker,
|
|
22906
23289
|
{
|
|
22907
23290
|
copy: workspaceFileReferenceCopy ?? fallbackWorkspaceFileReferenceCopy,
|
|
@@ -22915,7 +23298,7 @@ function AgentGUINodeView({
|
|
|
22915
23298
|
}
|
|
22916
23299
|
)
|
|
22917
23300
|
] });
|
|
22918
|
-
return previewMode ? content : /* @__PURE__ */
|
|
23301
|
+
return previewMode ? content : /* @__PURE__ */ jsx30(TooltipProvider2, { children: content });
|
|
22919
23302
|
}
|
|
22920
23303
|
function mergeWorkspaceAppIconsFromCommands(input) {
|
|
22921
23304
|
const seen = new Set(
|
|
@@ -23127,8 +23510,8 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
23127
23510
|
className: AgentGUINode_styles_default.unavailableChatEmpty,
|
|
23128
23511
|
"data-testid": "agent-gui-unavailable-chat-empty",
|
|
23129
23512
|
children: [
|
|
23130
|
-
/* @__PURE__ */
|
|
23131
|
-
/* @__PURE__ */
|
|
23513
|
+
/* @__PURE__ */ jsx30(UnavailableChatIcon, { className: AgentGUINode_styles_default.unavailableChatEmptyIcon }),
|
|
23514
|
+
/* @__PURE__ */ jsx30("span", { className: AgentGUINode_styles_default.unavailableChatEmptyText, children: labels.conversationUnavailable })
|
|
23132
23515
|
]
|
|
23133
23516
|
}
|
|
23134
23517
|
),
|
|
@@ -23252,6 +23635,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
23252
23635
|
planModeOnLabel: labels.planModeOnLabel,
|
|
23253
23636
|
planModeOffLabel: labels.planModeOffLabel,
|
|
23254
23637
|
planUnavailable: labels.planUnavailable,
|
|
23638
|
+
goalLabel: labels.goalLabel,
|
|
23255
23639
|
queuedLabel: labels.queuedLabel,
|
|
23256
23640
|
sendQueuedPromptNext: labels.sendQueuedPromptNext,
|
|
23257
23641
|
editQueuedPrompt: labels.editQueuedPrompt,
|
|
@@ -23267,6 +23651,24 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
23267
23651
|
slashPalettePluginsGroup: labels.slashPalettePluginsGroup,
|
|
23268
23652
|
slashPaletteConnectorsGroup: labels.slashPaletteConnectorsGroup,
|
|
23269
23653
|
slashPaletteMcpGroup: labels.slashPaletteMcpGroup,
|
|
23654
|
+
slashCommandCompactLabel: labels.slashCommandCompactLabel,
|
|
23655
|
+
slashCommandContextLabel: labels.slashCommandContextLabel,
|
|
23656
|
+
slashCommandFastLabel: labels.slashCommandFastLabel,
|
|
23657
|
+
slashCommandGoalLabel: labels.slashCommandGoalLabel,
|
|
23658
|
+
slashCommandInitLabel: labels.slashCommandInitLabel,
|
|
23659
|
+
slashCommandPlanLabel: labels.slashCommandPlanLabel,
|
|
23660
|
+
slashCommandReviewLabel: labels.slashCommandReviewLabel,
|
|
23661
|
+
slashCommandStatusLabel: labels.slashCommandStatusLabel,
|
|
23662
|
+
slashCommandUsageLabel: labels.slashCommandUsageLabel,
|
|
23663
|
+
slashCommandCompactDescription: labels.slashCommandCompactDescription,
|
|
23664
|
+
slashCommandContextDescription: labels.slashCommandContextDescription,
|
|
23665
|
+
slashCommandFastDescription: labels.slashCommandFastDescription,
|
|
23666
|
+
slashCommandGoalDescription: labels.slashCommandGoalDescription,
|
|
23667
|
+
slashCommandInitDescription: labels.slashCommandInitDescription,
|
|
23668
|
+
slashCommandPlanDescription: labels.slashCommandPlanDescription,
|
|
23669
|
+
slashCommandReviewDescription: labels.slashCommandReviewDescription,
|
|
23670
|
+
slashCommandStatusDescription: labels.slashCommandStatusDescription,
|
|
23671
|
+
slashCommandUsageDescription: labels.slashCommandUsageDescription,
|
|
23270
23672
|
browserUseCapabilityLabel: labels.browserUseCapabilityLabel,
|
|
23271
23673
|
browserUseCapabilityDescription: labels.browserUseCapabilityDescription,
|
|
23272
23674
|
browserUseCapabilityDescriptionAutoConnect: labels.browserUseCapabilityDescriptionAutoConnect,
|
|
@@ -23337,6 +23739,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
23337
23739
|
labels.planModeOffLabel,
|
|
23338
23740
|
labels.planModeOnLabel,
|
|
23339
23741
|
labels.planUnavailable,
|
|
23742
|
+
labels.goalLabel,
|
|
23340
23743
|
labels.projectLocked,
|
|
23341
23744
|
labels.projectMissingDescription,
|
|
23342
23745
|
labels.promptTipsPrefix,
|
|
@@ -23380,6 +23783,24 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
23380
23783
|
labels.slashPaletteCapabilitiesGroup,
|
|
23381
23784
|
labels.slashPaletteCommandsGroup,
|
|
23382
23785
|
labels.slashPaletteConnectorsGroup,
|
|
23786
|
+
labels.slashCommandCompactLabel,
|
|
23787
|
+
labels.slashCommandContextLabel,
|
|
23788
|
+
labels.slashCommandFastLabel,
|
|
23789
|
+
labels.slashCommandGoalLabel,
|
|
23790
|
+
labels.slashCommandInitLabel,
|
|
23791
|
+
labels.slashCommandPlanLabel,
|
|
23792
|
+
labels.slashCommandReviewLabel,
|
|
23793
|
+
labels.slashCommandStatusLabel,
|
|
23794
|
+
labels.slashCommandUsageLabel,
|
|
23795
|
+
labels.slashCommandCompactDescription,
|
|
23796
|
+
labels.slashCommandContextDescription,
|
|
23797
|
+
labels.slashCommandFastDescription,
|
|
23798
|
+
labels.slashCommandGoalDescription,
|
|
23799
|
+
labels.slashCommandInitDescription,
|
|
23800
|
+
labels.slashCommandPlanDescription,
|
|
23801
|
+
labels.slashCommandReviewDescription,
|
|
23802
|
+
labels.slashCommandStatusDescription,
|
|
23803
|
+
labels.slashCommandUsageDescription,
|
|
23383
23804
|
labels.slashPaletteMcpGroup,
|
|
23384
23805
|
labels.slashPalettePluginsGroup,
|
|
23385
23806
|
labels.slashPaletteSkillsGroup,
|
|
@@ -23485,6 +23906,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
23485
23906
|
isInterrupting: viewModel.isInterrupting,
|
|
23486
23907
|
isSendingTurn: isComposerSending,
|
|
23487
23908
|
isSubmittingPrompt: viewModel.isRespondingApproval,
|
|
23909
|
+
uiLanguage,
|
|
23488
23910
|
labels: composerLabels,
|
|
23489
23911
|
workspaceUserProjectI18n,
|
|
23490
23912
|
capabilityMenuState,
|
|
@@ -23533,6 +23955,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
23533
23955
|
submitInteractivePrompt,
|
|
23534
23956
|
submitPrompt,
|
|
23535
23957
|
submitGuidancePrompt,
|
|
23958
|
+
uiLanguage,
|
|
23536
23959
|
stableLinkAction,
|
|
23537
23960
|
stableRequestGitBranches,
|
|
23538
23961
|
stableSelectProjectDirectory,
|
|
@@ -23775,7 +24198,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
23775
24198
|
viewModel.isLoadingOlderMessages
|
|
23776
24199
|
]);
|
|
23777
24200
|
return /* @__PURE__ */ jsxs17("main", { className: AgentGUINode_styles_default.detail, children: [
|
|
23778
|
-
/* @__PURE__ */
|
|
24201
|
+
/* @__PURE__ */ jsx30(
|
|
23779
24202
|
AgentGUIDetailHeader,
|
|
23780
24203
|
{
|
|
23781
24204
|
activeConversation: viewModel.activeConversation,
|
|
@@ -23800,13 +24223,17 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
23800
24223
|
"data-testid": "agent-gui-provider-setup-notice",
|
|
23801
24224
|
role: "status",
|
|
23802
24225
|
children: [
|
|
23803
|
-
/* @__PURE__ */
|
|
23804
|
-
/* @__PURE__ */
|
|
24226
|
+
/* @__PURE__ */ jsx30("span", { className: "inline-flex max-w-full items-center justify-center gap-[6px] text-center text-[13px] font-normal leading-normal", children: /* @__PURE__ */ jsx30("span", { className: "min-w-0 break-words", children: labels.installRequiredPlaceholder }) }),
|
|
24227
|
+
/* @__PURE__ */ jsx30(
|
|
23805
24228
|
"button",
|
|
23806
24229
|
{
|
|
23807
24230
|
type: "button",
|
|
23808
|
-
className:
|
|
24231
|
+
className: cn3(
|
|
24232
|
+
AgentGUINode_styles_default.providerSetupNoticeAction,
|
|
24233
|
+
"nodrag tsh-desktop-no-drag [-webkit-app-region:no-drag]"
|
|
24234
|
+
),
|
|
23809
24235
|
"data-testid": "agent-gui-provider-setup-notice-action",
|
|
24236
|
+
onPointerDown: (event) => event.stopPropagation(),
|
|
23810
24237
|
onClick: () => openAgentEnvPanel({
|
|
23811
24238
|
provider: viewModel.data.provider,
|
|
23812
24239
|
focus: "detect"
|
|
@@ -23817,7 +24244,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
23817
24244
|
]
|
|
23818
24245
|
}
|
|
23819
24246
|
) : null,
|
|
23820
|
-
/* @__PURE__ */
|
|
24247
|
+
/* @__PURE__ */ jsx30(
|
|
23821
24248
|
ScrollArea,
|
|
23822
24249
|
{
|
|
23823
24250
|
scrollbarMode: "native",
|
|
@@ -23826,7 +24253,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
23826
24253
|
viewportTestId: "agent-gui-timeline",
|
|
23827
24254
|
viewportClassName: `${AgentGUINode_styles_default.timeline} ${hasActiveConversation ? AgentGUINode_styles_default.timelineWithComposer : AgentGUINode_styles_default.timelineCentered} ${showUnavailableChatEmpty ? AgentGUINode_styles_default.timelineUnavailableChatEmpty : ""}`.trim(),
|
|
23828
24255
|
viewportContentStyle: AGENT_GUI_TIMELINE_SCROLL_AREA_CONTENT_STYLE,
|
|
23829
|
-
children: !hasActiveConversation ? /* @__PURE__ */
|
|
24256
|
+
children: !hasActiveConversation ? /* @__PURE__ */ jsx30(
|
|
23830
24257
|
AgentGUIEmptyHeroPane,
|
|
23831
24258
|
{
|
|
23832
24259
|
provider: viewModel.data.provider,
|
|
@@ -23841,7 +24268,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
23841
24268
|
chromeLabels,
|
|
23842
24269
|
composerProps: emptyHeroComposerProps
|
|
23843
24270
|
}
|
|
23844
|
-
) : /* @__PURE__ */
|
|
24271
|
+
) : /* @__PURE__ */ jsx30(
|
|
23845
24272
|
AgentGUIConversationTimelinePane,
|
|
23846
24273
|
{
|
|
23847
24274
|
conversation,
|
|
@@ -23859,7 +24286,7 @@ var AgentGUIDetailPane = memo(function AgentGUIDetailPane2({
|
|
|
23859
24286
|
)
|
|
23860
24287
|
}
|
|
23861
24288
|
),
|
|
23862
|
-
hasActiveConversation ? /* @__PURE__ */
|
|
24289
|
+
hasActiveConversation ? /* @__PURE__ */ jsx30(
|
|
23863
24290
|
AgentGUIBottomDockPane,
|
|
23864
24291
|
{
|
|
23865
24292
|
bottomDockRef,
|
|
@@ -23899,8 +24326,8 @@ var AgentGUIDetailHeader = memo(function AgentGUIDetailHeader2({
|
|
|
23899
24326
|
const statusTitle = showSyncIndicator ? syncLabel : void 0;
|
|
23900
24327
|
return /* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.detailHeader, children: [
|
|
23901
24328
|
/* @__PURE__ */ jsxs17("span", { className: AgentGUINode_styles_default.detailHeaderTitleGroup, children: [
|
|
23902
|
-
/* @__PURE__ */
|
|
23903
|
-
runPath ? /* @__PURE__ */
|
|
24329
|
+
/* @__PURE__ */ jsx30("span", { className: AgentGUINode_styles_default.detailHeaderTitle, children: conversationPlainTitle(activeConversation, labels, uiLanguage) }),
|
|
24330
|
+
runPath ? /* @__PURE__ */ jsx30(AgentRunPathInfo, { path: runPath, previewMode }) : null
|
|
23904
24331
|
] }),
|
|
23905
24332
|
/* @__PURE__ */ jsxs17(
|
|
23906
24333
|
"span",
|
|
@@ -23908,7 +24335,7 @@ var AgentGUIDetailHeader = memo(function AgentGUIDetailHeader2({
|
|
|
23908
24335
|
className: "inline-flex flex-none items-center gap-2 whitespace-nowrap",
|
|
23909
24336
|
title: statusTitle,
|
|
23910
24337
|
children: [
|
|
23911
|
-
showSyncIndicator ? /* @__PURE__ */
|
|
24338
|
+
showSyncIndicator ? /* @__PURE__ */ jsx30(
|
|
23912
24339
|
StatusDot,
|
|
23913
24340
|
{
|
|
23914
24341
|
tone: syncStateTone(syncStatus),
|
|
@@ -23918,7 +24345,7 @@ var AgentGUIDetailHeader = memo(function AgentGUIDetailHeader2({
|
|
|
23918
24345
|
title: syncLabel
|
|
23919
24346
|
}
|
|
23920
24347
|
) : null,
|
|
23921
|
-
showFailedSyncLabel ? /* @__PURE__ */
|
|
24348
|
+
showFailedSyncLabel ? /* @__PURE__ */ jsx30("span", { className: "text-[13px] font-semibold leading-[18px] text-shell-warning", children: syncLabel }) : null
|
|
23922
24349
|
]
|
|
23923
24350
|
}
|
|
23924
24351
|
)
|
|
@@ -23929,21 +24356,21 @@ function AgentRunPathInfo({
|
|
|
23929
24356
|
previewMode
|
|
23930
24357
|
}) {
|
|
23931
24358
|
"use memo";
|
|
23932
|
-
const trigger = /* @__PURE__ */
|
|
24359
|
+
const trigger = /* @__PURE__ */ jsx30(
|
|
23933
24360
|
"button",
|
|
23934
24361
|
{
|
|
23935
24362
|
type: "button",
|
|
23936
24363
|
className: AgentGUINode_styles_default.detailHeaderPathInfo,
|
|
23937
24364
|
"aria-label": path,
|
|
23938
|
-
children: /* @__PURE__ */
|
|
24365
|
+
children: /* @__PURE__ */ jsx30(Info2, { size: 14, strokeWidth: 2, "aria-hidden": "true" })
|
|
23939
24366
|
}
|
|
23940
24367
|
);
|
|
23941
24368
|
if (previewMode) {
|
|
23942
24369
|
return trigger;
|
|
23943
24370
|
}
|
|
23944
24371
|
return /* @__PURE__ */ jsxs17(Tooltip3, { children: [
|
|
23945
|
-
/* @__PURE__ */
|
|
23946
|
-
/* @__PURE__ */
|
|
24372
|
+
/* @__PURE__ */ jsx30(TooltipTrigger3, { asChild: true, children: trigger }),
|
|
24373
|
+
/* @__PURE__ */ jsx30(
|
|
23947
24374
|
TooltipContent3,
|
|
23948
24375
|
{
|
|
23949
24376
|
side: "top",
|
|
@@ -23988,8 +24415,8 @@ var AgentGUIEmptyHeroPane = memo(function AgentGUIEmptyHeroPane2({
|
|
|
23988
24415
|
}) {
|
|
23989
24416
|
"use memo";
|
|
23990
24417
|
const heroIconUrl = resolveAgentGUIHeroIconUrl(provider);
|
|
23991
|
-
return /* @__PURE__ */
|
|
23992
|
-
/* @__PURE__ */
|
|
24418
|
+
return /* @__PURE__ */ jsx30("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.emptyHeroBody, children: [
|
|
24419
|
+
/* @__PURE__ */ jsx30(
|
|
23993
24420
|
"img",
|
|
23994
24421
|
{
|
|
23995
24422
|
"aria-hidden": "true",
|
|
@@ -23999,8 +24426,8 @@ var AgentGUIEmptyHeroPane = memo(function AgentGUIEmptyHeroPane2({
|
|
|
23999
24426
|
alt: ""
|
|
24000
24427
|
}
|
|
24001
24428
|
),
|
|
24002
|
-
/* @__PURE__ */
|
|
24003
|
-
inlineNoticeChrome ? /* @__PURE__ */
|
|
24429
|
+
/* @__PURE__ */ jsx30("h2", { className: AgentGUINode_styles_default.emptyHeroTitle, children: /* @__PURE__ */ jsx30(EmptyHeroTitle, { label: emptyLabel, providerLabel: emptyProvider }) }),
|
|
24430
|
+
inlineNoticeChrome ? /* @__PURE__ */ jsx30(
|
|
24004
24431
|
AgentSessionChrome,
|
|
24005
24432
|
{
|
|
24006
24433
|
chrome: inlineNoticeChrome,
|
|
@@ -24012,7 +24439,7 @@ var AgentGUIEmptyHeroPane = memo(function AgentGUIEmptyHeroPane2({
|
|
|
24012
24439
|
labels: chromeLabels
|
|
24013
24440
|
}
|
|
24014
24441
|
) : null,
|
|
24015
|
-
/* @__PURE__ */
|
|
24442
|
+
/* @__PURE__ */ jsx30(AgentComposer, { ...composerProps })
|
|
24016
24443
|
] }) });
|
|
24017
24444
|
});
|
|
24018
24445
|
function EmptyHeroTitle({
|
|
@@ -24021,12 +24448,12 @@ function EmptyHeroTitle({
|
|
|
24021
24448
|
}) {
|
|
24022
24449
|
const providerStart = providerLabel ? label.indexOf(providerLabel) : -1;
|
|
24023
24450
|
if (!shouldEmphasizeEmptyHeroProvider(label) || providerStart < 0) {
|
|
24024
|
-
return /* @__PURE__ */
|
|
24451
|
+
return /* @__PURE__ */ jsx30(Fragment8, { children: label });
|
|
24025
24452
|
}
|
|
24026
24453
|
const providerEnd = providerStart + providerLabel.length;
|
|
24027
24454
|
return /* @__PURE__ */ jsxs17(Fragment8, { children: [
|
|
24028
24455
|
label.slice(0, providerStart),
|
|
24029
|
-
/* @__PURE__ */
|
|
24456
|
+
/* @__PURE__ */ jsx30("span", { className: AgentGUINode_styles_default.emptyHeroProvider, children: label.slice(providerStart, providerEnd) }),
|
|
24030
24457
|
label.slice(providerEnd)
|
|
24031
24458
|
] });
|
|
24032
24459
|
}
|
|
@@ -24068,12 +24495,12 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
24068
24495
|
className: AgentGUINode_styles_default.bottomDock,
|
|
24069
24496
|
"data-testid": "agent-gui-bottom-dock",
|
|
24070
24497
|
children: [
|
|
24071
|
-
bottomDockLiftedPrompt ? /* @__PURE__ */
|
|
24498
|
+
bottomDockLiftedPrompt ? /* @__PURE__ */ jsx30(
|
|
24072
24499
|
"div",
|
|
24073
24500
|
{
|
|
24074
24501
|
className: AgentGUINode_styles_default.bottomDockPrompt,
|
|
24075
24502
|
"data-testid": "agent-gui-bottom-dock-active-prompt",
|
|
24076
|
-
children: /* @__PURE__ */
|
|
24503
|
+
children: /* @__PURE__ */ jsx30(
|
|
24077
24504
|
AgentInteractivePromptSurface,
|
|
24078
24505
|
{
|
|
24079
24506
|
prompt: bottomDockLiftedPrompt,
|
|
@@ -24088,7 +24515,7 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
24088
24515
|
)
|
|
24089
24516
|
}
|
|
24090
24517
|
) : null,
|
|
24091
|
-
inlineNoticeChrome ? /* @__PURE__ */
|
|
24518
|
+
inlineNoticeChrome ? /* @__PURE__ */ jsx30(
|
|
24092
24519
|
AgentSessionChrome,
|
|
24093
24520
|
{
|
|
24094
24521
|
chrome: inlineNoticeChrome,
|
|
@@ -24100,7 +24527,7 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
24100
24527
|
labels: chromeLabels
|
|
24101
24528
|
}
|
|
24102
24529
|
) : null,
|
|
24103
|
-
/* @__PURE__ */
|
|
24530
|
+
/* @__PURE__ */ jsx30(
|
|
24104
24531
|
AgentSessionChrome,
|
|
24105
24532
|
{
|
|
24106
24533
|
chrome: sessionChrome,
|
|
@@ -24112,7 +24539,7 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
24112
24539
|
labels: chromeLabels
|
|
24113
24540
|
}
|
|
24114
24541
|
),
|
|
24115
|
-
showGoalBanner ? /* @__PURE__ */
|
|
24542
|
+
showGoalBanner ? /* @__PURE__ */ jsx30(
|
|
24116
24543
|
AgentGoalBanner,
|
|
24117
24544
|
{
|
|
24118
24545
|
objective: goalObjective,
|
|
@@ -24122,12 +24549,12 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
24122
24549
|
labels: goalBannerLabels
|
|
24123
24550
|
}
|
|
24124
24551
|
) : null,
|
|
24125
|
-
bottomDockReplacementPrompt ? /* @__PURE__ */
|
|
24552
|
+
bottomDockReplacementPrompt ? /* @__PURE__ */ jsx30(
|
|
24126
24553
|
"div",
|
|
24127
24554
|
{
|
|
24128
24555
|
className: AgentGUINode_styles_default.bottomDockPrompt,
|
|
24129
24556
|
"data-testid": "agent-gui-bottom-dock-active-prompt",
|
|
24130
|
-
children: /* @__PURE__ */
|
|
24557
|
+
children: /* @__PURE__ */ jsx30(
|
|
24131
24558
|
AgentInteractivePromptSurface,
|
|
24132
24559
|
{
|
|
24133
24560
|
prompt: bottomDockReplacementPrompt,
|
|
@@ -24141,7 +24568,7 @@ var AgentGUIBottomDockPane = memo(function AgentGUIBottomDockPane2({
|
|
|
24141
24568
|
}
|
|
24142
24569
|
)
|
|
24143
24570
|
}
|
|
24144
|
-
) : /* @__PURE__ */
|
|
24571
|
+
) : /* @__PURE__ */ jsx30(AgentComposer, { ...composerProps })
|
|
24145
24572
|
]
|
|
24146
24573
|
}
|
|
24147
24574
|
);
|
|
@@ -24167,7 +24594,7 @@ var AgentGUIConversationRailStorePane = memo(
|
|
|
24167
24594
|
}) {
|
|
24168
24595
|
"use memo";
|
|
24169
24596
|
const state = useSnapshot(store);
|
|
24170
|
-
return /* @__PURE__ */
|
|
24597
|
+
return /* @__PURE__ */ jsx30(
|
|
24171
24598
|
AgentGUIConversationRailPane,
|
|
24172
24599
|
{
|
|
24173
24600
|
...state,
|
|
@@ -24280,6 +24707,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24280
24707
|
selectProjectDirectory,
|
|
24281
24708
|
onRemoveProject,
|
|
24282
24709
|
onConfirmDeleteProjectConversations,
|
|
24710
|
+
onConfirmDeleteConversations,
|
|
24283
24711
|
onRequestDeleteConversation,
|
|
24284
24712
|
onCancelDeleteConversation,
|
|
24285
24713
|
onConfirmDeleteConversation
|
|
@@ -24388,7 +24816,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24388
24816
|
"aria-hidden": isCollapsed ? "true" : void 0,
|
|
24389
24817
|
children: [
|
|
24390
24818
|
/* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.railToolbar, children: [
|
|
24391
|
-
/* @__PURE__ */
|
|
24819
|
+
/* @__PURE__ */ jsx30(
|
|
24392
24820
|
TaskSearchField,
|
|
24393
24821
|
{
|
|
24394
24822
|
value: conversationQuery,
|
|
@@ -24407,14 +24835,14 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24407
24835
|
disabled: createConversationDisabled,
|
|
24408
24836
|
onClick: () => onCreateConversation(),
|
|
24409
24837
|
children: [
|
|
24410
|
-
/* @__PURE__ */
|
|
24411
|
-
/* @__PURE__ */
|
|
24838
|
+
/* @__PURE__ */ jsx30(CreateChatIcon, { "aria-hidden": "true" }),
|
|
24839
|
+
/* @__PURE__ */ jsx30("span", { children: labels.newConversation })
|
|
24412
24840
|
]
|
|
24413
24841
|
}
|
|
24414
24842
|
)
|
|
24415
24843
|
] }),
|
|
24416
24844
|
openclawGateway?.status === "starting" ? /* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.gatewayStatus, "data-state": "starting", children: [
|
|
24417
|
-
/* @__PURE__ */
|
|
24845
|
+
/* @__PURE__ */ jsx30(
|
|
24418
24846
|
StatusDot,
|
|
24419
24847
|
{
|
|
24420
24848
|
tone: "blue",
|
|
@@ -24423,10 +24851,10 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24423
24851
|
ariaLabel: labels.openclawGatewayStarting
|
|
24424
24852
|
}
|
|
24425
24853
|
),
|
|
24426
|
-
/* @__PURE__ */
|
|
24854
|
+
/* @__PURE__ */ jsx30("span", { children: labels.openclawGatewayStarting })
|
|
24427
24855
|
] }) : openclawGateway?.status === "failed" ? /* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.gatewayStatus, "data-state": "failed", children: [
|
|
24428
|
-
/* @__PURE__ */
|
|
24429
|
-
/* @__PURE__ */
|
|
24856
|
+
/* @__PURE__ */ jsx30("span", { children: openclawGateway.error || labels.openclawGatewayFailed }),
|
|
24857
|
+
/* @__PURE__ */ jsx30(
|
|
24430
24858
|
"button",
|
|
24431
24859
|
{
|
|
24432
24860
|
type: "button",
|
|
@@ -24436,19 +24864,19 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24436
24864
|
}
|
|
24437
24865
|
)
|
|
24438
24866
|
] }) : null,
|
|
24439
|
-
/* @__PURE__ */
|
|
24867
|
+
/* @__PURE__ */ jsx30(
|
|
24440
24868
|
ScrollArea,
|
|
24441
24869
|
{
|
|
24442
24870
|
scrollbarMode: "native",
|
|
24443
24871
|
className: "min-h-0 flex-1 [&_[data-orientation=vertical][data-slot=scroll-area-scrollbar]]:opacity-100",
|
|
24444
24872
|
viewportRef: conversationListRef,
|
|
24445
24873
|
viewportClassName: AgentGUINode_styles_default.conversationList,
|
|
24446
|
-
children: isLoadingConversations && conversations.length === 0 ? /* @__PURE__ */
|
|
24874
|
+
children: isLoadingConversations && conversations.length === 0 ? /* @__PURE__ */ jsx30(
|
|
24447
24875
|
AgentConversationListSkeleton,
|
|
24448
24876
|
{
|
|
24449
24877
|
label: labels.loadingConversations
|
|
24450
24878
|
}
|
|
24451
|
-
) : groupedConversations.length === 0 ? /* @__PURE__ */
|
|
24879
|
+
) : groupedConversations.length === 0 ? /* @__PURE__ */ jsx30("div", { className: AgentGUINode_styles_default.emptyState, children: /* @__PURE__ */ jsx30("span", { children: conversations.length === 0 ? labels.noConversations : conversationQuery.trim() ? labels.searchNoConversations : labels.conversationUnavailable }) }) : groupedConversations.map((section, sectionIndex) => {
|
|
24452
24880
|
const projectPath = section.kind === "project" ? section.project?.path ?? "" : "";
|
|
24453
24881
|
const normalizedProjectPath = normalizeConversationRailProjectPath(projectPath);
|
|
24454
24882
|
const projectLabel = section.kind === "project" ? section.label : "";
|
|
@@ -24457,7 +24885,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24457
24885
|
const isSectionCollapsed = isProjectSection && collapsedProjectSectionIds.has(section.id);
|
|
24458
24886
|
const projectConversationCount = normalizedProjectPath ? projectConversationCountsByPath.get(normalizedProjectPath) ?? 0 : 0;
|
|
24459
24887
|
return /* @__PURE__ */ jsxs17(Fragment7, { children: [
|
|
24460
|
-
showProjectRailHeader ? /* @__PURE__ */
|
|
24888
|
+
showProjectRailHeader ? /* @__PURE__ */ jsx30(
|
|
24461
24889
|
AgentGUIProjectRailHeader,
|
|
24462
24890
|
{
|
|
24463
24891
|
labels,
|
|
@@ -24465,7 +24893,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24465
24893
|
workspaceUserProjectI18n
|
|
24466
24894
|
}
|
|
24467
24895
|
) : null,
|
|
24468
|
-
/* @__PURE__ */
|
|
24896
|
+
/* @__PURE__ */ jsx30(
|
|
24469
24897
|
AgentGUIConversationRailSection,
|
|
24470
24898
|
{
|
|
24471
24899
|
activeConversationId,
|
|
@@ -24498,8 +24926,8 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24498
24926
|
})
|
|
24499
24927
|
}
|
|
24500
24928
|
),
|
|
24501
|
-
/* @__PURE__ */
|
|
24502
|
-
/* @__PURE__ */
|
|
24929
|
+
/* @__PURE__ */ jsx30("div", { className: "shrink-0 border-t border-[var(--border-1)] px-2 py-1.5", children: /* @__PURE__ */ jsxs17(Popover, { children: [
|
|
24930
|
+
/* @__PURE__ */ jsx30(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs17(
|
|
24503
24931
|
Button,
|
|
24504
24932
|
{
|
|
24505
24933
|
type: "button",
|
|
@@ -24508,12 +24936,19 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24508
24936
|
title: labels.agentConfig,
|
|
24509
24937
|
disabled: previewMode,
|
|
24510
24938
|
children: [
|
|
24511
|
-
/* @__PURE__ */
|
|
24512
|
-
|
|
24939
|
+
/* @__PURE__ */ jsx30(
|
|
24940
|
+
EnvironmentLinedIcon,
|
|
24941
|
+
{
|
|
24942
|
+
"aria-hidden": "true",
|
|
24943
|
+
width: 16,
|
|
24944
|
+
height: 16
|
|
24945
|
+
}
|
|
24946
|
+
),
|
|
24947
|
+
/* @__PURE__ */ jsx30("span", { children: labels.agentConfig })
|
|
24513
24948
|
]
|
|
24514
24949
|
}
|
|
24515
24950
|
) }),
|
|
24516
|
-
/* @__PURE__ */
|
|
24951
|
+
/* @__PURE__ */ jsx30(
|
|
24517
24952
|
PopoverContent,
|
|
24518
24953
|
{
|
|
24519
24954
|
side: "top",
|
|
@@ -24523,8 +24958,8 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24523
24958
|
children: /* @__PURE__ */ jsxs17("div", { className: "flex min-w-0 flex-col gap-3", children: [
|
|
24524
24959
|
slashStatusLimits.length > 0 ? /* @__PURE__ */ jsxs17(Fragment8, { children: [
|
|
24525
24960
|
/* @__PURE__ */ jsxs17("div", { className: "flex min-w-0 flex-col gap-2", children: [
|
|
24526
|
-
/* @__PURE__ */
|
|
24527
|
-
slashStatusLimits.map((limit) => /* @__PURE__ */
|
|
24961
|
+
/* @__PURE__ */ jsx30("span", { className: "text-[13px] font-semibold leading-4", children: labels.slashStatusLimits }),
|
|
24962
|
+
slashStatusLimits.map((limit) => /* @__PURE__ */ jsx30(
|
|
24528
24963
|
AgentUsageMeter,
|
|
24529
24964
|
{
|
|
24530
24965
|
label: limit.label,
|
|
@@ -24534,7 +24969,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24534
24969
|
limit.id
|
|
24535
24970
|
))
|
|
24536
24971
|
] }),
|
|
24537
|
-
/* @__PURE__ */
|
|
24972
|
+
/* @__PURE__ */ jsx30("span", { className: "h-px bg-[var(--border-1)]" })
|
|
24538
24973
|
] }) : null,
|
|
24539
24974
|
/* @__PURE__ */ jsxs17(
|
|
24540
24975
|
"button",
|
|
@@ -24545,8 +24980,8 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24545
24980
|
disabled: previewMode,
|
|
24546
24981
|
onClick: () => onOpenAgentEnvSetup(),
|
|
24547
24982
|
children: [
|
|
24548
|
-
/* @__PURE__ */
|
|
24549
|
-
/* @__PURE__ */
|
|
24983
|
+
/* @__PURE__ */ jsx30(Wrench, { "aria-hidden": "true", size: 16, strokeWidth: 1.8 }),
|
|
24984
|
+
/* @__PURE__ */ jsx30("span", { children: labels.agentEnvSetup })
|
|
24550
24985
|
]
|
|
24551
24986
|
}
|
|
24552
24987
|
)
|
|
@@ -24554,16 +24989,18 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24554
24989
|
}
|
|
24555
24990
|
)
|
|
24556
24991
|
] }) }),
|
|
24557
|
-
/* @__PURE__ */
|
|
24992
|
+
/* @__PURE__ */ jsx30(
|
|
24558
24993
|
ConfirmationDialog,
|
|
24559
24994
|
{
|
|
24560
24995
|
cancelLabel: labels.cancel,
|
|
24561
24996
|
className: AGENT_GUI_CONFIRMATION_DIALOG_CLASS_NAME,
|
|
24562
|
-
confirmBusy: pendingProjectAction?.kind === "batch-delete" && isDeletingProjectConversations,
|
|
24563
|
-
confirmLabel: pendingProjectAction?.kind === "batch-delete" ? labels.batchDeleteProjectSessionsConfirm : labels.removeProject,
|
|
24997
|
+
confirmBusy: (pendingProjectAction?.kind === "batch-delete" || pendingProjectAction?.kind === "batch-delete-conversations") && isDeletingProjectConversations,
|
|
24998
|
+
confirmLabel: pendingProjectAction?.kind === "batch-delete" ? labels.batchDeleteProjectSessionsConfirm : pendingProjectAction?.kind === "batch-delete-conversations" ? labels.batchDeleteConversationsConfirm : labels.removeProject,
|
|
24564
24999
|
description: pendingProjectAction?.kind === "batch-delete" ? labels.batchDeleteProjectSessionsBody(
|
|
24565
25000
|
pendingProjectAction.conversationCount,
|
|
24566
25001
|
pendingProjectAction.label
|
|
25002
|
+
) : pendingProjectAction?.kind === "batch-delete-conversations" ? labels.batchDeleteConversationsBody(
|
|
25003
|
+
pendingProjectAction.conversationCount
|
|
24567
25004
|
) : pendingProjectAction ? labels.removeProjectConfirmDescription(
|
|
24568
25005
|
pendingProjectAction.label
|
|
24569
25006
|
) : void 0,
|
|
@@ -24578,6 +25015,10 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24578
25015
|
onConfirmDeleteProjectConversations(action.path);
|
|
24579
25016
|
return;
|
|
24580
25017
|
}
|
|
25018
|
+
if (action.kind === "batch-delete-conversations") {
|
|
25019
|
+
onConfirmDeleteConversations(action.sessionIds);
|
|
25020
|
+
return;
|
|
25021
|
+
}
|
|
24581
25022
|
onRemoveProject(action.path);
|
|
24582
25023
|
},
|
|
24583
25024
|
onOpenChange: (open) => {
|
|
@@ -24587,7 +25028,7 @@ var AgentGUIConversationRailPane = memo(
|
|
|
24587
25028
|
},
|
|
24588
25029
|
open: pendingProjectAction !== null,
|
|
24589
25030
|
overlayClassName: AGENT_GUI_CONFIRMATION_DIALOG_OVERLAY_CLASS_NAME,
|
|
24590
|
-
title: pendingProjectAction?.kind === "batch-delete" ? labels.batchDeleteProjectSessionsTitle : labels.removeProjectConfirmTitle,
|
|
25031
|
+
title: pendingProjectAction?.kind === "batch-delete" ? labels.batchDeleteProjectSessionsTitle : pendingProjectAction?.kind === "batch-delete-conversations" ? labels.batchDeleteConversationsTitle : labels.removeProjectConfirmTitle,
|
|
24591
25032
|
tone: "destructive"
|
|
24592
25033
|
}
|
|
24593
25034
|
)
|
|
@@ -24671,7 +25112,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
24671
25112
|
"aria-expanded": !isSectionCollapsed,
|
|
24672
25113
|
onClick: () => onToggleProjectSectionCollapsed(section.id),
|
|
24673
25114
|
children: [
|
|
24674
|
-
/* @__PURE__ */
|
|
25115
|
+
/* @__PURE__ */ jsx30(
|
|
24675
25116
|
ChevronRight2,
|
|
24676
25117
|
{
|
|
24677
25118
|
"aria-hidden": "true",
|
|
@@ -24679,20 +25120,20 @@ var AgentGUIConversationRailSection = memo(
|
|
|
24679
25120
|
}
|
|
24680
25121
|
),
|
|
24681
25122
|
/* @__PURE__ */ jsxs17("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: [
|
|
24682
|
-
/* @__PURE__ */
|
|
25123
|
+
/* @__PURE__ */ jsx30(
|
|
24683
25124
|
FolderIcon2,
|
|
24684
25125
|
{
|
|
24685
25126
|
"aria-hidden": "true",
|
|
24686
25127
|
className: AgentGUINode_styles_default.conversationSectionLabelIcon
|
|
24687
25128
|
}
|
|
24688
25129
|
),
|
|
24689
|
-
/* @__PURE__ */
|
|
25130
|
+
/* @__PURE__ */ jsx30("span", { children: section.label })
|
|
24690
25131
|
] })
|
|
24691
25132
|
]
|
|
24692
25133
|
}
|
|
24693
|
-
) : /* @__PURE__ */
|
|
25134
|
+
) : /* @__PURE__ */ jsx30("div", { className: AgentGUINode_styles_default.conversationSectionToggle, children: /* @__PURE__ */ jsx30("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: /* @__PURE__ */ jsx30("span", { children: section.label }) }) }),
|
|
24694
25135
|
canCreateConversationFromSection ? /* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.conversationSectionActions, children: [
|
|
24695
|
-
previewMode ? /* @__PURE__ */
|
|
25136
|
+
previewMode ? /* @__PURE__ */ jsx30("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx30(
|
|
24696
25137
|
BareIconButton,
|
|
24697
25138
|
{
|
|
24698
25139
|
className: AgentGUINode_styles_default.conversationSectionMoreButton,
|
|
@@ -24700,14 +25141,14 @@ var AgentGUIConversationRailSection = memo(
|
|
|
24700
25141
|
size: "sm",
|
|
24701
25142
|
disabled: createConversationDisabled,
|
|
24702
25143
|
onClick: handleCreateConversation,
|
|
24703
|
-
children: /* @__PURE__ */
|
|
25144
|
+
children: /* @__PURE__ */ jsx30(CreateChatIcon, { "aria-hidden": "true" })
|
|
24704
25145
|
}
|
|
24705
25146
|
) }) : /* @__PURE__ */ jsxs17(Tooltip3, { children: [
|
|
24706
|
-
/* @__PURE__ */
|
|
25147
|
+
/* @__PURE__ */ jsx30(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx30(
|
|
24707
25148
|
"span",
|
|
24708
25149
|
{
|
|
24709
25150
|
className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap,
|
|
24710
|
-
children: /* @__PURE__ */
|
|
25151
|
+
children: /* @__PURE__ */ jsx30(
|
|
24711
25152
|
BareIconButton,
|
|
24712
25153
|
{
|
|
24713
25154
|
className: AgentGUINode_styles_default.conversationSectionMoreButton,
|
|
@@ -24715,12 +25156,12 @@ var AgentGUIConversationRailSection = memo(
|
|
|
24715
25156
|
size: "sm",
|
|
24716
25157
|
disabled: createConversationDisabled,
|
|
24717
25158
|
onClick: handleCreateConversation,
|
|
24718
|
-
children: /* @__PURE__ */
|
|
25159
|
+
children: /* @__PURE__ */ jsx30(CreateChatIcon, { "aria-hidden": "true" })
|
|
24719
25160
|
}
|
|
24720
25161
|
)
|
|
24721
25162
|
}
|
|
24722
25163
|
) }),
|
|
24723
|
-
/* @__PURE__ */
|
|
25164
|
+
/* @__PURE__ */ jsx30(
|
|
24724
25165
|
TooltipContent3,
|
|
24725
25166
|
{
|
|
24726
25167
|
side: "top",
|
|
@@ -24731,37 +25172,37 @@ var AgentGUIConversationRailSection = memo(
|
|
|
24731
25172
|
)
|
|
24732
25173
|
] }),
|
|
24733
25174
|
projectPath ? /* @__PURE__ */ jsxs17(DropdownMenu, { children: [
|
|
24734
|
-
previewMode ? /* @__PURE__ */
|
|
25175
|
+
previewMode ? /* @__PURE__ */ jsx30(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx30(
|
|
24735
25176
|
"span",
|
|
24736
25177
|
{
|
|
24737
25178
|
className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap,
|
|
24738
|
-
children: /* @__PURE__ */
|
|
25179
|
+
children: /* @__PURE__ */ jsx30(
|
|
24739
25180
|
BareIconButton,
|
|
24740
25181
|
{
|
|
24741
25182
|
className: AgentGUINode_styles_default.conversationSectionMoreButton,
|
|
24742
25183
|
"aria-label": labels.projectSectionMoreActions,
|
|
24743
25184
|
size: "sm",
|
|
24744
|
-
children: /* @__PURE__ */
|
|
25185
|
+
children: /* @__PURE__ */ jsx30(MoreHorizontalIcon, { "aria-hidden": "true" })
|
|
24745
25186
|
}
|
|
24746
25187
|
)
|
|
24747
25188
|
}
|
|
24748
25189
|
) }) : /* @__PURE__ */ jsxs17(Tooltip3, { children: [
|
|
24749
|
-
/* @__PURE__ */
|
|
25190
|
+
/* @__PURE__ */ jsx30(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx30(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx30(
|
|
24750
25191
|
"span",
|
|
24751
25192
|
{
|
|
24752
25193
|
className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap,
|
|
24753
|
-
children: /* @__PURE__ */
|
|
25194
|
+
children: /* @__PURE__ */ jsx30(
|
|
24754
25195
|
BareIconButton,
|
|
24755
25196
|
{
|
|
24756
25197
|
className: AgentGUINode_styles_default.conversationSectionMoreButton,
|
|
24757
25198
|
"aria-label": labels.projectSectionMoreActions,
|
|
24758
25199
|
size: "sm",
|
|
24759
|
-
children: /* @__PURE__ */
|
|
25200
|
+
children: /* @__PURE__ */ jsx30(MoreHorizontalIcon, { "aria-hidden": "true" })
|
|
24760
25201
|
}
|
|
24761
25202
|
)
|
|
24762
25203
|
}
|
|
24763
25204
|
) }) }),
|
|
24764
|
-
/* @__PURE__ */
|
|
25205
|
+
/* @__PURE__ */ jsx30(
|
|
24765
25206
|
TooltipContent3,
|
|
24766
25207
|
{
|
|
24767
25208
|
side: "right",
|
|
@@ -24778,7 +25219,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
24778
25219
|
className: `${AgentGUINode_styles_default.composerMenuContent} nodrag [-webkit-app-region:no-drag]`,
|
|
24779
25220
|
sideOffset: 6,
|
|
24780
25221
|
children: [
|
|
24781
|
-
/* @__PURE__ */
|
|
25222
|
+
/* @__PURE__ */ jsx30(
|
|
24782
25223
|
DropdownMenuItem,
|
|
24783
25224
|
{
|
|
24784
25225
|
className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
|
|
@@ -24793,10 +25234,10 @@ var AgentGUIConversationRailSection = memo(
|
|
|
24793
25234
|
workspaceRoot: projectPath
|
|
24794
25235
|
});
|
|
24795
25236
|
},
|
|
24796
|
-
children: /* @__PURE__ */
|
|
25237
|
+
children: /* @__PURE__ */ jsx30("span", { children: labels.projectSectionViewFiles })
|
|
24797
25238
|
}
|
|
24798
25239
|
),
|
|
24799
|
-
projectConversationCount > 0 ? /* @__PURE__ */
|
|
25240
|
+
projectConversationCount > 0 ? /* @__PURE__ */ jsx30(
|
|
24800
25241
|
DropdownMenuItem,
|
|
24801
25242
|
{
|
|
24802
25243
|
className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
|
|
@@ -24809,10 +25250,10 @@ var AgentGUIConversationRailSection = memo(
|
|
|
24809
25250
|
path: projectPath
|
|
24810
25251
|
});
|
|
24811
25252
|
},
|
|
24812
|
-
children: /* @__PURE__ */
|
|
25253
|
+
children: /* @__PURE__ */ jsx30("span", { children: labels.batchDeleteProjectSessions })
|
|
24813
25254
|
}
|
|
24814
25255
|
) : null,
|
|
24815
|
-
/* @__PURE__ */
|
|
25256
|
+
/* @__PURE__ */ jsx30(
|
|
24816
25257
|
DropdownMenuItem,
|
|
24817
25258
|
{
|
|
24818
25259
|
className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
|
|
@@ -24824,23 +25265,88 @@ var AgentGUIConversationRailSection = memo(
|
|
|
24824
25265
|
path: projectPath
|
|
24825
25266
|
});
|
|
24826
25267
|
},
|
|
24827
|
-
children: /* @__PURE__ */
|
|
25268
|
+
children: /* @__PURE__ */ jsx30("span", { children: labels.removeProject })
|
|
24828
25269
|
}
|
|
24829
25270
|
)
|
|
24830
25271
|
]
|
|
24831
25272
|
}
|
|
24832
25273
|
)
|
|
25274
|
+
] }) : null,
|
|
25275
|
+
!projectPath && section.kind === "conversations" && section.items.length > 0 ? /* @__PURE__ */ jsxs17(DropdownMenu, { children: [
|
|
25276
|
+
previewMode ? /* @__PURE__ */ jsx30(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx30(
|
|
25277
|
+
"span",
|
|
25278
|
+
{
|
|
25279
|
+
className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap,
|
|
25280
|
+
children: /* @__PURE__ */ jsx30(
|
|
25281
|
+
BareIconButton,
|
|
25282
|
+
{
|
|
25283
|
+
className: AgentGUINode_styles_default.conversationSectionMoreButton,
|
|
25284
|
+
"aria-label": labels.conversationsSectionMoreActions,
|
|
25285
|
+
size: "sm",
|
|
25286
|
+
children: /* @__PURE__ */ jsx30(MoreHorizontalIcon, { "aria-hidden": "true" })
|
|
25287
|
+
}
|
|
25288
|
+
)
|
|
25289
|
+
}
|
|
25290
|
+
) }) : /* @__PURE__ */ jsxs17(Tooltip3, { children: [
|
|
25291
|
+
/* @__PURE__ */ jsx30(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx30(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx30(
|
|
25292
|
+
"span",
|
|
25293
|
+
{
|
|
25294
|
+
className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap,
|
|
25295
|
+
children: /* @__PURE__ */ jsx30(
|
|
25296
|
+
BareIconButton,
|
|
25297
|
+
{
|
|
25298
|
+
className: AgentGUINode_styles_default.conversationSectionMoreButton,
|
|
25299
|
+
"aria-label": labels.conversationsSectionMoreActions,
|
|
25300
|
+
size: "sm",
|
|
25301
|
+
children: /* @__PURE__ */ jsx30(MoreHorizontalIcon, { "aria-hidden": "true" })
|
|
25302
|
+
}
|
|
25303
|
+
)
|
|
25304
|
+
}
|
|
25305
|
+
) }) }),
|
|
25306
|
+
/* @__PURE__ */ jsx30(
|
|
25307
|
+
TooltipContent3,
|
|
25308
|
+
{
|
|
25309
|
+
side: "right",
|
|
25310
|
+
sideOffset: 6,
|
|
25311
|
+
className: AgentGUINode_styles_default.conversationSectionActionTooltip,
|
|
25312
|
+
children: labels.conversationsSectionMoreActions
|
|
25313
|
+
}
|
|
25314
|
+
)
|
|
25315
|
+
] }),
|
|
25316
|
+
/* @__PURE__ */ jsx30(
|
|
25317
|
+
DropdownMenuContent,
|
|
25318
|
+
{
|
|
25319
|
+
align: "end",
|
|
25320
|
+
className: `${AgentGUINode_styles_default.composerMenuContent} nodrag [-webkit-app-region:no-drag]`,
|
|
25321
|
+
sideOffset: 6,
|
|
25322
|
+
children: /* @__PURE__ */ jsx30(
|
|
25323
|
+
DropdownMenuItem,
|
|
25324
|
+
{
|
|
25325
|
+
className: `${AgentGUINode_styles_default.composerMenuItem} nodrag [-webkit-app-region:no-drag]`,
|
|
25326
|
+
onSelect: () => {
|
|
25327
|
+
setPendingProjectAction({
|
|
25328
|
+
kind: "batch-delete-conversations",
|
|
25329
|
+
conversationCount: section.items.length,
|
|
25330
|
+
label: section.label,
|
|
25331
|
+
sessionIds: section.items.map((item) => item.id)
|
|
25332
|
+
});
|
|
25333
|
+
},
|
|
25334
|
+
children: /* @__PURE__ */ jsx30("span", { children: labels.batchDeleteConversations })
|
|
25335
|
+
}
|
|
25336
|
+
)
|
|
25337
|
+
}
|
|
25338
|
+
)
|
|
24833
25339
|
] }) : null
|
|
24834
25340
|
] }) : null
|
|
24835
25341
|
] }),
|
|
24836
|
-
/* @__PURE__ */
|
|
25342
|
+
/* @__PURE__ */ jsx30(
|
|
24837
25343
|
"div",
|
|
24838
25344
|
{
|
|
24839
25345
|
className: AgentGUINode_styles_default.conversationSectionItems,
|
|
24840
25346
|
"aria-hidden": isSectionCollapsed ? "true" : void 0,
|
|
24841
25347
|
children: /* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.conversationSectionItemsInner, children: [
|
|
24842
|
-
!isSectionCollapsed && section.items.length === 0 ? /* @__PURE__ */
|
|
24843
|
-
visibleItems.map((item) => /* @__PURE__ */
|
|
25348
|
+
!isSectionCollapsed && section.items.length === 0 ? /* @__PURE__ */ jsx30("div", { className: AgentGUINode_styles_default.conversationSectionEmpty, children: labels.emptyProjectConversations }) : null,
|
|
25349
|
+
visibleItems.map((item) => /* @__PURE__ */ jsx30(
|
|
24844
25350
|
AgentGUIConversationRailItem,
|
|
24845
25351
|
{
|
|
24846
25352
|
active: item.id === activeConversationId,
|
|
@@ -24862,7 +25368,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
24862
25368
|
item.id
|
|
24863
25369
|
)),
|
|
24864
25370
|
canShowMore || canShowLess ? /* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.conversationSectionPagination, children: [
|
|
24865
|
-
canShowMore ? /* @__PURE__ */
|
|
25371
|
+
canShowMore ? /* @__PURE__ */ jsx30(
|
|
24866
25372
|
"button",
|
|
24867
25373
|
{
|
|
24868
25374
|
type: "button",
|
|
@@ -24871,7 +25377,7 @@ var AgentGUIConversationRailSection = memo(
|
|
|
24871
25377
|
children: labels.showMoreConversations
|
|
24872
25378
|
}
|
|
24873
25379
|
) : null,
|
|
24874
|
-
canShowLess ? /* @__PURE__ */
|
|
25380
|
+
canShowLess ? /* @__PURE__ */ jsx30(
|
|
24875
25381
|
"button",
|
|
24876
25382
|
{
|
|
24877
25383
|
type: "button",
|
|
@@ -24950,12 +25456,12 @@ var AgentGUIConversationRailItem = memo(
|
|
|
24950
25456
|
className: AgentGUINode_styles_default.conversationSelect,
|
|
24951
25457
|
onClick: handleSelect,
|
|
24952
25458
|
children: [
|
|
24953
|
-
/* @__PURE__ */
|
|
24954
|
-
/* @__PURE__ */
|
|
25459
|
+
/* @__PURE__ */ jsx30("span", { className: AgentGUINode_styles_default.conversationTitle, children: conversationPlainTitle(item, labels, uiLanguage) }),
|
|
25460
|
+
/* @__PURE__ */ jsx30(ConversationMeta, { item, nowMs: currentTimeMs, labels })
|
|
24955
25461
|
]
|
|
24956
25462
|
}
|
|
24957
25463
|
),
|
|
24958
|
-
previewMode ? null : /* @__PURE__ */
|
|
25464
|
+
previewMode ? null : /* @__PURE__ */ jsx30("div", { className: AgentGUINode_styles_default.conversationActions, children: isPendingDeleteConversation ? /* @__PURE__ */ jsx30(
|
|
24959
25465
|
"button",
|
|
24960
25466
|
{
|
|
24961
25467
|
type: "button",
|
|
@@ -24967,10 +25473,10 @@ var AgentGUIConversationRailItem = memo(
|
|
|
24967
25473
|
event.stopPropagation();
|
|
24968
25474
|
onConfirmDeleteConversation();
|
|
24969
25475
|
},
|
|
24970
|
-
children: /* @__PURE__ */
|
|
25476
|
+
children: /* @__PURE__ */ jsx30("span", { className: AgentGUINode_styles_default.conversationDeleteConfirmText, children: labels.deleteSessionConfirm })
|
|
24971
25477
|
}
|
|
24972
25478
|
) : /* @__PURE__ */ jsxs17(Fragment8, { children: [
|
|
24973
|
-
onOpenConversationWindow ? /* @__PURE__ */
|
|
25479
|
+
onOpenConversationWindow ? /* @__PURE__ */ jsx30(
|
|
24974
25480
|
BareIconButton,
|
|
24975
25481
|
{
|
|
24976
25482
|
className: AgentGUINode_styles_default.conversationOpenWindowButton,
|
|
@@ -24987,10 +25493,10 @@ var AgentGUIConversationRailItem = memo(
|
|
|
24987
25493
|
event.stopPropagation();
|
|
24988
25494
|
handleOpenConversationWindow();
|
|
24989
25495
|
},
|
|
24990
|
-
children: /* @__PURE__ */
|
|
25496
|
+
children: /* @__PURE__ */ jsx30(ExternalLink, { "aria-hidden": "true" })
|
|
24991
25497
|
}
|
|
24992
25498
|
) : null,
|
|
24993
|
-
/* @__PURE__ */
|
|
25499
|
+
/* @__PURE__ */ jsx30(
|
|
24994
25500
|
BareIconButton,
|
|
24995
25501
|
{
|
|
24996
25502
|
className: AgentGUINode_styles_default.conversationPinButton,
|
|
@@ -25007,10 +25513,10 @@ var AgentGUIConversationRailItem = memo(
|
|
|
25007
25513
|
event.stopPropagation();
|
|
25008
25514
|
handleTogglePinned();
|
|
25009
25515
|
},
|
|
25010
|
-
children: pinned ? /* @__PURE__ */
|
|
25516
|
+
children: pinned ? /* @__PURE__ */ jsx30(PinFilledIcon, { "aria-hidden": "true" }) : /* @__PURE__ */ jsx30(PinLinedIcon, { "aria-hidden": "true" })
|
|
25011
25517
|
}
|
|
25012
25518
|
),
|
|
25013
|
-
/* @__PURE__ */
|
|
25519
|
+
/* @__PURE__ */ jsx30(
|
|
25014
25520
|
BareIconButton,
|
|
25015
25521
|
{
|
|
25016
25522
|
className: AgentGUINode_styles_default.conversationDeleteButton,
|
|
@@ -25027,7 +25533,7 @@ var AgentGUIConversationRailItem = memo(
|
|
|
25027
25533
|
event.stopPropagation();
|
|
25028
25534
|
handleRequestDelete();
|
|
25029
25535
|
},
|
|
25030
|
-
children: /* @__PURE__ */
|
|
25536
|
+
children: /* @__PURE__ */ jsx30(CanvasNodeTrashLinedIcon, { "aria-hidden": "true" })
|
|
25031
25537
|
}
|
|
25032
25538
|
)
|
|
25033
25539
|
] }) })
|
|
@@ -25055,9 +25561,9 @@ function AgentGUIProjectRailHeader({
|
|
|
25055
25561
|
]
|
|
25056
25562
|
);
|
|
25057
25563
|
return /* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.projectRailHeader, children: [
|
|
25058
|
-
/* @__PURE__ */
|
|
25564
|
+
/* @__PURE__ */ jsx30("div", { className: AgentGUINode_styles_default.projectRailTitle, children: /* @__PURE__ */ jsx30("span", { children: workspaceUserProjectI18n.tFirst(["projectSelect.projectLabel"]) }) }),
|
|
25059
25565
|
/* @__PURE__ */ jsxs17("div", { className: AgentGUINode_styles_default.projectRailAddProject, children: [
|
|
25060
|
-
/* @__PURE__ */
|
|
25566
|
+
/* @__PURE__ */ jsx30(
|
|
25061
25567
|
WorkspaceUserProjectSelect2,
|
|
25062
25568
|
{
|
|
25063
25569
|
api: userProjectApi,
|
|
@@ -25087,7 +25593,7 @@ function AgentGUIProjectRailHeader({
|
|
|
25087
25593
|
"projectSelect.addProject"
|
|
25088
25594
|
])
|
|
25089
25595
|
},
|
|
25090
|
-
renderAddProjectIcon: () => /* @__PURE__ */
|
|
25596
|
+
renderAddProjectIcon: () => /* @__PURE__ */ jsx30(
|
|
25091
25597
|
NewWorkspaceLinedIcon2,
|
|
25092
25598
|
{
|
|
25093
25599
|
"aria-hidden": true,
|
|
@@ -25105,7 +25611,7 @@ function AgentGUIProjectRailHeader({
|
|
|
25105
25611
|
}
|
|
25106
25612
|
}
|
|
25107
25613
|
),
|
|
25108
|
-
/* @__PURE__ */
|
|
25614
|
+
/* @__PURE__ */ jsx30(
|
|
25109
25615
|
NewWorkspaceLinedIcon2,
|
|
25110
25616
|
{
|
|
25111
25617
|
"aria-hidden": true,
|
|
@@ -25131,16 +25637,16 @@ var AgentGUIConversationTimelinePane = memo(
|
|
|
25131
25637
|
}) {
|
|
25132
25638
|
"use memo";
|
|
25133
25639
|
return /* @__PURE__ */ jsxs17(Fragment8, { children: [
|
|
25134
|
-
isLoadingOlderMessages && !isLoading ? /* @__PURE__ */
|
|
25640
|
+
isLoadingOlderMessages && !isLoading ? /* @__PURE__ */ jsx30(
|
|
25135
25641
|
"div",
|
|
25136
25642
|
{
|
|
25137
25643
|
className: "mx-auto flex h-8 items-center justify-center text-[12px] text-[var(--text-secondary)]",
|
|
25138
25644
|
"data-testid": "agent-gui-older-messages-loading",
|
|
25139
25645
|
role: "status",
|
|
25140
|
-
children: /* @__PURE__ */
|
|
25646
|
+
children: /* @__PURE__ */ jsx30("span", { className: "tsh-inline-loading-ellipsis", children: loadingLabel })
|
|
25141
25647
|
}
|
|
25142
25648
|
) : null,
|
|
25143
|
-
/* @__PURE__ */
|
|
25649
|
+
/* @__PURE__ */ jsx30(
|
|
25144
25650
|
AgentConversationFlow,
|
|
25145
25651
|
{
|
|
25146
25652
|
conversation,
|
|
@@ -25352,7 +25858,7 @@ function appendDockProbeUsageLines(probe, lines, isLoadingUsage, t) {
|
|
|
25352
25858
|
}
|
|
25353
25859
|
|
|
25354
25860
|
// agent-gui/workspaceDesktop/view/AgentProbeInfoPopover.tsx
|
|
25355
|
-
import { Info as
|
|
25861
|
+
import { Info as Info3 } from "lucide-react";
|
|
25356
25862
|
import {
|
|
25357
25863
|
useCallback as useCallback12,
|
|
25358
25864
|
useEffect as useEffect13,
|
|
@@ -25361,7 +25867,7 @@ import {
|
|
|
25361
25867
|
useState as useState13
|
|
25362
25868
|
} from "react";
|
|
25363
25869
|
import { createPortal as createPortal4 } from "react-dom";
|
|
25364
|
-
import { Fragment as Fragment9, jsx as
|
|
25870
|
+
import { Fragment as Fragment9, jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
25365
25871
|
var POPOVER_MIN_VIEWPORT_INSET_PX = 16;
|
|
25366
25872
|
var POPOVER_DEFAULT_WIDTH_PX = 260;
|
|
25367
25873
|
function dockAgentProbeLineKey(line) {
|
|
@@ -25375,7 +25881,7 @@ function renderDockAgentProbeLine(line) {
|
|
|
25375
25881
|
line.primary,
|
|
25376
25882
|
line.secondary ? /* @__PURE__ */ jsxs18(Fragment9, { children: [
|
|
25377
25883
|
" ",
|
|
25378
|
-
/* @__PURE__ */
|
|
25884
|
+
/* @__PURE__ */ jsx31("span", { className: "desktop-dock-popup__agent-status-secondary", children: line.secondary })
|
|
25379
25885
|
] }) : null
|
|
25380
25886
|
] });
|
|
25381
25887
|
}
|
|
@@ -25452,7 +25958,7 @@ function AgentProbeInfoPopover({
|
|
|
25452
25958
|
if (lines.length === 0) {
|
|
25453
25959
|
return null;
|
|
25454
25960
|
}
|
|
25455
|
-
const popover = /* @__PURE__ */
|
|
25961
|
+
const popover = /* @__PURE__ */ jsx31(
|
|
25456
25962
|
"div",
|
|
25457
25963
|
{
|
|
25458
25964
|
ref: popoverRef,
|
|
@@ -25461,7 +25967,7 @@ function AgentProbeInfoPopover({
|
|
|
25461
25967
|
style: popoverStyle ?? void 0,
|
|
25462
25968
|
onMouseEnter: () => setIsOpen(true),
|
|
25463
25969
|
onMouseLeave: closeIfPointerLeavesPopover,
|
|
25464
|
-
children: /* @__PURE__ */
|
|
25970
|
+
children: /* @__PURE__ */ jsx31("ul", { className: "desktop-dock-popup__agent-info-list", children: lines.map((line) => {
|
|
25465
25971
|
const label = getDockAgentProbeLineLabel(line);
|
|
25466
25972
|
const valueText = formatDockAgentProbeLineText(line);
|
|
25467
25973
|
return /* @__PURE__ */ jsxs18(
|
|
@@ -25470,8 +25976,8 @@ function AgentProbeInfoPopover({
|
|
|
25470
25976
|
className: "desktop-dock-popup__agent-info-item",
|
|
25471
25977
|
"data-has-label": label ? "true" : "false",
|
|
25472
25978
|
children: [
|
|
25473
|
-
label ? /* @__PURE__ */
|
|
25474
|
-
/* @__PURE__ */
|
|
25979
|
+
label ? /* @__PURE__ */ jsx31("span", { className: "desktop-dock-popup__agent-info-label", children: label }) : null,
|
|
25980
|
+
/* @__PURE__ */ jsx31(
|
|
25475
25981
|
"span",
|
|
25476
25982
|
{
|
|
25477
25983
|
className: "desktop-dock-popup__agent-info-value",
|
|
@@ -25506,7 +26012,7 @@ function AgentProbeInfoPopover({
|
|
|
25506
26012
|
},
|
|
25507
26013
|
onBlur: () => setIsOpen(false),
|
|
25508
26014
|
children: [
|
|
25509
|
-
/* @__PURE__ */
|
|
26015
|
+
/* @__PURE__ */ jsx31(Info3, { size: 15, strokeWidth: 2.1, "aria-hidden": "true" }),
|
|
25510
26016
|
isOpen ? createPortal4(popover, document.body) : null
|
|
25511
26017
|
]
|
|
25512
26018
|
}
|
|
@@ -25649,7 +26155,7 @@ function getAgentHostManagedToolchainAgentByName(name) {
|
|
|
25649
26155
|
}
|
|
25650
26156
|
|
|
25651
26157
|
// agent-gui/agentGuiNode/AgentGUINode.tsx
|
|
25652
|
-
import { jsx as
|
|
26158
|
+
import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
25653
26159
|
var workspaceFileReferenceLocaleKeyByPickerKey = {
|
|
25654
26160
|
"actions.cancel": "common.cancel",
|
|
25655
26161
|
"referencePicker.confirm": "agentHost.agentGui.referencePicker.confirm",
|
|
@@ -26254,6 +26760,21 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
26254
26760
|
batchDeleteProjectSessionsConfirm: t(
|
|
26255
26761
|
"agentHost.agentGui.batchDeleteProjectSessionsConfirm"
|
|
26256
26762
|
),
|
|
26763
|
+
conversationsSectionMoreActions: t(
|
|
26764
|
+
"agentHost.agentGui.conversationsSectionMoreActions"
|
|
26765
|
+
),
|
|
26766
|
+
batchDeleteConversations: t(
|
|
26767
|
+
"agentHost.agentGui.batchDeleteConversations"
|
|
26768
|
+
),
|
|
26769
|
+
batchDeleteConversationsTitle: t(
|
|
26770
|
+
"agentHost.agentGui.batchDeleteConversationsTitle"
|
|
26771
|
+
),
|
|
26772
|
+
batchDeleteConversationsBody: (count) => t("agentHost.agentGui.batchDeleteConversationsBody", {
|
|
26773
|
+
count
|
|
26774
|
+
}),
|
|
26775
|
+
batchDeleteConversationsConfirm: t(
|
|
26776
|
+
"agentHost.agentGui.batchDeleteConversationsConfirm"
|
|
26777
|
+
),
|
|
26257
26778
|
approvalRequired: t("agentHost.agentGui.approvalRequired", {
|
|
26258
26779
|
provider: displayProviderLabel
|
|
26259
26780
|
}),
|
|
@@ -26411,6 +26932,42 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
26411
26932
|
"agentHost.agentGui.slashPaletteConnectorsGroup"
|
|
26412
26933
|
),
|
|
26413
26934
|
slashPaletteMcpGroup: t("agentHost.agentGui.slashPaletteMcpGroup"),
|
|
26935
|
+
slashCommandCompactLabel: t("agentHost.agentGui.slashCommandCompactLabel"),
|
|
26936
|
+
slashCommandContextLabel: t("agentHost.agentGui.slashCommandContextLabel"),
|
|
26937
|
+
slashCommandFastLabel: t("agentHost.agentGui.slashCommandFastLabel"),
|
|
26938
|
+
slashCommandGoalLabel: t("agentHost.agentGui.slashCommandGoalLabel"),
|
|
26939
|
+
slashCommandInitLabel: t("agentHost.agentGui.slashCommandInitLabel"),
|
|
26940
|
+
slashCommandPlanLabel: t("agentHost.agentGui.slashCommandPlanLabel"),
|
|
26941
|
+
slashCommandReviewLabel: t("agentHost.agentGui.slashCommandReviewLabel"),
|
|
26942
|
+
slashCommandStatusLabel: t("agentHost.agentGui.slashCommandStatusLabel"),
|
|
26943
|
+
slashCommandUsageLabel: t("agentHost.agentGui.slashCommandUsageLabel"),
|
|
26944
|
+
slashCommandCompactDescription: t(
|
|
26945
|
+
"agentHost.agentGui.slashCommandCompactDescription"
|
|
26946
|
+
),
|
|
26947
|
+
slashCommandContextDescription: t(
|
|
26948
|
+
"agentHost.agentGui.slashCommandContextDescription"
|
|
26949
|
+
),
|
|
26950
|
+
slashCommandFastDescription: t(
|
|
26951
|
+
"agentHost.agentGui.slashCommandFastDescription"
|
|
26952
|
+
),
|
|
26953
|
+
slashCommandGoalDescription: t(
|
|
26954
|
+
"agentHost.agentGui.slashCommandGoalDescription"
|
|
26955
|
+
),
|
|
26956
|
+
slashCommandInitDescription: t(
|
|
26957
|
+
"agentHost.agentGui.slashCommandInitDescription"
|
|
26958
|
+
),
|
|
26959
|
+
slashCommandPlanDescription: t(
|
|
26960
|
+
"agentHost.agentGui.slashCommandPlanDescription"
|
|
26961
|
+
),
|
|
26962
|
+
slashCommandReviewDescription: t(
|
|
26963
|
+
"agentHost.agentGui.slashCommandReviewDescription"
|
|
26964
|
+
),
|
|
26965
|
+
slashCommandStatusDescription: t(
|
|
26966
|
+
"agentHost.agentGui.slashCommandStatusDescription"
|
|
26967
|
+
),
|
|
26968
|
+
slashCommandUsageDescription: t(
|
|
26969
|
+
"agentHost.agentGui.slashCommandUsageDescription"
|
|
26970
|
+
),
|
|
26414
26971
|
browserUseCapabilityLabel: t(
|
|
26415
26972
|
"agentHost.agentGui.browserUseCapabilityLabel"
|
|
26416
26973
|
),
|
|
@@ -26575,13 +27132,13 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
26575
27132
|
onAgentProbeDemandChange(null, probeSourceId);
|
|
26576
27133
|
};
|
|
26577
27134
|
}, [activeProbeProvider, nodeId, onAgentProbeDemandChange, previewMode]);
|
|
26578
|
-
return /* @__PURE__ */
|
|
27135
|
+
return /* @__PURE__ */ jsx32(
|
|
26579
27136
|
WorkspaceNodeWindow,
|
|
26580
27137
|
{
|
|
26581
27138
|
nodeId,
|
|
26582
27139
|
kind: "agentGui",
|
|
26583
27140
|
title: windowTitle,
|
|
26584
|
-
titleIcon: windowTitleIconUrl ? /* @__PURE__ */
|
|
27141
|
+
titleIcon: windowTitleIconUrl ? /* @__PURE__ */ jsx32(
|
|
26585
27142
|
"img",
|
|
26586
27143
|
{
|
|
26587
27144
|
src: windowTitleIconUrl,
|
|
@@ -26602,7 +27159,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
26602
27159
|
bodyClassName: `${AgentGUINode_styles_default.shell} nodrag size-full min-h-0 min-w-0 !bg-transparent p-0`,
|
|
26603
27160
|
hideHeader: embedded,
|
|
26604
27161
|
titleAccessory: /* @__PURE__ */ jsxs19("span", { className: "inline-flex flex-none items-center gap-1", children: [
|
|
26605
|
-
/* @__PURE__ */
|
|
27162
|
+
/* @__PURE__ */ jsx32(
|
|
26606
27163
|
AgentProbeInfoPopover,
|
|
26607
27164
|
{
|
|
26608
27165
|
lines: agentProbeLines,
|
|
@@ -26610,7 +27167,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
26610
27167
|
className: AgentGUINode_styles_default.windowAgentInfo
|
|
26611
27168
|
}
|
|
26612
27169
|
),
|
|
26613
|
-
/* @__PURE__ */
|
|
27170
|
+
/* @__PURE__ */ jsx32(
|
|
26614
27171
|
CanvasNodeGhostIconButton,
|
|
26615
27172
|
{
|
|
26616
27173
|
"aria-label": isConversationRailCollapsed ? t("agentHost.agentGui.expandConversationRail") : t("agentHost.agentGui.collapseConversationRail"),
|
|
@@ -26622,7 +27179,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
26622
27179
|
event.stopPropagation();
|
|
26623
27180
|
handleConversationRailToggle();
|
|
26624
27181
|
},
|
|
26625
|
-
children: /* @__PURE__ */
|
|
27182
|
+
children: /* @__PURE__ */ jsx32(
|
|
26626
27183
|
CanvasNodePanelLinedIcon,
|
|
26627
27184
|
{
|
|
26628
27185
|
width: 18,
|
|
@@ -26643,7 +27200,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
26643
27200
|
children: (renderFrame) => {
|
|
26644
27201
|
const renderedWidth = renderFrame.size.width;
|
|
26645
27202
|
const isRenderedConversationRailCollapsed = isConversationRailCollapsed || shouldAutoCollapseAgentGUIConversationRail(renderedWidth);
|
|
26646
|
-
return /* @__PURE__ */
|
|
27203
|
+
return /* @__PURE__ */ jsx32(
|
|
26647
27204
|
AgentGUINodeView,
|
|
26648
27205
|
{
|
|
26649
27206
|
viewModel,
|
|
@@ -26693,7 +27250,7 @@ var AgentGUINode = memo2(function AgentGUINode2({
|
|
|
26693
27250
|
}, areAgentGUINodePropsEqual);
|
|
26694
27251
|
|
|
26695
27252
|
// AgentGUI.tsx
|
|
26696
|
-
import { jsx as
|
|
27253
|
+
import { jsx as jsx33 } from "react/jsx-runtime";
|
|
26697
27254
|
var AgentGUI = memo3(function AgentGUI2({
|
|
26698
27255
|
agentActivityRuntime,
|
|
26699
27256
|
agentHostApi,
|
|
@@ -26701,15 +27258,15 @@ var AgentGUI = memo3(function AgentGUI2({
|
|
|
26701
27258
|
locale,
|
|
26702
27259
|
...props
|
|
26703
27260
|
}) {
|
|
26704
|
-
const content = /* @__PURE__ */
|
|
27261
|
+
const content = /* @__PURE__ */ jsx33(AgentGuiI18nProvider, { runtime: i18n, locale, children: /* @__PURE__ */ jsx33(
|
|
26705
27262
|
AgentActivityHostProvider,
|
|
26706
27263
|
{
|
|
26707
27264
|
agentActivityRuntime,
|
|
26708
27265
|
agentHostApi,
|
|
26709
|
-
children: /* @__PURE__ */
|
|
27266
|
+
children: /* @__PURE__ */ jsx33(AgentGUINode, { ...props })
|
|
26710
27267
|
}
|
|
26711
27268
|
) });
|
|
26712
|
-
return props.previewMode ? content : /* @__PURE__ */
|
|
27269
|
+
return props.previewMode ? content : /* @__PURE__ */ jsx33(TooltipProvider3, { delayDuration: 120, skipDelayDuration: 0, children: content });
|
|
26713
27270
|
});
|
|
26714
27271
|
|
|
26715
27272
|
// index.ts
|