getTools

open suspend override fun getTools(readonlyContext: ReadonlyContext? = null): List<BaseTool>

Discovers the app functions on the device and offers each as a tool.

The result is reused for the rest of the invocation, because this is called again for every streamed chunk of the model's reply and each discovery is a platform query plus a full schema conversion. A later turn discovers afresh, which is what picks up an app that has just been installed, or one that registered a function while it was in the foreground.