agentmail-toolkit 0.1.38 → 0.1.40
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 +62 -11
- package/dist/ai-sdk.cjs.map +1 -1
- package/dist/ai-sdk.d.cts +2 -1
- package/dist/ai-sdk.d.ts +2 -1
- package/dist/ai-sdk.js +1 -1
- package/dist/chunk-H5W3ICJE.js +224 -0
- package/dist/chunk-H5W3ICJE.js.map +1 -0
- package/dist/chunk-UWBHHJ2Z.js +274 -0
- package/dist/chunk-UWBHHJ2Z.js.map +1 -0
- package/dist/index.cjs +62 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -1
- package/dist/langchain.cjs +62 -11
- package/dist/langchain.cjs.map +1 -1
- package/dist/langchain.d.cts +2 -1
- package/dist/langchain.d.ts +2 -1
- package/dist/langchain.js +1 -1
- package/dist/mcp.cjs +63 -12
- package/dist/mcp.cjs.map +1 -1
- package/dist/mcp.d.cts +8 -12
- package/dist/mcp.d.ts +8 -12
- package/dist/mcp.js +2 -2
- package/dist/mcp.js.map +1 -1
- package/dist/toolkit-BBmENfEu.d.cts +28 -0
- package/dist/toolkit-BBmENfEu.d.ts +28 -0
- package/package.json +22 -7
package/dist/ai-sdk.cjs
CHANGED
|
@@ -83,7 +83,8 @@ var SendMessageParams = BaseMessageParams.extend({
|
|
|
83
83
|
subject: import_zod.z.string().optional().describe("Subject")
|
|
84
84
|
});
|
|
85
85
|
var ReplyToMessageParams = BaseMessageParams.extend({
|
|
86
|
-
messageId: MessageIdSchema
|
|
86
|
+
messageId: MessageIdSchema,
|
|
87
|
+
replyAll: import_zod.z.boolean().optional().describe("Reply to all recipients")
|
|
87
88
|
});
|
|
88
89
|
var UpdateMessageParams = import_zod.z.object({
|
|
89
90
|
inboxId: InboxIdSchema,
|
|
@@ -157,61 +158,111 @@ var tools = [
|
|
|
157
158
|
name: "list_inboxes",
|
|
158
159
|
description: "List inboxes",
|
|
159
160
|
paramsSchema: ListItemsParams,
|
|
160
|
-
func: listInboxes
|
|
161
|
+
func: listInboxes,
|
|
162
|
+
annotations: {
|
|
163
|
+
readOnlyHint: true,
|
|
164
|
+
openWorldHint: false
|
|
165
|
+
}
|
|
161
166
|
},
|
|
162
167
|
{
|
|
163
168
|
name: "get_inbox",
|
|
164
169
|
description: "Get inbox",
|
|
165
170
|
paramsSchema: GetInboxParams,
|
|
166
|
-
func: getInbox
|
|
171
|
+
func: getInbox,
|
|
172
|
+
annotations: {
|
|
173
|
+
readOnlyHint: true,
|
|
174
|
+
openWorldHint: false
|
|
175
|
+
}
|
|
167
176
|
},
|
|
168
177
|
{
|
|
169
178
|
name: "create_inbox",
|
|
170
179
|
description: "Create inbox",
|
|
171
180
|
paramsSchema: CreateInboxParams,
|
|
172
|
-
func: createInbox
|
|
181
|
+
func: createInbox,
|
|
182
|
+
annotations: {
|
|
183
|
+
readOnlyHint: false,
|
|
184
|
+
destructiveHint: false,
|
|
185
|
+
idempotentHint: false,
|
|
186
|
+
openWorldHint: false
|
|
187
|
+
}
|
|
173
188
|
},
|
|
174
189
|
{
|
|
175
190
|
name: "delete_inbox",
|
|
176
191
|
description: "Delete inbox",
|
|
177
192
|
paramsSchema: GetInboxParams,
|
|
178
|
-
func: deleteInbox
|
|
193
|
+
func: deleteInbox,
|
|
194
|
+
annotations: {
|
|
195
|
+
readOnlyHint: false,
|
|
196
|
+
destructiveHint: true,
|
|
197
|
+
idempotentHint: true,
|
|
198
|
+
openWorldHint: false
|
|
199
|
+
}
|
|
179
200
|
},
|
|
180
201
|
{
|
|
181
202
|
name: "list_threads",
|
|
182
203
|
description: "List threads in inbox",
|
|
183
204
|
paramsSchema: ListInboxItemsParams,
|
|
184
|
-
func: listThreads
|
|
205
|
+
func: listThreads,
|
|
206
|
+
annotations: {
|
|
207
|
+
readOnlyHint: true,
|
|
208
|
+
openWorldHint: true
|
|
209
|
+
}
|
|
185
210
|
},
|
|
186
211
|
{
|
|
187
212
|
name: "get_thread",
|
|
188
213
|
description: "Get thread",
|
|
189
214
|
paramsSchema: GetThreadParams,
|
|
190
|
-
func: getThread
|
|
215
|
+
func: getThread,
|
|
216
|
+
annotations: {
|
|
217
|
+
readOnlyHint: true,
|
|
218
|
+
openWorldHint: true
|
|
219
|
+
}
|
|
191
220
|
},
|
|
192
221
|
{
|
|
193
222
|
name: "get_attachment",
|
|
194
223
|
description: "Get attachment",
|
|
195
224
|
paramsSchema: GetAttachmentParams,
|
|
196
|
-
func: getAttachment
|
|
225
|
+
func: getAttachment,
|
|
226
|
+
annotations: {
|
|
227
|
+
readOnlyHint: true,
|
|
228
|
+
openWorldHint: true
|
|
229
|
+
}
|
|
197
230
|
},
|
|
198
231
|
{
|
|
199
232
|
name: "send_message",
|
|
200
233
|
description: "Send message",
|
|
201
234
|
paramsSchema: SendMessageParams,
|
|
202
|
-
func: sendMessage
|
|
235
|
+
func: sendMessage,
|
|
236
|
+
annotations: {
|
|
237
|
+
readOnlyHint: false,
|
|
238
|
+
destructiveHint: false,
|
|
239
|
+
idempotentHint: false,
|
|
240
|
+
openWorldHint: true
|
|
241
|
+
}
|
|
203
242
|
},
|
|
204
243
|
{
|
|
205
244
|
name: "reply_to_message",
|
|
206
245
|
description: "Reply to message",
|
|
207
246
|
paramsSchema: ReplyToMessageParams,
|
|
208
|
-
func: replyToMessage
|
|
247
|
+
func: replyToMessage,
|
|
248
|
+
annotations: {
|
|
249
|
+
readOnlyHint: false,
|
|
250
|
+
destructiveHint: false,
|
|
251
|
+
idempotentHint: false,
|
|
252
|
+
openWorldHint: true
|
|
253
|
+
}
|
|
209
254
|
},
|
|
210
255
|
{
|
|
211
256
|
name: "update_message",
|
|
212
257
|
description: "Update message",
|
|
213
258
|
paramsSchema: UpdateMessageParams,
|
|
214
|
-
func: updateMessage
|
|
259
|
+
func: updateMessage,
|
|
260
|
+
annotations: {
|
|
261
|
+
readOnlyHint: false,
|
|
262
|
+
destructiveHint: false,
|
|
263
|
+
idempotentHint: true,
|
|
264
|
+
openWorldHint: false
|
|
265
|
+
}
|
|
215
266
|
}
|
|
216
267
|
];
|
|
217
268
|
|
package/dist/ai-sdk.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ai-sdk.ts","../src/toolkit.ts","../src/schemas.ts","../src/functions.ts","../src/tools.ts","../src/util.ts"],"sourcesContent":["import { type Tool as AiSdkTool } from 'ai'\n\nimport { MapToolkit } from './toolkit.js'\nimport { type Tool } from './tools.js'\nimport { safeFunc } from './util.js'\n\nexport class AgentMailToolkit extends MapToolkit<AiSdkTool> {\n protected buildTool(tool: Tool): AiSdkTool {\n return {\n description: tool.description,\n inputSchema: tool.paramsSchema,\n execute: async (args) => (await safeFunc(tool.func, this.client, args)).result,\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","import { AgentMailClient } from 'agentmail'\n\nexport const safeFunc = async <T>(\n func: (client: AgentMailClient, args: Record<string, any>) => Promise<T>,\n client: AgentMailClient,\n args: Record<string, any>\n) => {\n try {\n return { isError: false, result: await func(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"],"mappings":"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","names":["mammoth"]}
|
|
1
|
+
{"version":3,"sources":["../src/ai-sdk.ts","../src/toolkit.ts","../src/schemas.ts","../src/functions.ts","../src/tools.ts","../src/util.ts"],"sourcesContent":["import { type Tool as AiSdkTool } from 'ai'\n\nimport { MapToolkit } from './toolkit.js'\nimport { type Tool } from './tools.js'\nimport { safeFunc } from './util.js'\n\nexport class AgentMailToolkit extends MapToolkit<AiSdkTool> {\n protected buildTool(tool: Tool): AiSdkTool {\n return {\n description: tool.description,\n inputSchema: tool.paramsSchema,\n execute: async (args) => (await safeFunc(tool.func, this.client, args)).result,\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 replyAll: z.boolean().optional().describe('Reply to all recipients'),\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'\nimport { type ToolAnnotations } from '@modelcontextprotocol/sdk/types.js'\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 annotations?: ToolAnnotations\n}\n\nexport const tools: Tool[] = [\n {\n name: 'list_inboxes',\n description: 'List inboxes',\n paramsSchema: ListItemsParams,\n func: listInboxes,\n annotations: {\n readOnlyHint: true,\n openWorldHint: false,\n },\n },\n {\n name: 'get_inbox',\n description: 'Get inbox',\n paramsSchema: GetInboxParams,\n func: getInbox,\n annotations: {\n readOnlyHint: true,\n openWorldHint: false,\n },\n },\n {\n name: 'create_inbox',\n description: 'Create inbox',\n paramsSchema: CreateInboxParams,\n func: createInbox,\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: false,\n },\n },\n {\n name: 'delete_inbox',\n description: 'Delete inbox',\n paramsSchema: GetInboxParams,\n func: deleteInbox,\n annotations: {\n readOnlyHint: false,\n destructiveHint: true,\n idempotentHint: true,\n openWorldHint: false,\n },\n },\n {\n name: 'list_threads',\n description: 'List threads in inbox',\n paramsSchema: ListInboxItemsParams,\n func: listThreads,\n annotations: {\n readOnlyHint: true,\n openWorldHint: true,\n },\n },\n {\n name: 'get_thread',\n description: 'Get thread',\n paramsSchema: GetThreadParams,\n func: getThread,\n annotations: {\n readOnlyHint: true,\n openWorldHint: true,\n },\n },\n {\n name: 'get_attachment',\n description: 'Get attachment',\n paramsSchema: GetAttachmentParams,\n func: getAttachment,\n annotations: {\n readOnlyHint: true,\n openWorldHint: true,\n },\n },\n {\n name: 'send_message',\n description: 'Send message',\n paramsSchema: SendMessageParams,\n func: sendMessage,\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n {\n name: 'reply_to_message',\n description: 'Reply to message',\n paramsSchema: ReplyToMessageParams,\n func: replyToMessage,\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: false,\n openWorldHint: true,\n },\n },\n {\n name: 'update_message',\n description: 'Update message',\n paramsSchema: UpdateMessageParams,\n func: updateMessage,\n annotations: {\n readOnlyHint: false,\n destructiveHint: false,\n idempotentHint: true,\n openWorldHint: false,\n },\n },\n]\n","import { AgentMailClient } from 'agentmail'\n\nexport const safeFunc = async <T>(\n func: (client: AgentMailClient, args: Record<string, any>) => Promise<T>,\n client: AgentMailClient,\n args: Record<string, any>\n) => {\n try {\n return { isError: false, result: await func(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"],"mappings":"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","names":["mammoth"]}
|
package/dist/ai-sdk.d.cts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Tool } from 'ai';
|
|
2
|
-
import { M as MapToolkit, T as Tool$1 } from './toolkit-
|
|
2
|
+
import { M as MapToolkit, T as Tool$1 } from './toolkit-BBmENfEu.cjs';
|
|
3
3
|
import 'agentmail';
|
|
4
4
|
import 'zod';
|
|
5
|
+
import '@modelcontextprotocol/sdk/types.js';
|
|
5
6
|
|
|
6
7
|
declare class AgentMailToolkit extends MapToolkit<Tool> {
|
|
7
8
|
protected buildTool(tool: Tool$1): Tool;
|
package/dist/ai-sdk.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Tool } from 'ai';
|
|
2
|
-
import { M as MapToolkit, T as Tool$1 } from './toolkit-
|
|
2
|
+
import { M as MapToolkit, T as Tool$1 } from './toolkit-BBmENfEu.js';
|
|
3
3
|
import 'agentmail';
|
|
4
4
|
import 'zod';
|
|
5
|
+
import '@modelcontextprotocol/sdk/types.js';
|
|
5
6
|
|
|
6
7
|
declare class AgentMailToolkit extends MapToolkit<Tool> {
|
|
7
8
|
protected buildTool(tool: Tool$1): Tool;
|
package/dist/ai-sdk.js
CHANGED
|
@@ -0,0 +1,224 @@
|
|
|
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
|
+
pageToken: z.string().optional().describe("Page token for pagination")
|
|
13
|
+
});
|
|
14
|
+
var GetInboxParams = z.object({
|
|
15
|
+
inboxId: InboxIdSchema
|
|
16
|
+
});
|
|
17
|
+
var CreateInboxParams = z.object({
|
|
18
|
+
username: z.string().optional().describe("Username"),
|
|
19
|
+
domain: z.string().optional().describe("Domain"),
|
|
20
|
+
displayName: z.string().optional().describe("Display name")
|
|
21
|
+
});
|
|
22
|
+
var ListInboxItemsParams = ListItemsParams.extend({
|
|
23
|
+
inboxId: InboxIdSchema,
|
|
24
|
+
labels: z.array(z.string()).optional().describe("Labels to filter items by"),
|
|
25
|
+
before: z.string().pipe(z.coerce.date()).optional().describe("Filter items before datetime"),
|
|
26
|
+
after: z.string().pipe(z.coerce.date()).optional().describe("Filter items after datetime")
|
|
27
|
+
});
|
|
28
|
+
var GetThreadParams = z.object({
|
|
29
|
+
inboxId: InboxIdSchema,
|
|
30
|
+
threadId: ThreadIdSchema
|
|
31
|
+
});
|
|
32
|
+
var GetAttachmentParams = z.object({
|
|
33
|
+
inboxId: InboxIdSchema,
|
|
34
|
+
threadId: ThreadIdSchema,
|
|
35
|
+
attachmentId: AttachmentIdSchema
|
|
36
|
+
});
|
|
37
|
+
var BaseMessageParams = z.object({
|
|
38
|
+
inboxId: 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
|
+
messageId: MessageIdSchema,
|
|
51
|
+
replyAll: z.boolean().optional().describe("Reply to all recipients")
|
|
52
|
+
});
|
|
53
|
+
var UpdateMessageParams = z.object({
|
|
54
|
+
inboxId: InboxIdSchema,
|
|
55
|
+
messageId: MessageIdSchema,
|
|
56
|
+
addLabels: z.array(z.string()).optional().describe("Labels to add"),
|
|
57
|
+
removeLabels: z.array(z.string()).optional().describe("Labels to remove")
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
// src/functions.ts
|
|
61
|
+
import { CanvasFactory } from "pdf-parse/worker";
|
|
62
|
+
import { PDFParse } from "pdf-parse";
|
|
63
|
+
import mammoth from "mammoth";
|
|
64
|
+
import { fileTypeFromBuffer } from "file-type";
|
|
65
|
+
async function listInboxes(client, args) {
|
|
66
|
+
return client.inboxes.list(args);
|
|
67
|
+
}
|
|
68
|
+
async function getInbox(client, args) {
|
|
69
|
+
const { inboxId, ...options } = args;
|
|
70
|
+
return client.inboxes.get(inboxId, options);
|
|
71
|
+
}
|
|
72
|
+
async function createInbox(client, args) {
|
|
73
|
+
return client.inboxes.create(args);
|
|
74
|
+
}
|
|
75
|
+
async function deleteInbox(client, args) {
|
|
76
|
+
const { inboxId } = args;
|
|
77
|
+
return client.inboxes.delete(inboxId);
|
|
78
|
+
}
|
|
79
|
+
async function listThreads(client, args) {
|
|
80
|
+
const { inboxId, ...options } = args;
|
|
81
|
+
return client.inboxes.threads.list(inboxId, options);
|
|
82
|
+
}
|
|
83
|
+
async function getThread(client, args) {
|
|
84
|
+
const { inboxId, threadId, ...options } = args;
|
|
85
|
+
return client.inboxes.threads.get(inboxId, threadId, options);
|
|
86
|
+
}
|
|
87
|
+
async function getAttachment(client, args) {
|
|
88
|
+
const { threadId, attachmentId } = args;
|
|
89
|
+
const response = await client.threads.getAttachment(threadId, attachmentId);
|
|
90
|
+
const fileBytes = Buffer.from(await response.arrayBuffer());
|
|
91
|
+
const fileKind = await fileTypeFromBuffer(fileBytes);
|
|
92
|
+
const fileType = fileKind?.mime;
|
|
93
|
+
let text = void 0;
|
|
94
|
+
if (fileType === "application/pdf") {
|
|
95
|
+
const parser = new PDFParse({ data: fileBytes, CanvasFactory });
|
|
96
|
+
const pdfData = await parser.getText();
|
|
97
|
+
text = pdfData.text;
|
|
98
|
+
} else if (fileType === "application/vnd.openxmlformats-officedocument.wordprocessingml.document") {
|
|
99
|
+
const result = await mammoth.extractRawText({ buffer: fileBytes });
|
|
100
|
+
text = result.value;
|
|
101
|
+
} else {
|
|
102
|
+
return { error: `Unsupported file type: ${fileType || "unknown"}`, fileType };
|
|
103
|
+
}
|
|
104
|
+
return { text, fileType };
|
|
105
|
+
}
|
|
106
|
+
async function sendMessage(client, args) {
|
|
107
|
+
const { inboxId, ...options } = args;
|
|
108
|
+
return client.inboxes.messages.send(inboxId, options);
|
|
109
|
+
}
|
|
110
|
+
async function replyToMessage(client, args) {
|
|
111
|
+
const { inboxId, messageId, ...options } = args;
|
|
112
|
+
return client.inboxes.messages.reply(inboxId, messageId, options);
|
|
113
|
+
}
|
|
114
|
+
async function updateMessage(client, args) {
|
|
115
|
+
const { inboxId, messageId, ...options } = args;
|
|
116
|
+
return client.inboxes.messages.update(inboxId, messageId, options);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// src/tools.ts
|
|
120
|
+
var tools = [
|
|
121
|
+
{
|
|
122
|
+
name: "list_inboxes",
|
|
123
|
+
description: "List inboxes",
|
|
124
|
+
paramsSchema: ListItemsParams,
|
|
125
|
+
func: listInboxes
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
name: "get_inbox",
|
|
129
|
+
description: "Get inbox",
|
|
130
|
+
paramsSchema: GetInboxParams,
|
|
131
|
+
func: getInbox
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
name: "create_inbox",
|
|
135
|
+
description: "Create inbox",
|
|
136
|
+
paramsSchema: CreateInboxParams,
|
|
137
|
+
func: createInbox
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
name: "delete_inbox",
|
|
141
|
+
description: "Delete inbox",
|
|
142
|
+
paramsSchema: GetInboxParams,
|
|
143
|
+
func: deleteInbox
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
name: "list_threads",
|
|
147
|
+
description: "List threads in inbox",
|
|
148
|
+
paramsSchema: ListInboxItemsParams,
|
|
149
|
+
func: listThreads
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
name: "get_thread",
|
|
153
|
+
description: "Get thread",
|
|
154
|
+
paramsSchema: GetThreadParams,
|
|
155
|
+
func: getThread
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
name: "get_attachment",
|
|
159
|
+
description: "Get attachment",
|
|
160
|
+
paramsSchema: GetAttachmentParams,
|
|
161
|
+
func: getAttachment
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
name: "send_message",
|
|
165
|
+
description: "Send message",
|
|
166
|
+
paramsSchema: SendMessageParams,
|
|
167
|
+
func: sendMessage
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
name: "reply_to_message",
|
|
171
|
+
description: "Reply to message",
|
|
172
|
+
paramsSchema: ReplyToMessageParams,
|
|
173
|
+
func: replyToMessage
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
name: "update_message",
|
|
177
|
+
description: "Update message",
|
|
178
|
+
paramsSchema: UpdateMessageParams,
|
|
179
|
+
func: updateMessage
|
|
180
|
+
}
|
|
181
|
+
];
|
|
182
|
+
|
|
183
|
+
// src/toolkit.ts
|
|
184
|
+
var BaseToolkit = class {
|
|
185
|
+
client;
|
|
186
|
+
tools = {};
|
|
187
|
+
constructor(client) {
|
|
188
|
+
this.client = client ?? new AgentMailClient();
|
|
189
|
+
this.tools = tools.reduce(
|
|
190
|
+
(acc, tool) => {
|
|
191
|
+
acc[tool.name] = this.buildTool(tool);
|
|
192
|
+
return acc;
|
|
193
|
+
},
|
|
194
|
+
{}
|
|
195
|
+
);
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
var ListToolkit = class extends BaseToolkit {
|
|
199
|
+
getTools(names) {
|
|
200
|
+
if (!names) return Object.values(this.tools);
|
|
201
|
+
return names.reduce((acc, name) => {
|
|
202
|
+
if (name in this.tools) acc.push(this.tools[name]);
|
|
203
|
+
return acc;
|
|
204
|
+
}, []);
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
var MapToolkit = class extends BaseToolkit {
|
|
208
|
+
getTools(names) {
|
|
209
|
+
if (!names) return this.tools;
|
|
210
|
+
return names.reduce(
|
|
211
|
+
(acc, name) => {
|
|
212
|
+
if (name in this.tools) acc[name] = this.tools[name];
|
|
213
|
+
return acc;
|
|
214
|
+
},
|
|
215
|
+
{}
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
export {
|
|
221
|
+
ListToolkit,
|
|
222
|
+
MapToolkit
|
|
223
|
+
};
|
|
224
|
+
//# sourceMappingURL=chunk-H5W3ICJE.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 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 replyAll: z.boolean().optional().describe('Reply to all recipients'),\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":[]}
|