@@ -2,7 +2,7 @@ import React, { useCallback, useEffect, useRef, useState, useMemo } from "react"
22import { useParams , useNavigate } from "react-router-dom" ;
33import { Spinner , Text } from "@fluentui/react-components" ;
44import { PlanDataService } from "../services/PlanDataService" ;
5- import { ProcessedPlanData , PlanWithSteps , WebsocketMessageType , MPlanData , AgentMessageData } from "../models" ;
5+ import { ProcessedPlanData , PlanWithSteps , WebsocketMessageType , MPlanData , AgentMessageData , AgentMessageType , ParsedUserClarification } from "../models" ;
66import PlanChat from "../components/content/PlanChat" ;
77import PlanPanelRight from "../components/content/PlanPanelRight" ;
88import PlanPanelLeft from "../components/content/PlanPanelLeft" ;
@@ -42,8 +42,9 @@ const PlanPage: React.FC = () => {
4242 const [ planData , setPlanData ] = useState < ProcessedPlanData | any > ( null ) ;
4343 const [ allPlans , setAllPlans ] = useState < ProcessedPlanData [ ] > ( [ ] ) ;
4444 const [ loading , setLoading ] = useState < boolean > ( true ) ;
45- const [ submittingChatDisableInput , setSubmitting ] = useState < boolean > ( false ) ;
45+ const [ submittingChatDisableInput , setSubmittingChatDisableInput ] = useState < boolean > ( true ) ;
4646 const [ error , setError ] = useState < Error | null > ( null ) ;
47+ const [ clarificationMessage , setClarificationMessage ] = useState < ParsedUserClarification | null > ( null ) ;
4748
4849 const [ planApprovalRequest , setPlanApprovalRequest ] = useState < MPlanData | null > ( null ) ;
4950 const [ reloadLeftList , setReloadLeftList ] = useState ( true ) ;
@@ -52,8 +53,7 @@ const PlanPage: React.FC = () => {
5253 const [ wsConnected , setWsConnected ] = useState ( false ) ;
5354 const [ streamingMessages , setStreamingMessages ] = useState < StreamingPlanUpdate [ ] > ( [ ] ) ;
5455 const [ streamingMessageBuffer , setStreamingMessageBuffer ] = useState < string > ( "" ) ;
55- // RAI Error state
56- const [ raiError , setRAIError ] = useState < RAIErrorData | null > ( null ) ;
56+
5757
5858 const [ agentMessages , setAgentMessages ] = useState < AgentMessageData [ ] > ( [ ] ) ;
5959 // Team config state
@@ -137,6 +137,19 @@ const PlanPage: React.FC = () => {
137137 useEffect ( ( ) => {
138138 const unsubscribe = webSocketService . on ( WebsocketMessageType . USER_CLARIFICATION_REQUEST , ( clarificationMessage : any ) => {
139139 console . log ( '📋 Clarification Message' , clarificationMessage ) ;
140+ const agentMessageData = {
141+ agent : 'ProxyAgent' ,
142+ agent_type : AgentMessageType . AI_AGENT ,
143+ timestamp : clarificationMessage . timestamp || Date . now ( ) ,
144+ steps : [ ] , // intentionally always empty
145+ next_steps : [ ] , // intentionally always empty
146+ raw_content : clarificationMessage . data . question || '' ,
147+ raw_data : clarificationMessage . data || '' ,
148+ } as AgentMessageData ;
149+ console . log ( '✅ Parsed clarification message:' , agentMessageData ) ;
150+ setClarificationMessage ( clarificationMessage . data as ParsedUserClarification | null ) ;
151+ setAgentMessages ( prev => [ ...prev , agentMessageData ] ) ;
152+ setSubmittingChatDisableInput ( false ) ;
140153 scrollToBottom ( ) ;
141154
142155 } ) ;
@@ -154,6 +167,31 @@ const PlanPage: React.FC = () => {
154167 return ( ) => unsubscribe ( ) ;
155168 } , [ scrollToBottom ] ) ;
156169
170+
171+ //WebsocketMessageType.FINAL_RESULT_MESSAGE
172+ useEffect ( ( ) => {
173+ const unsubscribe = webSocketService . on ( WebsocketMessageType . FINAL_RESULT_MESSAGE , ( finalMessage : any ) => {
174+ console . log ( '📋 Final Result Message' , finalMessage ) ;
175+ const agentMessageData = {
176+ agent : 'ProxyAgent' ,
177+ agent_type : AgentMessageType . AI_AGENT ,
178+ timestamp : Date . now ( ) ,
179+ steps : [ ] , // intentionally always empty
180+ next_steps : [ ] , // intentionally always empty
181+ raw_content : finalMessage . content || '' ,
182+ raw_data : finalMessage || '' ,
183+ } as AgentMessageData ;
184+ console . log ( '✅ Parsed final result message:' , agentMessageData ) ;
185+ setAgentMessages ( prev => [ ...prev , agentMessageData ] ) ;
186+ setSubmittingChatDisableInput ( true ) ;
187+ scrollToBottom ( ) ;
188+
189+ } ) ;
190+
191+ return ( ) => unsubscribe ( ) ;
192+ } , [ scrollToBottom ] ) ;
193+
194+
157195 //WebsocketMessageType.AGENT_MESSAGE
158196 useEffect ( ( ) => {
159197 const unsubscribe = webSocketService . on ( WebsocketMessageType . AGENT_MESSAGE , ( agentMessage : any ) => {
@@ -325,24 +363,39 @@ const PlanPage: React.FC = () => {
325363 return ;
326364 }
327365 setInput ( "" ) ;
328- setRAIError ( null ) ; // Clear any previous RAI errors
366+
329367 if ( ! planData ?. plan ) return ;
330- setSubmitting ( true ) ;
368+ setSubmittingChatDisableInput ( true ) ;
331369 let id = showToast ( "Submitting clarification" , "progress" ) ;
332370
333371 try {
334372 // Use legacy method for non-v3 backends
335- await PlanDataService . submitClarification (
336- planData . plan . id ,
337- planData . plan . session_id ,
338- chatInput
339- ) ;
340-
373+ const response = await PlanDataService . submitClarification ( {
374+ request_id : clarificationMessage ?. request_id || "" ,
375+ answer : chatInput ,
376+ plan_id : planData ?. plan . id ,
377+ m_plan_id : planApprovalRequest ?. id || ""
378+ } ) ;
341379
380+ console . log ( "Clarification submitted successfully:" , response ) ;
342381 setInput ( "" ) ;
343382 dismissToast ( id ) ;
344383 showToast ( "Clarification submitted successfully" , "success" ) ;
345- await loadPlanData ( false ) ;
384+ setClarificationMessage ( null ) ;
385+ const agentMessageData = {
386+ agent : 'You' ,
387+ agent_type : AgentMessageType . HUMAN_AGENT ,
388+ timestamp : Date . now ( ) ,
389+ steps : [ ] , // intentionally always empty
390+ next_steps : [ ] , // intentionally always empty
391+ raw_content : chatInput || '' ,
392+ raw_data : chatInput || '' ,
393+ } as AgentMessageData ;
394+
395+ setAgentMessages ( prev => [ ...prev , agentMessageData ] ) ;
396+ setSubmittingChatDisableInput ( true ) ;
397+ scrollToBottom ( ) ;
398+
346399 } catch ( error : any ) {
347400 dismissToast ( id ) ;
348401
@@ -373,7 +426,7 @@ const PlanPage: React.FC = () => {
373426 ] ,
374427 user_action : 'Please modify your input and try again.'
375428 } ;
376- setRAIError ( raiErrorData ) ;
429+
377430 } else {
378431 // Handle other types of errors
379432 showToast (
@@ -385,7 +438,7 @@ const PlanPage: React.FC = () => {
385438 ) ;
386439 }
387440 } finally {
388- setSubmitting ( false ) ;
441+ setSubmittingChatDisableInput ( false ) ;
389442 }
390443 } ,
391444 [ planData ?. plan , showToast , dismissToast , loadPlanData ]
0 commit comments