def handle_nova_act_client_error()

in src/nova_act/impl/protocol.py [0:0]


def handle_nova_act_client_error(error: dict, act: Act):
    request_id = error.get("requestId")
    code = error.get("code", "")

    try:
        error_type = NovaActClientErrors[code]
    except (KeyError, TypeError, ValueError, IndexError) as e:
        return ActProtocolError(
            message="invalid NovaActClient error code",
            metadata=act.metadata,
            failed_request_id=request_id,
            raw_message=str(e),
        )

    if error_type == NovaActClientErrors.BAD_RESPONSE:
        return ActBadResponseError(metadata=act.metadata, failed_request_id=request_id, raw_message=json.dumps(error))
    if error_type == NovaActClientErrors.MAX_STEPS_EXCEEDED:
        return ActExceededMaxStepsError(metadata=act.metadata)

    return ActProtocolError(
        message="Unhandled NovaActClient error",
        metadata=act.metadata,
        failed_request_id=request_id,
        raw_message=json.dumps(error),
    )