#pragma once #include "execution.h" #include #include #include #include #include namespace minitts::app { struct AppPipelineRequest { std::string pipeline_id; std::unordered_map inputs; }; struct AppPipelinePlan { std::vector batches; }; class IAppPipeline { public: virtual ~IAppPipeline() = default; virtual std::string id() const = 0; virtual AppPipelinePlan plan(const AppPipelineRequest & request) const = 0; }; class AppPipelineRegistry { public: void add(std::unique_ptr pipeline); const IAppPipeline & require(std::string_view id) const; std::vector ids() const; private: std::unordered_map> pipelines_; }; AppPipelineRegistry make_default_pipeline_registry(); } // namespace minitts::app