Spaces:
Build error
Build error
| import { delay, WebSocketHandler, ws } from "msw"; | |
| import { toSocketIo } from "@mswjs/socket.io-binding"; | |
| import { AgentState } from "#/types/agent-state"; | |
| import { InitConfig } from "#/types/core/variances"; | |
| import { SESSION_HISTORY } from "./session-history.mock"; | |
| import { | |
| generateAgentStateChangeObservation, | |
| emitMessages, | |
| emitAssistantMessage, | |
| } from "./mock-ws-helpers"; | |
| const isInitConfig = (data: unknown): data is InitConfig => | |
| typeof data === "object" && | |
| data !== null && | |
| "action" in data && | |
| data.action === "initialize"; | |
| const chat = ws.link(`ws://${window?.location.host}/socket.io`); | |
| export const handlers: WebSocketHandler[] = [ | |
| chat.addEventListener("connection", (connection) => { | |
| const io = toSocketIo(connection); | |
| // @ts-expect-error - accessing private property for testing purposes | |
| const { url }: { url: URL } = io.client.connection; | |
| const conversationId = url.searchParams.get("conversation_id"); | |
| io.client.emit("connect"); | |
| if (conversationId) { | |
| emitMessages(io, SESSION_HISTORY["1"]); | |
| io.client.emit( | |
| "oh_event", | |
| generateAgentStateChangeObservation(AgentState.AWAITING_USER_INPUT), | |
| ); | |
| } | |
| io.client.on("oh_user_action", async (_, data) => { | |
| if (isInitConfig(data)) { | |
| io.client.emit( | |
| "oh_event", | |
| generateAgentStateChangeObservation(AgentState.INIT), | |
| ); | |
| } else { | |
| io.client.emit( | |
| "oh_event", | |
| generateAgentStateChangeObservation(AgentState.RUNNING), | |
| ); | |
| await delay(2500); | |
| emitAssistantMessage(io, "Hello!"); | |
| io.client.emit( | |
| "oh_event", | |
| generateAgentStateChangeObservation(AgentState.AWAITING_USER_INPUT), | |
| ); | |
| } | |
| }); | |
| }), | |
| ]; | |