agentmail 2.0.4__tar.gz → 2.0.6__tar.gz

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 (457) hide show
  1. {agentmail-2.0.4 → agentmail-2.0.6}/PKG-INFO +1 -1
  2. {agentmail-2.0.4 → agentmail-2.0.6}/pyproject.toml +1 -1
  3. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/__init__.py +12 -1
  4. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/agent/__init__.py +18 -2
  5. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/agent/client.py +117 -14
  6. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/agent/raw_client.py +183 -10
  7. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/agent/types/__init__.py +12 -1
  8. agentmail-2.0.6/src/agentmail/agent/types/agent_attach_human_request.py +27 -0
  9. agentmail-2.0.6/src/agentmail/agent/types/agent_attach_human_response.py +32 -0
  10. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/agent/types/agent_signup_request.py +2 -1
  11. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/api_key_permissions.py +5 -0
  12. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/create_api_key_response.py +2 -0
  13. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/create_bearer_api_key_request.py +11 -0
  14. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/client_wrapper.py +2 -2
  15. {agentmail-2.0.4 → agentmail-2.0.6}/LICENSE +0 -0
  16. {agentmail-2.0.4 → agentmail-2.0.6}/README.md +0 -0
  17. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/accounts/__init__.py +0 -0
  18. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/accounts/client.py +0 -0
  19. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/accounts/raw_client.py +0 -0
  20. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/accounts/types/__init__.py +0 -0
  21. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/accounts/types/account.py +0 -0
  22. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/accounts/types/account_id.py +0 -0
  23. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/accounts/types/account_status.py +0 -0
  24. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/accounts/types/list_accounts_response.py +0 -0
  25. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/accounts/types/provider_id.py +0 -0
  26. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/accounts/types/update_account_request.py +0 -0
  27. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/accounts/types/update_account_status.py +0 -0
  28. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/agent/types/agent_signup_response.py +0 -0
  29. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/agent/types/agent_verify_request.py +0 -0
  30. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/agent/types/agent_verify_response.py +0 -0
  31. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/__init__.py +0 -0
  32. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/client.py +0 -0
  33. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/raw_client.py +0 -0
  34. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/__init__.py +0 -0
  35. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/accept_disclosure.py +0 -0
  36. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/api_key.py +0 -0
  37. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/api_key_creator.py +0 -0
  38. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/api_key_id.py +0 -0
  39. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/api_key_mutable_fields.py +0 -0
  40. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/api_key_type.py +0 -0
  41. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/auth_token.py +0 -0
  42. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/bearer_api_key.py +0 -0
  43. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/create_api_key_request.py +0 -0
  44. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/create_api_key_result.py +0 -0
  45. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/create_public_key_request.py +0 -0
  46. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/created_at.py +0 -0
  47. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/expires_at.py +0 -0
  48. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/inbox_scope_id.py +0 -0
  49. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/list_api_keys_response.py +0 -0
  50. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/name.py +0 -0
  51. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/pod_scope_id.py +0 -0
  52. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/prefix.py +0 -0
  53. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/public_jwk.py +0 -0
  54. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/public_jwk_coordinate.py +0 -0
  55. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/public_key_client_id.py +0 -0
  56. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/public_key_credential.py +0 -0
  57. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/public_key_material.py +0 -0
  58. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/public_key_status.py +0 -0
  59. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/update_api_key_request.py +0 -0
  60. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/updated_at.py +0 -0
  61. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/api_keys/types/used_at.py +0 -0
  62. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/attachments/__init__.py +0 -0
  63. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/attachments/types/__init__.py +0 -0
  64. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/attachments/types/attachment.py +0 -0
  65. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/attachments/types/attachment_content_disposition.py +0 -0
  66. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/attachments/types/attachment_content_id.py +0 -0
  67. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/attachments/types/attachment_content_type.py +0 -0
  68. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/attachments/types/attachment_filename.py +0 -0
  69. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/attachments/types/attachment_id.py +0 -0
  70. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/attachments/types/attachment_response.py +0 -0
  71. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/attachments/types/attachment_size.py +0 -0
  72. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/attachments/types/send_attachment.py +0 -0
  73. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/auth/__init__.py +0 -0
  74. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/auth/client.py +0 -0
  75. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/auth/raw_client.py +0 -0
  76. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/auth/types/__init__.py +0 -0
  77. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/auth/types/identity.py +0 -0
  78. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/auth/types/scope_type.py +0 -0
  79. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/client.py +0 -0
  80. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/__init__.py +0 -0
  81. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/api_error.py +0 -0
  82. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/datetime_utils.py +0 -0
  83. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/events.py +0 -0
  84. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/file.py +0 -0
  85. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/force_multipart.py +0 -0
  86. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/http_client.py +0 -0
  87. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/http_response.py +0 -0
  88. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/http_sse/__init__.py +0 -0
  89. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/http_sse/_api.py +0 -0
  90. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/http_sse/_decoders.py +0 -0
  91. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/http_sse/_exceptions.py +0 -0
  92. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/http_sse/_models.py +0 -0
  93. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/jsonable_encoder.py +0 -0
  94. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/logging.py +0 -0
  95. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/parse_error.py +0 -0
  96. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/pydantic_utilities.py +0 -0
  97. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/query_encoder.py +0 -0
  98. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/remove_none_from_dict.py +0 -0
  99. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/request_options.py +0 -0
  100. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/serialization.py +0 -0
  101. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/unchecked_base_model.py +0 -0
  102. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/core/websocket_compat.py +0 -0
  103. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/__init__.py +0 -0
  104. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/client.py +0 -0
  105. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/raw_client.py +0 -0
  106. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/__init__.py +0 -0
  107. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/client_id.py +0 -0
  108. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/create_domain_request.py +0 -0
  109. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/domain.py +0 -0
  110. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/domain_id.py +0 -0
  111. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/domain_item.py +0 -0
  112. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/domain_name.py +0 -0
  113. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/feedback_enabled.py +0 -0
  114. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/get_setup_link_response.py +0 -0
  115. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/list_domains_response.py +0 -0
  116. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/record_status.py +0 -0
  117. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/record_type.py +0 -0
  118. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/status.py +0 -0
  119. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/subdomains_enabled.py +0 -0
  120. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/tracking_enabled.py +0 -0
  121. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/update_domain_request.py +0 -0
  122. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/verification_record.py +0 -0
  123. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/domains/types/verification_status.py +0 -0
  124. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/__init__.py +0 -0
  125. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/client.py +0 -0
  126. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/raw_client.py +0 -0
  127. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/__init__.py +0 -0
  128. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/create_draft_request.py +0 -0
  129. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft.py +0 -0
  130. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_attachments.py +0 -0
  131. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_bcc.py +0 -0
  132. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_cc.py +0 -0
  133. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_client_id.py +0 -0
  134. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_forward_of.py +0 -0
  135. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_html.py +0 -0
  136. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_id.py +0 -0
  137. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_in_reply_to.py +0 -0
  138. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_item.py +0 -0
  139. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_labels.py +0 -0
  140. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_preview.py +0 -0
  141. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_reply_all.py +0 -0
  142. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_reply_to.py +0 -0
  143. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_send_at.py +0 -0
  144. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_send_status.py +0 -0
  145. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_subject.py +0 -0
  146. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_text.py +0 -0
  147. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_to.py +0 -0
  148. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/draft_updated_at.py +0 -0
  149. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/list_drafts_response.py +0 -0
  150. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/drafts/types/update_draft_request.py +0 -0
  151. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/environment.py +0 -0
  152. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/errors/__init__.py +0 -0
  153. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/errors/conflict_error.py +0 -0
  154. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/errors/is_taken_error.py +0 -0
  155. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/errors/not_found_error.py +0 -0
  156. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/errors/unprocessable_error.py +0 -0
  157. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/errors/validation_error.py +0 -0
  158. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/__init__.py +0 -0
  159. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/__init__.py +0 -0
  160. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/bounce.py +0 -0
  161. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/complaint.py +0 -0
  162. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/delivery.py +0 -0
  163. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/domain_verified_event.py +0 -0
  164. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/event_id.py +0 -0
  165. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/event_type.py +0 -0
  166. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/event_types.py +0 -0
  167. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/inbox_ids.py +0 -0
  168. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/message_bounced_event.py +0 -0
  169. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/message_complained_event.py +0 -0
  170. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/message_delivered_event.py +0 -0
  171. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/message_opened_event.py +0 -0
  172. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/message_received_event.py +0 -0
  173. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/message_received_event_type.py +0 -0
  174. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/message_rejected_event.py +0 -0
  175. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/message_sent_event.py +0 -0
  176. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/open.py +0 -0
  177. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/pod_ids.py +0 -0
  178. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/recipient.py +0 -0
  179. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/reject.py +0 -0
  180. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/send.py +0 -0
  181. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/events/types/timestamp.py +0 -0
  182. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inbox_events/__init__.py +0 -0
  183. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inbox_events/types/__init__.py +0 -0
  184. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inbox_events/types/inbox_event.py +0 -0
  185. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inbox_events/types/inbox_event_id.py +0 -0
  186. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inbox_events/types/inbox_event_type.py +0 -0
  187. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inbox_events/types/list_inbox_events_response.py +0 -0
  188. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/__init__.py +0 -0
  189. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/accounts/__init__.py +0 -0
  190. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/accounts/client.py +0 -0
  191. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/accounts/raw_client.py +0 -0
  192. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/api_keys/__init__.py +0 -0
  193. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/api_keys/client.py +0 -0
  194. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/api_keys/raw_client.py +0 -0
  195. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/client.py +0 -0
  196. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/drafts/__init__.py +0 -0
  197. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/drafts/client.py +0 -0
  198. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/drafts/raw_client.py +0 -0
  199. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/events/__init__.py +0 -0
  200. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/events/client.py +0 -0
  201. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/events/raw_client.py +0 -0
  202. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/lists/__init__.py +0 -0
  203. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/lists/client.py +0 -0
  204. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/lists/raw_client.py +0 -0
  205. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/messages/__init__.py +0 -0
  206. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/messages/client.py +0 -0
  207. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/messages/raw_client.py +0 -0
  208. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/metrics/__init__.py +0 -0
  209. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/metrics/client.py +0 -0
  210. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/metrics/raw_client.py +0 -0
  211. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/raw_client.py +0 -0
  212. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/threads/__init__.py +0 -0
  213. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/threads/client.py +0 -0
  214. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/threads/raw_client.py +0 -0
  215. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/types/__init__.py +0 -0
  216. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/types/authorize_inbox_request.py +0 -0
  217. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/types/authorize_inbox_response.py +0 -0
  218. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/types/client_id.py +0 -0
  219. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/types/create_inbox_request.py +0 -0
  220. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/types/display_name.py +0 -0
  221. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/types/email.py +0 -0
  222. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/types/inbox.py +0 -0
  223. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/types/inbox_id.py +0 -0
  224. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/types/list_inboxes_response.py +0 -0
  225. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/types/metadata.py +0 -0
  226. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/types/metadata_value.py +0 -0
  227. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/types/search_inboxes_response.py +0 -0
  228. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/types/update_inbox_request.py +0 -0
  229. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/types/update_metadata.py +0 -0
  230. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/webhooks/__init__.py +0 -0
  231. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/webhooks/client.py +0 -0
  232. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/inboxes/webhooks/raw_client.py +0 -0
  233. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/lists/__init__.py +0 -0
  234. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/lists/client.py +0 -0
  235. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/lists/raw_client.py +0 -0
  236. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/lists/types/__init__.py +0 -0
  237. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/lists/types/create_list_entry_request.py +0 -0
  238. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/lists/types/direction.py +0 -0
  239. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/lists/types/entry_type.py +0 -0
  240. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/lists/types/list_entry.py +0 -0
  241. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/lists/types/list_entry_base.py +0 -0
  242. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/lists/types/list_list_entries_response.py +0 -0
  243. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/lists/types/list_type.py +0 -0
  244. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/lists/types/pod_list_entry.py +0 -0
  245. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/lists/types/pod_list_list_entries_response.py +0 -0
  246. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/__init__.py +0 -0
  247. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/errors/__init__.py +0 -0
  248. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/errors/message_rejected_error.py +0 -0
  249. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/__init__.py +0 -0
  250. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/addresses.py +0 -0
  251. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/batch_get_messages_message_ids.py +0 -0
  252. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/batch_get_messages_request.py +0 -0
  253. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/batch_get_messages_response.py +0 -0
  254. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/batch_update_messages_message_ids.py +0 -0
  255. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/batch_update_messages_request.py +0 -0
  256. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/batch_update_messages_response.py +0 -0
  257. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/list_messages_response.py +0 -0
  258. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message.py +0 -0
  259. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_attachments.py +0 -0
  260. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_bcc.py +0 -0
  261. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_cc.py +0 -0
  262. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_created_at.py +0 -0
  263. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_from.py +0 -0
  264. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_headers.py +0 -0
  265. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_html.py +0 -0
  266. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_id.py +0 -0
  267. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_in_reply_to.py +0 -0
  268. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_item.py +0 -0
  269. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_labels.py +0 -0
  270. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_preview.py +0 -0
  271. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_references.py +0 -0
  272. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_reply_to.py +0 -0
  273. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_size.py +0 -0
  274. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_subject.py +0 -0
  275. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_text.py +0 -0
  276. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_timestamp.py +0 -0
  277. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_to.py +0 -0
  278. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/message_updated_at.py +0 -0
  279. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/raw_message_response.py +0 -0
  280. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/reply_all.py +0 -0
  281. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/reply_all_message_request.py +0 -0
  282. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/reply_to_message_request.py +0 -0
  283. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/search_message_highlights.py +0 -0
  284. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/search_message_item.py +0 -0
  285. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/search_messages_response.py +0 -0
  286. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/send_message_attachments.py +0 -0
  287. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/send_message_bcc.py +0 -0
  288. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/send_message_cc.py +0 -0
  289. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/send_message_headers.py +0 -0
  290. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/send_message_reply_to.py +0 -0
  291. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/send_message_request.py +0 -0
  292. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/send_message_response.py +0 -0
  293. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/send_message_to.py +0 -0
  294. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/track_opens.py +0 -0
  295. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/update_message_labels.py +0 -0
  296. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/update_message_request.py +0 -0
  297. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/messages/types/update_message_response.py +0 -0
  298. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/__init__.py +0 -0
  299. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/client.py +0 -0
  300. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/raw_client.py +0 -0
  301. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/__init__.py +0 -0
  302. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/descending.py +0 -0
  303. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/end.py +0 -0
  304. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/metric_bucket.py +0 -0
  305. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/metric_event_type.py +0 -0
  306. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/metric_event_types.py +0 -0
  307. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/metric_limit.py +0 -0
  308. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/period.py +0 -0
  309. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/query_metrics_response.py +0 -0
  310. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/query_rates_response.py +0 -0
  311. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/query_usage_response.py +0 -0
  312. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/rate_period.py +0 -0
  313. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/rate_point.py +0 -0
  314. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/rate_type.py +0 -0
  315. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/rate_types.py +0 -0
  316. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/start.py +0 -0
  317. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/usage_point.py +0 -0
  318. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/usage_type.py +0 -0
  319. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/usage_types.py +0 -0
  320. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/metrics/types/window.py +0 -0
  321. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/organizations/__init__.py +0 -0
  322. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/organizations/client.py +0 -0
  323. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/organizations/raw_client.py +0 -0
  324. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/organizations/types/__init__.py +0 -0
  325. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/organizations/types/organization.py +0 -0
  326. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/__init__.py +0 -0
  327. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/accounts/__init__.py +0 -0
  328. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/accounts/client.py +0 -0
  329. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/accounts/raw_client.py +0 -0
  330. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/api_keys/__init__.py +0 -0
  331. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/api_keys/client.py +0 -0
  332. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/api_keys/raw_client.py +0 -0
  333. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/client.py +0 -0
  334. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/domains/__init__.py +0 -0
  335. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/domains/client.py +0 -0
  336. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/domains/raw_client.py +0 -0
  337. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/drafts/__init__.py +0 -0
  338. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/drafts/client.py +0 -0
  339. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/drafts/raw_client.py +0 -0
  340. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/inboxes/__init__.py +0 -0
  341. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/inboxes/client.py +0 -0
  342. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/inboxes/raw_client.py +0 -0
  343. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/lists/__init__.py +0 -0
  344. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/lists/client.py +0 -0
  345. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/lists/raw_client.py +0 -0
  346. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/metrics/__init__.py +0 -0
  347. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/metrics/client.py +0 -0
  348. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/metrics/raw_client.py +0 -0
  349. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/raw_client.py +0 -0
  350. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/threads/__init__.py +0 -0
  351. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/threads/client.py +0 -0
  352. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/threads/raw_client.py +0 -0
  353. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/types/__init__.py +0 -0
  354. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/types/client_id.py +0 -0
  355. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/types/create_pod_request.py +0 -0
  356. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/types/list_pods_response.py +0 -0
  357. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/types/name.py +0 -0
  358. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/types/pod.py +0 -0
  359. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/types/pod_id.py +0 -0
  360. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/webhooks/__init__.py +0 -0
  361. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/webhooks/client.py +0 -0
  362. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/pods/webhooks/raw_client.py +0 -0
  363. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/providers/__init__.py +0 -0
  364. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/providers/client.py +0 -0
  365. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/providers/raw_client.py +0 -0
  366. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/providers/types/__init__.py +0 -0
  367. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/providers/types/connect_accepted.py +0 -0
  368. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/providers/types/connect_inbox_id.py +0 -0
  369. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/providers/types/connect_provider_body.py +0 -0
  370. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/providers/types/list_provider_accounts_response.py +0 -0
  371. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/providers/types/list_providers_response.py +0 -0
  372. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/providers/types/magic_url.py +0 -0
  373. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/providers/types/provider.py +0 -0
  374. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/providers/types/search_providers_response.py +0 -0
  375. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/py.typed +0 -0
  376. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/__init__.py +0 -0
  377. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/client.py +0 -0
  378. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/raw_client.py +0 -0
  379. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/__init__.py +0 -0
  380. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/list_threads_response.py +0 -0
  381. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/search_thread_highlights.py +0 -0
  382. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/search_thread_item.py +0 -0
  383. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/search_threads_response.py +0 -0
  384. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread.py +0 -0
  385. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread_attachments.py +0 -0
  386. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread_created_at.py +0 -0
  387. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread_id.py +0 -0
  388. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread_item.py +0 -0
  389. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread_labels.py +0 -0
  390. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread_last_message_id.py +0 -0
  391. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread_message_count.py +0 -0
  392. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread_preview.py +0 -0
  393. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread_received_timestamp.py +0 -0
  394. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread_recipients.py +0 -0
  395. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread_senders.py +0 -0
  396. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread_sent_timestamp.py +0 -0
  397. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread_size.py +0 -0
  398. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread_subject.py +0 -0
  399. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread_timestamp.py +0 -0
  400. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/thread_updated_at.py +0 -0
  401. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/update_thread_request.py +0 -0
  402. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/threads/types/update_thread_response.py +0 -0
  403. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/__init__.py +0 -0
  404. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/after.py +0 -0
  405. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/ascending.py +0 -0
  406. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/before.py +0 -0
  407. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/count.py +0 -0
  408. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/error_code.py +0 -0
  409. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/error_docs.py +0 -0
  410. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/error_fix.py +0 -0
  411. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/error_message.py +0 -0
  412. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/error_name.py +0 -0
  413. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/error_response.py +0 -0
  414. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/include_blocked.py +0 -0
  415. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/include_spam.py +0 -0
  416. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/include_trash.py +0 -0
  417. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/include_unauthenticated.py +0 -0
  418. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/labels.py +0 -0
  419. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/limit.py +0 -0
  420. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/organization_id.py +0 -0
  421. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/page_token.py +0 -0
  422. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/query.py +0 -0
  423. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/types/validation_error_response.py +0 -0
  424. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/version.py +0 -0
  425. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/__init__.py +0 -0
  426. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/client.py +0 -0
  427. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/events/__init__.py +0 -0
  428. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/events/types/__init__.py +0 -0
  429. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/events/types/svix_id.py +0 -0
  430. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/events/types/svix_signature.py +0 -0
  431. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/events/types/svix_timestamp.py +0 -0
  432. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/raw_client.py +0 -0
  433. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/__init__.py +0 -0
  434. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/client_id.py +0 -0
  435. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/create_inbox_webhook_request.py +0 -0
  436. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/create_pod_webhook_request.py +0 -0
  437. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/create_webhook_event_types.py +0 -0
  438. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/create_webhook_request.py +0 -0
  439. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/list_webhooks_response.py +0 -0
  440. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/update_inbox_webhook_request.py +0 -0
  441. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/update_pod_webhook_request.py +0 -0
  442. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/update_webhook_event_types.py +0 -0
  443. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/update_webhook_headers_request.py +0 -0
  444. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/update_webhook_request.py +0 -0
  445. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/url.py +0 -0
  446. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/webhook.py +0 -0
  447. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/webhook_header_names_response.py +0 -0
  448. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/webhook_headers.py +0 -0
  449. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/webhooks/types/webhook_id.py +0 -0
  450. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/websockets/__init__.py +0 -0
  451. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/websockets/client.py +0 -0
  452. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/websockets/raw_client.py +0 -0
  453. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/websockets/socket_client.py +0 -0
  454. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/websockets/types/__init__.py +0 -0
  455. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/websockets/types/error.py +0 -0
  456. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/websockets/types/subscribe.py +0 -0
  457. {agentmail-2.0.4 → agentmail-2.0.6}/src/agentmail/websockets/types/subscribed.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: agentmail
3
- Version: 2.0.4
3
+ Version: 2.0.6
4
4
  Summary:
5
5
  License: MIT
6
6
  Requires-Python: >=3.8,<4.0
@@ -4,7 +4,7 @@ dynamic = ["version"]
4
4
 
5
5
  [tool.poetry]
6
6
  name = "agentmail"
7
- version = "2.0.4"
7
+ version = "2.0.6"
8
8
  description = ""
9
9
  readme = "README.md"
10
10
  authors = []
@@ -59,7 +59,14 @@ if typing.TYPE_CHECKING:
59
59
  UpdateAccountRequest,
60
60
  UpdateAccountStatus,
61
61
  )
62
- from .agent import AgentSignupRequest, AgentSignupResponse, AgentVerifyRequest, AgentVerifyResponse
62
+ from .agent import (
63
+ AgentAttachHumanRequest,
64
+ AgentAttachHumanResponse,
65
+ AgentSignupRequest,
66
+ AgentSignupResponse,
67
+ AgentVerifyRequest,
68
+ AgentVerifyResponse,
69
+ )
63
70
  from .api_keys import (
64
71
  AcceptDisclosure,
65
72
  ApiKey,
@@ -303,6 +310,8 @@ _dynamic_imports: typing.Dict[str, str] = {
303
310
  "AccountStatus": ".accounts",
304
311
  "Addresses": ".messages",
305
312
  "After": ".types",
313
+ "AgentAttachHumanRequest": ".agent",
314
+ "AgentAttachHumanResponse": ".agent",
306
315
  "AgentMail": ".client",
307
316
  "AgentMailEnvironment": ".environment",
308
317
  "AgentSignupRequest": ".agent",
@@ -606,6 +615,8 @@ __all__ = [
606
615
  "AccountStatus",
607
616
  "Addresses",
608
617
  "After",
618
+ "AgentAttachHumanRequest",
619
+ "AgentAttachHumanResponse",
609
620
  "AgentMail",
610
621
  "AgentMailEnvironment",
611
622
  "AgentSignupRequest",
@@ -6,8 +6,17 @@ import typing
6
6
  from importlib import import_module
7
7
 
8
8
  if typing.TYPE_CHECKING:
9
- from .types import AgentSignupRequest, AgentSignupResponse, AgentVerifyRequest, AgentVerifyResponse
9
+ from .types import (
10
+ AgentAttachHumanRequest,
11
+ AgentAttachHumanResponse,
12
+ AgentSignupRequest,
13
+ AgentSignupResponse,
14
+ AgentVerifyRequest,
15
+ AgentVerifyResponse,
16
+ )
10
17
  _dynamic_imports: typing.Dict[str, str] = {
18
+ "AgentAttachHumanRequest": ".types",
19
+ "AgentAttachHumanResponse": ".types",
11
20
  "AgentSignupRequest": ".types",
12
21
  "AgentSignupResponse": ".types",
13
22
  "AgentVerifyRequest": ".types",
@@ -36,4 +45,11 @@ def __dir__():
36
45
  return sorted(lazy_attrs)
37
46
 
38
47
 
39
- __all__ = ["AgentSignupRequest", "AgentSignupResponse", "AgentVerifyRequest", "AgentVerifyResponse"]
48
+ __all__ = [
49
+ "AgentAttachHumanRequest",
50
+ "AgentAttachHumanResponse",
51
+ "AgentSignupRequest",
52
+ "AgentSignupResponse",
53
+ "AgentVerifyRequest",
54
+ "AgentVerifyResponse",
55
+ ]
@@ -5,6 +5,7 @@ import typing
5
5
  from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
6
6
  from ..core.request_options import RequestOptions
7
7
  from .raw_client import AsyncRawAgentClient, RawAgentClient
8
+ from .types.agent_attach_human_response import AgentAttachHumanResponse
8
9
  from .types.agent_signup_response import AgentSignupResponse
9
10
  from .types.agent_verify_response import AgentVerifyResponse
10
11
 
@@ -30,8 +31,8 @@ class AgentClient:
30
31
  def sign_up(
31
32
  self,
32
33
  *,
33
- human_email: str,
34
34
  username: str,
35
+ human_email: typing.Optional[str] = OMIT,
35
36
  source: typing.Optional[str] = OMIT,
36
37
  referrer: typing.Optional[str] = OMIT,
37
38
  request_options: typing.Optional[RequestOptions] = None,
@@ -41,6 +42,8 @@ class AgentClient:
41
42
 
42
43
  A 6-digit OTP is sent to the human's email for verification.
43
44
 
45
+ `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. 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.
46
+
44
47
  This endpoint is idempotent. Calling it again with the same `human_email` will rotate the API key and resend the OTP if expired.
45
48
 
46
49
  The returned API key has limited permissions until the organization is verified via the verify endpoint.
@@ -52,12 +55,13 @@ class AgentClient:
52
55
 
53
56
  Parameters
54
57
  ----------
55
- human_email : str
56
- Email address of the human who owns the agent. A 6-digit OTP will be sent to this address.
57
-
58
58
  username : str
59
59
  Username for the auto-created inbox (e.g. "my-agent" creates my-agent@agentmail.to).
60
60
 
61
+ human_email : typing.Optional[str]
62
+ Email address of the human who owns the agent. A 6-digit OTP will be sent to this address.
63
+ Omit it to get a receive-only inbox: it can receive email but cannot send until a human is attached with the attach human endpoint.
64
+
61
65
  source : typing.Optional[str]
62
66
  The SDK, framework, or platform issuing this sign-up (e.g. `agentmail-python`, `agentmail-cli`, `agentmail-mcp`).
63
67
  Identifies the caller — answers "who is signing up".
@@ -83,26 +87,70 @@ class AgentClient:
83
87
  api_key="YOUR_API_KEY",
84
88
  )
85
89
  client.agent.sign_up(
86
- human_email="human_email",
87
90
  username="username",
88
91
  )
89
92
  """
90
93
  _response = self._raw_client.sign_up(
91
- human_email=human_email,
92
94
  username=username,
95
+ human_email=human_email,
93
96
  source=source,
94
97
  referrer=referrer,
95
98
  request_options=request_options,
96
99
  )
97
100
  return _response.data
98
101
 
102
+ def attach_human(
103
+ self, *, human_email: str, request_options: typing.Optional[RequestOptions] = None
104
+ ) -> AgentAttachHumanResponse:
105
+ """
106
+ Attach a human to an unverified agent organization. A 6-digit OTP is sent to the human's email, which you then submit to the verify endpoint.
107
+
108
+ Use it after signing up without a `human_email`. Once the human is attached, the organization can send email to that human only, and verification lifts the remaining restrictions. For up to 5 minutes after attaching, sends to the human can still be rejected with a `429` daily send limit error while the API key's cached limits catch up. Wait and retry.
109
+
110
+ Calling it again with the same `human_email` does not rotate the API key. It resends the OTP if it was never delivered, or issues a new one if it expired. While the current OTP is still valid, calling it again keeps that OTP and its attempt count. If all 10 attempts are used up, wait until the OTP expires, 24 hours after it was issued, then call it again for a new one.
111
+
112
+ Calling it with a different `human_email` replaces the attached human and sends the new human an OTP. An organization can replace its human at most 2 times.
113
+
114
+ Only available until the organization is verified.
115
+
116
+ **CLI:**
117
+ ```bash
118
+ agentmail agent attach-human --human-email user@example.com
119
+ ```
120
+
121
+ Parameters
122
+ ----------
123
+ human_email : str
124
+ Email address of the human who owns the agent. A 6-digit OTP will be sent to this address.
125
+
126
+ request_options : typing.Optional[RequestOptions]
127
+ Request-specific configuration.
128
+
129
+ Returns
130
+ -------
131
+ AgentAttachHumanResponse
132
+
133
+ Examples
134
+ --------
135
+ from agentmail import AgentMail
136
+
137
+ client = AgentMail(
138
+ api_key="YOUR_API_KEY",
139
+ )
140
+ client.agent.attach_human(
141
+ human_email="human_email",
142
+ )
143
+ """
144
+ _response = self._raw_client.attach_human(human_email=human_email, request_options=request_options)
145
+ return _response.data
146
+
99
147
  def verify(self, *, otp_code: str, request_options: typing.Optional[RequestOptions] = None) -> AgentVerifyResponse:
100
148
  """
101
149
  Verify an agent organization using the 6-digit OTP sent to the human's email during sign-up.
102
150
 
103
151
  On success, the organization is upgraded from `agent_unverified` to `agent_verified`, the send allowlist is removed, and free plan entitlements are applied.
104
152
 
105
- The OTP expires after 24 hours and allows a maximum of 10 attempts. 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.
153
+ 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.
106
154
 
107
155
  **CLI:**
108
156
  ```bash
@@ -154,8 +202,8 @@ class AsyncAgentClient:
154
202
  async def sign_up(
155
203
  self,
156
204
  *,
157
- human_email: str,
158
205
  username: str,
206
+ human_email: typing.Optional[str] = OMIT,
159
207
  source: typing.Optional[str] = OMIT,
160
208
  referrer: typing.Optional[str] = OMIT,
161
209
  request_options: typing.Optional[RequestOptions] = None,
@@ -165,6 +213,8 @@ class AsyncAgentClient:
165
213
 
166
214
  A 6-digit OTP is sent to the human's email for verification.
167
215
 
216
+ `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. 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.
217
+
168
218
  This endpoint is idempotent. Calling it again with the same `human_email` will rotate the API key and resend the OTP if expired.
169
219
 
170
220
  The returned API key has limited permissions until the organization is verified via the verify endpoint.
@@ -176,12 +226,13 @@ class AsyncAgentClient:
176
226
 
177
227
  Parameters
178
228
  ----------
179
- human_email : str
180
- Email address of the human who owns the agent. A 6-digit OTP will be sent to this address.
181
-
182
229
  username : str
183
230
  Username for the auto-created inbox (e.g. "my-agent" creates my-agent@agentmail.to).
184
231
 
232
+ human_email : typing.Optional[str]
233
+ Email address of the human who owns the agent. A 6-digit OTP will be sent to this address.
234
+ Omit it to get a receive-only inbox: it can receive email but cannot send until a human is attached with the attach human endpoint.
235
+
185
236
  source : typing.Optional[str]
186
237
  The SDK, framework, or platform issuing this sign-up (e.g. `agentmail-python`, `agentmail-cli`, `agentmail-mcp`).
187
238
  Identifies the caller — answers "who is signing up".
@@ -212,7 +263,6 @@ class AsyncAgentClient:
212
263
 
213
264
  async def main() -> None:
214
265
  await client.agent.sign_up(
215
- human_email="human_email",
216
266
  username="username",
217
267
  )
218
268
 
@@ -220,14 +270,67 @@ class AsyncAgentClient:
220
270
  asyncio.run(main())
221
271
  """
222
272
  _response = await self._raw_client.sign_up(
223
- human_email=human_email,
224
273
  username=username,
274
+ human_email=human_email,
225
275
  source=source,
226
276
  referrer=referrer,
227
277
  request_options=request_options,
228
278
  )
229
279
  return _response.data
230
280
 
281
+ async def attach_human(
282
+ self, *, human_email: str, request_options: typing.Optional[RequestOptions] = None
283
+ ) -> AgentAttachHumanResponse:
284
+ """
285
+ Attach a human to an unverified agent organization. A 6-digit OTP is sent to the human's email, which you then submit to the verify endpoint.
286
+
287
+ Use it after signing up without a `human_email`. Once the human is attached, the organization can send email to that human only, and verification lifts the remaining restrictions. For up to 5 minutes after attaching, sends to the human can still be rejected with a `429` daily send limit error while the API key's cached limits catch up. Wait and retry.
288
+
289
+ Calling it again with the same `human_email` does not rotate the API key. It resends the OTP if it was never delivered, or issues a new one if it expired. While the current OTP is still valid, calling it again keeps that OTP and its attempt count. If all 10 attempts are used up, wait until the OTP expires, 24 hours after it was issued, then call it again for a new one.
290
+
291
+ Calling it with a different `human_email` replaces the attached human and sends the new human an OTP. An organization can replace its human at most 2 times.
292
+
293
+ Only available until the organization is verified.
294
+
295
+ **CLI:**
296
+ ```bash
297
+ agentmail agent attach-human --human-email user@example.com
298
+ ```
299
+
300
+ Parameters
301
+ ----------
302
+ human_email : str
303
+ Email address of the human who owns the agent. A 6-digit OTP will be sent to this address.
304
+
305
+ request_options : typing.Optional[RequestOptions]
306
+ Request-specific configuration.
307
+
308
+ Returns
309
+ -------
310
+ AgentAttachHumanResponse
311
+
312
+ Examples
313
+ --------
314
+ import asyncio
315
+
316
+ from agentmail import AsyncAgentMail
317
+
318
+ client = AsyncAgentMail(
319
+ api_key="YOUR_API_KEY",
320
+ )
321
+
322
+
323
+ async def main() -> None:
324
+ await client.agent.attach_human(
325
+ human_email="human_email",
326
+ )
327
+
328
+
329
+ asyncio.run(main())
330
+ """
331
+ _response = await self._raw_client.attach_human(human_email=human_email, request_options=request_options)
332
+ return _response.data
333
+
231
334
  async def verify(
232
335
  self, *, otp_code: str, request_options: typing.Optional[RequestOptions] = None
233
336
  ) -> AgentVerifyResponse:
@@ -236,7 +339,7 @@ class AsyncAgentClient:
236
339
 
237
340
  On success, the organization is upgraded from `agent_unverified` to `agent_verified`, the send allowlist is removed, and free plan entitlements are applied.
238
341
 
239
- The OTP expires after 24 hours and allows a maximum of 10 attempts. 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.
342
+ 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.
240
343
 
241
344
  **CLI:**
242
345
  ```bash
@@ -9,8 +9,11 @@ from ..core.http_response import AsyncHttpResponse, HttpResponse
9
9
  from ..core.parse_error import ParsingError
10
10
  from ..core.request_options import RequestOptions
11
11
  from ..core.unchecked_base_model import construct_type
12
+ from ..errors.conflict_error import ConflictError
12
13
  from ..errors.validation_error import ValidationError as errors_validation_error_ValidationError
14
+ from ..types.error_response import ErrorResponse
13
15
  from ..types.validation_error_response import ValidationErrorResponse
16
+ from .types.agent_attach_human_response import AgentAttachHumanResponse
14
17
  from .types.agent_signup_response import AgentSignupResponse
15
18
  from .types.agent_verify_response import AgentVerifyResponse
16
19
  from pydantic import ValidationError as pydantic_ValidationError
@@ -26,8 +29,8 @@ class RawAgentClient:
26
29
  def sign_up(
27
30
  self,
28
31
  *,
29
- human_email: str,
30
32
  username: str,
33
+ human_email: typing.Optional[str] = OMIT,
31
34
  source: typing.Optional[str] = OMIT,
32
35
  referrer: typing.Optional[str] = OMIT,
33
36
  request_options: typing.Optional[RequestOptions] = None,
@@ -37,6 +40,8 @@ class RawAgentClient:
37
40
 
38
41
  A 6-digit OTP is sent to the human's email for verification.
39
42
 
43
+ `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. 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.
44
+
40
45
  This endpoint is idempotent. Calling it again with the same `human_email` will rotate the API key and resend the OTP if expired.
41
46
 
42
47
  The returned API key has limited permissions until the organization is verified via the verify endpoint.
@@ -48,12 +53,13 @@ class RawAgentClient:
48
53
 
49
54
  Parameters
50
55
  ----------
51
- human_email : str
52
- Email address of the human who owns the agent. A 6-digit OTP will be sent to this address.
53
-
54
56
  username : str
55
57
  Username for the auto-created inbox (e.g. "my-agent" creates my-agent@agentmail.to).
56
58
 
59
+ human_email : typing.Optional[str]
60
+ Email address of the human who owns the agent. A 6-digit OTP will be sent to this address.
61
+ Omit it to get a receive-only inbox: it can receive email but cannot send until a human is attached with the attach human endpoint.
62
+
57
63
  source : typing.Optional[str]
58
64
  The SDK, framework, or platform issuing this sign-up (e.g. `agentmail-python`, `agentmail-cli`, `agentmail-mcp`).
59
65
  Identifies the caller — answers "who is signing up".
@@ -114,6 +120,88 @@ class RawAgentClient:
114
120
  )
115
121
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
116
122
 
123
+ def attach_human(
124
+ self, *, human_email: str, request_options: typing.Optional[RequestOptions] = None
125
+ ) -> HttpResponse[AgentAttachHumanResponse]:
126
+ """
127
+ Attach a human to an unverified agent organization. A 6-digit OTP is sent to the human's email, which you then submit to the verify endpoint.
128
+
129
+ Use it after signing up without a `human_email`. Once the human is attached, the organization can send email to that human only, and verification lifts the remaining restrictions. For up to 5 minutes after attaching, sends to the human can still be rejected with a `429` daily send limit error while the API key's cached limits catch up. Wait and retry.
130
+
131
+ Calling it again with the same `human_email` does not rotate the API key. It resends the OTP if it was never delivered, or issues a new one if it expired. While the current OTP is still valid, calling it again keeps that OTP and its attempt count. If all 10 attempts are used up, wait until the OTP expires, 24 hours after it was issued, then call it again for a new one.
132
+
133
+ Calling it with a different `human_email` replaces the attached human and sends the new human an OTP. An organization can replace its human at most 2 times.
134
+
135
+ Only available until the organization is verified.
136
+
137
+ **CLI:**
138
+ ```bash
139
+ agentmail agent attach-human --human-email user@example.com
140
+ ```
141
+
142
+ Parameters
143
+ ----------
144
+ human_email : str
145
+ Email address of the human who owns the agent. A 6-digit OTP will be sent to this address.
146
+
147
+ request_options : typing.Optional[RequestOptions]
148
+ Request-specific configuration.
149
+
150
+ Returns
151
+ -------
152
+ HttpResponse[AgentAttachHumanResponse]
153
+ """
154
+ _response = self._client_wrapper.httpx_client.request(
155
+ "v0/agent/human",
156
+ base_url=self._client_wrapper.get_environment().http,
157
+ method="POST",
158
+ json={
159
+ "human_email": human_email,
160
+ },
161
+ request_options=request_options,
162
+ omit=OMIT,
163
+ )
164
+ try:
165
+ if 200 <= _response.status_code < 300:
166
+ _data = typing.cast(
167
+ AgentAttachHumanResponse,
168
+ construct_type(
169
+ type_=AgentAttachHumanResponse, # type: ignore
170
+ object_=_response.json(),
171
+ ),
172
+ )
173
+ return HttpResponse(response=_response, data=_data)
174
+ if _response.status_code == 400:
175
+ raise errors_validation_error_ValidationError(
176
+ headers=dict(_response.headers),
177
+ body=typing.cast(
178
+ ValidationErrorResponse,
179
+ construct_type(
180
+ type_=ValidationErrorResponse, # type: ignore
181
+ object_=_response.json(),
182
+ ),
183
+ ),
184
+ )
185
+ if _response.status_code == 409:
186
+ raise ConflictError(
187
+ headers=dict(_response.headers),
188
+ body=typing.cast(
189
+ ErrorResponse,
190
+ construct_type(
191
+ type_=ErrorResponse, # type: ignore
192
+ object_=_response.json(),
193
+ ),
194
+ ),
195
+ )
196
+ _response_json = _response.json()
197
+ except JSONDecodeError:
198
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
199
+ except pydantic_ValidationError as e:
200
+ raise ParsingError(
201
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
202
+ )
203
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
204
+
117
205
  def verify(
118
206
  self, *, otp_code: str, request_options: typing.Optional[RequestOptions] = None
119
207
  ) -> HttpResponse[AgentVerifyResponse]:
@@ -122,7 +210,7 @@ class RawAgentClient:
122
210
 
123
211
  On success, the organization is upgraded from `agent_unverified` to `agent_verified`, the send allowlist is removed, and free plan entitlements are applied.
124
212
 
125
- The OTP expires after 24 hours and allows a maximum of 10 attempts. 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.
213
+ 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.
126
214
 
127
215
  **CLI:**
128
216
  ```bash
@@ -178,8 +266,8 @@ class AsyncRawAgentClient:
178
266
  async def sign_up(
179
267
  self,
180
268
  *,
181
- human_email: str,
182
269
  username: str,
270
+ human_email: typing.Optional[str] = OMIT,
183
271
  source: typing.Optional[str] = OMIT,
184
272
  referrer: typing.Optional[str] = OMIT,
185
273
  request_options: typing.Optional[RequestOptions] = None,
@@ -189,6 +277,8 @@ class AsyncRawAgentClient:
189
277
 
190
278
  A 6-digit OTP is sent to the human's email for verification.
191
279
 
280
+ `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. 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.
281
+
192
282
  This endpoint is idempotent. Calling it again with the same `human_email` will rotate the API key and resend the OTP if expired.
193
283
 
194
284
  The returned API key has limited permissions until the organization is verified via the verify endpoint.
@@ -200,12 +290,13 @@ class AsyncRawAgentClient:
200
290
 
201
291
  Parameters
202
292
  ----------
203
- human_email : str
204
- Email address of the human who owns the agent. A 6-digit OTP will be sent to this address.
205
-
206
293
  username : str
207
294
  Username for the auto-created inbox (e.g. "my-agent" creates my-agent@agentmail.to).
208
295
 
296
+ human_email : typing.Optional[str]
297
+ Email address of the human who owns the agent. A 6-digit OTP will be sent to this address.
298
+ Omit it to get a receive-only inbox: it can receive email but cannot send until a human is attached with the attach human endpoint.
299
+
209
300
  source : typing.Optional[str]
210
301
  The SDK, framework, or platform issuing this sign-up (e.g. `agentmail-python`, `agentmail-cli`, `agentmail-mcp`).
211
302
  Identifies the caller — answers "who is signing up".
@@ -266,6 +357,88 @@ class AsyncRawAgentClient:
266
357
  )
267
358
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
268
359
 
360
+ async def attach_human(
361
+ self, *, human_email: str, request_options: typing.Optional[RequestOptions] = None
362
+ ) -> AsyncHttpResponse[AgentAttachHumanResponse]:
363
+ """
364
+ Attach a human to an unverified agent organization. A 6-digit OTP is sent to the human's email, which you then submit to the verify endpoint.
365
+
366
+ Use it after signing up without a `human_email`. Once the human is attached, the organization can send email to that human only, and verification lifts the remaining restrictions. For up to 5 minutes after attaching, sends to the human can still be rejected with a `429` daily send limit error while the API key's cached limits catch up. Wait and retry.
367
+
368
+ Calling it again with the same `human_email` does not rotate the API key. It resends the OTP if it was never delivered, or issues a new one if it expired. While the current OTP is still valid, calling it again keeps that OTP and its attempt count. If all 10 attempts are used up, wait until the OTP expires, 24 hours after it was issued, then call it again for a new one.
369
+
370
+ Calling it with a different `human_email` replaces the attached human and sends the new human an OTP. An organization can replace its human at most 2 times.
371
+
372
+ Only available until the organization is verified.
373
+
374
+ **CLI:**
375
+ ```bash
376
+ agentmail agent attach-human --human-email user@example.com
377
+ ```
378
+
379
+ Parameters
380
+ ----------
381
+ human_email : str
382
+ Email address of the human who owns the agent. A 6-digit OTP will be sent to this address.
383
+
384
+ request_options : typing.Optional[RequestOptions]
385
+ Request-specific configuration.
386
+
387
+ Returns
388
+ -------
389
+ AsyncHttpResponse[AgentAttachHumanResponse]
390
+ """
391
+ _response = await self._client_wrapper.httpx_client.request(
392
+ "v0/agent/human",
393
+ base_url=self._client_wrapper.get_environment().http,
394
+ method="POST",
395
+ json={
396
+ "human_email": human_email,
397
+ },
398
+ request_options=request_options,
399
+ omit=OMIT,
400
+ )
401
+ try:
402
+ if 200 <= _response.status_code < 300:
403
+ _data = typing.cast(
404
+ AgentAttachHumanResponse,
405
+ construct_type(
406
+ type_=AgentAttachHumanResponse, # type: ignore
407
+ object_=_response.json(),
408
+ ),
409
+ )
410
+ return AsyncHttpResponse(response=_response, data=_data)
411
+ if _response.status_code == 400:
412
+ raise errors_validation_error_ValidationError(
413
+ headers=dict(_response.headers),
414
+ body=typing.cast(
415
+ ValidationErrorResponse,
416
+ construct_type(
417
+ type_=ValidationErrorResponse, # type: ignore
418
+ object_=_response.json(),
419
+ ),
420
+ ),
421
+ )
422
+ if _response.status_code == 409:
423
+ raise ConflictError(
424
+ headers=dict(_response.headers),
425
+ body=typing.cast(
426
+ ErrorResponse,
427
+ construct_type(
428
+ type_=ErrorResponse, # type: ignore
429
+ object_=_response.json(),
430
+ ),
431
+ ),
432
+ )
433
+ _response_json = _response.json()
434
+ except JSONDecodeError:
435
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
436
+ except pydantic_ValidationError as e:
437
+ raise ParsingError(
438
+ status_code=_response.status_code, headers=dict(_response.headers), body=_response.json(), cause=e
439
+ )
440
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
441
+
269
442
  async def verify(
270
443
  self, *, otp_code: str, request_options: typing.Optional[RequestOptions] = None
271
444
  ) -> AsyncHttpResponse[AgentVerifyResponse]:
@@ -274,7 +447,7 @@ class AsyncRawAgentClient:
274
447
 
275
448
  On success, the organization is upgraded from `agent_unverified` to `agent_verified`, the send allowlist is removed, and free plan entitlements are applied.
276
449
 
277
- The OTP expires after 24 hours and allows a maximum of 10 attempts. 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.
450
+ 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.
278
451
 
279
452
  **CLI:**
280
453
  ```bash
@@ -6,11 +6,15 @@ import typing
6
6
  from importlib import import_module
7
7
 
8
8
  if typing.TYPE_CHECKING:
9
+ from .agent_attach_human_request import AgentAttachHumanRequest
10
+ from .agent_attach_human_response import AgentAttachHumanResponse
9
11
  from .agent_signup_request import AgentSignupRequest
10
12
  from .agent_signup_response import AgentSignupResponse
11
13
  from .agent_verify_request import AgentVerifyRequest
12
14
  from .agent_verify_response import AgentVerifyResponse
13
15
  _dynamic_imports: typing.Dict[str, str] = {
16
+ "AgentAttachHumanRequest": ".agent_attach_human_request",
17
+ "AgentAttachHumanResponse": ".agent_attach_human_response",
14
18
  "AgentSignupRequest": ".agent_signup_request",
15
19
  "AgentSignupResponse": ".agent_signup_response",
16
20
  "AgentVerifyRequest": ".agent_verify_request",
@@ -39,4 +43,11 @@ def __dir__():
39
43
  return sorted(lazy_attrs)
40
44
 
41
45
 
42
- __all__ = ["AgentSignupRequest", "AgentSignupResponse", "AgentVerifyRequest", "AgentVerifyResponse"]
46
+ __all__ = [
47
+ "AgentAttachHumanRequest",
48
+ "AgentAttachHumanResponse",
49
+ "AgentSignupRequest",
50
+ "AgentSignupResponse",
51
+ "AgentVerifyRequest",
52
+ "AgentVerifyResponse",
53
+ ]
@@ -0,0 +1,27 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2
7
+ from ...core.unchecked_base_model import UncheckedBaseModel
8
+
9
+
10
+ class AgentAttachHumanRequest(UncheckedBaseModel):
11
+ """
12
+ Request body to attach a human to an agent organization.
13
+ """
14
+
15
+ human_email: str = pydantic.Field()
16
+ """
17
+ Email address of the human who owns the agent. A 6-digit OTP will be sent to this address.
18
+ """
19
+
20
+ if IS_PYDANTIC_V2:
21
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
22
+ else:
23
+
24
+ class Config:
25
+ frozen = True
26
+ smart_union = True
27
+ extra = pydantic.Extra.allow