from fastapi import APIRouter, HTTPException, status from app.core.cad_batch_manager import cad_batch_manager from app.models.cad_batch import PluginCallbackPayload router = APIRouter() @router.post("/plugin-callbacks/task-result") async def plugin_task_result(payload: PluginCallbackPayload): if not cad_batch_manager.validate_callback_token(payload.software_id, payload.token): raise HTTPException( status_code=status.HTTP_403_FORBIDDEN, detail="Invalid callback token", ) accepted = await cad_batch_manager.handle_plugin_callback(payload) return { "success": True, "accepted": accepted, "execution_id": payload.execution_id, }