/* eslint-disable @typescript-eslint/no-explicit-any */ import React, { Suspense, lazy, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { AlertTriangle, Download, Trash2 } from 'lucide-react'; import { activeTabStore, toEditorTabId, useIsEditorTabActive } from '../state/activeTabStore'; import { editorTabStore } from '../state/editorTabStore'; import { releaseEditorTabSaveCoordinator, saveEditorTab } from '../state/editorTabSave'; import { useTerminalHostTreeLayoutWidth } from '../state/terminalHostTreeStore'; import { TopTabs } from '../../components/TopTabs'; import { VaultView } from '../../components/VaultView'; import { QuickAddSnippetDialog } from '../../components/QuickAddSnippetDialog'; import { QuickScriptEditorDialog } from '../../components/scripts/QuickScriptEditorDialog'; import { AddToWorkspaceDialog } from '../../components/workspace/AddToWorkspaceDialog'; import { KeyboardInteractiveModal } from '../../components/KeyboardInteractiveModal'; import { PassphraseModal } from '../../components/PassphraseModal'; import { UnsavedChangesProvider, promptUnsavedChanges } from '../../components/editor/UnsavedChangesDialog'; import { SnippetExecutionProvider } from '../../components/SnippetExecutionProvider'; import { Button } from '../../components/ui/button'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '../../components/ui/dialog'; import { Input } from '../../components/ui/input'; import { Label } from '../../components/ui/label'; import { LazyLoadBoundary } from '../../components/ui/lazy-load-boundary'; import { toast } from '../../components/ui/toast'; import { AppHostTreeLayer } from './AppHostTreeLayer'; import { AppHostEditorLayer } from './AppHostEditorLayer'; import { AppPluginKeybindingHost } from './AppPluginKeybindingHost'; import { shouldOpenHostEditOnWorkSurface } from './workTabSurface'; import { useConnectionLogsStore } from '../state/connectionLogsStore'; import { useSettingsChromeActions, useSettingsChromeStore, } from '../state/settingsChromeStore'; import { getAppAppLockRuntime, useAppLockChrome } from '../state/appRuntimeBridge'; import { useAppThemeStyle } from './useAppThemeStyle'; import { useMainWindowInputFocusRecovery } from '../state/useMainWindowInputFocusRecovery'; import { useExternalMcpToggleState } from '../state/useExternalMcpToggleState'; import { selectPluginThemeTokens } from '../state/pluginContributionEnvironment'; import { netcattyBridge } from '../../infrastructure/services/netcattyBridge'; import { resolveEffectiveTerminalHost } from '../../domain/terminalHostResolution'; import { getAvailablePaneMagnificationController } from '../../domain/paneMagnification'; import { pluginViewTabStore, usePluginViewTabs } from '../state/pluginViewTabStore'; import { buildPluginSettingScopeCatalog } from '../state/usePluginSettingScopeCatalog'; import { useWorkSurfaceHostEditor } from '../state/useWorkSurfaceHostEditor'; import { appViewDomainsEqual, mergeAppViewDomains, type AppViewDomains, } from './appViewDomains'; const LazyProtocolSelectDialog = lazy(() => import('../../components/ProtocolSelectDialog')); const LazyQuickSwitcher = lazy(() => import('../../components/QuickSwitcher').then((m) => ({ default: m.QuickSwitcher })), ); const LazyCreateWorkspaceDialog = lazy(() => import('../../components/CreateWorkspaceDialog').then((m) => ({ default: m.CreateWorkspaceDialog })), ); const LazyTextEditorTabView = lazy(() => import('../../components/editor/TextEditorTabView').then((m) => ({ default: m.TextEditorTabView })), ); const TextEditorTabFallback = ({ tabId }: { tabId: string }) => { const isVisible = useIsEditorTabActive(tabId); const hostTreeLayoutWidth = useTerminalHostTreeLayoutWidth(); return (