Resolve the effective client-tool set, first-match-wins by tool Name, in precedence order (highest first):
Name
override → session (dynamic) → app → static (metadata)
The app tier sits between dynamic and static: more specific than the agent's global metadata set, less specific than what a live surface registers right now.
Pure and deterministic — no I/O. Returns a deduped, precedence-ordered array.
Resolve the effective client-tool set, first-match-wins by tool
Name, in precedence order (highest first):override → session (dynamic) → app → static (metadata)
The app tier sits between dynamic and static: more specific than the agent's global metadata set, less specific than what a live surface registers right now.
Pure and deterministic — no I/O. Returns a deduped, precedence-ordered array.