import { jsonResponse, errorResponse } from '../utils/cors'
import { PORT_TERMINAL } from '../config'

/**
 * Proxy GET /api/session-state → terminal server.
 * Returns session-state + terminal-registry combined,
 * so external clients (Android widget) get everything in one call.
 */
export async function handleSessionStateProxy(url: URL): Promise<Response> {
  try {
    const [stateResp, registryResp] = await Promise.all([
      fetch(`http://localhost:${PORT_TERMINAL}/session-state`),
      fetch(`http://localhost:${PORT_TERMINAL}/terminal-registry`)
    ])

    const stateData = stateResp.ok ? await stateResp.json() : { agents: {} }
    const registryData = registryResp.ok ? await registryResp.json() : { registry: [] }

    return jsonResponse({
      agents: stateData.agents ?? {},
      registry: registryData.registry ?? []
    })
  } catch (e: any) {
    return errorResponse(`Failed to reach terminal server: ${e.message}`, 502)
  }
}
