Spaces:
Build error
Build error
| import { trackError } from "#/utils/error-handler"; | |
| import { appendSecurityAnalyzerInput } from "#/state/security-analyzer-slice"; | |
| import { setCurStatusMessage } from "#/state/status-slice"; | |
| import { setMetrics } from "#/state/metrics-slice"; | |
| import store from "#/store"; | |
| import ActionType from "#/types/action-type"; | |
| import { | |
| ActionMessage, | |
| ObservationMessage, | |
| StatusMessage, | |
| } from "#/types/message"; | |
| import { handleObservationMessage } from "./observations"; | |
| import { appendInput } from "#/state/command-slice"; | |
| import { queryClient } from "#/query-client-config"; | |
| export function handleActionMessage(message: ActionMessage) { | |
| if (message.args?.hidden) { | |
| return; | |
| } | |
| // Update metrics if available | |
| if (message.llm_metrics) { | |
| const metrics = { | |
| cost: message.llm_metrics?.accumulated_cost ?? null, | |
| usage: message.llm_metrics?.accumulated_token_usage ?? null, | |
| }; | |
| store.dispatch(setMetrics(metrics)); | |
| } | |
| if (message.action === ActionType.RUN) { | |
| store.dispatch(appendInput(message.args.command)); | |
| } | |
| if ("args" in message && "security_risk" in message.args) { | |
| store.dispatch(appendSecurityAnalyzerInput(message)); | |
| } | |
| } | |
| export function handleStatusMessage(message: StatusMessage) { | |
| // Info message with conversation_title indicates new title for conversation | |
| if (message.type === "info" && message.conversation_title) { | |
| const conversationId = message.message; | |
| // Invalidate the conversation query to trigger a refetch with the new title | |
| queryClient.invalidateQueries({ | |
| queryKey: ["user", "conversation", conversationId], | |
| }); | |
| } else if (message.type === "info") { | |
| store.dispatch( | |
| setCurStatusMessage({ | |
| ...message, | |
| }), | |
| ); | |
| } else if (message.type === "error") { | |
| trackError({ | |
| message: message.message, | |
| source: "chat", | |
| metadata: { msgId: message.id }, | |
| }); | |
| } | |
| } | |
| export function handleAssistantMessage(message: Record<string, unknown>) { | |
| if (message.action) { | |
| handleActionMessage(message as unknown as ActionMessage); | |
| } else if (message.observation) { | |
| handleObservationMessage(message as unknown as ObservationMessage); | |
| } else if (message.status_update) { | |
| handleStatusMessage(message as unknown as StatusMessage); | |
| } | |
| } | |