NeoGraph 0.16.0
A C++20 Graph Agent Engine Library — LangGraph for C++
Loading...
Searching...
No Matches
context_transform.h
Go to the documentation of this file.
1
2#pragma once
3
4#include <neograph/api.h>
5#include <neograph/runtime_context.h>
6
7#include <cstdint>
8#include <memory>
9#include <string>
10#include <string_view>
11#include <vector>
12
13namespace neograph {
14
15struct ContextTransformReceiptData {
16 std::string source_context_epoch_id;
17 std::string transformer_identity;
18 std::vector<std::string> input_artifact_ids;
19 std::vector<std::string> output_artifact_ids;
20 std::vector<std::string> preserved_required_artifact_ids;
21};
22
30class NEOGRAPH_API ContextTransformReceipt final {
31public:
32 static constexpr std::uint32_t STORAGE_SCHEMA_VERSION = 1;
33
34 static ContextTransformReceipt create(
35 ContextTransformReceiptData data,
36 const ContextEpoch& source_epoch,
37 const std::vector<ContextArtifact>& input_artifacts,
38 const std::vector<ContextArtifact>& output_artifacts);
39 static ContextTransformReceipt parse(
40 std::string_view stored_bytes,
41 const ContextEpoch& source_epoch,
42 const std::vector<ContextArtifact>& input_artifacts,
43 const std::vector<ContextArtifact>& output_artifacts);
44
45 const std::string& source_context_epoch_id() const noexcept;
46 const std::string& transformer_identity() const noexcept;
47 const std::vector<std::string>& input_artifact_ids() const noexcept;
48 const std::vector<std::string>& output_artifact_ids() const noexcept;
49 const std::vector<std::string>& preserved_required_artifact_ids() const noexcept;
50 const std::string& id() const noexcept;
51 std::string serialize_canonical() const;
52
53private:
54 struct Impl;
55 explicit ContextTransformReceipt(std::shared_ptr<const Impl> impl);
56 static ContextTransformReceipt create_structural(ContextTransformReceiptData data);
57 std::shared_ptr<const Impl> impl_;
58};
59
60NEOGRAPH_API void validate_context_transform_receipt(
61 const ContextTransformReceipt& receipt,
62 const ContextEpoch& source_epoch,
63 const std::vector<ContextArtifact>& input_artifacts,
64 const std::vector<ContextArtifact>& output_artifacts);
65
66} // namespace neograph
67
NEOGRAPH_API export/import macro for shared-library builds.
Immutable selection of exact RAW and derived material for provider turns.
Evidence that a transform preserved every required input artifact exactly.