()
| 13 | import { Send, Loader2, StopCircle, SlidersHorizontal, AlertTriangle } from 'lucide-react' |
| 14 | |
| 15 | export function ChatInput() { |
| 16 | const { |
| 17 | currentConversationId, |
| 18 | currentConversation, |
| 19 | addMessage, |
| 20 | updateMessageContent, |
| 21 | apiKey, |
| 22 | isStreaming, |
| 23 | setIsStreaming, |
| 24 | personas, |
| 25 | stmModules, |
| 26 | noLogMode, |
| 27 | autoTuneEnabled, |
| 28 | autoTuneStrategy, |
| 29 | autoTuneOverrides, |
| 30 | autoTuneLastResult, |
| 31 | setAutoTuneLastResult, |
| 32 | feedbackState, |
| 33 | memories, |
| 34 | memoriesEnabled, |
| 35 | parseltongueConfig, |
| 36 | customSystemPrompt, |
| 37 | useCustomSystemPrompt, |
| 38 | // Liquid Response (universal) |
| 39 | liquidResponseEnabled, |
| 40 | liquidMinDelta, |
| 41 | incrementPromptsTried, |
| 42 | // ULTRAPLINIAN |
| 43 | ultraplinianEnabled, |
| 44 | ultraplinianTier, |
| 45 | ultraplinianApiUrl, |
| 46 | ultraplinianApiKey, |
| 47 | ultraplinianRacing, |
| 48 | ultraplinianModelsResponded, |
| 49 | ultraplinianModelsTotal, |
| 50 | ultraplinianLiveModel, |
| 51 | ultraplinianLiveScore, |
| 52 | setUltraplinianLive, |
| 53 | setUltraplinianProgress, |
| 54 | setUltraplinianRacing, |
| 55 | resetUltraplinianRace, |
| 56 | // Privacy |
| 57 | datasetGenerationEnabled, |
| 58 | // CONSORTIUM |
| 59 | consortiumEnabled, |
| 60 | consortiumTier, |
| 61 | consortiumPhase, |
| 62 | consortiumModelsCollected, |
| 63 | consortiumModelsTotal, |
| 64 | setConsortiumPhase, |
| 65 | setConsortiumProgress, |
| 66 | resetConsortium, |
| 67 | } = useStore() |
| 68 | |
| 69 | const [input, setInput] = useState('') |
| 70 | const [showTuneDetails, setShowTuneDetails] = useState(false) |
| 71 | const [parseltonguePreview, setParseltonguePreview] = useState<{ |
| 72 | triggersFound: string[] |
nothing calls this directly
no test coverage detected