@@ -11,7 +11,7 @@ export interface PalicoContextProps {
1111 loading : boolean
1212 deploymentId : number
1313 conversationHistory : ChatMessage [ ]
14- sendMessage : ( message : string ) => Promise < void >
14+ sendMessage : ( message : string , context : Record < string , unknown > ) => Promise < void >
1515}
1616
1717export const PalicoContext = React . createContext < PalicoContextProps > ( {
@@ -29,6 +29,11 @@ export interface PalicoContextProviderProps {
2929 children ?: any
3030}
3131
32+ export interface PendingMessagePayload {
33+ message : string
34+ context : Record < string , unknown >
35+ }
36+
3237export const PalicoContextProvider : React . FC < PalicoContextProviderProps > = ( {
3338 deploymentId,
3439 tools,
@@ -38,7 +43,7 @@ export const PalicoContextProvider: React.FC<PalicoContextProviderProps> = ({
3843 const [ conversationId , setConversationId ] = React . useState < number > ( )
3944 const [ messageHistory , setMessageHistory ] = React . useState < ChatMessage [ ] > ( [ ] )
4045 // TODO: Convert to step-based pending message (create user reply -> handle user reply -> handle tool call -> end)
41- const [ pendingMessage , setPendingMessage ] = React . useState < string > ( )
46+ const [ pendingMessage , setPendingMessage ] = React . useState < PendingMessagePayload > ( )
4247
4348 useEffect ( ( ) => {
4449 const callTool = async ( tool : ChatCompletionMessageToolCall ) : Promise < ToolExecutionMessage > => {
@@ -81,27 +86,26 @@ export const PalicoContextProvider: React.FC<PalicoContextProviderProps> = ({
8186 }
8287
8388 const handlePendingMessage = async ( ) : Promise < void > => {
84- console . log ( 'Handle pending message' )
8589 if ( ! pendingMessage ) return
8690 try {
8791 setPendingMessage ( undefined )
8892 if ( ! conversationId ) {
8993 const response = await AgentAPI . newConversation ( {
9094 deploymentId,
91- message : pendingMessage
95+ message : pendingMessage . message ,
96+ context : pendingMessage . context
9297 } )
9398 setConversationId ( response . conversationId )
9499 await handleAgentResponse ( response , response . conversationId )
95100 } else {
96101 const response = await AgentAPI . replyAsUser ( {
97102 deploymentId,
98103 conversationId,
99- message : pendingMessage
104+ message : pendingMessage . message ,
105+ context : pendingMessage . context
100106 } )
101107 await handleAgentResponse ( response , conversationId )
102108 }
103- } catch ( e ) {
104- console . log ( e )
105109 } finally {
106110 setLoading ( false )
107111 }
@@ -110,9 +114,12 @@ export const PalicoContextProvider: React.FC<PalicoContextProviderProps> = ({
110114 void handlePendingMessage ( )
111115 } , [ conversationId , deploymentId , messageHistory , pendingMessage , tools ] )
112116
113- const sendMessage = async ( message : string ) : Promise < void > => {
117+ const sendMessage = async ( message : string , context : Record < string , unknown > ) : Promise < void > => {
114118 setLoading ( true )
115- setPendingMessage ( message )
119+ setPendingMessage ( {
120+ message,
121+ context
122+ } )
116123 setMessageHistory ( [
117124 ...messageHistory ,
118125 {
0 commit comments