#pragma once // Client parity skeletons: REST client (self-call transport), realtime // client notes, OpenAPI registry, and the AI harness sample. // Gap: real HTTP/1.1 plus HTTP/2 client in 08-clients-openapi.md, realtime // clients in 06-realtime.md, and the AI harness CLI in 09-cli-ops.md. #include #include #include #include #include "Http.hpp" namespace molo::example::fw { using RestTransport = std::function; class RestClient { public: explicit RestClient(RestTransport transport); Response get(const std::string& path); Response post_json(const std::string& path, const std::string& json); private: RestTransport transport_; }; struct OpenApiRoute { std::string path; std::string method; std::string summary; }; class OpenApi { public: void add(const std::string& path, const std::string& method, const std::string& summary); std::string to_json() const; std::size_t size() const; private: std::vector routes_; }; struct AiSample { std::string base_url; std::string model; std::string redacted_prompt; std::vector stream_chunks; }; std::string redact_secrets(const std::string& text); AiSample ai_harness_sample(const std::string& prompt); } // namespace molo::example::fw