28 lines
823 B
Python
28 lines
823 B
Python
"""Utility helpers for A2A agent endpoints."""
|
|
|
|
from typing import Dict, Mapping, Optional
|
|
|
|
|
|
def merge_agent_headers(
|
|
*,
|
|
dynamic_headers: Optional[Mapping[str, str]] = None,
|
|
static_headers: Optional[Mapping[str, str]] = None,
|
|
) -> Optional[Dict[str, str]]:
|
|
"""Merge outbound HTTP headers for A2A agent calls.
|
|
|
|
Merge rules:
|
|
- Start with ``dynamic_headers`` (values extracted from the incoming client request).
|
|
- Overlay ``static_headers`` (admin-configured per agent).
|
|
|
|
If both contain the same key, ``static_headers`` wins.
|
|
"""
|
|
merged: Dict[str, str] = {}
|
|
|
|
if dynamic_headers:
|
|
merged.update({str(k): str(v) for k, v in dynamic_headers.items()})
|
|
|
|
if static_headers:
|
|
merged.update({str(k): str(v) for k, v in static_headers.items()})
|
|
|
|
return merged or None
|