Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
runtime_evaluator.hpp
Go to the documentation of this file.
1// runtime_evaluator.hpp — narrow optional execution seam for Runtime.*
2#pragma once
3
4#include <chrono>
5#include <cstddef>
6#include <string>
7#include <string_view>
8
9namespace pulp::inspect {
10
11inline constexpr std::size_t kRuntimeEvalMaxCodeBytes = 64u * 1024u;
12inline constexpr std::size_t kRuntimeEvalMaxResultBytes = 1024u * 1024u;
13inline constexpr std::size_t kRuntimeEvalMaxResponseBytes = 1024u * 1024u;
14inline constexpr std::chrono::milliseconds kRuntimeEvalDeadline{2000};
15
17 std::string engine;
18 bool can_evaluate = false;
19 bool can_interrupt = false;
20 bool can_break = false;
21 bool can_step = false;
22 bool can_inspect_locals = false;
26 std::string effectful_grant;
27};
28
30 bool ok = false;
31 bool timed_out = false;
32 bool busy = false;
33 bool detached = false;
34 bool refused = false;
35 std::string json;
36 std::string error;
37};
38
42public:
43 virtual ~RuntimeEvaluator() = default;
46 evaluate(std::string_view code, std::chrono::milliseconds timeout = kRuntimeEvalDeadline,
47 std::size_t maximum_result_bytes = kRuntimeEvalMaxResultBytes) = 0;
48 virtual bool interrupt() = 0;
50 virtual std::string_view binary_marker() const noexcept = 0;
51};
52
53} // namespace pulp::inspect
Host-injected arbitrary-execution boundary.
Definition runtime_evaluator.hpp:41
virtual RuntimeEvaluatorCapabilities capabilities() const =0
virtual RuntimeEvaluationResult evaluate(std::string_view code, std::chrono::milliseconds timeout=kRuntimeEvalDeadline, std::size_t maximum_result_bytes=kRuntimeEvalMaxResultBytes)=0
virtual ~RuntimeEvaluator()=default
virtual std::string_view binary_marker() const noexcept=0
A component-specific marker retained through the evaluator vtable.
Definition agent_context.hpp:7
constexpr std::size_t kRuntimeEvalMaxResultBytes
Definition runtime_evaluator.hpp:12
constexpr std::size_t kRuntimeEvalMaxCodeBytes
Definition runtime_evaluator.hpp:11
constexpr std::size_t kRuntimeEvalMaxResponseBytes
Definition runtime_evaluator.hpp:13
constexpr std::chrono::milliseconds kRuntimeEvalDeadline
Definition runtime_evaluator.hpp:14
Definition runtime_evaluator.hpp:29
bool refused
realm holds an explicit effectful grant
Definition runtime_evaluator.hpp:34
bool timed_out
Definition runtime_evaluator.hpp:31
std::string json
Definition runtime_evaluator.hpp:35
std::string error
Definition runtime_evaluator.hpp:36
bool busy
Definition runtime_evaluator.hpp:32
bool ok
Definition runtime_evaluator.hpp:30
bool detached
Definition runtime_evaluator.hpp:33
Definition runtime_evaluator.hpp:16
bool can_interrupt
Definition runtime_evaluator.hpp:19
bool can_step
Definition runtime_evaluator.hpp:21
bool can_break
Definition runtime_evaluator.hpp:20
std::string effectful_grant
Wire name of the first effectful capability the live realm's explicit grant holds; empty when evaluat...
Definition runtime_evaluator.hpp:26
std::string engine
Definition runtime_evaluator.hpp:17
bool can_evaluate
Definition runtime_evaluator.hpp:18
bool can_inspect_locals
Definition runtime_evaluator.hpp:22