UNPKG

@langchain/community

Version:
1 lines 4.93 kB
{"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"}