import { env } from 'cloudflare:workers'; import { requireAleBridge } from '@/core/ale-auth'; import { pollAleCommand } from '@/core/ale-store'; import { wrapAleCommand } from '@/core/ale'; import type { RuntimeConfig } from '@/core/types'; async function handlePoll(request:Request){ const config=env as unknown as RuntimeConfig; try{ requireAleBridge(request,config); const command=await pollAleCommand(env.DB!); if(!command)return new Response('return',{status:200,headers:{'Content-Type':'text/plain; charset=utf-8','Cache-Control':'no-store'}}); return new Response(wrapAleCommand(command.id,command.source),{status:200,headers:{'Content-Type':'text/plain; charset=utf-8','Cache-Control':'no-store','X-AzerothAI-Command':command.id}}); }catch(e){ const message=e instanceof Error?e.message:'ALE bridge failure'; return Response.json({error:message},{status:message.startsWith('Unauthorized')?401:500}); } } export async function GET(request:Request){ return handlePoll(request); } export async function POST(request:Request){ return handlePoll(request); }