@langchain/community
Version:
Third-party integrations for LangChain.js
1 lines • 5.07 kB
Source Map (JSON)
{"version":3,"file":"run-delete-events.cjs","names":["z","calendarId: string","eventId: string","calendar: calendar_v3.Calendar","query: string","runManager?: CallbackManagerForToolRun","PromptTemplate","DELETE_EVENT_PROMPT","getTimezoneOffsetInHours"],"sources":["../../../../src/tools/google_calendar/commands/run-delete-events.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { calendar_v3 } from \"googleapis\";\nimport { PromptTemplate } from \"@langchain/core/prompts\";\nimport { CallbackManagerForToolRun } from \"@langchain/core/callbacks/manager\";\nimport { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport { DELETE_EVENT_PROMPT } from \"../prompts/index.js\";\nimport { getTimezoneOffsetInHours } from \"../utils/get-timezone-offset-in-hours.js\";\n\nconst deleteEventSchema = z.object({\n event_id: z.string().optional(),\n event_summary: z.string().optional(),\n time_min: z.string().optional(),\n time_max: z.string().optional(),\n user_timezone: z.string(),\n});\n\nconst deleteEvent = async (\n calendarId: string,\n eventId: string,\n calendar: calendar_v3.Calendar\n) => {\n try {\n await calendar.events.delete({\n calendarId,\n eventId,\n });\n\n return \"Event deleted successfully\";\n } catch (error) {\n return `An error occurred: ${error}`;\n }\n};\n\ntype RunDeleteEventParams = {\n calendarId: string;\n calendar: calendar_v3.Calendar;\n model: BaseLanguageModel;\n};\n\nconst runDeleteEvent = async (\n query: string,\n { calendarId, calendar, model }: RunDeleteEventParams,\n runManager?: CallbackManagerForToolRun\n) => {\n const prompt = new PromptTemplate({\n template: DELETE_EVENT_PROMPT,\n inputVariables: [\"date\", \"query\", \"u_timezone\", \"dayName\"],\n });\n\n if (!model?.withStructuredOutput) {\n throw new Error(\"Model does not support structured output\");\n }\n\n const deleteEventChain = prompt.pipe(\n model.withStructuredOutput(deleteEventSchema)\n );\n\n const date = new Date().toISOString();\n const u_timezone = getTimezoneOffsetInHours();\n const dayName = new Date().toLocaleString(\"en-us\", { weekday: \"long\" });\n\n const output = await deleteEventChain.invoke(\n {\n query,\n date,\n u_timezone,\n dayName,\n },\n runManager?.getChild()\n );\n\n const { event_id, event_summary, time_min, time_max } = output;\n\n if (event_id) {\n return deleteEvent(calendarId, event_id, calendar);\n }\n\n if (event_summary || (time_min && time_max)) {\n try {\n const response = await calendar.events.list({\n calendarId,\n timeMin: time_min,\n timeMax: time_max,\n q: event_summary,\n singleEvents: true,\n });\n\n const items = response.data.items || [];\n\n if (items.length === 0) {\n return \"No events found matching the description.\";\n }\n\n if (items.length === 1 && items[0].id) {\n return deleteEvent(calendarId, items[0].id, calendar);\n }\n\n if (items.length > 1) {\n const eventsList = items\n .map(\n (event) =>\n `- ${event.summary} (${\n event.start?.dateTime || event.start?.date\n })`\n )\n .join(\"\\n\");\n return `Multiple events found. Please be more specific:\\n${eventsList}`;\n }\n } catch (error) {\n return `An error occurred while searching for the event: ${error}`;\n }\n }\n\n return \"Could not extract event details to delete. Please provide an event ID or a description with time.\";\n};\n\nexport { runDeleteEvent };\n"],"mappings":";;;;;;;AAQA,MAAM,oBAAoBA,SAAE,OAAO;CACjC,UAAUA,SAAE,QAAQ,CAAC,UAAU;CAC/B,eAAeA,SAAE,QAAQ,CAAC,UAAU;CACpC,UAAUA,SAAE,QAAQ,CAAC,UAAU;CAC/B,UAAUA,SAAE,QAAQ,CAAC,UAAU;CAC/B,eAAeA,SAAE,QAAQ;AAC1B,EAAC;AAEF,MAAM,cAAc,OAClBC,YACAC,SACAC,aACG;AACH,KAAI;EACF,MAAM,SAAS,OAAO,OAAO;GAC3B;GACA;EACD,EAAC;AAEF,SAAO;CACR,SAAQ,OAAO;AACd,SAAO,CAAC,mBAAmB,EAAE,OAAO;CACrC;AACF;AAQD,MAAM,iBAAiB,OACrBC,OACA,EAAE,YAAY,UAAU,OAA6B,EACrDC,eACG;CACH,MAAM,SAAS,IAAIC,wCAAe;EAChC,UAAUC;EACV,gBAAgB;GAAC;GAAQ;GAAS;GAAc;EAAU;CAC3D;AAED,KAAI,CAAC,OAAO,qBACV,OAAM,IAAI,MAAM;CAGlB,MAAM,mBAAmB,OAAO,KAC9B,MAAM,qBAAqB,kBAAkB,CAC9C;CAED,MAAM,wBAAO,IAAI,QAAO,aAAa;CACrC,MAAM,aAAaC,+DAA0B;CAC7C,MAAM,2BAAU,IAAI,QAAO,eAAe,SAAS,EAAE,SAAS,OAAQ,EAAC;CAEvE,MAAM,SAAS,MAAM,iBAAiB,OACpC;EACE;EACA;EACA;EACA;CACD,GACD,YAAY,UAAU,CACvB;CAED,MAAM,EAAE,UAAU,eAAe,UAAU,UAAU,GAAG;AAExD,KAAI,SACF,QAAO,YAAY,YAAY,UAAU,SAAS;AAGpD,KAAI,iBAAkB,YAAY,SAChC,KAAI;EACF,MAAM,WAAW,MAAM,SAAS,OAAO,KAAK;GAC1C;GACA,SAAS;GACT,SAAS;GACT,GAAG;GACH,cAAc;EACf,EAAC;EAEF,MAAM,QAAQ,SAAS,KAAK,SAAS,CAAE;AAEvC,MAAI,MAAM,WAAW,EACnB,QAAO;AAGT,MAAI,MAAM,WAAW,KAAK,MAAM,GAAG,GACjC,QAAO,YAAY,YAAY,MAAM,GAAG,IAAI,SAAS;AAGvD,MAAI,MAAM,SAAS,GAAG;GACpB,MAAM,aAAa,MAChB,IACC,CAAC,UACC,CAAC,EAAE,EAAE,MAAM,QAAQ,EAAE,EACnB,MAAM,OAAO,YAAY,MAAM,OAAO,KACvC,CAAC,CAAC,CACN,CACA,KAAK,KAAK;AACb,UAAO,CAAC,iDAAiD,EAAE,YAAY;EACxE;CACF,SAAQ,OAAO;AACd,SAAO,CAAC,iDAAiD,EAAE,OAAO;CACnE;AAGH,QAAO;AACR"}