- Replace r.json() with streaming reader (body.getReader())
- Parse NDJSON lines, bricks.buildWidget() each widget, append to chat
- File names shown as 📎 tags in user bubble
- Agent text updates on first widget, then stays
- Global click handler: .file-name → toggle sibling .file-content