{"version":3,"file":"run-create-events.cjs","names":["z","PromptTemplate","CREATE_EVENT_PROMPT","getTimezoneOffsetInHours"],"sources":["../../../../src/tools/google_calendar/commands/run-create-events.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { calendar_v3 } from \"googleapis\";\nimport type { GaxiosResponse } from \"googleapis-common\";\nimport { PromptTemplate } from \"@langchain/core/prompts\";\nimport { CallbackManagerForToolRun } from \"@langchain/core/callbacks/manager\";\nimport { BaseLanguageModel } from \"@langchain/core/language_models/base\";\nimport { CREATE_EVENT_PROMPT } from \"../prompts/index.js\";\nimport { getTimezoneOffsetInHours } from \"../utils/get-timezone-offset-in-hours.js\";\n\nconst eventSchema = z.object({\n  event_summary: z.string(),\n  event_start_time: z.string(),\n  event_end_time: z.string(),\n  event_location: z.string().optional(),\n  event_description: z.string().optional(),\n  user_timezone: z.string(),\n});\n\ntype CreateEventParams = {\n  eventSummary: string;\n  eventStartTime: string;\n  eventEndTime: string;\n  userTimezone: string;\n  eventLocation?: string;\n  eventDescription?: string;\n};\n\nconst createEvent = async (\n  {\n    eventSummary,\n    eventStartTime,\n    eventEndTime,\n    userTimezone,\n    eventLocation = \"\",\n    eventDescription = \"\",\n  }: CreateEventParams,\n  calendarId: string,\n  calendar: calendar_v3.Calendar\n) => {\n  const event = {\n    summary: eventSummary,\n    location: eventLocation,\n    description: eventDescription,\n    start: {\n      dateTime: eventStartTime,\n      timeZone: userTimezone,\n    },\n    end: {\n      dateTime: eventEndTime,\n      timeZone: userTimezone,\n    },\n  };\n\n  try {\n    const createdEvent = await calendar.events.insert({\n      calendarId,\n      requestBody: event,\n    });\n\n    return createdEvent;\n  } catch (error) {\n    return {\n      error: `An error occurred: ${error}`,\n    };\n  }\n};\n\ntype RunCreateEventParams = {\n  calendarId: string;\n  calendar: calendar_v3.Calendar;\n  model: BaseLanguageModel;\n};\n\nconst runCreateEvent = async (\n  query: string,\n  { calendarId, calendar, model }: RunCreateEventParams,\n  runManager?: CallbackManagerForToolRun\n) => {\n  const prompt = new PromptTemplate({\n    template: CREATE_EVENT_PROMPT,\n    inputVariables: [\"date\", \"query\", \"u_timezone\", \"dayName\"],\n  });\n  if (!model?.withStructuredOutput) {\n    throw new Error(\"Model does not support structured output\");\n  }\n  const createEventChain = prompt.pipe(model.withStructuredOutput(eventSchema));\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 createEventChain.invoke(\n    {\n      query,\n      date,\n      u_timezone,\n      dayName,\n    },\n    runManager?.getChild()\n  );\n\n  const [\n    eventSummary,\n    eventStartTime,\n    eventEndTime,\n    eventLocation,\n    eventDescription,\n    userTimezone,\n  ] = Object.values(output);\n\n  const event = await createEvent(\n    {\n      eventSummary,\n      eventStartTime,\n      eventEndTime,\n      userTimezone,\n      eventLocation,\n      eventDescription,\n    } as CreateEventParams,\n    calendarId,\n    calendar\n  );\n\n  if (!(event as { error: string }).error) {\n    return `Event created successfully, details: event ${\n      (event as GaxiosResponse<calendar_v3.Schema$Event>).data.htmlLink\n    }`;\n  }\n\n  return `An error occurred creating the event: ${\n    (event as { error: string }).error\n  }`;\n};\n\nexport { runCreateEvent };\n"],"mappings":";;;;;;AASA,MAAM,cAAcA,OAAAA,EAAE,OAAO;CAC3B,eAAeA,OAAAA,EAAE,QAAQ;CACzB,kBAAkBA,OAAAA,EAAE,QAAQ;CAC5B,gBAAgBA,OAAAA,EAAE,QAAQ;CAC1B,gBAAgBA,OAAAA,EAAE,QAAQ,CAAC,UAAU;CACrC,mBAAmBA,OAAAA,EAAE,QAAQ,CAAC,UAAU;CACxC,eAAeA,OAAAA,EAAE,QAAQ;CAC1B,CAAC;AAWF,MAAM,cAAc,OAClB,EACE,cACA,gBACA,cACA,cACA,gBAAgB,IAChB,mBAAmB,MAErB,YACA,aACG;CACH,MAAM,QAAQ;EACZ,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;GACL,UAAU;GACV,UAAU;GACX;EACD,KAAK;GACH,UAAU;GACV,UAAU;GACX;EACF;AAED,KAAI;AAMF,SALqB,MAAM,SAAS,OAAO,OAAO;GAChD;GACA,aAAa;GACd,CAAC;UAGK,OAAO;AACd,SAAO,EACL,OAAO,sBAAsB,SAC9B;;;AAUL,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;AACF,KAAI,CAAC,OAAO,qBACV,OAAM,IAAI,MAAM,2CAA2C;CAE7D,MAAM,mBAAmB,OAAO,KAAK,MAAM,qBAAqB,YAAY,CAAC;CAE7E,MAAM,wBAAO,IAAI,MAAM,EAAC,aAAa;CACrC,MAAM,aAAaC,qCAAAA,0BAA0B;CAC7C,MAAM,2BAAU,IAAI,MAAM,EAAC,eAAe,SAAS,EAAE,SAAS,QAAQ,CAAC;CAEvE,MAAM,SAAS,MAAM,iBAAiB,OACpC;EACE;EACA;EACA;EACA;EACD,EACD,YAAY,UAAU,CACvB;CAED,MAAM,CACJ,cACA,gBACA,cACA,eACA,kBACA,gBACE,OAAO,OAAO,OAAO;CAEzB,MAAM,QAAQ,MAAM,YAClB;EACE;EACA;EACA;EACA;EACA;EACA;EACD,EACD,YACA,SACD;AAED,KAAI,CAAE,MAA4B,MAChC,QAAO,8CACJ,MAAmD,KAAK;AAI7D,QAAO,yCACJ,MAA4B"}