agentmail-toolkit 0.1.36 → 0.1.37
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.
- package/dist/ai-sdk.cjs +46 -49
- package/dist/ai-sdk.cjs.map +1 -1
- package/dist/ai-sdk.d.cts +1 -1
- package/dist/ai-sdk.d.ts +1 -1
- package/dist/ai-sdk.js +2 -2
- package/dist/ai-sdk.js.map +1 -1
- package/dist/{chunk-CBDDCV4F.js → chunk-4T5LKBWD.js} +46 -49
- package/dist/chunk-4T5LKBWD.js.map +1 -0
- package/dist/index.cjs +46 -49
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/langchain.cjs +48 -51
- package/dist/langchain.cjs.map +1 -1
- package/dist/langchain.d.cts +2 -2
- package/dist/langchain.d.ts +2 -2
- package/dist/langchain.js +3 -3
- package/dist/langchain.js.map +1 -1
- package/dist/mcp.cjs +46 -49
- package/dist/mcp.cjs.map +1 -1
- package/dist/mcp.d.cts +1 -1
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.js +2 -2
- package/dist/mcp.js.map +1 -1
- package/dist/{toolkit--KYFOIry.d.cts → toolkit-CzHjKNIf.d.cts} +1 -1
- package/dist/{toolkit--KYFOIry.d.ts → toolkit-CzHjKNIf.d.ts} +1 -1
- package/package.json +11 -5
- package/dist/chunk-4RMN5TYL.js +0 -225
- package/dist/chunk-4RMN5TYL.js.map +0 -1
- package/dist/chunk-CBDDCV4F.js.map +0 -1
- package/dist/chunk-EG4CIZEG.js +0 -225
- package/dist/chunk-EG4CIZEG.js.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -45,33 +45,33 @@ var MessageIdSchema = import_zod.z.string().describe("ID of message");
|
|
|
45
45
|
var AttachmentIdSchema = import_zod.z.string().describe("ID of attachment");
|
|
46
46
|
var ListItemsParams = import_zod.z.object({
|
|
47
47
|
limit: import_zod.z.number().optional().default(10).describe("Max number of items to return"),
|
|
48
|
-
|
|
48
|
+
pageToken: import_zod.z.string().optional().describe("Page token for pagination")
|
|
49
49
|
});
|
|
50
50
|
var GetInboxParams = import_zod.z.object({
|
|
51
|
-
|
|
51
|
+
inboxId: InboxIdSchema
|
|
52
52
|
});
|
|
53
53
|
var CreateInboxParams = import_zod.z.object({
|
|
54
54
|
username: import_zod.z.string().optional().describe("Username"),
|
|
55
55
|
domain: import_zod.z.string().optional().describe("Domain"),
|
|
56
|
-
|
|
56
|
+
displayName: import_zod.z.string().optional().describe("Display name")
|
|
57
57
|
});
|
|
58
58
|
var ListInboxItemsParams = ListItemsParams.extend({
|
|
59
|
-
|
|
59
|
+
inboxId: InboxIdSchema,
|
|
60
60
|
labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to filter items by"),
|
|
61
|
-
before: import_zod.z.string().optional().describe("Filter items before datetime"),
|
|
62
|
-
after: import_zod.z.string().optional().describe("Filter items after datetime")
|
|
61
|
+
before: import_zod.z.string().pipe(import_zod.z.coerce.date()).optional().describe("Filter items before datetime"),
|
|
62
|
+
after: import_zod.z.string().pipe(import_zod.z.coerce.date()).optional().describe("Filter items after datetime")
|
|
63
63
|
});
|
|
64
64
|
var GetThreadParams = import_zod.z.object({
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
inboxId: InboxIdSchema,
|
|
66
|
+
threadId: ThreadIdSchema
|
|
67
67
|
});
|
|
68
68
|
var GetAttachmentParams = import_zod.z.object({
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
inboxId: InboxIdSchema,
|
|
70
|
+
threadId: ThreadIdSchema,
|
|
71
|
+
attachmentId: AttachmentIdSchema
|
|
72
72
|
});
|
|
73
73
|
var BaseMessageParams = import_zod.z.object({
|
|
74
|
-
|
|
74
|
+
inboxId: InboxIdSchema,
|
|
75
75
|
text: import_zod.z.string().optional().describe("Plain text body"),
|
|
76
76
|
html: import_zod.z.string().optional().describe("HTML body"),
|
|
77
77
|
labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels")
|
|
@@ -83,13 +83,13 @@ var SendMessageParams = BaseMessageParams.extend({
|
|
|
83
83
|
subject: import_zod.z.string().optional().describe("Subject")
|
|
84
84
|
});
|
|
85
85
|
var ReplyToMessageParams = BaseMessageParams.extend({
|
|
86
|
-
|
|
86
|
+
messageId: MessageIdSchema
|
|
87
87
|
});
|
|
88
88
|
var UpdateMessageParams = import_zod.z.object({
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
inboxId: InboxIdSchema,
|
|
90
|
+
messageId: MessageIdSchema,
|
|
91
|
+
addLabels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to add"),
|
|
92
|
+
removeLabels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to remove")
|
|
93
93
|
});
|
|
94
94
|
|
|
95
95
|
// src/functions.ts
|
|
@@ -101,27 +101,27 @@ async function listInboxes(client, args) {
|
|
|
101
101
|
return client.inboxes.list(args);
|
|
102
102
|
}
|
|
103
103
|
async function getInbox(client, args) {
|
|
104
|
-
const {
|
|
105
|
-
return client.inboxes.get(
|
|
104
|
+
const { inboxId, ...options } = args;
|
|
105
|
+
return client.inboxes.get(inboxId, options);
|
|
106
106
|
}
|
|
107
107
|
async function createInbox(client, args) {
|
|
108
108
|
return client.inboxes.create(args);
|
|
109
109
|
}
|
|
110
110
|
async function deleteInbox(client, args) {
|
|
111
|
-
const {
|
|
112
|
-
return client.inboxes.delete(
|
|
111
|
+
const { inboxId } = args;
|
|
112
|
+
return client.inboxes.delete(inboxId);
|
|
113
113
|
}
|
|
114
114
|
async function listThreads(client, args) {
|
|
115
|
-
const {
|
|
116
|
-
return client.inboxes.threads.list(
|
|
115
|
+
const { inboxId, ...options } = args;
|
|
116
|
+
return client.inboxes.threads.list(inboxId, options);
|
|
117
117
|
}
|
|
118
118
|
async function getThread(client, args) {
|
|
119
|
-
const {
|
|
120
|
-
return client.inboxes.threads.get(
|
|
119
|
+
const { inboxId, threadId, ...options } = args;
|
|
120
|
+
return client.inboxes.threads.get(inboxId, threadId, options);
|
|
121
121
|
}
|
|
122
122
|
async function getAttachment(client, args) {
|
|
123
|
-
const {
|
|
124
|
-
const response = await client.threads.getAttachment(
|
|
123
|
+
const { threadId, attachmentId } = args;
|
|
124
|
+
const response = await client.threads.getAttachment(threadId, attachmentId);
|
|
125
125
|
const fileBytes = Buffer.from(await response.arrayBuffer());
|
|
126
126
|
const fileKind = await (0, import_file_type.fileTypeFromBuffer)(fileBytes);
|
|
127
127
|
const fileType = fileKind?.mime;
|
|
@@ -134,24 +134,21 @@ async function getAttachment(client, args) {
|
|
|
134
134
|
const result = await import_mammoth.default.extractRawText({ buffer: fileBytes });
|
|
135
135
|
text = result.value;
|
|
136
136
|
} else {
|
|
137
|
-
return {
|
|
138
|
-
error: `Unsupported file type: ${fileType || "unknown"}`,
|
|
139
|
-
file_type: fileType
|
|
140
|
-
};
|
|
137
|
+
return { error: `Unsupported file type: ${fileType || "unknown"}`, fileType };
|
|
141
138
|
}
|
|
142
|
-
return { text,
|
|
139
|
+
return { text, fileType };
|
|
143
140
|
}
|
|
144
141
|
async function sendMessage(client, args) {
|
|
145
|
-
const {
|
|
146
|
-
return client.inboxes.messages.send(
|
|
142
|
+
const { inboxId, ...options } = args;
|
|
143
|
+
return client.inboxes.messages.send(inboxId, options);
|
|
147
144
|
}
|
|
148
145
|
async function replyToMessage(client, args) {
|
|
149
|
-
const {
|
|
150
|
-
return client.inboxes.messages.reply(
|
|
146
|
+
const { inboxId, messageId, ...options } = args;
|
|
147
|
+
return client.inboxes.messages.reply(inboxId, messageId, options);
|
|
151
148
|
}
|
|
152
149
|
async function updateMessage(client, args) {
|
|
153
|
-
const {
|
|
154
|
-
return client.inboxes.messages.update(
|
|
150
|
+
const { inboxId, messageId, ...options } = args;
|
|
151
|
+
return client.inboxes.messages.update(inboxId, messageId, options);
|
|
155
152
|
}
|
|
156
153
|
|
|
157
154
|
// src/tools.ts
|
|
@@ -159,61 +156,61 @@ var tools = [
|
|
|
159
156
|
{
|
|
160
157
|
name: "list_inboxes",
|
|
161
158
|
description: "List inboxes",
|
|
162
|
-
|
|
159
|
+
paramsSchema: ListItemsParams,
|
|
163
160
|
func: listInboxes
|
|
164
161
|
},
|
|
165
162
|
{
|
|
166
163
|
name: "get_inbox",
|
|
167
164
|
description: "Get inbox",
|
|
168
|
-
|
|
165
|
+
paramsSchema: GetInboxParams,
|
|
169
166
|
func: getInbox
|
|
170
167
|
},
|
|
171
168
|
{
|
|
172
169
|
name: "create_inbox",
|
|
173
170
|
description: "Create inbox",
|
|
174
|
-
|
|
171
|
+
paramsSchema: CreateInboxParams,
|
|
175
172
|
func: createInbox
|
|
176
173
|
},
|
|
177
174
|
{
|
|
178
175
|
name: "delete_inbox",
|
|
179
176
|
description: "Delete inbox",
|
|
180
|
-
|
|
177
|
+
paramsSchema: GetInboxParams,
|
|
181
178
|
func: deleteInbox
|
|
182
179
|
},
|
|
183
180
|
{
|
|
184
181
|
name: "list_threads",
|
|
185
182
|
description: "List threads in inbox",
|
|
186
|
-
|
|
183
|
+
paramsSchema: ListInboxItemsParams,
|
|
187
184
|
func: listThreads
|
|
188
185
|
},
|
|
189
186
|
{
|
|
190
187
|
name: "get_thread",
|
|
191
188
|
description: "Get thread",
|
|
192
|
-
|
|
189
|
+
paramsSchema: GetThreadParams,
|
|
193
190
|
func: getThread
|
|
194
191
|
},
|
|
195
192
|
{
|
|
196
193
|
name: "get_attachment",
|
|
197
194
|
description: "Get attachment",
|
|
198
|
-
|
|
195
|
+
paramsSchema: GetAttachmentParams,
|
|
199
196
|
func: getAttachment
|
|
200
197
|
},
|
|
201
198
|
{
|
|
202
199
|
name: "send_message",
|
|
203
200
|
description: "Send message",
|
|
204
|
-
|
|
201
|
+
paramsSchema: SendMessageParams,
|
|
205
202
|
func: sendMessage
|
|
206
203
|
},
|
|
207
204
|
{
|
|
208
205
|
name: "reply_to_message",
|
|
209
206
|
description: "Reply to message",
|
|
210
|
-
|
|
207
|
+
paramsSchema: ReplyToMessageParams,
|
|
211
208
|
func: replyToMessage
|
|
212
209
|
},
|
|
213
210
|
{
|
|
214
211
|
name: "update_message",
|
|
215
212
|
description: "Update message",
|
|
216
|
-
|
|
213
|
+
paramsSchema: UpdateMessageParams,
|
|
217
214
|
func: updateMessage
|
|
218
215
|
}
|
|
219
216
|
];
|
|
@@ -249,7 +246,7 @@ var AgentMailToolkit = class extends ListToolkit {
|
|
|
249
246
|
return {
|
|
250
247
|
name: tool.name,
|
|
251
248
|
description: tool.description,
|
|
252
|
-
|
|
249
|
+
paramsSchema: tool.paramsSchema,
|
|
253
250
|
func: (args) => tool.func(this.client, args)
|
|
254
251
|
};
|
|
255
252
|
}
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/toolkit.ts","../src/schemas.ts","../src/functions.ts","../src/tools.ts"],"sourcesContent":["import { z } from 'zod'\n\nimport { ListToolkit } from './toolkit.js'\nimport { type Tool as BaseTool } from './tools.js'\n\ntype Tool = {\n name: string\n description: string\n params_schema: z.ZodObject<any>\n func: (args: any) => Promise<any>\n}\n\nexport class AgentMailToolkit extends ListToolkit<Tool> {\n protected buildTool(tool: BaseTool) {\n return {\n name: tool.name,\n description: tool.description,\n params_schema: tool.params_schema,\n func: (args: z.infer<typeof tool.params_schema>) => tool.func(this.client, args),\n }\n }\n}\n","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 { CanvasFactory } from 'pdf-parse/worker'\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, CanvasFactory })\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 params_schema: z.ZodObject<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":["mammoth"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/toolkit.ts","../src/schemas.ts","../src/functions.ts","../src/tools.ts"],"sourcesContent":["import { z } from 'zod'\n\nimport { ListToolkit } from './toolkit.js'\nimport { type Tool as BaseTool } from './tools.js'\n\ntype Tool = {\n name: string\n description: string\n paramsSchema: z.ZodObject<any>\n func: (args: any) => Promise<any>\n}\n\nexport class AgentMailToolkit extends ListToolkit<Tool> {\n protected buildTool(tool: BaseTool) {\n return {\n name: tool.name,\n description: tool.description,\n paramsSchema: tool.paramsSchema,\n func: (args: z.infer<typeof tool.paramsSchema>) => tool.func(this.client, args),\n }\n }\n}\n","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 pageToken: z.string().optional().describe('Page token for pagination'),\n})\n\nexport const GetInboxParams = z.object({\n inboxId: InboxIdSchema,\n})\n\nexport const CreateInboxParams = z.object({\n username: z.string().optional().describe('Username'),\n domain: z.string().optional().describe('Domain'),\n displayName: z.string().optional().describe('Display name'),\n})\n\nexport const ListInboxItemsParams = ListItemsParams.extend({\n inboxId: InboxIdSchema,\n labels: z.array(z.string()).optional().describe('Labels to filter items by'),\n before: z.string().pipe(z.coerce.date()).optional().describe('Filter items before datetime'),\n after: z.string().pipe(z.coerce.date()).optional().describe('Filter items after datetime'),\n})\n\nexport const GetThreadParams = z.object({\n inboxId: InboxIdSchema,\n threadId: ThreadIdSchema,\n})\n\nexport const GetAttachmentParams = z.object({\n inboxId: InboxIdSchema,\n threadId: ThreadIdSchema,\n attachmentId: AttachmentIdSchema,\n})\n\nconst BaseMessageParams = z.object({\n inboxId: 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 messageId: MessageIdSchema,\n})\n\nexport const UpdateMessageParams = z.object({\n inboxId: InboxIdSchema,\n messageId: MessageIdSchema,\n addLabels: z.array(z.string()).optional().describe('Labels to add'),\n removeLabels: z.array(z.string()).optional().describe('Labels to remove'),\n})\n","import { AgentMailClient } from 'agentmail'\nimport { CanvasFactory } from 'pdf-parse/worker'\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 fileType?: 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 { inboxId, ...options } = args\n return client.inboxes.get(inboxId, 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 { inboxId } = args\n return client.inboxes.delete(inboxId)\n}\n\nexport async function listThreads(client: AgentMailClient, args: Args) {\n const { inboxId, ...options } = args\n return client.inboxes.threads.list(inboxId, options)\n}\n\nexport async function getThread(client: AgentMailClient, args: Args) {\n const { inboxId, threadId, ...options } = args\n return client.inboxes.threads.get(inboxId, threadId, options)\n}\n\nexport async function getAttachment(client: AgentMailClient, args: Args): Promise<Attachment> {\n const { threadId, attachmentId } = args\n\n const response = await client.threads.getAttachment(threadId, attachmentId)\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, CanvasFactory })\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 { error: `Unsupported file type: ${fileType || 'unknown'}`, fileType }\n }\n\n return { text, fileType }\n}\n\nexport async function sendMessage(client: AgentMailClient, args: Args) {\n const { inboxId, ...options } = args\n return client.inboxes.messages.send(inboxId, options)\n}\n\nexport async function replyToMessage(client: AgentMailClient, args: Args) {\n const { inboxId, messageId, ...options } = args\n return client.inboxes.messages.reply(inboxId, messageId, options)\n}\n\nexport async function updateMessage(client: AgentMailClient, args: Args) {\n const { inboxId, messageId, ...options } = args\n return client.inboxes.messages.update(inboxId, messageId, 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 paramsSchema: z.ZodObject<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 paramsSchema: ListItemsParams,\n func: listInboxes,\n },\n {\n name: 'get_inbox',\n description: 'Get inbox',\n paramsSchema: GetInboxParams,\n func: getInbox,\n },\n {\n name: 'create_inbox',\n description: 'Create inbox',\n paramsSchema: CreateInboxParams,\n func: createInbox,\n },\n {\n name: 'delete_inbox',\n description: 'Delete inbox',\n paramsSchema: GetInboxParams,\n func: deleteInbox,\n },\n {\n name: 'list_threads',\n description: 'List threads in inbox',\n paramsSchema: ListInboxItemsParams,\n func: listThreads,\n },\n {\n name: 'get_thread',\n description: 'Get thread',\n paramsSchema: GetThreadParams,\n func: getThread,\n },\n {\n name: 'get_attachment',\n description: 'Get attachment',\n paramsSchema: GetAttachmentParams,\n func: getAttachment,\n },\n {\n name: 'send_message',\n description: 'Send message',\n paramsSchema: SendMessageParams,\n func: sendMessage,\n },\n {\n name: 'reply_to_message',\n description: 'Reply to message',\n paramsSchema: ReplyToMessageParams,\n func: replyToMessage,\n },\n {\n name: 'update_message',\n description: 'Update message',\n paramsSchema: UpdateMessageParams,\n func: updateMessage,\n },\n]\n"],"mappings":"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","names":["mammoth"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { L as ListToolkit, T as Tool$1 } from './toolkit
|
|
2
|
+
import { L as ListToolkit, T as Tool$1 } from './toolkit-CzHjKNIf.cjs';
|
|
3
3
|
import 'agentmail';
|
|
4
4
|
|
|
5
5
|
type Tool = {
|
|
6
6
|
name: string;
|
|
7
7
|
description: string;
|
|
8
|
-
|
|
8
|
+
paramsSchema: z.ZodObject<any>;
|
|
9
9
|
func: (args: any) => Promise<any>;
|
|
10
10
|
};
|
|
11
11
|
declare class AgentMailToolkit extends ListToolkit<Tool> {
|
|
12
12
|
protected buildTool(tool: Tool$1): {
|
|
13
13
|
name: string;
|
|
14
14
|
description: string;
|
|
15
|
-
|
|
16
|
-
func: (args: z.infer<typeof tool.
|
|
15
|
+
paramsSchema: z.ZodObject<any, z.core.$strip>;
|
|
16
|
+
func: (args: z.infer<typeof tool.paramsSchema>) => Promise<any>;
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { L as ListToolkit, T as Tool$1 } from './toolkit
|
|
2
|
+
import { L as ListToolkit, T as Tool$1 } from './toolkit-CzHjKNIf.js';
|
|
3
3
|
import 'agentmail';
|
|
4
4
|
|
|
5
5
|
type Tool = {
|
|
6
6
|
name: string;
|
|
7
7
|
description: string;
|
|
8
|
-
|
|
8
|
+
paramsSchema: z.ZodObject<any>;
|
|
9
9
|
func: (args: any) => Promise<any>;
|
|
10
10
|
};
|
|
11
11
|
declare class AgentMailToolkit extends ListToolkit<Tool> {
|
|
12
12
|
protected buildTool(tool: Tool$1): {
|
|
13
13
|
name: string;
|
|
14
14
|
description: string;
|
|
15
|
-
|
|
16
|
-
func: (args: z.infer<typeof tool.
|
|
15
|
+
paramsSchema: z.ZodObject<any, z.core.$strip>;
|
|
16
|
+
func: (args: z.infer<typeof tool.paramsSchema>) => Promise<any>;
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ListToolkit
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-4T5LKBWD.js";
|
|
4
4
|
|
|
5
5
|
// src/index.ts
|
|
6
6
|
var AgentMailToolkit = class extends ListToolkit {
|
|
@@ -8,7 +8,7 @@ var AgentMailToolkit = class extends ListToolkit {
|
|
|
8
8
|
return {
|
|
9
9
|
name: tool.name,
|
|
10
10
|
description: tool.description,
|
|
11
|
-
|
|
11
|
+
paramsSchema: tool.paramsSchema,
|
|
12
12
|
func: (args) => tool.func(this.client, args)
|
|
13
13
|
};
|
|
14
14
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { z } from 'zod'\n\nimport { ListToolkit } from './toolkit.js'\nimport { type Tool as BaseTool } from './tools.js'\n\ntype Tool = {\n name: string\n description: string\n
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { z } from 'zod'\n\nimport { ListToolkit } from './toolkit.js'\nimport { type Tool as BaseTool } from './tools.js'\n\ntype Tool = {\n name: string\n description: string\n paramsSchema: z.ZodObject<any>\n func: (args: any) => Promise<any>\n}\n\nexport class AgentMailToolkit extends ListToolkit<Tool> {\n protected buildTool(tool: BaseTool) {\n return {\n name: tool.name,\n description: tool.description,\n paramsSchema: tool.paramsSchema,\n func: (args: z.infer<typeof tool.paramsSchema>) => tool.func(this.client, args),\n }\n }\n}\n"],"mappings":";;;;;AAYO,IAAM,mBAAN,cAA+B,YAAkB;AAAA,EAC1C,UAAU,MAAgB;AAChC,WAAO;AAAA,MACH,MAAM,KAAK;AAAA,MACX,aAAa,KAAK;AAAA,MAClB,cAAc,KAAK;AAAA,MACnB,MAAM,CAAC,SAA4C,KAAK,KAAK,KAAK,QAAQ,IAAI;AAAA,IAClF;AAAA,EACJ;AACJ;","names":[]}
|
package/dist/langchain.cjs
CHANGED
|
@@ -33,7 +33,7 @@ __export(langchain_exports, {
|
|
|
33
33
|
AgentMailToolkit: () => AgentMailToolkit
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(langchain_exports);
|
|
36
|
-
var
|
|
36
|
+
var import_langchain = require("langchain");
|
|
37
37
|
|
|
38
38
|
// src/toolkit.ts
|
|
39
39
|
var import_agentmail = require("agentmail");
|
|
@@ -46,33 +46,33 @@ var MessageIdSchema = import_zod.z.string().describe("ID of message");
|
|
|
46
46
|
var AttachmentIdSchema = import_zod.z.string().describe("ID of attachment");
|
|
47
47
|
var ListItemsParams = import_zod.z.object({
|
|
48
48
|
limit: import_zod.z.number().optional().default(10).describe("Max number of items to return"),
|
|
49
|
-
|
|
49
|
+
pageToken: import_zod.z.string().optional().describe("Page token for pagination")
|
|
50
50
|
});
|
|
51
51
|
var GetInboxParams = import_zod.z.object({
|
|
52
|
-
|
|
52
|
+
inboxId: InboxIdSchema
|
|
53
53
|
});
|
|
54
54
|
var CreateInboxParams = import_zod.z.object({
|
|
55
55
|
username: import_zod.z.string().optional().describe("Username"),
|
|
56
56
|
domain: import_zod.z.string().optional().describe("Domain"),
|
|
57
|
-
|
|
57
|
+
displayName: import_zod.z.string().optional().describe("Display name")
|
|
58
58
|
});
|
|
59
59
|
var ListInboxItemsParams = ListItemsParams.extend({
|
|
60
|
-
|
|
60
|
+
inboxId: InboxIdSchema,
|
|
61
61
|
labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to filter items by"),
|
|
62
|
-
before: import_zod.z.string().optional().describe("Filter items before datetime"),
|
|
63
|
-
after: import_zod.z.string().optional().describe("Filter items after datetime")
|
|
62
|
+
before: import_zod.z.string().pipe(import_zod.z.coerce.date()).optional().describe("Filter items before datetime"),
|
|
63
|
+
after: import_zod.z.string().pipe(import_zod.z.coerce.date()).optional().describe("Filter items after datetime")
|
|
64
64
|
});
|
|
65
65
|
var GetThreadParams = import_zod.z.object({
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
inboxId: InboxIdSchema,
|
|
67
|
+
threadId: ThreadIdSchema
|
|
68
68
|
});
|
|
69
69
|
var GetAttachmentParams = import_zod.z.object({
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
inboxId: InboxIdSchema,
|
|
71
|
+
threadId: ThreadIdSchema,
|
|
72
|
+
attachmentId: AttachmentIdSchema
|
|
73
73
|
});
|
|
74
74
|
var BaseMessageParams = import_zod.z.object({
|
|
75
|
-
|
|
75
|
+
inboxId: InboxIdSchema,
|
|
76
76
|
text: import_zod.z.string().optional().describe("Plain text body"),
|
|
77
77
|
html: import_zod.z.string().optional().describe("HTML body"),
|
|
78
78
|
labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels")
|
|
@@ -84,13 +84,13 @@ var SendMessageParams = BaseMessageParams.extend({
|
|
|
84
84
|
subject: import_zod.z.string().optional().describe("Subject")
|
|
85
85
|
});
|
|
86
86
|
var ReplyToMessageParams = BaseMessageParams.extend({
|
|
87
|
-
|
|
87
|
+
messageId: MessageIdSchema
|
|
88
88
|
});
|
|
89
89
|
var UpdateMessageParams = import_zod.z.object({
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
90
|
+
inboxId: InboxIdSchema,
|
|
91
|
+
messageId: MessageIdSchema,
|
|
92
|
+
addLabels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to add"),
|
|
93
|
+
removeLabels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to remove")
|
|
94
94
|
});
|
|
95
95
|
|
|
96
96
|
// src/functions.ts
|
|
@@ -102,27 +102,27 @@ async function listInboxes(client, args) {
|
|
|
102
102
|
return client.inboxes.list(args);
|
|
103
103
|
}
|
|
104
104
|
async function getInbox(client, args) {
|
|
105
|
-
const {
|
|
106
|
-
return client.inboxes.get(
|
|
105
|
+
const { inboxId, ...options } = args;
|
|
106
|
+
return client.inboxes.get(inboxId, options);
|
|
107
107
|
}
|
|
108
108
|
async function createInbox(client, args) {
|
|
109
109
|
return client.inboxes.create(args);
|
|
110
110
|
}
|
|
111
111
|
async function deleteInbox(client, args) {
|
|
112
|
-
const {
|
|
113
|
-
return client.inboxes.delete(
|
|
112
|
+
const { inboxId } = args;
|
|
113
|
+
return client.inboxes.delete(inboxId);
|
|
114
114
|
}
|
|
115
115
|
async function listThreads(client, args) {
|
|
116
|
-
const {
|
|
117
|
-
return client.inboxes.threads.list(
|
|
116
|
+
const { inboxId, ...options } = args;
|
|
117
|
+
return client.inboxes.threads.list(inboxId, options);
|
|
118
118
|
}
|
|
119
119
|
async function getThread(client, args) {
|
|
120
|
-
const {
|
|
121
|
-
return client.inboxes.threads.get(
|
|
120
|
+
const { inboxId, threadId, ...options } = args;
|
|
121
|
+
return client.inboxes.threads.get(inboxId, threadId, options);
|
|
122
122
|
}
|
|
123
123
|
async function getAttachment(client, args) {
|
|
124
|
-
const {
|
|
125
|
-
const response = await client.threads.getAttachment(
|
|
124
|
+
const { threadId, attachmentId } = args;
|
|
125
|
+
const response = await client.threads.getAttachment(threadId, attachmentId);
|
|
126
126
|
const fileBytes = Buffer.from(await response.arrayBuffer());
|
|
127
127
|
const fileKind = await (0, import_file_type.fileTypeFromBuffer)(fileBytes);
|
|
128
128
|
const fileType = fileKind?.mime;
|
|
@@ -135,24 +135,21 @@ async function getAttachment(client, args) {
|
|
|
135
135
|
const result = await import_mammoth.default.extractRawText({ buffer: fileBytes });
|
|
136
136
|
text = result.value;
|
|
137
137
|
} else {
|
|
138
|
-
return {
|
|
139
|
-
error: `Unsupported file type: ${fileType || "unknown"}`,
|
|
140
|
-
file_type: fileType
|
|
141
|
-
};
|
|
138
|
+
return { error: `Unsupported file type: ${fileType || "unknown"}`, fileType };
|
|
142
139
|
}
|
|
143
|
-
return { text,
|
|
140
|
+
return { text, fileType };
|
|
144
141
|
}
|
|
145
142
|
async function sendMessage(client, args) {
|
|
146
|
-
const {
|
|
147
|
-
return client.inboxes.messages.send(
|
|
143
|
+
const { inboxId, ...options } = args;
|
|
144
|
+
return client.inboxes.messages.send(inboxId, options);
|
|
148
145
|
}
|
|
149
146
|
async function replyToMessage(client, args) {
|
|
150
|
-
const {
|
|
151
|
-
return client.inboxes.messages.reply(
|
|
147
|
+
const { inboxId, messageId, ...options } = args;
|
|
148
|
+
return client.inboxes.messages.reply(inboxId, messageId, options);
|
|
152
149
|
}
|
|
153
150
|
async function updateMessage(client, args) {
|
|
154
|
-
const {
|
|
155
|
-
return client.inboxes.messages.update(
|
|
151
|
+
const { inboxId, messageId, ...options } = args;
|
|
152
|
+
return client.inboxes.messages.update(inboxId, messageId, options);
|
|
156
153
|
}
|
|
157
154
|
|
|
158
155
|
// src/tools.ts
|
|
@@ -160,61 +157,61 @@ var tools = [
|
|
|
160
157
|
{
|
|
161
158
|
name: "list_inboxes",
|
|
162
159
|
description: "List inboxes",
|
|
163
|
-
|
|
160
|
+
paramsSchema: ListItemsParams,
|
|
164
161
|
func: listInboxes
|
|
165
162
|
},
|
|
166
163
|
{
|
|
167
164
|
name: "get_inbox",
|
|
168
165
|
description: "Get inbox",
|
|
169
|
-
|
|
166
|
+
paramsSchema: GetInboxParams,
|
|
170
167
|
func: getInbox
|
|
171
168
|
},
|
|
172
169
|
{
|
|
173
170
|
name: "create_inbox",
|
|
174
171
|
description: "Create inbox",
|
|
175
|
-
|
|
172
|
+
paramsSchema: CreateInboxParams,
|
|
176
173
|
func: createInbox
|
|
177
174
|
},
|
|
178
175
|
{
|
|
179
176
|
name: "delete_inbox",
|
|
180
177
|
description: "Delete inbox",
|
|
181
|
-
|
|
178
|
+
paramsSchema: GetInboxParams,
|
|
182
179
|
func: deleteInbox
|
|
183
180
|
},
|
|
184
181
|
{
|
|
185
182
|
name: "list_threads",
|
|
186
183
|
description: "List threads in inbox",
|
|
187
|
-
|
|
184
|
+
paramsSchema: ListInboxItemsParams,
|
|
188
185
|
func: listThreads
|
|
189
186
|
},
|
|
190
187
|
{
|
|
191
188
|
name: "get_thread",
|
|
192
189
|
description: "Get thread",
|
|
193
|
-
|
|
190
|
+
paramsSchema: GetThreadParams,
|
|
194
191
|
func: getThread
|
|
195
192
|
},
|
|
196
193
|
{
|
|
197
194
|
name: "get_attachment",
|
|
198
195
|
description: "Get attachment",
|
|
199
|
-
|
|
196
|
+
paramsSchema: GetAttachmentParams,
|
|
200
197
|
func: getAttachment
|
|
201
198
|
},
|
|
202
199
|
{
|
|
203
200
|
name: "send_message",
|
|
204
201
|
description: "Send message",
|
|
205
|
-
|
|
202
|
+
paramsSchema: SendMessageParams,
|
|
206
203
|
func: sendMessage
|
|
207
204
|
},
|
|
208
205
|
{
|
|
209
206
|
name: "reply_to_message",
|
|
210
207
|
description: "Reply to message",
|
|
211
|
-
|
|
208
|
+
paramsSchema: ReplyToMessageParams,
|
|
212
209
|
func: replyToMessage
|
|
213
210
|
},
|
|
214
211
|
{
|
|
215
212
|
name: "update_message",
|
|
216
213
|
description: "Update message",
|
|
217
|
-
|
|
214
|
+
paramsSchema: UpdateMessageParams,
|
|
218
215
|
func: updateMessage
|
|
219
216
|
}
|
|
220
217
|
];
|
|
@@ -257,10 +254,10 @@ var safeFunc = async (func, client, args) => {
|
|
|
257
254
|
// src/langchain.ts
|
|
258
255
|
var AgentMailToolkit = class extends ListToolkit {
|
|
259
256
|
buildTool(tool) {
|
|
260
|
-
return (0,
|
|
257
|
+
return (0, import_langchain.tool)(async (args) => JSON.stringify((await safeFunc(tool.func, this.client, args)).result, null, 2), {
|
|
261
258
|
name: tool.name,
|
|
262
259
|
description: tool.description,
|
|
263
|
-
schema: tool.
|
|
260
|
+
schema: tool.paramsSchema
|
|
264
261
|
});
|
|
265
262
|
}
|
|
266
263
|
};
|