feat: 增强 provider query 端点选择逻辑,支持 openai:responses 格式与 key 级 api_formats 过滤

- provider_query_selected_fetch_endpoints 支持按 key.api_formats 过滤可用端点
- 端点选择增加 endpoint_supports_rust_models_fetch 检查
- 支持优先级列表之外的自定义 api_format 端点
- 新增 openai:responses 端点的 provider query 集成测试
- 各 crate 补充缺失的 tracing instrument 和小修正
- 前端 Pool 管理页面补充状态逻辑
This commit is contained in:
fawney19
2026-04-09 13:55:18 +08:00
parent b0b40c16ff
commit fe81eafe2c
24 changed files with 380 additions and 37 deletions

View File

@@ -661,7 +661,8 @@ fn admin_provider_crud_mod_stays_thin() {
let crud_routes =
read_workspace_file("apps/aether-gateway/src/handlers/admin/provider/crud/routes.rs");
for pattern in ["maybe_build_admin_provider_crud_route_response("] {
{
let pattern = "maybe_build_admin_provider_crud_route_response(";
assert!(
crud_routes.contains(pattern),
"handlers/admin/provider/crud/routes.rs should delegate through request/provider owner {pattern}"
@@ -2191,7 +2192,8 @@ fn admin_provider_endpoint_keys_mod_stays_thin() {
fn admin_provider_models_own_provider_model_builders() {
let provider_models_mod =
read_workspace_file("apps/aether-gateway/src/handlers/admin/provider/models/mod.rs");
for pattern in ["mod payloads;"] {
{
let pattern = "mod payloads;";
assert!(
provider_models_mod.contains(pattern),
"handlers/admin/provider/models/mod.rs should register local provider-model owner module {pattern}"

View File

@@ -146,7 +146,8 @@ fn admin_system_and_endpoint_roots_stay_thin() {
),
"handlers/admin/endpoint/routes.rs should dispatch provider endpoint CRUD directly to provider::endpoints_admin"
);
for path in ["apps/aether-gateway/src/handlers/admin/endpoint/keys.rs"] {
{
let path = "apps/aether-gateway/src/handlers/admin/endpoint/keys.rs";
assert!(
!workspace_file_exists(path),
"{path} should be deleted once endpoint root dispatches directly to provider-owned handlers"

View File

@@ -1142,7 +1142,8 @@ fn ai_pipeline_matrix_conversion_is_owned_by_pipeline_crate() {
!matrix.contains("mod matrix;"),
"planner/standard/mod.rs should not keep a local matrix wrapper module"
);
for forbidden in ["serde_json::Map::from_iter"] {
{
let forbidden = "serde_json::Map::from_iter";
assert!(
!matrix.contains(forbidden),
"planner/standard/mod.rs should not keep matrix conversion helper {forbidden}"