Files

38 lines
1.1 KiB
Python

# -*- coding: utf-8 -*-
"""Gateway adapter: URL /rpc suffix + A2A-Version header override.
The Alibaba Cloud intelligent gateway requires:
1. JSON-RPC endpoint at {base_url}/rpc (not the card's URL directly)
2. A2A-Version header = "1.0.0" (SDK default is "1.0")
"""
from __future__ import annotations
import logging
logger = logging.getLogger("qwenpaw").getChild(
__name__.replace("plugin_cloudpaw.", ""),
)
GATEWAY_A2A_VERSION = "1.0.0"
def patch_card_url(card: dict) -> dict:
"""Append /rpc suffix to the card's URL field."""
url = card.get("url", "")
if url and not url.endswith("/rpc"):
card = {**card, "url": url.rstrip("/") + "/rpc"}
logger.debug("Patched card URL: %s", card["url"])
return card
def normalize_gateway_card(card_data: dict) -> dict:
"""Fix gateway AgentCard fields that may cause parsing issues.
Known issues: some gateway cards have ``tags: null`` in skills.
"""
for skill in card_data.get("skills", []):
if skill.get("tags") is None:
skill["tags"] = []
return card_data