@tutti-os/agent-gui 0.0.5 → 0.0.7
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-message-center/index.d.ts +1 -0
- package/dist/agent-message-center/index.js +119 -32
- package/dist/agent-message-center/index.js.map +1 -1
- package/dist/app/renderer/agentactivity.css +28 -0
- package/dist/{chunk-C63Z2JWT.js → chunk-4RB33ETE.js} +81 -12
- package/dist/chunk-4RB33ETE.js.map +1 -0
- package/dist/{chunk-7ICAFTA2.js → chunk-DHOAJJ3K.js} +2 -2
- package/dist/{chunk-F55LU7IJ.js → chunk-VBNWIBNV.js} +15 -7
- package/dist/chunk-VBNWIBNV.js.map +1 -0
- package/dist/{chunk-BHCCGKOP.js → chunk-ZAVQMGAX.js} +5 -1
- package/dist/chunk-ZAVQMGAX.js.map +1 -0
- package/dist/i18n/index.d.ts +4 -0
- package/dist/i18n/index.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +306 -143
- package/dist/index.js.map +1 -1
- package/dist/workbench/contribution.d.ts +3 -1
- package/dist/workbench/contribution.js +3 -1
- package/dist/workbench/index.js +1 -1
- package/dist/workspace-agent-generated-files.js +2 -2
- package/package.json +10 -10
- package/dist/chunk-BHCCGKOP.js.map +0 -1
- package/dist/chunk-C63Z2JWT.js.map +0 -1
- package/dist/chunk-F55LU7IJ.js.map +0 -1
- /package/dist/{chunk-7ICAFTA2.js.map → chunk-DHOAJJ3K.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
mergeWorkspaceAgentActivityDurableAndOverlayMessages,
|
|
8
8
|
normalizeOptionalWorkspaceAgentStatus,
|
|
9
9
|
selectWorkspaceAgentActivityOverlayMessages
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-DHOAJJ3K.js";
|
|
11
11
|
import {
|
|
12
12
|
AgentActivityHostProvider,
|
|
13
13
|
AgentActivityRuntimeProvider,
|
|
@@ -27,7 +27,6 @@ import {
|
|
|
27
27
|
getOptionalAgentHostApi,
|
|
28
28
|
managedAgentRoundedIconUrl,
|
|
29
29
|
normalizeManagedAgentProvider,
|
|
30
|
-
normalizeWorkspaceAgentActivityDisplayStatus,
|
|
31
30
|
resetAgentActivityRuntimeForTests,
|
|
32
31
|
resolveWebsiteNavigationUrl,
|
|
33
32
|
resolveWorkspaceLinkAction,
|
|
@@ -39,7 +38,7 @@ import {
|
|
|
39
38
|
useOptionalAgentHostApi,
|
|
40
39
|
user_avatar_placeholder_default,
|
|
41
40
|
workspaceAgentActivityStatusLabel
|
|
42
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-VBNWIBNV.js";
|
|
43
42
|
import {
|
|
44
43
|
resolveWorkspaceAgentSessionSortTimeUnixMs,
|
|
45
44
|
workspaceAgentProviderLabel
|
|
@@ -57,7 +56,7 @@ import {
|
|
|
57
56
|
getActiveUiLanguage,
|
|
58
57
|
translate,
|
|
59
58
|
useTranslation
|
|
60
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-ZAVQMGAX.js";
|
|
61
60
|
import {
|
|
62
61
|
resolveAgentMentionFileThumbnailUrl,
|
|
63
62
|
resolveAgentMentionFileVisualKind
|
|
@@ -161,7 +160,7 @@ function agentHostSessionFromCore(session, id, presenceId) {
|
|
|
161
160
|
title: session.title || void 0,
|
|
162
161
|
turnPhase: agentHostTurnPhaseFromCore(session.status),
|
|
163
162
|
updatedAtUnixMs: session.updatedAtUnixMs ?? session.lastEventUnixMs,
|
|
164
|
-
userId: "local",
|
|
163
|
+
userId: session.userId?.trim() || "local",
|
|
165
164
|
workspaceId: session.workspaceId
|
|
166
165
|
};
|
|
167
166
|
}
|
|
@@ -12399,6 +12398,7 @@ function useAgentGUINodeController({
|
|
|
12399
12398
|
workspacePath,
|
|
12400
12399
|
avoidGroupingEdits,
|
|
12401
12400
|
data,
|
|
12401
|
+
previewMode = false,
|
|
12402
12402
|
onDataChange,
|
|
12403
12403
|
onShowMessage
|
|
12404
12404
|
}) {
|
|
@@ -12608,6 +12608,9 @@ function useAgentGUINodeController({
|
|
|
12608
12608
|
setRetainedBackgroundConversationIds
|
|
12609
12609
|
] = useState5([]);
|
|
12610
12610
|
useEffect5(() => {
|
|
12611
|
+
if (previewMode) {
|
|
12612
|
+
return;
|
|
12613
|
+
}
|
|
12611
12614
|
setRetainedBackgroundConversationIds((current) => {
|
|
12612
12615
|
const next = new Set(current);
|
|
12613
12616
|
for (const conversationId of backgroundBusyConversationIds) {
|
|
@@ -12623,15 +12626,24 @@ function useAgentGUINodeController({
|
|
|
12623
12626
|
(conversationId, index) => conversationId === current[index]
|
|
12624
12627
|
) ? current : nextIds;
|
|
12625
12628
|
});
|
|
12626
|
-
}, [
|
|
12629
|
+
}, [
|
|
12630
|
+
activeConversationId,
|
|
12631
|
+
backgroundBusyConversationIds,
|
|
12632
|
+
conversations,
|
|
12633
|
+
previewMode
|
|
12634
|
+
]);
|
|
12627
12635
|
const backgroundWatchedConversationIds = useMemo4(
|
|
12628
|
-
() => [
|
|
12636
|
+
() => previewMode ? [] : [
|
|
12629
12637
|
.../* @__PURE__ */ new Set([
|
|
12630
12638
|
...backgroundBusyConversationIds,
|
|
12631
12639
|
...retainedBackgroundConversationIds
|
|
12632
12640
|
])
|
|
12633
12641
|
].sort(),
|
|
12634
|
-
[
|
|
12642
|
+
[
|
|
12643
|
+
backgroundBusyConversationIds,
|
|
12644
|
+
previewMode,
|
|
12645
|
+
retainedBackgroundConversationIds
|
|
12646
|
+
]
|
|
12635
12647
|
);
|
|
12636
12648
|
const accountProfilesByUserId = useAccountStore(
|
|
12637
12649
|
(state) => state.profilesByUserId
|
|
@@ -12725,6 +12737,9 @@ function useAgentGUINodeController({
|
|
|
12725
12737
|
[]
|
|
12726
12738
|
);
|
|
12727
12739
|
useEffect5(() => {
|
|
12740
|
+
if (previewMode) {
|
|
12741
|
+
return void 0;
|
|
12742
|
+
}
|
|
12728
12743
|
const api = agentHostApi.userProjects;
|
|
12729
12744
|
let disposed = false;
|
|
12730
12745
|
const loadUserProjects = async () => {
|
|
@@ -12754,8 +12769,11 @@ function useAgentGUINodeController({
|
|
|
12754
12769
|
disposed = true;
|
|
12755
12770
|
unsubscribe?.();
|
|
12756
12771
|
};
|
|
12757
|
-
}, [agentHostApi.userProjects, setUserProjectsSnapshot]);
|
|
12772
|
+
}, [agentHostApi.userProjects, previewMode, setUserProjectsSnapshot]);
|
|
12758
12773
|
useEffect5(() => {
|
|
12774
|
+
if (previewMode) {
|
|
12775
|
+
return;
|
|
12776
|
+
}
|
|
12759
12777
|
if (!conversationListQuery || agentActivitySnapshot.sessions.length === 0) {
|
|
12760
12778
|
return;
|
|
12761
12779
|
}
|
|
@@ -12821,6 +12839,7 @@ function useAgentGUINodeController({
|
|
|
12821
12839
|
agentActivitySnapshot,
|
|
12822
12840
|
conversationListQuery,
|
|
12823
12841
|
data.provider,
|
|
12842
|
+
previewMode,
|
|
12824
12843
|
updateConversationList,
|
|
12825
12844
|
userProjects
|
|
12826
12845
|
]);
|
|
@@ -12836,6 +12855,9 @@ function useAgentGUINodeController({
|
|
|
12836
12855
|
[]
|
|
12837
12856
|
);
|
|
12838
12857
|
useEffect5(() => {
|
|
12858
|
+
if (previewMode) {
|
|
12859
|
+
return;
|
|
12860
|
+
}
|
|
12839
12861
|
updateConversationList(
|
|
12840
12862
|
(current) => applyAgentGUIConversationProjects(current, userProjects)
|
|
12841
12863
|
);
|
|
@@ -12844,6 +12866,7 @@ function useAgentGUINodeController({
|
|
|
12844
12866
|
);
|
|
12845
12867
|
}, [
|
|
12846
12868
|
conversations,
|
|
12869
|
+
previewMode,
|
|
12847
12870
|
setTransientConversation,
|
|
12848
12871
|
updateConversationList,
|
|
12849
12872
|
userProjects
|
|
@@ -12902,6 +12925,9 @@ function useAgentGUINodeController({
|
|
|
12902
12925
|
isCreatingConversationRef.current = isCreatingConversation;
|
|
12903
12926
|
}, [isCreatingConversation]);
|
|
12904
12927
|
useEffect5(() => {
|
|
12928
|
+
if (previewMode) {
|
|
12929
|
+
return;
|
|
12930
|
+
}
|
|
12905
12931
|
setPendingCreateConversationId(resolvePendingCreateConversationId());
|
|
12906
12932
|
if (!conversationListQuery || !pendingCreateOwnerKey) {
|
|
12907
12933
|
return;
|
|
@@ -12912,9 +12938,13 @@ function useAgentGUINodeController({
|
|
|
12912
12938
|
}, [
|
|
12913
12939
|
conversationListQuery,
|
|
12914
12940
|
pendingCreateOwnerKey,
|
|
12941
|
+
previewMode,
|
|
12915
12942
|
resolvePendingCreateConversationId
|
|
12916
12943
|
]);
|
|
12917
12944
|
useEffect5(() => {
|
|
12945
|
+
if (previewMode) {
|
|
12946
|
+
return;
|
|
12947
|
+
}
|
|
12918
12948
|
setIsPendingSubmit(resolvePendingSubmit());
|
|
12919
12949
|
if (!conversationListQuery || activeConversationId === null) {
|
|
12920
12950
|
return;
|
|
@@ -12922,10 +12952,18 @@ function useAgentGUINodeController({
|
|
|
12922
12952
|
return subscribeAgentGUIConversationListStore(() => {
|
|
12923
12953
|
setIsPendingSubmit(resolvePendingSubmit());
|
|
12924
12954
|
});
|
|
12925
|
-
}, [
|
|
12955
|
+
}, [
|
|
12956
|
+
activeConversationId,
|
|
12957
|
+
conversationListQuery,
|
|
12958
|
+
previewMode,
|
|
12959
|
+
resolvePendingSubmit
|
|
12960
|
+
]);
|
|
12926
12961
|
useEffect5(() => {
|
|
12962
|
+
if (previewMode) {
|
|
12963
|
+
return;
|
|
12964
|
+
}
|
|
12927
12965
|
ensureOpenclawGateway();
|
|
12928
|
-
}, [data.provider, ensureOpenclawGateway]);
|
|
12966
|
+
}, [data.provider, ensureOpenclawGateway, previewMode]);
|
|
12929
12967
|
useEffect5(() => {
|
|
12930
12968
|
onDataChangeRef.current = onDataChange;
|
|
12931
12969
|
}, [onDataChange]);
|
|
@@ -12956,6 +12994,9 @@ function useAgentGUINodeController({
|
|
|
12956
12994
|
);
|
|
12957
12995
|
}, [conversations]);
|
|
12958
12996
|
useEffect5(() => {
|
|
12997
|
+
if (previewMode) {
|
|
12998
|
+
return;
|
|
12999
|
+
}
|
|
12959
13000
|
const previousSnapshot = previousConversationListSnapshotRef.current;
|
|
12960
13001
|
const previousQuery = previousSnapshot.query;
|
|
12961
13002
|
const previousQueryKey = previousQuery ? createAgentGUIConversationListQueryKey(previousQuery) : null;
|
|
@@ -12971,7 +13012,7 @@ function useAgentGUINodeController({
|
|
|
12971
13012
|
query: conversationListQuery,
|
|
12972
13013
|
conversations
|
|
12973
13014
|
};
|
|
12974
|
-
}, [conversationListQuery, conversations]);
|
|
13015
|
+
}, [conversationListQuery, conversations, previewMode]);
|
|
12975
13016
|
const persistActiveConversation = useCallback4(
|
|
12976
13017
|
(agentSessionId) => {
|
|
12977
13018
|
if (persistedActiveConversationIdRef.current === agentSessionId) {
|
|
@@ -13006,6 +13047,9 @@ function useAgentGUINodeController({
|
|
|
13006
13047
|
[agentActivityRuntime, workspaceId]
|
|
13007
13048
|
);
|
|
13008
13049
|
useEffect5(() => {
|
|
13050
|
+
if (previewMode) {
|
|
13051
|
+
return;
|
|
13052
|
+
}
|
|
13009
13053
|
if (!hasLoadedConversations) {
|
|
13010
13054
|
return;
|
|
13011
13055
|
}
|
|
@@ -13016,7 +13060,12 @@ function useAgentGUINodeController({
|
|
|
13016
13060
|
onDataChangeRef.current(
|
|
13017
13061
|
(current) => current.conversationCount === nextConversationCount ? current : { ...current, conversationCount: nextConversationCount }
|
|
13018
13062
|
);
|
|
13019
|
-
}, [
|
|
13063
|
+
}, [
|
|
13064
|
+
conversations.length,
|
|
13065
|
+
hasLoadedConversations,
|
|
13066
|
+
previewMode,
|
|
13067
|
+
transientConversation
|
|
13068
|
+
]);
|
|
13020
13069
|
const isCurrentConversation = useCallback4((agentSessionId) => {
|
|
13021
13070
|
return isMountedRef.current && activeConversationIdRef.current === agentSessionId.trim();
|
|
13022
13071
|
}, []);
|
|
@@ -13536,6 +13585,9 @@ function useAgentGUINodeController({
|
|
|
13536
13585
|
]
|
|
13537
13586
|
);
|
|
13538
13587
|
useEffect5(() => {
|
|
13588
|
+
if (previewMode) {
|
|
13589
|
+
return;
|
|
13590
|
+
}
|
|
13539
13591
|
if (!supports.model && !supports.reasoning && !supports.permission) {
|
|
13540
13592
|
return;
|
|
13541
13593
|
}
|
|
@@ -13549,12 +13601,16 @@ function useAgentGUINodeController({
|
|
|
13549
13601
|
}, [
|
|
13550
13602
|
data.provider,
|
|
13551
13603
|
loadDraftComposerOptions,
|
|
13604
|
+
previewMode,
|
|
13552
13605
|
selectedProjectPath,
|
|
13553
13606
|
supports.model,
|
|
13554
13607
|
supports.permission,
|
|
13555
13608
|
supports.reasoning
|
|
13556
13609
|
]);
|
|
13557
13610
|
useEffect5(() => {
|
|
13611
|
+
if (previewMode) {
|
|
13612
|
+
return void 0;
|
|
13613
|
+
}
|
|
13558
13614
|
if (!supports.model && !supports.reasoning && !supports.permission) {
|
|
13559
13615
|
return void 0;
|
|
13560
13616
|
}
|
|
@@ -13587,18 +13643,23 @@ function useAgentGUINodeController({
|
|
|
13587
13643
|
}, [
|
|
13588
13644
|
loadDraftComposerOptions,
|
|
13589
13645
|
loadSessionState,
|
|
13646
|
+
previewMode,
|
|
13590
13647
|
workspaceId,
|
|
13591
13648
|
supports.model,
|
|
13592
13649
|
supports.permission,
|
|
13593
13650
|
supports.reasoning
|
|
13594
13651
|
]);
|
|
13595
13652
|
useEffect5(() => {
|
|
13653
|
+
if (previewMode) {
|
|
13654
|
+
return;
|
|
13655
|
+
}
|
|
13596
13656
|
loadDraftComposerOptions();
|
|
13597
13657
|
}, [
|
|
13598
13658
|
activeConversationId,
|
|
13599
13659
|
data.provider,
|
|
13600
13660
|
isComposerHome,
|
|
13601
|
-
loadDraftComposerOptions
|
|
13661
|
+
loadDraftComposerOptions,
|
|
13662
|
+
previewMode
|
|
13602
13663
|
]);
|
|
13603
13664
|
const clearPendingSessionStateReload = useCallback4(() => {
|
|
13604
13665
|
if (stateReloadTimerRef.current !== null) {
|
|
@@ -13936,11 +13997,22 @@ function useAgentGUINodeController({
|
|
|
13936
13997
|
[applyStatePatch, handleActivityStreamEvent]
|
|
13937
13998
|
);
|
|
13938
13999
|
useEffect5(() => {
|
|
14000
|
+
if (previewMode) {
|
|
14001
|
+
return;
|
|
14002
|
+
}
|
|
13939
14003
|
void syncConversationListProjection(
|
|
13940
14004
|
dataRef.current.lastActiveAgentSessionId
|
|
13941
14005
|
);
|
|
13942
|
-
}, [
|
|
14006
|
+
}, [
|
|
14007
|
+
currentUserId,
|
|
14008
|
+
data.provider,
|
|
14009
|
+
previewMode,
|
|
14010
|
+
syncConversationListProjection
|
|
14011
|
+
]);
|
|
13943
14012
|
useEffect5(() => {
|
|
14013
|
+
if (previewMode) {
|
|
14014
|
+
return;
|
|
14015
|
+
}
|
|
13944
14016
|
if (!activeConversationId) {
|
|
13945
14017
|
setDetailError(null);
|
|
13946
14018
|
return;
|
|
@@ -13955,11 +14027,11 @@ function useAgentGUINodeController({
|
|
|
13955
14027
|
reloadConversations: false,
|
|
13956
14028
|
reloadDetail: true
|
|
13957
14029
|
});
|
|
13958
|
-
}, [activeConversationId, reloadSelectedConversation]);
|
|
14030
|
+
}, [activeConversationId, previewMode, reloadSelectedConversation]);
|
|
13959
14031
|
useAgentSessionDurableRefresh({
|
|
13960
14032
|
agentSessionId: activeConversationId,
|
|
13961
14033
|
sessionView: activeSessionView,
|
|
13962
|
-
blockControlStateRefresh: activeConversationId === null || blockedActivityStreamStateReloadSessionIdsRef.current.has(
|
|
14034
|
+
blockControlStateRefresh: previewMode || activeConversationId === null || blockedActivityStreamStateReloadSessionIdsRef.current.has(
|
|
13963
14035
|
activeConversationId
|
|
13964
14036
|
),
|
|
13965
14037
|
onControlStateRefresh: () => {
|
|
@@ -13977,7 +14049,7 @@ function useAgentGUINodeController({
|
|
|
13977
14049
|
useWatchAgentSession({
|
|
13978
14050
|
workspaceId,
|
|
13979
14051
|
agentSessionId: activeConversationId,
|
|
13980
|
-
enabled: activeConversationId !== null,
|
|
14052
|
+
enabled: !previewMode && activeConversationId !== null,
|
|
13981
14053
|
onSubscribe: () => {
|
|
13982
14054
|
if (!activeConversationId) {
|
|
13983
14055
|
return;
|
|
@@ -15191,6 +15263,9 @@ function useAgentGUINodeController({
|
|
|
15191
15263
|
]
|
|
15192
15264
|
);
|
|
15193
15265
|
useEffect5(() => {
|
|
15266
|
+
if (previewMode) {
|
|
15267
|
+
return;
|
|
15268
|
+
}
|
|
15194
15269
|
if (!activeConversationId) {
|
|
15195
15270
|
return;
|
|
15196
15271
|
}
|
|
@@ -15222,10 +15297,14 @@ function useAgentGUINodeController({
|
|
|
15222
15297
|
isRespondingApproval,
|
|
15223
15298
|
isSubmitting,
|
|
15224
15299
|
failedQueuedPromptIdBySessionId,
|
|
15300
|
+
previewMode,
|
|
15225
15301
|
queuedPromptRetryBlockBySessionId,
|
|
15226
15302
|
queuedPromptsBySessionId
|
|
15227
15303
|
]);
|
|
15228
15304
|
useEffect5(() => {
|
|
15305
|
+
if (previewMode) {
|
|
15306
|
+
return;
|
|
15307
|
+
}
|
|
15229
15308
|
if (!activeConversationId) {
|
|
15230
15309
|
return;
|
|
15231
15310
|
}
|
|
@@ -15314,6 +15393,7 @@ function useAgentGUINodeController({
|
|
|
15314
15393
|
syncConversationListProjection,
|
|
15315
15394
|
loadSessionState,
|
|
15316
15395
|
refreshMessagesFromSnapshot,
|
|
15396
|
+
previewMode,
|
|
15317
15397
|
queuedPromptsBySessionId,
|
|
15318
15398
|
runtimeSessionsBySessionId,
|
|
15319
15399
|
workspaceId,
|
|
@@ -27830,6 +27910,9 @@ import {
|
|
|
27830
27910
|
useRef as useRef18,
|
|
27831
27911
|
useState as useState24
|
|
27832
27912
|
} from "react";
|
|
27913
|
+
import {
|
|
27914
|
+
normalizeAgentActivityDisplayStatus
|
|
27915
|
+
} from "@tutti-os/agent-activity-core";
|
|
27833
27916
|
|
|
27834
27917
|
// app/renderer/components/icons/FolderFailedFilledIcon.tsx
|
|
27835
27918
|
import { jsx as jsx80 } from "react/jsx-runtime";
|
|
@@ -27880,19 +27963,6 @@ function KeyboardFilledIcon(props) {
|
|
|
27880
27963
|
// app/renderer/components/ui/underline-tabs.tsx
|
|
27881
27964
|
import { UnderlineTabs } from "@tutti-os/ui-system";
|
|
27882
27965
|
|
|
27883
|
-
// shared/workspaceAgentActivityStatusClassName.ts
|
|
27884
|
-
var STATUS_CLASS_BY_STATUS = {
|
|
27885
|
-
working: "working",
|
|
27886
|
-
waiting: "waiting",
|
|
27887
|
-
idle: "idle",
|
|
27888
|
-
completed: "done",
|
|
27889
|
-
canceled: "done",
|
|
27890
|
-
failed: "failed"
|
|
27891
|
-
};
|
|
27892
|
-
function workspaceAgentActivityStatusClassName(status) {
|
|
27893
|
-
return STATUS_CLASS_BY_STATUS[status];
|
|
27894
|
-
}
|
|
27895
|
-
|
|
27896
27966
|
// shared/roomIssueStatusLabel.ts
|
|
27897
27967
|
function roomIssueStatusLabel(status, t) {
|
|
27898
27968
|
const translateFn = t ?? translate;
|
|
@@ -27919,7 +27989,7 @@ function roomIssueStatusLabel(status, t) {
|
|
|
27919
27989
|
}
|
|
27920
27990
|
|
|
27921
27991
|
// agent-gui/agentGuiNode/AgentFileMentionPalette.tsx
|
|
27922
|
-
import { Badge, menuItemClassName as menuItemClassName2 } from "@tutti-os/ui-system";
|
|
27992
|
+
import { Badge, StatusDot as StatusDot2, menuItemClassName as menuItemClassName2 } from "@tutti-os/ui-system";
|
|
27923
27993
|
import { Fragment as Fragment12, jsx as jsx82, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
27924
27994
|
var paletteStyles2 = {
|
|
27925
27995
|
palette: "agent-gui-node__mention-palette nodrag grid h-full max-h-[320px] min-h-0 grid-rows-[auto_minmax(0,1fr)_auto] overflow-hidden text-[13px] [-webkit-app-region:no-drag]",
|
|
@@ -28650,8 +28720,8 @@ function renderMentionRow(item) {
|
|
|
28650
28720
|
}
|
|
28651
28721
|
if (item.kind === "session") {
|
|
28652
28722
|
const statusTag = renderSessionMentionStatusTag(item.status);
|
|
28653
|
-
return /* @__PURE__ */ jsxs53("span", { className: "
|
|
28654
|
-
/* @__PURE__ */ jsxs53("span", { className: "flex min-w-0 items-center gap-2", children: [
|
|
28723
|
+
return /* @__PURE__ */ jsxs53("span", { className: "grid w-full min-w-0 grid-cols-[minmax(0,1fr)_auto] items-center gap-3", children: [
|
|
28724
|
+
/* @__PURE__ */ jsxs53("span", { className: "flex min-w-0 items-center gap-2 overflow-hidden", children: [
|
|
28655
28725
|
/* @__PURE__ */ jsx82(MentionSessionAvatarStack, { item }),
|
|
28656
28726
|
/* @__PURE__ */ jsx82("span", { className: "min-w-0 truncate text-[13px] font-semibold leading-[16px] text-[var(--text-primary)]", children: /* @__PURE__ */ jsx82(MentionSessionTitle, { item }) })
|
|
28657
28727
|
] }),
|
|
@@ -28833,19 +28903,33 @@ function MentionSessionTitle({
|
|
|
28833
28903
|
}
|
|
28834
28904
|
function MentionStatusTag({ status }) {
|
|
28835
28905
|
"use memo";
|
|
28836
|
-
const activityStatus =
|
|
28837
|
-
const
|
|
28838
|
-
|
|
28906
|
+
const activityStatus = normalizeAgentActivityDisplayStatus(status);
|
|
28907
|
+
const statusTone = mentionStatusTone(activityStatus);
|
|
28908
|
+
const statusLabel = workspaceAgentActivityStatusLabel(activityStatus);
|
|
28909
|
+
return /* @__PURE__ */ jsxs53(
|
|
28839
28910
|
Badge,
|
|
28840
28911
|
{
|
|
28841
28912
|
variant: "secondary",
|
|
28842
28913
|
className: cn(
|
|
28843
|
-
"shrink-0 text-[
|
|
28844
|
-
mentionStatusBadgeClassName(
|
|
28914
|
+
"inline-flex h-5 shrink-0 items-center gap-1.5 rounded-[4px] px-2 text-[11px] font-semibold leading-none",
|
|
28915
|
+
mentionStatusBadgeClassName(activityStatus)
|
|
28845
28916
|
),
|
|
28846
28917
|
"data-agent-mention-status-tag": "true",
|
|
28847
28918
|
"data-status": activityStatus,
|
|
28848
|
-
|
|
28919
|
+
"data-tone": statusTone,
|
|
28920
|
+
title: statusLabel,
|
|
28921
|
+
children: [
|
|
28922
|
+
/* @__PURE__ */ jsx82(
|
|
28923
|
+
StatusDot2,
|
|
28924
|
+
{
|
|
28925
|
+
tone: statusTone,
|
|
28926
|
+
pulse: activityStatus === "working" || activityStatus === "waiting",
|
|
28927
|
+
size: "xs",
|
|
28928
|
+
title: statusLabel
|
|
28929
|
+
}
|
|
28930
|
+
),
|
|
28931
|
+
/* @__PURE__ */ jsx82("span", { children: statusLabel })
|
|
28932
|
+
]
|
|
28849
28933
|
}
|
|
28850
28934
|
);
|
|
28851
28935
|
}
|
|
@@ -28853,10 +28937,7 @@ function renderSessionMentionStatusTag(status) {
|
|
|
28853
28937
|
if (!status) {
|
|
28854
28938
|
return null;
|
|
28855
28939
|
}
|
|
28856
|
-
const activityStatus =
|
|
28857
|
-
if (activityStatus !== "working" && activityStatus !== "waiting" && activityStatus !== "canceled" && activityStatus !== "failed") {
|
|
28858
|
-
return null;
|
|
28859
|
-
}
|
|
28940
|
+
const activityStatus = normalizeAgentActivityDisplayStatus(status);
|
|
28860
28941
|
return /* @__PURE__ */ jsx82(MentionStatusTag, { status: activityStatus });
|
|
28861
28942
|
}
|
|
28862
28943
|
function IssueMentionStatusTag({
|
|
@@ -28878,11 +28959,32 @@ function IssueMentionStatusTag({
|
|
|
28878
28959
|
}
|
|
28879
28960
|
);
|
|
28880
28961
|
}
|
|
28881
|
-
function
|
|
28882
|
-
if (
|
|
28883
|
-
return "
|
|
28962
|
+
function mentionStatusTone(status) {
|
|
28963
|
+
if (status === "working") {
|
|
28964
|
+
return "blue";
|
|
28965
|
+
}
|
|
28966
|
+
if (status === "waiting" || status === "canceled") {
|
|
28967
|
+
return "amber";
|
|
28884
28968
|
}
|
|
28885
|
-
if (
|
|
28969
|
+
if (status === "completed" || status === "idle") {
|
|
28970
|
+
return "green";
|
|
28971
|
+
}
|
|
28972
|
+
if (status === "failed") {
|
|
28973
|
+
return "red";
|
|
28974
|
+
}
|
|
28975
|
+
return "neutral";
|
|
28976
|
+
}
|
|
28977
|
+
function mentionStatusBadgeClassName(status) {
|
|
28978
|
+
if (status === "working") {
|
|
28979
|
+
return "bg-sky-500/10 text-sky-700";
|
|
28980
|
+
}
|
|
28981
|
+
if (status === "waiting" || status === "canceled") {
|
|
28982
|
+
return "bg-[color:color-mix(in_srgb,var(--color-amber-500)_12%,transparent)] text-[var(--color-amber-500)]";
|
|
28983
|
+
}
|
|
28984
|
+
if (status === "completed" || status === "idle") {
|
|
28985
|
+
return "bg-[var(--tsh-ui-pill-success-bg)] text-[var(--tsh-ui-pill-success-fg)]";
|
|
28986
|
+
}
|
|
28987
|
+
if (status === "failed") {
|
|
28886
28988
|
return "bg-[var(--on-danger)] text-[var(--state-danger)]";
|
|
28887
28989
|
}
|
|
28888
28990
|
return "bg-[var(--transparency-block)] text-[var(--text-secondary)]";
|
|
@@ -30292,6 +30394,7 @@ function AgentComposer({
|
|
|
30292
30394
|
ref: inputShellRef,
|
|
30293
30395
|
className: cn(inputShellClassName, "relative"),
|
|
30294
30396
|
"data-input-disabled": inputDisabled ? "true" : void 0,
|
|
30397
|
+
title: inputDisabled && disabledReasonText ? disabledReasonText : void 0,
|
|
30295
30398
|
style: inputShellStyle,
|
|
30296
30399
|
children: [
|
|
30297
30400
|
/* @__PURE__ */ jsxs54(
|
|
@@ -31012,8 +31115,11 @@ function AttentionGlyph() {
|
|
|
31012
31115
|
import { Fragment as Fragment16, jsx as jsx86, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
31013
31116
|
var AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX = 24;
|
|
31014
31117
|
var AGENT_GUI_TIMELINE_SCROLL_AREA_CONTENT_STYLE = {
|
|
31118
|
+
width: "100%",
|
|
31015
31119
|
minWidth: "100%",
|
|
31016
31120
|
display: "grid",
|
|
31121
|
+
gridTemplateColumns: "minmax(0, min(100%, var(--agent-gui-detail-flow-max-width)))",
|
|
31122
|
+
justifyContent: "center",
|
|
31017
31123
|
gap: "24px"
|
|
31018
31124
|
};
|
|
31019
31125
|
var EMPTY_WORKSPACE_APP_ICONS4 = [];
|
|
@@ -31034,6 +31140,14 @@ function agentGuiPerfNowMs() {
|
|
|
31034
31140
|
function roundAgentGuiPerfMs(value) {
|
|
31035
31141
|
return Math.round(value * 100) / 100;
|
|
31036
31142
|
}
|
|
31143
|
+
function isDifferentKnownConversationOwner(input) {
|
|
31144
|
+
const conversationUserId = input.conversationUserId?.trim() ?? "";
|
|
31145
|
+
const currentUserId = input.currentUserId?.trim() ?? "";
|
|
31146
|
+
if (!conversationUserId || !currentUserId || conversationUserId === "local" || currentUserId === "local") {
|
|
31147
|
+
return false;
|
|
31148
|
+
}
|
|
31149
|
+
return conversationUserId !== currentUserId;
|
|
31150
|
+
}
|
|
31037
31151
|
function isContextCanceledMessage(message) {
|
|
31038
31152
|
const normalized = message?.trim().toLowerCase() ?? "";
|
|
31039
31153
|
return normalized === "context canceled";
|
|
@@ -31228,6 +31342,7 @@ function AgentGUINodeView({
|
|
|
31228
31342
|
isAgentProviderReady,
|
|
31229
31343
|
slashStatusLimits = [],
|
|
31230
31344
|
slashStatusLimitsLoading = false,
|
|
31345
|
+
previewMode = false,
|
|
31231
31346
|
showProjectSelector = true,
|
|
31232
31347
|
onAgentProviderLogin,
|
|
31233
31348
|
actions,
|
|
@@ -31256,6 +31371,9 @@ function AgentGUINodeView({
|
|
|
31256
31371
|
] = useState26(0);
|
|
31257
31372
|
const workspaceReferencePickerResolverRef = useRef20(null);
|
|
31258
31373
|
const requestWorkspaceReferences = useCallback18(async () => {
|
|
31374
|
+
if (previewMode) {
|
|
31375
|
+
return [];
|
|
31376
|
+
}
|
|
31259
31377
|
if (!workspaceFileReferenceAdapter || !workspaceFileReferenceCopy) {
|
|
31260
31378
|
return [];
|
|
31261
31379
|
}
|
|
@@ -31263,7 +31381,7 @@ function AgentGUINodeView({
|
|
|
31263
31381
|
return await new Promise((resolve) => {
|
|
31264
31382
|
workspaceReferencePickerResolverRef.current = resolve;
|
|
31265
31383
|
});
|
|
31266
|
-
}, [workspaceFileReferenceAdapter, workspaceFileReferenceCopy]);
|
|
31384
|
+
}, [previewMode, workspaceFileReferenceAdapter, workspaceFileReferenceCopy]);
|
|
31267
31385
|
const closeWorkspaceReferencePicker = useCallback18(() => {
|
|
31268
31386
|
workspaceReferencePickerResolverRef.current?.([]);
|
|
31269
31387
|
workspaceReferencePickerResolverRef.current = null;
|
|
@@ -31286,6 +31404,9 @@ function AgentGUINodeView({
|
|
|
31286
31404
|
const detailComposerFocusRequestSequence = localComposerFocusRequestSequence === 0 ? composerFocusRequestSequence : (composerFocusRequestSequence ?? 0) + localComposerFocusRequestSequence;
|
|
31287
31405
|
const requestCreateConversation = useCallback18(
|
|
31288
31406
|
(options) => {
|
|
31407
|
+
if (previewMode) {
|
|
31408
|
+
return;
|
|
31409
|
+
}
|
|
31289
31410
|
if (options) {
|
|
31290
31411
|
actions.createConversation(options);
|
|
31291
31412
|
} else {
|
|
@@ -31293,7 +31414,7 @@ function AgentGUINodeView({
|
|
|
31293
31414
|
}
|
|
31294
31415
|
setLocalComposerFocusRequestSequence((current) => current + 1);
|
|
31295
31416
|
},
|
|
31296
|
-
[actions]
|
|
31417
|
+
[actions, previewMode]
|
|
31297
31418
|
);
|
|
31298
31419
|
const effectiveWorkspaceAppIcons = useMemo15(
|
|
31299
31420
|
() => mergeWorkspaceAppIconsFromCommands({
|
|
@@ -31312,6 +31433,9 @@ function AgentGUINodeView({
|
|
|
31312
31433
|
);
|
|
31313
31434
|
const handleConversationRailResizePointerDown = useCallback18(
|
|
31314
31435
|
(event) => {
|
|
31436
|
+
if (previewMode) {
|
|
31437
|
+
return;
|
|
31438
|
+
}
|
|
31315
31439
|
if (conversationRailCollapsed || event.button !== 0) {
|
|
31316
31440
|
return;
|
|
31317
31441
|
}
|
|
@@ -31324,10 +31448,13 @@ function AgentGUINodeView({
|
|
|
31324
31448
|
};
|
|
31325
31449
|
setIsRailResizing(true);
|
|
31326
31450
|
},
|
|
31327
|
-
[conversationRailCollapsed, conversationRailWidthPx]
|
|
31451
|
+
[conversationRailCollapsed, conversationRailWidthPx, previewMode]
|
|
31328
31452
|
);
|
|
31329
31453
|
const handleConversationRailResizePointerMove = useCallback18(
|
|
31330
31454
|
(event) => {
|
|
31455
|
+
if (previewMode) {
|
|
31456
|
+
return;
|
|
31457
|
+
}
|
|
31331
31458
|
const resizeState = railResizeInteractionRef.current;
|
|
31332
31459
|
if (!resizeState || resizeState.pointerId !== event.pointerId) {
|
|
31333
31460
|
return;
|
|
@@ -31337,7 +31464,7 @@ function AgentGUINodeView({
|
|
|
31337
31464
|
);
|
|
31338
31465
|
onConversationRailWidthChanged(nextWidthPx);
|
|
31339
31466
|
},
|
|
31340
|
-
[clampConversationRailWidth, onConversationRailWidthChanged]
|
|
31467
|
+
[clampConversationRailWidth, onConversationRailWidthChanged, previewMode]
|
|
31341
31468
|
);
|
|
31342
31469
|
const endConversationRailResize = useCallback18(
|
|
31343
31470
|
(event) => {
|
|
@@ -31351,6 +31478,9 @@ function AgentGUINodeView({
|
|
|
31351
31478
|
);
|
|
31352
31479
|
const handleConversationRailResizeKeyDown = useCallback18(
|
|
31353
31480
|
(event) => {
|
|
31481
|
+
if (previewMode) {
|
|
31482
|
+
return;
|
|
31483
|
+
}
|
|
31354
31484
|
if (conversationRailCollapsed) {
|
|
31355
31485
|
return;
|
|
31356
31486
|
}
|
|
@@ -31368,7 +31498,8 @@ function AgentGUINodeView({
|
|
|
31368
31498
|
clampConversationRailWidth,
|
|
31369
31499
|
conversationRailCollapsed,
|
|
31370
31500
|
conversationRailWidthPx,
|
|
31371
|
-
onConversationRailWidthChanged
|
|
31501
|
+
onConversationRailWidthChanged,
|
|
31502
|
+
previewMode
|
|
31372
31503
|
]
|
|
31373
31504
|
);
|
|
31374
31505
|
const layoutStyle = {
|
|
@@ -31377,90 +31508,99 @@ function AgentGUINodeView({
|
|
|
31377
31508
|
gridTemplateColumns: conversationRailCollapsed ? "0 minmax(var(--agent-gui-detail-min-width), 1fr)" : "var(--agent-gui-conversation-rail-width) minmax(var(--agent-gui-detail-min-width), 1fr)"
|
|
31378
31509
|
};
|
|
31379
31510
|
return /* @__PURE__ */ jsxs56(TooltipProvider2, { children: [
|
|
31380
|
-
/* @__PURE__ */ jsxs56(
|
|
31381
|
-
|
|
31382
|
-
|
|
31383
|
-
|
|
31384
|
-
|
|
31385
|
-
|
|
31386
|
-
|
|
31387
|
-
|
|
31388
|
-
|
|
31389
|
-
|
|
31511
|
+
/* @__PURE__ */ jsxs56(
|
|
31512
|
+
"div",
|
|
31513
|
+
{
|
|
31514
|
+
className: AgentGUINode_styles_default.layout,
|
|
31515
|
+
"data-agent-gui-preview": previewMode ? "true" : void 0,
|
|
31516
|
+
inert: previewMode ? true : void 0,
|
|
31517
|
+
style: layoutStyle,
|
|
31518
|
+
children: [
|
|
31519
|
+
/* @__PURE__ */ jsx86(
|
|
31520
|
+
"aside",
|
|
31521
|
+
{
|
|
31522
|
+
id: "agent-gui-conversation-rail",
|
|
31523
|
+
className: `${AgentGUINode_styles_default.railPanel}${conversationRailCollapsed ? ` ${AgentGUINode_styles_default.railPanelCollapsed}` : ""}`,
|
|
31524
|
+
"aria-hidden": conversationRailCollapsed ? "true" : void 0,
|
|
31525
|
+
inert: conversationRailCollapsed ? true : void 0,
|
|
31526
|
+
children: /* @__PURE__ */ jsx86(
|
|
31527
|
+
AgentGUIConversationRailPane,
|
|
31528
|
+
{
|
|
31529
|
+
conversations: viewModel.conversations,
|
|
31530
|
+
userProjects: viewModel.userProjects,
|
|
31531
|
+
activeConversationId: viewModel.activeConversationId,
|
|
31532
|
+
pendingDeleteConversationId: viewModel.pendingDeleteConversation?.id ?? null,
|
|
31533
|
+
isLoadingConversations: viewModel.isLoadingConversations,
|
|
31534
|
+
isDeletingConversation: viewModel.isDeletingConversation,
|
|
31535
|
+
isDeletingProjectConversations: viewModel.isDeletingProjectConversations,
|
|
31536
|
+
labels,
|
|
31537
|
+
workspaceUserProjectI18n,
|
|
31538
|
+
uiLanguage,
|
|
31539
|
+
showProjectSelector,
|
|
31540
|
+
createConversationDisabled,
|
|
31541
|
+
openclawGateway,
|
|
31542
|
+
isCollapsed: conversationRailCollapsed,
|
|
31543
|
+
onCreateConversation: requestCreateConversation,
|
|
31544
|
+
onRetryOpenclawGateway: actions.retryOpenclawGateway,
|
|
31545
|
+
onSelectConversation: actions.selectConversation,
|
|
31546
|
+
onToggleConversationPinned: actions.toggleConversationPinned,
|
|
31547
|
+
onRemoveProject: actions.removeProject,
|
|
31548
|
+
onConfirmDeleteProjectConversations: actions.confirmDeleteProjectConversations,
|
|
31549
|
+
onRequestDeleteConversation: actions.requestDeleteConversation,
|
|
31550
|
+
onCancelDeleteConversation: actions.cancelDeleteConversation,
|
|
31551
|
+
onConfirmDeleteConversation: actions.confirmDeleteConversation
|
|
31552
|
+
}
|
|
31553
|
+
)
|
|
31554
|
+
}
|
|
31555
|
+
),
|
|
31556
|
+
/* @__PURE__ */ jsx86(
|
|
31557
|
+
"div",
|
|
31390
31558
|
{
|
|
31391
|
-
|
|
31392
|
-
|
|
31393
|
-
|
|
31394
|
-
|
|
31395
|
-
|
|
31396
|
-
|
|
31397
|
-
|
|
31559
|
+
id: "agent-gui-conversation-rail-resize",
|
|
31560
|
+
className: conversationRailCollapsed ? `${AgentGUINode_styles_default.railResizeHandle} ${AgentGUINode_styles_default.railResizeHandleCollapsed} nodrag pointer-events-none opacity-0` : `${AgentGUINode_styles_default.railResizeHandle} nodrag`,
|
|
31561
|
+
role: "separator",
|
|
31562
|
+
"aria-label": labels.conversationRailResizeAria,
|
|
31563
|
+
"aria-hidden": conversationRailCollapsed ? "true" : void 0,
|
|
31564
|
+
"aria-orientation": "vertical",
|
|
31565
|
+
"aria-valuemin": conversationRailMinWidthPx,
|
|
31566
|
+
"aria-valuemax": conversationRailMaxWidthPx,
|
|
31567
|
+
"aria-valuenow": conversationRailCollapsed ? void 0 : conversationRailWidthPx,
|
|
31568
|
+
"data-resizing": isRailResizing ? "true" : void 0,
|
|
31569
|
+
"data-testid": "agent-gui-conversation-rail-resize-handle",
|
|
31570
|
+
tabIndex: conversationRailCollapsed ? -1 : 0,
|
|
31571
|
+
onBlur: () => endConversationRailResize(),
|
|
31572
|
+
onKeyDown: handleConversationRailResizeKeyDown,
|
|
31573
|
+
onPointerCancel: endConversationRailResize,
|
|
31574
|
+
onPointerDown: handleConversationRailResizePointerDown,
|
|
31575
|
+
onLostPointerCapture: endConversationRailResize,
|
|
31576
|
+
onPointerMove: handleConversationRailResizePointerMove,
|
|
31577
|
+
onPointerUp: endConversationRailResize
|
|
31578
|
+
}
|
|
31579
|
+
),
|
|
31580
|
+
/* @__PURE__ */ jsx86("section", { id: "agent-gui-detail", className: AgentGUINode_styles_default.detailPanel, children: /* @__PURE__ */ jsx86(
|
|
31581
|
+
AgentGUIDetailPane,
|
|
31582
|
+
{
|
|
31583
|
+
viewModel,
|
|
31584
|
+
actions,
|
|
31398
31585
|
labels,
|
|
31399
|
-
workspaceUserProjectI18n,
|
|
31400
31586
|
uiLanguage,
|
|
31587
|
+
isActive,
|
|
31588
|
+
composerFocusRequestSequence: detailComposerFocusRequestSequence,
|
|
31589
|
+
isAgentProviderReady,
|
|
31590
|
+
slashStatusLimits,
|
|
31591
|
+
slashStatusLimitsLoading,
|
|
31401
31592
|
showProjectSelector,
|
|
31402
|
-
|
|
31403
|
-
|
|
31404
|
-
|
|
31405
|
-
|
|
31406
|
-
|
|
31407
|
-
|
|
31408
|
-
onToggleConversationPinned: actions.toggleConversationPinned,
|
|
31409
|
-
onRemoveProject: actions.removeProject,
|
|
31410
|
-
onConfirmDeleteProjectConversations: actions.confirmDeleteProjectConversations,
|
|
31411
|
-
onRequestDeleteConversation: actions.requestDeleteConversation,
|
|
31412
|
-
onCancelDeleteConversation: actions.cancelDeleteConversation,
|
|
31413
|
-
onConfirmDeleteConversation: actions.confirmDeleteConversation
|
|
31593
|
+
onLinkAction,
|
|
31594
|
+
onAgentProviderLogin,
|
|
31595
|
+
onRequestWorkspaceReferences: requestWorkspaceReferences,
|
|
31596
|
+
richTextAtProviders,
|
|
31597
|
+
workspaceAppIcons: effectiveWorkspaceAppIcons,
|
|
31598
|
+
workspaceUserProjectI18n
|
|
31414
31599
|
}
|
|
31415
|
-
)
|
|
31416
|
-
|
|
31417
|
-
|
|
31418
|
-
|
|
31419
|
-
"div",
|
|
31420
|
-
{
|
|
31421
|
-
id: "agent-gui-conversation-rail-resize",
|
|
31422
|
-
className: conversationRailCollapsed ? `${AgentGUINode_styles_default.railResizeHandle} ${AgentGUINode_styles_default.railResizeHandleCollapsed} nodrag pointer-events-none opacity-0` : `${AgentGUINode_styles_default.railResizeHandle} nodrag`,
|
|
31423
|
-
role: "separator",
|
|
31424
|
-
"aria-label": labels.conversationRailResizeAria,
|
|
31425
|
-
"aria-hidden": conversationRailCollapsed ? "true" : void 0,
|
|
31426
|
-
"aria-orientation": "vertical",
|
|
31427
|
-
"aria-valuemin": conversationRailMinWidthPx,
|
|
31428
|
-
"aria-valuemax": conversationRailMaxWidthPx,
|
|
31429
|
-
"aria-valuenow": conversationRailCollapsed ? void 0 : conversationRailWidthPx,
|
|
31430
|
-
"data-resizing": isRailResizing ? "true" : void 0,
|
|
31431
|
-
"data-testid": "agent-gui-conversation-rail-resize-handle",
|
|
31432
|
-
tabIndex: conversationRailCollapsed ? -1 : 0,
|
|
31433
|
-
onBlur: () => endConversationRailResize(),
|
|
31434
|
-
onKeyDown: handleConversationRailResizeKeyDown,
|
|
31435
|
-
onPointerCancel: endConversationRailResize,
|
|
31436
|
-
onPointerDown: handleConversationRailResizePointerDown,
|
|
31437
|
-
onLostPointerCapture: endConversationRailResize,
|
|
31438
|
-
onPointerMove: handleConversationRailResizePointerMove,
|
|
31439
|
-
onPointerUp: endConversationRailResize
|
|
31440
|
-
}
|
|
31441
|
-
),
|
|
31442
|
-
/* @__PURE__ */ jsx86("section", { id: "agent-gui-detail", className: AgentGUINode_styles_default.detailPanel, children: /* @__PURE__ */ jsx86(
|
|
31443
|
-
AgentGUIDetailPane,
|
|
31444
|
-
{
|
|
31445
|
-
viewModel,
|
|
31446
|
-
actions,
|
|
31447
|
-
labels,
|
|
31448
|
-
uiLanguage,
|
|
31449
|
-
isActive,
|
|
31450
|
-
composerFocusRequestSequence: detailComposerFocusRequestSequence,
|
|
31451
|
-
isAgentProviderReady,
|
|
31452
|
-
slashStatusLimits,
|
|
31453
|
-
slashStatusLimitsLoading,
|
|
31454
|
-
showProjectSelector,
|
|
31455
|
-
onLinkAction,
|
|
31456
|
-
onAgentProviderLogin,
|
|
31457
|
-
onRequestWorkspaceReferences: requestWorkspaceReferences,
|
|
31458
|
-
richTextAtProviders,
|
|
31459
|
-
workspaceAppIcons: effectiveWorkspaceAppIcons,
|
|
31460
|
-
workspaceUserProjectI18n
|
|
31461
|
-
}
|
|
31462
|
-
) })
|
|
31463
|
-
] }),
|
|
31600
|
+
) })
|
|
31601
|
+
]
|
|
31602
|
+
}
|
|
31603
|
+
),
|
|
31464
31604
|
/* @__PURE__ */ jsx86(
|
|
31465
31605
|
WorkspaceFileReferencePicker,
|
|
31466
31606
|
{
|
|
@@ -31637,11 +31777,15 @@ var AgentGUIDetailPane = memo5(function AgentGUIDetailPane2({
|
|
|
31637
31777
|
const displayConversationStatus = viewModel.isSubmitting ? "working" : derivedBusyStatus ?? viewModel.activeConversation?.status;
|
|
31638
31778
|
const activeConversationTurnBusy = viewModel.isSubmitting || derivedBusyStatus !== null;
|
|
31639
31779
|
const isComposerSending = viewModel.isSubmitting || activeConversationTurnBusy || !hasActiveConversation && viewModel.isCreatingConversation;
|
|
31640
|
-
const
|
|
31641
|
-
|
|
31642
|
-
|
|
31780
|
+
const isCollaboratorConversation = isDifferentKnownConversationOwner({
|
|
31781
|
+
conversationUserId: viewModel.activeConversation?.userId,
|
|
31782
|
+
currentUserId: viewModel.currentUserId
|
|
31783
|
+
});
|
|
31784
|
+
const canQueueWhileBusy = viewModel.canQueueWhileBusy && isAgentProviderReady && !isCollaboratorConversation;
|
|
31785
|
+
const composerDisabledReason = isCollaboratorConversation ? labels.collaboratorSessionReadOnlyPlaceholder : isAgentProviderReady ? null : labels.installRequiredPlaceholder;
|
|
31786
|
+
const submitDisabled = isCollaboratorConversation || !isAgentProviderReady || !viewModel.canSubmit && !canQueueWhileBusy || viewModel.draftPrompt.trim() === "";
|
|
31643
31787
|
const hasNonRetryableRecoveryFailure = sessionChrome.recovery?.kind === "failed" && sessionChrome.recovery.canRetry === false;
|
|
31644
|
-
const composerDisabled = hasNonRetryableRecoveryFailure || !isAgentProviderReady || !canQueueWhileBusy && (viewModel.pendingApproval !== null || viewModel.pendingInteractivePrompt !== null || viewModel.isSubmitting || viewModel.isInterrupting || viewModel.isCreatingConversation);
|
|
31788
|
+
const composerDisabled = hasNonRetryableRecoveryFailure || isCollaboratorConversation || !isAgentProviderReady || !canQueueWhileBusy && (viewModel.pendingApproval !== null || viewModel.pendingInteractivePrompt !== null || viewModel.isSubmitting || viewModel.isInterrupting || viewModel.isCreatingConversation);
|
|
31645
31789
|
const showStopButton = !viewModel.isSubmitting && viewModel.activeLiveState !== "failed" && sessionChrome.auth === null && (activeConversationTurnBusy || viewModel.pendingApproval !== null || viewModel.pendingInteractivePrompt !== null || viewModel.isInterrupting) && !(canQueueWhileBusy && viewModel.draftPrompt.trim() !== "");
|
|
31646
31790
|
const syncStatus = resolveSyncIndicatorStatus(
|
|
31647
31791
|
viewModel.activeConversation?.syncState?.status
|
|
@@ -33710,7 +33854,7 @@ function areAgentGUINodePropsEqual(previous, next) {
|
|
|
33710
33854
|
previous.workspaceAgentProbes,
|
|
33711
33855
|
next.workspaceAgentProbes,
|
|
33712
33856
|
previous.state.provider
|
|
33713
|
-
) && previous.onAgentProbeDemandChange === next.onAgentProbeDemandChange && previous.managedAgentsState === next.managedAgentsState && previous.richTextAtProviders === next.richTextAtProviders && previous.workspaceAppIcons === next.workspaceAppIcons && previous.embedded === next.embedded && previous.isActive === next.isActive && previous.showProjectSelector === next.showProjectSelector && previous.composerFocusRequestSequence === next.composerFocusRequestSequence;
|
|
33857
|
+
) && previous.onAgentProbeDemandChange === next.onAgentProbeDemandChange && previous.managedAgentsState === next.managedAgentsState && previous.richTextAtProviders === next.richTextAtProviders && previous.workspaceAppIcons === next.workspaceAppIcons && previous.embedded === next.embedded && previous.previewMode === next.previewMode && previous.isActive === next.isActive && previous.showProjectSelector === next.showProjectSelector && previous.composerFocusRequestSequence === next.composerFocusRequestSequence;
|
|
33714
33858
|
}
|
|
33715
33859
|
var AgentGUINode = memo6(function AgentGUINode2({
|
|
33716
33860
|
nodeId,
|
|
@@ -33744,7 +33888,8 @@ var AgentGUINode = memo6(function AgentGUINode2({
|
|
|
33744
33888
|
managedAgentsState,
|
|
33745
33889
|
richTextAtProviders,
|
|
33746
33890
|
workspaceAppIcons,
|
|
33747
|
-
embedded = false
|
|
33891
|
+
embedded = false,
|
|
33892
|
+
previewMode = false
|
|
33748
33893
|
}) {
|
|
33749
33894
|
"use memo";
|
|
33750
33895
|
const { i18n, locale, t } = useTranslation();
|
|
@@ -33780,12 +33925,18 @@ var AgentGUINode = memo6(function AgentGUINode2({
|
|
|
33780
33925
|
);
|
|
33781
33926
|
const handleDataChange = useCallback20(
|
|
33782
33927
|
(updater) => {
|
|
33928
|
+
if (previewMode) {
|
|
33929
|
+
return;
|
|
33930
|
+
}
|
|
33783
33931
|
onUpdateNode(updater);
|
|
33784
33932
|
},
|
|
33785
|
-
[onUpdateNode]
|
|
33933
|
+
[onUpdateNode, previewMode]
|
|
33786
33934
|
);
|
|
33787
33935
|
const handleConversationRailWidthChanged = useCallback20(
|
|
33788
33936
|
(widthPx) => {
|
|
33937
|
+
if (previewMode) {
|
|
33938
|
+
return;
|
|
33939
|
+
}
|
|
33789
33940
|
onUpdateNode((current) => {
|
|
33790
33941
|
const nextWidthPx = resolveNextAgentGUIConversationRailWidthPx({
|
|
33791
33942
|
currentWidthPx: current.conversationRailWidthPx,
|
|
@@ -33801,7 +33952,7 @@ var AgentGUINode = memo6(function AgentGUINode2({
|
|
|
33801
33952
|
};
|
|
33802
33953
|
});
|
|
33803
33954
|
},
|
|
33804
|
-
[onUpdateNode, width]
|
|
33955
|
+
[onUpdateNode, previewMode, width]
|
|
33805
33956
|
);
|
|
33806
33957
|
const isConversationRailManuallyCollapsed = state.conversationRailCollapsed === true;
|
|
33807
33958
|
const isConversationRailAutoCollapsed = shouldAutoCollapseAgentGUIConversationRail(width);
|
|
@@ -33814,12 +33965,18 @@ var AgentGUINode = memo6(function AgentGUINode2({
|
|
|
33814
33965
|
[]
|
|
33815
33966
|
);
|
|
33816
33967
|
const toggleConversationRailCollapsed = useCallback20(() => {
|
|
33968
|
+
if (previewMode) {
|
|
33969
|
+
return;
|
|
33970
|
+
}
|
|
33817
33971
|
onUpdateNode((current) => ({
|
|
33818
33972
|
...current,
|
|
33819
33973
|
conversationRailCollapsed: current.conversationRailCollapsed !== true
|
|
33820
33974
|
}));
|
|
33821
|
-
}, [onUpdateNode]);
|
|
33975
|
+
}, [onUpdateNode, previewMode]);
|
|
33822
33976
|
const handleConversationRailToggle = useCallback20(() => {
|
|
33977
|
+
if (previewMode) {
|
|
33978
|
+
return;
|
|
33979
|
+
}
|
|
33823
33980
|
if (!isConversationRailAutoCollapsed) {
|
|
33824
33981
|
toggleConversationRailCollapsed();
|
|
33825
33982
|
return;
|
|
@@ -33849,6 +34006,7 @@ var AgentGUINode = memo6(function AgentGUINode2({
|
|
|
33849
34006
|
onResize,
|
|
33850
34007
|
onUpdateNode,
|
|
33851
34008
|
position,
|
|
34009
|
+
previewMode,
|
|
33852
34010
|
state.conversationRailWidthPx,
|
|
33853
34011
|
toggleConversationRailCollapsed,
|
|
33854
34012
|
width
|
|
@@ -33860,6 +34018,7 @@ var AgentGUINode = memo6(function AgentGUINode2({
|
|
|
33860
34018
|
workspacePath,
|
|
33861
34019
|
avoidGroupingEdits: agentSettings.avoidGroupingEdits,
|
|
33862
34020
|
data: state,
|
|
34021
|
+
previewMode,
|
|
33863
34022
|
onDataChange: handleDataChange,
|
|
33864
34023
|
onShowMessage
|
|
33865
34024
|
});
|
|
@@ -33885,6 +34044,9 @@ var AgentGUINode = memo6(function AgentGUINode2({
|
|
|
33885
34044
|
provider: displayProviderLabel
|
|
33886
34045
|
}
|
|
33887
34046
|
),
|
|
34047
|
+
collaboratorSessionReadOnlyPlaceholder: t(
|
|
34048
|
+
"agentHost.agentGui.collaboratorSessionReadOnlyPlaceholder"
|
|
34049
|
+
),
|
|
33888
34050
|
send: t("agentHost.agentGui.send"),
|
|
33889
34051
|
modelLabel: t("agentHost.agentGui.modelLabel"),
|
|
33890
34052
|
modelSelectionLabel: t("agentHost.agentGui.modelSelectionLabel"),
|
|
@@ -34208,7 +34370,7 @@ var AgentGUINode = memo6(function AgentGUINode2({
|
|
|
34208
34370
|
t
|
|
34209
34371
|
]);
|
|
34210
34372
|
useEffect23(() => {
|
|
34211
|
-
if (!onAgentProbeDemandChange) {
|
|
34373
|
+
if (previewMode || !onAgentProbeDemandChange) {
|
|
34212
34374
|
return;
|
|
34213
34375
|
}
|
|
34214
34376
|
const probeSourceId = `agent-gui:${nodeId}`;
|
|
@@ -34216,7 +34378,7 @@ var AgentGUINode = memo6(function AgentGUINode2({
|
|
|
34216
34378
|
return () => {
|
|
34217
34379
|
onAgentProbeDemandChange(null, probeSourceId);
|
|
34218
34380
|
};
|
|
34219
|
-
}, [activeProbeProvider, nodeId, onAgentProbeDemandChange]);
|
|
34381
|
+
}, [activeProbeProvider, nodeId, onAgentProbeDemandChange, previewMode]);
|
|
34220
34382
|
return /* @__PURE__ */ jsx88(
|
|
34221
34383
|
WorkspaceNodeWindow,
|
|
34222
34384
|
{
|
|
@@ -34284,6 +34446,7 @@ var AgentGUINode = memo6(function AgentGUINode2({
|
|
|
34284
34446
|
isAgentProviderReady: isActiveAgentProviderReady,
|
|
34285
34447
|
slashStatusLimits,
|
|
34286
34448
|
slashStatusLimitsLoading: workspaceAgentProbes?.isLoadingUsage ?? false,
|
|
34449
|
+
previewMode,
|
|
34287
34450
|
showProjectSelector,
|
|
34288
34451
|
onLinkAction: handleLinkAction,
|
|
34289
34452
|
onAgentProviderLogin: onAgentProviderLogin ? handleAgentProviderLogin : void 0,
|