Logical Group Admin

# 把 logical group、route 与 shadow group 放进同一套管理面

这页专门给插件前置路由使用。你可以在这里维护 `logical_group`、绑定 `public_model`，再把它映射到某个 `route -> shadow_host_id -> shadow_group_id`。 当前首版覆盖最小运营流：创建 / 编辑分组、补 public model、创建 / 编辑 route、补 route model 映射。

- 默认 API Base：`/portal-admin-api`
- 支持管理员登录会话，也保留 Bearer admin token 兜底
- route model 当前支持新增与查看，删除 / 更新 API 仍待后续补齐

API Root
-
Logical Groups
0
当前分组
-
当前 Route
-

## 连接与鉴权

默认优先使用同域管理员会话；如果实例没有开启管理员密码登录，仍然可以填 Bearer admin token 兜底。

API Base Bearer Admin Token（可选）
管理员用户名 管理员密码
正在检查管理员会话…

## Logical Group 列表

左侧只展示最重要的逻辑信息：`logical_group_id`、状态、模型数量和 route 数量。选中后右侧会拉取聚合详情。

还没有 logical group。
加载后会在这里显示结果。

## 分组详情与路由配置

这一块把 `logical_group`、`public_model`、`route` 放在一个页面里维护，避免运营在多个页面之间跳转。

### Logical Group

logical_group_id display_name
status
route_policy
sticky_mode
failover_threshold
conversation_ttl_seconds user_model_ttl_seconds cooldown_seconds
description

### Public Models

public_model status
当前分组还没有 public model。

### Routes

route_id name
status
priority
weight cooldown_until
shadow_host_id shadow_group_id
upstream_base_url_hint
当前分组还没有 route。

### Route Models

当前后端已开放 `POST /api/logical-groups/{group_id}/routes/{route_id}/models` 与 `GET /api/logical-groups/{group_id}/routes/{route_id}/models`。首版页面只覆盖新增与查看，不假装已有删除 / 更新接口。

public_model shadow_model status
请选择 route 后查看其 model 映射。
选择一个 logical group 后，这里会显示操作结果。