{"version":3,"file":"run-delete-events.cjs","names":["z","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,OAAAA,EAAE,OAAO;CACjC,UAAUA,OAAAA,EAAE,QAAQ,CAAC,UAAU;CAC/B,eAAeA,OAAAA,EAAE,QAAQ,CAAC,UAAU;CACpC,UAAUA,OAAAA,EAAE,QAAQ,CAAC,UAAU;CAC/B,UAAUA,OAAAA,EAAE,QAAQ,CAAC,UAAU;CAC/B,eAAeA,OAAAA,EAAE,QAAQ;CAC1B,CAAC;AAEF,MAAM,cAAc,OAClB,YACA,SACA,aACG;AACH,KAAI;AACF,QAAM,SAAS,OAAO,OAAO;GAC3B;GACA;GACD,CAAC;AAEF,SAAO;UACA,OAAO;AACd,SAAO,sBAAsB;;;AAUjC,MAAM,iBAAiB,OACrB,OACA,EAAE,YAAY,UAAU,SACxB,eACG;CACH,MAAM,SAAS,IAAIC,wBAAAA,eAAe;EAChC,UAAUC,4BAAAA;EACV,gBAAgB;GAAC;GAAQ;GAAS;GAAc;GAAU;EAC3D,CAAC;AAEF,KAAI,CAAC,OAAO,qBACV,OAAM,IAAI,MAAM,2CAA2C;CAG7D,MAAM,mBAAmB,OAAO,KAC9B,MAAM,qBAAqB,kBAAkB,CAC9C;CAED,MAAM,wBAAO,IAAI,MAAM,EAAC,aAAa;CACrC,MAAM,aAAaC,qCAAAA,0BAA0B;CAC7C,MAAM,2BAAU,IAAI,MAAM,EAAC,eAAe,SAAS,EAAE,SAAS,QAAQ,CAAC;CAYvE,MAAM,EAAE,UAAU,eAAe,UAAU,aAV5B,MAAM,iBAAiB,OACpC;EACE;EACA;EACA;EACA;EACD,EACD,YAAY,UAAU,CACvB;AAID,KAAI,SACF,QAAO,YAAY,YAAY,UAAU,SAAS;AAGpD,KAAI,iBAAkB,YAAY,SAChC,KAAI;EASF,MAAM,SARW,MAAM,SAAS,OAAO,KAAK;GAC1C;GACA,SAAS;GACT,SAAS;GACT,GAAG;GACH,cAAc;GACf,CAAC,EAEqB,KAAK,SAAS,EAAE;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,EASjB,QAAO,oDARY,MAChB,KACE,UACC,KAAK,MAAM,QAAQ,IACjB,MAAM,OAAO,YAAY,MAAM,OAAO,KACvC,GACJ,CACA,KAAK,KAAK;UAGR,OAAO;AACd,SAAO,oDAAoD;;AAI/D,QAAO"}