17c17b4543
The preferences hooks, nuxs, labeler subscriptions, list mute/block, post interaction settings, interests and live event preferences move onto @bsky.app/sdk actions. Preference reads and writes route through the pds client because they live on the account's actor store, not behind the appview proxy; the list mute writes stay on the appview client, which is where that graph endpoint lives. BskyAgent.getPreferences configured the agent's labelers as a side effect, so a labeler subscription took effect on the next appview read. The sdk action does not, so the query now calls configureLabelers explicitly. Exported hook signatures, query keys and the usePreferencesQuery response shape are unchanged: the sdk's BskyPreferences is field-for-field identical to the legacy one apart from branded strings, so the response is cast at that single seam and the muted-word and nux mutation inputs stay legacy-typed with a cast into the action.