agentmail-toolkit 0.1.30 → 0.1.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/ai-sdk.cjs +272 -0
  2. package/dist/ai-sdk.cjs.map +1 -0
  3. package/dist/ai-sdk.d.cts +10 -0
  4. package/dist/ai-sdk.d.mts +1 -1
  5. package/dist/ai-sdk.d.ts +1 -1
  6. package/dist/ai-sdk.js +10 -242
  7. package/dist/ai-sdk.js.map +1 -1
  8. package/dist/ai-sdk.mjs +2 -2
  9. package/dist/ai-sdk.mjs.map +1 -1
  10. package/dist/chunk-4RMN5TYL.js +225 -0
  11. package/dist/chunk-4RMN5TYL.js.map +1 -0
  12. package/dist/chunk-67YFXNRI.js +225 -0
  13. package/dist/chunk-67YFXNRI.js.map +1 -0
  14. package/dist/chunk-C26Y3CI4.js +14 -0
  15. package/dist/chunk-C26Y3CI4.js.map +1 -0
  16. package/dist/chunk-F4J6RGW4.mjs +231 -0
  17. package/dist/chunk-F4J6RGW4.mjs.map +1 -0
  18. package/dist/chunk-SSOWB3VC.js +225 -0
  19. package/dist/chunk-SSOWB3VC.js.map +1 -0
  20. package/dist/index.cjs +260 -0
  21. package/dist/index.cjs.map +1 -0
  22. package/dist/index.d.cts +20 -0
  23. package/dist/index.d.mts +1 -1
  24. package/dist/index.d.ts +5 -5
  25. package/dist/index.js +6 -238
  26. package/dist/index.js.map +1 -1
  27. package/dist/index.mjs +2 -2
  28. package/dist/index.mjs.map +1 -1
  29. package/dist/langchain.cjs +270 -0
  30. package/dist/langchain.cjs.map +1 -0
  31. package/dist/langchain.d.cts +10 -0
  32. package/dist/langchain.d.mts +1 -1
  33. package/dist/langchain.d.ts +1 -1
  34. package/dist/langchain.js +10 -239
  35. package/dist/langchain.js.map +1 -1
  36. package/dist/langchain.mjs +2 -2
  37. package/dist/langchain.mjs.map +1 -1
  38. package/dist/mcp.cjs +273 -0
  39. package/dist/mcp.cjs.map +1 -0
  40. package/dist/mcp.d.cts +16 -0
  41. package/dist/mcp.d.mts +1 -1
  42. package/dist/mcp.d.ts +5 -5
  43. package/dist/mcp.js +9 -238
  44. package/dist/mcp.js.map +1 -1
  45. package/dist/mcp.mjs +2 -2
  46. package/dist/mcp.mjs.map +1 -1
  47. package/dist/toolkit--KYFOIry.d.cts +26 -0
  48. package/dist/toolkit--KYFOIry.d.ts +26 -0
  49. package/dist/toolkit-BkuqrcT_.d.mts +29 -0
  50. package/dist/toolkit-BkuqrcT_.d.ts +29 -0
  51. package/dist/toolkit-DZBT1-DW.d.cts +26 -0
  52. package/dist/toolkit-DZBT1-DW.d.ts +26 -0
  53. package/package.json +19 -16
@@ -0,0 +1,231 @@
1
+ // src/toolkit.ts
2
+ import { AgentMailClient } from "agentmail";
3
+
4
+ // src/schemas.ts
5
+ import { z } from "zod";
6
+ var ListItemsParams = z.object({
7
+ limit: z.number().optional().describe("Max number of items to return"),
8
+ page_token: z.string().optional().describe("Page token for pagination")
9
+ });
10
+ var ListInboxItemsParams = ListItemsParams.extend({
11
+ inbox_id: z.string().describe("ID of inbox"),
12
+ labels: z.array(z.string()).optional().describe("Labels to filter items by"),
13
+ before: z.string().optional().describe("Filter items before datetime"),
14
+ after: z.string().optional().describe("Filter items after datetime")
15
+ });
16
+ var GetInboxParams = z.object({
17
+ inbox_id: z.string().describe("ID of inbox")
18
+ });
19
+ var CreateInboxParams = z.object({
20
+ username: z.string().optional().describe("Username"),
21
+ domain: z.string().optional().describe("Domain"),
22
+ display_name: z.string().optional().describe("Display name")
23
+ });
24
+ var GetThreadParams = z.object({
25
+ inbox_id: z.string().describe("ID of inbox"),
26
+ thread_id: z.string().describe("ID of thread")
27
+ });
28
+ var GetAttachmentParams = z.object({
29
+ inbox_id: z.string().describe("ID of inbox"),
30
+ thread_id: z.string().describe("ID of thread"),
31
+ attachment_id: z.string().describe("ID of attachment")
32
+ });
33
+ var SendMessageParams = z.object({
34
+ inbox_id: z.string().describe("ID of inbox"),
35
+ to: z.array(z.string()).describe("Recipients"),
36
+ cc: z.array(z.string()).optional().describe("CC recipients"),
37
+ bcc: z.array(z.string()).optional().describe("BCC recipients"),
38
+ subject: z.string().optional().describe("Subject"),
39
+ text: z.string().optional().describe("Plain text body"),
40
+ html: z.string().optional().describe("HTML body"),
41
+ labels: z.array(z.string()).optional().describe("Labels")
42
+ });
43
+ var ReplyToMessageParams = z.object({
44
+ inbox_id: z.string().describe("ID of inbox"),
45
+ message_id: z.string().describe("ID of message to reply to"),
46
+ text: z.string().optional().describe("Plain text body"),
47
+ html: z.string().optional().describe("HTML body"),
48
+ labels: z.array(z.string()).optional().describe("Labels")
49
+ });
50
+ var UpdateMessageParams = z.object({
51
+ inbox_id: z.string().describe("ID of inbox"),
52
+ message_id: z.string().describe("ID of message"),
53
+ add_labels: z.array(z.string()).optional().describe("Labels to add"),
54
+ remove_labels: z.array(z.string()).optional().describe("Labels to remove")
55
+ });
56
+
57
+ // src/functions.ts
58
+ import pdf from "pdf-parse";
59
+ import mammoth from "mammoth";
60
+ import { fileTypeFromBuffer } from "file-type";
61
+ async function listInboxes(client, kwargs) {
62
+ return client.inboxes.list(kwargs);
63
+ }
64
+ async function getInbox(client, kwargs) {
65
+ const { inbox_id, ...options } = kwargs;
66
+ return client.inboxes.get(inbox_id, options);
67
+ }
68
+ async function createInbox(client, kwargs) {
69
+ return client.inboxes.create(kwargs);
70
+ }
71
+ async function deleteInbox(client, kwargs) {
72
+ const { inbox_id } = kwargs;
73
+ return client.inboxes.delete(inbox_id);
74
+ }
75
+ async function listThreads(client, kwargs) {
76
+ const { inbox_id, ...options } = kwargs;
77
+ return client.inboxes.threads.list(inbox_id, options);
78
+ }
79
+ async function getThread(client, kwargs) {
80
+ const { inbox_id, thread_id, ...options } = kwargs;
81
+ return client.inboxes.threads.get(inbox_id, thread_id, options);
82
+ }
83
+ async function getAttachment(client, kwargs) {
84
+ const { thread_id, attachment_id } = kwargs;
85
+ const response = await client.threads.getAttachment(thread_id, attachment_id);
86
+ const arrayBuffer = await response.arrayBuffer();
87
+ const fileBytes = Buffer.from(arrayBuffer);
88
+ const fileKind = await fileTypeFromBuffer(fileBytes);
89
+ const fileType = fileKind?.mime;
90
+ let text = "";
91
+ if (fileType === "application/pdf") {
92
+ const pdfData = await pdf(fileBytes);
93
+ text = pdfData.text;
94
+ } else if (fileType === "application/vnd.openxmlformats-officedocument.wordprocessingml.document") {
95
+ const result = await mammoth.extractRawText({ buffer: fileBytes });
96
+ text = result.value;
97
+ } else {
98
+ return {
99
+ error: `Unsupported file type: ${fileType || "unknown"}`,
100
+ file_type: fileType
101
+ };
102
+ }
103
+ return { text, file_type: fileType };
104
+ }
105
+ async function sendMessage(client, kwargs) {
106
+ const { inbox_id, ...options } = kwargs;
107
+ return client.inboxes.messages.send(inbox_id, options);
108
+ }
109
+ async function replyToMessage(client, kwargs) {
110
+ const { inbox_id, message_id, ...options } = kwargs;
111
+ return client.inboxes.messages.reply(inbox_id, message_id, options);
112
+ }
113
+ async function updateMessage(client, kwargs) {
114
+ const { inbox_id, message_id, ...options } = kwargs;
115
+ return client.inboxes.messages.update(inbox_id, message_id, options);
116
+ }
117
+
118
+ // src/tools.ts
119
+ var tools = [
120
+ {
121
+ name: "list_inboxes",
122
+ description: "List inboxes",
123
+ params_schema: ListItemsParams,
124
+ func: listInboxes
125
+ },
126
+ {
127
+ name: "get_inbox",
128
+ description: "Get inbox",
129
+ params_schema: GetInboxParams,
130
+ func: getInbox
131
+ },
132
+ {
133
+ name: "create_inbox",
134
+ description: "Create inbox",
135
+ params_schema: CreateInboxParams,
136
+ func: createInbox
137
+ },
138
+ {
139
+ name: "delete_inbox",
140
+ description: "Delete inbox",
141
+ params_schema: GetInboxParams,
142
+ func: deleteInbox
143
+ },
144
+ {
145
+ name: "list_threads",
146
+ description: "List threads in inbox",
147
+ params_schema: ListInboxItemsParams,
148
+ func: listThreads
149
+ },
150
+ {
151
+ name: "get_thread",
152
+ description: "Get thread",
153
+ params_schema: GetThreadParams,
154
+ func: getThread
155
+ },
156
+ {
157
+ name: "get_attachment",
158
+ description: "Get attachment",
159
+ params_schema: GetAttachmentParams,
160
+ func: getAttachment
161
+ },
162
+ {
163
+ name: "send_message",
164
+ description: "Send message",
165
+ params_schema: SendMessageParams,
166
+ func: sendMessage
167
+ },
168
+ {
169
+ name: "reply_to_message",
170
+ description: "Reply to message",
171
+ params_schema: ReplyToMessageParams,
172
+ func: replyToMessage
173
+ },
174
+ {
175
+ name: "update_message",
176
+ description: "Update message",
177
+ params_schema: UpdateMessageParams,
178
+ func: updateMessage
179
+ }
180
+ ];
181
+
182
+ // src/toolkit.ts
183
+ var BaseToolkit = class {
184
+ client;
185
+ tools = {};
186
+ constructor(client) {
187
+ this.client = client ?? new AgentMailClient();
188
+ this.tools = tools.reduce(
189
+ (acc, tool) => {
190
+ acc[tool.name] = this.buildTool(tool);
191
+ return acc;
192
+ },
193
+ {}
194
+ );
195
+ }
196
+ async safeCall(tool, args) {
197
+ try {
198
+ return { isError: false, result: await tool.func(this.client, args) };
199
+ } catch (error) {
200
+ if (error instanceof Error) return { isError: true, result: error.message };
201
+ else return { isError: true, result: "Unknown error" };
202
+ }
203
+ }
204
+ };
205
+ var ListToolkit = class extends BaseToolkit {
206
+ getTools(names) {
207
+ if (!names) return Object.values(this.tools);
208
+ return names.reduce((acc, name) => {
209
+ if (name in this.tools) acc.push(this.tools[name]);
210
+ return acc;
211
+ }, []);
212
+ }
213
+ };
214
+ var MapToolkit = class extends BaseToolkit {
215
+ getTools(names) {
216
+ if (!names) return this.tools;
217
+ return names.reduce(
218
+ (acc, name) => {
219
+ if (name in this.tools) acc[name] = this.tools[name];
220
+ return acc;
221
+ },
222
+ {}
223
+ );
224
+ }
225
+ };
226
+
227
+ export {
228
+ ListToolkit,
229
+ MapToolkit
230
+ };
231
+ //# sourceMappingURL=chunk-F4J6RGW4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/toolkit.ts","../src/schemas.ts","../src/functions.ts","../src/tools.ts"],"sourcesContent":["import { AgentMailClient } from 'agentmail'\n\nimport { type Tool, tools } from './tools'\n\nexport abstract class BaseToolkit<T> {\n protected readonly client: AgentMailClient\n protected readonly tools: Record<string, T> = {}\n\n constructor(client?: AgentMailClient) {\n this.client = client ?? new AgentMailClient()\n\n this.tools = tools.reduce(\n (acc, tool) => {\n acc[tool.name] = this.buildTool(tool)\n return acc\n },\n {} as Record<string, T>\n )\n }\n\n protected abstract buildTool(tool: Tool): T\n\n protected async safeCall(tool: Tool, args: Record<string, any>) {\n try {\n return { isError: false, result: await tool.func(this.client, args) }\n } catch (error) {\n if (error instanceof Error) return { isError: true, result: error.message }\n else return { isError: true, result: 'Unknown error' }\n }\n }\n}\n\nexport abstract class ListToolkit<T> extends BaseToolkit<T> {\n public getTools(names?: string[]) {\n if (!names) return Object.values(this.tools)\n\n return names.reduce((acc, name) => {\n if (name in this.tools) acc.push(this.tools[name])\n return acc\n }, [] as T[])\n }\n}\n\nexport abstract class MapToolkit<T> extends BaseToolkit<T> {\n public getTools(names?: string[]) {\n if (!names) return this.tools\n\n return names.reduce(\n (acc, name) => {\n if (name in this.tools) acc[name] = this.tools[name]\n return acc\n },\n {} as Record<string, T>\n )\n }\n}\n","import { z } from 'zod'\n\nexport const ListItemsParams = z.object({\n limit: z.number().optional().describe('Max number of items to return'),\n page_token: z.string().optional().describe('Page token for pagination'),\n})\n\nexport const ListInboxItemsParams = ListItemsParams.extend({\n inbox_id: z.string().describe('ID of inbox'),\n labels: z.array(z.string()).optional().describe('Labels to filter items by'),\n before: z.string().optional().describe('Filter items before datetime'),\n after: z.string().optional().describe('Filter items after datetime'),\n})\n\nexport const GetInboxParams = z.object({\n inbox_id: z.string().describe('ID of inbox'),\n})\n\nexport const CreateInboxParams = z.object({\n username: z.string().optional().describe('Username'),\n domain: z.string().optional().describe('Domain'),\n display_name: z.string().optional().describe('Display name'),\n})\n\nexport const GetThreadParams = z.object({\n inbox_id: z.string().describe('ID of inbox'),\n thread_id: z.string().describe('ID of thread'),\n})\n\nexport const GetAttachmentParams = z.object({\n inbox_id: z.string().describe('ID of inbox'),\n thread_id: z.string().describe('ID of thread'),\n attachment_id: z.string().describe('ID of attachment'),\n})\n\nexport const SendMessageParams = z.object({\n inbox_id: z.string().describe('ID of inbox'),\n to: z.array(z.string()).describe('Recipients'),\n cc: z.array(z.string()).optional().describe('CC recipients'),\n bcc: z.array(z.string()).optional().describe('BCC recipients'),\n subject: z.string().optional().describe('Subject'),\n text: z.string().optional().describe('Plain text body'),\n html: z.string().optional().describe('HTML body'),\n labels: z.array(z.string()).optional().describe('Labels'),\n})\n\nexport const ReplyToMessageParams = z.object({\n inbox_id: z.string().describe('ID of inbox'),\n message_id: z.string().describe('ID of message to reply to'),\n text: z.string().optional().describe('Plain text body'),\n html: z.string().optional().describe('HTML body'),\n labels: z.array(z.string()).optional().describe('Labels'),\n})\n\nexport const UpdateMessageParams = z.object({\n inbox_id: z.string().describe('ID of inbox'),\n message_id: z.string().describe('ID of message'),\n add_labels: z.array(z.string()).optional().describe('Labels to add'),\n remove_labels: z.array(z.string()).optional().describe('Labels to remove'),\n})\n","import { AgentMailClient } from 'agentmail'\nimport pdf from 'pdf-parse'\nimport mammoth from 'mammoth'\nimport { fileTypeFromBuffer } from 'file-type'\n\ntype Kwargs = Record<string, any>\n\ninterface Attachment {\n text?: string\n error?: string\n file_type?: string\n}\n\nexport async function listInboxes(client: AgentMailClient, kwargs: Kwargs) {\n return client.inboxes.list(kwargs)\n}\n\nexport async function getInbox(client: AgentMailClient, kwargs: Kwargs) {\n const { inbox_id, ...options } = kwargs\n return client.inboxes.get(inbox_id, options)\n}\n\nexport async function createInbox(client: AgentMailClient, kwargs: Kwargs) {\n return client.inboxes.create(kwargs)\n}\n\nexport async function deleteInbox(client: AgentMailClient, kwargs: Kwargs) {\n const { inbox_id } = kwargs\n return client.inboxes.delete(inbox_id)\n}\n\nexport async function listThreads(client: AgentMailClient, kwargs: Kwargs) {\n const { inbox_id, ...options } = kwargs\n return client.inboxes.threads.list(inbox_id, options)\n}\n\nexport async function getThread(client: AgentMailClient, kwargs: Kwargs) {\n const { inbox_id, thread_id, ...options } = kwargs\n return client.inboxes.threads.get(inbox_id, thread_id, options)\n}\n\nexport async function getAttachment(client: AgentMailClient, kwargs: Kwargs): Promise<Attachment> {\n const { thread_id, attachment_id } = kwargs\n\n const response = await client.threads.getAttachment(thread_id, attachment_id)\n const arrayBuffer = await response.arrayBuffer()\n const fileBytes = Buffer.from(arrayBuffer)\n\n const fileKind = await fileTypeFromBuffer(fileBytes)\n const fileType = fileKind?.mime\n\n let text = ''\n\n if (fileType === 'application/pdf') {\n const pdfData = await pdf(fileBytes)\n text = pdfData.text\n } else if (fileType === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document') {\n const result = await mammoth.extractRawText({ buffer: fileBytes })\n text = result.value\n } else {\n return {\n error: `Unsupported file type: ${fileType || 'unknown'}`,\n file_type: fileType,\n }\n }\n\n return { text, file_type: fileType }\n}\n\nexport async function sendMessage(client: AgentMailClient, kwargs: Kwargs) {\n const { inbox_id, ...options } = kwargs\n return client.inboxes.messages.send(inbox_id, options)\n}\n\nexport async function replyToMessage(client: AgentMailClient, kwargs: Kwargs) {\n const { inbox_id, message_id, ...options } = kwargs\n return client.inboxes.messages.reply(inbox_id, message_id, options)\n}\n\nexport async function updateMessage(client: AgentMailClient, kwargs: Kwargs) {\n const { inbox_id, message_id, ...options } = kwargs\n return client.inboxes.messages.update(inbox_id, message_id, options)\n}\n\n","import { AnyZodObject } from 'zod'\nimport { AgentMailClient } from 'agentmail'\n\nimport {\n ListItemsParams,\n ListInboxItemsParams,\n GetInboxParams,\n CreateInboxParams,\n GetThreadParams,\n GetAttachmentParams,\n SendMessageParams,\n ReplyToMessageParams,\n UpdateMessageParams,\n} from './schemas'\nimport {\n listInboxes,\n getInbox,\n createInbox,\n deleteInbox,\n listThreads,\n getThread,\n getAttachment,\n sendMessage,\n replyToMessage,\n updateMessage,\n} from './functions'\n\ntype Kwargs = Record<string, any>\n\nexport interface Tool {\n name: string\n description: string\n params_schema: AnyZodObject\n func: (client: AgentMailClient, kwargs: Kwargs) => Promise<any>\n}\n\nexport const tools: Tool[] = [\n {\n name: 'list_inboxes',\n description: 'List inboxes',\n params_schema: ListItemsParams,\n func: listInboxes,\n },\n {\n name: 'get_inbox',\n description: 'Get inbox',\n params_schema: GetInboxParams,\n func: getInbox,\n },\n {\n name: 'create_inbox',\n description: 'Create inbox',\n params_schema: CreateInboxParams,\n func: createInbox,\n },\n {\n name: 'delete_inbox',\n description: 'Delete inbox',\n params_schema: GetInboxParams,\n func: deleteInbox,\n },\n {\n name: 'list_threads',\n description: 'List threads in inbox',\n params_schema: ListInboxItemsParams,\n func: listThreads,\n },\n {\n name: 'get_thread',\n description: 'Get thread',\n params_schema: GetThreadParams,\n func: getThread,\n },\n {\n name: 'get_attachment',\n description: 'Get attachment',\n params_schema: GetAttachmentParams,\n func: getAttachment,\n },\n {\n name: 'send_message',\n description: 'Send message',\n params_schema: SendMessageParams,\n func: sendMessage,\n },\n {\n name: 'reply_to_message',\n description: 'Reply to message',\n params_schema: ReplyToMessageParams,\n func: replyToMessage,\n },\n {\n name: 'update_message',\n description: 'Update message',\n params_schema: UpdateMessageParams,\n func: updateMessage,\n },\n]\n"],"mappings":"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","names":[]}
@@ -0,0 +1,225 @@
1
+ // src/toolkit.ts
2
+ import { AgentMailClient } from "agentmail";
3
+
4
+ // src/schemas.ts
5
+ import { z } from "zod";
6
+ var InboxIdSchema = z.string().describe("ID of inbox");
7
+ var ThreadIdSchema = z.string().describe("ID of thread");
8
+ var MessageIdSchema = z.string().describe("ID of message");
9
+ var AttachmentIdSchema = z.string().describe("ID of attachment");
10
+ var ListItemsParams = z.object({
11
+ limit: z.number().optional().default(10).describe("Max number of items to return"),
12
+ page_token: z.string().optional().describe("Page token for pagination")
13
+ });
14
+ var GetInboxParams = z.object({
15
+ inbox_id: InboxIdSchema
16
+ });
17
+ var CreateInboxParams = z.object({
18
+ username: z.string().optional().describe("Username"),
19
+ domain: z.string().optional().describe("Domain"),
20
+ display_name: z.string().optional().describe("Display name")
21
+ });
22
+ var ListInboxItemsParams = ListItemsParams.extend({
23
+ inbox_id: InboxIdSchema,
24
+ labels: z.array(z.string()).optional().describe("Labels to filter items by"),
25
+ before: z.string().optional().describe("Filter items before datetime"),
26
+ after: z.string().optional().describe("Filter items after datetime")
27
+ });
28
+ var GetThreadParams = z.object({
29
+ inbox_id: InboxIdSchema,
30
+ thread_id: ThreadIdSchema
31
+ });
32
+ var GetAttachmentParams = z.object({
33
+ inbox_id: InboxIdSchema,
34
+ thread_id: ThreadIdSchema,
35
+ attachment_id: AttachmentIdSchema
36
+ });
37
+ var BaseMessageParams = z.object({
38
+ inbox_id: InboxIdSchema,
39
+ text: z.string().optional().describe("Plain text body"),
40
+ html: z.string().optional().describe("HTML body"),
41
+ labels: z.array(z.string()).optional().describe("Labels")
42
+ });
43
+ var SendMessageParams = BaseMessageParams.extend({
44
+ to: z.array(z.string()).describe("Recipients"),
45
+ cc: z.array(z.string()).optional().describe("CC recipients"),
46
+ bcc: z.array(z.string()).optional().describe("BCC recipients"),
47
+ subject: z.string().optional().describe("Subject")
48
+ });
49
+ var ReplyToMessageParams = BaseMessageParams.extend({
50
+ message_id: MessageIdSchema
51
+ });
52
+ var UpdateMessageParams = z.object({
53
+ inbox_id: InboxIdSchema,
54
+ message_id: MessageIdSchema,
55
+ add_labels: z.array(z.string()).optional().describe("Labels to add"),
56
+ remove_labels: z.array(z.string()).optional().describe("Labels to remove")
57
+ });
58
+
59
+ // src/functions.ts
60
+ import { PDFParse } from "pdf-parse";
61
+ import mammoth from "mammoth";
62
+ import { fileTypeFromBuffer } from "file-type";
63
+ async function listInboxes(client, args) {
64
+ return client.inboxes.list(args);
65
+ }
66
+ async function getInbox(client, args) {
67
+ const { inbox_id, ...options } = args;
68
+ return client.inboxes.get(inbox_id, options);
69
+ }
70
+ async function createInbox(client, args) {
71
+ return client.inboxes.create(args);
72
+ }
73
+ async function deleteInbox(client, args) {
74
+ const { inbox_id } = args;
75
+ return client.inboxes.delete(inbox_id);
76
+ }
77
+ async function listThreads(client, args) {
78
+ const { inbox_id, ...options } = args;
79
+ return client.inboxes.threads.list(inbox_id, options);
80
+ }
81
+ async function getThread(client, args) {
82
+ const { inbox_id, thread_id, ...options } = args;
83
+ return client.inboxes.threads.get(inbox_id, thread_id, options);
84
+ }
85
+ async function getAttachment(client, args) {
86
+ const { thread_id, attachment_id } = args;
87
+ const response = await client.threads.getAttachment(thread_id, attachment_id);
88
+ const fileBytes = Buffer.from(await response.arrayBuffer());
89
+ const fileKind = await fileTypeFromBuffer(fileBytes);
90
+ const fileType = fileKind?.mime;
91
+ let text = void 0;
92
+ if (fileType === "application/pdf") {
93
+ const parser = new PDFParse({ data: fileBytes });
94
+ const pdfData = await parser.getText();
95
+ text = pdfData.text;
96
+ } else if (fileType === "application/vnd.openxmlformats-officedocument.wordprocessingml.document") {
97
+ const result = await mammoth.extractRawText({ buffer: fileBytes });
98
+ text = result.value;
99
+ } else {
100
+ return {
101
+ error: `Unsupported file type: ${fileType || "unknown"}`,
102
+ file_type: fileType
103
+ };
104
+ }
105
+ return { text, file_type: fileType };
106
+ }
107
+ async function sendMessage(client, args) {
108
+ const { inbox_id, ...options } = args;
109
+ return client.inboxes.messages.send(inbox_id, options);
110
+ }
111
+ async function replyToMessage(client, args) {
112
+ const { inbox_id, message_id, ...options } = args;
113
+ return client.inboxes.messages.reply(inbox_id, message_id, options);
114
+ }
115
+ async function updateMessage(client, args) {
116
+ const { inbox_id, message_id, ...options } = args;
117
+ return client.inboxes.messages.update(inbox_id, message_id, options);
118
+ }
119
+
120
+ // src/tools.ts
121
+ var tools = [
122
+ {
123
+ name: "list_inboxes",
124
+ description: "List inboxes",
125
+ params_schema: ListItemsParams,
126
+ func: listInboxes
127
+ },
128
+ {
129
+ name: "get_inbox",
130
+ description: "Get inbox",
131
+ params_schema: GetInboxParams,
132
+ func: getInbox
133
+ },
134
+ {
135
+ name: "create_inbox",
136
+ description: "Create inbox",
137
+ params_schema: CreateInboxParams,
138
+ func: createInbox
139
+ },
140
+ {
141
+ name: "delete_inbox",
142
+ description: "Delete inbox",
143
+ params_schema: GetInboxParams,
144
+ func: deleteInbox
145
+ },
146
+ {
147
+ name: "list_threads",
148
+ description: "List threads in inbox",
149
+ params_schema: ListInboxItemsParams,
150
+ func: listThreads
151
+ },
152
+ {
153
+ name: "get_thread",
154
+ description: "Get thread",
155
+ params_schema: GetThreadParams,
156
+ func: getThread
157
+ },
158
+ {
159
+ name: "get_attachment",
160
+ description: "Get attachment",
161
+ params_schema: GetAttachmentParams,
162
+ func: getAttachment
163
+ },
164
+ {
165
+ name: "send_message",
166
+ description: "Send message",
167
+ params_schema: SendMessageParams,
168
+ func: sendMessage
169
+ },
170
+ {
171
+ name: "reply_to_message",
172
+ description: "Reply to message",
173
+ params_schema: ReplyToMessageParams,
174
+ func: replyToMessage
175
+ },
176
+ {
177
+ name: "update_message",
178
+ description: "Update message",
179
+ params_schema: UpdateMessageParams,
180
+ func: updateMessage
181
+ }
182
+ ];
183
+
184
+ // src/toolkit.ts
185
+ var BaseToolkit = class {
186
+ client;
187
+ tools = {};
188
+ constructor(client) {
189
+ this.client = client ?? new AgentMailClient();
190
+ this.tools = tools.reduce(
191
+ (acc, tool) => {
192
+ acc[tool.name] = this.buildTool(tool);
193
+ return acc;
194
+ },
195
+ {}
196
+ );
197
+ }
198
+ };
199
+ var ListToolkit = class extends BaseToolkit {
200
+ getTools(names) {
201
+ if (!names) return Object.values(this.tools);
202
+ return names.reduce((acc, name) => {
203
+ if (name in this.tools) acc.push(this.tools[name]);
204
+ return acc;
205
+ }, []);
206
+ }
207
+ };
208
+ var MapToolkit = class extends BaseToolkit {
209
+ getTools(names) {
210
+ if (!names) return this.tools;
211
+ return names.reduce(
212
+ (acc, name) => {
213
+ if (name in this.tools) acc[name] = this.tools[name];
214
+ return acc;
215
+ },
216
+ {}
217
+ );
218
+ }
219
+ };
220
+
221
+ export {
222
+ ListToolkit,
223
+ MapToolkit
224
+ };
225
+ //# sourceMappingURL=chunk-SSOWB3VC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/toolkit.ts","../src/schemas.ts","../src/functions.ts","../src/tools.ts"],"sourcesContent":["import { AgentMailClient } from 'agentmail'\n\nimport { type Tool, tools } from './tools.js'\n\nexport abstract class BaseToolkit<T> {\n protected readonly client: AgentMailClient\n protected readonly tools: Record<string, T> = {}\n\n constructor(client?: AgentMailClient) {\n this.client = client ?? new AgentMailClient()\n\n this.tools = tools.reduce(\n (acc, tool) => {\n acc[tool.name] = this.buildTool(tool)\n return acc\n },\n {} as Record<string, T>\n )\n }\n\n protected abstract buildTool(tool: Tool): T\n}\n\nexport abstract class ListToolkit<T> extends BaseToolkit<T> {\n public getTools(names?: string[]) {\n if (!names) return Object.values(this.tools)\n\n return names.reduce((acc, name) => {\n if (name in this.tools) acc.push(this.tools[name])\n return acc\n }, [] as T[])\n }\n}\n\nexport abstract class MapToolkit<T> extends BaseToolkit<T> {\n public getTools(names?: string[]) {\n if (!names) return this.tools\n\n return names.reduce(\n (acc, name) => {\n if (name in this.tools) acc[name] = this.tools[name]\n return acc\n },\n {} as Record<string, T>\n )\n }\n}\n","import { z } from 'zod'\n\nconst InboxIdSchema = z.string().describe('ID of inbox')\nconst ThreadIdSchema = z.string().describe('ID of thread')\nconst MessageIdSchema = z.string().describe('ID of message')\nconst AttachmentIdSchema = z.string().describe('ID of attachment')\n\nexport const ListItemsParams = z.object({\n limit: z.number().optional().default(10).describe('Max number of items to return'),\n page_token: z.string().optional().describe('Page token for pagination'),\n})\n\nexport const GetInboxParams = z.object({\n inbox_id: InboxIdSchema,\n})\n\nexport const CreateInboxParams = z.object({\n username: z.string().optional().describe('Username'),\n domain: z.string().optional().describe('Domain'),\n display_name: z.string().optional().describe('Display name'),\n})\n\nexport const ListInboxItemsParams = ListItemsParams.extend({\n inbox_id: InboxIdSchema,\n labels: z.array(z.string()).optional().describe('Labels to filter items by'),\n before: z.string().optional().describe('Filter items before datetime'),\n after: z.string().optional().describe('Filter items after datetime'),\n})\n\nexport const GetThreadParams = z.object({\n inbox_id: InboxIdSchema,\n thread_id: ThreadIdSchema,\n})\n\nexport const GetAttachmentParams = z.object({\n inbox_id: InboxIdSchema,\n thread_id: ThreadIdSchema,\n attachment_id: AttachmentIdSchema,\n})\n\nconst BaseMessageParams = z.object({\n inbox_id: InboxIdSchema,\n text: z.string().optional().describe('Plain text body'),\n html: z.string().optional().describe('HTML body'),\n labels: z.array(z.string()).optional().describe('Labels'),\n})\n\nexport const SendMessageParams = BaseMessageParams.extend({\n to: z.array(z.string()).describe('Recipients'),\n cc: z.array(z.string()).optional().describe('CC recipients'),\n bcc: z.array(z.string()).optional().describe('BCC recipients'),\n subject: z.string().optional().describe('Subject'),\n})\n\nexport const ReplyToMessageParams = BaseMessageParams.extend({\n message_id: MessageIdSchema,\n})\n\nexport const UpdateMessageParams = z.object({\n inbox_id: InboxIdSchema,\n message_id: MessageIdSchema,\n add_labels: z.array(z.string()).optional().describe('Labels to add'),\n remove_labels: z.array(z.string()).optional().describe('Labels to remove'),\n})\n","import { AgentMailClient } from 'agentmail'\nimport { PDFParse } from 'pdf-parse'\nimport mammoth from 'mammoth'\nimport { fileTypeFromBuffer } from 'file-type'\n\nexport type Args = Record<string, any>\n\ninterface Attachment {\n text?: string\n error?: string\n file_type?: string\n}\n\nexport async function listInboxes(client: AgentMailClient, args: Args) {\n return client.inboxes.list(args)\n}\n\nexport async function getInbox(client: AgentMailClient, args: Args) {\n const { inbox_id, ...options } = args\n return client.inboxes.get(inbox_id, options)\n}\n\nexport async function createInbox(client: AgentMailClient, args: Args) {\n return client.inboxes.create(args)\n}\n\nexport async function deleteInbox(client: AgentMailClient, args: Args) {\n const { inbox_id } = args\n return client.inboxes.delete(inbox_id)\n}\n\nexport async function listThreads(client: AgentMailClient, args: Args) {\n const { inbox_id, ...options } = args\n return client.inboxes.threads.list(inbox_id, options)\n}\n\nexport async function getThread(client: AgentMailClient, args: Args) {\n const { inbox_id, thread_id, ...options } = args\n return client.inboxes.threads.get(inbox_id, thread_id, options)\n}\n\nexport async function getAttachment(client: AgentMailClient, args: Args): Promise<Attachment> {\n const { thread_id, attachment_id } = args\n\n const response = await client.threads.getAttachment(thread_id, attachment_id)\n const fileBytes = Buffer.from(await response.arrayBuffer())\n\n const fileKind = await fileTypeFromBuffer(fileBytes)\n const fileType = fileKind?.mime\n\n let text = undefined\n\n if (fileType === 'application/pdf') {\n const parser = new PDFParse({ data: fileBytes })\n const pdfData = await parser.getText()\n text = pdfData.text\n } else if (fileType === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document') {\n const result = await mammoth.extractRawText({ buffer: fileBytes })\n text = result.value\n } else {\n return {\n error: `Unsupported file type: ${fileType || 'unknown'}`,\n file_type: fileType,\n }\n }\n\n return { text, file_type: fileType }\n}\n\nexport async function sendMessage(client: AgentMailClient, args: Args) {\n const { inbox_id, ...options } = args\n return client.inboxes.messages.send(inbox_id, options)\n}\n\nexport async function replyToMessage(client: AgentMailClient, args: Args) {\n const { inbox_id, message_id, ...options } = args\n return client.inboxes.messages.reply(inbox_id, message_id, options)\n}\n\nexport async function updateMessage(client: AgentMailClient, args: Args) {\n const { inbox_id, message_id, ...options } = args\n return client.inboxes.messages.update(inbox_id, message_id, options)\n}\n","import { z } from 'zod'\nimport { AgentMailClient } from 'agentmail'\n\nimport {\n ListItemsParams,\n ListInboxItemsParams,\n GetInboxParams,\n CreateInboxParams,\n GetThreadParams,\n GetAttachmentParams,\n SendMessageParams,\n ReplyToMessageParams,\n UpdateMessageParams,\n} from './schemas.js'\nimport {\n type Args,\n listInboxes,\n getInbox,\n createInbox,\n deleteInbox,\n listThreads,\n getThread,\n getAttachment,\n sendMessage,\n replyToMessage,\n updateMessage,\n} from './functions.js'\nexport interface Tool {\n name: string\n description: string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n params_schema: z.ZodObject<any>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n func: (client: AgentMailClient, args: Args) => Promise<any>\n}\n\nexport const tools: Tool[] = [\n {\n name: 'list_inboxes',\n description: 'List inboxes',\n params_schema: ListItemsParams,\n func: listInboxes,\n },\n {\n name: 'get_inbox',\n description: 'Get inbox',\n params_schema: GetInboxParams,\n func: getInbox,\n },\n {\n name: 'create_inbox',\n description: 'Create inbox',\n params_schema: CreateInboxParams,\n func: createInbox,\n },\n {\n name: 'delete_inbox',\n description: 'Delete inbox',\n params_schema: GetInboxParams,\n func: deleteInbox,\n },\n {\n name: 'list_threads',\n description: 'List threads in inbox',\n params_schema: ListInboxItemsParams,\n func: listThreads,\n },\n {\n name: 'get_thread',\n description: 'Get thread',\n params_schema: GetThreadParams,\n func: getThread,\n },\n {\n name: 'get_attachment',\n description: 'Get attachment',\n params_schema: GetAttachmentParams,\n func: getAttachment,\n },\n {\n name: 'send_message',\n description: 'Send message',\n params_schema: SendMessageParams,\n func: sendMessage,\n },\n {\n name: 'reply_to_message',\n description: 'Reply to message',\n params_schema: ReplyToMessageParams,\n func: replyToMessage,\n },\n {\n name: 'update_message',\n description: 'Update message',\n params_schema: UpdateMessageParams,\n func: updateMessage,\n },\n]\n"],"mappings":"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","names":[]}