diff --git a/src/web-ui/src/infrastructure/config/components/SessionConfig.tsx b/src/web-ui/src/infrastructure/config/components/SessionConfig.tsx index 934428e3ad..18a712e493 100644 --- a/src/web-ui/src/infrastructure/config/components/SessionConfig.tsx +++ b/src/web-ui/src/infrastructure/config/components/SessionConfig.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect, useCallback } from 'react'; import { useTranslation } from 'react-i18next'; -import { FolderOpen, RefreshCw, ChevronDown, Plus, Trash2, Check } from 'lucide-react'; +import { FolderOpen, RefreshCw, ChevronDown } from 'lucide-react'; import { Switch, NumberInput, @@ -17,14 +17,6 @@ import { } from '@/component-library'; import { ConfigPageHeader, ConfigPageLayout, ConfigPageContent, ConfigPageSection, ConfigPageRow } from './common'; import { aiExperienceConfigService, type AIExperienceSettings } from '../services/AIExperienceConfigService'; -import { - DEFAULT_AGENT_COMPANION_PET, - deleteAgentCompanionPetPackage, - importAgentCompanionPetPackage, - listAgentCompanionPets, - releaseAgentCompanionPetPreviewBlobs, - type AgentCompanionPetPackage, -} from '../services/AgentCompanionPetService'; import { configManager } from '../services/ConfigManager'; import { systemAPI } from '@/infrastructure/api/service-api/SystemAPI'; import { useNotification, notificationService } from '@/shared/notification-system'; @@ -36,7 +28,6 @@ import { DEFAULT_LANGUAGE_TEMPLATES, } from '../types'; import { ModelSelectionRadio } from './ModelSelectionRadio'; -import { ChatInputPixelPet } from '@/flow_chat/components/ChatInputPixelPet'; import {workspaceAPI} from "@/infrastructure"; import { createLogger } from '@/shared/utils/logger'; import './AIFeaturesConfig.scss'; @@ -79,11 +70,6 @@ const SessionSettingsPanels: React.FC = ({ variant } // ── Session config state ───────────────────────────────────────────────── const [isLoading, setIsLoading] = useState(true); const [settings, setSettings] = useState(null); - const [companionPets, setCompanionPets] = useState([]); - const [companionPetsLoading, setCompanionPetsLoading] = useState(false); - const [companionPetImporting, setCompanionPetImporting] = useState(false); - const [companionPetDeletingPath, setCompanionPetDeletingPath] = useState(null); - const [companionPetListExpanded, setCompanionPetListExpanded] = useState(false); const [models, setModels] = useState([]); const [funcAgentModels, setFuncAgentModels] = useState>({}); const [skipToolConfirmation, setSkipToolConfirmation] = useState(true); @@ -159,7 +145,6 @@ const SessionSettingsPanels: React.FC = ({ variant } confirmTimeout, debugConfigData, browserControlPreferredBrowser, - loadedCompanionPets, ] = await Promise.all([ aiExperienceConfigService.getSettingsAsync(), configManager.getConfig('ai.models') || [], @@ -169,11 +154,9 @@ const SessionSettingsPanels: React.FC = ({ variant } configManager.getConfig('ai.tool_confirmation_timeout_secs'), configManager.getConfig('ai.debug_mode_config'), configManager.getConfig('ai.browser_control_preferred_browser'), - listAgentCompanionPets(), ]); setSettings(loadedSettings); - setCompanionPets(loadedCompanionPets); setModels(allModels as AIModelConfig[]); setFuncAgentModels(funcAgentModelsData as Record); setSkipToolConfirmation(skipConfirm ?? true); @@ -214,113 +197,6 @@ const SessionSettingsPanels: React.FC = ({ variant } } }; - const handleRefreshCompanionPets = async () => { - setCompanionPetsLoading(true); - try { - setCompanionPets(await listAgentCompanionPets()); - } finally { - setCompanionPetsLoading(false); - } - }; - - const handleImportCompanionPet = async () => { - if (!IS_TAURI_DESKTOP) return; - setCompanionPetImporting(true); - try { - const selected = null; - if (!selected || Array.isArray(selected)) return; - const imported = await importAgentCompanionPetPackage(selected); - const refreshed = await listAgentCompanionPets(); - setCompanionPets(refreshed); - await updateSetting('agent_companion_pet', { - id: imported.id, - displayName: imported.displayName, - description: imported.description, - source: imported.source, - packagePath: imported.packagePath, - spritesheetPath: imported.spritesheetPath, - spritesheetMimeType: imported.spritesheetMimeType, - }); - } catch (error) { - log.error('Failed to import Agent companion pet', error); - notification.error(t('features.agentCompanion.importFailed')); - } finally { - setCompanionPetImporting(false); - } - }; - - const handleDeleteCompanionPet = async (event: React.MouseEvent, pet: AgentCompanionPetPackage) => { - event.preventDefault(); - event.stopPropagation(); - if (!IS_TAURI_DESKTOP || pet.source !== 'user' || !settings) return; - const confirmed = null; - if (!confirmed) return; - setCompanionPetDeletingPath(pet.packagePath); - try { - await deleteAgentCompanionPetPackage(pet.packagePath); - releaseAgentCompanionPetPreviewBlobs(pet.packagePath, pet.spritesheetPath); - const refreshed = await listAgentCompanionPets(); - setCompanionPets(refreshed); - if (settings.agent_companion_pet?.packagePath === pet.packagePath) { - const next = { ...settings, agent_companion_pet: DEFAULT_AGENT_COMPANION_PET }; - setSettings(next); - await aiExperienceConfigService.saveSettings(next); - } - notification.success(t('features.agentCompanion.deleteSuccess')); - } catch (error) { - log.error('Failed to delete Agent companion pet', error); - notification.error(t('features.agentCompanion.deleteFailed')); - } finally { - setCompanionPetDeletingPath(null); - } - }; - - const companionPetOptions: SelectOption[] = companionPets.map(pet => ({ - value: pet.packagePath, - label: pet.displayName, - description: pet.description ?? undefined, - group: pet.source === 'preset' - ? t('features.agentCompanion.groupPreset') - : t('features.agentCompanion.groupImported'), - })); - - const companionDisplayModeOptions: SelectOption[] = [ - { - value: 'desktop', - label: t('features.agentCompanion.displayDesktop'), - description: t('features.agentCompanion.displayDesktopDesc'), - }, - { - value: 'input', - label: t('features.agentCompanion.displayInput'), - description: t('features.agentCompanion.displayInputDesc'), - }, - ]; - - const selectedCompanionPetPackage = settings?.agent_companion_pet - ? companionPets.find(pet => pet.packagePath === settings.agent_companion_pet?.packagePath) ?? null - : null; - const selectedCompanionPet = selectedCompanionPetPackage ?? settings?.agent_companion_pet ?? DEFAULT_AGENT_COMPANION_PET; - const selectedCompanionPetValue = selectedCompanionPet.packagePath; - const selectedCompanionPetOption = companionPetOptions.find(option => option.value === selectedCompanionPetValue) - ?? companionPetOptions[0]; - - const handleCompanionPetChange = async (value: string | number | (string | number)[]) => { - const selectedValue = String(Array.isArray(value) ? value[0] : value); - const pet = companionPets.find(item => item.packagePath === selectedValue); - if (!pet) return; - await updateSetting('agent_companion_pet', { - id: pet.id, - displayName: pet.displayName, - description: pet.description, - source: pet.source, - packagePath: pet.packagePath, - spritesheetPath: pet.spritesheetPath, - spritesheetMimeType: pet.spritesheetMimeType, - }); - setCompanionPetListExpanded(false); - }; - const getModelName = useCallback((modelId: string | null | undefined): string | undefined => { if (!modelId) return undefined; return models.find(m => m.id === modelId)?.name; @@ -677,193 +553,6 @@ const SessionSettingsPanels: React.FC = ({ variant } - {/* ── Agent companion (collapsed input) ─────────────────── */} - - -
- updateSetting('enable_agent_companion', e.target.checked)} - size="small" - /> -
-
- -