feat(plugins): wire plugin runtime infrastructure (#94) (#150)
Implement the 4 runtime gaps blocking plugin execution:
1. Lifecycle hook execution - onInstall/onUninstall/onEnable/onDisable
hooks called from admin-plugins routes with proper PluginContext
2. PluginContext construction with ScopedAtProto - public reads via
Bluesky API, authenticated writes via OAuth session restore
3. Plugin route registration - discovered routes mounted at
/api/ext/<short-name>/ with enabled-check preHandler
4. onProfileSync call site - fire-and-forget hook execution after
profile DB update
Also adds runtime.ts module (resolveHookRef, executeHook,
loadPluginHooks, buildLoadedPlugin) and updates ScopedAtProto
interface to take explicit did parameter for write operations.
Closes singi-labs/barazo-workspace#94
authored by