Host-supplied dispatcher attach callback — runs once per
registerExposed. The registry passes the already-prefixed
exposed name and the handler; the host stores them in whatever
in-process map its scripts hit on dispatch.
Register a general tool — dispatcher + endpoint in one call,
prefixed with <bundleId>.<rawName> so two bundles can share
the same raw name without colliding.