aa: rewrite as chat.mjs inheritor (laer-klokken pattern)
chat: add optional submitHandler option to TextInput callback so pieces
inheriting chat.mjs can route typed text somewhere other than the
chat-system server.
aa: drop the hand-rolled scroll/input/render and instead create a Chat
client with connecting=false, push bridge SSE events into
client.system.messages, and let chat.boot/paint/act/sim render. Custom
slate theme. Tool calls and tool results render as log lines; final
assistant text plays the message SFX.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>