import React from 'react' import { type AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS, logEvent, } from 'src/services/analytics/index.js' import { getSettings_DEPRECATED, updateSettingsForSource, } from '../utils/settings/settings.js' import { Select } from './CustomSelect/index.js' import { Dialog } from '@anthropic/ink' import { MCPServerDialogCopy } from './MCPServerDialogCopy.js' type Props = { serverName: string onDone(): void } export function MCPServerApprovalDialog({ serverName, onDone, }: Props): React.ReactNode { function onChange(value: 'yes' | 'yes_all' | 'no') { logEvent('tengu_mcp_dialog_choice', { choice: value as AnalyticsMetadata_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS, }) switch (value) { case 'yes': case 'yes_all': { // Get current enabled servers from settings const currentSettings = getSettings_DEPRECATED() || {} const enabledServers = currentSettings.enabledMcpjsonServers || [] // Add server if not already enabled if (!enabledServers.includes(serverName)) { updateSettingsForSource('localSettings', { enabledMcpjsonServers: [...enabledServers, serverName], }) } if (value === 'yes_all') { updateSettingsForSource('localSettings', { enableAllProjectMcpServers: true, }) } onDone() break } case 'no': { // Get current disabled servers from settings const currentSettings = getSettings_DEPRECATED() || {} const disabledServers = currentSettings.disabledMcpjsonServers || [] // Add server if not already disabled if (!disabledServers.includes(serverName)) { updateSettingsForSource('localSettings', { disabledMcpjsonServers: [...disabledServers, serverName], }) } onDone() break } } } return ( onChange('no')} >