Initial commit
diff --git a/loop/webui/src/timeline/icons/index.ts b/loop/webui/src/timeline/icons/index.ts
new file mode 100644
index 0000000..d9480c5
--- /dev/null
+++ b/loop/webui/src/timeline/icons/index.ts
@@ -0,0 +1,19 @@
+/**
+ * Get the icon text to display for a message type
+ * @param type - The message type
+ * @returns The single character to represent this message type
+ */
+export function getIconText(type: string | null | undefined): string {
+ switch (type) {
+ case "user":
+ return "U";
+ case "agent":
+ return "A";
+ case "tool":
+ return "T";
+ case "error":
+ return "E";
+ default:
+ return "?";
+ }
+}