""" Plugin manifest endpoint for the AI service. Exposes GET /plugin/manifest so the backend health-poller can discover the service's access rules and register it in the plugin system. No settings schema is exposed here — the AI service settings are complex (provider selection, conditional fields) and are rendered by a bespoke page rather than the generic PluginSchemaForm. """ from fastapi import APIRouter router = APIRouter() _MANIFEST = { "id": "ai-service", "name": "AI Service", "icon": "cpu", "version": "1.0", "access": { "allow_superuser": True, "required_groups": ["ai-service-admin"], }, # No settings_schema — the frontend uses a custom settings page "settings_schema": None, } @router.get("/plugin/manifest") async def get_manifest() -> dict: return _MANIFEST