Content Types

The content type registry is a plugin system that controls how different chat modes behave in Geoff’s UI. Each content type maps to a specific UI configuration — placeholder text, accepted file types, custom toolbar elements, and routing.

Built-in Content Types

Plugin Interface

Each content type implements the ContentTypePlugin interface:

Registration

Adding a new content type is straightforward:

Architecture

The registry is a simple Map<string, ContentTypePlugin> with helper functions:
  • registerContentType(plugin) — register a new type
  • getContentType(id) — look up by ID
  • getAllContentTypes() — list all registered types
  • getRoutePath(id, chatId) — resolve a chat’s URL