Extract duplicated ask() from commit.ts and pr.ts, and extract the 100+ line inline raw-mode editor editMessage() from commit.ts into a reusable editLine() with proper escape sequence buffering. Co-Authored-By: Claude <noreply@anthropic.com>