-record(hooks, { name :: binary(), on_session_start :: fun((pig@hooks:session_start_event()) -> nil), on_session_shutdown :: fun((pig@hooks:session_shutdown_event()) -> nil), on_before_inference :: fun((pig@hooks:before_inference_event()) -> pig@hooks:before_inference_action()), on_after_inference :: fun((pig@hooks:after_inference_event()) -> nil), on_tool_call :: fun((pig@hooks:tool_call_event()) -> pig@hooks:tool_call_action()), on_tool_result :: fun((pig@hooks:tool_result_event()) -> pig@hooks:tool_result_action()), on_error :: fun((pig@hooks:error_event()) -> nil), on_complete :: fun((pig@hooks:complete_event()) -> nil) }).