UNPKG

@langchain/community

Version:
1 lines • 3.13 kB
{"version":3,"file":"create_draft.cjs","names":["z","GmailBaseTool","CREATE_DRAFT_DESCRIPTION","fields?: GmailBaseToolParams","message: string","to: string[]","subject: string","cc?: string[]","bcc?: string[]","arg: InferInteropZodOutput<CreateDraftSchema>"],"sources":["../../../src/tools/gmail/create_draft.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { InferInteropZodOutput } from \"@langchain/core/utils/types\";\nimport { GmailBaseTool, GmailBaseToolParams } from \"./base.js\";\nimport { CREATE_DRAFT_DESCRIPTION } from \"./descriptions.js\";\n\nconst createDraftSchema = z.object({\n message: z.string(),\n to: z.array(z.string()),\n subject: z.string(),\n cc: z.array(z.string()).optional(),\n bcc: z.array(z.string()).optional(),\n});\nexport type CreateDraftSchema = z.infer<typeof createDraftSchema>;\n\nexport class GmailCreateDraft extends GmailBaseTool {\n name = \"create_gmail_draft\";\n\n schema = createDraftSchema;\n\n description = CREATE_DRAFT_DESCRIPTION;\n\n constructor(fields?: GmailBaseToolParams) {\n super(fields);\n }\n\n private prepareDraftMessage(\n message: string,\n to: string[],\n subject: string,\n cc?: string[],\n bcc?: string[]\n ) {\n const draftMessage = {\n message: {\n raw: \"\",\n },\n };\n\n const email = [\n `To: ${to.join(\", \")}`,\n `Subject: ${subject}`,\n cc ? `Cc: ${cc.join(\", \")}` : \"\",\n bcc ? `Bcc: ${bcc.join(\", \")}` : \"\",\n \"\",\n message,\n ].join(\"\\n\");\n\n draftMessage.message.raw = Buffer.from(email).toString(\"base64url\");\n\n return draftMessage;\n }\n\n async _call(arg: InferInteropZodOutput<CreateDraftSchema>) {\n const { message, to, subject, cc, bcc } = arg;\n const create_message = this.prepareDraftMessage(\n message,\n to,\n subject,\n cc,\n bcc\n );\n\n const gmail = await this.getGmailClient();\n\n const response = await gmail.users.drafts.create({\n userId: \"me\",\n requestBody: create_message,\n });\n\n return `Draft created. Draft Id: ${response.data.id}`;\n }\n}\n"],"mappings":";;;;;;AAKA,MAAM,oBAAoBA,SAAE,OAAO;CACjC,SAASA,SAAE,QAAQ;CACnB,IAAIA,SAAE,MAAMA,SAAE,QAAQ,CAAC;CACvB,SAASA,SAAE,QAAQ;CACnB,IAAIA,SAAE,MAAMA,SAAE,QAAQ,CAAC,CAAC,UAAU;CAClC,KAAKA,SAAE,MAAMA,SAAE,QAAQ,CAAC,CAAC,UAAU;AACpC,EAAC;AAGF,IAAa,mBAAb,cAAsCC,2BAAc;CAClD,OAAO;CAEP,SAAS;CAET,cAAcC;CAEd,YAAYC,QAA8B;EACxC,MAAM,OAAO;CACd;CAED,AAAQ,oBACNC,SACAC,IACAC,SACAC,IACAC,KACA;EACA,MAAM,eAAe,EACnB,SAAS,EACP,KAAK,GACN,EACF;EAED,MAAM,QAAQ;GACZ,CAAC,IAAI,EAAE,GAAG,KAAK,KAAK,EAAE;GACtB,CAAC,SAAS,EAAE,SAAS;GACrB,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,KAAK,EAAE,GAAG;GAC9B,MAAM,CAAC,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,GAAG;GACjC;GACA;EACD,EAAC,KAAK,KAAK;EAEZ,aAAa,QAAQ,MAAM,OAAO,KAAK,MAAM,CAAC,SAAS,YAAY;AAEnE,SAAO;CACR;CAED,MAAM,MAAMC,KAA+C;EACzD,MAAM,EAAE,SAAS,IAAI,SAAS,IAAI,KAAK,GAAG;EAC1C,MAAM,iBAAiB,KAAK,oBAC1B,SACA,IACA,SACA,IACA,IACD;EAED,MAAM,QAAQ,MAAM,KAAK,gBAAgB;EAEzC,MAAM,WAAW,MAAM,MAAM,MAAM,OAAO,OAAO;GAC/C,QAAQ;GACR,aAAa;EACd,EAAC;AAEF,SAAO,CAAC,yBAAyB,EAAE,SAAS,KAAK,IAAI;CACtD;AACF"}