@langchain/community
Version:
Third-party integrations for LangChain.js
1 lines • 5.05 kB
Source Map (JSON)
{"version":3,"file":"run-create-events.cjs","names":["z","calendarId: string","calendar: calendar_v3.Calendar","query: string","runManager?: CallbackManagerForToolRun","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,SAAE,OAAO;CAC3B,eAAeA,SAAE,QAAQ;CACzB,kBAAkBA,SAAE,QAAQ;CAC5B,gBAAgBA,SAAE,QAAQ;CAC1B,gBAAgBA,SAAE,QAAQ,CAAC,UAAU;CACrC,mBAAmBA,SAAE,QAAQ,CAAC,UAAU;CACxC,eAAeA,SAAE,QAAQ;AAC1B,EAAC;AAWF,MAAM,cAAc,OAClB,EACE,cACA,gBACA,cACA,cACA,gBAAgB,IAChB,mBAAmB,IACD,EACpBC,YACAC,aACG;CACH,MAAM,QAAQ;EACZ,SAAS;EACT,UAAU;EACV,aAAa;EACb,OAAO;GACL,UAAU;GACV,UAAU;EACX;EACD,KAAK;GACH,UAAU;GACV,UAAU;EACX;CACF;AAED,KAAI;EACF,MAAM,eAAe,MAAM,SAAS,OAAO,OAAO;GAChD;GACA,aAAa;EACd,EAAC;AAEF,SAAO;CACR,SAAQ,OAAO;AACd,SAAO,EACL,OAAO,CAAC,mBAAmB,EAAE,OAAO,CACrC;CACF;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;AACD,KAAI,CAAC,OAAO,qBACV,OAAM,IAAI,MAAM;CAElB,MAAM,mBAAmB,OAAO,KAAK,MAAM,qBAAqB,YAAY,CAAC;CAE7E,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,CACJ,cACA,gBACA,cACA,eACA,kBACA,aACD,GAAG,OAAO,OAAO,OAAO;CAEzB,MAAM,QAAQ,MAAM,YAClB;EACE;EACA;EACA;EACA;EACA;EACA;CACD,GACD,YACA,SACD;AAED,KAAI,CAAE,MAA4B,MAChC,QAAO,CAAC,2CAA2C,EAChD,MAAmD,KAAK,UACzD;AAGJ,QAAO,CAAC,sCAAsC,EAC3C,MAA4B,OAC7B;AACH"}