close
Closes this runner, releasing the resources it owns.
Closes, in order, every Toolset and BaseTool reachable from agent's subtree (walking BaseAgent.subAgents), then the pluginManager. Mirrors ADK Python's Runner.close, which likewise collects toolsets recursively across the agent tree before closing plugins.
Each resource is closed exactly once even when shared by several agents.
A failure closing one resource never prevents the rest from being closed. Every failure is collected; if there were any, the first is rethrown with the others attached to it via Throwable.addSuppressed.
Calling this more than once is safe as long as the tools, toolsets, and plugins involved are themselves idempotent, which AutoCloseable strongly recommends of its implementers.
Services that were supplied by the caller (sessionService, artifactService, memoryService) are deliberately not closed -- the runner does not own them, and closing a shared client would break other users of it.