From d1f3b9ffcd2a59d372f65a20da79fd57be5d8e5c Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Sun, 26 Apr 2026 09:42:06 +0200 Subject: [PATCH] feat(pipeline): add submit-pass0b endpoint for batch submission Co-Authored-By: Claude Opus 4.6 (1M context) --- .../api/control_generator_routes.py | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/control-pipeline/api/control_generator_routes.py b/control-pipeline/api/control_generator_routes.py index 1134b62..045f85f 100644 --- a/control-pipeline/api/control_generator_routes.py +++ b/control-pipeline/api/control_generator_routes.py @@ -2291,3 +2291,31 @@ async def get_batch_process_status(job_id: str): if not status: raise HTTPException(status_code=404, detail="Batch processing job not found") return status + + +class SubmitPass0bRequest(BaseModel): + limit: int = 10 + batch_size: int = 5 + + +@router.post("/generate/submit-pass0b") +async def submit_pass0b(req: SubmitPass0bRequest): + """Submit Pass 0b batch to Anthropic Batch API. + + Loads unprocessed obligations, applies pre-LLM filter, submits batch. + Returns batch_id for status polling and later result processing. + """ + from services.decomposition_pass import DecompositionPass + db = SessionLocal() + try: + dp = DecompositionPass(db) + result = await dp.submit_batch_pass0b( + limit=req.limit, + batch_size=req.batch_size, + ) + return result + except Exception as e: + logger.error("Submit Pass 0b failed: %s", e) + raise HTTPException(status_code=500, detail=str(e)) + finally: + db.close()