fix(ci): parse provider catalog and gateway providers from capabilities fallback

This commit is contained in:
Haitao Pan 2026-06-03 17:11:12 +08:00
parent 0fdac8aedd
commit 5f43ffa188
2 changed files with 27 additions and 27 deletions

View File

@ -84,14 +84,14 @@ elif mode == "capabilities":
raise SystemExit(
f"expected availableExecutionTargets {expected_targets!r}, got {result.get('availableExecutionTargets')!r}"
)
provider_catalog = result.get("providerCatalog")
if provider_catalog is not None:
if not isinstance(provider_catalog, list):
raise SystemExit("providerCatalog is invalid")
provider_ids = [str(item.get("providerId")) for item in provider_catalog]
if provider_ids != ["codex", "opencode", "gemini", "hermes"]:
raise SystemExit(f"unexpected providerCatalog: {provider_ids!r}")
gateway_providers = result.get("gatewayProviders")
capabilities = result.get("capabilities") or {}
provider_catalog = result.get("providerCatalog") or capabilities.get("providerCatalog")
if not isinstance(provider_catalog, list):
raise SystemExit("providerCatalog is missing or invalid")
provider_ids = [str(item.get("providerId")) for item in provider_catalog]
if provider_ids != ["codex", "opencode", "gemini", "hermes"]:
raise SystemExit(f"unexpected providerCatalog: {provider_ids!r}")
gateway_providers = result.get("gatewayProviders") or capabilities.get("gatewayProviders")
if not isinstance(gateway_providers, list):
raise SystemExit("gatewayProviders is missing or invalid")
if len(gateway_providers) != 1 or gateway_providers[0].get("providerId") != "openclaw":

View File

@ -142,28 +142,28 @@ if result.get("availableExecutionTargets") != expected_targets:
f"expected availableExecutionTargets {expected_targets!r}, got {result.get('availableExecutionTargets')!r}"
)
provider_catalog = result.get("providerCatalog")
if provider_catalog is not None:
if not isinstance(provider_catalog, list):
raise SystemExit("providerCatalog is invalid")
capabilities = result.get("capabilities") or {}
provider_catalog = result.get("providerCatalog") or capabilities.get("providerCatalog")
if not isinstance(provider_catalog, list):
raise SystemExit("providerCatalog is missing or invalid")
expected_agent_ids = ["codex", "opencode", "gemini", "hermes"]
expected_agent_labels = ["Codex", "OpenCode", "Gemini", "Hermes"]
if len(provider_catalog) != len(expected_agent_ids):
raise SystemExit(
f"expected {len(expected_agent_ids)} agent providers, got {provider_catalog!r}"
)
expected_agent_ids = ["codex", "opencode", "gemini", "hermes"]
expected_agent_labels = ["Codex", "OpenCode", "Gemini", "Hermes"]
if len(provider_catalog) != len(expected_agent_ids):
raise SystemExit(
f"expected {len(expected_agent_ids)} agent providers, got {provider_catalog!r}"
)
for index, (provider_id, label) in enumerate(zip(expected_agent_ids, expected_agent_labels)):
item = provider_catalog[index]
if item.get("providerId") != provider_id:
raise SystemExit(f"expected providerId {provider_id!r} at index {index}, got {item!r}")
if item.get("label") != label:
raise SystemExit(f"expected provider label {label!r} at index {index}, got {item!r}")
if item.get("targets") != ["agent"]:
raise SystemExit(f"expected agent targets for {provider_id!r}, got {item!r}")
for index, (provider_id, label) in enumerate(zip(expected_agent_ids, expected_agent_labels)):
item = provider_catalog[index]
if item.get("providerId") != provider_id:
raise SystemExit(f"expected providerId {provider_id!r} at index {index}, got {item!r}")
if item.get("label") != label:
raise SystemExit(f"expected provider label {label!r} at index {index}, got {item!r}")
if item.get("targets") != ["agent"]:
raise SystemExit(f"expected agent targets for {provider_id!r}, got {item!r}")
gateway_providers = result.get("gatewayProviders")
gateway_providers = result.get("gatewayProviders") or capabilities.get("gatewayProviders")
if not isinstance(gateway_providers, list):
raise SystemExit("gatewayProviders is missing or invalid")