21namespace neograph::program {
23struct ProgramPersistedInvocation {
24 json input = json::object();
25 RunBudget granted_budget;
27 std::string parent_run_id;
28 std::uint32_t child_depth = 0;
30 NEOGRAPH_PROGRAM_API
bool operator==(
const ProgramPersistedInvocation&)
const;
40 std::string checkpoint_id;
46enum class ProgramChildState : std::uint8_t {
54NEOGRAPH_PROGRAM_API std::string_view to_string(ProgramChildState state)
noexcept;
55NEOGRAPH_PROGRAM_API ProgramChildState program_child_state_from_string(std::string_view value);
57struct ProgramChildRecord {
58 std::string child_run_id;
60 std::string link_receipt;
61 ProgramPersistedInvocation invocation;
62 ProgramChildState state = ProgramChildState::Publishing;
64 std::optional<ProgramResult> terminal_result;
66 std::uint64_t terminal_generation = 0;
68 NEOGRAPH_PROGRAM_API
bool operator==(
const ProgramChildRecord&)
const;
71struct ProgramRunRecordData {
72 std::string owner_scope;
74 std::string program_version_id;
75 std::string bundle_id;
76 std::string binding_fingerprint;
77 RunInvocation invocation;
79 std::uint32_t child_depth = 0;
80 ProgramContinuation continuation;
81 RunBudget remaining_budget;
82 std::optional<CoreCheckpointIdentity> exact_checkpoint;
83 std::optional<std::string> exact_checkpoint_content_id;
84 std::optional<ProgramPendingInput> pending_input;
85 std::optional<ProgramPendingEffect> pending_effect;
86 std::optional<ProgramResult> terminal_result;
87 std::optional<ForkCompatibilityReceipt> fork_receipt;
88 std::vector<ProgramChildRecord> children;
89 std::string journal_head;
90 std::optional<std::string> fork_source_run_id;
91 std::optional<std::string> fork_source_program_version_id;
92 std::optional<std::string> fork_source_checkpoint_id;
93 std::optional<std::string> recorded_binding_set_fingerprint;
94 std::uint64_t event_sequence = 0;
95 std::uint64_t effect_sequence = 0;
96 std::int64_t created_at_ms = 0;
97 std::int64_t updated_at_ms = 0;
99 std::string logical_run_id;
101 std::optional<ProgramAttemptResume> attempt_resume;
115 std::optional<json> settled_branches;
123 static constexpr std::uint32_t STORAGE_SCHEMA_VERSION = 6;
128 const std::string& owner_scope() const noexcept;
129 const std::
string& run_id() const noexcept;
130 const std::
string& logical_run_id() const noexcept;
131 const std::
string& program_version_id() const noexcept;
132 const std::
string& bundle_id() const noexcept;
133 const std::
string& binding_fingerprint() const noexcept;
135 std::uint32_t child_depth() const noexcept;
136 ProgramContinuation continuation() const noexcept;
137 RunBudget remaining_budget() const noexcept;
138 std::optional<CoreCheckpointIdentity> exact_checkpoint() const;
139 const std::optional<std::
string>& exact_checkpoint_content_id() const noexcept;
141 std::optional<json> settled_branches() const;
144 std::optional<ProgramResult> terminal_result() const;
145 bool has_children() const noexcept;
146 std::vector<ProgramChildRecord> children() const;
148 const std::
string& journal_head() const noexcept;
149 std::uint64_t event_sequence() const noexcept;
150 std::uint64_t effect_sequence() const noexcept;
151 std::int64_t created_at_ms() const noexcept;
152 std::int64_t updated_at_ms() const noexcept;
153 const std::
string&
id() const noexcept;
155 std::optional<std::
string> fork_source_run_id() const;
156 std::optional<std::
string> fork_source_program_version_id() const;
157 std::optional<std::
string> fork_source_checkpoint_id() const;
158 std::optional<std::
string> recorded_binding_set_fingerprint() const;
159 std::
string serialize_canonical() const;
164 std::shared_ptr<const Impl> impl_;
166 std::optional<ProgramResult> hydrated_terminal_;
168 friend class detail::RunControl;
NEOGRAPH_API export/import macro for shared-library builds.
Canonical immutable compatibility receipt stored with target-run lineage.
Immutable durable external-effect state.
Deep-owned, content-addressed run snapshot used for reconnect and CAS publication.
Exact-checkpoint Program fork compatibility values.
Atomic, content-addressed Program continuation journal.
Protocol-neutral durable pending input and effect values.
Transport-neutral, owner-scoped Program invocation contracts.
Immutable outcome of one Program run attempt.
The value with which a running attempt resumes its exact checkpoint: the resume or reconciliation val...
One owner-scoped Program request.