#!/usr/bin/env bun
/**
 * Terminal Server - Independent process
 * This runs separately from the main server to maintain stable Claude Code sessions
 * even when the main server restarts due to code changes.
 * Also manages the Whisper GPU server (singleton, persistent).
 */

import { startTerminalServer } from './services/terminal'
import { startSyncServer } from './services/sync-server'
import { startWhisperServer } from './services/whisper'
import { WORKING_DIR } from './config'

console.log('')
console.log('='.repeat(50))
console.log('Terminal Server (Independent Process)')
console.log(`  Terminal WebSocket: ws://localhost:4103`)
console.log(`  Sync WebSocket (Git + Torch): ws://localhost:4105`)
console.log(`  Whisper GPU: ws://localhost:4104 (auto-start)`)
console.log(`  Working Dir: ${WORKING_DIR}`)
console.log('')
console.log('This process is stable and won\'t restart')
console.log('when the main server reloads.')
console.log('='.repeat(50))
console.log('')

startTerminalServer()
startSyncServer()

// Auto-start Whisper GPU server (singleton, persistent, auto-restart on crash)
startWhisperServer().then(ok => {
  if (ok) {
    console.log('[Whisper] GPU server started successfully')
  } else {
    console.warn('[Whisper] Failed initial start (will auto-retry)')
  }
}).catch(err => {
  console.error('[Whisper] Boot error:', err)
})
