agentmail 0.0.9 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/README.md +16 -16
  2. package/package.json +1 -1
  3. package/reference.md +38 -213
  4. package/.env +0 -1
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
- # AgentMail TypeScript Library
1
+ # Agentmail TypeScript Library
2
2
 
3
3
  [![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-Built%20with%20Fern-brightgreen)](https://buildwithfern.com?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=https%3A%2F%2Fgithub.com%2Fagentmail-to%2Fagentmail-node)
4
4
  [![npm shield](https://img.shields.io/npm/v/agentmail)](https://www.npmjs.com/package/agentmail)
5
5
 
6
- The AgentMail TypeScript library provides convenient access to the AgentMail API from TypeScript.
6
+ The Agentmail TypeScript library provides convenient access to the Agentmail API from TypeScript.
7
7
 
8
8
  ## Installation
9
9
 
@@ -20,10 +20,10 @@ A full reference for this library is available [here](./reference.md).
20
20
  Instantiate and use the client with the following:
21
21
 
22
22
  ```typescript
23
- import { AgentMailApiEnvironment, AgentMailApiClient } from "agentmail";
23
+ import { AgentmailApiClient } from "agentmail";
24
24
 
25
- const client = new AgentMailApiClient({ environment: AgentMailApiEnvironment.Production, apiKey: "YOUR_API_KEY" });
26
- await client.inboxes.createInbox({
25
+ const client = new AgentmailApiClient({ apiKey: "YOUR_API_KEY" });
26
+ await client.inboxes.create({
27
27
  domain: "yourdomain.com",
28
28
  });
29
29
  ```
@@ -34,9 +34,9 @@ The SDK exports all request and response types as TypeScript interfaces. Simply
34
34
  following namespace:
35
35
 
36
36
  ```typescript
37
- import { AgentMailApi } from "agentmail";
37
+ import { AgentmailApi } from "agentmail";
38
38
 
39
- const request: AgentMailApi.ListInboxesRequest = {
39
+ const request: AgentmailApi.ListInboxesRequest = {
40
40
  ...
41
41
  };
42
42
  ```
@@ -47,12 +47,12 @@ When the API returns a non-success status code (4xx or 5xx response), a subclass
47
47
  will be thrown.
48
48
 
49
49
  ```typescript
50
- import { AgentMailApiError } from "agentmail";
50
+ import { AgentmailApiError } from "agentmail";
51
51
 
52
52
  try {
53
- await client.inboxes.createInbox(...);
53
+ await client.inboxes.create(...);
54
54
  } catch (err) {
55
- if (err instanceof AgentMailApiError) {
55
+ if (err instanceof AgentmailApiError) {
56
56
  console.log(err.statusCode);
57
57
  console.log(err.message);
58
58
  console.log(err.body);
@@ -67,7 +67,7 @@ try {
67
67
  If you would like to send additional headers as part of the request, use the `headers` request option.
68
68
 
69
69
  ```typescript
70
- const response = await client.inboxes.createInbox(..., {
70
+ const response = await client.inboxes.create(..., {
71
71
  headers: {
72
72
  'X-Custom-Header': 'custom value'
73
73
  }
@@ -89,7 +89,7 @@ A request is deemed retriable when any of the following HTTP status codes is ret
89
89
  Use the `maxRetries` request option to configure this behavior.
90
90
 
91
91
  ```typescript
92
- const response = await client.inboxes.createInbox(..., {
92
+ const response = await client.inboxes.create(..., {
93
93
  maxRetries: 0 // override maxRetries at the request level
94
94
  });
95
95
  ```
@@ -99,7 +99,7 @@ const response = await client.inboxes.createInbox(..., {
99
99
  The SDK defaults to a 60 second timeout. Use the `timeoutInSeconds` option to configure this behavior.
100
100
 
101
101
  ```typescript
102
- const response = await client.inboxes.createInbox(..., {
102
+ const response = await client.inboxes.create(..., {
103
103
  timeoutInSeconds: 30 // override timeout to 30s
104
104
  });
105
105
  ```
@@ -110,7 +110,7 @@ The SDK allows users to abort requests at any point by passing in an abort signa
110
110
 
111
111
  ```typescript
112
112
  const controller = new AbortController();
113
- const response = await client.inboxes.createInbox(..., {
113
+ const response = await client.inboxes.create(..., {
114
114
  abortSignal: controller.signal
115
115
  });
116
116
  controller.abort(); // aborts the request
@@ -134,9 +134,9 @@ The SDK provides a way for your to customize the underlying HTTP client / Fetch
134
134
  unsupported environment, this provides a way for you to break glass and ensure the SDK works.
135
135
 
136
136
  ```typescript
137
- import { AgentMailApiClient } from "agentmail";
137
+ import { AgentmailApiClient } from "agentmail";
138
138
 
139
- const client = new AgentMailApiClient({
139
+ const client = new AgentmailApiClient({
140
140
  ...
141
141
  fetcher: // provide your implementation here
142
142
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentmail",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "private": false,
5
5
  "repository": "https://github.com/agentmail-to/agentmail-node",
6
6
  "main": "./index.js",
package/reference.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Inboxes
4
4
 
5
- <details><summary><code>client.inboxes.<a href="/src/api/resources/inboxes/client/Client.ts">listInboxes</a>({ ...params }) -> AgentMailApi.ListInboxesResponse</code></summary>
5
+ <details><summary><code>client.inboxes.<a href="/src/api/resources/inboxes/client/Client.ts">list</a>({ ...params }) -> AgentmailApi.ListInboxesResponse</code></summary>
6
6
  <dl>
7
7
  <dd>
8
8
 
@@ -15,7 +15,7 @@
15
15
  <dd>
16
16
 
17
17
  ```typescript
18
- await client.inboxes.listInboxes();
18
+ await client.inboxes.list();
19
19
  ```
20
20
 
21
21
  </dd>
@@ -31,7 +31,7 @@ await client.inboxes.listInboxes();
31
31
  <dl>
32
32
  <dd>
33
33
 
34
- **request:** `AgentMailApi.ListInboxesRequest`
34
+ **request:** `AgentmailApi.ListInboxesRequest`
35
35
 
36
36
  </dd>
37
37
  </dl>
@@ -50,7 +50,7 @@ await client.inboxes.listInboxes();
50
50
  </dl>
51
51
  </details>
52
52
 
53
- <details><summary><code>client.inboxes.<a href="/src/api/resources/inboxes/client/Client.ts">getInbox</a>(inboxId) -> AgentMailApi.Inbox</code></summary>
53
+ <details><summary><code>client.inboxes.<a href="/src/api/resources/inboxes/client/Client.ts">get</a>(inboxId) -> AgentmailApi.Inbox</code></summary>
54
54
  <dl>
55
55
  <dd>
56
56
 
@@ -63,7 +63,7 @@ await client.inboxes.listInboxes();
63
63
  <dd>
64
64
 
65
65
  ```typescript
66
- await client.inboxes.getInbox("inbox_id");
66
+ await client.inboxes.get("inbox_id");
67
67
  ```
68
68
 
69
69
  </dd>
@@ -79,7 +79,7 @@ await client.inboxes.getInbox("inbox_id");
79
79
  <dl>
80
80
  <dd>
81
81
 
82
- **inboxId:** `AgentMailApi.InboxId`
82
+ **inboxId:** `AgentmailApi.InboxId`
83
83
 
84
84
  </dd>
85
85
  </dl>
@@ -98,7 +98,7 @@ await client.inboxes.getInbox("inbox_id");
98
98
  </dl>
99
99
  </details>
100
100
 
101
- <details><summary><code>client.inboxes.<a href="/src/api/resources/inboxes/client/Client.ts">createInbox</a>({ ...params }) -> AgentMailApi.Inbox</code></summary>
101
+ <details><summary><code>client.inboxes.<a href="/src/api/resources/inboxes/client/Client.ts">create</a>({ ...params }) -> AgentmailApi.Inbox</code></summary>
102
102
  <dl>
103
103
  <dd>
104
104
 
@@ -111,7 +111,7 @@ await client.inboxes.getInbox("inbox_id");
111
111
  <dd>
112
112
 
113
113
  ```typescript
114
- await client.inboxes.createInbox({
114
+ await client.inboxes.create({
115
115
  username: "yourinbox",
116
116
  displayName: "Your Inbox",
117
117
  });
@@ -130,70 +130,7 @@ await client.inboxes.createInbox({
130
130
  <dl>
131
131
  <dd>
132
132
 
133
- **request:** `AgentMailApi.CreateInboxRequest`
134
-
135
- </dd>
136
- </dl>
137
-
138
- <dl>
139
- <dd>
140
-
141
- **requestOptions:** `Inboxes.RequestOptions`
142
-
143
- </dd>
144
- </dl>
145
- </dd>
146
- </dl>
147
-
148
- </dd>
149
- </dl>
150
- </details>
151
-
152
- <details><summary><code>client.inboxes.<a href="/src/api/resources/inboxes/client/Client.ts">deleteInbox</a>(inboxId) -> void</code></summary>
153
- <dl>
154
- <dd>
155
-
156
- #### 📝 Description
157
-
158
- <dl>
159
- <dd>
160
-
161
- <dl>
162
- <dd>
163
-
164
- Delete inbox and all of its threads, messages, and attachments.
165
-
166
- </dd>
167
- </dl>
168
- </dd>
169
- </dl>
170
-
171
- #### 🔌 Usage
172
-
173
- <dl>
174
- <dd>
175
-
176
- <dl>
177
- <dd>
178
-
179
- ```typescript
180
- await client.inboxes.deleteInbox("yourinbox@agentmail.to");
181
- ```
182
-
183
- </dd>
184
- </dl>
185
- </dd>
186
- </dl>
187
-
188
- #### ⚙️ Parameters
189
-
190
- <dl>
191
- <dd>
192
-
193
- <dl>
194
- <dd>
195
-
196
- **inboxId:** `AgentMailApi.InboxId`
133
+ **request:** `AgentmailApi.CreateInboxRequest`
197
134
 
198
135
  </dd>
199
136
  </dl>
@@ -214,66 +151,25 @@ await client.inboxes.deleteInbox("yourinbox@agentmail.to");
214
151
 
215
152
  ## Messages
216
153
 
217
- <details><summary><code>client.messages.<a href="/src/api/resources/messages/client/Client.ts">listMessages</a>(inboxId, { ...params }) -> AgentMailApi.ListMessagesResponse</code></summary>
218
- <dl>
219
- <dd>
220
-
221
- #### 🔌 Usage
222
-
223
- <dl>
224
- <dd>
225
-
154
+ <details><summary><code>client.messages.<a href="/src/api/resources/messages/client/Client.ts">list</a>(inboxId, { ...params }) -> AgentmailApi.ListMessagesResponse</code></summary>
226
155
  <dl>
227
156
  <dd>
228
157
 
229
- ```typescript
230
- await client.messages.listMessages("inbox_id");
231
- ```
232
-
233
- </dd>
234
- </dl>
235
- </dd>
236
- </dl>
237
-
238
- #### ⚙️ Parameters
239
-
240
- <dl>
241
- <dd>
242
-
243
- <dl>
244
- <dd>
245
-
246
- **inboxId:** `AgentMailApi.InboxId`
247
-
248
- </dd>
249
- </dl>
158
+ #### 📝 Description
250
159
 
251
160
  <dl>
252
161
  <dd>
253
162
 
254
- **request:** `AgentMailApi.ListMessagesRequest`
255
-
256
- </dd>
257
- </dl>
258
-
259
163
  <dl>
260
164
  <dd>
261
165
 
262
- **requestOptions:** `Messages.RequestOptions`
166
+ List messages in inbox. If neither or both `received` and `sent` query parameters are set, all messages are returned.
263
167
 
264
168
  </dd>
265
169
  </dl>
266
170
  </dd>
267
171
  </dl>
268
172
 
269
- </dd>
270
- </dl>
271
- </details>
272
-
273
- <details><summary><code>client.messages.<a href="/src/api/resources/messages/client/Client.ts">getMessage</a>(inboxId, messageId) -> AgentMailApi.Message</code></summary>
274
- <dl>
275
- <dd>
276
-
277
173
  #### 🔌 Usage
278
174
 
279
175
  <dl>
@@ -283,7 +179,7 @@ await client.messages.listMessages("inbox_id");
283
179
  <dd>
284
180
 
285
181
  ```typescript
286
- await client.messages.getMessage("inbox_id", "message_id");
182
+ await client.messages.list("inbox_id");
287
183
  ```
288
184
 
289
185
  </dd>
@@ -299,7 +195,7 @@ await client.messages.getMessage("inbox_id", "message_id");
299
195
  <dl>
300
196
  <dd>
301
197
 
302
- **inboxId:** `AgentMailApi.InboxId`
198
+ **inboxId:** `AgentmailApi.InboxId`
303
199
 
304
200
  </dd>
305
201
  </dl>
@@ -307,7 +203,7 @@ await client.messages.getMessage("inbox_id", "message_id");
307
203
  <dl>
308
204
  <dd>
309
205
 
310
- **messageId:** `AgentMailApi.MessageId`
206
+ **request:** `AgentmailApi.ListMessagesRequest`
311
207
 
312
208
  </dd>
313
209
  </dl>
@@ -326,25 +222,10 @@ await client.messages.getMessage("inbox_id", "message_id");
326
222
  </dl>
327
223
  </details>
328
224
 
329
- <details><summary><code>client.messages.<a href="/src/api/resources/messages/client/Client.ts">deleteMessage</a>(inboxId, messageId) -> void</code></summary>
330
- <dl>
331
- <dd>
332
-
333
- #### 📝 Description
334
-
335
- <dl>
336
- <dd>
337
-
225
+ <details><summary><code>client.messages.<a href="/src/api/resources/messages/client/Client.ts">get</a>(inboxId, messageId) -> AgentmailApi.Message</code></summary>
338
226
  <dl>
339
227
  <dd>
340
228
 
341
- Delete message and its attachments.
342
-
343
- </dd>
344
- </dl>
345
- </dd>
346
- </dl>
347
-
348
229
  #### 🔌 Usage
349
230
 
350
231
  <dl>
@@ -354,7 +235,7 @@ Delete message and its attachments.
354
235
  <dd>
355
236
 
356
237
  ```typescript
357
- await client.messages.deleteMessage("inbox_id", "message_id");
238
+ await client.messages.get("inbox_id", "message_id");
358
239
  ```
359
240
 
360
241
  </dd>
@@ -370,7 +251,7 @@ await client.messages.deleteMessage("inbox_id", "message_id");
370
251
  <dl>
371
252
  <dd>
372
253
 
373
- **inboxId:** `AgentMailApi.InboxId`
254
+ **inboxId:** `AgentmailApi.InboxId`
374
255
 
375
256
  </dd>
376
257
  </dl>
@@ -378,7 +259,7 @@ await client.messages.deleteMessage("inbox_id", "message_id");
378
259
  <dl>
379
260
  <dd>
380
261
 
381
- **messageId:** `AgentMailApi.MessageId`
262
+ **messageId:** `AgentmailApi.MessageId`
382
263
 
383
264
  </dd>
384
265
  </dl>
@@ -397,7 +278,7 @@ await client.messages.deleteMessage("inbox_id", "message_id");
397
278
  </dl>
398
279
  </details>
399
280
 
400
- <details><summary><code>client.messages.<a href="/src/api/resources/messages/client/Client.ts">sendMessage</a>(inboxId, { ...params }) -> AgentMailApi.SendMessageResponse</code></summary>
281
+ <details><summary><code>client.messages.<a href="/src/api/resources/messages/client/Client.ts">send</a>(inboxId, { ...params }) -> AgentmailApi.SendMessageResponse</code></summary>
401
282
  <dl>
402
283
  <dd>
403
284
 
@@ -410,7 +291,7 @@ await client.messages.deleteMessage("inbox_id", "message_id");
410
291
  <dd>
411
292
 
412
293
  ```typescript
413
- await client.messages.sendMessage("inbox_id", {
294
+ await client.messages.send("inbox_id", {
414
295
  to: "to",
415
296
  cc: undefined,
416
297
  bcc: undefined,
@@ -433,7 +314,7 @@ await client.messages.sendMessage("inbox_id", {
433
314
  <dl>
434
315
  <dd>
435
316
 
436
- **inboxId:** `AgentMailApi.InboxId`
317
+ **inboxId:** `AgentmailApi.InboxId`
437
318
 
438
319
  </dd>
439
320
  </dl>
@@ -441,7 +322,7 @@ await client.messages.sendMessage("inbox_id", {
441
322
  <dl>
442
323
  <dd>
443
324
 
444
- **request:** `AgentMailApi.SendMessageRequest`
325
+ **request:** `AgentmailApi.SendMessageRequest`
445
326
 
446
327
  </dd>
447
328
  </dl>
@@ -460,7 +341,7 @@ await client.messages.sendMessage("inbox_id", {
460
341
  </dl>
461
342
  </details>
462
343
 
463
- <details><summary><code>client.messages.<a href="/src/api/resources/messages/client/Client.ts">replyToMessage</a>(inboxId, messageId, { ...params }) -> AgentMailApi.SendMessageResponse</code></summary>
344
+ <details><summary><code>client.messages.<a href="/src/api/resources/messages/client/Client.ts">reply</a>(inboxId, messageId, { ...params }) -> AgentmailApi.SendMessageResponse</code></summary>
464
345
  <dl>
465
346
  <dd>
466
347
 
@@ -473,7 +354,7 @@ await client.messages.sendMessage("inbox_id", {
473
354
  <dd>
474
355
 
475
356
  ```typescript
476
- await client.messages.replyToMessage("inbox_id", "message_id", {
357
+ await client.messages.reply("inbox_id", "message_id", {
477
358
  to: undefined,
478
359
  cc: undefined,
479
360
  bcc: undefined,
@@ -495,7 +376,7 @@ await client.messages.replyToMessage("inbox_id", "message_id", {
495
376
  <dl>
496
377
  <dd>
497
378
 
498
- **inboxId:** `AgentMailApi.InboxId`
379
+ **inboxId:** `AgentmailApi.InboxId`
499
380
 
500
381
  </dd>
501
382
  </dl>
@@ -503,7 +384,7 @@ await client.messages.replyToMessage("inbox_id", "message_id", {
503
384
  <dl>
504
385
  <dd>
505
386
 
506
- **messageId:** `AgentMailApi.MessageId`
387
+ **messageId:** `AgentmailApi.MessageId`
507
388
 
508
389
  </dd>
509
390
  </dl>
@@ -511,7 +392,7 @@ await client.messages.replyToMessage("inbox_id", "message_id", {
511
392
  <dl>
512
393
  <dd>
513
394
 
514
- **request:** `AgentMailApi.ReplyToMessageRequest`
395
+ **request:** `AgentmailApi.ReplyToMessageRequest`
515
396
 
516
397
  </dd>
517
398
  </dl>
@@ -532,66 +413,25 @@ await client.messages.replyToMessage("inbox_id", "message_id", {
532
413
 
533
414
  ## Threads
534
415
 
535
- <details><summary><code>client.threads.<a href="/src/api/resources/threads/client/Client.ts">listThreads</a>(inboxId, { ...params }) -> AgentMailApi.ListThreadsResponse</code></summary>
416
+ <details><summary><code>client.threads.<a href="/src/api/resources/threads/client/Client.ts">list</a>(inboxId, { ...params }) -> AgentmailApi.ListThreadsResponse</code></summary>
536
417
  <dl>
537
418
  <dd>
538
419
 
539
- #### 🔌 Usage
540
-
541
- <dl>
542
- <dd>
543
-
544
- <dl>
545
- <dd>
546
-
547
- ```typescript
548
- await client.threads.listThreads("inbox_id");
549
- ```
550
-
551
- </dd>
552
- </dl>
553
- </dd>
554
- </dl>
555
-
556
- #### ⚙️ Parameters
557
-
558
- <dl>
559
- <dd>
560
-
561
- <dl>
562
- <dd>
563
-
564
- **inboxId:** `AgentMailApi.InboxId`
565
-
566
- </dd>
567
- </dl>
420
+ #### 📝 Description
568
421
 
569
422
  <dl>
570
423
  <dd>
571
424
 
572
- **request:** `AgentMailApi.ListThreadsRequest`
573
-
574
- </dd>
575
- </dl>
576
-
577
425
  <dl>
578
426
  <dd>
579
427
 
580
- **requestOptions:** `Threads.RequestOptions`
428
+ List threads in inbox. If neither or both `received` and `sent` query parameters are set, all threads are returned.
581
429
 
582
430
  </dd>
583
431
  </dl>
584
432
  </dd>
585
433
  </dl>
586
434
 
587
- </dd>
588
- </dl>
589
- </details>
590
-
591
- <details><summary><code>client.threads.<a href="/src/api/resources/threads/client/Client.ts">getThread</a>(inboxId, threadId) -> AgentMailApi.Thread</code></summary>
592
- <dl>
593
- <dd>
594
-
595
435
  #### 🔌 Usage
596
436
 
597
437
  <dl>
@@ -601,7 +441,7 @@ await client.threads.listThreads("inbox_id");
601
441
  <dd>
602
442
 
603
443
  ```typescript
604
- await client.threads.getThread("inbox_id", "thread_id");
444
+ await client.threads.list("inbox_id");
605
445
  ```
606
446
 
607
447
  </dd>
@@ -617,7 +457,7 @@ await client.threads.getThread("inbox_id", "thread_id");
617
457
  <dl>
618
458
  <dd>
619
459
 
620
- **inboxId:** `AgentMailApi.InboxId`
460
+ **inboxId:** `AgentmailApi.InboxId`
621
461
 
622
462
  </dd>
623
463
  </dl>
@@ -625,7 +465,7 @@ await client.threads.getThread("inbox_id", "thread_id");
625
465
  <dl>
626
466
  <dd>
627
467
 
628
- **threadId:** `AgentMailApi.ThreadId`
468
+ **request:** `AgentmailApi.ListThreadsRequest`
629
469
 
630
470
  </dd>
631
471
  </dl>
@@ -644,25 +484,10 @@ await client.threads.getThread("inbox_id", "thread_id");
644
484
  </dl>
645
485
  </details>
646
486
 
647
- <details><summary><code>client.threads.<a href="/src/api/resources/threads/client/Client.ts">deleteThread</a>(inboxId, threadId) -> void</code></summary>
648
- <dl>
649
- <dd>
650
-
651
- #### 📝 Description
652
-
487
+ <details><summary><code>client.threads.<a href="/src/api/resources/threads/client/Client.ts">get</a>(inboxId, threadId) -> AgentmailApi.Thread</code></summary>
653
488
  <dl>
654
489
  <dd>
655
490
 
656
- <dl>
657
- <dd>
658
-
659
- Delete thread and all of its messages and attachments.
660
-
661
- </dd>
662
- </dl>
663
- </dd>
664
- </dl>
665
-
666
491
  #### 🔌 Usage
667
492
 
668
493
  <dl>
@@ -672,7 +497,7 @@ Delete thread and all of its messages and attachments.
672
497
  <dd>
673
498
 
674
499
  ```typescript
675
- await client.threads.deleteThread("inbox_id", "thread_id");
500
+ await client.threads.get("inbox_id", "thread_id");
676
501
  ```
677
502
 
678
503
  </dd>
@@ -688,7 +513,7 @@ await client.threads.deleteThread("inbox_id", "thread_id");
688
513
  <dl>
689
514
  <dd>
690
515
 
691
- **inboxId:** `AgentMailApi.InboxId`
516
+ **inboxId:** `AgentmailApi.InboxId`
692
517
 
693
518
  </dd>
694
519
  </dl>
@@ -696,7 +521,7 @@ await client.threads.deleteThread("inbox_id", "thread_id");
696
521
  <dl>
697
522
  <dd>
698
523
 
699
- **threadId:** `AgentMailApi.ThreadId`
524
+ **threadId:** `AgentmailApi.ThreadId`
700
525
 
701
526
  </dd>
702
527
  </dl>
package/.env DELETED
@@ -1 +0,0 @@
1
- OPENAI_API_KEY=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