import { env } from 'cloudflare:workers'; import { z } from 'zod'; import { requireAleBridge } from '@/core/ale-auth'; import { completeAleCommand } from '@/core/ale-store'; import type { RuntimeConfig } from '@/core/types'; const schema=z.object({id:z.string().uuid(),ok:z.boolean(),result:z.string().max(16000)}).strict(); export async function POST(request:Request){ const config=env as unknown as RuntimeConfig; try{ requireAleBridge(request,config); const text=await request.text();if(text.length>20000)return Response.json({error:'Result too large'},{status:413}); const body=schema.parse(JSON.parse(text)); await completeAleCommand(env.DB!,body.id,body.ok,body.result); return Response.json({ok:true}); }catch(e){ const message=e instanceof Error?e.message:'ALE result failure'; return Response.json({error:message},{status:message.startsWith('Unauthorized')?401:400}); } }