agsamantha/node_modules/@langchain/community/dist/tools/gmail/create_draft.cjs
2024-10-02 15:15:21 -05:00

62 lines
2.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GmailCreateDraft = void 0;
const zod_1 = require("zod");
const base_js_1 = require("./base.cjs");
const descriptions_js_1 = require("./descriptions.cjs");
class GmailCreateDraft extends base_js_1.GmailBaseTool {
constructor(fields) {
super(fields);
Object.defineProperty(this, "name", {
enumerable: true,
configurable: true,
writable: true,
value: "create_gmail_draft"
});
Object.defineProperty(this, "schema", {
enumerable: true,
configurable: true,
writable: true,
value: zod_1.z.object({
message: zod_1.z.string(),
to: zod_1.z.array(zod_1.z.string()),
subject: zod_1.z.string(),
cc: zod_1.z.array(zod_1.z.string()).optional(),
bcc: zod_1.z.array(zod_1.z.string()).optional(),
})
});
Object.defineProperty(this, "description", {
enumerable: true,
configurable: true,
writable: true,
value: descriptions_js_1.CREATE_DRAFT_DESCRIPTION
});
}
prepareDraftMessage(message, to, subject, cc, bcc) {
const draftMessage = {
message: {
raw: "",
},
};
const email = [
`To: ${to.join(", ")}`,
`Subject: ${subject}`,
cc ? `Cc: ${cc.join(", ")}` : "",
bcc ? `Bcc: ${bcc.join(", ")}` : "",
"",
message,
].join("\n");
draftMessage.message.raw = Buffer.from(email).toString("base64url");
return draftMessage;
}
async _call(arg) {
const { message, to, subject, cc, bcc } = arg;
const create_message = this.prepareDraftMessage(message, to, subject, cc, bcc);
const response = await this.gmail.users.drafts.create({
userId: "me",
requestBody: create_message,
});
return `Draft created. Draft Id: ${response.data.id}`;
}
}
exports.GmailCreateDraft = GmailCreateDraft;