@zavudev/sdk 0.54.0 → 0.56.0

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 (282) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/client.d.mts +25 -10
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +25 -10
  5. package/client.d.ts.map +1 -1
  6. package/client.js +15 -0
  7. package/client.js.map +1 -1
  8. package/client.mjs +15 -0
  9. package/client.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/resources/agent-templates.d.mts +97 -0
  12. package/resources/agent-templates.d.mts.map +1 -0
  13. package/resources/agent-templates.d.ts +97 -0
  14. package/resources/agent-templates.d.ts.map +1 -0
  15. package/resources/agent-templates.js +39 -0
  16. package/resources/agent-templates.js.map +1 -0
  17. package/resources/agent-templates.mjs +35 -0
  18. package/resources/agent-templates.mjs.map +1 -0
  19. package/resources/agents/agents.d.mts +462 -0
  20. package/resources/agents/agents.d.mts.map +1 -0
  21. package/resources/agents/agents.d.ts +462 -0
  22. package/resources/agents/agents.d.ts.map +1 -0
  23. package/resources/agents/agents.js +129 -0
  24. package/resources/agents/agents.js.map +1 -0
  25. package/resources/agents/agents.mjs +124 -0
  26. package/resources/agents/agents.mjs.map +1 -0
  27. package/resources/agents/index.d.mts +3 -0
  28. package/resources/agents/index.d.mts.map +1 -0
  29. package/resources/agents/index.d.ts +3 -0
  30. package/resources/agents/index.d.ts.map +1 -0
  31. package/resources/agents/index.js +9 -0
  32. package/resources/agents/index.js.map +1 -0
  33. package/resources/agents/index.mjs +4 -0
  34. package/resources/agents/index.mjs.map +1 -0
  35. package/resources/agents/senders.d.mts +54 -0
  36. package/resources/agents/senders.d.mts.map +1 -0
  37. package/resources/agents/senders.d.ts +54 -0
  38. package/resources/agents/senders.d.ts.map +1 -0
  39. package/resources/agents/senders.js +45 -0
  40. package/resources/agents/senders.js.map +1 -0
  41. package/resources/agents/senders.mjs +41 -0
  42. package/resources/agents/senders.mjs.map +1 -0
  43. package/resources/agents.d.mts +2 -0
  44. package/resources/agents.d.mts.map +1 -0
  45. package/resources/agents.d.ts +2 -0
  46. package/resources/agents.d.ts.map +1 -0
  47. package/resources/agents.js +6 -0
  48. package/resources/agents.js.map +1 -0
  49. package/resources/agents.mjs +3 -0
  50. package/resources/agents.mjs.map +1 -0
  51. package/resources/broadcasts/broadcasts.d.mts +9 -6
  52. package/resources/broadcasts/broadcasts.d.mts.map +1 -1
  53. package/resources/broadcasts/broadcasts.d.ts +9 -6
  54. package/resources/broadcasts/broadcasts.d.ts.map +1 -1
  55. package/resources/broadcasts/broadcasts.js +9 -6
  56. package/resources/broadcasts/broadcasts.js.map +1 -1
  57. package/resources/broadcasts/broadcasts.mjs +9 -6
  58. package/resources/broadcasts/broadcasts.mjs.map +1 -1
  59. package/resources/calls.d.mts +530 -0
  60. package/resources/calls.d.mts.map +1 -0
  61. package/resources/calls.d.ts +530 -0
  62. package/resources/calls.d.ts.map +1 -0
  63. package/resources/calls.js +76 -0
  64. package/resources/calls.js.map +1 -0
  65. package/resources/calls.mjs +72 -0
  66. package/resources/calls.mjs.map +1 -0
  67. package/resources/conversations.d.mts +360 -0
  68. package/resources/conversations.d.mts.map +1 -0
  69. package/resources/conversations.d.ts +360 -0
  70. package/resources/conversations.d.ts.map +1 -0
  71. package/resources/conversations.js +47 -0
  72. package/resources/conversations.js.map +1 -0
  73. package/resources/conversations.mjs +43 -0
  74. package/resources/conversations.mjs.map +1 -0
  75. package/resources/email-domains.d.mts +260 -0
  76. package/resources/email-domains.d.mts.map +1 -0
  77. package/resources/email-domains.d.ts +260 -0
  78. package/resources/email-domains.d.ts.map +1 -0
  79. package/resources/email-domains.js +77 -0
  80. package/resources/email-domains.js.map +1 -0
  81. package/resources/email-domains.mjs +73 -0
  82. package/resources/email-domains.mjs.map +1 -0
  83. package/resources/functions/functions.d.mts +122 -1
  84. package/resources/functions/functions.d.mts.map +1 -1
  85. package/resources/functions/functions.d.ts +122 -1
  86. package/resources/functions/functions.d.ts.map +1 -1
  87. package/resources/functions/functions.js +53 -0
  88. package/resources/functions/functions.js.map +1 -1
  89. package/resources/functions/functions.mjs +53 -0
  90. package/resources/functions/functions.mjs.map +1 -1
  91. package/resources/functions/git-link.d.mts +295 -0
  92. package/resources/functions/git-link.d.mts.map +1 -0
  93. package/resources/functions/git-link.d.ts +295 -0
  94. package/resources/functions/git-link.d.ts.map +1 -0
  95. package/resources/functions/git-link.js +97 -0
  96. package/resources/functions/git-link.js.map +1 -0
  97. package/resources/functions/git-link.mjs +93 -0
  98. package/resources/functions/git-link.mjs.map +1 -0
  99. package/resources/functions/index.d.mts +3 -1
  100. package/resources/functions/index.d.mts.map +1 -1
  101. package/resources/functions/index.d.ts +3 -1
  102. package/resources/functions/index.d.ts.map +1 -1
  103. package/resources/functions/index.js +5 -1
  104. package/resources/functions/index.js.map +1 -1
  105. package/resources/functions/index.mjs +2 -0
  106. package/resources/functions/index.mjs.map +1 -1
  107. package/resources/functions/triggers.d.mts +164 -0
  108. package/resources/functions/triggers.d.mts.map +1 -0
  109. package/resources/functions/triggers.d.ts +164 -0
  110. package/resources/functions/triggers.d.ts.map +1 -0
  111. package/resources/functions/triggers.js +74 -0
  112. package/resources/functions/triggers.js.map +1 -0
  113. package/resources/functions/triggers.mjs +70 -0
  114. package/resources/functions/triggers.mjs.map +1 -0
  115. package/resources/index.d.mts +10 -5
  116. package/resources/index.d.mts.map +1 -1
  117. package/resources/index.d.ts +10 -5
  118. package/resources/index.d.ts.map +1 -1
  119. package/resources/index.js +11 -1
  120. package/resources/index.js.map +1 -1
  121. package/resources/index.mjs +5 -0
  122. package/resources/index.mjs.map +1 -1
  123. package/resources/introspect.d.mts +74 -1
  124. package/resources/introspect.d.mts.map +1 -1
  125. package/resources/introspect.d.ts +74 -1
  126. package/resources/introspect.d.ts.map +1 -1
  127. package/resources/introspect.js +22 -0
  128. package/resources/introspect.js.map +1 -1
  129. package/resources/introspect.mjs +22 -0
  130. package/resources/introspect.mjs.map +1 -1
  131. package/resources/messages.d.mts +123 -1
  132. package/resources/messages.d.mts.map +1 -1
  133. package/resources/messages.d.ts +123 -1
  134. package/resources/messages.d.ts.map +1 -1
  135. package/resources/messages.js +18 -0
  136. package/resources/messages.js.map +1 -1
  137. package/resources/messages.mjs +18 -0
  138. package/resources/messages.mjs.map +1 -1
  139. package/resources/senders/agent/agent.d.mts +4 -3
  140. package/resources/senders/agent/agent.d.mts.map +1 -1
  141. package/resources/senders/agent/agent.d.ts +4 -3
  142. package/resources/senders/agent/agent.d.ts.map +1 -1
  143. package/resources/senders/agent/agent.js +2 -2
  144. package/resources/senders/agent/agent.js.map +1 -1
  145. package/resources/senders/agent/agent.mjs +2 -2
  146. package/resources/senders/agent/agent.mjs.map +1 -1
  147. package/resources/senders/agent/index.d.mts +2 -2
  148. package/resources/senders/agent/index.d.mts.map +1 -1
  149. package/resources/senders/agent/index.d.ts +2 -2
  150. package/resources/senders/agent/index.d.ts.map +1 -1
  151. package/resources/senders/agent/index.js +2 -2
  152. package/resources/senders/agent/index.js.map +1 -1
  153. package/resources/senders/agent/index.mjs +1 -1
  154. package/resources/senders/agent/index.mjs.map +1 -1
  155. package/resources/senders/agent/knowledge-bases/documents.d.mts +56 -1
  156. package/resources/senders/agent/knowledge-bases/documents.d.mts.map +1 -1
  157. package/resources/senders/agent/knowledge-bases/documents.d.ts +56 -1
  158. package/resources/senders/agent/knowledge-bases/documents.d.ts.map +1 -1
  159. package/resources/senders/agent/knowledge-bases/documents.js +33 -0
  160. package/resources/senders/agent/knowledge-bases/documents.js.map +1 -1
  161. package/resources/senders/agent/knowledge-bases/documents.mjs +33 -0
  162. package/resources/senders/agent/knowledge-bases/documents.mjs.map +1 -1
  163. package/resources/senders/agent/knowledge-bases/index.d.mts +1 -1
  164. package/resources/senders/agent/knowledge-bases/index.d.mts.map +1 -1
  165. package/resources/senders/agent/knowledge-bases/index.d.ts +1 -1
  166. package/resources/senders/agent/knowledge-bases/index.d.ts.map +1 -1
  167. package/resources/senders/agent/knowledge-bases/index.js.map +1 -1
  168. package/resources/senders/agent/knowledge-bases/index.mjs.map +1 -1
  169. package/resources/senders/agent/knowledge-bases/knowledge-bases.d.mts +2 -2
  170. package/resources/senders/agent/knowledge-bases/knowledge-bases.d.mts.map +1 -1
  171. package/resources/senders/agent/knowledge-bases/knowledge-bases.d.ts +2 -2
  172. package/resources/senders/agent/knowledge-bases/knowledge-bases.d.ts.map +1 -1
  173. package/resources/senders/agent/knowledge-bases/knowledge-bases.js.map +1 -1
  174. package/resources/senders/agent/knowledge-bases/knowledge-bases.mjs.map +1 -1
  175. package/resources/senders/agent/tools/index.d.mts +3 -0
  176. package/resources/senders/agent/tools/index.d.mts.map +1 -0
  177. package/resources/senders/agent/tools/index.d.ts +3 -0
  178. package/resources/senders/agent/tools/index.d.ts.map +1 -0
  179. package/resources/senders/agent/tools/index.js +9 -0
  180. package/resources/senders/agent/tools/index.js.map +1 -0
  181. package/resources/senders/agent/tools/index.mjs +4 -0
  182. package/resources/senders/agent/tools/index.mjs.map +1 -0
  183. package/resources/senders/agent/tools/tools.d.mts +338 -0
  184. package/resources/senders/agent/tools/tools.d.mts.map +1 -0
  185. package/resources/senders/agent/tools/tools.d.ts +338 -0
  186. package/resources/senders/agent/tools/tools.d.ts.map +1 -0
  187. package/resources/senders/agent/tools/tools.js +163 -0
  188. package/resources/senders/agent/tools/tools.js.map +1 -0
  189. package/resources/senders/agent/tools/tools.mjs +158 -0
  190. package/resources/senders/agent/tools/tools.mjs.map +1 -0
  191. package/resources/senders/agent/tools/webhook.d.mts +28 -0
  192. package/resources/senders/agent/tools/webhook.d.mts.map +1 -0
  193. package/resources/senders/agent/tools/webhook.d.ts +28 -0
  194. package/resources/senders/agent/tools/webhook.d.ts.map +1 -0
  195. package/resources/senders/agent/tools/webhook.js +28 -0
  196. package/resources/senders/agent/tools/webhook.js.map +1 -0
  197. package/resources/senders/agent/tools/webhook.mjs +24 -0
  198. package/resources/senders/agent/tools/webhook.mjs.map +1 -0
  199. package/resources/senders/agent/tools.d.mts +1 -270
  200. package/resources/senders/agent/tools.d.mts.map +1 -1
  201. package/resources/senders/agent/tools.d.ts +1 -270
  202. package/resources/senders/agent/tools.d.ts.map +1 -1
  203. package/resources/senders/agent/tools.js +2 -131
  204. package/resources/senders/agent/tools.js.map +1 -1
  205. package/resources/senders/agent/tools.mjs +1 -129
  206. package/resources/senders/agent/tools.mjs.map +1 -1
  207. package/resources/senders/index.d.mts +2 -1
  208. package/resources/senders/index.d.mts.map +1 -1
  209. package/resources/senders/index.d.ts +2 -1
  210. package/resources/senders/index.d.ts.map +1 -1
  211. package/resources/senders/index.js +3 -1
  212. package/resources/senders/index.js.map +1 -1
  213. package/resources/senders/index.mjs +1 -0
  214. package/resources/senders/index.mjs.map +1 -1
  215. package/resources/senders/senders.d.mts +10 -1
  216. package/resources/senders/senders.d.mts.map +1 -1
  217. package/resources/senders/senders.d.ts +10 -1
  218. package/resources/senders/senders.d.ts.map +1 -1
  219. package/resources/senders/senders.js +4 -0
  220. package/resources/senders/senders.js.map +1 -1
  221. package/resources/senders/senders.mjs +4 -0
  222. package/resources/senders/senders.mjs.map +1 -1
  223. package/resources/senders/telegram.d.mts +48 -0
  224. package/resources/senders/telegram.d.mts.map +1 -0
  225. package/resources/senders/telegram.d.ts +48 -0
  226. package/resources/senders/telegram.d.ts.map +1 -0
  227. package/resources/senders/telegram.js +41 -0
  228. package/resources/senders/telegram.js.map +1 -0
  229. package/resources/senders/telegram.mjs +37 -0
  230. package/resources/senders/telegram.mjs.map +1 -0
  231. package/resources/templates.d.mts +66 -1
  232. package/resources/templates.d.mts.map +1 -1
  233. package/resources/templates.d.ts +66 -1
  234. package/resources/templates.d.ts.map +1 -1
  235. package/resources/templates.js +31 -0
  236. package/resources/templates.js.map +1 -1
  237. package/resources/templates.mjs +31 -0
  238. package/resources/templates.mjs.map +1 -1
  239. package/resources/urls.d.mts +24 -1
  240. package/resources/urls.d.mts.map +1 -1
  241. package/resources/urls.d.ts +24 -1
  242. package/resources/urls.d.ts.map +1 -1
  243. package/resources/urls.js +15 -0
  244. package/resources/urls.js.map +1 -1
  245. package/resources/urls.mjs +15 -0
  246. package/resources/urls.mjs.map +1 -1
  247. package/src/client.ts +129 -0
  248. package/src/resources/agent-templates.ts +128 -0
  249. package/src/resources/agents/agents.ts +603 -0
  250. package/src/resources/agents/index.ts +21 -0
  251. package/src/resources/agents/senders.ts +79 -0
  252. package/src/resources/agents.ts +3 -0
  253. package/src/resources/broadcasts/broadcasts.ts +9 -6
  254. package/src/resources/calls.ts +638 -0
  255. package/src/resources/conversations.ts +472 -0
  256. package/src/resources/email-domains.ts +337 -0
  257. package/src/resources/functions/functions.ts +202 -0
  258. package/src/resources/functions/git-link.ts +398 -0
  259. package/src/resources/functions/index.ts +22 -0
  260. package/src/resources/functions/triggers.ts +227 -0
  261. package/src/resources/index.ts +57 -0
  262. package/src/resources/introspect.ts +105 -0
  263. package/src/resources/messages.ts +146 -0
  264. package/src/resources/senders/agent/agent.ts +23 -17
  265. package/src/resources/senders/agent/index.ts +4 -1
  266. package/src/resources/senders/agent/knowledge-bases/documents.ts +89 -0
  267. package/src/resources/senders/agent/knowledge-bases/index.ts +4 -0
  268. package/src/resources/senders/agent/knowledge-bases/knowledge-bases.ts +8 -0
  269. package/src/resources/senders/agent/tools/index.ts +21 -0
  270. package/src/resources/senders/agent/tools/tools.ts +460 -0
  271. package/src/resources/senders/agent/tools/webhook.ts +40 -0
  272. package/src/resources/senders/agent/tools.ts +1 -364
  273. package/src/resources/senders/index.ts +2 -0
  274. package/src/resources/senders/senders.ts +16 -1
  275. package/src/resources/senders/telegram.ts +73 -0
  276. package/src/resources/templates.ts +80 -0
  277. package/src/resources/urls.ts +35 -0
  278. package/src/version.ts +1 -1
  279. package/version.d.mts +1 -1
  280. package/version.d.ts +1 -1
  281. package/version.js +1 -1
  282. package/version.mjs +1 -1
@@ -10,6 +10,24 @@ export {
10
10
  type AddressListParams,
11
11
  type AddressesCursor,
12
12
  } from './addresses';
13
+ export {
14
+ AgentTemplates,
15
+ type AgentTemplateRetrieveResponse,
16
+ type AgentTemplateListResponse,
17
+ } from './agent-templates';
18
+ export {
19
+ Agents,
20
+ type AgentCreateResponse,
21
+ type AgentRetrieveResponse,
22
+ type AgentUpdateResponse,
23
+ type AgentListVoicesResponse,
24
+ type AgentTestResponse,
25
+ type AgentCreateParams,
26
+ type AgentUpdateParams,
27
+ type AgentListParams,
28
+ type AgentListVoicesParams,
29
+ type AgentTestParams,
30
+ } from './agents/agents';
13
31
  export { Balance, type BalanceRetrieveResponse } from './balance';
14
32
  export {
15
33
  Broadcasts,
@@ -37,6 +55,16 @@ export {
37
55
  type BroadcastContactsCursor,
38
56
  type BroadcastsCursor,
39
57
  } from './broadcasts/broadcasts';
58
+ export {
59
+ Calls,
60
+ type CallCreateResponse,
61
+ type CallRetrieveResponse,
62
+ type CallListResponse,
63
+ type CallHangupResponse,
64
+ type CallCreateParams,
65
+ type CallListParams,
66
+ type CallListResponsesCursor,
67
+ } from './calls';
40
68
  export {
41
69
  Contacts,
42
70
  type Contact,
@@ -47,6 +75,23 @@ export {
47
75
  type ContactMergeParams,
48
76
  type ContactsCursor,
49
77
  } from './contacts/contacts';
78
+ export {
79
+ Conversations,
80
+ type ConversationRetrieveResponse,
81
+ type ConversationListResponse,
82
+ type ConversationMarkAsReadResponse,
83
+ type ConversationListParams,
84
+ type ConversationListMessagesParams,
85
+ type ConversationListResponsesCursor,
86
+ } from './conversations';
87
+ export {
88
+ EmailDomains,
89
+ type EmailDomainCreateResponse,
90
+ type EmailDomainRetrieveResponse,
91
+ type EmailDomainListResponse,
92
+ type EmailDomainVerifyResponse,
93
+ type EmailDomainCreateParams,
94
+ } from './email-domains';
50
95
  export {
51
96
  Functions,
52
97
  type FunctionCreateResponse,
@@ -55,16 +100,23 @@ export {
55
100
  type FunctionDeleteResponse,
56
101
  type FunctionDeployResponse,
57
102
  type FunctionGetDeploymentResponse,
103
+ type FunctionListDeploymentsResponse,
104
+ type FunctionListEventTypesResponse,
105
+ type FunctionRollbackDeploymentResponse,
58
106
  type FunctionTailLogsResponse,
59
107
  type FunctionCreateParams,
60
108
  type FunctionUpdateParams,
61
109
  type FunctionDeployParams,
110
+ type FunctionListDeploymentsParams,
111
+ type FunctionRollbackDeploymentParams,
62
112
  type FunctionTailLogsParams,
63
113
  } from './functions/functions';
64
114
  export {
65
115
  Introspect,
66
116
  type LineType,
117
+ type IntrospectValidateEmailResponse,
67
118
  type IntrospectValidatePhoneResponse,
119
+ type IntrospectValidateEmailParams,
68
120
  type IntrospectValidatePhoneParams,
69
121
  } from './introspect';
70
122
  export {
@@ -86,6 +138,7 @@ export {
86
138
  type MessageResponse,
87
139
  type MessageStatus,
88
140
  type MessageType,
141
+ type MessageListAttachmentsResponse,
89
142
  type MessageShowTypingResponse,
90
143
  type MessageListParams,
91
144
  type MessageReactParams,
@@ -164,16 +217,20 @@ export {
164
217
  Templates,
165
218
  type Template,
166
219
  type WhatsappCategory,
220
+ type TemplateSyncResponse,
167
221
  type TemplateCreateParams,
168
222
  type TemplateListParams,
169
223
  type TemplateSubmitParams,
224
+ type TemplateSyncParams,
170
225
  type TemplatesCursor,
171
226
  } from './templates';
172
227
  export {
173
228
  URLs,
174
229
  type VerifiedURL,
230
+ type URLEscalateResponse,
175
231
  type URLRetrieveDetailsResponse,
176
232
  type URLSubmitForVerificationResponse,
233
+ type URLEscalateParams,
177
234
  type URLListVerifiedParams,
178
235
  type URLSubmitForVerificationParams,
179
236
  type VerifiedURLsCursor,
@@ -6,6 +6,32 @@ import { APIPromise } from '../core/api-promise';
6
6
  import { RequestOptions } from '../internal/request-options';
7
7
 
8
8
  export class Introspect extends APIResource {
9
+ /**
10
+ * Heuristic email validation to run before sending: catches invalid syntax, dead
11
+ * domains (no MX/A records), disposable inboxes, role-based addresses (info@,
12
+ * contacto@, sales@), and addresses already on your project's suppression list.
13
+ * Use it to clean a list before a broadcast and keep your bounce rate low.
14
+ *
15
+ * No mailbox-level (SMTP) probe is performed, so a `deliverable` verdict is not a
16
+ * delivery guarantee — it means no negative signal was found. Treat `risky`
17
+ * addresses with care and drop `undeliverable` ones.
18
+ *
19
+ * Accepts a single `email` or an `emails` batch (max 100 per request).
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const response = await client.introspect.validateEmail({
24
+ * email: 'maria@example.com',
25
+ * });
26
+ * ```
27
+ */
28
+ validateEmail(
29
+ body: IntrospectValidateEmailParams,
30
+ options?: RequestOptions,
31
+ ): APIPromise<IntrospectValidateEmailResponse> {
32
+ return this._client.post('/v1/introspect/email', { body, ...options });
33
+ }
34
+
9
35
  /**
10
36
  * Validate a phone number and check if a WhatsApp conversation window is open.
11
37
  *
@@ -29,6 +55,71 @@ export class Introspect extends APIResource {
29
55
  */
30
56
  export type LineType = 'mobile' | 'landline' | 'voip' | 'toll_free' | 'unknown';
31
57
 
58
+ export interface IntrospectValidateEmailResponse {
59
+ /**
60
+ * One result per submitted address, in the same order.
61
+ */
62
+ results: Array<IntrospectValidateEmailResponse.Result>;
63
+
64
+ summary: IntrospectValidateEmailResponse.Summary;
65
+ }
66
+
67
+ export namespace IntrospectValidateEmailResponse {
68
+ export interface Result {
69
+ /**
70
+ * Domain part of the address. Null when the syntax is invalid.
71
+ */
72
+ domain: string | null;
73
+
74
+ /**
75
+ * The address exactly as submitted.
76
+ */
77
+ email: string;
78
+
79
+ /**
80
+ * Lowercased, trimmed form of the address. Null when the syntax is invalid.
81
+ */
82
+ normalized: string | null;
83
+
84
+ /**
85
+ * Signals behind the verdict. Empty for a clean `deliverable` address.
86
+ */
87
+ reasons: Array<
88
+ | 'invalid_syntax'
89
+ | 'domain_not_found'
90
+ | 'domain_no_mx'
91
+ | 'disposable_domain'
92
+ | 'role_address'
93
+ | 'suppressed_hard_bounce'
94
+ | 'suppressed_soft_bounce'
95
+ | 'suppressed_complaint'
96
+ | 'suppressed_manual'
97
+ | 'suppressed_unsubscribe'
98
+ >;
99
+
100
+ /**
101
+ * Validation verdict.
102
+ *
103
+ * - `deliverable`: nothing suggests the address will bounce.
104
+ * - `risky`: sendable, but a signal predicts elevated bounce/complaint odds (role
105
+ * address, disposable domain, MX-less domain, prior soft bounce).
106
+ * - `undeliverable`: will bounce or is blocked (invalid syntax, dead domain, or
107
+ * the address is on your suppression list after a hard bounce/complaint).
108
+ */
109
+ verdict: 'deliverable' | 'risky' | 'undeliverable';
110
+ }
111
+
112
+ export interface Summary {
113
+ deliverable: number;
114
+
115
+ risky: number;
116
+
117
+ total: number;
118
+
119
+ undeliverable: number;
120
+ }
121
+ }
122
+
32
123
  export interface IntrospectValidatePhoneResponse {
33
124
  countryCode: string;
34
125
 
@@ -74,6 +165,18 @@ export namespace IntrospectValidatePhoneResponse {
74
165
  }
75
166
  }
76
167
 
168
+ export interface IntrospectValidateEmailParams {
169
+ /**
170
+ * Single email address to validate.
171
+ */
172
+ email?: string;
173
+
174
+ /**
175
+ * Batch of email addresses to validate (max 100).
176
+ */
177
+ emails?: Array<string>;
178
+ }
179
+
77
180
  export interface IntrospectValidatePhoneParams {
78
181
  phoneNumber: string;
79
182
  }
@@ -81,7 +184,9 @@ export interface IntrospectValidatePhoneParams {
81
184
  export declare namespace Introspect {
82
185
  export {
83
186
  type LineType as LineType,
187
+ type IntrospectValidateEmailResponse as IntrospectValidateEmailResponse,
84
188
  type IntrospectValidatePhoneResponse as IntrospectValidatePhoneResponse,
189
+ type IntrospectValidateEmailParams as IntrospectValidateEmailParams,
85
190
  type IntrospectValidatePhoneParams as IntrospectValidatePhoneParams,
86
191
  };
87
192
  }
@@ -40,6 +40,25 @@ export class Messages extends APIResource {
40
40
  return this._client.getAPIList('/v1/messages', Cursor<Message>, { query, ...options });
41
41
  }
42
42
 
43
+ /**
44
+ * List the stored file attachments for an email message and get a short-lived
45
+ * signed `downloadUrl` for each. Works for both inbound emails (received via
46
+ * `message.inbound`) and outbound emails you sent with attachments. Messages
47
+ * without stored attachments (including SMS, WhatsApp, and other channels) return
48
+ * an empty list. Each `downloadUrl` is generated fresh per request and expires —
49
+ * fetch the file promptly and do not cache the URL.
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * const response = await client.messages.listAttachments(
54
+ * 'messageId',
55
+ * );
56
+ * ```
57
+ */
58
+ listAttachments(messageID: string, options?: RequestOptions): APIPromise<MessageListAttachmentsResponse> {
59
+ return this._client.get(path`/v1/messages/${messageID}/attachments`, options);
60
+ }
61
+
43
62
  /**
44
63
  * Send an emoji reaction to an existing WhatsApp message. Reactions are only
45
64
  * supported for WhatsApp messages.
@@ -361,6 +380,20 @@ export interface MessageContent {
361
380
  */
362
381
  reactToMessageId?: string;
363
382
 
383
+ /**
384
+ * Click-to-WhatsApp (CTWA) ad attribution: where an inbound conversation came
385
+ * from.
386
+ *
387
+ * WhatsApp only. Present on the **first inbound message** of a conversation opened
388
+ * from a Meta ad or post, and on no message after it — so store it when it arrives
389
+ * rather than expecting it again. Organic conversations never carry it.
390
+ *
391
+ * Field names are camelCased to match the rest of this API; Meta sends them as
392
+ * snake_case (`ctwa_clid`, `source_id`, ...). Fields that do not apply are
393
+ * omitted: a `post` source has no click id, and an image ad has no `videoUrl`.
394
+ */
395
+ referral?: MessageContent.Referral;
396
+
364
397
  /**
365
398
  * Sender of the quoted message (phone number in E.164 format).
366
399
  */
@@ -450,6 +483,72 @@ export namespace MessageContent {
450
483
  phones?: Array<string>;
451
484
  }
452
485
 
486
+ /**
487
+ * Click-to-WhatsApp (CTWA) ad attribution: where an inbound conversation came
488
+ * from.
489
+ *
490
+ * WhatsApp only. Present on the **first inbound message** of a conversation opened
491
+ * from a Meta ad or post, and on no message after it — so store it when it arrives
492
+ * rather than expecting it again. Organic conversations never carry it.
493
+ *
494
+ * Field names are camelCased to match the rest of this API; Meta sends them as
495
+ * snake_case (`ctwa_clid`, `source_id`, ...). Fields that do not apply are
496
+ * omitted: a `post` source has no click id, and an image ad has no `videoUrl`.
497
+ */
498
+ export interface Referral {
499
+ /**
500
+ * Body copy of the ad or post.
501
+ */
502
+ body?: string;
503
+
504
+ /**
505
+ * Click-to-WhatsApp click identifier. This is the value Meta's Conversions API
506
+ * needs to credit a conversion back to the ad that produced the conversation.
507
+ * Present on `ad` sources; a `post` source has none.
508
+ */
509
+ ctwaClid?: string;
510
+
511
+ /**
512
+ * Headline of the ad or post.
513
+ */
514
+ headline?: string;
515
+
516
+ /**
517
+ * Image of the ad. Present when `mediaType` is `image`.
518
+ */
519
+ imageUrl?: string;
520
+
521
+ /**
522
+ * Type of media on the ad, when it had any.
523
+ */
524
+ mediaType?: 'image' | 'video';
525
+
526
+ /**
527
+ * Identifier of the ad or post that produced the click.
528
+ */
529
+ sourceId?: string;
530
+
531
+ /**
532
+ * Where the click came from.
533
+ */
534
+ sourceType?: 'ad' | 'post';
535
+
536
+ /**
537
+ * Meta permalink to the ad or post.
538
+ */
539
+ sourceUrl?: string;
540
+
541
+ /**
542
+ * Thumbnail of the ad media.
543
+ */
544
+ thumbnailUrl?: string;
545
+
546
+ /**
547
+ * Video of the ad. Present when `mediaType` is `video`.
548
+ */
549
+ videoUrl?: string;
550
+ }
551
+
453
552
  export interface Section {
454
553
  rows: Array<Section.Row>;
455
554
 
@@ -516,6 +615,52 @@ export type MessageType =
516
615
  | 'reaction'
517
616
  | 'template';
518
617
 
618
+ export interface MessageListAttachmentsResponse {
619
+ items: Array<MessageListAttachmentsResponse.Item>;
620
+ }
621
+
622
+ export namespace MessageListAttachmentsResponse {
623
+ /**
624
+ * A stored file attachment for an email message (inbound or outbound).
625
+ */
626
+ export interface Item {
627
+ id: string;
628
+
629
+ /**
630
+ * Content-ID for inline attachments (referenced in the HTML body as
631
+ * `cid:<contentId>`). Null for regular attachments.
632
+ */
633
+ contentId: string | null;
634
+
635
+ createdAt: string;
636
+
637
+ /**
638
+ * Short-lived signed URL to download the attachment bytes. Freshly generated on
639
+ * each request and expires; do not cache it. Null if the stored file is no longer
640
+ * available.
641
+ */
642
+ downloadUrl: string | null;
643
+
644
+ filename: string;
645
+
646
+ /**
647
+ * Whether the attachment is inline (embedded in the HTML body) rather than a
648
+ * regular attachment.
649
+ */
650
+ isInline: boolean;
651
+
652
+ /**
653
+ * MIME type of the attachment.
654
+ */
655
+ mimeType: string;
656
+
657
+ /**
658
+ * Size of the attachment in bytes.
659
+ */
660
+ size: number;
661
+ }
662
+ }
663
+
519
664
  export interface MessageShowTypingResponse {
520
665
  success: boolean;
521
666
  }
@@ -680,6 +825,7 @@ export declare namespace Messages {
680
825
  type MessageResponse as MessageResponse,
681
826
  type MessageStatus as MessageStatus,
682
827
  type MessageType as MessageType,
828
+ type MessageListAttachmentsResponse as MessageListAttachmentsResponse,
683
829
  type MessageShowTypingResponse as MessageShowTypingResponse,
684
830
  type MessagesCursor as MessagesCursor,
685
831
  type MessageListParams as MessageListParams,
@@ -26,23 +26,6 @@ import {
26
26
  FlowUpdateResponse,
27
27
  Flows,
28
28
  } from './flows';
29
- import * as ToolsAPI from './tools';
30
- import {
31
- AgentTool,
32
- AgentToolsCursor,
33
- ToolCreateParams,
34
- ToolCreateResponse,
35
- ToolDeleteParams,
36
- ToolListParams,
37
- ToolParameters,
38
- ToolRetrieveParams,
39
- ToolRetrieveResponse,
40
- ToolTestParams,
41
- ToolTestResponse,
42
- ToolUpdateParams,
43
- ToolUpdateResponse,
44
- Tools,
45
- } from './tools';
46
29
  import * as KnowledgeBasesAPI from './knowledge-bases/knowledge-bases';
47
30
  import {
48
31
  AgentDocument,
@@ -58,6 +41,25 @@ import {
58
41
  KnowledgeBaseUpdateResponse,
59
42
  KnowledgeBases,
60
43
  } from './knowledge-bases/knowledge-bases';
44
+ import * as ToolsAPI from './tools/tools';
45
+ import {
46
+ AgentTool,
47
+ AgentToolsCursor,
48
+ ToolCreateParams,
49
+ ToolCreateResponse,
50
+ ToolDeleteParams,
51
+ ToolListParams,
52
+ ToolListTestRunsParams,
53
+ ToolListTestRunsResponse,
54
+ ToolParameters,
55
+ ToolRetrieveParams,
56
+ ToolRetrieveResponse,
57
+ ToolTestParams,
58
+ ToolTestResponse,
59
+ ToolUpdateParams,
60
+ ToolUpdateResponse,
61
+ Tools,
62
+ } from './tools/tools';
61
63
  import { APIPromise } from '../../../core/api-promise';
62
64
  import { Cursor } from '../../../core/pagination';
63
65
  import { buildHeaders } from '../../../internal/headers';
@@ -158,6 +160,8 @@ export class AgentResource extends APIResource {
158
160
 
159
161
  export type AgentExecutionsCursor = Cursor<AgentExecution>;
160
162
 
163
+ export type AgentsCursor = Cursor<Agent>;
164
+
161
165
  /**
162
166
  * AI Agent configuration for a sender.
163
167
  */
@@ -771,6 +775,7 @@ export declare namespace AgentResource {
771
775
  type ToolCreateResponse as ToolCreateResponse,
772
776
  type ToolRetrieveResponse as ToolRetrieveResponse,
773
777
  type ToolUpdateResponse as ToolUpdateResponse,
778
+ type ToolListTestRunsResponse as ToolListTestRunsResponse,
774
779
  type ToolTestResponse as ToolTestResponse,
775
780
  type AgentToolsCursor as AgentToolsCursor,
776
781
  type ToolCreateParams as ToolCreateParams,
@@ -778,6 +783,7 @@ export declare namespace AgentResource {
778
783
  type ToolUpdateParams as ToolUpdateParams,
779
784
  type ToolListParams as ToolListParams,
780
785
  type ToolDeleteParams as ToolDeleteParams,
786
+ type ToolListTestRunsParams as ToolListTestRunsParams,
781
787
  type ToolTestParams as ToolTestParams,
782
788
  };
783
789
 
@@ -11,6 +11,7 @@ export {
11
11
  type AgentCreateParams,
12
12
  type AgentUpdateParams,
13
13
  type AgentExecutionsCursor,
14
+ type AgentsCursor,
14
15
  } from './agent';
15
16
  export {
16
17
  Executions,
@@ -57,12 +58,14 @@ export {
57
58
  type ToolCreateResponse,
58
59
  type ToolRetrieveResponse,
59
60
  type ToolUpdateResponse,
61
+ type ToolListTestRunsResponse,
60
62
  type ToolTestResponse,
61
63
  type ToolCreateParams,
62
64
  type ToolRetrieveParams,
63
65
  type ToolUpdateParams,
64
66
  type ToolListParams,
65
67
  type ToolDeleteParams,
68
+ type ToolListTestRunsParams,
66
69
  type ToolTestParams,
67
70
  type AgentToolsCursor,
68
- } from './tools';
71
+ } from './tools/index';
@@ -85,12 +85,69 @@ export class Documents extends APIResource {
85
85
  { ...options, headers: buildHeaders([{ Accept: '*/*' }, options?.headers]) },
86
86
  );
87
87
  }
88
+
89
+ /**
90
+ * Get a single document from a knowledge base.
91
+ *
92
+ * @example
93
+ * ```ts
94
+ * const response =
95
+ * await client.senders.agent.knowledgeBases.documents.retrieveDocument(
96
+ * 'docId',
97
+ * { senderId: 'senderId', kbId: 'kbId' },
98
+ * );
99
+ * ```
100
+ */
101
+ retrieveDocument(
102
+ docID: string,
103
+ params: DocumentRetrieveDocumentParams,
104
+ options?: RequestOptions,
105
+ ): APIPromise<DocumentRetrieveDocumentResponse> {
106
+ const { senderId, kbId } = params;
107
+ return this._client.get(
108
+ path`/v1/senders/${senderId}/agent/knowledge-bases/${kbId}/documents/${docID}`,
109
+ options,
110
+ );
111
+ }
112
+
113
+ /**
114
+ * Update a document's title or content. Updating content reprocesses the document
115
+ * for RAG.
116
+ *
117
+ * @example
118
+ * ```ts
119
+ * const response =
120
+ * await client.senders.agent.knowledgeBases.documents.updateDocument(
121
+ * 'docId',
122
+ * { senderId: 'senderId', kbId: 'kbId' },
123
+ * );
124
+ * ```
125
+ */
126
+ updateDocument(
127
+ docID: string,
128
+ params: DocumentUpdateDocumentParams,
129
+ options?: RequestOptions,
130
+ ): APIPromise<DocumentUpdateDocumentResponse> {
131
+ const { senderId, kbId, ...body } = params;
132
+ return this._client.patch(
133
+ path`/v1/senders/${senderId}/agent/knowledge-bases/${kbId}/documents/${docID}`,
134
+ { body, ...options },
135
+ );
136
+ }
88
137
  }
89
138
 
90
139
  export interface DocumentCreateResponse {
91
140
  document: KnowledgeBasesAPI.AgentDocument;
92
141
  }
93
142
 
143
+ export interface DocumentRetrieveDocumentResponse {
144
+ document: KnowledgeBasesAPI.AgentDocument;
145
+ }
146
+
147
+ export interface DocumentUpdateDocumentResponse {
148
+ document: KnowledgeBasesAPI.AgentDocument;
149
+ }
150
+
94
151
  export interface DocumentCreateParams {
95
152
  /**
96
153
  * Path param
@@ -121,12 +178,44 @@ export interface DocumentDeleteParams {
121
178
  kbId: string;
122
179
  }
123
180
 
181
+ export interface DocumentRetrieveDocumentParams {
182
+ senderId: string;
183
+
184
+ kbId: string;
185
+ }
186
+
187
+ export interface DocumentUpdateDocumentParams {
188
+ /**
189
+ * Path param
190
+ */
191
+ senderId: string;
192
+
193
+ /**
194
+ * Path param
195
+ */
196
+ kbId: string;
197
+
198
+ /**
199
+ * Body param
200
+ */
201
+ content?: string;
202
+
203
+ /**
204
+ * Body param
205
+ */
206
+ title?: string;
207
+ }
208
+
124
209
  export declare namespace Documents {
125
210
  export {
126
211
  type DocumentCreateResponse as DocumentCreateResponse,
212
+ type DocumentRetrieveDocumentResponse as DocumentRetrieveDocumentResponse,
213
+ type DocumentUpdateDocumentResponse as DocumentUpdateDocumentResponse,
127
214
  type DocumentCreateParams as DocumentCreateParams,
128
215
  type DocumentListParams as DocumentListParams,
129
216
  type DocumentDeleteParams as DocumentDeleteParams,
217
+ type DocumentRetrieveDocumentParams as DocumentRetrieveDocumentParams,
218
+ type DocumentUpdateDocumentParams as DocumentUpdateDocumentParams,
130
219
  };
131
220
  }
132
221
 
@@ -3,9 +3,13 @@
3
3
  export {
4
4
  Documents,
5
5
  type DocumentCreateResponse,
6
+ type DocumentRetrieveDocumentResponse,
7
+ type DocumentUpdateDocumentResponse,
6
8
  type DocumentCreateParams,
7
9
  type DocumentListParams,
8
10
  type DocumentDeleteParams,
11
+ type DocumentRetrieveDocumentParams,
12
+ type DocumentUpdateDocumentParams,
9
13
  } from './documents';
10
14
  export {
11
15
  KnowledgeBases,
@@ -7,6 +7,10 @@ import {
7
7
  DocumentCreateResponse,
8
8
  DocumentDeleteParams,
9
9
  DocumentListParams,
10
+ DocumentRetrieveDocumentParams,
11
+ DocumentRetrieveDocumentResponse,
12
+ DocumentUpdateDocumentParams,
13
+ DocumentUpdateDocumentResponse,
10
14
  Documents,
11
15
  } from './documents';
12
16
  import { APIPromise } from '../../../../core/api-promise';
@@ -244,8 +248,12 @@ export declare namespace KnowledgeBases {
244
248
  export {
245
249
  Documents as Documents,
246
250
  type DocumentCreateResponse as DocumentCreateResponse,
251
+ type DocumentRetrieveDocumentResponse as DocumentRetrieveDocumentResponse,
252
+ type DocumentUpdateDocumentResponse as DocumentUpdateDocumentResponse,
247
253
  type DocumentCreateParams as DocumentCreateParams,
248
254
  type DocumentListParams as DocumentListParams,
249
255
  type DocumentDeleteParams as DocumentDeleteParams,
256
+ type DocumentRetrieveDocumentParams as DocumentRetrieveDocumentParams,
257
+ type DocumentUpdateDocumentParams as DocumentUpdateDocumentParams,
250
258
  };
251
259
  }
@@ -0,0 +1,21 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export {
4
+ Tools,
5
+ type AgentTool,
6
+ type ToolParameters,
7
+ type ToolCreateResponse,
8
+ type ToolRetrieveResponse,
9
+ type ToolUpdateResponse,
10
+ type ToolListTestRunsResponse,
11
+ type ToolTestResponse,
12
+ type ToolCreateParams,
13
+ type ToolRetrieveParams,
14
+ type ToolUpdateParams,
15
+ type ToolListParams,
16
+ type ToolDeleteParams,
17
+ type ToolListTestRunsParams,
18
+ type ToolTestParams,
19
+ type AgentToolsCursor,
20
+ } from './tools';
21
+ export { Webhook, type WebhookRotateSecretParams } from './webhook';