import { GraphNode } from "@langchain/langgraph"; import { MessagesState, ProposedTriggerEventArray } from "../state"; import { logger } from "../utils/logger"; import { jsonrepair } from 'jsonrepair' export const verificationSetup: GraphNode = async (state) => { //this is kinda doing two things, but having two nodes for it seems overkill if (state.proposedTriggerEvent == undefined) { logger.warn("No trigger events in memory, parsing") let genResponse = state.messages.at(-1)?.content.toString() ?? ""; const repaired = jsonrepair(genResponse); const parsed = ProposedTriggerEventArray.parse(JSON.parse(repaired)); for (let i = 0; i < parsed.length; i++) { const search = parsed[i].SearchQuery // const data = await queryScraper(search); // const output = await rankAndDisplayData(data, search); // parsed[i].context = output; parsed[i].context = "NONE" } return { proposedTriggerEvent: parsed, proposedTriggerEventIndex: 0 }; } else { logger.info("Trigger event index %s", state.proposedTriggerEventIndex+1) return { proposedTriggerEvent: state.proposedTriggerEvent, proposedTriggerEventIndex: state.proposedTriggerEventIndex+1 }; } };