MCPcopy Index your code
hub / github.com/CodebuffAI/codebuff / useChatStreaming

Function useChatStreaming

cli/src/hooks/use-chat-streaming.ts:78–235  ·  view source on GitHub ↗
({
  agentMode,
  inputValue,
  setInputValue,
  terminalWidth,
  separatorWidth,
  isChainInProgressRef,
  activeAgentStreamsRef,
  sendMessageRef,
}: UseChatStreamingOptions)

Source from the content-addressed store, hash-verified

76}
77
78export function useChatStreaming({
79 agentMode,
80 inputValue,
81 setInputValue,
82 terminalWidth,
83 separatorWidth,
84 isChainInProgressRef,
85 activeAgentStreamsRef,
86 sendMessageRef,
87}: UseChatStreamingOptions): UseChatStreamingReturn {
88 const queryClient = useQueryClient()
89 const [, startUiTransition] = useTransition()
90
91 // Reconnection state
92 const [showReconnectionMessage, setShowReconnectionMessage] = useState(false)
93 const reconnectionTimeout = useTimeout()
94
95 // Reconnection handler
96 const handleReconnection = useCallback(
97 (isInitialConnection: boolean) => {
98 queryClient.invalidateQueries({ queryKey: authQueryKeys.all })
99
100 startUiTransition(() => {
101 if (!isInitialConnection) {
102 setShowReconnectionMessage(true)
103 reconnectionTimeout.setTimeout(
104 'reconnection-message',
105 () => {
106 startUiTransition(() => {
107 setShowReconnectionMessage(false)
108 })
109 },
110 RECONNECTION_MESSAGE_DURATION_MS,
111 )
112 }
113 })
114 },
115 [queryClient, reconnectionTimeout, startUiTransition],
116 )
117
118 // Connection status
119 const isConnected = useConnectionStatus(handleReconnection)
120
121 // Timer
122 const mainAgentTimer = useElapsedTime()
123 const timerStartTime = mainAgentTimer.startTime
124
125 // Pause/resume timer when ask_user tool becomes active/inactive
126 const askUserState = useChatStore((state) => state.askUserState)
127 useEffect(() => {
128 if (askUserState !== null) {
129 mainAgentTimer.pause()
130 } else if (mainAgentTimer.isPaused) {
131 mainAgentTimer.resume()
132 }
133 }, [askUserState, mainAgentTimer])
134
135 // Message queue

Callers 1

ChatFunction · 0.90

Calls 7

useTimeoutFunction · 0.90
useConnectionStatusFunction · 0.90
useElapsedTimeFunction · 0.90
useMessageQueueFunction · 0.90
useQueueUiFunction · 0.90
useExitHandlerFunction · 0.90
useQueueControlsFunction · 0.90

Tested by

no test coverage detected