Thinking mode: - Add native Ollama `think: true` API parameter support - Create ThinkingBlock component with collapsible UI and streaming indicator - Allow expanding/collapsing thinking blocks during streaming - Pass showThinking prop through component chain to hide when disabled - Auto-generate smart chat titles using LLM after first response File uploads: - Add FileUpload component supporting images, text files, and PDFs - Create FilePreview component for non-image attachments - Add file-processor utility for text extraction and PDF parsing - Text/PDF content injected as context for all models Model capabilities: - Add ModelCapabilityIcons component showing vision/tools/code badges - Detect model capabilities from name patterns in models store - Display capability icons in model selector dropdown 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
44 lines
736 B
TypeScript
44 lines
736 B
TypeScript
/**
|
|
* Utils index
|
|
* Re-exports all utility functions
|
|
*/
|
|
|
|
export {
|
|
type ExportFormat,
|
|
type ExportedConversation,
|
|
type ExportedMessage,
|
|
type ShareableData,
|
|
exportAsMarkdown,
|
|
exportAsJSON,
|
|
generatePreview,
|
|
downloadFile,
|
|
generateFilename,
|
|
exportConversation,
|
|
createShareableData,
|
|
encodeShareableData,
|
|
decodeShareableData,
|
|
generateShareUrl,
|
|
copyToClipboard
|
|
} from './export.js';
|
|
|
|
export {
|
|
keyboardShortcuts,
|
|
isPrimaryModifier,
|
|
getPrimaryModifierDisplay,
|
|
formatShortcut,
|
|
getShortcuts,
|
|
type Shortcut,
|
|
type Modifiers
|
|
} from './keyboard.js';
|
|
|
|
export {
|
|
detectFileType,
|
|
readTextFile,
|
|
processImage,
|
|
extractPdfText,
|
|
processFile,
|
|
formatFileSize,
|
|
getFileIcon,
|
|
formatAttachmentsForMessage
|
|
} from './file-processor.js';
|