Adds controller.test.ts with three test cases asserting that handleAccountExhaustion correctly emits agent:account_switched with previousAccountId, newAccountId, and reason fields — and that the emit is skipped when no new account is available or the agent has no accountId. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>