@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
@@ -0,0 +1,460 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../../../core/resource';
4
+ import * as WebhookAPI from './webhook';
5
+ import { Webhook, WebhookRotateSecretParams } from './webhook';
6
+ import { APIPromise } from '../../../../core/api-promise';
7
+ import { Cursor, type CursorParams, PagePromise } from '../../../../core/pagination';
8
+ import { buildHeaders } from '../../../../internal/headers';
9
+ import { RequestOptions } from '../../../../internal/request-options';
10
+ import { path } from '../../../../internal/utils/path';
11
+
12
+ export class Tools extends APIResource {
13
+ webhook: WebhookAPI.Webhook = new WebhookAPI.Webhook(this._client);
14
+
15
+ /**
16
+ * Create a new tool for an agent. Tools allow the agent to call external webhooks.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * const tool = await client.senders.agent.tools.create(
21
+ * 'senderId',
22
+ * {
23
+ * description: 'Get the status of a customer order',
24
+ * name: 'get_order_status',
25
+ * parameters: {
26
+ * type: 'object',
27
+ * properties: {
28
+ * order_id: {
29
+ * type: 'string',
30
+ * description: 'The order ID to look up',
31
+ * },
32
+ * },
33
+ * required: ['order_id'],
34
+ * },
35
+ * webhookUrl:
36
+ * 'https://api.example.com/webhooks/order-status',
37
+ * webhookSecret: 'whsec_...',
38
+ * },
39
+ * );
40
+ * ```
41
+ */
42
+ create(senderID: string, body: ToolCreateParams, options?: RequestOptions): APIPromise<ToolCreateResponse> {
43
+ return this._client.post(path`/v1/senders/${senderID}/agent/tools`, { body, ...options });
44
+ }
45
+
46
+ /**
47
+ * Get a specific tool.
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * const tool = await client.senders.agent.tools.retrieve(
52
+ * 'toolId',
53
+ * { senderId: 'senderId' },
54
+ * );
55
+ * ```
56
+ */
57
+ retrieve(
58
+ toolID: string,
59
+ params: ToolRetrieveParams,
60
+ options?: RequestOptions,
61
+ ): APIPromise<ToolRetrieveResponse> {
62
+ const { senderId } = params;
63
+ return this._client.get(path`/v1/senders/${senderId}/agent/tools/${toolID}`, options);
64
+ }
65
+
66
+ /**
67
+ * Update a tool.
68
+ *
69
+ * @example
70
+ * ```ts
71
+ * const tool = await client.senders.agent.tools.update(
72
+ * 'toolId',
73
+ * { senderId: 'senderId' },
74
+ * );
75
+ * ```
76
+ */
77
+ update(toolID: string, params: ToolUpdateParams, options?: RequestOptions): APIPromise<ToolUpdateResponse> {
78
+ const { senderId, ...body } = params;
79
+ return this._client.patch(path`/v1/senders/${senderId}/agent/tools/${toolID}`, { body, ...options });
80
+ }
81
+
82
+ /**
83
+ * List tools for an agent.
84
+ *
85
+ * @example
86
+ * ```ts
87
+ * // Automatically fetches more pages as needed.
88
+ * for await (const agentTool of client.senders.agent.tools.list(
89
+ * 'senderId',
90
+ * )) {
91
+ * // ...
92
+ * }
93
+ * ```
94
+ */
95
+ list(
96
+ senderID: string,
97
+ query: ToolListParams | null | undefined = {},
98
+ options?: RequestOptions,
99
+ ): PagePromise<AgentToolsCursor, AgentTool> {
100
+ return this._client.getAPIList(path`/v1/senders/${senderID}/agent/tools`, Cursor<AgentTool>, {
101
+ query,
102
+ ...options,
103
+ });
104
+ }
105
+
106
+ /**
107
+ * Delete a tool.
108
+ *
109
+ * @example
110
+ * ```ts
111
+ * await client.senders.agent.tools.delete('toolId', {
112
+ * senderId: 'senderId',
113
+ * });
114
+ * ```
115
+ */
116
+ delete(toolID: string, params: ToolDeleteParams, options?: RequestOptions): APIPromise<void> {
117
+ const { senderId } = params;
118
+ return this._client.delete(path`/v1/senders/${senderId}/agent/tools/${toolID}`, {
119
+ ...options,
120
+ headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
121
+ });
122
+ }
123
+
124
+ /**
125
+ * Recent runs of this tool triggered from the test endpoint, newest first. Covers
126
+ * manual tests only: a tool called by an agent during a real conversation is not
127
+ * recorded here.
128
+ *
129
+ * @example
130
+ * ```ts
131
+ * const response =
132
+ * await client.senders.agent.tools.listTestRuns('toolId', {
133
+ * senderId: 'senderId',
134
+ * });
135
+ * ```
136
+ */
137
+ listTestRuns(
138
+ toolID: string,
139
+ params: ToolListTestRunsParams,
140
+ options?: RequestOptions,
141
+ ): APIPromise<ToolListTestRunsResponse> {
142
+ const { senderId, ...query } = params;
143
+ return this._client.get(path`/v1/senders/${senderId}/agent/tools/${toolID}/test-runs`, {
144
+ query,
145
+ ...options,
146
+ });
147
+ }
148
+
149
+ /**
150
+ * Run a tool with the parameters you supply and return what it answered.
151
+ *
152
+ * The call is synchronous: the response carries the tool's status, body, and
153
+ * duration, so a green result is evidence the tool ran rather than evidence it was
154
+ * accepted. Each run is also recorded and readable afterwards via
155
+ * `GET /v1/senders/{senderId}/agent/tools/{toolId}/test-runs`.
156
+ *
157
+ * A tool that answers with an error is reported as a run with `success: false` —
158
+ * the endpoint itself still returns 200. This fires the tool's real webhook, so a
159
+ * test has whatever side effects the tool has.
160
+ *
161
+ * @example
162
+ * ```ts
163
+ * const response = await client.senders.agent.tools.test(
164
+ * 'toolId',
165
+ * {
166
+ * senderId: 'senderId',
167
+ * testParams: { order_id: 'ORD-12345' },
168
+ * },
169
+ * );
170
+ * ```
171
+ */
172
+ test(toolID: string, params: ToolTestParams, options?: RequestOptions): APIPromise<ToolTestResponse> {
173
+ const { senderId, ...body } = params;
174
+ return this._client.post(path`/v1/senders/${senderId}/agent/tools/${toolID}/test`, { body, ...options });
175
+ }
176
+ }
177
+
178
+ export type AgentToolsCursor = Cursor<AgentTool>;
179
+
180
+ export interface AgentTool {
181
+ id: string;
182
+
183
+ agentId: string;
184
+
185
+ createdAt: string;
186
+
187
+ /**
188
+ * Description for the LLM to understand when to use this tool.
189
+ */
190
+ description: string;
191
+
192
+ enabled: boolean;
193
+
194
+ name: string;
195
+
196
+ parameters: ToolParameters;
197
+
198
+ updatedAt: string;
199
+
200
+ /**
201
+ * HTTPS URL to call when the tool is executed.
202
+ */
203
+ webhookUrl: string;
204
+
205
+ /**
206
+ * Signing secret for this tool's webhook. **Returned only when the tool is
207
+ * created**, never on a later read.
208
+ *
209
+ * Zavu generates one if you do not supply it, and signs every call to this tool
210
+ * with it: `X-Zavu-Signature: <hex>`, the HMAC-SHA256 of the request body. Verify
211
+ * it before trusting the call. Lost it? Rotate with
212
+ * `POST /v1/senders/{senderId}/agent/tools/{toolId}/webhook/secret`.
213
+ */
214
+ webhookSecret?: string;
215
+ }
216
+
217
+ export interface ToolParameters {
218
+ properties: { [key: string]: ToolParameters.Properties };
219
+
220
+ required: Array<string>;
221
+
222
+ type: 'object';
223
+ }
224
+
225
+ export namespace ToolParameters {
226
+ export interface Properties {
227
+ description?: string;
228
+
229
+ type?: string;
230
+ }
231
+ }
232
+
233
+ export interface ToolCreateResponse {
234
+ tool: AgentTool;
235
+ }
236
+
237
+ export interface ToolRetrieveResponse {
238
+ tool: AgentTool;
239
+ }
240
+
241
+ export interface ToolUpdateResponse {
242
+ tool: AgentTool;
243
+ }
244
+
245
+ export interface ToolListTestRunsResponse {
246
+ items: Array<ToolListTestRunsResponse.Item>;
247
+ }
248
+
249
+ export namespace ToolListTestRunsResponse {
250
+ /**
251
+ * One run of a tool triggered from the test endpoint. Recorded so a test is
252
+ * verifiable after the fact rather than only visible in the response.
253
+ */
254
+ export interface Item {
255
+ id: string;
256
+
257
+ createdAt: string;
258
+
259
+ durationMs: number;
260
+
261
+ /**
262
+ * Whether the tool returned without error. A tool that answered with a non-2xx
263
+ * status is a failed run, not an error of this endpoint.
264
+ */
265
+ success: boolean;
266
+
267
+ toolId: string;
268
+
269
+ /**
270
+ * Why the run failed, when it did.
271
+ */
272
+ error?: string | null;
273
+
274
+ /**
275
+ * The parameters the tool was called with.
276
+ */
277
+ params?: { [key: string]: unknown };
278
+
279
+ /**
280
+ * The tool's response body, truncated.
281
+ */
282
+ response?: string | null;
283
+
284
+ /**
285
+ * HTTP status the tool's webhook returned. Absent for tools that do not go over
286
+ * HTTP.
287
+ */
288
+ statusCode?: number | null;
289
+ }
290
+ }
291
+
292
+ export interface ToolTestResponse {
293
+ /**
294
+ * One run of a tool triggered from the test endpoint. Recorded so a test is
295
+ * verifiable after the fact rather than only visible in the response.
296
+ */
297
+ run: ToolTestResponse.Run;
298
+ }
299
+
300
+ export namespace ToolTestResponse {
301
+ /**
302
+ * One run of a tool triggered from the test endpoint. Recorded so a test is
303
+ * verifiable after the fact rather than only visible in the response.
304
+ */
305
+ export interface Run {
306
+ id: string;
307
+
308
+ createdAt: string;
309
+
310
+ durationMs: number;
311
+
312
+ /**
313
+ * Whether the tool returned without error. A tool that answered with a non-2xx
314
+ * status is a failed run, not an error of this endpoint.
315
+ */
316
+ success: boolean;
317
+
318
+ toolId: string;
319
+
320
+ /**
321
+ * Why the run failed, when it did.
322
+ */
323
+ error?: string | null;
324
+
325
+ /**
326
+ * The parameters the tool was called with.
327
+ */
328
+ params?: { [key: string]: unknown };
329
+
330
+ /**
331
+ * The tool's response body, truncated.
332
+ */
333
+ response?: string | null;
334
+
335
+ /**
336
+ * HTTP status the tool's webhook returned. Absent for tools that do not go over
337
+ * HTTP.
338
+ */
339
+ statusCode?: number | null;
340
+ }
341
+ }
342
+
343
+ export interface ToolCreateParams {
344
+ description: string;
345
+
346
+ name: string;
347
+
348
+ parameters: ToolParameters;
349
+
350
+ /**
351
+ * Must be HTTPS.
352
+ */
353
+ webhookUrl: string;
354
+
355
+ enabled?: boolean;
356
+
357
+ /**
358
+ * Signing secret for the webhook. Optional: Zavu generates one when omitted and
359
+ * returns it on this response only. Supply your own if you already have a secret
360
+ * you want reused.
361
+ */
362
+ webhookSecret?: string;
363
+ }
364
+
365
+ export interface ToolRetrieveParams {
366
+ senderId: string;
367
+ }
368
+
369
+ export interface ToolUpdateParams {
370
+ /**
371
+ * Path param
372
+ */
373
+ senderId: string;
374
+
375
+ /**
376
+ * Body param
377
+ */
378
+ description?: string;
379
+
380
+ /**
381
+ * Body param
382
+ */
383
+ enabled?: boolean;
384
+
385
+ /**
386
+ * Body param
387
+ */
388
+ name?: string;
389
+
390
+ /**
391
+ * Body param
392
+ */
393
+ parameters?: ToolParameters;
394
+
395
+ /**
396
+ * Body param
397
+ */
398
+ webhookSecret?: string | null;
399
+
400
+ /**
401
+ * Body param
402
+ */
403
+ webhookUrl?: string;
404
+ }
405
+
406
+ export interface ToolListParams extends CursorParams {
407
+ enabled?: boolean;
408
+ }
409
+
410
+ export interface ToolDeleteParams {
411
+ senderId: string;
412
+ }
413
+
414
+ export interface ToolListTestRunsParams {
415
+ /**
416
+ * Path param
417
+ */
418
+ senderId: string;
419
+
420
+ /**
421
+ * Query param
422
+ */
423
+ limit?: number;
424
+ }
425
+
426
+ export interface ToolTestParams {
427
+ /**
428
+ * Path param
429
+ */
430
+ senderId: string;
431
+
432
+ /**
433
+ * Body param: Parameters to pass to the tool for testing.
434
+ */
435
+ testParams: { [key: string]: unknown };
436
+ }
437
+
438
+ Tools.Webhook = Webhook;
439
+
440
+ export declare namespace Tools {
441
+ export {
442
+ type AgentTool as AgentTool,
443
+ type ToolParameters as ToolParameters,
444
+ type ToolCreateResponse as ToolCreateResponse,
445
+ type ToolRetrieveResponse as ToolRetrieveResponse,
446
+ type ToolUpdateResponse as ToolUpdateResponse,
447
+ type ToolListTestRunsResponse as ToolListTestRunsResponse,
448
+ type ToolTestResponse as ToolTestResponse,
449
+ type AgentToolsCursor as AgentToolsCursor,
450
+ type ToolCreateParams as ToolCreateParams,
451
+ type ToolRetrieveParams as ToolRetrieveParams,
452
+ type ToolUpdateParams as ToolUpdateParams,
453
+ type ToolListParams as ToolListParams,
454
+ type ToolDeleteParams as ToolDeleteParams,
455
+ type ToolListTestRunsParams as ToolListTestRunsParams,
456
+ type ToolTestParams as ToolTestParams,
457
+ };
458
+
459
+ export { Webhook as Webhook, type WebhookRotateSecretParams as WebhookRotateSecretParams };
460
+ }
@@ -0,0 +1,40 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../../../core/resource';
4
+ import * as SendersAPI from '../../senders';
5
+ import { APIPromise } from '../../../../core/api-promise';
6
+ import { RequestOptions } from '../../../../internal/request-options';
7
+ import { path } from '../../../../internal/utils/path';
8
+
9
+ export class Webhook extends APIResource {
10
+ /**
11
+ * Generate a new signing secret for this tool. The previous one stops working on
12
+ * the next call, with no overlap, so update your endpoint first. The tool keeps
13
+ * its id, so flows that reference it by name are unaffected.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const webhookSecretResponse =
18
+ * await client.senders.agent.tools.webhook.rotateSecret(
19
+ * 'toolId',
20
+ * { senderId: 'senderId' },
21
+ * );
22
+ * ```
23
+ */
24
+ rotateSecret(
25
+ toolID: string,
26
+ params: WebhookRotateSecretParams,
27
+ options?: RequestOptions,
28
+ ): APIPromise<SendersAPI.WebhookSecretResponse> {
29
+ const { senderId } = params;
30
+ return this._client.post(path`/v1/senders/${senderId}/agent/tools/${toolID}/webhook/secret`, options);
31
+ }
32
+ }
33
+
34
+ export interface WebhookRotateSecretParams {
35
+ senderId: string;
36
+ }
37
+
38
+ export declare namespace Webhook {
39
+ export { type WebhookRotateSecretParams as WebhookRotateSecretParams };
40
+ }