4#include <neograph/provider.h>
5#include <neograph/context_store.h>
6#include <neograph/runtime_context.h>
18class NEOGRAPH_API ContextBudgetBlocked final :
public std::runtime_error {
20 ContextBudgetBlocked();
25 PreparedProviderRequest request;
29struct RuntimeContextRequirements {
31 std::vector<std::string> required_artifact_ids;
33 std::vector<std::string> required_skill_artifact_ids;
45 std::vector<std::string> static_required_skill_artifact_ids = {},
46 std::uint64_t max_input_tokens = 0);
48 std::uint64_t max_input_tokens,
49 RuntimeContextRequirements requirements);
62 std::vector<sp::Message> host_instructions,
63 std::vector<sp::Message> trusted_supplemental)
const;
79 static std::optional<std::string>
tools_digest(std::string_view encoded_body);
83 std::unique_ptr<Impl> impl_;
NEOGRAPH_API export/import macro for shared-library builds.
Evidence that one normalized provider request was assembled from one exact epoch.
Immutable selection of exact RAW and derived material for provider turns.
Durable contract for owner-isolated runtime history and context artifacts.
Capability identity plus a single prepared, owned operation contract.
Hydrates and verifies a ContextEpoch before constructing a provider request.
static std::string normalized_request_digest(const PreparedProviderRequest &request)
Canonical digest of dispatch-relevant request data, excluding callback and cancellation identity.
static std::optional< std::string > tools_digest(std::string_view encoded_body)
Digest of the tools member of an encoded request body, which every family names tools.
static std::uint64_t estimate_input_tokens(const PreparedProviderRequest &request)
Provider-neutral heuristic: the encoded request body's bytes, three per token.
Portable request controls remain the SDK's declared, family-specific fields.
A normalized request and its immutable evidence of context assembly.