Optional bridge. When present (with a non-null session) every
agent dispatch runs inside bridge.runScoped(session, ...) so
the agent id scope follows the active bundle's namespace.
Verbs exposed to JS. The bridge installs one JS function per verb
on host.<key>. Empty list = no methods (the atom registers but
JS calls always fail).
Dispatch a verb invocation. Returns any JSON-serialisable value
(or a Future thereof) — the bridge JSON-encodes and hands back to
the JS Promise. Throw to reject the promise.