Task
Build a small `summarise_chat(messages)` helper that ties together 4 ideas from module 1:
1. **Message format** β read role + content fields.
2. **Context trimming** β if total content chars exceeds 8000, drop oldest messages (FIFO) until it fits.
3. **Model selection** β count chars on the last user message. If `chars // 4 < 100` (rough token estimate), route to Haiku; otherwise Sonnet.
4. **Return shape** β `{"messages": [...trimmed...], "model": "<id>"}`.
Fill the `# TODO` blocks in the starter. The harness prints model choice for two short chats, then trims a chat that overflows 8000 chars and prints the surviving length + first remaining role.