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())