@langchain/community
Version:
Third-party integrations for LangChain.js
1 lines • 4.01 kB
Source Map (JSON)
{"version":3,"file":"get_thread.cjs","names":["z","GmailBaseTool","GET_THREAD_DESCRIPTION"],"sources":["../../../src/tools/gmail/get_thread.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport { InferInteropZodOutput } from \"@langchain/core/utils/types\";\nimport { GmailBaseTool, GmailBaseToolParams } from \"./base.js\";\nimport { GET_THREAD_DESCRIPTION } from \"./descriptions.js\";\n\nconst getThreadSchema = z.object({\n threadId: z.string(),\n});\nexport type GetThreadSchema = z.infer<typeof getThreadSchema>;\n\nexport class GmailGetThread extends GmailBaseTool {\n name = \"gmail_get_thread\";\n\n schema = getThreadSchema;\n\n description = GET_THREAD_DESCRIPTION;\n\n constructor(fields?: GmailBaseToolParams) {\n super(fields);\n }\n\n async _call(arg: InferInteropZodOutput<GetThreadSchema>) {\n const { threadId } = arg;\n\n const gmail = await this.getGmailClient();\n\n const { data } = await gmail.users.threads.get({\n userId: \"me\",\n format: \"full\",\n\n id: threadId,\n });\n\n if (!data) {\n throw new Error(\"No data returned from Gmail\");\n }\n\n const { messages } = data;\n\n if (!messages) {\n throw new Error(\"No messages returned from Gmail\");\n }\n\n return `Result for the prompt ${threadId} \\n${JSON.stringify(\n messages.map((message) => {\n const { payload } = message;\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 {\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 }\n}\n"],"mappings":";;;;;AAKA,MAAM,kBAAkBA,OAAAA,EAAE,OAAO,EAC/B,UAAUA,OAAAA,EAAE,QAAQ,EACrB,CAAC;AAGF,IAAa,iBAAb,cAAoCC,aAAAA,cAAc;CAChD,OAAO;CAEP,SAAS;CAET,cAAcC,qBAAAA;CAEd,YAAY,QAA8B;AACxC,QAAM,OAAO;;CAGf,MAAM,MAAM,KAA6C;EACvD,MAAM,EAAE,aAAa;EAIrB,MAAM,EAAE,SAAS,OAFH,MAAM,KAAK,gBAAgB,EAEZ,MAAM,QAAQ,IAAI;GAC7C,QAAQ;GACR,QAAQ;GAER,IAAI;GACL,CAAC;AAEF,MAAI,CAAC,KACH,OAAM,IAAI,MAAM,8BAA8B;EAGhD,MAAM,EAAE,aAAa;AAErB,MAAI,CAAC,SACH,OAAM,IAAI,MAAM,kCAAkC;AAGpD,SAAO,yBAAyB,SAAS,KAAK,KAAK,UACjD,SAAS,KAAK,YAAY;GACxB,MAAM,EAAE,YAAY;AAEpB,OAAI,CAAC,QACH,OAAM,IAAI,MAAM,iCAAiC;GAGnD,MAAM,EAAE,YAAY;AAEpB,OAAI,CAAC,QACH,OAAM,IAAI,MAAM,iCAAiC;GAGnD,MAAM,EAAE,SAAS,QAAQ,SAAS,KAAK,mBAAmB,QAAQ;AAElE,OAAI,CAAC,QACH,OAAM,IAAI,MAAM,iCAAiC;AAGnD,OAAI,CAAC,KACH,OAAM,IAAI,MAAM,8BAA8B;AAGhD,OAAI,CAAC,OACH,OAAM,IAAI,MAAM,8BAA8B;GAGhD,MAAM,KAAK,QAAQ,MAAM,WAAW,OAAO,SAAS,KAAK;AAEzD,OAAI,CAAC,GACH,OAAM,IAAI,MAAM,4BAA4B;GAG9C,MAAM,OAAO,QAAQ,MAAM,WAAW,OAAO,SAAS,OAAO;AAE7D,OAAI,CAAC,KACH,OAAM,IAAI,MAAM,8BAA8B;GAGhD,MAAM,kBAAkB,QAAQ,MAC7B,WAAW,OAAO,SAAS,aAC7B;AAED,OAAI,CAAC,gBACH,OAAM,IAAI,MAAM,oCAAoC;AAGtD,UAAO;IACL,SAAS,QAAQ;IACjB;IACA,MAAM,OAAO;IACb,IAAI,GAAG;IACP,MAAM,KAAK;IACX,WAAW,gBAAgB;IAC5B;IACD,CACH"}