@tutti-os/agent-gui 0.0.140 → 0.0.142
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AgentRichTextReadonly-ITYHQCN5.js → AgentRichTextReadonly-QIQCYZAG.js} +3 -3
- package/dist/agent-conversation/index.js +3 -3
- package/dist/agent-gui.d.ts +0 -5
- package/dist/agent-gui.js +7 -7
- package/dist/app/renderer/agentactivity.css +9 -1
- package/dist/{chunk-XUFVBZUT.js → chunk-4V3QEPKX.js} +3 -3
- package/dist/{chunk-OXCHXPBD.js → chunk-5ZZMG4ZB.js} +2 -2
- package/dist/{chunk-MMEHSIWJ.js → chunk-LIQWMDME.js} +2 -2
- package/dist/{chunk-AVXN6UMO.js → chunk-N2NZASIS.js} +2 -2
- package/dist/{chunk-WUMJJOK6.js → chunk-O764HQNF.js} +6 -3
- package/dist/chunk-O764HQNF.js.map +1 -0
- package/dist/{chunk-ORPU3AJK.js → chunk-QRBQ6OHG.js} +513 -446
- package/dist/chunk-QRBQ6OHG.js.map +1 -0
- package/dist/{chunk-WM63XUAL.js → chunk-TJW5NWWH.js} +2 -2
- package/dist/context-mention-palette/index.js +3 -3
- package/dist/index.d.ts +31 -33
- package/dist/index.js +7 -7
- package/dist/mention-search.js +2 -2
- package/dist/workbench/contribution.js +1 -1
- package/dist/workbench/index.js +1 -1
- package/package.json +13 -13
- package/dist/chunk-ORPU3AJK.js.map +0 -1
- package/dist/chunk-WUMJJOK6.js.map +0 -1
- /package/dist/{AgentRichTextReadonly-ITYHQCN5.js.map → AgentRichTextReadonly-QIQCYZAG.js.map} +0 -0
- /package/dist/{chunk-XUFVBZUT.js.map → chunk-4V3QEPKX.js.map} +0 -0
- /package/dist/{chunk-OXCHXPBD.js.map → chunk-5ZZMG4ZB.js.map} +0 -0
- /package/dist/{chunk-MMEHSIWJ.js.map → chunk-LIQWMDME.js.map} +0 -0
- /package/dist/{chunk-AVXN6UMO.js.map → chunk-N2NZASIS.js.map} +0 -0
- /package/dist/{chunk-WM63XUAL.js.map → chunk-TJW5NWWH.js.map} +0 -0
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
resolveAgentGuiSessionProviderFlatIconUrl,
|
|
13
13
|
resolveNextAgentGUIConversationRailWidthPx,
|
|
14
14
|
shouldAutoCollapseAgentGUIConversationRail
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-LIQWMDME.js";
|
|
16
16
|
import {
|
|
17
17
|
AGENT_PROVIDERS,
|
|
18
18
|
AGENT_PROVIDER_LABEL,
|
|
@@ -63,7 +63,7 @@ import {
|
|
|
63
63
|
toLocalShortDateTime,
|
|
64
64
|
updateAgentComposerDraft,
|
|
65
65
|
useProjectedAgentConversation
|
|
66
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-4V3QEPKX.js";
|
|
67
67
|
import {
|
|
68
68
|
agentRichTextContentToPromptText,
|
|
69
69
|
createAgentRichTextInputExtensions,
|
|
@@ -73,7 +73,7 @@ import {
|
|
|
73
73
|
plainTextToAgentRichTextInlineContent,
|
|
74
74
|
skillDescriptionForDisplay,
|
|
75
75
|
skillTriggerForPrefix
|
|
76
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-N2NZASIS.js";
|
|
77
77
|
import {
|
|
78
78
|
AgentEnvPanelActionProvider
|
|
79
79
|
} from "./chunk-FM42UN2J.js";
|
|
@@ -85,7 +85,7 @@ import {
|
|
|
85
85
|
AgentFileMentionPalette,
|
|
86
86
|
agentMentionItemKey,
|
|
87
87
|
isAgentMentionItemDisabled
|
|
88
|
-
} from "./chunk-
|
|
88
|
+
} from "./chunk-TJW5NWWH.js";
|
|
89
89
|
import {
|
|
90
90
|
normalizeAgentGUIAgents,
|
|
91
91
|
projectAgentGUIAgentsToInternalTargets
|
|
@@ -96,7 +96,7 @@ import {
|
|
|
96
96
|
DEFAULT_AGENT_MENTION_FILTER,
|
|
97
97
|
agentGuiScheduler,
|
|
98
98
|
buildWorkspaceAgentActivityListViewModel
|
|
99
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-5ZZMG4ZB.js";
|
|
100
100
|
import {
|
|
101
101
|
isLocalImagePath
|
|
102
102
|
} from "./chunk-JDVP33S5.js";
|
|
@@ -116,7 +116,7 @@ import {
|
|
|
116
116
|
parseMentionItemFromHref,
|
|
117
117
|
remainingAgentComposerPromptAssetSlots,
|
|
118
118
|
updateAgentComposerFileMentions
|
|
119
|
-
} from "./chunk-
|
|
119
|
+
} from "./chunk-O764HQNF.js";
|
|
120
120
|
import {
|
|
121
121
|
AgentInteractivePromptSurface,
|
|
122
122
|
PLAN_IMPLEMENTATION_ACTION_FEEDBACK,
|
|
@@ -180,11 +180,11 @@ import {
|
|
|
180
180
|
} from "./chunk-QMMWKQOT.js";
|
|
181
181
|
|
|
182
182
|
// AgentGUI.tsx
|
|
183
|
-
import { memo as memo15, useMemo as
|
|
183
|
+
import { memo as memo15, useMemo as useMemo45 } from "react";
|
|
184
184
|
import { TooltipProvider as TooltipProvider6 } from "@tutti-os/ui-system";
|
|
185
185
|
|
|
186
186
|
// agent-gui/agentGuiNode/AgentGUINode.tsx
|
|
187
|
-
import { memo as memo14, useCallback as useCallback60, useEffect as
|
|
187
|
+
import { memo as memo14, useCallback as useCallback60, useEffect as useEffect40, useMemo as useMemo44, useRef as useRef51 } from "react";
|
|
188
188
|
import { createWorkspaceUserProjectI18nRuntime } from "@tutti-os/workspace-user-project/i18n";
|
|
189
189
|
import { createWorkspaceFileManagerI18nRuntime } from "@tutti-os/workspace-file-manager";
|
|
190
190
|
import { useReferenceProvenanceFilterCatalog } from "@tutti-os/workspace-file-reference/react";
|
|
@@ -9769,7 +9769,7 @@ function useAgentGUISubmitInteractionActions(input) {
|
|
|
9769
9769
|
agentSessionId,
|
|
9770
9770
|
normalizedContent,
|
|
9771
9771
|
displayPromptText,
|
|
9772
|
-
{ sendNow: true }
|
|
9772
|
+
{ sendNow: true, trackDraft: true }
|
|
9773
9773
|
);
|
|
9774
9774
|
},
|
|
9775
9775
|
[
|
|
@@ -13316,10 +13316,10 @@ function useAgentGUINodeController({
|
|
|
13316
13316
|
// agent-gui/agentGuiNode/AgentGUINodeView.tsx
|
|
13317
13317
|
import {
|
|
13318
13318
|
useCallback as useCallback58,
|
|
13319
|
-
useEffect as
|
|
13320
|
-
useMemo as
|
|
13321
|
-
useRef as
|
|
13322
|
-
useState as
|
|
13319
|
+
useEffect as useEffect38,
|
|
13320
|
+
useMemo as useMemo41,
|
|
13321
|
+
useRef as useRef49,
|
|
13322
|
+
useState as useState40
|
|
13323
13323
|
} from "react";
|
|
13324
13324
|
import { TooltipProvider as TooltipProvider5 } from "@tutti-os/ui-system";
|
|
13325
13325
|
|
|
@@ -13435,7 +13435,9 @@ var styles = {
|
|
|
13435
13435
|
conversationList: "agent-gui-node__conversation-list",
|
|
13436
13436
|
conversationMeta: "agent-gui-node__conversation-meta",
|
|
13437
13437
|
conversationMoreButton: "agent-gui-node__conversation-more-button",
|
|
13438
|
+
conversationProviderImage: "agent-gui-node__conversation-provider-image",
|
|
13438
13439
|
conversationProviderIcon: "agent-gui-node__conversation-provider-icon",
|
|
13440
|
+
conversationProviderMaskIcon: "agent-gui-node__conversation-provider-mask-icon",
|
|
13439
13441
|
conversationOpenWindowButton: "agent-gui-node__conversation-open-window-button",
|
|
13440
13442
|
conversationPinButton: "agent-gui-node__conversation-pin-button",
|
|
13441
13443
|
conversationSection: "agent-gui-node__conversation-section",
|
|
@@ -14249,9 +14251,9 @@ function AgentGUIConfigMenu({
|
|
|
14249
14251
|
import {
|
|
14250
14252
|
memo as memo4,
|
|
14251
14253
|
useCallback as useCallback44,
|
|
14252
|
-
useMemo as
|
|
14253
|
-
useRef as
|
|
14254
|
-
useState as
|
|
14254
|
+
useMemo as useMemo32,
|
|
14255
|
+
useRef as useRef36,
|
|
14256
|
+
useState as useState26
|
|
14255
14257
|
} from "react";
|
|
14256
14258
|
import { Tooltip as Tooltip5, TooltipContent as TooltipContent5, TooltipTrigger as TooltipTrigger5 } from "@tutti-os/ui-system";
|
|
14257
14259
|
|
|
@@ -14474,7 +14476,7 @@ function changeAgentGUIProviderManagerVisibility(input) {
|
|
|
14474
14476
|
}
|
|
14475
14477
|
|
|
14476
14478
|
// agent-gui/agentGuiNode/view/AgentGUIEmptyState.tsx
|
|
14477
|
-
import { memo as memo3, useMemo as
|
|
14479
|
+
import { memo as memo3, useMemo as useMemo31 } from "react";
|
|
14478
14480
|
import {
|
|
14479
14481
|
Select as Select4,
|
|
14480
14482
|
SelectContent as SelectContent4,
|
|
@@ -16180,7 +16182,7 @@ function AgentSessionChrome({
|
|
|
16180
16182
|
}
|
|
16181
16183
|
|
|
16182
16184
|
// agent-gui/agentGuiNode/AgentComposer.tsx
|
|
16183
|
-
import { useEffect as
|
|
16185
|
+
import { useEffect as useEffect28, useRef as useRef33, useState as useState22 } from "react";
|
|
16184
16186
|
import { repairMentionPaletteHighlight } from "@tutti-os/ui-rich-text/at-panel";
|
|
16185
16187
|
|
|
16186
16188
|
// agent-gui/agentGuiNode/AgentSlashStatusPanel.tsx
|
|
@@ -17764,7 +17766,6 @@ var DRAFT_IMAGE_PREVIEW_MIN_WIDTH_PX = 56;
|
|
|
17764
17766
|
var DRAFT_IMAGE_PREVIEW_MAX_WIDTH_PX = 180;
|
|
17765
17767
|
var DRAFT_IMAGE_PREVIEW_MIN_RATIO = 0.5;
|
|
17766
17768
|
var DRAFT_IMAGE_PREVIEW_MAX_RATIO = 3;
|
|
17767
|
-
var EMPTY_CONTEXT_MENTION_PROVIDERS = [];
|
|
17768
17769
|
var EMPTY_PROMPT_TIPS = [];
|
|
17769
17770
|
var EMPTY_PROVIDER_SKILLS = [];
|
|
17770
17771
|
var EMPTY_WORKSPACE_APP_ICONS = [];
|
|
@@ -24969,6 +24970,64 @@ function AgentComposerView(input) {
|
|
|
24969
24970
|
);
|
|
24970
24971
|
}
|
|
24971
24972
|
|
|
24973
|
+
// agent-gui/agentGuiNode/composer/useAgentMentionSearchController.ts
|
|
24974
|
+
import { useEffect as useEffect27, useMemo as useMemo29, useRef as useRef32, useState as useState21 } from "react";
|
|
24975
|
+
import { useRichTextMentionService } from "@tutti-os/ui-rich-text/editor";
|
|
24976
|
+
var EMPTY_AGENT_CONTEXT_MENTION_PROVIDERS = [];
|
|
24977
|
+
function useAgentMentionSearchController(referenceProvenanceFilter) {
|
|
24978
|
+
const mentionService = useRichTextMentionService();
|
|
24979
|
+
const contextMentionProviders = useMemo29(
|
|
24980
|
+
() => mentionService?.listProviders().filter(isAgentContextMentionProvider) ?? EMPTY_AGENT_CONTEXT_MENTION_PROVIDERS,
|
|
24981
|
+
[mentionService]
|
|
24982
|
+
);
|
|
24983
|
+
const [mentionSearchState, setMentionSearchState] = useState21(INITIAL_AGENT_MENTION_SEARCH_STATE);
|
|
24984
|
+
const mentionControllerRef = useRef32(
|
|
24985
|
+
null
|
|
24986
|
+
);
|
|
24987
|
+
useEffect27(() => {
|
|
24988
|
+
const controller = new AgentMentionSearchController({
|
|
24989
|
+
contextMentionProviders
|
|
24990
|
+
});
|
|
24991
|
+
controller.setProvenanceCatalog(
|
|
24992
|
+
referenceProvenanceFilter?.snapshot.catalog ?? null
|
|
24993
|
+
);
|
|
24994
|
+
controller.setProvenanceFilter(
|
|
24995
|
+
referenceProvenanceFilter?.snapshot.value ?? null
|
|
24996
|
+
);
|
|
24997
|
+
mentionControllerRef.current = controller;
|
|
24998
|
+
const unsubscribe = controller.subscribe(setMentionSearchState);
|
|
24999
|
+
return () => {
|
|
25000
|
+
unsubscribe();
|
|
25001
|
+
controller.dispose();
|
|
25002
|
+
mentionControllerRef.current = null;
|
|
25003
|
+
};
|
|
25004
|
+
}, [contextMentionProviders]);
|
|
25005
|
+
useEffect27(() => {
|
|
25006
|
+
mentionControllerRef.current?.setProvenanceCatalog(
|
|
25007
|
+
referenceProvenanceFilter?.snapshot.catalog ?? null
|
|
25008
|
+
);
|
|
25009
|
+
mentionControllerRef.current?.setProvenanceFilter(
|
|
25010
|
+
referenceProvenanceFilter?.snapshot.value ?? null
|
|
25011
|
+
);
|
|
25012
|
+
}, [
|
|
25013
|
+
referenceProvenanceFilter?.snapshot.catalog,
|
|
25014
|
+
referenceProvenanceFilter?.snapshot.value
|
|
25015
|
+
]);
|
|
25016
|
+
return { mentionControllerRef, mentionSearchState };
|
|
25017
|
+
}
|
|
25018
|
+
function isAgentContextMentionProvider(provider) {
|
|
25019
|
+
return provider.trigger === "@";
|
|
25020
|
+
}
|
|
25021
|
+
var INITIAL_AGENT_MENTION_SEARCH_STATE = {
|
|
25022
|
+
status: "idle",
|
|
25023
|
+
query: "",
|
|
25024
|
+
mode: "browse",
|
|
25025
|
+
filter: DEFAULT_AGENT_MENTION_FILTER,
|
|
25026
|
+
categories: [],
|
|
25027
|
+
groups: [],
|
|
25028
|
+
error: null
|
|
25029
|
+
};
|
|
25030
|
+
|
|
24972
25031
|
// agent-gui/agentGuiNode/AgentComposer.tsx
|
|
24973
25032
|
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
24974
25033
|
var DOCK_COMPOSER_INPUT_MIN_HEIGHT2 = 56;
|
|
@@ -25036,7 +25095,6 @@ function AgentComposer(props) {
|
|
|
25036
25095
|
prepareExternalPromptFiles = null,
|
|
25037
25096
|
promptAssetLimit = null,
|
|
25038
25097
|
onRequestGitBranches = null,
|
|
25039
|
-
contextMentionProviders = EMPTY_CONTEXT_MENTION_PROVIDERS,
|
|
25040
25098
|
referenceProvenanceFilter = null
|
|
25041
25099
|
} = props;
|
|
25042
25100
|
const draftPrompt = agentComposerDraftPrompt(draftContent);
|
|
@@ -25060,67 +25118,56 @@ function AgentComposer(props) {
|
|
|
25060
25118
|
hadPrefill: agentComposerDraftHasContent(draftContent)
|
|
25061
25119
|
});
|
|
25062
25120
|
};
|
|
25063
|
-
const [isPaletteOpen, setIsPaletteOpen] =
|
|
25064
|
-
const [isReviewPickerOpen, setIsReviewPickerOpen] =
|
|
25065
|
-
const [isHandoffIconPlaying, setIsHandoffIconPlaying] =
|
|
25066
|
-
const [highlightedIndex, setHighlightedIndex] =
|
|
25067
|
-
const [mentionHighlightedKey, setMentionHighlightedKey] =
|
|
25068
|
-
const [shouldCenterMentionHighlight, setShouldCenterMentionHighlight] =
|
|
25121
|
+
const [isPaletteOpen, setIsPaletteOpen] = useState22(true);
|
|
25122
|
+
const [isReviewPickerOpen, setIsReviewPickerOpen] = useState22(false);
|
|
25123
|
+
const [isHandoffIconPlaying, setIsHandoffIconPlaying] = useState22(false);
|
|
25124
|
+
const [highlightedIndex, setHighlightedIndex] = useState22(0);
|
|
25125
|
+
const [mentionHighlightedKey, setMentionHighlightedKey] = useState22(null);
|
|
25126
|
+
const [shouldCenterMentionHighlight, setShouldCenterMentionHighlight] = useState22(false);
|
|
25069
25127
|
const [
|
|
25070
25128
|
shouldResetMentionHighlightToFilter,
|
|
25071
25129
|
setShouldResetMentionHighlightToFilter
|
|
25072
|
-
] =
|
|
25073
|
-
const [paletteDraftPrompt, setPaletteDraftPrompt] =
|
|
25130
|
+
] = useState22(false);
|
|
25131
|
+
const [paletteDraftPrompt, setPaletteDraftPrompt] = useState22(
|
|
25074
25132
|
goalDraftObjective ?? draftPrompt
|
|
25075
25133
|
);
|
|
25076
|
-
const [fileMentionSuggestion, setFileMentionSuggestion] =
|
|
25077
|
-
const [isSelectedProjectMissing, setIsSelectedProjectMissing] =
|
|
25078
|
-
const [isSlashStatusPanelOpen, setIsSlashStatusPanelOpen] =
|
|
25134
|
+
const [fileMentionSuggestion, setFileMentionSuggestion] = useState22(null);
|
|
25135
|
+
const [isSelectedProjectMissing, setIsSelectedProjectMissing] = useState22(false);
|
|
25136
|
+
const [isSlashStatusPanelOpen, setIsSlashStatusPanelOpen] = useState22(false);
|
|
25079
25137
|
const slashStatusAgentSessionId = slashStatus?.agentSessionId ?? null;
|
|
25080
|
-
const previousSlashStatusAgentSessionIdRef =
|
|
25138
|
+
const previousSlashStatusAgentSessionIdRef = useRef33(
|
|
25081
25139
|
slashStatusAgentSessionId
|
|
25082
25140
|
);
|
|
25083
25141
|
const selectedProjectPath = composerSettings.selectedProjectPath?.trim() ?? "";
|
|
25084
25142
|
const selectedProjectSectionKey = composerSettings.selectedProjectSectionKey?.trim() ?? "";
|
|
25085
|
-
const previousSelectedProjectPathRef =
|
|
25086
|
-
const
|
|
25087
|
-
|
|
25088
|
-
|
|
25089
|
-
|
|
25090
|
-
|
|
25091
|
-
|
|
25092
|
-
|
|
25093
|
-
|
|
25094
|
-
|
|
25095
|
-
const composerRef = useRef32(null);
|
|
25096
|
-
const inputShellRef = useRef32(null);
|
|
25097
|
-
const promptInputAreaRef = useRef32(null);
|
|
25098
|
-
const paletteContentRef = useRef32(null);
|
|
25099
|
-
const draftPromptRef = useRef32(draftPrompt);
|
|
25100
|
-
const draftImagesRef = useRef32(draftImages);
|
|
25101
|
-
const draftFilesRef = useRef32(draftFiles);
|
|
25102
|
-
const draftLargeTextsRef = useRef32(draftLargeTexts);
|
|
25103
|
-
const draftByScopeKeyRef = useRef32({
|
|
25143
|
+
const previousSelectedProjectPathRef = useRef33(selectedProjectPath);
|
|
25144
|
+
const composerRef = useRef33(null);
|
|
25145
|
+
const inputShellRef = useRef33(null);
|
|
25146
|
+
const promptInputAreaRef = useRef33(null);
|
|
25147
|
+
const paletteContentRef = useRef33(null);
|
|
25148
|
+
const draftPromptRef = useRef33(draftPrompt);
|
|
25149
|
+
const draftImagesRef = useRef33(draftImages);
|
|
25150
|
+
const draftFilesRef = useRef33(draftFiles);
|
|
25151
|
+
const draftLargeTextsRef = useRef33(draftLargeTexts);
|
|
25152
|
+
const draftByScopeKeyRef = useRef33({
|
|
25104
25153
|
[draftScopeKey]: draftContent
|
|
25105
25154
|
});
|
|
25106
25155
|
draftByScopeKeyRef.current[draftScopeKey] = draftContent;
|
|
25107
|
-
const promptTipRef =
|
|
25108
|
-
const mentionControllerRef =
|
|
25109
|
-
|
|
25110
|
-
);
|
|
25111
|
-
const
|
|
25112
|
-
const
|
|
25113
|
-
const
|
|
25114
|
-
const
|
|
25115
|
-
const [isPromptTipOverflowing, setIsPromptTipOverflowing] = useState21(false);
|
|
25116
|
-
const [dockComposerInputHeight, setDockComposerInputHeight] = useState21(
|
|
25156
|
+
const promptTipRef = useRef33(null);
|
|
25157
|
+
const { mentionControllerRef, mentionSearchState } = useAgentMentionSearchController(referenceProvenanceFilter);
|
|
25158
|
+
const editorHandleRef = useRef33(null);
|
|
25159
|
+
const wasActiveRef = useRef33(isActive);
|
|
25160
|
+
const lastComposerFocusRequestRef = useRef33(null);
|
|
25161
|
+
const autoMentionHighlightedKeyRef = useRef33(null);
|
|
25162
|
+
const [isPromptTipOverflowing, setIsPromptTipOverflowing] = useState22(false);
|
|
25163
|
+
const [dockComposerInputHeight, setDockComposerInputHeight] = useState22(
|
|
25117
25164
|
DOCK_COMPOSER_INPUT_MIN_HEIGHT2
|
|
25118
25165
|
);
|
|
25119
|
-
const [dockComposerInputMaxHeight, setDockComposerInputMaxHeight] =
|
|
25166
|
+
const [dockComposerInputMaxHeight, setDockComposerInputMaxHeight] = useState22(
|
|
25120
25167
|
DOCK_COMPOSER_INPUT_MAX_HEIGHT2
|
|
25121
25168
|
);
|
|
25122
|
-
const [dockComposerAttachmentHeight, setDockComposerAttachmentHeight] =
|
|
25123
|
-
const [dockComposerTextHeight, setDockComposerTextHeight] =
|
|
25169
|
+
const [dockComposerAttachmentHeight, setDockComposerAttachmentHeight] = useState22(0);
|
|
25170
|
+
const [dockComposerTextHeight, setDockComposerTextHeight] = useState22(
|
|
25124
25171
|
DOCK_COMPOSER_INPUT_MIN_HEIGHT2
|
|
25125
25172
|
);
|
|
25126
25173
|
const paletteCatalog = useComposerPaletteCatalog({
|
|
@@ -25160,10 +25207,10 @@ function AgentComposer(props) {
|
|
|
25160
25207
|
inputShellRef,
|
|
25161
25208
|
showFileMentionPalette
|
|
25162
25209
|
);
|
|
25163
|
-
|
|
25210
|
+
useEffect28(() => {
|
|
25164
25211
|
setHighlightedIndex(0);
|
|
25165
25212
|
}, [skillQueryMatch?.prefix, skillQueryMatch?.query, slashQuery]);
|
|
25166
|
-
|
|
25213
|
+
useEffect28(() => {
|
|
25167
25214
|
const preferredKey = shouldResetMentionHighlightToFilter && mentionSearchState.mode === "browse" ? `category:${mentionSearchState.filter}` : null;
|
|
25168
25215
|
if (shouldResetMentionHighlightToFilter) {
|
|
25169
25216
|
const nextKey = repairMentionPaletteHighlight({
|
|
@@ -25197,25 +25244,7 @@ function AgentComposer(props) {
|
|
|
25197
25244
|
mentionSearchState,
|
|
25198
25245
|
shouldResetMentionHighlightToFilter
|
|
25199
25246
|
]);
|
|
25200
|
-
|
|
25201
|
-
const controller = new AgentMentionSearchController({
|
|
25202
|
-
contextMentionProviders
|
|
25203
|
-
});
|
|
25204
|
-
controller.setProvenanceCatalog(
|
|
25205
|
-
referenceProvenanceFilter?.snapshot.catalog ?? null
|
|
25206
|
-
);
|
|
25207
|
-
controller.setProvenanceFilter(
|
|
25208
|
-
referenceProvenanceFilter?.snapshot.value ?? null
|
|
25209
|
-
);
|
|
25210
|
-
mentionControllerRef.current = controller;
|
|
25211
|
-
const unsubscribe = controller.subscribe(setMentionSearchState);
|
|
25212
|
-
return () => {
|
|
25213
|
-
unsubscribe();
|
|
25214
|
-
controller.dispose();
|
|
25215
|
-
mentionControllerRef.current = null;
|
|
25216
|
-
};
|
|
25217
|
-
}, [contextMentionProviders]);
|
|
25218
|
-
useEffect27(() => {
|
|
25247
|
+
useEffect28(() => {
|
|
25219
25248
|
draftImagesRef.current = agentComposerDraftImages(draftContent);
|
|
25220
25249
|
draftFilesRef.current = agentComposerDraftFiles(draftContent);
|
|
25221
25250
|
draftLargeTextsRef.current = agentComposerDraftLargeTexts(draftContent);
|
|
@@ -25230,18 +25259,7 @@ function AgentComposer(props) {
|
|
|
25230
25259
|
});
|
|
25231
25260
|
}
|
|
25232
25261
|
}, [draftContent, draftPrompt, goalDraftObjective]);
|
|
25233
|
-
|
|
25234
|
-
mentionControllerRef.current?.setProvenanceCatalog(
|
|
25235
|
-
referenceProvenanceFilter?.snapshot.catalog ?? null
|
|
25236
|
-
);
|
|
25237
|
-
mentionControllerRef.current?.setProvenanceFilter(
|
|
25238
|
-
referenceProvenanceFilter?.snapshot.value ?? null
|
|
25239
|
-
);
|
|
25240
|
-
}, [
|
|
25241
|
-
referenceProvenanceFilter?.snapshot.catalog,
|
|
25242
|
-
referenceProvenanceFilter?.snapshot.value
|
|
25243
|
-
]);
|
|
25244
|
-
useEffect27(() => {
|
|
25262
|
+
useEffect28(() => {
|
|
25245
25263
|
if (previousSlashStatusAgentSessionIdRef.current === slashStatusAgentSessionId) {
|
|
25246
25264
|
return;
|
|
25247
25265
|
}
|
|
@@ -25504,7 +25522,7 @@ function AgentComposer(props) {
|
|
|
25504
25522
|
}
|
|
25505
25523
|
|
|
25506
25524
|
// agent-gui/agentGuiNode/AgentHomeSuggestions.tsx
|
|
25507
|
-
import { memo as memo2, useState as
|
|
25525
|
+
import { memo as memo2, useState as useState23 } from "react";
|
|
25508
25526
|
import { ArrowLeftRight, Code, Compass, Import, Pencil, X as X6 } from "lucide-react";
|
|
25509
25527
|
import { jsx as jsx39, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
25510
25528
|
function TuttiIcon(props) {
|
|
@@ -25615,7 +25633,7 @@ var AgentHomeSuggestions = memo2(function AgentHomeSuggestions2({
|
|
|
25615
25633
|
closeLabel
|
|
25616
25634
|
}) {
|
|
25617
25635
|
"use memo";
|
|
25618
|
-
const [activeCategoryId, setActiveCategoryId] =
|
|
25636
|
+
const [activeCategoryId, setActiveCategoryId] = useState23(null);
|
|
25619
25637
|
if (categories.length === 0) {
|
|
25620
25638
|
return null;
|
|
25621
25639
|
}
|
|
@@ -25875,8 +25893,8 @@ import {
|
|
|
25875
25893
|
createContext,
|
|
25876
25894
|
useCallback as useCallback42,
|
|
25877
25895
|
useContext,
|
|
25878
|
-
useMemo as
|
|
25879
|
-
useRef as
|
|
25896
|
+
useMemo as useMemo30,
|
|
25897
|
+
useRef as useRef34
|
|
25880
25898
|
} from "react";
|
|
25881
25899
|
import { toast as toast2 } from "@tutti-os/ui-system";
|
|
25882
25900
|
|
|
@@ -25933,7 +25951,7 @@ function useCreateAgentTargetSetupController(agentTarget) {
|
|
|
25933
25951
|
const { t } = useTranslation();
|
|
25934
25952
|
const agentTargetId = agentTarget?.agentTargetId?.trim() || agentTarget?.targetId.trim() || "";
|
|
25935
25953
|
const enabled = agentTarget?.ref.setupKind === "target_runtime" && Boolean(hostApi?.agentTargetSetup && agentTargetId);
|
|
25936
|
-
const stableAgentTarget =
|
|
25954
|
+
const stableAgentTarget = useMemo30(
|
|
25937
25955
|
() => agentTarget,
|
|
25938
25956
|
[
|
|
25939
25957
|
agentTargetId,
|
|
@@ -25942,7 +25960,7 @@ function useCreateAgentTargetSetupController(agentTarget) {
|
|
|
25942
25960
|
agentTarget?.ref.setupKind
|
|
25943
25961
|
]
|
|
25944
25962
|
);
|
|
25945
|
-
const watch =
|
|
25963
|
+
const watch = useMemo30(
|
|
25946
25964
|
() => enabled ? hostApi?.agentTargetSetup?.watch({ agentTargetId }) ?? null : null,
|
|
25947
25965
|
[agentTargetId, enabled, hostApi?.agentTargetSetup]
|
|
25948
25966
|
);
|
|
@@ -25964,9 +25982,9 @@ function useCreateAgentTargetSetupController(agentTarget) {
|
|
|
25964
25982
|
},
|
|
25965
25983
|
[agentTargetId, hostApi?.debug]
|
|
25966
25984
|
);
|
|
25967
|
-
const controllerRef =
|
|
25985
|
+
const controllerRef = useRef34(null);
|
|
25968
25986
|
const targetKey = enabled ? agentTargetId : "";
|
|
25969
|
-
const controllerEntry =
|
|
25987
|
+
const controllerEntry = useMemo30(() => {
|
|
25970
25988
|
const previousState = controllerRef.current?.targetKey === targetKey ? controllerRef.current.controller.getSnapshot() : null;
|
|
25971
25989
|
return {
|
|
25972
25990
|
controller: createAgentTargetSetupController({
|
|
@@ -26447,7 +26465,7 @@ var AgentGUIEmptyHomePane = memo3(function AgentGUIEmptyHomePane2({
|
|
|
26447
26465
|
}).fullLabel : runtimeProviderLabel;
|
|
26448
26466
|
const baseLabel = labels.emptyForProvider?.(provider) ?? labels.empty;
|
|
26449
26467
|
const emptyLabel = runtimeProviderLabel ? baseLabel.replace(runtimeProviderLabel, providerLabel) : baseLabel;
|
|
26450
|
-
const avatarPresentations =
|
|
26468
|
+
const avatarPresentations = useMemo31(
|
|
26451
26469
|
() => agentTargets.length ? agentTargets.map(projectAgentGUIAgentTargetAvatar) : selectedAgentTarget ? [projectAgentGUIAgentTargetAvatar(selectedAgentTarget)] : [
|
|
26452
26470
|
createFallbackAgentGUIAgentAvatar({
|
|
26453
26471
|
provider,
|
|
@@ -26893,8 +26911,8 @@ function EmptyHeroTitle({
|
|
|
26893
26911
|
|
|
26894
26912
|
// agent-gui/agentGuiNode/view/AgentGUIProviderManagerDialog.tsx
|
|
26895
26913
|
import {
|
|
26896
|
-
useRef as
|
|
26897
|
-
useState as
|
|
26914
|
+
useRef as useRef35,
|
|
26915
|
+
useState as useState24
|
|
26898
26916
|
} from "react";
|
|
26899
26917
|
import { CircleMinus, CirclePlus } from "lucide-react";
|
|
26900
26918
|
import {
|
|
@@ -26927,20 +26945,20 @@ function AgentGUIProviderManagerDialog({
|
|
|
26927
26945
|
const disabledTargets = targets.filter(
|
|
26928
26946
|
(target) => hidden.has(target.targetId)
|
|
26929
26947
|
);
|
|
26930
|
-
const [editing, setEditing] =
|
|
26931
|
-
const [dragState, setDragState] =
|
|
26948
|
+
const [editing, setEditing] = useState24(false);
|
|
26949
|
+
const [dragState, setDragState] = useState24(
|
|
26932
26950
|
null
|
|
26933
26951
|
);
|
|
26934
|
-
const [dragOverZone, setDragOverZone] =
|
|
26952
|
+
const [dragOverZone, setDragOverZone] = useState24(
|
|
26935
26953
|
null
|
|
26936
26954
|
);
|
|
26937
|
-
const [dragPreview, setDragPreview] =
|
|
26938
|
-
const dragStateRef =
|
|
26939
|
-
const dragPreviewRef =
|
|
26940
|
-
const [longPressTargetId, setLongPressTargetId] =
|
|
26955
|
+
const [dragPreview, setDragPreview] = useState24(null);
|
|
26956
|
+
const dragStateRef = useRef35(null);
|
|
26957
|
+
const dragPreviewRef = useRef35(null);
|
|
26958
|
+
const [longPressTargetId, setLongPressTargetId] = useState24(
|
|
26941
26959
|
null
|
|
26942
26960
|
);
|
|
26943
|
-
const longPressOriginRef =
|
|
26961
|
+
const longPressOriginRef = useRef35(null);
|
|
26944
26962
|
const finalAvailableAgent = availableTargets.length === 1;
|
|
26945
26963
|
const showRunningAgentBlocked = (targetId) => {
|
|
26946
26964
|
const target = targets.find((candidate) => candidate.targetId === targetId);
|
|
@@ -27397,7 +27415,7 @@ function AgentGUIProviderManagerDialog({
|
|
|
27397
27415
|
}
|
|
27398
27416
|
|
|
27399
27417
|
// agent-gui/agentGuiNode/view/useAgentGUIProviderRailPreferences.ts
|
|
27400
|
-
import { useCallback as useCallback43, useEffect as
|
|
27418
|
+
import { useCallback as useCallback43, useEffect as useEffect29, useState as useState25 } from "react";
|
|
27401
27419
|
function readAgentGUIProviderRailPreferences(storageKey) {
|
|
27402
27420
|
return parseAgentGUIProviderRailPreferences(
|
|
27403
27421
|
globalThis.localStorage?.getItem(storageKey)
|
|
@@ -27405,10 +27423,10 @@ function readAgentGUIProviderRailPreferences(storageKey) {
|
|
|
27405
27423
|
}
|
|
27406
27424
|
function useAgentGUIProviderRailPreferences() {
|
|
27407
27425
|
const storageKey = agentGUIProviderRailOrderStorageKey();
|
|
27408
|
-
const [preferences, setPreferences] =
|
|
27426
|
+
const [preferences, setPreferences] = useState25(
|
|
27409
27427
|
() => readAgentGUIProviderRailPreferences(storageKey)
|
|
27410
27428
|
);
|
|
27411
|
-
|
|
27429
|
+
useEffect29(() => {
|
|
27412
27430
|
const refreshPreferences = () => {
|
|
27413
27431
|
setPreferences(readAgentGUIProviderRailPreferences(storageKey));
|
|
27414
27432
|
};
|
|
@@ -27538,8 +27556,8 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
|
|
|
27538
27556
|
persistPreferences: persistProviderRailPreferences,
|
|
27539
27557
|
preferences: providerRailPreferences
|
|
27540
27558
|
} = useAgentGUIProviderRailPreferences();
|
|
27541
|
-
const [dragState, setDragState] =
|
|
27542
|
-
const dragStateRef =
|
|
27559
|
+
const [dragState, setDragState] = useState26(null);
|
|
27560
|
+
const dragStateRef = useRef36(null);
|
|
27543
27561
|
const setProviderRailDragState = useCallback44(
|
|
27544
27562
|
(nextDragState) => {
|
|
27545
27563
|
dragStateRef.current = nextDragState;
|
|
@@ -27547,7 +27565,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
|
|
|
27547
27565
|
},
|
|
27548
27566
|
[]
|
|
27549
27567
|
);
|
|
27550
|
-
const railProviderTargets =
|
|
27568
|
+
const railProviderTargets = useMemo32(
|
|
27551
27569
|
() => agentGUIProviderRailTargets(
|
|
27552
27570
|
agentTargets,
|
|
27553
27571
|
agentTargetsLoading,
|
|
@@ -27556,7 +27574,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
|
|
|
27556
27574
|
),
|
|
27557
27575
|
[comingSoonProviders, providerRailMode, agentTargets, agentTargetsLoading]
|
|
27558
27576
|
);
|
|
27559
|
-
const providerTiles =
|
|
27577
|
+
const providerTiles = useMemo32(() => {
|
|
27560
27578
|
const targets = [...railProviderTargets];
|
|
27561
27579
|
const orderedTargets = providerRailMode === "exact" ? targets : (() => {
|
|
27562
27580
|
const originalIndexByTarget = /* @__PURE__ */ new Map();
|
|
@@ -27596,7 +27614,7 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
|
|
|
27596
27614
|
agentTargets: providerTiles,
|
|
27597
27615
|
conversations
|
|
27598
27616
|
});
|
|
27599
|
-
const visibleProviderTiles =
|
|
27617
|
+
const visibleProviderTiles = useMemo32(
|
|
27600
27618
|
() => applyAgentGUIProviderRailVisibility(
|
|
27601
27619
|
providerTiles,
|
|
27602
27620
|
effectiveHiddenTargetIds
|
|
@@ -28012,10 +28030,10 @@ var AgentGUIProviderRail = memo4(function AgentGUIProviderRail2({
|
|
|
28012
28030
|
});
|
|
28013
28031
|
|
|
28014
28032
|
// agent-gui/agentGuiNode/controller/AgentGUIConversationRailController.tsx
|
|
28015
|
-
import { memo as memo9, useState as
|
|
28033
|
+
import { memo as memo9, useState as useState32 } from "react";
|
|
28016
28034
|
|
|
28017
28035
|
// agent-gui/agentGuiNode/view/AgentGUIConversationRailPane.tsx
|
|
28018
|
-
import { Fragment as Fragment17, memo as memo8, useEffect as
|
|
28036
|
+
import { Fragment as Fragment17, memo as memo8, useEffect as useEffect30, useMemo as useMemo35, useRef as useRef39, useState as useState31 } from "react";
|
|
28019
28037
|
import { Button as SystemButton } from "@tutti-os/ui-system";
|
|
28020
28038
|
import { ScrollArea } from "@tutti-os/ui-system/components";
|
|
28021
28039
|
import { CreateChatIcon as CreateChatIcon2 } from "@tutti-os/ui-system/icons";
|
|
@@ -28758,7 +28776,7 @@ function reduceAgentGUIConversationRailViewState(state, action) {
|
|
|
28758
28776
|
}
|
|
28759
28777
|
|
|
28760
28778
|
// agent-gui/agentGuiNode/controller/useAgentGUIProjectDrag.ts
|
|
28761
|
-
import { useCallback as useCallback45, useState as
|
|
28779
|
+
import { useCallback as useCallback45, useState as useState27 } from "react";
|
|
28762
28780
|
var PROJECT_DRAG_SCROLL_EDGE_PX = 40;
|
|
28763
28781
|
function projectDragAutoScrollDelta(clientY, bounds) {
|
|
28764
28782
|
if (clientY < bounds.top + PROJECT_DRAG_SCROLL_EDGE_PX) {
|
|
@@ -28776,9 +28794,9 @@ function projectDragAutoScrollDelta(clientY, bounds) {
|
|
|
28776
28794
|
return 0;
|
|
28777
28795
|
}
|
|
28778
28796
|
function useAgentGUIProjectDrag(input) {
|
|
28779
|
-
const [dragState, setDragState] =
|
|
28780
|
-
const [isMovePending, setIsMovePending] =
|
|
28781
|
-
const [runtime] =
|
|
28797
|
+
const [dragState, setDragState] = useState27(null);
|
|
28798
|
+
const [isMovePending, setIsMovePending] = useState27(false);
|
|
28799
|
+
const [runtime] = useState27(() => ({
|
|
28782
28800
|
active: false,
|
|
28783
28801
|
clientY: null,
|
|
28784
28802
|
dragState: null,
|
|
@@ -28961,7 +28979,7 @@ function useAgentGUIProjectDrag(input) {
|
|
|
28961
28979
|
import { memo as memo7, useCallback as useCallback49 } from "react";
|
|
28962
28980
|
|
|
28963
28981
|
// agent-gui/agentGuiNode/view/AgentGUIConversationRailItem.tsx
|
|
28964
|
-
import { memo as memo5, useCallback as useCallback47, useMemo as
|
|
28982
|
+
import { memo as memo5, useCallback as useCallback47, useMemo as useMemo34 } from "react";
|
|
28965
28983
|
import { ExternalLink as ExternalLink3 } from "lucide-react";
|
|
28966
28984
|
import { IssueIcon, NewWorkspaceLinedIcon as NewWorkspaceLinedIcon2, cn as cn7 } from "@tutti-os/ui-system";
|
|
28967
28985
|
import { WorkspaceUserProjectSelect as WorkspaceUserProjectSelect2 } from "@tutti-os/workspace-user-project/ui";
|
|
@@ -29199,9 +29217,9 @@ function AgentGUIConversationRailRelativeTime({
|
|
|
29199
29217
|
import {
|
|
29200
29218
|
Fragment as Fragment14,
|
|
29201
29219
|
useCallback as useCallback46,
|
|
29202
|
-
useMemo as
|
|
29203
|
-
useRef as
|
|
29204
|
-
useState as
|
|
29220
|
+
useMemo as useMemo33,
|
|
29221
|
+
useRef as useRef37,
|
|
29222
|
+
useState as useState28
|
|
29205
29223
|
} from "react";
|
|
29206
29224
|
import {
|
|
29207
29225
|
AtSign,
|
|
@@ -29777,8 +29795,8 @@ function useConversationActionGroups({
|
|
|
29777
29795
|
const agentHostApi = useOptionalAgentHostApi();
|
|
29778
29796
|
const agentActivityRuntime = useOptionalAgentActivityRuntime();
|
|
29779
29797
|
const copyConversationValue = useAgentGUIConversationCopyAction(labels);
|
|
29780
|
-
const [resetKey, setResetKey] =
|
|
29781
|
-
const pendingActionRef =
|
|
29798
|
+
const [resetKey, setResetKey] = useState28(0);
|
|
29799
|
+
const pendingActionRef = useRef37(false);
|
|
29782
29800
|
const run = useCallback46(
|
|
29783
29801
|
(action) => {
|
|
29784
29802
|
if (pendingActionRef.current) {
|
|
@@ -29795,7 +29813,7 @@ function useConversationActionGroups({
|
|
|
29795
29813
|
},
|
|
29796
29814
|
[isInteractionLocked]
|
|
29797
29815
|
);
|
|
29798
|
-
const groups =
|
|
29816
|
+
const groups = useMemo33(() => {
|
|
29799
29817
|
const clipboardUnavailable = typeof agentHostApi?.clipboard?.writeText !== "function";
|
|
29800
29818
|
const copyItem = (action, icon, label, disabled = false) => ({
|
|
29801
29819
|
// copy-reference builds the mention link synchronously from the
|
|
@@ -29871,7 +29889,7 @@ function AgentGUIConversationActionsDropdown({
|
|
|
29871
29889
|
menu,
|
|
29872
29890
|
moreSessionActionsLabel
|
|
29873
29891
|
}) {
|
|
29874
|
-
const [open, setOpen] =
|
|
29892
|
+
const [open, setOpen] = useState28(false);
|
|
29875
29893
|
return /* @__PURE__ */ jsxs37(DropdownMenu4, { onOpenChange: setOpen, children: [
|
|
29876
29894
|
/* @__PURE__ */ jsx53(DropdownMenuTrigger4, { asChild: true, children: /* @__PURE__ */ jsx53(
|
|
29877
29895
|
BareIconButton,
|
|
@@ -29901,7 +29919,7 @@ function AgentGUIConversationActionsContextMenu({
|
|
|
29901
29919
|
children,
|
|
29902
29920
|
menu
|
|
29903
29921
|
}) {
|
|
29904
|
-
const [open, setOpen] =
|
|
29922
|
+
const [open, setOpen] = useState28(false);
|
|
29905
29923
|
return /* @__PURE__ */ jsxs37(ContextMenu, { onOpenChange: setOpen, children: [
|
|
29906
29924
|
/* @__PURE__ */ jsx53(ContextMenuTrigger, { asChild: true, children }),
|
|
29907
29925
|
open ? /* @__PURE__ */ jsx53(ContextMenuContent, { className: menuContentClassName, children: /* @__PURE__ */ jsx53(ContextActionGroups, { groups: menu.groups }) }) : null
|
|
@@ -29977,14 +29995,22 @@ function ContextActionGroups({
|
|
|
29977
29995
|
|
|
29978
29996
|
// agent-gui/agentGuiNode/view/AgentGUIConversationRailItem.tsx
|
|
29979
29997
|
import { Fragment as Fragment16, jsx as jsx54, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
29980
|
-
function
|
|
29998
|
+
function agentGUIConversationIconPresentation(provider, agentTargetId, workspaceId, agentTargets) {
|
|
29981
29999
|
const targetPresentation = resolveAgentTargetPresentation({
|
|
29982
30000
|
agentTargetId: agentTargetId ?? "",
|
|
29983
30001
|
agentTargets,
|
|
29984
30002
|
workspaceId
|
|
29985
30003
|
});
|
|
29986
|
-
const
|
|
29987
|
-
|
|
30004
|
+
const maskIconUrl = targetPresentation?.maskIconUrl?.trim() ?? "";
|
|
30005
|
+
if (maskIconUrl) {
|
|
30006
|
+
return { kind: "mask", url: maskIconUrl };
|
|
30007
|
+
}
|
|
30008
|
+
const iconUrl = targetPresentation?.iconUrl?.trim() ?? "";
|
|
30009
|
+
if (iconUrl) {
|
|
30010
|
+
return { kind: "image", url: iconUrl };
|
|
30011
|
+
}
|
|
30012
|
+
const providerIconUrl = resolveAgentGuiSessionProviderFlatIconUrl(provider);
|
|
30013
|
+
return providerIconUrl ? { kind: "mask", url: providerIconUrl } : null;
|
|
29988
30014
|
}
|
|
29989
30015
|
function agentGUIConversationRailTitle(item, labels, uiLanguage) {
|
|
29990
30016
|
const title = conversationPlainTitle(item, labels, uiLanguage);
|
|
@@ -30014,7 +30040,7 @@ var AgentGUIConversationRailItem = memo5(
|
|
|
30014
30040
|
"use memo";
|
|
30015
30041
|
const pinned = (item.pinnedAtUnixMs ?? 0) > 0;
|
|
30016
30042
|
const agentTargets = useAgentTargetPresentations();
|
|
30017
|
-
const
|
|
30043
|
+
const conversationIcon = agentGUIConversationIconPresentation(
|
|
30018
30044
|
item.provider,
|
|
30019
30045
|
item.agentTargetId,
|
|
30020
30046
|
workspaceId,
|
|
@@ -30103,16 +30129,31 @@ var AgentGUIConversationRailItem = memo5(
|
|
|
30103
30129
|
},
|
|
30104
30130
|
children: [
|
|
30105
30131
|
/* @__PURE__ */ jsxs38("span", { className: AgentGUINode_styles_default.conversationTitleRow, children: [
|
|
30106
|
-
|
|
30132
|
+
conversationIcon?.kind === "mask" ? /* @__PURE__ */ jsx54(
|
|
30107
30133
|
"span",
|
|
30108
30134
|
{
|
|
30109
30135
|
"aria-hidden": "true",
|
|
30110
|
-
className:
|
|
30136
|
+
className: cn7(
|
|
30137
|
+
AgentGUINode_styles_default.conversationProviderIcon,
|
|
30138
|
+
AgentGUINode_styles_default.conversationProviderMaskIcon
|
|
30139
|
+
),
|
|
30111
30140
|
style: {
|
|
30112
|
-
WebkitMaskImage: `url("${
|
|
30113
|
-
maskImage: `url("${
|
|
30141
|
+
WebkitMaskImage: `url("${conversationIcon.url}")`,
|
|
30142
|
+
maskImage: `url("${conversationIcon.url}")`
|
|
30114
30143
|
}
|
|
30115
30144
|
}
|
|
30145
|
+
) : conversationIcon ? /* @__PURE__ */ jsx54(
|
|
30146
|
+
"img",
|
|
30147
|
+
{
|
|
30148
|
+
alt: "",
|
|
30149
|
+
"aria-hidden": "true",
|
|
30150
|
+
className: cn7(
|
|
30151
|
+
AgentGUINode_styles_default.conversationProviderIcon,
|
|
30152
|
+
AgentGUINode_styles_default.conversationProviderImage
|
|
30153
|
+
),
|
|
30154
|
+
draggable: false,
|
|
30155
|
+
src: conversationIcon.url
|
|
30156
|
+
}
|
|
30116
30157
|
) : null,
|
|
30117
30158
|
item.titleLeadingMentionKind === "task" ? /* @__PURE__ */ jsx54(
|
|
30118
30159
|
"span",
|
|
@@ -30232,7 +30273,7 @@ function AgentGUIProjectRailHeader({
|
|
|
30232
30273
|
}) {
|
|
30233
30274
|
"use memo";
|
|
30234
30275
|
const agentHostApi = useAgentHostApi();
|
|
30235
|
-
const userProjectApi =
|
|
30276
|
+
const userProjectApi = useMemo34(
|
|
30236
30277
|
() => agentHostApi.userProjects ? {
|
|
30237
30278
|
...agentHostApi.userProjects,
|
|
30238
30279
|
selectDirectory: selectProjectDirectory ?? agentHostApi.workspace.selectDirectory
|
|
@@ -30307,7 +30348,7 @@ function AgentGUIProjectRailHeader({
|
|
|
30307
30348
|
}
|
|
30308
30349
|
|
|
30309
30350
|
// agent-gui/agentGuiNode/view/AgentGUIConversationRailSectionHeader.tsx
|
|
30310
|
-
import { forwardRef as forwardRef5, memo as memo6, useCallback as useCallback48, useState as
|
|
30351
|
+
import { forwardRef as forwardRef5, memo as memo6, useCallback as useCallback48, useState as useState29 } from "react";
|
|
30311
30352
|
import { ChevronRight as ChevronRight2 } from "lucide-react";
|
|
30312
30353
|
import {
|
|
30313
30354
|
DropdownMenu as DropdownMenu5,
|
|
@@ -30717,8 +30758,8 @@ var AgentGUIConversationRailSectionHeader = memo6(
|
|
|
30717
30758
|
sectionLabel
|
|
30718
30759
|
}) {
|
|
30719
30760
|
"use memo";
|
|
30720
|
-
const [projectMenuOpen, setProjectMenuOpen] =
|
|
30721
|
-
const [conversationMenuOpen, setConversationMenuOpen] =
|
|
30761
|
+
const [projectMenuOpen, setProjectMenuOpen] = useState29(false);
|
|
30762
|
+
const [conversationMenuOpen, setConversationMenuOpen] = useState29(false);
|
|
30722
30763
|
const handleProjectMenuOpenChange = useCallback48(
|
|
30723
30764
|
(open) => {
|
|
30724
30765
|
setProjectMenuOpen(open);
|
|
@@ -31110,7 +31151,7 @@ function AgentGUIProjectActionConfirmationDialog(props) {
|
|
|
31110
31151
|
}
|
|
31111
31152
|
|
|
31112
31153
|
// agent-gui/agentGuiNode/view/useAgentGUIConversationRailViewState.ts
|
|
31113
|
-
import { useCallback as useCallback50, useLayoutEffect as useLayoutEffect6, useReducer, useRef as
|
|
31154
|
+
import { useCallback as useCallback50, useLayoutEffect as useLayoutEffect6, useReducer, useRef as useRef38 } from "react";
|
|
31114
31155
|
function applyRailScrollNavigation(input) {
|
|
31115
31156
|
const activeConversationId = input.activeConversationId?.trim() || null;
|
|
31116
31157
|
const current = input.current.navigationKey === input.navigationKey ? input.current : {
|
|
@@ -31156,10 +31197,10 @@ function useAgentGUIConversationRailViewState(input) {
|
|
|
31156
31197
|
reduceAgentGUIConversationRailViewState,
|
|
31157
31198
|
/* @__PURE__ */ new Map()
|
|
31158
31199
|
);
|
|
31159
|
-
const conversationListRef =
|
|
31160
|
-
const conversationItemElementsRef =
|
|
31161
|
-
const scrollTopByScopeRef =
|
|
31162
|
-
const navigationRef =
|
|
31200
|
+
const conversationListRef = useRef38(null);
|
|
31201
|
+
const conversationItemElementsRef = useRef38(/* @__PURE__ */ new Map());
|
|
31202
|
+
const scrollTopByScopeRef = useRef38(/* @__PURE__ */ new Map());
|
|
31203
|
+
const navigationRef = useRef38({
|
|
31163
31204
|
handledRevealRevision: 0,
|
|
31164
31205
|
navigationKey: null,
|
|
31165
31206
|
phase: "scope-pending"
|
|
@@ -31250,9 +31291,9 @@ function useAgentGUIConversationRailViewState(input) {
|
|
|
31250
31291
|
}
|
|
31251
31292
|
|
|
31252
31293
|
// agent-gui/agentGuiNode/view/useAgentGUIProjectMenuState.ts
|
|
31253
|
-
import { useCallback as useCallback51, useState as
|
|
31294
|
+
import { useCallback as useCallback51, useState as useState30 } from "react";
|
|
31254
31295
|
function useAgentGUIProjectMenuState(isRailInteractionLocked, isUserProjectMutationPending) {
|
|
31255
|
-
const [openSectionId, setOpenSectionId] =
|
|
31296
|
+
const [openSectionId, setOpenSectionId] = useState30(null);
|
|
31256
31297
|
const isProjectActionLocked = useCallback51(
|
|
31257
31298
|
() => isRailInteractionLocked() || isUserProjectMutationPending,
|
|
31258
31299
|
[isRailInteractionLocked, isUserProjectMutationPending]
|
|
@@ -31275,8 +31316,8 @@ function useAgentGUIProjectMenuState(isRailInteractionLocked, isUserProjectMutat
|
|
|
31275
31316
|
// agent-gui/agentGuiNode/view/AgentGUIConversationRailPane.tsx
|
|
31276
31317
|
import { jsx as jsx59, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
31277
31318
|
function useDelayedBoolean(value, delayMs) {
|
|
31278
|
-
const [delayedValue, setDelayedValue] =
|
|
31279
|
-
|
|
31319
|
+
const [delayedValue, setDelayedValue] = useState31(false);
|
|
31320
|
+
useEffect30(() => {
|
|
31280
31321
|
if (!value) {
|
|
31281
31322
|
setDelayedValue(false);
|
|
31282
31323
|
return;
|
|
@@ -31329,12 +31370,12 @@ var AgentGUIConversationRailPane = memo8(
|
|
|
31329
31370
|
onConversationQueryChange
|
|
31330
31371
|
}) {
|
|
31331
31372
|
"use memo";
|
|
31332
|
-
const [pendingProjectAction, setPendingProjectAction] =
|
|
31333
|
-
const [isRequestingBatchDeletion, setIsRequestingBatchDeletion] =
|
|
31373
|
+
const [pendingProjectAction, setPendingProjectAction] = useState31(null);
|
|
31374
|
+
const [isRequestingBatchDeletion, setIsRequestingBatchDeletion] = useState31(false);
|
|
31334
31375
|
const { railSearch } = railQuery;
|
|
31335
|
-
const railElementRef =
|
|
31336
|
-
const railActiveConversationRef =
|
|
31337
|
-
const groupedConversationsRef =
|
|
31376
|
+
const railElementRef = useRef39(null);
|
|
31377
|
+
const railActiveConversationRef = useRef39([]);
|
|
31378
|
+
const groupedConversationsRef = useRef39(null);
|
|
31338
31379
|
const {
|
|
31339
31380
|
loadMoreSectionConversations,
|
|
31340
31381
|
isInteractionLocked,
|
|
@@ -31402,7 +31443,7 @@ var AgentGUIConversationRailPane = memo8(
|
|
|
31402
31443
|
userProjects
|
|
31403
31444
|
});
|
|
31404
31445
|
const railActiveOverlay = runtimeDisplayProjection.activeOverlay;
|
|
31405
|
-
const displayConversations =
|
|
31446
|
+
const displayConversations = useMemo35(() => {
|
|
31406
31447
|
if (backendSearchActive) {
|
|
31407
31448
|
return backendSearchConversations;
|
|
31408
31449
|
}
|
|
@@ -31423,7 +31464,7 @@ var AgentGUIConversationRailPane = memo8(
|
|
|
31423
31464
|
runtimeRailSections,
|
|
31424
31465
|
runtimeSectionsEnabled
|
|
31425
31466
|
]);
|
|
31426
|
-
const filteredConversationResult =
|
|
31467
|
+
const filteredConversationResult = useMemo35(() => {
|
|
31427
31468
|
const startedAtMs = agentGuiPerfNowMs();
|
|
31428
31469
|
const query = conversationQuery.trim().toLowerCase();
|
|
31429
31470
|
const items = backendSearchActive ? displayConversations : !query ? displayConversations : displayConversations.filter(
|
|
@@ -31441,7 +31482,7 @@ var AgentGUIConversationRailPane = memo8(
|
|
|
31441
31482
|
uiLanguage
|
|
31442
31483
|
]);
|
|
31443
31484
|
const filteredConversations = filteredConversationResult.items;
|
|
31444
|
-
const groupedConversationResult =
|
|
31485
|
+
const groupedConversationResult = useMemo35(() => {
|
|
31445
31486
|
const startedAtMs = agentGuiPerfNowMs();
|
|
31446
31487
|
const query = conversationQuery.trim();
|
|
31447
31488
|
const rawGroups = backendSearchActive ? projectConversationRailSearchSections({
|
|
@@ -31494,7 +31535,7 @@ var AgentGUIConversationRailPane = memo8(
|
|
|
31494
31535
|
sectionAgentTargetFallbackId,
|
|
31495
31536
|
workspaceId
|
|
31496
31537
|
});
|
|
31497
|
-
const groupedConversationIdentityKey =
|
|
31538
|
+
const groupedConversationIdentityKey = useMemo35(
|
|
31498
31539
|
() => `${groupedConversations.map(
|
|
31499
31540
|
(section) => `${section.id}:${section.items.map((item) => item.id).join(",")}`
|
|
31500
31541
|
).join("|")}|active:${railActiveOverlay?.conversation.id ?? ""}`,
|
|
@@ -31559,7 +31600,7 @@ var AgentGUIConversationRailPane = memo8(
|
|
|
31559
31600
|
userProjects
|
|
31560
31601
|
});
|
|
31561
31602
|
const projectDragLocked = projectDragBaseLocked || isProjectMovePending;
|
|
31562
|
-
|
|
31603
|
+
useEffect30(() => {
|
|
31563
31604
|
return installProjectDragGlobalListeners();
|
|
31564
31605
|
}, [installProjectDragGlobalListeners]);
|
|
31565
31606
|
return /* @__PURE__ */ jsxs41(
|
|
@@ -31766,7 +31807,7 @@ var AgentGUIConversationRailPane = memo8(
|
|
|
31766
31807
|
);
|
|
31767
31808
|
|
|
31768
31809
|
// agent-gui/agentGuiNode/controller/useAgentGUIConversationRailQuery.ts
|
|
31769
|
-
import { useEffect as
|
|
31810
|
+
import { useEffect as useEffect31, useMemo as useMemo36, useRef as useRef40 } from "react";
|
|
31770
31811
|
|
|
31771
31812
|
// agent-gui/agentGuiNode/controller/agentGuiConversationRailDiagnostics.ts
|
|
31772
31813
|
var CONVERSATION_RAIL_SLOW_DIAGNOSTIC_THRESHOLD_MS = 250;
|
|
@@ -32883,13 +32924,13 @@ function useAgentGUIConversationRailQuery({
|
|
|
32883
32924
|
workspaceId
|
|
32884
32925
|
}) {
|
|
32885
32926
|
const runtime = useAgentActivityRuntime();
|
|
32886
|
-
const engine =
|
|
32927
|
+
const engine = useMemo36(
|
|
32887
32928
|
() => runtime.getSessionEngine(workspaceId),
|
|
32888
32929
|
[runtime, workspaceId]
|
|
32889
32930
|
);
|
|
32890
|
-
const activeConversationIdRef =
|
|
32931
|
+
const activeConversationIdRef = useRef40(activeConversationId);
|
|
32891
32932
|
activeConversationIdRef.current = activeConversationId;
|
|
32892
|
-
const controller =
|
|
32933
|
+
const controller = useMemo36(
|
|
32893
32934
|
() => new AgentGUIConversationRailQueryController({
|
|
32894
32935
|
engine,
|
|
32895
32936
|
getActiveConversationId: () => activeConversationIdRef.current,
|
|
@@ -32898,7 +32939,7 @@ function useAgentGUIConversationRailQuery({
|
|
|
32898
32939
|
}),
|
|
32899
32940
|
[engine, runtime, workspaceId]
|
|
32900
32941
|
);
|
|
32901
|
-
|
|
32942
|
+
useEffect31(() => {
|
|
32902
32943
|
const detach = controller.attach();
|
|
32903
32944
|
registerInteractionLockProbe?.(controller.isInteractionLocked);
|
|
32904
32945
|
return () => {
|
|
@@ -32906,7 +32947,7 @@ function useAgentGUIConversationRailQuery({
|
|
|
32906
32947
|
detach();
|
|
32907
32948
|
};
|
|
32908
32949
|
}, [controller, registerInteractionLockProbe]);
|
|
32909
|
-
|
|
32950
|
+
useEffect31(() => {
|
|
32910
32951
|
controller.configure({
|
|
32911
32952
|
conversationFilter,
|
|
32912
32953
|
previewMode,
|
|
@@ -32927,7 +32968,7 @@ function useAgentGUIConversationRailQuery({
|
|
|
32927
32968
|
identitySnapshot,
|
|
32928
32969
|
Object.is
|
|
32929
32970
|
);
|
|
32930
|
-
const requestedRailScopeKey =
|
|
32971
|
+
const requestedRailScopeKey = useMemo36(
|
|
32931
32972
|
() => resolveConversationRailQueryScope(workspaceId, {
|
|
32932
32973
|
conversationFilter,
|
|
32933
32974
|
previewMode,
|
|
@@ -32942,7 +32983,7 @@ function useAgentGUIConversationRailQuery({
|
|
|
32942
32983
|
workspaceId
|
|
32943
32984
|
]
|
|
32944
32985
|
);
|
|
32945
|
-
return
|
|
32986
|
+
return useMemo36(
|
|
32946
32987
|
() => ({
|
|
32947
32988
|
...querySnapshot,
|
|
32948
32989
|
isInteractionLocked: controller.isInteractionLocked,
|
|
@@ -32966,7 +33007,7 @@ function identitySnapshot(snapshot) {
|
|
|
32966
33007
|
import { jsx as jsx60 } from "react/jsx-runtime";
|
|
32967
33008
|
var AgentGUIConversationRailController = memo9(
|
|
32968
33009
|
function AgentGUIConversationRailController2(props) {
|
|
32969
|
-
const [conversationQuery, setConversationQuery] =
|
|
33010
|
+
const [conversationQuery, setConversationQuery] = useState32("");
|
|
32970
33011
|
const railQuery = useAgentGUIConversationRailQuery({
|
|
32971
33012
|
activeConversationId: props.activeConversationId,
|
|
32972
33013
|
conversationFilter: props.conversationFilter,
|
|
@@ -32993,15 +33034,15 @@ var AgentGUIConversationRailController = memo9(
|
|
|
32993
33034
|
import {
|
|
32994
33035
|
memo as memo12,
|
|
32995
33036
|
useCallback as useCallback53,
|
|
32996
|
-
useEffect as
|
|
32997
|
-
useMemo as
|
|
32998
|
-
useRef as
|
|
32999
|
-
useState as
|
|
33037
|
+
useEffect as useEffect34,
|
|
33038
|
+
useMemo as useMemo38,
|
|
33039
|
+
useRef as useRef43,
|
|
33040
|
+
useState as useState37
|
|
33000
33041
|
} from "react";
|
|
33001
33042
|
import { ScrollArea as ScrollArea2 } from "@tutti-os/ui-system/components";
|
|
33002
33043
|
|
|
33003
33044
|
// agent-gui/agentGuiNode/view/agentGUIDetailModelHelpers.ts
|
|
33004
|
-
import { useRef as
|
|
33045
|
+
import { useRef as useRef41 } from "react";
|
|
33005
33046
|
function commandAppSource(command) {
|
|
33006
33047
|
if (!command || typeof command !== "object" || !("source" in command)) {
|
|
33007
33048
|
return null;
|
|
@@ -33081,7 +33122,7 @@ function slashStatusesEqual(left, right) {
|
|
|
33081
33122
|
return (left.agentSessionId ?? null) === (right.agentSessionId ?? null) && (left.baseUrl ?? null) === (right.baseUrl ?? null) && (left.contextWindow?.usedTokens ?? null) === (right.contextWindow?.usedTokens ?? null) && (left.contextWindow?.totalTokens ?? null) === (right.contextWindow?.totalTokens ?? null) && slashStatusLimitsEqual(left.limits, right.limits) && Boolean(left.limitsLoading) === Boolean(right.limitsLoading) && Boolean(left.limitsUnavailable) === Boolean(right.limitsUnavailable);
|
|
33082
33123
|
}
|
|
33083
33124
|
function useStableSlashStatus(status) {
|
|
33084
|
-
const statusRef =
|
|
33125
|
+
const statusRef = useRef41(null);
|
|
33085
33126
|
if (statusRef.current === null || !slashStatusesEqual(statusRef.current, status)) {
|
|
33086
33127
|
statusRef.current = status;
|
|
33087
33128
|
}
|
|
@@ -33157,7 +33198,7 @@ import { ChevronsDown } from "lucide-react";
|
|
|
33157
33198
|
import { cn as cn8 } from "@tutti-os/ui-system";
|
|
33158
33199
|
|
|
33159
33200
|
// agent-gui/agentGuiNode/AgentGoalBanner.tsx
|
|
33160
|
-
import { useEffect as
|
|
33201
|
+
import { useEffect as useEffect32, useState as useState33 } from "react";
|
|
33161
33202
|
import { CirclePause, CirclePlay, Pencil as Pencil3, Target as Target3, Trash2 } from "lucide-react";
|
|
33162
33203
|
import { jsx as jsx61, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
33163
33204
|
var RESUMABLE_GOAL_STATUSES = /* @__PURE__ */ new Set([
|
|
@@ -33233,12 +33274,12 @@ function AgentGoalBanner({
|
|
|
33233
33274
|
onClearGoal
|
|
33234
33275
|
}) {
|
|
33235
33276
|
"use memo";
|
|
33236
|
-
const [editDraft, setEditDraft] =
|
|
33277
|
+
const [editDraft, setEditDraft] = useState33(null);
|
|
33237
33278
|
const normalizedStatus = normalizeGoalStatus(status);
|
|
33238
33279
|
const isActive = normalizedStatus === "" || normalizedStatus === "active";
|
|
33239
33280
|
const serverSeconds = optimistic ? null : typeof durationMs === "number" && durationMs >= 0 ? Math.floor(durationMs / 1e3) : isActive ? 0 : null;
|
|
33240
|
-
const [localElapsed, setLocalElapsed] =
|
|
33241
|
-
|
|
33281
|
+
const [localElapsed, setLocalElapsed] = useState33(0);
|
|
33282
|
+
useEffect32(() => {
|
|
33242
33283
|
setLocalElapsed(0);
|
|
33243
33284
|
if (!isActive || serverSeconds === null) {
|
|
33244
33285
|
return;
|
|
@@ -33518,7 +33559,7 @@ var AgentGUIBottomDockPane = memo10(function AgentGUIBottomDockPane2({
|
|
|
33518
33559
|
});
|
|
33519
33560
|
|
|
33520
33561
|
// agent-gui/agentGuiNode/view/AgentGUIContentToast.tsx
|
|
33521
|
-
import { useState as
|
|
33562
|
+
import { useState as useState34 } from "react";
|
|
33522
33563
|
import {
|
|
33523
33564
|
ToastProvider,
|
|
33524
33565
|
ToastRoot,
|
|
@@ -33530,7 +33571,7 @@ function AgentGUIContentToast({
|
|
|
33530
33571
|
insetTopPx,
|
|
33531
33572
|
message
|
|
33532
33573
|
}) {
|
|
33533
|
-
const [open, setOpen] =
|
|
33574
|
+
const [open, setOpen] = useState34(true);
|
|
33534
33575
|
return /* @__PURE__ */ jsxs44(ToastProvider, { children: [
|
|
33535
33576
|
/* @__PURE__ */ jsx63(
|
|
33536
33577
|
ToastRoot,
|
|
@@ -33619,10 +33660,10 @@ function setTimelineScrollTopWithUserTransition(element, top) {
|
|
|
33619
33660
|
// agent-gui/agentGuiNode/view/useAgentGUIDetailScroll.ts
|
|
33620
33661
|
import {
|
|
33621
33662
|
useCallback as useCallback52,
|
|
33622
|
-
useEffect as
|
|
33663
|
+
useEffect as useEffect33,
|
|
33623
33664
|
useLayoutEffect as useLayoutEffect7,
|
|
33624
|
-
useRef as
|
|
33625
|
-
useState as
|
|
33665
|
+
useRef as useRef42,
|
|
33666
|
+
useState as useState35
|
|
33626
33667
|
} from "react";
|
|
33627
33668
|
var AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX = 24;
|
|
33628
33669
|
var AGENT_GUI_TOP_HISTORY_PREFETCH_THRESHOLD_PX = 240;
|
|
@@ -33641,10 +33682,10 @@ function useAgentGUIDetailScroll(input) {
|
|
|
33641
33682
|
timelineScrollAnchorRef,
|
|
33642
33683
|
viewModel
|
|
33643
33684
|
} = input;
|
|
33644
|
-
const [isTimelineScrolledToTop, setIsTimelineScrolledToTop] =
|
|
33645
|
-
const [isTimelineScrolledToBottom, setIsTimelineScrolledToBottom] =
|
|
33646
|
-
const bottomLockOwnerRef =
|
|
33647
|
-
const userScrollAwayIntentConversationRef =
|
|
33685
|
+
const [isTimelineScrolledToTop, setIsTimelineScrolledToTop] = useState35(true);
|
|
33686
|
+
const [isTimelineScrolledToBottom, setIsTimelineScrolledToBottom] = useState35(true);
|
|
33687
|
+
const bottomLockOwnerRef = useRef42(null);
|
|
33688
|
+
const userScrollAwayIntentConversationRef = useRef42(null);
|
|
33648
33689
|
useLayoutEffect7(() => {
|
|
33649
33690
|
const timeline = timelineRef.current;
|
|
33650
33691
|
if (!timeline) {
|
|
@@ -33850,7 +33891,7 @@ function useAgentGUIDetailScroll(input) {
|
|
|
33850
33891
|
timelineConversationId,
|
|
33851
33892
|
viewModel.rail.activeConversationId
|
|
33852
33893
|
]);
|
|
33853
|
-
|
|
33894
|
+
useEffect33(() => {
|
|
33854
33895
|
const timeline = timelineRef.current;
|
|
33855
33896
|
const activeConversationId = timelineConversationId;
|
|
33856
33897
|
if (!timeline || !activeConversationId) {
|
|
@@ -33961,7 +34002,7 @@ function useAgentGUIDetailScroll(input) {
|
|
|
33961
34002
|
}
|
|
33962
34003
|
|
|
33963
34004
|
// agent-gui/agentGuiNode/view/useAgentGUIDetailModel.tsx
|
|
33964
|
-
import { useMemo as
|
|
34005
|
+
import { useMemo as useMemo37 } from "react";
|
|
33965
34006
|
|
|
33966
34007
|
// app/renderer/components/icons/UnavailableChatIcon.tsx
|
|
33967
34008
|
import { jsx as jsx65 } from "react/jsx-runtime";
|
|
@@ -33981,15 +34022,15 @@ function UnavailableChatIcon(props) {
|
|
|
33981
34022
|
}
|
|
33982
34023
|
|
|
33983
34024
|
// agent-gui/agentGuiNode/view/useAgentGUITimelineTransition.ts
|
|
33984
|
-
import { useLayoutEffect as useLayoutEffect8, useState as
|
|
34025
|
+
import { useLayoutEffect as useLayoutEffect8, useState as useState36 } from "react";
|
|
33985
34026
|
var AGENT_GUI_TIMELINE_SKELETON_DELAY_MS = 300;
|
|
33986
34027
|
function useAgentGUITimelineTransition(input) {
|
|
33987
34028
|
const activeConversationId = input.activeConversationId;
|
|
33988
|
-
const [committedTimeline, setCommittedTimeline] =
|
|
34029
|
+
const [committedTimeline, setCommittedTimeline] = useState36(() => ({
|
|
33989
34030
|
conversation: input.conversation,
|
|
33990
34031
|
conversationId: activeConversationId
|
|
33991
34032
|
}));
|
|
33992
|
-
const [revealedSkeletonConversationId, setRevealedSkeletonConversationId] =
|
|
34033
|
+
const [revealedSkeletonConversationId, setRevealedSkeletonConversationId] = useState36(null);
|
|
33993
34034
|
const transitionPending = activeConversationId !== null && input.availability === "loading" && (!input.conversation || input.conversation.rows.length === 0);
|
|
33994
34035
|
useLayoutEffect8(() => {
|
|
33995
34036
|
if (!transitionPending || activeConversationId === null) {
|
|
@@ -34055,11 +34096,11 @@ function useAgentGUIDetailModel(input) {
|
|
|
34055
34096
|
const emptyProviderReadinessGate = !hasActiveConversation ? selectedAgentTargetComingSoon ? { status: "coming_soon" } : viewModel.readiness.providerReadinessGate : null;
|
|
34056
34097
|
const activePrompt = viewModel.interaction.pendingInteractivePrompt ?? viewModel.interaction.pendingApproval;
|
|
34057
34098
|
const activePromptRequestId = activePrompt?.requestId ?? null;
|
|
34058
|
-
const sessionChrome =
|
|
34099
|
+
const sessionChrome = useMemo37(
|
|
34059
34100
|
() => ({ ...viewModel.interaction.sessionChrome, approval: null }),
|
|
34060
34101
|
[viewModel.interaction.sessionChrome]
|
|
34061
34102
|
);
|
|
34062
|
-
const rawSlashStatus =
|
|
34103
|
+
const rawSlashStatus = useMemo37(
|
|
34063
34104
|
() => resolveSlashStatus({
|
|
34064
34105
|
rawState: viewModel.interaction.sessionChrome.rawState,
|
|
34065
34106
|
limits: slashStatusLimits,
|
|
@@ -34076,7 +34117,7 @@ function useAgentGUIDetailModel(input) {
|
|
|
34076
34117
|
]
|
|
34077
34118
|
);
|
|
34078
34119
|
const slashStatus = useStableSlashStatus(rawSlashStatus);
|
|
34079
|
-
const displayedInlineNotice =
|
|
34120
|
+
const displayedInlineNotice = useMemo37(() => {
|
|
34080
34121
|
const inlineNotice = viewModel.interaction.inlineNotice;
|
|
34081
34122
|
const inlineNoticeMessage = inlineNotice?.message.trim() ?? "";
|
|
34082
34123
|
if (!inlineNotice || inlineNoticeMessage === "") {
|
|
@@ -34100,7 +34141,7 @@ function useAgentGUIDetailModel(input) {
|
|
|
34100
34141
|
viewModel.readiness.activeLiveState,
|
|
34101
34142
|
viewModel.interaction.inlineNotice
|
|
34102
34143
|
]);
|
|
34103
|
-
const inlineNoticeChrome =
|
|
34144
|
+
const inlineNoticeChrome = useMemo37(() => {
|
|
34104
34145
|
if (!displayedInlineNotice) {
|
|
34105
34146
|
return null;
|
|
34106
34147
|
}
|
|
@@ -34152,7 +34193,7 @@ function useAgentGUIDetailModel(input) {
|
|
|
34152
34193
|
isSubmitting: viewModel.composer.isSubmitting,
|
|
34153
34194
|
isUnavailable: viewModel.readiness.activeLiveState === "failed"
|
|
34154
34195
|
});
|
|
34155
|
-
const conversationFlowLabels =
|
|
34196
|
+
const conversationFlowLabels = useMemo37(
|
|
34156
34197
|
() => ({
|
|
34157
34198
|
thinkingLabel: labels.thinkingLabel,
|
|
34158
34199
|
toolCallsLabel: labels.toolCallsLabel,
|
|
@@ -34168,7 +34209,7 @@ function useAgentGUIDetailModel(input) {
|
|
|
34168
34209
|
labels.userMessageLocator
|
|
34169
34210
|
]
|
|
34170
34211
|
);
|
|
34171
|
-
const conversationFlowEmpty =
|
|
34212
|
+
const conversationFlowEmpty = useMemo37(
|
|
34172
34213
|
() => showUnavailableChatEmpty ? /* @__PURE__ */ jsxs46(
|
|
34173
34214
|
"div",
|
|
34174
34215
|
{
|
|
@@ -34182,7 +34223,7 @@ function useAgentGUIDetailModel(input) {
|
|
|
34182
34223
|
) : /* @__PURE__ */ jsx66(Fragment19, {}),
|
|
34183
34224
|
[labels.conversationUnavailable, showUnavailableChatEmpty]
|
|
34184
34225
|
);
|
|
34185
|
-
const chromeLabels =
|
|
34226
|
+
const chromeLabels = useMemo37(
|
|
34186
34227
|
() => ({
|
|
34187
34228
|
approvalRequired: labels.approvalRequired,
|
|
34188
34229
|
authRequired: labels.authRequired,
|
|
@@ -34203,7 +34244,7 @@ function useAgentGUIDetailModel(input) {
|
|
|
34203
34244
|
viewModel.composer.isCancelPending
|
|
34204
34245
|
]
|
|
34205
34246
|
);
|
|
34206
|
-
const goalBannerLabels =
|
|
34247
|
+
const goalBannerLabels = useMemo37(
|
|
34207
34248
|
() => ({
|
|
34208
34249
|
titleActive: labels.goalTitleActive,
|
|
34209
34250
|
titlePaused: labels.goalTitlePaused,
|
|
@@ -34233,7 +34274,7 @@ function useAgentGUIDetailModel(input) {
|
|
|
34233
34274
|
labels.goalClearAction
|
|
34234
34275
|
]
|
|
34235
34276
|
);
|
|
34236
|
-
const interactivePromptLabels =
|
|
34277
|
+
const interactivePromptLabels = useMemo37(
|
|
34237
34278
|
() => ({
|
|
34238
34279
|
approvalLead: labels.approvalRequired,
|
|
34239
34280
|
fileChangeApprovalLead: labels.fileChangeApprovalRequired,
|
|
@@ -34273,7 +34314,7 @@ function useAgentGUIDetailModel(input) {
|
|
|
34273
34314
|
labels.planImplementationSkip
|
|
34274
34315
|
]
|
|
34275
34316
|
);
|
|
34276
|
-
const composerLabels =
|
|
34317
|
+
const composerLabels = useMemo37(
|
|
34277
34318
|
() => ({
|
|
34278
34319
|
send: labels.send,
|
|
34279
34320
|
modelLabel: labels.modelLabel,
|
|
@@ -34634,20 +34675,19 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
34634
34675
|
selectProjectDirectory,
|
|
34635
34676
|
onRequestGitBranches,
|
|
34636
34677
|
onRequestComposerFocus,
|
|
34637
|
-
contextMentionProviders,
|
|
34638
34678
|
workspaceAppIcons = EMPTY_WORKSPACE_APP_ICONS4,
|
|
34639
34679
|
renderProviderUnavailableState
|
|
34640
34680
|
}) {
|
|
34641
34681
|
"use memo";
|
|
34642
|
-
const timelineRef =
|
|
34643
|
-
const bottomDockRef =
|
|
34644
|
-
const timelineScrollAnchorRef =
|
|
34645
|
-
const submittedPromptScrollConversationRef =
|
|
34646
|
-
const pendingPrependScrollAnchorRef =
|
|
34682
|
+
const timelineRef = useRef43(null);
|
|
34683
|
+
const bottomDockRef = useRef43(null);
|
|
34684
|
+
const timelineScrollAnchorRef = useRef43(null);
|
|
34685
|
+
const submittedPromptScrollConversationRef = useRef43(null);
|
|
34686
|
+
const pendingPrependScrollAnchorRef = useRef43(null);
|
|
34647
34687
|
const [
|
|
34648
34688
|
bottomDockDismissedPromptRequestId,
|
|
34649
34689
|
setBottomDockDismissedPromptRequestId
|
|
34650
|
-
] =
|
|
34690
|
+
] = useState37(null);
|
|
34651
34691
|
const {
|
|
34652
34692
|
activePromptRequestId,
|
|
34653
34693
|
bottomDockLiftedPrompt,
|
|
@@ -34821,7 +34861,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
34821
34861
|
)
|
|
34822
34862
|
}) : void 0
|
|
34823
34863
|
);
|
|
34824
|
-
const bottomDockComposerProps =
|
|
34864
|
+
const bottomDockComposerProps = useMemo38(
|
|
34825
34865
|
() => ({
|
|
34826
34866
|
workspaceId: viewModel.shell.workspaceId,
|
|
34827
34867
|
workspacePath: viewModel.shell.workspacePath,
|
|
@@ -34893,8 +34933,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
34893
34933
|
prepareExternalPromptFiles,
|
|
34894
34934
|
promptAssetLimit,
|
|
34895
34935
|
selectProjectDirectory: stableSelectProjectDirectory,
|
|
34896
|
-
onRequestGitBranches: stableRequestGitBranches
|
|
34897
|
-
contextMentionProviders
|
|
34936
|
+
onRequestGitBranches: stableRequestGitBranches
|
|
34898
34937
|
}),
|
|
34899
34938
|
[
|
|
34900
34939
|
canQueueWhileBusy,
|
|
@@ -34927,7 +34966,6 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
34927
34966
|
composerActivePrompt,
|
|
34928
34967
|
editQueuedPrompt,
|
|
34929
34968
|
onCapabilitySettingsRequest,
|
|
34930
|
-
contextMentionProviders,
|
|
34931
34969
|
removeQueuedPrompt,
|
|
34932
34970
|
prepareExternalPromptFiles,
|
|
34933
34971
|
promptAssetLimit,
|
|
@@ -34973,7 +35011,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
34973
35011
|
selectHomeComposerAgentTargetAndFocus
|
|
34974
35012
|
]
|
|
34975
35013
|
);
|
|
34976
|
-
const emptyHeroComposerProps =
|
|
35014
|
+
const emptyHeroComposerProps = useMemo38(
|
|
34977
35015
|
() => ({
|
|
34978
35016
|
...bottomDockComposerProps,
|
|
34979
35017
|
layoutMode: "hero"
|
|
@@ -34995,7 +35033,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
34995
35033
|
viewModel.composer.drainingQueuedPromptId ?? "",
|
|
34996
35034
|
viewModel.interaction.isRespondingApproval ? "1" : "0"
|
|
34997
35035
|
].join("|");
|
|
34998
|
-
|
|
35036
|
+
useEffect34(() => {
|
|
34999
35037
|
setBottomDockDismissedPromptRequestId(null);
|
|
35000
35038
|
}, [activePromptRequestId]);
|
|
35001
35039
|
const {
|
|
@@ -35124,7 +35162,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
35124
35162
|
});
|
|
35125
35163
|
|
|
35126
35164
|
// agent-gui/agentGuiNode/view/AgentGUIRenameConversationDialog.tsx
|
|
35127
|
-
import { memo as memo13, useCallback as useCallback54, useEffect as
|
|
35165
|
+
import { memo as memo13, useCallback as useCallback54, useEffect as useEffect35, useRef as useRef44, useState as useState38 } from "react";
|
|
35128
35166
|
import { ConfirmationDialog as ConfirmationDialog3, Input as Input2 } from "@tutti-os/ui-system";
|
|
35129
35167
|
import { jsx as jsx68, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
35130
35168
|
var AgentGUIRenameConversationDialog = memo13(
|
|
@@ -35136,13 +35174,13 @@ var AgentGUIRenameConversationDialog = memo13(
|
|
|
35136
35174
|
onRename
|
|
35137
35175
|
}) {
|
|
35138
35176
|
"use memo";
|
|
35139
|
-
const [title, setTitle] =
|
|
35140
|
-
const [isSaving, setIsSaving] =
|
|
35141
|
-
const isSavingRef =
|
|
35142
|
-
const armedPointerActionRef =
|
|
35143
|
-
const inputRef =
|
|
35177
|
+
const [title, setTitle] = useState38("");
|
|
35178
|
+
const [isSaving, setIsSaving] = useState38(false);
|
|
35179
|
+
const isSavingRef = useRef44(false);
|
|
35180
|
+
const armedPointerActionRef = useRef44(null);
|
|
35181
|
+
const inputRef = useRef44(null);
|
|
35144
35182
|
const trimmedTitle = title.trim();
|
|
35145
|
-
|
|
35183
|
+
useEffect35(() => {
|
|
35146
35184
|
if (!open || !conversation) {
|
|
35147
35185
|
isSavingRef.current = false;
|
|
35148
35186
|
armedPointerActionRef.current = null;
|
|
@@ -35152,7 +35190,7 @@ var AgentGUIRenameConversationDialog = memo13(
|
|
|
35152
35190
|
}
|
|
35153
35191
|
setTitle(conversation.title);
|
|
35154
35192
|
}, [conversation, open]);
|
|
35155
|
-
|
|
35193
|
+
useEffect35(() => {
|
|
35156
35194
|
if (!open) {
|
|
35157
35195
|
return;
|
|
35158
35196
|
}
|
|
@@ -35369,11 +35407,11 @@ function AgentGUIReferencePickerSurface({
|
|
|
35369
35407
|
}
|
|
35370
35408
|
|
|
35371
35409
|
// agent-gui/agentGuiNode/view/AgentTargetSetupRoot.tsx
|
|
35372
|
-
import { useCallback as useCallback55, useMemo as
|
|
35410
|
+
import { useCallback as useCallback55, useMemo as useMemo39 } from "react";
|
|
35373
35411
|
import { jsx as jsx70, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
35374
35412
|
function useAgentTargetSetupRoot(input) {
|
|
35375
35413
|
const { preferences } = useAgentGUIProviderRailPreferences();
|
|
35376
|
-
const homeTargetProjection =
|
|
35414
|
+
const homeTargetProjection = useMemo39(
|
|
35377
35415
|
() => projectAgentGUIManagedHomeTargets({
|
|
35378
35416
|
agentTargets: input.agentTargets,
|
|
35379
35417
|
preferences,
|
|
@@ -35428,7 +35466,7 @@ function AgentTargetSetupRoot({
|
|
|
35428
35466
|
}
|
|
35429
35467
|
|
|
35430
35468
|
// agent-gui/agentGuiNode/view/useAgentGUIWorkspaceReferencePicker.ts
|
|
35431
|
-
import { useCallback as useCallback56, useMemo as
|
|
35469
|
+
import { useCallback as useCallback56, useMemo as useMemo40, useRef as useRef45, useState as useState39 } from "react";
|
|
35432
35470
|
import { createRichTextMentionHref } from "@tutti-os/ui-rich-text/core";
|
|
35433
35471
|
function useAgentGUIWorkspaceReferencePicker(input) {
|
|
35434
35472
|
const {
|
|
@@ -35441,10 +35479,10 @@ function useAgentGUIWorkspaceReferencePicker(input) {
|
|
|
35441
35479
|
workspaceFileReferenceAdapter,
|
|
35442
35480
|
workspaceFileReferenceCopy
|
|
35443
35481
|
} = input;
|
|
35444
|
-
const [workspaceReferencePickerOpen, setWorkspaceReferencePickerOpen] =
|
|
35445
|
-
const [workspaceReferencePickerTarget, setWorkspaceReferencePickerTarget] =
|
|
35446
|
-
const workspaceReferencePickerResolverRef =
|
|
35447
|
-
const emptyReferencePickResult =
|
|
35482
|
+
const [workspaceReferencePickerOpen, setWorkspaceReferencePickerOpen] = useState39(false);
|
|
35483
|
+
const [workspaceReferencePickerTarget, setWorkspaceReferencePickerTarget] = useState39(null);
|
|
35484
|
+
const workspaceReferencePickerResolverRef = useRef45(null);
|
|
35485
|
+
const emptyReferencePickResult = useMemo40(
|
|
35448
35486
|
() => ({ files: [], mentionItems: [] }),
|
|
35449
35487
|
[]
|
|
35450
35488
|
);
|
|
@@ -35558,7 +35596,7 @@ function useAgentGUIWorkspaceReferencePicker(input) {
|
|
|
35558
35596
|
}
|
|
35559
35597
|
|
|
35560
35598
|
// agent-gui/agentGuiNode/engagement/useAgentGUINodeEngagement.ts
|
|
35561
|
-
import { useRef as
|
|
35599
|
+
import { useRef as useRef47 } from "react";
|
|
35562
35600
|
|
|
35563
35601
|
// agent-gui/agentGuiNode/engagement/projectAgentGUIEngagementContext.ts
|
|
35564
35602
|
function projectAgentGUIEngagementContext(viewModel, composerReady) {
|
|
@@ -35590,7 +35628,7 @@ function createAgentGUIEngagementContextKey(input) {
|
|
|
35590
35628
|
}
|
|
35591
35629
|
|
|
35592
35630
|
// agent-gui/agentGuiNode/engagement/useAgentGUIPanelEngagement.ts
|
|
35593
|
-
import { useEffect as
|
|
35631
|
+
import { useEffect as useEffect36, useRef as useRef46 } from "react";
|
|
35594
35632
|
|
|
35595
35633
|
// agent-gui/agentGuiNode/engagement/AgentGUIPanelEngagementController.ts
|
|
35596
35634
|
var AGENT_GUI_PANEL_EXPOSURE_DWELL_MS = 1e3;
|
|
@@ -35744,10 +35782,10 @@ function documentIsVisible() {
|
|
|
35744
35782
|
|
|
35745
35783
|
// agent-gui/agentGuiNode/engagement/useAgentGUIPanelEngagement.ts
|
|
35746
35784
|
function useAgentGUIPanelEngagement(input) {
|
|
35747
|
-
const inputRef =
|
|
35748
|
-
const controllerRef =
|
|
35749
|
-
const intersectionRatioRef =
|
|
35750
|
-
const engagementRef =
|
|
35785
|
+
const inputRef = useRef46(input);
|
|
35786
|
+
const controllerRef = useRef46(null);
|
|
35787
|
+
const intersectionRatioRef = useRef46(0);
|
|
35788
|
+
const engagementRef = useRef46(null);
|
|
35751
35789
|
inputRef.current = input;
|
|
35752
35790
|
if (!engagementRef.current) {
|
|
35753
35791
|
engagementRef.current = {
|
|
@@ -35760,7 +35798,7 @@ function useAgentGUIPanelEngagement(input) {
|
|
|
35760
35798
|
};
|
|
35761
35799
|
}
|
|
35762
35800
|
const engagementEnabled = Boolean(input.onEvent) && !input.previewMode;
|
|
35763
|
-
|
|
35801
|
+
useEffect36(() => {
|
|
35764
35802
|
const element = input.elementRef.current;
|
|
35765
35803
|
if (!engagementEnabled || !element) return void 0;
|
|
35766
35804
|
const controller = new AgentGUIPanelEngagementController({
|
|
@@ -35787,7 +35825,7 @@ function useAgentGUIPanelEngagement(input) {
|
|
|
35787
35825
|
|
|
35788
35826
|
// agent-gui/agentGuiNode/engagement/useAgentGUINodeEngagement.ts
|
|
35789
35827
|
function useAgentGUINodeEngagement(input) {
|
|
35790
|
-
const layoutElementRef =
|
|
35828
|
+
const layoutElementRef = useRef47(null);
|
|
35791
35829
|
const projected = projectAgentGUIEngagementContext(
|
|
35792
35830
|
input.viewModel,
|
|
35793
35831
|
input.composerReady
|
|
@@ -35806,7 +35844,7 @@ function useAgentGUINodeEngagement(input) {
|
|
|
35806
35844
|
}
|
|
35807
35845
|
|
|
35808
35846
|
// agent-gui/agentGuiNode/view/useAgentGUIExternalRequests.ts
|
|
35809
|
-
import { useCallback as useCallback57, useEffect as
|
|
35847
|
+
import { useCallback as useCallback57, useEffect as useEffect37, useRef as useRef48 } from "react";
|
|
35810
35848
|
function resolveSessionActionConversation(viewModel, agentSessionId) {
|
|
35811
35849
|
const active = viewModel.rail.activeConversation;
|
|
35812
35850
|
if (!agentSessionId) {
|
|
@@ -35832,21 +35870,21 @@ function useAgentGUIExternalRequests(input) {
|
|
|
35832
35870
|
viewModel
|
|
35833
35871
|
} = input;
|
|
35834
35872
|
const agentHostApi = useOptionalAgentHostApi();
|
|
35835
|
-
const railInteractionLockProbeRef =
|
|
35873
|
+
const railInteractionLockProbeRef = useRef48(null);
|
|
35836
35874
|
const registerRailInteractionLockProbe = useCallback57(
|
|
35837
35875
|
(probe) => {
|
|
35838
35876
|
railInteractionLockProbeRef.current = probe;
|
|
35839
35877
|
},
|
|
35840
35878
|
[]
|
|
35841
35879
|
);
|
|
35842
|
-
const handledNewConversationRequestSequenceRef =
|
|
35880
|
+
const handledNewConversationRequestSequenceRef = useRef48(
|
|
35843
35881
|
newConversationRequestSequence
|
|
35844
35882
|
);
|
|
35845
|
-
const handledSessionActionRequestSequenceRef =
|
|
35883
|
+
const handledSessionActionRequestSequenceRef = useRef48(
|
|
35846
35884
|
sessionActionRequest?.sequence ?? null
|
|
35847
35885
|
);
|
|
35848
35886
|
const copyConversationValue = useAgentGUIConversationCopyAction(labels);
|
|
35849
|
-
|
|
35887
|
+
useEffect37(() => {
|
|
35850
35888
|
if (newConversationRequestSequence !== null && handledNewConversationRequestSequenceRef.current !== newConversationRequestSequence) {
|
|
35851
35889
|
handledNewConversationRequestSequenceRef.current = newConversationRequestSequence;
|
|
35852
35890
|
if (!createConversationDisabled) {
|
|
@@ -35943,7 +35981,6 @@ function AgentGUINodeView({
|
|
|
35943
35981
|
selectProjectDirectory,
|
|
35944
35982
|
workspaceFileReferenceCopy = null,
|
|
35945
35983
|
onRequestGitBranches = null,
|
|
35946
|
-
contextMentionProviders,
|
|
35947
35984
|
referenceSourceAggregator = null,
|
|
35948
35985
|
resolveWorkspaceReferenceEntryIconUrl,
|
|
35949
35986
|
resolveMentionReferenceTarget = null,
|
|
@@ -35962,16 +35999,16 @@ function AgentGUINodeView({
|
|
|
35962
35999
|
previewMode,
|
|
35963
36000
|
viewModel
|
|
35964
36001
|
});
|
|
35965
|
-
const [providerManagerOpen, setProviderManagerOpen] =
|
|
35966
|
-
const railResizeInteractionRef =
|
|
35967
|
-
const [isRailResizing, setIsRailResizing] =
|
|
35968
|
-
const [railResizeWidthPx, setRailResizeWidthPx] =
|
|
36002
|
+
const [providerManagerOpen, setProviderManagerOpen] = useState40(false);
|
|
36003
|
+
const railResizeInteractionRef = useRef49(null);
|
|
36004
|
+
const [isRailResizing, setIsRailResizing] = useState40(false);
|
|
36005
|
+
const [railResizeWidthPx, setRailResizeWidthPx] = useState40(
|
|
35969
36006
|
null
|
|
35970
36007
|
);
|
|
35971
36008
|
const [
|
|
35972
36009
|
localComposerFocusRequestSequence,
|
|
35973
36010
|
setLocalComposerFocusRequestSequence
|
|
35974
|
-
] =
|
|
36011
|
+
] = useState40(0);
|
|
35975
36012
|
const {
|
|
35976
36013
|
closeWorkspaceReferencePicker,
|
|
35977
36014
|
confirmWorkspaceReferenceBundles,
|
|
@@ -36051,7 +36088,7 @@ function AgentGUINodeView({
|
|
|
36051
36088
|
viewModel.composer.composerSettings.selectedProjectPath
|
|
36052
36089
|
]
|
|
36053
36090
|
);
|
|
36054
|
-
const effectiveWorkspaceAppIcons =
|
|
36091
|
+
const effectiveWorkspaceAppIcons = useMemo41(
|
|
36055
36092
|
() => mergeWorkspaceAppIconsFromCommands({
|
|
36056
36093
|
commands: viewModel.composer.availableCommands,
|
|
36057
36094
|
workspaceAppIcons,
|
|
@@ -36132,7 +36169,7 @@ function AgentGUINodeView({
|
|
|
36132
36169
|
},
|
|
36133
36170
|
[onConversationRailWidthChanged]
|
|
36134
36171
|
);
|
|
36135
|
-
|
|
36172
|
+
useEffect38(() => {
|
|
36136
36173
|
if (isRailResizing || railResizeWidthPx === null) {
|
|
36137
36174
|
return;
|
|
36138
36175
|
}
|
|
@@ -36184,7 +36221,7 @@ function AgentGUINodeView({
|
|
|
36184
36221
|
const effectiveRailConfigProvider = railConfigProvider === void 0 ? viewModel.shell.data.provider : railConfigProvider;
|
|
36185
36222
|
const effectiveRailSlashStatusLimits = railSlashStatusLimits ?? slashStatusLimits;
|
|
36186
36223
|
const shouldShowProviderRailConfigButton = viewModel.rail.conversationFilter.kind === "all" || viewModel.rail.selectedAgentTarget?.disabled !== true;
|
|
36187
|
-
const effectiveProviderAuthAccountLabel =
|
|
36224
|
+
const effectiveProviderAuthAccountLabel = useMemo41(() => {
|
|
36188
36225
|
const provider = (effectiveRailConfigProvider ?? viewModel.shell.data.provider)?.trim() ?? "";
|
|
36189
36226
|
if (!provider) {
|
|
36190
36227
|
return null;
|
|
@@ -36215,8 +36252,8 @@ function AgentGUINodeView({
|
|
|
36215
36252
|
const openAgentSettings = useCallback58(() => {
|
|
36216
36253
|
openWorkspaceSettingsPanel({ section: "agent" });
|
|
36217
36254
|
}, []);
|
|
36218
|
-
const [renameConversationTarget, setRenameConversationTarget] =
|
|
36219
|
-
const [renameConversationDialogOpen, setRenameConversationDialogOpen] =
|
|
36255
|
+
const [renameConversationTarget, setRenameConversationTarget] = useState40(null);
|
|
36256
|
+
const [renameConversationDialogOpen, setRenameConversationDialogOpen] = useState40(false);
|
|
36220
36257
|
const requestRenameConversation = useCallback58(
|
|
36221
36258
|
(conversation) => {
|
|
36222
36259
|
setRenameConversationTarget(conversation);
|
|
@@ -36235,7 +36272,7 @@ function AgentGUINodeView({
|
|
|
36235
36272
|
uiLanguage,
|
|
36236
36273
|
viewModel
|
|
36237
36274
|
});
|
|
36238
|
-
const conversationRailStoreState =
|
|
36275
|
+
const conversationRailStoreState = useMemo41(
|
|
36239
36276
|
() => ({
|
|
36240
36277
|
activeConversation: viewModel.rail.activeConversation,
|
|
36241
36278
|
activeConversationId: viewModel.rail.activeConversationId,
|
|
@@ -36315,7 +36352,7 @@ function AgentGUINodeView({
|
|
|
36315
36352
|
const targetPresentationKey = agentTargetPresentationKey(
|
|
36316
36353
|
viewModel.rail.agentTargets
|
|
36317
36354
|
);
|
|
36318
|
-
const agentTargetPresentations =
|
|
36355
|
+
const agentTargetPresentations = useMemo41(
|
|
36319
36356
|
() => projectAgentTargetPresentations({
|
|
36320
36357
|
agentTargets: viewModel.rail.agentTargets,
|
|
36321
36358
|
workspaceId: viewModel.shell.workspaceId
|
|
@@ -36491,7 +36528,6 @@ function AgentGUINodeView({
|
|
|
36491
36528
|
selectProjectDirectory,
|
|
36492
36529
|
onRequestGitBranches,
|
|
36493
36530
|
onRequestComposerFocus: requestComposerFocus,
|
|
36494
|
-
contextMentionProviders,
|
|
36495
36531
|
workspaceAppIcons: effectiveWorkspaceAppIcons,
|
|
36496
36532
|
workspaceUserProjectI18n,
|
|
36497
36533
|
renderProviderUnavailableState,
|
|
@@ -36713,10 +36749,10 @@ function appendDockProbeUsageLines(probe, lines, isLoadingUsage, t) {
|
|
|
36713
36749
|
import { Info as Info2 } from "lucide-react";
|
|
36714
36750
|
import {
|
|
36715
36751
|
useCallback as useCallback59,
|
|
36716
|
-
useEffect as
|
|
36752
|
+
useEffect as useEffect39,
|
|
36717
36753
|
useLayoutEffect as useLayoutEffect9,
|
|
36718
|
-
useRef as
|
|
36719
|
-
useState as
|
|
36754
|
+
useRef as useRef50,
|
|
36755
|
+
useState as useState41
|
|
36720
36756
|
} from "react";
|
|
36721
36757
|
import { createPortal as createPortal5 } from "react-dom";
|
|
36722
36758
|
import { Fragment as Fragment21, jsx as jsx72, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
@@ -36753,10 +36789,10 @@ function AgentProbeInfoPopover({
|
|
|
36753
36789
|
onOpen
|
|
36754
36790
|
}) {
|
|
36755
36791
|
"use memo";
|
|
36756
|
-
const anchorRef =
|
|
36757
|
-
const popoverRef =
|
|
36758
|
-
const [isOpen, setIsOpen] =
|
|
36759
|
-
const [popoverStyle, setPopoverStyle] =
|
|
36792
|
+
const anchorRef = useRef50(null);
|
|
36793
|
+
const popoverRef = useRef50(null);
|
|
36794
|
+
const [isOpen, setIsOpen] = useState41(false);
|
|
36795
|
+
const [popoverStyle, setPopoverStyle] = useState41(null);
|
|
36760
36796
|
const openPopover = useCallback59(() => {
|
|
36761
36797
|
if (!isOpen) {
|
|
36762
36798
|
onOpen?.();
|
|
@@ -36796,7 +36832,7 @@ function AgentProbeInfoPopover({
|
|
|
36796
36832
|
maxWidth: availableWidth
|
|
36797
36833
|
});
|
|
36798
36834
|
}, []);
|
|
36799
|
-
|
|
36835
|
+
useEffect39(() => {
|
|
36800
36836
|
if (!isOpen) {
|
|
36801
36837
|
return;
|
|
36802
36838
|
}
|
|
@@ -36960,34 +36996,74 @@ function areAgentGUINodePropsEqual(previous, next) {
|
|
|
36960
36996
|
const pc = previous.hostCapabilities, nc = next.hostCapabilities;
|
|
36961
36997
|
const pa = previous.hostActions, na = next.hostActions;
|
|
36962
36998
|
const ps = previous.renderSlots, ns = next.renderSlots;
|
|
36963
|
-
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.prepareExternalPromptFiles === nw.prepareExternalPromptFiles && pw.promptAssetLimit === nw.promptAssetLimit && pw.referenceSourceAggregator === nw.referenceSourceAggregator && 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.previewMode === nf.previewMode && 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.agentProbes === nr.agentProbes && pr.onProbeDemandChange === nr.onProbeDemandChange && pr.onProbeRefreshRequest === nr.onProbeRefreshRequest && pc.capabilityMenuState === nc.capabilityMenuState && pc.accountMenuState === nc.accountMenuState && 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.defaultAgentTargetId === nc.defaultAgentTargetId && pc.providerAuthAccountLabels === nc.providerAuthAccountLabels && pc.
|
|
36999
|
+
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.prepareExternalPromptFiles === nw.prepareExternalPromptFiles && pw.promptAssetLimit === nw.promptAssetLimit && pw.referenceSourceAggregator === nw.referenceSourceAggregator && 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.previewMode === nf.previewMode && 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.agentProbes === nr.agentProbes && pr.onProbeDemandChange === nr.onProbeDemandChange && pr.onProbeRefreshRequest === nr.onProbeRefreshRequest && pc.capabilityMenuState === nc.capabilityMenuState && pc.accountMenuState === nc.accountMenuState && 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.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 && ps.providerRailEmpty === ns.providerRailEmpty && ps.providerUnavailableState === ns.providerUnavailableState && ps.sidebarFooter === ns.sidebarFooter;
|
|
36964
37000
|
}
|
|
36965
37001
|
|
|
36966
37002
|
// agent-gui/agentGuiNode/AgentGUIMentionServiceBoundary.tsx
|
|
37003
|
+
import { useMemo as useMemo42 } from "react";
|
|
36967
37004
|
import {
|
|
36968
37005
|
RichTextMentionServiceProvider,
|
|
36969
|
-
|
|
36970
|
-
useRichTextMentionService
|
|
37006
|
+
useRichTextMentionService as useRichTextMentionService2
|
|
36971
37007
|
} from "@tutti-os/ui-rich-text/editor";
|
|
37008
|
+
|
|
37009
|
+
// agent-gui/agentGuiNode/composeAgentGUIMentionService.ts
|
|
37010
|
+
function composeAgentGUIMentionService(input) {
|
|
37011
|
+
const { inheritedService, surfaceService } = input;
|
|
37012
|
+
const inheritedProviderIds = new Set(
|
|
37013
|
+
inheritedService.listProviders().map((provider) => provider.id)
|
|
37014
|
+
);
|
|
37015
|
+
const serviceForIdentity = (identity) => inheritedProviderIds.has(identity.providerId) ? inheritedService : surfaceService;
|
|
37016
|
+
return {
|
|
37017
|
+
listProviders: () => surfaceService.listProviders(),
|
|
37018
|
+
getProvider: (providerId) => surfaceService.getProvider(providerId),
|
|
37019
|
+
listTriggerConfigs: () => surfaceService.listTriggerConfigs(),
|
|
37020
|
+
query: (queryInput) => surfaceService.query(queryInput),
|
|
37021
|
+
resolve: (identity) => serviceForIdentity(identity).resolve(identity),
|
|
37022
|
+
getSnapshot: (identity) => serviceForIdentity(identity).getSnapshot(identity),
|
|
37023
|
+
invalidate(selector) {
|
|
37024
|
+
inheritedService.invalidate(selector);
|
|
37025
|
+
surfaceService.invalidate(selector);
|
|
37026
|
+
},
|
|
37027
|
+
subscribe(listener, identity) {
|
|
37028
|
+
if (identity) {
|
|
37029
|
+
return serviceForIdentity(identity).subscribe(listener, identity);
|
|
37030
|
+
}
|
|
37031
|
+
const unsubscribeInherited = inheritedService.subscribe(listener);
|
|
37032
|
+
const unsubscribeSurface = surfaceService.subscribe(listener);
|
|
37033
|
+
return () => {
|
|
37034
|
+
unsubscribeInherited();
|
|
37035
|
+
unsubscribeSurface();
|
|
37036
|
+
};
|
|
37037
|
+
},
|
|
37038
|
+
// The boundary does not own either service. Their creators retain disposal
|
|
37039
|
+
// authority so composing a view cannot tear down workspace subscriptions.
|
|
37040
|
+
dispose() {
|
|
37041
|
+
}
|
|
37042
|
+
};
|
|
37043
|
+
}
|
|
37044
|
+
|
|
37045
|
+
// agent-gui/agentGuiNode/AgentGUIMentionServiceBoundary.tsx
|
|
36972
37046
|
import { jsx as jsx73 } from "react/jsx-runtime";
|
|
36973
37047
|
function AgentGUIMentionServiceBoundary({
|
|
36974
37048
|
children,
|
|
36975
|
-
legacyProviders,
|
|
36976
37049
|
service
|
|
36977
37050
|
}) {
|
|
36978
|
-
const inheritedService =
|
|
36979
|
-
const effectiveService =
|
|
36980
|
-
|
|
36981
|
-
|
|
36982
|
-
|
|
36983
|
-
|
|
37051
|
+
const inheritedService = useRichTextMentionService2();
|
|
37052
|
+
const effectiveService = useMemo42(
|
|
37053
|
+
() => service && inheritedService && service !== inheritedService ? composeAgentGUIMentionService({
|
|
37054
|
+
inheritedService,
|
|
37055
|
+
surfaceService: service
|
|
37056
|
+
}) : service,
|
|
37057
|
+
[inheritedService, service]
|
|
37058
|
+
);
|
|
37059
|
+
if (!effectiveService || effectiveService === inheritedService) {
|
|
36984
37060
|
return children;
|
|
36985
37061
|
}
|
|
36986
|
-
return
|
|
37062
|
+
return /* @__PURE__ */ jsx73(RichTextMentionServiceProvider, { service: effectiveService, children });
|
|
36987
37063
|
}
|
|
36988
37064
|
|
|
36989
37065
|
// agent-gui/agentGuiNode/AgentGUINode.labels.ts
|
|
36990
|
-
import { useMemo as
|
|
37066
|
+
import { useMemo as useMemo43 } from "react";
|
|
36991
37067
|
|
|
36992
37068
|
// agent-gui/agentGuiNode/model/agentHomeSuggestions.ts
|
|
36993
37069
|
import { createRichTextMentionHref as createRichTextMentionHref2 } from "@tutti-os/ui-rich-text/core";
|
|
@@ -37171,7 +37247,7 @@ function agentGUIProviderManagerLabels(t) {
|
|
|
37171
37247
|
|
|
37172
37248
|
// agent-gui/agentGuiNode/AgentGUINode.labels.ts
|
|
37173
37249
|
function useAgentGUIConversationRailLabels(t) {
|
|
37174
|
-
return
|
|
37250
|
+
return useMemo43(() => agentGUIConversationRailLabels(t), [t]);
|
|
37175
37251
|
}
|
|
37176
37252
|
var workspaceFileReferenceLocaleKeyByPickerKey = {
|
|
37177
37253
|
"actions.cancel": "common.cancel",
|
|
@@ -37221,7 +37297,7 @@ function useAgentGUIViewLabels(input) {
|
|
|
37221
37297
|
workspaceAppIcons,
|
|
37222
37298
|
workspaceId
|
|
37223
37299
|
} = input;
|
|
37224
|
-
return
|
|
37300
|
+
return useMemo43(
|
|
37225
37301
|
() => ({
|
|
37226
37302
|
initialPlaceholder: t("agentHost.agentGui.initialPlaceholder", {
|
|
37227
37303
|
provider: displayProviderLabel
|
|
@@ -37853,7 +37929,7 @@ function useAgentGUIViewLabels(input) {
|
|
|
37853
37929
|
);
|
|
37854
37930
|
}
|
|
37855
37931
|
function useAgentGUIWorkspaceFileReferenceCopy(t) {
|
|
37856
|
-
return
|
|
37932
|
+
return useMemo43(
|
|
37857
37933
|
() => ({
|
|
37858
37934
|
t(key, values) {
|
|
37859
37935
|
const localeKey = workspaceFileReferenceLocaleKeyByPickerKey[key];
|
|
@@ -37996,7 +38072,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
37996
38072
|
conversationRailAutoCollapseWidthPx = null
|
|
37997
38073
|
} = frame;
|
|
37998
38074
|
const railAutoCollapseWidthPx = conversationRailAutoCollapseWidthPx ?? void 0;
|
|
37999
|
-
const widthRef =
|
|
38075
|
+
const widthRef = useRef51(width);
|
|
38000
38076
|
widthRef.current = width;
|
|
38001
38077
|
const {
|
|
38002
38078
|
composerAppend: composerAppendRequest = null,
|
|
@@ -38022,7 +38098,6 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
38022
38098
|
providerReadinessGates = null,
|
|
38023
38099
|
defaultAgentTargetId = null,
|
|
38024
38100
|
providerAuthAccountLabels,
|
|
38025
|
-
contextMentionProviders,
|
|
38026
38101
|
mentionService,
|
|
38027
38102
|
workspaceAppIcons,
|
|
38028
38103
|
disabledHomeSuggestions,
|
|
@@ -38061,11 +38136,11 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
38061
38136
|
sidebarFooter: renderSidebarFooter
|
|
38062
38137
|
} = renderSlots;
|
|
38063
38138
|
const { i18n, locale, t } = useTranslation();
|
|
38064
|
-
const workspaceUserProjectI18n =
|
|
38139
|
+
const workspaceUserProjectI18n = useMemo44(
|
|
38065
38140
|
() => createWorkspaceUserProjectI18nRuntime(i18n),
|
|
38066
38141
|
[i18n]
|
|
38067
38142
|
);
|
|
38068
|
-
const workspaceFileManagerI18n =
|
|
38143
|
+
const workspaceFileManagerI18n = useMemo44(
|
|
38069
38144
|
() => typeof i18n?.t === "function" ? createWorkspaceFileManagerI18nRuntime(i18n) : null,
|
|
38070
38145
|
[i18n]
|
|
38071
38146
|
);
|
|
@@ -38127,7 +38202,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
38127
38202
|
const isConversationRailManuallyCollapsed = state.conversationRailCollapsed === true;
|
|
38128
38203
|
const isConversationRailAutoCollapsed = shouldAutoCollapseAgentGUIConversationRail(width, railAutoCollapseWidthPx);
|
|
38129
38204
|
const isConversationRailCollapsed = isConversationRailManuallyCollapsed || isConversationRailAutoCollapsed;
|
|
38130
|
-
const minSize =
|
|
38205
|
+
const minSize = useMemo44(
|
|
38131
38206
|
() => ({
|
|
38132
38207
|
...resolveCanonicalNodeMinSize("agentGui"),
|
|
38133
38208
|
width: AGENT_GUI_COLLAPSED_MIN_WIDTH_PX
|
|
@@ -38218,7 +38293,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
38218
38293
|
},
|
|
38219
38294
|
[actions, onUpdateNode, previewMode]
|
|
38220
38295
|
);
|
|
38221
|
-
const viewActions =
|
|
38296
|
+
const viewActions = useMemo44(
|
|
38222
38297
|
() => ({
|
|
38223
38298
|
...actions,
|
|
38224
38299
|
createConversation: handleCreateConversation
|
|
@@ -38241,21 +38316,21 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
38241
38316
|
const workspaceFileReferenceCopy = useAgentGUIWorkspaceFileReferenceCopy(t);
|
|
38242
38317
|
const windowTitle = title;
|
|
38243
38318
|
const activeProbeProvider = activeProvider;
|
|
38244
|
-
const railStatusProvider =
|
|
38319
|
+
const railStatusProvider = useMemo44(
|
|
38245
38320
|
() => resolveAgentGUIRailStatusProvider({
|
|
38246
38321
|
conversationFilter: viewModel.rail.conversationFilter,
|
|
38247
38322
|
agentTargets: viewModel.rail.agentTargets
|
|
38248
38323
|
}),
|
|
38249
38324
|
[viewModel.rail.conversationFilter, viewModel.rail.agentTargets]
|
|
38250
38325
|
);
|
|
38251
|
-
const activeAgentProbe =
|
|
38326
|
+
const activeAgentProbe = useMemo44(
|
|
38252
38327
|
() => findWorkspaceAgentProbeForDockProvider(
|
|
38253
38328
|
workspaceAgentProbes?.snapshot ?? null,
|
|
38254
38329
|
activeProbeProvider
|
|
38255
38330
|
),
|
|
38256
38331
|
[activeProbeProvider, workspaceAgentProbes?.snapshot]
|
|
38257
38332
|
);
|
|
38258
|
-
const railAgentProbe =
|
|
38333
|
+
const railAgentProbe = useMemo44(
|
|
38259
38334
|
() => railStatusProvider ? findWorkspaceAgentProbeForDockProvider(
|
|
38260
38335
|
workspaceAgentProbes?.snapshot ?? null,
|
|
38261
38336
|
railStatusProvider
|
|
@@ -38264,7 +38339,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
38264
38339
|
);
|
|
38265
38340
|
const canonicalSlashStatusQuotas = viewModel.detail.usage?.quotas ?? EMPTY_SLASH_STATUS_QUOTAS;
|
|
38266
38341
|
const slashStatusQuotaSource = canonicalSlashStatusQuotas.length > 0 ? canonicalSlashStatusQuotas : activeAgentProbe?.usage?.quotas && activeAgentProbe.usage.quotas.length > 0 ? activeAgentProbe.usage.quotas : EMPTY_SLASH_STATUS_QUOTAS;
|
|
38267
|
-
const slashStatusLimits =
|
|
38342
|
+
const slashStatusLimits = useMemo44(
|
|
38268
38343
|
() => slashStatusLimitsFromQuotas(
|
|
38269
38344
|
slashStatusQuotaSource,
|
|
38270
38345
|
viewModel.composer.composerSettings.selectedModelValue ?? viewModel.composer.composerSettings.draftSettings.model,
|
|
@@ -38279,7 +38354,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
38279
38354
|
);
|
|
38280
38355
|
const slashStatusLimitsUnavailable = slashStatusLimits.length === 0 && canonicalSlashStatusQuotas.length === 0 && !(workspaceAgentProbes?.isLoadingUsage ?? false) && (Boolean(activeAgentProbe?.usage) || Boolean(activeAgentProbe?.lastError));
|
|
38281
38356
|
const railSlashStatusQuotaSource = railStatusProvider && railAgentProbe?.usage?.quotas && railAgentProbe.usage.quotas.length > 0 ? railAgentProbe.usage.quotas : EMPTY_SLASH_STATUS_QUOTAS;
|
|
38282
|
-
const railSlashStatusLimits =
|
|
38357
|
+
const railSlashStatusLimits = useMemo44(
|
|
38283
38358
|
() => slashStatusLimitsFromQuotas(railSlashStatusQuotaSource, null, t),
|
|
38284
38359
|
[railSlashStatusQuotaSource, t]
|
|
38285
38360
|
);
|
|
@@ -38287,7 +38362,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
38287
38362
|
const slashStatusUsageCapturedAtUnixMs = slashStatusUsageProbe?.usage?.capturedAtUnixMs ?? null;
|
|
38288
38363
|
const slashStatusUsageDidFail = workspaceAgentProbes?.usageLoadFailed ?? false;
|
|
38289
38364
|
const slashStatusUsageAttempted = Boolean(slashStatusUsageProbe?.usage) || Boolean(slashStatusUsageProbe?.lastError);
|
|
38290
|
-
const agentProbeLines =
|
|
38365
|
+
const agentProbeLines = useMemo44(() => {
|
|
38291
38366
|
return buildDockAgentProbeTooltipLines(
|
|
38292
38367
|
activeAgentProbe,
|
|
38293
38368
|
workspaceAgentProbes?.isLoadingAvailability ?? false,
|
|
@@ -38303,7 +38378,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
38303
38378
|
workspaceAgentProbes?.isLoadingUsage,
|
|
38304
38379
|
t
|
|
38305
38380
|
]);
|
|
38306
|
-
|
|
38381
|
+
useEffect40(() => {
|
|
38307
38382
|
if (previewMode || !onAgentProbeDemandChange) {
|
|
38308
38383
|
return;
|
|
38309
38384
|
}
|
|
@@ -38313,7 +38388,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
38313
38388
|
onAgentProbeDemandChange(null, probeSourceId);
|
|
38314
38389
|
};
|
|
38315
38390
|
}, [activeProbeProvider, nodeId, onAgentProbeDemandChange, previewMode]);
|
|
38316
|
-
|
|
38391
|
+
useEffect40(() => {
|
|
38317
38392
|
if (previewMode || !onAgentProbeDemandChange || !railStatusProvider || railStatusProvider === activeProbeProvider) {
|
|
38318
38393
|
return;
|
|
38319
38394
|
}
|
|
@@ -38365,146 +38440,138 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
38365
38440
|
previewMode,
|
|
38366
38441
|
railStatusProvider
|
|
38367
38442
|
]);
|
|
38368
|
-
return /* @__PURE__ */ jsx74(
|
|
38369
|
-
|
|
38443
|
+
return /* @__PURE__ */ jsx74(AgentGUIMentionServiceBoundary, { service: mentionService, children: /* @__PURE__ */ jsx74(
|
|
38444
|
+
WorkspaceNodeWindow,
|
|
38370
38445
|
{
|
|
38371
|
-
|
|
38372
|
-
|
|
38373
|
-
|
|
38374
|
-
|
|
38375
|
-
|
|
38376
|
-
|
|
38377
|
-
|
|
38378
|
-
|
|
38379
|
-
|
|
38380
|
-
|
|
38381
|
-
|
|
38382
|
-
|
|
38383
|
-
|
|
38384
|
-
|
|
38385
|
-
|
|
38386
|
-
|
|
38387
|
-
|
|
38388
|
-
|
|
38389
|
-
|
|
38390
|
-
|
|
38391
|
-
|
|
38392
|
-
|
|
38393
|
-
|
|
38394
|
-
|
|
38395
|
-
|
|
38396
|
-
|
|
38397
|
-
|
|
38398
|
-
),
|
|
38399
|
-
|
|
38400
|
-
|
|
38446
|
+
nodeId,
|
|
38447
|
+
kind: "agentGui",
|
|
38448
|
+
title: windowTitle,
|
|
38449
|
+
titleIcon: null,
|
|
38450
|
+
position,
|
|
38451
|
+
width,
|
|
38452
|
+
height,
|
|
38453
|
+
desktopSize,
|
|
38454
|
+
minSize,
|
|
38455
|
+
appearance: embedded ? "embedded" : "window",
|
|
38456
|
+
className: "size-full bg-transparent",
|
|
38457
|
+
bodyClassName: `${AgentGUINode_styles_default.shell} nodrag size-full min-h-0 min-w-0 !bg-transparent p-0`,
|
|
38458
|
+
hideHeader: embedded,
|
|
38459
|
+
titleAccessory: /* @__PURE__ */ jsxs52("span", { className: "inline-flex flex-none items-center gap-1", children: [
|
|
38460
|
+
/* @__PURE__ */ jsx74(
|
|
38461
|
+
AgentProbeInfoPopover,
|
|
38462
|
+
{
|
|
38463
|
+
lines: agentProbeLines,
|
|
38464
|
+
testId: "agent-gui-window-agent-info",
|
|
38465
|
+
className: AgentGUINode_styles_default.windowAgentInfo,
|
|
38466
|
+
onOpen: handleAgentProbeInfoOpen
|
|
38467
|
+
}
|
|
38468
|
+
),
|
|
38469
|
+
/* @__PURE__ */ jsx74(
|
|
38470
|
+
CanvasNodeGhostIconButton,
|
|
38471
|
+
{
|
|
38472
|
+
"aria-label": isConversationRailCollapsed ? t("agentHost.agentGui.expandConversationRail") : t("agentHost.agentGui.collapseConversationRail"),
|
|
38473
|
+
title: isConversationRailCollapsed ? t("agentHost.agentGui.expandConversationRail") : t("agentHost.agentGui.collapseConversationRail"),
|
|
38474
|
+
"data-testid": "agent-gui-toggle-conversation-rail",
|
|
38475
|
+
"data-agent-gui-conversation-rail-collapsed": isConversationRailCollapsed ? "true" : "false",
|
|
38476
|
+
"data-agent-gui-conversation-rail-auto-collapsed": isConversationRailAutoCollapsed ? "true" : "false",
|
|
38477
|
+
onClick: (event) => {
|
|
38478
|
+
event.stopPropagation();
|
|
38479
|
+
handleConversationRailToggle();
|
|
38480
|
+
},
|
|
38481
|
+
children: /* @__PURE__ */ jsx74(
|
|
38482
|
+
CanvasNodePanelLinedIcon,
|
|
38401
38483
|
{
|
|
38402
|
-
|
|
38403
|
-
|
|
38404
|
-
"
|
|
38405
|
-
"data-agent-gui-conversation-rail-collapsed": isConversationRailCollapsed ? "true" : "false",
|
|
38406
|
-
"data-agent-gui-conversation-rail-auto-collapsed": isConversationRailAutoCollapsed ? "true" : "false",
|
|
38407
|
-
onClick: (event) => {
|
|
38408
|
-
event.stopPropagation();
|
|
38409
|
-
handleConversationRailToggle();
|
|
38410
|
-
},
|
|
38411
|
-
children: /* @__PURE__ */ jsx74(
|
|
38412
|
-
CanvasNodePanelLinedIcon,
|
|
38413
|
-
{
|
|
38414
|
-
width: 18,
|
|
38415
|
-
height: 18,
|
|
38416
|
-
"aria-hidden": "true"
|
|
38417
|
-
}
|
|
38418
|
-
)
|
|
38484
|
+
width: 18,
|
|
38485
|
+
height: 18,
|
|
38486
|
+
"aria-hidden": "true"
|
|
38419
38487
|
}
|
|
38420
38488
|
)
|
|
38421
|
-
] }),
|
|
38422
|
-
onClose,
|
|
38423
|
-
onResize,
|
|
38424
|
-
isMaximized,
|
|
38425
|
-
isMuted,
|
|
38426
|
-
hideMaximizeButton: true,
|
|
38427
|
-
onMinimize,
|
|
38428
|
-
onToggleMaximize,
|
|
38429
|
-
children: (renderFrame) => {
|
|
38430
|
-
const renderedWidth = renderFrame.size.width;
|
|
38431
|
-
const isRenderedConversationRailCollapsed = isConversationRailCollapsed || shouldAutoCollapseAgentGUIConversationRail(
|
|
38432
|
-
renderedWidth,
|
|
38433
|
-
railAutoCollapseWidthPx
|
|
38434
|
-
);
|
|
38435
|
-
return /* @__PURE__ */ jsx74(
|
|
38436
|
-
AgentGUINodeView,
|
|
38437
|
-
{
|
|
38438
|
-
viewModel,
|
|
38439
|
-
renderSidebarFooter,
|
|
38440
|
-
renderProviderRailEmpty,
|
|
38441
|
-
renderProviderUnavailableState,
|
|
38442
|
-
providerRailAllPresentation,
|
|
38443
|
-
actions: viewActions,
|
|
38444
|
-
isActive,
|
|
38445
|
-
isVisible,
|
|
38446
|
-
onEngagementEvent,
|
|
38447
|
-
composerFocusRequestSequence,
|
|
38448
|
-
newConversationRequestSequence,
|
|
38449
|
-
sessionActionRequest,
|
|
38450
|
-
slashStatusLimits,
|
|
38451
|
-
slashStatusLimitsLoading: workspaceAgentProbes?.isLoadingUsage ?? false,
|
|
38452
|
-
slashStatusLimitsUnavailable,
|
|
38453
|
-
railConfigProvider: railStatusProvider,
|
|
38454
|
-
railSlashStatusLimits,
|
|
38455
|
-
slashStatusUsageCapturedAtUnixMs,
|
|
38456
|
-
slashStatusUsageDidFail,
|
|
38457
|
-
slashStatusUsageAttempted,
|
|
38458
|
-
providerAuthAccountLabels,
|
|
38459
|
-
onAgentConfigMenuOpen: handleAgentConfigMenuOpen,
|
|
38460
|
-
onAgentUsageRefresh: handleAgentUsageRefresh,
|
|
38461
|
-
onSlashStatusOpen: handleAgentProbeInfoOpen,
|
|
38462
|
-
previewMode,
|
|
38463
|
-
onLinkAction: handleLinkAction,
|
|
38464
|
-
onHandoffConversation,
|
|
38465
|
-
capabilityMenuState,
|
|
38466
|
-
onCapabilitySettingsRequest,
|
|
38467
|
-
onAgentProviderLogin: onAgentProviderLogin ? handleAgentProviderLogin : void 0,
|
|
38468
|
-
onAgentEnvPanelOpen,
|
|
38469
|
-
accountMenuState,
|
|
38470
|
-
conversationRailCollapsed: isRenderedConversationRailCollapsed,
|
|
38471
|
-
conversationRailWidthPx: clampAgentGUIConversationRailWidthPx(
|
|
38472
|
-
state.conversationRailWidthPx,
|
|
38473
|
-
renderedWidth
|
|
38474
|
-
),
|
|
38475
|
-
conversationRailMinWidthPx: AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,
|
|
38476
|
-
conversationRailMaxWidthPx: resolveAgentGUIConversationRailMaxWidthPx(
|
|
38477
|
-
renderedWidth
|
|
38478
|
-
),
|
|
38479
|
-
detailMinWidthPx: AGENT_GUI_DETAIL_MIN_WIDTH_PX,
|
|
38480
|
-
uiLanguage: locale,
|
|
38481
|
-
onWorkspaceFileReferencesAdded: onWorkspaceFileReferencesAdded ? handleWorkspaceFileReferencesAdded : void 0,
|
|
38482
|
-
prepareExternalPromptFiles,
|
|
38483
|
-
promptAssetLimit,
|
|
38484
|
-
onConversationRailWidthChanged: handleConversationRailWidthChanged,
|
|
38485
|
-
labels,
|
|
38486
|
-
conversationRailLabels,
|
|
38487
|
-
workspaceUserProjectI18n,
|
|
38488
|
-
workspaceFileManagerCopy: workspaceFileManagerI18n,
|
|
38489
|
-
workspaceFileReferenceAdapter,
|
|
38490
|
-
onOpenConversationWindow,
|
|
38491
|
-
onRequestGitBranches,
|
|
38492
|
-
selectProjectDirectory,
|
|
38493
|
-
referenceSourceAggregator,
|
|
38494
|
-
resolveWorkspaceReferenceEntryIconUrl,
|
|
38495
|
-
resolveMentionReferenceTarget,
|
|
38496
|
-
resolveWorkspaceReferenceInitialTarget,
|
|
38497
|
-
workspaceFileReferenceCopy,
|
|
38498
|
-
contextMentionProviders,
|
|
38499
|
-
workspaceAppIcons,
|
|
38500
|
-
referenceProvenanceFilter
|
|
38501
|
-
}
|
|
38502
|
-
);
|
|
38503
38489
|
}
|
|
38504
|
-
|
|
38505
|
-
)
|
|
38490
|
+
)
|
|
38491
|
+
] }),
|
|
38492
|
+
onClose,
|
|
38493
|
+
onResize,
|
|
38494
|
+
isMaximized,
|
|
38495
|
+
isMuted,
|
|
38496
|
+
hideMaximizeButton: true,
|
|
38497
|
+
onMinimize,
|
|
38498
|
+
onToggleMaximize,
|
|
38499
|
+
children: (renderFrame) => {
|
|
38500
|
+
const renderedWidth = renderFrame.size.width;
|
|
38501
|
+
const isRenderedConversationRailCollapsed = isConversationRailCollapsed || shouldAutoCollapseAgentGUIConversationRail(
|
|
38502
|
+
renderedWidth,
|
|
38503
|
+
railAutoCollapseWidthPx
|
|
38504
|
+
);
|
|
38505
|
+
return /* @__PURE__ */ jsx74(
|
|
38506
|
+
AgentGUINodeView,
|
|
38507
|
+
{
|
|
38508
|
+
viewModel,
|
|
38509
|
+
renderSidebarFooter,
|
|
38510
|
+
renderProviderRailEmpty,
|
|
38511
|
+
renderProviderUnavailableState,
|
|
38512
|
+
providerRailAllPresentation,
|
|
38513
|
+
actions: viewActions,
|
|
38514
|
+
isActive,
|
|
38515
|
+
isVisible,
|
|
38516
|
+
onEngagementEvent,
|
|
38517
|
+
composerFocusRequestSequence,
|
|
38518
|
+
newConversationRequestSequence,
|
|
38519
|
+
sessionActionRequest,
|
|
38520
|
+
slashStatusLimits,
|
|
38521
|
+
slashStatusLimitsLoading: workspaceAgentProbes?.isLoadingUsage ?? false,
|
|
38522
|
+
slashStatusLimitsUnavailable,
|
|
38523
|
+
railConfigProvider: railStatusProvider,
|
|
38524
|
+
railSlashStatusLimits,
|
|
38525
|
+
slashStatusUsageCapturedAtUnixMs,
|
|
38526
|
+
slashStatusUsageDidFail,
|
|
38527
|
+
slashStatusUsageAttempted,
|
|
38528
|
+
providerAuthAccountLabels,
|
|
38529
|
+
onAgentConfigMenuOpen: handleAgentConfigMenuOpen,
|
|
38530
|
+
onAgentUsageRefresh: handleAgentUsageRefresh,
|
|
38531
|
+
onSlashStatusOpen: handleAgentProbeInfoOpen,
|
|
38532
|
+
previewMode,
|
|
38533
|
+
onLinkAction: handleLinkAction,
|
|
38534
|
+
onHandoffConversation,
|
|
38535
|
+
capabilityMenuState,
|
|
38536
|
+
onCapabilitySettingsRequest,
|
|
38537
|
+
onAgentProviderLogin: onAgentProviderLogin ? handleAgentProviderLogin : void 0,
|
|
38538
|
+
onAgentEnvPanelOpen,
|
|
38539
|
+
accountMenuState,
|
|
38540
|
+
conversationRailCollapsed: isRenderedConversationRailCollapsed,
|
|
38541
|
+
conversationRailWidthPx: clampAgentGUIConversationRailWidthPx(
|
|
38542
|
+
state.conversationRailWidthPx,
|
|
38543
|
+
renderedWidth
|
|
38544
|
+
),
|
|
38545
|
+
conversationRailMinWidthPx: AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,
|
|
38546
|
+
conversationRailMaxWidthPx: resolveAgentGUIConversationRailMaxWidthPx(
|
|
38547
|
+
renderedWidth
|
|
38548
|
+
),
|
|
38549
|
+
detailMinWidthPx: AGENT_GUI_DETAIL_MIN_WIDTH_PX,
|
|
38550
|
+
uiLanguage: locale,
|
|
38551
|
+
onWorkspaceFileReferencesAdded: onWorkspaceFileReferencesAdded ? handleWorkspaceFileReferencesAdded : void 0,
|
|
38552
|
+
prepareExternalPromptFiles,
|
|
38553
|
+
promptAssetLimit,
|
|
38554
|
+
onConversationRailWidthChanged: handleConversationRailWidthChanged,
|
|
38555
|
+
labels,
|
|
38556
|
+
conversationRailLabels,
|
|
38557
|
+
workspaceUserProjectI18n,
|
|
38558
|
+
workspaceFileManagerCopy: workspaceFileManagerI18n,
|
|
38559
|
+
workspaceFileReferenceAdapter,
|
|
38560
|
+
onOpenConversationWindow,
|
|
38561
|
+
onRequestGitBranches,
|
|
38562
|
+
selectProjectDirectory,
|
|
38563
|
+
referenceSourceAggregator,
|
|
38564
|
+
resolveWorkspaceReferenceEntryIconUrl,
|
|
38565
|
+
resolveMentionReferenceTarget,
|
|
38566
|
+
resolveWorkspaceReferenceInitialTarget,
|
|
38567
|
+
workspaceFileReferenceCopy,
|
|
38568
|
+
workspaceAppIcons,
|
|
38569
|
+
referenceProvenanceFilter
|
|
38570
|
+
}
|
|
38571
|
+
);
|
|
38572
|
+
}
|
|
38506
38573
|
}
|
|
38507
|
-
);
|
|
38574
|
+
) });
|
|
38508
38575
|
}, areAgentGUINodePropsEqual);
|
|
38509
38576
|
|
|
38510
38577
|
// AgentGUI.tsx
|
|
@@ -38521,16 +38588,16 @@ var AgentGUI = memo15(function AgentGUI2({
|
|
|
38521
38588
|
locale,
|
|
38522
38589
|
...props
|
|
38523
38590
|
}) {
|
|
38524
|
-
const normalizedAgents =
|
|
38591
|
+
const normalizedAgents = useMemo45(
|
|
38525
38592
|
() => normalizeAgentGUIAgents(agentDirectory.agents),
|
|
38526
38593
|
[agentDirectory.agents]
|
|
38527
38594
|
);
|
|
38528
|
-
const agentTargets =
|
|
38595
|
+
const agentTargets = useMemo45(
|
|
38529
38596
|
() => projectAgentGUIAgentsToInternalTargets(normalizedAgents),
|
|
38530
38597
|
[normalizedAgents]
|
|
38531
38598
|
);
|
|
38532
38599
|
const effectiveHandoffAgentDirectory = handoffAgentDirectory ?? agentDirectory;
|
|
38533
|
-
const normalizedHandoffAgents =
|
|
38600
|
+
const normalizedHandoffAgents = useMemo45(
|
|
38534
38601
|
() => effectiveHandoffAgentDirectory.agents === agentDirectory.agents ? normalizedAgents : normalizeAgentGUIAgents(effectiveHandoffAgentDirectory.agents),
|
|
38535
38602
|
[
|
|
38536
38603
|
agentDirectory.agents,
|
|
@@ -38538,13 +38605,13 @@ var AgentGUI = memo15(function AgentGUI2({
|
|
|
38538
38605
|
normalizedAgents
|
|
38539
38606
|
]
|
|
38540
38607
|
);
|
|
38541
|
-
const handoffAgentTargets =
|
|
38608
|
+
const handoffAgentTargets = useMemo45(
|
|
38542
38609
|
() => normalizedHandoffAgents === normalizedAgents ? agentTargets : projectAgentGUIAgentsToInternalTargets(normalizedHandoffAgents),
|
|
38543
38610
|
[agentTargets, normalizedAgents, normalizedHandoffAgents]
|
|
38544
38611
|
);
|
|
38545
38612
|
const hostCapabilities = props.hostCapabilities;
|
|
38546
38613
|
const renderSlots = props.renderSlots;
|
|
38547
|
-
const nodeHostCapabilities =
|
|
38614
|
+
const nodeHostCapabilities = useMemo45(
|
|
38548
38615
|
() => ({
|
|
38549
38616
|
...hostCapabilities,
|
|
38550
38617
|
agentTargets,
|
|
@@ -38567,7 +38634,7 @@ var AgentGUI = memo15(function AgentGUI2({
|
|
|
38567
38634
|
hostCapabilities
|
|
38568
38635
|
]
|
|
38569
38636
|
);
|
|
38570
|
-
const nodeRenderSlots =
|
|
38637
|
+
const nodeRenderSlots = useMemo45(
|
|
38571
38638
|
() => ({
|
|
38572
38639
|
...renderSlots,
|
|
38573
38640
|
providerRailEmpty: renderAgentsEmpty
|
|
@@ -38600,4 +38667,4 @@ export {
|
|
|
38600
38667
|
resolveAgentGUIAgentTarget,
|
|
38601
38668
|
AgentGUI
|
|
38602
38669
|
};
|
|
38603
|
-
//# sourceMappingURL=chunk-
|
|
38670
|
+
//# sourceMappingURL=chunk-QRBQ6OHG.js.map
|