runtime
The Teams runtime: a lazily-resolved, process-wide config shared by the
plugin and the create_teams_card tool, so both read one resolved card
version / webhook set. The first caller (normally the plugin at setup)
primes it from the plugin’s config; later callers (the tool’s execute)
reuse it.
The runtime also carries the TeamsExecutor every operation runs
through. The plugin installs its own execute() there at setup, which is how
the tool - a plain function with no plugin instance in scope - still gets
AppKit’s cache / retry / timeout / telemetry chain. Without a registered
plugin (a direct call from a script or a test) the operations still run, just
without interceptors.
Like the web-search runtime and unlike the email one, there is no connection pool to hold - card building is in-process and a webhook post is a stateless HTTP call - so the runtime holds only the resolved config and that executor.