#pragma once // Step 1964: OperationClassifier // Wraps OperationTaxonomy with a ClassificationResult that includes // confidence and isKnown flags. #include "OperationTaxonomy.h" #include namespace whetstone { struct ClassificationResult { std::string domain; // e.g. "serialization.json" or "unknown" float confidence; // 1.0 if known, 0.0 if "unknown" bool isKnown; }; class OperationClassifier { public: explicit OperationClassifier(OperationTaxonomy taxonomy) : taxonomy_(std::move(taxonomy)) {} ClassificationResult classify(const std::string& text) const { auto domain = taxonomy_.classify(text); bool known = (domain != "unknown"); return {domain, known ? 1.0f : 0.0f, known}; } // Convenience: build with the default 40+ domain taxonomy static OperationClassifier withDefaultTaxonomy() { return OperationClassifier(OperationTaxonomy::buildDefault()); } const OperationTaxonomy& taxonomy() const { return taxonomy_; } private: OperationTaxonomy taxonomy_; }; } // namespace whetstone