File size: 1,943 Bytes
246d201 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
import { toSocketIo } from "@mswjs/socket.io-binding";
import { AgentState } from "#/types/agent-state";
import {
AssistantMessageAction,
UserMessageAction,
} from "#/types/core/actions";
import { AgentStateChangeObservation } from "#/types/core/observations";
import { MockSessionMessaage } from "./session-history.mock";
export const generateAgentStateChangeObservation = (
state: AgentState,
): AgentStateChangeObservation => ({
id: 1,
cause: 0,
message: "AGENT_STATE_CHANGE_MESSAGE",
source: "agent",
timestamp: new Date().toISOString(),
observation: "agent_state_changed",
content: "AGENT_STATE_CHANGE_MESSAGE",
extras: { agent_state: state },
});
export const generateAssistantMessageAction = (
message: string,
): AssistantMessageAction => ({
id: 2,
message: "USER_MESSAGE",
source: "agent",
timestamp: new Date().toISOString(),
action: "message",
args: {
thought: message,
image_urls: [],
wait_for_response: false,
},
});
export const generateUserMessageAction = (
message: string,
): UserMessageAction => ({
id: 3,
message: "USER_MESSAGE",
source: "user",
timestamp: new Date().toISOString(),
action: "message",
args: {
content: message,
image_urls: [],
},
});
export const emitAssistantMessage = (
io: ReturnType<typeof toSocketIo>,
message: string,
) => io.client.emit("oh_event", generateAssistantMessageAction(message));
export const emitUserMessage = (
io: ReturnType<typeof toSocketIo>,
message: string,
) => io.client.emit("oh_event", generateUserMessageAction(message));
export const emitMessages = (
io: ReturnType<typeof toSocketIo>,
messages: MockSessionMessaage[],
) => {
messages.forEach(({ source, message }) => {
if (source === "assistant") {
emitAssistantMessage(io, message);
} else {
emitUserMessage(io, message);
}
});
};
|