@tutti-os/agent-gui 0.0.214 → 0.0.216
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 +3 -5
- package/dist/{AgentRichTextReadonly-TASIMIK4.js → AgentRichTextReadonly-IPPNAAWG.js} +6 -6
- package/dist/agent-conversation/index.d.ts +3 -5
- package/dist/agent-conversation/index.js +8 -8
- package/dist/agent-gui.d.ts +2 -9
- package/dist/agent-gui.js +15 -15
- package/dist/agent-message-center/index.d.ts +2 -3
- package/dist/agent-message-center/index.js +7 -7
- package/dist/{agentGuiNodeTypes-BMcpfKTn.d.ts → agentGuiNodeTypes-DW7T--Y8.d.ts} +1 -1
- package/dist/app/renderer/agentactivity.css +68 -34
- package/dist/{chunk-ISC67YBJ.js → chunk-6A6OVD66.js} +4 -4
- package/dist/{chunk-AD2RTSMS.js → chunk-AOK22J62.js} +2 -2
- package/dist/{chunk-2HYADTQP.js → chunk-B4TM2HYJ.js} +2 -2
- package/dist/{chunk-G2QO6HPB.js → chunk-DLN33TPF.js} +23 -9
- package/dist/chunk-DLN33TPF.js.map +1 -0
- package/dist/{chunk-XERDRMSF.js → chunk-DTP2OMCE.js} +4 -4
- package/dist/{chunk-7SSORDQY.js → chunk-EZRQMJTX.js} +8 -14
- package/dist/chunk-EZRQMJTX.js.map +1 -0
- package/dist/{chunk-RLFO3NJV.js → chunk-KJA3HHUJ.js} +529 -809
- package/dist/chunk-KJA3HHUJ.js.map +1 -0
- package/dist/chunk-LQMIEH4C.js +100 -0
- package/dist/chunk-LQMIEH4C.js.map +1 -0
- package/dist/{chunk-ZNHMWCO4.js → chunk-MOCBHFJ2.js} +5 -74
- package/dist/chunk-MOCBHFJ2.js.map +1 -0
- package/dist/{chunk-QVLEP54U.js → chunk-P2RIZAK5.js} +3 -3
- package/dist/chunk-P2RIZAK5.js.map +1 -0
- package/dist/{chunk-YBIT37P5.js → chunk-QFYOJMEQ.js} +2 -2
- package/dist/{chunk-BYHNJQYH.js → chunk-UERICUWM.js} +2 -2
- package/dist/{chunk-L4E2Y52A.js → chunk-VMPPZO5C.js} +5 -44
- package/dist/chunk-VMPPZO5C.js.map +1 -0
- package/dist/{chunk-FEUU4YMY.js → chunk-YY5WM3OE.js} +5707 -5727
- package/dist/chunk-YY5WM3OE.js.map +1 -0
- package/dist/{chunk-LQKLBDBK.js → chunk-Z5UJC4Q3.js} +43 -15
- package/dist/chunk-Z5UJC4Q3.js.map +1 -0
- package/dist/context-mention-palette/index.js +7 -7
- package/dist/{contribution-DfeuQHH6.d.ts → contribution-D4lcOjSU.d.ts} +2 -14
- package/dist/i18n/index.d.ts +2 -2
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +80 -80
- package/dist/index.js +15 -15
- package/dist/mention-search.js +5 -5
- package/dist/workbench/contribution.d.ts +1 -1
- package/dist/workbench/contribution.js +3 -5
- package/dist/workbench/index.d.ts +2 -2
- package/dist/workbench/index.js +3 -5
- package/dist/workbench/sessionTitle.js +2 -2
- package/dist/{workspaceLinkActions-COfr61YO.d.ts → workspaceLinkActions-CzsbvGmC.d.ts} +78 -71
- package/package.json +14 -14
- package/dist/chunk-7SSORDQY.js.map +0 -1
- package/dist/chunk-FEUU4YMY.js.map +0 -1
- package/dist/chunk-G2QO6HPB.js.map +0 -1
- package/dist/chunk-L4E2Y52A.js.map +0 -1
- package/dist/chunk-LQKLBDBK.js.map +0 -1
- package/dist/chunk-QVLEP54U.js.map +0 -1
- package/dist/chunk-RLFO3NJV.js.map +0 -1
- package/dist/chunk-ZNHMWCO4.js.map +0 -1
- package/dist/chunk-ZVYUTXQJ.js +0 -43
- package/dist/chunk-ZVYUTXQJ.js.map +0 -1
- /package/dist/{AgentRichTextReadonly-TASIMIK4.js.map → AgentRichTextReadonly-IPPNAAWG.js.map} +0 -0
- /package/dist/{chunk-ISC67YBJ.js.map → chunk-6A6OVD66.js.map} +0 -0
- /package/dist/{chunk-AD2RTSMS.js.map → chunk-AOK22J62.js.map} +0 -0
- /package/dist/{chunk-2HYADTQP.js.map → chunk-B4TM2HYJ.js.map} +0 -0
- /package/dist/{chunk-XERDRMSF.js.map → chunk-DTP2OMCE.js.map} +0 -0
- /package/dist/{chunk-YBIT37P5.js.map → chunk-QFYOJMEQ.js.map} +0 -0
- /package/dist/{chunk-BYHNJQYH.js.map → chunk-UERICUWM.js.map} +0 -0
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
resolveAgentGuiSessionProviderFlatIconUrl,
|
|
16
16
|
resolveNextAgentGUIConversationRailWidthPx,
|
|
17
17
|
shouldAutoCollapseAgentGUIConversationRail
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-MOCBHFJ2.js";
|
|
19
19
|
import {
|
|
20
20
|
AGENT_PROVIDERS,
|
|
21
21
|
AGENT_PROVIDER_LABEL,
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
resolveAgentGUIFirstUserMessageDisplayPrompt,
|
|
32
32
|
resolveAgentGUIProviderDisplayLabel,
|
|
33
33
|
resolveAgentGUIProviderIdentity
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-VMPPZO5C.js";
|
|
35
35
|
import {
|
|
36
36
|
resolveAgentGuiWorkbenchProviderLabel
|
|
37
37
|
} from "./chunk-MGSRWYRN.js";
|
|
@@ -70,7 +70,7 @@ import {
|
|
|
70
70
|
toLocalShortDateTime,
|
|
71
71
|
updateAgentComposerDraft,
|
|
72
72
|
useProjectedAgentConversation
|
|
73
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-YY5WM3OE.js";
|
|
74
74
|
import {
|
|
75
75
|
agentRichTextContentToPromptText,
|
|
76
76
|
createAgentRichTextInputExtensions,
|
|
@@ -80,7 +80,7 @@ import {
|
|
|
80
80
|
plainTextToAgentRichTextInlineContent,
|
|
81
81
|
skillDescriptionForDisplay,
|
|
82
82
|
skillTriggerForPrefix
|
|
83
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-DLN33TPF.js";
|
|
84
84
|
import {
|
|
85
85
|
AgentEnvPanelActionProvider
|
|
86
86
|
} from "./chunk-N4HLBSMJ.js";
|
|
@@ -95,7 +95,7 @@ import {
|
|
|
95
95
|
AgentFileMentionPalette,
|
|
96
96
|
agentMentionItemKey,
|
|
97
97
|
isAgentMentionItemDisabled
|
|
98
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-DTP2OMCE.js";
|
|
99
99
|
import {
|
|
100
100
|
normalizeAgentGUIAgents,
|
|
101
101
|
projectAgentGUIAgentsToTargets
|
|
@@ -106,7 +106,7 @@ import {
|
|
|
106
106
|
DEFAULT_AGENT_MENTION_FILTER,
|
|
107
107
|
agentGuiScheduler,
|
|
108
108
|
buildWorkspaceAgentActivityListViewModel
|
|
109
|
-
} from "./chunk-
|
|
109
|
+
} from "./chunk-6A6OVD66.js";
|
|
110
110
|
import {
|
|
111
111
|
AGENT_RICH_TEXT_CARET_ANCHOR,
|
|
112
112
|
agentComposerFileMentionReferences,
|
|
@@ -123,7 +123,7 @@ import {
|
|
|
123
123
|
parseMentionItemFromHref,
|
|
124
124
|
remainingAgentComposerPromptAssetSlots,
|
|
125
125
|
updateAgentComposerFileMentions
|
|
126
|
-
} from "./chunk-
|
|
126
|
+
} from "./chunk-B4TM2HYJ.js";
|
|
127
127
|
import {
|
|
128
128
|
AgentInteractivePromptSurface,
|
|
129
129
|
PLAN_IMPLEMENTATION_ACTION_FEEDBACK,
|
|
@@ -135,7 +135,7 @@ import {
|
|
|
135
135
|
normalizePlanIssueBudgetPreset,
|
|
136
136
|
planImplementationPromptFromPlanTurn,
|
|
137
137
|
planIssueBudgetPresetsEqual
|
|
138
|
-
} from "./chunk-
|
|
138
|
+
} from "./chunk-EZRQMJTX.js";
|
|
139
139
|
import {
|
|
140
140
|
useEngineSelector
|
|
141
141
|
} from "./chunk-EVQ4JY3N.js";
|
|
@@ -145,13 +145,13 @@ import {
|
|
|
145
145
|
blobToBase64,
|
|
146
146
|
normalizeAgentApprovalPurpose,
|
|
147
147
|
resolveWorkspaceLinkAction
|
|
148
|
-
} from "./chunk-
|
|
148
|
+
} from "./chunk-Z5UJC4Q3.js";
|
|
149
149
|
import {
|
|
150
150
|
AgentTargetPresentationProvider,
|
|
151
151
|
cn,
|
|
152
152
|
resolveAgentTargetPresentation,
|
|
153
153
|
useAgentTargetPresentations
|
|
154
|
-
} from "./chunk-
|
|
154
|
+
} from "./chunk-LQMIEH4C.js";
|
|
155
155
|
import {
|
|
156
156
|
resolveWorkspaceAgentSessionSortTimeUnixMs
|
|
157
157
|
} from "./chunk-YMXYBG7U.js";
|
|
@@ -163,7 +163,7 @@ import {
|
|
|
163
163
|
useAgentHostApi,
|
|
164
164
|
useOptionalAgentActivityRuntime,
|
|
165
165
|
useOptionalAgentHostApi
|
|
166
|
-
} from "./chunk-
|
|
166
|
+
} from "./chunk-QFYOJMEQ.js";
|
|
167
167
|
import {
|
|
168
168
|
MANAGED_AGENT_ICON_FALLBACK_URL,
|
|
169
169
|
MANAGED_AGENT_ICON_URLS,
|
|
@@ -173,7 +173,7 @@ import {
|
|
|
173
173
|
AgentGuiI18nProvider,
|
|
174
174
|
translate,
|
|
175
175
|
useTranslation
|
|
176
|
-
} from "./chunk-
|
|
176
|
+
} from "./chunk-UERICUWM.js";
|
|
177
177
|
import {
|
|
178
178
|
isBetaAgentProvider,
|
|
179
179
|
normalizeManagedAgentProvider
|
|
@@ -6290,7 +6290,6 @@ function useAgentGUIConversationRouting(input) {
|
|
|
6290
6290
|
intent,
|
|
6291
6291
|
openSessionRequest,
|
|
6292
6292
|
pendingOpenSessionRequestRef,
|
|
6293
|
-
previewMode,
|
|
6294
6293
|
selectConversation,
|
|
6295
6294
|
sessionEngine,
|
|
6296
6295
|
setIntent,
|
|
@@ -6332,7 +6331,7 @@ function useAgentGUIConversationRouting(input) {
|
|
|
6332
6331
|
);
|
|
6333
6332
|
useEffect3(() => {
|
|
6334
6333
|
const normalizedOpenSessionRequest = normalizeAgentGUIOpenSessionRequest(openSessionRequest);
|
|
6335
|
-
if (
|
|
6334
|
+
if (normalizedOpenSessionRequest && handledOpenSessionSequenceRef.current !== normalizedOpenSessionRequest.sequence) {
|
|
6336
6335
|
handledOpenSessionSequenceRef.current = normalizedOpenSessionRequest.sequence;
|
|
6337
6336
|
pendingOpenSessionRequestRef.current = normalizedOpenSessionRequest;
|
|
6338
6337
|
}
|
|
@@ -6390,7 +6389,6 @@ function useAgentGUIConversationRouting(input) {
|
|
|
6390
6389
|
hasLoadedConversations,
|
|
6391
6390
|
intent,
|
|
6392
6391
|
openSessionRequest,
|
|
6393
|
-
previewMode,
|
|
6394
6392
|
selectConversation,
|
|
6395
6393
|
transientConversation
|
|
6396
6394
|
]);
|
|
@@ -7284,9 +7282,6 @@ function useAgentGUIComposerCapabilities(input) {
|
|
|
7284
7282
|
}
|
|
7285
7283
|
|
|
7286
7284
|
// agent-gui/agentGuiNode/controller/useAgentGUIComposerOptionsSync.ts
|
|
7287
|
-
import {
|
|
7288
|
-
selectLatestActivationForSession as selectLatestActivationForSession4
|
|
7289
|
-
} from "@tutti-os/agent-activity-core";
|
|
7290
7285
|
import { useCallback as useCallback8, useEffect as useEffect5, useRef as useRef9 } from "react";
|
|
7291
7286
|
|
|
7292
7287
|
// host/agentHostEventBus.ts
|
|
@@ -7449,7 +7444,6 @@ function subscribeCoalesced(type, options, callback) {
|
|
|
7449
7444
|
|
|
7450
7445
|
// agent-gui/agentGuiNode/controller/useAgentGUIComposerOptionsSync.ts
|
|
7451
7446
|
function useAgentGUIComposerOptionsSync(input) {
|
|
7452
|
-
const previousActiveConversationIdRef = useRef9(input.activeConversationId);
|
|
7453
7447
|
const previousIsCreatingConversationRef = useRef9(
|
|
7454
7448
|
input.isCreatingConversation
|
|
7455
7449
|
);
|
|
@@ -7542,7 +7536,6 @@ function useAgentGUIComposerOptionsSync(input) {
|
|
|
7542
7536
|
);
|
|
7543
7537
|
input.loadDraftComposerOptionsRef.current = loadDraftComposerOptions;
|
|
7544
7538
|
useEffect5(() => {
|
|
7545
|
-
if (input.previewMode) return void 0;
|
|
7546
7539
|
return subscribeCoalesced(
|
|
7547
7540
|
"agent-model-catalog-invalidated",
|
|
7548
7541
|
{
|
|
@@ -7570,9 +7563,8 @@ function useAgentGUIComposerOptionsSync(input) {
|
|
|
7570
7563
|
});
|
|
7571
7564
|
}
|
|
7572
7565
|
);
|
|
7573
|
-
}, [input.loadSessionState,
|
|
7566
|
+
}, [input.loadSessionState, loadDraftComposerOptions]);
|
|
7574
7567
|
useEffect5(() => {
|
|
7575
|
-
if (input.previewMode) return void 0;
|
|
7576
7568
|
return subscribe("agent-composer-defaults-invalidated", (event) => {
|
|
7577
7569
|
const selectedTarget = composerTargetDataForConversation({
|
|
7578
7570
|
activeConversationId: input.activeConversationIdRef.current,
|
|
@@ -7599,17 +7591,13 @@ function useAgentGUIComposerOptionsSync(input) {
|
|
|
7599
7591
|
}, [
|
|
7600
7592
|
input.defaultReasoningEffort,
|
|
7601
7593
|
input.onComposerDefaultsAuthorityReloadedRef,
|
|
7602
|
-
input.previewMode,
|
|
7603
7594
|
loadComposerOptionsForTarget
|
|
7604
7595
|
]);
|
|
7605
7596
|
useEffect5(() => {
|
|
7606
|
-
if (input.previewMode) return;
|
|
7607
|
-
const conversationActivated = input.activeConversationId !== null && previousActiveConversationIdRef.current !== input.activeConversationId;
|
|
7608
7597
|
const conversationCreationSettled = previousIsCreatingConversationRef.current && !input.isCreatingConversation;
|
|
7609
|
-
previousActiveConversationIdRef.current = input.activeConversationId;
|
|
7610
7598
|
previousIsCreatingConversationRef.current = input.isCreatingConversation;
|
|
7611
7599
|
loadDraftComposerOptions(
|
|
7612
|
-
|
|
7600
|
+
conversationCreationSettled || input.providerComposerOptions?.behavior?.prewarmDraftSession === true && input.isComposerHome ? { force: true } : void 0
|
|
7613
7601
|
);
|
|
7614
7602
|
}, [
|
|
7615
7603
|
input.activeConversationId,
|
|
@@ -7617,13 +7605,12 @@ function useAgentGUIComposerOptionsSync(input) {
|
|
|
7617
7605
|
input.composerTargetData.provider,
|
|
7618
7606
|
input.isComposerHome,
|
|
7619
7607
|
input.isCreatingConversation,
|
|
7620
|
-
input.previewMode,
|
|
7621
7608
|
input.providerComposerOptions?.behavior?.prewarmDraftSession,
|
|
7622
7609
|
input.selectedProjectPath,
|
|
7623
7610
|
loadDraftComposerOptions
|
|
7624
7611
|
]);
|
|
7625
7612
|
useEffect5(() => {
|
|
7626
|
-
|
|
7613
|
+
{
|
|
7627
7614
|
void input.syncConversationListProjection(
|
|
7628
7615
|
input.dataRef.current.lastActiveAgentSessionId
|
|
7629
7616
|
);
|
|
@@ -7632,28 +7619,8 @@ function useAgentGUIComposerOptionsSync(input) {
|
|
|
7632
7619
|
input.conversationFilter,
|
|
7633
7620
|
input.currentUserId,
|
|
7634
7621
|
input.data.provider,
|
|
7635
|
-
input.previewMode,
|
|
7636
7622
|
input.syncConversationListProjection
|
|
7637
7623
|
]);
|
|
7638
|
-
useEffect5(() => {
|
|
7639
|
-
if (input.previewMode || !input.activeConversationId) return;
|
|
7640
|
-
const activation = selectLatestActivationForSession4(
|
|
7641
|
-
input.sessionEngine.getSnapshot(),
|
|
7642
|
-
input.activeConversationId
|
|
7643
|
-
);
|
|
7644
|
-
if (activation?.status === "failed" || activation?.status === "canceled" || activation?.status === "requested" || activation?.status === "uncertain") {
|
|
7645
|
-
return;
|
|
7646
|
-
}
|
|
7647
|
-
input.reloadSelectedConversation(input.activeConversationId, {
|
|
7648
|
-
reloadConversations: false,
|
|
7649
|
-
reloadDetail: true
|
|
7650
|
-
});
|
|
7651
|
-
}, [
|
|
7652
|
-
input.activeConversationId,
|
|
7653
|
-
input.previewMode,
|
|
7654
|
-
input.reloadSelectedConversation,
|
|
7655
|
-
input.sessionEngine
|
|
7656
|
-
]);
|
|
7657
7624
|
return { loadDraftComposerOptions, reloadComposerOptionsForTarget };
|
|
7658
7625
|
}
|
|
7659
7626
|
|
|
@@ -8756,7 +8723,6 @@ function useAgentGUIConversationHome({
|
|
|
8756
8723
|
submitPrefillPrompt,
|
|
8757
8724
|
persistActiveConversation,
|
|
8758
8725
|
prefillPromptRequest,
|
|
8759
|
-
previewMode,
|
|
8760
8726
|
reportActiveConversationCleared,
|
|
8761
8727
|
selectedComposerTargetDataRef,
|
|
8762
8728
|
selectedProjectPathRef,
|
|
@@ -8862,9 +8828,6 @@ function useAgentGUIConversationHome({
|
|
|
8862
8828
|
]
|
|
8863
8829
|
);
|
|
8864
8830
|
useEffect6(() => {
|
|
8865
|
-
if (previewMode) {
|
|
8866
|
-
return;
|
|
8867
|
-
}
|
|
8868
8831
|
const resolvedAppendRequest = resolveAgentGUIComposerAppendRequest({
|
|
8869
8832
|
activeConversationId: activeConversationIdRef.current,
|
|
8870
8833
|
draftByScopeKey: draftByScopeKeyRef.current,
|
|
@@ -8977,7 +8940,6 @@ function useAgentGUIConversationHome({
|
|
|
8977
8940
|
onDataChangeRef,
|
|
8978
8941
|
persistActiveConversation,
|
|
8979
8942
|
prefillPromptRequest,
|
|
8980
|
-
previewMode,
|
|
8981
8943
|
selectedComposerTargetDataRef,
|
|
8982
8944
|
selectedProjectPathRef,
|
|
8983
8945
|
setConversationFilter,
|
|
@@ -9186,7 +9148,7 @@ function useAgentGUIConversationMetadataActions(input) {
|
|
|
9186
9148
|
// agent-gui/agentGuiNode/controller/useAgentGUINewConversationActivation.ts
|
|
9187
9149
|
import {
|
|
9188
9150
|
isPendingActivationViable as isPendingActivationViable5,
|
|
9189
|
-
selectLatestActivationForSession as
|
|
9151
|
+
selectLatestActivationForSession as selectLatestActivationForSession4,
|
|
9190
9152
|
selectTuttiModeDraftIsActive,
|
|
9191
9153
|
selectTuttiModeDraftOrchestrationIntensity
|
|
9192
9154
|
} from "@tutti-os/agent-activity-core";
|
|
@@ -9323,7 +9285,7 @@ function useAgentGUINewConversationActivation(input) {
|
|
|
9323
9285
|
};
|
|
9324
9286
|
const prewarmedSessionId = normalizedInitialContent.length > 0 && snapshotComposerOptions?.behavior?.prewarmDraftSession === true ? draftAgentSessionIdFromComposerOptions(snapshotComposerOptions) : null;
|
|
9325
9287
|
const agentSessionId = prewarmedSessionId && activation.stateFor(prewarmedSessionId) === "inactive" && isPendingActivationViable5(
|
|
9326
|
-
|
|
9288
|
+
selectLatestActivationForSession4(
|
|
9327
9289
|
sessionEngine.getSnapshot(),
|
|
9328
9290
|
prewarmedSessionId
|
|
9329
9291
|
)
|
|
@@ -9566,16 +9528,12 @@ var QueuedPromptImageLoadOwner = class {
|
|
|
9566
9528
|
function useAgentGUIQueueActions({
|
|
9567
9529
|
activeConversationIdRef,
|
|
9568
9530
|
agentActivityRuntime,
|
|
9569
|
-
previewMode,
|
|
9570
9531
|
sessionEngine,
|
|
9571
9532
|
setDraftByScopeKey,
|
|
9572
9533
|
workspaceId
|
|
9573
9534
|
}) {
|
|
9574
9535
|
const removeQueuedPrompt = useCallback17(
|
|
9575
9536
|
(queuedPromptId) => {
|
|
9576
|
-
if (previewMode) {
|
|
9577
|
-
return;
|
|
9578
|
-
}
|
|
9579
9537
|
const agentSessionId = activeConversationIdRef.current;
|
|
9580
9538
|
const normalizedQueuedPromptId = queuedPromptId.trim();
|
|
9581
9539
|
if (!agentSessionId || !normalizedQueuedPromptId) {
|
|
@@ -9598,13 +9556,13 @@ function useAgentGUIQueueActions({
|
|
|
9598
9556
|
}
|
|
9599
9557
|
);
|
|
9600
9558
|
},
|
|
9601
|
-
[activeConversationIdRef,
|
|
9559
|
+
[activeConversationIdRef, sessionEngine]
|
|
9602
9560
|
);
|
|
9603
9561
|
const editQueuedPrompt = useCallback17(
|
|
9604
9562
|
(queuedPromptId) => {
|
|
9605
9563
|
const agentSessionId = activeConversationIdRef.current;
|
|
9606
9564
|
const normalizedQueuedPromptId = queuedPromptId.trim();
|
|
9607
|
-
if (
|
|
9565
|
+
if (!agentSessionId || !normalizedQueuedPromptId) {
|
|
9608
9566
|
return;
|
|
9609
9567
|
}
|
|
9610
9568
|
const queuedPrompt = selectEngineQueuedPrompt(
|
|
@@ -9689,7 +9647,6 @@ function useAgentGUIQueueActions({
|
|
|
9689
9647
|
[
|
|
9690
9648
|
activeConversationIdRef,
|
|
9691
9649
|
agentActivityRuntime,
|
|
9692
|
-
previewMode,
|
|
9693
9650
|
sessionEngine,
|
|
9694
9651
|
setDraftByScopeKey,
|
|
9695
9652
|
workspaceId
|
|
@@ -9699,7 +9656,7 @@ function useAgentGUIQueueActions({
|
|
|
9699
9656
|
(queuedPromptId) => {
|
|
9700
9657
|
const agentSessionId = activeConversationIdRef.current;
|
|
9701
9658
|
const normalizedQueuedPromptId = queuedPromptId.trim();
|
|
9702
|
-
if (
|
|
9659
|
+
if (!agentSessionId || !normalizedQueuedPromptId) {
|
|
9703
9660
|
return;
|
|
9704
9661
|
}
|
|
9705
9662
|
sessionEngine.dispatch({
|
|
@@ -9711,7 +9668,7 @@ function useAgentGUIQueueActions({
|
|
|
9711
9668
|
type: "queue/sendNowRequested"
|
|
9712
9669
|
});
|
|
9713
9670
|
},
|
|
9714
|
-
[activeConversationIdRef,
|
|
9671
|
+
[activeConversationIdRef, sessionEngine]
|
|
9715
9672
|
);
|
|
9716
9673
|
return {
|
|
9717
9674
|
editQueuedPrompt,
|
|
@@ -9925,7 +9882,6 @@ function useAgentGUIGoalControlActions(input) {
|
|
|
9925
9882
|
);
|
|
9926
9883
|
const goalControl = useCallback18(
|
|
9927
9884
|
(action, objective, submittedDraftScopeKey) => {
|
|
9928
|
-
if (input.previewMode) return;
|
|
9929
9885
|
const agentSessionId = input.activeConversationIdRef.current;
|
|
9930
9886
|
if (!agentSessionId) return;
|
|
9931
9887
|
const submittedDraftSnapshot = submittedDraftScopeKey ? {
|
|
@@ -9976,7 +9932,6 @@ function useAgentGUIGoalControlActions(input) {
|
|
|
9976
9932
|
input.agentActivityRuntime,
|
|
9977
9933
|
input.draftByScopeKeyRef,
|
|
9978
9934
|
input.isCurrentConversation,
|
|
9979
|
-
input.previewMode,
|
|
9980
9935
|
input.setDetailError,
|
|
9981
9936
|
input.setDraftByScopeKey,
|
|
9982
9937
|
input.setGoalClearNoticeSequence,
|
|
@@ -10028,7 +9983,6 @@ function useAgentGUISubmitInteractionActions(input) {
|
|
|
10028
9983
|
isSessionMarkedNonResumable,
|
|
10029
9984
|
persistActiveConversation,
|
|
10030
9985
|
planActionsRef,
|
|
10031
|
-
previewMode,
|
|
10032
9986
|
promptImagesSupported,
|
|
10033
9987
|
optimisticGoalControl,
|
|
10034
9988
|
sessionEngine,
|
|
@@ -10050,7 +10004,6 @@ function useAgentGUISubmitInteractionActions(input) {
|
|
|
10050
10004
|
draftByScopeKeyRef,
|
|
10051
10005
|
isCurrentConversation,
|
|
10052
10006
|
optimisticGoalControl,
|
|
10053
|
-
previewMode,
|
|
10054
10007
|
sessionEngine,
|
|
10055
10008
|
setDetailError,
|
|
10056
10009
|
setDraftByScopeKey,
|
|
@@ -10239,9 +10192,6 @@ function useAgentGUISubmitInteractionActions(input) {
|
|
|
10239
10192
|
);
|
|
10240
10193
|
const submitPrompt = useCallback19(
|
|
10241
10194
|
(content, displayPrompt, options) => {
|
|
10242
|
-
if (previewMode) {
|
|
10243
|
-
return;
|
|
10244
|
-
}
|
|
10245
10195
|
const agentSessionId = activeConversationIdRef.current;
|
|
10246
10196
|
const normalizedContent = normalizeAgentPromptContentBlocks(content);
|
|
10247
10197
|
if (normalizedContent.length === 0) {
|
|
@@ -10367,7 +10317,6 @@ function useAgentGUISubmitInteractionActions(input) {
|
|
|
10367
10317
|
agentActivityRuntime,
|
|
10368
10318
|
beginOptimisticGoalControl,
|
|
10369
10319
|
conversationListQuery,
|
|
10370
|
-
previewMode,
|
|
10371
10320
|
promptImagesSupported,
|
|
10372
10321
|
goalControl,
|
|
10373
10322
|
persistActiveConversation,
|
|
@@ -11888,7 +11837,7 @@ function useAgentGUIConversationPresentation(input) {
|
|
|
11888
11837
|
input.workspacePath
|
|
11889
11838
|
]);
|
|
11890
11839
|
useEffect9(() => {
|
|
11891
|
-
if (input.
|
|
11840
|
+
if (input.agentTargetsLoading || !input.activeConversationId) {
|
|
11892
11841
|
return;
|
|
11893
11842
|
}
|
|
11894
11843
|
const summary = resolveConversationSummaryById(
|
|
@@ -11943,7 +11892,6 @@ function useAgentGUIConversationPresentation(input) {
|
|
|
11943
11892
|
input.normalizedExplicitProviderTargets,
|
|
11944
11893
|
input.normalizedProviderTargets,
|
|
11945
11894
|
input.onDataChangeRef,
|
|
11946
|
-
input.previewMode,
|
|
11947
11895
|
input.agentTargetsLoading,
|
|
11948
11896
|
input.shouldUseStaticProviderTargets,
|
|
11949
11897
|
input.transientConversation
|
|
@@ -11976,7 +11924,6 @@ function useAgentGUIProviderHome(input) {
|
|
|
11976
11924
|
}, []);
|
|
11977
11925
|
const resetHomeComposerAgentTargetToDefault = useCallback21(() => {
|
|
11978
11926
|
const currentInput = inputRef.current;
|
|
11979
|
-
if (currentInput.previewMode) return;
|
|
11980
11927
|
const nextTarget = resolveDefaultHomeComposerTarget();
|
|
11981
11928
|
if (!nextTarget) return;
|
|
11982
11929
|
const nextTargetIsExplicit = currentInput.normalizedExplicitProviderTargets.some(
|
|
@@ -12023,7 +11970,6 @@ function useAgentGUIProviderHome(input) {
|
|
|
12023
11970
|
const selectHomeComposerAgentTarget = useCallback21(
|
|
12024
11971
|
(selection) => {
|
|
12025
11972
|
const currentInput = inputRef.current;
|
|
12026
|
-
if (currentInput.previewMode) return;
|
|
12027
11973
|
const nextTarget = resolveAgentGUIAgentTarget({
|
|
12028
11974
|
agentTargetId: selection.agentTargetId,
|
|
12029
11975
|
defaultAgentTargetId: currentInput.defaultAgentTargetId,
|
|
@@ -12102,7 +12048,7 @@ function useAgentGUIProviderHome(input) {
|
|
|
12102
12048
|
[]
|
|
12103
12049
|
);
|
|
12104
12050
|
useEffect10(() => {
|
|
12105
|
-
if (input.
|
|
12051
|
+
if (input.activeConversationId !== null || input.conversationFilter.kind !== "all" || input.homeComposerTargetOverride !== null || agentGUINodeDataHasComposerTarget(input.data) || !input.providerReadinessGates || !input.firstReadyHomeComposerProviderTarget) {
|
|
12106
12052
|
return;
|
|
12107
12053
|
}
|
|
12108
12054
|
const readyTarget = input.firstReadyHomeComposerProviderTarget;
|
|
@@ -12129,7 +12075,6 @@ function useAgentGUIProviderHome(input) {
|
|
|
12129
12075
|
input.effectiveSelectedProviderTarget,
|
|
12130
12076
|
input.firstReadyHomeComposerProviderTarget,
|
|
12131
12077
|
input.homeComposerTargetOverride,
|
|
12132
|
-
input.previewMode,
|
|
12133
12078
|
input.providerReadinessGates,
|
|
12134
12079
|
selectHomeComposerAgentTarget
|
|
12135
12080
|
]);
|
|
@@ -12227,38 +12172,6 @@ function useAgentGUIProviderHome(input) {
|
|
|
12227
12172
|
},
|
|
12228
12173
|
[selectHomeComposerAgentTarget]
|
|
12229
12174
|
);
|
|
12230
|
-
useEffect10(() => {
|
|
12231
|
-
if (input.previewMode || input.agentTargetsLoading || input.activeConversationId === null || input.conversationFilter.kind !== "agentTarget" || input.isLoadingConversations || !input.conversationListInitialized) {
|
|
12232
|
-
return;
|
|
12233
|
-
}
|
|
12234
|
-
if (input.conversations.some(
|
|
12235
|
-
(conversation) => matchesAgentGUIConversationSummaryFilter(
|
|
12236
|
-
conversation,
|
|
12237
|
-
input.conversationFilter
|
|
12238
|
-
)
|
|
12239
|
-
)) {
|
|
12240
|
-
return;
|
|
12241
|
-
}
|
|
12242
|
-
const filterAgentTargetId = input.conversationFilter.agentTargetId;
|
|
12243
|
-
const target = input.normalizedProviderTargets.find(
|
|
12244
|
-
(candidate) => (candidate.agentTargetId?.trim() ?? "") === filterAgentTargetId
|
|
12245
|
-
);
|
|
12246
|
-
if (!target) return;
|
|
12247
|
-
selectHomeComposerAgentTarget({
|
|
12248
|
-
provider: target.provider,
|
|
12249
|
-
agentTargetId: filterAgentTargetId
|
|
12250
|
-
});
|
|
12251
|
-
}, [
|
|
12252
|
-
input.activeConversationId,
|
|
12253
|
-
input.conversationFilter,
|
|
12254
|
-
input.conversationListInitialized,
|
|
12255
|
-
input.conversations,
|
|
12256
|
-
input.isLoadingConversations,
|
|
12257
|
-
input.normalizedProviderTargets,
|
|
12258
|
-
input.previewMode,
|
|
12259
|
-
input.agentTargetsLoading,
|
|
12260
|
-
selectHomeComposerAgentTarget
|
|
12261
|
-
]);
|
|
12262
12175
|
return {
|
|
12263
12176
|
resetHomeComposerAgentTargetToDefault,
|
|
12264
12177
|
selectConversationFilterTarget,
|
|
@@ -13007,7 +12920,7 @@ import {
|
|
|
13007
12920
|
selectEngineSessionReconcile as selectEngineSessionReconcile2,
|
|
13008
12921
|
selectEngineSessionSettingsUpdate as selectEngineSessionSettingsUpdate2,
|
|
13009
12922
|
selectEngineSubmitAvailability,
|
|
13010
|
-
selectLatestActivationForSession as
|
|
12923
|
+
selectLatestActivationForSession as selectLatestActivationForSession5,
|
|
13011
12924
|
selectLatestPendingSubmitForSession,
|
|
13012
12925
|
selectPendingSubmitsForSession as selectPendingSubmitsForSession4,
|
|
13013
12926
|
selectSessionHasUnconfirmedSubmit,
|
|
@@ -13044,7 +12957,7 @@ function useAgentGUISessionEngineState(input) {
|
|
|
13044
12957
|
);
|
|
13045
12958
|
const activePendingActivation = useEngineSelector(
|
|
13046
12959
|
sessionEngine,
|
|
13047
|
-
(state) =>
|
|
12960
|
+
(state) => selectLatestActivationForSession5(state, activeConversationId)
|
|
13048
12961
|
);
|
|
13049
12962
|
const isCreatingConversation = isPendingNewConversationActivation(
|
|
13050
12963
|
activePendingActivation
|
|
@@ -13223,7 +13136,7 @@ var SESSION_SETTINGS_STATUS_SHOWS_OPTIMISTIC_VALUE = {
|
|
|
13223
13136
|
|
|
13224
13137
|
// agent-gui/agentGuiNode/controller/useAgentGUISessionDetailTransport.ts
|
|
13225
13138
|
import {
|
|
13226
|
-
selectLatestActivationForSession as
|
|
13139
|
+
selectLatestActivationForSession as selectLatestActivationForSession6
|
|
13227
13140
|
} from "@tutti-os/agent-activity-core";
|
|
13228
13141
|
import { useCallback as useCallback25, useMemo as useMemo18 } from "react";
|
|
13229
13142
|
|
|
@@ -13530,7 +13443,7 @@ function useAgentGUISessionDetailTransport(input) {
|
|
|
13530
13443
|
windowHasTurnMissingUserPrompt
|
|
13531
13444
|
},
|
|
13532
13445
|
reload: {
|
|
13533
|
-
getActivationStatus: (agentSessionId) =>
|
|
13446
|
+
getActivationStatus: (agentSessionId) => selectLatestActivationForSession6(
|
|
13534
13447
|
sessionEngine.getSnapshot(),
|
|
13535
13448
|
agentSessionId
|
|
13536
13449
|
)?.status ?? null,
|
|
@@ -13806,7 +13719,6 @@ function useAgentGUINodeController({
|
|
|
13806
13719
|
composerAppendRequest = null,
|
|
13807
13720
|
openSessionRequest = null,
|
|
13808
13721
|
prefillPromptRequest = null,
|
|
13809
|
-
previewMode = false,
|
|
13810
13722
|
onDataChange,
|
|
13811
13723
|
onRememberComposerDefaults,
|
|
13812
13724
|
onShowMessage
|
|
@@ -14019,7 +13931,6 @@ function useAgentGUINodeController({
|
|
|
14019
13931
|
const {
|
|
14020
13932
|
loadSessionState,
|
|
14021
13933
|
markSelectedConversationDetailPending,
|
|
14022
|
-
reloadSelectedConversation,
|
|
14023
13934
|
resolveSessionMessages
|
|
14024
13935
|
} = sessionDetailTransport;
|
|
14025
13936
|
const storedActiveMessages = activeConversationId ? resolveSessionMessages(activeConversationId) : EMPTY_AGENT_GUI_MESSAGES;
|
|
@@ -14094,7 +14005,7 @@ function useAgentGUINodeController({
|
|
|
14094
14005
|
}
|
|
14095
14006
|
};
|
|
14096
14007
|
void loadUserProjects();
|
|
14097
|
-
const unsubscribe =
|
|
14008
|
+
const unsubscribe = api?.subscribe?.(() => {
|
|
14098
14009
|
setIsUserProjectMutationPending(
|
|
14099
14010
|
readAgentGUIUserProjectMutationPending(api)
|
|
14100
14011
|
);
|
|
@@ -14106,7 +14017,6 @@ function useAgentGUINodeController({
|
|
|
14106
14017
|
};
|
|
14107
14018
|
}, [
|
|
14108
14019
|
agentHostApi.userProjects,
|
|
14109
|
-
previewMode,
|
|
14110
14020
|
setIsUserProjectMutationPending,
|
|
14111
14021
|
setUserProjectsSnapshot
|
|
14112
14022
|
]);
|
|
@@ -14181,9 +14091,6 @@ function useAgentGUINodeController({
|
|
|
14181
14091
|
[agentActivityRuntime, workspaceId]
|
|
14182
14092
|
);
|
|
14183
14093
|
useEffect13(() => {
|
|
14184
|
-
if (previewMode) {
|
|
14185
|
-
return;
|
|
14186
|
-
}
|
|
14187
14094
|
if (!hasLoadedConversations) {
|
|
14188
14095
|
return;
|
|
14189
14096
|
}
|
|
@@ -14194,12 +14101,7 @@ function useAgentGUINodeController({
|
|
|
14194
14101
|
onDataChangeRef.current(
|
|
14195
14102
|
(current) => current.conversationCount === nextConversationCount ? current : { ...current, conversationCount: nextConversationCount }
|
|
14196
14103
|
);
|
|
14197
|
-
}, [
|
|
14198
|
-
conversations.length,
|
|
14199
|
-
hasLoadedConversations,
|
|
14200
|
-
previewMode,
|
|
14201
|
-
transientConversation
|
|
14202
|
-
]);
|
|
14104
|
+
}, [conversations.length, hasLoadedConversations, transientConversation]);
|
|
14203
14105
|
useAgentGUIConversationRouting({
|
|
14204
14106
|
activeConversationIdRef,
|
|
14205
14107
|
conversationListQuery,
|
|
@@ -14210,7 +14112,6 @@ function useAgentGUINodeController({
|
|
|
14210
14112
|
intent,
|
|
14211
14113
|
openSessionRequest,
|
|
14212
14114
|
pendingOpenSessionRequestRef,
|
|
14213
|
-
previewMode,
|
|
14214
14115
|
selectConversation,
|
|
14215
14116
|
sessionEngine,
|
|
14216
14117
|
setIntent,
|
|
@@ -14234,13 +14135,10 @@ function useAgentGUINodeController({
|
|
|
14234
14135
|
loadDraftComposerOptionsRef,
|
|
14235
14136
|
loadSessionState,
|
|
14236
14137
|
onComposerDefaultsAuthorityReloadedRef,
|
|
14237
|
-
previewMode,
|
|
14238
14138
|
providerComposerOptions,
|
|
14239
|
-
reloadSelectedConversation,
|
|
14240
14139
|
selectedComposerTargetDataRef,
|
|
14241
14140
|
selectedProjectPath,
|
|
14242
14141
|
selectedProjectPathRef,
|
|
14243
|
-
sessionEngine,
|
|
14244
14142
|
syncConversationListProjection,
|
|
14245
14143
|
workspaceId,
|
|
14246
14144
|
workspacePath
|
|
@@ -14275,7 +14173,6 @@ function useAgentGUINodeController({
|
|
|
14275
14173
|
planActionsRef,
|
|
14276
14174
|
planImplementationTurnIdRef,
|
|
14277
14175
|
prefillPromptRequest,
|
|
14278
|
-
previewMode,
|
|
14279
14176
|
reportActiveConversationCleared: reportAgentGUIActiveConversationCleared,
|
|
14280
14177
|
sessionEngine,
|
|
14281
14178
|
setUserProjectsSnapshot,
|
|
@@ -14315,7 +14212,6 @@ function useAgentGUINodeController({
|
|
|
14315
14212
|
currentUserId,
|
|
14316
14213
|
codeFor: activation.codeFor,
|
|
14317
14214
|
composerTargetProvider: composerTargetData.provider,
|
|
14318
|
-
conversationListInitialized: conversationListState?.initialized === true,
|
|
14319
14215
|
data,
|
|
14320
14216
|
defaultAgentTargetId,
|
|
14321
14217
|
errorFor: activation.errorFor,
|
|
@@ -14328,7 +14224,6 @@ function useAgentGUINodeController({
|
|
|
14328
14224
|
operationActions,
|
|
14329
14225
|
persistActiveConversation,
|
|
14330
14226
|
planImplementationTurnIdRef,
|
|
14331
|
-
previewMode,
|
|
14332
14227
|
providerRailMode,
|
|
14333
14228
|
providerReadinessGates,
|
|
14334
14229
|
targetConnectionSource,
|
|
@@ -14854,7 +14749,7 @@ var EMPTY_STATUS_STORE = {
|
|
|
14854
14749
|
};
|
|
14855
14750
|
var selectStatusSnapshot = (snapshot) => snapshot;
|
|
14856
14751
|
function useAgentGUIStatus(input) {
|
|
14857
|
-
const { agentStatusController,
|
|
14752
|
+
const { agentStatusController, t, viewModel } = input;
|
|
14858
14753
|
const agentStatusSnapshot = useEngineSelector(
|
|
14859
14754
|
agentStatusController ?? EMPTY_STATUS_STORE,
|
|
14860
14755
|
selectStatusSnapshot
|
|
@@ -14923,11 +14818,11 @@ function useAgentGUIStatus(input) {
|
|
|
14923
14818
|
);
|
|
14924
14819
|
const requestStatus = useCallback29(
|
|
14925
14820
|
(request) => {
|
|
14926
|
-
|
|
14821
|
+
{
|
|
14927
14822
|
agentStatusController?.open(request);
|
|
14928
14823
|
}
|
|
14929
14824
|
},
|
|
14930
|
-
[agentStatusController
|
|
14825
|
+
[agentStatusController]
|
|
14931
14826
|
);
|
|
14932
14827
|
const closeStatus = useCallback29(
|
|
14933
14828
|
(reason) => {
|
|
@@ -15193,7 +15088,6 @@ var styles = {
|
|
|
15193
15088
|
conversationStatusGlyph: "agent-gui-node__conversation-status-glyph",
|
|
15194
15089
|
conversationTime: "agent-gui-node__conversation-time",
|
|
15195
15090
|
conversationTitle: "agent-gui-node__conversation-title",
|
|
15196
|
-
conversationTitleMentionIcon: "agent-gui-node__conversation-title-mention-icon",
|
|
15197
15091
|
conversationTitleRow: "agent-gui-node__conversation-title-row",
|
|
15198
15092
|
conversationUnreadLamp: "agent-gui-node__conversation-unread-lamp",
|
|
15199
15093
|
detail: "agent-gui-node__detail",
|
|
@@ -15503,7 +15397,6 @@ import { Fragment as Fragment2, jsx as jsx14, jsxs as jsxs7 } from "react/jsx-ru
|
|
|
15503
15397
|
function AgentGUIConfigMenu({
|
|
15504
15398
|
environmentSetupVisible,
|
|
15505
15399
|
labels,
|
|
15506
|
-
previewMode,
|
|
15507
15400
|
providerScopedActionsVisible,
|
|
15508
15401
|
slashStatusLimits,
|
|
15509
15402
|
slashStatusLimitsLoading,
|
|
@@ -15543,7 +15436,6 @@ function AgentGUIConfigMenu({
|
|
|
15543
15436
|
"aria-label": labels.agentConfig,
|
|
15544
15437
|
className: `${AgentGUINode_styles_default.providerRailConfigButton} nodrag tsh-desktop-no-drag`,
|
|
15545
15438
|
title: labels.agentConfig,
|
|
15546
|
-
disabled: previewMode,
|
|
15547
15439
|
children: /* @__PURE__ */ jsx14(SettingsLinedIcon, { "aria-hidden": "true", width: 18, height: 18 })
|
|
15548
15440
|
}
|
|
15549
15441
|
) }),
|
|
@@ -15605,7 +15497,7 @@ function AgentGUIConfigMenu({
|
|
|
15605
15497
|
capturedAtUnixMs: slashStatusUsageCapturedAtUnixMs,
|
|
15606
15498
|
isLoading: slashStatusLimitsLoading,
|
|
15607
15499
|
didFail: slashStatusUsageDidFail,
|
|
15608
|
-
disabled:
|
|
15500
|
+
disabled: !onAgentUsageRefresh,
|
|
15609
15501
|
onRefresh: () => onAgentUsageRefresh?.(),
|
|
15610
15502
|
labels: {
|
|
15611
15503
|
justUpdated: labels.slashStatusUsageJustUpdated,
|
|
@@ -15637,7 +15529,6 @@ function AgentGUIConfigMenu({
|
|
|
15637
15529
|
type: "button",
|
|
15638
15530
|
"data-testid": "agent-gui-config-env-setup",
|
|
15639
15531
|
className: "nodrag flex h-7 w-full items-center gap-2 rounded-[6px] px-2 text-[13px] text-[var(--text-primary)] transition-colors hover:bg-[var(--transparency-hover)] hover:text-[var(--text-primary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-focus)] disabled:text-[var(--text-tertiary)] [-webkit-app-region:no-drag]",
|
|
15640
|
-
disabled: previewMode,
|
|
15641
15532
|
onClick: () => onOpenAgentEnvSetup(),
|
|
15642
15533
|
children: [
|
|
15643
15534
|
/* @__PURE__ */ jsx14(Wrench, { "aria-hidden": "true", size: 16, strokeWidth: 1.8 }),
|
|
@@ -15651,7 +15542,6 @@ function AgentGUIConfigMenu({
|
|
|
15651
15542
|
type: "button",
|
|
15652
15543
|
"data-testid": "agent-gui-config-settings",
|
|
15653
15544
|
className: "nodrag flex h-7 w-full items-center gap-2 rounded-[6px] px-2 text-[13px] text-[var(--text-primary)] transition-colors hover:bg-[var(--transparency-hover)] hover:text-[var(--text-primary)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--border-focus)] disabled:text-[var(--text-tertiary)] [-webkit-app-region:no-drag]",
|
|
15654
|
-
disabled: previewMode,
|
|
15655
15545
|
onClick: () => onOpenAgentSettings(),
|
|
15656
15546
|
children: [
|
|
15657
15547
|
/* @__PURE__ */ jsx14(SettingsLinedIcon, { "aria-hidden": "true", width: 16, height: 16 }),
|
|
@@ -18491,7 +18381,6 @@ function useComposerLayout({
|
|
|
18491
18381
|
projectMissingProbeEnabled,
|
|
18492
18382
|
showFileMentionPalette,
|
|
18493
18383
|
showFloatingCommandMenu,
|
|
18494
|
-
previewMode,
|
|
18495
18384
|
promptTips,
|
|
18496
18385
|
promptTipsPrefix,
|
|
18497
18386
|
composerSettings,
|
|
@@ -18522,10 +18411,6 @@ function useComposerLayout({
|
|
|
18522
18411
|
"--agent-gui-prompt-tip-cycle-duration": `${promptTips.length * PROMPT_TIP_CYCLE_STEP_MS}ms`
|
|
18523
18412
|
} : void 0;
|
|
18524
18413
|
useLayoutEffect2(() => {
|
|
18525
|
-
if (previewMode) {
|
|
18526
|
-
setIsPromptTipOverflowing(false);
|
|
18527
|
-
return;
|
|
18528
|
-
}
|
|
18529
18414
|
if (!activePromptTipId) {
|
|
18530
18415
|
setIsPromptTipOverflowing(false);
|
|
18531
18416
|
return;
|
|
@@ -18546,7 +18431,7 @@ function useComposerLayout({
|
|
|
18546
18431
|
return () => {
|
|
18547
18432
|
resizeObserver?.disconnect();
|
|
18548
18433
|
};
|
|
18549
|
-
}, [activePromptTipId, activePromptTipText
|
|
18434
|
+
}, [activePromptTipId, activePromptTipText]);
|
|
18550
18435
|
const measureDockComposer = useCallback33(() => {
|
|
18551
18436
|
composerMeasurementFrameRef.current = null;
|
|
18552
18437
|
if (isHeroLayout) {
|
|
@@ -20271,7 +20156,6 @@ import { useMemo as useMemo27 } from "react";
|
|
|
20271
20156
|
function useComposerProviderTargets(input) {
|
|
20272
20157
|
const {
|
|
20273
20158
|
layoutMode,
|
|
20274
|
-
previewMode,
|
|
20275
20159
|
provider,
|
|
20276
20160
|
agentTargets,
|
|
20277
20161
|
handoffAgentTargets,
|
|
@@ -20327,7 +20211,7 @@ function useComposerProviderTargets(input) {
|
|
|
20327
20211
|
const providerSelectDisabled = providerSelectReadonly || composerControlsHardDisabled || inputDisabled;
|
|
20328
20212
|
const handoffDisabled = composerControlsHardDisabled || inputDisabled || !onHandoffConversation || handoffMenuTargets.length === 0;
|
|
20329
20213
|
const showProviderSelect = !isHeroLayout && selectedProviderSwitchTarget !== null && providerMenuTargets.length > 0;
|
|
20330
|
-
const showHandoffSelect = showProviderSelect && providerSelectReadonly
|
|
20214
|
+
const showHandoffSelect = showProviderSelect && providerSelectReadonly;
|
|
20331
20215
|
return {
|
|
20332
20216
|
composerClassName,
|
|
20333
20217
|
effectiveHandoffLabel,
|
|
@@ -21387,7 +21271,6 @@ function AgentQueuedPromptText({
|
|
|
21387
21271
|
className: "agent-gui-node__composer-queued-prompt-markdown",
|
|
21388
21272
|
inline: true,
|
|
21389
21273
|
onLinkClick,
|
|
21390
|
-
previewMode: true,
|
|
21391
21274
|
workspaceAppIcons
|
|
21392
21275
|
}
|
|
21393
21276
|
)
|
|
@@ -21656,7 +21539,6 @@ function AgentQueuedPromptPanel({
|
|
|
21656
21539
|
|
|
21657
21540
|
// agent-gui/agentGuiNode/AgentComposerSettingsMenus.tsx
|
|
21658
21541
|
import { Fragment as Fragment9, useEffect as useEffect21, useState as useState17 } from "react";
|
|
21659
|
-
import { ChevronDown as ChevronDown3 } from "lucide-react";
|
|
21660
21542
|
import { prepareWorkspaceUserProjectSelection } from "@tutti-os/workspace-user-project/core";
|
|
21661
21543
|
import {
|
|
21662
21544
|
Select,
|
|
@@ -22419,7 +22301,6 @@ function ComposerOptionInfoTooltip({
|
|
|
22419
22301
|
function AgentModelReasoningDropdown({
|
|
22420
22302
|
composerSettings,
|
|
22421
22303
|
disabled = false,
|
|
22422
|
-
previewMode = false,
|
|
22423
22304
|
labels,
|
|
22424
22305
|
modelHistoryTargetId = null,
|
|
22425
22306
|
onSettingsChange
|
|
@@ -22530,9 +22411,6 @@ function AgentModelReasoningDropdown({
|
|
|
22530
22411
|
]
|
|
22531
22412
|
}
|
|
22532
22413
|
);
|
|
22533
|
-
if (previewMode) {
|
|
22534
|
-
return trigger;
|
|
22535
|
-
}
|
|
22536
22414
|
return /* @__PURE__ */ jsxs18(DropdownMenu3, { open: menuOpen, onOpenChange: handleMenuOpenChange, children: [
|
|
22537
22415
|
isModelLoading ? (
|
|
22538
22416
|
// The trigger is disabled while loading, so pointer events never reach
|
|
@@ -22605,7 +22483,7 @@ function AgentModelReasoningDropdown({
|
|
|
22605
22483
|
options: menu.model.favoriteOptions,
|
|
22606
22484
|
selectedValue: menu.model.selectedValue,
|
|
22607
22485
|
descriptionPresentation: modelDescriptionPresentation,
|
|
22608
|
-
tooltipsEnabled:
|
|
22486
|
+
tooltipsEnabled: true,
|
|
22609
22487
|
favoriteValues: favoriteValueSet,
|
|
22610
22488
|
onToggleFavorite: handleToggleFavoriteModel,
|
|
22611
22489
|
onSelect: applyModelSelection
|
|
@@ -22627,7 +22505,7 @@ function AgentModelReasoningDropdown({
|
|
|
22627
22505
|
options: menu.model.recentOptions,
|
|
22628
22506
|
selectedValue: menu.model.selectedValue,
|
|
22629
22507
|
descriptionPresentation: modelDescriptionPresentation,
|
|
22630
|
-
tooltipsEnabled:
|
|
22508
|
+
tooltipsEnabled: true,
|
|
22631
22509
|
favoriteValues: favoriteValueSet,
|
|
22632
22510
|
onToggleFavorite: handleToggleFavoriteModel,
|
|
22633
22511
|
onSelect: applyModelSelection
|
|
@@ -22643,7 +22521,7 @@ function AgentModelReasoningDropdown({
|
|
|
22643
22521
|
options: group.options,
|
|
22644
22522
|
selectedValue: menu.model.selectedValue,
|
|
22645
22523
|
descriptionPresentation: modelDescriptionPresentation,
|
|
22646
|
-
tooltipsEnabled:
|
|
22524
|
+
tooltipsEnabled: true,
|
|
22647
22525
|
favoriteValues: favoriteValueSet,
|
|
22648
22526
|
onToggleFavorite: handleToggleFavoriteModel,
|
|
22649
22527
|
onSelect: applyModelSelection
|
|
@@ -22655,7 +22533,7 @@ function AgentModelReasoningDropdown({
|
|
|
22655
22533
|
options: menu.model.options,
|
|
22656
22534
|
selectedValue: menu.model.selectedValue,
|
|
22657
22535
|
descriptionPresentation: modelDescriptionPresentation,
|
|
22658
|
-
tooltipsEnabled:
|
|
22536
|
+
tooltipsEnabled: true,
|
|
22659
22537
|
favoriteValues: favoriteValueSet,
|
|
22660
22538
|
onToggleFavorite: handleToggleFavoriteModel,
|
|
22661
22539
|
onSelect: applyModelSelection
|
|
@@ -22693,7 +22571,7 @@ function AgentModelReasoningDropdown({
|
|
|
22693
22571
|
{
|
|
22694
22572
|
options: menu.reasoning.options,
|
|
22695
22573
|
selectedValue: menu.reasoning.selectedValue,
|
|
22696
|
-
tooltipsEnabled:
|
|
22574
|
+
tooltipsEnabled: true,
|
|
22697
22575
|
onSelect: (value) => applySettingsChange({ reasoningEffort: value })
|
|
22698
22576
|
}
|
|
22699
22577
|
)
|
|
@@ -22723,7 +22601,7 @@ function AgentModelReasoningDropdown({
|
|
|
22723
22601
|
options: menu.speed.options,
|
|
22724
22602
|
selectedValue: menu.speed.selectedValue,
|
|
22725
22603
|
descriptionPresentation: "inline",
|
|
22726
|
-
tooltipsEnabled:
|
|
22604
|
+
tooltipsEnabled: true,
|
|
22727
22605
|
onSelect: (value) => applySettingsChange({ speed: value })
|
|
22728
22606
|
}
|
|
22729
22607
|
)
|
|
@@ -22925,17 +22803,10 @@ function ComposerModelOptionTooltip({
|
|
|
22925
22803
|
|
|
22926
22804
|
// agent-gui/agentGuiNode/AgentComposerProjectMenu.tsx
|
|
22927
22805
|
import { useMemo as useMemo28 } from "react";
|
|
22928
|
-
import { ChevronDown as ChevronDown2 } from "lucide-react";
|
|
22929
22806
|
import {
|
|
22930
|
-
WorkspaceUserProjectSelect
|
|
22931
|
-
resolveWorkspaceUserProjectSelectLabels
|
|
22807
|
+
WorkspaceUserProjectSelect
|
|
22932
22808
|
} from "@tutti-os/workspace-user-project/ui";
|
|
22933
|
-
import {
|
|
22934
|
-
FolderIcon,
|
|
22935
|
-
NewWorkspaceLinedIcon,
|
|
22936
|
-
NoWorkspaceLinedIcon,
|
|
22937
|
-
cn as cn3
|
|
22938
|
-
} from "@tutti-os/ui-system";
|
|
22809
|
+
import { NewWorkspaceLinedIcon, cn as cn3 } from "@tutti-os/ui-system";
|
|
22939
22810
|
|
|
22940
22811
|
// agent-gui/agentGuiNode/agentGuiUserProjectSelectionApi.ts
|
|
22941
22812
|
function createAgentGUIUserProjectSelectionApi({
|
|
@@ -22952,16 +22823,11 @@ function createAgentGUIUserProjectSelectionApi({
|
|
|
22952
22823
|
}
|
|
22953
22824
|
|
|
22954
22825
|
// agent-gui/agentGuiNode/AgentComposerProjectMenu.tsx
|
|
22955
|
-
import { jsx as jsx26
|
|
22956
|
-
function basenameProjectPath(path) {
|
|
22957
|
-
const normalized = path.trim().replaceAll("\\", "/").replace(/\/+$/, "");
|
|
22958
|
-
return normalized.split("/").filter(Boolean).at(-1) ?? path;
|
|
22959
|
-
}
|
|
22826
|
+
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
22960
22827
|
function AgentProjectDropdown({
|
|
22961
22828
|
composerSettings,
|
|
22962
22829
|
labels,
|
|
22963
22830
|
i18n,
|
|
22964
|
-
previewMode = false,
|
|
22965
22831
|
selectProjectDirectory,
|
|
22966
22832
|
onDismissAutoFocus,
|
|
22967
22833
|
onProjectMissingChange,
|
|
@@ -22969,55 +22835,13 @@ function AgentProjectDropdown({
|
|
|
22969
22835
|
}) {
|
|
22970
22836
|
"use memo";
|
|
22971
22837
|
const agentHostApi = useAgentHostApi();
|
|
22972
|
-
const resolvedLabels = useMemo28(
|
|
22973
|
-
() => resolveWorkspaceUserProjectSelectLabels(i18n, labels),
|
|
22974
|
-
[i18n, labels]
|
|
22975
|
-
);
|
|
22976
22838
|
const userProjectApi = useMemo28(
|
|
22977
22839
|
() => createAgentGUIUserProjectSelectionApi({
|
|
22978
22840
|
selectProjectDirectory,
|
|
22979
|
-
userProjects:
|
|
22841
|
+
userProjects: agentHostApi.userProjects
|
|
22980
22842
|
}),
|
|
22981
|
-
[agentHostApi.userProjects,
|
|
22843
|
+
[agentHostApi.userProjects, selectProjectDirectory]
|
|
22982
22844
|
);
|
|
22983
|
-
if (previewMode) {
|
|
22984
|
-
const selectedPath = composerSettings.selectedProjectPath?.trim() ?? "";
|
|
22985
|
-
const triggerLabel = selectedPath ? basenameProjectPath(selectedPath) : resolvedLabels.noProject;
|
|
22986
|
-
return /* @__PURE__ */ jsxs19(
|
|
22987
|
-
"button",
|
|
22988
|
-
{
|
|
22989
|
-
type: "button",
|
|
22990
|
-
"aria-label": composerSettings.projectLocked ? resolvedLabels.projectLocked : resolvedLabels.projectLabel,
|
|
22991
|
-
className: cn3(
|
|
22992
|
-
"w-auto max-w-full",
|
|
22993
|
-
AgentGUINode_styles_default.composerMenuTrigger,
|
|
22994
|
-
"text-[var(--agent-gui-text-tertiary)]"
|
|
22995
|
-
),
|
|
22996
|
-
children: [
|
|
22997
|
-
/* @__PURE__ */ jsxs19(
|
|
22998
|
-
"span",
|
|
22999
|
-
{
|
|
23000
|
-
className: "workspace-user-project-trigger-label",
|
|
23001
|
-
"data-workspace-user-project-trigger-label": "true",
|
|
23002
|
-
children: [
|
|
23003
|
-
selectedPath ? /* @__PURE__ */ jsx26(FolderIcon, { "aria-hidden": true, className: "shrink-0", size: 15 }) : /* @__PURE__ */ jsx26(
|
|
23004
|
-
NoWorkspaceLinedIcon,
|
|
23005
|
-
{
|
|
23006
|
-
"aria-hidden": true,
|
|
23007
|
-
className: "shrink-0",
|
|
23008
|
-
"data-agent-project-trigger-no-workspace-icon": "true",
|
|
23009
|
-
size: 15
|
|
23010
|
-
}
|
|
23011
|
-
),
|
|
23012
|
-
/* @__PURE__ */ jsx26("span", { className: "min-w-0 truncate", children: triggerLabel })
|
|
23013
|
-
]
|
|
23014
|
-
}
|
|
23015
|
-
),
|
|
23016
|
-
/* @__PURE__ */ jsx26(ChevronDown2, { "aria-hidden": "true", className: "shrink-0", size: 16 })
|
|
23017
|
-
]
|
|
23018
|
-
}
|
|
23019
|
-
);
|
|
23020
|
-
}
|
|
23021
22845
|
return /* @__PURE__ */ jsx26(
|
|
23022
22846
|
WorkspaceUserProjectSelect,
|
|
23023
22847
|
{
|
|
@@ -23057,13 +22881,12 @@ function AgentProjectDropdown({
|
|
|
23057
22881
|
}
|
|
23058
22882
|
|
|
23059
22883
|
// agent-gui/agentGuiNode/AgentComposerSettingsMenus.tsx
|
|
23060
|
-
import { jsx as jsx27, jsxs as
|
|
22884
|
+
import { jsx as jsx27, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
23061
22885
|
function AgentPermissionModeDropdown({
|
|
23062
22886
|
composerSettings,
|
|
23063
22887
|
disabled = false,
|
|
23064
22888
|
disabledTooltip,
|
|
23065
22889
|
onLinkAction,
|
|
23066
|
-
previewMode = false,
|
|
23067
22890
|
provider,
|
|
23068
22891
|
labels,
|
|
23069
22892
|
onSettingsChange
|
|
@@ -23105,27 +22928,6 @@ function AgentPermissionModeDropdown({
|
|
|
23105
22928
|
}
|
|
23106
22929
|
commitPermissionModeId(permissionModeId);
|
|
23107
22930
|
};
|
|
23108
|
-
const trigger = /* @__PURE__ */ jsxs20(
|
|
23109
|
-
"button",
|
|
23110
|
-
{
|
|
23111
|
-
type: "button",
|
|
23112
|
-
className: cn4(
|
|
23113
|
-
"w-auto max-w-full",
|
|
23114
|
-
AgentGUINode_styles_default.composerMenuTrigger,
|
|
23115
|
-
selectDisabled && "cursor-not-allowed text-[var(--agent-gui-text-tertiary)] opacity-60 hover:text-[var(--agent-gui-text-tertiary)]",
|
|
23116
|
-
composerSettings.isSettingsLoading && "animate-pulse"
|
|
23117
|
-
),
|
|
23118
|
-
"aria-label": labels.permissionLabel,
|
|
23119
|
-
"data-permission-tone": triggerTone,
|
|
23120
|
-
children: [
|
|
23121
|
-
/* @__PURE__ */ jsx27("span", { className: "flex min-w-0 flex-1 items-center", children: /* @__PURE__ */ jsx27("span", { className: "truncate", children: triggerLabel }) }),
|
|
23122
|
-
/* @__PURE__ */ jsx27(ChevronDown3, { "aria-hidden": "true", className: "shrink-0", size: 16 })
|
|
23123
|
-
]
|
|
23124
|
-
}
|
|
23125
|
-
);
|
|
23126
|
-
if (previewMode) {
|
|
23127
|
-
return trigger;
|
|
23128
|
-
}
|
|
23129
22931
|
const selectTrigger = /* @__PURE__ */ jsx27(
|
|
23130
22932
|
SelectTrigger,
|
|
23131
22933
|
{
|
|
@@ -23140,8 +22942,8 @@ function AgentPermissionModeDropdown({
|
|
|
23140
22942
|
children: /* @__PURE__ */ jsx27("span", { className: "flex min-w-0 flex-1 items-center", children: /* @__PURE__ */ jsx27("span", { className: "truncate", children: triggerLabel }) })
|
|
23141
22943
|
}
|
|
23142
22944
|
);
|
|
23143
|
-
return /* @__PURE__ */
|
|
23144
|
-
/* @__PURE__ */
|
|
22945
|
+
return /* @__PURE__ */ jsxs19(Fragment9, { children: [
|
|
22946
|
+
/* @__PURE__ */ jsxs19(
|
|
23145
22947
|
Select,
|
|
23146
22948
|
{
|
|
23147
22949
|
open: isSelectOpen,
|
|
@@ -23154,7 +22956,7 @@ function AgentPermissionModeDropdown({
|
|
|
23154
22956
|
// Disabled controls do not receive pointer events. Target the tooltip
|
|
23155
22957
|
// at a focusable wrapper span so hover/focus reliably surfaces the
|
|
23156
22958
|
// reason, both during loading and while a turn is active.
|
|
23157
|
-
/* @__PURE__ */ jsx27(TooltipProvider2, { delayDuration: 120, children: /* @__PURE__ */
|
|
22959
|
+
/* @__PURE__ */ jsx27(TooltipProvider2, { delayDuration: 120, children: /* @__PURE__ */ jsxs19(Tooltip3, { children: [
|
|
23158
22960
|
/* @__PURE__ */ jsx27(TooltipTrigger3, { asChild: true, children: /* @__PURE__ */ jsx27("span", { className: "inline-flex", tabIndex: 0, children: selectTrigger }) }),
|
|
23159
22961
|
/* @__PURE__ */ jsx27(TooltipContent3, { side: "top", children: selectDisabledTooltip })
|
|
23160
22962
|
] }) })
|
|
@@ -23176,13 +22978,13 @@ function AgentPermissionModeDropdown({
|
|
|
23176
22978
|
value: option.value,
|
|
23177
22979
|
disabled: selectDisabled,
|
|
23178
22980
|
className: cn4(AgentGUINode_styles_default.composerMenuItem, "group/composer-option"),
|
|
23179
|
-
children: /* @__PURE__ */
|
|
22981
|
+
children: /* @__PURE__ */ jsxs19("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
23180
22982
|
/* @__PURE__ */ jsx27("span", { className: "min-w-0 truncate", children: option.label }),
|
|
23181
22983
|
option.description ? /* @__PURE__ */ jsx27(
|
|
23182
22984
|
ComposerOptionInfoTooltip,
|
|
23183
22985
|
{
|
|
23184
22986
|
description: option.description,
|
|
23185
|
-
tooltipsEnabled:
|
|
22987
|
+
tooltipsEnabled: true
|
|
23186
22988
|
}
|
|
23187
22989
|
) : null
|
|
23188
22990
|
] })
|
|
@@ -23299,11 +23101,10 @@ function normalizePermissionModeValue(value) {
|
|
|
23299
23101
|
// agent-gui/agentGuiNode/AgentFullAccessRestoredWarning.tsx
|
|
23300
23102
|
import { useState as useState18 } from "react";
|
|
23301
23103
|
import { ShieldAlert, X as X2 } from "lucide-react";
|
|
23302
|
-
import { jsx as jsx28, jsxs as
|
|
23104
|
+
import { jsx as jsx28, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
23303
23105
|
function AgentFullAccessRestoredWarning({
|
|
23304
23106
|
isSettingsLoading,
|
|
23305
23107
|
permissionModeId,
|
|
23306
|
-
previewMode,
|
|
23307
23108
|
provider,
|
|
23308
23109
|
visibleOnHome
|
|
23309
23110
|
}) {
|
|
@@ -23311,11 +23112,11 @@ function AgentFullAccessRestoredWarning({
|
|
|
23311
23112
|
const [dismissedForCurrentOpen, setDismissedForCurrentOpen] = useState18(false);
|
|
23312
23113
|
const acknowledged = isCodexFullAccessWarningAcknowledged();
|
|
23313
23114
|
const normalizedPermissionModeId = permissionModeId?.trim() ?? "";
|
|
23314
|
-
const shouldShow = visibleOnHome && !
|
|
23115
|
+
const shouldShow = visibleOnHome && !isSettingsLoading && !dismissedForCurrentOpen && !acknowledged && requiresFullAccessSafetyConfirmation(provider, normalizedPermissionModeId);
|
|
23315
23116
|
if (!shouldShow) {
|
|
23316
23117
|
return null;
|
|
23317
23118
|
}
|
|
23318
|
-
return /* @__PURE__ */
|
|
23119
|
+
return /* @__PURE__ */ jsxs20(
|
|
23319
23120
|
"section",
|
|
23320
23121
|
{
|
|
23321
23122
|
className: cn(
|
|
@@ -23327,7 +23128,7 @@ function AgentFullAccessRestoredWarning({
|
|
|
23327
23128
|
role: "alert",
|
|
23328
23129
|
children: [
|
|
23329
23130
|
/* @__PURE__ */ jsx28(ShieldAlert, { "aria-hidden": "true", className: "size-5 shrink-0" }),
|
|
23330
|
-
/* @__PURE__ */
|
|
23131
|
+
/* @__PURE__ */ jsxs20("div", { className: "min-w-[220px] flex-1", children: [
|
|
23331
23132
|
/* @__PURE__ */ jsx28("p", { className: "m-0 font-semibold leading-[1.35]", children: t("agentHost.agentGui.fullAccessRestoredWarning.title") }),
|
|
23332
23133
|
/* @__PURE__ */ jsx28("p", { className: "m-0 mt-0.5 text-[13px] leading-[1.45]", children: t("agentHost.agentGui.fullAccessRestoredWarning.description") })
|
|
23333
23134
|
] }),
|
|
@@ -23977,7 +23778,7 @@ import {
|
|
|
23977
23778
|
} from "react";
|
|
23978
23779
|
import { createPortal as createPortal2 } from "react-dom";
|
|
23979
23780
|
import { EditorContent } from "@tiptap/react";
|
|
23980
|
-
import { jsx as jsx29, jsxs as
|
|
23781
|
+
import { jsx as jsx29, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
23981
23782
|
function AgentRichTextEditorSurface({
|
|
23982
23783
|
className,
|
|
23983
23784
|
contextMenu,
|
|
@@ -23991,7 +23792,7 @@ function AgentRichTextEditorSurface({
|
|
|
23991
23792
|
placeholder,
|
|
23992
23793
|
t
|
|
23993
23794
|
}) {
|
|
23994
|
-
return /* @__PURE__ */
|
|
23795
|
+
return /* @__PURE__ */ jsxs21(
|
|
23995
23796
|
"div",
|
|
23996
23797
|
{
|
|
23997
23798
|
className: "relative min-w-0",
|
|
@@ -24012,7 +23813,7 @@ function AgentRichTextEditorSurface({
|
|
|
24012
23813
|
}
|
|
24013
23814
|
),
|
|
24014
23815
|
contextMenu ? createPortal2(
|
|
24015
|
-
/* @__PURE__ */
|
|
23816
|
+
/* @__PURE__ */ jsxs21(
|
|
24016
23817
|
"div",
|
|
24017
23818
|
{
|
|
24018
23819
|
role: "menu",
|
|
@@ -24809,7 +24610,7 @@ import {
|
|
|
24809
24610
|
Target,
|
|
24810
24611
|
ZapIcon as ZapIcon2
|
|
24811
24612
|
} from "lucide-react";
|
|
24812
|
-
import { jsx as jsx32, jsxs as
|
|
24613
|
+
import { jsx as jsx32, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
24813
24614
|
var paletteStyles = {
|
|
24814
24615
|
palette: "nodrag agent-gui-node__mention-palette flex h-full min-h-0 flex-col gap-0.5 overflow-y-auto px-1 pb-1 pt-2 [-webkit-app-region:no-drag]",
|
|
24815
24616
|
option: "nodrag relative flex h-7 min-h-7 w-full min-w-0 cursor-pointer select-none items-center gap-2 overflow-hidden rounded-[6px] border-0 bg-transparent px-2.5 py-0 text-left text-[13px] text-[var(--text-primary)] outline-hidden transition-colors duration-200 [-webkit-app-region:no-drag] hover:bg-[var(--transparency-block)] focus-visible:bg-[var(--transparency-block)] focus-visible:outline-none active:bg-[var(--transparency-active)] data-[highlighted]:bg-[var(--transparency-block)] data-[highlighted]:text-[var(--text-primary)] [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
@@ -24867,7 +24668,7 @@ function AgentSlashCommandPalette({
|
|
|
24867
24668
|
(entry) => entry.type === "capability"
|
|
24868
24669
|
);
|
|
24869
24670
|
const capabilityLoadingInsertIndex = capabilitiesLoading ? capabilityLoadingIndex(entries) : -1;
|
|
24870
|
-
const capabilityLoadingNode = capabilitiesLoading ? /* @__PURE__ */
|
|
24671
|
+
const capabilityLoadingNode = capabilitiesLoading ? /* @__PURE__ */ jsxs22(Fragment10, { children: [
|
|
24871
24672
|
!hasCapabilityEntries ? /* @__PURE__ */ jsx32(
|
|
24872
24673
|
"div",
|
|
24873
24674
|
{
|
|
@@ -24879,12 +24680,12 @@ function AgentSlashCommandPalette({
|
|
|
24879
24680
|
children: capabilitiesGroupLabel
|
|
24880
24681
|
}
|
|
24881
24682
|
) : null,
|
|
24882
|
-
/* @__PURE__ */
|
|
24683
|
+
/* @__PURE__ */ jsxs22("div", { "aria-live": "polite", className: paletteStyles.loading, role: "status", children: [
|
|
24883
24684
|
/* @__PURE__ */ jsx32("span", { "aria-hidden": "true", className: paletteStyles.icon, children: /* @__PURE__ */ jsx32(Spinner3, { size: 12, strokeWidth: 2 }) }),
|
|
24884
24685
|
/* @__PURE__ */ jsx32("span", { children: capabilitiesLoadingLabel })
|
|
24885
24686
|
] })
|
|
24886
24687
|
] }, "capability-loading") : null;
|
|
24887
|
-
return /* @__PURE__ */
|
|
24688
|
+
return /* @__PURE__ */ jsxs22("div", { className: paletteStyles.palette, role: "listbox", "aria-label": label, children: [
|
|
24888
24689
|
entries.map((entry, index) => {
|
|
24889
24690
|
const isHighlighted = index === highlightedIndex;
|
|
24890
24691
|
const isDisabled = entry.type === "capability" && entry.disabled === true;
|
|
@@ -24908,10 +24709,10 @@ function AgentSlashCommandPalette({
|
|
|
24908
24709
|
})
|
|
24909
24710
|
}
|
|
24910
24711
|
) : null;
|
|
24911
|
-
return /* @__PURE__ */
|
|
24712
|
+
return /* @__PURE__ */ jsxs22(Fragment10, { children: [
|
|
24912
24713
|
capabilityLoadingInsertIndex === index ? capabilityLoadingNode : null,
|
|
24913
24714
|
groupHeader,
|
|
24914
|
-
/* @__PURE__ */
|
|
24715
|
+
/* @__PURE__ */ jsxs22(
|
|
24915
24716
|
"div",
|
|
24916
24717
|
{
|
|
24917
24718
|
ref: isHighlighted ? highlightedOptionRef : null,
|
|
@@ -24946,8 +24747,8 @@ function AgentSlashCommandPalette({
|
|
|
24946
24747
|
},
|
|
24947
24748
|
children: [
|
|
24948
24749
|
entryIcon ? /* @__PURE__ */ jsx32("span", { "aria-hidden": "true", className: paletteStyles.icon, children: entryIcon }) : null,
|
|
24949
|
-
/* @__PURE__ */
|
|
24950
|
-
/* @__PURE__ */
|
|
24750
|
+
/* @__PURE__ */ jsxs22("span", { className: paletteStyles.copy, children: [
|
|
24751
|
+
/* @__PURE__ */ jsxs22("span", { className: paletteStyles.name, children: [
|
|
24951
24752
|
/* @__PURE__ */ jsx32("span", { className: paletteStyles.primaryName, children: entry.type === "command" ? entry.primaryLabel ?? entry.label : entry.label }),
|
|
24952
24753
|
entry.type === "command" && entry.secondaryLabel ? /* @__PURE__ */ jsx32("span", { className: paletteStyles.secondaryName, children: entry.secondaryLabel }) : null
|
|
24953
24754
|
] }),
|
|
@@ -25147,7 +24948,7 @@ var AgentReviewBranchController = class {
|
|
|
25147
24948
|
};
|
|
25148
24949
|
|
|
25149
24950
|
// agent-gui/agentGuiNode/AgentReviewPickerPanel.tsx
|
|
25150
|
-
import { jsx as jsx33, jsxs as
|
|
24951
|
+
import { jsx as jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
25151
24952
|
var reviewMenuStyles = {
|
|
25152
24953
|
panel: "agent-gui-node__slash-status-panel nodrag flex max-h-[280px] flex-col gap-1 overflow-hidden [-webkit-app-region:no-drag]",
|
|
25153
24954
|
search: "nodrag h-8 w-full shrink-0 rounded-[6px] border-0 bg-transparent px-2.5 text-[11px] leading-4 text-[var(--text-primary)] placeholder:text-[var(--text-secondary)] focus-visible:outline-none [-webkit-app-region:no-drag]",
|
|
@@ -25343,7 +25144,7 @@ function AgentReviewPickerPanel({
|
|
|
25343
25144
|
},
|
|
25344
25145
|
[entries, safeHighlightedIndex, stage, query, onClose, goBackToRoot]
|
|
25345
25146
|
);
|
|
25346
|
-
return /* @__PURE__ */
|
|
25147
|
+
return /* @__PURE__ */ jsxs23(
|
|
25347
25148
|
"section",
|
|
25348
25149
|
{
|
|
25349
25150
|
className: reviewMenuStyles.panel,
|
|
@@ -25395,7 +25196,7 @@ function AgentReviewPickerPanel({
|
|
|
25395
25196
|
entry.onSelect();
|
|
25396
25197
|
}
|
|
25397
25198
|
},
|
|
25398
|
-
children: /* @__PURE__ */
|
|
25199
|
+
children: /* @__PURE__ */ jsxs23("span", { className: reviewMenuStyles.copy, children: [
|
|
25399
25200
|
/* @__PURE__ */ jsx33("span", { className: reviewMenuStyles.name, children: entry.label }),
|
|
25400
25201
|
entry.description ? /* @__PURE__ */ jsx33("span", { className: reviewMenuStyles.description, children: entry.description }) : null
|
|
25401
25202
|
] })
|
|
@@ -25675,7 +25476,7 @@ var ComposerFloatingMenuSurface = forwardRef4(function ComposerFloatingMenuSurfa
|
|
|
25675
25476
|
// agent-gui/agentGuiNode/composer/ComposerDraftAttachments.tsx
|
|
25676
25477
|
import { FileText, X as X3 } from "lucide-react";
|
|
25677
25478
|
import { Spinner as Spinner4 } from "@tutti-os/ui-system";
|
|
25678
|
-
import { Fragment as Fragment11, jsx as jsx35, jsxs as
|
|
25479
|
+
import { Fragment as Fragment11, jsx as jsx35, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
25679
25480
|
function ComposerDraftAttachments({
|
|
25680
25481
|
draftImages,
|
|
25681
25482
|
draftLargeTexts: visibleDraftLargeTexts,
|
|
@@ -25685,7 +25486,7 @@ function ComposerDraftAttachments({
|
|
|
25685
25486
|
onExpandLargeText: expandDraftLargeTextToPrompt
|
|
25686
25487
|
}) {
|
|
25687
25488
|
const labels = { removeMention: removeLabel };
|
|
25688
|
-
return /* @__PURE__ */
|
|
25489
|
+
return /* @__PURE__ */ jsxs24(Fragment11, { children: [
|
|
25689
25490
|
draftImages.length > 0 ? /* @__PURE__ */ jsx35(
|
|
25690
25491
|
"div",
|
|
25691
25492
|
{
|
|
@@ -25718,7 +25519,7 @@ function ComposerDraftAttachments({
|
|
|
25718
25519
|
"agentHost.agentGui.pastedTextRestoreToComposer"
|
|
25719
25520
|
);
|
|
25720
25521
|
const canRestore = !item.uploading && item.text.trim() !== "";
|
|
25721
|
-
return /* @__PURE__ */
|
|
25522
|
+
return /* @__PURE__ */ jsxs24(
|
|
25722
25523
|
"div",
|
|
25723
25524
|
{
|
|
25724
25525
|
className: cn(
|
|
@@ -25729,7 +25530,7 @@ function ComposerDraftAttachments({
|
|
|
25729
25530
|
"data-uploading": item.uploading ? "true" : void 0,
|
|
25730
25531
|
"data-upload-error": item.uploadError ? "true" : void 0,
|
|
25731
25532
|
children: [
|
|
25732
|
-
/* @__PURE__ */
|
|
25533
|
+
/* @__PURE__ */ jsxs24(
|
|
25733
25534
|
"button",
|
|
25734
25535
|
{
|
|
25735
25536
|
type: "button",
|
|
@@ -25748,7 +25549,7 @@ function ComposerDraftAttachments({
|
|
|
25748
25549
|
testId: "agent-gui-composer-large-text-upload-spinner"
|
|
25749
25550
|
}
|
|
25750
25551
|
) : /* @__PURE__ */ jsx35(FileText, { size: 16, strokeWidth: 2, "aria-hidden": true }) }),
|
|
25751
|
-
/* @__PURE__ */
|
|
25552
|
+
/* @__PURE__ */ jsxs24("span", { className: "flex min-w-0 flex-col", children: [
|
|
25752
25553
|
/* @__PURE__ */ jsx35("span", { className: "max-w-[200px] truncate font-medium text-[var(--text-primary)]", children: preview }),
|
|
25753
25554
|
/* @__PURE__ */ jsx35("span", { className: "max-w-[200px] truncate text-[11px] text-[var(--text-tertiary)]", children: attachmentStatus })
|
|
25754
25555
|
] })
|
|
@@ -25821,7 +25622,7 @@ function resolveHandoffTargetOwnershipLabel(target, labels) {
|
|
|
25821
25622
|
}
|
|
25822
25623
|
|
|
25823
25624
|
// agent-gui/agentGuiNode/composer/AgentHandoffMenu.tsx
|
|
25824
|
-
import { jsx as jsx36, jsxs as
|
|
25625
|
+
import { jsx as jsx36, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
25825
25626
|
function AgentHandoffMenu({
|
|
25826
25627
|
align = "start",
|
|
25827
25628
|
contentClassName,
|
|
@@ -25872,7 +25673,7 @@ function AgentHandoffMenu({
|
|
|
25872
25673
|
"w-auto max-w-[180px] [&>svg:last-child]:hidden",
|
|
25873
25674
|
triggerClassName
|
|
25874
25675
|
),
|
|
25875
|
-
children: /* @__PURE__ */
|
|
25676
|
+
children: /* @__PURE__ */ jsxs25("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
25876
25677
|
/* @__PURE__ */ jsx36(
|
|
25877
25678
|
AgentComposerHandoffIcon,
|
|
25878
25679
|
{
|
|
@@ -25897,7 +25698,7 @@ function AgentHandoffMenu({
|
|
|
25897
25698
|
onPointerDown: isolateTriggerEvents ? (event) => {
|
|
25898
25699
|
event.stopPropagation();
|
|
25899
25700
|
} : void 0,
|
|
25900
|
-
children: /* @__PURE__ */
|
|
25701
|
+
children: /* @__PURE__ */ jsxs25(
|
|
25901
25702
|
Select2,
|
|
25902
25703
|
{
|
|
25903
25704
|
value: HANDOFF_SELECT_IDLE_VALUE,
|
|
@@ -25912,7 +25713,7 @@ function AgentHandoffMenu({
|
|
|
25912
25713
|
onSelect(target);
|
|
25913
25714
|
},
|
|
25914
25715
|
children: [
|
|
25915
|
-
tooltip ? /* @__PURE__ */ jsx36(TooltipProvider3, { delayDuration: 120, children: /* @__PURE__ */
|
|
25716
|
+
tooltip ? /* @__PURE__ */ jsx36(TooltipProvider3, { delayDuration: 120, children: /* @__PURE__ */ jsxs25(Tooltip4, { children: [
|
|
25916
25717
|
/* @__PURE__ */ jsx36(TooltipTrigger4, { asChild: true, children: trigger }),
|
|
25917
25718
|
/* @__PURE__ */ jsx36(TooltipContent4, { side: "top", children: tooltip })
|
|
25918
25719
|
] }) }) : trigger,
|
|
@@ -25940,8 +25741,8 @@ function AgentHandoffMenu({
|
|
|
25940
25741
|
value: target.targetId,
|
|
25941
25742
|
className: cn(AgentGUINode_styles_default.composerMenuItem, "gap-2 py-1.5"),
|
|
25942
25743
|
disabled: target.disabled === true,
|
|
25943
|
-
children: /* @__PURE__ */
|
|
25944
|
-
/* @__PURE__ */
|
|
25744
|
+
children: /* @__PURE__ */ jsxs25("span", { className: "flex min-w-0 items-center gap-2", children: [
|
|
25745
|
+
/* @__PURE__ */ jsxs25("span", { className: "relative size-5 shrink-0", children: [
|
|
25945
25746
|
/* @__PURE__ */ jsx36(
|
|
25946
25747
|
"img",
|
|
25947
25748
|
{
|
|
@@ -25961,9 +25762,9 @@ function AgentHandoffMenu({
|
|
|
25961
25762
|
}
|
|
25962
25763
|
) : null
|
|
25963
25764
|
] }),
|
|
25964
|
-
/* @__PURE__ */
|
|
25765
|
+
/* @__PURE__ */ jsxs25("span", { className: "flex min-w-0 flex-col gap-0.5", children: [
|
|
25965
25766
|
/* @__PURE__ */ jsx36("span", { className: "min-w-0 truncate", children: target.label }),
|
|
25966
|
-
ownershipLabel || deviceSourceLabel ? /* @__PURE__ */
|
|
25767
|
+
ownershipLabel || deviceSourceLabel ? /* @__PURE__ */ jsxs25("span", { className: "flex min-w-0 items-center gap-1.5 truncate text-[11px] leading-none text-[var(--agent-gui-text-secondary)]", children: [
|
|
25967
25768
|
ownershipLabel ? /* @__PURE__ */ jsx36("span", { children: ownershipLabel }) : null,
|
|
25968
25769
|
deviceSourceLabel ? /* @__PURE__ */ jsx36("span", { children: deviceSourceLabel }) : null
|
|
25969
25770
|
] }) : null
|
|
@@ -25990,7 +25791,7 @@ import { Switch } from "@tutti-os/ui-system";
|
|
|
25990
25791
|
var tutti_mode_lined_default = "data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M6.2525%202.29982C7.33705%201.67365%208.42639%201.76315%209.30719%202.19923C10.1442%202.61379%2010.7869%203.32997%2011.1783%204.00782C11.182%204.01417%2011.1865%204.02092%2011.19%204.02735L14.6041%2010.2568C14.8975%209.82469%2015.2682%209.41791%2015.6949%209.08398C16.562%208.40562%2017.7709%207.94423%2019.1187%208.30273C20.0625%208.55396%2020.6751%209.17174%2020.9293%2010.0039C21.1566%2010.7488%2021.0723%2011.5815%2020.9039%2012.3262C20.5644%2013.8263%2019.7411%2015.5353%2019.1636%2016.7519C18.1461%2018.8959%2016.5837%2020.9345%2014.6656%2022.2089C12.7211%2023.5006%2010.3591%2024.0285%207.92243%2022.9794C6.53406%2022.3816%205.11984%2021.3547%204.02984%2020.1396C2.95362%2018.9398%202.08969%2017.4375%202.0191%2015.8711C2.00256%2015.5011%202.07428%2015.0786%202.21051%2014.707C2.32007%2014.4085%202.5283%2013.9859%202.9107%2013.6933L3.08551%2013.5761C3.52116%2013.3247%204.00247%2013.2136%204.47613%2013.2246C4.56029%2012.337%205.00243%2011.5023%205.92926%2010.9639C6.24585%2010.78%206.59784%2010.6401%206.96442%2010.5586L5.18121%207.4707C4.77623%206.76922%204.50913%205.83092%204.59723%204.89063C4.68916%203.91106%205.17521%202.92193%206.2525%202.29982ZM8.4195%203.99219C8.0585%203.81354%207.68432%203.78292%207.2525%204.03223C6.81383%204.28569%206.62867%204.64873%206.58844%205.07715C6.54458%205.54507%206.6839%206.07275%206.91364%206.4707L9.6861%2011.2724C9.72481%2011.3395%209.75419%2011.4094%209.77594%2011.4805C9.83692%2011.5617%209.89457%2011.649%209.94782%2011.7412C10.2235%2012.2194%2010.0596%2012.8313%209.58161%2013.1074C9.10351%2013.3833%208.49163%2013.219%208.2154%2012.7412C8.13017%2012.5938%208.00116%2012.508%207.78668%2012.4844C7.54655%2012.458%207.22985%2012.5217%206.93414%2012.6933C6.47716%2012.9588%206.21644%2013.6335%206.75055%2014.5586C6.80212%2014.648%206.8383%2014.7422%206.85993%2014.8379C6.88169%2014.9341%206.88921%2015.0325%206.88239%2015.1289C6.88011%2015.1605%206.87591%2015.1924%206.87067%2015.2236C6.84953%2015.3497%206.80398%2015.4712%206.73688%2015.581C6.71999%2015.6086%206.70182%2015.6361%206.68219%2015.6621C6.604%2015.7655%206.50365%2015.8558%206.38434%2015.9248C6.26484%2015.9937%206.13622%2016.0358%206.00739%2016.0517C5.97532%2016.0557%205.94278%2016.0567%205.91071%2016.0576C5.78181%2016.0609%205.65369%2016.0399%205.53375%2015.9951C5.50399%2015.984%205.47451%2015.9719%205.44586%2015.958C5.38803%2015.9299%205.33274%2015.8956%205.28082%2015.8564C5.22884%2015.8172%205.17952%2015.7725%205.13531%2015.7226C5.0915%2015.6731%205.05248%2015.618%205.01813%2015.5586C4.84584%2015.2603%204.44767%2015.1429%204.13824%2015.2851C4.12447%2015.3096%204.10645%2015.3465%204.08844%2015.3955C4.06324%2015.4643%204.04336%2015.542%204.03082%2015.6172C4.01804%2015.6941%204.01585%2015.7518%204.01715%2015.7812C4.05847%2016.6992%204.59721%2017.777%205.5191%2018.8046C6.42748%2019.8172%207.60728%2020.6662%208.71344%2021.1425C10.3938%2021.8659%2012.0425%2021.5504%2013.5592%2020.5429C15.1019%2019.5179%2016.4527%2017.7999%2017.357%2015.8945C17.965%2014.6134%2018.6735%2013.1231%2018.9537%2011.8847C19.0949%2011.2602%2019.0921%2010.8367%2019.0162%2010.5879C18.967%2010.4271%2018.8907%2010.3115%2018.6051%2010.2353C18.0234%2010.0806%2017.4482%2010.2526%2016.9283%2010.6592C16.3901%2011.0803%2016.0271%2011.6697%2015.9146%2012.0888C15.8847%2012.2004%2015.8355%2012.3022%2015.774%2012.3926L15.8941%2012.6133C16.1594%2013.0975%2015.9828%2013.7052%2015.4986%2013.9707C15.0144%2014.236%2014.4067%2014.0583%2014.1412%2013.5742L9.44196%204.99903C9.19845%204.58079%208.82143%204.19137%208.4195%203.99219ZM16.8004%201.13869C16.8688%200.95384%2017.1302%200.953926%2017.1988%201.13869L17.5113%201.98243C17.7695%202.67996%2018.3197%203.22996%2019.0172%203.48829L19.8609%203.80079C20.0458%203.86929%2020.0458%204.13073%2019.8609%204.19922L19.0172%204.51172C18.3197%204.77005%2017.7695%205.32004%2017.5113%206.01758L17.1988%206.86133C17.1302%207.04606%2016.8689%207.04614%2016.8004%206.86133L16.4879%206.01758C16.2296%205.31999%2015.6796%204.76998%2014.982%204.51172L14.1383%204.19922C13.9538%204.13058%2013.9538%203.86944%2014.1383%203.80079L14.982%203.48829C15.6796%203.23003%2016.2296%202.68002%2016.4879%201.98243L16.8004%201.13869Z%22%20fill%3D%22black%22%2F%3E%0A%3C%2Fsvg%3E%0A";
|
|
25991
25792
|
|
|
25992
25793
|
// agent-gui/agentGuiNode/composer/ComposerTuttiModeChip.tsx
|
|
25993
|
-
import { jsx as jsx37, jsxs as
|
|
25794
|
+
import { jsx as jsx37, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
25994
25795
|
function ComposerTuttiModeChip({
|
|
25995
25796
|
active,
|
|
25996
25797
|
updating,
|
|
@@ -26003,7 +25804,7 @@ function ComposerTuttiModeChip({
|
|
|
26003
25804
|
if (!onTuttiModeChange || !tuttiModeSupported) {
|
|
26004
25805
|
return null;
|
|
26005
25806
|
}
|
|
26006
|
-
return /* @__PURE__ */
|
|
25807
|
+
return /* @__PURE__ */ jsxs26(
|
|
26007
25808
|
"label",
|
|
26008
25809
|
{
|
|
26009
25810
|
htmlFor: switchId,
|
|
@@ -26053,14 +25854,13 @@ function ComposerTuttiModeChip({
|
|
|
26053
25854
|
}
|
|
26054
25855
|
|
|
26055
25856
|
// agent-gui/agentGuiNode/composer/ComposerFooter.tsx
|
|
26056
|
-
import { Fragment as Fragment12, jsx as jsx38, jsxs as
|
|
25857
|
+
import { Fragment as Fragment12, jsx as jsx38, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
26057
25858
|
function ComposerFooter({
|
|
26058
25859
|
workspaceId: _workspaceId,
|
|
26059
25860
|
labels,
|
|
26060
25861
|
provider,
|
|
26061
25862
|
composerSettings,
|
|
26062
25863
|
usage,
|
|
26063
|
-
previewMode,
|
|
26064
25864
|
compactSupported,
|
|
26065
25865
|
hasCompactableContext,
|
|
26066
25866
|
composerControlsHardDisabled,
|
|
@@ -26101,31 +25901,10 @@ function ComposerFooter({
|
|
|
26101
25901
|
onClearPlanMode
|
|
26102
25902
|
}) {
|
|
26103
25903
|
const showSettingsLoadingPlaceholders = composerSettings.isSettingsLoading;
|
|
26104
|
-
return /* @__PURE__ */ jsx38(Fragment12, { children: /* @__PURE__ */
|
|
26105
|
-
/* @__PURE__ */
|
|
26106
|
-
/* @__PURE__ */
|
|
26107
|
-
|
|
26108
|
-
/* @__PURE__ */ jsx38(TooltipTrigger5, { asChild: true, children: /* @__PURE__ */ jsx38(
|
|
26109
|
-
"button",
|
|
26110
|
-
{
|
|
26111
|
-
type: "button",
|
|
26112
|
-
"aria-label": labels.referenceWorkspaceFiles,
|
|
26113
|
-
className: cn(
|
|
26114
|
-
AgentGUINode_styles_default.composerMenuTrigger,
|
|
26115
|
-
AgentGUINode_styles_default.composerReferenceTrigger,
|
|
26116
|
-
"group w-auto justify-center text-[var(--agent-gui-text-secondary)]"
|
|
26117
|
-
),
|
|
26118
|
-
children: /* @__PURE__ */ jsx38(
|
|
26119
|
-
AgentComposerMaskIcon,
|
|
26120
|
-
{
|
|
26121
|
-
iconUrl: add_lined_default,
|
|
26122
|
-
marker: "reference-add"
|
|
26123
|
-
}
|
|
26124
|
-
)
|
|
26125
|
-
}
|
|
26126
|
-
) }),
|
|
26127
|
-
/* @__PURE__ */ jsx38(TooltipContent5, { side: "top", children: labels.addContent })
|
|
26128
|
-
] }) }) : /* @__PURE__ */ jsx38(
|
|
25904
|
+
return /* @__PURE__ */ jsx38(Fragment12, { children: /* @__PURE__ */ jsxs27("div", { className: AgentGUINode_styles_default.composerFooter, children: [
|
|
25905
|
+
/* @__PURE__ */ jsxs27("div", { className: composerStyles.footerGroup, children: [
|
|
25906
|
+
/* @__PURE__ */ jsxs27("div", { className: "inline-flex shrink-0 items-center gap-1", children: [
|
|
25907
|
+
/* @__PURE__ */ jsx38(
|
|
26129
25908
|
Select3,
|
|
26130
25909
|
{
|
|
26131
25910
|
open: false,
|
|
@@ -26141,7 +25920,7 @@ function ComposerFooter({
|
|
|
26141
25920
|
void handleWorkspaceReferencePicker();
|
|
26142
25921
|
}
|
|
26143
25922
|
},
|
|
26144
|
-
children: /* @__PURE__ */ jsx38(TooltipProvider4, { delayDuration: 120, children: /* @__PURE__ */
|
|
25923
|
+
children: /* @__PURE__ */ jsx38(TooltipProvider4, { delayDuration: 120, children: /* @__PURE__ */ jsxs27(Tooltip5, { children: [
|
|
26145
25924
|
/* @__PURE__ */ jsx38(TooltipTrigger5, { asChild: true, children: /* @__PURE__ */ jsx38("span", { className: "inline-flex", children: /* @__PURE__ */ jsx38(
|
|
26146
25925
|
SelectTrigger3,
|
|
26147
25926
|
{
|
|
@@ -26165,7 +25944,7 @@ function ComposerFooter({
|
|
|
26165
25944
|
] }) })
|
|
26166
25945
|
}
|
|
26167
25946
|
),
|
|
26168
|
-
/* @__PURE__ */ jsx38(TooltipProvider4, { delayDuration: 120, children: /* @__PURE__ */
|
|
25947
|
+
/* @__PURE__ */ jsx38(TooltipProvider4, { delayDuration: 120, children: /* @__PURE__ */ jsxs27(Tooltip5, { children: [
|
|
26169
25948
|
/* @__PURE__ */ jsx38(TooltipTrigger5, { asChild: true, children: /* @__PURE__ */ jsx38(
|
|
26170
25949
|
"button",
|
|
26171
25950
|
{
|
|
@@ -26231,7 +26010,7 @@ function ComposerFooter({
|
|
|
26231
26010
|
onHandoffConversation?.(target);
|
|
26232
26011
|
}
|
|
26233
26012
|
}
|
|
26234
|
-
) : showProviderSelect && selectedProviderSwitchTarget ? /* @__PURE__ */
|
|
26013
|
+
) : showProviderSelect && selectedProviderSwitchTarget ? /* @__PURE__ */ jsxs27(
|
|
26235
26014
|
Select3,
|
|
26236
26015
|
{
|
|
26237
26016
|
value: selectedProviderSwitchTarget.targetId,
|
|
@@ -26260,7 +26039,7 @@ function ComposerFooter({
|
|
|
26260
26039
|
AgentGUINode_styles_default.composerProviderSelect,
|
|
26261
26040
|
"w-auto max-w-[180px]"
|
|
26262
26041
|
),
|
|
26263
|
-
children: /* @__PURE__ */
|
|
26042
|
+
children: /* @__PURE__ */ jsxs27("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
26264
26043
|
/* @__PURE__ */ jsx38(
|
|
26265
26044
|
"img",
|
|
26266
26045
|
{
|
|
@@ -26286,7 +26065,7 @@ function ComposerFooter({
|
|
|
26286
26065
|
{
|
|
26287
26066
|
value: target.targetId,
|
|
26288
26067
|
className: cn(AgentGUINode_styles_default.composerMenuItem, "gap-2"),
|
|
26289
|
-
children: /* @__PURE__ */
|
|
26068
|
+
children: /* @__PURE__ */ jsxs27("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
26290
26069
|
/* @__PURE__ */ jsx38(
|
|
26291
26070
|
"img",
|
|
26292
26071
|
{
|
|
@@ -26321,7 +26100,7 @@ function ComposerFooter({
|
|
|
26321
26100
|
"disabled:cursor-not-allowed disabled:opacity-60"
|
|
26322
26101
|
),
|
|
26323
26102
|
onClick: onClearPlanMode,
|
|
26324
|
-
children: /* @__PURE__ */
|
|
26103
|
+
children: /* @__PURE__ */ jsxs27("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
|
|
26325
26104
|
/* @__PURE__ */ jsx38(
|
|
26326
26105
|
RemovableBadgeIcon,
|
|
26327
26106
|
{
|
|
@@ -26346,8 +26125,8 @@ function ComposerFooter({
|
|
|
26346
26125
|
"disabled:cursor-not-allowed disabled:opacity-60"
|
|
26347
26126
|
),
|
|
26348
26127
|
onClick: clearGoalModeBadge,
|
|
26349
|
-
children: /* @__PURE__ */
|
|
26350
|
-
/* @__PURE__ */
|
|
26128
|
+
children: /* @__PURE__ */ jsxs27("span", { className: "flex min-w-0 items-center gap-1.5 overflow-hidden", children: [
|
|
26129
|
+
/* @__PURE__ */ jsxs27("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
|
|
26351
26130
|
/* @__PURE__ */ jsx38(
|
|
26352
26131
|
Target2,
|
|
26353
26132
|
{
|
|
@@ -26375,14 +26154,14 @@ function ComposerFooter({
|
|
|
26375
26154
|
}
|
|
26376
26155
|
) : null
|
|
26377
26156
|
] }),
|
|
26378
|
-
/* @__PURE__ */
|
|
26157
|
+
/* @__PURE__ */ jsxs27("div", { className: composerStyles.footerGroupRight, children: [
|
|
26379
26158
|
usage && usage.percentUsed !== null ? /* @__PURE__ */ jsx38(
|
|
26380
26159
|
AgentUsageChip,
|
|
26381
26160
|
{
|
|
26382
26161
|
percentUsed: usage.percentUsed,
|
|
26383
26162
|
usedTokens: usage.usedTokens,
|
|
26384
26163
|
totalTokens: usage.totalTokens,
|
|
26385
|
-
tooltipsEnabled:
|
|
26164
|
+
tooltipsEnabled: true,
|
|
26386
26165
|
compactSupported: compactSupported ?? false,
|
|
26387
26166
|
compactDisabled: !hasCompactableContext || composerControlsHardDisabled || isSendingTurn,
|
|
26388
26167
|
onCompact: () => onSubmit(textPromptContent("/compact")),
|
|
@@ -26402,7 +26181,6 @@ function ComposerFooter({
|
|
|
26402
26181
|
disabled: permissionModeControlsDisabled,
|
|
26403
26182
|
disabledTooltip: permissionModeControlsDisabled ? labels.permissionModeChangeUnavailableDuringTurn : void 0,
|
|
26404
26183
|
onLinkAction,
|
|
26405
|
-
previewMode,
|
|
26406
26184
|
provider,
|
|
26407
26185
|
labels: {
|
|
26408
26186
|
permissionLabel: labels.permissionLabel,
|
|
@@ -26416,7 +26194,6 @@ function ComposerFooter({
|
|
|
26416
26194
|
{
|
|
26417
26195
|
composerSettings,
|
|
26418
26196
|
disabled: settingsControlsDisabled,
|
|
26419
|
-
previewMode,
|
|
26420
26197
|
labels: {
|
|
26421
26198
|
modelLabel: labels.modelLabel,
|
|
26422
26199
|
modelSelectionLabel: labels.modelSelectionLabel,
|
|
@@ -26453,7 +26230,7 @@ function ComposerFooter({
|
|
|
26453
26230
|
] }) });
|
|
26454
26231
|
}
|
|
26455
26232
|
function RemovableBadgeIcon({ icon }) {
|
|
26456
|
-
return /* @__PURE__ */
|
|
26233
|
+
return /* @__PURE__ */ jsxs27("span", { className: "relative flex size-3.5 shrink-0 items-center justify-center", children: [
|
|
26457
26234
|
/* @__PURE__ */ jsx38(
|
|
26458
26235
|
"span",
|
|
26459
26236
|
{
|
|
@@ -26520,7 +26297,7 @@ import {
|
|
|
26520
26297
|
Spinner as Spinner5,
|
|
26521
26298
|
Textarea
|
|
26522
26299
|
} from "@tutti-os/ui-system";
|
|
26523
|
-
import { jsx as jsx39, jsxs as
|
|
26300
|
+
import { jsx as jsx39, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
26524
26301
|
var MAX_TITLE_CODE_POINTS = 80;
|
|
26525
26302
|
var MAX_CONTENT_BYTES = 32 * 1024;
|
|
26526
26303
|
function AgentQuickPromptEditorDialog({
|
|
@@ -26555,7 +26332,7 @@ function AgentQuickPromptEditorDialog({
|
|
|
26555
26332
|
controller.closeDialog();
|
|
26556
26333
|
}
|
|
26557
26334
|
},
|
|
26558
|
-
children: /* @__PURE__ */
|
|
26335
|
+
children: /* @__PURE__ */ jsxs28(
|
|
26559
26336
|
DialogContent,
|
|
26560
26337
|
{
|
|
26561
26338
|
className: "sm:max-w-[560px]",
|
|
@@ -26570,11 +26347,11 @@ function AgentQuickPromptEditorDialog({
|
|
|
26570
26347
|
if (controller.isSaving) event.preventDefault();
|
|
26571
26348
|
},
|
|
26572
26349
|
children: [
|
|
26573
|
-
/* @__PURE__ */
|
|
26350
|
+
/* @__PURE__ */ jsxs28(DialogHeader, { children: [
|
|
26574
26351
|
/* @__PURE__ */ jsx39(DialogTitle, { children: source ? labels.editTitle : labels.createTitle }),
|
|
26575
26352
|
/* @__PURE__ */ jsx39(DialogDescription, { className: "sr-only", children: labels.contentPlaceholder })
|
|
26576
26353
|
] }),
|
|
26577
|
-
/* @__PURE__ */
|
|
26354
|
+
/* @__PURE__ */ jsxs28(
|
|
26578
26355
|
"form",
|
|
26579
26356
|
{
|
|
26580
26357
|
className: "flex min-h-0 flex-col gap-3",
|
|
@@ -26583,7 +26360,7 @@ function AgentQuickPromptEditorDialog({
|
|
|
26583
26360
|
void submit();
|
|
26584
26361
|
},
|
|
26585
26362
|
children: [
|
|
26586
|
-
/* @__PURE__ */
|
|
26363
|
+
/* @__PURE__ */ jsxs28("label", { className: "flex flex-col gap-1.5 text-[13px] text-[var(--text-secondary)]", children: [
|
|
26587
26364
|
/* @__PURE__ */ jsx39("span", { children: labels.titleLabel }),
|
|
26588
26365
|
/* @__PURE__ */ jsx39(
|
|
26589
26366
|
Input,
|
|
@@ -26601,7 +26378,7 @@ function AgentQuickPromptEditorDialog({
|
|
|
26601
26378
|
}
|
|
26602
26379
|
)
|
|
26603
26380
|
] }),
|
|
26604
|
-
/* @__PURE__ */
|
|
26381
|
+
/* @__PURE__ */ jsxs28("label", { className: "flex min-h-0 flex-col gap-1.5 text-[13px] text-[var(--text-secondary)]", children: [
|
|
26605
26382
|
/* @__PURE__ */ jsx39("span", { children: labels.contentLabel }),
|
|
26606
26383
|
/* @__PURE__ */ jsx39(
|
|
26607
26384
|
Textarea,
|
|
@@ -26619,7 +26396,7 @@ function AgentQuickPromptEditorDialog({
|
|
|
26619
26396
|
)
|
|
26620
26397
|
] }),
|
|
26621
26398
|
validationError || mutationError ? /* @__PURE__ */ jsx39("p", { className: "text-[12px] text-[var(--state-danger)]", role: "alert", children: validationError ?? mutationError }) : null,
|
|
26622
|
-
/* @__PURE__ */
|
|
26399
|
+
/* @__PURE__ */ jsxs28(DialogFooter, { children: [
|
|
26623
26400
|
/* @__PURE__ */ jsx39(
|
|
26624
26401
|
Button4,
|
|
26625
26402
|
{
|
|
@@ -26643,7 +26420,7 @@ function AgentQuickPromptEditorDialog({
|
|
|
26643
26420
|
children: labels.cancel
|
|
26644
26421
|
}
|
|
26645
26422
|
),
|
|
26646
|
-
/* @__PURE__ */
|
|
26423
|
+
/* @__PURE__ */ jsxs28(Button4, { disabled: controller.isSaving, size: "dialog", type: "submit", children: [
|
|
26647
26424
|
controller.isSaving ? /* @__PURE__ */ jsx39(Spinner5, { size: 14 }) : null,
|
|
26648
26425
|
controller.isSaving ? labels.saving : labels.save
|
|
26649
26426
|
] })
|
|
@@ -26692,7 +26469,7 @@ import {
|
|
|
26692
26469
|
EditIcon,
|
|
26693
26470
|
GripVerticalIcon
|
|
26694
26471
|
} from "@tutti-os/ui-system/icons";
|
|
26695
|
-
import { Fragment as Fragment13, jsx as jsx40, jsxs as
|
|
26472
|
+
import { Fragment as Fragment13, jsx as jsx40, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
26696
26473
|
function AgentQuickPromptRow({
|
|
26697
26474
|
handleRef,
|
|
26698
26475
|
isSorting,
|
|
@@ -26711,16 +26488,16 @@ function AgentQuickPromptRow({
|
|
|
26711
26488
|
const editAction = usePrimaryPointerAction(onEdit);
|
|
26712
26489
|
const deleteAction = usePrimaryPointerAction(onDelete);
|
|
26713
26490
|
const actionRevealClass = "opacity-100 transition-opacity [@media(hover:hover)]:opacity-0 [@media(hover:hover)]:group-hover/quick-prompt-row:opacity-100 group-has-[:focus-visible]/quick-prompt-row:opacity-100 focus-visible:opacity-100";
|
|
26714
|
-
const promptContent = /* @__PURE__ */
|
|
26491
|
+
const promptContent = /* @__PURE__ */ jsxs29("span", { className: "flex min-w-0 flex-col items-start gap-0.5", children: [
|
|
26715
26492
|
/* @__PURE__ */ jsx40("span", { className: "w-full truncate font-medium text-[var(--text-primary)]", children: prompt.title }),
|
|
26716
26493
|
/* @__PURE__ */ jsx40("span", { className: "line-clamp-2 w-full text-[12px] leading-[1.35] text-[var(--text-secondary)]", children: prompt.content })
|
|
26717
26494
|
] });
|
|
26718
|
-
return /* @__PURE__ */
|
|
26495
|
+
return /* @__PURE__ */ jsxs29("div", { className: "group/quick-prompt-row flex min-w-0 items-start gap-1 rounded-md hover:bg-[var(--transparency-hover)]", children: [
|
|
26719
26496
|
showReorderHandle ? /* @__PURE__ */ jsx40(
|
|
26720
26497
|
"div",
|
|
26721
26498
|
{
|
|
26722
26499
|
className: `mt-1.5 flex size-6 shrink-0 items-center justify-center ${reorderDisabled ? "cursor-not-allowed" : ""}`,
|
|
26723
|
-
children: /* @__PURE__ */
|
|
26500
|
+
children: /* @__PURE__ */ jsxs29(Tooltip6, { children: [
|
|
26724
26501
|
/* @__PURE__ */ jsx40(TooltipTrigger6, { asChild: true, children: /* @__PURE__ */ jsx40(SortableItemHandle, { asChild: true, disabled: reorderDisabled, children: /* @__PURE__ */ jsx40(
|
|
26725
26502
|
BareIconButton,
|
|
26726
26503
|
{
|
|
@@ -26754,8 +26531,8 @@ function AgentQuickPromptRow({
|
|
|
26754
26531
|
children: promptContent
|
|
26755
26532
|
}
|
|
26756
26533
|
),
|
|
26757
|
-
!isSorting ? /* @__PURE__ */
|
|
26758
|
-
/* @__PURE__ */
|
|
26534
|
+
!isSorting ? /* @__PURE__ */ jsxs29(Fragment13, { children: [
|
|
26535
|
+
/* @__PURE__ */ jsxs29(Tooltip6, { children: [
|
|
26759
26536
|
/* @__PURE__ */ jsx40(TooltipTrigger6, { asChild: true, children: /* @__PURE__ */ jsx40(
|
|
26760
26537
|
BareIconButton,
|
|
26761
26538
|
{
|
|
@@ -26770,7 +26547,7 @@ function AgentQuickPromptRow({
|
|
|
26770
26547
|
) }),
|
|
26771
26548
|
/* @__PURE__ */ jsx40(TooltipContent6, { side: "top", children: labels.edit })
|
|
26772
26549
|
] }),
|
|
26773
|
-
/* @__PURE__ */
|
|
26550
|
+
/* @__PURE__ */ jsxs29(Tooltip6, { children: [
|
|
26774
26551
|
/* @__PURE__ */ jsx40(TooltipTrigger6, { asChild: true, children: /* @__PURE__ */ jsx40(
|
|
26775
26552
|
BareIconButton,
|
|
26776
26553
|
{
|
|
@@ -26932,7 +26709,7 @@ function AgentQuickPromptList({
|
|
|
26932
26709
|
}
|
|
26933
26710
|
|
|
26934
26711
|
// agent-gui/agentGuiNode/composer/quickPrompts/AgentQuickPromptPopover.tsx
|
|
26935
|
-
import { Fragment as Fragment14, jsx as jsx42, jsxs as
|
|
26712
|
+
import { Fragment as Fragment14, jsx as jsx42, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
26936
26713
|
function AgentQuickPromptPopover({
|
|
26937
26714
|
controller,
|
|
26938
26715
|
disabled
|
|
@@ -26991,8 +26768,8 @@ function AgentQuickPromptPopover({
|
|
|
26991
26768
|
controller.openCreate({ title: template.title, content: template.content });
|
|
26992
26769
|
};
|
|
26993
26770
|
const isTemplateView = view === "templates";
|
|
26994
|
-
return /* @__PURE__ */
|
|
26995
|
-
/* @__PURE__ */
|
|
26771
|
+
return /* @__PURE__ */ jsxs30(Fragment14, { children: [
|
|
26772
|
+
/* @__PURE__ */ jsxs30(
|
|
26996
26773
|
Popover3,
|
|
26997
26774
|
{
|
|
26998
26775
|
modal: false,
|
|
@@ -27005,8 +26782,8 @@ function AgentQuickPromptPopover({
|
|
|
27005
26782
|
controller.setPopoverOpen(open);
|
|
27006
26783
|
},
|
|
27007
26784
|
children: [
|
|
27008
|
-
/* @__PURE__ */ jsx42(TooltipProvider5, { delayDuration: 120, children: /* @__PURE__ */
|
|
27009
|
-
/* @__PURE__ */ jsx42(TooltipTrigger7, { asChild: true, children: /* @__PURE__ */ jsx42("span", { className: "inline-flex shrink-0", children: /* @__PURE__ */ jsx42(PopoverTrigger2, { asChild: true, children: /* @__PURE__ */
|
|
26785
|
+
/* @__PURE__ */ jsx42(TooltipProvider5, { delayDuration: 120, children: /* @__PURE__ */ jsxs30(Tooltip7, { children: [
|
|
26786
|
+
/* @__PURE__ */ jsx42(TooltipTrigger7, { asChild: true, children: /* @__PURE__ */ jsx42("span", { className: "inline-flex shrink-0", children: /* @__PURE__ */ jsx42(PopoverTrigger2, { asChild: true, children: /* @__PURE__ */ jsxs30(
|
|
27010
26787
|
Button6,
|
|
27011
26788
|
{
|
|
27012
26789
|
"aria-label": labels.triggerTooltip,
|
|
@@ -27022,7 +26799,7 @@ function AgentQuickPromptPopover({
|
|
|
27022
26799
|
) }) }) }),
|
|
27023
26800
|
/* @__PURE__ */ jsx42(TooltipContent7, { side: "top", children: labels.triggerTooltip })
|
|
27024
26801
|
] }) }),
|
|
27025
|
-
/* @__PURE__ */
|
|
26802
|
+
/* @__PURE__ */ jsxs30(
|
|
27026
26803
|
PopoverContent3,
|
|
27027
26804
|
{
|
|
27028
26805
|
"aria-labelledby": titleId,
|
|
@@ -27047,7 +26824,7 @@ function AgentQuickPromptPopover({
|
|
|
27047
26824
|
preserveExternalFocusRef.current = false;
|
|
27048
26825
|
},
|
|
27049
26826
|
children: [
|
|
27050
|
-
/* @__PURE__ */
|
|
26827
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex shrink-0 items-center justify-between gap-2 border-b border-[var(--border-1)] px-3 py-2.5", children: [
|
|
27051
26828
|
/* @__PURE__ */ jsx42(
|
|
27052
26829
|
"h2",
|
|
27053
26830
|
{
|
|
@@ -27056,7 +26833,7 @@ function AgentQuickPromptPopover({
|
|
|
27056
26833
|
children: isTemplateView ? labels.recommendedTemplatesTitle : labels.title
|
|
27057
26834
|
}
|
|
27058
26835
|
),
|
|
27059
|
-
isTemplateView ? /* @__PURE__ */
|
|
26836
|
+
isTemplateView ? /* @__PURE__ */ jsxs30(
|
|
27060
26837
|
Button6,
|
|
27061
26838
|
{
|
|
27062
26839
|
size: "sm",
|
|
@@ -27068,7 +26845,7 @@ function AgentQuickPromptPopover({
|
|
|
27068
26845
|
labels.returnToPrompts
|
|
27069
26846
|
]
|
|
27070
26847
|
}
|
|
27071
|
-
) : /* @__PURE__ */ jsx42("div", { className: "flex items-center gap-1", children: isSorting ? /* @__PURE__ */
|
|
26848
|
+
) : /* @__PURE__ */ jsx42("div", { className: "flex items-center gap-1", children: isSorting ? /* @__PURE__ */ jsxs30(
|
|
27072
26849
|
Button6,
|
|
27073
26850
|
{
|
|
27074
26851
|
disabled: controller.isInteractionLocked,
|
|
@@ -27081,8 +26858,8 @@ function AgentQuickPromptPopover({
|
|
|
27081
26858
|
labels.finishSorting
|
|
27082
26859
|
]
|
|
27083
26860
|
}
|
|
27084
|
-
) : /* @__PURE__ */
|
|
27085
|
-
/* @__PURE__ */
|
|
26861
|
+
) : /* @__PURE__ */ jsxs30(Fragment14, { children: [
|
|
26862
|
+
/* @__PURE__ */ jsxs30(
|
|
27086
26863
|
Button6,
|
|
27087
26864
|
{
|
|
27088
26865
|
disabled: controller.isInteractionLocked || !controller.showReorderHandles,
|
|
@@ -27096,7 +26873,7 @@ function AgentQuickPromptPopover({
|
|
|
27096
26873
|
]
|
|
27097
26874
|
}
|
|
27098
26875
|
),
|
|
27099
|
-
/* @__PURE__ */
|
|
26876
|
+
/* @__PURE__ */ jsxs30(
|
|
27100
26877
|
Button6,
|
|
27101
26878
|
{
|
|
27102
26879
|
disabled: controller.isInteractionLocked,
|
|
@@ -27123,7 +26900,7 @@ function AgentQuickPromptPopover({
|
|
|
27123
26900
|
)
|
|
27124
26901
|
] }) })
|
|
27125
26902
|
] }),
|
|
27126
|
-
!isTemplateView ? /* @__PURE__ */
|
|
26903
|
+
!isTemplateView ? /* @__PURE__ */ jsxs30("div", { className: "relative shrink-0 px-3 py-2.5", children: [
|
|
27127
26904
|
/* @__PURE__ */ jsx42(
|
|
27128
26905
|
SearchIcon,
|
|
27129
26906
|
{
|
|
@@ -27150,7 +26927,7 @@ function AgentQuickPromptPopover({
|
|
|
27150
26927
|
}
|
|
27151
26928
|
)
|
|
27152
26929
|
] }) : null,
|
|
27153
|
-
!isTemplateView && snapshot.status === "error" && snapshot.prompts.length > 0 ? /* @__PURE__ */
|
|
26930
|
+
!isTemplateView && snapshot.status === "error" && snapshot.prompts.length > 0 ? /* @__PURE__ */ jsxs30(
|
|
27154
26931
|
"div",
|
|
27155
26932
|
{
|
|
27156
26933
|
className: "flex shrink-0 items-center justify-between gap-2 px-3 pb-2 text-[12px] text-[var(--state-danger)]",
|
|
@@ -27170,7 +26947,7 @@ function AgentQuickPromptPopover({
|
|
|
27170
26947
|
]
|
|
27171
26948
|
}
|
|
27172
26949
|
) : null,
|
|
27173
|
-
!isTemplateView && controller.reorderError ? /* @__PURE__ */
|
|
26950
|
+
!isTemplateView && controller.reorderError ? /* @__PURE__ */ jsxs30(
|
|
27174
26951
|
"div",
|
|
27175
26952
|
{
|
|
27176
26953
|
className: "flex shrink-0 items-center justify-between gap-2 px-3 pb-2 text-[12px] text-[var(--state-danger)]",
|
|
@@ -27236,7 +27013,7 @@ function AgentQuickPromptPopover({
|
|
|
27236
27013
|
onSelect: requestTemplate,
|
|
27237
27014
|
selectionRequestedOnPointerDownRef: templateRequestedOnPointerDownRef
|
|
27238
27015
|
}
|
|
27239
|
-
) : controller.filteredPrompts.length === 0 ? /* @__PURE__ */ jsx42(PromptState, { label: labels.noResults }) : /* @__PURE__ */
|
|
27016
|
+
) : controller.filteredPrompts.length === 0 ? /* @__PURE__ */ jsx42(PromptState, { label: labels.noResults }) : /* @__PURE__ */ jsxs30("div", { className: "flex flex-col gap-0.5", children: [
|
|
27240
27017
|
/* @__PURE__ */ jsx42(
|
|
27241
27018
|
AgentQuickPromptList,
|
|
27242
27019
|
{
|
|
@@ -27284,7 +27061,7 @@ function AgentQuickPromptPopover({
|
|
|
27284
27061
|
confirmBusy: controller.isDeleting,
|
|
27285
27062
|
confirmLabel: controller.isDeleting ? labels.deleting : labels.deleteConfirm,
|
|
27286
27063
|
description: controller.promptToDelete ? labels.deleteDescription(controller.promptToDelete.title) : void 0,
|
|
27287
|
-
footer: /* @__PURE__ */
|
|
27064
|
+
footer: /* @__PURE__ */ jsxs30(DialogFooter2, { children: [
|
|
27288
27065
|
/* @__PURE__ */ jsx42(
|
|
27289
27066
|
Button6,
|
|
27290
27067
|
{
|
|
@@ -27326,12 +27103,12 @@ function RecommendedTemplateList({
|
|
|
27326
27103
|
onSelect,
|
|
27327
27104
|
selectionRequestedOnPointerDownRef
|
|
27328
27105
|
}) {
|
|
27329
|
-
return /* @__PURE__ */
|
|
27330
|
-
/* @__PURE__ */
|
|
27106
|
+
return /* @__PURE__ */ jsxs30("section", { className: "flex flex-col gap-1 px-1 pt-2", children: [
|
|
27107
|
+
/* @__PURE__ */ jsxs30("div", { className: "px-2 pb-1", children: [
|
|
27331
27108
|
/* @__PURE__ */ jsx42("h3", { className: "text-[13px] font-medium text-[var(--text-primary)]", children: labels.recommendedTemplatesTitle }),
|
|
27332
27109
|
/* @__PURE__ */ jsx42("p", { className: "pt-0.5 text-[12px] leading-[1.35] text-[var(--text-secondary)]", children: labels.recommendedTemplatesDescription })
|
|
27333
27110
|
] }),
|
|
27334
|
-
labels.recommendedTemplates.map((template, index) => /* @__PURE__ */
|
|
27111
|
+
labels.recommendedTemplates.map((template, index) => /* @__PURE__ */ jsxs30(
|
|
27335
27112
|
Button6,
|
|
27336
27113
|
{
|
|
27337
27114
|
ref: index === 0 ? firstTemplateRef : void 0,
|
|
@@ -27353,11 +27130,11 @@ function RecommendedTemplateList({
|
|
|
27353
27130
|
onSelect(template);
|
|
27354
27131
|
},
|
|
27355
27132
|
children: [
|
|
27356
|
-
/* @__PURE__ */
|
|
27133
|
+
/* @__PURE__ */ jsxs30("span", { className: "flex min-w-0 flex-col items-start gap-0.5", children: [
|
|
27357
27134
|
/* @__PURE__ */ jsx42("span", { className: "w-full truncate font-medium text-[var(--text-primary)]", children: template.title }),
|
|
27358
27135
|
/* @__PURE__ */ jsx42("span", { className: "line-clamp-2 w-full text-[12px] leading-[1.35] text-[var(--text-secondary)]", children: template.description })
|
|
27359
27136
|
] }),
|
|
27360
|
-
/* @__PURE__ */
|
|
27137
|
+
/* @__PURE__ */ jsxs30("span", { className: "flex shrink-0 items-center gap-1 text-[12px] text-[var(--text-secondary)]", children: [
|
|
27361
27138
|
labels.useTemplate,
|
|
27362
27139
|
/* @__PURE__ */ jsx42(ArrowRightIcon, { "data-icon": "inline-end" })
|
|
27363
27140
|
] })
|
|
@@ -27372,7 +27149,7 @@ function TemplateEntry({
|
|
|
27372
27149
|
disabled,
|
|
27373
27150
|
label
|
|
27374
27151
|
}) {
|
|
27375
|
-
return /* @__PURE__ */
|
|
27152
|
+
return /* @__PURE__ */ jsxs30(
|
|
27376
27153
|
Button6,
|
|
27377
27154
|
{
|
|
27378
27155
|
...action,
|
|
@@ -27410,7 +27187,7 @@ function PromptState({
|
|
|
27410
27187
|
icon,
|
|
27411
27188
|
label
|
|
27412
27189
|
}) {
|
|
27413
|
-
return /* @__PURE__ */
|
|
27190
|
+
return /* @__PURE__ */ jsxs30("div", { className: "flex min-h-[180px] flex-col items-center justify-center gap-2 px-4 text-center text-[13px] text-[var(--text-secondary)]", children: [
|
|
27414
27191
|
icon,
|
|
27415
27192
|
/* @__PURE__ */ jsx42("span", { children: label }),
|
|
27416
27193
|
action
|
|
@@ -27418,7 +27195,7 @@ function PromptState({
|
|
|
27418
27195
|
}
|
|
27419
27196
|
|
|
27420
27197
|
// agent-gui/agentGuiNode/composer/AgentComposerView.tsx
|
|
27421
|
-
import { jsx as jsx43, jsxs as
|
|
27198
|
+
import { jsx as jsx43, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
27422
27199
|
function AgentComposerView(input) {
|
|
27423
27200
|
const {
|
|
27424
27201
|
provider,
|
|
@@ -27435,7 +27212,6 @@ function AgentComposerView(input) {
|
|
|
27435
27212
|
workspaceAppIcons = EMPTY_WORKSPACE_APP_ICONS,
|
|
27436
27213
|
activePromptKeyboardShortcutsEnabled = true,
|
|
27437
27214
|
promptImagesSupported = true,
|
|
27438
|
-
previewMode = false,
|
|
27439
27215
|
layoutMode = "dock",
|
|
27440
27216
|
providerSelectLabel = "",
|
|
27441
27217
|
labels,
|
|
@@ -27538,7 +27314,7 @@ function AgentComposerView(input) {
|
|
|
27538
27314
|
visibleActivePrompt,
|
|
27539
27315
|
visibleDraftLargeTexts
|
|
27540
27316
|
} = input.presentation;
|
|
27541
|
-
return /* @__PURE__ */
|
|
27317
|
+
return /* @__PURE__ */ jsxs31(
|
|
27542
27318
|
"form",
|
|
27543
27319
|
{
|
|
27544
27320
|
ref: input.composerRef,
|
|
@@ -27560,7 +27336,6 @@ function AgentComposerView(input) {
|
|
|
27560
27336
|
embedded: true,
|
|
27561
27337
|
edgeGlow: true,
|
|
27562
27338
|
keyboardShortcuts: activePromptKeyboardShortcutsEnabled,
|
|
27563
|
-
previewMode,
|
|
27564
27339
|
isSubmitting: isSubmittingPrompt,
|
|
27565
27340
|
onSubmit: submitInteractivePromptAndDismiss,
|
|
27566
27341
|
labels: {
|
|
@@ -27631,12 +27406,11 @@ function AgentComposerView(input) {
|
|
|
27631
27406
|
{
|
|
27632
27407
|
isSettingsLoading: composerSettings.isSettingsLoading,
|
|
27633
27408
|
permissionModeId: composerSettings.selectedPermissionModeValue ?? composerSettings.draftSettings.permissionModeId,
|
|
27634
|
-
previewMode,
|
|
27635
27409
|
provider,
|
|
27636
27410
|
visibleOnHome: isHeroLayout
|
|
27637
27411
|
}
|
|
27638
27412
|
),
|
|
27639
|
-
/* @__PURE__ */
|
|
27413
|
+
/* @__PURE__ */ jsxs31(
|
|
27640
27414
|
"div",
|
|
27641
27415
|
{
|
|
27642
27416
|
className: cn(
|
|
@@ -27657,7 +27431,7 @@ function AgentComposerView(input) {
|
|
|
27657
27431
|
description: labels.projectMissingDescription
|
|
27658
27432
|
}
|
|
27659
27433
|
) : null,
|
|
27660
|
-
/* @__PURE__ */
|
|
27434
|
+
/* @__PURE__ */ jsxs31(
|
|
27661
27435
|
"div",
|
|
27662
27436
|
{
|
|
27663
27437
|
ref: input.inputShellRef,
|
|
@@ -27667,14 +27441,14 @@ function AgentComposerView(input) {
|
|
|
27667
27441
|
title: inputDisabled && disabledReasonText ? disabledReasonText : void 0,
|
|
27668
27442
|
style: inputShellStyle,
|
|
27669
27443
|
children: [
|
|
27670
|
-
/* @__PURE__ */
|
|
27444
|
+
/* @__PURE__ */ jsxs31(
|
|
27671
27445
|
Popover4,
|
|
27672
27446
|
{
|
|
27673
27447
|
open: input.showFileMentionPalette,
|
|
27674
27448
|
onOpenChange: input.setIsPaletteOpen,
|
|
27675
27449
|
modal: false,
|
|
27676
27450
|
children: [
|
|
27677
|
-
/* @__PURE__ */ jsx43(PopoverAnchor2, { asChild: true, children: /* @__PURE__ */
|
|
27451
|
+
/* @__PURE__ */ jsx43(PopoverAnchor2, { asChild: true, children: /* @__PURE__ */ jsxs31(
|
|
27678
27452
|
"div",
|
|
27679
27453
|
{
|
|
27680
27454
|
ref: input.promptInputAreaRef,
|
|
@@ -27697,7 +27471,7 @@ function AgentComposerView(input) {
|
|
|
27697
27471
|
onExpandLargeText: expandDraftLargeTextToPrompt
|
|
27698
27472
|
}
|
|
27699
27473
|
),
|
|
27700
|
-
/* @__PURE__ */
|
|
27474
|
+
/* @__PURE__ */ jsxs31(
|
|
27701
27475
|
"div",
|
|
27702
27476
|
{
|
|
27703
27477
|
className: cn(
|
|
@@ -27909,7 +27683,6 @@ function AgentComposerView(input) {
|
|
|
27909
27683
|
provider,
|
|
27910
27684
|
composerSettings,
|
|
27911
27685
|
usage,
|
|
27912
|
-
previewMode,
|
|
27913
27686
|
compactSupported,
|
|
27914
27687
|
hasCompactableContext,
|
|
27915
27688
|
composerControlsHardDisabled,
|
|
@@ -27959,7 +27732,7 @@ function AgentComposerView(input) {
|
|
|
27959
27732
|
]
|
|
27960
27733
|
}
|
|
27961
27734
|
),
|
|
27962
|
-
showProjectRow ? /* @__PURE__ */
|
|
27735
|
+
showProjectRow ? /* @__PURE__ */ jsxs31(
|
|
27963
27736
|
"div",
|
|
27964
27737
|
{
|
|
27965
27738
|
className: AgentGUINode_styles_default.composerProjectRow,
|
|
@@ -27970,7 +27743,6 @@ function AgentComposerView(input) {
|
|
|
27970
27743
|
{
|
|
27971
27744
|
composerSettings,
|
|
27972
27745
|
i18n: workspaceUserProjectI18n,
|
|
27973
|
-
previewMode,
|
|
27974
27746
|
labels: {
|
|
27975
27747
|
projectLocked: labels.projectLocked,
|
|
27976
27748
|
projectMissingDescription: labels.projectMissingDescription
|
|
@@ -27986,7 +27758,7 @@ function AgentComposerView(input) {
|
|
|
27986
27758
|
{
|
|
27987
27759
|
className: AgentGUINode_styles_default.composerPromptTips,
|
|
27988
27760
|
"data-testid": "agent-gui-prompt-tips",
|
|
27989
|
-
children:
|
|
27761
|
+
children: input.isPromptTipOverflowing && promptTipNode ? /* @__PURE__ */ jsx43(TooltipProvider6, { delayDuration: 0, children: /* @__PURE__ */ jsxs31(Tooltip8, { children: [
|
|
27990
27762
|
/* @__PURE__ */ jsx43(TooltipTrigger8, { asChild: true, children: promptTipNode }),
|
|
27991
27763
|
/* @__PURE__ */ jsx43(
|
|
27992
27764
|
TooltipContent8,
|
|
@@ -28409,7 +28181,9 @@ function useScopedProjectMissingState(scopeKey) {
|
|
|
28409
28181
|
if (identityRef.current !== identity) {
|
|
28410
28182
|
return;
|
|
28411
28183
|
}
|
|
28412
|
-
setResult(
|
|
28184
|
+
setResult(
|
|
28185
|
+
(current) => current.identity === identity && current.isMissing === isMissing ? current : { identity, isMissing }
|
|
28186
|
+
);
|
|
28413
28187
|
},
|
|
28414
28188
|
[identity]
|
|
28415
28189
|
);
|
|
@@ -28528,7 +28302,6 @@ function AgentComposer(props) {
|
|
|
28528
28302
|
projectMissingProbeEnabled = true,
|
|
28529
28303
|
uiLanguage = "en",
|
|
28530
28304
|
isActive = true,
|
|
28531
|
-
previewMode = false,
|
|
28532
28305
|
workspaceReferencePickerOpen = false,
|
|
28533
28306
|
promptImagesSupported = true,
|
|
28534
28307
|
canGoalControl = true,
|
|
@@ -28620,13 +28393,13 @@ function AgentComposer(props) {
|
|
|
28620
28393
|
goalDraftObjective ?? draftPrompt
|
|
28621
28394
|
);
|
|
28622
28395
|
const [fileMentionSuggestion, setFileMentionSuggestion] = useState28(null);
|
|
28623
|
-
const
|
|
28396
|
+
const selectedProjectPath = composerSettings.selectedProjectPath?.trim() ?? "";
|
|
28397
|
+
const [isSelectedProjectMissing, setIsSelectedProjectMissing] = useScopedProjectMissingState(selectedProjectPath);
|
|
28624
28398
|
const [isSlashStatusPanelOpen, setIsSlashStatusPanelOpen] = useState28(false);
|
|
28625
28399
|
const slashStatusAgentSessionId = slashStatus?.agentSessionId ?? null;
|
|
28626
28400
|
const previousSlashStatusAgentSessionIdRef = useRef42(
|
|
28627
28401
|
slashStatusAgentSessionId
|
|
28628
28402
|
);
|
|
28629
|
-
const selectedProjectPath = composerSettings.selectedProjectPath?.trim() ?? "";
|
|
28630
28403
|
const selectedProjectSectionKey = composerSettings.selectedProjectSectionKey?.trim() ?? "";
|
|
28631
28404
|
const previousSelectedProjectPathRef = useRef42(selectedProjectPath);
|
|
28632
28405
|
const composerRef = useRef42(null);
|
|
@@ -28889,7 +28662,6 @@ function AgentComposer(props) {
|
|
|
28889
28662
|
);
|
|
28890
28663
|
const providerState = useComposerProviderTargets({
|
|
28891
28664
|
layoutMode,
|
|
28892
|
-
previewMode,
|
|
28893
28665
|
provider,
|
|
28894
28666
|
agentTargets,
|
|
28895
28667
|
handoffAgentTargets,
|
|
@@ -28948,7 +28720,6 @@ function AgentComposer(props) {
|
|
|
28948
28720
|
projectMissingProbeEnabled,
|
|
28949
28721
|
showFileMentionPalette,
|
|
28950
28722
|
showFloatingCommandMenu,
|
|
28951
|
-
previewMode,
|
|
28952
28723
|
promptTips,
|
|
28953
28724
|
promptTipsPrefix: labels.promptTipsPrefix,
|
|
28954
28725
|
composerSettings,
|
|
@@ -29050,7 +28821,7 @@ function AgentComposer(props) {
|
|
|
29050
28821
|
// agent-gui/agentGuiNode/AgentHomeSuggestions.tsx
|
|
29051
28822
|
import { memo, useState as useState29 } from "react";
|
|
29052
28823
|
import { ArrowLeftRight, Code, Compass, Import, Pencil, X as X5 } from "lucide-react";
|
|
29053
|
-
import { jsx as jsx45, jsxs as
|
|
28824
|
+
import { jsx as jsx45, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
29054
28825
|
function TuttiIcon(props) {
|
|
29055
28826
|
return /* @__PURE__ */ jsx45(
|
|
29056
28827
|
"svg",
|
|
@@ -29167,12 +28938,12 @@ var AgentHomeSuggestions = memo(function AgentHomeSuggestions2({
|
|
|
29167
28938
|
(category) => category.id === activeCategoryId && !isDirectCategory(category)
|
|
29168
28939
|
) ?? null;
|
|
29169
28940
|
const ActiveCategoryIcon = activeCategory?.icon ? CATEGORY_ICON[activeCategory.icon] : null;
|
|
29170
|
-
return /* @__PURE__ */
|
|
28941
|
+
return /* @__PURE__ */ jsxs32("div", { className: AgentGUINode_styles_default.emptyHeroSuggestions, children: [
|
|
29171
28942
|
/* @__PURE__ */ jsx45("div", { className: AgentGUINode_styles_default.emptyHeroSuggestionsChips, children: categories.map((category) => {
|
|
29172
28943
|
const Icon = category.icon ? CATEGORY_ICON[category.icon] : null;
|
|
29173
28944
|
const direct = isDirectCategory(category);
|
|
29174
28945
|
const isActive = !direct && category.id === activeCategory?.id;
|
|
29175
|
-
return /* @__PURE__ */
|
|
28946
|
+
return /* @__PURE__ */ jsxs32(
|
|
29176
28947
|
"button",
|
|
29177
28948
|
{
|
|
29178
28949
|
type: "button",
|
|
@@ -29206,9 +28977,9 @@ var AgentHomeSuggestions = memo(function AgentHomeSuggestions2({
|
|
|
29206
28977
|
category.id
|
|
29207
28978
|
);
|
|
29208
28979
|
}) }),
|
|
29209
|
-
activeCategory ? /* @__PURE__ */
|
|
29210
|
-
/* @__PURE__ */
|
|
29211
|
-
/* @__PURE__ */
|
|
28980
|
+
activeCategory ? /* @__PURE__ */ jsxs32("div", { className: AgentGUINode_styles_default.emptyHeroSuggestionsCard, children: [
|
|
28981
|
+
/* @__PURE__ */ jsxs32("div", { className: AgentGUINode_styles_default.emptyHeroSuggestionsCardHeader, children: [
|
|
28982
|
+
/* @__PURE__ */ jsxs32("span", { className: AgentGUINode_styles_default.emptyHeroSuggestionsCardTitle, children: [
|
|
29212
28983
|
ActiveCategoryIcon ? /* @__PURE__ */ jsx45(
|
|
29213
28984
|
ActiveCategoryIcon,
|
|
29214
28985
|
{
|
|
@@ -29278,7 +29049,7 @@ function createFallbackAgentGUIAgentAvatar(input) {
|
|
|
29278
29049
|
|
|
29279
29050
|
// agent-gui/agentGuiNode/view/AgentGUIEmptyHeroCarouselStage.tsx
|
|
29280
29051
|
import { Component as Component3 } from "react";
|
|
29281
|
-
import { jsx as jsx46, jsxs as
|
|
29052
|
+
import { jsx as jsx46, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
29282
29053
|
var AgentGUIEmptyHeroCarouselStage = class extends Component3 {
|
|
29283
29054
|
alignmentActive = false;
|
|
29284
29055
|
animationFrame = null;
|
|
@@ -29312,7 +29083,7 @@ var AgentGUIEmptyHeroCarouselStage = class extends Component3 {
|
|
|
29312
29083
|
providerSelectLabel
|
|
29313
29084
|
} = this.props;
|
|
29314
29085
|
const hasCarousel = items.length > 1;
|
|
29315
|
-
return /* @__PURE__ */
|
|
29086
|
+
return /* @__PURE__ */ jsxs33("div", { ref: this.setStage, className: AgentGUINode_styles_default.emptyHeroCarouselStage, children: [
|
|
29316
29087
|
hasCarousel ? /* @__PURE__ */ jsx46("div", { ref: this.setLayer, className: AgentGUINode_styles_default.emptyHeroCarouselLayer, children: /* @__PURE__ */ jsx46(
|
|
29317
29088
|
AgentGUIHeroAgentCarousel,
|
|
29318
29089
|
{
|
|
@@ -29353,9 +29124,7 @@ var AgentGUIEmptyHeroCarouselStage = class extends Component3 {
|
|
|
29353
29124
|
this.syncAlignment();
|
|
29354
29125
|
}
|
|
29355
29126
|
canAlign() {
|
|
29356
|
-
return Boolean(
|
|
29357
|
-
!this.props.previewMode && this.props.items.length > 1 && this.stage && this.layer
|
|
29358
|
-
);
|
|
29127
|
+
return Boolean(this.props.items.length > 1 && this.stage && this.layer);
|
|
29359
29128
|
}
|
|
29360
29129
|
stopAlignment() {
|
|
29361
29130
|
this.alignmentActive = false;
|
|
@@ -29645,7 +29414,7 @@ function createClientActionId() {
|
|
|
29645
29414
|
}
|
|
29646
29415
|
|
|
29647
29416
|
// agent-gui/agentGuiNode/view/AgentTargetSetupGate.tsx
|
|
29648
|
-
import { Fragment as Fragment15, jsx as jsx48, jsxs as
|
|
29417
|
+
import { Fragment as Fragment15, jsx as jsx48, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
29649
29418
|
function AgentTargetSetupGate({
|
|
29650
29419
|
children,
|
|
29651
29420
|
carouselMountedExternally,
|
|
@@ -29696,8 +29465,8 @@ function AgentTargetSetupGate({
|
|
|
29696
29465
|
const accountDetail = account ? [account.displayName, account.organization].filter(Boolean).join(" \xB7 ") : void 0;
|
|
29697
29466
|
const setupDescription = setupChecking ? t("agentHost.agentGui.targetSetupChecking") : snapshot?.status === "auth_required" ? t("agentHost.agentGui.targetSetupAuthRequired") : snapshot?.status === "ready" ? t("agentHost.agentGui.targetSetupReady") : t("agentHost.agentGui.targetSetupDescription");
|
|
29698
29467
|
const authenticationAvailable = snapshot?.status === "auth_required" || snapshot?.status === "ready";
|
|
29699
|
-
return /* @__PURE__ */
|
|
29700
|
-
gateVisible && setupBlocked ? /* @__PURE__ */ jsx48("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */
|
|
29468
|
+
return /* @__PURE__ */ jsxs34(Fragment15, { children: [
|
|
29469
|
+
gateVisible && setupBlocked ? /* @__PURE__ */ jsx48("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs34(
|
|
29701
29470
|
"div",
|
|
29702
29471
|
{
|
|
29703
29472
|
className: cn5(AgentGUINode_styles_default.emptyHeroBody, AgentGUINode_styles_default.emptyProviderGate),
|
|
@@ -29736,7 +29505,7 @@ function AgentTargetSetupGate({
|
|
|
29736
29505
|
provider: providerLabel
|
|
29737
29506
|
}),
|
|
29738
29507
|
description: setupDescription,
|
|
29739
|
-
footer: /* @__PURE__ */
|
|
29508
|
+
footer: /* @__PURE__ */ jsxs34(
|
|
29740
29509
|
Button7,
|
|
29741
29510
|
{
|
|
29742
29511
|
size: "dialog",
|
|
@@ -29749,13 +29518,13 @@ function AgentTargetSetupGate({
|
|
|
29749
29518
|
]
|
|
29750
29519
|
}
|
|
29751
29520
|
),
|
|
29752
|
-
children: /* @__PURE__ */
|
|
29521
|
+
children: /* @__PURE__ */ jsxs34("div", { className: "flex flex-col gap-4", children: [
|
|
29753
29522
|
/* @__PURE__ */ jsx48("p", { className: "m-0 text-[13px] text-[var(--text-secondary)]", children: statusLabel2 ?? (snapshot?.status === "ready" ? t("agentHost.agentGui.targetSetupComplete", {
|
|
29754
29523
|
provider: providerLabel
|
|
29755
29524
|
}) : t("agentHost.agentGui.targetSetupRemaining", {
|
|
29756
29525
|
provider: providerLabel
|
|
29757
29526
|
})) }),
|
|
29758
|
-
/* @__PURE__ */
|
|
29527
|
+
/* @__PURE__ */ jsxs34("ol", { className: "m-0 flex list-none flex-col divide-y divide-[var(--border-1)] p-0", children: [
|
|
29759
29528
|
/* @__PURE__ */ jsx48(
|
|
29760
29529
|
SetupTrackRow,
|
|
29761
29530
|
{
|
|
@@ -29805,9 +29574,9 @@ function AgentTargetSetupGate({
|
|
|
29805
29574
|
children: authenticatePending ? t("agentHost.agentGui.targetSetupAuthStarting") : snapshot?.status === "ready" ? t("agentHost.agentGui.targetSetupReauthenticate") : t("agentHost.agentGui.targetSetupAuthenticate")
|
|
29806
29575
|
}
|
|
29807
29576
|
) : void 0,
|
|
29808
|
-
children: snapshot?.status === "auth_required" && authMethods.length > 0 ? /* @__PURE__ */
|
|
29577
|
+
children: snapshot?.status === "auth_required" && authMethods.length > 0 ? /* @__PURE__ */ jsxs34("label", { className: "mt-2 flex flex-col gap-1 text-[12px] text-[var(--text-secondary)]", children: [
|
|
29809
29578
|
t("agentHost.agentGui.targetSetupAuthMethod"),
|
|
29810
|
-
/* @__PURE__ */
|
|
29579
|
+
/* @__PURE__ */ jsxs34(
|
|
29811
29580
|
Select4,
|
|
29812
29581
|
{
|
|
29813
29582
|
value: effectiveAuthMethodId,
|
|
@@ -29836,7 +29605,7 @@ function AgentTargetSetupGate({
|
|
|
29836
29605
|
}
|
|
29837
29606
|
)
|
|
29838
29607
|
] }),
|
|
29839
|
-
failed || snapshot?.status === "failed" || actionFailed ? /* @__PURE__ */
|
|
29608
|
+
failed || snapshot?.status === "failed" || actionFailed ? /* @__PURE__ */ jsxs34("p", { className: "m-0 text-[12px] text-[var(--state-danger)]", children: [
|
|
29840
29609
|
/* @__PURE__ */ jsx48("span", { className: "block", children: snapshot?.action?.kind === "authenticate" ? t("agentHost.agentGui.targetSetupAuthFailed") : t("agentHost.agentGui.targetSetupFailed") }),
|
|
29841
29610
|
snapshot?.action?.errorMessage?.trim() ? /* @__PURE__ */ jsx48("span", { className: "mt-1 block break-words text-[var(--text-secondary)]", children: snapshot.action.errorMessage.trim() }) : null
|
|
29842
29611
|
] }) : null
|
|
@@ -29859,15 +29628,15 @@ function SetupTrackRow({
|
|
|
29859
29628
|
status,
|
|
29860
29629
|
warning = false
|
|
29861
29630
|
}) {
|
|
29862
|
-
return /* @__PURE__ */
|
|
29631
|
+
return /* @__PURE__ */ jsxs34(
|
|
29863
29632
|
"li",
|
|
29864
29633
|
{
|
|
29865
29634
|
"data-status": status,
|
|
29866
29635
|
className: `flex items-start gap-2.5 py-3 ${status === "pending" ? "opacity-50" : ""}`,
|
|
29867
29636
|
children: [
|
|
29868
29637
|
/* @__PURE__ */ jsx48("span", { className: "mt-0.5 shrink-0", children: /* @__PURE__ */ jsx48(AgentSetupStepIcon, { status, warning }) }),
|
|
29869
|
-
/* @__PURE__ */
|
|
29870
|
-
/* @__PURE__ */
|
|
29638
|
+
/* @__PURE__ */ jsxs34("span", { className: "min-w-0 flex-1", children: [
|
|
29639
|
+
/* @__PURE__ */ jsxs34("span", { className: "flex min-w-0 items-baseline gap-2", children: [
|
|
29871
29640
|
/* @__PURE__ */ jsx48(
|
|
29872
29641
|
"span",
|
|
29873
29642
|
{
|
|
@@ -29924,7 +29693,7 @@ function targetSetupPhaseLabel(t, phase) {
|
|
|
29924
29693
|
|
|
29925
29694
|
// agent-gui/agentGuiNode/view/AgentGUIAgentTargetName.tsx
|
|
29926
29695
|
import { cn as cn6 } from "@tutti-os/ui-system";
|
|
29927
|
-
import { Fragment as Fragment16, jsx as jsx49, jsxs as
|
|
29696
|
+
import { Fragment as Fragment16, jsx as jsx49, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
29928
29697
|
function projectAgentGUIAgentTargetName(input) {
|
|
29929
29698
|
const agentLabel = input.target.label.trim();
|
|
29930
29699
|
const ownerLabel = input.target.ownership === "shared" ? input.target.ownerLabel?.trim() || null : null;
|
|
@@ -29950,7 +29719,7 @@ function AgentGUIAgentTargetName({
|
|
|
29950
29719
|
{
|
|
29951
29720
|
className: cn6("flex min-w-0 max-w-full items-baseline", className),
|
|
29952
29721
|
title: presentation.fullLabel,
|
|
29953
|
-
children: presentation.ownerLabel ? /* @__PURE__ */
|
|
29722
|
+
children: presentation.ownerLabel ? /* @__PURE__ */ jsxs35(Fragment16, { children: [
|
|
29954
29723
|
/* @__PURE__ */ jsx49(
|
|
29955
29724
|
"span",
|
|
29956
29725
|
{
|
|
@@ -29959,7 +29728,7 @@ function AgentGUIAgentTargetName({
|
|
|
29959
29728
|
children: presentation.ownerLabel
|
|
29960
29729
|
}
|
|
29961
29730
|
),
|
|
29962
|
-
/* @__PURE__ */
|
|
29731
|
+
/* @__PURE__ */ jsxs35(
|
|
29963
29732
|
"span",
|
|
29964
29733
|
{
|
|
29965
29734
|
className: "shrink-0 whitespace-pre",
|
|
@@ -29976,7 +29745,7 @@ function AgentGUIAgentTargetName({
|
|
|
29976
29745
|
}
|
|
29977
29746
|
|
|
29978
29747
|
// agent-gui/agentGuiNode/view/AgentGUIEmptyState.tsx
|
|
29979
|
-
import { Fragment as Fragment17, jsx as jsx50, jsxs as
|
|
29748
|
+
import { Fragment as Fragment17, jsx as jsx50, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
29980
29749
|
function resolveAgentGUIHeroIconUrl2(provider) {
|
|
29981
29750
|
const normalizedProvider = normalizeManagedAgentProvider(provider);
|
|
29982
29751
|
return MANAGED_AGENT_ICON_URLS[normalizedProvider] ?? MANAGED_AGENT_ICON_FALLBACK_URL;
|
|
@@ -30000,7 +29769,6 @@ var AgentGUIEmptyHomePane = memo2(function AgentGUIEmptyHomePane2({
|
|
|
30000
29769
|
agentTargets,
|
|
30001
29770
|
selectedAgentTarget,
|
|
30002
29771
|
onProviderSelect,
|
|
30003
|
-
previewMode,
|
|
30004
29772
|
labels,
|
|
30005
29773
|
...heroProps
|
|
30006
29774
|
}) {
|
|
@@ -30028,7 +29796,6 @@ var AgentGUIEmptyHomePane = memo2(function AgentGUIEmptyHomePane2({
|
|
|
30028
29796
|
activeAgentTargetId: selectedAgentTarget?.agentTargetId ?? selectedAgentTarget?.targetId,
|
|
30029
29797
|
items: avatarPresentations,
|
|
30030
29798
|
onProviderSelect,
|
|
30031
|
-
previewMode,
|
|
30032
29799
|
providerSelectLabel: labels.providerSwitchLabel,
|
|
30033
29800
|
children: /* @__PURE__ */ jsx50(
|
|
30034
29801
|
AgentTargetSetupGate,
|
|
@@ -30105,7 +29872,7 @@ var AgentGUIEmptyHeroPane = memo2(function AgentGUIEmptyHeroPane2({
|
|
|
30105
29872
|
const heroIconAnimationKey = heroAvatarPresentations.map(
|
|
30106
29873
|
(avatar) => `${avatar.agentTargetId}:${avatar.iconUrl}:${avatar.badge?.iconUrl ?? ""}`
|
|
30107
29874
|
).join("|");
|
|
30108
|
-
return /* @__PURE__ */ jsx50("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */
|
|
29875
|
+
return /* @__PURE__ */ jsx50("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs36("div", { className: AgentGUINode_styles_default.emptyHeroBody, children: [
|
|
30109
29876
|
/* @__PURE__ */ jsx50(
|
|
30110
29877
|
"div",
|
|
30111
29878
|
{
|
|
@@ -30200,7 +29967,7 @@ var AgentGUIProviderReadinessGatePane = memo2(
|
|
|
30200
29967
|
const titleLabel = gate.status === "not_installed" || gate.status === "auth_required" ? emptyLabel : content.title;
|
|
30201
29968
|
const action = resolveAgentGUIProviderReadinessAction(gate.status);
|
|
30202
29969
|
const pendingLabel = pendingAction === "install" ? labels.providerGatePendingInstall : pendingAction === "login" ? labels.providerGatePendingLogin : pendingAction === "refresh" ? labels.providerGatePendingRefresh : null;
|
|
30203
|
-
return /* @__PURE__ */ jsx50("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */
|
|
29970
|
+
return /* @__PURE__ */ jsx50("div", { className: AgentGUINode_styles_default.emptyHero, children: /* @__PURE__ */ jsxs36(
|
|
30204
29971
|
"div",
|
|
30205
29972
|
{
|
|
30206
29973
|
className: cn7(AgentGUINode_styles_default.emptyHeroBody, AgentGUINode_styles_default.emptyProviderGate),
|
|
@@ -30322,7 +30089,7 @@ function AgentGUIAgentAvatarVisual({
|
|
|
30322
30089
|
imageClassName,
|
|
30323
30090
|
presentation
|
|
30324
30091
|
}) {
|
|
30325
|
-
return /* @__PURE__ */
|
|
30092
|
+
return /* @__PURE__ */ jsxs36(
|
|
30326
30093
|
"span",
|
|
30327
30094
|
{
|
|
30328
30095
|
"aria-hidden": "true",
|
|
@@ -30368,9 +30135,9 @@ function EmptyHeroTitle({
|
|
|
30368
30135
|
const selectedAgentTargetId = selectedAgentTarget?.targetId ?? `local:${selectedAgentTarget?.provider ?? ""}`;
|
|
30369
30136
|
const canSwitchProvider = agentTargets.length > 1 && selectedAgentTarget && onProviderSelect;
|
|
30370
30137
|
const providerName = label.slice(providerStart, providerEnd);
|
|
30371
|
-
return /* @__PURE__ */
|
|
30138
|
+
return /* @__PURE__ */ jsxs36(Fragment17, { children: [
|
|
30372
30139
|
label.slice(0, providerStart),
|
|
30373
|
-
canSwitchProvider ? /* @__PURE__ */
|
|
30140
|
+
canSwitchProvider ? /* @__PURE__ */ jsxs36(
|
|
30374
30141
|
Select5,
|
|
30375
30142
|
{
|
|
30376
30143
|
value: selectedAgentTargetId,
|
|
@@ -30417,7 +30184,7 @@ function EmptyHeroTitle({
|
|
|
30417
30184
|
{
|
|
30418
30185
|
value: target.targetId,
|
|
30419
30186
|
className: cn7(AgentGUINode_styles_default.composerMenuItem, "gap-2"),
|
|
30420
|
-
children: /* @__PURE__ */
|
|
30187
|
+
children: /* @__PURE__ */ jsxs36("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
30421
30188
|
/* @__PURE__ */ jsx50(
|
|
30422
30189
|
"img",
|
|
30423
30190
|
{
|
|
@@ -30472,7 +30239,7 @@ import {
|
|
|
30472
30239
|
DialogTitle as DialogTitle2,
|
|
30473
30240
|
toast as toast3
|
|
30474
30241
|
} from "@tutti-os/ui-system";
|
|
30475
|
-
import { jsx as jsx51, jsxs as
|
|
30242
|
+
import { jsx as jsx51, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
30476
30243
|
var AGENT_MANAGER_LONG_PRESS_MOVE_TOLERANCE_PX = 8;
|
|
30477
30244
|
var AGENT_MANAGER_DROP_HYSTERESIS_PX = 8;
|
|
30478
30245
|
function AgentGUIProviderManagerDialog({
|
|
@@ -30695,7 +30462,7 @@ function AgentGUIProviderManagerDialog({
|
|
|
30695
30462
|
};
|
|
30696
30463
|
const disabledDropBlocked = dragState?.source === "available" && (finalAvailableAgent || running.has(dragState.targetId));
|
|
30697
30464
|
const disabledDropBlockedByRunning = dragState?.source === "available" && running.has(dragState.targetId);
|
|
30698
|
-
return /* @__PURE__ */ jsx51(Dialog2, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */
|
|
30465
|
+
return /* @__PURE__ */ jsx51(Dialog2, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsxs37(
|
|
30699
30466
|
DialogContent2,
|
|
30700
30467
|
{
|
|
30701
30468
|
className: "nodrag tsh-desktop-no-drag flex max-h-[min(680px,calc(100vh-32px))] flex-col gap-0 overflow-hidden p-0 [-webkit-app-region:no-drag] sm:max-w-[520px]",
|
|
@@ -30710,17 +30477,17 @@ function AgentGUIProviderManagerDialog({
|
|
|
30710
30477
|
setEditing(false);
|
|
30711
30478
|
},
|
|
30712
30479
|
children: [
|
|
30713
|
-
/* @__PURE__ */
|
|
30480
|
+
/* @__PURE__ */ jsxs37(DialogHeader2, { className: "shrink-0 border-b border-[var(--border-1)] px-5 py-4", children: [
|
|
30714
30481
|
/* @__PURE__ */ jsx51(DialogTitle2, { children: labels.manageAgentsTitle }),
|
|
30715
30482
|
/* @__PURE__ */ jsx51(DialogDescription2, { children: labels.manageAgentsDescription })
|
|
30716
30483
|
] }),
|
|
30717
|
-
/* @__PURE__ */
|
|
30484
|
+
/* @__PURE__ */ jsxs37(
|
|
30718
30485
|
"div",
|
|
30719
30486
|
{
|
|
30720
30487
|
className: "min-h-0 flex-1 overflow-y-auto px-5 py-4",
|
|
30721
30488
|
onClick: exitEditingFromBlankSpace,
|
|
30722
30489
|
children: [
|
|
30723
|
-
/* @__PURE__ */
|
|
30490
|
+
/* @__PURE__ */ jsxs37(
|
|
30724
30491
|
"section",
|
|
30725
30492
|
{
|
|
30726
30493
|
"aria-labelledby": "agent-manager-available-heading",
|
|
@@ -30749,7 +30516,7 @@ function AgentGUIProviderManagerDialog({
|
|
|
30749
30516
|
children: availableTargets.map((target) => {
|
|
30750
30517
|
const label = target.label.trim() || target.provider;
|
|
30751
30518
|
const targetRunning = running.has(target.targetId);
|
|
30752
|
-
return /* @__PURE__ */
|
|
30519
|
+
return /* @__PURE__ */ jsxs37(
|
|
30753
30520
|
"div",
|
|
30754
30521
|
{
|
|
30755
30522
|
"aria-label": labels.dragAgentToReorder(label),
|
|
@@ -30838,7 +30605,7 @@ function AgentGUIProviderManagerDialog({
|
|
|
30838
30605
|
]
|
|
30839
30606
|
}
|
|
30840
30607
|
),
|
|
30841
|
-
/* @__PURE__ */
|
|
30608
|
+
/* @__PURE__ */ jsxs37(
|
|
30842
30609
|
"section",
|
|
30843
30610
|
{
|
|
30844
30611
|
"aria-labelledby": "agent-manager-disabled-heading",
|
|
@@ -30872,7 +30639,7 @@ function AgentGUIProviderManagerDialog({
|
|
|
30872
30639
|
role: "list",
|
|
30873
30640
|
children: disabledTargets.map((target) => {
|
|
30874
30641
|
const label = target.label.trim() || target.provider;
|
|
30875
|
-
return /* @__PURE__ */
|
|
30642
|
+
return /* @__PURE__ */ jsxs37(
|
|
30876
30643
|
"div",
|
|
30877
30644
|
{
|
|
30878
30645
|
"aria-label": labels.dragAgentToReorder(label),
|
|
@@ -31013,7 +30780,7 @@ function useAgentGUIProviderRailPreferences() {
|
|
|
31013
30780
|
}
|
|
31014
30781
|
|
|
31015
30782
|
// agent-gui/agentGuiNode/view/AgentGUIProviderRail.tsx
|
|
31016
|
-
import { jsx as jsx52, jsxs as
|
|
30783
|
+
import { jsx as jsx52, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
31017
30784
|
var agentGUIProviderRailCatalog = [
|
|
31018
30785
|
...migratedAgentGUIProviderIdentityCatalog
|
|
31019
30786
|
].sort((left, right) => left.target.sortOrder - right.target.sortOrder);
|
|
@@ -31086,7 +30853,6 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
31086
30853
|
labels,
|
|
31087
30854
|
managerOpen,
|
|
31088
30855
|
onManagerOpenChange,
|
|
31089
|
-
previewMode,
|
|
31090
30856
|
selectedAgentTarget,
|
|
31091
30857
|
agentTargets,
|
|
31092
30858
|
agentTargetsLoading,
|
|
@@ -31193,7 +30959,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
31193
30959
|
}, [setProviderRailDragState]);
|
|
31194
30960
|
const handleProviderRailDragStart = useCallback50(
|
|
31195
30961
|
(event, target) => {
|
|
31196
|
-
if (
|
|
30962
|
+
if (agentTargetsLoading) {
|
|
31197
30963
|
event.preventDefault();
|
|
31198
30964
|
return;
|
|
31199
30965
|
}
|
|
@@ -31205,11 +30971,11 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
31205
30971
|
position: null
|
|
31206
30972
|
});
|
|
31207
30973
|
},
|
|
31208
|
-
[
|
|
30974
|
+
[agentTargetsLoading, setProviderRailDragState]
|
|
31209
30975
|
);
|
|
31210
30976
|
const handleProviderRailDragOver = useCallback50(
|
|
31211
30977
|
(event, target) => {
|
|
31212
|
-
if (
|
|
30978
|
+
if (agentTargetsLoading || !dragState) {
|
|
31213
30979
|
return;
|
|
31214
30980
|
}
|
|
31215
30981
|
event.preventDefault();
|
|
@@ -31237,7 +31003,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
31237
31003
|
position
|
|
31238
31004
|
});
|
|
31239
31005
|
},
|
|
31240
|
-
[dragState,
|
|
31006
|
+
[dragState, agentTargetsLoading, setProviderRailDragState]
|
|
31241
31007
|
);
|
|
31242
31008
|
const commitProviderRailDragDrop = useCallback50(
|
|
31243
31009
|
(event) => {
|
|
@@ -31247,7 +31013,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
31247
31013
|
overTargetId: null,
|
|
31248
31014
|
position: null
|
|
31249
31015
|
} : null);
|
|
31250
|
-
if (
|
|
31016
|
+
if (agentTargetsLoading || !activeDragState) {
|
|
31251
31017
|
clearProviderRailDragState();
|
|
31252
31018
|
return;
|
|
31253
31019
|
}
|
|
@@ -31309,7 +31075,6 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
31309
31075
|
clearProviderRailDragState,
|
|
31310
31076
|
dragState,
|
|
31311
31077
|
persistProviderRailPreferences,
|
|
31312
|
-
previewMode,
|
|
31313
31078
|
agentTargetsLoading,
|
|
31314
31079
|
effectiveProviderRailPreferences,
|
|
31315
31080
|
visibleProviderTiles
|
|
@@ -31371,7 +31136,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
31371
31136
|
const handleProviderRailContainerDragOver = useCallback50(
|
|
31372
31137
|
(event) => {
|
|
31373
31138
|
const activeDragState = dragStateRef.current ?? dragState;
|
|
31374
|
-
if (!activeDragState ||
|
|
31139
|
+
if (!activeDragState || agentTargetsLoading) {
|
|
31375
31140
|
return;
|
|
31376
31141
|
}
|
|
31377
31142
|
event.preventDefault();
|
|
@@ -31410,7 +31175,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
31410
31175
|
position
|
|
31411
31176
|
});
|
|
31412
31177
|
},
|
|
31413
|
-
[dragState,
|
|
31178
|
+
[dragState, agentTargetsLoading, setProviderRailDragState]
|
|
31414
31179
|
);
|
|
31415
31180
|
const providerManagerDialog = /* @__PURE__ */ jsx52(
|
|
31416
31181
|
AgentGUIProviderManagerDialog,
|
|
@@ -31426,7 +31191,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
31426
31191
|
}
|
|
31427
31192
|
);
|
|
31428
31193
|
if (providerRailMode === "exact" && !agentTargetsLoading && visibleProviderTiles.length === 0 && renderProviderRailEmpty) {
|
|
31429
|
-
return /* @__PURE__ */
|
|
31194
|
+
return /* @__PURE__ */ jsxs38(
|
|
31430
31195
|
"div",
|
|
31431
31196
|
{
|
|
31432
31197
|
className: AgentGUINode_styles_default.providerRail,
|
|
@@ -31441,8 +31206,8 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
31441
31206
|
}
|
|
31442
31207
|
);
|
|
31443
31208
|
}
|
|
31444
|
-
return /* @__PURE__ */
|
|
31445
|
-
/* @__PURE__ */
|
|
31209
|
+
return /* @__PURE__ */ jsxs38("div", { className: AgentGUINode_styles_default.providerRail, children: [
|
|
31210
|
+
/* @__PURE__ */ jsxs38(
|
|
31446
31211
|
"div",
|
|
31447
31212
|
{
|
|
31448
31213
|
className: "flex min-h-0 w-full flex-col items-center",
|
|
@@ -31452,7 +31217,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
31452
31217
|
onDragOver: handleProviderRailContainerDragOver,
|
|
31453
31218
|
onDrop: commitProviderRailDragDrop,
|
|
31454
31219
|
children: [
|
|
31455
|
-
/* @__PURE__ */
|
|
31220
|
+
/* @__PURE__ */ jsxs38(
|
|
31456
31221
|
"button",
|
|
31457
31222
|
{
|
|
31458
31223
|
type: "button",
|
|
@@ -31461,7 +31226,6 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
31461
31226
|
"aria-selected": allTileSelected,
|
|
31462
31227
|
className: AgentGUINode_styles_default.providerRailTile,
|
|
31463
31228
|
"data-selected": allTileSelected ? "true" : "false",
|
|
31464
|
-
disabled: previewMode,
|
|
31465
31229
|
onClick: selectAllProviders,
|
|
31466
31230
|
children: [
|
|
31467
31231
|
/* @__PURE__ */ jsx52(
|
|
@@ -31522,13 +31286,12 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
31522
31286
|
"data-provider-tile": "true",
|
|
31523
31287
|
"data-provider-target-id": target.targetId,
|
|
31524
31288
|
"data-selected": providerSelected ? "true" : "false",
|
|
31525
|
-
|
|
31526
|
-
draggable: !previewMode && !agentTargetsLoading,
|
|
31289
|
+
draggable: !agentTargetsLoading,
|
|
31527
31290
|
onClick: () => selectAgentTargetTile(target),
|
|
31528
31291
|
onDragEnd: clearProviderRailDragState,
|
|
31529
31292
|
onDragOver: (event) => handleProviderRailDragOver(event, target),
|
|
31530
31293
|
onDragStart: (event) => handleProviderRailDragStart(event, target),
|
|
31531
|
-
children: /* @__PURE__ */
|
|
31294
|
+
children: /* @__PURE__ */ jsxs38("span", { className: AgentGUINode_styles_default.providerRailAvatar, children: [
|
|
31532
31295
|
/* @__PURE__ */ jsx52(
|
|
31533
31296
|
AgentGUIProviderIconVisual,
|
|
31534
31297
|
{
|
|
@@ -31562,10 +31325,7 @@ var AgentGUIProviderRail = memo3(function AgentGUIProviderRail2({
|
|
|
31562
31325
|
},
|
|
31563
31326
|
`${target.provider}:${target.targetId}`
|
|
31564
31327
|
);
|
|
31565
|
-
|
|
31566
|
-
return tile;
|
|
31567
|
-
}
|
|
31568
|
-
return /* @__PURE__ */ jsxs39(Tooltip9, { children: [
|
|
31328
|
+
return /* @__PURE__ */ jsxs38(Tooltip9, { children: [
|
|
31569
31329
|
/* @__PURE__ */ jsx52(TooltipTrigger9, { asChild: true, children: tile }),
|
|
31570
31330
|
/* @__PURE__ */ jsx52(TooltipContent9, { side: "right", sideOffset: -4, children: label })
|
|
31571
31331
|
] }, `${target.provider}:${target.targetId}:tooltip`);
|
|
@@ -31599,7 +31359,7 @@ var styles3 = {
|
|
|
31599
31359
|
var RoomIssueNode_styles_default = styles3;
|
|
31600
31360
|
|
|
31601
31361
|
// agent-gui/RoomIssueNode/TaskSearchField.tsx
|
|
31602
|
-
import { jsx as jsx53, jsxs as
|
|
31362
|
+
import { jsx as jsx53, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
31603
31363
|
function TaskSearchField({
|
|
31604
31364
|
ariaLabel,
|
|
31605
31365
|
className,
|
|
@@ -31613,7 +31373,7 @@ function TaskSearchField({
|
|
|
31613
31373
|
"use memo";
|
|
31614
31374
|
const { t } = useTranslation();
|
|
31615
31375
|
const searchInput = useComposedInputValue({ onCommit: onChange, value });
|
|
31616
|
-
return /* @__PURE__ */
|
|
31376
|
+
return /* @__PURE__ */ jsxs39(
|
|
31617
31377
|
"div",
|
|
31618
31378
|
{
|
|
31619
31379
|
className: `${RoomIssueNode_styles_default.searchField} ${className ?? ""}`.trim(),
|
|
@@ -31668,7 +31428,7 @@ function isTaskSearchImeComposing(event) {
|
|
|
31668
31428
|
}
|
|
31669
31429
|
|
|
31670
31430
|
// agent-gui/agentGuiNode/AgentConversationListSkeleton.tsx
|
|
31671
|
-
import { jsx as jsx54, jsxs as
|
|
31431
|
+
import { jsx as jsx54, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
31672
31432
|
var SKELETON_ROWS = [
|
|
31673
31433
|
{ id: "first", size: "long" },
|
|
31674
31434
|
{ id: "second", size: "medium" },
|
|
@@ -31687,7 +31447,7 @@ function AgentConversationListSkeleton({
|
|
|
31687
31447
|
role: "status",
|
|
31688
31448
|
"aria-label": label,
|
|
31689
31449
|
"data-testid": "agent-gui-conversation-list-loading-skeleton",
|
|
31690
|
-
children: SKELETON_ROWS.map((row) => /* @__PURE__ */
|
|
31450
|
+
children: SKELETON_ROWS.map((row) => /* @__PURE__ */ jsxs40(
|
|
31691
31451
|
"div",
|
|
31692
31452
|
{
|
|
31693
31453
|
className: "agent-gui-node__conversation-list-skeleton-row",
|
|
@@ -32529,7 +32289,7 @@ import { memo as memo6, useCallback as useCallback55 } from "react";
|
|
|
32529
32289
|
// agent-gui/agentGuiNode/view/AgentGUIConversationRailItem.tsx
|
|
32530
32290
|
import { memo as memo4, useCallback as useCallback53, useMemo as useMemo39 } from "react";
|
|
32531
32291
|
import { ExternalLink as ExternalLink2 } from "lucide-react";
|
|
32532
|
-
import {
|
|
32292
|
+
import { NewWorkspaceLinedIcon as NewWorkspaceLinedIcon2, cn as cn8 } from "@tutti-os/ui-system";
|
|
32533
32293
|
import { WorkspaceUserProjectSelect as WorkspaceUserProjectSelect2 } from "@tutti-os/workspace-user-project/ui";
|
|
32534
32294
|
import { BareIconButton as BareIconButton3 } from "@tutti-os/ui-system/components";
|
|
32535
32295
|
|
|
@@ -32815,7 +32575,7 @@ function renderAgentConversationCopyHtml(markdown) {
|
|
|
32815
32575
|
}
|
|
32816
32576
|
|
|
32817
32577
|
// agent-gui/agentGuiNode/view/AgentGUIConversationActionsMenu.tsx
|
|
32818
|
-
import { Fragment as Fragment19, jsx as jsx59, jsxs as
|
|
32578
|
+
import { Fragment as Fragment19, jsx as jsx59, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
32819
32579
|
var menuContentClassName = "w-max min-w-44 nodrag [-webkit-app-region:no-drag]";
|
|
32820
32580
|
async function writeTextAndHtmlWithWebClipboard(text, html) {
|
|
32821
32581
|
if (typeof navigator === "undefined" || typeof navigator.clipboard?.write !== "function" || typeof ClipboardItem === "undefined") {
|
|
@@ -33072,7 +32832,7 @@ function AgentGUIConversationActionsDropdown({
|
|
|
33072
32832
|
moreSessionActionsLabel
|
|
33073
32833
|
}) {
|
|
33074
32834
|
const [open, setOpen] = useState34(false);
|
|
33075
|
-
return /* @__PURE__ */
|
|
32835
|
+
return /* @__PURE__ */ jsxs41(DropdownMenu4, { onOpenChange: setOpen, children: [
|
|
33076
32836
|
/* @__PURE__ */ jsx59(DropdownMenuTrigger4, { asChild: true, children: /* @__PURE__ */ jsx59(
|
|
33077
32837
|
BareIconButton2,
|
|
33078
32838
|
{
|
|
@@ -33102,7 +32862,7 @@ function AgentGUIConversationActionsContextMenu({
|
|
|
33102
32862
|
menu
|
|
33103
32863
|
}) {
|
|
33104
32864
|
const [open, setOpen] = useState34(false);
|
|
33105
|
-
return /* @__PURE__ */
|
|
32865
|
+
return /* @__PURE__ */ jsxs41(ContextMenu, { onOpenChange: setOpen, children: [
|
|
33106
32866
|
/* @__PURE__ */ jsx59(ContextMenuTrigger, { asChild: true, children }),
|
|
33107
32867
|
open ? /* @__PURE__ */ jsx59(ContextMenuContent, { className: menuContentClassName, children: /* @__PURE__ */ jsx59(ContextActionGroups, { groups: menu.groups }) }) : null
|
|
33108
32868
|
] }, menu.resetKey);
|
|
@@ -33110,14 +32870,14 @@ function AgentGUIConversationActionsContextMenu({
|
|
|
33110
32870
|
function DropdownActionGroups({
|
|
33111
32871
|
groups
|
|
33112
32872
|
}) {
|
|
33113
|
-
return /* @__PURE__ */ jsx59(Fragment19, { children: groups.map((group, groupIndex) => /* @__PURE__ */
|
|
32873
|
+
return /* @__PURE__ */ jsx59(Fragment19, { children: groups.map((group, groupIndex) => /* @__PURE__ */ jsxs41(Fragment18, { children: [
|
|
33114
32874
|
groupIndex > 0 ? /* @__PURE__ */ jsx59(DropdownMenuSeparator2, {}) : null,
|
|
33115
32875
|
group.map((entry) => (
|
|
33116
32876
|
// onClick/onPointerUp mirror onSelect so the action survives
|
|
33117
32877
|
// workbench dead clicks (pointerup arrives but the click event
|
|
33118
32878
|
// is swallowed); the shared runner's pending ref dedups the
|
|
33119
32879
|
// overlapping events of one gesture.
|
|
33120
|
-
/* @__PURE__ */
|
|
32880
|
+
/* @__PURE__ */ jsxs41(
|
|
33121
32881
|
DropdownMenuItem3,
|
|
33122
32882
|
{
|
|
33123
32883
|
disabled: entry.disabled,
|
|
@@ -33145,11 +32905,11 @@ function DropdownActionGroups({
|
|
|
33145
32905
|
function ContextActionGroups({
|
|
33146
32906
|
groups
|
|
33147
32907
|
}) {
|
|
33148
|
-
return /* @__PURE__ */ jsx59(Fragment19, { children: groups.map((group, groupIndex) => /* @__PURE__ */
|
|
32908
|
+
return /* @__PURE__ */ jsx59(Fragment19, { children: groups.map((group, groupIndex) => /* @__PURE__ */ jsxs41(Fragment18, { children: [
|
|
33149
32909
|
groupIndex > 0 ? /* @__PURE__ */ jsx59(ContextMenuSeparator, {}) : null,
|
|
33150
32910
|
group.map((entry) => (
|
|
33151
32911
|
// Same dead-click fallbacks as DropdownActionGroups.
|
|
33152
|
-
/* @__PURE__ */
|
|
32912
|
+
/* @__PURE__ */ jsxs41(
|
|
33153
32913
|
ContextMenuItem,
|
|
33154
32914
|
{
|
|
33155
32915
|
disabled: entry.disabled,
|
|
@@ -33176,7 +32936,7 @@ function ContextActionGroups({
|
|
|
33176
32936
|
}
|
|
33177
32937
|
|
|
33178
32938
|
// agent-gui/agentGuiNode/view/AgentGUIConversationRailItem.tsx
|
|
33179
|
-
import { Fragment as Fragment20, jsx as jsx60, jsxs as
|
|
32939
|
+
import { Fragment as Fragment20, jsx as jsx60, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
33180
32940
|
function agentGUIConversationIconPresentation(provider, agentTargetId, workspaceId, agentTargets) {
|
|
33181
32941
|
const targetPresentation = resolveAgentTargetPresentation({
|
|
33182
32942
|
agentTargetId: agentTargetId ?? "",
|
|
@@ -33195,8 +32955,7 @@ function agentGUIConversationIconPresentation(provider, agentTargetId, workspace
|
|
|
33195
32955
|
return providerIconUrl ? { kind: "mask", url: providerIconUrl } : null;
|
|
33196
32956
|
}
|
|
33197
32957
|
function agentGUIConversationRailTitle(item, labels, uiLanguage) {
|
|
33198
|
-
|
|
33199
|
-
return item.titleLeadingMentionKind === "task" ? title.replace(/^@\s*/, "") : title;
|
|
32958
|
+
return conversationPlainTitle(item, labels, uiLanguage);
|
|
33200
32959
|
}
|
|
33201
32960
|
var AgentGUIConversationRailItem = memo4(
|
|
33202
32961
|
function AgentGUIConversationRailItem2({
|
|
@@ -33206,7 +32965,6 @@ var AgentGUIConversationRailItem = memo4(
|
|
|
33206
32965
|
isDeletingConversation,
|
|
33207
32966
|
isRailInteractionLocked,
|
|
33208
32967
|
labels,
|
|
33209
|
-
previewMode,
|
|
33210
32968
|
uiLanguage,
|
|
33211
32969
|
workspaceId,
|
|
33212
32970
|
registerItemElement,
|
|
@@ -33269,7 +33027,7 @@ var AgentGUIConversationRailItem = memo4(
|
|
|
33269
33027
|
}
|
|
33270
33028
|
};
|
|
33271
33029
|
const canMarkUnread = Boolean(
|
|
33272
|
-
!
|
|
33030
|
+
!item.hasUnreadCompletion && item.isImported !== true && (item.unreadCompletionKey || item.status === "completed" || item.status === "ready")
|
|
33273
33031
|
);
|
|
33274
33032
|
const menu = useConversationActionGroups({
|
|
33275
33033
|
canMarkUnread,
|
|
@@ -33282,7 +33040,7 @@ var AgentGUIConversationRailItem = memo4(
|
|
|
33282
33040
|
onOpenConversationWindow,
|
|
33283
33041
|
onRequestRenameConversation
|
|
33284
33042
|
});
|
|
33285
|
-
const row = /* @__PURE__ */
|
|
33043
|
+
const row = /* @__PURE__ */ jsxs42(
|
|
33286
33044
|
"div",
|
|
33287
33045
|
{
|
|
33288
33046
|
ref: setItemElement,
|
|
@@ -33299,7 +33057,7 @@ var AgentGUIConversationRailItem = memo4(
|
|
|
33299
33057
|
},
|
|
33300
33058
|
onMouseLeave: handleMouseLeave,
|
|
33301
33059
|
children: [
|
|
33302
|
-
/* @__PURE__ */
|
|
33060
|
+
/* @__PURE__ */ jsxs42(
|
|
33303
33061
|
"button",
|
|
33304
33062
|
{
|
|
33305
33063
|
type: "button",
|
|
@@ -33310,7 +33068,7 @@ var AgentGUIConversationRailItem = memo4(
|
|
|
33310
33068
|
handleRequestRename();
|
|
33311
33069
|
},
|
|
33312
33070
|
children: [
|
|
33313
|
-
/* @__PURE__ */
|
|
33071
|
+
/* @__PURE__ */ jsxs42("span", { className: AgentGUINode_styles_default.conversationTitleRow, children: [
|
|
33314
33072
|
conversationIcon?.kind === "mask" ? /* @__PURE__ */ jsx60(
|
|
33315
33073
|
"span",
|
|
33316
33074
|
{
|
|
@@ -33337,22 +33095,13 @@ var AgentGUIConversationRailItem = memo4(
|
|
|
33337
33095
|
src: conversationIcon.url
|
|
33338
33096
|
}
|
|
33339
33097
|
) : null,
|
|
33340
|
-
item.titleLeadingMentionKind === "task" ? /* @__PURE__ */ jsx60(
|
|
33341
|
-
"span",
|
|
33342
|
-
{
|
|
33343
|
-
"aria-hidden": "true",
|
|
33344
|
-
className: AgentGUINode_styles_default.conversationTitleMentionIcon,
|
|
33345
|
-
"data-agent-gui-conversation-title-mention-icon": item.titleLeadingMentionKind,
|
|
33346
|
-
children: /* @__PURE__ */ jsx60(IssueIcon, {})
|
|
33347
|
-
}
|
|
33348
|
-
) : null,
|
|
33349
33098
|
/* @__PURE__ */ jsx60("span", { className: AgentGUINode_styles_default.conversationTitle, children: agentGUIConversationRailTitle(item, labels, uiLanguage) })
|
|
33350
33099
|
] }),
|
|
33351
33100
|
/* @__PURE__ */ jsx60(AgentGUIConversationRailRelativeTime, { item, labels })
|
|
33352
33101
|
]
|
|
33353
33102
|
}
|
|
33354
33103
|
),
|
|
33355
|
-
|
|
33104
|
+
/* @__PURE__ */ jsx60("div", { className: AgentGUINode_styles_default.conversationActions, children: isPendingDeleteConversation ? /* @__PURE__ */ jsx60(
|
|
33356
33105
|
"button",
|
|
33357
33106
|
{
|
|
33358
33107
|
type: "button",
|
|
@@ -33368,7 +33117,7 @@ var AgentGUIConversationRailItem = memo4(
|
|
|
33368
33117
|
},
|
|
33369
33118
|
children: /* @__PURE__ */ jsx60("span", { className: AgentGUINode_styles_default.conversationDeleteConfirmText, children: labels.deleteSessionConfirm })
|
|
33370
33119
|
}
|
|
33371
|
-
) : /* @__PURE__ */
|
|
33120
|
+
) : /* @__PURE__ */ jsxs42(Fragment20, { children: [
|
|
33372
33121
|
onOpenConversationWindow ? /* @__PURE__ */ jsx60(
|
|
33373
33122
|
BareIconButton3,
|
|
33374
33123
|
{
|
|
@@ -33441,9 +33190,6 @@ var AgentGUIConversationRailItem = memo4(
|
|
|
33441
33190
|
]
|
|
33442
33191
|
}
|
|
33443
33192
|
);
|
|
33444
|
-
if (previewMode) {
|
|
33445
|
-
return row;
|
|
33446
|
-
}
|
|
33447
33193
|
return /* @__PURE__ */ jsx60(AgentGUIConversationActionsContextMenu, { menu, children: row });
|
|
33448
33194
|
}
|
|
33449
33195
|
);
|
|
@@ -33462,9 +33208,9 @@ function AgentGUIProjectRailHeader({
|
|
|
33462
33208
|
}),
|
|
33463
33209
|
[agentHostApi.userProjects, selectProjectDirectory]
|
|
33464
33210
|
);
|
|
33465
|
-
return /* @__PURE__ */
|
|
33211
|
+
return /* @__PURE__ */ jsxs42("div", { className: AgentGUINode_styles_default.projectRailHeader, children: [
|
|
33466
33212
|
/* @__PURE__ */ jsx60("div", { className: AgentGUINode_styles_default.projectRailTitle, children: /* @__PURE__ */ jsx60("span", { children: workspaceUserProjectI18n.tFirst(["projectSelect.projectLabel"]) }) }),
|
|
33467
|
-
/* @__PURE__ */
|
|
33213
|
+
/* @__PURE__ */ jsxs42("div", { className: AgentGUINode_styles_default.projectRailAddProject, children: [
|
|
33468
33214
|
/* @__PURE__ */ jsx60(
|
|
33469
33215
|
WorkspaceUserProjectSelect2,
|
|
33470
33216
|
{
|
|
@@ -33542,7 +33288,7 @@ import {
|
|
|
33542
33288
|
} from "@tutti-os/ui-system/components";
|
|
33543
33289
|
import {
|
|
33544
33290
|
CreateChatIcon,
|
|
33545
|
-
FolderIcon
|
|
33291
|
+
FolderIcon,
|
|
33546
33292
|
FolderOpenLinedIcon,
|
|
33547
33293
|
MoreHorizontalIcon
|
|
33548
33294
|
} from "@tutti-os/ui-system/icons";
|
|
@@ -33605,7 +33351,7 @@ function readSectionPresentationValue(value, name) {
|
|
|
33605
33351
|
}
|
|
33606
33352
|
|
|
33607
33353
|
// agent-gui/agentGuiNode/view/AgentGUIConversationRailSectionHeader.tsx
|
|
33608
|
-
import { jsx as jsx62, jsxs as
|
|
33354
|
+
import { jsx as jsx62, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
33609
33355
|
function HeaderFrame({
|
|
33610
33356
|
children,
|
|
33611
33357
|
isProjectSection,
|
|
@@ -33636,7 +33382,7 @@ var HeaderIdentity = memo5(function HeaderIdentity2({
|
|
|
33636
33382
|
if (!isProjectSection) {
|
|
33637
33383
|
return /* @__PURE__ */ jsx62("div", { className: AgentGUINode_styles_default.conversationSectionToggle, children: /* @__PURE__ */ jsx62("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: /* @__PURE__ */ jsx62("span", { children: sectionLabel }) }) });
|
|
33638
33384
|
}
|
|
33639
|
-
return /* @__PURE__ */
|
|
33385
|
+
return /* @__PURE__ */ jsxs43(
|
|
33640
33386
|
"button",
|
|
33641
33387
|
{
|
|
33642
33388
|
type: "button",
|
|
@@ -33652,9 +33398,9 @@ var HeaderIdentity = memo5(function HeaderIdentity2({
|
|
|
33652
33398
|
className: AgentGUINode_styles_default.conversationSectionChevron
|
|
33653
33399
|
}
|
|
33654
33400
|
),
|
|
33655
|
-
/* @__PURE__ */
|
|
33401
|
+
/* @__PURE__ */ jsxs43("span", { className: AgentGUINode_styles_default.conversationSectionLabel, children: [
|
|
33656
33402
|
isSectionCollapsed ? /* @__PURE__ */ jsx62(
|
|
33657
|
-
|
|
33403
|
+
FolderIcon,
|
|
33658
33404
|
{
|
|
33659
33405
|
"aria-hidden": "true",
|
|
33660
33406
|
className: AgentGUINode_styles_default.conversationSectionLabelIcon,
|
|
@@ -33677,8 +33423,7 @@ var HeaderIdentity = memo5(function HeaderIdentity2({
|
|
|
33677
33423
|
var CreateAction = memo5(function CreateAction2({
|
|
33678
33424
|
createConversationDisabled,
|
|
33679
33425
|
createConversationLabel,
|
|
33680
|
-
onCreateConversation
|
|
33681
|
-
previewMode
|
|
33426
|
+
onCreateConversation
|
|
33682
33427
|
}) {
|
|
33683
33428
|
"use memo";
|
|
33684
33429
|
const button = /* @__PURE__ */ jsx62(
|
|
@@ -33693,10 +33438,7 @@ var CreateAction = memo5(function CreateAction2({
|
|
|
33693
33438
|
children: /* @__PURE__ */ jsx62(CreateChatIcon, { "aria-hidden": "true" })
|
|
33694
33439
|
}
|
|
33695
33440
|
);
|
|
33696
|
-
|
|
33697
|
-
return /* @__PURE__ */ jsx62("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: button });
|
|
33698
|
-
}
|
|
33699
|
-
return /* @__PURE__ */ jsxs44(Tooltip10, { children: [
|
|
33441
|
+
return /* @__PURE__ */ jsxs43(Tooltip10, { children: [
|
|
33700
33442
|
/* @__PURE__ */ jsx62(TooltipTrigger10, { asChild: true, children: /* @__PURE__ */ jsx62("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: button }) }),
|
|
33701
33443
|
/* @__PURE__ */ jsx62(
|
|
33702
33444
|
TooltipContent10,
|
|
@@ -33729,14 +33471,10 @@ var ProjectMenuButton = forwardRef5(
|
|
|
33729
33471
|
);
|
|
33730
33472
|
ProjectMenuButton.displayName = "ProjectMenuButton";
|
|
33731
33473
|
function ProjectMenuTrigger({
|
|
33732
|
-
labels
|
|
33733
|
-
previewMode
|
|
33474
|
+
labels
|
|
33734
33475
|
}) {
|
|
33735
33476
|
const accessibleName = labels.projectSectionMoreActions;
|
|
33736
|
-
|
|
33737
|
-
return /* @__PURE__ */ jsx62(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx62("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx62(ProjectMenuButton, { accessibleName }) }) });
|
|
33738
|
-
}
|
|
33739
|
-
return /* @__PURE__ */ jsxs44(Tooltip10, { children: [
|
|
33477
|
+
return /* @__PURE__ */ jsxs43(Tooltip10, { children: [
|
|
33740
33478
|
/* @__PURE__ */ jsx62(TooltipTrigger10, { asChild: true, children: /* @__PURE__ */ jsx62("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx62(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx62(ProjectMenuButton, { accessibleName }) }) }) }),
|
|
33741
33479
|
/* @__PURE__ */ jsx62(
|
|
33742
33480
|
TooltipContent10,
|
|
@@ -33760,7 +33498,7 @@ function ProjectMenuContent({
|
|
|
33760
33498
|
}) {
|
|
33761
33499
|
const batchDeletionDisabled = useAgentGUIConversationRailSectionBatchDeletionDisabled();
|
|
33762
33500
|
const projectActionLocked = useAgentGUIConversationRailSectionProjectActionLocked();
|
|
33763
|
-
return /* @__PURE__ */
|
|
33501
|
+
return /* @__PURE__ */ jsxs43(
|
|
33764
33502
|
DropdownMenuContent5,
|
|
33765
33503
|
{
|
|
33766
33504
|
align: "end",
|
|
@@ -33816,12 +33554,11 @@ var ProjectMenu = memo5(function ProjectMenu2({
|
|
|
33816
33554
|
onRequestBatchDeletion,
|
|
33817
33555
|
onToggleProjectPinned,
|
|
33818
33556
|
open,
|
|
33819
|
-
previewMode,
|
|
33820
33557
|
projectPinned
|
|
33821
33558
|
}) {
|
|
33822
33559
|
"use memo";
|
|
33823
|
-
return /* @__PURE__ */
|
|
33824
|
-
/* @__PURE__ */ jsx62(ProjectMenuTrigger, { labels
|
|
33560
|
+
return /* @__PURE__ */ jsxs43(DropdownMenu5, { onOpenChange, children: [
|
|
33561
|
+
/* @__PURE__ */ jsx62(ProjectMenuTrigger, { labels }),
|
|
33825
33562
|
open ? /* @__PURE__ */ jsx62(
|
|
33826
33563
|
ProjectMenuContent,
|
|
33827
33564
|
{
|
|
@@ -33837,23 +33574,10 @@ var ProjectMenu = memo5(function ProjectMenu2({
|
|
|
33837
33574
|
] });
|
|
33838
33575
|
});
|
|
33839
33576
|
function ConversationMenuTrigger({
|
|
33840
|
-
labels
|
|
33841
|
-
previewMode
|
|
33577
|
+
labels
|
|
33842
33578
|
}) {
|
|
33843
33579
|
const accessibleName = labels.conversationsSectionMoreActions;
|
|
33844
|
-
|
|
33845
|
-
return /* @__PURE__ */ jsx62(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx62("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx62(
|
|
33846
|
-
BareIconButton4,
|
|
33847
|
-
{
|
|
33848
|
-
className: AgentGUINode_styles_default.conversationSectionMoreButton,
|
|
33849
|
-
"aria-label": accessibleName,
|
|
33850
|
-
size: "sm",
|
|
33851
|
-
title: "",
|
|
33852
|
-
children: /* @__PURE__ */ jsx62(MoreHorizontalIcon, { "aria-hidden": "true" })
|
|
33853
|
-
}
|
|
33854
|
-
) }) });
|
|
33855
|
-
}
|
|
33856
|
-
return /* @__PURE__ */ jsxs44(Tooltip10, { children: [
|
|
33580
|
+
return /* @__PURE__ */ jsxs43(Tooltip10, { children: [
|
|
33857
33581
|
/* @__PURE__ */ jsx62(TooltipTrigger10, { asChild: true, children: /* @__PURE__ */ jsx62("span", { className: AgentGUINode_styles_default.conversationSectionActionTooltipWrap, children: /* @__PURE__ */ jsx62(DropdownMenuTrigger5, { asChild: true, children: /* @__PURE__ */ jsx62(
|
|
33858
33582
|
BareIconButton4,
|
|
33859
33583
|
{
|
|
@@ -33902,11 +33626,10 @@ function ConversationMenu({
|
|
|
33902
33626
|
labels,
|
|
33903
33627
|
onOpenChange,
|
|
33904
33628
|
onRequestBatchDeletion,
|
|
33905
|
-
open
|
|
33906
|
-
previewMode
|
|
33629
|
+
open
|
|
33907
33630
|
}) {
|
|
33908
|
-
return /* @__PURE__ */
|
|
33909
|
-
/* @__PURE__ */ jsx62(ConversationMenuTrigger, { labels
|
|
33631
|
+
return /* @__PURE__ */ jsxs43(DropdownMenu5, { onOpenChange, children: [
|
|
33632
|
+
/* @__PURE__ */ jsx62(ConversationMenuTrigger, { labels }),
|
|
33910
33633
|
open ? /* @__PURE__ */ jsx62(
|
|
33911
33634
|
ConversationMenuContent,
|
|
33912
33635
|
{
|
|
@@ -33935,7 +33658,6 @@ var AgentGUIConversationRailSectionHeader = memo5(
|
|
|
33935
33658
|
onRequestBatchDeletion,
|
|
33936
33659
|
onToggleCollapsed,
|
|
33937
33660
|
onToggleProjectPinned,
|
|
33938
|
-
previewMode,
|
|
33939
33661
|
projectPinned,
|
|
33940
33662
|
sectionLabel
|
|
33941
33663
|
}) {
|
|
@@ -33950,7 +33672,7 @@ var AgentGUIConversationRailSectionHeader = memo5(
|
|
|
33950
33672
|
[onProjectMenuOpenChange]
|
|
33951
33673
|
);
|
|
33952
33674
|
const isProjectSection = kind === "project";
|
|
33953
|
-
return /* @__PURE__ */
|
|
33675
|
+
return /* @__PURE__ */ jsxs43(
|
|
33954
33676
|
HeaderFrame,
|
|
33955
33677
|
{
|
|
33956
33678
|
isProjectSection,
|
|
@@ -33968,7 +33690,7 @@ var AgentGUIConversationRailSectionHeader = memo5(
|
|
|
33968
33690
|
sectionLabel
|
|
33969
33691
|
}
|
|
33970
33692
|
),
|
|
33971
|
-
canCreateConversation ? /* @__PURE__ */
|
|
33693
|
+
canCreateConversation ? /* @__PURE__ */ jsxs43(
|
|
33972
33694
|
"div",
|
|
33973
33695
|
{
|
|
33974
33696
|
className: AgentGUINode_styles_default.conversationSectionActions,
|
|
@@ -33979,8 +33701,7 @@ var AgentGUIConversationRailSectionHeader = memo5(
|
|
|
33979
33701
|
{
|
|
33980
33702
|
createConversationDisabled,
|
|
33981
33703
|
createConversationLabel,
|
|
33982
|
-
onCreateConversation
|
|
33983
|
-
previewMode
|
|
33704
|
+
onCreateConversation
|
|
33984
33705
|
}
|
|
33985
33706
|
),
|
|
33986
33707
|
hasProjectPath ? /* @__PURE__ */ jsx62(
|
|
@@ -33994,7 +33715,6 @@ var AgentGUIConversationRailSectionHeader = memo5(
|
|
|
33994
33715
|
onRequestBatchDeletion,
|
|
33995
33716
|
onToggleProjectPinned,
|
|
33996
33717
|
open: projectMenuOpen,
|
|
33997
|
-
previewMode,
|
|
33998
33718
|
projectPinned
|
|
33999
33719
|
}
|
|
34000
33720
|
) : null,
|
|
@@ -34004,8 +33724,7 @@ var AgentGUIConversationRailSectionHeader = memo5(
|
|
|
34004
33724
|
labels,
|
|
34005
33725
|
onOpenChange: setConversationMenuOpen,
|
|
34006
33726
|
onRequestBatchDeletion,
|
|
34007
|
-
open: conversationMenuOpen
|
|
34008
|
-
previewMode
|
|
33727
|
+
open: conversationMenuOpen
|
|
34009
33728
|
}
|
|
34010
33729
|
) : null
|
|
34011
33730
|
]
|
|
@@ -34018,7 +33737,7 @@ var AgentGUIConversationRailSectionHeader = memo5(
|
|
|
34018
33737
|
);
|
|
34019
33738
|
|
|
34020
33739
|
// agent-gui/agentGuiNode/view/AgentGUIConversationRailSection.tsx
|
|
34021
|
-
import { jsx as jsx63, jsxs as
|
|
33740
|
+
import { jsx as jsx63, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
34022
33741
|
var AgentGUIConversationRailSection = memo6(
|
|
34023
33742
|
function AgentGUIConversationRailSection2({
|
|
34024
33743
|
section,
|
|
@@ -34029,7 +33748,6 @@ var AgentGUIConversationRailSection = memo6(
|
|
|
34029
33748
|
isSectionCollapsed,
|
|
34030
33749
|
activeConversationId,
|
|
34031
33750
|
pendingDeleteConversationId,
|
|
34032
|
-
previewMode,
|
|
34033
33751
|
isDeletingConversation,
|
|
34034
33752
|
isLoadingMoreConversations,
|
|
34035
33753
|
isRailInteractionLocked,
|
|
@@ -34196,7 +33914,7 @@ var AgentGUIConversationRailSection = memo6(
|
|
|
34196
33914
|
path: projectPath
|
|
34197
33915
|
});
|
|
34198
33916
|
});
|
|
34199
|
-
return /* @__PURE__ */
|
|
33917
|
+
return /* @__PURE__ */ jsxs44(
|
|
34200
33918
|
"section",
|
|
34201
33919
|
{
|
|
34202
33920
|
className: AgentGUINode_styles_default.conversationSection,
|
|
@@ -34226,7 +33944,6 @@ var AgentGUIConversationRailSection = memo6(
|
|
|
34226
33944
|
onRequestBatchDeletion: handleRequestBatchDeletion,
|
|
34227
33945
|
onToggleCollapsed: handleToggleCollapsed,
|
|
34228
33946
|
onToggleProjectPinned: handleToggleProjectPinned,
|
|
34229
|
-
previewMode,
|
|
34230
33947
|
projectPinned,
|
|
34231
33948
|
sectionLabel: section.label
|
|
34232
33949
|
}
|
|
@@ -34236,7 +33953,7 @@ var AgentGUIConversationRailSection = memo6(
|
|
|
34236
33953
|
{
|
|
34237
33954
|
className: AgentGUINode_styles_default.conversationSectionItems,
|
|
34238
33955
|
"aria-hidden": isSectionCollapsed ? "true" : void 0,
|
|
34239
|
-
children: /* @__PURE__ */
|
|
33956
|
+
children: /* @__PURE__ */ jsxs44("div", { className: AgentGUINode_styles_default.conversationSectionItemsInner, children: [
|
|
34240
33957
|
!isSectionCollapsed && visibleItems.length === 0 ? /* @__PURE__ */ jsx63("div", { className: AgentGUINode_styles_default.conversationSectionEmpty, children: labels.emptyProjectConversations }) : null,
|
|
34241
33958
|
visibleItems.map((item) => /* @__PURE__ */ jsx63(
|
|
34242
33959
|
AgentGUIConversationRailItem,
|
|
@@ -34247,7 +33964,6 @@ var AgentGUIConversationRailSection = memo6(
|
|
|
34247
33964
|
isRailInteractionLocked,
|
|
34248
33965
|
item,
|
|
34249
33966
|
labels,
|
|
34250
|
-
previewMode,
|
|
34251
33967
|
registerItemElement,
|
|
34252
33968
|
uiLanguage,
|
|
34253
33969
|
workspaceId,
|
|
@@ -34262,7 +33978,7 @@ var AgentGUIConversationRailSection = memo6(
|
|
|
34262
33978
|
},
|
|
34263
33979
|
item.id
|
|
34264
33980
|
)),
|
|
34265
|
-
canShowMore || canShowLess ? /* @__PURE__ */
|
|
33981
|
+
canShowMore || canShowLess ? /* @__PURE__ */ jsxs44("div", { className: AgentGUINode_styles_default.conversationSectionPagination, children: [
|
|
34266
33982
|
canShowMore ? /* @__PURE__ */ jsx63(
|
|
34267
33983
|
"button",
|
|
34268
33984
|
{
|
|
@@ -34495,7 +34211,7 @@ function useAgentGUIProjectMenuState(isRailInteractionLocked, isUserProjectMutat
|
|
|
34495
34211
|
}
|
|
34496
34212
|
|
|
34497
34213
|
// agent-gui/agentGuiNode/view/AgentGUIConversationRailPane.tsx
|
|
34498
|
-
import { jsx as jsx65, jsxs as
|
|
34214
|
+
import { jsx as jsx65, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
34499
34215
|
function useDelayedBoolean(value, delayMs) {
|
|
34500
34216
|
const [delayedValue, setDelayedValue] = useState37(false);
|
|
34501
34217
|
useEffect29(() => {
|
|
@@ -34525,7 +34241,6 @@ var AgentGUIConversationRailPane = memo7(
|
|
|
34525
34241
|
labels,
|
|
34526
34242
|
workspaceUserProjectI18n,
|
|
34527
34243
|
uiLanguage,
|
|
34528
|
-
previewMode,
|
|
34529
34244
|
createConversationDisabled,
|
|
34530
34245
|
isCollapsed,
|
|
34531
34246
|
conversationFilter,
|
|
@@ -34587,7 +34302,7 @@ var AgentGUIConversationRailPane = memo7(
|
|
|
34587
34302
|
const hasConversationQuery = conversationQuery.trim().length > 0;
|
|
34588
34303
|
const backendSearchActive = hasConversationQuery && railSearch.enabled;
|
|
34589
34304
|
const railInteractionsLocked = isInteractionLocked();
|
|
34590
|
-
const projectDragBaseLocked = railInteractionsLocked || isDeletingConversation || isDeletingProjectConversations || isRequestingBatchDeletion || isUserProjectMutationPending || pendingDeleteConversationId !== null || pendingProjectAction !== null || projectMenuOpen
|
|
34305
|
+
const projectDragBaseLocked = railInteractionsLocked || isDeletingConversation || isDeletingProjectConversations || isRequestingBatchDeletion || isUserProjectMutationPending || pendingDeleteConversationId !== null || pendingProjectAction !== null || projectMenuOpen;
|
|
34591
34306
|
const backendSearchConversations = backendSearchActive ? railSearch.sessionIds.flatMap((id) => {
|
|
34592
34307
|
const conversation = railConversationEntitiesById.get(id);
|
|
34593
34308
|
return conversation ? [conversation] : [];
|
|
@@ -34785,14 +34500,14 @@ var AgentGUIConversationRailPane = memo7(
|
|
|
34785
34500
|
useEffect29(() => {
|
|
34786
34501
|
return installProjectDragGlobalListeners();
|
|
34787
34502
|
}, [installProjectDragGlobalListeners]);
|
|
34788
|
-
return /* @__PURE__ */
|
|
34503
|
+
return /* @__PURE__ */ jsxs45(
|
|
34789
34504
|
"aside",
|
|
34790
34505
|
{
|
|
34791
34506
|
ref: railElementRef,
|
|
34792
34507
|
className: AgentGUINode_styles_default.rail,
|
|
34793
34508
|
"aria-hidden": isCollapsed ? "true" : void 0,
|
|
34794
34509
|
children: [
|
|
34795
|
-
/* @__PURE__ */
|
|
34510
|
+
/* @__PURE__ */ jsxs45("div", { className: AgentGUINode_styles_default.railToolbar, children: [
|
|
34796
34511
|
/* @__PURE__ */ jsx65(
|
|
34797
34512
|
TaskSearchField,
|
|
34798
34513
|
{
|
|
@@ -34801,7 +34516,7 @@ var AgentGUIConversationRailPane = memo7(
|
|
|
34801
34516
|
onChange: onConversationQueryChange
|
|
34802
34517
|
}
|
|
34803
34518
|
),
|
|
34804
|
-
/* @__PURE__ */
|
|
34519
|
+
/* @__PURE__ */ jsxs45(
|
|
34805
34520
|
Button,
|
|
34806
34521
|
{
|
|
34807
34522
|
type: "button",
|
|
@@ -34834,7 +34549,7 @@ var AgentGUIConversationRailPane = memo7(
|
|
|
34834
34549
|
{
|
|
34835
34550
|
label: labels.loadingConversations
|
|
34836
34551
|
}
|
|
34837
|
-
) : shouldShowConversationSearchError ? /* @__PURE__ */
|
|
34552
|
+
) : shouldShowConversationSearchError ? /* @__PURE__ */ jsxs45("div", { className: AgentGUINode_styles_default.emptyState, children: [
|
|
34838
34553
|
/* @__PURE__ */ jsx65("span", { children: labels.searchFailed }),
|
|
34839
34554
|
/* @__PURE__ */ jsx65(
|
|
34840
34555
|
SystemButton,
|
|
@@ -34846,7 +34561,7 @@ var AgentGUIConversationRailPane = memo7(
|
|
|
34846
34561
|
children: labels.retrySearch
|
|
34847
34562
|
}
|
|
34848
34563
|
)
|
|
34849
|
-
] }) : shouldShowConversationEmptyState ? /* @__PURE__ */ jsx65("div", { className: AgentGUINode_styles_default.emptyState, children: /* @__PURE__ */ jsx65("span", { children: conversationQuery.trim() ? labels.searchNoConversations : conversations.length === 0 ? labels.noConversations : labels.conversationUnavailable }) }) : /* @__PURE__ */
|
|
34564
|
+
] }) : shouldShowConversationEmptyState ? /* @__PURE__ */ jsx65("div", { className: AgentGUINode_styles_default.emptyState, children: /* @__PURE__ */ jsx65("span", { children: conversationQuery.trim() ? labels.searchNoConversations : conversations.length === 0 ? labels.noConversations : labels.conversationUnavailable }) }) : /* @__PURE__ */ jsxs45("fieldset", { className: "contents", disabled: railInteractionsLocked, children: [
|
|
34850
34565
|
groupedConversations.map((section, sectionIndex) => {
|
|
34851
34566
|
const projectPath = section.kind === "project" ? section.project?.path ?? "" : "";
|
|
34852
34567
|
const projectLabel = section.kind === "project" ? section.label : "";
|
|
@@ -34880,7 +34595,7 @@ var AgentGUIConversationRailPane = memo7(
|
|
|
34880
34595
|
).length + (activeOverlayCountsTowardTotal && !activeOverlayIsCanonical ? 1 : 0);
|
|
34881
34596
|
const sectionHasMore = searchSectionHasMore || !conversationQuery.trim() && sectionPageState?.hasMore === true;
|
|
34882
34597
|
const batchDeletionDisabled = !batchDeletionAvailable || hasConversationQuery || section.items.length === 0 && !sectionHasMore || isDeletingProjectConversations || isRequestingBatchDeletion;
|
|
34883
|
-
return /* @__PURE__ */
|
|
34598
|
+
return /* @__PURE__ */ jsxs45(Fragment21, { children: [
|
|
34884
34599
|
showPinnedProjectHeader ? /* @__PURE__ */ jsx65("div", { className: AgentGUINode_styles_default.pinnedProjectRailHeader, children: labels.sectionPinned }) : null,
|
|
34885
34600
|
showProjectRailHeader ? /* @__PURE__ */ jsx65(
|
|
34886
34601
|
AgentGUIProjectRailHeader,
|
|
@@ -34919,7 +34634,6 @@ var AgentGUIConversationRailPane = memo7(
|
|
|
34919
34634
|
isSectionCollapsed,
|
|
34920
34635
|
labels,
|
|
34921
34636
|
pendingDeleteConversationId,
|
|
34922
|
-
previewMode,
|
|
34923
34637
|
projectLabel,
|
|
34924
34638
|
projectPath,
|
|
34925
34639
|
registerItemElement: railViewState.registerConversationItemElement,
|
|
@@ -35566,7 +35280,6 @@ function resolveConversationRailQueryScope(workspaceId, scope) {
|
|
|
35566
35280
|
scopeKey: JSON.stringify([
|
|
35567
35281
|
workspaceId,
|
|
35568
35282
|
scope.conversationFilter.kind === "agentTarget" ? `agentTarget:${scope.conversationFilter.agentTargetId.trim()}` : "all",
|
|
35569
|
-
scope.previewMode,
|
|
35570
35283
|
agentTargetId,
|
|
35571
35284
|
projectCollectionKey
|
|
35572
35285
|
])
|
|
@@ -35807,7 +35520,7 @@ var AgentGUIConversationRailQueryController = class {
|
|
|
35807
35520
|
}
|
|
35808
35521
|
loadMoreSectionConversations = (section) => {
|
|
35809
35522
|
const scopeKey = this.railSectionQueryKey;
|
|
35810
|
-
if (
|
|
35523
|
+
if (!scopeKey || this.publicationBlocked() || this.queryState.pending || this.queryState.resolvedScopeKey !== scopeKey) {
|
|
35811
35524
|
return;
|
|
35812
35525
|
}
|
|
35813
35526
|
const currentPageState = this.queryState.sectionPageStates.get(section.id);
|
|
@@ -36186,11 +35899,11 @@ var AgentGUIConversationRailQueryController = class {
|
|
|
36186
35899
|
}
|
|
36187
35900
|
runtimeSectionsEnabled() {
|
|
36188
35901
|
return Boolean(
|
|
36189
|
-
|
|
35902
|
+
this.runtime.listSessionSections && this.runtime.listSessionSectionPage
|
|
36190
35903
|
);
|
|
36191
35904
|
}
|
|
36192
35905
|
searchEnabled() {
|
|
36193
|
-
return Boolean(
|
|
35906
|
+
return Boolean(this.runtime.listSessionsPage);
|
|
36194
35907
|
}
|
|
36195
35908
|
publishIfReady(state = this.engine.getSnapshot(), force = false) {
|
|
36196
35909
|
if (this.publicationBlocked()) return;
|
|
@@ -36259,7 +35972,6 @@ function useAgentGUIConversationRailQuery({
|
|
|
36259
35972
|
conversationFilter,
|
|
36260
35973
|
conversationQuery,
|
|
36261
35974
|
nodeId,
|
|
36262
|
-
previewMode,
|
|
36263
35975
|
registerInteractionLockProbe,
|
|
36264
35976
|
sectionAgentTargetFallbackId,
|
|
36265
35977
|
userProjects,
|
|
@@ -36310,7 +36022,6 @@ function useAgentGUIConversationRailQuery({
|
|
|
36310
36022
|
useEffect30(() => {
|
|
36311
36023
|
controller.configure({
|
|
36312
36024
|
conversationFilter,
|
|
36313
|
-
previewMode,
|
|
36314
36025
|
sectionAgentTargetFallbackId,
|
|
36315
36026
|
userProjects
|
|
36316
36027
|
});
|
|
@@ -36319,7 +36030,6 @@ function useAgentGUIConversationRailQuery({
|
|
|
36319
36030
|
controller,
|
|
36320
36031
|
conversationFilter,
|
|
36321
36032
|
conversationQuery,
|
|
36322
|
-
previewMode,
|
|
36323
36033
|
sectionAgentTargetFallbackId,
|
|
36324
36034
|
userProjects
|
|
36325
36035
|
]);
|
|
@@ -36331,13 +36041,11 @@ function useAgentGUIConversationRailQuery({
|
|
|
36331
36041
|
const requestedRailScopeKey = useMemo41(
|
|
36332
36042
|
() => resolveConversationRailQueryScope(workspaceId, {
|
|
36333
36043
|
conversationFilter,
|
|
36334
|
-
previewMode,
|
|
36335
36044
|
sectionAgentTargetFallbackId,
|
|
36336
36045
|
userProjects
|
|
36337
36046
|
}).scopeKey,
|
|
36338
36047
|
[
|
|
36339
36048
|
conversationFilter,
|
|
36340
|
-
previewMode,
|
|
36341
36049
|
sectionAgentTargetFallbackId,
|
|
36342
36050
|
userProjects,
|
|
36343
36051
|
workspaceId
|
|
@@ -36346,7 +36054,7 @@ function useAgentGUIConversationRailQuery({
|
|
|
36346
36054
|
return useMemo41(
|
|
36347
36055
|
() => ({
|
|
36348
36056
|
...querySnapshot,
|
|
36349
|
-
batchDeletionAvailable:
|
|
36057
|
+
batchDeletionAvailable: batchDeletionCapability.available,
|
|
36350
36058
|
isInteractionLocked: controller.isInteractionLocked,
|
|
36351
36059
|
loadMoreSectionConversations: controller.loadMoreSectionConversations,
|
|
36352
36060
|
railSearch: {
|
|
@@ -36360,7 +36068,6 @@ function useAgentGUIConversationRailQuery({
|
|
|
36360
36068
|
[
|
|
36361
36069
|
batchDeletionCapability.available,
|
|
36362
36070
|
controller,
|
|
36363
|
-
previewMode,
|
|
36364
36071
|
querySnapshot,
|
|
36365
36072
|
requestedRailScopeKey
|
|
36366
36073
|
]
|
|
@@ -36380,7 +36087,6 @@ var AgentGUIConversationRailController = memo8(
|
|
|
36380
36087
|
conversationFilter: props.conversationFilter,
|
|
36381
36088
|
conversationQuery,
|
|
36382
36089
|
nodeId: props.nodeId,
|
|
36383
|
-
previewMode: props.previewMode,
|
|
36384
36090
|
registerInteractionLockProbe: props.registerInteractionLockProbe,
|
|
36385
36091
|
sectionAgentTargetFallbackId: props.sectionAgentTargetFallbackId,
|
|
36386
36092
|
userProjects: props.userProjects,
|
|
@@ -36614,7 +36320,7 @@ import { ChevronsDown } from "lucide-react";
|
|
|
36614
36320
|
import { cn as cn12 } from "@tutti-os/ui-system";
|
|
36615
36321
|
|
|
36616
36322
|
// agent-gui/agentGuiNode/AgentComposerRegion.tsx
|
|
36617
|
-
import { jsxs as
|
|
36323
|
+
import { jsxs as jsxs46 } from "react/jsx-runtime";
|
|
36618
36324
|
function AgentComposerRegion({
|
|
36619
36325
|
accessories,
|
|
36620
36326
|
floating,
|
|
@@ -36622,7 +36328,7 @@ function AgentComposerRegion({
|
|
|
36622
36328
|
primary,
|
|
36623
36329
|
regionRef
|
|
36624
36330
|
}) {
|
|
36625
|
-
return /* @__PURE__ */
|
|
36331
|
+
return /* @__PURE__ */ jsxs46(
|
|
36626
36332
|
"div",
|
|
36627
36333
|
{
|
|
36628
36334
|
ref: regionRef,
|
|
@@ -36641,7 +36347,7 @@ function AgentComposerRegion({
|
|
|
36641
36347
|
// agent-gui/agentGuiNode/AgentGoalBanner.tsx
|
|
36642
36348
|
import { useEffect as useEffect31, useState as useState39 } from "react";
|
|
36643
36349
|
import { CirclePause, CirclePlay, Pencil as Pencil3, Target as Target3, Trash2 } from "lucide-react";
|
|
36644
|
-
import { jsx as jsx67, jsxs as
|
|
36350
|
+
import { jsx as jsx67, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
36645
36351
|
var RESUMABLE_GOAL_STATUSES = /* @__PURE__ */ new Set([
|
|
36646
36352
|
"paused",
|
|
36647
36353
|
"blocked",
|
|
@@ -36757,8 +36463,8 @@ function AgentGoalBanner({
|
|
|
36757
36463
|
className: cn(AgentGUIChrome_styles_default.chromeCard, AgentGUIChrome_styles_default.chromeCardMuted),
|
|
36758
36464
|
role: "status",
|
|
36759
36465
|
"data-testid": "agent-gui-goal-banner",
|
|
36760
|
-
children: /* @__PURE__ */
|
|
36761
|
-
/* @__PURE__ */
|
|
36466
|
+
children: /* @__PURE__ */ jsxs47("div", { className: AgentGUIChrome_styles_default.chromeMetaRow, children: [
|
|
36467
|
+
/* @__PURE__ */ jsxs47("div", { className: AgentGUIChrome_styles_default.chromeMessageSlot, children: [
|
|
36762
36468
|
/* @__PURE__ */ jsx67("span", { className: AgentGUIChrome_styles_default.chromeIcon, children: /* @__PURE__ */ jsx67(Target3, { "aria-hidden": true, className: "size-3.5" }) }),
|
|
36763
36469
|
editDraft !== null ? /* @__PURE__ */ jsx67(
|
|
36764
36470
|
"input",
|
|
@@ -36780,7 +36486,7 @@ function AgentGoalBanner({
|
|
|
36780
36486
|
},
|
|
36781
36487
|
onBlur: () => setEditDraft(null)
|
|
36782
36488
|
}
|
|
36783
|
-
) : /* @__PURE__ */
|
|
36489
|
+
) : /* @__PURE__ */ jsxs47(
|
|
36784
36490
|
"p",
|
|
36785
36491
|
{
|
|
36786
36492
|
className: cn(AgentGUIChrome_styles_default.chromeMessage, AgentGUIChrome_styles_default.chromeNoticeMessage),
|
|
@@ -36799,7 +36505,7 @@ function AgentGoalBanner({
|
|
|
36799
36505
|
}
|
|
36800
36506
|
)
|
|
36801
36507
|
] }),
|
|
36802
|
-
hasActions ? /* @__PURE__ */
|
|
36508
|
+
hasActions ? /* @__PURE__ */ jsxs47("div", { className: AgentGUIChrome_styles_default.chromeGoalActions, children: [
|
|
36803
36509
|
onEditObjective !== void 0 && editDraft === null ? /* @__PURE__ */ jsx67(
|
|
36804
36510
|
"button",
|
|
36805
36511
|
{
|
|
@@ -37075,7 +36781,7 @@ import {
|
|
|
37075
36781
|
Switch as Switch2,
|
|
37076
36782
|
cn as cn9
|
|
37077
36783
|
} from "@tutti-os/ui-system";
|
|
37078
|
-
import { jsx as jsx69, jsxs as
|
|
36784
|
+
import { jsx as jsx69, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
37079
36785
|
var CLEAR_VALUE = "__tutti_plan_assignment_clear__";
|
|
37080
36786
|
function toSelectValue(value) {
|
|
37081
36787
|
return value === "" ? CLEAR_VALUE : value;
|
|
@@ -37133,13 +36839,13 @@ function TuttiModePlanTaskAssignmentEditor({
|
|
|
37133
36839
|
const agentLabel = agentValue ? (catalog.agents ?? []).find(
|
|
37134
36840
|
(agent) => agent.agentTargetId === agentValue
|
|
37135
36841
|
)?.label ?? agentValue : null;
|
|
37136
|
-
return /* @__PURE__ */
|
|
36842
|
+
return /* @__PURE__ */ jsxs48(
|
|
37137
36843
|
"div",
|
|
37138
36844
|
{
|
|
37139
36845
|
className: "tutti-plan-task-assignment-row mt-3 flex flex-wrap items-center gap-3 border-t border-[var(--line-2)] pt-2",
|
|
37140
36846
|
"data-testid": `tutti-plan-task-assignment-${task.id}`,
|
|
37141
36847
|
children: [
|
|
37142
|
-
/* @__PURE__ */
|
|
36848
|
+
/* @__PURE__ */ jsxs48(
|
|
37143
36849
|
Select6,
|
|
37144
36850
|
{
|
|
37145
36851
|
disabled,
|
|
@@ -37157,7 +36863,7 @@ function TuttiModePlanTaskAssignmentEditor({
|
|
|
37157
36863
|
value: agentLabel
|
|
37158
36864
|
}
|
|
37159
36865
|
),
|
|
37160
|
-
/* @__PURE__ */
|
|
36866
|
+
/* @__PURE__ */ jsxs48(AssignmentSelectContent, { children: [
|
|
37161
36867
|
/* @__PURE__ */ jsx69(AssignmentSelectItem, { value: CLEAR_VALUE, children: labels.notSpecified }),
|
|
37162
36868
|
(catalog.agents ?? []).map((agent) => /* @__PURE__ */ jsx69(
|
|
37163
36869
|
AssignmentSelectItem,
|
|
@@ -37223,7 +36929,7 @@ function TuttiModePlanTaskAssignmentEditor({
|
|
|
37223
36929
|
onChange: (value) => onEdit({ reasoningEffort: value })
|
|
37224
36930
|
}
|
|
37225
36931
|
),
|
|
37226
|
-
/* @__PURE__ */
|
|
36932
|
+
/* @__PURE__ */ jsxs48(
|
|
37227
36933
|
"label",
|
|
37228
36934
|
{
|
|
37229
36935
|
className: cn9(
|
|
@@ -37250,7 +36956,7 @@ function TuttiModePlanTaskAssignmentEditor({
|
|
|
37250
36956
|
]
|
|
37251
36957
|
}
|
|
37252
36958
|
),
|
|
37253
|
-
/* @__PURE__ */
|
|
36959
|
+
/* @__PURE__ */ jsxs48(
|
|
37254
36960
|
"label",
|
|
37255
36961
|
{
|
|
37256
36962
|
className: cn9(
|
|
@@ -37347,7 +37053,7 @@ function AssignmentValueSelect({
|
|
|
37347
37053
|
}) {
|
|
37348
37054
|
const known = options.some((option) => option.value === value);
|
|
37349
37055
|
const selectedLabel = value ? options.find((option) => option.value === value)?.label ?? value : null;
|
|
37350
|
-
return /* @__PURE__ */
|
|
37056
|
+
return /* @__PURE__ */ jsxs48(
|
|
37351
37057
|
Select6,
|
|
37352
37058
|
{
|
|
37353
37059
|
disabled,
|
|
@@ -37364,7 +37070,7 @@ function AssignmentValueSelect({
|
|
|
37364
37070
|
value: selectedLabel
|
|
37365
37071
|
}
|
|
37366
37072
|
),
|
|
37367
|
-
/* @__PURE__ */
|
|
37073
|
+
/* @__PURE__ */ jsxs48(AssignmentSelectContent, { children: [
|
|
37368
37074
|
/* @__PURE__ */ jsx69(AssignmentSelectItem, { value: CLEAR_VALUE, children: notSpecifiedLabel }),
|
|
37369
37075
|
options.map((option) => /* @__PURE__ */ jsx69(AssignmentSelectItem, { value: option.value, children: option.label }, option.value)),
|
|
37370
37076
|
value && !known ? /* @__PURE__ */ jsx69(AssignmentSelectItem, { value, children: value }) : null
|
|
@@ -37375,7 +37081,7 @@ function AssignmentValueSelect({
|
|
|
37375
37081
|
}
|
|
37376
37082
|
|
|
37377
37083
|
// workspaceWorkflow/tuttiModePlan/TuttiModePlanPanel.tsx
|
|
37378
|
-
import { jsx as jsx70, jsxs as
|
|
37084
|
+
import { jsx as jsx70, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
37379
37085
|
function TuttiModePlanPanel({
|
|
37380
37086
|
assignmentCatalog,
|
|
37381
37087
|
assignmentDrafts,
|
|
@@ -37386,7 +37092,7 @@ function TuttiModePlanPanel({
|
|
|
37386
37092
|
onAssignmentDraftChange
|
|
37387
37093
|
}) {
|
|
37388
37094
|
const editable = assignmentCatalog?.agents != null && panel.actionable && onAssignmentDraftChange !== void 0;
|
|
37389
|
-
return /* @__PURE__ */
|
|
37095
|
+
return /* @__PURE__ */ jsxs49(
|
|
37390
37096
|
Card,
|
|
37391
37097
|
{
|
|
37392
37098
|
className: cn10(
|
|
@@ -37395,11 +37101,11 @@ function TuttiModePlanPanel({
|
|
|
37395
37101
|
),
|
|
37396
37102
|
"data-testid": "tutti-mode-plan-panel",
|
|
37397
37103
|
children: [
|
|
37398
|
-
/* @__PURE__ */
|
|
37104
|
+
/* @__PURE__ */ jsxs49(CardHeader, { children: [
|
|
37399
37105
|
/* @__PURE__ */ jsx70(CardTitle, { children: panel.title }),
|
|
37400
37106
|
/* @__PURE__ */ jsx70(CardDescription, { children: panel.topicId })
|
|
37401
37107
|
] }),
|
|
37402
|
-
/* @__PURE__ */
|
|
37108
|
+
/* @__PURE__ */ jsxs49(CardContent, { className: "grid gap-4", children: [
|
|
37403
37109
|
/* @__PURE__ */ jsx70("div", { className: "prose prose-sm max-w-none text-foreground dark:prose-invert", children: /* @__PURE__ */ jsx70(
|
|
37404
37110
|
ReactMarkdown2,
|
|
37405
37111
|
{
|
|
@@ -37408,15 +37114,15 @@ function TuttiModePlanPanel({
|
|
|
37408
37114
|
children: panel.markdownBody
|
|
37409
37115
|
}
|
|
37410
37116
|
) }),
|
|
37411
|
-
panel.tasks.length > 0 ? /* @__PURE__ */
|
|
37117
|
+
panel.tasks.length > 0 ? /* @__PURE__ */ jsxs49("section", { className: "grid gap-2", children: [
|
|
37412
37118
|
/* @__PURE__ */ jsx70("h4", { className: "text-xs font-medium text-foreground", children: labels.tasks }),
|
|
37413
|
-
/* @__PURE__ */ jsx70("ol", { className: "grid gap-2", children: panel.tasks.map((task) => /* @__PURE__ */
|
|
37119
|
+
/* @__PURE__ */ jsx70("ol", { className: "grid gap-2", children: panel.tasks.map((task) => /* @__PURE__ */ jsxs49(
|
|
37414
37120
|
"li",
|
|
37415
37121
|
{
|
|
37416
37122
|
className: "rounded-lg border border-[var(--line-2)] bg-[var(--background-board-card)] px-4 pt-3 pb-2 text-sm",
|
|
37417
37123
|
children: [
|
|
37418
|
-
/* @__PURE__ */
|
|
37419
|
-
/* @__PURE__ */
|
|
37124
|
+
/* @__PURE__ */ jsxs49("div", { className: "flex flex-wrap items-start justify-between gap-2", children: [
|
|
37125
|
+
/* @__PURE__ */ jsxs49("div", { className: "font-medium text-foreground", children: [
|
|
37420
37126
|
task.ordinal,
|
|
37421
37127
|
". ",
|
|
37422
37128
|
task.title
|
|
@@ -37501,7 +37207,7 @@ function priorityLabel(labels, priority) {
|
|
|
37501
37207
|
import { useState as useState40 } from "react";
|
|
37502
37208
|
import { ExternalLink as ExternalLink3, ListChecks as ListChecks3, Square } from "lucide-react";
|
|
37503
37209
|
import { Button as Button9, Card as Card2, CardContent as CardContent2, CardHeader as CardHeader2, cn as cn11 } from "@tutti-os/ui-system";
|
|
37504
|
-
import { jsx as jsx71, jsxs as
|
|
37210
|
+
import { jsx as jsx71, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
37505
37211
|
var BOARD_STATUS_ORDER = [
|
|
37506
37212
|
"not_started",
|
|
37507
37213
|
"running",
|
|
@@ -37604,7 +37310,7 @@ function TuttiPlanIssuePanel({
|
|
|
37604
37310
|
setStopping(false);
|
|
37605
37311
|
});
|
|
37606
37312
|
} : void 0;
|
|
37607
|
-
return /* @__PURE__ */
|
|
37313
|
+
return /* @__PURE__ */ jsxs50(
|
|
37608
37314
|
Card2,
|
|
37609
37315
|
{
|
|
37610
37316
|
className: cn11(
|
|
@@ -37613,8 +37319,8 @@ function TuttiPlanIssuePanel({
|
|
|
37613
37319
|
),
|
|
37614
37320
|
"data-testid": "tutti-plan-issue-panel",
|
|
37615
37321
|
children: [
|
|
37616
|
-
/* @__PURE__ */ jsx71(CardHeader2, { className: "gap-2", children: /* @__PURE__ */
|
|
37617
|
-
/* @__PURE__ */
|
|
37322
|
+
/* @__PURE__ */ jsx71(CardHeader2, { className: "gap-2", children: /* @__PURE__ */ jsxs50("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [
|
|
37323
|
+
/* @__PURE__ */ jsxs50("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
37618
37324
|
/* @__PURE__ */ jsx71(
|
|
37619
37325
|
ListChecks3,
|
|
37620
37326
|
{
|
|
@@ -37629,7 +37335,7 @@ function TuttiPlanIssuePanel({
|
|
|
37629
37335
|
String(running)
|
|
37630
37336
|
) })
|
|
37631
37337
|
] }),
|
|
37632
|
-
/* @__PURE__ */
|
|
37338
|
+
/* @__PURE__ */ jsxs50("div", { className: "flex shrink-0 items-center gap-1.5", children: [
|
|
37633
37339
|
/* @__PURE__ */ jsx71("div", { className: "flex items-center gap-0.5", children: ["list", "board"].map((mode) => /* @__PURE__ */ jsx71(
|
|
37634
37340
|
"button",
|
|
37635
37341
|
{
|
|
@@ -37646,7 +37352,7 @@ function TuttiPlanIssuePanel({
|
|
|
37646
37352
|
},
|
|
37647
37353
|
mode
|
|
37648
37354
|
)) }),
|
|
37649
|
-
stopExecution ? /* @__PURE__ */
|
|
37355
|
+
stopExecution ? /* @__PURE__ */ jsxs50(
|
|
37650
37356
|
Button9,
|
|
37651
37357
|
{
|
|
37652
37358
|
type: "button",
|
|
@@ -37662,7 +37368,7 @@ function TuttiPlanIssuePanel({
|
|
|
37662
37368
|
]
|
|
37663
37369
|
}
|
|
37664
37370
|
) : null,
|
|
37665
|
-
onOpenIssue ? /* @__PURE__ */
|
|
37371
|
+
onOpenIssue ? /* @__PURE__ */ jsxs50(
|
|
37666
37372
|
Button9,
|
|
37667
37373
|
{
|
|
37668
37374
|
type: "button",
|
|
@@ -37709,10 +37415,10 @@ function TaskStructureChips({
|
|
|
37709
37415
|
if (!task.parallelizable && !task.autoAccept && dependencies.length === 0) {
|
|
37710
37416
|
return null;
|
|
37711
37417
|
}
|
|
37712
|
-
return /* @__PURE__ */
|
|
37418
|
+
return /* @__PURE__ */ jsxs50("span", { className: "flex min-w-0 flex-wrap items-center gap-1", children: [
|
|
37713
37419
|
task.parallelizable ? /* @__PURE__ */ jsx71("span", { className: "shrink-0 rounded-full border border-[color-mix(in_srgb,var(--tutti-purple)_36%,transparent)] px-1.5 text-[10px] leading-4 text-[var(--tutti-purple)]", children: labels.parallelizable }) : null,
|
|
37714
37420
|
task.autoAccept ? /* @__PURE__ */ jsx71("span", { className: "shrink-0 rounded-full border border-[color-mix(in_srgb,var(--state-success)_42%,transparent)] px-1.5 text-[10px] leading-4 text-[var(--state-success)]", children: labels.autoAccept }) : null,
|
|
37715
|
-
dependencies.length > 0 ? /* @__PURE__ */
|
|
37421
|
+
dependencies.length > 0 ? /* @__PURE__ */ jsxs50(
|
|
37716
37422
|
"span",
|
|
37717
37423
|
{
|
|
37718
37424
|
className: "min-w-0 truncate rounded-full border border-[var(--line-2)] px-1.5 text-[10px] leading-4 text-muted-foreground",
|
|
@@ -37737,7 +37443,7 @@ function TaskDecisionActions({
|
|
|
37737
37443
|
if (!decideTask || !canRework) {
|
|
37738
37444
|
return null;
|
|
37739
37445
|
}
|
|
37740
|
-
return /* @__PURE__ */
|
|
37446
|
+
return /* @__PURE__ */ jsxs50("span", { className: "flex shrink-0 items-center gap-1", children: [
|
|
37741
37447
|
canAccept ? /* @__PURE__ */ jsx71(
|
|
37742
37448
|
Button9,
|
|
37743
37449
|
{
|
|
@@ -37795,14 +37501,14 @@ function TuttiPlanIssueBoard({
|
|
|
37795
37501
|
},
|
|
37796
37502
|
children: columns.map((status) => {
|
|
37797
37503
|
const tasks = groups.get(status) ?? [];
|
|
37798
|
-
return /* @__PURE__ */
|
|
37504
|
+
return /* @__PURE__ */ jsxs50(
|
|
37799
37505
|
"div",
|
|
37800
37506
|
{
|
|
37801
37507
|
className: "min-h-[220px] rounded-lg border border-[var(--line-2)] bg-muted/30 px-2 py-2",
|
|
37802
37508
|
"data-testid": `tutti-plan-issue-column-${status}`,
|
|
37803
37509
|
children: [
|
|
37804
|
-
/* @__PURE__ */
|
|
37805
|
-
/* @__PURE__ */
|
|
37510
|
+
/* @__PURE__ */ jsxs50("div", { className: "mb-1.5 flex items-center justify-between gap-2", children: [
|
|
37511
|
+
/* @__PURE__ */ jsxs50("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
37806
37512
|
/* @__PURE__ */ jsx71(
|
|
37807
37513
|
"span",
|
|
37808
37514
|
{
|
|
@@ -37819,7 +37525,7 @@ function TuttiPlanIssueBoard({
|
|
|
37819
37525
|
] }),
|
|
37820
37526
|
/* @__PURE__ */ jsx71("div", { className: "grid gap-1.5", children: tasks.map((task) => {
|
|
37821
37527
|
const openable = openTask && taskHasConversation(task);
|
|
37822
|
-
return /* @__PURE__ */
|
|
37528
|
+
return /* @__PURE__ */ jsxs50(
|
|
37823
37529
|
"div",
|
|
37824
37530
|
{
|
|
37825
37531
|
role: openable ? "button" : void 0,
|
|
@@ -37869,7 +37575,7 @@ function TuttiPlanIssueList({
|
|
|
37869
37575
|
}) {
|
|
37870
37576
|
const showStages = issue.tasks.some((task) => task.parallelizable);
|
|
37871
37577
|
const stages = showStages ? groupTuttiPlanIssueTasksIntoStages(issue.tasks) : [{ kind: "sequential", tasks: [...issue.tasks] }];
|
|
37872
|
-
return /* @__PURE__ */ jsx71("div", { className: "overflow-hidden rounded-lg border border-[var(--line-2)]", children: stages.map((stage, index) => /* @__PURE__ */
|
|
37578
|
+
return /* @__PURE__ */ jsx71("div", { className: "overflow-hidden rounded-lg border border-[var(--line-2)]", children: stages.map((stage, index) => /* @__PURE__ */ jsxs50("div", { children: [
|
|
37873
37579
|
showStages ? /* @__PURE__ */ jsx71(
|
|
37874
37580
|
"div",
|
|
37875
37581
|
{
|
|
@@ -37884,7 +37590,7 @@ function TuttiPlanIssueList({
|
|
|
37884
37590
|
stage.tasks.map((task) => {
|
|
37885
37591
|
const status = boardStatusOf(task);
|
|
37886
37592
|
const openable = openTask && taskHasConversation(task);
|
|
37887
|
-
return /* @__PURE__ */
|
|
37593
|
+
return /* @__PURE__ */ jsxs50(
|
|
37888
37594
|
"div",
|
|
37889
37595
|
{
|
|
37890
37596
|
role: openable ? "button" : void 0,
|
|
@@ -37901,14 +37607,14 @@ function TuttiPlanIssueList({
|
|
|
37901
37607
|
}
|
|
37902
37608
|
} : void 0,
|
|
37903
37609
|
children: [
|
|
37904
|
-
/* @__PURE__ */
|
|
37905
|
-
/* @__PURE__ */
|
|
37610
|
+
/* @__PURE__ */ jsxs50("div", { className: "min-w-0 flex-1", children: [
|
|
37611
|
+
/* @__PURE__ */ jsxs50("div", { className: "flex min-w-0 flex-wrap items-center gap-1.5", children: [
|
|
37906
37612
|
/* @__PURE__ */ jsx71("span", { className: "truncate text-xs font-medium text-foreground", children: task.title }),
|
|
37907
37613
|
/* @__PURE__ */ jsx71(TaskStructureChips, { labels, task })
|
|
37908
37614
|
] }),
|
|
37909
37615
|
task.content ? /* @__PURE__ */ jsx71("p", { className: "mt-1 line-clamp-2 text-[11px] text-muted-foreground", children: task.content }) : null
|
|
37910
37616
|
] }),
|
|
37911
|
-
/* @__PURE__ */
|
|
37617
|
+
/* @__PURE__ */ jsxs50("span", { className: "flex shrink-0 items-center gap-2", children: [
|
|
37912
37618
|
/* @__PURE__ */ jsx71(
|
|
37913
37619
|
TaskDecisionActions,
|
|
37914
37620
|
{
|
|
@@ -37918,7 +37624,7 @@ function TuttiPlanIssueList({
|
|
|
37918
37624
|
deciding: decidingTaskIds.includes(task.taskId)
|
|
37919
37625
|
}
|
|
37920
37626
|
),
|
|
37921
|
-
/* @__PURE__ */
|
|
37627
|
+
/* @__PURE__ */ jsxs50("span", { className: "flex shrink-0 items-center gap-1.5 text-[11px] text-muted-foreground", children: [
|
|
37922
37628
|
/* @__PURE__ */ jsx71(
|
|
37923
37629
|
"span",
|
|
37924
37630
|
{
|
|
@@ -38301,8 +38007,8 @@ function useTuttiModePlanPanels(input) {
|
|
|
38301
38007
|
|
|
38302
38008
|
// agent-gui/agentGuiNode/AgentComposerDisclosureCard.tsx
|
|
38303
38009
|
import { useId as useId3 } from "react";
|
|
38304
|
-
import { ChevronDown as
|
|
38305
|
-
import { jsx as jsx72, jsxs as
|
|
38010
|
+
import { ChevronDown as ChevronDown2 } from "lucide-react";
|
|
38011
|
+
import { jsx as jsx72, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
38306
38012
|
function AgentComposerDisclosureCard({
|
|
38307
38013
|
actions,
|
|
38308
38014
|
bannerClassName,
|
|
@@ -38318,7 +38024,7 @@ function AgentComposerDisclosureCard({
|
|
|
38318
38024
|
}) {
|
|
38319
38025
|
const panelId = useId3();
|
|
38320
38026
|
const disclosureLabel = expanded ? labels.collapse : labels.expand;
|
|
38321
|
-
return /* @__PURE__ */ jsx72("div", { className: AgentGUIChrome_styles_default.sessionChrome, children: /* @__PURE__ */
|
|
38027
|
+
return /* @__PURE__ */ jsx72("div", { className: AgentGUIChrome_styles_default.sessionChrome, children: /* @__PURE__ */ jsxs51(
|
|
38322
38028
|
"section",
|
|
38323
38029
|
{
|
|
38324
38030
|
className: AgentGUIChrome_styles_default.composerDisclosure,
|
|
@@ -38334,7 +38040,7 @@ function AgentComposerDisclosureCard({
|
|
|
38334
38040
|
children
|
|
38335
38041
|
}
|
|
38336
38042
|
) : null,
|
|
38337
|
-
/* @__PURE__ */
|
|
38043
|
+
/* @__PURE__ */ jsxs51(
|
|
38338
38044
|
"div",
|
|
38339
38045
|
{
|
|
38340
38046
|
className: cn(
|
|
@@ -38344,7 +38050,7 @@ function AgentComposerDisclosureCard({
|
|
|
38344
38050
|
bannerClassName
|
|
38345
38051
|
),
|
|
38346
38052
|
children: [
|
|
38347
|
-
/* @__PURE__ */
|
|
38053
|
+
/* @__PURE__ */ jsxs51(
|
|
38348
38054
|
"button",
|
|
38349
38055
|
{
|
|
38350
38056
|
type: "button",
|
|
@@ -38356,7 +38062,7 @@ function AgentComposerDisclosureCard({
|
|
|
38356
38062
|
onClick: () => onExpandedChange(!expanded),
|
|
38357
38063
|
children: [
|
|
38358
38064
|
/* @__PURE__ */ jsx72("span", { className: AgentGUIChrome_styles_default.chromeIcon, children: icon }),
|
|
38359
|
-
/* @__PURE__ */
|
|
38065
|
+
/* @__PURE__ */ jsxs51(
|
|
38360
38066
|
"span",
|
|
38361
38067
|
{
|
|
38362
38068
|
className: cn(AgentGUIChrome_styles_default.chromeMessage, AgentGUIChrome_styles_default.chromeNoticeMessage),
|
|
@@ -38375,7 +38081,7 @@ function AgentComposerDisclosureCard({
|
|
|
38375
38081
|
}
|
|
38376
38082
|
),
|
|
38377
38083
|
/* @__PURE__ */ jsx72(
|
|
38378
|
-
|
|
38084
|
+
ChevronDown2,
|
|
38379
38085
|
{
|
|
38380
38086
|
"aria-hidden": true,
|
|
38381
38087
|
className: cn(
|
|
@@ -38427,7 +38133,7 @@ function projectTuttiIntensityPreview(intensity) {
|
|
|
38427
38133
|
}
|
|
38428
38134
|
|
|
38429
38135
|
// agent-gui/agentGuiNode/composer/TuttiBudgetPopover.tsx
|
|
38430
|
-
import { jsx as jsx73, jsxs as
|
|
38136
|
+
import { jsx as jsx73, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
38431
38137
|
var tierTone = {
|
|
38432
38138
|
cost: {
|
|
38433
38139
|
sliderHandleUrl: tutti_intensity_handle_cost_default,
|
|
@@ -38462,7 +38168,7 @@ function TuttiBudgetPopover({
|
|
|
38462
38168
|
smallGroup: labels.agentCountBalance,
|
|
38463
38169
|
maxParallel: labels.agentCountPowerful
|
|
38464
38170
|
}[preview.agentCount];
|
|
38465
|
-
return /* @__PURE__ */
|
|
38171
|
+
return /* @__PURE__ */ jsxs52(
|
|
38466
38172
|
Popover5,
|
|
38467
38173
|
{
|
|
38468
38174
|
open,
|
|
@@ -38474,7 +38180,7 @@ function TuttiBudgetPopover({
|
|
|
38474
38180
|
},
|
|
38475
38181
|
children: [
|
|
38476
38182
|
/* @__PURE__ */ jsx73(PopoverTrigger3, { asChild: true, children }),
|
|
38477
|
-
/* @__PURE__ */
|
|
38183
|
+
/* @__PURE__ */ jsxs52(
|
|
38478
38184
|
PopoverContent4,
|
|
38479
38185
|
{
|
|
38480
38186
|
align: "start",
|
|
@@ -38486,13 +38192,13 @@ function TuttiBudgetPopover({
|
|
|
38486
38192
|
},
|
|
38487
38193
|
children: [
|
|
38488
38194
|
/* @__PURE__ */ jsx73("div", { className: "text-[13px] font-semibold text-[var(--text-primary)]", children: labels.title }),
|
|
38489
|
-
/* @__PURE__ */
|
|
38195
|
+
/* @__PURE__ */ jsxs52(
|
|
38490
38196
|
"div",
|
|
38491
38197
|
{
|
|
38492
38198
|
className: "rounded-[8px] border border-[var(--line-2)] bg-[var(--transparency-block)] p-2.5",
|
|
38493
38199
|
"data-agent-tutti-budget-preview": preview.tier,
|
|
38494
38200
|
children: [
|
|
38495
|
-
/* @__PURE__ */
|
|
38201
|
+
/* @__PURE__ */ jsxs52("div", { className: "flex items-center justify-between gap-2 text-[12px] text-[var(--text-secondary)]", children: [
|
|
38496
38202
|
/* @__PURE__ */ jsx73("span", { children: labels.intensityLabel }),
|
|
38497
38203
|
/* @__PURE__ */ jsx73(
|
|
38498
38204
|
"span",
|
|
@@ -38503,7 +38209,7 @@ function TuttiBudgetPopover({
|
|
|
38503
38209
|
}
|
|
38504
38210
|
)
|
|
38505
38211
|
] }),
|
|
38506
|
-
/* @__PURE__ */
|
|
38212
|
+
/* @__PURE__ */ jsxs52("div", { className: "mt-3", children: [
|
|
38507
38213
|
/* @__PURE__ */ jsx73(
|
|
38508
38214
|
Slider,
|
|
38509
38215
|
{
|
|
@@ -38525,7 +38231,7 @@ function TuttiBudgetPopover({
|
|
|
38525
38231
|
}
|
|
38526
38232
|
}
|
|
38527
38233
|
),
|
|
38528
|
-
/* @__PURE__ */
|
|
38234
|
+
/* @__PURE__ */ jsxs52("div", { className: "mt-3 flex items-center justify-between gap-2 text-[11px] font-medium", children: [
|
|
38529
38235
|
/* @__PURE__ */ jsx73("span", { className: "text-[var(--state-success)]", children: labels.previewCost }),
|
|
38530
38236
|
/* @__PURE__ */ jsx73("span", { className: "text-[var(--accent-codex)]", children: labels.previewBalance }),
|
|
38531
38237
|
/* @__PURE__ */ jsx73("span", { className: "text-[var(--tutti-purple)]", children: labels.previewPowerful })
|
|
@@ -38539,8 +38245,8 @@ function TuttiBudgetPopover({
|
|
|
38539
38245
|
children: /* @__PURE__ */ jsx73("span", { className: "text-[12px] font-medium text-[var(--text-secondary)]", children: labels.previewTitle })
|
|
38540
38246
|
}
|
|
38541
38247
|
),
|
|
38542
|
-
/* @__PURE__ */
|
|
38543
|
-
/* @__PURE__ */
|
|
38248
|
+
/* @__PURE__ */ jsxs52("div", { className: "mt-2 grid grid-cols-2 gap-2 text-[11px]", children: [
|
|
38249
|
+
/* @__PURE__ */ jsxs52("div", { className: "min-w-0", children: [
|
|
38544
38250
|
/* @__PURE__ */ jsx73("div", { className: "text-[var(--text-tertiary)]", children: labels.modelStrengthLabel }),
|
|
38545
38251
|
/* @__PURE__ */ jsx73(
|
|
38546
38252
|
"div",
|
|
@@ -38551,7 +38257,7 @@ function TuttiBudgetPopover({
|
|
|
38551
38257
|
}
|
|
38552
38258
|
)
|
|
38553
38259
|
] }),
|
|
38554
|
-
/* @__PURE__ */
|
|
38260
|
+
/* @__PURE__ */ jsxs52("div", { className: "min-w-0", children: [
|
|
38555
38261
|
/* @__PURE__ */ jsx73("div", { className: "text-[var(--text-tertiary)]", children: labels.agentCountLabel }),
|
|
38556
38262
|
/* @__PURE__ */ jsx73(
|
|
38557
38263
|
"div",
|
|
@@ -38576,7 +38282,7 @@ function TuttiBudgetPopover({
|
|
|
38576
38282
|
}
|
|
38577
38283
|
|
|
38578
38284
|
// agent-gui/agentGuiNode/TuttiWorkflowDock.tsx
|
|
38579
|
-
import { Fragment as Fragment22, jsx as jsx74, jsxs as
|
|
38285
|
+
import { Fragment as Fragment22, jsx as jsx74, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
38580
38286
|
function countIssueTasks(issue, status) {
|
|
38581
38287
|
return issue.tasks.filter((task) => task.status === status).length;
|
|
38582
38288
|
}
|
|
@@ -38645,14 +38351,14 @@ function TuttiWorkflowDock({
|
|
|
38645
38351
|
balance: intensityPopoverLabels.previewBalance,
|
|
38646
38352
|
powerful: intensityPopoverLabels.previewPowerful
|
|
38647
38353
|
}[reviewTier] : null;
|
|
38648
|
-
const actions = review !== null ? /* @__PURE__ */
|
|
38354
|
+
const actions = review !== null ? /* @__PURE__ */ jsxs53(Fragment22, { children: [
|
|
38649
38355
|
/* @__PURE__ */ jsx74(
|
|
38650
38356
|
TuttiBudgetPopover,
|
|
38651
38357
|
{
|
|
38652
38358
|
intensity: reviewDisplayIntensity ?? review.intensity,
|
|
38653
38359
|
labels: intensityPopoverLabels,
|
|
38654
38360
|
onChange: handleIntensityChange,
|
|
38655
|
-
children: /* @__PURE__ */
|
|
38361
|
+
children: /* @__PURE__ */ jsxs53(
|
|
38656
38362
|
"button",
|
|
38657
38363
|
{
|
|
38658
38364
|
type: "button",
|
|
@@ -38668,7 +38374,7 @@ function TuttiWorkflowDock({
|
|
|
38668
38374
|
),
|
|
38669
38375
|
children: [
|
|
38670
38376
|
/* @__PURE__ */ jsx74(Gauge2, { "aria-hidden": true, className: "size-3.5" }),
|
|
38671
|
-
/* @__PURE__ */
|
|
38377
|
+
/* @__PURE__ */ jsxs53("span", { className: "flex items-center gap-0.5", children: [
|
|
38672
38378
|
reviewTierLabel !== null ? /* @__PURE__ */ jsx74("span", { className: "text-[11px]", children: reviewTierLabel }) : null,
|
|
38673
38379
|
/* @__PURE__ */ jsx74("span", { className: "inline-block w-[3ch] text-left text-[11px] tabular-nums", children: reviewDisplayIntensity ?? review.intensity })
|
|
38674
38380
|
] })
|
|
@@ -38690,7 +38396,7 @@ function TuttiWorkflowDock({
|
|
|
38690
38396
|
children: /* @__PURE__ */ jsx74(X6, { "aria-hidden": true, className: "size-3.5" })
|
|
38691
38397
|
}
|
|
38692
38398
|
)
|
|
38693
|
-
] }) : phase.kind === "error" && phase.retryable ? /* @__PURE__ */
|
|
38399
|
+
] }) : phase.kind === "error" && phase.retryable ? /* @__PURE__ */ jsxs53(
|
|
38694
38400
|
"button",
|
|
38695
38401
|
{
|
|
38696
38402
|
type: "button",
|
|
@@ -38728,7 +38434,7 @@ function TuttiWorkflowDock({
|
|
|
38728
38434
|
submitting: review.submitting,
|
|
38729
38435
|
onAssignmentDraftChange
|
|
38730
38436
|
}
|
|
38731
|
-
) : phase.kind === "materializing" ? /* @__PURE__ */
|
|
38437
|
+
) : phase.kind === "materializing" ? /* @__PURE__ */ jsxs53(
|
|
38732
38438
|
"div",
|
|
38733
38439
|
{
|
|
38734
38440
|
className: "grid min-h-28 place-items-center gap-2 text-center text-sm text-muted-foreground",
|
|
@@ -38768,7 +38474,7 @@ function TuttiWorkflowDock({
|
|
|
38768
38474
|
}
|
|
38769
38475
|
|
|
38770
38476
|
// agent-gui/agentGuiNode/view/AgentGUIBottomDockPane.tsx
|
|
38771
|
-
import { Fragment as Fragment23, jsx as jsx75, jsxs as
|
|
38477
|
+
import { Fragment as Fragment23, jsx as jsx75, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
38772
38478
|
var AgentGUIBottomDockPane = memo9(function AgentGUIBottomDockPane2({
|
|
38773
38479
|
bottomDockRef,
|
|
38774
38480
|
showScrollToBottom,
|
|
@@ -38798,7 +38504,6 @@ var AgentGUIBottomDockPane = memo9(function AgentGUIBottomDockPane2({
|
|
|
38798
38504
|
tuttiPlanIssuePanelLabels
|
|
38799
38505
|
}) {
|
|
38800
38506
|
"use memo";
|
|
38801
|
-
const previewMode = composerProps.previewMode === true;
|
|
38802
38507
|
const goal = objectRecord(sessionChrome.rawState?.goal);
|
|
38803
38508
|
const goalObjective = goal ? stringValue3(goal.objective) : "";
|
|
38804
38509
|
const goalStatus = goal ? stringValue3(goal.status) : "";
|
|
@@ -38840,7 +38545,6 @@ var AgentGUIBottomDockPane = memo9(function AgentGUIBottomDockPane2({
|
|
|
38840
38545
|
embedded: true,
|
|
38841
38546
|
edgeGlow: true,
|
|
38842
38547
|
keyboardShortcuts: keyboardShortcutsEnabled,
|
|
38843
|
-
previewMode,
|
|
38844
38548
|
isSubmitting: isRespondingApproval,
|
|
38845
38549
|
onSubmit: onSubmitBottomDockInteractivePrompt,
|
|
38846
38550
|
labels: promptLabels
|
|
@@ -38848,7 +38552,7 @@ var AgentGUIBottomDockPane = memo9(function AgentGUIBottomDockPane2({
|
|
|
38848
38552
|
)
|
|
38849
38553
|
}
|
|
38850
38554
|
) : null,
|
|
38851
|
-
accessories: /* @__PURE__ */
|
|
38555
|
+
accessories: /* @__PURE__ */ jsxs54(Fragment23, { children: [
|
|
38852
38556
|
inlineNoticeChrome ? /* @__PURE__ */ jsx75(
|
|
38853
38557
|
AgentSessionChrome,
|
|
38854
38558
|
{
|
|
@@ -38937,7 +38641,6 @@ var AgentGUIBottomDockPane = memo9(function AgentGUIBottomDockPane2({
|
|
|
38937
38641
|
embedded: true,
|
|
38938
38642
|
edgeGlow: true,
|
|
38939
38643
|
keyboardShortcuts: keyboardShortcutsEnabled,
|
|
38940
|
-
previewMode,
|
|
38941
38644
|
isSubmitting: isRespondingApproval,
|
|
38942
38645
|
onSubmit: onSubmitBottomDockInteractivePrompt,
|
|
38943
38646
|
labels: promptLabels
|
|
@@ -38957,13 +38660,13 @@ import {
|
|
|
38957
38660
|
ToastTitle,
|
|
38958
38661
|
ToastViewport
|
|
38959
38662
|
} from "@tutti-os/ui-system";
|
|
38960
|
-
import { jsx as jsx76, jsxs as
|
|
38663
|
+
import { jsx as jsx76, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
38961
38664
|
function AgentGUIContentToast({
|
|
38962
38665
|
insetTopPx,
|
|
38963
38666
|
message
|
|
38964
38667
|
}) {
|
|
38965
38668
|
const [open, setOpen] = useState44(true);
|
|
38966
|
-
return /* @__PURE__ */
|
|
38669
|
+
return /* @__PURE__ */ jsxs55(ToastProvider, { children: [
|
|
38967
38670
|
/* @__PURE__ */ jsx76(
|
|
38968
38671
|
ToastRoot,
|
|
38969
38672
|
{
|
|
@@ -38994,7 +38697,7 @@ import { ScrollArea as ScrollArea3 } from "@tutti-os/ui-system/components";
|
|
|
38994
38697
|
|
|
38995
38698
|
// agent-gui/agentGuiNode/view/AgentGUIConversationTimelinePane.tsx
|
|
38996
38699
|
import { memo as memo10 } from "react";
|
|
38997
|
-
import { Fragment as Fragment24, jsx as jsx77, jsxs as
|
|
38700
|
+
import { Fragment as Fragment24, jsx as jsx77, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
38998
38701
|
var EMPTY_WORKSPACE_APP_ICONS3 = [];
|
|
38999
38702
|
var AgentGUIConversationTimelinePane = memo10(
|
|
39000
38703
|
function AgentGUIConversationTimelinePane2({
|
|
@@ -39010,11 +38713,10 @@ var AgentGUIConversationTimelinePane = memo10(
|
|
|
39010
38713
|
onAuthLogin,
|
|
39011
38714
|
availableSkills,
|
|
39012
38715
|
workspaceAppIcons = EMPTY_WORKSPACE_APP_ICONS3,
|
|
39013
|
-
previewMode = false,
|
|
39014
38716
|
labels
|
|
39015
38717
|
}) {
|
|
39016
38718
|
"use memo";
|
|
39017
|
-
return /* @__PURE__ */
|
|
38719
|
+
return /* @__PURE__ */ jsxs56(Fragment24, { children: [
|
|
39018
38720
|
isLoadingOlderMessages && !isLoading ? /* @__PURE__ */ jsx77(
|
|
39019
38721
|
"div",
|
|
39020
38722
|
{
|
|
@@ -39038,7 +38740,6 @@ var AgentGUIConversationTimelinePane = memo10(
|
|
|
39038
38740
|
onAuthLogin,
|
|
39039
38741
|
availableSkills,
|
|
39040
38742
|
workspaceAppIcons,
|
|
39041
|
-
previewMode,
|
|
39042
38743
|
labels
|
|
39043
38744
|
}
|
|
39044
38745
|
)
|
|
@@ -39081,7 +38782,6 @@ var AgentGUIDetailTimeline = memo11(function AgentGUIDetailTimeline2({
|
|
|
39081
38782
|
labels,
|
|
39082
38783
|
onAuthLogin,
|
|
39083
38784
|
onLinkAction,
|
|
39084
|
-
previewMode,
|
|
39085
38785
|
showTimelineSkeleton,
|
|
39086
38786
|
showUnavailableChatEmpty,
|
|
39087
38787
|
timelineContentRef,
|
|
@@ -39111,7 +38811,6 @@ var AgentGUIDetailTimeline = memo11(function AgentGUIDetailTimeline2({
|
|
|
39111
38811
|
onAuthLogin,
|
|
39112
38812
|
availableSkills,
|
|
39113
38813
|
workspaceAppIcons,
|
|
39114
|
-
previewMode,
|
|
39115
38814
|
labels: conversationFlowLabels
|
|
39116
38815
|
}
|
|
39117
38816
|
) : homeContent
|
|
@@ -39139,6 +38838,52 @@ function readTimelineGeometry(timeline) {
|
|
|
39139
38838
|
scrollHeight
|
|
39140
38839
|
};
|
|
39141
38840
|
}
|
|
38841
|
+
function readBottomDockSafeArea(bottomDock) {
|
|
38842
|
+
const bottomDockRect = bottomDock.getBoundingClientRect();
|
|
38843
|
+
let timelineVisualTop = bottomDockRect.top;
|
|
38844
|
+
let floatingVisualTop = bottomDockRect.top;
|
|
38845
|
+
bottomDock.querySelectorAll("*").forEach((element) => {
|
|
38846
|
+
if (element.closest(`.${AgentGUINode_styles_default.bottomDockScrollToBottom}`)) {
|
|
38847
|
+
return;
|
|
38848
|
+
}
|
|
38849
|
+
const rect = element.getBoundingClientRect();
|
|
38850
|
+
if (rect.width <= 0 || rect.height <= 0) {
|
|
38851
|
+
return;
|
|
38852
|
+
}
|
|
38853
|
+
if (element.closest(`.${AgentGUINode_styles_default.composerInputShell}`)) {
|
|
38854
|
+
if (element.matches(".agent-gui-node__composer-prompt-input-area")) {
|
|
38855
|
+
floatingVisualTop = Math.min(floatingVisualTop, rect.top);
|
|
38856
|
+
}
|
|
38857
|
+
return;
|
|
38858
|
+
}
|
|
38859
|
+
if (element.closest(`.${AgentGUINode_styles_default.composerDisclosurePanel}`)) {
|
|
38860
|
+
floatingVisualTop = Math.min(floatingVisualTop, rect.top);
|
|
38861
|
+
return;
|
|
38862
|
+
}
|
|
38863
|
+
floatingVisualTop = Math.min(floatingVisualTop, rect.top);
|
|
38864
|
+
timelineVisualTop = Math.min(timelineVisualTop, rect.top);
|
|
38865
|
+
});
|
|
38866
|
+
return {
|
|
38867
|
+
timelineOverflowHeight: Math.max(
|
|
38868
|
+
0,
|
|
38869
|
+
Math.ceil(bottomDockRect.top - timelineVisualTop)
|
|
38870
|
+
),
|
|
38871
|
+
floatingOverflowHeight: Math.max(
|
|
38872
|
+
0,
|
|
38873
|
+
Math.ceil(bottomDockRect.top - floatingVisualTop)
|
|
38874
|
+
)
|
|
38875
|
+
};
|
|
38876
|
+
}
|
|
38877
|
+
function writeBottomDockSafeArea(timeline, safeArea) {
|
|
38878
|
+
timeline.style.setProperty(
|
|
38879
|
+
"--agent-gui-bottom-dock-safe-area",
|
|
38880
|
+
`${safeArea.timelineOverflowHeight}px`
|
|
38881
|
+
);
|
|
38882
|
+
safeArea.bottomDock.style.setProperty(
|
|
38883
|
+
"--agent-gui-bottom-dock-floating-safe-area",
|
|
38884
|
+
`${safeArea.floatingOverflowHeight}px`
|
|
38885
|
+
);
|
|
38886
|
+
}
|
|
39142
38887
|
function useAgentGUIDetailScroll(input) {
|
|
39143
38888
|
const {
|
|
39144
38889
|
actions,
|
|
@@ -39157,8 +38902,10 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39157
38902
|
const [isTimelineScrolledToTop, setIsTimelineScrolledToTop] = useState45(true);
|
|
39158
38903
|
const [isTimelineScrolledToBottom, setIsTimelineScrolledToBottom] = useState45(true);
|
|
39159
38904
|
const bottomLockOwnerRef = useRef52(null);
|
|
38905
|
+
const pointerScrollConversationRef = useRef52(null);
|
|
39160
38906
|
const userScrollAwayIntentConversationRef = useRef52(null);
|
|
39161
38907
|
const lastShowTimelineSkeletonRef = useRef52(showTimelineSkeleton);
|
|
38908
|
+
const bottomDockSafeAreaRef = useRef52(null);
|
|
39162
38909
|
useLayoutEffect7(() => {
|
|
39163
38910
|
const timelineSkeletonChanged = lastShowTimelineSkeletonRef.current !== showTimelineSkeleton;
|
|
39164
38911
|
lastShowTimelineSkeletonRef.current = showTimelineSkeleton;
|
|
@@ -39171,17 +38918,33 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39171
38918
|
timelineScrollAnchorRef.current = null;
|
|
39172
38919
|
bottomLockOwnerRef.current = null;
|
|
39173
38920
|
pendingPrependScrollAnchorRef.current = null;
|
|
38921
|
+
pointerScrollConversationRef.current = null;
|
|
39174
38922
|
submittedPromptScrollConversationRef.current = null;
|
|
39175
38923
|
userScrollAwayIntentConversationRef.current = null;
|
|
39176
38924
|
setIsTimelineScrolledToTop(true);
|
|
39177
38925
|
setIsTimelineScrolledToBottom(true);
|
|
39178
38926
|
return;
|
|
39179
38927
|
}
|
|
38928
|
+
if (activeConversationId !== viewModel.rail.activeConversationId) {
|
|
38929
|
+
bottomLockOwnerRef.current = null;
|
|
38930
|
+
return;
|
|
38931
|
+
}
|
|
39180
38932
|
const anchor = timelineScrollAnchorRef.current;
|
|
39181
38933
|
const prependAnchor = pendingPrependScrollAnchorRef.current;
|
|
39182
38934
|
const shouldScrollSubmittedPromptToBottom = submittedPromptScrollConversationRef.current === activeConversationId;
|
|
39183
38935
|
const conversationChanged = !anchor || anchor.conversationId !== activeConversationId;
|
|
39184
38936
|
const shouldRestorePrependAnchor = prependAnchor?.conversationId === activeConversationId;
|
|
38937
|
+
if (!conversationChanged && bottomLockOwnerRef.current === null && anchor.scrollHeight - anchor.scrollTop - anchor.clientHeight <= AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX) {
|
|
38938
|
+
bottomLockOwnerRef.current = activeConversationId;
|
|
38939
|
+
}
|
|
38940
|
+
if (conversationChanged && showTimelineSkeleton) {
|
|
38941
|
+
bottomLockOwnerRef.current = activeConversationId;
|
|
38942
|
+
pointerScrollConversationRef.current = null;
|
|
38943
|
+
userScrollAwayIntentConversationRef.current = null;
|
|
38944
|
+
setIsTimelineScrolledToTop(true);
|
|
38945
|
+
setIsTimelineScrolledToBottom(true);
|
|
38946
|
+
return;
|
|
38947
|
+
}
|
|
39185
38948
|
if (!conversationChanged && !shouldScrollSubmittedPromptToBottom && !shouldRestorePrependAnchor && !timelineSkeletonChanged) {
|
|
39186
38949
|
return;
|
|
39187
38950
|
}
|
|
@@ -39190,6 +38953,7 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39190
38953
|
let nextScrollTop;
|
|
39191
38954
|
if (conversationChanged || shouldScrollSubmittedPromptToBottom) {
|
|
39192
38955
|
bottomLockOwnerRef.current = activeConversationId;
|
|
38956
|
+
pointerScrollConversationRef.current = null;
|
|
39193
38957
|
userScrollAwayIntentConversationRef.current = null;
|
|
39194
38958
|
}
|
|
39195
38959
|
const shouldKeepBottomLocked = bottomLockOwnerRef.current === activeConversationId;
|
|
@@ -39217,6 +38981,7 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39217
38981
|
} else {
|
|
39218
38982
|
const distanceFromBottom = anchor.scrollHeight - anchor.scrollTop - anchor.clientHeight;
|
|
39219
38983
|
if (distanceFromBottom <= AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX) {
|
|
38984
|
+
bottomLockOwnerRef.current = activeConversationId;
|
|
39220
38985
|
setTimelineScrollTopInstantly(timeline, maxScrollTop);
|
|
39221
38986
|
nextScrollTop = maxScrollTop;
|
|
39222
38987
|
} else {
|
|
@@ -39240,70 +39005,46 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39240
39005
|
conversation,
|
|
39241
39006
|
showTimelineSkeleton,
|
|
39242
39007
|
timelineConversationId,
|
|
39008
|
+
viewModel.rail.activeConversationId,
|
|
39243
39009
|
viewModel.detail.isLoadingOlderMessages
|
|
39244
39010
|
]);
|
|
39011
|
+
const hasTimelineConversation = timelineConversationId !== null;
|
|
39245
39012
|
useLayoutEffect7(() => {
|
|
39246
39013
|
const timeline = timelineRef.current;
|
|
39247
39014
|
const bottomDock = bottomDockRef.current;
|
|
39248
|
-
|
|
39249
|
-
if (!timeline || !bottomDock || !activeConversationId) {
|
|
39015
|
+
if (!hasTimelineConversation || !timeline || !bottomDock) {
|
|
39250
39016
|
return;
|
|
39251
39017
|
}
|
|
39252
39018
|
let animationFrameId = null;
|
|
39253
|
-
const
|
|
39254
|
-
const
|
|
39255
|
-
|
|
39256
|
-
|
|
39257
|
-
bottomDock.querySelectorAll("*").forEach((element) => {
|
|
39258
|
-
if (element.closest(`.${AgentGUINode_styles_default.bottomDockScrollToBottom}`)) {
|
|
39259
|
-
return;
|
|
39260
|
-
}
|
|
39261
|
-
const rect = element.getBoundingClientRect();
|
|
39262
|
-
if (rect.width <= 0 || rect.height <= 0) {
|
|
39263
|
-
return;
|
|
39264
|
-
}
|
|
39265
|
-
if (element.closest(`.${AgentGUINode_styles_default.composerInputShell}`)) {
|
|
39266
|
-
if (element.matches(".agent-gui-node__composer-prompt-input-area")) {
|
|
39267
|
-
floatingVisualTop = Math.min(floatingVisualTop, rect.top);
|
|
39268
|
-
}
|
|
39269
|
-
return;
|
|
39270
|
-
}
|
|
39271
|
-
if (element.closest(`.${AgentGUINode_styles_default.composerDisclosurePanel}`)) {
|
|
39272
|
-
floatingVisualTop = Math.min(floatingVisualTop, rect.top);
|
|
39273
|
-
return;
|
|
39274
|
-
}
|
|
39275
|
-
floatingVisualTop = Math.min(floatingVisualTop, rect.top);
|
|
39276
|
-
timelineVisualTop = Math.min(timelineVisualTop, rect.top);
|
|
39277
|
-
});
|
|
39278
|
-
const timelineOverflowHeight = Math.max(
|
|
39279
|
-
0,
|
|
39280
|
-
Math.ceil(bottomDockRect.top - timelineVisualTop)
|
|
39281
|
-
);
|
|
39282
|
-
const floatingOverflowHeight = Math.max(
|
|
39283
|
-
0,
|
|
39284
|
-
Math.ceil(bottomDockRect.top - floatingVisualTop)
|
|
39285
|
-
);
|
|
39286
|
-
timeline.style.setProperty(
|
|
39287
|
-
"--agent-gui-bottom-dock-safe-area",
|
|
39288
|
-
`${timelineOverflowHeight}px`
|
|
39289
|
-
);
|
|
39290
|
-
bottomDock.style.setProperty(
|
|
39291
|
-
"--agent-gui-bottom-dock-floating-safe-area",
|
|
39292
|
-
`${floatingOverflowHeight}px`
|
|
39293
|
-
);
|
|
39294
|
-
};
|
|
39295
|
-
const syncBottomDockSpace = () => {
|
|
39296
|
-
syncBottomDockSafeArea();
|
|
39297
|
-
if (activeConversationId !== viewModel.rail.activeConversationId) {
|
|
39298
|
-
return;
|
|
39019
|
+
const resolveBottomLockConversation = () => {
|
|
39020
|
+
const activeConversationId = bottomLockOwnerRef.current;
|
|
39021
|
+
if (!activeConversationId) {
|
|
39022
|
+
return null;
|
|
39299
39023
|
}
|
|
39300
39024
|
const anchor = timelineScrollAnchorRef.current;
|
|
39301
|
-
const bottomLocked = bottomLockOwnerRef.current === activeConversationId;
|
|
39302
39025
|
if (!anchor || anchor.conversationId !== activeConversationId) {
|
|
39026
|
+
return null;
|
|
39027
|
+
}
|
|
39028
|
+
return activeConversationId;
|
|
39029
|
+
};
|
|
39030
|
+
const syncBottomDockSafeArea = (forceMeasurement) => {
|
|
39031
|
+
const cachedSafeArea = bottomDockSafeAreaRef.current;
|
|
39032
|
+
if (!forceMeasurement && cachedSafeArea?.bottomDock === bottomDock && cachedSafeArea.revision === bottomDockStoreRevision) {
|
|
39033
|
+
writeBottomDockSafeArea(timeline, cachedSafeArea);
|
|
39303
39034
|
return;
|
|
39304
39035
|
}
|
|
39305
|
-
const
|
|
39306
|
-
|
|
39036
|
+
const measuredSafeArea = readBottomDockSafeArea(bottomDock);
|
|
39037
|
+
const nextSafeArea = {
|
|
39038
|
+
bottomDock,
|
|
39039
|
+
revision: bottomDockStoreRevision,
|
|
39040
|
+
...measuredSafeArea
|
|
39041
|
+
};
|
|
39042
|
+
bottomDockSafeAreaRef.current = nextSafeArea;
|
|
39043
|
+
writeBottomDockSafeArea(timeline, nextSafeArea);
|
|
39044
|
+
};
|
|
39045
|
+
const syncConversationBottomLock = () => {
|
|
39046
|
+
const scheduledConversationId = resolveBottomLockConversation();
|
|
39047
|
+
if (!scheduledConversationId) {
|
|
39307
39048
|
return;
|
|
39308
39049
|
}
|
|
39309
39050
|
if (animationFrameId !== null) {
|
|
@@ -39311,20 +39052,14 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39311
39052
|
}
|
|
39312
39053
|
animationFrameId = window.requestAnimationFrame(() => {
|
|
39313
39054
|
animationFrameId = null;
|
|
39314
|
-
|
|
39315
|
-
if (!latestAnchor || latestAnchor.conversationId !== activeConversationId) {
|
|
39316
|
-
return;
|
|
39317
|
-
}
|
|
39318
|
-
const latestDistanceFromBottom = latestAnchor.scrollHeight - latestAnchor.scrollTop - latestAnchor.clientHeight;
|
|
39319
|
-
const latestBottomLocked = bottomLockOwnerRef.current === activeConversationId;
|
|
39320
|
-
if (!latestBottomLocked && latestDistanceFromBottom > AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX) {
|
|
39055
|
+
if (resolveBottomLockConversation() !== scheduledConversationId || timelineRef.current !== timeline) {
|
|
39321
39056
|
return;
|
|
39322
39057
|
}
|
|
39323
39058
|
const geometry = readTimelineGeometry(timeline);
|
|
39324
39059
|
const maxScrollTop = geometry.maxScrollTop;
|
|
39325
39060
|
timeline.scrollTop = maxScrollTop;
|
|
39326
39061
|
timelineScrollAnchorRef.current = {
|
|
39327
|
-
conversationId:
|
|
39062
|
+
conversationId: scheduledConversationId,
|
|
39328
39063
|
scrollHeight: geometry.scrollHeight,
|
|
39329
39064
|
scrollTop: maxScrollTop,
|
|
39330
39065
|
clientHeight: geometry.clientHeight
|
|
@@ -39335,7 +39070,8 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39335
39070
|
setIsTimelineScrolledToBottom(true);
|
|
39336
39071
|
});
|
|
39337
39072
|
};
|
|
39338
|
-
|
|
39073
|
+
syncBottomDockSafeArea(false);
|
|
39074
|
+
syncConversationBottomLock();
|
|
39339
39075
|
if (typeof ResizeObserver === "undefined") {
|
|
39340
39076
|
return () => {
|
|
39341
39077
|
timeline.style.removeProperty("--agent-gui-bottom-dock-safe-area");
|
|
@@ -39347,7 +39083,10 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39347
39083
|
}
|
|
39348
39084
|
};
|
|
39349
39085
|
}
|
|
39350
|
-
const observer = new ResizeObserver(
|
|
39086
|
+
const observer = new ResizeObserver(() => {
|
|
39087
|
+
syncBottomDockSafeArea(true);
|
|
39088
|
+
syncConversationBottomLock();
|
|
39089
|
+
});
|
|
39351
39090
|
observer.observe(bottomDock);
|
|
39352
39091
|
const promptInputArea = bottomDock.querySelector(
|
|
39353
39092
|
".agent-gui-node__composer-prompt-input-area"
|
|
@@ -39365,11 +39104,7 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39365
39104
|
}
|
|
39366
39105
|
observer.disconnect();
|
|
39367
39106
|
};
|
|
39368
|
-
}, [
|
|
39369
|
-
bottomDockStoreRevision,
|
|
39370
|
-
timelineConversationId,
|
|
39371
|
-
viewModel.rail.activeConversationId
|
|
39372
|
-
]);
|
|
39107
|
+
}, [bottomDockStoreRevision, hasTimelineConversation]);
|
|
39373
39108
|
useEffect33(() => {
|
|
39374
39109
|
const timeline = timelineRef.current;
|
|
39375
39110
|
const timelineContent = timelineContentRef.current;
|
|
@@ -39377,8 +39112,10 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39377
39112
|
if (!timeline || !activeConversationId) {
|
|
39378
39113
|
return;
|
|
39379
39114
|
}
|
|
39380
|
-
const loadOlderMessagesNearTop = (scrollTop, scrollHeight) => {
|
|
39381
|
-
|
|
39115
|
+
const loadOlderMessagesNearTop = (scrollTop, scrollHeight, clientHeight) => {
|
|
39116
|
+
const bottomLocked = bottomLockOwnerRef.current === activeConversationId;
|
|
39117
|
+
const needsMoreContentToFillViewport = scrollHeight <= clientHeight;
|
|
39118
|
+
if (activeConversationId === viewModel.rail.activeConversationId && viewModel.detail.hasOlderMessages && !viewModel.detail.isLoadingOlderMessages && !showTimelineSkeleton && (!bottomLocked || needsMoreContentToFillViewport) && scrollTop <= AGENT_GUI_TOP_HISTORY_PREFETCH_THRESHOLD_PX) {
|
|
39382
39119
|
pendingPrependScrollAnchorRef.current = {
|
|
39383
39120
|
conversationId: activeConversationId,
|
|
39384
39121
|
scrollHeight,
|
|
@@ -39392,13 +39129,22 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39392
39129
|
if (!previousAnchor || previousAnchor.conversationId !== activeConversationId) {
|
|
39393
39130
|
return;
|
|
39394
39131
|
}
|
|
39395
|
-
|
|
39396
|
-
const
|
|
39132
|
+
let scrollTop = timeline.scrollTop;
|
|
39133
|
+
const pointerDrivenScrollAway = pointerScrollConversationRef.current === activeConversationId && scrollTop < previousAnchor.scrollTop - 1;
|
|
39397
39134
|
const explicitUserScrollAway = userScrollAwayIntentConversationRef.current === activeConversationId;
|
|
39398
|
-
if (explicitUserScrollAway ||
|
|
39135
|
+
if (explicitUserScrollAway || pointerDrivenScrollAway) {
|
|
39399
39136
|
bottomLockOwnerRef.current = null;
|
|
39400
39137
|
userScrollAwayIntentConversationRef.current = null;
|
|
39401
39138
|
}
|
|
39139
|
+
const bottomLocked = bottomLockOwnerRef.current === activeConversationId;
|
|
39140
|
+
const anchoredMaxScrollTop = Math.max(
|
|
39141
|
+
0,
|
|
39142
|
+
previousAnchor.scrollHeight - previousAnchor.clientHeight
|
|
39143
|
+
);
|
|
39144
|
+
if (bottomLocked && anchoredMaxScrollTop - scrollTop > AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX) {
|
|
39145
|
+
setTimelineScrollTopInstantly(timeline, anchoredMaxScrollTop);
|
|
39146
|
+
scrollTop = anchoredMaxScrollTop;
|
|
39147
|
+
}
|
|
39402
39148
|
timelineScrollAnchorRef.current = {
|
|
39403
39149
|
conversationId: activeConversationId,
|
|
39404
39150
|
scrollHeight: previousAnchor.scrollHeight,
|
|
@@ -39414,7 +39160,11 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39414
39160
|
scrollTop <= AGENT_GUI_TOP_MASK_SCROLL_EPSILON_PX
|
|
39415
39161
|
);
|
|
39416
39162
|
setIsTimelineScrolledToBottom(effectiveAtBottom);
|
|
39417
|
-
loadOlderMessagesNearTop(
|
|
39163
|
+
loadOlderMessagesNearTop(
|
|
39164
|
+
scrollTop,
|
|
39165
|
+
previousAnchor.scrollHeight,
|
|
39166
|
+
previousAnchor.clientHeight
|
|
39167
|
+
);
|
|
39418
39168
|
};
|
|
39419
39169
|
const syncObservedTimelineGeometry = () => {
|
|
39420
39170
|
const anchor = timelineScrollAnchorRef.current;
|
|
@@ -39454,16 +39204,38 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39454
39204
|
userScrollAwayIntentConversationRef.current = activeConversationId;
|
|
39455
39205
|
}
|
|
39456
39206
|
};
|
|
39207
|
+
const captureSemanticScrollAwayIntent = (event) => {
|
|
39208
|
+
if (event.target instanceof Element && event.target.closest("[data-agent-transcript-scroll-away-intent]")) {
|
|
39209
|
+
userScrollAwayIntentConversationRef.current = activeConversationId;
|
|
39210
|
+
}
|
|
39211
|
+
};
|
|
39212
|
+
const capturePointerIntent = () => {
|
|
39213
|
+
pointerScrollConversationRef.current = activeConversationId;
|
|
39214
|
+
};
|
|
39215
|
+
const clearPointerIntent = () => {
|
|
39216
|
+
if (pointerScrollConversationRef.current === activeConversationId) {
|
|
39217
|
+
pointerScrollConversationRef.current = null;
|
|
39218
|
+
}
|
|
39219
|
+
};
|
|
39457
39220
|
const initialAnchor = timelineScrollAnchorRef.current;
|
|
39458
39221
|
if (initialAnchor?.conversationId === activeConversationId) {
|
|
39459
39222
|
loadOlderMessagesNearTop(
|
|
39460
39223
|
initialAnchor.scrollTop,
|
|
39461
|
-
initialAnchor.scrollHeight
|
|
39224
|
+
initialAnchor.scrollHeight,
|
|
39225
|
+
initialAnchor.clientHeight
|
|
39462
39226
|
);
|
|
39463
39227
|
}
|
|
39464
39228
|
timeline.addEventListener("scroll", captureScrollAnchor, { passive: true });
|
|
39465
39229
|
timeline.addEventListener("wheel", captureWheelIntent, { passive: true });
|
|
39466
39230
|
timeline.addEventListener("keydown", captureKeyboardIntent);
|
|
39231
|
+
timeline.addEventListener("click", captureSemanticScrollAwayIntent);
|
|
39232
|
+
timeline.addEventListener("pointerdown", capturePointerIntent, {
|
|
39233
|
+
passive: true
|
|
39234
|
+
});
|
|
39235
|
+
window.addEventListener("pointerup", clearPointerIntent, { passive: true });
|
|
39236
|
+
window.addEventListener("pointercancel", clearPointerIntent, {
|
|
39237
|
+
passive: true
|
|
39238
|
+
});
|
|
39467
39239
|
const geometryObserver = timelineContent && typeof ResizeObserver !== "undefined" ? new ResizeObserver(syncObservedTimelineGeometry) : null;
|
|
39468
39240
|
geometryObserver?.observe(timeline);
|
|
39469
39241
|
if (timelineContent) {
|
|
@@ -39474,10 +39246,15 @@ function useAgentGUIDetailScroll(input) {
|
|
|
39474
39246
|
timeline.removeEventListener("scroll", captureScrollAnchor);
|
|
39475
39247
|
timeline.removeEventListener("wheel", captureWheelIntent);
|
|
39476
39248
|
timeline.removeEventListener("keydown", captureKeyboardIntent);
|
|
39249
|
+
timeline.removeEventListener("click", captureSemanticScrollAwayIntent);
|
|
39250
|
+
timeline.removeEventListener("pointerdown", capturePointerIntent);
|
|
39251
|
+
window.removeEventListener("pointerup", clearPointerIntent);
|
|
39252
|
+
window.removeEventListener("pointercancel", clearPointerIntent);
|
|
39477
39253
|
};
|
|
39478
39254
|
}, [
|
|
39479
39255
|
actions,
|
|
39480
39256
|
timelineConversationId,
|
|
39257
|
+
showTimelineSkeleton,
|
|
39481
39258
|
viewModel.rail.activeConversationId,
|
|
39482
39259
|
viewModel.detail.hasOlderMessages,
|
|
39483
39260
|
viewModel.detail.isLoadingOlderMessages
|
|
@@ -39575,7 +39352,7 @@ function useAgentGUITimelineTransition(input) {
|
|
|
39575
39352
|
}
|
|
39576
39353
|
|
|
39577
39354
|
// agent-gui/agentGuiNode/view/useAgentGUIDetailModel.tsx
|
|
39578
|
-
import { Fragment as Fragment25, jsx as jsx80, jsxs as
|
|
39355
|
+
import { Fragment as Fragment25, jsx as jsx80, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
39579
39356
|
function resolveTuttiModeUpdateInlineNotice(input) {
|
|
39580
39357
|
if (input.status !== "failed" && input.status !== "uncertain") return null;
|
|
39581
39358
|
const localizedMessage = input.status === "failed" ? input.failedMessage : input.uncertainMessage;
|
|
@@ -39773,7 +39550,7 @@ function useAgentGUIDetailModel(input) {
|
|
|
39773
39550
|
]
|
|
39774
39551
|
);
|
|
39775
39552
|
const conversationFlowEmpty = useMemo43(
|
|
39776
|
-
() => showUnavailableChatEmpty ? /* @__PURE__ */
|
|
39553
|
+
() => showUnavailableChatEmpty ? /* @__PURE__ */ jsxs57(
|
|
39777
39554
|
"div",
|
|
39778
39555
|
{
|
|
39779
39556
|
className: AgentGUINode_styles_default.unavailableChatEmpty,
|
|
@@ -40230,7 +40007,6 @@ import { useState as useState47 } from "react";
|
|
|
40230
40007
|
function useAgentGUITuttiWorkflow(input) {
|
|
40231
40008
|
const {
|
|
40232
40009
|
viewModel,
|
|
40233
|
-
previewMode,
|
|
40234
40010
|
labels,
|
|
40235
40011
|
stableLinkAction,
|
|
40236
40012
|
setTuttiModeActive,
|
|
@@ -40239,7 +40015,7 @@ function useAgentGUITuttiWorkflow(input) {
|
|
|
40239
40015
|
submitPromptPassthrough
|
|
40240
40016
|
} = input;
|
|
40241
40017
|
const tuttiModePlanPanels = useTuttiModePlanPanels({
|
|
40242
|
-
enabled:
|
|
40018
|
+
enabled: true,
|
|
40243
40019
|
workspaceId: viewModel.shell.workspaceId,
|
|
40244
40020
|
sourceSessionId: viewModel.rail.activeConversationId,
|
|
40245
40021
|
decidedBy: viewModel.shell.currentUserId?.trim() || "local"
|
|
@@ -40450,7 +40226,7 @@ function useAgentGUITuttiWorkflow(input) {
|
|
|
40450
40226
|
}
|
|
40451
40227
|
|
|
40452
40228
|
// agent-gui/agentGuiNode/view/AgentGUIDetailPane.tsx
|
|
40453
|
-
import { Fragment as Fragment26, jsx as jsx81, jsxs as
|
|
40229
|
+
import { Fragment as Fragment26, jsx as jsx81, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
40454
40230
|
var EMPTY_WORKSPACE_APP_ICONS4 = [];
|
|
40455
40231
|
var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
40456
40232
|
shell,
|
|
@@ -40468,7 +40244,6 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
40468
40244
|
workspaceUserProjectI18n,
|
|
40469
40245
|
uiLanguage,
|
|
40470
40246
|
isActive,
|
|
40471
|
-
previewMode,
|
|
40472
40247
|
workspaceReferencePickerOpen,
|
|
40473
40248
|
composerFocusRequestSequence,
|
|
40474
40249
|
slashStatusLimits,
|
|
@@ -40651,7 +40426,6 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
40651
40426
|
const stableLinkAction = useOptionalStableEventCallback(onLinkAction);
|
|
40652
40427
|
const tuttiWorkflow = useAgentGUITuttiWorkflow({
|
|
40653
40428
|
viewModel,
|
|
40654
|
-
previewMode,
|
|
40655
40429
|
labels,
|
|
40656
40430
|
stableLinkAction,
|
|
40657
40431
|
setTuttiModeActive: actions.setTuttiModeActive,
|
|
@@ -40750,7 +40524,6 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
40750
40524
|
placeholder: viewModel.detail.hasSentUserMessage ? labels.followupPlaceholder : labels.initialPlaceholder,
|
|
40751
40525
|
showStopButton,
|
|
40752
40526
|
stopDisabled: stopDisabled || timelineInteractionLocked,
|
|
40753
|
-
previewMode,
|
|
40754
40527
|
workspaceReferencePickerOpen,
|
|
40755
40528
|
referenceProvenanceFilter,
|
|
40756
40529
|
// Plan decisions replace the composer; approval / ask-user embed here.
|
|
@@ -40835,7 +40608,6 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
40835
40608
|
onSlashStatusOpen,
|
|
40836
40609
|
onSlashStatusClose,
|
|
40837
40610
|
onSlashStatusRefresh,
|
|
40838
|
-
previewMode,
|
|
40839
40611
|
workspaceReferencePickerOpen,
|
|
40840
40612
|
composerActivePrompt,
|
|
40841
40613
|
editQueuedPrompt,
|
|
@@ -40964,7 +40736,6 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
40964
40736
|
onProviderSelect: canSwitchComposerProvider && viewModel.rail.activeConversationId === null ? selectHomeComposerAgentTargetAndFocus : void 0,
|
|
40965
40737
|
noticeChrome: homeNoticeChrome,
|
|
40966
40738
|
isRespondingApproval: isInteractionPending,
|
|
40967
|
-
previewMode,
|
|
40968
40739
|
onSubmitApprovalOption: submitApprovalOption,
|
|
40969
40740
|
onRetryActivation: retryActivation,
|
|
40970
40741
|
onAuthLogin: authLogin,
|
|
@@ -40978,7 +40749,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
40978
40749
|
onSelectSuggestionAction: handleHomeSuggestionAction
|
|
40979
40750
|
}
|
|
40980
40751
|
) : null;
|
|
40981
|
-
return /* @__PURE__ */
|
|
40752
|
+
return /* @__PURE__ */ jsxs58(
|
|
40982
40753
|
"main",
|
|
40983
40754
|
{
|
|
40984
40755
|
className: AgentGUINode_styles_default.detail,
|
|
@@ -41007,7 +40778,6 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
41007
40778
|
labels,
|
|
41008
40779
|
onAuthLogin: authLogin,
|
|
41009
40780
|
onLinkAction: stableLinkAction,
|
|
41010
|
-
previewMode,
|
|
41011
40781
|
showTimelineSkeleton,
|
|
41012
40782
|
showUnavailableChatEmpty,
|
|
41013
40783
|
timelineContentRef,
|
|
@@ -41054,7 +40824,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
41054
40824
|
// agent-gui/agentGuiNode/view/AgentGUIRenameConversationDialog.tsx
|
|
41055
40825
|
import { memo as memo13, useCallback as useCallback61, useEffect as useEffect35, useRef as useRef54, useState as useState49 } from "react";
|
|
41056
40826
|
import { ConfirmationDialog as ConfirmationDialog4, Input as Input4 } from "@tutti-os/ui-system";
|
|
41057
|
-
import { jsx as jsx82, jsxs as
|
|
40827
|
+
import { jsx as jsx82, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
41058
40828
|
var AgentGUIRenameConversationDialog = memo13(
|
|
41059
40829
|
function AgentGUIRenameConversationDialog2({
|
|
41060
40830
|
conversation,
|
|
@@ -41119,7 +40889,7 @@ var AgentGUIRenameConversationDialog = memo13(
|
|
|
41119
40889
|
confirmDisabled: !trimmedTitle,
|
|
41120
40890
|
confirmLabel: labels.renameSessionSave,
|
|
41121
40891
|
description: labels.renameSessionDescription,
|
|
41122
|
-
footer: /* @__PURE__ */
|
|
40892
|
+
footer: /* @__PURE__ */ jsxs59("div", { className: "flex justify-end gap-2", children: [
|
|
41123
40893
|
/* @__PURE__ */ jsx82(
|
|
41124
40894
|
Button,
|
|
41125
40895
|
{
|
|
@@ -41293,7 +41063,7 @@ function AgentGUIReferencePickerSurface({
|
|
|
41293
41063
|
|
|
41294
41064
|
// agent-gui/agentGuiNode/view/AgentTargetSetupRoot.tsx
|
|
41295
41065
|
import { useCallback as useCallback62, useMemo as useMemo45 } from "react";
|
|
41296
|
-
import { jsx as jsx84, jsxs as
|
|
41066
|
+
import { jsx as jsx84, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
41297
41067
|
function useAgentTargetSetupRoot(input) {
|
|
41298
41068
|
const { preferences } = useAgentGUIProviderRailPreferences();
|
|
41299
41069
|
const homeTargetProjection = useMemo45(
|
|
@@ -41337,7 +41107,7 @@ function AgentTargetSetupRoot({
|
|
|
41337
41107
|
controller,
|
|
41338
41108
|
openEnvironmentSetup
|
|
41339
41109
|
}) {
|
|
41340
|
-
return /* @__PURE__ */ jsx84(AgentEnvPanelActionProvider, { openPanel: openEnvironmentSetup, children: /* @__PURE__ */
|
|
41110
|
+
return /* @__PURE__ */ jsx84(AgentEnvPanelActionProvider, { openPanel: openEnvironmentSetup, children: /* @__PURE__ */ jsxs60(AgentTargetSetupControllerProvider, { controller, children: [
|
|
41341
41111
|
children,
|
|
41342
41112
|
/* @__PURE__ */ jsx84(
|
|
41343
41113
|
AgentTargetSetupGate,
|
|
@@ -41356,7 +41126,6 @@ import { createRichTextMentionHref } from "@tutti-os/ui-rich-text/core";
|
|
|
41356
41126
|
function useAgentGUIWorkspaceReferencePicker(input) {
|
|
41357
41127
|
const {
|
|
41358
41128
|
onWorkspaceFileReferencesAdded,
|
|
41359
|
-
previewMode,
|
|
41360
41129
|
projectDirectorySourceAggregator,
|
|
41361
41130
|
referenceSourceAggregator,
|
|
41362
41131
|
resolveMentionReferenceTarget,
|
|
@@ -41386,9 +41155,6 @@ function useAgentGUIWorkspaceReferencePicker(input) {
|
|
|
41386
41155
|
);
|
|
41387
41156
|
const requestWorkspaceReferences = useCallback63(
|
|
41388
41157
|
async (entity) => {
|
|
41389
|
-
if (previewMode) {
|
|
41390
|
-
return emptyReferencePickResult;
|
|
41391
|
-
}
|
|
41392
41158
|
if (!workspaceFileReferenceAdapter && !referenceSourceAggregator) {
|
|
41393
41159
|
return emptyReferencePickResult;
|
|
41394
41160
|
}
|
|
@@ -41409,7 +41175,6 @@ function useAgentGUIWorkspaceReferencePicker(input) {
|
|
|
41409
41175
|
},
|
|
41410
41176
|
[
|
|
41411
41177
|
emptyReferencePickResult,
|
|
41412
|
-
previewMode,
|
|
41413
41178
|
referenceSourceAggregator,
|
|
41414
41179
|
resolveMentionReferenceTarget,
|
|
41415
41180
|
resolveWorkspaceReferenceInitialTarget,
|
|
@@ -41421,7 +41186,7 @@ function useAgentGUIWorkspaceReferencePicker(input) {
|
|
|
41421
41186
|
]
|
|
41422
41187
|
);
|
|
41423
41188
|
const requestProjectDirectory = useCallback63(async () => {
|
|
41424
|
-
if (
|
|
41189
|
+
if (!projectDirectorySourceAggregator) {
|
|
41425
41190
|
return null;
|
|
41426
41191
|
}
|
|
41427
41192
|
setWorkspaceReferencePickerTarget(null);
|
|
@@ -41433,7 +41198,7 @@ function useAgentGUIWorkspaceReferencePicker(input) {
|
|
|
41433
41198
|
projectDirectoryPickerResolverRef.current?.(null);
|
|
41434
41199
|
projectDirectoryPickerResolverRef.current = resolve;
|
|
41435
41200
|
});
|
|
41436
|
-
}, [emptyReferencePickResult,
|
|
41201
|
+
}, [emptyReferencePickResult, projectDirectorySourceAggregator]);
|
|
41437
41202
|
const closeWorkspaceReferencePicker = useCallback63(() => {
|
|
41438
41203
|
workspaceReferencePickerResolverRef.current?.(emptyReferencePickResult);
|
|
41439
41204
|
workspaceReferencePickerResolverRef.current = null;
|
|
@@ -41677,7 +41442,7 @@ var AgentGUIPanelEngagementController = class {
|
|
|
41677
41442
|
}
|
|
41678
41443
|
isExposureEligible() {
|
|
41679
41444
|
const input = this.options.getInput();
|
|
41680
|
-
return Boolean(input.onEvent) &&
|
|
41445
|
+
return Boolean(input.onEvent) && input.contextKey === this.options.visitContextKey && input.isActive && input.isVisible && this.documentFocused && this.documentVisible && this.intersectionRatio >= AGENT_GUI_PANEL_EXPOSURE_INTERSECTION_RATIO;
|
|
41681
41446
|
}
|
|
41682
41447
|
eventForVisit(visit, type) {
|
|
41683
41448
|
return {
|
|
@@ -41726,7 +41491,7 @@ function useAgentGUIPanelEngagement(input) {
|
|
|
41726
41491
|
}
|
|
41727
41492
|
};
|
|
41728
41493
|
}
|
|
41729
|
-
const engagementEnabled = Boolean(input.onEvent)
|
|
41494
|
+
const engagementEnabled = Boolean(input.onEvent);
|
|
41730
41495
|
useEffect36(() => {
|
|
41731
41496
|
const element = input.elementRef.current;
|
|
41732
41497
|
if (!engagementEnabled || !element) return void 0;
|
|
@@ -41765,8 +41530,7 @@ function useAgentGUINodeEngagement(input) {
|
|
|
41765
41530
|
elementRef: layoutElementRef,
|
|
41766
41531
|
isActive: input.isActive,
|
|
41767
41532
|
isVisible: input.isVisible,
|
|
41768
|
-
onEvent: input.onEvent
|
|
41769
|
-
previewMode: input.previewMode
|
|
41533
|
+
onEvent: input.onEvent
|
|
41770
41534
|
}),
|
|
41771
41535
|
layoutElementRef
|
|
41772
41536
|
};
|
|
@@ -41778,7 +41542,6 @@ function useAgentGUIConversationRailResizePointerMove({
|
|
|
41778
41542
|
clampConversationRailWidth,
|
|
41779
41543
|
layoutElementRef,
|
|
41780
41544
|
onConversationRailLayoutChange,
|
|
41781
|
-
previewMode,
|
|
41782
41545
|
providerRailWidthPx,
|
|
41783
41546
|
railResizeInteractionRef
|
|
41784
41547
|
}) {
|
|
@@ -41787,7 +41550,6 @@ function useAgentGUIConversationRailResizePointerMove({
|
|
|
41787
41550
|
);
|
|
41788
41551
|
return useCallback64(
|
|
41789
41552
|
(event) => {
|
|
41790
|
-
if (previewMode) return;
|
|
41791
41553
|
const resizeState = railResizeInteractionRef.current;
|
|
41792
41554
|
if (!resizeState || resizeState.pointerId !== event.pointerId) return;
|
|
41793
41555
|
const nextWidthPx = clampConversationRailWidth(
|
|
@@ -41810,7 +41572,6 @@ function useAgentGUIConversationRailResizePointerMove({
|
|
|
41810
41572
|
[
|
|
41811
41573
|
clampConversationRailWidth,
|
|
41812
41574
|
layoutElementRef,
|
|
41813
|
-
previewMode,
|
|
41814
41575
|
providerRailWidthPx,
|
|
41815
41576
|
railResizeInteractionRef,
|
|
41816
41577
|
reportConversationRailLayoutChange
|
|
@@ -41837,7 +41598,6 @@ function useAgentGUIExternalRequests(input) {
|
|
|
41837
41598
|
createConversationDisabled,
|
|
41838
41599
|
labels,
|
|
41839
41600
|
newConversationRequestSequence,
|
|
41840
|
-
previewMode,
|
|
41841
41601
|
requestCreateConversation,
|
|
41842
41602
|
requestRenameConversation,
|
|
41843
41603
|
sessionActionRequest,
|
|
@@ -41866,7 +41626,7 @@ function useAgentGUIExternalRequests(input) {
|
|
|
41866
41626
|
requestCreateConversation({ source: "external_request" });
|
|
41867
41627
|
}
|
|
41868
41628
|
}
|
|
41869
|
-
if (sessionActionRequest && handledSessionActionRequestSequenceRef.current !== sessionActionRequest.sequence
|
|
41629
|
+
if (sessionActionRequest && handledSessionActionRequestSequenceRef.current !== sessionActionRequest.sequence) {
|
|
41870
41630
|
handledSessionActionRequestSequenceRef.current = sessionActionRequest.sequence;
|
|
41871
41631
|
const conversation = resolveSessionActionConversation(
|
|
41872
41632
|
viewModel,
|
|
@@ -41891,7 +41651,6 @@ function useAgentGUIExternalRequests(input) {
|
|
|
41891
41651
|
createConversationDisabled,
|
|
41892
41652
|
labels,
|
|
41893
41653
|
newConversationRequestSequence,
|
|
41894
|
-
previewMode,
|
|
41895
41654
|
requestCreateConversation,
|
|
41896
41655
|
requestRenameConversation,
|
|
41897
41656
|
sessionActionRequest,
|
|
@@ -41902,7 +41661,7 @@ function useAgentGUIExternalRequests(input) {
|
|
|
41902
41661
|
}
|
|
41903
41662
|
|
|
41904
41663
|
// agent-gui/agentGuiNode/AgentGUINodeView.tsx
|
|
41905
|
-
import { jsx as jsx85, jsxs as
|
|
41664
|
+
import { jsx as jsx85, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
41906
41665
|
function AgentGUINodeView({
|
|
41907
41666
|
viewModel,
|
|
41908
41667
|
referenceProvenanceFilter = null,
|
|
@@ -41938,7 +41697,6 @@ function AgentGUINodeView({
|
|
|
41938
41697
|
onSlashStatusOpen,
|
|
41939
41698
|
onSlashStatusClose,
|
|
41940
41699
|
onSlashStatusRefresh,
|
|
41941
|
-
previewMode = false,
|
|
41942
41700
|
onAgentProviderLogin,
|
|
41943
41701
|
onAgentEnvPanelOpen,
|
|
41944
41702
|
actions,
|
|
@@ -41980,7 +41738,6 @@ function AgentGUINodeView({
|
|
|
41980
41738
|
isActive,
|
|
41981
41739
|
isVisible,
|
|
41982
41740
|
onEvent: onEngagementEvent,
|
|
41983
|
-
previewMode,
|
|
41984
41741
|
viewModel
|
|
41985
41742
|
});
|
|
41986
41743
|
const [providerManagerOpen, setProviderManagerOpen] = useState51(false);
|
|
@@ -42006,7 +41763,6 @@ function AgentGUINodeView({
|
|
|
42006
41763
|
workspaceReferencePickerTarget
|
|
42007
41764
|
} = useAgentGUIWorkspaceReferencePicker({
|
|
42008
41765
|
onWorkspaceFileReferencesAdded,
|
|
42009
|
-
previewMode,
|
|
42010
41766
|
projectDirectorySourceAggregator,
|
|
42011
41767
|
referenceSourceAggregator,
|
|
42012
41768
|
resolveMentionReferenceTarget,
|
|
@@ -42054,9 +41810,6 @@ function AgentGUINodeView({
|
|
|
42054
41810
|
}, []);
|
|
42055
41811
|
const requestCreateConversation = useStableEventCallback(
|
|
42056
41812
|
(options) => {
|
|
42057
|
-
if (previewMode) {
|
|
42058
|
-
return;
|
|
42059
|
-
}
|
|
42060
41813
|
const source = options?.source;
|
|
42061
41814
|
if (options && "projectPath" in options) {
|
|
42062
41815
|
createConversationAction(options);
|
|
@@ -42093,9 +41846,6 @@ function AgentGUINodeView({
|
|
|
42093
41846
|
const providerRailWidthPx = conversationRailCollapsed ? 0 : 52;
|
|
42094
41847
|
const handleConversationRailResizePointerDown = useCallback66(
|
|
42095
41848
|
(event) => {
|
|
42096
|
-
if (previewMode) {
|
|
42097
|
-
return;
|
|
42098
|
-
}
|
|
42099
41849
|
if (conversationRailCollapsed || event.button !== 0) {
|
|
42100
41850
|
return;
|
|
42101
41851
|
}
|
|
@@ -42110,13 +41860,12 @@ function AgentGUINodeView({
|
|
|
42110
41860
|
setRailResizeWidthPx(conversationRailWidthPx);
|
|
42111
41861
|
setIsRailResizing(true);
|
|
42112
41862
|
},
|
|
42113
|
-
[conversationRailCollapsed, conversationRailWidthPx
|
|
41863
|
+
[conversationRailCollapsed, conversationRailWidthPx]
|
|
42114
41864
|
);
|
|
42115
41865
|
const handleConversationRailResizePointerMove = useAgentGUIConversationRailResizePointerMove({
|
|
42116
41866
|
clampConversationRailWidth,
|
|
42117
41867
|
layoutElementRef,
|
|
42118
41868
|
onConversationRailLayoutChange,
|
|
42119
|
-
previewMode,
|
|
42120
41869
|
providerRailWidthPx,
|
|
42121
41870
|
railResizeInteractionRef
|
|
42122
41871
|
});
|
|
@@ -42153,9 +41902,6 @@ function AgentGUINodeView({
|
|
|
42153
41902
|
]);
|
|
42154
41903
|
const handleConversationRailResizeKeyDown = useCallback66(
|
|
42155
41904
|
(event) => {
|
|
42156
|
-
if (previewMode) {
|
|
42157
|
-
return;
|
|
42158
|
-
}
|
|
42159
41905
|
if (conversationRailCollapsed) {
|
|
42160
41906
|
return;
|
|
42161
41907
|
}
|
|
@@ -42173,8 +41919,7 @@ function AgentGUINodeView({
|
|
|
42173
41919
|
clampConversationRailWidth,
|
|
42174
41920
|
conversationRailCollapsed,
|
|
42175
41921
|
conversationRailWidthPx,
|
|
42176
|
-
onConversationRailWidthChanged
|
|
42177
|
-
previewMode
|
|
41922
|
+
onConversationRailWidthChanged
|
|
42178
41923
|
]
|
|
42179
41924
|
);
|
|
42180
41925
|
const visualConversationRailWidthPx = isRailResizing ? railResizeInteractionRef.current?.lastWidthPx ?? conversationRailWidthPx : railResizeWidthPx ?? conversationRailWidthPx;
|
|
@@ -42237,7 +41982,6 @@ function AgentGUINodeView({
|
|
|
42237
41982
|
createConversationDisabled,
|
|
42238
41983
|
labels,
|
|
42239
41984
|
newConversationRequestSequence,
|
|
42240
|
-
previewMode,
|
|
42241
41985
|
requestCreateConversation,
|
|
42242
41986
|
requestRenameConversation,
|
|
42243
41987
|
sessionActionRequest,
|
|
@@ -42257,7 +42001,6 @@ function AgentGUINodeView({
|
|
|
42257
42001
|
labels: conversationRailLabels,
|
|
42258
42002
|
workspaceUserProjectI18n,
|
|
42259
42003
|
uiLanguage,
|
|
42260
|
-
previewMode,
|
|
42261
42004
|
createConversationDisabled,
|
|
42262
42005
|
isCollapsed: conversationRailCollapsed,
|
|
42263
42006
|
agentTargets: viewModel.rail.agentTargets,
|
|
@@ -42295,7 +42038,6 @@ function AgentGUINodeView({
|
|
|
42295
42038
|
openProjectFiles,
|
|
42296
42039
|
actions.markConversationUnread,
|
|
42297
42040
|
actions.updateConversationFilter,
|
|
42298
|
-
previewMode,
|
|
42299
42041
|
removeProject,
|
|
42300
42042
|
moveProject,
|
|
42301
42043
|
toggleProjectPinned,
|
|
@@ -42331,23 +42073,21 @@ function AgentGUINodeView({
|
|
|
42331
42073
|
}),
|
|
42332
42074
|
[targetPresentationKey, viewModel.shell.workspaceId]
|
|
42333
42075
|
);
|
|
42334
|
-
const content = /* @__PURE__ */ jsx85(AgentTargetPresentationProvider, { agentTargets: agentTargetPresentations, children: /* @__PURE__ */
|
|
42076
|
+
const content = /* @__PURE__ */ jsx85(AgentTargetPresentationProvider, { agentTargets: agentTargetPresentations, children: /* @__PURE__ */ jsxs61(
|
|
42335
42077
|
AgentTargetSetupRoot,
|
|
42336
42078
|
{
|
|
42337
42079
|
controller: targetSetupController,
|
|
42338
42080
|
openEnvironmentSetup: onAgentEnvPanelOpen,
|
|
42339
42081
|
children: [
|
|
42340
|
-
/* @__PURE__ */
|
|
42082
|
+
/* @__PURE__ */ jsxs61(
|
|
42341
42083
|
"div",
|
|
42342
42084
|
{
|
|
42343
42085
|
ref: layoutElementRef,
|
|
42344
42086
|
className: AgentGUINode_styles_default.layout,
|
|
42345
|
-
"data-agent-gui-preview": previewMode ? "true" : void 0,
|
|
42346
42087
|
"data-rail-resizing": isRailResizing ? "true" : void 0,
|
|
42347
|
-
inert: previewMode ? true : void 0,
|
|
42348
42088
|
style: layoutStyle,
|
|
42349
42089
|
children: [
|
|
42350
|
-
/* @__PURE__ */
|
|
42090
|
+
/* @__PURE__ */ jsxs61(
|
|
42351
42091
|
"aside",
|
|
42352
42092
|
{
|
|
42353
42093
|
className: `${AgentGUINode_styles_default.providerRailPanel} nodrag tsh-desktop-no-drag`,
|
|
@@ -42363,7 +42103,6 @@ function AgentGUINodeView({
|
|
|
42363
42103
|
conversationFilter: viewModel.rail.conversationFilter,
|
|
42364
42104
|
conversations: viewModel.rail.conversations,
|
|
42365
42105
|
labels,
|
|
42366
|
-
previewMode,
|
|
42367
42106
|
selectedAgentTarget: viewModel.rail.selectedAgentTarget,
|
|
42368
42107
|
agentTargets: viewModel.rail.agentTargets,
|
|
42369
42108
|
agentTargetsLoading: viewModel.rail.agentTargetsLoading,
|
|
@@ -42400,7 +42139,6 @@ function AgentGUINodeView({
|
|
|
42400
42139
|
{
|
|
42401
42140
|
environmentSetupVisible,
|
|
42402
42141
|
labels,
|
|
42403
|
-
previewMode,
|
|
42404
42142
|
providerScopedActionsVisible: viewModel.rail.conversationFilter.kind !== "all",
|
|
42405
42143
|
slashStatusLimits: effectiveRailSlashStatusLimits,
|
|
42406
42144
|
slashStatusLimitsLoading,
|
|
@@ -42507,8 +42245,7 @@ function AgentGUINodeView({
|
|
|
42507
42245
|
onRequestComposerFocus: requestComposerFocus,
|
|
42508
42246
|
workspaceAppIcons: effectiveWorkspaceAppIcons,
|
|
42509
42247
|
workspaceUserProjectI18n,
|
|
42510
|
-
renderProviderUnavailableState
|
|
42511
|
-
previewMode
|
|
42248
|
+
renderProviderUnavailableState
|
|
42512
42249
|
}
|
|
42513
42250
|
) })
|
|
42514
42251
|
]
|
|
@@ -42552,7 +42289,7 @@ function AgentGUINodeView({
|
|
|
42552
42289
|
]
|
|
42553
42290
|
}
|
|
42554
42291
|
) });
|
|
42555
|
-
return
|
|
42292
|
+
return /* @__PURE__ */ jsx85(TooltipProvider7, { children: content });
|
|
42556
42293
|
}
|
|
42557
42294
|
|
|
42558
42295
|
// agent-gui/workspaceDesktop/view/AgentProbeInfoPopover.tsx
|
|
@@ -42565,7 +42302,7 @@ import {
|
|
|
42565
42302
|
useState as useState52
|
|
42566
42303
|
} from "react";
|
|
42567
42304
|
import { createPortal as createPortal5 } from "react-dom";
|
|
42568
|
-
import { Fragment as Fragment27, jsx as jsx86, jsxs as
|
|
42305
|
+
import { Fragment as Fragment27, jsx as jsx86, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
42569
42306
|
var POPOVER_MIN_VIEWPORT_INSET_PX = 16;
|
|
42570
42307
|
var POPOVER_DEFAULT_WIDTH_PX = 260;
|
|
42571
42308
|
function dockAgentProbeLineKey(line) {
|
|
@@ -42575,9 +42312,9 @@ function renderDockAgentProbeLine(line) {
|
|
|
42575
42312
|
if (typeof line === "string") {
|
|
42576
42313
|
return line;
|
|
42577
42314
|
}
|
|
42578
|
-
return /* @__PURE__ */
|
|
42315
|
+
return /* @__PURE__ */ jsxs62(Fragment27, { children: [
|
|
42579
42316
|
line.primary,
|
|
42580
|
-
line.secondary ? /* @__PURE__ */
|
|
42317
|
+
line.secondary ? /* @__PURE__ */ jsxs62(Fragment27, { children: [
|
|
42581
42318
|
" ",
|
|
42582
42319
|
/* @__PURE__ */ jsx86("span", { className: "desktop-dock-popup__agent-status-secondary", children: line.secondary })
|
|
42583
42320
|
] }) : null
|
|
@@ -42684,7 +42421,7 @@ function AgentProbeInfoPopover({
|
|
|
42684
42421
|
children: /* @__PURE__ */ jsx86("ul", { className: "desktop-dock-popup__agent-info-list", children: lines.map((line) => {
|
|
42685
42422
|
const label = getDockAgentProbeLineLabel(line);
|
|
42686
42423
|
const valueText = formatDockAgentProbeLineText(line);
|
|
42687
|
-
return /* @__PURE__ */
|
|
42424
|
+
return /* @__PURE__ */ jsxs62(
|
|
42688
42425
|
"li",
|
|
42689
42426
|
{
|
|
42690
42427
|
className: "desktop-dock-popup__agent-info-item",
|
|
@@ -42706,7 +42443,7 @@ function AgentProbeInfoPopover({
|
|
|
42706
42443
|
}) })
|
|
42707
42444
|
}
|
|
42708
42445
|
);
|
|
42709
|
-
return /* @__PURE__ */
|
|
42446
|
+
return /* @__PURE__ */ jsxs62(
|
|
42710
42447
|
"div",
|
|
42711
42448
|
{
|
|
42712
42449
|
ref: anchorRef,
|
|
@@ -42815,7 +42552,7 @@ function areAgentGUINodePropsEqual(previous, next) {
|
|
|
42815
42552
|
const pc = previous.hostCapabilities, nc = next.hostCapabilities;
|
|
42816
42553
|
const pa = previous.hostActions, na = next.hostActions;
|
|
42817
42554
|
const ps = previous.renderSlots, ns = next.renderSlots;
|
|
42818
|
-
return pi.nodeId === ni.nodeId && pi.workspaceId === ni.workspaceId && pi.currentUserId === ni.currentUserId && pi.title === ni.title && pw.path === nw.path && pw.fileReferenceAdapter === nw.fileReferenceAdapter && pw.onRequestGitBranches === nw.onRequestGitBranches && pw.selectProjectDirectory === nw.selectProjectDirectory && pw.resolveExternalPromptEntries === nw.resolveExternalPromptEntries && pw.prepareExternalPromptFiles === nw.prepareExternalPromptFiles && pw.promptAssetLimit === nw.promptAssetLimit && pw.projectDirectorySourceAggregator === nw.projectDirectorySourceAggregator && pw.referenceSourceAggregator === nw.referenceSourceAggregator && pw.resolveReferenceContentErrorAction === nw.resolveReferenceContentErrorAction && pw.resolveReferenceEntryIconUrl === nw.resolveReferenceEntryIconUrl && pw.resolveMentionReferenceTarget === nw.resolveMentionReferenceTarget && pw.resolveReferenceInitialTarget === nw.resolveReferenceInitialTarget && pw.onFileReferencesAdded === nw.onFileReferencesAdded && pw.agentSettings.avoidGroupingEdits === nw.agentSettings.avoidGroupingEdits && pc.referenceProvenanceFilterCatalog === nc.referenceProvenanceFilterCatalog && pc.referenceProvenanceFilterEnabled === nc.referenceProvenanceFilterEnabled && agentGuiStateEquals(previous.state, next.state) && pf.position.x === nf.position.x && pf.position.y === nf.position.y && pf.width === nf.width && pf.height === nf.height && pf.desktopSize.width === nf.desktopSize.width && pf.desktopSize.height === nf.desktopSize.height && pf.isMaximized === nf.isMaximized && pf.isActive === nf.isActive && pf.isVisible === nf.isVisible && pf.embedded === nf.embedded && pf.
|
|
42555
|
+
return pi.nodeId === ni.nodeId && pi.workspaceId === ni.workspaceId && pi.currentUserId === ni.currentUserId && pi.title === ni.title && pw.path === nw.path && pw.fileReferenceAdapter === nw.fileReferenceAdapter && pw.onRequestGitBranches === nw.onRequestGitBranches && pw.selectProjectDirectory === nw.selectProjectDirectory && pw.resolveExternalPromptEntries === nw.resolveExternalPromptEntries && pw.prepareExternalPromptFiles === nw.prepareExternalPromptFiles && pw.promptAssetLimit === nw.promptAssetLimit && pw.projectDirectorySourceAggregator === nw.projectDirectorySourceAggregator && pw.referenceSourceAggregator === nw.referenceSourceAggregator && pw.resolveReferenceContentErrorAction === nw.resolveReferenceContentErrorAction && pw.resolveReferenceEntryIconUrl === nw.resolveReferenceEntryIconUrl && pw.resolveMentionReferenceTarget === nw.resolveMentionReferenceTarget && pw.resolveReferenceInitialTarget === nw.resolveReferenceInitialTarget && pw.onFileReferencesAdded === nw.onFileReferencesAdded && pw.agentSettings.avoidGroupingEdits === nw.agentSettings.avoidGroupingEdits && pc.referenceProvenanceFilterCatalog === nc.referenceProvenanceFilterCatalog && pc.referenceProvenanceFilterEnabled === nc.referenceProvenanceFilterEnabled && agentGuiStateEquals(previous.state, next.state) && pf.position.x === nf.position.x && pf.position.y === nf.position.y && pf.width === nf.width && pf.height === nf.height && pf.desktopSize.width === nf.desktopSize.width && pf.desktopSize.height === nf.desktopSize.height && pf.isMaximized === nf.isMaximized && pf.isActive === nf.isActive && pf.isVisible === nf.isVisible && pf.embedded === nf.embedded && pf.conversationRailAutoCollapseWidthPx === nf.conversationRailAutoCollapseWidthPx && pr.composerFocusSequence === nr.composerFocusSequence && pr.composerAppend === nr.composerAppend && pr.newConversationSequence === nr.newConversationSequence && pr.sessionAction === nr.sessionAction && pr.openSession === nr.openSession && pr.prefillPrompt === nr.prefillPrompt && pr.agentStatusController === nr.agentStatusController && pc.capabilityMenuState === nc.capabilityMenuState && pc.capabilityControlsReadOnly === nc.capabilityControlsReadOnly && pc.agentTargets === nc.agentTargets && pc.agentTargetsLoading === nc.agentTargetsLoading && pc.handoffAgentTargets === nc.handoffAgentTargets && pc.handoffAgentTargetsLoading === nc.handoffAgentTargetsLoading && pc.providerRailAllPresentation?.iconUrl === nc.providerRailAllPresentation?.iconUrl && pc.providerRailMode === nc.providerRailMode && pc.comingSoonProviders === nc.comingSoonProviders && pc.providerReadinessGates === nc.providerReadinessGates && pc.targetConnectionSource === nc.targetConnectionSource && pc.defaultAgentTargetId === nc.defaultAgentTargetId && pc.providerAuthAccountLabels === nc.providerAuthAccountLabels && pc.mentionService === nc.mentionService && pc.workspaceAppIcons === nc.workspaceAppIcons && pc.disabledHomeSuggestions === nc.disabledHomeSuggestions && pa.onLinkAction === na.onLinkAction && pa.onHandoffConversation === na.onHandoffConversation && pa.onCapabilitySettingsRequest === na.onCapabilitySettingsRequest && pa.onAgentProviderLogin === na.onAgentProviderLogin && pa.onAgentEnvPanelOpen === na.onAgentEnvPanelOpen && pa.onOpenConversationWindow === na.onOpenConversationWindow && pa.onClose === na.onClose && pa.onResize === na.onResize && pa.onUpdateNode === na.onUpdateNode && pa.onRememberComposerDefaults === na.onRememberComposerDefaults && pa.isMuted === na.isMuted && pa.onMinimize === na.onMinimize && pa.onToggleMaximize === na.onToggleMaximize && pa.onShowMessage === na.onShowMessage && pa.onEngagementEvent === na.onEngagementEvent && pa.onConversationRailLayoutChange === na.onConversationRailLayoutChange && ps.providerRailEmpty === ns.providerRailEmpty && ps.providerUnavailableState === ns.providerUnavailableState && ps.sidebarFooter === ns.sidebarFooter;
|
|
42819
42556
|
}
|
|
42820
42557
|
|
|
42821
42558
|
// agent-gui/agentGuiNode/AgentGUIMentionServiceBoundary.tsx
|
|
@@ -44007,7 +43744,7 @@ function useAgentGUIWorkspaceFileReferenceCopy(t) {
|
|
|
44007
43744
|
}
|
|
44008
43745
|
|
|
44009
43746
|
// agent-gui/agentGuiNode/AgentGUINode.tsx
|
|
44010
|
-
import { jsx as jsx88, jsxs as
|
|
43747
|
+
import { jsx as jsx88, jsxs as jsxs63 } from "react/jsx-runtime";
|
|
44011
43748
|
var DISABLED_REFERENCE_PROVENANCE_CATALOG = {
|
|
44012
43749
|
enabledDimensions: [],
|
|
44013
43750
|
agentOptions: [],
|
|
@@ -44051,7 +43788,6 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44051
43788
|
isActive,
|
|
44052
43789
|
isVisible = true,
|
|
44053
43790
|
embedded = false,
|
|
44054
|
-
previewMode = false,
|
|
44055
43791
|
conversationRailAutoCollapseWidthPx = null
|
|
44056
43792
|
} = frame;
|
|
44057
43793
|
const railAutoCollapseWidthPx = conversationRailAutoCollapseWidthPx ?? void 0;
|
|
@@ -44153,18 +43889,12 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44153
43889
|
);
|
|
44154
43890
|
const handleDataChange = useCallback68(
|
|
44155
43891
|
(updater) => {
|
|
44156
|
-
if (previewMode) {
|
|
44157
|
-
return;
|
|
44158
|
-
}
|
|
44159
43892
|
onUpdateNode(updater);
|
|
44160
43893
|
},
|
|
44161
|
-
[onUpdateNode
|
|
43894
|
+
[onUpdateNode]
|
|
44162
43895
|
);
|
|
44163
43896
|
const handleConversationRailWidthChanged = useCallback68(
|
|
44164
43897
|
(widthPx) => {
|
|
44165
|
-
if (previewMode) {
|
|
44166
|
-
return;
|
|
44167
|
-
}
|
|
44168
43898
|
onUpdateNode((current) => {
|
|
44169
43899
|
const nextWidthPx = resolveNextAgentGUIConversationRailWidthPx({
|
|
44170
43900
|
currentWidthPx: current.conversationRailWidthPx,
|
|
@@ -44180,7 +43910,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44180
43910
|
};
|
|
44181
43911
|
});
|
|
44182
43912
|
},
|
|
44183
|
-
[onUpdateNode
|
|
43913
|
+
[onUpdateNode]
|
|
44184
43914
|
);
|
|
44185
43915
|
const isConversationRailManuallyCollapsed = state.conversationRailCollapsed === true;
|
|
44186
43916
|
const isConversationRailAutoCollapsed = shouldAutoCollapseAgentGUIConversationRail(width, railAutoCollapseWidthPx);
|
|
@@ -44193,18 +43923,12 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44193
43923
|
[]
|
|
44194
43924
|
);
|
|
44195
43925
|
const toggleConversationRailCollapsed = useCallback68(() => {
|
|
44196
|
-
if (previewMode) {
|
|
44197
|
-
return;
|
|
44198
|
-
}
|
|
44199
43926
|
onUpdateNode((current) => ({
|
|
44200
43927
|
...current,
|
|
44201
43928
|
conversationRailCollapsed: current.conversationRailCollapsed !== true
|
|
44202
43929
|
}));
|
|
44203
|
-
}, [onUpdateNode
|
|
43930
|
+
}, [onUpdateNode]);
|
|
44204
43931
|
const handleConversationRailToggle = useCallback68(() => {
|
|
44205
|
-
if (previewMode) {
|
|
44206
|
-
return;
|
|
44207
|
-
}
|
|
44208
43932
|
if (!isConversationRailAutoCollapsed) {
|
|
44209
43933
|
toggleConversationRailCollapsed();
|
|
44210
43934
|
return;
|
|
@@ -44234,7 +43958,6 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44234
43958
|
onResize,
|
|
44235
43959
|
onUpdateNode,
|
|
44236
43960
|
position,
|
|
44237
|
-
previewMode,
|
|
44238
43961
|
state.conversationRailWidthPx,
|
|
44239
43962
|
toggleConversationRailCollapsed,
|
|
44240
43963
|
width
|
|
@@ -44258,14 +43981,13 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44258
43981
|
providerReadinessGates,
|
|
44259
43982
|
targetConnectionSource,
|
|
44260
43983
|
defaultAgentTargetId,
|
|
44261
|
-
previewMode,
|
|
44262
43984
|
onDataChange: handleDataChange,
|
|
44263
43985
|
onRememberComposerDefaults,
|
|
44264
43986
|
onShowMessage
|
|
44265
43987
|
});
|
|
44266
43988
|
const handleCreateConversation = useCallback68(
|
|
44267
43989
|
(...args) => {
|
|
44268
|
-
|
|
43990
|
+
{
|
|
44269
43991
|
onUpdateNode(
|
|
44270
43992
|
(current) => current.lastActiveAgentSessionId === null ? current : {
|
|
44271
43993
|
...current,
|
|
@@ -44275,7 +43997,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44275
43997
|
}
|
|
44276
43998
|
actions.createConversation(...args);
|
|
44277
43999
|
},
|
|
44278
|
-
[actions, onUpdateNode
|
|
44000
|
+
[actions, onUpdateNode]
|
|
44279
44001
|
);
|
|
44280
44002
|
const viewActions = useMemo50(
|
|
44281
44003
|
() => ({
|
|
@@ -44317,7 +44039,6 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44317
44039
|
} = useAgentGUIStatus({
|
|
44318
44040
|
activeProvider,
|
|
44319
44041
|
agentStatusController,
|
|
44320
|
-
previewMode,
|
|
44321
44042
|
t,
|
|
44322
44043
|
viewModel
|
|
44323
44044
|
});
|
|
@@ -44337,7 +44058,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44337
44058
|
className: "size-full bg-transparent",
|
|
44338
44059
|
bodyClassName: `${AgentGUINode_styles_default.shell} nodrag size-full min-h-0 min-w-0 !bg-transparent p-0`,
|
|
44339
44060
|
hideHeader: embedded,
|
|
44340
|
-
titleAccessory: /* @__PURE__ */
|
|
44061
|
+
titleAccessory: /* @__PURE__ */ jsxs63("span", { className: "inline-flex flex-none items-center gap-1", children: [
|
|
44341
44062
|
/* @__PURE__ */ jsx88(
|
|
44342
44063
|
AgentProbeInfoPopover,
|
|
44343
44064
|
{
|
|
@@ -44416,7 +44137,6 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
44416
44137
|
onSlashStatusOpen: handleSlashStatusOpen,
|
|
44417
44138
|
onSlashStatusClose: handleSlashStatusClose,
|
|
44418
44139
|
onSlashStatusRefresh: handleSlashStatusRefresh,
|
|
44419
|
-
previewMode,
|
|
44420
44140
|
onLinkAction: handleLinkAction,
|
|
44421
44141
|
onHandoffConversation,
|
|
44422
44142
|
capabilityMenuState,
|
|
@@ -44552,7 +44272,7 @@ var AgentGUI = memo15(function AgentGUI2({
|
|
|
44552
44272
|
)
|
|
44553
44273
|
}
|
|
44554
44274
|
) }) });
|
|
44555
|
-
return
|
|
44275
|
+
return /* @__PURE__ */ jsx89(TooltipProvider8, { delayDuration: 120, skipDelayDuration: 0, children: content });
|
|
44556
44276
|
});
|
|
44557
44277
|
|
|
44558
44278
|
export {
|
|
@@ -44568,4 +44288,4 @@ export {
|
|
|
44568
44288
|
AgentHandoffMenu,
|
|
44569
44289
|
AgentGUI
|
|
44570
44290
|
};
|
|
44571
|
-
//# sourceMappingURL=chunk-
|
|
44291
|
+
//# sourceMappingURL=chunk-KJA3HHUJ.js.map
|