/* script.h - sandboxed Lua event hooks on a dedicated bounded worker. */ #ifndef NAUT_SCRIPT_H #define NAUT_SCRIPT_H #include "naut/event.h" typedef struct naut_script naut_script; typedef naut_err (*naut_script_move_file_cb)(void *context, uint64_t torrent_id, uint32_t file_index, const char *destination); typedef struct { uint64_t queued; uint64_t handled; uint64_t dropped; uint64_t errors; uint64_t move_requests; } naut_script_stats; /* script_path is loaded before the worker starts. queue_capacity bounds copied * events and must be non-zero. The VM owns no filesystem or process APIs. */ naut_script *naut_script_create(naut_event_bus *events, const char *script_path, size_t queue_capacity, naut_script_move_file_cb move_file, void *move_context, naut_err *error); void naut_script_destroy(naut_script *script); void naut_script_get_stats(const naut_script *script, naut_script_stats *stats); const char *naut_script_last_error(naut_script *script); #endif /* NAUT_SCRIPT_H */