@tutti-os/agent-gui 0.0.85 → 0.0.87
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/README.md +49 -44
- package/dist/agent-conversation/index.d.ts +2 -2
- package/dist/agent-conversation/index.js +5 -5
- package/dist/agent-message-center/index.js +7 -7
- package/dist/{agentGuiNodeTypes-CmuJ7VDZ.d.ts → agentGuiNodeTypes-BEs_Lhc3.d.ts} +2 -5
- package/dist/{chunk-A2JPL5N6.js → chunk-3HARXLAZ.js} +2 -2
- package/dist/{chunk-BEM3KDOJ.js → chunk-45FF4DQU.js} +17 -281
- package/dist/chunk-45FF4DQU.js.map +1 -0
- package/dist/{chunk-UNLTQUPO.js → chunk-4SQNOOJ3.js} +4 -4
- package/dist/{chunk-L2ZMLLYL.js → chunk-7LMJXF4R.js} +2 -2
- package/dist/{chunk-DBIJRSFG.js → chunk-A7RA7ORT.js} +104 -45
- package/dist/chunk-A7RA7ORT.js.map +1 -0
- package/dist/{chunk-CVPWQHQH.js → chunk-AOVPGJBC.js} +2 -2
- package/dist/{chunk-FIH7IYLX.js → chunk-DC3HCHA3.js} +21 -9
- package/dist/chunk-DC3HCHA3.js.map +1 -0
- package/dist/{chunk-BT2DT2P7.js → chunk-GAPTLVII.js} +1 -1
- package/dist/{chunk-BT2DT2P7.js.map → chunk-GAPTLVII.js.map} +1 -1
- package/dist/{chunk-3355GEBI.js → chunk-HOSX5C5V.js} +2 -2
- package/dist/{chunk-CXJEQQR5.js → chunk-KQE5KV2V.js} +2 -2
- package/dist/{chunk-N7EX6XK3.js → chunk-SXDLSEHO.js} +3 -3
- package/dist/{chunk-MQ6WW3CD.js → chunk-U7D7G3UU.js} +2 -2
- package/dist/{chunk-6YLA7R4S.js → chunk-UNO7CEAF.js} +2 -2
- package/dist/{chunk-AA75BOX3.js → chunk-VWXFFSIM.js} +3 -1
- package/dist/chunk-VWXFFSIM.js.map +1 -0
- package/dist/{chunk-HUNUSBQQ.js → chunk-XQUUELKF.js} +2 -2
- package/dist/context-mention-palette/index.js +6 -6
- package/dist/i18n/index.d.ts +2 -0
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +28 -94
- package/dist/index.js +489 -446
- package/dist/index.js.map +1 -1
- package/dist/queued-prompt-runtime.d.ts +2 -2
- package/dist/{types-DUHHejs2.d.ts → types-BvztUbHf.d.ts} +31 -21
- package/dist/workbench/contribution.d.ts +9 -11
- package/dist/workbench/contribution.js +4 -4
- package/dist/workbench/index.d.ts +1 -1
- package/dist/workbench/index.js +7 -7
- package/dist/workbench/launch.d.ts +0 -1
- package/dist/workbench/launch.js +2 -2
- package/dist/workbench/providerCatalog.d.ts +0 -1
- package/dist/workbench/sessionTitle.d.ts +0 -1
- package/dist/workbench/sessionTitle.js +3 -3
- package/dist/workbench/state.d.ts +7 -2
- package/dist/workbench/state.js +3 -1
- package/dist/workbench/types.d.ts +0 -6
- package/dist/workbench/types.js +1 -1
- package/dist/workspace-agent-generated-files.js +3 -3
- package/package.json +12 -12
- package/dist/chunk-AA75BOX3.js.map +0 -1
- package/dist/chunk-BEM3KDOJ.js.map +0 -1
- package/dist/chunk-DBIJRSFG.js.map +0 -1
- package/dist/chunk-FIH7IYLX.js.map +0 -1
- /package/dist/{chunk-A2JPL5N6.js.map → chunk-3HARXLAZ.js.map} +0 -0
- /package/dist/{chunk-UNLTQUPO.js.map → chunk-4SQNOOJ3.js.map} +0 -0
- /package/dist/{chunk-L2ZMLLYL.js.map → chunk-7LMJXF4R.js.map} +0 -0
- /package/dist/{chunk-CVPWQHQH.js.map → chunk-AOVPGJBC.js.map} +0 -0
- /package/dist/{chunk-3355GEBI.js.map → chunk-HOSX5C5V.js.map} +0 -0
- /package/dist/{chunk-CXJEQQR5.js.map → chunk-KQE5KV2V.js.map} +0 -0
- /package/dist/{chunk-N7EX6XK3.js.map → chunk-SXDLSEHO.js.map} +0 -0
- /package/dist/{chunk-MQ6WW3CD.js.map → chunk-U7D7G3UU.js.map} +0 -0
- /package/dist/{chunk-6YLA7R4S.js.map → chunk-UNO7CEAF.js.map} +0 -0
- /package/dist/{chunk-HUNUSBQQ.js.map → chunk-XQUUELKF.js.map} +0 -0
package/dist/index.js
CHANGED
|
@@ -6,33 +6,24 @@ import {
|
|
|
6
6
|
agentGuiDockIconUrl,
|
|
7
7
|
agentGuiDockIconUrls,
|
|
8
8
|
clampAgentGUIConversationRailWidthPx,
|
|
9
|
+
normalizeAgentGUIAgents,
|
|
10
|
+
projectAgentGUIAgentsToInternalTargets,
|
|
9
11
|
resolveAgentGUIConversationRailMaxWidthPx,
|
|
10
12
|
resolveAgentGUIExpandedWindowFrame,
|
|
11
13
|
resolveAgentGuiSessionProviderFlatIconUrl,
|
|
12
14
|
resolveNextAgentGUIConversationRailWidthPx,
|
|
13
15
|
shouldAutoCollapseAgentGUIConversationRail
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
createDisabledPlaceholderAgentGUIProviderTarget,
|
|
19
|
-
createLocalAgentGUIProviderTarget,
|
|
20
|
-
createLocalAgentGUIProviderTargets,
|
|
21
|
-
createSharedAgentGUIProviderTarget,
|
|
22
|
-
localAgentGUIAgentTargetId,
|
|
23
|
-
localAgentGUIProviderTargetId,
|
|
24
|
-
normalizeAgentGUIProviderTargets,
|
|
25
|
-
resolveAgentGUIProviderTarget
|
|
26
|
-
} from "./chunk-BEM3KDOJ.js";
|
|
27
|
-
import "./chunk-L2ZMLLYL.js";
|
|
28
|
-
import "./chunk-BT2DT2P7.js";
|
|
16
|
+
} from "./chunk-A7RA7ORT.js";
|
|
17
|
+
import "./chunk-45FF4DQU.js";
|
|
18
|
+
import "./chunk-7LMJXF4R.js";
|
|
19
|
+
import "./chunk-GAPTLVII.js";
|
|
29
20
|
import {
|
|
30
21
|
resolveAgentGuiWorkbenchProviderLabel
|
|
31
22
|
} from "./chunk-XW4CVBUH.js";
|
|
32
23
|
import {
|
|
33
24
|
AgentInteractivePromptSurface,
|
|
34
25
|
approvalOptionDisplayLabel
|
|
35
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-SXDLSEHO.js";
|
|
36
27
|
import {
|
|
37
28
|
PLAN_IMPLEMENTATION_ACTION_FEEDBACK,
|
|
38
29
|
PLAN_IMPLEMENTATION_ACTION_IMPLEMENT,
|
|
@@ -51,7 +42,7 @@ import {
|
|
|
51
42
|
resolveAgentGUIExplicitConversationTitle,
|
|
52
43
|
resolveAgentGUIProviderDisplayLabel,
|
|
53
44
|
resolveAgentGUIProviderIdentity
|
|
54
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-HOSX5C5V.js";
|
|
55
46
|
import {
|
|
56
47
|
AGENT_PASTED_TEXT_BLOCK_KIND,
|
|
57
48
|
AGENT_PASTED_TEXT_MENTION_KIND,
|
|
@@ -88,14 +79,14 @@ import {
|
|
|
88
79
|
textPromptContent,
|
|
89
80
|
toLocalShortDateTime,
|
|
90
81
|
useProjectedAgentConversation
|
|
91
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-DC3HCHA3.js";
|
|
92
83
|
import {
|
|
93
84
|
AgentMessageMarkdown,
|
|
94
85
|
AgentTargetPresentationProvider,
|
|
95
86
|
ZoomableImage,
|
|
96
87
|
cn,
|
|
97
88
|
resolveWorkspaceLinkAction
|
|
98
|
-
} from "./chunk-
|
|
89
|
+
} from "./chunk-XQUUELKF.js";
|
|
99
90
|
import {
|
|
100
91
|
openAgentEnvPanel
|
|
101
92
|
} from "./chunk-PSLAWU25.js";
|
|
@@ -106,12 +97,12 @@ import {
|
|
|
106
97
|
DEFAULT_AGENT_MENTION_FILTER,
|
|
107
98
|
agentMentionItemKey,
|
|
108
99
|
preloadAgentMentionBrowse
|
|
109
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-4SQNOOJ3.js";
|
|
110
101
|
import {
|
|
111
102
|
buildWorkspaceAgentActivityListViewModel,
|
|
112
103
|
isWorkspaceAgentUntitledTask
|
|
113
|
-
} from "./chunk-
|
|
114
|
-
import "./chunk-
|
|
104
|
+
} from "./chunk-3HARXLAZ.js";
|
|
105
|
+
import "./chunk-AOVPGJBC.js";
|
|
115
106
|
import {
|
|
116
107
|
resolveWorkspaceAgentSessionSortTimeUnixMs
|
|
117
108
|
} from "./chunk-IBIMGLCD.js";
|
|
@@ -125,7 +116,7 @@ import {
|
|
|
125
116
|
mentionItemToAttrs,
|
|
126
117
|
normalizeAgentSessionMentionTitle,
|
|
127
118
|
parseMentionItemFromHref
|
|
128
|
-
} from "./chunk-
|
|
119
|
+
} from "./chunk-KQE5KV2V.js";
|
|
129
120
|
import "./chunk-Y35GDLP2.js";
|
|
130
121
|
import "./chunk-LUGELG5V.js";
|
|
131
122
|
import {
|
|
@@ -166,14 +157,14 @@ import {
|
|
|
166
157
|
agentGuiI18nResources,
|
|
167
158
|
translate,
|
|
168
159
|
useTranslation
|
|
169
|
-
} from "./chunk-
|
|
160
|
+
} from "./chunk-U7D7G3UU.js";
|
|
170
161
|
import "./chunk-PJP5BUU6.js";
|
|
171
162
|
import {
|
|
172
163
|
agentColorfulUrl,
|
|
173
164
|
cursorColorfulUrl,
|
|
174
165
|
normalizeManagedAgentProvider
|
|
175
166
|
} from "./chunk-XDV4ZRVK.js";
|
|
176
|
-
import "./chunk-
|
|
167
|
+
import "./chunk-VWXFFSIM.js";
|
|
177
168
|
import {
|
|
178
169
|
AGENT_CONTEXT_MENTION_PROVIDER_IDS
|
|
179
170
|
} from "./chunk-JM24HADP.js";
|
|
@@ -2374,6 +2365,169 @@ var DEFAULT_AGENT_SETTINGS = {
|
|
|
2374
2365
|
hideWorktreeMismatchDropWarning: false
|
|
2375
2366
|
};
|
|
2376
2367
|
|
|
2368
|
+
// providerTargets.ts
|
|
2369
|
+
var agentGUIProviderTargetStaticLabels = {
|
|
2370
|
+
"claude-code": "Claude Code",
|
|
2371
|
+
codex: "Codex",
|
|
2372
|
+
cursor: "Cursor",
|
|
2373
|
+
hermes: "Hermes",
|
|
2374
|
+
nexight: "Tutti Agent",
|
|
2375
|
+
openclaw: "OpenClaw",
|
|
2376
|
+
opencode: "Open Code",
|
|
2377
|
+
"tutti-agent": "Tutti Agent"
|
|
2378
|
+
};
|
|
2379
|
+
var agentGUIDefaultTargetProviders = [
|
|
2380
|
+
"codex",
|
|
2381
|
+
"claude-code",
|
|
2382
|
+
"cursor",
|
|
2383
|
+
"tutti-agent",
|
|
2384
|
+
"opencode",
|
|
2385
|
+
"hermes",
|
|
2386
|
+
"openclaw"
|
|
2387
|
+
];
|
|
2388
|
+
var agentGUIDisabledPlaceholderProviders = [
|
|
2389
|
+
"hermes",
|
|
2390
|
+
"openclaw"
|
|
2391
|
+
];
|
|
2392
|
+
function createLocalAgentGUIProviderTarget(provider) {
|
|
2393
|
+
const targetId = localAgentGUIProviderTargetId(provider);
|
|
2394
|
+
const agentTargetId = localAgentGUIAgentTargetId(provider);
|
|
2395
|
+
return {
|
|
2396
|
+
targetId,
|
|
2397
|
+
...agentTargetId ? { agentTargetId } : {},
|
|
2398
|
+
provider,
|
|
2399
|
+
ref: {
|
|
2400
|
+
kind: "local",
|
|
2401
|
+
provider
|
|
2402
|
+
},
|
|
2403
|
+
label: agentGUIProviderTargetStaticLabels[provider] ?? provider
|
|
2404
|
+
};
|
|
2405
|
+
}
|
|
2406
|
+
function createDisabledPlaceholderAgentGUIProviderTarget(provider) {
|
|
2407
|
+
return {
|
|
2408
|
+
...createLocalAgentGUIProviderTarget(provider),
|
|
2409
|
+
disabled: true
|
|
2410
|
+
};
|
|
2411
|
+
}
|
|
2412
|
+
function createStaticAgentGUIProviderTargets(providers = agentGUIDefaultTargetProviders, options) {
|
|
2413
|
+
const disabledProviders = new Set(
|
|
2414
|
+
options?.includeDisabledPlaceholders === true ? agentGUIDisabledPlaceholderProviders : []
|
|
2415
|
+
);
|
|
2416
|
+
return providers.map(
|
|
2417
|
+
(provider) => disabledProviders.has(provider) ? createDisabledPlaceholderAgentGUIProviderTarget(provider) : createLocalAgentGUIProviderTarget(provider)
|
|
2418
|
+
);
|
|
2419
|
+
}
|
|
2420
|
+
function localAgentGUIProviderTargetId(provider) {
|
|
2421
|
+
return `local:${provider}`;
|
|
2422
|
+
}
|
|
2423
|
+
function localAgentGUIAgentTargetId(provider) {
|
|
2424
|
+
switch (provider) {
|
|
2425
|
+
case "codex":
|
|
2426
|
+
return "local:codex";
|
|
2427
|
+
case "claude-code":
|
|
2428
|
+
return "local:claude-code";
|
|
2429
|
+
case "tutti-agent":
|
|
2430
|
+
return "local:tutti-agent";
|
|
2431
|
+
case "cursor":
|
|
2432
|
+
return "local:cursor";
|
|
2433
|
+
case "hermes":
|
|
2434
|
+
return "local:hermes";
|
|
2435
|
+
case "nexight":
|
|
2436
|
+
return "local:nexight";
|
|
2437
|
+
case "openclaw":
|
|
2438
|
+
return "local:openclaw";
|
|
2439
|
+
case "opencode":
|
|
2440
|
+
return "local:opencode";
|
|
2441
|
+
default:
|
|
2442
|
+
return null;
|
|
2443
|
+
}
|
|
2444
|
+
}
|
|
2445
|
+
function normalizeAgentGUIProviderTargets(targets, options) {
|
|
2446
|
+
const includeDisabledPlaceholders = options?.includeDisabledPlaceholders === true;
|
|
2447
|
+
const useStaticCatalog = options?.useStaticCatalog !== false;
|
|
2448
|
+
const source = targets && targets.length > 0 ? targets : [];
|
|
2449
|
+
const normalizedTargets = [];
|
|
2450
|
+
const seenTargetKeys = /* @__PURE__ */ new Set();
|
|
2451
|
+
const seenProviders = /* @__PURE__ */ new Set();
|
|
2452
|
+
for (const target of source) {
|
|
2453
|
+
const normalized = normalizeAgentGUIProviderTarget(target);
|
|
2454
|
+
if (!normalized) {
|
|
2455
|
+
continue;
|
|
2456
|
+
}
|
|
2457
|
+
const dedupeKey = `${normalized.provider}\0${normalized.targetId}`;
|
|
2458
|
+
if (seenTargetKeys.has(dedupeKey)) {
|
|
2459
|
+
continue;
|
|
2460
|
+
}
|
|
2461
|
+
seenTargetKeys.add(dedupeKey);
|
|
2462
|
+
seenProviders.add(normalized.provider);
|
|
2463
|
+
normalizedTargets.push(normalized);
|
|
2464
|
+
}
|
|
2465
|
+
if (includeDisabledPlaceholders && normalizedTargets.length > 0) {
|
|
2466
|
+
for (const provider of agentGUIDisabledPlaceholderProviders) {
|
|
2467
|
+
if (seenProviders.has(provider)) {
|
|
2468
|
+
continue;
|
|
2469
|
+
}
|
|
2470
|
+
normalizedTargets.push(
|
|
2471
|
+
createDisabledPlaceholderAgentGUIProviderTarget(provider)
|
|
2472
|
+
);
|
|
2473
|
+
}
|
|
2474
|
+
}
|
|
2475
|
+
return normalizedTargets.length > 0 || !useStaticCatalog ? normalizedTargets : createStaticAgentGUIProviderTargets(void 0, {
|
|
2476
|
+
includeDisabledPlaceholders
|
|
2477
|
+
});
|
|
2478
|
+
}
|
|
2479
|
+
function normalizeAgentGUIProviderTarget(target) {
|
|
2480
|
+
const {
|
|
2481
|
+
targetId: _targetId,
|
|
2482
|
+
agentTargetId: _agentTargetId,
|
|
2483
|
+
provider: _provider,
|
|
2484
|
+
ref: _ref,
|
|
2485
|
+
label: _label,
|
|
2486
|
+
badge,
|
|
2487
|
+
description,
|
|
2488
|
+
iconUrl,
|
|
2489
|
+
ownerLabel,
|
|
2490
|
+
unavailableReason,
|
|
2491
|
+
...rest
|
|
2492
|
+
} = target;
|
|
2493
|
+
const targetId = target.targetId.trim();
|
|
2494
|
+
const agentTargetId = target.agentTargetId?.trim();
|
|
2495
|
+
const label = target.label.trim();
|
|
2496
|
+
const kind = typeof target.ref.kind === "string" ? target.ref.kind.trim() : "";
|
|
2497
|
+
if (!targetId || !label || !kind || target.ref.provider !== target.provider) {
|
|
2498
|
+
return null;
|
|
2499
|
+
}
|
|
2500
|
+
const normalizedBadge = normalizeAgentGUIProviderTargetBadge(badge);
|
|
2501
|
+
return {
|
|
2502
|
+
...rest,
|
|
2503
|
+
targetId,
|
|
2504
|
+
...agentTargetId ? { agentTargetId } : {},
|
|
2505
|
+
provider: target.provider,
|
|
2506
|
+
ref: {
|
|
2507
|
+
...target.ref,
|
|
2508
|
+
kind,
|
|
2509
|
+
provider: target.provider
|
|
2510
|
+
},
|
|
2511
|
+
label,
|
|
2512
|
+
...normalizedBadge ? { badge: normalizedBadge } : {},
|
|
2513
|
+
...description?.trim() ? { description: description.trim() } : {},
|
|
2514
|
+
...iconUrl?.trim() ? { iconUrl: iconUrl.trim() } : {},
|
|
2515
|
+
...ownerLabel?.trim() ? { ownerLabel: ownerLabel.trim() } : {},
|
|
2516
|
+
...unavailableReason?.trim() ? { unavailableReason: unavailableReason.trim() } : {}
|
|
2517
|
+
};
|
|
2518
|
+
}
|
|
2519
|
+
function normalizeAgentGUIProviderTargetBadge(badge) {
|
|
2520
|
+
const iconUrl = badge?.iconUrl?.trim() ?? "";
|
|
2521
|
+
if (!iconUrl) {
|
|
2522
|
+
return null;
|
|
2523
|
+
}
|
|
2524
|
+
const label = badge?.label?.trim() ?? "";
|
|
2525
|
+
return {
|
|
2526
|
+
iconUrl,
|
|
2527
|
+
...label ? { label } : {}
|
|
2528
|
+
};
|
|
2529
|
+
}
|
|
2530
|
+
|
|
2377
2531
|
// agent-gui/agentGuiNode/model/agentGuiConversationFilter.ts
|
|
2378
2532
|
function createAgentGUIConversationFilterState(filter = { kind: "all" }) {
|
|
2379
2533
|
return {
|
|
@@ -6860,7 +7014,7 @@ function composerTargetDataFromProviderTarget(input) {
|
|
|
6860
7014
|
const currentAgentTargetId = normalizeOptionalText2(
|
|
6861
7015
|
input.current.agentTargetId
|
|
6862
7016
|
);
|
|
6863
|
-
const canPromoteLegacyComposerOverrides = agentTargetId !== null && currentAgentTargetId === null &&
|
|
7017
|
+
const canPromoteLegacyComposerOverrides = agentTargetId !== null && currentAgentTargetId === null && input.current.provider === input.target.provider && input.current.composerOverrides != null && !input.current.composerOverridesByAgentTargetId?.[agentTargetId];
|
|
6864
7018
|
const composerOverridesByAgentTargetId = canPromoteLegacyComposerOverrides ? {
|
|
6865
7019
|
...input.current.composerOverridesByAgentTargetId ?? {},
|
|
6866
7020
|
[agentTargetId]: input.current.composerOverrides
|
|
@@ -6869,15 +7023,11 @@ function composerTargetDataFromProviderTarget(input) {
|
|
|
6869
7023
|
return {
|
|
6870
7024
|
agentTargetId,
|
|
6871
7025
|
provider: input.target.provider,
|
|
6872
|
-
providerTargetId: null,
|
|
6873
|
-
providerTargetRef: null,
|
|
6874
7026
|
targetId: input.target.targetId,
|
|
6875
7027
|
data: {
|
|
6876
7028
|
...input.current,
|
|
6877
7029
|
provider: input.target.provider,
|
|
6878
7030
|
agentTargetId,
|
|
6879
|
-
providerTargetId: null,
|
|
6880
|
-
providerTargetRef: null,
|
|
6881
7031
|
composerOverrides: canPromoteLegacyComposerOverrides ? null : currentTargetIdentityChanged ? null : input.current.composerOverrides,
|
|
6882
7032
|
composerOverridesByAgentTargetId
|
|
6883
7033
|
}
|
|
@@ -6885,7 +7035,7 @@ function composerTargetDataFromProviderTarget(input) {
|
|
|
6885
7035
|
}
|
|
6886
7036
|
function isExplicitAgentGUIProviderTarget(target, explicitTargets) {
|
|
6887
7037
|
return explicitTargets.some(
|
|
6888
|
-
(candidate) => candidate.
|
|
7038
|
+
(candidate) => candidate.agentTargetId === target.agentTargetId
|
|
6889
7039
|
);
|
|
6890
7040
|
}
|
|
6891
7041
|
function findAgentGUIDirectoryTarget(directory, agentTargetId) {
|
|
@@ -6896,21 +7046,26 @@ function findAgentGUIDirectoryTarget(directory, agentTargetId) {
|
|
|
6896
7046
|
(target) => normalizeOptionalText2(target.agentTargetId) === agentTargetId
|
|
6897
7047
|
);
|
|
6898
7048
|
}
|
|
7049
|
+
function resolveAgentGUIDirectorySelection(input) {
|
|
7050
|
+
const agentTargetId = normalizeOptionalText2(input.agentTargetId);
|
|
7051
|
+
if (agentTargetId) {
|
|
7052
|
+
return findAgentGUIDirectoryTarget(input.targets, agentTargetId) ?? null;
|
|
7053
|
+
}
|
|
7054
|
+
const providerTargets = input.provider ? input.targets.filter((target) => target.provider === input.provider) : [];
|
|
7055
|
+
return providerTargets.find((target) => target.disabled !== true) ?? providerTargets[0] ?? input.targets.find((target) => target.disabled !== true) ?? input.targets[0] ?? null;
|
|
7056
|
+
}
|
|
6899
7057
|
function composerTargetDataFromNodeData(data, directory) {
|
|
6900
7058
|
const foreignKeyAgentTargetId = normalizeOptionalText2(data.agentTargetId);
|
|
6901
|
-
const lookupAgentTargetId = foreignKeyAgentTargetId ?? localAgentGUIAgentTargetId(data.provider);
|
|
6902
7059
|
const directoryTarget = findAgentGUIDirectoryTarget(
|
|
6903
7060
|
directory,
|
|
6904
|
-
|
|
7061
|
+
foreignKeyAgentTargetId
|
|
6905
7062
|
);
|
|
6906
7063
|
const agentTargetId = normalizeOptionalText2(directoryTarget?.agentTargetId) ?? foreignKeyAgentTargetId;
|
|
6907
7064
|
const provider = directoryTarget?.provider ?? data.provider;
|
|
6908
7065
|
return {
|
|
6909
7066
|
agentTargetId,
|
|
6910
7067
|
provider,
|
|
6911
|
-
|
|
6912
|
-
providerTargetRef: null,
|
|
6913
|
-
targetId: directoryTarget?.targetId ?? agentTargetId ?? `local:${provider}`,
|
|
7068
|
+
targetId: directoryTarget?.targetId ?? agentTargetId ?? "__missing__",
|
|
6914
7069
|
data: directoryTarget && directoryTarget.provider !== data.provider ? { ...data, provider } : data
|
|
6915
7070
|
};
|
|
6916
7071
|
}
|
|
@@ -6920,18 +7075,17 @@ function resolveActiveSessionComposerTarget(input) {
|
|
|
6920
7075
|
if (input.directoryLoading) {
|
|
6921
7076
|
return { status: "loading", target, missingAgentTargetId: null };
|
|
6922
7077
|
}
|
|
6923
|
-
const resolveKey = foreignKey ?? localAgentGUIAgentTargetId(input.data.provider);
|
|
6924
7078
|
const directoryTarget = findAgentGUIDirectoryTarget(
|
|
6925
7079
|
input.directory,
|
|
6926
|
-
|
|
7080
|
+
foreignKey
|
|
6927
7081
|
);
|
|
6928
7082
|
if (directoryTarget) {
|
|
6929
7083
|
return { status: "resolved", target, missingAgentTargetId: null };
|
|
6930
7084
|
}
|
|
6931
|
-
return { status: "missing", target, missingAgentTargetId:
|
|
7085
|
+
return { status: "missing", target, missingAgentTargetId: foreignKey };
|
|
6932
7086
|
}
|
|
6933
7087
|
function agentGUINodeDataHasComposerTarget(data) {
|
|
6934
|
-
return normalizeOptionalText2(data.agentTargetId) !== null
|
|
7088
|
+
return normalizeOptionalText2(data.agentTargetId) !== null;
|
|
6935
7089
|
}
|
|
6936
7090
|
function composerOptionsForTarget(input) {
|
|
6937
7091
|
if (!input.target.agentTargetId) {
|
|
@@ -6985,7 +7139,7 @@ function sanitizeComposerSettingsForTarget(input) {
|
|
|
6985
7139
|
return sanitizeComposerSettingsForOptions(input.settings, input.options);
|
|
6986
7140
|
}
|
|
6987
7141
|
function agentGUIProviderTargetsEqual(left, right) {
|
|
6988
|
-
return left.
|
|
7142
|
+
return (left.agentTargetId ?? left.targetId) === (right.agentTargetId ?? right.targetId);
|
|
6989
7143
|
}
|
|
6990
7144
|
function reportAgentGUIDiagnostic(runtime, input) {
|
|
6991
7145
|
const reportDiagnostic = runtime.reportDiagnostic;
|
|
@@ -7037,9 +7191,9 @@ function showAgentGUIControllerErrorToast(hostToast, message) {
|
|
|
7037
7191
|
function reportAgentGUIConversationFilterTargetUnresolved(input) {
|
|
7038
7192
|
reportAgentGUIDiagnostic(input.runtime, {
|
|
7039
7193
|
details: {
|
|
7194
|
+
agentTargetId: input.agentTargetId,
|
|
7040
7195
|
provider: input.provider,
|
|
7041
7196
|
providerTargetCount: input.providerTargetCount,
|
|
7042
|
-
providerTargetId: input.providerTargetId,
|
|
7043
7197
|
reason: input.reason
|
|
7044
7198
|
},
|
|
7045
7199
|
event: "agent.gui.conversation_filter.target_unresolved",
|
|
@@ -8158,20 +8312,6 @@ function normalizeOptionalText2(value) {
|
|
|
8158
8312
|
const trimmed = value.trim();
|
|
8159
8313
|
return trimmed ? trimmed : null;
|
|
8160
8314
|
}
|
|
8161
|
-
function resolveSameProviderActiveSessionModel(input) {
|
|
8162
|
-
const agentSessionId = normalizeOptionalText2(input.agentSessionId);
|
|
8163
|
-
if (agentSessionId === null) {
|
|
8164
|
-
return null;
|
|
8165
|
-
}
|
|
8166
|
-
const runtimeSession = input.runtime.getSnapshot(input.workspaceId).sessions.find(
|
|
8167
|
-
(candidate) => candidate.agentSessionId.trim() === agentSessionId
|
|
8168
|
-
) ?? null;
|
|
8169
|
-
const activeProvider = normalizeOptionalText2(runtimeSession?.provider) ?? normalizeOptionalText2(input.activeProvider);
|
|
8170
|
-
if (activeProvider !== input.provider) {
|
|
8171
|
-
return null;
|
|
8172
|
-
}
|
|
8173
|
-
return normalizeOptionalText2(input.sessionState?.settings?.model) ?? normalizeOptionalText2(runtimeSession?.model);
|
|
8174
|
-
}
|
|
8175
8315
|
function normalizeOptionalPrompt(value) {
|
|
8176
8316
|
return typeof value === "string" ? value.trim() : "";
|
|
8177
8317
|
}
|
|
@@ -9007,16 +9147,6 @@ function normalizedPositiveNumber2(value) {
|
|
|
9007
9147
|
function timelineItemTime(item) {
|
|
9008
9148
|
return item.occurredAtUnixMs ?? item.createdAtUnixMs ?? 0;
|
|
9009
9149
|
}
|
|
9010
|
-
var emptyComingSoonProviders = [];
|
|
9011
|
-
function applyComingSoonProviderTargets(targets, comingSoonProviders) {
|
|
9012
|
-
if (comingSoonProviders.length === 0) {
|
|
9013
|
-
return targets;
|
|
9014
|
-
}
|
|
9015
|
-
const comingSoon = new Set(comingSoonProviders);
|
|
9016
|
-
return targets.map(
|
|
9017
|
-
(target) => comingSoon.has(target.provider) && target.disabled !== true ? { ...target, disabled: true } : target
|
|
9018
|
-
);
|
|
9019
|
-
}
|
|
9020
9150
|
function useAgentGUINodeController({
|
|
9021
9151
|
nodeId,
|
|
9022
9152
|
workspaceId,
|
|
@@ -9026,10 +9156,8 @@ function useAgentGUINodeController({
|
|
|
9026
9156
|
data,
|
|
9027
9157
|
providerTargets,
|
|
9028
9158
|
providerTargetsLoading = false,
|
|
9029
|
-
providerRailMode = "catalog",
|
|
9030
|
-
comingSoonProviders,
|
|
9031
9159
|
providerReadinessGates = null,
|
|
9032
|
-
|
|
9160
|
+
defaultAgentTargetId = null,
|
|
9033
9161
|
openSessionRequest = null,
|
|
9034
9162
|
prefillPromptRequest = null,
|
|
9035
9163
|
previewMode = false,
|
|
@@ -9058,42 +9186,16 @@ function useAgentGUINodeController({
|
|
|
9058
9186
|
const agentQueuedPromptRuntime = useAgentQueuedPromptRuntime();
|
|
9059
9187
|
const agentHostApi = useAgentHostApi();
|
|
9060
9188
|
const agentActivitySnapshot = useAgentActivitySnapshot(workspaceId);
|
|
9061
|
-
const
|
|
9062
|
-
() =>
|
|
9063
|
-
|
|
9064
|
-
|
|
9065
|
-
|
|
9066
|
-
|
|
9067
|
-
|
|
9068
|
-
|
|
9069
|
-
|
|
9070
|
-
|
|
9071
|
-
return isExactProviderRailMode ? normalized : applyComingSoonProviderTargets(
|
|
9072
|
-
normalized,
|
|
9073
|
-
normalizedComingSoonProviders
|
|
9074
|
-
);
|
|
9075
|
-
}, [isExactProviderRailMode, normalizedComingSoonProviders, providerTargets]);
|
|
9076
|
-
const normalizedProviderTargets = useMemo3(() => {
|
|
9077
|
-
if (providerTargetsLoading) {
|
|
9078
|
-
return [];
|
|
9079
|
-
}
|
|
9080
|
-
if (!isExactProviderRailMode && (providerTargets === void 0 || normalizedExplicitProviderTargets.length === 0)) {
|
|
9081
|
-
return applyComingSoonProviderTargets(
|
|
9082
|
-
normalizeAgentGUIProviderTargets(null, {
|
|
9083
|
-
includeDisabledPlaceholders: true
|
|
9084
|
-
}),
|
|
9085
|
-
normalizedComingSoonProviders
|
|
9086
|
-
);
|
|
9087
|
-
}
|
|
9088
|
-
return normalizedExplicitProviderTargets;
|
|
9089
|
-
}, [
|
|
9090
|
-
isExactProviderRailMode,
|
|
9091
|
-
normalizedExplicitProviderTargets,
|
|
9092
|
-
normalizedComingSoonProviders,
|
|
9093
|
-
providerTargets,
|
|
9094
|
-
providerTargetsLoading
|
|
9095
|
-
]);
|
|
9096
|
-
const shouldUseStaticProviderTargets = !isExactProviderRailMode && !providerTargetsLoading && (providerTargets === void 0 || normalizedExplicitProviderTargets.length === 0);
|
|
9189
|
+
const normalizedExplicitProviderTargets = useMemo3(
|
|
9190
|
+
() => normalizeAgentGUIProviderTargets(providerTargets, {
|
|
9191
|
+
// AgentGUINode always passes the projected `/agents` array, including
|
|
9192
|
+
// an explicit empty array. The undefined branch exists only for direct
|
|
9193
|
+
// package-internal controller harnesses and legacy tests.
|
|
9194
|
+
useStaticCatalog: providerTargets === void 0
|
|
9195
|
+
}),
|
|
9196
|
+
[providerTargets]
|
|
9197
|
+
);
|
|
9198
|
+
const normalizedProviderTargets = providerTargetsLoading ? [] : normalizedExplicitProviderTargets;
|
|
9097
9199
|
const handoffProviderTargets = useMemo3(
|
|
9098
9200
|
() => providerTargetsLoading ? [] : normalizedExplicitProviderTargets.filter(
|
|
9099
9201
|
(target) => target.disabled !== true
|
|
@@ -9101,14 +9203,10 @@ function useAgentGUINodeController({
|
|
|
9101
9203
|
[normalizedExplicitProviderTargets, providerTargetsLoading]
|
|
9102
9204
|
);
|
|
9103
9205
|
const selectedProviderTarget = useMemo3(() => {
|
|
9104
|
-
const
|
|
9105
|
-
|
|
9106
|
-
|
|
9107
|
-
|
|
9108
|
-
providerTargetId: data.providerTargetId,
|
|
9109
|
-
providerTargets: normalizedProviderTargets,
|
|
9110
|
-
useStaticCatalog: shouldUseStaticProviderTargets
|
|
9111
|
-
});
|
|
9206
|
+
const selectedAgentTargetId = normalizeOptionalText2(data.agentTargetId) ?? normalizeOptionalText2(defaultAgentTargetId);
|
|
9207
|
+
const resolved = normalizedProviderTargets.find(
|
|
9208
|
+
(target) => target.agentTargetId === selectedAgentTargetId
|
|
9209
|
+
) ?? normalizedProviderTargets.find((target) => target.disabled !== true) ?? normalizedProviderTargets[0];
|
|
9112
9210
|
return resolved ?? {
|
|
9113
9211
|
targetId: data.agentTargetId ?? "__loading__",
|
|
9114
9212
|
provider: data.provider,
|
|
@@ -9122,27 +9220,19 @@ function useAgentGUINodeController({
|
|
|
9122
9220
|
}, [
|
|
9123
9221
|
data.agentTargetId,
|
|
9124
9222
|
data.provider,
|
|
9125
|
-
|
|
9126
|
-
|
|
9127
|
-
normalizedProviderTargets,
|
|
9128
|
-
shouldUseStaticProviderTargets
|
|
9223
|
+
defaultAgentTargetId,
|
|
9224
|
+
normalizedProviderTargets
|
|
9129
9225
|
]);
|
|
9130
9226
|
const selectedProviderTargetIsExplicit = useMemo3(
|
|
9131
9227
|
() => normalizedExplicitProviderTargets.some(
|
|
9132
|
-
(target) => target.
|
|
9133
|
-
target.ref,
|
|
9134
|
-
selectedProviderTarget.ref
|
|
9135
|
-
)
|
|
9228
|
+
(target) => target.agentTargetId === selectedProviderTarget.agentTargetId
|
|
9136
9229
|
),
|
|
9137
9230
|
[normalizedExplicitProviderTargets, selectedProviderTarget]
|
|
9138
9231
|
);
|
|
9139
9232
|
const [homeComposerTargetOverride, setHomeComposerTargetOverride] = useState4(null);
|
|
9140
9233
|
const homeComposerTargetOverrideIsExplicit = useMemo3(
|
|
9141
9234
|
() => homeComposerTargetOverride ? normalizedExplicitProviderTargets.some(
|
|
9142
|
-
(target) => target.
|
|
9143
|
-
target.ref,
|
|
9144
|
-
homeComposerTargetOverride.ref
|
|
9145
|
-
)
|
|
9235
|
+
(target) => target.agentTargetId === homeComposerTargetOverride.agentTargetId
|
|
9146
9236
|
) : false,
|
|
9147
9237
|
[homeComposerTargetOverride, normalizedExplicitProviderTargets]
|
|
9148
9238
|
);
|
|
@@ -9155,10 +9245,7 @@ function useAgentGUINodeController({
|
|
|
9155
9245
|
(target) => target.disabled !== true && providerReadinessGates[target.provider] === null
|
|
9156
9246
|
) ?? null;
|
|
9157
9247
|
}, [normalizedProviderTargets, providerReadinessGates]);
|
|
9158
|
-
const nodeComposerTargetResolvedByProviderTarget = agentGUINodeDataHasComposerTarget(data) &&
|
|
9159
|
-
selectedProviderTarget.ref,
|
|
9160
|
-
data.providerTargetRef
|
|
9161
|
-
));
|
|
9248
|
+
const nodeComposerTargetResolvedByProviderTarget = agentGUINodeDataHasComposerTarget(data) && selectedProviderTarget.agentTargetId === normalizeOptionalText2(data.agentTargetId);
|
|
9162
9249
|
const selectedComposerTargetData = useMemo3(
|
|
9163
9250
|
() => homeComposerTargetOverride ? composerTargetDataFromProviderTarget({
|
|
9164
9251
|
current: data,
|
|
@@ -9168,7 +9255,7 @@ function useAgentGUINodeController({
|
|
|
9168
9255
|
current: data,
|
|
9169
9256
|
isExplicit: selectedProviderTargetIsExplicit,
|
|
9170
9257
|
target: selectedProviderTarget
|
|
9171
|
-
}) : agentGUINodeDataHasComposerTarget(data) ? composerTargetDataFromNodeData(data, normalizedProviderTargets) : composerTargetDataFromProviderTarget({
|
|
9258
|
+
}) : agentGUINodeDataHasComposerTarget(data) && data.lastActiveAgentSessionId !== null ? composerTargetDataFromNodeData(data, normalizedProviderTargets) : composerTargetDataFromProviderTarget({
|
|
9172
9259
|
current: data,
|
|
9173
9260
|
isExplicit: selectedProviderTargetIsExplicit,
|
|
9174
9261
|
target: selectedProviderTarget
|
|
@@ -9618,7 +9705,7 @@ function useAgentGUINodeController({
|
|
|
9618
9705
|
const pendingHomeErrorRef = useRef4(null);
|
|
9619
9706
|
const activatedConversationIdsRef = useRef4(/* @__PURE__ */ new Set());
|
|
9620
9707
|
const failedNewConversationIdsRef = useRef4(/* @__PURE__ */ new Set());
|
|
9621
|
-
const
|
|
9708
|
+
const lastActiveModelByAgentTargetIdRef = useRef4({});
|
|
9622
9709
|
const pendingTurnIdBySessionIdRef = useRef4({});
|
|
9623
9710
|
const submitTraceBySessionIdRef = useRef4({});
|
|
9624
9711
|
const conversationIdsRef = useRef4(
|
|
@@ -12023,14 +12110,14 @@ function useAgentGUINodeController({
|
|
|
12023
12110
|
(initialContentInput, displayPrompt) => {
|
|
12024
12111
|
const target = selectedProviderTargetRef.current;
|
|
12025
12112
|
const targetData = selectedComposerTargetDataRef.current;
|
|
12026
|
-
if (isCreatingConversation || target.disabled === true || targetData.provider === "openclaw" && openclawGateway?.status !== "ready") {
|
|
12027
|
-
return;
|
|
12028
|
-
}
|
|
12029
12113
|
const agentTargetId = targetData.agentTargetId ?? "";
|
|
12030
12114
|
if (!agentTargetId || providerTargetsProvidedRef.current && !selectedProviderTargetIsExplicitRef.current) {
|
|
12031
12115
|
setDetailError(translate("agentHost.agentGui.agentTargetRequired"));
|
|
12032
12116
|
return;
|
|
12033
12117
|
}
|
|
12118
|
+
if (isCreatingConversation || target.disabled === true || targetData.provider === "openclaw" && openclawGateway?.status !== "ready") {
|
|
12119
|
+
return;
|
|
12120
|
+
}
|
|
12034
12121
|
const normalizedInitialContent = Array.isArray(initialContentInput) ? normalizeAgentPromptContentBlocks(
|
|
12035
12122
|
initialContentInput
|
|
12036
12123
|
) : textPromptContent(normalizeOptionalPrompt(initialContentInput));
|
|
@@ -12057,15 +12144,10 @@ function useAgentGUINodeController({
|
|
|
12057
12144
|
const provider = targetData.provider;
|
|
12058
12145
|
const agentTargetId2 = targetData.agentTargetId ?? "";
|
|
12059
12146
|
onDataChangeRef.current(
|
|
12060
|
-
(current) => current.provider === provider && (current.agentTargetId ?? null) === (agentTargetId2 || null)
|
|
12061
|
-
current.providerTargetRef,
|
|
12062
|
-
targetData.providerTargetRef
|
|
12063
|
-
) ? current : {
|
|
12147
|
+
(current) => current.provider === provider && (current.agentTargetId ?? null) === (agentTargetId2 || null) ? current : {
|
|
12064
12148
|
...current,
|
|
12065
12149
|
provider,
|
|
12066
|
-
agentTargetId: agentTargetId2 || null
|
|
12067
|
-
providerTargetId: targetData.providerTargetId,
|
|
12068
|
-
providerTargetRef: targetData.providerTargetRef
|
|
12150
|
+
agentTargetId: agentTargetId2 || null
|
|
12069
12151
|
}
|
|
12070
12152
|
);
|
|
12071
12153
|
const selectedProjectPath2 = selectedProjectPathRef.current;
|
|
@@ -12094,15 +12176,8 @@ function useAgentGUINodeController({
|
|
|
12094
12176
|
currentActiveConversationId,
|
|
12095
12177
|
transientConversationRef.current
|
|
12096
12178
|
) : null;
|
|
12097
|
-
const inheritedModel = normalizeOptionalText2(targetSafeInitialNodeSettings.model) === null ?
|
|
12098
|
-
|
|
12099
|
-
agentSessionId: currentActiveConversationId,
|
|
12100
|
-
provider,
|
|
12101
|
-
runtime: agentActivityRuntime,
|
|
12102
|
-
sessionState: activeSessionState,
|
|
12103
|
-
workspaceId
|
|
12104
|
-
}) ?? normalizeOptionalText2(
|
|
12105
|
-
lastActiveModelByProviderRef.current[provider]
|
|
12179
|
+
const inheritedModel = normalizeOptionalText2(targetSafeInitialNodeSettings.model) === null ? normalizeOptionalText2(
|
|
12180
|
+
lastActiveModelByAgentTargetIdRef.current[agentTargetId2]
|
|
12106
12181
|
) : null;
|
|
12107
12182
|
const effectiveInitialSettings = inheritedModel === null ? initialSettings : { ...initialSettings, model: inheritedModel };
|
|
12108
12183
|
const targetSafeEffectiveInitialSettings = sanitizeComposerSettingsForTarget({
|
|
@@ -12571,12 +12646,10 @@ function useAgentGUINodeController({
|
|
|
12571
12646
|
}
|
|
12572
12647
|
const filter = conversationFilterRef.current;
|
|
12573
12648
|
if (filter.kind === "agentTarget") {
|
|
12574
|
-
const filterTarget =
|
|
12649
|
+
const filterTarget = resolveAgentGUIDirectorySelection({
|
|
12575
12650
|
agentTargetId: filter.agentTargetId,
|
|
12576
|
-
defaultProviderTargetId,
|
|
12577
12651
|
provider: dataRef.current.provider,
|
|
12578
|
-
|
|
12579
|
-
useStaticCatalog: false
|
|
12652
|
+
targets: normalizedProviderTargets
|
|
12580
12653
|
});
|
|
12581
12654
|
if (filterTarget && filterTarget.disabled !== true && (filterTarget.agentTargetId?.trim() ?? "") === filter.agentTargetId) {
|
|
12582
12655
|
setHomeComposerTargetOverride(filterTarget);
|
|
@@ -12615,7 +12688,7 @@ function useAgentGUINodeController({
|
|
|
12615
12688
|
[
|
|
12616
12689
|
activation,
|
|
12617
12690
|
agentActivityRuntime,
|
|
12618
|
-
|
|
12691
|
+
defaultAgentTargetId,
|
|
12619
12692
|
loadDraftComposerOptions,
|
|
12620
12693
|
normalizedProviderTargets,
|
|
12621
12694
|
persistActiveConversation,
|
|
@@ -12629,7 +12702,20 @@ function useAgentGUINodeController({
|
|
|
12629
12702
|
if (handledPrefillPromptSequenceRef.current === prefillPromptRequest.sequence) {
|
|
12630
12703
|
return;
|
|
12631
12704
|
}
|
|
12705
|
+
if (providerTargetsLoading && prefillPromptRequest.agentTargetId?.trim()) {
|
|
12706
|
+
return;
|
|
12707
|
+
}
|
|
12708
|
+
const selectedTargetData = selectedComposerTargetDataRef.current;
|
|
12709
|
+
const prefillTargetHinted = Boolean(prefillPromptRequest.provider) || Boolean(prefillPromptRequest.agentTargetId);
|
|
12710
|
+
const prefillTarget = prefillTargetHinted ? resolveAgentGUIDirectorySelection({
|
|
12711
|
+
agentTargetId: prefillPromptRequest.agentTargetId,
|
|
12712
|
+
provider: prefillPromptRequest.provider ?? selectedTargetData.provider,
|
|
12713
|
+
targets: normalizedProviderTargets
|
|
12714
|
+
}) : null;
|
|
12632
12715
|
handledPrefillPromptSequenceRef.current = prefillPromptRequest.sequence;
|
|
12716
|
+
if (prefillPromptRequest.agentTargetId?.trim() && !prefillTarget) {
|
|
12717
|
+
return;
|
|
12718
|
+
}
|
|
12633
12719
|
const draftPrompt2 = prefillPromptRequest.draftPrompt.trim();
|
|
12634
12720
|
if (!draftPrompt2) {
|
|
12635
12721
|
return;
|
|
@@ -12660,15 +12746,6 @@ function useAgentGUINodeController({
|
|
|
12660
12746
|
setActiveConversationId(null);
|
|
12661
12747
|
setIsLoadingMessages(false);
|
|
12662
12748
|
setDetailError(null);
|
|
12663
|
-
const selectedTargetData = selectedComposerTargetDataRef.current;
|
|
12664
|
-
const prefillTargetHinted = Boolean(prefillPromptRequest.provider) || Boolean(prefillPromptRequest.agentTargetId);
|
|
12665
|
-
const prefillTarget = prefillTargetHinted ? resolveAgentGUIProviderTarget({
|
|
12666
|
-
agentTargetId: prefillPromptRequest.agentTargetId,
|
|
12667
|
-
defaultProviderTargetId,
|
|
12668
|
-
provider: prefillPromptRequest.provider ?? selectedTargetData.provider,
|
|
12669
|
-
providerTargets: normalizedProviderTargets,
|
|
12670
|
-
useStaticCatalog: shouldUseStaticProviderTargets
|
|
12671
|
-
}) : null;
|
|
12672
12749
|
const targetData = prefillTarget ? composerTargetDataFromProviderTarget({
|
|
12673
12750
|
current: dataRef.current,
|
|
12674
12751
|
isExplicit: isExplicitAgentGUIProviderTarget(
|
|
@@ -12717,14 +12794,14 @@ function useAgentGUINodeController({
|
|
|
12717
12794
|
}, [
|
|
12718
12795
|
activation,
|
|
12719
12796
|
agentActivityRuntime,
|
|
12720
|
-
|
|
12797
|
+
defaultAgentTargetId,
|
|
12721
12798
|
loadDraftComposerOptions,
|
|
12722
12799
|
normalizedExplicitProviderTargets,
|
|
12723
12800
|
normalizedProviderTargets,
|
|
12724
12801
|
persistActiveConversation,
|
|
12725
12802
|
prefillPromptRequest,
|
|
12726
12803
|
previewMode,
|
|
12727
|
-
|
|
12804
|
+
providerTargetsLoading,
|
|
12728
12805
|
workspaceId
|
|
12729
12806
|
]);
|
|
12730
12807
|
const continueInNewConversation = useCallback4(() => {
|
|
@@ -13815,9 +13892,7 @@ function useAgentGUINodeController({
|
|
|
13815
13892
|
{
|
|
13816
13893
|
...current,
|
|
13817
13894
|
provider: targetData.provider,
|
|
13818
|
-
agentTargetId: targetData.agentTargetId
|
|
13819
|
-
providerTargetId: targetData.providerTargetId,
|
|
13820
|
-
providerTargetRef: targetData.providerTargetRef
|
|
13895
|
+
agentTargetId: targetData.agentTargetId
|
|
13821
13896
|
},
|
|
13822
13897
|
targetSafeMerged
|
|
13823
13898
|
)
|
|
@@ -14871,12 +14946,10 @@ function useAgentGUINodeController({
|
|
|
14871
14946
|
if (!providerMismatch && !agentTargetMismatch) {
|
|
14872
14947
|
return;
|
|
14873
14948
|
}
|
|
14874
|
-
const sessionTarget =
|
|
14949
|
+
const sessionTarget = resolveAgentGUIDirectorySelection({
|
|
14875
14950
|
agentTargetId: summaryAgentTargetId,
|
|
14876
|
-
defaultProviderTargetId,
|
|
14877
14951
|
provider: summary.provider,
|
|
14878
|
-
|
|
14879
|
-
useStaticCatalog: shouldUseStaticProviderTargets
|
|
14952
|
+
targets: normalizedProviderTargets
|
|
14880
14953
|
});
|
|
14881
14954
|
if (!sessionTarget || sessionTarget.provider !== summary.provider) {
|
|
14882
14955
|
return;
|
|
@@ -14886,7 +14959,7 @@ function useAgentGUINodeController({
|
|
|
14886
14959
|
}
|
|
14887
14960
|
setHomeComposerTargetOverride(null);
|
|
14888
14961
|
const sessionTargetIsExplicit = normalizedExplicitProviderTargets.some(
|
|
14889
|
-
(target) =>
|
|
14962
|
+
(target) => agentGUIProviderTargetsEqual(target, sessionTarget)
|
|
14890
14963
|
);
|
|
14891
14964
|
onDataChangeRef.current((current) => {
|
|
14892
14965
|
const targetData = composerTargetDataFromProviderTarget({
|
|
@@ -14894,10 +14967,7 @@ function useAgentGUINodeController({
|
|
|
14894
14967
|
isExplicit: sessionTargetIsExplicit,
|
|
14895
14968
|
target: sessionTarget
|
|
14896
14969
|
});
|
|
14897
|
-
if (current.provider === targetData.provider && normalizeOptionalText2(current.agentTargetId) === targetData.agentTargetId
|
|
14898
|
-
current.providerTargetRef,
|
|
14899
|
-
targetData.providerTargetRef
|
|
14900
|
-
)) {
|
|
14970
|
+
if (current.provider === targetData.provider && normalizeOptionalText2(current.agentTargetId) === targetData.agentTargetId) {
|
|
14901
14971
|
return current;
|
|
14902
14972
|
}
|
|
14903
14973
|
dataRef.current = targetData.data;
|
|
@@ -14906,12 +14976,11 @@ function useAgentGUINodeController({
|
|
|
14906
14976
|
}, [
|
|
14907
14977
|
activeConversationId,
|
|
14908
14978
|
conversations,
|
|
14909
|
-
|
|
14979
|
+
defaultAgentTargetId,
|
|
14910
14980
|
normalizedExplicitProviderTargets,
|
|
14911
14981
|
normalizedProviderTargets,
|
|
14912
14982
|
previewMode,
|
|
14913
|
-
providerTargetsLoading
|
|
14914
|
-
shouldUseStaticProviderTargets
|
|
14983
|
+
providerTargetsLoading
|
|
14915
14984
|
]);
|
|
14916
14985
|
const activeSessionTargetResolution = useMemo3(() => {
|
|
14917
14986
|
if (previewMode || activeConversationId === null) {
|
|
@@ -15240,9 +15309,7 @@ function useAgentGUINodeController({
|
|
|
15240
15309
|
{
|
|
15241
15310
|
...current,
|
|
15242
15311
|
provider: selectedComposerTargetData.provider,
|
|
15243
|
-
agentTargetId: selectedComposerTargetData.agentTargetId
|
|
15244
|
-
providerTargetId: selectedComposerTargetData.providerTargetId,
|
|
15245
|
-
providerTargetRef: selectedComposerTargetData.providerTargetRef
|
|
15312
|
+
agentTargetId: selectedComposerTargetData.agentTargetId
|
|
15246
15313
|
},
|
|
15247
15314
|
targetSafeNodeDefaultSettings
|
|
15248
15315
|
)
|
|
@@ -15280,24 +15347,23 @@ function useAgentGUINodeController({
|
|
|
15280
15347
|
) : null;
|
|
15281
15348
|
const pendingInteractivePrompt = serverInteractivePrompt ?? planImplementationPromptVM;
|
|
15282
15349
|
useEffect4(() => {
|
|
15283
|
-
const
|
|
15284
|
-
|
|
15285
|
-
);
|
|
15286
|
-
if (
|
|
15350
|
+
const agentTargetId = activeSessionTargetResolution.status === "resolved" ? normalizeOptionalText2(
|
|
15351
|
+
activeSessionTargetResolution.target.agentTargetId
|
|
15352
|
+
) : null;
|
|
15353
|
+
if (agentTargetId === null) {
|
|
15287
15354
|
return;
|
|
15288
15355
|
}
|
|
15289
15356
|
const model = normalizeOptionalText2(activeSessionState?.settings?.model) ?? normalizeOptionalText2(activeRuntimeSession?.model);
|
|
15290
15357
|
if (model === null) {
|
|
15291
15358
|
return;
|
|
15292
15359
|
}
|
|
15293
|
-
|
|
15294
|
-
...
|
|
15295
|
-
[
|
|
15360
|
+
lastActiveModelByAgentTargetIdRef.current = {
|
|
15361
|
+
...lastActiveModelByAgentTargetIdRef.current,
|
|
15362
|
+
[agentTargetId]: model
|
|
15296
15363
|
};
|
|
15297
15364
|
}, [
|
|
15298
|
-
|
|
15365
|
+
activeSessionTargetResolution,
|
|
15299
15366
|
activeRuntimeSession?.model,
|
|
15300
|
-
activeRuntimeSession?.provider,
|
|
15301
15367
|
activeSessionState?.settings?.model
|
|
15302
15368
|
]);
|
|
15303
15369
|
const activeActivityDisplayStatus = activeConversationId ? agentActivityDisplayStatuses.get(activeConversationId) ?? null : null;
|
|
@@ -15358,7 +15424,7 @@ function useAgentGUINodeController({
|
|
|
15358
15424
|
hasProviderSessionNotFoundError,
|
|
15359
15425
|
pendingApproval
|
|
15360
15426
|
]);
|
|
15361
|
-
const canSubmit = !providerTargetsLoading && activeLiveState !== "activating" && activeLiveState !== "failed" && !activeConversationResumeUnavailable && (activeConversationId !== null || effectiveSelectedProviderTarget.disabled !== true) && (composerTargetData.provider !== "openclaw" || openclawGateway?.status === "ready") && pendingApproval === null && pendingInteractivePrompt === null && sessionChrome.auth === null && !activeConversationBusy && !isCreatingConversation && !isSubmitting && !isInterrupting;
|
|
15427
|
+
const canSubmit = !providerTargetsLoading && activeLiveState !== "activating" && activeLiveState !== "failed" && !activeConversationResumeUnavailable && (activeConversationId !== null || effectiveSelectedProviderTarget.disabled !== true && (homeComposerTargetOverride ? homeComposerTargetOverrideIsExplicit : selectedProviderTargetIsExplicit)) && (composerTargetData.provider !== "openclaw" || openclawGateway?.status === "ready") && pendingApproval === null && pendingInteractivePrompt === null && sessionChrome.auth === null && !activeConversationBusy && !isCreatingConversation && !isSubmitting && !isInterrupting;
|
|
15362
15428
|
const activeConversationCreatePending = Boolean(activeConversationId) && isCreatingConversation && startingConversationIdRef.current === activeConversationId;
|
|
15363
15429
|
const canQueueWhileBusy = Boolean(activeConversationId) && (activeConversationCreatePending || activeConversationBusy || isSubmitting || Boolean(activeSessionState?.pendingInteractive));
|
|
15364
15430
|
useEffect4(() => {
|
|
@@ -15549,12 +15615,12 @@ function useAgentGUINodeController({
|
|
|
15549
15615
|
]);
|
|
15550
15616
|
const stableComposerSettings = useStableComposerSettingsVM(composerSettings);
|
|
15551
15617
|
const resolveDefaultHomeComposerTarget = useCallback4(() => {
|
|
15552
|
-
const defaultTargetId =
|
|
15618
|
+
const defaultTargetId = defaultAgentTargetId?.trim() ?? "";
|
|
15553
15619
|
const explicitDefaultTarget = defaultTargetId ? normalizedProviderTargets.find(
|
|
15554
15620
|
(target) => target.targetId === defaultTargetId || target.agentTargetId === defaultTargetId
|
|
15555
15621
|
) ?? null : null;
|
|
15556
15622
|
return explicitDefaultTarget ?? normalizedProviderTargets.find((target) => target.disabled !== true) ?? normalizedProviderTargets[0] ?? null;
|
|
15557
|
-
}, [
|
|
15623
|
+
}, [defaultAgentTargetId, normalizedProviderTargets]);
|
|
15558
15624
|
const resetHomeComposerAgentTargetToDefault = useCallback4(() => {
|
|
15559
15625
|
if (previewMode) {
|
|
15560
15626
|
return;
|
|
@@ -15564,7 +15630,7 @@ function useAgentGUINodeController({
|
|
|
15564
15630
|
return;
|
|
15565
15631
|
}
|
|
15566
15632
|
const nextTargetIsExplicit = normalizedExplicitProviderTargets.some(
|
|
15567
|
-
(target) =>
|
|
15633
|
+
(target) => agentGUIProviderTargetsEqual(target, nextTarget)
|
|
15568
15634
|
);
|
|
15569
15635
|
const nextTargetData = composerTargetDataFromProviderTarget({
|
|
15570
15636
|
current: dataRef.current,
|
|
@@ -15617,18 +15683,16 @@ function useAgentGUINodeController({
|
|
|
15617
15683
|
return;
|
|
15618
15684
|
}
|
|
15619
15685
|
const nextProvider = input.provider;
|
|
15620
|
-
const nextTarget =
|
|
15621
|
-
|
|
15686
|
+
const nextTarget = resolveAgentGUIDirectorySelection({
|
|
15687
|
+
agentTargetId: input.agentTargetId,
|
|
15622
15688
|
provider: nextProvider,
|
|
15623
|
-
|
|
15624
|
-
providerTargets: normalizedProviderTargets,
|
|
15625
|
-
useStaticCatalog: shouldUseStaticProviderTargets
|
|
15689
|
+
targets: normalizedProviderTargets
|
|
15626
15690
|
});
|
|
15627
15691
|
if (!nextTarget) {
|
|
15628
15692
|
return;
|
|
15629
15693
|
}
|
|
15630
15694
|
const nextTargetIsExplicit = normalizedExplicitProviderTargets.some(
|
|
15631
|
-
(target) =>
|
|
15695
|
+
(target) => agentGUIProviderTargetsEqual(target, nextTarget)
|
|
15632
15696
|
);
|
|
15633
15697
|
const nextTargetData = composerTargetDataFromProviderTarget({
|
|
15634
15698
|
current: dataRef.current,
|
|
@@ -15703,8 +15767,6 @@ function useAgentGUINodeController({
|
|
|
15703
15767
|
provider: currentNextTargetData.provider,
|
|
15704
15768
|
agentTargetId: currentNextTargetData.agentTargetId,
|
|
15705
15769
|
lastActiveAgentSessionId: null,
|
|
15706
|
-
providerTargetId: currentNextTargetData.providerTargetId,
|
|
15707
|
-
providerTargetRef: currentNextTargetData.providerTargetRef,
|
|
15708
15770
|
composerOverrides: providerTargetChanged ? null : current.composerOverrides
|
|
15709
15771
|
};
|
|
15710
15772
|
dataRef.current = nextData;
|
|
@@ -15716,22 +15778,21 @@ function useAgentGUINodeController({
|
|
|
15716
15778
|
},
|
|
15717
15779
|
[
|
|
15718
15780
|
activation,
|
|
15719
|
-
|
|
15781
|
+
defaultAgentTargetId,
|
|
15720
15782
|
loadComposerOptionsForTarget,
|
|
15721
15783
|
normalizedExplicitProviderTargets,
|
|
15722
15784
|
normalizedProviderTargets,
|
|
15723
15785
|
persistActiveConversation,
|
|
15724
|
-
previewMode
|
|
15725
|
-
shouldUseStaticProviderTargets
|
|
15786
|
+
previewMode
|
|
15726
15787
|
]
|
|
15727
15788
|
);
|
|
15728
15789
|
useEffect4(() => {
|
|
15729
15790
|
if (previewMode || activeConversationId !== null || conversationFilter.kind !== "all" || homeComposerTargetOverride !== null || agentGUINodeDataHasComposerTarget(data) || !providerReadinessGates || !firstReadyHomeComposerProviderTarget) {
|
|
15730
15791
|
return;
|
|
15731
15792
|
}
|
|
15732
|
-
if (
|
|
15733
|
-
firstReadyHomeComposerProviderTarget
|
|
15734
|
-
effectiveSelectedProviderTarget
|
|
15793
|
+
if (agentGUIProviderTargetsEqual(
|
|
15794
|
+
firstReadyHomeComposerProviderTarget,
|
|
15795
|
+
effectiveSelectedProviderTarget
|
|
15735
15796
|
)) {
|
|
15736
15797
|
return;
|
|
15737
15798
|
}
|
|
@@ -15747,7 +15808,7 @@ function useAgentGUINodeController({
|
|
|
15747
15808
|
}
|
|
15748
15809
|
selectHomeComposerAgentTarget({
|
|
15749
15810
|
provider: firstReadyHomeComposerProviderTarget.provider,
|
|
15750
|
-
|
|
15811
|
+
agentTargetId: firstReadyHomeComposerProviderTarget.agentTargetId ?? firstReadyHomeComposerProviderTarget.targetId
|
|
15751
15812
|
});
|
|
15752
15813
|
}, [
|
|
15753
15814
|
activeConversationId,
|
|
@@ -15762,17 +15823,15 @@ function useAgentGUINodeController({
|
|
|
15762
15823
|
]);
|
|
15763
15824
|
const selectConversationFilterTarget = useCallback4(
|
|
15764
15825
|
(input) => {
|
|
15765
|
-
const nextTarget =
|
|
15766
|
-
|
|
15826
|
+
const nextTarget = resolveAgentGUIDirectorySelection({
|
|
15827
|
+
agentTargetId: input.agentTargetId,
|
|
15767
15828
|
provider: input.provider,
|
|
15768
|
-
|
|
15769
|
-
providerTargets: normalizedProviderTargets,
|
|
15770
|
-
useStaticCatalog: shouldUseStaticProviderTargets
|
|
15829
|
+
targets: normalizedProviderTargets
|
|
15771
15830
|
});
|
|
15772
15831
|
if (!nextTarget) {
|
|
15773
15832
|
reportAgentGUIConversationFilterTargetUnresolved({
|
|
15774
15833
|
provider: input.provider,
|
|
15775
|
-
|
|
15834
|
+
agentTargetId: input.agentTargetId ?? null,
|
|
15776
15835
|
providerTargetCount: normalizedProviderTargets.length,
|
|
15777
15836
|
reason: "unresolved",
|
|
15778
15837
|
runtime: agentActivityRuntime,
|
|
@@ -15815,11 +15874,10 @@ function useAgentGUINodeController({
|
|
|
15815
15874
|
},
|
|
15816
15875
|
[
|
|
15817
15876
|
agentActivityRuntime,
|
|
15818
|
-
|
|
15877
|
+
defaultAgentTargetId,
|
|
15819
15878
|
normalizedProviderTargets,
|
|
15820
15879
|
selectConversation,
|
|
15821
15880
|
selectHomeComposerAgentTarget,
|
|
15822
|
-
shouldUseStaticProviderTargets,
|
|
15823
15881
|
workspaceId
|
|
15824
15882
|
]
|
|
15825
15883
|
);
|
|
@@ -15838,7 +15896,7 @@ function useAgentGUINodeController({
|
|
|
15838
15896
|
}
|
|
15839
15897
|
selectHomeComposerAgentTarget({
|
|
15840
15898
|
provider: target.provider,
|
|
15841
|
-
|
|
15899
|
+
agentTargetId: target.agentTargetId ?? target.targetId
|
|
15842
15900
|
});
|
|
15843
15901
|
}, [
|
|
15844
15902
|
activeConversationId,
|
|
@@ -16011,8 +16069,6 @@ function useAgentGUINodeController({
|
|
|
16011
16069
|
providerTargets: normalizedProviderTargets,
|
|
16012
16070
|
handoffProviderTargets,
|
|
16013
16071
|
providerTargetsLoading,
|
|
16014
|
-
providerRailMode,
|
|
16015
|
-
comingSoonProviders: normalizedComingSoonProviders,
|
|
16016
16072
|
conversationFilter,
|
|
16017
16073
|
conversations: visibleConversations,
|
|
16018
16074
|
userProjects,
|
|
@@ -16094,9 +16150,7 @@ function useAgentGUINodeController({
|
|
|
16094
16150
|
data,
|
|
16095
16151
|
effectiveSelectedProviderTarget,
|
|
16096
16152
|
handoffProviderTargets,
|
|
16097
|
-
normalizedComingSoonProviders,
|
|
16098
16153
|
normalizedProviderTargets,
|
|
16099
|
-
providerRailMode,
|
|
16100
16154
|
providerReadinessGate,
|
|
16101
16155
|
providerTargetsLoading,
|
|
16102
16156
|
detailError,
|
|
@@ -17346,13 +17400,6 @@ var AgentGuiHeroCarouselScene = class _AgentGuiHeroCarouselScene {
|
|
|
17346
17400
|
|
|
17347
17401
|
// agent-gui/agentGuiNode/AgentGUIHeroAgentCarousel.tsx
|
|
17348
17402
|
import { jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
17349
|
-
function agentGUILaunchpadProviderTarget(providerTargets, provider) {
|
|
17350
|
-
const normalized = normalizeManagedAgentProvider(provider);
|
|
17351
|
-
const matches = providerTargets.filter(
|
|
17352
|
-
(target) => normalizeManagedAgentProvider(target.provider) === normalized
|
|
17353
|
-
);
|
|
17354
|
-
return matches.find((target) => target.disabled !== true) ?? matches[0] ?? null;
|
|
17355
|
-
}
|
|
17356
17403
|
var CAROUSEL_WHEEL_STEP_THRESHOLD = 42;
|
|
17357
17404
|
var CAROUSEL_WHEEL_STEP_COOLDOWN_MS = 110;
|
|
17358
17405
|
var CAROUSEL_DRAG_STEP_PX = 52;
|
|
@@ -17423,18 +17470,17 @@ function useAgentGUIHeroCarouselImages(icons, iconKey) {
|
|
|
17423
17470
|
}
|
|
17424
17471
|
var AgentGUIHeroAgentCarousel = memo2(
|
|
17425
17472
|
function AgentGUIHeroAgentCarousel2({
|
|
17426
|
-
|
|
17473
|
+
activeAgentTargetId,
|
|
17427
17474
|
icons,
|
|
17428
17475
|
providerTargets,
|
|
17429
17476
|
onProviderSelect,
|
|
17430
17477
|
providerSelectLabel
|
|
17431
17478
|
}) {
|
|
17432
|
-
const normalizedActiveProvider = activeProvider ? normalizeManagedAgentProvider(activeProvider) : null;
|
|
17433
17479
|
const activeIconIndex = useMemo4(
|
|
17434
|
-
() =>
|
|
17435
|
-
(icon) =>
|
|
17480
|
+
() => !activeAgentTargetId ? -1 : icons.findIndex(
|
|
17481
|
+
(icon) => icon.agentTargetId === activeAgentTargetId
|
|
17436
17482
|
),
|
|
17437
|
-
[
|
|
17483
|
+
[activeAgentTargetId, icons]
|
|
17438
17484
|
);
|
|
17439
17485
|
const [centerIndex, setCenterIndex] = useState7(
|
|
17440
17486
|
activeIconIndex >= 0 ? activeIconIndex : 0
|
|
@@ -17450,10 +17496,12 @@ var AgentGUIHeroAgentCarousel = memo2(
|
|
|
17450
17496
|
if (!icon || !interactive) {
|
|
17451
17497
|
return null;
|
|
17452
17498
|
}
|
|
17453
|
-
|
|
17454
|
-
|
|
17455
|
-
|
|
17456
|
-
|
|
17499
|
+
if (!icon.agentTargetId) {
|
|
17500
|
+
return null;
|
|
17501
|
+
}
|
|
17502
|
+
return providerTargets?.find(
|
|
17503
|
+
(target) => (target.agentTargetId ?? target.targetId) === icon.agentTargetId
|
|
17504
|
+
) ?? null;
|
|
17457
17505
|
},
|
|
17458
17506
|
[icons, interactive, providerTargets]
|
|
17459
17507
|
);
|
|
@@ -17465,7 +17513,7 @@ var AgentGUIHeroAgentCarousel = memo2(
|
|
|
17465
17513
|
}
|
|
17466
17514
|
onProviderSelect({
|
|
17467
17515
|
provider: target.provider,
|
|
17468
|
-
|
|
17516
|
+
agentTargetId: target.targetId
|
|
17469
17517
|
});
|
|
17470
17518
|
},
|
|
17471
17519
|
[onProviderSelect, targetForIndex]
|
|
@@ -17475,7 +17523,7 @@ var AgentGUIHeroAgentCarousel = memo2(
|
|
|
17475
17523
|
const stageRef = useRef5(null);
|
|
17476
17524
|
const canvasRef = useRef5(null);
|
|
17477
17525
|
const sceneRef = useRef5(null);
|
|
17478
|
-
const iconKey = icons.map((icon) => `${icon.provider}:${icon.iconUrl}`).join("|");
|
|
17526
|
+
const iconKey = icons.map((icon) => `${icon.agentTargetId ?? icon.provider}:${icon.iconUrl}`).join("|");
|
|
17479
17527
|
const carouselImages = useAgentGUIHeroCarouselImages(icons, iconKey);
|
|
17480
17528
|
useEffect6(() => {
|
|
17481
17529
|
const canvas = canvasRef.current;
|
|
@@ -17671,7 +17719,7 @@ var AgentGUIHeroAgentCarousel = memo2(
|
|
|
17671
17719
|
icons.map((icon, index) => {
|
|
17672
17720
|
const isCenter = index === centerIndex;
|
|
17673
17721
|
const target = targetForIndex(index);
|
|
17674
|
-
const key = `${icon.provider}:${icon.iconUrl}`;
|
|
17722
|
+
const key = `${icon.agentTargetId ?? icon.provider}:${icon.iconUrl}`;
|
|
17675
17723
|
if (target && onProviderSelect) {
|
|
17676
17724
|
const label = providerSelectLabel ? `${providerSelectLabel}: ${target.label}` : target.label;
|
|
17677
17725
|
return /* @__PURE__ */ jsx20(
|
|
@@ -17679,6 +17727,7 @@ var AgentGUIHeroAgentCarousel = memo2(
|
|
|
17679
17727
|
{
|
|
17680
17728
|
type: "button",
|
|
17681
17729
|
className: AgentGUINode_styles_default.emptyHeroCarouselItem,
|
|
17730
|
+
"data-agent-target-id": icon.agentTargetId,
|
|
17682
17731
|
"data-provider": icon.provider,
|
|
17683
17732
|
"data-provider-active": isCenter,
|
|
17684
17733
|
"aria-label": label,
|
|
@@ -19100,6 +19149,15 @@ function queuedPromptImageDataUrl(image) {
|
|
|
19100
19149
|
}
|
|
19101
19150
|
return data.startsWith("data:") ? data : `data:${mimeType};base64,${data}`;
|
|
19102
19151
|
}
|
|
19152
|
+
function queuedPromptImageHasSafeRemoteUrl(image) {
|
|
19153
|
+
const value = image.url?.trim() ?? "";
|
|
19154
|
+
try {
|
|
19155
|
+
const url = new URL(value);
|
|
19156
|
+
return url.protocol === "https:" && Boolean(url.hostname) && !url.username && !url.password;
|
|
19157
|
+
} catch {
|
|
19158
|
+
return false;
|
|
19159
|
+
}
|
|
19160
|
+
}
|
|
19103
19161
|
function queuedPromptImageKey(queuedPrompt, image, index) {
|
|
19104
19162
|
return [
|
|
19105
19163
|
queuedPrompt.id,
|
|
@@ -19119,7 +19177,7 @@ function useQueuedPromptImageSources(input) {
|
|
|
19119
19177
|
() => input.images.filter(({ image, key }) => {
|
|
19120
19178
|
const attachmentId = image.attachmentId?.trim() ?? "";
|
|
19121
19179
|
const path = image.path?.trim() ?? "";
|
|
19122
|
-
return !queuedPromptImageDataUrl(image) && !sources.has(key) && Boolean(attachmentId || path) && Boolean(workspaceId);
|
|
19180
|
+
return !queuedPromptImageDataUrl(image) && !queuedPromptImageHasSafeRemoteUrl(image) && !sources.has(key) && Boolean(attachmentId || path) && Boolean(workspaceId);
|
|
19123
19181
|
}),
|
|
19124
19182
|
[input.images, sources, workspaceId]
|
|
19125
19183
|
);
|
|
@@ -24541,9 +24599,9 @@ ${normalizedText}` : normalizedText;
|
|
|
24541
24599
|
() => providerSwitchTargets.filter((target) => target.disabled !== true),
|
|
24542
24600
|
[providerSwitchTargets]
|
|
24543
24601
|
);
|
|
24544
|
-
const
|
|
24602
|
+
const selectedAgentTargetId = selectedProviderTarget?.targetId ?? `local:${provider}`;
|
|
24545
24603
|
const selectedProviderSwitchTarget = providerSwitchTargets.find(
|
|
24546
|
-
(target) => target.targetId ===
|
|
24604
|
+
(target) => target.targetId === selectedAgentTargetId
|
|
24547
24605
|
) ?? providerSwitchTargets.find((target) => target.provider === provider) ?? selectedProviderTarget;
|
|
24548
24606
|
const providerMenuTargets = selectedProviderSwitchTarget && !enabledProviderSwitchTargets.some(
|
|
24549
24607
|
(target) => target.targetId === selectedProviderSwitchTarget.targetId
|
|
@@ -24558,9 +24616,9 @@ ${normalizedText}` : normalizedText;
|
|
|
24558
24616
|
if (target.targetId === selectedProviderSwitchTarget.targetId) {
|
|
24559
24617
|
return false;
|
|
24560
24618
|
}
|
|
24561
|
-
const
|
|
24619
|
+
const selectedAgentTargetId2 = selectedProviderSwitchTarget.agentTargetId ?? selectedProviderSwitchTarget.targetId;
|
|
24562
24620
|
const targetAgentTargetId = target.agentTargetId ?? target.targetId;
|
|
24563
|
-
return targetAgentTargetId !==
|
|
24621
|
+
return targetAgentTargetId !== selectedAgentTargetId2;
|
|
24564
24622
|
}) : enabledHandoffProviderTargets;
|
|
24565
24623
|
const selectedProviderLabel = selectedProviderSwitchTarget?.label ?? selectedProviderTarget?.label ?? provider;
|
|
24566
24624
|
const effectiveHandoffLabel = handoffLabel || labels.handoffConversation;
|
|
@@ -25760,7 +25818,7 @@ ${normalizedText}` : normalizedText;
|
|
|
25760
25818
|
}
|
|
25761
25819
|
onProviderSelect?.({
|
|
25762
25820
|
provider: target.provider,
|
|
25763
|
-
|
|
25821
|
+
agentTargetId: target.targetId
|
|
25764
25822
|
});
|
|
25765
25823
|
},
|
|
25766
25824
|
children: [
|
|
@@ -26673,13 +26731,12 @@ function resolveAgentGUIHeroIconUrl(provider) {
|
|
|
26673
26731
|
const normalizedProvider = normalizeManagedAgentProvider(provider);
|
|
26674
26732
|
return MANAGED_AGENT_ICON_URLS[normalizedProvider] ?? MANAGED_AGENT_ICON_FALLBACK_URL;
|
|
26675
26733
|
}
|
|
26676
|
-
var HERO_USES_PROVIDER_RAIL_ICON = /* @__PURE__ */ new Set(["cursor", "opencode"]);
|
|
26677
26734
|
function agentGUIProviderIconPresentation(provider, iconUrl) {
|
|
26678
26735
|
const normalizedProvider = normalizeManagedAgentProvider(provider);
|
|
26679
26736
|
const providerRailIconUrl = MANAGED_AGENT_PROVIDER_RAIL_ICON_URLS[normalizedProvider] ?? null;
|
|
26680
26737
|
return {
|
|
26681
26738
|
provider: normalizedProvider,
|
|
26682
|
-
iconUrl: (
|
|
26739
|
+
iconUrl: iconUrl?.trim() || providerRailIconUrl || resolveAgentGUIHeroIconUrl(normalizedProvider)
|
|
26683
26740
|
};
|
|
26684
26741
|
}
|
|
26685
26742
|
function agentGUIProviderRailIconPresentation(provider, iconUrl) {
|
|
@@ -26687,7 +26744,7 @@ function agentGUIProviderRailIconPresentation(provider, iconUrl) {
|
|
|
26687
26744
|
const providerRailIconUrl = MANAGED_AGENT_PROVIDER_RAIL_ICON_URLS[normalizedProvider] ?? null;
|
|
26688
26745
|
return {
|
|
26689
26746
|
provider: normalizedProvider,
|
|
26690
|
-
iconUrl:
|
|
26747
|
+
iconUrl: iconUrl?.trim() || providerRailIconUrl || resolveAgentGUIHeroIconUrl(normalizedProvider)
|
|
26691
26748
|
};
|
|
26692
26749
|
}
|
|
26693
26750
|
function shouldEmphasizeEmptyHeroProvider(label) {
|
|
@@ -27487,10 +27544,8 @@ function AgentGUINodeView({
|
|
|
27487
27544
|
selectedProviderTarget: viewModel.selectedProviderTarget,
|
|
27488
27545
|
providerTargets: viewModel.providerTargets,
|
|
27489
27546
|
providerTargetsLoading: viewModel.providerTargetsLoading,
|
|
27490
|
-
providerRailMode: viewModel.providerRailMode,
|
|
27491
27547
|
renderProviderRailEmpty,
|
|
27492
27548
|
providerRailAllPresentation,
|
|
27493
|
-
comingSoonProviders: viewModel.comingSoonProviders,
|
|
27494
27549
|
onSelectConversationFilterTarget: actions.selectConversationFilterTarget,
|
|
27495
27550
|
onUpdateConversationFilter: actions.updateConversationFilter,
|
|
27496
27551
|
onRequestComposerFocus: requestComposerFocus
|
|
@@ -27631,6 +27686,7 @@ function AgentGUINodeView({
|
|
|
27631
27686
|
contextMentionProviders,
|
|
27632
27687
|
workspaceAppIcons: effectiveWorkspaceAppIcons,
|
|
27633
27688
|
workspaceUserProjectI18n,
|
|
27689
|
+
renderAgentsEmpty: renderProviderRailEmpty,
|
|
27634
27690
|
renderProviderUnavailableState,
|
|
27635
27691
|
renderProviderReadinessGateState,
|
|
27636
27692
|
previewMode
|
|
@@ -27886,6 +27942,7 @@ var AgentGUIDetailPane = memo3(function AgentGUIDetailPane2({
|
|
|
27886
27942
|
onRequestComposerFocus,
|
|
27887
27943
|
contextMentionProviders,
|
|
27888
27944
|
workspaceAppIcons = EMPTY_WORKSPACE_APP_ICONS3,
|
|
27945
|
+
renderAgentsEmpty,
|
|
27889
27946
|
renderProviderUnavailableState,
|
|
27890
27947
|
renderProviderReadinessGateState
|
|
27891
27948
|
}) {
|
|
@@ -27911,8 +27968,9 @@ var AgentGUIDetailPane = memo3(function AgentGUIDetailPane2({
|
|
|
27911
27968
|
avoidGroupingEdits: viewModel.avoidGroupingEdits
|
|
27912
27969
|
});
|
|
27913
27970
|
const hasActiveConversation = viewModel.activeConversationId !== null;
|
|
27914
|
-
const
|
|
27915
|
-
const
|
|
27971
|
+
const agentsLoadedEmpty = !viewModel.providerTargetsLoading && viewModel.providerTargets.length === 0;
|
|
27972
|
+
const selectedProviderTargetComingSoon = viewModel.selectedProviderTarget?.disabled === true && (viewModel.providerReadinessGate === null || viewModel.providerReadinessGate?.status === "coming_soon");
|
|
27973
|
+
const emptyProviderReadinessGate = !hasActiveConversation ? viewModel.providerReadinessGate ?? (selectedProviderTargetComingSoon ? { status: "coming_soon" } : null) : null;
|
|
27916
27974
|
const activePrompt = viewModel.pendingInteractivePrompt ?? viewModel.pendingApproval;
|
|
27917
27975
|
const activePromptRequestId = activePrompt?.requestId ?? null;
|
|
27918
27976
|
const sessionChrome = useMemo11(
|
|
@@ -28653,11 +28711,36 @@ var AgentGUIDetailPane = memo3(function AgentGUIDetailPane2({
|
|
|
28653
28711
|
[bottomDockComposerProps]
|
|
28654
28712
|
);
|
|
28655
28713
|
const emptyHeroProvider = viewModel.selectedProviderTarget?.provider ?? viewModel.data.provider;
|
|
28656
|
-
const
|
|
28657
|
-
const
|
|
28714
|
+
const emptyHeroRuntimeProviderLabel = labels.emptyProviderForProvider?.(emptyHeroProvider) ?? labels.emptyProvider ?? "";
|
|
28715
|
+
const emptyHeroProviderLabel = viewModel.selectedProviderTarget?.label ?? emptyHeroRuntimeProviderLabel;
|
|
28716
|
+
const emptyHeroBaseLabel = labels.emptyForProvider?.(emptyHeroProvider) ?? labels.empty;
|
|
28717
|
+
const emptyHeroLabel = emptyHeroRuntimeProviderLabel ? emptyHeroBaseLabel.replace(
|
|
28718
|
+
emptyHeroRuntimeProviderLabel,
|
|
28719
|
+
emptyHeroProviderLabel
|
|
28720
|
+
) : emptyHeroBaseLabel;
|
|
28658
28721
|
const emptyHeroIconPresentations = useMemo11(
|
|
28659
|
-
() => viewModel.conversationFilter.kind === "all" ?
|
|
28660
|
-
|
|
28722
|
+
() => viewModel.conversationFilter.kind === "all" ? viewModel.providerTargets.map((target) => ({
|
|
28723
|
+
agentTargetId: target.agentTargetId ?? target.targetId,
|
|
28724
|
+
provider: target.provider,
|
|
28725
|
+
iconUrl: agentGUIProviderRailIconPresentation(
|
|
28726
|
+
target.provider,
|
|
28727
|
+
target.iconUrl
|
|
28728
|
+
).iconUrl
|
|
28729
|
+
})) : [
|
|
28730
|
+
{
|
|
28731
|
+
...agentGUIProviderIconPresentation(
|
|
28732
|
+
emptyHeroProvider,
|
|
28733
|
+
viewModel.selectedProviderTarget?.iconUrl
|
|
28734
|
+
),
|
|
28735
|
+
agentTargetId: viewModel.selectedProviderTarget?.agentTargetId ?? viewModel.selectedProviderTarget?.targetId
|
|
28736
|
+
}
|
|
28737
|
+
],
|
|
28738
|
+
[
|
|
28739
|
+
emptyHeroProvider,
|
|
28740
|
+
viewModel.conversationFilter.kind,
|
|
28741
|
+
viewModel.providerTargets,
|
|
28742
|
+
viewModel.selectedProviderTarget
|
|
28743
|
+
]
|
|
28661
28744
|
);
|
|
28662
28745
|
const disabledProviderTarget = selectedProviderTargetComingSoon ? viewModel.selectedProviderTarget ?? null : null;
|
|
28663
28746
|
const shouldRenderProviderUnavailableState = !hasActiveConversation && disabledProviderTarget !== null && renderProviderUnavailableState !== void 0;
|
|
@@ -29056,7 +29139,14 @@ var AgentGUIDetailPane = memo3(function AgentGUIDetailPane2({
|
|
|
29056
29139
|
viewportTestId: "agent-gui-timeline",
|
|
29057
29140
|
viewportClassName: `${AgentGUINode_styles_default.timeline} ${hasActiveConversation ? AgentGUINode_styles_default.timelineWithComposer : AgentGUINode_styles_default.timelineCentered} ${!isTimelineScrolledToTop ? AgentGUINode_styles_default.timelineScrolledFromTop : ""} ${showUnavailableChatEmpty ? AgentGUINode_styles_default.timelineUnavailableChatEmpty : ""}`.trim(),
|
|
29058
29141
|
viewportContentStyle: AGENT_GUI_TIMELINE_SCROLL_AREA_CONTENT_STYLE,
|
|
29059
|
-
children: !hasActiveConversation ?
|
|
29142
|
+
children: !hasActiveConversation ? agentsLoadedEmpty ? renderAgentsEmpty ? /* @__PURE__ */ jsx35(Fragment9, { children: renderAgentsEmpty() }) : /* @__PURE__ */ jsx35(
|
|
29143
|
+
"div",
|
|
29144
|
+
{
|
|
29145
|
+
className: AgentGUINode_styles_default.emptyHero,
|
|
29146
|
+
"data-testid": "agent-gui-agents-empty",
|
|
29147
|
+
children: /* @__PURE__ */ jsx35("div", { className: AgentGUINode_styles_default.emptyHeroBody, children: /* @__PURE__ */ jsx35("h2", { className: AgentGUINode_styles_default.emptyHeroTitle, children: labels.agentsEmpty }) })
|
|
29148
|
+
}
|
|
29149
|
+
) : shouldRenderProviderUnavailableState && disabledProviderTarget ? /* @__PURE__ */ jsx35(Fragment9, { children: renderProviderUnavailableState?.({
|
|
29060
29150
|
provider: disabledProviderTarget.provider,
|
|
29061
29151
|
providerLabel: labels.emptyProviderForProvider?.(
|
|
29062
29152
|
disabledProviderTarget.provider
|
|
@@ -29280,7 +29370,7 @@ var AgentGUIEmptyHeroPane = memo3(function AgentGUIEmptyHeroPane2({
|
|
|
29280
29370
|
/* @__PURE__ */ jsx35("div", { className: AgentGUINode_styles_default.emptyHeroIconSlot, children: heroIconPresentations.length > 1 ? /* @__PURE__ */ jsx35(
|
|
29281
29371
|
AgentGUIHeroAgentCarousel,
|
|
29282
29372
|
{
|
|
29283
|
-
|
|
29373
|
+
activeAgentTargetId: selectedProviderTarget?.agentTargetId ?? selectedProviderTarget?.targetId,
|
|
29284
29374
|
icons: heroIconPresentations,
|
|
29285
29375
|
providerTargets,
|
|
29286
29376
|
onProviderSelect,
|
|
@@ -29347,8 +29437,15 @@ var AgentGUIProviderReadinessGatePane = memo3(
|
|
|
29347
29437
|
"use memo";
|
|
29348
29438
|
const heroIconUrl = resolveAgentGUIHeroIconUrl(provider);
|
|
29349
29439
|
const launchpadIconPresentations = useMemo11(
|
|
29350
|
-
() =>
|
|
29351
|
-
|
|
29440
|
+
() => providerTargets.map((target) => ({
|
|
29441
|
+
agentTargetId: target.agentTargetId ?? target.targetId,
|
|
29442
|
+
provider: target.provider,
|
|
29443
|
+
iconUrl: agentGUIProviderRailIconPresentation(
|
|
29444
|
+
target.provider,
|
|
29445
|
+
target.iconUrl
|
|
29446
|
+
).iconUrl
|
|
29447
|
+
})),
|
|
29448
|
+
[providerTargets]
|
|
29352
29449
|
);
|
|
29353
29450
|
const pendingAction = gate.pendingAction ?? null;
|
|
29354
29451
|
const isPending = pendingAction !== null;
|
|
@@ -29369,7 +29466,7 @@ var AgentGUIProviderReadinessGatePane = memo3(
|
|
|
29369
29466
|
showAllProviders ? /* @__PURE__ */ jsx35(
|
|
29370
29467
|
AgentGUIHeroAgentCarousel,
|
|
29371
29468
|
{
|
|
29372
|
-
|
|
29469
|
+
activeAgentTargetId: selectedProviderTarget?.agentTargetId ?? selectedProviderTarget?.targetId,
|
|
29373
29470
|
icons: launchpadIconPresentations,
|
|
29374
29471
|
providerTargets,
|
|
29375
29472
|
onProviderSelect,
|
|
@@ -29539,7 +29636,7 @@ function EmptyHeroTitle({
|
|
|
29539
29636
|
return /* @__PURE__ */ jsx35(Fragment9, { children: label });
|
|
29540
29637
|
}
|
|
29541
29638
|
const providerEnd = providerStart + providerLabel.length;
|
|
29542
|
-
const
|
|
29639
|
+
const selectedAgentTargetId = selectedProviderTarget?.targetId ?? `local:${selectedProviderTarget?.provider ?? ""}`;
|
|
29543
29640
|
const canSwitchProvider = providerTargets.length > 1 && selectedProviderTarget && onProviderSelect;
|
|
29544
29641
|
const providerName = label.slice(providerStart, providerEnd);
|
|
29545
29642
|
return /* @__PURE__ */ jsxs22(Fragment9, { children: [
|
|
@@ -29547,7 +29644,7 @@ function EmptyHeroTitle({
|
|
|
29547
29644
|
canSwitchProvider ? /* @__PURE__ */ jsxs22(
|
|
29548
29645
|
Select3,
|
|
29549
29646
|
{
|
|
29550
|
-
value:
|
|
29647
|
+
value: selectedAgentTargetId,
|
|
29551
29648
|
onValueChange: (nextTargetId) => {
|
|
29552
29649
|
const target = providerTargets.find(
|
|
29553
29650
|
(candidate) => candidate.targetId === nextTargetId
|
|
@@ -29557,7 +29654,7 @@ function EmptyHeroTitle({
|
|
|
29557
29654
|
}
|
|
29558
29655
|
onProviderSelect({
|
|
29559
29656
|
provider: target.provider,
|
|
29560
|
-
|
|
29657
|
+
agentTargetId: target.targetId
|
|
29561
29658
|
});
|
|
29562
29659
|
},
|
|
29563
29660
|
children: [
|
|
@@ -30154,43 +30251,6 @@ function conversationSyncStatesRenderEqual(left, right) {
|
|
|
30154
30251
|
function conversationProjectsRenderEqual2(left, right) {
|
|
30155
30252
|
return left === right || (!left || !right ? !left && !right : left.id === right.id && left.path === right.path && left.label === right.label && left.sectionKey === right.sectionKey && left.createdAtUnixMs === right.createdAtUnixMs && left.updatedAtUnixMs === right.updatedAtUnixMs && left.lastUsedAtUnixMs === right.lastUsedAtUnixMs);
|
|
30156
30253
|
}
|
|
30157
|
-
var agentGUIProviderRailOrder = [
|
|
30158
|
-
"codex",
|
|
30159
|
-
"claude-code",
|
|
30160
|
-
"cursor",
|
|
30161
|
-
"tutti-agent",
|
|
30162
|
-
"nexight",
|
|
30163
|
-
"opencode",
|
|
30164
|
-
"hermes",
|
|
30165
|
-
"openclaw"
|
|
30166
|
-
];
|
|
30167
|
-
var agentGUIProviderRailDefaultProviders = [
|
|
30168
|
-
"codex",
|
|
30169
|
-
"claude-code",
|
|
30170
|
-
"cursor",
|
|
30171
|
-
"hermes",
|
|
30172
|
-
"openclaw"
|
|
30173
|
-
];
|
|
30174
|
-
var agentGUIProviderRailDisabledProviders = /* @__PURE__ */ new Set([
|
|
30175
|
-
"nexight",
|
|
30176
|
-
"hermes",
|
|
30177
|
-
"openclaw"
|
|
30178
|
-
]);
|
|
30179
|
-
function agentGUIProviderRailOrderIndex(provider) {
|
|
30180
|
-
const index = agentGUIProviderRailOrder.indexOf(provider);
|
|
30181
|
-
return index < 0 ? agentGUIProviderRailOrder.length : index;
|
|
30182
|
-
}
|
|
30183
|
-
function agentGUILaunchpadIconPresentations() {
|
|
30184
|
-
return [
|
|
30185
|
-
agentGUIProviderRailIconPresentation("codex"),
|
|
30186
|
-
agentGUIProviderRailIconPresentation("claude-code"),
|
|
30187
|
-
agentGUIProviderRailIconPresentation("cursor"),
|
|
30188
|
-
agentGUIProviderRailIconPresentation("tutti"),
|
|
30189
|
-
agentGUIProviderRailIconPresentation("opencode"),
|
|
30190
|
-
agentGUIProviderRailIconPresentation("hermes"),
|
|
30191
|
-
agentGUIProviderRailIconPresentation("openclaw")
|
|
30192
|
-
];
|
|
30193
|
-
}
|
|
30194
30254
|
function agentGUIConversationProviderIconUrl(provider) {
|
|
30195
30255
|
return resolveAgentGuiSessionProviderFlatIconUrl(provider);
|
|
30196
30256
|
}
|
|
@@ -30219,37 +30279,8 @@ function agentGUIProviderRailAriaLabel(label, badgeLabel) {
|
|
|
30219
30279
|
function agentGUIProviderTargetMatchesConversationFilter(target, filter) {
|
|
30220
30280
|
return filter.kind === "agentTarget" && (target.agentTargetId?.trim() ?? "") === filter.agentTargetId;
|
|
30221
30281
|
}
|
|
30222
|
-
function agentGUIProviderRailTargets(providerTargets, providerTargetsLoading
|
|
30223
|
-
|
|
30224
|
-
return [];
|
|
30225
|
-
}
|
|
30226
|
-
if (providerRailMode === "exact") {
|
|
30227
|
-
return providerTargets;
|
|
30228
|
-
}
|
|
30229
|
-
const comingSoon = new Set(comingSoonProviders);
|
|
30230
|
-
const source = providerTargets.length > 0 && !agentGUIProviderRailTargetsAreFullLocalFallback(providerTargets) ? providerTargets : [];
|
|
30231
|
-
const seenProviders = new Set(source.map((target) => target.provider));
|
|
30232
|
-
const missingDefaultProviders = agentGUIProviderRailDefaultProviders.filter(
|
|
30233
|
-
(provider) => !seenProviders.has(provider)
|
|
30234
|
-
);
|
|
30235
|
-
if (source.length > 0 && missingDefaultProviders.length === 0) {
|
|
30236
|
-
return source;
|
|
30237
|
-
}
|
|
30238
|
-
return [
|
|
30239
|
-
...source,
|
|
30240
|
-
...missingDefaultProviders.map(
|
|
30241
|
-
(provider) => agentGUIProviderRailDisabledProviders.has(provider) || comingSoon.has(provider) ? createDisabledPlaceholderAgentGUIProviderTarget(provider) : createLocalAgentGUIProviderTarget(provider)
|
|
30242
|
-
)
|
|
30243
|
-
];
|
|
30244
|
-
}
|
|
30245
|
-
function agentGUIProviderRailTargetsAreFullLocalFallback(providerTargets) {
|
|
30246
|
-
if (providerTargets.length !== agentGUIProviderRailOrder.length) {
|
|
30247
|
-
return false;
|
|
30248
|
-
}
|
|
30249
|
-
const fallbackProviders = new Set(agentGUIProviderRailOrder);
|
|
30250
|
-
return providerTargets.every(
|
|
30251
|
-
(target) => fallbackProviders.has(target.provider) && target.ref.kind === "local" && target.ref.provider === target.provider && target.targetId === `local:${target.provider}`
|
|
30252
|
-
);
|
|
30282
|
+
function agentGUIProviderRailTargets(providerTargets, providerTargetsLoading) {
|
|
30283
|
+
return providerTargetsLoading ? [] : providerTargets;
|
|
30253
30284
|
}
|
|
30254
30285
|
var AGENT_GUI_PROVIDER_RAIL_DRAG_HYSTERESIS_PX = 8;
|
|
30255
30286
|
var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
@@ -30260,10 +30291,8 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
30260
30291
|
selectedProviderTarget,
|
|
30261
30292
|
providerTargets,
|
|
30262
30293
|
providerTargetsLoading,
|
|
30263
|
-
providerRailMode,
|
|
30264
30294
|
renderProviderRailEmpty,
|
|
30265
30295
|
providerRailAllPresentation,
|
|
30266
|
-
comingSoonProviders,
|
|
30267
30296
|
onRequestComposerFocus,
|
|
30268
30297
|
onSelectConversationFilterTarget,
|
|
30269
30298
|
onUpdateConversationFilter
|
|
@@ -30305,51 +30334,16 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
30305
30334
|
[providerRailOrderStorageKey]
|
|
30306
30335
|
);
|
|
30307
30336
|
const railProviderTargets = useMemo11(
|
|
30308
|
-
() => agentGUIProviderRailTargets(
|
|
30309
|
-
|
|
30310
|
-
providerTargetsLoading,
|
|
30311
|
-
comingSoonProviders,
|
|
30312
|
-
providerRailMode
|
|
30313
|
-
),
|
|
30314
|
-
[
|
|
30315
|
-
comingSoonProviders,
|
|
30316
|
-
providerRailMode,
|
|
30317
|
-
providerTargets,
|
|
30318
|
-
providerTargetsLoading
|
|
30319
|
-
]
|
|
30337
|
+
() => agentGUIProviderRailTargets(providerTargets, providerTargetsLoading),
|
|
30338
|
+
[providerTargets, providerTargetsLoading]
|
|
30320
30339
|
);
|
|
30321
30340
|
const providerTiles = useMemo11(() => {
|
|
30322
|
-
|
|
30323
|
-
|
|
30324
|
-
|
|
30325
|
-
targets.forEach((target, index) => {
|
|
30326
|
-
originalIndexByTarget.set(
|
|
30327
|
-
`${target.provider}\0${target.targetId}`,
|
|
30328
|
-
index
|
|
30329
|
-
);
|
|
30330
|
-
});
|
|
30331
|
-
return targets.sort((left, right) => {
|
|
30332
|
-
const orderDelta = agentGUIProviderRailOrderIndex(left.provider) - agentGUIProviderRailOrderIndex(right.provider);
|
|
30333
|
-
if (orderDelta !== 0) {
|
|
30334
|
-
return orderDelta;
|
|
30335
|
-
}
|
|
30336
|
-
return (originalIndexByTarget.get(
|
|
30337
|
-
`${left.provider}\0${left.targetId}`
|
|
30338
|
-
) ?? 0) - (originalIndexByTarget.get(
|
|
30339
|
-
`${right.provider}\0${right.targetId}`
|
|
30340
|
-
) ?? 0);
|
|
30341
|
-
});
|
|
30342
|
-
})();
|
|
30343
|
-
return applyAgentGUIProviderRailOrder(orderedTargets, providerRailOrder);
|
|
30344
|
-
}, [providerRailMode, providerRailOrder, railProviderTargets]);
|
|
30345
|
-
const visibleProviderTiles = useMemo11(() => {
|
|
30346
|
-
if (!providerTiles.some((target) => target.provider === "tutti-agent")) {
|
|
30347
|
-
return providerTiles;
|
|
30348
|
-
}
|
|
30349
|
-
return providerTiles.filter(
|
|
30350
|
-
(target) => target.provider !== "nexight" || target.disabled !== true
|
|
30341
|
+
return applyAgentGUIProviderRailOrder(
|
|
30342
|
+
railProviderTargets,
|
|
30343
|
+
providerRailOrder
|
|
30351
30344
|
);
|
|
30352
|
-
}, [
|
|
30345
|
+
}, [providerRailOrder, railProviderTargets]);
|
|
30346
|
+
const visibleProviderTiles = providerTiles;
|
|
30353
30347
|
const selectedProviderTargetIsPlaceholder = selectedProviderTarget?.disabled === true;
|
|
30354
30348
|
const allTileSelected = conversationFilter.kind === "all" && !selectedProviderTargetIsPlaceholder;
|
|
30355
30349
|
const selectAllProviders = useCallback11(() => {
|
|
@@ -30359,7 +30353,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
30359
30353
|
if (fallbackTarget) {
|
|
30360
30354
|
onSelectConversationFilterTarget({
|
|
30361
30355
|
provider: fallbackTarget.provider,
|
|
30362
|
-
|
|
30356
|
+
agentTargetId: fallbackTarget.targetId
|
|
30363
30357
|
});
|
|
30364
30358
|
}
|
|
30365
30359
|
}
|
|
@@ -30375,7 +30369,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
30375
30369
|
(target) => {
|
|
30376
30370
|
onSelectConversationFilterTarget({
|
|
30377
30371
|
provider: target.provider,
|
|
30378
|
-
|
|
30372
|
+
agentTargetId: target.targetId
|
|
30379
30373
|
});
|
|
30380
30374
|
onRequestComposerFocus();
|
|
30381
30375
|
},
|
|
@@ -30452,7 +30446,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
30452
30446
|
"[data-provider-tile='true']"
|
|
30453
30447
|
)
|
|
30454
30448
|
).map((element) => {
|
|
30455
|
-
const targetId = element.dataset.
|
|
30449
|
+
const targetId = element.dataset.agentTargetId?.trim() ?? "";
|
|
30456
30450
|
if (!targetId || targetId === activeDragState.draggedTargetId) {
|
|
30457
30451
|
return null;
|
|
30458
30452
|
}
|
|
@@ -30518,7 +30512,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
30518
30512
|
)
|
|
30519
30513
|
);
|
|
30520
30514
|
const dropTargets = tileElements.map((element) => {
|
|
30521
|
-
const targetId = element.dataset.
|
|
30515
|
+
const targetId = element.dataset.agentTargetId?.trim() ?? "";
|
|
30522
30516
|
if (!targetId || targetId === activeDragState.draggedTargetId) {
|
|
30523
30517
|
return null;
|
|
30524
30518
|
}
|
|
@@ -30548,7 +30542,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
30548
30542
|
},
|
|
30549
30543
|
[dragState, previewMode, providerTargetsLoading, setProviderRailDragState]
|
|
30550
30544
|
);
|
|
30551
|
-
if (
|
|
30545
|
+
if (!providerTargetsLoading && visibleProviderTiles.length === 0 && renderProviderRailEmpty) {
|
|
30552
30546
|
return /* @__PURE__ */ jsx35(
|
|
30553
30547
|
"div",
|
|
30554
30548
|
{
|
|
@@ -30556,8 +30550,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
30556
30550
|
role: "tablist",
|
|
30557
30551
|
"aria-label": labels.providerSwitchLabel,
|
|
30558
30552
|
"aria-busy": providerTargetsLoading,
|
|
30559
|
-
"data-empty": "true"
|
|
30560
|
-
children: renderProviderRailEmpty()
|
|
30553
|
+
"data-empty": "true"
|
|
30561
30554
|
}
|
|
30562
30555
|
);
|
|
30563
30556
|
}
|
|
@@ -30571,29 +30564,31 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
30571
30564
|
onDragOver: handleProviderRailContainerDragOver,
|
|
30572
30565
|
onDrop: commitProviderRailDragDrop,
|
|
30573
30566
|
children: [
|
|
30574
|
-
/* @__PURE__ */ jsxs22(
|
|
30575
|
-
|
|
30576
|
-
|
|
30577
|
-
|
|
30578
|
-
|
|
30579
|
-
|
|
30580
|
-
|
|
30581
|
-
|
|
30582
|
-
|
|
30583
|
-
|
|
30584
|
-
|
|
30585
|
-
|
|
30586
|
-
|
|
30587
|
-
|
|
30588
|
-
|
|
30589
|
-
|
|
30590
|
-
|
|
30591
|
-
|
|
30592
|
-
|
|
30593
|
-
|
|
30594
|
-
|
|
30595
|
-
|
|
30596
|
-
|
|
30567
|
+
visibleProviderTiles.length > 1 ? /* @__PURE__ */ jsxs22(Fragment9, { children: [
|
|
30568
|
+
/* @__PURE__ */ jsxs22(
|
|
30569
|
+
"button",
|
|
30570
|
+
{
|
|
30571
|
+
type: "button",
|
|
30572
|
+
role: "tab",
|
|
30573
|
+
"aria-label": labels.conversationFilterAll,
|
|
30574
|
+
"aria-selected": allTileSelected,
|
|
30575
|
+
className: AgentGUINode_styles_default.providerRailTile,
|
|
30576
|
+
"data-selected": allTileSelected ? "true" : "false",
|
|
30577
|
+
disabled: previewMode,
|
|
30578
|
+
onClick: selectAllProviders,
|
|
30579
|
+
children: [
|
|
30580
|
+
/* @__PURE__ */ jsx35(
|
|
30581
|
+
AgentGUIUnifiedProviderIcon,
|
|
30582
|
+
{
|
|
30583
|
+
presentation: providerRailAllPresentation
|
|
30584
|
+
}
|
|
30585
|
+
),
|
|
30586
|
+
/* @__PURE__ */ jsx35("span", { className: AgentGUINode_styles_default.providerRailTileLabel, children: labels.conversationFilterAll })
|
|
30587
|
+
]
|
|
30588
|
+
}
|
|
30589
|
+
),
|
|
30590
|
+
/* @__PURE__ */ jsx35("span", { "aria-hidden": "true", className: AgentGUINode_styles_default.providerRailSeparator })
|
|
30591
|
+
] }) : null,
|
|
30597
30592
|
providerTargetsLoading ? [0, 1, 2].map((index) => /* @__PURE__ */ jsx35(
|
|
30598
30593
|
"button",
|
|
30599
30594
|
{
|
|
@@ -30615,7 +30610,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
30615
30610
|
`provider-target-loading-${index}`
|
|
30616
30611
|
)) : null,
|
|
30617
30612
|
visibleProviderTiles.map((target) => {
|
|
30618
|
-
const providerSelected = target.disabled === true ? selectedProviderTarget?.provider === target.provider && selectedProviderTarget?.targetId === target.targetId : agentGUIProviderTargetMatchesConversationFilter(
|
|
30613
|
+
const providerSelected = visibleProviderTiles.length === 1 ? true : target.disabled === true ? selectedProviderTarget?.provider === target.provider && selectedProviderTarget?.targetId === target.targetId : agentGUIProviderTargetMatchesConversationFilter(
|
|
30619
30614
|
target,
|
|
30620
30615
|
conversationFilter
|
|
30621
30616
|
);
|
|
@@ -30640,7 +30635,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
30640
30635
|
"data-drag-over": dragState?.overTargetId === target.targetId ? dragState.position : void 0,
|
|
30641
30636
|
"data-dragging": dragState?.draggedTargetId === target.targetId ? "true" : void 0,
|
|
30642
30637
|
"data-provider-tile": "true",
|
|
30643
|
-
"data-
|
|
30638
|
+
"data-agent-target-id": target.targetId,
|
|
30644
30639
|
"data-selected": providerSelected ? "true" : "false",
|
|
30645
30640
|
disabled: previewMode,
|
|
30646
30641
|
draggable: !previewMode && !providerTargetsLoading,
|
|
@@ -33391,10 +33386,7 @@ function resolveAgentGUIRailStatusProvider(input) {
|
|
|
33391
33386
|
return target ? target.provider : null;
|
|
33392
33387
|
}
|
|
33393
33388
|
function agentGuiStateEquals(left, right) {
|
|
33394
|
-
return left === right || left.provider === right.provider && (left.agentTargetId ?? null) === (right.agentTargetId ?? null) && (left.
|
|
33395
|
-
left.providerTargetRef,
|
|
33396
|
-
right.providerTargetRef
|
|
33397
|
-
) && left.lastActiveAgentSessionId === right.lastActiveAgentSessionId && (left.lastActiveConversationTitle ?? null) === (right.lastActiveConversationTitle ?? null) && left.conversationRailWidthPx === right.conversationRailWidthPx && left.conversationRailCollapsed === right.conversationRailCollapsed && (left.composerOverrides?.model ?? null) === (right.composerOverrides?.model ?? null) && (left.composerOverrides?.reasoningEffort ?? null) === (right.composerOverrides?.reasoningEffort ?? null) && (left.composerOverrides?.planMode ?? null) === (right.composerOverrides?.planMode ?? null) && (left.composerOverrides?.permissionModeId ?? null) === (right.composerOverrides?.permissionModeId ?? null) && composerOverridesByProviderEqual(
|
|
33389
|
+
return left === right || left.provider === right.provider && (left.agentTargetId ?? null) === (right.agentTargetId ?? null) && left.lastActiveAgentSessionId === right.lastActiveAgentSessionId && (left.lastActiveConversationTitle ?? null) === (right.lastActiveConversationTitle ?? null) && left.conversationRailWidthPx === right.conversationRailWidthPx && left.conversationRailCollapsed === right.conversationRailCollapsed && (left.composerOverrides?.model ?? null) === (right.composerOverrides?.model ?? null) && (left.composerOverrides?.reasoningEffort ?? null) === (right.composerOverrides?.reasoningEffort ?? null) && (left.composerOverrides?.planMode ?? null) === (right.composerOverrides?.planMode ?? null) && (left.composerOverrides?.permissionModeId ?? null) === (right.composerOverrides?.permissionModeId ?? null) && composerOverridesByProviderEqual(
|
|
33398
33390
|
left.composerOverridesByProvider,
|
|
33399
33391
|
right.composerOverridesByProvider
|
|
33400
33392
|
) && composerOverridesByAgentTargetIdEqual(
|
|
@@ -33432,7 +33424,7 @@ function composerOverridesByAgentTargetIdEqual(left, right) {
|
|
|
33432
33424
|
return true;
|
|
33433
33425
|
}
|
|
33434
33426
|
function areAgentGUINodePropsEqual(previous, next) {
|
|
33435
|
-
return previous.nodeId === next.nodeId && previous.workspaceId === next.workspaceId && previous.currentUserId === next.currentUserId && previous.workspacePath === next.workspacePath && previous.workspaceFileReferenceAdapter === next.workspaceFileReferenceAdapter && previous.resolveDroppedFileReferences === next.resolveDroppedFileReferences && previous.selectProjectDirectory === next.selectProjectDirectory && previous.referenceSourceAggregator === next.referenceSourceAggregator && previous.resolveWorkspaceReferenceEntryIconUrl === next.resolveWorkspaceReferenceEntryIconUrl && previous.resolveMentionReferenceTarget === next.resolveMentionReferenceTarget && previous.resolveWorkspaceReferenceInitialTarget === next.resolveWorkspaceReferenceInitialTarget && previous.onWorkspaceFileReferencesAdded === next.onWorkspaceFileReferencesAdded && previous.agentSettings.avoidGroupingEdits === next.agentSettings.avoidGroupingEdits && previous.title === next.title && agentGuiStateEquals(previous.state, next.state) && previous.position.x === next.position.x && previous.position.y === next.position.y && previous.width === next.width && previous.height === next.height && previous.desktopSize.width === next.desktopSize.width && previous.desktopSize.height === next.desktopSize.height && previous.onLinkAction === next.onLinkAction && previous.onHandoffConversation === next.onHandoffConversation && previous.onCapabilitySettingsRequest === next.onCapabilitySettingsRequest && previous.onAgentProviderLogin === next.onAgentProviderLogin && previous.accountMenuState === next.accountMenuState && previous.
|
|
33427
|
+
return previous.nodeId === next.nodeId && previous.workspaceId === next.workspaceId && previous.currentUserId === next.currentUserId && previous.workspacePath === next.workspacePath && previous.workspaceFileReferenceAdapter === next.workspaceFileReferenceAdapter && previous.resolveDroppedFileReferences === next.resolveDroppedFileReferences && previous.selectProjectDirectory === next.selectProjectDirectory && previous.referenceSourceAggregator === next.referenceSourceAggregator && previous.resolveWorkspaceReferenceEntryIconUrl === next.resolveWorkspaceReferenceEntryIconUrl && previous.resolveMentionReferenceTarget === next.resolveMentionReferenceTarget && previous.resolveWorkspaceReferenceInitialTarget === next.resolveWorkspaceReferenceInitialTarget && previous.onWorkspaceFileReferencesAdded === next.onWorkspaceFileReferencesAdded && previous.agentSettings.avoidGroupingEdits === next.agentSettings.avoidGroupingEdits && previous.title === next.title && agentGuiStateEquals(previous.state, next.state) && previous.position.x === next.position.x && previous.position.y === next.position.y && previous.width === next.width && previous.height === next.height && previous.desktopSize.width === next.desktopSize.width && previous.desktopSize.height === next.desktopSize.height && previous.onLinkAction === next.onLinkAction && previous.onHandoffConversation === next.onHandoffConversation && previous.onCapabilitySettingsRequest === next.onCapabilitySettingsRequest && previous.onAgentProviderLogin === next.onAgentProviderLogin && previous.accountMenuState === next.accountMenuState && previous.agents === next.agents && previous.agentsLoading === next.agentsLoading && previous.allAgentsPresentation?.iconUrl === next.allAgentsPresentation?.iconUrl && previous.slashCommandFallbackMode === next.slashCommandFallbackMode && previous.renderSidebarFooter === next.renderSidebarFooter && previous.renderAgentsEmpty === next.renderAgentsEmpty && previous.renderAgentUnavailableState === next.renderAgentUnavailableState && previous.renderAgentReadinessState === next.renderAgentReadinessState && previous.onAgentAvailabilityAction === next.onAgentAvailabilityAction && previous.defaultAgentTargetId === next.defaultAgentTargetId && previous.onClose === next.onClose && previous.onResize === next.onResize && previous.onUpdateNode === next.onUpdateNode && previous.onRememberComposerDefaults === next.onRememberComposerDefaults && previous.onOpenConversationWindow === next.onOpenConversationWindow && previous.isMaximized === next.isMaximized && previous.isMuted === next.isMuted && previous.onMinimize === next.onMinimize && previous.onToggleMaximize === next.onToggleMaximize && previous.onShowMessage === next.onShowMessage && previous.workspaceAgentProbes === next.workspaceAgentProbes && previous.onAgentProbeDemandChange === next.onAgentProbeDemandChange && previous.onAgentProbeRefreshRequest === next.onAgentProbeRefreshRequest && previous.providerAuthAccountLabels === next.providerAuthAccountLabels && previous.managedAgentsState === next.managedAgentsState && previous.contextMentionProviders === next.contextMentionProviders && previous.workspaceAppIcons === next.workspaceAppIcons && previous.embedded === next.embedded && previous.previewMode === next.previewMode && previous.isActive === next.isActive && previous.composerFocusRequestSequence === next.composerFocusRequestSequence && previous.newConversationRequestSequence === next.newConversationRequestSequence && previous.openSessionRequest === next.openSessionRequest && previous.prefillPromptRequest === next.prefillPromptRequest;
|
|
33436
33428
|
}
|
|
33437
33429
|
var AgentGUINode = memo4(function AgentGUINode2({
|
|
33438
33430
|
nodeId,
|
|
@@ -33460,18 +33452,16 @@ var AgentGUINode = memo4(function AgentGUINode2({
|
|
|
33460
33452
|
onCapabilitySettingsRequest,
|
|
33461
33453
|
onAgentProviderLogin,
|
|
33462
33454
|
accountMenuState = null,
|
|
33463
|
-
|
|
33464
|
-
|
|
33465
|
-
|
|
33455
|
+
agents = [],
|
|
33456
|
+
agentsLoading = false,
|
|
33457
|
+
allAgentsPresentation = null,
|
|
33466
33458
|
slashCommandFallbackMode = "provider-default",
|
|
33467
|
-
|
|
33468
|
-
|
|
33469
|
-
|
|
33470
|
-
|
|
33459
|
+
renderAgentsEmpty,
|
|
33460
|
+
renderAgentUnavailableState,
|
|
33461
|
+
renderAgentReadinessState,
|
|
33462
|
+
onAgentAvailabilityAction,
|
|
33471
33463
|
renderSidebarFooter,
|
|
33472
|
-
|
|
33473
|
-
providerReadinessGates = null,
|
|
33474
|
-
defaultProviderTargetId = null,
|
|
33464
|
+
defaultAgentTargetId = null,
|
|
33475
33465
|
onWorkspaceFileReferencesAdded,
|
|
33476
33466
|
onOpenConversationWindow,
|
|
33477
33467
|
onClose,
|
|
@@ -33508,6 +33498,67 @@ var AgentGUINode = memo4(function AgentGUINode2({
|
|
|
33508
33498
|
() => typeof i18n?.t === "function" ? createWorkspaceFileManagerI18nRuntime(i18n) : null,
|
|
33509
33499
|
[i18n]
|
|
33510
33500
|
);
|
|
33501
|
+
const normalizedAgents = useMemo12(
|
|
33502
|
+
() => normalizeAgentGUIAgents(agents),
|
|
33503
|
+
[agents]
|
|
33504
|
+
);
|
|
33505
|
+
const internalAgentTargets = useMemo12(
|
|
33506
|
+
() => projectAgentGUIAgentsToInternalTargets(normalizedAgents),
|
|
33507
|
+
[normalizedAgents]
|
|
33508
|
+
);
|
|
33509
|
+
const agentByTargetId = useMemo12(
|
|
33510
|
+
() => new Map(
|
|
33511
|
+
normalizedAgents.map((agent) => [agent.agentTargetId, agent])
|
|
33512
|
+
),
|
|
33513
|
+
[normalizedAgents]
|
|
33514
|
+
);
|
|
33515
|
+
const selectedDirectoryAgent = useMemo12(() => {
|
|
33516
|
+
const selectedAgentTargetId = state.agentTargetId?.trim() || defaultAgentTargetId?.trim() || "";
|
|
33517
|
+
return agentByTargetId.get(selectedAgentTargetId) ?? normalizedAgents[0] ?? null;
|
|
33518
|
+
}, [
|
|
33519
|
+
agentByTargetId,
|
|
33520
|
+
defaultAgentTargetId,
|
|
33521
|
+
normalizedAgents,
|
|
33522
|
+
state.agentTargetId
|
|
33523
|
+
]);
|
|
33524
|
+
const internalProviderReadinessGates = useMemo12(() => {
|
|
33525
|
+
if (!selectedDirectoryAgent || selectedDirectoryAgent.availability.status === "ready") {
|
|
33526
|
+
return {};
|
|
33527
|
+
}
|
|
33528
|
+
const agentTargetId = selectedDirectoryAgent.agentTargetId;
|
|
33529
|
+
return {
|
|
33530
|
+
[selectedDirectoryAgent.provider]: {
|
|
33531
|
+
status: selectedDirectoryAgent.availability.status,
|
|
33532
|
+
pendingAction: selectedDirectoryAgent.availability.pendingAction ?? null,
|
|
33533
|
+
onAction: (_provider, action) => {
|
|
33534
|
+
onAgentAvailabilityAction?.({ agentTargetId, action });
|
|
33535
|
+
}
|
|
33536
|
+
}
|
|
33537
|
+
};
|
|
33538
|
+
}, [onAgentAvailabilityAction, selectedDirectoryAgent]);
|
|
33539
|
+
const renderInternalAgentUnavailableState = useMemo12(() => {
|
|
33540
|
+
if (!renderAgentUnavailableState) {
|
|
33541
|
+
return void 0;
|
|
33542
|
+
}
|
|
33543
|
+
return ({ target }) => {
|
|
33544
|
+
const agentTargetId = target.agentTargetId?.trim() || target.targetId;
|
|
33545
|
+
const agent = agentByTargetId.get(agentTargetId);
|
|
33546
|
+
return agent ? renderAgentUnavailableState({ agent }) : null;
|
|
33547
|
+
};
|
|
33548
|
+
}, [agentByTargetId, renderAgentUnavailableState]);
|
|
33549
|
+
const renderInternalAgentReadinessState = useMemo12(() => {
|
|
33550
|
+
if (!renderAgentReadinessState) {
|
|
33551
|
+
return void 0;
|
|
33552
|
+
}
|
|
33553
|
+
return ({ target, showAllProviders }) => {
|
|
33554
|
+
const agentTargetId = target?.agentTargetId?.trim() || target?.targetId;
|
|
33555
|
+
const agent = agentTargetId ? agentByTargetId.get(agentTargetId) : selectedDirectoryAgent;
|
|
33556
|
+
return agent ? renderAgentReadinessState({
|
|
33557
|
+
agent,
|
|
33558
|
+
showAllAgents: showAllProviders
|
|
33559
|
+
}) : null;
|
|
33560
|
+
};
|
|
33561
|
+
}, [agentByTargetId, renderAgentReadinessState, selectedDirectoryAgent]);
|
|
33511
33562
|
const handleLinkAction = useCallback13(
|
|
33512
33563
|
(action) => {
|
|
33513
33564
|
const agentTargetId = state.agentTargetId?.trim() || null;
|
|
@@ -33632,12 +33683,10 @@ var AgentGUINode = memo4(function AgentGUINode2({
|
|
|
33632
33683
|
data: state,
|
|
33633
33684
|
openSessionRequest,
|
|
33634
33685
|
prefillPromptRequest,
|
|
33635
|
-
providerTargets,
|
|
33636
|
-
providerTargetsLoading,
|
|
33637
|
-
|
|
33638
|
-
|
|
33639
|
-
providerReadinessGates,
|
|
33640
|
-
defaultProviderTargetId,
|
|
33686
|
+
providerTargets: internalAgentTargets,
|
|
33687
|
+
providerTargetsLoading: agentsLoading,
|
|
33688
|
+
providerReadinessGates: internalProviderReadinessGates,
|
|
33689
|
+
defaultAgentTargetId,
|
|
33641
33690
|
previewMode,
|
|
33642
33691
|
onDataChange: handleDataChange,
|
|
33643
33692
|
onRememberComposerDefaults,
|
|
@@ -33895,6 +33944,7 @@ var AgentGUINode = memo4(function AgentGUINode2({
|
|
|
33895
33944
|
planImplementationSend: t("agentHost.agentGui.planImplementationSend"),
|
|
33896
33945
|
planImplementationSkip: t("agentHost.agentGui.planImplementationSkip"),
|
|
33897
33946
|
noRunningResponse: t("agentHost.agentGui.noRunningResponse"),
|
|
33947
|
+
agentsEmpty: t("agentHost.agentGui.agentsEmpty"),
|
|
33898
33948
|
empty: t("agentHost.agentGui.empty", { provider: displayProviderLabel }),
|
|
33899
33949
|
homeSuggestions: buildAgentHomeSuggestions(
|
|
33900
33950
|
t,
|
|
@@ -34519,10 +34569,10 @@ var AgentGUINode = memo4(function AgentGUINode2({
|
|
|
34519
34569
|
{
|
|
34520
34570
|
viewModel,
|
|
34521
34571
|
renderSidebarFooter,
|
|
34522
|
-
renderProviderRailEmpty,
|
|
34523
|
-
renderProviderUnavailableState,
|
|
34524
|
-
renderProviderReadinessGateState,
|
|
34525
|
-
providerRailAllPresentation,
|
|
34572
|
+
renderProviderRailEmpty: renderAgentsEmpty,
|
|
34573
|
+
renderProviderUnavailableState: renderInternalAgentUnavailableState,
|
|
34574
|
+
renderProviderReadinessGateState: renderInternalAgentReadinessState,
|
|
34575
|
+
providerRailAllPresentation: allAgentsPresentation,
|
|
34526
34576
|
slashCommandFallbackMode,
|
|
34527
34577
|
actions: viewActions,
|
|
34528
34578
|
isActive,
|
|
@@ -34617,7 +34667,6 @@ export {
|
|
|
34617
34667
|
AgentGuiI18nProvider,
|
|
34618
34668
|
AgentQueuedPromptRuntimeProvider,
|
|
34619
34669
|
agentActivityRuntimeCapabilityEnabled,
|
|
34620
|
-
agentGUIDefaultTargetProviders,
|
|
34621
34670
|
agentGuiDockIconUrl,
|
|
34622
34671
|
agentGuiDockIconUrls,
|
|
34623
34672
|
agentGuiI18nModule,
|
|
@@ -34625,15 +34674,10 @@ export {
|
|
|
34625
34674
|
agentHostSnapshotFromAgentActivitySnapshot,
|
|
34626
34675
|
buildAgentActivitySnapshotProjection,
|
|
34627
34676
|
createAgentQueuedPromptRuntime,
|
|
34628
|
-
createLocalAgentGUIProviderTarget,
|
|
34629
|
-
createLocalAgentGUIProviderTargets,
|
|
34630
|
-
createSharedAgentGUIProviderTarget,
|
|
34631
34677
|
getAgentActivityRuntime,
|
|
34632
34678
|
getAgentCustomMentionKind,
|
|
34633
34679
|
getOptionalAgentActivityRuntime,
|
|
34634
|
-
|
|
34635
|
-
localAgentGUIProviderTargetId,
|
|
34636
|
-
normalizeAgentGUIProviderTargets,
|
|
34680
|
+
normalizeAgentGUIAgents,
|
|
34637
34681
|
preloadAgentMentionBrowse,
|
|
34638
34682
|
projectCoreSessionStatus,
|
|
34639
34683
|
registerAgentCustomMentionKind,
|
|
@@ -34641,7 +34685,6 @@ export {
|
|
|
34641
34685
|
resetAgentCustomMentionKindsForTests,
|
|
34642
34686
|
resetAgentQueuedPromptRuntimeForTests,
|
|
34643
34687
|
resolveAgentGUIExpandedWindowFrame,
|
|
34644
|
-
resolveAgentGUIProviderTarget,
|
|
34645
34688
|
selectNeedsAttentionCount2 as selectNeedsAttentionCount,
|
|
34646
34689
|
selectNeedsAttentionItems2 as selectNeedsAttentionItems,
|
|
34647
34690
|
setAgentActivityRuntimeForTests,
|