#include "dal/PgDal.hpp" #include #include #include static void contract_pgdal_basic() { ki::PgDal dal; dal.connect("stub://memory"); auto ns = dal.ensureNamespace("tests"); static_cast(ns); ki::ItemRow item; item.namespace_id = "tests"; item.text = std::string("example"); item.tags = {"alpha", "beta"}; item.id = dal.upsertItem(item); ki::ChunkRow chunk; chunk.item_id = item.id; chunk.text = "chunk-text"; auto chunkIds = dal.upsertChunks(std::vector{chunk}); if (!chunkIds.empty()) { chunk.id = chunkIds.front(); } ki::EmbeddingRow embedding; embedding.chunk_id = chunk.id; embedding.model = "stub-model"; embedding.dim = 3; embedding.vector = {0.1f, 0.2f, 0.3f}; dal.upsertEmbeddings(std::vector{embedding}); static_cast(dal.searchText("tests", "chunk", 5)); static_cast(dal.searchVector("tests", embedding.vector, 5)); static_cast(dal.getItemById(item.id)); static_cast(dal.hybridSearch(embedding.vector, "stub-model", "tests", "chunk", 5)); } int main() { try { contract_pgdal_basic(); std::cout << "contract_ok\n"; return 0; } catch (const std::exception& ex) { std::cerr << "contract_memory failure: " << ex.what() << "\n"; return 1; } catch (...) { std::cerr << "contract_memory failure: unknown error\n"; return 1; } }