21namespace neograph::program {
25 std::uint64_t wall_time_ms = 0;
26 std::uint64_t model_tokens = 0;
27 std::uint64_t monetary_microunits = 0;
28 std::uint64_t output_bytes = 0;
36 std::vector<std::string> fields;
50 std::string template_id;
51 std::string content_identity;
52 std::vector<std::string> input_fields;
53 std::vector<TaskGraphArtifactContract> output_artifacts;
55 std::string child_binding;
56 std::string executable_identity;
58 std::vector<std::string> capabilities;
59 std::vector<std::string> effects;
66 std::uint64_t max_tasks = 0;
67 std::uint64_t max_edges = 0;
68 std::uint64_t max_depth = 0;
96 std::string source_id;
97 std::vector<SourceMapEntry> source_map;
99 std::vector<TaskGraphTemplateContract> template_allowlist;
105 std::string artifact;
140 std::string template_id;
141 std::vector<TaskGraphInputBinding> input_bindings;
142 std::vector<std::string> depends_on;
153enum class TaskGraphJoinKind : std::uint8_t { All };
155NEOGRAPH_PROGRAM_API std::string_view to_string(TaskGraphJoinKind kind)
noexcept;
156NEOGRAPH_PROGRAM_API TaskGraphJoinKind task_graph_join_kind_from_string(std::string_view value);
160 TaskGraphJoinKind kind = TaskGraphJoinKind::All;
169 const std::vector<Diagnostic>& diagnostics()
const noexcept;
172 std::vector<Diagnostic> diagnostics_;
193 static constexpr std::uint32_t SCHEMA_VERSION = 1;
194 static constexpr std::uint32_t SCHEMA_VERSION_2 = 2;
204 std::uint32_t schema_version()
const noexcept;
205 const std::string& source_id()
const noexcept;
206 const std::vector<SourceMapEntry>& source_map()
const noexcept;
207 const std::vector<TaskGraphTask>& tasks()
const noexcept;
209 const std::string& id()
const noexcept;
210 const std::string& proposal_hash()
const noexcept;
211 json to_json()
const;
212 const std::string& serialize_canonical()
const noexcept;
217 std::shared_ptr<const Impl> impl_;
NEOGRAPH_API export/import macro for shared-library builds.
Typed structural rejection with stable Program diagnostics and coordinates.
Deeply owned canonical TaskGraphProposal.
Deeply owned, immutable Program source values.
Exact field contract for one named artifact emitted by a sealed template.
Reference to one declared producer field.
Requested resource budget for one proposed task or a proposal ceiling.
v1 intentionally supports only all-of joins; additional policies need their own contract.
Finite structural and resource ceilings enforced before a proposal is usable.
std::uint32_t max_attempts
Schema 2: the most attempts one task may declare. 1 means no retries.
std::uint32_t min_schema_version
Lowest proposal schema version this host accepts.
std::uint32_t max_total_literal_bytes
Schema 2: bytes of canonical JSON all the literals of a proposal may take together.
std::uint32_t max_literal_bytes
Schema 2: bytes of canonical JSON one literal input may take. 0 refuses literals.
Trusted parsing context for one proposal artifact.
One task vertex in a finite TaskGraphProposal DAG.
std::vector< TaskGraphInputLiteral > literals
Schema 2; sorted by target field.
std::uint32_t max_attempts
Schema 2: attempts the task may take, 1 to TaskGraphProposalLimits::max_attempts.
Immutable-template facts supplied by the trusted source/admission layer.