agentmail-toolkit 0.1.23 → 0.1.25

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.js CHANGED
@@ -56,6 +56,10 @@ var ListItemsParams = import_zod.z.object({
56
56
  limit: import_zod.z.number().optional().describe("Max number of items to return"),
57
57
  page_token: import_zod.z.string().optional().describe("Page token for pagination")
58
58
  });
59
+ var ListInboxItemsParams = ListItemsParams.extend({
60
+ labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to filter items by"),
61
+ ascending: import_zod.z.boolean().optional().describe("Sort items in ascending order")
62
+ });
59
63
  var GetInboxParams = import_zod.z.object({
60
64
  inbox_id: import_zod.z.string().describe("ID of inbox to get")
61
65
  });
@@ -64,17 +68,14 @@ var CreateInboxParams = import_zod.z.object({
64
68
  domain: import_zod.z.string().optional().describe("Domain of inbox to create"),
65
69
  display_name: import_zod.z.string().optional().describe("Display name of inbox to create")
66
70
  });
67
- var ListThreadsParams = ListItemsParams.extend({
68
- inbox_id: import_zod.z.string().describe("ID of inbox to list threads from"),
69
- labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to filter threads by")
71
+ var ListThreadsParams = ListInboxItemsParams.extend({
72
+ inbox_id: import_zod.z.string().describe("ID of inbox to list threads from")
70
73
  });
71
74
  var GetThreadParams = import_zod.z.object({
72
- inbox_id: import_zod.z.string().describe("ID of inbox to get thread from"),
73
75
  thread_id: import_zod.z.string().describe("ID of thread to get")
74
76
  });
75
- var ListMessagesParams = ListItemsParams.extend({
76
- inbox_id: import_zod.z.string().describe("ID of inbox to list messages from"),
77
- labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to filter messages by")
77
+ var ListMessagesParams = ListInboxItemsParams.extend({
78
+ inbox_id: import_zod.z.string().describe("ID of inbox to list messages from")
78
79
  });
79
80
  var GetMessageParams = import_zod.z.object({
80
81
  inbox_id: import_zod.z.string().describe("ID of inbox to get message from"),
@@ -87,13 +88,44 @@ var SendMessageParams = import_zod.z.object({
87
88
  bcc: import_zod.z.array(import_zod.z.string()).optional().describe("BCC recipients of message"),
88
89
  subject: import_zod.z.string().optional().describe("Subject of message"),
89
90
  text: import_zod.z.string().optional().describe("Plain text body of message"),
90
- html: import_zod.z.string().optional().describe("HTML body of message")
91
+ html: import_zod.z.string().optional().describe("HTML body of message"),
92
+ labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to add to message")
91
93
  });
92
94
  var ReplyToMessageParams = import_zod.z.object({
93
95
  inbox_id: import_zod.z.string().describe("ID of inbox to reply to message from"),
94
96
  message_id: import_zod.z.string().describe("ID of message to reply to"),
95
97
  text: import_zod.z.string().optional().describe("Plain text body of reply"),
96
- html: import_zod.z.string().optional().describe("HTML body of reply")
98
+ html: import_zod.z.string().optional().describe("HTML body of reply"),
99
+ labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to add to reply")
100
+ });
101
+ var UpdateMessageParams = import_zod.z.object({
102
+ inbox_id: import_zod.z.string().describe("ID of inbox to update message from"),
103
+ message_id: import_zod.z.string().describe("ID of message to update"),
104
+ add_labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to add to message"),
105
+ remove_labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to remove from message")
106
+ });
107
+ var ListDraftsParams = ListInboxItemsParams.extend({
108
+ inbox_id: import_zod.z.string().describe("ID of inbox to list drafts from")
109
+ });
110
+ var GetDraftParams = import_zod.z.object({
111
+ inbox_id: import_zod.z.string().describe("ID of inbox to get draft from"),
112
+ draft_id: import_zod.z.string().describe("ID of draft to get")
113
+ });
114
+ var CreateDraftParams = import_zod.z.object({
115
+ inbox_id: import_zod.z.string().describe("ID of inbox to create draft from"),
116
+ to: import_zod.z.array(import_zod.z.string()).describe("Recipients of draft"),
117
+ cc: import_zod.z.array(import_zod.z.string()).optional().describe("CC recipients of draft"),
118
+ bcc: import_zod.z.array(import_zod.z.string()).optional().describe("BCC recipients of draft"),
119
+ subject: import_zod.z.string().optional().describe("Subject of draft"),
120
+ text: import_zod.z.string().optional().describe("Plain text body of draft"),
121
+ html: import_zod.z.string().optional().describe("HTML body of draft"),
122
+ labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to add to draft")
123
+ });
124
+ var SendDraftParams = import_zod.z.object({
125
+ inbox_id: import_zod.z.string().describe("ID of inbox to send draft from"),
126
+ draft_id: import_zod.z.string().describe("ID of draft to send"),
127
+ add_labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to add to sent message"),
128
+ remove_labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to remove from sent message")
97
129
  });
98
130
 
99
131
  // src/tools.ts
@@ -113,7 +145,7 @@ var tools = [
113
145
  {
114
146
  name: "create_inbox",
115
147
  method: "inboxes.create",
116
- description: "Create inbox. Use default username, domain, and display name unless otherwise specified.",
148
+ description: "Create inbox",
117
149
  schema: CreateInboxParams
118
150
  },
119
151
  {
@@ -122,9 +154,15 @@ var tools = [
122
154
  description: "List threads in inbox",
123
155
  schema: ListThreadsParams
124
156
  },
157
+ {
158
+ name: "list_all_threads",
159
+ method: "threads.list",
160
+ description: "List threads in all inboxes",
161
+ schema: ListInboxItemsParams
162
+ },
125
163
  {
126
164
  name: "get_thread",
127
- method: "inboxes.threads.get",
165
+ method: "threads.get",
128
166
  description: "Get thread",
129
167
  schema: GetThreadParams
130
168
  },
@@ -151,6 +189,42 @@ var tools = [
151
189
  method: "inboxes.messages.reply",
152
190
  description: "Reply to message",
153
191
  schema: ReplyToMessageParams
192
+ },
193
+ {
194
+ name: "update_message",
195
+ method: "inboxes.messages.update",
196
+ description: "Update message",
197
+ schema: UpdateMessageParams
198
+ },
199
+ {
200
+ name: "list_drafts",
201
+ method: "inboxes.drafts.list",
202
+ description: "List drafts in inbox",
203
+ schema: ListDraftsParams
204
+ },
205
+ {
206
+ name: "list_all_drafts",
207
+ method: "drafts.list",
208
+ description: "List drafts in all inboxes",
209
+ schema: ListInboxItemsParams
210
+ },
211
+ {
212
+ name: "get_draft",
213
+ method: "drafts.get",
214
+ description: "Get draft",
215
+ schema: GetDraftParams
216
+ },
217
+ {
218
+ name: "create_draft",
219
+ method: "inboxes.drafts.create",
220
+ description: "Create draft",
221
+ schema: CreateDraftParams
222
+ },
223
+ {
224
+ name: "send_draft",
225
+ method: "inboxes.drafts.send",
226
+ description: "Send draft",
227
+ schema: SendDraftParams
154
228
  }
155
229
  ];
156
230
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ai-sdk.ts","../src/wrapper.ts","../src/schemas.ts","../src/tools.ts","../src/toolkit.ts"],"sourcesContent":["import { type Tool as AiSdkTool } from 'ai'\n\nimport { MapToolkit } from './toolkit'\nimport { type Tool } from './tools'\n\nexport class AgentMailToolkit extends MapToolkit<AiSdkTool> {\n protected buildTool(tool: Tool): AiSdkTool {\n return {\n description: tool.description,\n parameters: tool.schema,\n execute: async (args) => (await this.safeCall(tool.method, args)).result,\n }\n }\n}\n","import { AgentMailClient } from 'agentmail'\n\nexport class Wrapper {\n constructor(private readonly client = new AgentMailClient()) {}\n\n public async call(method: string, args: any) {\n const parts = method.split('.')\n const methodKey = parts.pop()\n\n if (!methodKey) throw new Error('Method name empty')\n\n let parent: any = this.client\n for (const part of parts) parent = parent[part]\n\n const { inbox_id, thread_id, message_id, draft_id, attachment_id, ...options } = args\n const methodArgs = [inbox_id, thread_id, message_id, draft_id, attachment_id, options].filter(Boolean)\n\n return await parent[methodKey].call(parent, ...methodArgs)\n }\n\n public async safeCall(method: string, args: any) {\n try {\n return { isError: false, result: await this.call(method, 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","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 GetInboxParams = z.object({\n inbox_id: z.string().describe('ID of inbox to get'),\n})\n\nexport const CreateInboxParams = z.object({\n username: z.string().optional().describe('Username of inbox to create'),\n domain: z.string().optional().describe('Domain of inbox to create'),\n display_name: z.string().optional().describe('Display name of inbox to create'),\n})\n\nexport const ListThreadsParams = ListItemsParams.extend({\n inbox_id: z.string().describe('ID of inbox to list threads from'),\n labels: z.array(z.string()).optional().describe('Labels to filter threads by'),\n})\n\nexport const GetThreadParams = z.object({\n inbox_id: z.string().describe('ID of inbox to get thread from'),\n thread_id: z.string().describe('ID of thread to get'),\n})\n\nexport const ListMessagesParams = ListItemsParams.extend({\n inbox_id: z.string().describe('ID of inbox to list messages from'),\n labels: z.array(z.string()).optional().describe('Labels to filter messages by'),\n})\n\nexport const GetMessageParams = z.object({\n inbox_id: z.string().describe('ID of inbox to get message from'),\n message_id: z.string().describe('ID of message to get'),\n})\n\nexport const SendMessageParams = z.object({\n inbox_id: z.string().describe('ID of inbox to send message from'),\n to: z.array(z.string()).describe('Recipients of message'),\n cc: z.array(z.string()).optional().describe('CC recipients of message'),\n bcc: z.array(z.string()).optional().describe('BCC recipients of message'),\n subject: z.string().optional().describe('Subject of message'),\n text: z.string().optional().describe('Plain text body of message'),\n html: z.string().optional().describe('HTML body of message'),\n})\n\nexport const ReplyToMessageParams = z.object({\n inbox_id: z.string().describe('ID of inbox to reply to message from'),\n message_id: z.string().describe('ID of message to reply to'),\n text: z.string().optional().describe('Plain text body of reply'),\n html: z.string().optional().describe('HTML body of reply'),\n})\n","import { AnyZodObject } from 'zod'\n\nimport {\n ListItemsParams,\n GetInboxParams,\n CreateInboxParams,\n ListThreadsParams,\n GetThreadParams,\n ListMessagesParams,\n GetMessageParams,\n SendMessageParams,\n ReplyToMessageParams,\n} from './schemas'\n\nexport interface Tool {\n name: string\n method: string\n description: string\n schema: AnyZodObject\n}\n\nexport const tools: Tool[] = [\n {\n name: 'list_inboxes',\n method: 'inboxes.list',\n description: 'List inboxes',\n schema: ListItemsParams,\n },\n {\n name: 'get_inbox',\n method: 'inboxes.get',\n description: 'Get inbox',\n schema: GetInboxParams,\n },\n {\n name: 'create_inbox',\n method: 'inboxes.create',\n description: 'Create inbox. Use default username, domain, and display name unless otherwise specified.',\n schema: CreateInboxParams,\n },\n {\n name: 'list_threads',\n method: 'inboxes.threads.list',\n description: 'List threads in inbox',\n schema: ListThreadsParams,\n },\n {\n name: 'get_thread',\n method: 'inboxes.threads.get',\n description: 'Get thread',\n schema: GetThreadParams,\n },\n {\n name: 'list_messages',\n method: 'inboxes.messages.list',\n description: 'List messages in inbox',\n schema: ListMessagesParams,\n },\n {\n name: 'get_message',\n method: 'inboxes.messages.get',\n description: 'Get message',\n schema: GetMessageParams,\n },\n {\n name: 'send_message',\n method: 'inboxes.messages.send',\n description: 'Send message',\n schema: SendMessageParams,\n },\n {\n name: 'reply_to_message',\n method: 'inboxes.messages.reply',\n description: 'Reply to message',\n schema: ReplyToMessageParams,\n },\n]\n","import { AgentMailClient } from 'agentmail'\n\nimport { Wrapper } from './wrapper'\nimport { type Tool, tools } from './tools'\n\nexport abstract class BaseToolkit<T> extends Wrapper {\n protected readonly tools: Record<string, T> = {}\n\n constructor(client?: AgentMailClient) {\n super(client)\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"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/ai-sdk.ts","../src/wrapper.ts","../src/schemas.ts","../src/tools.ts","../src/toolkit.ts"],"sourcesContent":["import { type Tool as AiSdkTool } from 'ai'\n\nimport { MapToolkit } from './toolkit'\nimport { type Tool } from './tools'\n\nexport class AgentMailToolkit extends MapToolkit<AiSdkTool> {\n protected buildTool(tool: Tool): AiSdkTool {\n return {\n description: tool.description,\n parameters: tool.schema,\n execute: async (args) => (await this.safeCall(tool.method, args)).result,\n }\n }\n}\n","import { AgentMailClient } from 'agentmail'\n\nexport class Wrapper {\n constructor(private readonly client = new AgentMailClient()) {}\n\n public async call(method: string, args: any) {\n const parts = method.split('.')\n const methodKey = parts.pop()\n\n if (!methodKey) throw new Error('Method name empty')\n\n let parent: any = this.client\n for (const part of parts) parent = parent[part]\n\n const { inbox_id, thread_id, message_id, draft_id, attachment_id, ...options } = args\n const methodArgs = [inbox_id, thread_id, message_id, draft_id, attachment_id, options].filter(Boolean)\n\n return await parent[methodKey].call(parent, ...methodArgs)\n }\n\n public async safeCall(method: string, args: any) {\n try {\n return { isError: false, result: await this.call(method, 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","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 labels: z.array(z.string()).optional().describe('Labels to filter items by'),\n ascending: z.boolean().optional().describe('Sort items in ascending order'),\n})\n\nexport const GetInboxParams = z.object({\n inbox_id: z.string().describe('ID of inbox to get'),\n})\n\nexport const CreateInboxParams = z.object({\n username: z.string().optional().describe('Username of inbox to create'),\n domain: z.string().optional().describe('Domain of inbox to create'),\n display_name: z.string().optional().describe('Display name of inbox to create'),\n})\n\nexport const ListThreadsParams = ListInboxItemsParams.extend({\n inbox_id: z.string().describe('ID of inbox to list threads from'),\n})\n\nexport const GetThreadParams = z.object({\n thread_id: z.string().describe('ID of thread to get'),\n})\n\nexport const ListMessagesParams = ListInboxItemsParams.extend({\n inbox_id: z.string().describe('ID of inbox to list messages from'),\n})\n\nexport const GetMessageParams = z.object({\n inbox_id: z.string().describe('ID of inbox to get message from'),\n message_id: z.string().describe('ID of message to get'),\n})\n\nexport const SendMessageParams = z.object({\n inbox_id: z.string().describe('ID of inbox to send message from'),\n to: z.array(z.string()).describe('Recipients of message'),\n cc: z.array(z.string()).optional().describe('CC recipients of message'),\n bcc: z.array(z.string()).optional().describe('BCC recipients of message'),\n subject: z.string().optional().describe('Subject of message'),\n text: z.string().optional().describe('Plain text body of message'),\n html: z.string().optional().describe('HTML body of message'),\n labels: z.array(z.string()).optional().describe('Labels to add to message'),\n})\n\nexport const ReplyToMessageParams = z.object({\n inbox_id: z.string().describe('ID of inbox to reply to message from'),\n message_id: z.string().describe('ID of message to reply to'),\n text: z.string().optional().describe('Plain text body of reply'),\n html: z.string().optional().describe('HTML body of reply'),\n labels: z.array(z.string()).optional().describe('Labels to add to reply'),\n})\n\nexport const UpdateMessageParams = z.object({\n inbox_id: z.string().describe('ID of inbox to update message from'),\n message_id: z.string().describe('ID of message to update'),\n add_labels: z.array(z.string()).optional().describe('Labels to add to message'),\n remove_labels: z.array(z.string()).optional().describe('Labels to remove from message'),\n})\n\nexport const ListDraftsParams = ListInboxItemsParams.extend({\n inbox_id: z.string().describe('ID of inbox to list drafts from'),\n})\n\nexport const GetDraftParams = z.object({\n inbox_id: z.string().describe('ID of inbox to get draft from'),\n draft_id: z.string().describe('ID of draft to get'),\n})\n\nexport const CreateDraftParams = z.object({\n inbox_id: z.string().describe('ID of inbox to create draft from'),\n to: z.array(z.string()).describe('Recipients of draft'),\n cc: z.array(z.string()).optional().describe('CC recipients of draft'),\n bcc: z.array(z.string()).optional().describe('BCC recipients of draft'),\n subject: z.string().optional().describe('Subject of draft'),\n text: z.string().optional().describe('Plain text body of draft'),\n html: z.string().optional().describe('HTML body of draft'),\n labels: z.array(z.string()).optional().describe('Labels to add to draft'),\n})\n\nexport const SendDraftParams = z.object({\n inbox_id: z.string().describe('ID of inbox to send draft from'),\n draft_id: z.string().describe('ID of draft to send'),\n add_labels: z.array(z.string()).optional().describe('Labels to add to sent message'),\n remove_labels: z.array(z.string()).optional().describe('Labels to remove from sent message'),\n})\n","import { AnyZodObject } from 'zod'\n\nimport {\n ListItemsParams,\n ListInboxItemsParams,\n GetInboxParams,\n CreateInboxParams,\n ListThreadsParams,\n GetThreadParams,\n ListMessagesParams,\n GetMessageParams,\n SendMessageParams,\n ReplyToMessageParams,\n UpdateMessageParams,\n ListDraftsParams,\n GetDraftParams,\n CreateDraftParams,\n SendDraftParams,\n} from './schemas'\n\nexport interface Tool {\n name: string\n method: string\n description: string\n schema: AnyZodObject\n}\n\nexport const tools: Tool[] = [\n {\n name: 'list_inboxes',\n method: 'inboxes.list',\n description: 'List inboxes',\n schema: ListItemsParams,\n },\n {\n name: 'get_inbox',\n method: 'inboxes.get',\n description: 'Get inbox',\n schema: GetInboxParams,\n },\n {\n name: 'create_inbox',\n method: 'inboxes.create',\n description: 'Create inbox',\n schema: CreateInboxParams,\n },\n {\n name: 'list_threads',\n method: 'inboxes.threads.list',\n description: 'List threads in inbox',\n schema: ListThreadsParams,\n },\n {\n name: 'list_all_threads',\n method: 'threads.list',\n description: 'List threads in all inboxes',\n schema: ListInboxItemsParams,\n },\n {\n name: 'get_thread',\n method: 'threads.get',\n description: 'Get thread',\n schema: GetThreadParams,\n },\n {\n name: 'list_messages',\n method: 'inboxes.messages.list',\n description: 'List messages in inbox',\n schema: ListMessagesParams,\n },\n {\n name: 'get_message',\n method: 'inboxes.messages.get',\n description: 'Get message',\n schema: GetMessageParams,\n },\n {\n name: 'send_message',\n method: 'inboxes.messages.send',\n description: 'Send message',\n schema: SendMessageParams,\n },\n {\n name: 'reply_to_message',\n method: 'inboxes.messages.reply',\n description: 'Reply to message',\n schema: ReplyToMessageParams,\n },\n {\n name: 'update_message',\n method: 'inboxes.messages.update',\n description: 'Update message',\n schema: UpdateMessageParams,\n },\n {\n name: 'list_drafts',\n method: 'inboxes.drafts.list',\n description: 'List drafts in inbox',\n schema: ListDraftsParams,\n },\n {\n name: 'list_all_drafts',\n method: 'drafts.list',\n description: 'List drafts in all inboxes',\n schema: ListInboxItemsParams,\n },\n {\n name: 'get_draft',\n method: 'drafts.get',\n description: 'Get draft',\n schema: GetDraftParams,\n },\n {\n name: 'create_draft',\n method: 'inboxes.drafts.create',\n description: 'Create draft',\n schema: CreateDraftParams,\n },\n {\n name: 'send_draft',\n method: 'inboxes.drafts.send',\n description: 'Send draft',\n schema: SendDraftParams,\n },\n]\n","import { AgentMailClient } from 'agentmail'\n\nimport { Wrapper } from './wrapper'\nimport { type Tool, tools } from './tools'\n\nexport abstract class BaseToolkit<T> extends Wrapper {\n protected readonly tools: Record<string, T> = {}\n\n constructor(client?: AgentMailClient) {\n super(client)\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"],"mappings":"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","names":[]}
package/dist/ai-sdk.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  MapToolkit
3
- } from "./chunk-VI3J3SMQ.mjs";
4
- import "./chunk-CIU3KR25.mjs";
3
+ } from "./chunk-EZFSHUCP.mjs";
4
+ import "./chunk-HKK5SMM3.mjs";
5
5
 
6
6
  // src/ai-sdk.ts
7
7
  var AgentMailToolkit = class extends MapToolkit {
@@ -0,0 +1,71 @@
1
+ import {
2
+ tools
3
+ } from "./chunk-VRB6MXGP.mjs";
4
+
5
+ // src/wrapper.ts
6
+ import { AgentMailClient } from "agentmail";
7
+ var Wrapper = class {
8
+ constructor(client = new AgentMailClient()) {
9
+ this.client = client;
10
+ }
11
+ async call(method, args) {
12
+ const parts = method.split(".");
13
+ const methodKey = parts.pop();
14
+ if (!methodKey) throw new Error("Method name empty");
15
+ let parent = this.client;
16
+ for (const part of parts) parent = parent[part];
17
+ const { inbox_id, thread_id, message_id, draft_id, attachment_id, ...options } = args;
18
+ const methodArgs = [inbox_id, thread_id, message_id, draft_id, attachment_id, options].filter(Boolean);
19
+ return await parent[methodKey].call(parent, ...methodArgs);
20
+ }
21
+ async safeCall(method, args) {
22
+ try {
23
+ return { isError: false, result: await this.call(method, args) };
24
+ } catch (error) {
25
+ if (error instanceof Error) return { isError: true, result: error.message };
26
+ else return { isError: true, result: "Unknown error" };
27
+ }
28
+ }
29
+ };
30
+
31
+ // src/toolkit.ts
32
+ var BaseToolkit = class extends Wrapper {
33
+ tools = {};
34
+ constructor(client) {
35
+ super(client);
36
+ this.tools = tools.reduce(
37
+ (acc, tool) => {
38
+ acc[tool.name] = this.buildTool(tool);
39
+ return acc;
40
+ },
41
+ {}
42
+ );
43
+ }
44
+ };
45
+ var ListToolkit = class extends BaseToolkit {
46
+ getTools(names) {
47
+ if (!names) return Object.values(this.tools);
48
+ return names.reduce((acc, name) => {
49
+ if (name in this.tools) acc.push(this.tools[name]);
50
+ return acc;
51
+ }, []);
52
+ }
53
+ };
54
+ var MapToolkit = class extends BaseToolkit {
55
+ getTools(names) {
56
+ if (!names) return this.tools;
57
+ return names.reduce(
58
+ (acc, name) => {
59
+ if (name in this.tools) acc[name] = this.tools[name];
60
+ return acc;
61
+ },
62
+ {}
63
+ );
64
+ }
65
+ };
66
+
67
+ export {
68
+ ListToolkit,
69
+ MapToolkit
70
+ };
71
+ //# sourceMappingURL=chunk-4RC3NT5Y.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/wrapper.ts","../src/toolkit.ts"],"sourcesContent":["import { AgentMailClient } from 'agentmail'\n\nexport class Wrapper {\n constructor(private readonly client = new AgentMailClient()) {}\n\n public async call(method: string, args: any) {\n const parts = method.split('.')\n const methodKey = parts.pop()\n\n if (!methodKey) throw new Error('Method name empty')\n\n let parent: any = this.client\n for (const part of parts) parent = parent[part]\n\n const { inbox_id, thread_id, message_id, draft_id, attachment_id, ...options } = args\n const methodArgs = [inbox_id, thread_id, message_id, draft_id, attachment_id, options].filter(Boolean)\n\n return await parent[methodKey].call(parent, ...methodArgs)\n }\n\n public async safeCall(method: string, args: any) {\n try {\n return { isError: false, result: await this.call(method, 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","import { AgentMailClient } from 'agentmail'\n\nimport { Wrapper } from './wrapper'\nimport { type Tool, tools } from './tools'\n\nexport abstract class BaseToolkit<T> extends Wrapper {\n protected readonly tools: Record<string, T> = {}\n\n constructor(client?: AgentMailClient) {\n super(client)\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"],"mappings":";;;;;AAAA,SAAS,uBAAuB;AAEzB,IAAM,UAAN,MAAc;AAAA,EACjB,YAA6B,SAAS,IAAI,gBAAgB,GAAG;AAAhC;AAAA,EAAiC;AAAA,EAE9D,MAAa,KAAK,QAAgB,MAAW;AACzC,UAAM,QAAQ,OAAO,MAAM,GAAG;AAC9B,UAAM,YAAY,MAAM,IAAI;AAE5B,QAAI,CAAC,UAAW,OAAM,IAAI,MAAM,mBAAmB;AAEnD,QAAI,SAAc,KAAK;AACvB,eAAW,QAAQ,MAAO,UAAS,OAAO,IAAI;AAE9C,UAAM,EAAE,UAAU,WAAW,YAAY,UAAU,eAAe,GAAG,QAAQ,IAAI;AACjF,UAAM,aAAa,CAAC,UAAU,WAAW,YAAY,UAAU,eAAe,OAAO,EAAE,OAAO,OAAO;AAErG,WAAO,MAAM,OAAO,SAAS,EAAE,KAAK,QAAQ,GAAG,UAAU;AAAA,EAC7D;AAAA,EAEA,MAAa,SAAS,QAAgB,MAAW;AAC7C,QAAI;AACA,aAAO,EAAE,SAAS,OAAO,QAAQ,MAAM,KAAK,KAAK,QAAQ,IAAI,EAAE;AAAA,IACnE,SAAS,OAAO;AACZ,UAAI,iBAAiB,MAAO,QAAO,EAAE,SAAS,MAAM,QAAQ,MAAM,QAAQ;AAAA,UACrE,QAAO,EAAE,SAAS,MAAM,QAAQ,gBAAgB;AAAA,IACzD;AAAA,EACJ;AACJ;;;ACvBO,IAAe,cAAf,cAAsC,QAAQ;AAAA,EAC9B,QAA2B,CAAC;AAAA,EAE/C,YAAY,QAA0B;AAClC,UAAM,MAAM;AAEZ,SAAK,QAAQ,MAAM;AAAA,MACf,CAAC,KAAK,SAAS;AACX,YAAI,KAAK,IAAI,IAAI,KAAK,UAAU,IAAI;AACpC,eAAO;AAAA,MACX;AAAA,MACA,CAAC;AAAA,IACL;AAAA,EACJ;AAGJ;AAEO,IAAe,cAAf,cAAsC,YAAe;AAAA,EACjD,SAAS,OAAkB;AAC9B,QAAI,CAAC,MAAO,QAAO,OAAO,OAAO,KAAK,KAAK;AAE3C,WAAO,MAAM,OAAO,CAAC,KAAK,SAAS;AAC/B,UAAI,QAAQ,KAAK,MAAO,KAAI,KAAK,KAAK,MAAM,IAAI,CAAC;AACjD,aAAO;AAAA,IACX,GAAG,CAAC,CAAQ;AAAA,EAChB;AACJ;AAEO,IAAe,aAAf,cAAqC,YAAe;AAAA,EAChD,SAAS,OAAkB;AAC9B,QAAI,CAAC,MAAO,QAAO,KAAK;AAExB,WAAO,MAAM;AAAA,MACT,CAAC,KAAK,SAAS;AACX,YAAI,QAAQ,KAAK,MAAO,KAAI,IAAI,IAAI,KAAK,MAAM,IAAI;AACnD,eAAO;AAAA,MACX;AAAA,MACA,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;","names":[]}
@@ -0,0 +1,71 @@
1
+ import {
2
+ tools
3
+ } from "./chunk-HKK5SMM3.mjs";
4
+
5
+ // src/wrapper.ts
6
+ import { AgentMailClient } from "agentmail";
7
+ var Wrapper = class {
8
+ constructor(client = new AgentMailClient()) {
9
+ this.client = client;
10
+ }
11
+ async call(method, args) {
12
+ const parts = method.split(".");
13
+ const methodKey = parts.pop();
14
+ if (!methodKey) throw new Error("Method name empty");
15
+ let parent = this.client;
16
+ for (const part of parts) parent = parent[part];
17
+ const { inbox_id, thread_id, message_id, draft_id, attachment_id, ...options } = args;
18
+ const methodArgs = [inbox_id, thread_id, message_id, draft_id, attachment_id, options].filter(Boolean);
19
+ return await parent[methodKey].call(parent, ...methodArgs);
20
+ }
21
+ async safeCall(method, args) {
22
+ try {
23
+ return { isError: false, result: await this.call(method, args) };
24
+ } catch (error) {
25
+ if (error instanceof Error) return { isError: true, result: error.message };
26
+ else return { isError: true, result: "Unknown error" };
27
+ }
28
+ }
29
+ };
30
+
31
+ // src/toolkit.ts
32
+ var BaseToolkit = class extends Wrapper {
33
+ tools = {};
34
+ constructor(client) {
35
+ super(client);
36
+ this.tools = tools.reduce(
37
+ (acc, tool) => {
38
+ acc[tool.name] = this.buildTool(tool);
39
+ return acc;
40
+ },
41
+ {}
42
+ );
43
+ }
44
+ };
45
+ var ListToolkit = class extends BaseToolkit {
46
+ getTools(names) {
47
+ if (!names) return Object.values(this.tools);
48
+ return names.reduce((acc, name) => {
49
+ if (name in this.tools) acc.push(this.tools[name]);
50
+ return acc;
51
+ }, []);
52
+ }
53
+ };
54
+ var MapToolkit = class extends BaseToolkit {
55
+ getTools(names) {
56
+ if (!names) return this.tools;
57
+ return names.reduce(
58
+ (acc, name) => {
59
+ if (name in this.tools) acc[name] = this.tools[name];
60
+ return acc;
61
+ },
62
+ {}
63
+ );
64
+ }
65
+ };
66
+
67
+ export {
68
+ ListToolkit,
69
+ MapToolkit
70
+ };
71
+ //# sourceMappingURL=chunk-EZFSHUCP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/wrapper.ts","../src/toolkit.ts"],"sourcesContent":["import { AgentMailClient } from 'agentmail'\n\nexport class Wrapper {\n constructor(private readonly client = new AgentMailClient()) {}\n\n public async call(method: string, args: any) {\n const parts = method.split('.')\n const methodKey = parts.pop()\n\n if (!methodKey) throw new Error('Method name empty')\n\n let parent: any = this.client\n for (const part of parts) parent = parent[part]\n\n const { inbox_id, thread_id, message_id, draft_id, attachment_id, ...options } = args\n const methodArgs = [inbox_id, thread_id, message_id, draft_id, attachment_id, options].filter(Boolean)\n\n return await parent[methodKey].call(parent, ...methodArgs)\n }\n\n public async safeCall(method: string, args: any) {\n try {\n return { isError: false, result: await this.call(method, 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","import { AgentMailClient } from 'agentmail'\n\nimport { Wrapper } from './wrapper'\nimport { type Tool, tools } from './tools'\n\nexport abstract class BaseToolkit<T> extends Wrapper {\n protected readonly tools: Record<string, T> = {}\n\n constructor(client?: AgentMailClient) {\n super(client)\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"],"mappings":";;;;;AAAA,SAAS,uBAAuB;AAEzB,IAAM,UAAN,MAAc;AAAA,EACjB,YAA6B,SAAS,IAAI,gBAAgB,GAAG;AAAhC;AAAA,EAAiC;AAAA,EAE9D,MAAa,KAAK,QAAgB,MAAW;AACzC,UAAM,QAAQ,OAAO,MAAM,GAAG;AAC9B,UAAM,YAAY,MAAM,IAAI;AAE5B,QAAI,CAAC,UAAW,OAAM,IAAI,MAAM,mBAAmB;AAEnD,QAAI,SAAc,KAAK;AACvB,eAAW,QAAQ,MAAO,UAAS,OAAO,IAAI;AAE9C,UAAM,EAAE,UAAU,WAAW,YAAY,UAAU,eAAe,GAAG,QAAQ,IAAI;AACjF,UAAM,aAAa,CAAC,UAAU,WAAW,YAAY,UAAU,eAAe,OAAO,EAAE,OAAO,OAAO;AAErG,WAAO,MAAM,OAAO,SAAS,EAAE,KAAK,QAAQ,GAAG,UAAU;AAAA,EAC7D;AAAA,EAEA,MAAa,SAAS,QAAgB,MAAW;AAC7C,QAAI;AACA,aAAO,EAAE,SAAS,OAAO,QAAQ,MAAM,KAAK,KAAK,QAAQ,IAAI,EAAE;AAAA,IACnE,SAAS,OAAO;AACZ,UAAI,iBAAiB,MAAO,QAAO,EAAE,SAAS,MAAM,QAAQ,MAAM,QAAQ;AAAA,UACrE,QAAO,EAAE,SAAS,MAAM,QAAQ,gBAAgB;AAAA,IACzD;AAAA,EACJ;AACJ;;;ACvBO,IAAe,cAAf,cAAsC,QAAQ;AAAA,EAC9B,QAA2B,CAAC;AAAA,EAE/C,YAAY,QAA0B;AAClC,UAAM,MAAM;AAEZ,SAAK,QAAQ,MAAM;AAAA,MACf,CAAC,KAAK,SAAS;AACX,YAAI,KAAK,IAAI,IAAI,KAAK,UAAU,IAAI;AACpC,eAAO;AAAA,MACX;AAAA,MACA,CAAC;AAAA,IACL;AAAA,EACJ;AAGJ;AAEO,IAAe,cAAf,cAAsC,YAAe;AAAA,EACjD,SAAS,OAAkB;AAC9B,QAAI,CAAC,MAAO,QAAO,OAAO,OAAO,KAAK,KAAK;AAE3C,WAAO,MAAM,OAAO,CAAC,KAAK,SAAS;AAC/B,UAAI,QAAQ,KAAK,MAAO,KAAI,KAAK,KAAK,MAAM,IAAI,CAAC;AACjD,aAAO;AAAA,IACX,GAAG,CAAC,CAAQ;AAAA,EAChB;AACJ;AAEO,IAAe,aAAf,cAAqC,YAAe;AAAA,EAChD,SAAS,OAAkB;AAC9B,QAAI,CAAC,MAAO,QAAO,KAAK;AAExB,WAAO,MAAM;AAAA,MACT,CAAC,KAAK,SAAS;AACX,YAAI,QAAQ,KAAK,MAAO,KAAI,IAAI,IAAI,KAAK,MAAM,IAAI;AACnD,eAAO;AAAA,MACX;AAAA,MACA,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;","names":[]}
@@ -0,0 +1,197 @@
1
+ // src/schemas.ts
2
+ import { z } from "zod";
3
+ var ListItemsParams = z.object({
4
+ limit: z.number().optional().describe("Max number of items to return"),
5
+ page_token: z.string().optional().describe("Page token for pagination")
6
+ });
7
+ var ListInboxItemsParams = ListItemsParams.extend({
8
+ labels: z.array(z.string()).optional().describe("Labels to filter items by"),
9
+ ascending: z.boolean().optional().describe("Sort items in ascending order")
10
+ });
11
+ var GetInboxParams = z.object({
12
+ inbox_id: z.string().describe("ID of inbox to get")
13
+ });
14
+ var CreateInboxParams = z.object({
15
+ username: z.string().optional().describe("Username of inbox to create"),
16
+ domain: z.string().optional().describe("Domain of inbox to create"),
17
+ display_name: z.string().optional().describe("Display name of inbox to create")
18
+ });
19
+ var ListThreadsParams = ListInboxItemsParams.extend({
20
+ inbox_id: z.string().describe("ID of inbox to list threads from")
21
+ });
22
+ var GetThreadParams = z.object({
23
+ thread_id: z.string().describe("ID of thread to get")
24
+ });
25
+ var ListMessagesParams = ListInboxItemsParams.extend({
26
+ inbox_id: z.string().describe("ID of inbox to list messages from")
27
+ });
28
+ var GetMessageParams = z.object({
29
+ inbox_id: z.string().describe("ID of inbox to get message from"),
30
+ message_id: z.string().describe("ID of message to get")
31
+ });
32
+ var SendMessageParams = z.object({
33
+ inbox_id: z.string().describe("ID of inbox to send message from"),
34
+ to: z.array(z.string()).describe("Recipients of message"),
35
+ cc: z.array(z.string()).optional().describe("CC recipients of message"),
36
+ bcc: z.array(z.string()).optional().describe("BCC recipients of message"),
37
+ subject: z.string().optional().describe("Subject of message"),
38
+ text: z.string().optional().describe("Plain text body of message"),
39
+ html: z.string().optional().describe("HTML body of message"),
40
+ labels: z.array(z.string()).optional().describe("Labels to add to message")
41
+ });
42
+ var ReplyToMessageParams = z.object({
43
+ inbox_id: z.string().describe("ID of inbox to reply to message from"),
44
+ message_id: z.string().describe("ID of message to reply to"),
45
+ text: z.string().optional().describe("Plain text body of reply"),
46
+ html: z.string().optional().describe("HTML body of reply"),
47
+ labels: z.array(z.string()).optional().describe("Labels to add to reply")
48
+ });
49
+ var UpdateMessageParams = z.object({
50
+ inbox_id: z.string().describe("ID of inbox to update message from"),
51
+ message_id: z.string().describe("ID of message to update"),
52
+ add_labels: z.array(z.string()).optional().describe("Labels to add to message"),
53
+ remove_labels: z.array(z.string()).optional().describe("Labels to remove from message")
54
+ });
55
+ var ListDraftsParams = ListInboxItemsParams.extend({
56
+ inbox_id: z.string().describe("ID of inbox to list drafts from")
57
+ });
58
+ var GetDraftParams = z.object({
59
+ inbox_id: z.string().describe("ID of inbox to get draft from"),
60
+ draft_id: z.string().describe("ID of draft to get")
61
+ });
62
+ var CreateDraftParams = z.object({
63
+ inbox_id: z.string().describe("ID of inbox to create draft from"),
64
+ to: z.array(z.string()).describe("Recipients of draft"),
65
+ cc: z.array(z.string()).optional().describe("CC recipients of draft"),
66
+ bcc: z.array(z.string()).optional().describe("BCC recipients of draft"),
67
+ subject: z.string().optional().describe("Subject of draft"),
68
+ text: z.string().optional().describe("Plain text body of draft"),
69
+ html: z.string().optional().describe("HTML body of draft"),
70
+ labels: z.array(z.string()).optional().describe("Labels to add to draft")
71
+ });
72
+ var SendDraftParams = z.object({
73
+ inbox_id: z.string().describe("ID of inbox to send draft from"),
74
+ draft_id: z.string().describe("ID of draft to send"),
75
+ add_labels: z.array(z.string()).optional().describe("Labels to add to sent message"),
76
+ remove_labels: z.array(z.string()).optional().describe("Labels to remove from sent message")
77
+ });
78
+
79
+ // src/tools.ts
80
+ var tools = [
81
+ {
82
+ name: "list_inboxes",
83
+ method: "inboxes.list",
84
+ description: "List inboxes",
85
+ schema: ListItemsParams
86
+ },
87
+ {
88
+ name: "get_inbox",
89
+ method: "inboxes.get",
90
+ description: "Get inbox",
91
+ schema: GetInboxParams
92
+ },
93
+ {
94
+ name: "create_inbox",
95
+ method: "inboxes.create",
96
+ description: "Create inbox",
97
+ schema: CreateInboxParams
98
+ },
99
+ {
100
+ name: "list_threads",
101
+ method: "inboxes.threads.list",
102
+ description: "List threads in inbox",
103
+ schema: ListThreadsParams
104
+ },
105
+ {
106
+ name: "list_all_threads",
107
+ method: "threads.list",
108
+ description: "List threads in all inboxes",
109
+ schema: ListInboxItemsParams
110
+ },
111
+ {
112
+ name: "get_thread",
113
+ method: "threads.get",
114
+ description: "Get thread",
115
+ schema: GetThreadParams
116
+ },
117
+ {
118
+ name: "list_messages",
119
+ method: "inboxes.messages.list",
120
+ description: "List messages in inbox",
121
+ schema: ListMessagesParams
122
+ },
123
+ {
124
+ name: "get_message",
125
+ method: "inboxes.messages.get",
126
+ description: "Get message",
127
+ schema: GetMessageParams
128
+ },
129
+ {
130
+ name: "send_message",
131
+ method: "inboxes.messages.send",
132
+ description: "Send message",
133
+ schema: SendMessageParams
134
+ },
135
+ {
136
+ name: "reply_to_message",
137
+ method: "inboxes.messages.reply",
138
+ description: "Reply to message",
139
+ schema: ReplyToMessageParams
140
+ },
141
+ {
142
+ name: "update_message",
143
+ method: "inboxes.messages.update",
144
+ description: "Update message",
145
+ schema: UpdateMessageParams
146
+ },
147
+ {
148
+ name: "list_drafts",
149
+ method: "inboxes.drafts.list",
150
+ description: "List drafts in inbox",
151
+ schema: ListDraftsParams
152
+ },
153
+ {
154
+ name: "list_all_drafts",
155
+ method: "drafts.list",
156
+ description: "List drafts in all inboxes",
157
+ schema: ListInboxItemsParams
158
+ },
159
+ {
160
+ name: "get_draft",
161
+ method: "drafts.get",
162
+ description: "Get draft",
163
+ schema: GetDraftParams
164
+ },
165
+ {
166
+ name: "create_draft",
167
+ method: "inboxes.drafts.create",
168
+ description: "Create draft",
169
+ schema: CreateDraftParams
170
+ },
171
+ {
172
+ name: "send_draft",
173
+ method: "inboxes.drafts.send",
174
+ description: "Send draft",
175
+ schema: SendDraftParams
176
+ }
177
+ ];
178
+
179
+ export {
180
+ ListItemsParams,
181
+ ListInboxItemsParams,
182
+ GetInboxParams,
183
+ CreateInboxParams,
184
+ ListThreadsParams,
185
+ GetThreadParams,
186
+ ListMessagesParams,
187
+ GetMessageParams,
188
+ SendMessageParams,
189
+ ReplyToMessageParams,
190
+ UpdateMessageParams,
191
+ ListDraftsParams,
192
+ GetDraftParams,
193
+ CreateDraftParams,
194
+ SendDraftParams,
195
+ tools
196
+ };
197
+ //# sourceMappingURL=chunk-HKK5SMM3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/schemas.ts","../src/tools.ts"],"sourcesContent":["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 labels: z.array(z.string()).optional().describe('Labels to filter items by'),\n ascending: z.boolean().optional().describe('Sort items in ascending order'),\n})\n\nexport const GetInboxParams = z.object({\n inbox_id: z.string().describe('ID of inbox to get'),\n})\n\nexport const CreateInboxParams = z.object({\n username: z.string().optional().describe('Username of inbox to create'),\n domain: z.string().optional().describe('Domain of inbox to create'),\n display_name: z.string().optional().describe('Display name of inbox to create'),\n})\n\nexport const ListThreadsParams = ListInboxItemsParams.extend({\n inbox_id: z.string().describe('ID of inbox to list threads from'),\n})\n\nexport const GetThreadParams = z.object({\n thread_id: z.string().describe('ID of thread to get'),\n})\n\nexport const ListMessagesParams = ListInboxItemsParams.extend({\n inbox_id: z.string().describe('ID of inbox to list messages from'),\n})\n\nexport const GetMessageParams = z.object({\n inbox_id: z.string().describe('ID of inbox to get message from'),\n message_id: z.string().describe('ID of message to get'),\n})\n\nexport const SendMessageParams = z.object({\n inbox_id: z.string().describe('ID of inbox to send message from'),\n to: z.array(z.string()).describe('Recipients of message'),\n cc: z.array(z.string()).optional().describe('CC recipients of message'),\n bcc: z.array(z.string()).optional().describe('BCC recipients of message'),\n subject: z.string().optional().describe('Subject of message'),\n text: z.string().optional().describe('Plain text body of message'),\n html: z.string().optional().describe('HTML body of message'),\n labels: z.array(z.string()).optional().describe('Labels to add to message'),\n})\n\nexport const ReplyToMessageParams = z.object({\n inbox_id: z.string().describe('ID of inbox to reply to message from'),\n message_id: z.string().describe('ID of message to reply to'),\n text: z.string().optional().describe('Plain text body of reply'),\n html: z.string().optional().describe('HTML body of reply'),\n labels: z.array(z.string()).optional().describe('Labels to add to reply'),\n})\n\nexport const UpdateMessageParams = z.object({\n inbox_id: z.string().describe('ID of inbox to update message from'),\n message_id: z.string().describe('ID of message to update'),\n add_labels: z.array(z.string()).optional().describe('Labels to add to message'),\n remove_labels: z.array(z.string()).optional().describe('Labels to remove from message'),\n})\n\nexport const ListDraftsParams = ListInboxItemsParams.extend({\n inbox_id: z.string().describe('ID of inbox to list drafts from'),\n})\n\nexport const GetDraftParams = z.object({\n inbox_id: z.string().describe('ID of inbox to get draft from'),\n draft_id: z.string().describe('ID of draft to get'),\n})\n\nexport const CreateDraftParams = z.object({\n inbox_id: z.string().describe('ID of inbox to create draft from'),\n to: z.array(z.string()).describe('Recipients of draft'),\n cc: z.array(z.string()).optional().describe('CC recipients of draft'),\n bcc: z.array(z.string()).optional().describe('BCC recipients of draft'),\n subject: z.string().optional().describe('Subject of draft'),\n text: z.string().optional().describe('Plain text body of draft'),\n html: z.string().optional().describe('HTML body of draft'),\n labels: z.array(z.string()).optional().describe('Labels to add to draft'),\n})\n\nexport const SendDraftParams = z.object({\n inbox_id: z.string().describe('ID of inbox to send draft from'),\n draft_id: z.string().describe('ID of draft to send'),\n add_labels: z.array(z.string()).optional().describe('Labels to add to sent message'),\n remove_labels: z.array(z.string()).optional().describe('Labels to remove from sent message'),\n})\n","import { AnyZodObject } from 'zod'\n\nimport {\n ListItemsParams,\n ListInboxItemsParams,\n GetInboxParams,\n CreateInboxParams,\n ListThreadsParams,\n GetThreadParams,\n ListMessagesParams,\n GetMessageParams,\n SendMessageParams,\n ReplyToMessageParams,\n UpdateMessageParams,\n ListDraftsParams,\n GetDraftParams,\n CreateDraftParams,\n SendDraftParams,\n} from './schemas'\n\nexport interface Tool {\n name: string\n method: string\n description: string\n schema: AnyZodObject\n}\n\nexport const tools: Tool[] = [\n {\n name: 'list_inboxes',\n method: 'inboxes.list',\n description: 'List inboxes',\n schema: ListItemsParams,\n },\n {\n name: 'get_inbox',\n method: 'inboxes.get',\n description: 'Get inbox',\n schema: GetInboxParams,\n },\n {\n name: 'create_inbox',\n method: 'inboxes.create',\n description: 'Create inbox',\n schema: CreateInboxParams,\n },\n {\n name: 'list_threads',\n method: 'inboxes.threads.list',\n description: 'List threads in inbox',\n schema: ListThreadsParams,\n },\n {\n name: 'list_all_threads',\n method: 'threads.list',\n description: 'List threads in all inboxes',\n schema: ListInboxItemsParams,\n },\n {\n name: 'get_thread',\n method: 'threads.get',\n description: 'Get thread',\n schema: GetThreadParams,\n },\n {\n name: 'list_messages',\n method: 'inboxes.messages.list',\n description: 'List messages in inbox',\n schema: ListMessagesParams,\n },\n {\n name: 'get_message',\n method: 'inboxes.messages.get',\n description: 'Get message',\n schema: GetMessageParams,\n },\n {\n name: 'send_message',\n method: 'inboxes.messages.send',\n description: 'Send message',\n schema: SendMessageParams,\n },\n {\n name: 'reply_to_message',\n method: 'inboxes.messages.reply',\n description: 'Reply to message',\n schema: ReplyToMessageParams,\n },\n {\n name: 'update_message',\n method: 'inboxes.messages.update',\n description: 'Update message',\n schema: UpdateMessageParams,\n },\n {\n name: 'list_drafts',\n method: 'inboxes.drafts.list',\n description: 'List drafts in inbox',\n schema: ListDraftsParams,\n },\n {\n name: 'list_all_drafts',\n method: 'drafts.list',\n description: 'List drafts in all inboxes',\n schema: ListInboxItemsParams,\n },\n {\n name: 'get_draft',\n method: 'drafts.get',\n description: 'Get draft',\n schema: GetDraftParams,\n },\n {\n name: 'create_draft',\n method: 'inboxes.drafts.create',\n description: 'Create draft',\n schema: CreateDraftParams,\n },\n {\n name: 'send_draft',\n method: 'inboxes.drafts.send',\n description: 'Send draft',\n schema: SendDraftParams,\n },\n]\n"],"mappings":"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","names":[]}