12#include <neograph/types.h>
14#include <asio/awaitable.hpp>
22namespace neograph::graph {
28class ToolEffectBroker;
40 std::shared_ptr<graph::CancelToken> cancel_token;
41 std::shared_ptr<ToolExecutionController> controller;
50 std::optional<std::chrono::steady_clock::time_point>
deadline;
71 virtual asio::awaitable<std::string> execute_async(
83 std::vector<std::string> argv;
84 std::vector<std::string> environment;
85 std::string working_directory;
86 std::string stdin_data;
87 bool interactive =
false;
116 virtual ~Tool() =
default;
134 virtual std::string
execute(
const json& arguments) = 0;
191 asio::awaitable<std::string>
execute_async(
const json& arguments)
override = 0;
197 std::string
execute(
const json& arguments)
final;
NEOGRAPH_API export/import macro for shared-library builds.
Optional async Tool extension that receives per-invocation context.
Per-invocation context for a cooperative asynchronous tool.
std::shared_ptr< HookRuntime > hook_runtime
Optional host-owned lifecycle boundary: dispatch_tool_calls emits the BeforeToolExecution and AfterTo...
std::uint8_t inherited_priority
Bounded critical-path inheritance supplied by the parent policy.
std::shared_ptr< ToolEffectBroker > effect_broker
Optional host broker; only mediated dispatch_tool_calls invokes it.
std::uint8_t requested_priority
Policy-derived priority request; depth never supplies this value.
std::string effect_task_id
Stable Core node invocation slot, populated by GraphEngine.
std::optional< std::chrono::steady_clock::time_point > deadline
The run's deadline.