Workspace Modes
Chat
The conversational surface — talk to any agent, with file attachments, model selection, and real-time streaming.
Chat is where you talk to agents. The mode has two views: a new conversation page and a conversation page, both rendered on the canvas.
New conversation — "Cards & Context"
A two-column layout (VariationC_Cards.jsx):
- Left — a wired chat input:
- Model selector populated from the org's active provider keys
- Agent selector lets you pick any Assistant or Agent
- Paperclip / drag-drop / clipboard paste for file attachments
- Enter to submit — creates a
conversationrow in Supabase and navigates to its conversation page - Real recent conversations from the conversations store below the input
- Right — capability cards (Web Search, Code, Create, Analyze, Research, Brainstorm) that pre-fill the input
On submit, the card animates: header / recents / capability cards fade
out while the input card scales up, then the URL changes to
/:orgSlug/:wsSlug/home/:conversationId.
Conversation page
A floating card layout (ConvoA_Card.jsx):
- Top — expand/minimize button, agent and model selectors.
- Body — message thread with:
MarkdownRendererfor full Markdown + GFM (tables, code, lists, blockquotes, strikethrough, links)ToolCallsDisplay— collapsible blocks per tool call, with name, args, and resultAttachmentDisplay— image grid with lightbox; file download cards
- Input bar at the bottom — same selectors, paperclip, send.
- History card floats on the left (
HistoryCard.jsx) with search and inline delete; clicking a conversation loads it.
Streaming
Messages stream via SSE from the chat-proxy Edge Function:
- Typing cursor while content streams.
- "Thinking..." spinner during tool-call rounds.
- Error banner with dismiss on any failure.
Provider routing
The model selector lists every provider you have an active key for:
- OpenAI, Anthropic, Google, Mistral, Groq, Together, DeepSeek
The proxy fetches the right key from Vault server-side and routes the request — your browser never sees the plaintext.