@tutti-os/agent-gui 0.0.167 → 0.0.168
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -2
- package/dist/{AgentRichTextReadonly-PLUYTH5Y.js → AgentRichTextReadonly-WOIEQ673.js} +5 -5
- package/dist/agent-conversation/index.d.ts +2 -2
- package/dist/agent-conversation/index.js +7 -7
- package/dist/agent-gui.d.ts +3 -2
- package/dist/agent-gui.js +15 -15
- package/dist/agent-message-center/index.js +6 -6
- package/dist/{agentGuiNodeTypes-BXaOdqzS.d.ts → agentGuiNodeTypes-CXL3ISqC.d.ts} +1 -1
- package/dist/agents.d.ts +1 -1
- package/dist/agents.js +1 -1
- package/dist/{chunk-W3EI5EWM.js → chunk-42KTGN4W.js} +2 -2
- package/dist/{chunk-GJBSQWIA.js → chunk-42W6JENH.js} +52 -72
- package/dist/chunk-42W6JENH.js.map +1 -0
- package/dist/{chunk-T7DN6RYO.js → chunk-5EHKHIFG.js} +3 -3
- package/dist/{chunk-7W4WEFAY.js → chunk-7M6STXDS.js} +111 -88
- package/dist/chunk-7M6STXDS.js.map +1 -0
- package/dist/{chunk-HIPSKKXB.js → chunk-BHLX4ZFU.js} +2 -2
- package/dist/{chunk-YB5DZYLI.js → chunk-C7RY5XMJ.js} +61 -16
- package/dist/chunk-C7RY5XMJ.js.map +1 -0
- package/dist/{chunk-66JZ7BQM.js → chunk-CX6XXG6R.js} +4 -1
- package/dist/chunk-CX6XXG6R.js.map +1 -0
- package/dist/{chunk-4SLHS5X5.js → chunk-ES5LNRP4.js} +95 -93
- package/dist/chunk-ES5LNRP4.js.map +1 -0
- package/dist/{chunk-W4UPFP2N.js → chunk-EZ6E3LVP.js} +2 -2
- package/dist/{chunk-A6UMKVKW.js → chunk-GMALB4L6.js} +4 -4
- package/dist/{chunk-OXCWE3B5.js → chunk-J4RQ2RTM.js} +3 -1
- package/dist/chunk-J4RQ2RTM.js.map +1 -0
- package/dist/{chunk-MJNX2SC6.js → chunk-JQUFRZ2P.js} +4 -4
- package/dist/{chunk-FVACDLAJ.js → chunk-KDRU3NBW.js} +4 -4
- package/dist/{chunk-ZEYVTTUK.js → chunk-OUOVA353.js} +4 -4
- package/dist/{chunk-KUTB4EGX.js → chunk-QEOAZW53.js} +2 -2
- package/dist/context-mention-palette/index.js +7 -7
- package/dist/{contribution--lqIXGqn.d.ts → contribution-DfA5SxBL.d.ts} +2 -0
- package/dist/i18n/index.d.ts +2 -0
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +8 -0
- package/dist/index.js +15 -15
- package/dist/mention-search.js +5 -5
- package/dist/{types-DVmB_kyD.d.ts → types-CWFDZVkv.d.ts} +3 -0
- package/dist/workbench/contribution.d.ts +1 -1
- package/dist/workbench/contribution.js +4 -4
- package/dist/workbench/index.d.ts +2 -2
- package/dist/workbench/index.js +4 -4
- package/dist/workbench/sessionTitle.js +2 -2
- package/package.json +17 -15
- package/dist/chunk-4SLHS5X5.js.map +0 -1
- package/dist/chunk-66JZ7BQM.js.map +0 -1
- package/dist/chunk-7W4WEFAY.js.map +0 -1
- package/dist/chunk-GJBSQWIA.js.map +0 -1
- package/dist/chunk-OXCWE3B5.js.map +0 -1
- package/dist/chunk-YB5DZYLI.js.map +0 -1
- /package/dist/{AgentRichTextReadonly-PLUYTH5Y.js.map → AgentRichTextReadonly-WOIEQ673.js.map} +0 -0
- /package/dist/{chunk-W3EI5EWM.js.map → chunk-42KTGN4W.js.map} +0 -0
- /package/dist/{chunk-T7DN6RYO.js.map → chunk-5EHKHIFG.js.map} +0 -0
- /package/dist/{chunk-HIPSKKXB.js.map → chunk-BHLX4ZFU.js.map} +0 -0
- /package/dist/{chunk-W4UPFP2N.js.map → chunk-EZ6E3LVP.js.map} +0 -0
- /package/dist/{chunk-A6UMKVKW.js.map → chunk-GMALB4L6.js.map} +0 -0
- /package/dist/{chunk-MJNX2SC6.js.map → chunk-JQUFRZ2P.js.map} +0 -0
- /package/dist/{chunk-FVACDLAJ.js.map → chunk-KDRU3NBW.js.map} +0 -0
- /package/dist/{chunk-ZEYVTTUK.js.map → chunk-OUOVA353.js.map} +0 -0
- /package/dist/{chunk-KUTB4EGX.js.map → chunk-QEOAZW53.js.map} +0 -0
|
@@ -8,6 +8,7 @@ function normalizeAgentGUIAgents(agents) {
|
|
|
8
8
|
const iconUrl = agent.iconUrl.trim();
|
|
9
9
|
const maskIconUrl = agent.maskIconUrl?.trim() ?? "";
|
|
10
10
|
const heroImageUrl = agent.heroImageUrl?.trim() ?? "";
|
|
11
|
+
const ownerDeviceLabel = agent.ownerDeviceLabel?.trim() ?? "";
|
|
11
12
|
if (!agentTargetId || !name || !iconUrl || seenAgentTargetIds.has(agentTargetId)) {
|
|
12
13
|
continue;
|
|
13
14
|
}
|
|
@@ -22,6 +23,7 @@ function normalizeAgentGUIAgents(agents) {
|
|
|
22
23
|
...maskIconUrl ? { maskIconUrl } : {},
|
|
23
24
|
...heroImageUrl ? { heroImageUrl } : {},
|
|
24
25
|
...agent.description?.trim() ? { description: agent.description.trim() } : {},
|
|
26
|
+
...ownerDeviceLabel ? { ownerDeviceLabel } : {},
|
|
25
27
|
...ownerName || ownerAvatarUrl ? {
|
|
26
28
|
owner: {
|
|
27
29
|
...ownerName ? { name: ownerName } : {},
|
|
@@ -71,6 +73,7 @@ function projectAgentGUIAgentsToTargets(agents) {
|
|
|
71
73
|
iconUrl: agent.iconUrl,
|
|
72
74
|
...agent.maskIconUrl ? { maskIconUrl: agent.maskIconUrl } : {},
|
|
73
75
|
...agent.heroImageUrl ? { heroImageUrl: agent.heroImageUrl } : {},
|
|
76
|
+
...agent.ownerDeviceLabel ? { ownerDeviceLabel: agent.ownerDeviceLabel } : {},
|
|
74
77
|
...agent.owner?.avatarUrl ? {
|
|
75
78
|
badge: {
|
|
76
79
|
iconUrl: agent.owner.avatarUrl,
|
|
@@ -101,4 +104,4 @@ export {
|
|
|
101
104
|
resolveAgentGUISelectedDirectoryAgent,
|
|
102
105
|
projectAgentGUIAgentsToTargets
|
|
103
106
|
};
|
|
104
|
-
//# sourceMappingURL=chunk-
|
|
107
|
+
//# sourceMappingURL=chunk-CX6XXG6R.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../agents.ts"],"sourcesContent":["import type {\n AgentGUIAgent,\n AgentGUIAgentAvailabilityStatus,\n AgentGUIAgentTarget\n} from \"./types.ts\";\n\nexport function normalizeAgentGUIAgents(\n agents: readonly AgentGUIAgent[] | null | undefined\n): AgentGUIAgent[] {\n const normalized: AgentGUIAgent[] = [];\n const seenAgentTargetIds = new Set<string>();\n for (const agent of agents ?? []) {\n const agentTargetId = agent.agentTargetId.trim();\n const name = agent.name.trim();\n const iconUrl = agent.iconUrl.trim();\n const maskIconUrl = agent.maskIconUrl?.trim() ?? \"\";\n const heroImageUrl = agent.heroImageUrl?.trim() ?? \"\";\n const ownerDeviceLabel = agent.ownerDeviceLabel?.trim() ?? \"\";\n if (\n !agentTargetId ||\n !name ||\n !iconUrl ||\n seenAgentTargetIds.has(agentTargetId)\n ) {\n continue;\n }\n seenAgentTargetIds.add(agentTargetId);\n const ownerName = agent.owner?.name?.trim() ?? \"\";\n const ownerAvatarUrl = agent.owner?.avatarUrl?.trim() ?? \"\";\n const reason = agent.availability.reason?.trim() ?? \"\";\n normalized.push({\n agentTargetId,\n name,\n iconUrl,\n ...(maskIconUrl ? { maskIconUrl } : {}),\n ...(heroImageUrl ? { heroImageUrl } : {}),\n ...(agent.description?.trim()\n ? { description: agent.description.trim() }\n : {}),\n ...(ownerDeviceLabel ? { ownerDeviceLabel } : {}),\n ...(ownerName || ownerAvatarUrl\n ? {\n owner: {\n ...(ownerName ? { name: ownerName } : {}),\n ...(ownerAvatarUrl ? { avatarUrl: ownerAvatarUrl } : {})\n }\n }\n : {}),\n ...(agent.ownership === \"self\" || agent.ownership === \"shared\"\n ? { ownership: agent.ownership }\n : {}),\n availability: {\n status: normalizeAgentGUIAgentAvailabilityStatus(\n agent.availability.status\n ),\n ...(reason ? { reason } : {}),\n ...(agent.availability.pendingAction\n ? { pendingAction: agent.availability.pendingAction }\n : {})\n },\n provider: agent.provider,\n ...(agent.setupKind === \"target_runtime\"\n ? { setupKind: \"target_runtime\" as const }\n : {})\n });\n }\n return normalized;\n}\n\nexport function agentGUIAgentIsReady(agent: AgentGUIAgent): boolean {\n return agent.availability.status === \"ready\";\n}\n\nexport function resolveAgentGUISelectedDirectoryAgent(input: {\n agents: readonly AgentGUIAgent[];\n agentTargetId?: string | null;\n defaultAgentTargetId?: string | null;\n}): AgentGUIAgent | null {\n const explicitAgentTargetId =\n input.agentTargetId?.trim() || input.defaultAgentTargetId?.trim() || \"\";\n if (explicitAgentTargetId) {\n return (\n input.agents.find(\n (agent) => agent.agentTargetId === explicitAgentTargetId\n ) ?? null\n );\n }\n return (\n input.agents.find((agent) => agentGUIAgentIsReady(agent)) ??\n input.agents[0] ??\n null\n );\n}\n\n/** Projects the canonical Agent directory into target rows for selection menus. */\nexport function projectAgentGUIAgentsToTargets(\n agents: readonly AgentGUIAgent[]\n): AgentGUIAgentTarget[] {\n return agents.map((agent) => ({\n targetId: agent.agentTargetId,\n agentTargetId: agent.agentTargetId,\n provider: agent.provider,\n ref: {\n kind: \"agent-directory\",\n provider: agent.provider,\n agentTargetId: agent.agentTargetId,\n ...(agent.setupKind ? { setupKind: agent.setupKind } : {})\n },\n label: agent.name,\n availability: agent.availability,\n ...(agent.description ? { description: agent.description } : {}),\n iconUrl: agent.iconUrl,\n ...(agent.maskIconUrl ? { maskIconUrl: agent.maskIconUrl } : {}),\n ...(agent.heroImageUrl ? { heroImageUrl: agent.heroImageUrl } : {}),\n ...(agent.ownerDeviceLabel\n ? { ownerDeviceLabel: agent.ownerDeviceLabel }\n : {}),\n ...(agent.owner?.avatarUrl\n ? {\n badge: {\n iconUrl: agent.owner.avatarUrl,\n ...(agent.owner.name ? { label: agent.owner.name } : {})\n }\n }\n : {}),\n ...(agent.owner?.name ? { ownerLabel: agent.owner.name } : {}),\n ...(agent.ownership ? { ownership: agent.ownership } : {}),\n ...(agent.availability.status !== \"ready\" && !agent.setupKind\n ? { disabled: true }\n : {}),\n ...(agent.availability.reason\n ? { unavailableReason: agent.availability.reason }\n : {})\n }));\n}\n\nfunction normalizeAgentGUIAgentAvailabilityStatus(\n status: AgentGUIAgentAvailabilityStatus\n): AgentGUIAgentAvailabilityStatus {\n switch (status) {\n case \"ready\":\n case \"checking\":\n case \"coming_soon\":\n case \"not_installed\":\n case \"auth_required\":\n case \"unavailable\":\n return status;\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
resolveAgentGuiSessionProviderFlatIconUrl,
|
|
13
13
|
resolveNextAgentGUIConversationRailWidthPx,
|
|
14
14
|
shouldAutoCollapseAgentGUIConversationRail
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-JQUFRZ2P.js";
|
|
16
16
|
import {
|
|
17
17
|
resolveAgentGuiWorkbenchProviderLabel
|
|
18
18
|
} from "./chunk-SZVHT57M.js";
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
resolveAgentGUIFirstUserMessageDisplayPrompt,
|
|
32
32
|
resolveAgentGUIProviderDisplayLabel,
|
|
33
33
|
resolveAgentGUIProviderIdentity
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-42KTGN4W.js";
|
|
35
35
|
import {
|
|
36
36
|
AgentConversationFlow,
|
|
37
37
|
Button,
|
|
@@ -65,7 +65,7 @@ import {
|
|
|
65
65
|
toLocalShortDateTime,
|
|
66
66
|
updateAgentComposerDraft,
|
|
67
67
|
useProjectedAgentConversation
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-C7RY5XMJ.js";
|
|
69
69
|
import {
|
|
70
70
|
agentRichTextContentToPromptText,
|
|
71
71
|
createAgentRichTextInputExtensions,
|
|
@@ -75,7 +75,7 @@ import {
|
|
|
75
75
|
plainTextToAgentRichTextInlineContent,
|
|
76
76
|
skillDescriptionForDisplay,
|
|
77
77
|
skillTriggerForPrefix
|
|
78
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-42W6JENH.js";
|
|
79
79
|
import {
|
|
80
80
|
AgentEnvPanelActionProvider
|
|
81
81
|
} from "./chunk-THBCAUBR.js";
|
|
@@ -90,18 +90,18 @@ import {
|
|
|
90
90
|
AgentFileMentionPalette,
|
|
91
91
|
agentMentionItemKey,
|
|
92
92
|
isAgentMentionItemDisabled
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-KDRU3NBW.js";
|
|
94
94
|
import {
|
|
95
95
|
normalizeAgentGUIAgents,
|
|
96
96
|
projectAgentGUIAgentsToTargets
|
|
97
|
-
} from "./chunk-
|
|
97
|
+
} from "./chunk-CX6XXG6R.js";
|
|
98
98
|
import {
|
|
99
99
|
AGENT_MENTION_FILTER_TAB_ORDER,
|
|
100
100
|
AgentMentionSearchController,
|
|
101
101
|
DEFAULT_AGENT_MENTION_FILTER,
|
|
102
102
|
agentGuiScheduler,
|
|
103
103
|
buildWorkspaceAgentActivityListViewModel
|
|
104
|
-
} from "./chunk-
|
|
104
|
+
} from "./chunk-GMALB4L6.js";
|
|
105
105
|
import {
|
|
106
106
|
AGENT_RICH_TEXT_CARET_ANCHOR,
|
|
107
107
|
agentComposerFileMentionReferences,
|
|
@@ -118,7 +118,7 @@ import {
|
|
|
118
118
|
parseMentionItemFromHref,
|
|
119
119
|
remainingAgentComposerPromptAssetSlots,
|
|
120
120
|
updateAgentComposerFileMentions
|
|
121
|
-
} from "./chunk-
|
|
121
|
+
} from "./chunk-7M6STXDS.js";
|
|
122
122
|
import {
|
|
123
123
|
AgentInteractivePromptSurface,
|
|
124
124
|
PLAN_IMPLEMENTATION_ACTION_FEEDBACK,
|
|
@@ -128,7 +128,7 @@ import {
|
|
|
128
128
|
dispatchAgentPlanPromptAction,
|
|
129
129
|
latestPlanTurnId,
|
|
130
130
|
planImplementationPromptFromPlanTurn
|
|
131
|
-
} from "./chunk-
|
|
131
|
+
} from "./chunk-OUOVA353.js";
|
|
132
132
|
import {
|
|
133
133
|
useEngineSelector
|
|
134
134
|
} from "./chunk-2RQM7PJN.js";
|
|
@@ -138,7 +138,7 @@ import {
|
|
|
138
138
|
blobToBase64,
|
|
139
139
|
normalizeAgentApprovalPurpose,
|
|
140
140
|
resolveWorkspaceLinkAction
|
|
141
|
-
} from "./chunk-
|
|
141
|
+
} from "./chunk-5EHKHIFG.js";
|
|
142
142
|
import {
|
|
143
143
|
AgentTargetPresentationProvider,
|
|
144
144
|
cn,
|
|
@@ -156,7 +156,7 @@ import {
|
|
|
156
156
|
useAgentHostApi,
|
|
157
157
|
useOptionalAgentActivityRuntime,
|
|
158
158
|
useOptionalAgentHostApi
|
|
159
|
-
} from "./chunk-
|
|
159
|
+
} from "./chunk-QEOAZW53.js";
|
|
160
160
|
import {
|
|
161
161
|
MANAGED_AGENT_ICON_FALLBACK_URL,
|
|
162
162
|
MANAGED_AGENT_ICON_URLS,
|
|
@@ -166,7 +166,7 @@ import {
|
|
|
166
166
|
AgentGuiI18nProvider,
|
|
167
167
|
translate,
|
|
168
168
|
useTranslation
|
|
169
|
-
} from "./chunk-
|
|
169
|
+
} from "./chunk-EZ6E3LVP.js";
|
|
170
170
|
import {
|
|
171
171
|
isBetaAgentProvider,
|
|
172
172
|
normalizeManagedAgentProvider
|
|
@@ -3717,6 +3717,7 @@ function createSharedAgentGUIAgentTarget(input) {
|
|
|
3717
3717
|
label: input.label,
|
|
3718
3718
|
...badge ? { badge } : {},
|
|
3719
3719
|
...input.ownerLabel?.trim() ? { ownerLabel: input.ownerLabel.trim() } : {},
|
|
3720
|
+
...input.ownerDeviceLabel?.trim() ? { ownerDeviceLabel: input.ownerDeviceLabel.trim() } : {},
|
|
3720
3721
|
...input.iconUrl?.trim() ? { iconUrl: input.iconUrl.trim() } : {},
|
|
3721
3722
|
...input.maskIconUrl?.trim() ? { maskIconUrl: input.maskIconUrl.trim() } : {},
|
|
3722
3723
|
...input.unavailableReason?.trim() ? { unavailableReason: input.unavailableReason.trim() } : {},
|
|
@@ -3823,6 +3824,7 @@ function normalizeAgentGUIAgentTarget(target) {
|
|
|
3823
3824
|
maskIconUrl,
|
|
3824
3825
|
heroImageUrl,
|
|
3825
3826
|
ownerLabel,
|
|
3827
|
+
ownerDeviceLabel,
|
|
3826
3828
|
unavailableReason,
|
|
3827
3829
|
...rest
|
|
3828
3830
|
} = target;
|
|
@@ -3851,6 +3853,7 @@ function normalizeAgentGUIAgentTarget(target) {
|
|
|
3851
3853
|
...maskIconUrl?.trim() ? { maskIconUrl: maskIconUrl.trim() } : {},
|
|
3852
3854
|
...heroImageUrl?.trim() ? { heroImageUrl: heroImageUrl.trim() } : {},
|
|
3853
3855
|
...ownerLabel?.trim() ? { ownerLabel: ownerLabel.trim() } : {},
|
|
3856
|
+
...ownerDeviceLabel?.trim() ? { ownerDeviceLabel: ownerDeviceLabel.trim() } : {},
|
|
3854
3857
|
...unavailableReason?.trim() ? { unavailableReason: unavailableReason.trim() } : {}
|
|
3855
3858
|
};
|
|
3856
3859
|
}
|
|
@@ -17034,7 +17037,6 @@ function hasInlineOverflow(element) {
|
|
|
17034
17037
|
function useComposerLayout({
|
|
17035
17038
|
isHeroLayout,
|
|
17036
17039
|
inputDisabled,
|
|
17037
|
-
paletteDraftPrompt,
|
|
17038
17040
|
showFileMentionPalette,
|
|
17039
17041
|
showFloatingCommandMenu,
|
|
17040
17042
|
previewMode,
|
|
@@ -17205,24 +17207,20 @@ function useComposerLayout({
|
|
|
17205
17207
|
(currentHeight) => currentHeight === textHeight ? currentHeight : textHeight
|
|
17206
17208
|
);
|
|
17207
17209
|
};
|
|
17208
|
-
measure();
|
|
17209
17210
|
const resizeObserver = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
|
|
17210
17211
|
resizeObserver?.observe(inputArea);
|
|
17211
17212
|
resizeObserver?.observe(editor);
|
|
17212
|
-
for (const
|
|
17213
|
-
|
|
17213
|
+
for (const attachmentArea of Array.from(
|
|
17214
|
+
inputArea.querySelectorAll(
|
|
17215
|
+
'[data-testid="agent-gui-composer-image-drafts"], [data-testid="agent-gui-composer-file-drafts"]'
|
|
17216
|
+
)
|
|
17217
|
+
)) {
|
|
17218
|
+
resizeObserver?.observe(attachmentArea);
|
|
17214
17219
|
}
|
|
17215
|
-
window.addEventListener("resize", measure);
|
|
17216
17220
|
return () => {
|
|
17217
17221
|
resizeObserver?.disconnect();
|
|
17218
|
-
window.removeEventListener("resize", measure);
|
|
17219
17222
|
};
|
|
17220
|
-
}, [
|
|
17221
|
-
draftImages.length,
|
|
17222
|
-
draftLargeTexts.length,
|
|
17223
|
-
isHeroLayout,
|
|
17224
|
-
paletteDraftPrompt
|
|
17225
|
-
]);
|
|
17223
|
+
}, [draftImages.length, draftLargeTexts.length, isHeroLayout]);
|
|
17226
17224
|
const composerStyle = useMemo20(
|
|
17227
17225
|
() => isHeroLayout ? void 0 : {
|
|
17228
17226
|
// The dock keeps only the collapsed 56px input row in flow; a
|
|
@@ -23967,6 +23965,53 @@ function AgentHandoffMenu({
|
|
|
23967
23965
|
}) {
|
|
23968
23966
|
const [isIconPlaying, setIsIconPlaying] = useState21(false);
|
|
23969
23967
|
const menuDisabled = disabled || targets.length === 0;
|
|
23968
|
+
const tooltip = labels.tooltip.trim();
|
|
23969
|
+
const trigger = /* @__PURE__ */ jsx36("span", { className: "inline-flex", children: /* @__PURE__ */ jsx36(
|
|
23970
|
+
SelectTrigger2,
|
|
23971
|
+
{
|
|
23972
|
+
size: "sm",
|
|
23973
|
+
"aria-label": labels.action,
|
|
23974
|
+
"data-testid": testId,
|
|
23975
|
+
onClick: isolateTriggerEvents ? (event) => {
|
|
23976
|
+
event.stopPropagation();
|
|
23977
|
+
} : void 0,
|
|
23978
|
+
onKeyDown: isolateTriggerEvents ? (event) => {
|
|
23979
|
+
event.stopPropagation();
|
|
23980
|
+
} : void 0,
|
|
23981
|
+
onPointerDown: isolateTriggerEvents ? (event) => {
|
|
23982
|
+
event.stopPropagation();
|
|
23983
|
+
} : void 0,
|
|
23984
|
+
onBlur: () => {
|
|
23985
|
+
setIsIconPlaying(false);
|
|
23986
|
+
},
|
|
23987
|
+
onFocus: () => {
|
|
23988
|
+
setIsIconPlaying(true);
|
|
23989
|
+
},
|
|
23990
|
+
onMouseEnter: () => {
|
|
23991
|
+
setIsIconPlaying(true);
|
|
23992
|
+
},
|
|
23993
|
+
onMouseLeave: () => {
|
|
23994
|
+
setIsIconPlaying(false);
|
|
23995
|
+
},
|
|
23996
|
+
className: cn(
|
|
23997
|
+
AgentGUINode_styles_default.composerMenuTrigger,
|
|
23998
|
+
AgentGUINode_styles_default.composerProviderSelect,
|
|
23999
|
+
AgentGUINode_styles_default.composerHandoffTrigger,
|
|
24000
|
+
"w-auto max-w-[180px] [&>svg:last-child]:hidden",
|
|
24001
|
+
triggerClassName
|
|
24002
|
+
),
|
|
24003
|
+
children: /* @__PURE__ */ jsxs26("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
24004
|
+
/* @__PURE__ */ jsx36(
|
|
24005
|
+
AgentComposerHandoffIcon,
|
|
24006
|
+
{
|
|
24007
|
+
disabled: menuDisabled,
|
|
24008
|
+
isPlaying: isIconPlaying
|
|
24009
|
+
}
|
|
24010
|
+
),
|
|
24011
|
+
!iconOnly ? /* @__PURE__ */ jsx36("span", { className: "min-w-0 truncate", children: triggerLabel }) : null
|
|
24012
|
+
] })
|
|
24013
|
+
}
|
|
24014
|
+
) });
|
|
23970
24015
|
return /* @__PURE__ */ jsx36(
|
|
23971
24016
|
"span",
|
|
23972
24017
|
{
|
|
@@ -23995,55 +24040,10 @@ function AgentHandoffMenu({
|
|
|
23995
24040
|
onSelect(target);
|
|
23996
24041
|
},
|
|
23997
24042
|
children: [
|
|
23998
|
-
/* @__PURE__ */ jsx36(TooltipProvider3, { delayDuration: 120, children: /* @__PURE__ */ jsxs26(Tooltip3, { children: [
|
|
23999
|
-
/* @__PURE__ */ jsx36(TooltipTrigger3, { asChild: true, children:
|
|
24000
|
-
|
|
24001
|
-
|
|
24002
|
-
size: "sm",
|
|
24003
|
-
"aria-label": labels.action,
|
|
24004
|
-
"data-testid": testId,
|
|
24005
|
-
onClick: isolateTriggerEvents ? (event) => {
|
|
24006
|
-
event.stopPropagation();
|
|
24007
|
-
} : void 0,
|
|
24008
|
-
onKeyDown: isolateTriggerEvents ? (event) => {
|
|
24009
|
-
event.stopPropagation();
|
|
24010
|
-
} : void 0,
|
|
24011
|
-
onPointerDown: isolateTriggerEvents ? (event) => {
|
|
24012
|
-
event.stopPropagation();
|
|
24013
|
-
} : void 0,
|
|
24014
|
-
onBlur: () => {
|
|
24015
|
-
setIsIconPlaying(false);
|
|
24016
|
-
},
|
|
24017
|
-
onFocus: () => {
|
|
24018
|
-
setIsIconPlaying(true);
|
|
24019
|
-
},
|
|
24020
|
-
onMouseEnter: () => {
|
|
24021
|
-
setIsIconPlaying(true);
|
|
24022
|
-
},
|
|
24023
|
-
onMouseLeave: () => {
|
|
24024
|
-
setIsIconPlaying(false);
|
|
24025
|
-
},
|
|
24026
|
-
className: cn(
|
|
24027
|
-
AgentGUINode_styles_default.composerMenuTrigger,
|
|
24028
|
-
AgentGUINode_styles_default.composerProviderSelect,
|
|
24029
|
-
AgentGUINode_styles_default.composerHandoffTrigger,
|
|
24030
|
-
"w-auto max-w-[180px] [&>svg:last-child]:hidden",
|
|
24031
|
-
triggerClassName
|
|
24032
|
-
),
|
|
24033
|
-
children: /* @__PURE__ */ jsxs26("span", { className: "flex min-w-0 items-center gap-1.5", children: [
|
|
24034
|
-
/* @__PURE__ */ jsx36(
|
|
24035
|
-
AgentComposerHandoffIcon,
|
|
24036
|
-
{
|
|
24037
|
-
disabled: menuDisabled,
|
|
24038
|
-
isPlaying: isIconPlaying
|
|
24039
|
-
}
|
|
24040
|
-
),
|
|
24041
|
-
!iconOnly ? /* @__PURE__ */ jsx36("span", { className: "min-w-0 truncate", children: triggerLabel }) : null
|
|
24042
|
-
] })
|
|
24043
|
-
}
|
|
24044
|
-
) }) }),
|
|
24045
|
-
/* @__PURE__ */ jsx36(TooltipContent3, { side: "top", children: labels.tooltip })
|
|
24046
|
-
] }) }),
|
|
24043
|
+
tooltip ? /* @__PURE__ */ jsx36(TooltipProvider3, { delayDuration: 120, children: /* @__PURE__ */ jsxs26(Tooltip3, { children: [
|
|
24044
|
+
/* @__PURE__ */ jsx36(TooltipTrigger3, { asChild: true, children: trigger }),
|
|
24045
|
+
/* @__PURE__ */ jsx36(TooltipContent3, { side: "top", children: tooltip })
|
|
24046
|
+
] }) }) : trigger,
|
|
24047
24047
|
/* @__PURE__ */ jsx36(
|
|
24048
24048
|
SelectContent2,
|
|
24049
24049
|
{
|
|
@@ -24060,6 +24060,8 @@ function AgentHandoffMenu({
|
|
|
24060
24060
|
self: labels.self,
|
|
24061
24061
|
shared: labels.shared
|
|
24062
24062
|
});
|
|
24063
|
+
const ownerDeviceLabel = target.ownerDeviceLabel?.trim() ?? "";
|
|
24064
|
+
const deviceSourceLabel = ownerDeviceLabel ? labels.deviceSource?.(ownerDeviceLabel) ?? ownerDeviceLabel : null;
|
|
24063
24065
|
return /* @__PURE__ */ jsx36(
|
|
24064
24066
|
SelectItem2,
|
|
24065
24067
|
{
|
|
@@ -24089,7 +24091,10 @@ function AgentHandoffMenu({
|
|
|
24089
24091
|
] }),
|
|
24090
24092
|
/* @__PURE__ */ jsxs26("span", { className: "flex min-w-0 flex-col gap-0.5", children: [
|
|
24091
24093
|
/* @__PURE__ */ jsx36("span", { className: "min-w-0 truncate", children: target.label }),
|
|
24092
|
-
ownershipLabel ? /* @__PURE__ */
|
|
24094
|
+
ownershipLabel || deviceSourceLabel ? /* @__PURE__ */ jsxs26("span", { className: "flex min-w-0 items-center gap-1.5 truncate text-[11px] leading-none text-[var(--agent-gui-text-secondary)]", children: [
|
|
24095
|
+
ownershipLabel ? /* @__PURE__ */ jsx36("span", { children: ownershipLabel }) : null,
|
|
24096
|
+
deviceSourceLabel ? /* @__PURE__ */ jsx36("span", { children: deviceSourceLabel }) : null
|
|
24097
|
+
] }) : null
|
|
24093
24098
|
] })
|
|
24094
24099
|
] })
|
|
24095
24100
|
},
|
|
@@ -24253,6 +24258,7 @@ function ComposerFooter({
|
|
|
24253
24258
|
disabled: handoffDisabled,
|
|
24254
24259
|
labels: {
|
|
24255
24260
|
action: effectiveHandoffLabel,
|
|
24261
|
+
deviceSource: labels.handoffTargetDeviceSource,
|
|
24256
24262
|
menu: effectiveHandoffMenuLabel,
|
|
24257
24263
|
self: labels.handoffTargetSelf,
|
|
24258
24264
|
shared: labels.handoffTargetShared,
|
|
@@ -26870,7 +26876,6 @@ function AgentComposer(props) {
|
|
|
26870
26876
|
const layout = useComposerLayout({
|
|
26871
26877
|
isHeroLayout,
|
|
26872
26878
|
inputDisabled,
|
|
26873
|
-
paletteDraftPrompt,
|
|
26874
26879
|
showFileMentionPalette,
|
|
26875
26880
|
showFloatingCommandMenu,
|
|
26876
26881
|
previewMode,
|
|
@@ -34989,32 +34994,24 @@ function useAgentGUIDetailScroll(input) {
|
|
|
34989
34994
|
return;
|
|
34990
34995
|
}
|
|
34991
34996
|
const captureScrollAnchor = () => {
|
|
34992
|
-
let scrollTop = timeline.scrollTop;
|
|
34993
34997
|
const previousAnchor = timelineScrollAnchorRef.current;
|
|
34994
|
-
|
|
34995
|
-
|
|
34998
|
+
if (!previousAnchor || previousAnchor.conversationId !== activeConversationId) {
|
|
34999
|
+
return;
|
|
35000
|
+
}
|
|
35001
|
+
const scrollTop = timeline.scrollTop;
|
|
35002
|
+
const inferredUserScrollAway = scrollTop < previousAnchor.scrollTop - 1;
|
|
34996
35003
|
const explicitUserScrollAway = userScrollAwayIntentConversationRef.current === activeConversationId;
|
|
34997
35004
|
if (explicitUserScrollAway || inferredUserScrollAway) {
|
|
34998
35005
|
bottomLockOwnerRef.current = null;
|
|
34999
35006
|
userScrollAwayIntentConversationRef.current = null;
|
|
35000
35007
|
}
|
|
35001
|
-
if (geometryChanged && bottomLockOwnerRef.current === activeConversationId) {
|
|
35002
|
-
const maxScrollTop = Math.max(
|
|
35003
|
-
0,
|
|
35004
|
-
timeline.scrollHeight - timeline.clientHeight
|
|
35005
|
-
);
|
|
35006
|
-
if (maxScrollTop - scrollTop > AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX) {
|
|
35007
|
-
setTimelineScrollTopInstantly(timeline, maxScrollTop);
|
|
35008
|
-
scrollTop = maxScrollTop;
|
|
35009
|
-
}
|
|
35010
|
-
}
|
|
35011
35008
|
timelineScrollAnchorRef.current = {
|
|
35012
35009
|
conversationId: activeConversationId,
|
|
35013
|
-
scrollHeight:
|
|
35010
|
+
scrollHeight: previousAnchor.scrollHeight,
|
|
35014
35011
|
scrollTop,
|
|
35015
|
-
clientHeight:
|
|
35012
|
+
clientHeight: previousAnchor.clientHeight
|
|
35016
35013
|
};
|
|
35017
|
-
const atBottom =
|
|
35014
|
+
const atBottom = previousAnchor.scrollHeight - scrollTop - previousAnchor.clientHeight <= AGENT_GUI_STICK_TO_BOTTOM_THRESHOLD_PX;
|
|
35018
35015
|
if (atBottom) {
|
|
35019
35016
|
bottomLockOwnerRef.current = activeConversationId;
|
|
35020
35017
|
}
|
|
@@ -35026,7 +35023,7 @@ function useAgentGUIDetailScroll(input) {
|
|
|
35026
35023
|
if (activeConversationId === viewModel.rail.activeConversationId && viewModel.detail.hasOlderMessages && !viewModel.detail.isLoadingOlderMessages && scrollTop <= AGENT_GUI_TOP_HISTORY_PREFETCH_THRESHOLD_PX) {
|
|
35027
35024
|
pendingPrependScrollAnchorRef.current = {
|
|
35028
35025
|
conversationId: activeConversationId,
|
|
35029
|
-
scrollHeight:
|
|
35026
|
+
scrollHeight: previousAnchor.scrollHeight,
|
|
35030
35027
|
scrollTop
|
|
35031
35028
|
};
|
|
35032
35029
|
actions.loadOlderConversationMessages();
|
|
@@ -35558,6 +35555,7 @@ function useAgentGUIDetailModel(input) {
|
|
|
35558
35555
|
handoffConversation: labels.handoffConversation,
|
|
35559
35556
|
handoffConversationTooltip: labels.handoffConversationTooltip,
|
|
35560
35557
|
handoffConversationMenu: labels.handoffConversationMenu,
|
|
35558
|
+
handoffTargetDeviceSource: labels.handoffTargetDeviceSource,
|
|
35561
35559
|
handoffTargetSelf: labels.handoffTargetSelf,
|
|
35562
35560
|
handoffTargetShared: labels.handoffTargetShared,
|
|
35563
35561
|
providerSwitchLabel: labels.providerSwitchLabel,
|
|
@@ -35584,6 +35582,7 @@ function useAgentGUIDetailModel(input) {
|
|
|
35584
35582
|
labels.handoffConversation,
|
|
35585
35583
|
labels.handoffConversationTooltip,
|
|
35586
35584
|
labels.handoffConversationMenu,
|
|
35585
|
+
labels.handoffTargetDeviceSource,
|
|
35587
35586
|
labels.handoffTargetSelf,
|
|
35588
35587
|
labels.handoffTargetShared,
|
|
35589
35588
|
labels.inheritedUnavailable,
|
|
@@ -39281,6 +39280,9 @@ function useAgentGUIViewLabels(input) {
|
|
|
39281
39280
|
"agentHost.agentGui.handoffConversationTooltip"
|
|
39282
39281
|
),
|
|
39283
39282
|
handoffConversationMenu: t("agentHost.agentGui.handoffConversationMenu"),
|
|
39283
|
+
handoffTargetDeviceSource: (deviceLabel) => t("agentHost.agentGui.handoffTargetDeviceSource", {
|
|
39284
|
+
device: deviceLabel
|
|
39285
|
+
}),
|
|
39284
39286
|
handoffTargetSelf: t("agentHost.agentGui.handoffTargetSelf"),
|
|
39285
39287
|
handoffTargetShared: t("agentHost.agentGui.handoffTargetShared")
|
|
39286
39288
|
}),
|
|
@@ -40040,4 +40042,4 @@ export {
|
|
|
40040
40042
|
AgentHandoffMenu,
|
|
40041
40043
|
AgentGUI
|
|
40042
40044
|
};
|
|
40043
|
-
//# sourceMappingURL=chunk-
|
|
40045
|
+
//# sourceMappingURL=chunk-ES5LNRP4.js.map
|