@zavudev/sdk 0.55.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 (273) hide show
  1. package/CHANGELOG.md +8 -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/calls.d.mts +530 -0
  52. package/resources/calls.d.mts.map +1 -0
  53. package/resources/calls.d.ts +530 -0
  54. package/resources/calls.d.ts.map +1 -0
  55. package/resources/calls.js +76 -0
  56. package/resources/calls.js.map +1 -0
  57. package/resources/calls.mjs +72 -0
  58. package/resources/calls.mjs.map +1 -0
  59. package/resources/conversations.d.mts +360 -0
  60. package/resources/conversations.d.mts.map +1 -0
  61. package/resources/conversations.d.ts +360 -0
  62. package/resources/conversations.d.ts.map +1 -0
  63. package/resources/conversations.js +47 -0
  64. package/resources/conversations.js.map +1 -0
  65. package/resources/conversations.mjs +43 -0
  66. package/resources/conversations.mjs.map +1 -0
  67. package/resources/email-domains.d.mts +260 -0
  68. package/resources/email-domains.d.mts.map +1 -0
  69. package/resources/email-domains.d.ts +260 -0
  70. package/resources/email-domains.d.ts.map +1 -0
  71. package/resources/email-domains.js +77 -0
  72. package/resources/email-domains.js.map +1 -0
  73. package/resources/email-domains.mjs +73 -0
  74. package/resources/email-domains.mjs.map +1 -0
  75. package/resources/functions/functions.d.mts +122 -1
  76. package/resources/functions/functions.d.mts.map +1 -1
  77. package/resources/functions/functions.d.ts +122 -1
  78. package/resources/functions/functions.d.ts.map +1 -1
  79. package/resources/functions/functions.js +53 -0
  80. package/resources/functions/functions.js.map +1 -1
  81. package/resources/functions/functions.mjs +53 -0
  82. package/resources/functions/functions.mjs.map +1 -1
  83. package/resources/functions/git-link.d.mts +295 -0
  84. package/resources/functions/git-link.d.mts.map +1 -0
  85. package/resources/functions/git-link.d.ts +295 -0
  86. package/resources/functions/git-link.d.ts.map +1 -0
  87. package/resources/functions/git-link.js +97 -0
  88. package/resources/functions/git-link.js.map +1 -0
  89. package/resources/functions/git-link.mjs +93 -0
  90. package/resources/functions/git-link.mjs.map +1 -0
  91. package/resources/functions/index.d.mts +3 -1
  92. package/resources/functions/index.d.mts.map +1 -1
  93. package/resources/functions/index.d.ts +3 -1
  94. package/resources/functions/index.d.ts.map +1 -1
  95. package/resources/functions/index.js +5 -1
  96. package/resources/functions/index.js.map +1 -1
  97. package/resources/functions/index.mjs +2 -0
  98. package/resources/functions/index.mjs.map +1 -1
  99. package/resources/functions/triggers.d.mts +164 -0
  100. package/resources/functions/triggers.d.mts.map +1 -0
  101. package/resources/functions/triggers.d.ts +164 -0
  102. package/resources/functions/triggers.d.ts.map +1 -0
  103. package/resources/functions/triggers.js +74 -0
  104. package/resources/functions/triggers.js.map +1 -0
  105. package/resources/functions/triggers.mjs +70 -0
  106. package/resources/functions/triggers.mjs.map +1 -0
  107. package/resources/index.d.mts +10 -5
  108. package/resources/index.d.mts.map +1 -1
  109. package/resources/index.d.ts +10 -5
  110. package/resources/index.d.ts.map +1 -1
  111. package/resources/index.js +11 -1
  112. package/resources/index.js.map +1 -1
  113. package/resources/index.mjs +5 -0
  114. package/resources/index.mjs.map +1 -1
  115. package/resources/introspect.d.mts +74 -1
  116. package/resources/introspect.d.mts.map +1 -1
  117. package/resources/introspect.d.ts +74 -1
  118. package/resources/introspect.d.ts.map +1 -1
  119. package/resources/introspect.js +22 -0
  120. package/resources/introspect.js.map +1 -1
  121. package/resources/introspect.mjs +22 -0
  122. package/resources/introspect.mjs.map +1 -1
  123. package/resources/messages.d.mts +54 -1
  124. package/resources/messages.d.mts.map +1 -1
  125. package/resources/messages.d.ts +54 -1
  126. package/resources/messages.d.ts.map +1 -1
  127. package/resources/messages.js +18 -0
  128. package/resources/messages.js.map +1 -1
  129. package/resources/messages.mjs +18 -0
  130. package/resources/messages.mjs.map +1 -1
  131. package/resources/senders/agent/agent.d.mts +4 -3
  132. package/resources/senders/agent/agent.d.mts.map +1 -1
  133. package/resources/senders/agent/agent.d.ts +4 -3
  134. package/resources/senders/agent/agent.d.ts.map +1 -1
  135. package/resources/senders/agent/agent.js +2 -2
  136. package/resources/senders/agent/agent.js.map +1 -1
  137. package/resources/senders/agent/agent.mjs +2 -2
  138. package/resources/senders/agent/agent.mjs.map +1 -1
  139. package/resources/senders/agent/index.d.mts +2 -2
  140. package/resources/senders/agent/index.d.mts.map +1 -1
  141. package/resources/senders/agent/index.d.ts +2 -2
  142. package/resources/senders/agent/index.d.ts.map +1 -1
  143. package/resources/senders/agent/index.js +2 -2
  144. package/resources/senders/agent/index.js.map +1 -1
  145. package/resources/senders/agent/index.mjs +1 -1
  146. package/resources/senders/agent/index.mjs.map +1 -1
  147. package/resources/senders/agent/knowledge-bases/documents.d.mts +56 -1
  148. package/resources/senders/agent/knowledge-bases/documents.d.mts.map +1 -1
  149. package/resources/senders/agent/knowledge-bases/documents.d.ts +56 -1
  150. package/resources/senders/agent/knowledge-bases/documents.d.ts.map +1 -1
  151. package/resources/senders/agent/knowledge-bases/documents.js +33 -0
  152. package/resources/senders/agent/knowledge-bases/documents.js.map +1 -1
  153. package/resources/senders/agent/knowledge-bases/documents.mjs +33 -0
  154. package/resources/senders/agent/knowledge-bases/documents.mjs.map +1 -1
  155. package/resources/senders/agent/knowledge-bases/index.d.mts +1 -1
  156. package/resources/senders/agent/knowledge-bases/index.d.mts.map +1 -1
  157. package/resources/senders/agent/knowledge-bases/index.d.ts +1 -1
  158. package/resources/senders/agent/knowledge-bases/index.d.ts.map +1 -1
  159. package/resources/senders/agent/knowledge-bases/index.js.map +1 -1
  160. package/resources/senders/agent/knowledge-bases/index.mjs.map +1 -1
  161. package/resources/senders/agent/knowledge-bases/knowledge-bases.d.mts +2 -2
  162. package/resources/senders/agent/knowledge-bases/knowledge-bases.d.mts.map +1 -1
  163. package/resources/senders/agent/knowledge-bases/knowledge-bases.d.ts +2 -2
  164. package/resources/senders/agent/knowledge-bases/knowledge-bases.d.ts.map +1 -1
  165. package/resources/senders/agent/knowledge-bases/knowledge-bases.js.map +1 -1
  166. package/resources/senders/agent/knowledge-bases/knowledge-bases.mjs.map +1 -1
  167. package/resources/senders/agent/tools/index.d.mts +3 -0
  168. package/resources/senders/agent/tools/index.d.mts.map +1 -0
  169. package/resources/senders/agent/tools/index.d.ts +3 -0
  170. package/resources/senders/agent/tools/index.d.ts.map +1 -0
  171. package/resources/senders/agent/tools/index.js +9 -0
  172. package/resources/senders/agent/tools/index.js.map +1 -0
  173. package/resources/senders/agent/tools/index.mjs +4 -0
  174. package/resources/senders/agent/tools/index.mjs.map +1 -0
  175. package/resources/senders/agent/tools/tools.d.mts +338 -0
  176. package/resources/senders/agent/tools/tools.d.mts.map +1 -0
  177. package/resources/senders/agent/tools/tools.d.ts +338 -0
  178. package/resources/senders/agent/tools/tools.d.ts.map +1 -0
  179. package/resources/senders/agent/tools/tools.js +163 -0
  180. package/resources/senders/agent/tools/tools.js.map +1 -0
  181. package/resources/senders/agent/tools/tools.mjs +158 -0
  182. package/resources/senders/agent/tools/tools.mjs.map +1 -0
  183. package/resources/senders/agent/tools/webhook.d.mts +28 -0
  184. package/resources/senders/agent/tools/webhook.d.mts.map +1 -0
  185. package/resources/senders/agent/tools/webhook.d.ts +28 -0
  186. package/resources/senders/agent/tools/webhook.d.ts.map +1 -0
  187. package/resources/senders/agent/tools/webhook.js +28 -0
  188. package/resources/senders/agent/tools/webhook.js.map +1 -0
  189. package/resources/senders/agent/tools/webhook.mjs +24 -0
  190. package/resources/senders/agent/tools/webhook.mjs.map +1 -0
  191. package/resources/senders/agent/tools.d.mts +1 -270
  192. package/resources/senders/agent/tools.d.mts.map +1 -1
  193. package/resources/senders/agent/tools.d.ts +1 -270
  194. package/resources/senders/agent/tools.d.ts.map +1 -1
  195. package/resources/senders/agent/tools.js +2 -131
  196. package/resources/senders/agent/tools.js.map +1 -1
  197. package/resources/senders/agent/tools.mjs +1 -129
  198. package/resources/senders/agent/tools.mjs.map +1 -1
  199. package/resources/senders/index.d.mts +2 -1
  200. package/resources/senders/index.d.mts.map +1 -1
  201. package/resources/senders/index.d.ts +2 -1
  202. package/resources/senders/index.d.ts.map +1 -1
  203. package/resources/senders/index.js +3 -1
  204. package/resources/senders/index.js.map +1 -1
  205. package/resources/senders/index.mjs +1 -0
  206. package/resources/senders/index.mjs.map +1 -1
  207. package/resources/senders/senders.d.mts +4 -0
  208. package/resources/senders/senders.d.mts.map +1 -1
  209. package/resources/senders/senders.d.ts +4 -0
  210. package/resources/senders/senders.d.ts.map +1 -1
  211. package/resources/senders/senders.js +4 -0
  212. package/resources/senders/senders.js.map +1 -1
  213. package/resources/senders/senders.mjs +4 -0
  214. package/resources/senders/senders.mjs.map +1 -1
  215. package/resources/senders/telegram.d.mts +48 -0
  216. package/resources/senders/telegram.d.mts.map +1 -0
  217. package/resources/senders/telegram.d.ts +48 -0
  218. package/resources/senders/telegram.d.ts.map +1 -0
  219. package/resources/senders/telegram.js +41 -0
  220. package/resources/senders/telegram.js.map +1 -0
  221. package/resources/senders/telegram.mjs +37 -0
  222. package/resources/senders/telegram.mjs.map +1 -0
  223. package/resources/templates.d.mts +66 -1
  224. package/resources/templates.d.mts.map +1 -1
  225. package/resources/templates.d.ts +66 -1
  226. package/resources/templates.d.ts.map +1 -1
  227. package/resources/templates.js +31 -0
  228. package/resources/templates.js.map +1 -1
  229. package/resources/templates.mjs +31 -0
  230. package/resources/templates.mjs.map +1 -1
  231. package/resources/urls.d.mts +24 -1
  232. package/resources/urls.d.mts.map +1 -1
  233. package/resources/urls.d.ts +24 -1
  234. package/resources/urls.d.ts.map +1 -1
  235. package/resources/urls.js +15 -0
  236. package/resources/urls.js.map +1 -1
  237. package/resources/urls.mjs +15 -0
  238. package/resources/urls.mjs.map +1 -1
  239. package/src/client.ts +129 -0
  240. package/src/resources/agent-templates.ts +128 -0
  241. package/src/resources/agents/agents.ts +603 -0
  242. package/src/resources/agents/index.ts +21 -0
  243. package/src/resources/agents/senders.ts +79 -0
  244. package/src/resources/agents.ts +3 -0
  245. package/src/resources/calls.ts +638 -0
  246. package/src/resources/conversations.ts +472 -0
  247. package/src/resources/email-domains.ts +337 -0
  248. package/src/resources/functions/functions.ts +202 -0
  249. package/src/resources/functions/git-link.ts +398 -0
  250. package/src/resources/functions/index.ts +22 -0
  251. package/src/resources/functions/triggers.ts +227 -0
  252. package/src/resources/index.ts +57 -0
  253. package/src/resources/introspect.ts +105 -0
  254. package/src/resources/messages.ts +66 -0
  255. package/src/resources/senders/agent/agent.ts +23 -17
  256. package/src/resources/senders/agent/index.ts +4 -1
  257. package/src/resources/senders/agent/knowledge-bases/documents.ts +89 -0
  258. package/src/resources/senders/agent/knowledge-bases/index.ts +4 -0
  259. package/src/resources/senders/agent/knowledge-bases/knowledge-bases.ts +8 -0
  260. package/src/resources/senders/agent/tools/index.ts +21 -0
  261. package/src/resources/senders/agent/tools/tools.ts +460 -0
  262. package/src/resources/senders/agent/tools/webhook.ts +40 -0
  263. package/src/resources/senders/agent/tools.ts +1 -364
  264. package/src/resources/senders/index.ts +2 -0
  265. package/src/resources/senders/senders.ts +10 -0
  266. package/src/resources/senders/telegram.ts +73 -0
  267. package/src/resources/templates.ts +80 -0
  268. package/src/resources/urls.ts +35 -0
  269. package/src/version.ts +1 -1
  270. package/version.d.mts +1 -1
  271. package/version.d.ts +1 -1
  272. package/version.js +1 -1
  273. package/version.mjs +1 -1
@@ -1,366 +1,3 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- import { APIResource } from '../../../core/resource';
4
- import { APIPromise } from '../../../core/api-promise';
5
- import { Cursor, type CursorParams, PagePromise } from '../../../core/pagination';
6
- import { buildHeaders } from '../../../internal/headers';
7
- import { RequestOptions } from '../../../internal/request-options';
8
- import { path } from '../../../internal/utils/path';
9
-
10
- export class Tools extends APIResource {
11
- /**
12
- * Create a new tool for an agent. Tools allow the agent to call external webhooks.
13
- *
14
- * @example
15
- * ```ts
16
- * const tool = await client.senders.agent.tools.create(
17
- * 'senderId',
18
- * {
19
- * description: 'Get the status of a customer order',
20
- * name: 'get_order_status',
21
- * parameters: {
22
- * type: 'object',
23
- * properties: {
24
- * order_id: {
25
- * type: 'string',
26
- * description: 'The order ID to look up',
27
- * },
28
- * },
29
- * required: ['order_id'],
30
- * },
31
- * webhookUrl:
32
- * 'https://api.example.com/webhooks/order-status',
33
- * webhookSecret: 'whsec_...',
34
- * },
35
- * );
36
- * ```
37
- */
38
- create(senderID: string, body: ToolCreateParams, options?: RequestOptions): APIPromise<ToolCreateResponse> {
39
- return this._client.post(path`/v1/senders/${senderID}/agent/tools`, { body, ...options });
40
- }
41
-
42
- /**
43
- * Get a specific tool.
44
- *
45
- * @example
46
- * ```ts
47
- * const tool = await client.senders.agent.tools.retrieve(
48
- * 'toolId',
49
- * { senderId: 'senderId' },
50
- * );
51
- * ```
52
- */
53
- retrieve(
54
- toolID: string,
55
- params: ToolRetrieveParams,
56
- options?: RequestOptions,
57
- ): APIPromise<ToolRetrieveResponse> {
58
- const { senderId } = params;
59
- return this._client.get(path`/v1/senders/${senderId}/agent/tools/${toolID}`, options);
60
- }
61
-
62
- /**
63
- * Update a tool.
64
- *
65
- * @example
66
- * ```ts
67
- * const tool = await client.senders.agent.tools.update(
68
- * 'toolId',
69
- * { senderId: 'senderId' },
70
- * );
71
- * ```
72
- */
73
- update(toolID: string, params: ToolUpdateParams, options?: RequestOptions): APIPromise<ToolUpdateResponse> {
74
- const { senderId, ...body } = params;
75
- return this._client.patch(path`/v1/senders/${senderId}/agent/tools/${toolID}`, { body, ...options });
76
- }
77
-
78
- /**
79
- * List tools for an agent.
80
- *
81
- * @example
82
- * ```ts
83
- * // Automatically fetches more pages as needed.
84
- * for await (const agentTool of client.senders.agent.tools.list(
85
- * 'senderId',
86
- * )) {
87
- * // ...
88
- * }
89
- * ```
90
- */
91
- list(
92
- senderID: string,
93
- query: ToolListParams | null | undefined = {},
94
- options?: RequestOptions,
95
- ): PagePromise<AgentToolsCursor, AgentTool> {
96
- return this._client.getAPIList(path`/v1/senders/${senderID}/agent/tools`, Cursor<AgentTool>, {
97
- query,
98
- ...options,
99
- });
100
- }
101
-
102
- /**
103
- * Delete a tool.
104
- *
105
- * @example
106
- * ```ts
107
- * await client.senders.agent.tools.delete('toolId', {
108
- * senderId: 'senderId',
109
- * });
110
- * ```
111
- */
112
- delete(toolID: string, params: ToolDeleteParams, options?: RequestOptions): APIPromise<void> {
113
- const { senderId } = params;
114
- return this._client.delete(path`/v1/senders/${senderId}/agent/tools/${toolID}`, {
115
- ...options,
116
- headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
117
- });
118
- }
119
-
120
- /**
121
- * Run a tool with the parameters you supply and return what it answered.
122
- *
123
- * The call is synchronous: the response carries the tool's status, body, and
124
- * duration, so a green result is evidence the tool ran rather than evidence it was
125
- * accepted. Each run is also recorded and readable afterwards via
126
- * `GET /v1/senders/{senderId}/agent/tools/{toolId}/test-runs`.
127
- *
128
- * A tool that answers with an error is reported as a run with `success: false` —
129
- * the endpoint itself still returns 200. This fires the tool's real webhook, so a
130
- * test has whatever side effects the tool has.
131
- *
132
- * @example
133
- * ```ts
134
- * const response = await client.senders.agent.tools.test(
135
- * 'toolId',
136
- * {
137
- * senderId: 'senderId',
138
- * testParams: { order_id: 'ORD-12345' },
139
- * },
140
- * );
141
- * ```
142
- */
143
- test(toolID: string, params: ToolTestParams, options?: RequestOptions): APIPromise<ToolTestResponse> {
144
- const { senderId, ...body } = params;
145
- return this._client.post(path`/v1/senders/${senderId}/agent/tools/${toolID}/test`, { body, ...options });
146
- }
147
- }
148
-
149
- export type AgentToolsCursor = Cursor<AgentTool>;
150
-
151
- export interface AgentTool {
152
- id: string;
153
-
154
- agentId: string;
155
-
156
- createdAt: string;
157
-
158
- /**
159
- * Description for the LLM to understand when to use this tool.
160
- */
161
- description: string;
162
-
163
- enabled: boolean;
164
-
165
- name: string;
166
-
167
- parameters: ToolParameters;
168
-
169
- updatedAt: string;
170
-
171
- /**
172
- * HTTPS URL to call when the tool is executed.
173
- */
174
- webhookUrl: string;
175
-
176
- /**
177
- * Signing secret for this tool's webhook. **Returned only when the tool is
178
- * created**, never on a later read.
179
- *
180
- * Zavu generates one if you do not supply it, and signs every call to this tool
181
- * with it: `X-Zavu-Signature: <hex>`, the HMAC-SHA256 of the request body. Verify
182
- * it before trusting the call. Lost it? Rotate with
183
- * `POST /v1/senders/{senderId}/agent/tools/{toolId}/webhook/secret`.
184
- */
185
- webhookSecret?: string;
186
- }
187
-
188
- export interface ToolParameters {
189
- properties: { [key: string]: ToolParameters.Properties };
190
-
191
- required: Array<string>;
192
-
193
- type: 'object';
194
- }
195
-
196
- export namespace ToolParameters {
197
- export interface Properties {
198
- description?: string;
199
-
200
- type?: string;
201
- }
202
- }
203
-
204
- export interface ToolCreateResponse {
205
- tool: AgentTool;
206
- }
207
-
208
- export interface ToolRetrieveResponse {
209
- tool: AgentTool;
210
- }
211
-
212
- export interface ToolUpdateResponse {
213
- tool: AgentTool;
214
- }
215
-
216
- export interface ToolTestResponse {
217
- /**
218
- * One run of a tool triggered from the test endpoint. Recorded so a test is
219
- * verifiable after the fact rather than only visible in the response.
220
- */
221
- run: ToolTestResponse.Run;
222
- }
223
-
224
- export namespace ToolTestResponse {
225
- /**
226
- * One run of a tool triggered from the test endpoint. Recorded so a test is
227
- * verifiable after the fact rather than only visible in the response.
228
- */
229
- export interface Run {
230
- id: string;
231
-
232
- createdAt: string;
233
-
234
- durationMs: number;
235
-
236
- /**
237
- * Whether the tool returned without error. A tool that answered with a non-2xx
238
- * status is a failed run, not an error of this endpoint.
239
- */
240
- success: boolean;
241
-
242
- toolId: string;
243
-
244
- /**
245
- * Why the run failed, when it did.
246
- */
247
- error?: string | null;
248
-
249
- /**
250
- * The parameters the tool was called with.
251
- */
252
- params?: { [key: string]: unknown };
253
-
254
- /**
255
- * The tool's response body, truncated.
256
- */
257
- response?: string | null;
258
-
259
- /**
260
- * HTTP status the tool's webhook returned. Absent for tools that do not go over
261
- * HTTP.
262
- */
263
- statusCode?: number | null;
264
- }
265
- }
266
-
267
- export interface ToolCreateParams {
268
- description: string;
269
-
270
- name: string;
271
-
272
- parameters: ToolParameters;
273
-
274
- /**
275
- * Must be HTTPS.
276
- */
277
- webhookUrl: string;
278
-
279
- enabled?: boolean;
280
-
281
- /**
282
- * Signing secret for the webhook. Optional: Zavu generates one when omitted and
283
- * returns it on this response only. Supply your own if you already have a secret
284
- * you want reused.
285
- */
286
- webhookSecret?: string;
287
- }
288
-
289
- export interface ToolRetrieveParams {
290
- senderId: string;
291
- }
292
-
293
- export interface ToolUpdateParams {
294
- /**
295
- * Path param
296
- */
297
- senderId: string;
298
-
299
- /**
300
- * Body param
301
- */
302
- description?: string;
303
-
304
- /**
305
- * Body param
306
- */
307
- enabled?: boolean;
308
-
309
- /**
310
- * Body param
311
- */
312
- name?: string;
313
-
314
- /**
315
- * Body param
316
- */
317
- parameters?: ToolParameters;
318
-
319
- /**
320
- * Body param
321
- */
322
- webhookSecret?: string | null;
323
-
324
- /**
325
- * Body param
326
- */
327
- webhookUrl?: string;
328
- }
329
-
330
- export interface ToolListParams extends CursorParams {
331
- enabled?: boolean;
332
- }
333
-
334
- export interface ToolDeleteParams {
335
- senderId: string;
336
- }
337
-
338
- export interface ToolTestParams {
339
- /**
340
- * Path param
341
- */
342
- senderId: string;
343
-
344
- /**
345
- * Body param: Parameters to pass to the tool for testing.
346
- */
347
- testParams: { [key: string]: unknown };
348
- }
349
-
350
- export declare namespace Tools {
351
- export {
352
- type AgentTool as AgentTool,
353
- type ToolParameters as ToolParameters,
354
- type ToolCreateResponse as ToolCreateResponse,
355
- type ToolRetrieveResponse as ToolRetrieveResponse,
356
- type ToolUpdateResponse as ToolUpdateResponse,
357
- type ToolTestResponse as ToolTestResponse,
358
- type AgentToolsCursor as AgentToolsCursor,
359
- type ToolCreateParams as ToolCreateParams,
360
- type ToolRetrieveParams as ToolRetrieveParams,
361
- type ToolUpdateParams as ToolUpdateParams,
362
- type ToolListParams as ToolListParams,
363
- type ToolDeleteParams as ToolDeleteParams,
364
- type ToolTestParams as ToolTestParams,
365
- };
366
- }
3
+ export * from './tools/index';
@@ -11,6 +11,7 @@ export {
11
11
  type AgentCreateParams,
12
12
  type AgentUpdateParams,
13
13
  type AgentExecutionsCursor,
14
+ type AgentsCursor,
14
15
  } from './agent/index';
15
16
  export {
16
17
  Senders,
@@ -30,6 +31,7 @@ export {
30
31
  type SenderUploadProfilePictureParams,
31
32
  type SendersCursor,
32
33
  } from './senders';
34
+ export { Telegram, type TelegramConnectResponse, type TelegramConnectParams } from './telegram';
33
35
  export {
34
36
  WhatsappSync,
35
37
  type WhatsAppSyncContacts,
@@ -1,6 +1,8 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  import { APIResource } from '../../core/resource';
4
+ import * as TelegramAPI from './telegram';
5
+ import { Telegram, TelegramConnectParams, TelegramConnectResponse } from './telegram';
4
6
  import * as WhatsappSyncAPI from './whatsapp-sync';
5
7
  import {
6
8
  WhatsAppSyncContacts,
@@ -32,6 +34,7 @@ import { path } from '../../internal/utils/path';
32
34
  export class Senders extends APIResource {
33
35
  agent: AgentAPI.AgentResource = new AgentAPI.AgentResource(this._client);
34
36
  whatsappSync: WhatsappSyncAPI.WhatsappSync = new WhatsappSyncAPI.WhatsappSync(this._client);
37
+ telegram: TelegramAPI.Telegram = new TelegramAPI.Telegram(this._client);
35
38
 
36
39
  /**
37
40
  * Create sender
@@ -741,6 +744,7 @@ export interface SenderUploadProfilePictureParams {
741
744
 
742
745
  Senders.AgentResource = AgentResource;
743
746
  Senders.WhatsappSync = WhatsappSync;
747
+ Senders.Telegram = Telegram;
744
748
 
745
749
  export declare namespace Senders {
746
750
  export {
@@ -782,4 +786,10 @@ export declare namespace Senders {
782
786
  type WhatsappSyncStartContactsSyncResponse as WhatsappSyncStartContactsSyncResponse,
783
787
  type WhatsappSyncStartHistorySyncResponse as WhatsappSyncStartHistorySyncResponse,
784
788
  };
789
+
790
+ export {
791
+ Telegram as Telegram,
792
+ type TelegramConnectResponse as TelegramConnectResponse,
793
+ type TelegramConnectParams as TelegramConnectParams,
794
+ };
785
795
  }
@@ -0,0 +1,73 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import { APIPromise } from '../../core/api-promise';
5
+ import { buildHeaders } from '../../internal/headers';
6
+ import { RequestOptions } from '../../internal/request-options';
7
+ import { path } from '../../internal/utils/path';
8
+
9
+ export class Telegram extends APIResource {
10
+ /**
11
+ * Connect a Telegram bot to a sender. Provide the bot token from @BotFather; Zavu
12
+ * validates it, registers the webhook, and routes the sender's Telegram messages
13
+ * through it.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const response = await client.senders.telegram.connect(
18
+ * 'senderId',
19
+ * { botToken: 'botToken' },
20
+ * );
21
+ * ```
22
+ */
23
+ connect(
24
+ senderID: string,
25
+ body: TelegramConnectParams,
26
+ options?: RequestOptions,
27
+ ): APIPromise<TelegramConnectResponse> {
28
+ return this._client.post(path`/v1/senders/${senderID}/telegram`, { body, ...options });
29
+ }
30
+
31
+ /**
32
+ * Disconnect Telegram from a sender and remove the webhook.
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * await client.senders.telegram.disconnect('senderId');
37
+ * ```
38
+ */
39
+ disconnect(senderID: string, options?: RequestOptions): APIPromise<void> {
40
+ return this._client.delete(path`/v1/senders/${senderID}/telegram`, {
41
+ ...options,
42
+ headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
43
+ });
44
+ }
45
+ }
46
+
47
+ export interface TelegramConnectResponse {
48
+ telegram: TelegramConnectResponse.Telegram;
49
+ }
50
+
51
+ export namespace TelegramConnectResponse {
52
+ export interface Telegram {
53
+ connected: boolean;
54
+
55
+ botId?: string;
56
+
57
+ botUsername?: string;
58
+ }
59
+ }
60
+
61
+ export interface TelegramConnectParams {
62
+ /**
63
+ * Bot token from @BotFather.
64
+ */
65
+ botToken: string;
66
+ }
67
+
68
+ export declare namespace Telegram {
69
+ export {
70
+ type TelegramConnectResponse as TelegramConnectResponse,
71
+ type TelegramConnectParams as TelegramConnectParams,
72
+ };
73
+ }
@@ -90,6 +90,41 @@ export class Templates extends APIResource {
90
90
  submit(templateID: string, body: TemplateSubmitParams, options?: RequestOptions): APIPromise<Template> {
91
91
  return this._client.post(path`/v1/templates/${templateID}/submit`, { body, ...options });
92
92
  }
93
+
94
+ /**
95
+ * Reconcile this project's templates against WhatsApp. Two things happen per
96
+ * connected WhatsApp Business Account: templates that exist on Meta but not in
97
+ * Zavu are imported (or linked to an existing template with the same name), and
98
+ * the approval status of the templates Zavu already knows about is refreshed from
99
+ * Meta.
100
+ *
101
+ * This is what to call when a template was created outside Zavu — in Meta Business
102
+ * Manager, or by another tool — or when a `template.status_changed` webhook was
103
+ * missed and a template is stuck in `pending`. Status changes normally arrive by
104
+ * webhook; this endpoint is the recovery path and the only path for a template
105
+ * Zavu never created.
106
+ *
107
+ * Templates that Meta reports as rejected or disabled are not imported; they are
108
+ * counted in `skipped`. Existing local templates are matched first by Meta
109
+ * template ID, then by name.
110
+ *
111
+ * By default every sender in the project with a WhatsApp Business Account is
112
+ * synced. Pass `senderId` to sync only that sender's account. The call is
113
+ * synchronous — it waits for Meta and returns what changed — so it can take a few
114
+ * seconds per account. A failure on one account does not fail the request: it is
115
+ * reported in `errors` and the remaining accounts are still synced.
116
+ *
117
+ * @example
118
+ * ```ts
119
+ * const response = await client.templates.sync();
120
+ * ```
121
+ */
122
+ sync(
123
+ body: TemplateSyncParams | null | undefined = {},
124
+ options?: RequestOptions,
125
+ ): APIPromise<TemplateSyncResponse> {
126
+ return this._client.post('/v1/templates/sync', { body, ...options });
127
+ }
93
128
  }
94
129
 
95
130
  export type TemplatesCursor = Cursor<Template>;
@@ -241,6 +276,41 @@ export namespace Template {
241
276
  */
242
277
  export type WhatsappCategory = 'UTILITY' | 'MARKETING' | 'AUTHENTICATION';
243
278
 
279
+ export interface TemplateSyncResponse {
280
+ /**
281
+ * WhatsApp Business Accounts reconciled in this call.
282
+ */
283
+ accountsSynced: number;
284
+
285
+ /**
286
+ * Problems hit while syncing. Non-empty with a 200 means part of the sync did not
287
+ * complete — the rest still did.
288
+ */
289
+ errors: Array<string>;
290
+
291
+ /**
292
+ * Templates that existed on Meta and were created in Zavu by this call.
293
+ */
294
+ imported: number;
295
+
296
+ /**
297
+ * Existing Zavu templates that were matched to a Meta template by name and bound
298
+ * to its Meta ID.
299
+ */
300
+ linked: number;
301
+
302
+ /**
303
+ * Meta templates left alone: already linked to a Zavu template, or
304
+ * rejected/disabled on Meta.
305
+ */
306
+ skipped: number;
307
+
308
+ /**
309
+ * Templates whose approval status changed to match Meta.
310
+ */
311
+ updated: number;
312
+ }
313
+
244
314
  export interface TemplateCreateParams {
245
315
  /**
246
316
  * Default template body. Used when no channel-specific body is set.
@@ -367,13 +437,23 @@ export interface TemplateSubmitParams {
367
437
  category?: WhatsappCategory;
368
438
  }
369
439
 
440
+ export interface TemplateSyncParams {
441
+ /**
442
+ * Sync only the WhatsApp Business Account attached to this sender. If omitted,
443
+ * every WhatsApp sender in the project is synced.
444
+ */
445
+ senderId?: string;
446
+ }
447
+
370
448
  export declare namespace Templates {
371
449
  export {
372
450
  type Template as Template,
373
451
  type WhatsappCategory as WhatsappCategory,
452
+ type TemplateSyncResponse as TemplateSyncResponse,
374
453
  type TemplatesCursor as TemplatesCursor,
375
454
  type TemplateCreateParams as TemplateCreateParams,
376
455
  type TemplateListParams as TemplateListParams,
377
456
  type TemplateSubmitParams as TemplateSubmitParams,
457
+ type TemplateSyncParams as TemplateSyncParams,
378
458
  };
379
459
  }
@@ -7,6 +7,26 @@ import { RequestOptions } from '../internal/request-options';
7
7
  import { path } from '../internal/utils/path';
8
8
 
9
9
  export class URLs extends APIResource {
10
+ /**
11
+ * Request manual review of a rejected URL. Only URLs in 'rejected' status can be
12
+ * escalated; the status then moves to 'escalated'.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const response = await client.urls.escalate('urlId', {
17
+ * reason:
18
+ * 'This is our official landing page and was rejected in error.',
19
+ * });
20
+ * ```
21
+ */
22
+ escalate(
23
+ urlID: string,
24
+ body: URLEscalateParams,
25
+ options?: RequestOptions,
26
+ ): APIPromise<URLEscalateResponse> {
27
+ return this._client.post(path`/v1/urls/${urlID}/escalate`, { body, ...options });
28
+ }
29
+
10
30
  /**
11
31
  * List URLs that have been verified for this project.
12
32
  *
@@ -91,6 +111,12 @@ export interface VerifiedURL {
91
111
  updatedAt?: string;
92
112
  }
93
113
 
114
+ export interface URLEscalateResponse {
115
+ message: string;
116
+
117
+ url: VerifiedURL;
118
+ }
119
+
94
120
  export interface URLRetrieveDetailsResponse {
95
121
  url: VerifiedURL;
96
122
  }
@@ -99,6 +125,13 @@ export interface URLSubmitForVerificationResponse {
99
125
  url: VerifiedURL;
100
126
  }
101
127
 
128
+ export interface URLEscalateParams {
129
+ /**
130
+ * Why the URL should be reviewed manually.
131
+ */
132
+ reason: string;
133
+ }
134
+
102
135
  export interface URLListVerifiedParams extends CursorParams {
103
136
  /**
104
137
  * Filter by verification status.
@@ -116,9 +149,11 @@ export interface URLSubmitForVerificationParams {
116
149
  export declare namespace URLs {
117
150
  export {
118
151
  type VerifiedURL as VerifiedURL,
152
+ type URLEscalateResponse as URLEscalateResponse,
119
153
  type URLRetrieveDetailsResponse as URLRetrieveDetailsResponse,
120
154
  type URLSubmitForVerificationResponse as URLSubmitForVerificationResponse,
121
155
  type VerifiedURLsCursor as VerifiedURLsCursor,
156
+ type URLEscalateParams as URLEscalateParams,
122
157
  type URLListVerifiedParams as URLListVerifiedParams,
123
158
  type URLSubmitForVerificationParams as URLSubmitForVerificationParams,
124
159
  };
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const VERSION = '0.55.0'; // x-release-please-version
1
+ export const VERSION = '0.56.0'; // x-release-please-version
package/version.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.55.0";
1
+ export declare const VERSION = "0.56.0";
2
2
  //# sourceMappingURL=version.d.mts.map
package/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.55.0";
1
+ export declare const VERSION = "0.56.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '0.55.0'; // x-release-please-version
4
+ exports.VERSION = '0.56.0'; // x-release-please-version
5
5
  //# sourceMappingURL=version.js.map
package/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.55.0'; // x-release-please-version
1
+ export const VERSION = '0.56.0'; // x-release-please-version
2
2
  //# sourceMappingURL=version.mjs.map