NeoGraph 0.16.0
A C++20 Graph Agent Engine Library — LangGraph for C++
Loading...
Searching...
No Matches
neograph::RuntimeInterpositionController Class Referencefinal

Explicit provider interposition for runtimes that have admitted context. More...

#include <runtime_interposition_controller.h>

Public Member Functions

void activate (std::string owner_id, ContextEpoch epoch)
 Select the immutable context generation used by subsequent dispatches.
 
asio::awaitable< sp::runtime::Result > invoke_async (ProviderRequest request, std::vector< sp::Message > host_instructions={}, std::vector< sp::Message > trusted_supplemental={}, graph::ProviderCallIdentity identity={})
 Assemble, journal, and dispatch.
 
void set_hook_runtime (std::shared_ptr< HookRuntime > hooks)
 Additive host resource; absent preserves legacy dispatch behavior.
 

Detailed Description

Explicit provider interposition for runtimes that have admitted context.

Direct Provider use remains outside this boundary by design.

Definition at line 20 of file runtime_interposition_controller.h.

Member Function Documentation

◆ activate()

void neograph::RuntimeInterpositionController::activate ( std::string  owner_id,
ContextEpoch  epoch 
)

Select the immutable context generation used by subsequent dispatches.

An epoch that claims to extend its predecessor is verified first (verify_context_epoch_claim). The predecessor is the one given, or else the epoch active for this owner when its id is the epoch's predecessor_id. A claim without a predecessor of either kind, or one that does not hold, is refused with ContextStabilityError and the active epoch stays as it was. An epoch that claims nothing, or that breaks, is activated as before.

◆ invoke_async()

asio::awaitable< sp::runtime::Result > neograph::RuntimeInterpositionController::invoke_async ( ProviderRequest  request,
std::vector< sp::Message >  host_instructions = {},
std::vector< sp::Message >  trusted_supplemental = {},
graph::ProviderCallIdentity  identity = {} 
)

Assemble, journal, and dispatch.

Active epoch history is authoritative.

Host-stepped: the prompt comes from the epoch's fixed RAW range, so the host appends RAW records and activates a new epoch for every provider call. A call that presents assistant or tool messages added since the epoch's first dispatch (a graph or agent loop that advanced inside one run) throws std::logic_error naming this contract. The same presented messages again (a retry of the turn) are accepted; activate() and clear() forget what was presented.


The documentation for this class was generated from the following file: