diff --git a/backend/festival4d/api.py b/backend/festival4d/api.py index 8e90e79..06ed1ee 100644 --- a/backend/festival4d/api.py +++ b/backend/festival4d/api.py @@ -12,6 +12,17 @@ Serves the synthetic project fully so lane C can treat this API as finished: POST /api/events/detect {t_global_s?, window_s?} -> runs M7 detection POST /api/annotations {video_id, t_video_s, bbox:[x0,y0,x1,y1]} -> {anchor_id?, point?} +Phase 5 (foundation2; shapes frozen in plan/20-phase5.md contracts): + + GET /api/beats -> beats.json body (contract #1); 404 when not yet analyzed + POST /api/director {top_n?, lead_s?} -> camPath JSON (contract #2); while lane E + is stubbed, degrades to a VALID empty path + "note" + GET /api/paths -> [{id, name, created_at}] + GET /api/paths/{id} -> {id, name, created_at, json: } + POST /api/paths {name, json: } (validated -> 422) + DELETE /api/paths/{id} + PATCH /api/anchors/{id} {label?, color?} -> updated anchor dict + Source videos in ``data/raw`` are mounted at ``/media`` via Starlette ``StaticFiles``, which supports HTTP Range (required for ``