@iblai/web-containers 1.57.0 → 1.58.0
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/cjs/_virtual/index2.js +2 -2
- package/dist/cjs/_virtual/index3.js +2 -2
- package/dist/cjs/components/chat/ui/button.js +4 -4
- package/dist/cjs/components/chat/ui/button.js.map +1 -1
- package/dist/cjs/components/chat-input-form/composer-plus-menu.js +94 -17
- package/dist/cjs/components/chat-input-form/composer-plus-menu.js.map +1 -1
- package/dist/cjs/components/chat-input-form/mcp-connect-explainer-dialog.js +29 -0
- package/dist/cjs/components/chat-input-form/mcp-connect-explainer-dialog.js.map +1 -0
- package/dist/cjs/components/chat-input-form/mcp-servers-menu.js +199 -0
- package/dist/cjs/components/chat-input-form/mcp-servers-menu.js.map +1 -0
- package/dist/cjs/components/chat-input-form/use-mcp-active-count.js +56 -0
- package/dist/cjs/components/chat-input-form/use-mcp-active-count.js.map +1 -0
- package/dist/cjs/components/chat-input-form.js +17 -4
- package/dist/cjs/components/chat-input-form.js.map +1 -1
- package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/connector-dialogs.js +755 -90
- package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/connector-dialogs.js.map +1 -1
- package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/connector-management-content.js +386 -984
- package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/connector-management-content.js.map +1 -1
- package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/field-info.js +16 -0
- package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/field-info.js.map +1 -0
- package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/index.js +6 -3
- package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/index.js.map +1 -1
- package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/mcp-connector-helpers.js +463 -0
- package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/mcp-connector-helpers.js.map +1 -0
- package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/oauth-app-fields.js +329 -0
- package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/oauth-app-fields.js.map +1 -0
- package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/remove-connector-dialog.js +20 -0
- package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/remove-connector-dialog.js.map +1 -0
- package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/use-mcp-server-actions.js +744 -0
- package/dist/cjs/components/modals/edit-mentor-modal/tabs/mcp-tab/use-mcp-server-actions.js.map +1 -0
- package/dist/cjs/components/modals/user-profile-modal.js +2 -0
- package/dist/cjs/components/modals/user-profile-modal.js.map +1 -1
- package/dist/cjs/components/ui/accordion.js +40 -0
- package/dist/cjs/components/ui/accordion.js.map +1 -0
- package/dist/cjs/i18n/messages/en.json.js +155 -19
- package/dist/cjs/i18n/messages/en.json.js.map +1 -1
- package/dist/cjs/i18n/messages/es.json.js +155 -19
- package/dist/cjs/i18n/messages/es.json.js.map +1 -1
- package/dist/cjs/i18n/messages/fr.json.js +155 -19
- package/dist/cjs/i18n/messages/fr.json.js.map +1 -1
- package/dist/cjs/i18n/messages/zh.json.js +155 -19
- package/dist/cjs/i18n/messages/zh.json.js.map +1 -1
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/node_modules/.pnpm/@radix-ui_react-accordion@1.2.8_@types_react-dom@19.2.1_@types_react@19.1.17__@types_re_b91476821b9fe8f172a947f727875267/node_modules/@radix-ui/react-accordion/dist/index.js +317 -0
- package/dist/cjs/node_modules/.pnpm/@radix-ui_react-accordion@1.2.8_@types_react-dom@19.2.1_@types_react@19.1.17__@types_re_b91476821b9fe8f172a947f727875267/node_modules/@radix-ui/react-accordion/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.8_@types_react-dom@19.2.1_@types_react@19.1.17__@types__d84e28844e8116e61b459b615fab358a/node_modules/@radix-ui/react-collapsible/dist/index.js +173 -0
- package/dist/cjs/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.8_@types_react-dom@19.2.1_@types_react@19.1.17__@types__d84e28844e8116e61b459b615fab358a/node_modules/@radix-ui/react-collapsible/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/.pnpm/@radix-ui_react-collection@1.1.4_@types_react-dom@19.2.1_@types_react@19.1.17__@types_r_7047fbfe61c39c77a2126486502acdb6/node_modules/@radix-ui/react-collection/dist/index.js +73 -0
- package/dist/cjs/node_modules/.pnpm/@radix-ui_react-collection@1.1.4_@types_react-dom@19.2.1_@types_react@19.1.17__@types_r_7047fbfe61c39c77a2126486502acdb6/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -0
- package/dist/cjs/node_modules/.pnpm/css-mediaquery@0.1.2/node_modules/css-mediaquery/index.js +1 -1
- package/dist/cjs/node_modules/.pnpm/matchmediaquery@0.4.2/node_modules/matchmediaquery/index.js +1 -1
- package/dist/cjs/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +1 -1
- package/dist/cjs/web-containers/tsconfig.build.tsbuildinfo +1 -0
- package/dist/esm/_virtual/index2.js +2 -2
- package/dist/esm/_virtual/index3.js +2 -2
- package/dist/esm/components/chat-input-form/composer-plus-menu.js +94 -17
- package/dist/esm/components/chat-input-form/composer-plus-menu.js.map +1 -1
- package/dist/esm/components/chat-input-form/mcp-connect-explainer-dialog.js +27 -0
- package/dist/esm/components/chat-input-form/mcp-connect-explainer-dialog.js.map +1 -0
- package/dist/esm/components/chat-input-form/mcp-servers-menu.js +197 -0
- package/dist/esm/components/chat-input-form/mcp-servers-menu.js.map +1 -0
- package/dist/esm/components/chat-input-form/use-mcp-active-count.js +54 -0
- package/dist/esm/components/chat-input-form/use-mcp-active-count.js.map +1 -0
- package/dist/esm/components/chat-input-form.js +17 -4
- package/dist/esm/components/chat-input-form.js.map +1 -1
- package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/connector-dialogs.js +755 -92
- package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/connector-dialogs.js.map +1 -1
- package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/connector-management-content.js +361 -968
- package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/connector-management-content.js.map +1 -1
- package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/field-info.js +14 -0
- package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/field-info.js.map +1 -0
- package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/index.js +6 -3
- package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/index.js.map +1 -1
- package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/mcp-connector-helpers.js +431 -0
- package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/mcp-connector-helpers.js.map +1 -0
- package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/oauth-app-fields.js +313 -0
- package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/oauth-app-fields.js.map +1 -0
- package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/remove-connector-dialog.js +18 -0
- package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/remove-connector-dialog.js.map +1 -0
- package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/use-mcp-server-actions.js +742 -0
- package/dist/esm/components/modals/edit-mentor-modal/tabs/mcp-tab/use-mcp-server-actions.js.map +1 -0
- package/dist/esm/components/modals/user-profile-modal.js +2 -0
- package/dist/esm/components/modals/user-profile-modal.js.map +1 -1
- package/dist/esm/components/ui/accordion.js +16 -0
- package/dist/esm/components/ui/accordion.js.map +1 -0
- package/dist/esm/i18n/messages/en.json.js +153 -20
- package/dist/esm/i18n/messages/en.json.js.map +1 -1
- package/dist/esm/i18n/messages/es.json.js +153 -20
- package/dist/esm/i18n/messages/es.json.js.map +1 -1
- package/dist/esm/i18n/messages/fr.json.js +153 -20
- package/dist/esm/i18n/messages/fr.json.js.map +1 -1
- package/dist/esm/i18n/messages/zh.json.js +153 -20
- package/dist/esm/i18n/messages/zh.json.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/node_modules/.pnpm/@radix-ui_react-accordion@1.2.8_@types_react-dom@19.2.1_@types_react@19.1.17__@types_re_b91476821b9fe8f172a947f727875267/node_modules/@radix-ui/react-accordion/dist/index.js +306 -0
- package/dist/esm/node_modules/.pnpm/@radix-ui_react-accordion@1.2.8_@types_react-dom@19.2.1_@types_react@19.1.17__@types_re_b91476821b9fe8f172a947f727875267/node_modules/@radix-ui/react-accordion/dist/index.js.map +1 -0
- package/dist/esm/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.8_@types_react-dom@19.2.1_@types_react@19.1.17__@types__d84e28844e8116e61b459b615fab358a/node_modules/@radix-ui/react-collapsible/dist/index.js +146 -0
- package/dist/esm/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.8_@types_react-dom@19.2.1_@types_react@19.1.17__@types__d84e28844e8116e61b459b615fab358a/node_modules/@radix-ui/react-collapsible/dist/index.js.map +1 -0
- package/dist/esm/node_modules/.pnpm/@radix-ui_react-collection@1.1.4_@types_react-dom@19.2.1_@types_react@19.1.17__@types_r_7047fbfe61c39c77a2126486502acdb6/node_modules/@radix-ui/react-collection/dist/index.js +71 -0
- package/dist/esm/node_modules/.pnpm/@radix-ui_react-collection@1.1.4_@types_react-dom@19.2.1_@types_react@19.1.17__@types_r_7047fbfe61c39c77a2126486502acdb6/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -0
- package/dist/esm/node_modules/.pnpm/css-mediaquery@0.1.2/node_modules/css-mediaquery/index.js +1 -1
- package/dist/esm/node_modules/.pnpm/matchmediaquery@0.4.2/node_modules/matchmediaquery/index.js +1 -1
- package/dist/esm/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +1 -1
- package/dist/esm/web-containers/tsconfig.build.tsbuildinfo +1 -0
- package/dist/index.d.ts +31 -2
- package/dist/package.json +1 -1
- package/package.json +3 -3
- package/dist/cjs/web-containers/tsconfig.tsbuildinfo +0 -1
- package/dist/esm/web-containers/tsconfig.tsbuildinfo +0 -1
|
@@ -12,6 +12,7 @@ import { cn } from '../../lib/utils.js';
|
|
|
12
12
|
import { LLMProviderLogo } from '../modals/edit-mentor-modal/tabs/llm-tab/provider-logo.js';
|
|
13
13
|
import { ComposerSheet } from './composer-sheet.js';
|
|
14
14
|
import { MemoryMenu } from './memory-menu.js';
|
|
15
|
+
import { McpServersMenu } from './mcp-servers-menu.js';
|
|
15
16
|
import LoaderCircle from '../../node_modules/.pnpm/lucide-react@0.528.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/loader-circle.js';
|
|
16
17
|
import Plus from '../../node_modules/.pnpm/lucide-react@0.528.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/plus.js';
|
|
17
18
|
import ChevronRight from '../../node_modules/.pnpm/lucide-react@0.528.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/chevron-right.js';
|
|
@@ -22,6 +23,7 @@ import Sparkles from '../../node_modules/.pnpm/lucide-react@0.528.0_react@19.1.0
|
|
|
22
23
|
import Cpu from '../../node_modules/.pnpm/lucide-react@0.528.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/cpu.js';
|
|
23
24
|
import Terminal from '../../node_modules/.pnpm/lucide-react@0.528.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/terminal.js';
|
|
24
25
|
import Archive from '../../node_modules/.pnpm/lucide-react@0.528.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/archive.js';
|
|
26
|
+
import Plug from '../../node_modules/.pnpm/lucide-react@0.528.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/plug.js';
|
|
25
27
|
import Check from '../../node_modules/.pnpm/lucide-react@0.528.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/check.js';
|
|
26
28
|
|
|
27
29
|
/** Distance (px) from the list bottom at which the next skills page is requested. */
|
|
@@ -36,13 +38,14 @@ const ROW_CLASS = 'flex h-9 w-full cursor-pointer items-center gap-2.5 rounded-l
|
|
|
36
38
|
const POP_CLASS = 'rounded-[14px] border border-[#e6e6e8] bg-white p-1.5 shadow-[0_10px_40px_-12px_rgba(15,23,42,0.18)]';
|
|
37
39
|
/**
|
|
38
40
|
* The redesigned composer's single "+" menu: Upload file, Camera, then
|
|
39
|
-
* Tools ›, Skills ›, Prompts and
|
|
41
|
+
* Tools ›, Skills ›, Prompts, Memory and MCP. Desktop renders a Radix dropdown
|
|
40
42
|
* with side submenus (menu roles, arrow keys, Escape and focus return come
|
|
41
|
-
* from Radix);
|
|
42
|
-
*
|
|
43
|
-
* is nothing to offer.
|
|
43
|
+
* from Radix); Memory and MCP open a panel beside the menu instead; phones
|
|
44
|
+
* render the same entries as a bottom sheet with pages. Every entry is gated
|
|
45
|
+
* by the caller, and the trigger disappears when there is nothing to offer.
|
|
44
46
|
*/
|
|
45
|
-
function ComposerPlusMenu({ isMobile, disabled = false, attachDisabled = false, isPublicRoute, onUploadFile, onCamera, tools, skills, activeSkillSlugs, onToggleSkill, hasMoreSkills = false, isFetchingMoreSkills = false, onLoadMoreSkills, showPrompts, onOpenPrompts, showMemory, models = null, mentorId, tenantKey, username, }) {
|
|
47
|
+
function ComposerPlusMenu({ isMobile, disabled = false, attachDisabled = false, isPublicRoute, onUploadFile, onCamera, tools, skills, activeSkillSlugs, onToggleSkill, hasMoreSkills = false, isFetchingMoreSkills = false, onLoadMoreSkills, showPrompts, onOpenPrompts, showMemory, showMcp, mcpMentorId, sessionId, mcpActiveCount = 0, models = null, mentorId, tenantKey, username, }) {
|
|
48
|
+
var _a;
|
|
46
49
|
const t = useChatT();
|
|
47
50
|
const host = useChatHost();
|
|
48
51
|
const portalContainer = useFloatingPortalContainer();
|
|
@@ -56,7 +59,18 @@ function ComposerPlusMenu({ isMobile, disabled = false, attachDisabled = false,
|
|
|
56
59
|
const showUpload = showAttachment && host.features.fileUpload;
|
|
57
60
|
const showCamera = showAttachment && host.features.camera;
|
|
58
61
|
const [menuOpen, setMenuOpen] = useState(false);
|
|
59
|
-
|
|
62
|
+
// The kind outlives the close on purpose: Radix keeps the popover mounted
|
|
63
|
+
// through its exit animation, and it must keep showing the panel fading out.
|
|
64
|
+
const [sidePanel, setSidePanel] = useState('memory');
|
|
65
|
+
const [sidePanelOpen, setSidePanelOpen] = useState(false);
|
|
66
|
+
// A Connect sign-in finishes inside the MCP menu: unmounting it mid-flow
|
|
67
|
+
// loses the connection, so nothing closes the panel until it settles.
|
|
68
|
+
const [mcpConnecting, setMcpConnecting] = useState(false);
|
|
69
|
+
const focusPanelOnMenuCloseRef = useRef(false);
|
|
70
|
+
// The popover has an anchor, not a trigger, so Radix cannot return focus to
|
|
71
|
+
// "+" by itself when a panel closes; it goes back there by hand.
|
|
72
|
+
const plusButtonRef = useRef(null);
|
|
73
|
+
const sidePanelRef = useRef(null);
|
|
60
74
|
const [sheetPage, setSheetPage] = useState(null);
|
|
61
75
|
const [sheetProvider, setSheetProvider] = useState(null);
|
|
62
76
|
const cameraPickedRef = useRef(false);
|
|
@@ -64,14 +78,40 @@ function ComposerPlusMenu({ isMobile, disabled = false, attachDisabled = false,
|
|
|
64
78
|
const showTools = tools.length > 0;
|
|
65
79
|
const showSkills = skills.length > 0;
|
|
66
80
|
const showModel = !!models;
|
|
67
|
-
if (!showAttach &&
|
|
81
|
+
if (!showAttach &&
|
|
82
|
+
!showTools &&
|
|
83
|
+
!showSkills &&
|
|
84
|
+
!showModel &&
|
|
85
|
+
!showPrompts &&
|
|
86
|
+
!showMemory &&
|
|
87
|
+
!showMcp) {
|
|
68
88
|
return null;
|
|
69
89
|
}
|
|
70
90
|
const activeToolCount = tools.filter((tool) => tool.isActive).length;
|
|
71
91
|
const activeSkillCount = skills.filter((skill) => activeSkillSlugs.has(skill.slug)).length;
|
|
72
92
|
const modes = tools.filter((tool) => tool.group === 'mode');
|
|
73
93
|
const plainTools = tools.filter((tool) => tool.group === 'tool');
|
|
74
|
-
const isOpen = isMobile ? sheetPage !== null : menuOpen ||
|
|
94
|
+
const isOpen = isMobile ? sheetPage !== null : menuOpen || sidePanelOpen;
|
|
95
|
+
const mcpMenuProps = {
|
|
96
|
+
tenantKey: tenantKey !== null && tenantKey !== void 0 ? tenantKey : '',
|
|
97
|
+
username: username !== null && username !== void 0 ? username : '',
|
|
98
|
+
mentorId: (_a = mcpMentorId !== null && mcpMentorId !== void 0 ? mcpMentorId : mentorId) !== null && _a !== void 0 ? _a : '',
|
|
99
|
+
sessionId,
|
|
100
|
+
};
|
|
101
|
+
const mcpPanelBusy = sidePanelOpen && sidePanel === 'mcp' && mcpConnecting;
|
|
102
|
+
const openSidePanel = (panel) => {
|
|
103
|
+
// Swapping the panel for Memory would unmount the MCP menu mid sign-in too.
|
|
104
|
+
if (mcpPanelBusy && panel !== 'mcp')
|
|
105
|
+
return;
|
|
106
|
+
focusPanelOnMenuCloseRef.current = panel === 'mcp';
|
|
107
|
+
setSidePanel(panel);
|
|
108
|
+
setSidePanelOpen(true);
|
|
109
|
+
};
|
|
110
|
+
const closeSidePanel = () => {
|
|
111
|
+
if (mcpPanelBusy)
|
|
112
|
+
return;
|
|
113
|
+
setSidePanelOpen(false);
|
|
114
|
+
};
|
|
75
115
|
const toolLabel = (tool) => tool.isPending ? `${tool.label} ${t('chat.outsideButtons.connecting')}` : tool.label;
|
|
76
116
|
const handleSkillsScroll = (event) => {
|
|
77
117
|
if (!hasMoreSkills || isFetchingMoreSkills || !onLoadMoreSkills)
|
|
@@ -82,7 +122,7 @@ function ComposerPlusMenu({ isMobile, disabled = false, attachDisabled = false,
|
|
|
82
122
|
}
|
|
83
123
|
};
|
|
84
124
|
const loadingMoreRow = isFetchingMoreSkills && (jsx("div", { "data-testid": "skills-menu-loading-more", className: "flex items-center justify-center px-2 py-1.5", children: jsx(LoaderCircle, { className: "h-4 w-4 animate-spin text-gray-400", "aria-hidden": "true" }) }));
|
|
85
|
-
const trigger = (jsx(Button, { variant: "ghost", size: "icon", type: "button", disabled: disabled, "aria-label": t('chat.chatInputFormUploadMenu.attachFile'), title: t('chat.chatComposer.addFilesAndTools'), "data-testid": "composer-plus-button", "aria-expanded": isOpen, "aria-haspopup": isMobile ? 'dialog' : 'menu', onClick: isMobile ? () => setSheetPage('main') : undefined, className: cn('h-8 w-8 shrink-0 rounded-[10px] border text-gray-600 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50', isOpen ? 'border-[#D0E0FF] bg-[#F5F8FF]' : 'border-transparent'), children: jsx(Plus, { className: "h-4 w-4", "aria-hidden": "true" }) }));
|
|
125
|
+
const trigger = (jsx(Button, { ref: plusButtonRef, variant: "ghost", size: "icon", type: "button", disabled: disabled, "aria-label": t('chat.chatInputFormUploadMenu.attachFile'), title: t('chat.chatComposer.addFilesAndTools'), "data-testid": "composer-plus-button", "aria-expanded": isOpen, "aria-haspopup": isMobile ? 'dialog' : 'menu', onClick: isMobile ? () => setSheetPage('main') : undefined, className: cn('h-8 w-8 shrink-0 rounded-[10px] border text-gray-600 hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-50', isOpen ? 'border-[#D0E0FF] bg-[#F5F8FF]' : 'border-transparent'), children: jsx(Plus, { className: "h-4 w-4", "aria-hidden": "true" }) }));
|
|
86
126
|
// ---------------------------------------------------------------- phones
|
|
87
127
|
if (isMobile) {
|
|
88
128
|
const closeSheet = () => setSheetPage(null);
|
|
@@ -96,7 +136,10 @@ function ComposerPlusMenu({ isMobile, disabled = false, attachDisabled = false,
|
|
|
96
136
|
const sheetRow = 'flex h-11 w-full items-center gap-3 rounded-[10px] px-1.5 text-left text-[15px] text-gray-900 hover:bg-[#F5F8FF] disabled:opacity-50';
|
|
97
137
|
const tile = 'flex h-[76px] flex-col items-center justify-center gap-2 rounded-xl border border-gray-200 bg-[#fbfbfb] text-[13px] font-medium text-gray-900 disabled:opacity-50';
|
|
98
138
|
const chevron = jsx(ChevronRight, { className: "h-4 w-4 text-gray-500", "aria-hidden": "true" });
|
|
99
|
-
return (jsxs(Fragment, { children: [trigger, jsxs(ComposerSheet, { open: sheetPage !== null, onOpenChange: (open) =>
|
|
139
|
+
return (jsxs(Fragment, { children: [trigger, jsxs(ComposerSheet, { open: sheetPage !== null, onOpenChange: (open) => {
|
|
140
|
+
if (!open && !(sheetPage === 'mcp' && mcpConnecting))
|
|
141
|
+
closeSheet();
|
|
142
|
+
}, ariaLabel: t('chat.chatComposer.addFilesAndTools'), title: sheetPage ? pageTitles[sheetPage] : undefined, onBack: () => setSheetPage(sheetPage === 'modelProvider' ? 'model' : 'main'), "data-testid": "composer-plus-sheet",
|
|
100
143
|
// The sheet itself scrolls; near its bottom the next skills page loads.
|
|
101
144
|
onScroll: sheetPage === 'skills' ? handleSkillsScroll : undefined, children: [sheetPage === 'main' && (jsxs(Fragment, { children: [showAttach && (jsxs("div", { className: "mt-1 mb-3 grid grid-cols-2 gap-2", children: [showCamera && (jsxs("button", { type: "button", className: tile, disabled: attachDisabled, onClick: () => {
|
|
102
145
|
closeSheet();
|
|
@@ -107,7 +150,7 @@ function ComposerPlusMenu({ isMobile, disabled = false, attachDisabled = false,
|
|
|
107
150
|
}, children: [jsx(Paperclip, { className: "h-5 w-5 text-gray-600", "aria-hidden": "true" }), t('chat.chatInputFormUploadMenu.uploadFile')] }))] })), showTools && (jsxs("button", { type: "button", className: sheetRow, onClick: () => setSheetPage('tools'), children: [jsx(SlidersHorizontal, { className: "h-[18px] w-[18px] text-gray-600", "aria-hidden": "true" }), jsx("span", { className: "flex-1", children: t('chat.chatComposer.tools') }), jsx(CountBadge, { count: activeToolCount, label: t('chat.chatComposer.activeCount', { count: activeToolCount }) }), chevron] })), showSkills && (jsxs("button", { type: "button", className: sheetRow, "data-testid": "skills-menu-trigger", onClick: () => setSheetPage('skills'), children: [jsx(Sparkles, { className: "h-[18px] w-[18px] text-gray-600", "aria-hidden": "true" }), jsx("span", { className: "flex-1", children: t('chat.chatInputFormInsideButtons.skills') }), jsx(CountBadge, { count: activeSkillCount, label: t('chat.chatComposer.activeCount', { count: activeSkillCount }) }), chevron] })), models && (jsxs("button", { type: "button", className: sheetRow, "data-testid": "composer-model-trigger", onClick: () => setSheetPage('model'), children: [jsx(Cpu, { className: "h-[18px] w-[18px] text-gray-600", "aria-hidden": "true" }), jsx("span", { className: "flex-1", children: t('chat.chatComposer.model') }), jsx("span", { className: "max-w-[45%] truncate text-[13px] text-gray-500", children: models.current.label }), chevron] })), showPrompts && (jsxs("button", { type: "button", className: sheetRow, onClick: () => {
|
|
108
151
|
closeSheet();
|
|
109
152
|
onOpenPrompts();
|
|
110
|
-
}, children: [jsx(Terminal, { className: "h-[18px] w-[18px] text-gray-600", "aria-hidden": "true" }), jsx("span", { className: "flex-1", children: t('chat.chatInputFormInsideButtons.prompts') }), chevron] })), showMemory && (jsxs("button", { type: "button", className: sheetRow, "data-testid": "chat-memory-button", onClick: () => setSheetPage('memory'), children: [jsx(Archive, { className: "h-[18px] w-[18px] text-gray-600", "aria-hidden": "true" }), jsx("span", { className: "flex-1", children: t('chat.chatInputFormInsideButtons.memory') })] }))] })), sheetPage === 'tools' && (jsxs(Fragment, { children: [modes.map((tool) => (jsx(MobileToolRow, { tool: tool, label: toolLabel(tool) }, tool.key))), modes.length > 0 && plainTools.length > 0 && (jsx("div", { role: "separator", className: "mx-1.5 my-1.5 h-px shrink-0 bg-gray-200" })), plainTools.map((tool) => (jsx(MobileToolRow, { tool: tool, label: toolLabel(tool) }, tool.key)))] })), sheetPage === 'skills' && (jsxs("div", { "data-testid": "skills-menu-content", className: "flex flex-col", children: [skills.map((skill) => {
|
|
153
|
+
}, children: [jsx(Terminal, { className: "h-[18px] w-[18px] text-gray-600", "aria-hidden": "true" }), jsx("span", { className: "flex-1", children: t('chat.chatInputFormInsideButtons.prompts') }), chevron] })), showMemory && (jsxs("button", { type: "button", className: sheetRow, "data-testid": "chat-memory-button", onClick: () => setSheetPage('memory'), children: [jsx(Archive, { className: "h-[18px] w-[18px] text-gray-600", "aria-hidden": "true" }), jsx("span", { className: "flex-1", children: t('chat.chatInputFormInsideButtons.memory') })] })), showMcp && (jsxs("button", { type: "button", className: sheetRow, "data-testid": "chat-mcp-button", onClick: () => setSheetPage('mcp'), children: [jsx(Plug, { className: "h-[18px] w-[18px] text-gray-600", "aria-hidden": "true" }), jsx("span", { className: "flex-1", children: t('chat.chatInputFormInsideButtons.mcp') }), jsx(CountBadge, { count: mcpActiveCount, label: t('chat.chatComposer.activeCount', { count: mcpActiveCount }) })] }))] })), sheetPage === 'tools' && (jsxs(Fragment, { children: [modes.map((tool) => (jsx(MobileToolRow, { tool: tool, label: toolLabel(tool) }, tool.key))), modes.length > 0 && plainTools.length > 0 && (jsx("div", { role: "separator", className: "mx-1.5 my-1.5 h-px shrink-0 bg-gray-200" })), plainTools.map((tool) => (jsx(MobileToolRow, { tool: tool, label: toolLabel(tool) }, tool.key)))] })), sheetPage === 'skills' && (jsxs("div", { "data-testid": "skills-menu-content", className: "flex flex-col", children: [skills.map((skill) => {
|
|
111
154
|
const armed = activeSkillSlugs.has(skill.slug);
|
|
112
155
|
return (jsxs("button", { type: "button", "aria-pressed": armed, "data-testid": `skills-menu-item-${skill.slug}`, title: `/${skill.slug}`, className: cn(sheetRow, 'h-auto min-h-11 px-3 py-1.5'), onClick: () => onToggleSkill(skill), children: [jsxs("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [jsx("span", { "data-testid": "skills-menu-item-name", className: "break-words", children: skill.name }), jsxs("span", { "data-testid": "skills-menu-item-slug", className: "text-[13px] break-all text-gray-500", children: ["/", skill.slug] })] }), armed && (jsx(Check, { className: "h-5 w-5 text-[#2563eb]", strokeWidth: 2.25, "aria-hidden": "true" }))] }, skill.unique_id));
|
|
113
156
|
}), loadingMoreRow] })), models && sheetPage === 'model' && (jsxs("div", { "data-testid": "composer-model-providers", className: "flex flex-col gap-0.5", children: [jsx("p", { className: "px-1.5 pb-2 text-xs text-gray-600", children: t('chat.chatComposer.newChatsUseDefault', { model: models.defaultLabel }) }), models.providers.length === 1
|
|
@@ -115,16 +158,29 @@ function ComposerPlusMenu({ isMobile, disabled = false, attachDisabled = false,
|
|
|
115
158
|
: models.providers.map((provider) => (jsxs("button", { type: "button", "data-testid": `composer-model-provider-${provider.key}`, className: cn(sheetRow, 'h-14'), onClick: () => {
|
|
116
159
|
setSheetProvider(provider.key);
|
|
117
160
|
setSheetPage('modelProvider');
|
|
118
|
-
}, children: [jsx(ProviderRowContent, { provider: provider, models: models }), chevron] }, provider.key)))] })), models && sheetPage === 'modelProvider' && sheetModelProvider && (jsx("div", { "data-testid": "composer-model-list", className: "flex flex-col gap-0.5", children: sheetModelProvider.models.map((option) => (jsx(MobileModelRow, { option: option, models: models, onPicked: closeSheet }, option.llmName))) })), sheetPage === 'memory' && (jsx(MemoryMenu, { onClose: () => setSheetPage('main'), mentorId: mentorId, tenantKey: tenantKey, username: username }))
|
|
161
|
+
}, children: [jsx(ProviderRowContent, { provider: provider, models: models }), chevron] }, provider.key)))] })), models && sheetPage === 'modelProvider' && sheetModelProvider && (jsx("div", { "data-testid": "composer-model-list", className: "flex flex-col gap-0.5", children: sheetModelProvider.models.map((option) => (jsx(MobileModelRow, { option: option, models: models, onPicked: closeSheet }, option.llmName))) })), sheetPage === 'memory' && (jsx(MemoryMenu, { onClose: () => setSheetPage('main'), mentorId: mentorId, tenantKey: tenantKey, username: username })), sheetPage === 'mcp' && (jsx(McpServersMenu, { ...mcpMenuProps, onClose: () => {
|
|
162
|
+
if (!mcpConnecting)
|
|
163
|
+
setSheetPage('main');
|
|
164
|
+
}, onConnectingChange: setMcpConnecting }))] })] }));
|
|
119
165
|
}
|
|
120
166
|
// --------------------------------------------------------------- desktop
|
|
121
|
-
const hasListAfterAttach = showTools || showSkills || showModel || showPrompts || showMemory;
|
|
122
|
-
return (jsxs(Popover, { open:
|
|
167
|
+
const hasListAfterAttach = showTools || showSkills || showModel || showPrompts || showMemory || showMcp;
|
|
168
|
+
return (jsxs(Popover, { open: sidePanelOpen, onOpenChange: (open) => (open ? setSidePanelOpen(true) : closeSidePanel()), children: [jsx(PopoverAnchor, { asChild: true, children: jsx("div", { className: "flex shrink-0", children: jsxs(DropdownMenu, { open: menuOpen, onOpenChange: setMenuOpen, children: [jsx(DropdownMenuTrigger, { asChild: true, disabled: disabled, children: trigger }), jsxs(DropdownMenuContent, { align: "start", sideOffset: 8, collisionPadding: 8, "data-testid": "composer-plus-menu", className: cn(POP_CLASS, 'flex w-[248px] flex-col gap-0.5'),
|
|
123
169
|
// The camera dialog's DismissableLayer is a separate Radix copy from
|
|
124
170
|
// this menu's: opened while the menu is mounted it records the menu's
|
|
125
171
|
// `pointer-events: none` on <body> as the original and restores it on
|
|
126
172
|
// close, freezing the page. This fires after the menu has unmounted.
|
|
127
|
-
onCloseAutoFocus: () => {
|
|
173
|
+
onCloseAutoFocus: (event) => {
|
|
174
|
+
var _a;
|
|
175
|
+
// The MCP panel takes focus (Tab from it reaches its controls
|
|
176
|
+
// and switches); Radix would pull it back to "+" here. Focusing
|
|
177
|
+
// the panel from here too covers a panel that was already
|
|
178
|
+
// mounted, whose own open autofocus does not run again.
|
|
179
|
+
if (focusPanelOnMenuCloseRef.current) {
|
|
180
|
+
focusPanelOnMenuCloseRef.current = false;
|
|
181
|
+
event.preventDefault();
|
|
182
|
+
(_a = sidePanelRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
183
|
+
}
|
|
128
184
|
if (!cameraPickedRef.current)
|
|
129
185
|
return;
|
|
130
186
|
cameraPickedRef.current = false;
|
|
@@ -140,10 +196,31 @@ function ComposerPlusMenu({ isMobile, disabled = false, attachDisabled = false,
|
|
|
140
196
|
? models.providers[0].models.map((option) => (jsx(ModelMenuItem, { option: option, models: models }, option.llmName)))
|
|
141
197
|
: models.providers.map((provider) => (jsxs(DropdownMenuSub, { children: [jsx(DropdownMenuSubTrigger, { "data-testid": `composer-model-provider-${provider.key}`, className: cn(ROW_CLASS, 'h-11 shrink-0 [&>svg:last-child]:h-3.5 [&>svg:last-child]:w-3.5 [&>svg:last-child]:text-gray-500'), children: jsx(ProviderRowContent, { provider: provider, models: models }) }), jsx(Portal2, { container: portalContainer !== null && portalContainer !== void 0 ? portalContainer : undefined, children: jsx(DropdownMenuSubContent, { sideOffset: 6, alignOffset: -7, collisionPadding: 8, "data-testid": "composer-model-list", "aria-label": t('chat.chatComposer.providerModels', {
|
|
142
198
|
provider: provider.label,
|
|
143
|
-
}), className: cn(POP_CLASS, 'flex max-h-[min(70vh,30rem)] w-[220px] flex-col gap-0.5 overflow-y-auto'), children: provider.models.map((option) => (jsx(ModelMenuItem, { option: option, models: models }, option.llmName))) }) })] }, provider.key)))] }) })] })), showPrompts && (jsxs(DropdownMenuItem, { className: ROW_CLASS, onSelect: onOpenPrompts, children: [jsx(Terminal, { className: "h-4 w-4 text-gray-600", "aria-hidden": "true" }), jsx("span", { className: "flex-1", children: t('chat.chatInputFormInsideButtons.prompts') })] })), showMemory && (jsxs(DropdownMenuItem, { className: ROW_CLASS, "aria-haspopup": "dialog", "data-testid": "chat-memory-button", onSelect: () =>
|
|
199
|
+
}), className: cn(POP_CLASS, 'flex max-h-[min(70vh,30rem)] w-[220px] flex-col gap-0.5 overflow-y-auto'), children: provider.models.map((option) => (jsx(ModelMenuItem, { option: option, models: models }, option.llmName))) }) })] }, provider.key)))] }) })] })), showPrompts && (jsxs(DropdownMenuItem, { className: ROW_CLASS, onSelect: onOpenPrompts, children: [jsx(Terminal, { className: "h-4 w-4 text-gray-600", "aria-hidden": "true" }), jsx("span", { className: "flex-1", children: t('chat.chatInputFormInsideButtons.prompts') })] })), showMemory && (jsxs(DropdownMenuItem, { className: ROW_CLASS, "aria-haspopup": "dialog", "data-testid": "chat-memory-button", onSelect: () => openSidePanel('memory'), children: [jsx(Archive, { className: "h-4 w-4 text-gray-600", "aria-hidden": "true" }), jsx("span", { className: "flex-1", children: t('chat.chatInputFormInsideButtons.memory') })] })), showMcp && (jsxs(DropdownMenuItem, { className: ROW_CLASS, "aria-haspopup": "dialog", "data-testid": "chat-mcp-button", onSelect: () => openSidePanel('mcp'), children: [jsx(Plug, { className: "h-4 w-4 text-gray-600", "aria-hidden": "true" }), jsx("span", { className: "flex-1", children: t('chat.chatInputFormInsideButtons.mcp') }), jsx(CountBadge, { count: mcpActiveCount, label: t('chat.chatComposer.activeCount', { count: mcpActiveCount }) })] }))] })] }) }) }), jsxs(PopoverContent, { ref: sidePanelRef, align: "start", sideOffset: 8, collisionPadding: 8, "data-testid": sidePanel === 'mcp' ? 'composer-mcp-popover' : 'composer-memory-popover', "aria-label": sidePanel === 'mcp' ? t('chat.chatInputFormInsideButtons.mcp') : undefined, className: cn('max-w-[calc(100vw-1rem)] rounded-[14px] border border-[#e6e6e8] bg-white p-0 shadow-[0_10px_40px_-12px_rgba(15,23,42,0.18)]',
|
|
200
|
+
// Wide enough for the MCP panel's one-line explanation under its title.
|
|
201
|
+
sidePanel === 'mcp' ? 'w-[28rem]' : 'w-96',
|
|
202
|
+
// The MCP panel keeps its header in view and scrolls its list inside
|
|
203
|
+
// the height Radix measured.
|
|
204
|
+
sidePanel === 'mcp' &&
|
|
205
|
+
'flex max-h-[var(--radix-popover-content-available-height)] flex-col overflow-hidden'), onOpenAutoFocus: (e) => {
|
|
206
|
+
var _a;
|
|
207
|
+
e.preventDefault();
|
|
208
|
+
// MCP: focus the panel itself, not its first control, so Tab reaches
|
|
209
|
+
// the search box while phones keep the keyboard down. Memory keeps
|
|
210
|
+
// focus on "+".
|
|
211
|
+
if (sidePanel === 'mcp')
|
|
212
|
+
(_a = e.target) === null || _a === void 0 ? void 0 : _a.focus();
|
|
213
|
+
},
|
|
214
|
+
// Escape or the panel's own close would otherwise drop focus on <body>
|
|
215
|
+
// once the focused panel unmounts.
|
|
216
|
+
onCloseAutoFocus: (e) => {
|
|
217
|
+
var _a;
|
|
218
|
+
e.preventDefault();
|
|
219
|
+
(_a = plusButtonRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
220
|
+
},
|
|
144
221
|
// The closing dropdown hands focus back to the "+" trigger, which
|
|
145
222
|
// Radix would otherwise read as focus leaving this popover.
|
|
146
|
-
onFocusOutside: /* istanbul ignore next */ (e) => e.preventDefault(), children: jsx(MemoryMenu, { onClose:
|
|
223
|
+
onFocusOutside: /* istanbul ignore next */ (e) => e.preventDefault(), children: [sidePanel === 'memory' && (jsx(MemoryMenu, { onClose: closeSidePanel, mentorId: mentorId, tenantKey: tenantKey, username: username })), sidePanel === 'mcp' && (jsx(McpServersMenu, { ...mcpMenuProps, onClose: closeSidePanel, onConnectingChange: setMcpConnecting }))] })] }));
|
|
147
224
|
}
|
|
148
225
|
function SubTrigger({ icon, label, count, countLabel, testId, }) {
|
|
149
226
|
return (jsxs(DropdownMenuSubTrigger, { "data-testid": testId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composer-plus-menu.js","sources":["../../../../../../../src/components/chat-input-form/composer-plus-menu.tsx"],"sourcesContent":[null],"names":["_jsx","Loader2","_jsxs","_Fragment","DropdownMenuPrimitive.Portal","DropdownMenuPrimitive.CheckboxItem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"composer-plus-menu.js","sources":["../../../../../../../src/components/chat-input-form/composer-plus-menu.tsx"],"sourcesContent":[null],"names":["_jsx","Loader2","_jsxs","_Fragment","DropdownMenuPrimitive.Portal","DropdownMenuPrimitive.CheckboxItem"],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { useT } from '../../i18n/context.js';
|
|
3
|
+
import '../../packages/i18n/dist/index.esm.js';
|
|
4
|
+
import { AlertDialog, AlertDialogContent, AlertDialogHeader, AlertDialogTitle, AlertDialogDescription, AlertDialogFooter, AlertDialogCancel, AlertDialogAction } from '../chat/ui/alert-dialog.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* What pressing Connect does, said once before the first sign-in window
|
|
8
|
+
* opens (the Cowork consent dialog's shape): whose account the sign-in
|
|
9
|
+
* becomes — the user's own for a per-user server, everyone's for a shared
|
|
10
|
+
* one — and that pop-ups must be allowed for the window to appear.
|
|
11
|
+
*/
|
|
12
|
+
function McpConnectExplainerDialog({ server, onCancel, onContinue, }) {
|
|
13
|
+
var _a;
|
|
14
|
+
const t = useT();
|
|
15
|
+
const name = (server === null || server === void 0 ? void 0 : server.name) ||
|
|
16
|
+
((_a = server === null || server === void 0 ? void 0 : server.oauth_service_data) === null || _a === void 0 ? void 0 : _a.display_name) ||
|
|
17
|
+
t('mcpTabConnectorManagementContent.unknownConnector');
|
|
18
|
+
// The agent's own choice wins over the connector's, as for the connection itself.
|
|
19
|
+
const scope = (server === null || server === void 0 ? void 0 : server.effective_auth_scope) || (server === null || server === void 0 ? void 0 : server.auth_scope);
|
|
20
|
+
const shared = !!scope && scope !== 'user';
|
|
21
|
+
return (jsx(AlertDialog, { open: server !== null, onOpenChange: (open) => !open && onCancel(), children: jsxs(AlertDialogContent, { "data-testid": "mcp-connect-explainer", children: [jsxs(AlertDialogHeader, { children: [jsx(AlertDialogTitle, { children: t('mcpServersMenu.connectTitle', { name }) }), jsxs(AlertDialogDescription, { className: "space-y-2", children: [jsx("span", { className: "block", children: shared
|
|
22
|
+
? t('mcpServersMenu.connectBodyShared', { name })
|
|
23
|
+
: t('mcpServersMenu.connectBodyUser', { name }) }), jsx("span", { className: "block", children: t('mcpServersMenu.connectPopupHint') })] })] }), jsxs(AlertDialogFooter, { children: [jsx(AlertDialogCancel, { "data-testid": "mcp-connect-explainer-cancel", children: t('mcpTabConnectorManagementContent.cancel') }), jsx(AlertDialogAction, { "data-testid": "mcp-connect-explainer-continue", onClick: () => server && onContinue(server), children: t('mcpServersMenu.connectContinue') })] })] }) }));
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { McpConnectExplainerDialog };
|
|
27
|
+
//# sourceMappingURL=mcp-connect-explainer-dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-connect-explainer-dialog.js","sources":["../../../../../../../src/components/chat-input-form/mcp-connect-explainer-dialog.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":";;;;;AAsBA;;;;;AAKG;AACG,SAAU,yBAAyB,CAAC,EACxC,MAAM,EACN,QAAQ,EACR,UAAU,GACqB,EAAA;;AAC/B,IAAA,MAAM,CAAC,GAAG,IAAI,EAAE;IAChB,MAAM,IAAI,GACR,CAAA,MAAM,aAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,IAAI;SACZ,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,kBAAkB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,YAAY,CAAA;QACxC,CAAC,CAAC,mDAAmD,CAAC;;AAExD,IAAA,MAAM,KAAK,GAAG,CAAA,MAAM,KAAA,IAAA,IAAN,MAAM,uBAAN,MAAM,CAAE,oBAAoB,MAAI,MAAM,aAAN,MAAM,KAAA,MAAA,GAAA,MAAA,GAAN,MAAM,CAAE,UAAU,CAAA;IAChE,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM;IAC1C,QACEA,GAAA,CAAC,WAAW,EAAA,EAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,YAAY,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,QAAQ,EAAE,EAAA,QAAA,EAC7EC,IAAA,CAAC,kBAAkB,EAAA,EAAA,aAAA,EAAa,uBAAuB,EAAA,QAAA,EAAA,CACrDA,KAAC,iBAAiB,EAAA,EAAA,QAAA,EAAA,CAChBD,GAAA,CAAC,gBAAgB,EAAA,EAAA,QAAA,EAAE,CAAC,CAAC,6BAA6B,EAAE,EAAE,IAAI,EAAE,CAAC,EAAA,CAAoB,EACjFC,IAAA,CAAC,sBAAsB,EAAA,EAAC,SAAS,EAAC,WAAW,EAAA,QAAA,EAAA,CAC3CD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,OAAO,EAAA,QAAA,EACpB;0CACG,CAAC,CAAC,kCAAkC,EAAE,EAAE,IAAI,EAAE;AAChD,0CAAE,CAAC,CAAC,gCAAgC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAA,CAC5C,EACPA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,OAAO,EAAA,QAAA,EAAE,CAAC,CAAC,iCAAiC,CAAC,EAAA,CAAQ,CAAA,EAAA,CAC9C,CAAA,EAAA,CACP,EACpBC,IAAA,CAAC,iBAAiB,EAAA,EAAA,QAAA,EAAA,CAChBD,GAAA,CAAC,iBAAiB,mBAAa,8BAA8B,EAAA,QAAA,EAC1D,CAAC,CAAC,yCAAyC,CAAC,EAAA,CAC3B,EACpBA,GAAA,CAAC,iBAAiB,EAAA,EAAA,aAAA,EACJ,gCAAgC,EAC5C,OAAO,EAAE,MAAM,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,EAAA,QAAA,EAE1C,CAAC,CAAC,gCAAgC,CAAC,EAAA,CAClB,CAAA,EAAA,CACF,CAAA,EAAA,CACD,EAAA,CACT;AAElB;;;;"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, useCallback, useEffect, useMemo } from 'react';
|
|
3
|
+
import { useSetMCPServerSessionPreferenceMutation, useGetMCPServersQuery } from '@iblai/data-layer';
|
|
4
|
+
import { toast } from 'sonner';
|
|
5
|
+
import { useT } from '../../i18n/context.js';
|
|
6
|
+
import '../../packages/i18n/dist/index.esm.js';
|
|
7
|
+
import { Button } from '../ui/button.js';
|
|
8
|
+
import { Switch } from '../ui/switch.js';
|
|
9
|
+
import { Spinner } from '../spinner/index.js';
|
|
10
|
+
import { useMcpServerActions } from '../modals/edit-mentor-modal/tabs/mcp-tab/use-mcp-server-actions.js';
|
|
11
|
+
import { useLocalStorage } from '../../hooks/use-local-storage.js';
|
|
12
|
+
import { McpConnectExplainerDialog } from './mcp-connect-explainer-dialog.js';
|
|
13
|
+
import { attachedMcpServers, connectorImage } from '../modals/edit-mentor-modal/tabs/mcp-tab/mcp-connector-helpers.js';
|
|
14
|
+
import X from '../../node_modules/.pnpm/lucide-react@0.528.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/x.js';
|
|
15
|
+
import Plug from '../../node_modules/.pnpm/lucide-react@0.528.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/plug.js';
|
|
16
|
+
import Lock from '../../node_modules/.pnpm/lucide-react@0.528.0_react@19.1.0/node_modules/lucide-react/dist/esm/icons/lock.js';
|
|
17
|
+
|
|
18
|
+
/** The API's largest page: the rows that carry this conversation's `user_enabled`. */
|
|
19
|
+
const PAGE_SIZE = 30;
|
|
20
|
+
// The brand blue of the MCP tab's switches.
|
|
21
|
+
const SWITCH_CLASS = 'data-[state=checked]:bg-[#38A1E5] data-[state=unchecked]:bg-gray-200';
|
|
22
|
+
// The close button matches the Memory menu's.
|
|
23
|
+
const CLOSE_ICON_BUTTON_CLASS = 'h-6 w-6 rounded-full hover:bg-gray-100';
|
|
24
|
+
/**
|
|
25
|
+
* The composer's MCP panel: only the servers the agent uses, each with the person's
|
|
26
|
+
* on/off for this conversation. The switch is the only control: one whose own
|
|
27
|
+
* sign-in is missing shows off, and turning it on opens that sign-in, as the agent
|
|
28
|
+
* settings cards do. Shared (agent or organization) sign-ins stay with the agent
|
|
29
|
+
* settings cards. Everything else about servers (adding, editing, which ones the
|
|
30
|
+
* agent uses) is managed in the agent settings MCP tab, so this stays a short list.
|
|
31
|
+
*/
|
|
32
|
+
const McpServersMenu = ({ tenantKey, username, mentorId, sessionId, onClose, onConnectingChange, }) => {
|
|
33
|
+
const t = useT();
|
|
34
|
+
// The user's per-conversation choices made from this menu, by server id. They win
|
|
35
|
+
// over the list's `user_enabled` until the list is refetched with them applied.
|
|
36
|
+
const [sessionChoices, setSessionChoices] = useState({});
|
|
37
|
+
const [savingSessionIds, setSavingSessionIds] = useState(() => new Set());
|
|
38
|
+
const [setSessionPreference] = useSetMCPServerSessionPreferenceMutation();
|
|
39
|
+
// Said once per user, before their first sign-in window: whose account it becomes.
|
|
40
|
+
const [connectExplained, setConnectExplained] = useLocalStorage(`mcp_connect_explained:${username}`, false);
|
|
41
|
+
const [explainerServer, setExplainerServer] = useState(null);
|
|
42
|
+
const serverDisplayName = useCallback((server) => {
|
|
43
|
+
var _a;
|
|
44
|
+
return server.name ||
|
|
45
|
+
((_a = server.oauth_service_data) === null || _a === void 0 ? void 0 : _a.display_name) ||
|
|
46
|
+
t('mcpTabConnectorManagementContent.unknownConnector');
|
|
47
|
+
}, [t]);
|
|
48
|
+
// currentData (not data): never a previous agent's list.
|
|
49
|
+
const { currentData: response, isFetching, isError, refetch, } = useGetMCPServersQuery({
|
|
50
|
+
org: tenantKey,
|
|
51
|
+
userId: username,
|
|
52
|
+
mentorUniqueId: mentorId,
|
|
53
|
+
includeGlobal: true,
|
|
54
|
+
// The organization's own switch; servers it turned off are never used.
|
|
55
|
+
isEnabled: true,
|
|
56
|
+
pageSize: PAGE_SIZE,
|
|
57
|
+
// Makes each server's `user_enabled` reflect this conversation's choices.
|
|
58
|
+
...(sessionId && { sessionId }),
|
|
59
|
+
}, { skip: !tenantKey || !username || !mentorId });
|
|
60
|
+
const refetchServers = useCallback(() => refetch(), [refetch]);
|
|
61
|
+
const { mentorSettings, isSettingsLoading, hasConnectionForScope, getSignedInServiceId, handleConnectOAuth, connectingServiceIds, } = useMcpServerActions({
|
|
62
|
+
tenantKey,
|
|
63
|
+
username,
|
|
64
|
+
mentorId,
|
|
65
|
+
refetchServers,
|
|
66
|
+
softUserScopeConnectFailure: true,
|
|
67
|
+
// No sign-in app for this organization yet: a plain notice, not the error.
|
|
68
|
+
onConnectNotConfigured: (server) => {
|
|
69
|
+
toast.info(t('mcpServersMenu.notSetUp', { name: serverDisplayName(server) }));
|
|
70
|
+
return true;
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
const isConnecting = connectingServiceIds.size > 0;
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
if (!onConnectingChange)
|
|
76
|
+
return;
|
|
77
|
+
onConnectingChange(isConnecting);
|
|
78
|
+
return () => onConnectingChange(false);
|
|
79
|
+
}, [isConnecting, onConnectingChange]);
|
|
80
|
+
// What the agent uses, and only what the organization has on: the settings'
|
|
81
|
+
// rows, with this conversation's `user_enabled` from the list. Nothing when the
|
|
82
|
+
// attachments are not readable (the "+" row's badge is hidden for the same reason).
|
|
83
|
+
const servers = useMemo(() => {
|
|
84
|
+
var _a;
|
|
85
|
+
return ((_a = attachedMcpServers(mentorSettings, response === null || response === void 0 ? void 0 : response.results)) !== null && _a !== void 0 ? _a : [])
|
|
86
|
+
.filter((server) => server.is_enabled !== false)
|
|
87
|
+
.sort((a, b) => serverDisplayName(a).localeCompare(serverDisplayName(b)));
|
|
88
|
+
}, [mentorSettings, response, serverDisplayName]);
|
|
89
|
+
// Waiting on the settings too keeps the switches from appearing under the pointer.
|
|
90
|
+
const isLoading = (isFetching && !response) || !!isSettingsLoading;
|
|
91
|
+
// Turns a server on or off for this conversation only (the user's session
|
|
92
|
+
// preference); the backend applies it from the next message.
|
|
93
|
+
const toggleForSession = async (server, displayName, previous, enabled) => {
|
|
94
|
+
var _a, _b;
|
|
95
|
+
if (!sessionId)
|
|
96
|
+
return;
|
|
97
|
+
setSessionChoices((prev) => ({ ...prev, [server.id]: enabled }));
|
|
98
|
+
setSavingSessionIds((prev) => new Set(prev).add(server.id));
|
|
99
|
+
try {
|
|
100
|
+
const saved = await setSessionPreference({
|
|
101
|
+
org: tenantKey,
|
|
102
|
+
userId: username,
|
|
103
|
+
id: server.id,
|
|
104
|
+
sessionId,
|
|
105
|
+
isEnabled: enabled,
|
|
106
|
+
}).unwrap();
|
|
107
|
+
setSessionChoices((prev) => ({ ...prev, [server.id]: saved.effective_is_enabled }));
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
// Back to what the switch showed.
|
|
111
|
+
setSessionChoices((prev) => ({ ...prev, [server.id]: previous }));
|
|
112
|
+
const data = error === null || error === void 0 ? void 0 : error.data;
|
|
113
|
+
toast.error((_b = (_a = data === null || data === void 0 ? void 0 : data.error) !== null && _a !== void 0 ? _a : data === null || data === void 0 ? void 0 : data.detail) !== null && _b !== void 0 ? _b : t('mcpServersMenu.sessionPreferenceFailed', { displayName }));
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
setSavingSessionIds((prev) => {
|
|
117
|
+
const next = new Set(prev);
|
|
118
|
+
next.delete(server.id);
|
|
119
|
+
return next;
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
// Synchronous up to the sign-in tab, which must open within the click.
|
|
124
|
+
const requestConnect = (server) => {
|
|
125
|
+
if (connectExplained) {
|
|
126
|
+
void handleConnectOAuth(server);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
setExplainerServer(server);
|
|
130
|
+
};
|
|
131
|
+
const continueConnect = (server) => {
|
|
132
|
+
setConnectExplained(true);
|
|
133
|
+
setExplainerServer(null);
|
|
134
|
+
void handleConnectOAuth(server);
|
|
135
|
+
};
|
|
136
|
+
const renderServerRow = (server) => {
|
|
137
|
+
var _a, _b, _c;
|
|
138
|
+
const oauthData = server.oauth_service_data;
|
|
139
|
+
const displayName = serverDisplayName(server);
|
|
140
|
+
const logo = connectorImage(server);
|
|
141
|
+
const description = (oauthData === null || oauthData === void 0 ? void 0 : oauthData.description) || server.description;
|
|
142
|
+
const isConnectingRow = connectingServiceIds.has(`server-${server.id}`);
|
|
143
|
+
const mandatory = server.user_can_disable === false;
|
|
144
|
+
const onForChat = (_b = (_a = sessionChoices[server.id]) !== null && _a !== void 0 ? _a : server.user_enabled) !== null && _b !== void 0 ? _b : true;
|
|
145
|
+
// On means working: a server each person signs in to (for this agent) shows off
|
|
146
|
+
// until their own sign-in exists, and turning it on opens it. Shared sign-ins are
|
|
147
|
+
// not judged here: the connection list hides them from everyone but tenant
|
|
148
|
+
// admins, and only they can make one (the agent settings cards do that).
|
|
149
|
+
const scope = server.effective_auth_scope || server.auth_scope || 'user';
|
|
150
|
+
const needsSignIn = ((_c = server.auth_type) === null || _c === void 0 ? void 0 : _c.toLowerCase()) === 'oauth2' &&
|
|
151
|
+
!!oauthData &&
|
|
152
|
+
scope === 'user' &&
|
|
153
|
+
!hasConnectionForScope(server.id, 'user') &&
|
|
154
|
+
getSignedInServiceId(server) === null;
|
|
155
|
+
const switchOn = needsSignIn ? isConnectingRow : mandatory || onForChat;
|
|
156
|
+
const switchLocked = needsSignIn
|
|
157
|
+
? isConnectingRow
|
|
158
|
+
: mandatory || savingSessionIds.has(server.id);
|
|
159
|
+
const switchTitle = needsSignIn
|
|
160
|
+
? t('mcpServersMenu.turnOnToSignIn', { name: displayName })
|
|
161
|
+
: mandatory
|
|
162
|
+
? t('mcpServersMenu.requiredByOrganization')
|
|
163
|
+
: onForChat
|
|
164
|
+
? t('mcpServersMenu.onForThisChat')
|
|
165
|
+
: t('mcpServersMenu.offForThisChat');
|
|
166
|
+
const switchLabel = needsSignIn
|
|
167
|
+
? t('mcpServersMenu.ariaTurnOnToSignIn', { displayName })
|
|
168
|
+
: mandatory
|
|
169
|
+
? t('mcpServersMenu.ariaRequired', { displayName })
|
|
170
|
+
: onForChat
|
|
171
|
+
? t('mcpServersMenu.ariaOnForThisChat', { displayName })
|
|
172
|
+
: t('mcpServersMenu.ariaOffForThisChat', { displayName });
|
|
173
|
+
const onSwitchChange = (checked) => {
|
|
174
|
+
if (!needsSignIn) {
|
|
175
|
+
void toggleForSession(server, displayName, onForChat, checked);
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
if (!checked)
|
|
179
|
+
return;
|
|
180
|
+
requestConnect(server);
|
|
181
|
+
// Also on for this chat, so the server is used once the sign-in lands.
|
|
182
|
+
if (!mandatory && !onForChat)
|
|
183
|
+
void toggleForSession(server, displayName, false, true);
|
|
184
|
+
};
|
|
185
|
+
return (jsxs("li", { "data-testid": `mcp-server-row-${server.id}`, className: "flex items-center gap-3 border-b border-gray-50 p-3 last:border-b-0", children: [jsx("div", { className: "flex h-8 w-8 flex-shrink-0 items-center justify-center overflow-hidden rounded-lg border border-gray-100 bg-white", children: logo ? (jsx("img", { src: logo, alt: displayName, className: "h-5 w-5 object-contain" })) : (jsx(Plug, { className: "h-4 w-4 text-gray-400" })) }), jsxs("div", { className: "min-w-0 flex-1", children: [jsx("p", { className: "truncate text-sm font-medium text-gray-900", title: displayName, children: displayName }), description && (jsx("p", { className: "truncate text-xs text-gray-500", title: description, children: description }))] }), (sessionId || needsSignIn) && (
|
|
186
|
+
// The state reads on hover (title) and to screen readers (aria-label);
|
|
187
|
+
// a locked switch adds a lock beside it. Without a chat the switch is
|
|
188
|
+
// only there to sign in.
|
|
189
|
+
jsxs("span", { className: "flex flex-shrink-0 items-center gap-1.5", title: switchTitle, children: [mandatory && !needsSignIn && (jsx(Lock, { className: "h-3 w-3 text-gray-400", "aria-hidden": "true", "data-testid": `mcp-server-required-${server.id}` })), jsx(Switch, { "data-testid": `mcp-server-session-toggle-${server.id}`, checked: switchOn,
|
|
190
|
+
// A required server shows a locked switch: the backend refuses the change.
|
|
191
|
+
disabled: switchLocked, onCheckedChange: onSwitchChange, "aria-label": switchLabel, className: SWITCH_CLASS })] }))] }, server.id));
|
|
192
|
+
};
|
|
193
|
+
return (jsxs("div", { "data-testid": "mcp-servers-menu", className: "flex min-h-0 flex-col", children: [jsxs("div", { className: "shrink-0 border-b border-gray-100 p-4", children: [jsxs("div", { className: "flex items-center justify-between gap-2", children: [jsx("h3", { className: "font-semibold text-gray-900", children: t('chatInputFormInsideButtons.mcp') }), jsx(Button, { type: "button", variant: "ghost", size: "icon", "data-testid": "mcp-servers-close", "aria-label": t('common.close'), onClick: onClose, className: CLOSE_ICON_BUTTON_CLASS, children: jsx(X, { className: "h-4 w-4" }) })] }), jsx("p", { className: "mt-1 text-sm text-gray-500", children: sessionId ? t('mcpServersMenu.sessionDescription') : t('mcpServersMenu.description') })] }), jsx("div", { role: "region", "aria-label": t('mcpServersMenu.description'), tabIndex: 0, className: "max-h-80 min-h-0 overflow-y-auto focus-visible:ring-2 focus-visible:outline-none focus-visible:ring-inset", children: isLoading ? (jsxs("div", { role: "status", className: "flex flex-col items-center justify-center py-12", children: [jsx(Spinner, { className: "mb-4 h-8 w-8" }), jsx("p", { className: "text-sm text-gray-500", children: t('mcpTabConnectorManagementContent.loadingConnectors') })] })) : isError ? (jsxs("div", { role: "alert", className: "flex flex-col items-center justify-center py-12", children: [jsx("div", { className: "mb-4 flex h-16 w-16 items-center justify-center rounded-full bg-red-100", children: jsx(Plug, { className: "h-8 w-8 text-red-400" }) }), jsx("p", { className: "mb-2 text-sm text-red-600", children: t('mcpTabConnectorManagementContent.failedToLoadConnectors') }), jsx(Button, { variant: "outline", size: "sm", onClick: () => refetch(), className: "text-sm", children: t('mcpTabConnectorManagementContent.retry') })] })) : servers.length === 0 ? (jsxs("div", { "data-testid": "mcp-servers-empty", className: "flex flex-col items-center justify-center py-12", children: [jsx("div", { className: "mb-4 flex h-16 w-16 items-center justify-center rounded-full bg-gray-200", children: jsx(Plug, { className: "h-8 w-8 text-gray-400" }) }), jsx("p", { className: "text-sm text-gray-500", children: t('mcpServersMenu.nothingOn') })] })) : (jsx("ul", { children: servers.map(renderServerRow) })) }), jsx(McpConnectExplainerDialog, { server: explainerServer, onCancel: () => setExplainerServer(null), onContinue: continueConnect })] }));
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
export { McpServersMenu };
|
|
197
|
+
//# sourceMappingURL=mcp-servers-menu.js.map
|