agentmail 0.5.46 → 0.5.47

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 (163) hide show
  1. package/dist/cjs/BaseClient.js +2 -2
  2. package/dist/cjs/api/resources/agent/client/Client.d.ts +3 -1
  3. package/dist/cjs/api/resources/agent/client/Client.js +3 -1
  4. package/dist/cjs/api/resources/apiKeys/types/ApiKeyPermissions.d.ts +4 -4
  5. package/dist/cjs/api/resources/calendar/types/IanaTimezone.d.ts +5 -3
  6. package/dist/cjs/api/resources/domains/types/Domain.d.ts +11 -4
  7. package/dist/cjs/api/resources/domains/types/RecordType.d.ts +1 -0
  8. package/dist/cjs/api/resources/domains/types/RecordType.js +1 -0
  9. package/dist/cjs/api/resources/domains/types/TrackingEnabled.d.ts +4 -3
  10. package/dist/cjs/api/resources/domains/types/TrackingStatus.d.ts +10 -0
  11. package/dist/cjs/api/resources/domains/types/TrackingStatus.js +3 -0
  12. package/dist/cjs/api/resources/domains/types/UpdateDomainRequest.d.ts +2 -1
  13. package/dist/cjs/api/resources/domains/types/VerificationRecord.d.ts +1 -1
  14. package/dist/cjs/api/resources/domains/types/index.d.ts +1 -0
  15. package/dist/cjs/api/resources/domains/types/index.js +1 -0
  16. package/dist/cjs/api/resources/events/types/EventId.d.ts +3 -1
  17. package/dist/cjs/api/resources/events/types/InboxIds.d.ts +1 -1
  18. package/dist/cjs/api/resources/events/types/MessageReceivedEvent.d.ts +1 -1
  19. package/dist/cjs/api/resources/events/types/PodIds.d.ts +1 -1
  20. package/dist/cjs/api/resources/events/types/ReceivedMessage.d.ts +18 -0
  21. package/dist/cjs/api/resources/events/types/ReceivedMessage.js +3 -0
  22. package/dist/cjs/api/resources/events/types/index.d.ts +1 -0
  23. package/dist/cjs/api/resources/events/types/index.js +1 -0
  24. package/dist/cjs/api/resources/inboxes/resources/calendar/client/Client.d.ts +20 -21
  25. package/dist/cjs/api/resources/inboxes/resources/calendar/client/Client.js +20 -21
  26. package/dist/cjs/api/resources/messages/types/Message.d.ts +1 -0
  27. package/dist/cjs/api/resources/messages/types/MessageAuthenticationDomain.d.ts +5 -0
  28. package/dist/cjs/api/resources/messages/types/MessageAuthenticationDomain.js +3 -0
  29. package/dist/cjs/api/resources/messages/types/MessageAuthenticationResults.d.ts +56 -0
  30. package/dist/cjs/api/resources/messages/types/MessageAuthenticationResults.js +3 -0
  31. package/dist/cjs/api/resources/messages/types/MessageAuthenticationVerdict.d.ts +16 -0
  32. package/dist/cjs/api/resources/messages/types/MessageAuthenticationVerdict.js +19 -0
  33. package/dist/cjs/api/resources/messages/types/MessageCalendarEventId.d.ts +3 -2
  34. package/dist/cjs/api/resources/messages/types/MessageHeaders.d.ts +4 -1
  35. package/dist/cjs/api/resources/messages/types/MessageItem.d.ts +1 -0
  36. package/dist/cjs/api/resources/messages/types/index.d.ts +3 -0
  37. package/dist/cjs/api/resources/messages/types/index.js +3 -0
  38. package/dist/cjs/api/resources/metrics/client/Client.d.ts +3 -4
  39. package/dist/cjs/api/resources/metrics/client/Client.js +3 -4
  40. package/dist/cjs/api/resources/organizations/client/Client.d.ts +1 -1
  41. package/dist/cjs/api/resources/organizations/client/Client.js +1 -1
  42. package/dist/cjs/api/resources/organizations/types/Organization.d.ts +12 -0
  43. package/dist/cjs/api/resources/webhooks/types/CreatePodWebhookRequest.d.ts +4 -0
  44. package/dist/cjs/api/resources/webhooks/types/CreateWebhookEventTypes.d.ts +3 -2
  45. package/dist/cjs/api/resources/webhooks/types/CreateWebhookRequest.d.ts +3 -2
  46. package/dist/cjs/api/resources/webhooks/types/UpdateInboxWebhookRequest.d.ts +6 -4
  47. package/dist/cjs/api/resources/webhooks/types/UpdatePodWebhookRequest.d.ts +2 -1
  48. package/dist/cjs/api/resources/webhooks/types/UpdateWebhookEventTypes.d.ts +2 -2
  49. package/dist/cjs/api/resources/webhooks/types/UpdateWebhookRequest.d.ts +4 -1
  50. package/dist/cjs/api/resources/webhooks/types/Webhook.d.ts +5 -1
  51. package/dist/cjs/serialization/resources/domains/types/Domain.d.ts +3 -0
  52. package/dist/cjs/serialization/resources/domains/types/Domain.js +3 -0
  53. package/dist/cjs/serialization/resources/domains/types/RecordType.d.ts +1 -1
  54. package/dist/cjs/serialization/resources/domains/types/RecordType.js +1 -1
  55. package/dist/cjs/serialization/resources/domains/types/TrackingStatus.d.ts +8 -0
  56. package/dist/cjs/serialization/resources/domains/types/TrackingStatus.js +6 -0
  57. package/dist/cjs/serialization/resources/domains/types/index.d.ts +1 -0
  58. package/dist/cjs/serialization/resources/domains/types/index.js +1 -0
  59. package/dist/cjs/serialization/resources/events/types/MessageReceivedEvent.d.ts +2 -2
  60. package/dist/cjs/serialization/resources/events/types/MessageReceivedEvent.js +2 -2
  61. package/dist/cjs/serialization/resources/events/types/ReceivedMessage.d.ts +11 -0
  62. package/dist/cjs/serialization/resources/events/types/ReceivedMessage.js +45 -0
  63. package/dist/cjs/serialization/resources/events/types/index.d.ts +1 -0
  64. package/dist/cjs/serialization/resources/events/types/index.js +1 -0
  65. package/dist/cjs/serialization/resources/messages/types/Message.d.ts +2 -0
  66. package/dist/cjs/serialization/resources/messages/types/Message.js +2 -0
  67. package/dist/cjs/serialization/resources/messages/types/MessageAuthenticationDomain.d.ts +7 -0
  68. package/dist/cjs/serialization/resources/messages/types/MessageAuthenticationDomain.js +39 -0
  69. package/dist/cjs/serialization/resources/messages/types/MessageAuthenticationResults.d.ts +17 -0
  70. package/dist/cjs/serialization/resources/messages/types/MessageAuthenticationResults.js +49 -0
  71. package/dist/cjs/serialization/resources/messages/types/MessageAuthenticationVerdict.d.ts +7 -0
  72. package/dist/cjs/serialization/resources/messages/types/MessageAuthenticationVerdict.js +39 -0
  73. package/dist/cjs/serialization/resources/messages/types/MessageItem.d.ts +2 -0
  74. package/dist/cjs/serialization/resources/messages/types/MessageItem.js +2 -0
  75. package/dist/cjs/serialization/resources/messages/types/index.d.ts +3 -0
  76. package/dist/cjs/serialization/resources/messages/types/index.js +3 -0
  77. package/dist/cjs/serialization/resources/organizations/types/Organization.d.ts +2 -0
  78. package/dist/cjs/serialization/resources/organizations/types/Organization.js +2 -0
  79. package/dist/cjs/version.d.ts +1 -1
  80. package/dist/cjs/version.js +1 -1
  81. package/dist/esm/BaseClient.mjs +2 -2
  82. package/dist/esm/api/resources/agent/client/Client.d.mts +3 -1
  83. package/dist/esm/api/resources/agent/client/Client.mjs +3 -1
  84. package/dist/esm/api/resources/apiKeys/types/ApiKeyPermissions.d.mts +4 -4
  85. package/dist/esm/api/resources/calendar/types/IanaTimezone.d.mts +5 -3
  86. package/dist/esm/api/resources/domains/types/Domain.d.mts +11 -4
  87. package/dist/esm/api/resources/domains/types/RecordType.d.mts +1 -0
  88. package/dist/esm/api/resources/domains/types/RecordType.mjs +1 -0
  89. package/dist/esm/api/resources/domains/types/TrackingEnabled.d.mts +4 -3
  90. package/dist/esm/api/resources/domains/types/TrackingStatus.d.mts +10 -0
  91. package/dist/esm/api/resources/domains/types/TrackingStatus.mjs +2 -0
  92. package/dist/esm/api/resources/domains/types/UpdateDomainRequest.d.mts +2 -1
  93. package/dist/esm/api/resources/domains/types/VerificationRecord.d.mts +1 -1
  94. package/dist/esm/api/resources/domains/types/index.d.mts +1 -0
  95. package/dist/esm/api/resources/domains/types/index.mjs +1 -0
  96. package/dist/esm/api/resources/events/types/EventId.d.mts +3 -1
  97. package/dist/esm/api/resources/events/types/InboxIds.d.mts +1 -1
  98. package/dist/esm/api/resources/events/types/MessageReceivedEvent.d.mts +1 -1
  99. package/dist/esm/api/resources/events/types/PodIds.d.mts +1 -1
  100. package/dist/esm/api/resources/events/types/ReceivedMessage.d.mts +18 -0
  101. package/dist/esm/api/resources/events/types/ReceivedMessage.mjs +2 -0
  102. package/dist/esm/api/resources/events/types/index.d.mts +1 -0
  103. package/dist/esm/api/resources/events/types/index.mjs +1 -0
  104. package/dist/esm/api/resources/inboxes/resources/calendar/client/Client.d.mts +20 -21
  105. package/dist/esm/api/resources/inboxes/resources/calendar/client/Client.mjs +20 -21
  106. package/dist/esm/api/resources/messages/types/Message.d.mts +1 -0
  107. package/dist/esm/api/resources/messages/types/MessageAuthenticationDomain.d.mts +5 -0
  108. package/dist/esm/api/resources/messages/types/MessageAuthenticationDomain.mjs +2 -0
  109. package/dist/esm/api/resources/messages/types/MessageAuthenticationResults.d.mts +56 -0
  110. package/dist/esm/api/resources/messages/types/MessageAuthenticationResults.mjs +2 -0
  111. package/dist/esm/api/resources/messages/types/MessageAuthenticationVerdict.d.mts +16 -0
  112. package/dist/esm/api/resources/messages/types/MessageAuthenticationVerdict.mjs +16 -0
  113. package/dist/esm/api/resources/messages/types/MessageCalendarEventId.d.mts +3 -2
  114. package/dist/esm/api/resources/messages/types/MessageHeaders.d.mts +4 -1
  115. package/dist/esm/api/resources/messages/types/MessageItem.d.mts +1 -0
  116. package/dist/esm/api/resources/messages/types/index.d.mts +3 -0
  117. package/dist/esm/api/resources/messages/types/index.mjs +3 -0
  118. package/dist/esm/api/resources/metrics/client/Client.d.mts +3 -4
  119. package/dist/esm/api/resources/metrics/client/Client.mjs +3 -4
  120. package/dist/esm/api/resources/organizations/client/Client.d.mts +1 -1
  121. package/dist/esm/api/resources/organizations/client/Client.mjs +1 -1
  122. package/dist/esm/api/resources/organizations/types/Organization.d.mts +12 -0
  123. package/dist/esm/api/resources/webhooks/types/CreatePodWebhookRequest.d.mts +4 -0
  124. package/dist/esm/api/resources/webhooks/types/CreateWebhookEventTypes.d.mts +3 -2
  125. package/dist/esm/api/resources/webhooks/types/CreateWebhookRequest.d.mts +3 -2
  126. package/dist/esm/api/resources/webhooks/types/UpdateInboxWebhookRequest.d.mts +6 -4
  127. package/dist/esm/api/resources/webhooks/types/UpdatePodWebhookRequest.d.mts +2 -1
  128. package/dist/esm/api/resources/webhooks/types/UpdateWebhookEventTypes.d.mts +2 -2
  129. package/dist/esm/api/resources/webhooks/types/UpdateWebhookRequest.d.mts +4 -1
  130. package/dist/esm/api/resources/webhooks/types/Webhook.d.mts +5 -1
  131. package/dist/esm/serialization/resources/domains/types/Domain.d.mts +3 -0
  132. package/dist/esm/serialization/resources/domains/types/Domain.mjs +3 -0
  133. package/dist/esm/serialization/resources/domains/types/RecordType.d.mts +1 -1
  134. package/dist/esm/serialization/resources/domains/types/RecordType.mjs +1 -1
  135. package/dist/esm/serialization/resources/domains/types/TrackingStatus.d.mts +8 -0
  136. package/dist/esm/serialization/resources/domains/types/TrackingStatus.mjs +3 -0
  137. package/dist/esm/serialization/resources/domains/types/index.d.mts +1 -0
  138. package/dist/esm/serialization/resources/domains/types/index.mjs +1 -0
  139. package/dist/esm/serialization/resources/events/types/MessageReceivedEvent.d.mts +2 -2
  140. package/dist/esm/serialization/resources/events/types/MessageReceivedEvent.mjs +2 -2
  141. package/dist/esm/serialization/resources/events/types/ReceivedMessage.d.mts +11 -0
  142. package/dist/esm/serialization/resources/events/types/ReceivedMessage.mjs +9 -0
  143. package/dist/esm/serialization/resources/events/types/index.d.mts +1 -0
  144. package/dist/esm/serialization/resources/events/types/index.mjs +1 -0
  145. package/dist/esm/serialization/resources/messages/types/Message.d.mts +2 -0
  146. package/dist/esm/serialization/resources/messages/types/Message.mjs +2 -0
  147. package/dist/esm/serialization/resources/messages/types/MessageAuthenticationDomain.d.mts +7 -0
  148. package/dist/esm/serialization/resources/messages/types/MessageAuthenticationDomain.mjs +3 -0
  149. package/dist/esm/serialization/resources/messages/types/MessageAuthenticationResults.d.mts +17 -0
  150. package/dist/esm/serialization/resources/messages/types/MessageAuthenticationResults.mjs +13 -0
  151. package/dist/esm/serialization/resources/messages/types/MessageAuthenticationVerdict.d.mts +7 -0
  152. package/dist/esm/serialization/resources/messages/types/MessageAuthenticationVerdict.mjs +3 -0
  153. package/dist/esm/serialization/resources/messages/types/MessageItem.d.mts +2 -0
  154. package/dist/esm/serialization/resources/messages/types/MessageItem.mjs +2 -0
  155. package/dist/esm/serialization/resources/messages/types/index.d.mts +3 -0
  156. package/dist/esm/serialization/resources/messages/types/index.mjs +3 -0
  157. package/dist/esm/serialization/resources/organizations/types/Organization.d.mts +2 -0
  158. package/dist/esm/serialization/resources/organizations/types/Organization.mjs +2 -0
  159. package/dist/esm/version.d.mts +1 -1
  160. package/dist/esm/version.mjs +1 -1
  161. package/dist/llms.txt +20 -2
  162. package/package.json +3 -2
  163. package/reference.md +27 -27
@@ -28,6 +28,7 @@ export * from "./MessageSecurityReviewEvent.mjs";
28
28
  export * from "./MessageSentEvent.mjs";
29
29
  export * from "./Open.mjs";
30
30
  export * from "./PodIds.mjs";
31
+ export * from "./ReceivedMessage.mjs";
31
32
  export * from "./Recipient.mjs";
32
33
  export * from "./Reject.mjs";
33
34
  export * from "./Send.mjs";
@@ -5,6 +5,7 @@ import { AgentArmorResult } from "../../agentArmor/types/AgentArmorResult.mjs";
5
5
  import { InboxId } from "../../inboxes/types/InboxId.mjs";
6
6
  import { ThreadId } from "../../threads/types/ThreadId.mjs";
7
7
  import { MessageAttachments } from "./MessageAttachments.mjs";
8
+ import { MessageAuthenticationResults } from "./MessageAuthenticationResults.mjs";
8
9
  import { MessageBcc } from "./MessageBcc.mjs";
9
10
  import { MessageCalendarEventId } from "./MessageCalendarEventId.mjs";
10
11
  import { MessageCc } from "./MessageCc.mjs";
@@ -47,6 +48,7 @@ export declare namespace Message {
47
48
  calendar_event_id?: MessageCalendarEventId.Raw | null;
48
49
  references?: MessageReferences.Raw | null;
49
50
  headers?: MessageHeaders.Raw | null;
51
+ authentication_results?: MessageAuthenticationResults.Raw | null;
50
52
  agent_armor?: AgentArmorResult.Raw | null;
51
53
  size: MessageSize.Raw;
52
54
  updated_at: MessageUpdatedAt.Raw;
@@ -4,6 +4,7 @@ import { AgentArmorResult } from "../../agentArmor/types/AgentArmorResult.mjs";
4
4
  import { InboxId } from "../../inboxes/types/InboxId.mjs";
5
5
  import { ThreadId } from "../../threads/types/ThreadId.mjs";
6
6
  import { MessageAttachments } from "./MessageAttachments.mjs";
7
+ import { MessageAuthenticationResults } from "./MessageAuthenticationResults.mjs";
7
8
  import { MessageBcc } from "./MessageBcc.mjs";
8
9
  import { MessageCalendarEventId } from "./MessageCalendarEventId.mjs";
9
10
  import { MessageCc } from "./MessageCc.mjs";
@@ -44,6 +45,7 @@ export const Message = core.serialization.object({
44
45
  calendarEventId: core.serialization.property("calendar_event_id", MessageCalendarEventId.optional()),
45
46
  references: MessageReferences.optional(),
46
47
  headers: MessageHeaders.optional(),
48
+ authenticationResults: core.serialization.property("authentication_results", MessageAuthenticationResults.optional()),
47
49
  agentArmor: core.serialization.property("agent_armor", AgentArmorResult.optional()),
48
50
  size: MessageSize,
49
51
  updatedAt: core.serialization.property("updated_at", MessageUpdatedAt),
@@ -0,0 +1,7 @@
1
+ import type * as AgentMail from "../../../../api/index.mjs";
2
+ import * as core from "../../../../core/index.mjs";
3
+ import type * as serializers from "../../../index.mjs";
4
+ export declare const MessageAuthenticationDomain: core.serialization.Schema<serializers.MessageAuthenticationDomain.Raw, AgentMail.MessageAuthenticationDomain>;
5
+ export declare namespace MessageAuthenticationDomain {
6
+ type Raw = string;
7
+ }
@@ -0,0 +1,3 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ import * as core from "../../../../core/index.mjs";
3
+ export const MessageAuthenticationDomain = core.serialization.string();
@@ -0,0 +1,17 @@
1
+ import type * as AgentMail from "../../../../api/index.mjs";
2
+ import * as core from "../../../../core/index.mjs";
3
+ import type * as serializers from "../../../index.mjs";
4
+ import { MessageAuthenticationDomain } from "./MessageAuthenticationDomain.mjs";
5
+ import { MessageAuthenticationVerdict } from "./MessageAuthenticationVerdict.mjs";
6
+ export declare const MessageAuthenticationResults: core.serialization.ObjectSchema<serializers.MessageAuthenticationResults.Raw, AgentMail.MessageAuthenticationResults>;
7
+ export declare namespace MessageAuthenticationResults {
8
+ interface Raw {
9
+ spf?: MessageAuthenticationVerdict.Raw | null;
10
+ dkim?: MessageAuthenticationVerdict.Raw | null;
11
+ dmarc?: MessageAuthenticationVerdict.Raw | null;
12
+ spf_domain?: MessageAuthenticationDomain.Raw | null;
13
+ dkim_domain?: MessageAuthenticationDomain.Raw | null;
14
+ dmarc_domain?: MessageAuthenticationDomain.Raw | null;
15
+ arc_sealer?: MessageAuthenticationDomain.Raw | null;
16
+ }
17
+ }
@@ -0,0 +1,13 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ import * as core from "../../../../core/index.mjs";
3
+ import { MessageAuthenticationDomain } from "./MessageAuthenticationDomain.mjs";
4
+ import { MessageAuthenticationVerdict } from "./MessageAuthenticationVerdict.mjs";
5
+ export const MessageAuthenticationResults = core.serialization.object({
6
+ spf: MessageAuthenticationVerdict.optional(),
7
+ dkim: MessageAuthenticationVerdict.optional(),
8
+ dmarc: MessageAuthenticationVerdict.optional(),
9
+ spfDomain: core.serialization.property("spf_domain", MessageAuthenticationDomain.optional()),
10
+ dkimDomain: core.serialization.property("dkim_domain", MessageAuthenticationDomain.optional()),
11
+ dmarcDomain: core.serialization.property("dmarc_domain", MessageAuthenticationDomain.optional()),
12
+ arcSealer: core.serialization.property("arc_sealer", MessageAuthenticationDomain.optional()),
13
+ });
@@ -0,0 +1,7 @@
1
+ import type * as AgentMail from "../../../../api/index.mjs";
2
+ import * as core from "../../../../core/index.mjs";
3
+ import type * as serializers from "../../../index.mjs";
4
+ export declare const MessageAuthenticationVerdict: core.serialization.Schema<serializers.MessageAuthenticationVerdict.Raw, AgentMail.MessageAuthenticationVerdict>;
5
+ export declare namespace MessageAuthenticationVerdict {
6
+ type Raw = "pass" | "fail" | "none" | "neutral" | "softfail" | "temperror" | "permerror";
7
+ }
@@ -0,0 +1,3 @@
1
+ // This file was auto-generated by Fern from our API Definition.
2
+ import * as core from "../../../../core/index.mjs";
3
+ export const MessageAuthenticationVerdict = core.serialization.enum_(["pass", "fail", "none", "neutral", "softfail", "temperror", "permerror"]);
@@ -5,6 +5,7 @@ import { AgentArmorResult } from "../../agentArmor/types/AgentArmorResult.mjs";
5
5
  import { InboxId } from "../../inboxes/types/InboxId.mjs";
6
6
  import { ThreadId } from "../../threads/types/ThreadId.mjs";
7
7
  import { MessageAttachments } from "./MessageAttachments.mjs";
8
+ import { MessageAuthenticationResults } from "./MessageAuthenticationResults.mjs";
8
9
  import { MessageBcc } from "./MessageBcc.mjs";
9
10
  import { MessageCalendarEventId } from "./MessageCalendarEventId.mjs";
10
11
  import { MessageCc } from "./MessageCc.mjs";
@@ -40,6 +41,7 @@ export declare namespace MessageItem {
40
41
  calendar_event_id?: MessageCalendarEventId.Raw | null;
41
42
  references?: MessageReferences.Raw | null;
42
43
  headers?: MessageHeaders.Raw | null;
44
+ authentication_results?: MessageAuthenticationResults.Raw | null;
43
45
  agent_armor?: AgentArmorResult.Raw | null;
44
46
  size: MessageSize.Raw;
45
47
  updated_at: MessageUpdatedAt.Raw;
@@ -4,6 +4,7 @@ import { AgentArmorResult } from "../../agentArmor/types/AgentArmorResult.mjs";
4
4
  import { InboxId } from "../../inboxes/types/InboxId.mjs";
5
5
  import { ThreadId } from "../../threads/types/ThreadId.mjs";
6
6
  import { MessageAttachments } from "./MessageAttachments.mjs";
7
+ import { MessageAuthenticationResults } from "./MessageAuthenticationResults.mjs";
7
8
  import { MessageBcc } from "./MessageBcc.mjs";
8
9
  import { MessageCalendarEventId } from "./MessageCalendarEventId.mjs";
9
10
  import { MessageCc } from "./MessageCc.mjs";
@@ -37,6 +38,7 @@ export const MessageItem = core.serialization.object({
37
38
  calendarEventId: core.serialization.property("calendar_event_id", MessageCalendarEventId.optional()),
38
39
  references: MessageReferences.optional(),
39
40
  headers: MessageHeaders.optional(),
41
+ authenticationResults: core.serialization.property("authentication_results", MessageAuthenticationResults.optional()),
40
42
  agentArmor: core.serialization.property("agent_armor", AgentArmorResult.optional()),
41
43
  size: MessageSize,
42
44
  updatedAt: core.serialization.property("updated_at", MessageUpdatedAt),
@@ -8,6 +8,9 @@ export * from "./BatchUpdateMessagesResponse.mjs";
8
8
  export * from "./ListMessagesResponse.mjs";
9
9
  export * from "./Message.mjs";
10
10
  export * from "./MessageAttachments.mjs";
11
+ export * from "./MessageAuthenticationDomain.mjs";
12
+ export * from "./MessageAuthenticationResults.mjs";
13
+ export * from "./MessageAuthenticationVerdict.mjs";
11
14
  export * from "./MessageBcc.mjs";
12
15
  export * from "./MessageCalendarEventId.mjs";
13
16
  export * from "./MessageCc.mjs";
@@ -8,6 +8,9 @@ export * from "./BatchUpdateMessagesResponse.mjs";
8
8
  export * from "./ListMessagesResponse.mjs";
9
9
  export * from "./Message.mjs";
10
10
  export * from "./MessageAttachments.mjs";
11
+ export * from "./MessageAuthenticationDomain.mjs";
12
+ export * from "./MessageAuthenticationResults.mjs";
13
+ export * from "./MessageAuthenticationVerdict.mjs";
11
14
  export * from "./MessageBcc.mjs";
12
15
  export * from "./MessageCalendarEventId.mjs";
13
16
  export * from "./MessageCc.mjs";
@@ -15,6 +15,8 @@ export declare namespace Organization {
15
15
  billing_subscription_id?: string | null;
16
16
  authentication_id?: string | null;
17
17
  authentication_type?: string | null;
18
+ suspended_at?: string | null;
19
+ suspended_reason?: string | null;
18
20
  updated_at: string;
19
21
  created_at: string;
20
22
  }
@@ -12,6 +12,8 @@ export const Organization = core.serialization.object({
12
12
  billingSubscriptionId: core.serialization.property("billing_subscription_id", core.serialization.string().optional()),
13
13
  authenticationId: core.serialization.property("authentication_id", core.serialization.string().optional()),
14
14
  authenticationType: core.serialization.property("authentication_type", core.serialization.string().optional()),
15
+ suspendedAt: core.serialization.property("suspended_at", core.serialization.date().optional()),
16
+ suspendedReason: core.serialization.property("suspended_reason", core.serialization.string().optional()),
15
17
  updatedAt: core.serialization.property("updated_at", core.serialization.date()),
16
18
  createdAt: core.serialization.property("created_at", core.serialization.date()),
17
19
  });
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "0.5.46";
1
+ export declare const SDK_VERSION = "0.5.47";
@@ -1 +1 @@
1
- export const SDK_VERSION = "0.5.46";
1
+ export const SDK_VERSION = "0.5.47";
package/dist/llms.txt CHANGED
@@ -36,6 +36,9 @@
36
36
  - [CLI](https://docs.agentmail.to/integrations/cli.md): AgentMail's official command-line interface
37
37
  - [Google ADK](https://docs.agentmail.to/integrations/google-adk.md): AgentMail's Google Agent Development Kit (ADK) integration
38
38
  - [LangChain](https://docs.agentmail.to/integrations/langchain.md): AgentMail's LangChain integration
39
+ - [Vercel AI SDK](https://docs.agentmail.to/integrations/ai-sdk.md): Give a Vercel AI SDK agent its own email inbox. The agentmail-toolkit package exposes the AgentMail API as AI SDK tools for generateText, streamText, and ToolLoopAgent.
40
+ - [OpenAI Agents SDK](https://docs.agentmail.to/integrations/openai-agents-sdk.md): Give an OpenAI Agents SDK agent its own email address. The agentmail-toolkit Python package exposes the AgentMail API as OpenAI Agents SDK tools.
41
+ - [Claude Agent SDK](https://docs.agentmail.to/integrations/claude-agent-sdk.md): Give a Claude Agent SDK agent its own email inbox by connecting it to the hosted AgentMail MCP server. No extra packages to install.
39
42
  - [OpenClaw](https://docs.agentmail.to/integrations/openclaw.md): Install AgentMail as an official OpenClaw plugin with one command. Your agent gets its own inbox plus an allowlisted email channel it can be reached at.
40
43
  - [Grok Bot](https://docs.agentmail.to/integrations/grokbot.md): AgentMail's Grok Bot, Grok Build, and Grok API integration
41
44
  - [Replit](https://docs.agentmail.to/integrations/replit.md): AgentMail's Replit integration
@@ -78,23 +81,30 @@
78
81
  - [Spam & Virus Detection](https://docs.agentmail.to/spam-virus-detection.md): How AgentMail automatically scans incoming emails for spam and viruses.
79
82
  - [API Welcome](https://docs.agentmail.to/api-reference.md): Quick overview of the AgentMail SDK
80
83
  - [Knowledge Base](https://docs.agentmail.to/knowledge-base.md): A collection of answers to frequently asked questions.
81
- - [What is AgentMail and how is it different?](https://docs.agentmail.to/knowledge-base/what-is-agentmail.md): Understand how AgentMail compares to traditional email providers.
84
+ - [What is AgentMail and how is it different?](https://docs.agentmail.to/knowledge-base/what-is-agentmail.md): Understand what AgentMail gives an AI agent and when to use it.
82
85
  - [What can I do with an AgentMail inbox?](https://docs.agentmail.to/knowledge-base/inbox-capabilities.md): A complete overview of inbox capabilities for AI agents.
83
86
  - [Can I set a profile picture for my inbox?](https://docs.agentmail.to/knowledge-base/inbox-profile-pictures.md): Learn how to associate a Google profile picture with an AgentMail address, how BIMI logos differ, and when Gmail requires a VMC or CMC certificate.
84
87
  - [How do I create my first inbox?](https://docs.agentmail.to/knowledge-base/creating-first-inbox.md): Get up and running with your first AgentMail inbox.
85
88
  - [How do I get my API key?](https://docs.agentmail.to/knowledge-base/getting-api-key.md): Create and manage your AgentMail API keys.
86
89
  - [How do I claim my agent's inbox?](https://docs.agentmail.to/knowledge-base/claiming-agent-inbox.md): Take ownership of an inbox your agent created without your email.
87
- - [How do I handle inbound emails with my agent?](https://docs.agentmail.to/knowledge-base/handling-inbound-emails.md): Compare Webhooks and WebSockets for processing incoming emails.
90
+ - [Why can my agent only email its human?](https://docs.agentmail.to/knowledge-base/agent-sign-up-limits.md): The limits on an account an agent created for itself, the errors it sees, and how verification lifts them.
91
+ - [Why was my account suspended?](https://docs.agentmail.to/knowledge-base/account-suspended.md): What each suspension reason means, what still works while suspended, and how to get a review.
92
+ - [How do I upgrade, downgrade, or cancel my plan?](https://docs.agentmail.to/knowledge-base/change-plan-billing.md): Change your plan, manage payment methods and invoices, or cancel from the AgentMail Console.
93
+ - [Security and compliance FAQ](https://docs.agentmail.to/knowledge-base/security-compliance.md): SOC 2, subprocessors, privacy, data residency, retention, email authentication, and where to send other questions.
94
+ - [How do I handle inbound emails with my agent?](https://docs.agentmail.to/knowledge-base/handling-inbound-emails.md): Compare webhooks, WebSockets, and polling webhooks for processing incoming emails.
88
95
  - [How do I set up allowlists and blocklists?](https://docs.agentmail.to/knowledge-base/allowlists-blocklists.md): Control who your AI agent can send to and receive from.
89
96
  - [How do I manage threaded conversations?](https://docs.agentmail.to/knowledge-base/threaded-conversations.md): Maintain context across multi-turn email conversations with your agent.
90
97
  - [How do I build a human-in-the-loop workflow?](https://docs.agentmail.to/knowledge-base/human-in-the-loop.md): Keep humans in control of your agent's email communications.
91
98
  - [How do I use Pods for multi-tenant email?](https://docs.agentmail.to/knowledge-base/pods-multi-tenant.md): Isolate inboxes, domains, and data across tenants with Pods.
92
99
  - [How do I use labels to track email state?](https://docs.agentmail.to/knowledge-base/labels-track-state.md): Use labels to manage agent workflow state on emails and threads.
100
+ - [How do I know when an email is opened?](https://docs.agentmail.to/knowledge-base/open-tracking.md): Track opens on the emails your agent sends, and react when a recipient reads one.
93
101
  - [How do I set up a custom domain?](https://docs.agentmail.to/knowledge-base/custom-domain-setup.md): Send emails from your own domain instead of @agentmail.to.
102
+ - [How do I create inboxes on any subdomain?](https://docs.agentmail.to/knowledge-base/subdomain-inboxes.md): Register one parent domain and use it for inboxes across its subdomains.
94
103
  - [How do I set up SPF, DKIM, and DMARC?](https://docs.agentmail.to/knowledge-base/spf-dkim-dmarc.md): Authenticate your domain for reliable email deliverability.
95
104
  - [Why are my emails going to spam?](https://docs.agentmail.to/knowledge-base/emails-going-to-spam.md): Troubleshoot and fix spam folder placement issues.
96
105
  - [Warming Up](https://docs.agentmail.to/knowledge-base/domain-warming.md): Gradually build sending reputation on a new domain or inbox.
97
106
  - [How do I avoid MX record conflicts?](https://docs.agentmail.to/knowledge-base/mx-record-conflicts.md): Add AgentMail DNS records without breaking existing email.
107
+ - [Can my agent send cold outreach?](https://docs.agentmail.to/knowledge-base/cold-outreach.md): AgentMail does not support cold outreach. Here is what it is built for, and how to handle opt-outs.
98
108
  - [What does a 403 error mean?](https://docs.agentmail.to/knowledge-base/api-403-error.md): Common causes of API 403 Forbidden errors and how to fix them.
99
109
  - [What are the rate limits?](https://docs.agentmail.to/knowledge-base/rate-limits.md): Understand AgentMail's sending limits and API rate limits, and how to work within them.
100
110
  - [How do I prevent duplicate sends?](https://docs.agentmail.to/knowledge-base/preventing-duplicate-sends.md): Use idempotency to avoid sending the same email twice.
@@ -113,6 +123,11 @@
113
123
  - API Reference > Agent [Sign Up](https://docs.agentmail.to/api-reference/agent/sign-up.md)
114
124
  - API Reference > Agent [Attach Human](https://docs.agentmail.to/api-reference/agent/attach-human.md)
115
125
  - API Reference > Agent [Verify](https://docs.agentmail.to/api-reference/agent/verify.md)
126
+ - API Reference > Inboxes > Files [Create File](https://docs.agentmail.to/api-reference/inboxes/files/create.md)
127
+ - API Reference > Inboxes > Files [Complete File](https://docs.agentmail.to/api-reference/inboxes/files/complete.md)
128
+ - API Reference > Inboxes > Files [Get File](https://docs.agentmail.to/api-reference/inboxes/files/get.md)
129
+ - API Reference > Inboxes > Files [List Files](https://docs.agentmail.to/api-reference/inboxes/files/list.md)
130
+ - API Reference > Inboxes > Files [Delete File](https://docs.agentmail.to/api-reference/inboxes/files/delete.md)
116
131
  - API Reference > Inboxes [List Inboxes](https://docs.agentmail.to/api-reference/inboxes/list.md)
117
132
  - API Reference > Inboxes [Search Inboxes](https://docs.agentmail.to/api-reference/inboxes/search.md)
118
133
  - API Reference > Inboxes [Get Inbox](https://docs.agentmail.to/api-reference/inboxes/get.md)
@@ -130,6 +145,7 @@
130
145
  - API Reference > Inboxes > Messages [Search Messages](https://docs.agentmail.to/api-reference/inboxes/messages/search.md)
131
146
  - API Reference > Inboxes > Messages [Get Message](https://docs.agentmail.to/api-reference/inboxes/messages/get.md)
132
147
  - API Reference > Inboxes > Messages [Create Agent Armor Feedback](https://docs.agentmail.to/api-reference/inboxes/messages/create-agent-armor-feedback.md)
148
+ - API Reference > Inboxes > Messages [Release Agent Armor Message](https://docs.agentmail.to/api-reference/inboxes/messages/release-agent-armor-message.md)
133
149
  - API Reference > Inboxes > Messages [Batch Get Messages](https://docs.agentmail.to/api-reference/inboxes/messages/batch-get.md)
134
150
  - API Reference > Inboxes > Messages [Batch Update Messages](https://docs.agentmail.to/api-reference/inboxes/messages/batch-update.md)
135
151
  - API Reference > Inboxes > Messages [Get Attachment](https://docs.agentmail.to/api-reference/inboxes/messages/get-attachment.md)
@@ -200,6 +216,8 @@
200
216
  - API Reference > Webhooks [Delete Webhook](https://docs.agentmail.to/api-reference/webhooks/delete.md)
201
217
  - API Reference > Webhooks > Events [Message Received](https://docs.agentmail.to/api-reference/webhooks/events/message-received.md)
202
218
  - API Reference > Webhooks > Events [Message Security Completed](https://docs.agentmail.to/api-reference/webhooks/events/message-security-completed.md)
219
+ - API Reference > Webhooks > Events [Message Security Review](https://docs.agentmail.to/api-reference/webhooks/events/message-security-review.md)
220
+ - API Reference > Webhooks > Events [Message Security Override](https://docs.agentmail.to/api-reference/webhooks/events/message-security-override.md)
203
221
  - API Reference > Webhooks > Events [Message Sent](https://docs.agentmail.to/api-reference/webhooks/events/message-sent.md)
204
222
  - API Reference > Webhooks > Events [Message Delivered](https://docs.agentmail.to/api-reference/webhooks/events/message-delivered.md)
205
223
  - API Reference > Webhooks > Events [Message Bounced](https://docs.agentmail.to/api-reference/webhooks/events/message-bounced.md)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentmail",
3
- "version": "0.5.46",
3
+ "version": "0.5.47",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -511,7 +511,8 @@
511
511
  "pnpm": {
512
512
  "overrides": {
513
513
  "postcss": ">=8.5.23",
514
- "fast-uri": ">=3.1.5"
514
+ "fast-uri": ">=3.1.5",
515
+ "browserslist": ">=4.28.7"
515
516
  }
516
517
  },
517
518
  "description": "The email inbox API for AI agents. Send, receive, reply, and manage threaded email conversations programmatically.",
package/reference.md CHANGED
@@ -1468,6 +1468,8 @@ Create a new agent organization with an inbox and API key. This endpoint is for
1468
1468
 
1469
1469
  A 6-digit OTP is sent to the human's email for verification.
1470
1470
 
1471
+ The new organization starts with 1 inbox, no custom domains, and 10 emails per day, which can be sent only to `human_email` until the organization is verified.
1472
+
1471
1473
  `human_email` is optional. Without it, the inbox can receive email but cannot send to anyone until a human is attached with the attach human endpoint or, for a US-region inbox, claims it in the AgentMail Console with the API key (see [How do I claim my agent's inbox?](https://docs.agentmail.to/knowledge-base/claiming-agent-inbox)). There is also no way to recover the API key, so store it durably. Calling sign-up again without `human_email` creates a new organization, which needs a different `username`: the original username stays with the lost organization's inbox.
1472
1474
 
1473
1475
  This endpoint is idempotent. Calling it again with the same `human_email` will rotate the API key and resend the OTP if expired.
@@ -1622,7 +1624,7 @@ await client.agent.attachHuman({
1622
1624
 
1623
1625
  Verify an agent organization using the 6-digit OTP sent to the human's email during sign-up.
1624
1626
 
1625
- On success, the organization is upgraded from `agent_unverified` to `agent_verified`, the send allowlist is removed, and free plan entitlements are applied.
1627
+ On success, the organization is upgraded from `agent_unverified` to `agent_verified`, the send allowlist is removed, and the Free plan's entitlements are applied: 3 inboxes and 100 emails per day, at first to at most 3 distinct recipients in the first hour, 5 in the first day, and 10 in the first week.
1626
1628
 
1627
1629
  The OTP expires after 24 hours and allows a maximum of 10 attempts. If the OTP expired, call the attach human endpoint with the same `human_email` to get a new one without rotating the API key. Once all 10 attempts are used, even the correct OTP is rejected, and attach human keeps returning the same OTP until it expires, so wait for it to expire before asking for a new one. An organization that signed up without a `human_email` has no OTP until a human is attached. If you run into any difficulties receiving the OTP code, you can also create an account on [console.agentmail.to](https://console.agentmail.to) using the human email address you provided to verify your account.
1628
1630
 
@@ -3643,9 +3645,8 @@ Gets the inbox's calendar. Every inbox has one calendar, so this works before an
3643
3645
  created. Its `etag` (also the `ETag` response header) is the value to send in `If-Match` to
3644
3646
  make an update conditional.
3645
3647
 
3646
- Requires the `calendar_read` permission. Calendar is in AgentMail Labs, available in US production (`api.agentmail.to`)
3647
- but not yet in EU production (`api.agentmail.eu`). Organizations that have not joined
3648
- Labs receive a `403`.
3648
+ Requires the `calendar_read` permission. Calendar is available in US production
3649
+ (`api.agentmail.to`) but not yet in EU production (`api.agentmail.eu`), which returns `403`.
3649
3650
  </dd>
3650
3651
  </dl>
3651
3652
  </dd>
@@ -3723,8 +3724,8 @@ Requires the `calendar_update` permission. To make the update conditional, send
3723
3724
  calendar's current `etag` in `If-Match`: a stale value returns `412`. Without `If-Match` the
3724
3725
  update applies to the calendar as it is.
3725
3726
 
3726
- Calendar is in AgentMail Labs, available in US production (`api.agentmail.to`) but not yet
3727
- in EU production (`api.agentmail.eu`). Organizations that have not joined Labs receive a `403`.
3727
+ Calendar is available in US production (`api.agentmail.to`) but not yet in EU production
3728
+ (`api.agentmail.eu`), which returns `403`.
3728
3729
  </dd>
3729
3730
  </dl>
3730
3731
  </dd>
@@ -3806,8 +3807,8 @@ use Get Agenda.
3806
3807
  The list is always read in the region that serves the request, so it can trail a change made
3807
3808
  moments earlier by a few seconds. Requires the `calendar_event_read` permission.
3808
3809
 
3809
- Calendar is in AgentMail Labs, available in US production (`api.agentmail.to`) but not yet
3810
- in EU production (`api.agentmail.eu`). Organizations that have not joined Labs receive a `403`.
3810
+ Calendar is available in US production (`api.agentmail.to`) but not yet in EU production
3811
+ (`api.agentmail.eu`), which returns `403`.
3811
3812
  </dd>
3812
3813
  </dl>
3813
3814
  </dd>
@@ -3897,8 +3898,8 @@ The agenda is read in the region that serves the request, so it can trail a chan
3897
3898
  moments earlier by a few seconds. Pass `consistency=primary` to read your own change right
3898
3899
  away. Requires the `calendar_event_read` permission.
3899
3900
 
3900
- Calendar is in AgentMail Labs, available in US production (`api.agentmail.to`) but not yet
3901
- in EU production (`api.agentmail.eu`). Organizations that have not joined Labs receive a `403`.
3901
+ Calendar is available in US production (`api.agentmail.to`) but not yet in EU production
3902
+ (`api.agentmail.eu`), which returns `403`.
3902
3903
  </dd>
3903
3904
  </dl>
3904
3905
  </dd>
@@ -3993,8 +3994,8 @@ charged again.
3993
3994
  The event's `etag` is the value to send in `If-Match` to make a later update or delete
3994
3995
  conditional. Requires the `calendar_event_create` permission.
3995
3996
 
3996
- Calendar is in AgentMail Labs, available in US production (`api.agentmail.to`) but not yet
3997
- in EU production (`api.agentmail.eu`). Organizations that have not joined Labs receive a `403`.
3997
+ Calendar is available in US production (`api.agentmail.to`) but not yet in EU production
3998
+ (`api.agentmail.eu`), which returns `403`.
3998
3999
  </dd>
3999
4000
  </dl>
4000
4001
  </dd>
@@ -4093,8 +4094,8 @@ to read the latest state of an event or a date. A date that has already started
4093
4094
  reads back as it ran, even if a later change to the series no longer produces it. Requires
4094
4095
  the `calendar_event_read` permission.
4095
4096
 
4096
- Calendar is in AgentMail Labs, available in US production (`api.agentmail.to`) but not yet
4097
- in EU production (`api.agentmail.eu`). Organizations that have not joined Labs receive a `403`.
4097
+ Calendar is available in US production (`api.agentmail.to`) but not yet in EU production
4098
+ (`api.agentmail.eu`), which returns `403`.
4098
4099
  </dd>
4099
4100
  </dl>
4100
4101
  </dd>
@@ -4198,8 +4199,8 @@ Emailing attendees counts one send per attendee against the organization, pod an
4198
4199
  send limits, charged before the change is saved; an over-limit request returns `429`
4199
4200
  `rate_limit_exceeded` and changes nothing.
4200
4201
 
4201
- Calendar is in AgentMail Labs, available in US production (`api.agentmail.to`) but not yet
4202
- in EU production (`api.agentmail.eu`). Organizations that have not joined Labs receive a `403`.
4202
+ Calendar is available in US production (`api.agentmail.to`) but not yet in EU production
4203
+ (`api.agentmail.eu`), which returns `403`.
4203
4204
  </dd>
4204
4205
  </dl>
4205
4206
  </dd>
@@ -4304,8 +4305,8 @@ Emailing cancellations counts one send per attendee against the organization, po
4304
4305
  send limits, charged before the delete; an over-limit request returns `429`
4305
4306
  `rate_limit_exceeded` and deletes nothing.
4306
4307
 
4307
- Calendar is in AgentMail Labs, available in US production (`api.agentmail.to`) but not yet
4308
- in EU production (`api.agentmail.eu`). Organizations that have not joined Labs receive a `403`.
4308
+ Calendar is available in US production (`api.agentmail.to`) but not yet in EU production
4309
+ (`api.agentmail.eu`), which returns `403`.
4309
4310
  </dd>
4310
4311
  </dl>
4311
4312
  </dd>
@@ -4396,8 +4397,8 @@ and `attendees`; get a date by its ID for the full object. Like other reads, the
4396
4397
  trail a change made moments earlier by a few seconds; pass `consistency=primary` to read
4397
4398
  your own change right away. Requires the `calendar_event_read` permission.
4398
4399
 
4399
- Calendar is in AgentMail Labs, available in US production (`api.agentmail.to`) but not yet
4400
- in EU production (`api.agentmail.eu`). Organizations that have not joined Labs receive a `403`.
4400
+ Calendar is available in US production (`api.agentmail.to`) but not yet in EU production
4401
+ (`api.agentmail.eu`), which returns `403`.
4401
4402
  </dd>
4402
4403
  </dl>
4403
4404
  </dd>
@@ -4494,8 +4495,8 @@ A reply email counts as one send against the organization, pod and inbox send li
4494
4495
  charged before the response is saved; an over-limit request returns `429`
4495
4496
  `rate_limit_exceeded` and changes nothing.
4496
4497
 
4497
- Calendar is in AgentMail Labs, available in US production (`api.agentmail.to`) but not yet
4498
- in EU production (`api.agentmail.eu`). Organizations that have not joined Labs receive a `403`.
4498
+ Calendar is available in US production (`api.agentmail.to`) but not yet in EU production
4499
+ (`api.agentmail.eu`), which returns `403`.
4499
4500
  </dd>
4500
4501
  </dl>
4501
4502
  </dd>
@@ -9208,10 +9209,9 @@ Rolling bounce and complaint rates for the organization. At each
9208
9209
  `period` grid point, the bounced (or complained) messages over the
9209
9210
  preceding `window` divided by the messages sent over the same window,
9210
9211
  with the send count alongside so you can see the volume behind
9211
- it. This is the number AgentMail's account moderation acts on: a
9212
- warning at a 5% bounce rate and suspension at 10%, evaluated over a
9213
- rolling 24 hours once at least 1,000 messages were sent in that
9214
- window. Defaults to the rolling 24-hour rate sampled hourly over the
9212
+ it. AgentMail weighs bounce and complaint signals when deciding
9213
+ whether to suspend an account's sending, so keep both rates low.
9214
+ Defaults to the rolling 24-hour rate sampled hourly over the
9215
9215
  last day; `start` must be within the last 90 days, `window` must be a
9216
9216
  whole multiple of `period`, and the range plus window divided by
9217
9217
  `period` must not exceed 1000 buckets.
@@ -9343,7 +9343,7 @@ await client.organizations.get();
9343
9343
  <dl>
9344
9344
  <dd>
9345
9345
 
9346
- Returns whether the organization is in [AgentMail Labs](https://docs.agentmail.to/calendar), which turns on features that are still in preview, such as calendar. Requires an organization-scoped API key.
9346
+ Returns whether the organization is in AgentMail Labs, which turns on features that are still in preview, such as [Agent Armor](https://docs.agentmail.to/agent-armor). Requires an organization-scoped API key.
9347
9347
 
9348
9348
  **CLI:**
9349
9349
  ```bash