@tutti-os/agent-gui 0.0.61 → 0.0.62
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 +5 -5
- package/dist/agent-message-center/index.js +7 -7
- package/dist/app/renderer/agentactivity.css +13 -1
- package/dist/{chunk-SXML6H77.js → chunk-4UTWOSHP.js} +3 -1
- package/dist/chunk-4UTWOSHP.js.map +1 -0
- package/dist/{chunk-JLJIAKI3.js → chunk-6MUKWI6Z.js} +4 -4
- package/dist/{chunk-I5ZIKJVN.js → chunk-7P6CUYQT.js} +2 -2
- package/dist/{chunk-6VVBG4BF.js → chunk-CA25GD5Q.js} +5 -3
- package/dist/chunk-CA25GD5Q.js.map +1 -0
- package/dist/{chunk-4OPTXOOZ.js → chunk-CVSCZ3CK.js} +2 -2
- package/dist/{chunk-2LGUBUEJ.js → chunk-FQQDBBNI.js} +2 -2
- package/dist/{chunk-6TEPDMX6.js → chunk-G6UO6JVM.js} +2 -2
- package/dist/{chunk-JSIA4K67.js → chunk-K4UUEG7X.js} +13 -7
- package/dist/chunk-K4UUEG7X.js.map +1 -0
- package/dist/{chunk-JBWFRSFQ.js → chunk-NZN43XT5.js} +2 -2
- package/dist/{chunk-CZSMZRAV.js → chunk-QC642RAG.js} +4 -4
- package/dist/{chunk-24CUBQKJ.js → chunk-RO6KQD3J.js} +2 -2
- package/dist/{chunk-CUMZV32B.js → chunk-SGXYVGQT.js} +4 -4
- package/dist/{chunk-B6YDXIZW.js → chunk-SW6JCJCO.js} +2 -2
- package/dist/{chunk-74TIEA6X.js → chunk-ZUVEBW5T.js} +2 -2
- package/dist/context-mention-palette/index.js +6 -6
- package/dist/i18n/index.d.ts +4 -2
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +15 -3
- package/dist/index.js +254 -59
- package/dist/index.js.map +1 -1
- package/dist/workbench/contribution.js +3 -3
- package/dist/workbench/index.js +6 -6
- package/dist/workbench/sessionTitle.js +3 -3
- package/dist/workbench/state.js +2 -2
- package/dist/workspace-agent-generated-files.js +3 -3
- package/package.json +12 -12
- package/dist/chunk-6VVBG4BF.js.map +0 -1
- package/dist/chunk-JSIA4K67.js.map +0 -1
- package/dist/chunk-SXML6H77.js.map +0 -1
- /package/dist/{chunk-JLJIAKI3.js.map → chunk-6MUKWI6Z.js.map} +0 -0
- /package/dist/{chunk-I5ZIKJVN.js.map → chunk-7P6CUYQT.js.map} +0 -0
- /package/dist/{chunk-4OPTXOOZ.js.map → chunk-CVSCZ3CK.js.map} +0 -0
- /package/dist/{chunk-2LGUBUEJ.js.map → chunk-FQQDBBNI.js.map} +0 -0
- /package/dist/{chunk-6TEPDMX6.js.map → chunk-G6UO6JVM.js.map} +0 -0
- /package/dist/{chunk-JBWFRSFQ.js.map → chunk-NZN43XT5.js.map} +0 -0
- /package/dist/{chunk-CZSMZRAV.js.map → chunk-QC642RAG.js.map} +0 -0
- /package/dist/{chunk-24CUBQKJ.js.map → chunk-RO6KQD3J.js.map} +0 -0
- /package/dist/{chunk-CUMZV32B.js.map → chunk-SGXYVGQT.js.map} +0 -0
- /package/dist/{chunk-B6YDXIZW.js.map → chunk-SW6JCJCO.js.map} +0 -0
- /package/dist/{chunk-74TIEA6X.js.map → chunk-ZUVEBW5T.js.map} +0 -0
|
@@ -4,19 +4,19 @@ import {
|
|
|
4
4
|
AgentMentionSearchController,
|
|
5
5
|
flattenAgentMentionPaletteEntries,
|
|
6
6
|
groupStartKeys
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-SGXYVGQT.js";
|
|
8
|
+
import "../chunk-7P6CUYQT.js";
|
|
9
|
+
import "../chunk-ZUVEBW5T.js";
|
|
10
10
|
import "../chunk-IBIMGLCD.js";
|
|
11
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-FQQDBBNI.js";
|
|
12
12
|
import "../chunk-Y35GDLP2.js";
|
|
13
13
|
import "../chunk-LUGELG5V.js";
|
|
14
14
|
import "../chunk-FRCIPTUD.js";
|
|
15
15
|
import "../chunk-TYGL25EL.js";
|
|
16
|
-
import "../chunk-
|
|
16
|
+
import "../chunk-RO6KQD3J.js";
|
|
17
17
|
import "../chunk-PJP5BUU6.js";
|
|
18
18
|
import "../chunk-V4JGVBUN.js";
|
|
19
|
-
import "../chunk-
|
|
19
|
+
import "../chunk-CA25GD5Q.js";
|
|
20
20
|
import {
|
|
21
21
|
AGENT_CONTEXT_MENTION_PROVIDER_IDS
|
|
22
22
|
} from "../chunk-JM24HADP.js";
|
package/dist/i18n/index.d.ts
CHANGED
|
@@ -347,7 +347,7 @@ declare const agentGuiI18nResources: {
|
|
|
347
347
|
readonly providerGateLoginAction: "Connect";
|
|
348
348
|
readonly providerGateComingSoonTitle: "{{provider}} is coming soon";
|
|
349
349
|
readonly providerGateComingSoonDescription: "{{provider}} is not available yet. We will enable this agent when it is ready.";
|
|
350
|
-
readonly providerGateComingSoonAction: "
|
|
350
|
+
readonly providerGateComingSoonAction: "comming soon";
|
|
351
351
|
readonly providerGateUnavailableTitle: "{{provider}} is not ready yet";
|
|
352
352
|
readonly providerGateUnavailableDescription: "We could not confirm that {{provider}} is ready. Try checking again.";
|
|
353
353
|
readonly providerGateRetryAction: "Check again";
|
|
@@ -2491,6 +2491,7 @@ declare const agentGuiI18nResources: {
|
|
|
2491
2491
|
readonly agentProviderSessionNotFound: "This session history is still available, but the underlying provider session can no longer be restored.";
|
|
2492
2492
|
readonly agentResumeSessionNotLocal: "This session cannot be resumed on this device. Start a new session and @this session to keep going.";
|
|
2493
2493
|
readonly agentSettingsRequireNewSession: "This model can only be used in a new session to preserve context.";
|
|
2494
|
+
readonly agentPermissionModeAppliesNextTurn: "Permission mode will apply starting with your next message.";
|
|
2494
2495
|
readonly agentThisSessionMentionLabel: "this session";
|
|
2495
2496
|
readonly terminalLaunchFailed: "Terminal launch failed: {{message}}";
|
|
2496
2497
|
readonly fallbackTerminalFailed: "Fallback terminal launch also failed: {{message}}";
|
|
@@ -2840,7 +2841,7 @@ declare const agentGuiI18nResources: {
|
|
|
2840
2841
|
readonly providerGateLoginAction: "连接";
|
|
2841
2842
|
readonly providerGateComingSoonTitle: "{{provider}} 即将上线";
|
|
2842
2843
|
readonly providerGateComingSoonDescription: "{{provider}} 暂未开放。准备好后即可在这里使用这个 Agent。";
|
|
2843
|
-
readonly providerGateComingSoonAction: "
|
|
2844
|
+
readonly providerGateComingSoonAction: "comming soon";
|
|
2844
2845
|
readonly providerGateUnavailableTitle: "{{provider}} 暂时还不可用";
|
|
2845
2846
|
readonly providerGateUnavailableDescription: "我们还不能确认 {{provider}} 已准备好,可以再检测一次。";
|
|
2846
2847
|
readonly providerGateRetryAction: "重新检测";
|
|
@@ -4984,6 +4985,7 @@ declare const agentGuiI18nResources: {
|
|
|
4984
4985
|
readonly agentProviderSessionNotFound: "这条会话历史仍可查看,但底层 Provider 会话已经无法恢复。";
|
|
4985
4986
|
readonly agentResumeSessionNotLocal: "这个会话没法在当前设备里直接恢复,你可以在新会话里 @这段对话,接着继续聊。";
|
|
4986
4987
|
readonly agentSettingsRequireNewSession: "为了保留上下文,这个模型只能在新会话中使用";
|
|
4988
|
+
readonly agentPermissionModeAppliesNextTurn: "权限模式将从你的下一条消息开始生效。";
|
|
4987
4989
|
readonly agentThisSessionMentionLabel: "本 session";
|
|
4988
4990
|
readonly terminalLaunchFailed: "终端启动失败:{{message}}";
|
|
4989
4991
|
readonly fallbackTerminalFailed: "兜底终端启动也失败了:{{message}}";
|
package/dist/i18n/index.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { AgentActivityNeedsAttentionItem, AgentActivitySnapshot, AgentActivityCa
|
|
|
2
2
|
export { AgentActivityAdapter, AgentActivityController, AgentActivityMessage, AgentActivityNeedsAttentionItem, AgentActivitySnapshot, selectNeedsAttentionCount, selectNeedsAttentionItems } from '@tutti-os/agent-activity-core';
|
|
3
3
|
import { m as WorkspaceAgentActivityListViewModel, g as AgentHostWorkspaceAgentSession, f as AgentHostWorkspaceAgentMessage, l as AgentHostWorkspaceAgentSnapshot, B as BuildWorkspaceAgentActivityListOptions, d as AgentHostRuntimeOpenclawGatewayWarmupResult, c as AgentHostManagedAgentsState } from './workspaceAgentActivityListViewModel-DJvAqZso.js';
|
|
4
4
|
import * as react from 'react';
|
|
5
|
-
import { ReactNode, PropsWithChildren, JSX } from 'react';
|
|
5
|
+
import { ReactNode, PropsWithChildren, JSX, HTMLAttributes } from 'react';
|
|
6
6
|
import { I18nRuntime } from '@tutti-os/ui-i18n-runtime';
|
|
7
7
|
import { q as AgentProvider, f as AgentGUIProviderTargetRef, i as AgentHostAgentSessionComposerSettings, g as AgentHostActivateAgentSessionResult, o as AgentHostUpdateAgentSessionSettingsResult, m as AgentHostAgentSessionState, n as AgentHostUnactivateAgentSessionResult, A as AgentGUINodeData, a as AgentGUIProvider, e as AgentGUIProviderTarget, p as AgentPromptContentBlock, P as Point, b as AgentGUIProviderReadinessGate, N as NodeFrame } from './types-DSc2ta3s.js';
|
|
8
8
|
export { c as AgentGUIProviderReadinessGateAction, d as AgentGUIProviderReadinessGateStatus } from './types-DSc2ta3s.js';
|
|
@@ -13,13 +13,13 @@ import { WorkspaceFileReference, ReferenceLocateTarget, WorkspaceFileReferenceAd
|
|
|
13
13
|
import { ReferenceSourceAggregator } from '@tutti-os/workspace-file-reference/core';
|
|
14
14
|
import { U as UiLanguage, a as UiTheme } from './uiSettings-BQS9r2eo.js';
|
|
15
15
|
import { W as WorkspaceLinkAction } from './workspaceLinkActions-Bjy_XfBm.js';
|
|
16
|
-
import { A as AgentContextMentionItem } from './AgentMentionSearchController-Po0KQLcL.js';
|
|
17
|
-
export { p as preloadAgentMentionBrowse } from './AgentMentionSearchController-Po0KQLcL.js';
|
|
18
16
|
import { b as AgentConversationPromptVM } from './agentConversationVM-DPAgUJlR.js';
|
|
19
17
|
import { WorkspaceUserProjectI18nRuntime } from '@tutti-os/workspace-user-project/i18n';
|
|
20
18
|
import { WorkspaceUserProjectSelectChangeAction } from '@tutti-os/workspace-user-project/ui';
|
|
21
19
|
import { WorkspaceUserProject } from '@tutti-os/workspace-user-project/contracts';
|
|
22
20
|
import { A as AgentMessageMarkdownWorkspaceAppIcon } from './AgentMessageMarkdown-DeYPURtF.js';
|
|
21
|
+
import { A as AgentContextMentionItem } from './AgentMentionSearchController-Po0KQLcL.js';
|
|
22
|
+
export { p as preloadAgentMentionBrowse } from './AgentMentionSearchController-Po0KQLcL.js';
|
|
23
23
|
import { AgentContextMentionProvider } from './context-mention-provider.js';
|
|
24
24
|
export { AGENT_CONTEXT_MENTION_PROVIDER_IDS, AgentContextMentionProviderId } from './context-mention-provider.js';
|
|
25
25
|
import { AgentQueuedPromptRuntime, AgentQueuedPromptQueueSnapshot } from './queued-prompt-runtime.js';
|
|
@@ -483,6 +483,18 @@ interface AgentProjectPathChangeMetadata {
|
|
|
483
483
|
|
|
484
484
|
type AgentDroppedFileReferenceResolver = (files: readonly File[]) => Promise<readonly WorkspaceFileReference[]> | readonly WorkspaceFileReference[];
|
|
485
485
|
|
|
486
|
+
type DotLottieElementProps = HTMLAttributes<HTMLElement> & {
|
|
487
|
+
autoplay?: boolean;
|
|
488
|
+
loop?: boolean;
|
|
489
|
+
src?: string;
|
|
490
|
+
};
|
|
491
|
+
declare module "react" {
|
|
492
|
+
namespace JSX {
|
|
493
|
+
interface IntrinsicElements {
|
|
494
|
+
"dotlottie-wc": DotLottieElementProps;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
}
|
|
486
498
|
/**
|
|
487
499
|
* 引用 picker 的确认结果:松散文件按 file mention 插入;mentionItems(如文件夹 bundle)
|
|
488
500
|
* 作为整体节点插入。两者各走各的插入路径,composer 不需要理解 bundle 内部结构。
|
package/dist/index.js
CHANGED
|
@@ -20,11 +20,11 @@ import {
|
|
|
20
20
|
localAgentGUIProviderTargetId,
|
|
21
21
|
normalizeAgentGUIProviderTargets,
|
|
22
22
|
resolveAgentGUIProviderTarget
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-4UTWOSHP.js";
|
|
24
24
|
import {
|
|
25
25
|
AgentInteractivePromptSurface,
|
|
26
26
|
approvalOptionDisplayLabel
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-QC642RAG.js";
|
|
28
28
|
import {
|
|
29
29
|
PLAN_IMPLEMENTATION_ACTION_FEEDBACK,
|
|
30
30
|
PLAN_IMPLEMENTATION_ACTION_IMPLEMENT,
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
resolveAgentGUIExplicitConversationTitle,
|
|
44
44
|
resolveAgentGUIProviderDisplayLabel,
|
|
45
45
|
resolveAgentGUIProviderIdentity
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-CVSCZ3CK.js";
|
|
47
47
|
import {
|
|
48
48
|
AgentConversationFlow,
|
|
49
49
|
Button,
|
|
@@ -64,14 +64,14 @@ import {
|
|
|
64
64
|
skillTriggerForPrefix,
|
|
65
65
|
toLocalShortDateTime,
|
|
66
66
|
useProjectedAgentConversation
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-6MUKWI6Z.js";
|
|
68
68
|
import {
|
|
69
69
|
AgentMessageMarkdown,
|
|
70
70
|
AgentTargetPresentationProvider,
|
|
71
71
|
ZoomableImage,
|
|
72
72
|
cn,
|
|
73
73
|
resolveWorkspaceLinkAction
|
|
74
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-SW6JCJCO.js";
|
|
75
75
|
import {
|
|
76
76
|
openAgentEnvPanel
|
|
77
77
|
} from "./chunk-PSLAWU25.js";
|
|
@@ -82,7 +82,7 @@ import {
|
|
|
82
82
|
DEFAULT_AGENT_MENTION_FILTER,
|
|
83
83
|
agentMentionItemKey,
|
|
84
84
|
preloadAgentMentionBrowse
|
|
85
|
-
} from "./chunk-
|
|
85
|
+
} from "./chunk-SGXYVGQT.js";
|
|
86
86
|
import {
|
|
87
87
|
WORKSPACE_AGENT_ACTIVITY_RUNTIME_SESSION_ORIGIN,
|
|
88
88
|
buildWorkspaceAgentActivityListViewModel,
|
|
@@ -92,10 +92,10 @@ import {
|
|
|
92
92
|
isWorkspaceAgentUntitledTask,
|
|
93
93
|
mergeWorkspaceAgentActivityDurableAndOverlayMessages,
|
|
94
94
|
selectWorkspaceAgentActivityOverlayMessages
|
|
95
|
-
} from "./chunk-
|
|
95
|
+
} from "./chunk-7P6CUYQT.js";
|
|
96
96
|
import {
|
|
97
97
|
Spinner
|
|
98
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-ZUVEBW5T.js";
|
|
99
99
|
import {
|
|
100
100
|
resolveWorkspaceAgentSessionSortTimeUnixMs
|
|
101
101
|
} from "./chunk-IBIMGLCD.js";
|
|
@@ -106,7 +106,7 @@ import {
|
|
|
106
106
|
mentionItemToAttrs,
|
|
107
107
|
normalizeAgentSessionMentionTitle,
|
|
108
108
|
parseMentionItemFromHref
|
|
109
|
-
} from "./chunk-
|
|
109
|
+
} from "./chunk-FQQDBBNI.js";
|
|
110
110
|
import "./chunk-Y35GDLP2.js";
|
|
111
111
|
import "./chunk-LUGELG5V.js";
|
|
112
112
|
import {
|
|
@@ -137,10 +137,10 @@ import {
|
|
|
137
137
|
agentGuiI18nResources,
|
|
138
138
|
translate,
|
|
139
139
|
useTranslation
|
|
140
|
-
} from "./chunk-
|
|
140
|
+
} from "./chunk-RO6KQD3J.js";
|
|
141
141
|
import "./chunk-PJP5BUU6.js";
|
|
142
142
|
import "./chunk-V4JGVBUN.js";
|
|
143
|
-
import "./chunk-
|
|
143
|
+
import "./chunk-CA25GD5Q.js";
|
|
144
144
|
import {
|
|
145
145
|
AGENT_CONTEXT_MENTION_PROVIDER_IDS
|
|
146
146
|
} from "./chunk-JM24HADP.js";
|
|
@@ -13147,6 +13147,14 @@ function useAgentGUINodeController({
|
|
|
13147
13147
|
}
|
|
13148
13148
|
if (nextPermission !== void 0 && nextPermission && nextPermission !== currentPermission && activeSessionState2 !== null) {
|
|
13149
13149
|
sessionSettingsPatch.permissionModeId = normalizePermissionModeId(nextPermission);
|
|
13150
|
+
const turnPhase = activeSessionState2.turnLifecycle?.phase;
|
|
13151
|
+
const isTurnInFlight = turnPhase === "running" || turnPhase === "submitted";
|
|
13152
|
+
if (dataRef.current.provider === "codex" && isTurnInFlight) {
|
|
13153
|
+
onShowMessageRef.current?.(
|
|
13154
|
+
translate("messages.agentPermissionModeAppliesNextTurn"),
|
|
13155
|
+
"info"
|
|
13156
|
+
);
|
|
13157
|
+
}
|
|
13150
13158
|
}
|
|
13151
13159
|
if (Object.keys(sessionSettingsPatch).length > 0 && activeSessionState2 !== null) {
|
|
13152
13160
|
updateAgentSessionViewControlState(
|
|
@@ -14535,11 +14543,68 @@ function useAgentGUINodeController({
|
|
|
14535
14543
|
draftSpeed
|
|
14536
14544
|
]);
|
|
14537
14545
|
const stableComposerSettings = useStableComposerSettingsVM(composerSettings);
|
|
14546
|
+
const resolveDefaultHomeComposerTarget = useCallback4(() => {
|
|
14547
|
+
const defaultTargetId = defaultProviderTargetId?.trim() ?? "";
|
|
14548
|
+
const explicitDefaultTarget = defaultTargetId ? normalizedProviderTargets.find(
|
|
14549
|
+
(target) => target.targetId === defaultTargetId || target.agentTargetId === defaultTargetId
|
|
14550
|
+
) ?? null : null;
|
|
14551
|
+
return explicitDefaultTarget ?? normalizedProviderTargets.find((target) => target.disabled !== true) ?? normalizedProviderTargets[0] ?? null;
|
|
14552
|
+
}, [defaultProviderTargetId, normalizedProviderTargets]);
|
|
14553
|
+
const resetHomeComposerAgentTargetToDefault = useCallback4(() => {
|
|
14554
|
+
if (previewMode) {
|
|
14555
|
+
return;
|
|
14556
|
+
}
|
|
14557
|
+
const nextTarget = resolveDefaultHomeComposerTarget();
|
|
14558
|
+
if (!nextTarget) {
|
|
14559
|
+
return;
|
|
14560
|
+
}
|
|
14561
|
+
const nextTargetIsExplicit = normalizedExplicitProviderTargets.some(
|
|
14562
|
+
(target) => target.provider === nextTarget.provider && target.targetId === nextTarget.targetId && agentGUIProviderTargetRefsEqual(target.ref, nextTarget.ref)
|
|
14563
|
+
);
|
|
14564
|
+
const nextTargetData = composerTargetDataFromProviderTarget({
|
|
14565
|
+
current: dataRef.current,
|
|
14566
|
+
isExplicit: nextTargetIsExplicit,
|
|
14567
|
+
target: nextTarget
|
|
14568
|
+
});
|
|
14569
|
+
setHomeComposerTargetOverride(nextTarget);
|
|
14570
|
+
setIntent({ tag: "home" });
|
|
14571
|
+
isComposerHomeRef.current = true;
|
|
14572
|
+
setIsComposerHome(true);
|
|
14573
|
+
onDataChangeRef.current((current) => {
|
|
14574
|
+
const currentNextTargetData = composerTargetDataFromProviderTarget({
|
|
14575
|
+
current,
|
|
14576
|
+
isExplicit: nextTargetIsExplicit,
|
|
14577
|
+
target: nextTarget
|
|
14578
|
+
});
|
|
14579
|
+
const nextData = {
|
|
14580
|
+
...currentNextTargetData.data,
|
|
14581
|
+
lastActiveAgentSessionId: null
|
|
14582
|
+
};
|
|
14583
|
+
dataRef.current = nextData;
|
|
14584
|
+
return nextData;
|
|
14585
|
+
});
|
|
14586
|
+
dataRef.current = {
|
|
14587
|
+
...nextTargetData.data,
|
|
14588
|
+
lastActiveAgentSessionId: null
|
|
14589
|
+
};
|
|
14590
|
+
if (nextTarget.disabled !== true) {
|
|
14591
|
+
loadComposerOptionsForTarget(nextTargetData, { force: true });
|
|
14592
|
+
}
|
|
14593
|
+
}, [
|
|
14594
|
+
loadComposerOptionsForTarget,
|
|
14595
|
+
normalizedExplicitProviderTargets,
|
|
14596
|
+
previewMode,
|
|
14597
|
+
resolveDefaultHomeComposerTarget
|
|
14598
|
+
]);
|
|
14538
14599
|
const updateConversationFilter = useCallback4(
|
|
14539
14600
|
(filter) => {
|
|
14540
|
-
|
|
14601
|
+
const nextFilter = normalizeAgentGUIConversationFilter(filter);
|
|
14602
|
+
setConversationFilter(nextFilter);
|
|
14603
|
+
if (nextFilter.kind === "all" && activeConversationIdRef.current === null) {
|
|
14604
|
+
resetHomeComposerAgentTargetToDefault();
|
|
14605
|
+
}
|
|
14541
14606
|
},
|
|
14542
|
-
[]
|
|
14607
|
+
[resetHomeComposerAgentTargetToDefault]
|
|
14543
14608
|
);
|
|
14544
14609
|
const selectHomeComposerAgentTarget = useCallback4(
|
|
14545
14610
|
(input) => {
|
|
@@ -14565,7 +14630,14 @@ function useAgentGUINodeController({
|
|
|
14565
14630
|
isExplicit: nextTargetIsExplicit,
|
|
14566
14631
|
target: nextTarget
|
|
14567
14632
|
});
|
|
14633
|
+
const shouldSyncScopedRailFilter = conversationFilterRef.current.kind === "agentTarget";
|
|
14568
14634
|
setHomeComposerTargetOverride(nextTarget);
|
|
14635
|
+
if (shouldSyncScopedRailFilter) {
|
|
14636
|
+
const nextAgentTargetId = nextTarget.agentTargetId?.trim() ?? "";
|
|
14637
|
+
setConversationFilter(
|
|
14638
|
+
nextAgentTargetId ? { kind: "agentTarget", agentTargetId: nextAgentTargetId } : { kind: "all" }
|
|
14639
|
+
);
|
|
14640
|
+
}
|
|
14569
14641
|
const previous = activeConversationIdRef.current;
|
|
14570
14642
|
if (previous) {
|
|
14571
14643
|
void activation.unactivate(previous);
|
|
@@ -14624,12 +14696,12 @@ function useAgentGUINodeController({
|
|
|
14624
14696
|
providerTargets: normalizedProviderTargets,
|
|
14625
14697
|
useStaticCatalog: shouldUseStaticProviderTargets
|
|
14626
14698
|
});
|
|
14627
|
-
if (!nextTarget
|
|
14699
|
+
if (!nextTarget) {
|
|
14628
14700
|
reportAgentGUIConversationFilterTargetUnresolved({
|
|
14629
14701
|
provider: input.provider,
|
|
14630
14702
|
providerTargetId: input.providerTargetId ?? null,
|
|
14631
14703
|
providerTargetCount: normalizedProviderTargets.length,
|
|
14632
|
-
reason:
|
|
14704
|
+
reason: "unresolved",
|
|
14633
14705
|
runtime: agentActivityRuntime,
|
|
14634
14706
|
workspaceId
|
|
14635
14707
|
});
|
|
@@ -14651,6 +14723,34 @@ function useAgentGUINodeController({
|
|
|
14651
14723
|
workspaceId
|
|
14652
14724
|
]
|
|
14653
14725
|
);
|
|
14726
|
+
useEffect4(() => {
|
|
14727
|
+
if (previewMode || providerTargetsLoading || activeConversationId === null || conversationFilter.kind !== "agentTarget" || isLoadingConversations || conversationListState?.initialized !== true) {
|
|
14728
|
+
return;
|
|
14729
|
+
}
|
|
14730
|
+
if (filterAgentGUIConversationSummaries(conversations, conversationFilter).length > 0) {
|
|
14731
|
+
return;
|
|
14732
|
+
}
|
|
14733
|
+
const target = normalizedProviderTargets.find(
|
|
14734
|
+
(candidate) => (candidate.agentTargetId?.trim() ?? "") === conversationFilter.agentTargetId
|
|
14735
|
+
);
|
|
14736
|
+
if (!target) {
|
|
14737
|
+
return;
|
|
14738
|
+
}
|
|
14739
|
+
selectHomeComposerAgentTarget({
|
|
14740
|
+
provider: target.provider,
|
|
14741
|
+
providerTargetId: target.targetId
|
|
14742
|
+
});
|
|
14743
|
+
}, [
|
|
14744
|
+
activeConversationId,
|
|
14745
|
+
conversationFilter,
|
|
14746
|
+
conversationListState?.initialized,
|
|
14747
|
+
conversations,
|
|
14748
|
+
isLoadingConversations,
|
|
14749
|
+
normalizedProviderTargets,
|
|
14750
|
+
previewMode,
|
|
14751
|
+
providerTargetsLoading,
|
|
14752
|
+
selectHomeComposerAgentTarget
|
|
14753
|
+
]);
|
|
14654
14754
|
const stableCreateConversation = useStableControllerEventCallback(createConversation);
|
|
14655
14755
|
const stableSelectHomeComposerAgentTarget = useStableControllerEventCallback(
|
|
14656
14756
|
selectHomeComposerAgentTarget
|
|
@@ -16956,6 +17056,7 @@ var styles3 = {
|
|
|
16956
17056
|
composerHero: "agent-gui-node__composer-hero",
|
|
16957
17057
|
composerFloatingPrompt: "agent-gui-node__composer-floating-prompt",
|
|
16958
17058
|
composerHandoffIcon: "agent-gui-node__composer-handoff-icon",
|
|
17059
|
+
composerHandoffAnimatedIcon: "agent-gui-node__composer-handoff-icon-animated",
|
|
16959
17060
|
composerHandoffMenuContent: "agent-gui-node__composer-handoff-menu-content",
|
|
16960
17061
|
composerHandoffStaticIcon: "agent-gui-node__composer-handoff-icon-static",
|
|
16961
17062
|
composerHandoffTrigger: "agent-gui-node__composer-handoff-trigger",
|
|
@@ -17413,6 +17514,13 @@ import {
|
|
|
17413
17514
|
function permissionModeSelectionPatch(permissionModeId, options) {
|
|
17414
17515
|
return options.clearsPlanMode ? { permissionModeId, planMode: false } : { permissionModeId };
|
|
17415
17516
|
}
|
|
17517
|
+
function resolvePermissionModeControlsDisabled(options) {
|
|
17518
|
+
const liveDuringTurn = options.provider === "claude-code" || options.provider === "codex";
|
|
17519
|
+
if (liveDuringTurn) {
|
|
17520
|
+
return options.isSubmittingPrompt;
|
|
17521
|
+
}
|
|
17522
|
+
return options.isSendingTurn || options.isSubmittingPrompt || options.showStopButton;
|
|
17523
|
+
}
|
|
17416
17524
|
|
|
17417
17525
|
// agent-gui/agentGuiNode/model/composerSettingsMenuModel.ts
|
|
17418
17526
|
function buildComposerModelMenuModel(composerSettings, labels) {
|
|
@@ -20407,6 +20515,8 @@ var handoff_lined_default = "./handoff-lined-4WQUBVG3.svg";
|
|
|
20407
20515
|
// agent-gui/agentGuiNode/AgentComposer.tsx
|
|
20408
20516
|
import { jsx as jsx28, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
20409
20517
|
var USAGE_POPOVER_HOVER_DELAY_MS = 120;
|
|
20518
|
+
var HANDOFF_LOTTIE_PLAYER_SCRIPT_SRC = "https://unpkg.com/@lottiefiles/dotlottie-wc@0.9.14/dist/dotlottie-wc.js";
|
|
20519
|
+
var HANDOFF_LOTTIE_ANIMATION_SRC = "https://lottie.host/03d75946-52e5-4ccf-97df-174919a13ced/Av6piqVmPa.lottie";
|
|
20410
20520
|
var DOCK_COMPOSER_INPUT_MIN_HEIGHT = 56;
|
|
20411
20521
|
var DOCK_COMPOSER_TEXT_LINE_HEIGHT = 24;
|
|
20412
20522
|
var DOCK_COMPOSER_MAX_VISIBLE_TEXT_LINES = 3.5;
|
|
@@ -20699,23 +20809,93 @@ function AgentComposerMaskIcon({
|
|
|
20699
20809
|
);
|
|
20700
20810
|
}
|
|
20701
20811
|
var HANDOFF_SELECT_IDLE_VALUE = "__agent-handoff-idle__";
|
|
20702
|
-
|
|
20703
|
-
|
|
20812
|
+
var handoffLottiePlayerLoadPromise = null;
|
|
20813
|
+
function loadHandoffLottiePlayer() {
|
|
20814
|
+
if (typeof window === "undefined" || typeof document === "undefined") {
|
|
20815
|
+
return Promise.resolve(false);
|
|
20816
|
+
}
|
|
20817
|
+
if (window.customElements?.get("dotlottie-wc")) {
|
|
20818
|
+
return Promise.resolve(true);
|
|
20819
|
+
}
|
|
20820
|
+
if (handoffLottiePlayerLoadPromise) {
|
|
20821
|
+
return handoffLottiePlayerLoadPromise;
|
|
20822
|
+
}
|
|
20823
|
+
handoffLottiePlayerLoadPromise = new Promise((resolve) => {
|
|
20824
|
+
const existingScript = document.querySelector(
|
|
20825
|
+
'script[data-agent-gui-handoff-lottie="true"]'
|
|
20826
|
+
);
|
|
20827
|
+
const script = existingScript ?? document.createElement("script");
|
|
20828
|
+
const handleLoad = () => {
|
|
20829
|
+
resolve(Boolean(window.customElements?.get("dotlottie-wc")));
|
|
20830
|
+
};
|
|
20831
|
+
const handleError = () => {
|
|
20832
|
+
resolve(false);
|
|
20833
|
+
};
|
|
20834
|
+
script.addEventListener("load", handleLoad, { once: true });
|
|
20835
|
+
script.addEventListener("error", handleError, { once: true });
|
|
20836
|
+
if (!existingScript) {
|
|
20837
|
+
script.dataset.agentGuiHandoffLottie = "true";
|
|
20838
|
+
script.src = HANDOFF_LOTTIE_PLAYER_SCRIPT_SRC;
|
|
20839
|
+
script.type = "module";
|
|
20840
|
+
document.head.append(script);
|
|
20841
|
+
}
|
|
20842
|
+
});
|
|
20843
|
+
return handoffLottiePlayerLoadPromise;
|
|
20844
|
+
}
|
|
20845
|
+
function AgentComposerHandoffIcon({
|
|
20846
|
+
disabled,
|
|
20847
|
+
isPlaying
|
|
20848
|
+
}) {
|
|
20849
|
+
const [isLottieReady, setIsLottieReady] = useState11(false);
|
|
20850
|
+
useEffect12(() => {
|
|
20851
|
+
let isMounted = true;
|
|
20852
|
+
void loadHandoffLottiePlayer().then((isReady) => {
|
|
20853
|
+
if (isMounted) {
|
|
20854
|
+
setIsLottieReady(isReady);
|
|
20855
|
+
}
|
|
20856
|
+
});
|
|
20857
|
+
return () => {
|
|
20858
|
+
isMounted = false;
|
|
20859
|
+
};
|
|
20860
|
+
}, []);
|
|
20861
|
+
const shouldShowAnimation = !disabled && isPlaying && isLottieReady;
|
|
20862
|
+
return /* @__PURE__ */ jsxs15(
|
|
20704
20863
|
"span",
|
|
20705
20864
|
{
|
|
20706
|
-
|
|
20707
|
-
|
|
20708
|
-
|
|
20709
|
-
|
|
20710
|
-
|
|
20711
|
-
|
|
20712
|
-
|
|
20713
|
-
|
|
20714
|
-
|
|
20715
|
-
|
|
20716
|
-
|
|
20865
|
+
"aria-hidden": "true",
|
|
20866
|
+
className: AgentGUINode_styles_default.composerHandoffIcon,
|
|
20867
|
+
"data-disabled": disabled ? "true" : void 0,
|
|
20868
|
+
"data-playing": shouldShowAnimation ? "true" : void 0,
|
|
20869
|
+
children: [
|
|
20870
|
+
/* @__PURE__ */ jsx28(
|
|
20871
|
+
"span",
|
|
20872
|
+
{
|
|
20873
|
+
className: AgentGUINode_styles_default.composerHandoffStaticIcon,
|
|
20874
|
+
style: {
|
|
20875
|
+
WebkitMaskImage: `url("${handoff_lined_default}")`,
|
|
20876
|
+
WebkitMaskPosition: "center",
|
|
20877
|
+
WebkitMaskRepeat: "no-repeat",
|
|
20878
|
+
WebkitMaskSize: "contain",
|
|
20879
|
+
maskImage: `url("${handoff_lined_default}")`,
|
|
20880
|
+
maskPosition: "center",
|
|
20881
|
+
maskRepeat: "no-repeat",
|
|
20882
|
+
maskSize: "contain"
|
|
20883
|
+
}
|
|
20884
|
+
}
|
|
20885
|
+
),
|
|
20886
|
+
/* @__PURE__ */ jsx28(
|
|
20887
|
+
"dotlottie-wc",
|
|
20888
|
+
{
|
|
20889
|
+
autoplay: true,
|
|
20890
|
+
className: AgentGUINode_styles_default.composerHandoffAnimatedIcon,
|
|
20891
|
+
"data-active": shouldShowAnimation ? "true" : void 0,
|
|
20892
|
+
loop: true,
|
|
20893
|
+
src: HANDOFF_LOTTIE_ANIMATION_SRC
|
|
20894
|
+
}
|
|
20895
|
+
)
|
|
20896
|
+
]
|
|
20717
20897
|
}
|
|
20718
|
-
)
|
|
20898
|
+
);
|
|
20719
20899
|
}
|
|
20720
20900
|
function AgentComposer({
|
|
20721
20901
|
workspaceId,
|
|
@@ -20802,6 +20982,7 @@ function AgentComposer({
|
|
|
20802
20982
|
);
|
|
20803
20983
|
const [isPaletteOpen, setIsPaletteOpen] = useState11(true);
|
|
20804
20984
|
const [isReviewPickerOpen, setIsReviewPickerOpen] = useState11(false);
|
|
20985
|
+
const [isHandoffIconPlaying, setIsHandoffIconPlaying] = useState11(false);
|
|
20805
20986
|
const [highlightedIndex, setHighlightedIndex] = useState11(0);
|
|
20806
20987
|
const [mentionHighlightedKey, setMentionHighlightedKey] = useState11(null);
|
|
20807
20988
|
const [shouldCenterMentionHighlight, setShouldCenterMentionHighlight] = useState11(false);
|
|
@@ -21096,6 +21277,12 @@ function AgentComposer({
|
|
|
21096
21277
|
setIsSlashStatusPanelOpen(false);
|
|
21097
21278
|
}, []);
|
|
21098
21279
|
const settingsControlsDisabled = isSendingTurn || isSubmittingPrompt || showStopButton;
|
|
21280
|
+
const permissionModeControlsDisabled = resolvePermissionModeControlsDisabled({
|
|
21281
|
+
provider,
|
|
21282
|
+
isSendingTurn,
|
|
21283
|
+
isSubmittingPrompt,
|
|
21284
|
+
showStopButton
|
|
21285
|
+
});
|
|
21099
21286
|
const composerControlsHardDisabled = isSelectedProjectMissing || isSubmittingPrompt || disabled && !isSendingTurn && !showStopButton;
|
|
21100
21287
|
const closeReviewPicker = useCallback9(() => {
|
|
21101
21288
|
setIsReviewPickerOpen(false);
|
|
@@ -22005,13 +22192,17 @@ function AgentComposer({
|
|
|
22005
22192
|
() => providerTargets.filter(Boolean),
|
|
22006
22193
|
[providerTargets]
|
|
22007
22194
|
);
|
|
22195
|
+
const enabledProviderSwitchTargets = useMemo9(
|
|
22196
|
+
() => providerSwitchTargets.filter((target) => target.disabled !== true),
|
|
22197
|
+
[providerSwitchTargets]
|
|
22198
|
+
);
|
|
22008
22199
|
const selectedProviderTargetId = selectedProviderTarget?.targetId ?? `local:${provider}`;
|
|
22009
22200
|
const selectedProviderSwitchTarget = providerSwitchTargets.find(
|
|
22010
22201
|
(target) => target.targetId === selectedProviderTargetId
|
|
22011
22202
|
) ?? providerSwitchTargets.find((target) => target.provider === provider) ?? selectedProviderTarget;
|
|
22012
|
-
const providerMenuTargets = selectedProviderSwitchTarget && !
|
|
22203
|
+
const providerMenuTargets = selectedProviderSwitchTarget && !enabledProviderSwitchTargets.some(
|
|
22013
22204
|
(target) => target.targetId === selectedProviderSwitchTarget.targetId
|
|
22014
|
-
) ? [selectedProviderSwitchTarget, ...
|
|
22205
|
+
) ? [selectedProviderSwitchTarget, ...enabledProviderSwitchTargets] : enabledProviderSwitchTargets;
|
|
22015
22206
|
const handoffMenuTargets = selectedProviderSwitchTarget ? providerMenuTargets.filter((target) => {
|
|
22016
22207
|
if (target.disabled === true) {
|
|
22017
22208
|
return false;
|
|
@@ -22978,6 +23169,18 @@ function AgentComposer({
|
|
|
22978
23169
|
size: "sm",
|
|
22979
23170
|
"aria-label": effectiveHandoffLabel,
|
|
22980
23171
|
title: effectiveHandoffLabel,
|
|
23172
|
+
onBlur: () => {
|
|
23173
|
+
setIsHandoffIconPlaying(false);
|
|
23174
|
+
},
|
|
23175
|
+
onFocus: () => {
|
|
23176
|
+
setIsHandoffIconPlaying(true);
|
|
23177
|
+
},
|
|
23178
|
+
onMouseEnter: () => {
|
|
23179
|
+
setIsHandoffIconPlaying(true);
|
|
23180
|
+
},
|
|
23181
|
+
onMouseLeave: () => {
|
|
23182
|
+
setIsHandoffIconPlaying(false);
|
|
23183
|
+
},
|
|
22981
23184
|
className: cn(
|
|
22982
23185
|
AgentGUINode_styles_default.composerMenuTrigger,
|
|
22983
23186
|
AgentGUINode_styles_default.composerProviderSelect,
|
|
@@ -22985,7 +23188,13 @@ function AgentComposer({
|
|
|
22985
23188
|
"w-auto max-w-[180px] [&>svg:last-child]:hidden"
|
|
22986
23189
|
),
|
|
22987
23190
|
children: /* @__PURE__ */ jsxs15("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
22988
|
-
/* @__PURE__ */ jsx28(
|
|
23191
|
+
/* @__PURE__ */ jsx28(
|
|
23192
|
+
AgentComposerHandoffIcon,
|
|
23193
|
+
{
|
|
23194
|
+
disabled: handoffDisabled,
|
|
23195
|
+
isPlaying: isHandoffIconPlaying
|
|
23196
|
+
}
|
|
23197
|
+
),
|
|
22989
23198
|
/* @__PURE__ */ jsx28("span", { className: "min-w-0 truncate", children: effectiveHandoffLabel })
|
|
22990
23199
|
] })
|
|
22991
23200
|
}
|
|
@@ -23210,7 +23419,7 @@ function AgentComposer({
|
|
|
23210
23419
|
AgentPermissionModeDropdown,
|
|
23211
23420
|
{
|
|
23212
23421
|
composerSettings,
|
|
23213
|
-
disabled:
|
|
23422
|
+
disabled: permissionModeControlsDisabled,
|
|
23214
23423
|
previewMode,
|
|
23215
23424
|
labels: {
|
|
23216
23425
|
permissionLabel: labels.permissionLabel,
|
|
@@ -24560,7 +24769,7 @@ function AgentGUINodeView({
|
|
|
24560
24769
|
showProviderRail ? /* @__PURE__ */ jsx31(
|
|
24561
24770
|
"aside",
|
|
24562
24771
|
{
|
|
24563
|
-
className: AgentGUINode_styles_default.providerRailPanel
|
|
24772
|
+
className: `${AgentGUINode_styles_default.providerRailPanel} nodrag tsh-desktop-no-drag`,
|
|
24564
24773
|
"aria-label": labels.providerSwitchLabel,
|
|
24565
24774
|
"aria-hidden": conversationRailCollapsed ? "true" : void 0,
|
|
24566
24775
|
inert: conversationRailCollapsed ? true : void 0,
|
|
@@ -26250,7 +26459,10 @@ function EmptyHeroTitle({
|
|
|
26250
26459
|
}
|
|
26251
26460
|
const providerEnd = providerStart + providerLabel.length;
|
|
26252
26461
|
const selectedProviderTargetId = selectedProviderTarget?.targetId ?? `local:${selectedProviderTarget?.provider ?? ""}`;
|
|
26253
|
-
const
|
|
26462
|
+
const enabledProviderTargets = providerTargets.filter(
|
|
26463
|
+
(target) => target.disabled !== true
|
|
26464
|
+
);
|
|
26465
|
+
const canSwitchProvider = enabledProviderTargets.length > 1 && selectedProviderTarget && onProviderSelect;
|
|
26254
26466
|
const providerName = label.slice(providerStart, providerEnd);
|
|
26255
26467
|
return /* @__PURE__ */ jsxs17(Fragment8, { children: [
|
|
26256
26468
|
label.slice(0, providerStart),
|
|
@@ -26259,10 +26471,10 @@ function EmptyHeroTitle({
|
|
|
26259
26471
|
{
|
|
26260
26472
|
value: selectedProviderTargetId,
|
|
26261
26473
|
onValueChange: (nextTargetId) => {
|
|
26262
|
-
const target =
|
|
26474
|
+
const target = enabledProviderTargets.find(
|
|
26263
26475
|
(candidate) => candidate.targetId === nextTargetId
|
|
26264
26476
|
);
|
|
26265
|
-
if (!target
|
|
26477
|
+
if (!target) {
|
|
26266
26478
|
return;
|
|
26267
26479
|
}
|
|
26268
26480
|
onProviderSelect({
|
|
@@ -26286,42 +26498,25 @@ function EmptyHeroTitle({
|
|
|
26286
26498
|
{
|
|
26287
26499
|
align: "center",
|
|
26288
26500
|
className: cn3(AgentGUINode_styles_default.composerMenuContent, "min-w-[190px]"),
|
|
26289
|
-
children:
|
|
26501
|
+
children: enabledProviderTargets.map((target) => /* @__PURE__ */ jsx31(
|
|
26290
26502
|
SelectItem3,
|
|
26291
26503
|
{
|
|
26292
26504
|
value: target.targetId,
|
|
26293
|
-
className: cn3(
|
|
26294
|
-
AgentGUINode_styles_default.composerMenuItem,
|
|
26295
|
-
"gap-2 data-[disabled]:cursor-not-allowed data-[disabled]:opacity-30 data-[disabled]:text-[var(--text-disabled,var(--text-tertiary))]",
|
|
26296
|
-
target.disabled === true ? "cursor-not-allowed opacity-30" : null
|
|
26297
|
-
),
|
|
26298
|
-
disabled: target.disabled === true,
|
|
26505
|
+
className: cn3(AgentGUINode_styles_default.composerMenuItem, "gap-2"),
|
|
26299
26506
|
children: /* @__PURE__ */ jsxs17("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
26300
26507
|
/* @__PURE__ */ jsx31(
|
|
26301
26508
|
"img",
|
|
26302
26509
|
{
|
|
26303
26510
|
alt: "",
|
|
26304
26511
|
"aria-hidden": "true",
|
|
26305
|
-
className:
|
|
26306
|
-
"size-4 shrink-0 rounded-[4px]",
|
|
26307
|
-
target.disabled === true ? "grayscale opacity-30" : null
|
|
26308
|
-
),
|
|
26512
|
+
className: "size-4 shrink-0 rounded-[4px]",
|
|
26309
26513
|
src: agentGUIProviderIconPresentation(
|
|
26310
26514
|
target.provider,
|
|
26311
26515
|
target.iconUrl
|
|
26312
26516
|
).iconUrl
|
|
26313
26517
|
}
|
|
26314
26518
|
),
|
|
26315
|
-
/* @__PURE__ */ jsx31(
|
|
26316
|
-
"span",
|
|
26317
|
-
{
|
|
26318
|
-
className: cn3(
|
|
26319
|
-
"min-w-0 truncate",
|
|
26320
|
-
target.disabled === true ? "text-[var(--text-disabled,var(--text-tertiary))]" : null
|
|
26321
|
-
),
|
|
26322
|
-
children: target.label
|
|
26323
|
-
}
|
|
26324
|
-
)
|
|
26519
|
+
/* @__PURE__ */ jsx31("span", { className: "min-w-0 truncate", children: target.label })
|
|
26325
26520
|
] })
|
|
26326
26521
|
},
|
|
26327
26522
|
`${target.provider}:${target.targetId}`
|
|
@@ -26923,7 +27118,7 @@ var AgentGUIProviderRail = memo(function AgentGUIProviderRail2({
|
|
|
26923
27118
|
"data-disabled": target.disabled === true ? "true" : void 0,
|
|
26924
27119
|
"data-provider-tile": "true",
|
|
26925
27120
|
"data-selected": providerSelected ? "true" : "false",
|
|
26926
|
-
disabled: previewMode
|
|
27121
|
+
disabled: previewMode,
|
|
26927
27122
|
onClick: () => selectAgentTargetTile(target),
|
|
26928
27123
|
children: /* @__PURE__ */ jsx31("span", { className: AgentGUINode_styles_default.providerRailAvatar, children: /* @__PURE__ */ jsx31(
|
|
26929
27124
|
AgentGUIProviderIconVisual,
|