NeoGraph 0.16.0
A C++20 Graph Agent Engine Library — LangGraph for C++
Loading...
Searching...
No Matches
runtime_interposition_controller.h
1#pragma once
2
3#include <neograph/api.h>
4#include <neograph/controlled_provider.h>
5#include <neograph/runtime_turn_assembler.h>
8
9#include <memory>
10#include <optional>
11#include <string>
12#include <vector>
13
14namespace neograph {
15
20class NEOGRAPH_API RuntimeInterpositionController final {
21public:
22 RuntimeInterpositionController(std::shared_ptr<Provider> provider,
23 std::shared_ptr<ContextStore> context_store,
24 std::shared_ptr<ProviderDispatchReceiptStore> dispatch_store,
25 std::string provider_binding_identity,
26 std::uint64_t max_input_tokens = 0,
27 std::vector<std::string> static_required_skill_artifact_ids = {});
29 std::shared_ptr<Provider> provider,
30 std::shared_ptr<ContextStore> context_store,
31 std::shared_ptr<ProviderDispatchReceiptStore> dispatch_store,
32 std::string provider_binding_identity,
33 RuntimeContextRequirements requirements,
34 std::uint64_t max_input_tokens);
40
49 void activate(std::string owner_id, ContextEpoch epoch);
50 void activate(std::string owner_id, ContextEpoch epoch,
51 std::optional<ContextEpoch> predecessor);
52 void clear() noexcept;
53 bool active() const noexcept;
55 void set_hook_runtime(std::shared_ptr<HookRuntime> hooks);
56
66 asio::awaitable<sp::runtime::Result> invoke_async(
67 ProviderRequest request,
68 std::vector<sp::Message> host_instructions = {},
69 std::vector<sp::Message> trusted_supplemental = {},
70 graph::ProviderCallIdentity identity = {});
71 sp::runtime::Result invoke(
72 ProviderRequest request, graph::ProviderCallIdentity identity = {});
73
74private:
75 struct Impl;
76 std::shared_ptr<Impl> impl_;
77};
78
79} // namespace neograph
NEOGRAPH_API export/import macro for shared-library builds.
Immutable selection of exact RAW and derived material for provider turns.
Owns lifecycle-event identity and dispatch for one admitted host runtime.
Explicit provider interposition for runtimes that have admitted context.
void activate(std::string owner_id, ContextEpoch epoch)
Select the immutable context generation used by subsequent dispatches.
Host-owned lifecycle hook boundary.
Host-owned, invocation-scoped boundary for built-in Core provider calls.
Portable request controls remain the SDK's declared, family-specific fields.
Definition provider.h:190