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/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
- page_token: import_zod.z.string().optional().describe("Page token for pagination")
48
+ pageToken: import_zod.z.string().optional().describe("Page token for pagination")
49
49
  });
50
50
  var GetInboxParams = import_zod.z.object({
51
- inbox_id: InboxIdSchema
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
- display_name: import_zod.z.string().optional().describe("Display name")
56
+ displayName: import_zod.z.string().optional().describe("Display name")
57
57
  });
58
58
  var ListInboxItemsParams = ListItemsParams.extend({
59
- inbox_id: InboxIdSchema,
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
- inbox_id: InboxIdSchema,
66
- thread_id: ThreadIdSchema
65
+ inboxId: InboxIdSchema,
66
+ threadId: ThreadIdSchema
67
67
  });
68
68
  var GetAttachmentParams = import_zod.z.object({
69
- inbox_id: InboxIdSchema,
70
- thread_id: ThreadIdSchema,
71
- attachment_id: AttachmentIdSchema
69
+ inboxId: InboxIdSchema,
70
+ threadId: ThreadIdSchema,
71
+ attachmentId: AttachmentIdSchema
72
72
  });
73
73
  var BaseMessageParams = import_zod.z.object({
74
- inbox_id: InboxIdSchema,
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
- message_id: MessageIdSchema
86
+ messageId: MessageIdSchema
87
87
  });
88
88
  var UpdateMessageParams = import_zod.z.object({
89
- inbox_id: InboxIdSchema,
90
- message_id: MessageIdSchema,
91
- add_labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to add"),
92
- remove_labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to remove")
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 { inbox_id, ...options } = args;
105
- return client.inboxes.get(inbox_id, options);
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 { inbox_id } = args;
112
- return client.inboxes.delete(inbox_id);
111
+ const { inboxId } = args;
112
+ return client.inboxes.delete(inboxId);
113
113
  }
114
114
  async function listThreads(client, args) {
115
- const { inbox_id, ...options } = args;
116
- return client.inboxes.threads.list(inbox_id, options);
115
+ const { inboxId, ...options } = args;
116
+ return client.inboxes.threads.list(inboxId, options);
117
117
  }
118
118
  async function getThread(client, args) {
119
- const { inbox_id, thread_id, ...options } = args;
120
- return client.inboxes.threads.get(inbox_id, thread_id, options);
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 { thread_id, attachment_id } = args;
124
- const response = await client.threads.getAttachment(thread_id, attachment_id);
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, file_type: fileType };
139
+ return { text, fileType };
143
140
  }
144
141
  async function sendMessage(client, args) {
145
- const { inbox_id, ...options } = args;
146
- return client.inboxes.messages.send(inbox_id, options);
142
+ const { inboxId, ...options } = args;
143
+ return client.inboxes.messages.send(inboxId, options);
147
144
  }
148
145
  async function replyToMessage(client, args) {
149
- const { inbox_id, message_id, ...options } = args;
150
- return client.inboxes.messages.reply(inbox_id, message_id, options);
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 { inbox_id, message_id, ...options } = args;
154
- return client.inboxes.messages.update(inbox_id, message_id, options);
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
- params_schema: ListItemsParams,
159
+ paramsSchema: ListItemsParams,
163
160
  func: listInboxes
164
161
  },
165
162
  {
166
163
  name: "get_inbox",
167
164
  description: "Get inbox",
168
- params_schema: GetInboxParams,
165
+ paramsSchema: GetInboxParams,
169
166
  func: getInbox
170
167
  },
171
168
  {
172
169
  name: "create_inbox",
173
170
  description: "Create inbox",
174
- params_schema: CreateInboxParams,
171
+ paramsSchema: CreateInboxParams,
175
172
  func: createInbox
176
173
  },
177
174
  {
178
175
  name: "delete_inbox",
179
176
  description: "Delete inbox",
180
- params_schema: GetInboxParams,
177
+ paramsSchema: GetInboxParams,
181
178
  func: deleteInbox
182
179
  },
183
180
  {
184
181
  name: "list_threads",
185
182
  description: "List threads in inbox",
186
- params_schema: ListInboxItemsParams,
183
+ paramsSchema: ListInboxItemsParams,
187
184
  func: listThreads
188
185
  },
189
186
  {
190
187
  name: "get_thread",
191
188
  description: "Get thread",
192
- params_schema: GetThreadParams,
189
+ paramsSchema: GetThreadParams,
193
190
  func: getThread
194
191
  },
195
192
  {
196
193
  name: "get_attachment",
197
194
  description: "Get attachment",
198
- params_schema: GetAttachmentParams,
195
+ paramsSchema: GetAttachmentParams,
199
196
  func: getAttachment
200
197
  },
201
198
  {
202
199
  name: "send_message",
203
200
  description: "Send message",
204
- params_schema: SendMessageParams,
201
+ paramsSchema: SendMessageParams,
205
202
  func: sendMessage
206
203
  },
207
204
  {
208
205
  name: "reply_to_message",
209
206
  description: "Reply to message",
210
- params_schema: ReplyToMessageParams,
207
+ paramsSchema: ReplyToMessageParams,
211
208
  func: replyToMessage
212
209
  },
213
210
  {
214
211
  name: "update_message",
215
212
  description: "Update message",
216
- params_schema: UpdateMessageParams,
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
- params_schema: tool.params_schema,
249
+ paramsSchema: tool.paramsSchema,
253
250
  func: (args) => tool.func(this.client, args)
254
251
  };
255
252
  }
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,uBAAgC;;;ACAhC,iBAAkB;AAElB,IAAM,gBAAgB,aAAE,OAAO,EAAE,SAAS,aAAa;AACvD,IAAM,iBAAiB,aAAE,OAAO,EAAE,SAAS,cAAc;AACzD,IAAM,kBAAkB,aAAE,OAAO,EAAE,SAAS,eAAe;AAC3D,IAAM,qBAAqB,aAAE,OAAO,EAAE,SAAS,kBAAkB;AAE1D,IAAM,kBAAkB,aAAE,OAAO;AAAA,EACpC,OAAO,aAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,SAAS,+BAA+B;AAAA,EACjF,YAAY,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS,2BAA2B;AAC1E,CAAC;AAEM,IAAM,iBAAiB,aAAE,OAAO;AAAA,EACnC,UAAU;AACd,CAAC;AAEM,IAAM,oBAAoB,aAAE,OAAO;AAAA,EACtC,UAAU,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS,UAAU;AAAA,EACnD,QAAQ,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS,QAAQ;AAAA,EAC/C,cAAc,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS,cAAc;AAC/D,CAAC;AAEM,IAAM,uBAAuB,gBAAgB,OAAO;AAAA,EACvD,UAAU;AAAA,EACV,QAAQ,aAAE,MAAM,aAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,2BAA2B;AAAA,EAC3E,QAAQ,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS,8BAA8B;AAAA,EACrE,OAAO,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS,6BAA6B;AACvE,CAAC;AAEM,IAAM,kBAAkB,aAAE,OAAO;AAAA,EACpC,UAAU;AAAA,EACV,WAAW;AACf,CAAC;AAEM,IAAM,sBAAsB,aAAE,OAAO;AAAA,EACxC,UAAU;AAAA,EACV,WAAW;AAAA,EACX,eAAe;AACnB,CAAC;AAED,IAAM,oBAAoB,aAAE,OAAO;AAAA,EAC/B,UAAU;AAAA,EACV,MAAM,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS,iBAAiB;AAAA,EACtD,MAAM,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS,WAAW;AAAA,EAChD,QAAQ,aAAE,MAAM,aAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,QAAQ;AAC5D,CAAC;AAEM,IAAM,oBAAoB,kBAAkB,OAAO;AAAA,EACtD,IAAI,aAAE,MAAM,aAAE,OAAO,CAAC,EAAE,SAAS,YAAY;AAAA,EAC7C,IAAI,aAAE,MAAM,aAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA,EAC3D,KAAK,aAAE,MAAM,aAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,gBAAgB;AAAA,EAC7D,SAAS,aAAE,OAAO,EAAE,SAAS,EAAE,SAAS,SAAS;AACrD,CAAC;AAEM,IAAM,uBAAuB,kBAAkB,OAAO;AAAA,EACzD,YAAY;AAChB,CAAC;AAEM,IAAM,sBAAsB,aAAE,OAAO;AAAA,EACxC,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,YAAY,aAAE,MAAM,aAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,eAAe;AAAA,EACnE,eAAe,aAAE,MAAM,aAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,kBAAkB;AAC7E,CAAC;;;AC9DD,oBAA8B;AAC9B,uBAAyB;AACzB,qBAAoB;AACpB,uBAAmC;AAUnC,eAAsB,YAAY,QAAyB,MAAY;AACnE,SAAO,OAAO,QAAQ,KAAK,IAAI;AACnC;AAEA,eAAsB,SAAS,QAAyB,MAAY;AAChE,QAAM,EAAE,UAAU,GAAG,QAAQ,IAAI;AACjC,SAAO,OAAO,QAAQ,IAAI,UAAU,OAAO;AAC/C;AAEA,eAAsB,YAAY,QAAyB,MAAY;AACnE,SAAO,OAAO,QAAQ,OAAO,IAAI;AACrC;AAEA,eAAsB,YAAY,QAAyB,MAAY;AACnE,QAAM,EAAE,SAAS,IAAI;AACrB,SAAO,OAAO,QAAQ,OAAO,QAAQ;AACzC;AAEA,eAAsB,YAAY,QAAyB,MAAY;AACnE,QAAM,EAAE,UAAU,GAAG,QAAQ,IAAI;AACjC,SAAO,OAAO,QAAQ,QAAQ,KAAK,UAAU,OAAO;AACxD;AAEA,eAAsB,UAAU,QAAyB,MAAY;AACjE,QAAM,EAAE,UAAU,WAAW,GAAG,QAAQ,IAAI;AAC5C,SAAO,OAAO,QAAQ,QAAQ,IAAI,UAAU,WAAW,OAAO;AAClE;AAEA,eAAsB,cAAc,QAAyB,MAAiC;AAC1F,QAAM,EAAE,WAAW,cAAc,IAAI;AAErC,QAAM,WAAW,MAAM,OAAO,QAAQ,cAAc,WAAW,aAAa;AAC5E,QAAM,YAAY,OAAO,KAAK,MAAM,SAAS,YAAY,CAAC;AAE1D,QAAM,WAAW,UAAM,qCAAmB,SAAS;AACnD,QAAM,WAAW,UAAU;AAE3B,MAAI,OAAO;AAEX,MAAI,aAAa,mBAAmB;AAChC,UAAM,SAAS,IAAI,0BAAS,EAAE,MAAM,WAAW,2CAAc,CAAC;AAC9D,UAAM,UAAU,MAAM,OAAO,QAAQ;AACrC,WAAO,QAAQ;AAAA,EACnB,WAAW,aAAa,2EAA2E;AAC/F,UAAM,SAAS,MAAM,eAAAA,QAAQ,eAAe,EAAE,QAAQ,UAAU,CAAC;AACjE,WAAO,OAAO;AAAA,EAClB,OAAO;AACH,WAAO;AAAA,MACH,OAAO,0BAA0B,YAAY,SAAS;AAAA,MACtD,WAAW;AAAA,IACf;AAAA,EACJ;AAEA,SAAO,EAAE,MAAM,WAAW,SAAS;AACvC;AAEA,eAAsB,YAAY,QAAyB,MAAY;AACnE,QAAM,EAAE,UAAU,GAAG,QAAQ,IAAI;AACjC,SAAO,OAAO,QAAQ,SAAS,KAAK,UAAU,OAAO;AACzD;AAEA,eAAsB,eAAe,QAAyB,MAAY;AACtE,QAAM,EAAE,UAAU,YAAY,GAAG,QAAQ,IAAI;AAC7C,SAAO,OAAO,QAAQ,SAAS,MAAM,UAAU,YAAY,OAAO;AACtE;AAEA,eAAsB,cAAc,QAAyB,MAAY;AACrE,QAAM,EAAE,UAAU,YAAY,GAAG,QAAQ,IAAI;AAC7C,SAAO,OAAO,QAAQ,SAAS,OAAO,UAAU,YAAY,OAAO;AACvE;;;ACjDO,IAAM,QAAgB;AAAA,EACzB;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,IACf,MAAM;AAAA,EACV;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,IACf,MAAM;AAAA,EACV;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,IACf,MAAM;AAAA,EACV;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,IACf,MAAM;AAAA,EACV;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,IACf,MAAM;AAAA,EACV;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,IACf,MAAM;AAAA,EACV;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,IACf,MAAM;AAAA,EACV;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,IACf,MAAM;AAAA,EACV;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,IACf,MAAM;AAAA,EACV;AAAA,EACA;AAAA,IACI,MAAM;AAAA,IACN,aAAa;AAAA,IACb,eAAe;AAAA,IACf,MAAM;AAAA,EACV;AACJ;;;AH3FO,IAAe,cAAf,MAA8B;AAAA,EACd;AAAA,EACA,QAA2B,CAAC;AAAA,EAE/C,YAAY,QAA0B;AAClC,SAAK,SAAS,UAAU,IAAI,iCAAgB;AAE5C,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;;;ADpBO,IAAM,mBAAN,cAA+B,YAAkB;AAAA,EAC1C,UAAU,MAAgB;AAChC,WAAO;AAAA,MACH,MAAM,KAAK;AAAA,MACX,aAAa,KAAK;AAAA,MAClB,eAAe,KAAK;AAAA,MACpB,MAAM,CAAC,SAA6C,KAAK,KAAK,KAAK,QAAQ,IAAI;AAAA,IACnF;AAAA,EACJ;AACJ;","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--KYFOIry.cjs';
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
- params_schema: z.ZodObject<any>;
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
- params_schema: z.ZodObject<any, z.core.$strip>;
16
- func: (args: z.infer<typeof tool.params_schema>) => Promise<any>;
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--KYFOIry.js';
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
- params_schema: z.ZodObject<any>;
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
- params_schema: z.ZodObject<any, z.core.$strip>;
16
- func: (args: z.infer<typeof tool.params_schema>) => Promise<any>;
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-CBDDCV4F.js";
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
- params_schema: tool.params_schema,
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 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"],"mappings":";;;;;AAYO,IAAM,mBAAN,cAA+B,YAAkB;AAAA,EAC1C,UAAU,MAAgB;AAChC,WAAO;AAAA,MACH,MAAM,KAAK;AAAA,MACX,aAAa,KAAK;AAAA,MAClB,eAAe,KAAK;AAAA,MACpB,MAAM,CAAC,SAA6C,KAAK,KAAK,KAAK,QAAQ,IAAI;AAAA,IACnF;AAAA,EACJ;AACJ;","names":[]}
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":[]}
@@ -33,7 +33,7 @@ __export(langchain_exports, {
33
33
  AgentMailToolkit: () => AgentMailToolkit
34
34
  });
35
35
  module.exports = __toCommonJS(langchain_exports);
36
- var import_tools2 = require("@langchain/core/tools");
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
- page_token: import_zod.z.string().optional().describe("Page token for pagination")
49
+ pageToken: import_zod.z.string().optional().describe("Page token for pagination")
50
50
  });
51
51
  var GetInboxParams = import_zod.z.object({
52
- inbox_id: InboxIdSchema
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
- display_name: import_zod.z.string().optional().describe("Display name")
57
+ displayName: import_zod.z.string().optional().describe("Display name")
58
58
  });
59
59
  var ListInboxItemsParams = ListItemsParams.extend({
60
- inbox_id: InboxIdSchema,
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
- inbox_id: InboxIdSchema,
67
- thread_id: ThreadIdSchema
66
+ inboxId: InboxIdSchema,
67
+ threadId: ThreadIdSchema
68
68
  });
69
69
  var GetAttachmentParams = import_zod.z.object({
70
- inbox_id: InboxIdSchema,
71
- thread_id: ThreadIdSchema,
72
- attachment_id: AttachmentIdSchema
70
+ inboxId: InboxIdSchema,
71
+ threadId: ThreadIdSchema,
72
+ attachmentId: AttachmentIdSchema
73
73
  });
74
74
  var BaseMessageParams = import_zod.z.object({
75
- inbox_id: InboxIdSchema,
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
- message_id: MessageIdSchema
87
+ messageId: MessageIdSchema
88
88
  });
89
89
  var UpdateMessageParams = import_zod.z.object({
90
- inbox_id: InboxIdSchema,
91
- message_id: MessageIdSchema,
92
- add_labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to add"),
93
- remove_labels: import_zod.z.array(import_zod.z.string()).optional().describe("Labels to remove")
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 { inbox_id, ...options } = args;
106
- return client.inboxes.get(inbox_id, options);
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 { inbox_id } = args;
113
- return client.inboxes.delete(inbox_id);
112
+ const { inboxId } = args;
113
+ return client.inboxes.delete(inboxId);
114
114
  }
115
115
  async function listThreads(client, args) {
116
- const { inbox_id, ...options } = args;
117
- return client.inboxes.threads.list(inbox_id, options);
116
+ const { inboxId, ...options } = args;
117
+ return client.inboxes.threads.list(inboxId, options);
118
118
  }
119
119
  async function getThread(client, args) {
120
- const { inbox_id, thread_id, ...options } = args;
121
- return client.inboxes.threads.get(inbox_id, thread_id, options);
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 { thread_id, attachment_id } = args;
125
- const response = await client.threads.getAttachment(thread_id, attachment_id);
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, file_type: fileType };
140
+ return { text, fileType };
144
141
  }
145
142
  async function sendMessage(client, args) {
146
- const { inbox_id, ...options } = args;
147
- return client.inboxes.messages.send(inbox_id, options);
143
+ const { inboxId, ...options } = args;
144
+ return client.inboxes.messages.send(inboxId, options);
148
145
  }
149
146
  async function replyToMessage(client, args) {
150
- const { inbox_id, message_id, ...options } = args;
151
- return client.inboxes.messages.reply(inbox_id, message_id, options);
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 { inbox_id, message_id, ...options } = args;
155
- return client.inboxes.messages.update(inbox_id, message_id, options);
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
- params_schema: ListItemsParams,
160
+ paramsSchema: ListItemsParams,
164
161
  func: listInboxes
165
162
  },
166
163
  {
167
164
  name: "get_inbox",
168
165
  description: "Get inbox",
169
- params_schema: GetInboxParams,
166
+ paramsSchema: GetInboxParams,
170
167
  func: getInbox
171
168
  },
172
169
  {
173
170
  name: "create_inbox",
174
171
  description: "Create inbox",
175
- params_schema: CreateInboxParams,
172
+ paramsSchema: CreateInboxParams,
176
173
  func: createInbox
177
174
  },
178
175
  {
179
176
  name: "delete_inbox",
180
177
  description: "Delete inbox",
181
- params_schema: GetInboxParams,
178
+ paramsSchema: GetInboxParams,
182
179
  func: deleteInbox
183
180
  },
184
181
  {
185
182
  name: "list_threads",
186
183
  description: "List threads in inbox",
187
- params_schema: ListInboxItemsParams,
184
+ paramsSchema: ListInboxItemsParams,
188
185
  func: listThreads
189
186
  },
190
187
  {
191
188
  name: "get_thread",
192
189
  description: "Get thread",
193
- params_schema: GetThreadParams,
190
+ paramsSchema: GetThreadParams,
194
191
  func: getThread
195
192
  },
196
193
  {
197
194
  name: "get_attachment",
198
195
  description: "Get attachment",
199
- params_schema: GetAttachmentParams,
196
+ paramsSchema: GetAttachmentParams,
200
197
  func: getAttachment
201
198
  },
202
199
  {
203
200
  name: "send_message",
204
201
  description: "Send message",
205
- params_schema: SendMessageParams,
202
+ paramsSchema: SendMessageParams,
206
203
  func: sendMessage
207
204
  },
208
205
  {
209
206
  name: "reply_to_message",
210
207
  description: "Reply to message",
211
- params_schema: ReplyToMessageParams,
208
+ paramsSchema: ReplyToMessageParams,
212
209
  func: replyToMessage
213
210
  },
214
211
  {
215
212
  name: "update_message",
216
213
  description: "Update message",
217
- params_schema: UpdateMessageParams,
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, import_tools2.tool)(async (args) => JSON.stringify((await safeFunc(tool.func, this.client, args)).result, null, 2), {
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.params_schema
260
+ schema: tool.paramsSchema
264
261
  });
265
262
  }
266
263
  };