29 lines
841 B
Python
29 lines
841 B
Python
from src.schemas.a2a_types import (
|
|
ContentTypeNotSupportedError,
|
|
JSONRPCResponse,
|
|
UnsupportedOperationError,
|
|
)
|
|
|
|
|
|
def are_modalities_compatible(
|
|
server_output_modes: list[str], client_output_modes: list[str]
|
|
):
|
|
"""Modalities are compatible if they are both non-empty
|
|
and there is at least one common element.
|
|
"""
|
|
if client_output_modes is None or len(client_output_modes) == 0:
|
|
return True
|
|
|
|
if server_output_modes is None or len(server_output_modes) == 0:
|
|
return True
|
|
|
|
return any(x in server_output_modes for x in client_output_modes)
|
|
|
|
|
|
def new_incompatible_types_error(request_id):
|
|
return JSONRPCResponse(id=request_id, error=ContentTypeNotSupportedError())
|
|
|
|
|
|
def new_not_implemented_error(request_id):
|
|
return JSONRPCResponse(id=request_id, error=UnsupportedOperationError())
|