UNPKG

@langchain/community

Version:
1 lines 3.58 kB
{"version":3,"file":"get_message.cjs","names":["z","GmailBaseTool","GET_MESSAGE_DESCRIPTION"],"sources":["../../../src/tools/gmail/get_message.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { InferInteropZodOutput } from \"@langchain/core/utils/types\";\nimport { GmailBaseToolParams, GmailBaseTool } from \"./base.js\";\nimport { GET_MESSAGE_DESCRIPTION } from \"./descriptions.js\";\n\nconst getMessageSchema = z.object({\n messageId: z.string(),\n});\nexport type GetMessageSchema = z.infer<typeof getMessageSchema>;\n\nexport class GmailGetMessage extends GmailBaseTool {\n name = \"gmail_get_message\";\n\n schema = getMessageSchema;\n\n description = GET_MESSAGE_DESCRIPTION;\n\n constructor(fields?: GmailBaseToolParams) {\n super(fields);\n }\n\n async _call(arg: InferInteropZodOutput<GetMessageSchema>) {\n const { messageId } = arg;\n\n const gmail = await this.getGmailClient();\n\n const { data } = await gmail.users.messages.get({\n userId: \"me\",\n format: \"full\",\n\n id: messageId,\n });\n\n if (!data) {\n throw new Error(\"No data returned from Gmail\");\n }\n\n const { payload } = data;\n\n if (!payload) {\n throw new Error(\"No payload returned from Gmail\");\n }\n\n const { headers } = payload;\n\n if (!headers) {\n throw new Error(\"No headers returned from Gmail\");\n }\n\n const { subject, sender, body } = this.parseHeaderAndBody(payload);\n\n if (!subject) {\n throw new Error(\"No subject returned from Gmail\");\n }\n\n if (!body) {\n throw new Error(\"No body returned from Gmail\");\n }\n\n if (!sender) {\n throw new Error(\"No from returned from Gmail\");\n }\n\n const to = headers.find((header) => header.name === \"To\");\n\n if (!to) {\n throw new Error(\"No to returned from Gmail\");\n }\n\n const date = headers.find((header) => header.name === \"Date\");\n\n if (!date) {\n throw new Error(\"No date returned from Gmail\");\n }\n\n const messageIdHeader = headers.find(\n (header) => header.name === \"Message-ID\"\n );\n\n if (!messageIdHeader) {\n throw new Error(\"No message id returned from Gmail\");\n }\n\n return `Result for the prompt ${messageId} \\n${JSON.stringify({\n subject: subject.value,\n body,\n from: sender.value,\n to: to.value,\n date: date.value,\n messageId: messageIdHeader.value,\n })}`;\n }\n}\n"],"mappings":";;;;;AAKA,MAAM,mBAAmBA,OAAAA,EAAE,OAAO,EAChC,WAAWA,OAAAA,EAAE,QAAQ,EACtB,CAAC;AAGF,IAAa,kBAAb,cAAqCC,aAAAA,cAAc;CACjD,OAAO;CAEP,SAAS;CAET,cAAcC,qBAAAA;CAEd,YAAY,QAA8B;AACxC,QAAM,OAAO;;CAGf,MAAM,MAAM,KAA8C;EACxD,MAAM,EAAE,cAAc;EAItB,MAAM,EAAE,SAAS,OAFH,MAAM,KAAK,gBAAgB,EAEZ,MAAM,SAAS,IAAI;GAC9C,QAAQ;GACR,QAAQ;GAER,IAAI;GACL,CAAC;AAEF,MAAI,CAAC,KACH,OAAM,IAAI,MAAM,8BAA8B;EAGhD,MAAM,EAAE,YAAY;AAEpB,MAAI,CAAC,QACH,OAAM,IAAI,MAAM,iCAAiC;EAGnD,MAAM,EAAE,YAAY;AAEpB,MAAI,CAAC,QACH,OAAM,IAAI,MAAM,iCAAiC;EAGnD,MAAM,EAAE,SAAS,QAAQ,SAAS,KAAK,mBAAmB,QAAQ;AAElE,MAAI,CAAC,QACH,OAAM,IAAI,MAAM,iCAAiC;AAGnD,MAAI,CAAC,KACH,OAAM,IAAI,MAAM,8BAA8B;AAGhD,MAAI,CAAC,OACH,OAAM,IAAI,MAAM,8BAA8B;EAGhD,MAAM,KAAK,QAAQ,MAAM,WAAW,OAAO,SAAS,KAAK;AAEzD,MAAI,CAAC,GACH,OAAM,IAAI,MAAM,4BAA4B;EAG9C,MAAM,OAAO,QAAQ,MAAM,WAAW,OAAO,SAAS,OAAO;AAE7D,MAAI,CAAC,KACH,OAAM,IAAI,MAAM,8BAA8B;EAGhD,MAAM,kBAAkB,QAAQ,MAC7B,WAAW,OAAO,SAAS,aAC7B;AAED,MAAI,CAAC,gBACH,OAAM,IAAI,MAAM,oCAAoC;AAGtD,SAAO,yBAAyB,UAAU,KAAK,KAAK,UAAU;GAC5D,SAAS,QAAQ;GACjB;GACA,MAAM,OAAO;GACb,IAAI,GAAG;GACP,MAAM,KAAK;GACX,WAAW,gBAAgB;GAC5B,CAAC"}