diff --git a/rollup.config.js b/rollup.config.js index 65a8348..f74580b 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -26,7 +26,11 @@ export default [ resolve(), commonjs(), typescript({ tsconfig: './tsconfig.json' }), - terser() + terser({ + compress: { + drop_console: true + } + }) ] }, { diff --git a/src/agent_api/index.ts b/src/agent_api/index.ts index 5640e53..2feb0a6 100644 --- a/src/agent_api/index.ts +++ b/src/agent_api/index.ts @@ -23,12 +23,14 @@ export interface AgentAPIParams { export interface NewConversationParams { deploymentId: number message: string + context?: Record } export interface ReplyAsUserParams { deploymentId: number conversationId: number message: string + context?: Record } export interface ToolExecutionMessage { diff --git a/src/context/application_context.tsx b/src/context/application_context.tsx index 63ed235..7c61e2b 100644 --- a/src/context/application_context.tsx +++ b/src/context/application_context.tsx @@ -11,7 +11,7 @@ export interface PalicoContextProps { loading: boolean deploymentId: number conversationHistory: ChatMessage[] - sendMessage: (message: string) => Promise + sendMessage: (message: string, context: Record) => Promise } export const PalicoContext = React.createContext({ @@ -29,6 +29,11 @@ export interface PalicoContextProviderProps { children?: any } +export interface PendingMessagePayload { + message: string + context: Record +} + export const PalicoContextProvider: React.FC = ({ deploymentId, tools, @@ -38,7 +43,7 @@ export const PalicoContextProvider: React.FC = ({ const [conversationId, setConversationId] = React.useState() const [messageHistory, setMessageHistory] = React.useState([]) // TODO: Convert to step-based pending message (create user reply -> handle user reply -> handle tool call -> end) - const [pendingMessage, setPendingMessage] = React.useState() + const [pendingMessage, setPendingMessage] = React.useState() useEffect(() => { const callTool = async (tool: ChatCompletionMessageToolCall): Promise => { @@ -81,14 +86,14 @@ export const PalicoContextProvider: React.FC = ({ } const handlePendingMessage = async (): Promise => { - console.log('Handle pending message') if (!pendingMessage) return try { setPendingMessage(undefined) if (!conversationId) { const response = await AgentAPI.newConversation({ deploymentId, - message: pendingMessage + message: pendingMessage.message, + context: pendingMessage.context }) setConversationId(response.conversationId) await handleAgentResponse(response, response.conversationId) @@ -96,12 +101,11 @@ export const PalicoContextProvider: React.FC = ({ const response = await AgentAPI.replyAsUser({ deploymentId, conversationId, - message: pendingMessage + message: pendingMessage.message, + context: pendingMessage.context }) await handleAgentResponse(response, conversationId) } - } catch (e) { - console.log(e) } finally { setLoading(false) } @@ -110,9 +114,12 @@ export const PalicoContextProvider: React.FC = ({ void handlePendingMessage() }, [conversationId, deploymentId, messageHistory, pendingMessage, tools]) - const sendMessage = async (message: string): Promise => { + const sendMessage = async (message: string, context: Record): Promise => { setLoading(true) - setPendingMessage(message) + setPendingMessage({ + message, + context + }) setMessageHistory([ ...messageHistory, {