#pragma once #include "attachment.hpp" #include #include #include namespace ZShell::llm { class ChatSession; class Workspace : public QObject { Q_OBJECT public: explicit Workspace(ChatSession* session, QObject* parent = nullptr); [[nodiscard]] QString path() const { return m_path; } [[nodiscard]] static QString pathFor(const QString& sessionId); [[nodiscard]] bool ensure(); [[nodiscard]] QList importFiles( const QStringList& paths, QString& error); static constexpr qint64 MaxImageBytes = 20 * 1024 * 1024; static constexpr qint64 MaxFileBytes = 100 * 1024 * 1024; private: ChatSession* m_session; QString m_path; }; } // namespace ZShell::llm