diff --git a/src/components/screens/Interface/TerminalTab.tsx b/src/components/screens/Interface/TerminalTab.tsx index 184922e..dc76a66 100644 --- a/src/components/screens/Interface/TerminalTab.tsx +++ b/src/components/screens/Interface/TerminalTab.tsx @@ -12,12 +12,17 @@ import { UI } from '@/constants'; import { handleTerminalOutput } from '@/utils/terminal'; import { processTerminalContent } from '@/utils/linkifyTerminal'; import { useLaunchConfigStore } from '@/stores/launchConfigStore'; +import type { FrontendPreference } from '@/types'; interface TerminalTabProps { onServerReady: (url: string) => void; + frontendPreference?: FrontendPreference; } -export const TerminalTab = ({ onServerReady }: TerminalTabProps) => { +export const TerminalTab = ({ + onServerReady, + frontendPreference = 'koboldcpp', +}: TerminalTabProps) => { const { host, port } = useLaunchConfigStore(); const computedColorScheme = useComputedColorScheme('light', { getInitialValueInEffect: false, @@ -61,18 +66,23 @@ export const TerminalTab = ({ onServerReady }: TerminalTabProps) => { const newData = data.toString(); if (onServerReady) { - if ( - newData.includes('Please connect to custom endpoint at') || - newData.includes( - 'Now running KoboldCpp in Interactive Terminal Chat mode' - ) - ) { - const serverHost = host || 'localhost'; - const serverPort = port || 5001; - setTimeout( - () => onServerReady(`http://${serverHost}:${serverPort}`), - 1500 - ); + const serverHost = host || 'localhost'; + const serverPort = port || 5001; + + if (frontendPreference === 'sillytavern') { + if (newData.includes('SillyTavern is listening on')) { + setTimeout( + () => onServerReady(`http://${serverHost}:${serverPort}`), + 1500 + ); + } + } else { + if (newData.includes('Please connect to custom endpoint at')) { + setTimeout( + () => onServerReady(`http://${serverHost}:${serverPort}`), + 1500 + ); + } } } @@ -81,7 +91,7 @@ export const TerminalTab = ({ onServerReady }: TerminalTabProps) => { }); return cleanup; - }, [onServerReady, host, port]); + }, [onServerReady, host, port, frontendPreference]); const scrollToBottom = () => { if (viewportRef.current) { diff --git a/src/components/screens/Interface/index.tsx b/src/components/screens/Interface/index.tsx index fbce9ed..7660b93 100644 --- a/src/components/screens/Interface/index.tsx +++ b/src/components/screens/Interface/index.tsx @@ -76,7 +76,10 @@ export const InterfaceScreen = ({ display: activeTab === 'terminal' ? 'block' : 'none', }} > - + ); diff --git a/src/main/managers/SillyTavernManager.ts b/src/main/managers/SillyTavernManager.ts index 68733c1..ea4a49e 100644 --- a/src/main/managers/SillyTavernManager.ts +++ b/src/main/managers/SillyTavernManager.ts @@ -361,11 +361,10 @@ export class SillyTavernManager { '--port', config.port.toString(), '--listen', - '--corsProxy', - '--securityOverride', - '--disableCsrf', '--browserLaunchEnabled', 'false', + '--dataRoot', + this.getSillyTavernSettingsPath().replace('/settings.json', ''), ]; this.sillyTavernProcess = spawn('npx', sillyTavernArgs, {