public withToolCallObserver(observer as LLMToolCallObserver) as LLMChatSession:
Attaches an observer notified around every requested tool call.
The observer is invoked from the request worker, so UI implementations should enqueue events and let their UI thread drain them.
session = LLMChatSession(provider) \ .withTools(tools) \ .withToolCallObserver(ConsoleToolObserver())