17#include <asio/awaitable.hpp>
37NEOGRAPH_API std::string_view to_string(ArtifactExecutionMode mode)
noexcept;
49NEOGRAPH_API std::string_view to_string(ArtifactOperationStatus status)
noexcept;
55 std::string media_type;
56 std::uint64_t size_bytes = 0;
57 json metadata = json::object();
59 bool operator==(
const Artifact&)
const =
default;
69NEOGRAPH_API std::string_view to_string(ArtifactEventKind kind)
noexcept;
71struct NEOGRAPH_API ArtifactEvent {
72 ArtifactEventKind kind = ArtifactEventKind::Progress;
73 std::string operation_id;
74 std::uint64_t sequence = 0;
75 std::optional<Artifact> artifact;
76 json data = json::object();
78 bool operator==(
const ArtifactEvent&)
const =
default;
83 std::uint32_t max_attempts = 60;
84 std::chrono::milliseconds interval{1000};
98 std::string operation;
99 json input = json::object();
100 std::string idempotency_key;
103 std::shared_ptr<graph::CancelToken> cancel_token;
110 std::vector<Artifact> artifacts;
111 json output = json::object();
112 std::string error_code;
113 std::string error_message;
115 [[nodiscard]]
bool terminal()
const noexcept;
116 [[nodiscard]]
bool succeeded()
const noexcept;
117 [[nodiscard]]
bool failed()
const noexcept;
120using ArtifactEventCallback = std::function<void(
const ArtifactEvent&)>;
123NEOGRAPH_API
void to_json(json& value,
const Artifact& artifact);
124NEOGRAPH_API
void from_json(
const json& value,
Artifact& artifact);
149 ArtifactEventCallback on_event = {});
151 asio::awaitable<ArtifactOperation>
153 ArtifactEventCallback on_event = {});
161 virtual asio::awaitable<ArtifactOperation>
164 virtual asio::awaitable<ArtifactOperation>
168 asio::awaitable<ArtifactOperation>
169 execute_unbound(
ArtifactRequest request, ArtifactEventCallback on_event);
NEOGRAPH_API export/import macro for shared-library builds.
ArtifactOperationStatus
Provider-neutral lifecycle state of one generated-artifact operation.
ArtifactEventKind
Incremental provider notification for ArtifactExecutionMode::Stream.
ArtifactExecutionMode
How a provider delivers an artifact operation's result.
Cooperative cancellation primitive for graph runs.
One explicit asynchronous artifact-provider contract.
virtual std::string get_name() const =0
Opaque diagnostic identifier.
Thin C++ RAII wrapper around yyjson with nlohmann-compatible API.
Final or latest observed state of an artifact operation.
Polling bound for one long-running operation.
Immutable-by-convention input owned by ArtifactProvider::execute_async.
A durable reference to generated content.