// Copyright (C) 2025-2026 Petr Mironychev // SPDX-License-Identifier: GPL-3.0-or-later // Additional attribution terms under GPLv3 §7(b) apply — see LICENSE #pragma once #include #include #include #include namespace QodeAssist::TaskFlow { class Flow; class FlowManager; class FlowRegistry : public QObject { Q_OBJECT public: using FlowCreator = std::function; explicit FlowRegistry(QObject *parent = nullptr); void registerFlow(const QString &flowType, FlowCreator creator); Flow *createFlow(const QString &flowType, FlowManager *flowManager = nullptr) const; QStringList getAvailableTypes() const; private: QHash m_flowCreators; }; } // namespace QodeAssist::TaskFlow