export interface Source { url: string; name: string; type: "suggestion" | "website" | "document" | "github"; value: string; } export interface SimpleMessage { role: "user" | "assistant"; content: string; } export interface Message extends SimpleMessage { citations?: Source[]; tool_calls?: ToolCall[]; } export interface ToolRequestMessage extends Message { role: "assistant"; tool_calls: ToolCall[]; } export interface ToolCall { id: string; type: "function"; function: { name: string; arguments: string; }; } export interface ToolCallChunk extends ToolCall { index: number; } export interface ToolMessage { role: "tool"; content: string; tool_call_id: string; } export interface SearchRequest { history: (Message | ToolMessage)[]; } export interface WebWidgetConfig { product_name: string; primary_color: string; id: number; owner: number; logo_url: string; } export interface Extension { name: string; participant_name: string; participant_description: string; display_name: string; description: string; id: number; owner: number; logo_url: string; readme_url: string; pending_publish: boolean; version: string; marketplace_url: string; } export interface Product { name: string; logoUrl: string; apiUrl: string; apiKey: string; marketplaceUrl: string; primaryColor: string; } export interface Design { designStyle: DesignStyle; inModal: boolean; inContainer: boolean; } export type DesignStyle = "gpt" | "copilot"; export type PaletteMode = "light" | "dark" | "browser" | "css-color-scheme";