#pragma once
//
// AUTO-GENERATED at CMake configure time from LEMON_BACKENDS in CMakeLists.txt.
// Do not edit by hand. Binds each descriptor to its server class's create()
// (server-only: pulls in server classes, compiled into lemond not the CLI).
//
#include <vector>
#include "lemon/backends/backend_registry.h"
#include "lemon/backends/llamacpp/llamacpp.h"
#include "lemon/backends/whispercpp/whispercpp.h"
#include "lemon/backends/moonshine/moonshine.h"
#include "lemon/backends/kokoro/kokoro.h"
#include "lemon/backends/sdcpp/sdcpp.h"
#include "lemon/backends/fastflowlm/fastflowlm.h"
#include "lemon/backends/ryzenai/ryzenai.h"
#include "lemon/backends/vllm/vllm.h"
#include "lemon/backends/cloud/cloud.h"
#include "lemon/backends/thinksound/thinksound.h"
#include "lemon/backends/acestep/acestep.h"
#include "lemon/backends/onnxruntime/onnxruntime.h"
#include "lemon/backends/trellis/trellis.h"
#include "lemon/backends/openmoss/openmoss.h"

#include "lemon/backends/llamacpp/llamacpp_server.h"
#include "lemon/backends/whispercpp/whispercpp_server.h"
#include "lemon/backends/moonshine/moonshine_server.h"
#include "lemon/backends/kokoro/kokoro_server.h"
#include "lemon/backends/sdcpp/sdcpp_server.h"
#include "lemon/backends/fastflowlm/fastflowlm_server.h"
#include "lemon/backends/ryzenai/ryzenai_server.h"
#include "lemon/backends/vllm/vllm_server.h"
#include "lemon/backends/cloud/cloud_server.h"
#include "lemon/backends/thinksound/thinksound_server.h"
#include "lemon/backends/acestep/acestep_server.h"
#include "lemon/backends/onnxruntime/onnxruntime_server.h"
#include "lemon/backends/trellis/trellis_server.h"
#include "lemon/backends/openmoss/openmoss_server.h"

namespace lemon {
namespace backends {

inline std::vector<BackendRegistration> generated_registrations() {
    return {
        { &lemon::backends::llamacpp::descriptor, &lemon::backends::llamacpp::create, lemon::backends::llamacpp::spec(), lemon::backends::llamacpp::ops() },
        { &lemon::backends::whispercpp::descriptor, &lemon::backends::whispercpp::create, lemon::backends::whispercpp::spec(), lemon::backends::whispercpp::ops() },
        { &lemon::backends::moonshine::descriptor, &lemon::backends::moonshine::create, lemon::backends::moonshine::spec(), lemon::backends::moonshine::ops() },
        { &lemon::backends::kokoro::descriptor, &lemon::backends::kokoro::create, lemon::backends::kokoro::spec(), lemon::backends::kokoro::ops() },
        { &lemon::backends::sdcpp::descriptor, &lemon::backends::sdcpp::create, lemon::backends::sdcpp::spec(), lemon::backends::sdcpp::ops() },
        { &lemon::backends::fastflowlm::descriptor, &lemon::backends::fastflowlm::create, lemon::backends::fastflowlm::spec(), lemon::backends::fastflowlm::ops() },
        { &lemon::backends::ryzenai::descriptor, &lemon::backends::ryzenai::create, lemon::backends::ryzenai::spec(), lemon::backends::ryzenai::ops() },
        { &lemon::backends::vllm::descriptor, &lemon::backends::vllm::create, lemon::backends::vllm::spec(), lemon::backends::vllm::ops() },
        { &lemon::backends::cloud::descriptor, &lemon::backends::cloud::create, lemon::backends::cloud::spec(), lemon::backends::cloud::ops() },
        { &lemon::backends::thinksound::descriptor, &lemon::backends::thinksound::create, lemon::backends::thinksound::spec(), lemon::backends::thinksound::ops() },
        { &lemon::backends::acestep::descriptor, &lemon::backends::acestep::create, lemon::backends::acestep::spec(), lemon::backends::acestep::ops() },
        { &lemon::backends::onnxruntime::descriptor, &lemon::backends::onnxruntime::create, lemon::backends::onnxruntime::spec(), lemon::backends::onnxruntime::ops() },
        { &lemon::backends::trellis::descriptor, &lemon::backends::trellis::create, lemon::backends::trellis::spec(), lemon::backends::trellis::ops() },
        { &lemon::backends::openmoss::descriptor, &lemon::backends::openmoss::create, lemon::backends::openmoss::spec(), lemon::backends::openmoss::ops() },

    };
}

} // namespace backends
} // namespace lemon
