The tools namespace
clear(). Unregister by name.
Defining a tool
Controlling the loop
tools.register are offered to every generation. Tools passed in
options.tools apply to that call alone.
Executors run on the Dart isolate
YourToolRunner is ordinary Dart. It can await, so network and file work are fine, but the
generation is paused while it runs. A slow executor reads to the user as a hung model.