controller: GET /layouts/{instance} + UI fetch dynamic layout list

UI loadLayouts() теперь fetches /layouts/{inst} — берёт actual layout_map
из config'а (не hardcoded), показывает только existing layouts.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
gx
2026-05-21 06:04:48 +01:00
parent d7b3e34c6b
commit c9c5b93ef8
2 changed files with 20 additions and 12 deletions
@@ -85,6 +85,15 @@ def create_app(
await dispatcher.handle(instance, "layout.set", req.layout)
return {"ok": True, "instance": instance, "layout": req.layout}
@app.get("/layouts/{instance}")
async def layouts_for_instance(instance: str) -> dict[str, Any]:
inst = _check_instance(instance)
return {
"instance": instance,
"layouts": list(inst.layout_map.keys()),
"current": await state.get_layout(instance),
}
# ─── Overlays ──────────────────────────────────────────────────
@app.post("/overlay/{instance}/add")