{"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"}