telnyx 7.22.0 → 7.23.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 (326) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/client.d.mts +34 -4
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +34 -4
  5. package/client.d.ts.map +1 -1
  6. package/client.js +30 -0
  7. package/client.js.map +1 -1
  8. package/client.mjs +30 -0
  9. package/client.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/resources/ai/ai.d.mts +6 -2
  12. package/resources/ai/ai.d.mts.map +1 -1
  13. package/resources/ai/ai.d.ts +6 -2
  14. package/resources/ai/ai.d.ts.map +1 -1
  15. package/resources/ai/ai.js +4 -0
  16. package/resources/ai/ai.js.map +1 -1
  17. package/resources/ai/ai.mjs +5 -1
  18. package/resources/ai/ai.mjs.map +1 -1
  19. package/resources/ai/assistants/assistants.d.mts +256 -46
  20. package/resources/ai/assistants/assistants.d.mts.map +1 -1
  21. package/resources/ai/assistants/assistants.d.ts +256 -46
  22. package/resources/ai/assistants/assistants.d.ts.map +1 -1
  23. package/resources/ai/assistants/assistants.js.map +1 -1
  24. package/resources/ai/assistants/assistants.mjs.map +1 -1
  25. package/resources/ai/assistants/versions.d.mts +34 -12
  26. package/resources/ai/assistants/versions.d.mts.map +1 -1
  27. package/resources/ai/assistants/versions.d.ts +34 -12
  28. package/resources/ai/assistants/versions.d.ts.map +1 -1
  29. package/resources/ai/audio.d.mts +78 -43
  30. package/resources/ai/audio.d.mts.map +1 -1
  31. package/resources/ai/audio.d.ts +78 -43
  32. package/resources/ai/audio.d.ts.map +1 -1
  33. package/resources/ai/audio.js.map +1 -1
  34. package/resources/ai/audio.mjs.map +1 -1
  35. package/resources/ai/chat.d.mts +2 -10
  36. package/resources/ai/chat.d.mts.map +1 -1
  37. package/resources/ai/chat.d.ts +2 -10
  38. package/resources/ai/chat.d.ts.map +1 -1
  39. package/resources/ai/chat.js.map +1 -1
  40. package/resources/ai/chat.mjs.map +1 -1
  41. package/resources/ai/index.d.mts +2 -1
  42. package/resources/ai/index.d.mts.map +1 -1
  43. package/resources/ai/index.d.ts +2 -1
  44. package/resources/ai/index.d.ts.map +1 -1
  45. package/resources/ai/index.js +3 -1
  46. package/resources/ai/index.js.map +1 -1
  47. package/resources/ai/index.mjs +2 -1
  48. package/resources/ai/index.mjs.map +1 -1
  49. package/resources/ai/openai/chat.d.mts +10 -11
  50. package/resources/ai/openai/chat.d.mts.map +1 -1
  51. package/resources/ai/openai/chat.d.ts +10 -11
  52. package/resources/ai/openai/chat.d.ts.map +1 -1
  53. package/resources/ai/openai/chat.js.map +1 -1
  54. package/resources/ai/openai/chat.mjs.map +1 -1
  55. package/resources/ai/openai/index.d.mts +1 -1
  56. package/resources/ai/openai/index.d.mts.map +1 -1
  57. package/resources/ai/openai/index.d.ts +1 -1
  58. package/resources/ai/openai/index.d.ts.map +1 -1
  59. package/resources/ai/openai/index.js.map +1 -1
  60. package/resources/ai/openai/index.mjs +1 -1
  61. package/resources/ai/openai/index.mjs.map +1 -1
  62. package/resources/ai/openai/openai.d.mts +2 -2
  63. package/resources/ai/openai/openai.d.mts.map +1 -1
  64. package/resources/ai/openai/openai.d.ts +2 -2
  65. package/resources/ai/openai/openai.d.ts.map +1 -1
  66. package/resources/ai/openai/openai.js.map +1 -1
  67. package/resources/ai/openai/openai.mjs.map +1 -1
  68. package/resources/ai/typesafe/index.d.mts +3 -0
  69. package/resources/ai/typesafe/index.d.mts.map +1 -0
  70. package/resources/ai/typesafe/index.d.ts +3 -0
  71. package/resources/ai/typesafe/index.d.ts.map +1 -0
  72. package/resources/ai/typesafe/index.js +9 -0
  73. package/resources/ai/typesafe/index.js.map +1 -0
  74. package/resources/ai/typesafe/index.mjs +4 -0
  75. package/resources/ai/typesafe/index.mjs.map +1 -0
  76. package/resources/ai/typesafe/typesafe.d.mts +10 -0
  77. package/resources/ai/typesafe/typesafe.d.mts.map +1 -0
  78. package/resources/ai/typesafe/typesafe.d.ts +10 -0
  79. package/resources/ai/typesafe/typesafe.d.ts.map +1 -0
  80. package/resources/ai/typesafe/typesafe.js +17 -0
  81. package/resources/ai/typesafe/typesafe.js.map +1 -0
  82. package/resources/ai/typesafe/typesafe.mjs +12 -0
  83. package/resources/ai/typesafe/typesafe.mjs.map +1 -0
  84. package/resources/ai/typesafe/v1.d.mts +274 -0
  85. package/resources/ai/typesafe/v1.d.mts.map +1 -0
  86. package/resources/ai/typesafe/v1.d.ts +274 -0
  87. package/resources/ai/typesafe/v1.d.ts.map +1 -0
  88. package/resources/ai/typesafe/v1.js +67 -0
  89. package/resources/ai/typesafe/v1.js.map +1 -0
  90. package/resources/ai/typesafe/v1.mjs +63 -0
  91. package/resources/ai/typesafe/v1.mjs.map +1 -0
  92. package/resources/ai/typesafe.d.mts +2 -0
  93. package/resources/ai/typesafe.d.mts.map +1 -0
  94. package/resources/ai/typesafe.d.ts +2 -0
  95. package/resources/ai/typesafe.d.ts.map +1 -0
  96. package/resources/ai/typesafe.js +6 -0
  97. package/resources/ai/typesafe.js.map +1 -0
  98. package/resources/ai/typesafe.mjs +3 -0
  99. package/resources/ai/typesafe.mjs.map +1 -0
  100. package/resources/bot-challenge.d.mts +80 -0
  101. package/resources/bot-challenge.d.mts.map +1 -0
  102. package/resources/bot-challenge.d.ts +80 -0
  103. package/resources/bot-challenge.d.ts.map +1 -0
  104. package/resources/bot-challenge.js +35 -0
  105. package/resources/bot-challenge.js.map +1 -0
  106. package/resources/bot-challenge.mjs +31 -0
  107. package/resources/bot-challenge.mjs.map +1 -0
  108. package/resources/bot-sessions.d.mts +49 -0
  109. package/resources/bot-sessions.d.mts.map +1 -0
  110. package/resources/bot-sessions.d.ts +49 -0
  111. package/resources/bot-sessions.d.ts.map +1 -0
  112. package/resources/bot-sessions.js +28 -0
  113. package/resources/bot-sessions.js.map +1 -0
  114. package/resources/bot-sessions.mjs +24 -0
  115. package/resources/bot-sessions.mjs.map +1 -0
  116. package/resources/bot-signup.d.mts +114 -0
  117. package/resources/bot-signup.d.mts.map +1 -0
  118. package/resources/bot-signup.d.ts +114 -0
  119. package/resources/bot-signup.d.ts.map +1 -0
  120. package/resources/bot-signup.js +63 -0
  121. package/resources/bot-signup.js.map +1 -0
  122. package/resources/bot-signup.mjs +59 -0
  123. package/resources/bot-signup.mjs.map +1 -0
  124. package/resources/calls/actions.d.mts +57 -11
  125. package/resources/calls/actions.d.mts.map +1 -1
  126. package/resources/calls/actions.d.ts +57 -11
  127. package/resources/calls/actions.d.ts.map +1 -1
  128. package/resources/calls/calls.d.mts +45 -5
  129. package/resources/calls/calls.d.mts.map +1 -1
  130. package/resources/calls/calls.d.ts +45 -5
  131. package/resources/calls/calls.d.ts.map +1 -1
  132. package/resources/calls/calls.js.map +1 -1
  133. package/resources/calls/calls.mjs.map +1 -1
  134. package/resources/compute/compute.d.mts +2 -2
  135. package/resources/compute/compute.d.mts.map +1 -1
  136. package/resources/compute/compute.d.ts +2 -2
  137. package/resources/compute/compute.d.ts.map +1 -1
  138. package/resources/compute/compute.js +2 -2
  139. package/resources/compute/compute.js.map +1 -1
  140. package/resources/compute/compute.mjs +2 -2
  141. package/resources/compute/compute.mjs.map +1 -1
  142. package/resources/compute/funcs/export.d.mts +121 -0
  143. package/resources/compute/funcs/export.d.mts.map +1 -0
  144. package/resources/compute/funcs/export.d.ts +121 -0
  145. package/resources/compute/funcs/export.d.ts.map +1 -0
  146. package/resources/compute/funcs/export.js +68 -0
  147. package/resources/compute/funcs/export.js.map +1 -0
  148. package/resources/compute/funcs/export.mjs +64 -0
  149. package/resources/compute/funcs/export.mjs.map +1 -0
  150. package/resources/compute/funcs/funcs.d.mts +214 -0
  151. package/resources/compute/funcs/funcs.d.mts.map +1 -0
  152. package/resources/compute/funcs/funcs.d.ts +214 -0
  153. package/resources/compute/funcs/funcs.d.ts.map +1 -0
  154. package/resources/compute/funcs/funcs.js +80 -0
  155. package/resources/compute/funcs/funcs.js.map +1 -0
  156. package/resources/compute/funcs/funcs.mjs +75 -0
  157. package/resources/compute/funcs/funcs.mjs.map +1 -0
  158. package/resources/compute/funcs/index.d.mts +3 -0
  159. package/resources/compute/funcs/index.d.mts.map +1 -0
  160. package/resources/compute/funcs/index.d.ts +3 -0
  161. package/resources/compute/funcs/index.d.ts.map +1 -0
  162. package/resources/compute/funcs/index.js +9 -0
  163. package/resources/compute/funcs/index.js.map +1 -0
  164. package/resources/compute/funcs/index.mjs +4 -0
  165. package/resources/compute/funcs/index.mjs.map +1 -0
  166. package/resources/compute/funcs.d.mts +1 -178
  167. package/resources/compute/funcs.d.mts.map +1 -1
  168. package/resources/compute/funcs.d.ts +1 -178
  169. package/resources/compute/funcs.d.ts.map +1 -1
  170. package/resources/compute/funcs.js +2 -37
  171. package/resources/compute/funcs.js.map +1 -1
  172. package/resources/compute/funcs.mjs +1 -35
  173. package/resources/compute/funcs.mjs.map +1 -1
  174. package/resources/compute/index.d.mts +1 -1
  175. package/resources/compute/index.d.mts.map +1 -1
  176. package/resources/compute/index.d.ts +1 -1
  177. package/resources/compute/index.d.ts.map +1 -1
  178. package/resources/compute/index.js +2 -2
  179. package/resources/compute/index.js.map +1 -1
  180. package/resources/compute/index.mjs +1 -1
  181. package/resources/compute/index.mjs.map +1 -1
  182. package/resources/connections.d.mts +109 -1
  183. package/resources/connections.d.mts.map +1 -1
  184. package/resources/connections.d.ts +109 -1
  185. package/resources/connections.d.ts.map +1 -1
  186. package/resources/connections.js +8 -0
  187. package/resources/connections.js.map +1 -1
  188. package/resources/connections.mjs +8 -0
  189. package/resources/connections.mjs.map +1 -1
  190. package/resources/detail-records.d.mts +18 -1
  191. package/resources/detail-records.d.mts.map +1 -1
  192. package/resources/detail-records.d.ts +18 -1
  193. package/resources/detail-records.d.ts.map +1 -1
  194. package/resources/email-messages/email-messages.d.mts +5 -3
  195. package/resources/email-messages/email-messages.d.mts.map +1 -1
  196. package/resources/email-messages/email-messages.d.ts +5 -3
  197. package/resources/email-messages/email-messages.d.ts.map +1 -1
  198. package/resources/email-messages/email-messages.js +5 -3
  199. package/resources/email-messages/email-messages.js.map +1 -1
  200. package/resources/email-messages/email-messages.mjs +5 -3
  201. package/resources/email-messages/email-messages.mjs.map +1 -1
  202. package/resources/index.d.mts +7 -2
  203. package/resources/index.d.mts.map +1 -1
  204. package/resources/index.d.ts +7 -2
  205. package/resources/index.d.ts.map +1 -1
  206. package/resources/index.js +14 -4
  207. package/resources/index.js.map +1 -1
  208. package/resources/index.mjs +5 -0
  209. package/resources/index.mjs.map +1 -1
  210. package/resources/machine-payments.d.mts +142 -0
  211. package/resources/machine-payments.d.mts.map +1 -0
  212. package/resources/machine-payments.d.ts +142 -0
  213. package/resources/machine-payments.d.ts.map +1 -0
  214. package/resources/machine-payments.js +56 -0
  215. package/resources/machine-payments.js.map +1 -0
  216. package/resources/machine-payments.mjs +52 -0
  217. package/resources/machine-payments.mjs.map +1 -0
  218. package/resources/messages/messages.d.mts +135 -23
  219. package/resources/messages/messages.d.mts.map +1 -1
  220. package/resources/messages/messages.d.ts +135 -23
  221. package/resources/messages/messages.d.ts.map +1 -1
  222. package/resources/messages/messages.js.map +1 -1
  223. package/resources/messages/messages.mjs.map +1 -1
  224. package/resources/noise-suppression-engines.d.mts +42 -0
  225. package/resources/noise-suppression-engines.d.mts.map +1 -0
  226. package/resources/noise-suppression-engines.d.ts +42 -0
  227. package/resources/noise-suppression-engines.d.ts.map +1 -0
  228. package/resources/noise-suppression-engines.js +21 -0
  229. package/resources/noise-suppression-engines.js.map +1 -0
  230. package/resources/noise-suppression-engines.mjs +17 -0
  231. package/resources/noise-suppression-engines.mjs.map +1 -0
  232. package/resources/speech-to-text/speech-to-text.d.mts +1 -1
  233. package/resources/speech-to-text/speech-to-text.d.mts.map +1 -1
  234. package/resources/speech-to-text/speech-to-text.d.ts +1 -1
  235. package/resources/speech-to-text/speech-to-text.d.ts.map +1 -1
  236. package/resources/texml/accounts/calls/calls.d.mts +117 -0
  237. package/resources/texml/accounts/calls/calls.d.mts.map +1 -1
  238. package/resources/texml/accounts/calls/calls.d.ts +117 -0
  239. package/resources/texml/accounts/calls/calls.d.ts.map +1 -1
  240. package/resources/texml/accounts/calls/calls.js.map +1 -1
  241. package/resources/texml/accounts/calls/calls.mjs.map +1 -1
  242. package/resources/texml/accounts/conferences/participants.d.mts +39 -0
  243. package/resources/texml/accounts/conferences/participants.d.mts.map +1 -1
  244. package/resources/texml/accounts/conferences/participants.d.ts +39 -0
  245. package/resources/texml/accounts/conferences/participants.d.ts.map +1 -1
  246. package/resources/texml/calls.d.mts +71 -0
  247. package/resources/texml/calls.d.mts.map +1 -0
  248. package/resources/texml/calls.d.ts +71 -0
  249. package/resources/texml/calls.d.ts.map +1 -0
  250. package/resources/texml/calls.js +33 -0
  251. package/resources/texml/calls.js.map +1 -0
  252. package/resources/texml/calls.mjs +29 -0
  253. package/resources/texml/calls.mjs.map +1 -0
  254. package/resources/texml/index.d.mts +1 -0
  255. package/resources/texml/index.d.mts.map +1 -1
  256. package/resources/texml/index.d.ts +1 -0
  257. package/resources/texml/index.d.ts.map +1 -1
  258. package/resources/texml/index.js +3 -1
  259. package/resources/texml/index.js.map +1 -1
  260. package/resources/texml/index.mjs +1 -0
  261. package/resources/texml/index.mjs.map +1 -1
  262. package/resources/texml/texml.d.mts +43 -0
  263. package/resources/texml/texml.d.mts.map +1 -1
  264. package/resources/texml/texml.d.ts +43 -0
  265. package/resources/texml/texml.d.ts.map +1 -1
  266. package/resources/texml/texml.js +4 -0
  267. package/resources/texml/texml.js.map +1 -1
  268. package/resources/texml/texml.mjs +4 -0
  269. package/resources/texml/texml.mjs.map +1 -1
  270. package/resources/voice-clones.d.mts +6 -4
  271. package/resources/voice-clones.d.mts.map +1 -1
  272. package/resources/voice-clones.d.ts +6 -4
  273. package/resources/voice-clones.d.ts.map +1 -1
  274. package/resources/voice-clones.js +4 -2
  275. package/resources/voice-clones.js.map +1 -1
  276. package/resources/voice-clones.mjs +4 -2
  277. package/resources/voice-clones.mjs.map +1 -1
  278. package/resources/webhooks.d.mts +26 -49
  279. package/resources/webhooks.d.mts.map +1 -1
  280. package/resources/webhooks.d.ts +26 -49
  281. package/resources/webhooks.d.ts.map +1 -1
  282. package/src/client.ts +80 -0
  283. package/src/resources/ai/ai.ts +13 -1
  284. package/src/resources/ai/assistants/assistants.ts +281 -45
  285. package/src/resources/ai/assistants/versions.ts +34 -12
  286. package/src/resources/ai/audio.ts +93 -45
  287. package/src/resources/ai/chat.ts +2 -11
  288. package/src/resources/ai/index.ts +7 -1
  289. package/src/resources/ai/openai/chat.ts +11 -11
  290. package/src/resources/ai/openai/index.ts +6 -1
  291. package/src/resources/ai/openai/openai.ts +2 -1
  292. package/src/resources/ai/typesafe/index.ts +4 -0
  293. package/src/resources/ai/typesafe/typesafe.ts +19 -0
  294. package/src/resources/ai/typesafe/v1.ts +298 -0
  295. package/src/resources/ai/typesafe.ts +3 -0
  296. package/src/resources/bot-challenge.ts +101 -0
  297. package/src/resources/bot-sessions.ts +61 -0
  298. package/src/resources/bot-signup.ts +140 -0
  299. package/src/resources/calls/actions.ts +65 -10
  300. package/src/resources/calls/calls.ts +52 -5
  301. package/src/resources/compute/compute.ts +2 -2
  302. package/src/resources/compute/funcs/export.ts +156 -0
  303. package/src/resources/compute/funcs/funcs.ts +341 -0
  304. package/src/resources/compute/funcs/index.ts +15 -0
  305. package/src/resources/compute/funcs.ts +1 -296
  306. package/src/resources/compute/index.ts +1 -1
  307. package/src/resources/connections.ts +133 -0
  308. package/src/resources/detail-records.ts +18 -1
  309. package/src/resources/email-messages/email-messages.ts +5 -3
  310. package/src/resources/index.ts +23 -0
  311. package/src/resources/machine-payments.ts +169 -0
  312. package/src/resources/messages/messages.ts +168 -23
  313. package/src/resources/noise-suppression-engines.ts +51 -0
  314. package/src/resources/speech-to-text/speech-to-text.ts +1 -0
  315. package/src/resources/texml/accounts/calls/calls.ts +138 -0
  316. package/src/resources/texml/accounts/conferences/participants.ts +46 -0
  317. package/src/resources/texml/calls.ts +90 -0
  318. package/src/resources/texml/index.ts +1 -0
  319. package/src/resources/texml/texml.ts +56 -0
  320. package/src/resources/voice-clones.ts +6 -4
  321. package/src/resources/webhooks.ts +31 -58
  322. package/src/version.ts +1 -1
  323. package/version.d.mts +1 -1
  324. package/version.d.ts +1 -1
  325. package/version.js +1 -1
  326. package/version.mjs +1 -1
@@ -15,6 +15,7 @@ import * as AssistantsToolsAPI from "./tools.js";
15
15
  import { ToolAddParams, ToolAddResponse, ToolRemoveParams, ToolRemoveResponse, ToolTestParams, ToolTestResponse, Tools } from "./tools.js";
16
16
  import * as VersionsAPI from "./versions.js";
17
17
  import { UpdateAssistant, VersionDeleteParams, VersionPromoteParams, VersionRetrieveParams, VersionUpdateParams, Versions } from "./versions.js";
18
+ import * as OpenAIChatAPI from "../openai/chat.js";
18
19
  import * as TestsAPI from "./tests/tests.js";
19
20
  import { AssistantTest, AssistantTestsDefaultFlatPagination, TelnyxConversationChannel, TestCreateParams, TestListParams, TestUpdateParams, Tests } from "./tests/tests.js";
20
21
  import { APIPromise } from "../../../core/api-promise.js";
@@ -371,11 +372,35 @@ export interface AssistantMcpServer {
371
372
  * another AI assistant. By default, this will happen transparently to the end
372
373
  * user.
373
374
  */
374
- export type AssistantTool = InferenceEmbeddingWebhookToolParams | AssistantTool.ClientSideTool | RetrievalTool | AssistantTool.Handoff | HangupTool | AssistantTool.Transfer | AssistantTool.Invite | AssistantTool.Refer | AssistantTool.SendDtmf | AssistantTool.SendMessage | AssistantTool.SkipTurn | AssistantTool.Pay | AssistantTool.UpdateDynamicVariables;
375
+ export type AssistantTool = AssistantTool.Function | InferenceEmbeddingWebhookToolParams | AssistantTool.ClientSideTool | RetrievalTool | AssistantTool.Handoff | AssistantTool.Hangup | AssistantTool.Transfer | AssistantTool.Invite | AssistantTool.Refer | AssistantTool.SendDtmf | AssistantTool.SendMessage | AssistantTool.SkipTurn | AssistantTool.Pay | AssistantTool.UpdateDynamicVariables;
375
376
  export declare namespace AssistantTool {
377
+ interface Function {
378
+ function: OpenAIChatAPI.FunctionDefinition;
379
+ type: 'function';
380
+ /**
381
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
382
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
383
+ * Read-only: set by the server, not accepted in requests. When updating an
384
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
385
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
386
+ * duplicate (rejected with error code 10015 when the type allows only one instance
387
+ * per assistant).
388
+ */
389
+ shared?: boolean;
390
+ }
376
391
  interface ClientSideTool {
377
392
  client_side_tool: ClientSideTool.ClientSideTool;
378
393
  type: 'client_side_tool';
394
+ /**
395
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
396
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
397
+ * Read-only: set by the server, not accepted in requests. When updating an
398
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
399
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
400
+ * duplicate (rejected with error code 10015 when the type allows only one instance
401
+ * per assistant).
402
+ */
403
+ shared?: boolean;
379
404
  }
380
405
  namespace ClientSideTool {
381
406
  interface ClientSideTool {
@@ -423,6 +448,16 @@ export declare namespace AssistantTool {
423
448
  interface Handoff {
424
449
  handoff: Handoff.Handoff;
425
450
  type: 'handoff';
451
+ /**
452
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
453
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
454
+ * Read-only: set by the server, not accepted in requests. When updating an
455
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
456
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
457
+ * duplicate (rejected with error code 10015 when the type allows only one instance
458
+ * per assistant).
459
+ */
460
+ shared?: boolean;
426
461
  }
427
462
  namespace Handoff {
428
463
  interface Handoff {
@@ -451,9 +486,33 @@ export declare namespace AssistantTool {
451
486
  }
452
487
  }
453
488
  }
489
+ interface Hangup {
490
+ hangup: AssistantsAPI.HangupToolParams;
491
+ type: 'hangup';
492
+ /**
493
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
494
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
495
+ * Read-only: set by the server, not accepted in requests. When updating an
496
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
497
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
498
+ * duplicate (rejected with error code 10015 when the type allows only one instance
499
+ * per assistant).
500
+ */
501
+ shared?: boolean;
502
+ }
454
503
  interface Transfer {
455
504
  transfer: Transfer.Transfer;
456
505
  type: 'transfer';
506
+ /**
507
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
508
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
509
+ * Read-only: set by the server, not accepted in requests. When updating an
510
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
511
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
512
+ * duplicate (rejected with error code 10015 when the type allows only one instance
513
+ * per assistant).
514
+ */
515
+ shared?: boolean;
457
516
  }
458
517
  namespace Transfer {
459
518
  interface Transfer {
@@ -688,6 +747,16 @@ export declare namespace AssistantTool {
688
747
  interface Invite {
689
748
  invite: Invite.Invite;
690
749
  type: 'invite';
750
+ /**
751
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
752
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
753
+ * Read-only: set by the server, not accepted in requests. When updating an
754
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
755
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
756
+ * duplicate (rejected with error code 10015 when the type allows only one instance
757
+ * per assistant).
758
+ */
759
+ shared?: boolean;
691
760
  }
692
761
  namespace Invite {
693
762
  interface Invite {
@@ -766,6 +835,16 @@ export declare namespace AssistantTool {
766
835
  interface Refer {
767
836
  refer: Refer.Refer;
768
837
  type: 'refer';
838
+ /**
839
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
840
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
841
+ * Read-only: set by the server, not accepted in requests. When updating an
842
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
843
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
844
+ * duplicate (rejected with error code 10015 when the type allows only one instance
845
+ * per assistant).
846
+ */
847
+ shared?: boolean;
769
848
  }
770
849
  namespace Refer {
771
850
  interface Refer {
@@ -830,6 +909,16 @@ export declare namespace AssistantTool {
830
909
  [key: string]: unknown;
831
910
  };
832
911
  type: 'send_dtmf';
912
+ /**
913
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
914
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
915
+ * Read-only: set by the server, not accepted in requests. When updating an
916
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
917
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
918
+ * duplicate (rejected with error code 10015 when the type allows only one instance
919
+ * per assistant).
920
+ */
921
+ shared?: boolean;
833
922
  }
834
923
  /**
835
924
  * The send_message tool allows the assistant to send SMS or MMS messages to the
@@ -840,6 +929,16 @@ export declare namespace AssistantTool {
840
929
  interface SendMessage {
841
930
  send_message: SendMessage.SendMessage;
842
931
  type: 'send_message';
932
+ /**
933
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
934
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
935
+ * Read-only: set by the server, not accepted in requests. When updating an
936
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
937
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
938
+ * duplicate (rejected with error code 10015 when the type allows only one instance
939
+ * per assistant).
940
+ */
941
+ shared?: boolean;
843
942
  }
844
943
  namespace SendMessage {
845
944
  interface SendMessage {
@@ -857,6 +956,16 @@ export declare namespace AssistantTool {
857
956
  interface SkipTurn {
858
957
  skip_turn: SkipTurn.SkipTurn;
859
958
  type: 'skip_turn';
959
+ /**
960
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
961
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
962
+ * Read-only: set by the server, not accepted in requests. When updating an
963
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
964
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
965
+ * duplicate (rejected with error code 10015 when the type allows only one instance
966
+ * per assistant).
967
+ */
968
+ shared?: boolean;
860
969
  }
861
970
  namespace SkipTurn {
862
971
  interface SkipTurn {
@@ -875,6 +984,16 @@ export declare namespace AssistantTool {
875
984
  interface Pay {
876
985
  pay: ToolsAPI.PayToolParams;
877
986
  type: 'pay';
987
+ /**
988
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
989
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
990
+ * Read-only: set by the server, not accepted in requests. When updating an
991
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
992
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
993
+ * duplicate (rejected with error code 10015 when the type allows only one instance
994
+ * per assistant).
995
+ */
996
+ shared?: boolean;
878
997
  }
879
998
  /**
880
999
  * The update_dynamic_variables tool lets the assistant write values into the
@@ -889,6 +1008,16 @@ export declare namespace AssistantTool {
889
1008
  * Configuration for an update_dynamic_variables tool.
890
1009
  */
891
1010
  update_dynamic_variables: ToolsAPI.UpdateDynamicVariablesToolParams;
1011
+ /**
1012
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
1013
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
1014
+ * Read-only: set by the server, not accepted in requests. When updating an
1015
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
1016
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
1017
+ * duplicate (rejected with error code 10015 when the type allows only one instance
1018
+ * per assistant).
1019
+ */
1020
+ shared?: boolean;
892
1021
  }
893
1022
  }
894
1023
  export interface AssistantsList {
@@ -1552,10 +1681,10 @@ export interface InferenceEmbedding {
1552
1681
  /**
1553
1682
  * Configuration for post-conversation processing. When enabled, the assistant
1554
1683
  * receives one additional LLM turn after the conversation ends, allowing it to
1555
- * execute tool calls such as logging to a CRM or sending a summary. The assistant
1556
- * can execute multiple parallel or sequential tools during this phase.
1557
- * Telephony-control tools (e.g. hangup, transfer) are unavailable
1558
- * post-conversation. Beta feature.
1684
+ * execute final tool calls such as sending a summary or updating a record via
1685
+ * webhook or function tools. Integration and MCP server tools are not available
1686
+ * post-conversation; call-control tools (e.g. hangup, transfer) are also
1687
+ * unavailable. Beta feature.
1559
1688
  */
1560
1689
  post_conversation_settings?: PostConversationSettings;
1561
1690
  privacy_settings?: PrivacySettings;
@@ -1570,9 +1699,12 @@ export interface InferenceEmbedding {
1570
1699
  tags?: Array<string>;
1571
1700
  telephony_settings?: TelephonySettings;
1572
1701
  /**
1573
- * Deprecated for new integrations. Inline tool definitions available to the
1574
- * assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools
1575
- * endpoints.
1702
+ * The assistant's tools. Responses merge the assistant's shared Tools Library
1703
+ * tools into this array alongside inline tools, each flagged `shared: true`;
1704
+ * inline tools carry `shared: false`. On update, a sent `tools` array fully
1705
+ * replaces the inline tools only — shared tools stay attached unless `tool_ids`
1706
+ * changes. Each tool type except `function`, `webhook`, and `client_side_tool`
1707
+ * allows at most one instance per assistant across both sources.
1576
1708
  */
1577
1709
  tools?: Array<AssistantTool>;
1578
1710
  transcription?: TranscriptionSettings;
@@ -1612,6 +1744,11 @@ export interface InferenceEmbeddingInterruptionSettings {
1612
1744
  * Whether users can interrupt the assistant while it is speaking.
1613
1745
  */
1614
1746
  enable?: boolean;
1747
+ /**
1748
+ * Interrupt-prediction sensitivity, from 0.0 to 1.0. Set to null or 0.0 to disable
1749
+ * interrupt prediction.
1750
+ */
1751
+ interrupt_prediction_threshold?: number | null;
1615
1752
  /**
1616
1753
  * Controls when the assistant starts speaking after the user stops. These
1617
1754
  * thresholds primarily apply to non turn-taking transcription models. For
@@ -1623,6 +1760,16 @@ export interface InferenceEmbeddingInterruptionSettings {
1623
1760
  export interface InferenceEmbeddingWebhookToolParams {
1624
1761
  type: 'webhook';
1625
1762
  webhook: InferenceEmbeddingWebhookToolParams.Webhook;
1763
+ /**
1764
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
1765
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
1766
+ * Read-only: set by the server, not accepted in requests. When updating an
1767
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
1768
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
1769
+ * duplicate (rejected with error code 10015 when the type allows only one instance
1770
+ * per assistant).
1771
+ */
1772
+ shared?: boolean;
1626
1773
  }
1627
1774
  export declare namespace InferenceEmbeddingWebhookToolParams {
1628
1775
  interface Webhook {
@@ -1921,10 +2068,10 @@ export type ObservabilityStatus = 'enabled' | 'disabled';
1921
2068
  /**
1922
2069
  * Configuration for post-conversation processing. When enabled, the assistant
1923
2070
  * receives one additional LLM turn after the conversation ends, allowing it to
1924
- * execute tool calls such as logging to a CRM or sending a summary. The assistant
1925
- * can execute multiple parallel or sequential tools during this phase.
1926
- * Telephony-control tools (e.g. hangup, transfer) are unavailable
1927
- * post-conversation. Beta feature.
2071
+ * execute final tool calls such as sending a summary or updating a record via
2072
+ * webhook or function tools. Integration and MCP server tools are not available
2073
+ * post-conversation; call-control tools (e.g. hangup, transfer) are also
2074
+ * unavailable. Beta feature.
1928
2075
  */
1929
2076
  export interface PostConversationSettings {
1930
2077
  /**
@@ -1937,10 +2084,10 @@ export interface PostConversationSettings {
1937
2084
  /**
1938
2085
  * Configuration for post-conversation processing. When enabled, the assistant
1939
2086
  * receives one additional LLM turn after the conversation ends, allowing it to
1940
- * execute tool calls such as logging to a CRM or sending a summary. The assistant
1941
- * can execute multiple parallel or sequential tools during this phase.
1942
- * Telephony-control tools (e.g. hangup, transfer) are unavailable
1943
- * post-conversation. Beta feature.
2087
+ * execute final tool calls such as sending a summary or updating a record via
2088
+ * webhook or function tools. Integration and MCP server tools are not available
2089
+ * post-conversation; call-control tools (e.g. hangup, transfer) are also
2090
+ * unavailable. Beta feature.
1944
2091
  */
1945
2092
  export interface PostConversationSettingsReq {
1946
2093
  /**
@@ -1960,6 +2107,21 @@ export interface PrivacySettings {
1960
2107
  * force regardless of your selection here.
1961
2108
  */
1962
2109
  data_retention?: boolean;
2110
+ /**
2111
+ * Requires every model call made for a web chat turn to be received and served
2112
+ * inside your organization's data-locality region, rather than only stored there.
2113
+ * Applies to web chat only — voice and messaging assistants are unaffected.
2114
+ * Enabling it requires a data-locality region with in-region inference (USA, EU,
2115
+ * AUS, UAE; see
2116
+ * [Inference regions](https://developers.telnyx.com/docs/inference/models/regions))
2117
+ * and Telnyx-hosted models for the assistant, its fallback, and any
2118
+ * conversation-flow node that overrides the model; the request is rejected
2119
+ * otherwise. Once enabled, send chat requests to your region's API hostname: a
2120
+ * request entering the platform in another region is rejected rather than
2121
+ * forwarded, because forwarding it would already have moved the content across the
2122
+ * border. Defaults to false.
2123
+ */
2124
+ in_transit_data_locality?: boolean;
1963
2125
  }
1964
2126
  /**
1965
2127
  * Whether to auto-publish the assistant's instructions as a Langfuse prompt.
@@ -1972,6 +2134,16 @@ export type PromptSyncStatus = 'enabled' | 'disabled';
1972
2134
  export interface RetrievalTool {
1973
2135
  retrieval: ChatAPI.BucketIDs;
1974
2136
  type: 'retrieval';
2137
+ /**
2138
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
2139
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
2140
+ * Read-only: set by the server, not accepted in requests. When updating an
2141
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
2142
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
2143
+ * duplicate (rejected with error code 10015 when the type allows only one instance
2144
+ * per assistant).
2145
+ */
2146
+ shared?: boolean;
1975
2147
  }
1976
2148
  /**
1977
2149
  * A standalone scripted-message step in a flow, as returned by the API.
@@ -2084,13 +2256,16 @@ export interface TelephonySettings {
2084
2256
  */
2085
2257
  fallback_destination?: string;
2086
2258
  /**
2087
- * The noise suppression engine to use. Use 'disabled' to turn off noise
2088
- * suppression.
2259
+ * The noise suppression engine to use. 'aicoustics' is STT-optimized and
2260
+ * recommended for AI assistants (configure through noise_suppression_config). Use
2261
+ * 'disabled' to turn off noise suppression.
2089
2262
  */
2090
- noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled';
2263
+ noise_suppression?: 'aicoustics' | 'krisp' | 'deepfilternet' | 'disabled';
2091
2264
  /**
2092
- * Configuration for noise suppression. Only applicable when noise_suppression is
2093
- * 'deepfilternet'.
2265
+ * Configuration for noise suppression. Applicable fields depend on the engine:
2266
+ * 'attenuation_limit' and 'mode' only when noise_suppression is 'deepfilternet';
2267
+ * 'family', 'size' and 'enhancement_level' only when noise_suppression is
2268
+ * 'aicoustics'.
2094
2269
  */
2095
2270
  noise_suppression_config?: TelephonySettings.NoiseSuppressionConfig;
2096
2271
  /**
@@ -2146,18 +2321,38 @@ export interface TelephonySettings {
2146
2321
  }
2147
2322
  export declare namespace TelephonySettings {
2148
2323
  /**
2149
- * Configuration for noise suppression. Only applicable when noise_suppression is
2150
- * 'deepfilternet'.
2324
+ * Configuration for noise suppression. Applicable fields depend on the engine:
2325
+ * 'attenuation_limit' and 'mode' only when noise_suppression is 'deepfilternet';
2326
+ * 'family', 'size' and 'enhancement_level' only when noise_suppression is
2327
+ * 'aicoustics'.
2151
2328
  */
2152
2329
  interface NoiseSuppressionConfig {
2153
2330
  /**
2154
- * Attenuation limit for noise suppression. Range: 0-100.
2331
+ * Attenuation limit for noise suppression. Range: 0-100. Only applicable when
2332
+ * noise_suppression is 'deepfilternet'.
2155
2333
  */
2156
2334
  attenuation_limit?: number;
2157
2335
  /**
2158
- * Mode for noise suppression configuration.
2336
+ * AiCoustics enhancement intensity. Range: 0-1. Only applicable when
2337
+ * noise_suppression is 'aicoustics'.
2338
+ */
2339
+ enhancement_level?: number;
2340
+ /**
2341
+ * AiCoustics model family optimized for Voice AI and STT. Only applicable when
2342
+ * noise_suppression is 'aicoustics'.
2343
+ */
2344
+ family?: 'quail';
2345
+ /**
2346
+ * Mode for noise suppression configuration. Only applicable when noise_suppression
2347
+ * is 'deepfilternet'.
2159
2348
  */
2160
2349
  mode?: 'advanced';
2350
+ /**
2351
+ * AiCoustics model size. 'vf' tracks the latest model release; 'vf_2_0_l' is
2352
+ * pinned to version 2.0 for consistent, predictable behavior. Only applicable when
2353
+ * noise_suppression is 'aicoustics'.
2354
+ */
2355
+ size?: 'vf' | 'vf_2_0_l';
2161
2356
  }
2162
2357
  /**
2163
2358
  * Configuration for call recording format and channel settings.
@@ -2366,21 +2561,24 @@ export interface TranscriptionSettings {
2366
2561
  * - `deepgram/nova-3` is multilingual with automatic language detection.
2367
2562
  * - `deepgram/nova-2` is Deepgram's previous-generation multilingual model.
2368
2563
  * - `azure/fast` is a multilingual Azure transcription model.
2369
- * - `assemblyai/universal-streaming` is a multilingual streaming model with
2370
- * configurable turn detection.
2564
+ * - `assemblyai/universal-3-5-pro` is a multilingual streaming model with
2565
+ * configurable turn detection. The legacy alias `assemblyai/universal-streaming`
2566
+ * is still accepted and resolves to the same model.
2371
2567
  * - `xai/grok-stt` is a multilingual Grok STT model.
2372
2568
  * - `soniox/stt-rt-v4` and `soniox/stt-rt-v5` are multilingual streaming models
2373
2569
  * with automatic language detection, configurable endpointing, term biasing
2374
2570
  * (`context`), and `language_hints`.
2375
2571
  * - `nvidia/parakeet-v3` is a multilingual transcription model with automatic
2376
2572
  * language detection.
2573
+ * - `omi-health/omi-med-stt-v1` is an English-only medical transcription model
2574
+ * (Parakeet-based).
2377
2575
  * - `humain/realtime` is a streaming model with native Arabic and Arabic/English
2378
2576
  * code-switching support.
2379
2577
  * - `reson8/turns` is a turn-based streaming model covering 10 European languages
2380
2578
  * with automatic language detection.
2381
2579
  * - `cohere/ar-stt` is a non-streaming Arabic and English transcription model.
2382
2580
  */
2383
- model?: 'deepgram/flux' | 'deepgram/nova-3' | 'deepgram/nova-2' | 'azure/fast' | 'assemblyai/universal-streaming' | 'xai/grok-stt' | 'soniox/stt-rt-v4' | 'soniox/stt-rt-v5' | 'nvidia/parakeet-v3' | 'humain/realtime' | 'reson8/turns' | 'cohere/ar-stt' | 'distil-whisper/distil-large-v2' | 'openai/whisper-large-v3-turbo';
2581
+ model?: 'deepgram/flux' | 'deepgram/nova-3' | 'deepgram/nova-2' | 'azure/fast' | 'assemblyai/universal-3-5-pro' | 'assemblyai/universal-streaming' | 'xai/grok-stt' | 'soniox/stt-rt-v4' | 'soniox/stt-rt-v5' | 'nvidia/parakeet-v3' | 'omi-health/omi-med-stt-v1' | 'humain/realtime' | 'reson8/turns' | 'cohere/ar-stt' | 'distil-whisper/distil-large-v2' | 'openai/whisper-large-v3-turbo';
2384
2582
  /**
2385
2583
  * Region on third party cloud providers (currently Azure) if using one of their
2386
2584
  * models. Some regions require `api_key_ref`.
@@ -2412,9 +2610,9 @@ export interface TranscriptionSettingsConfig {
2412
2610
  */
2413
2611
  enable_endpoint_detection?: boolean;
2414
2612
  /**
2415
- * Available only for assemblyai/universal-streaming. Confidence level required to
2416
- * trigger an end of turn. Higher values require more certainty before ending a
2417
- * turn.
2613
+ * Available only for assemblyai/universal-3-5-pro (and its legacy alias
2614
+ * assemblyai/universal-streaming). Confidence level required to trigger an end of
2615
+ * turn. Higher values require more certainty before ending a turn.
2418
2616
  */
2419
2617
  end_of_turn_confidence_threshold?: number;
2420
2618
  /**
@@ -2455,14 +2653,15 @@ export interface TranscriptionSettingsConfig {
2455
2653
  */
2456
2654
  max_endpoint_delay_ms?: number;
2457
2655
  /**
2458
- * Available only for assemblyai/universal-streaming. Maximum duration of silence
2459
- * in milliseconds before forcing an end of turn.
2656
+ * Available only for assemblyai/universal-3-5-pro (and its legacy alias
2657
+ * assemblyai/universal-streaming). Maximum duration of silence in milliseconds
2658
+ * before forcing an end of turn.
2460
2659
  */
2461
2660
  max_turn_silence?: number;
2462
2661
  /**
2463
- * Available only for assemblyai/universal-streaming. Minimum duration of silence
2464
- * in milliseconds before a turn can end. Must be less than or equal to
2465
- * max_turn_silence.
2662
+ * Available only for assemblyai/universal-3-5-pro (and its legacy alias
2663
+ * assemblyai/universal-streaming). Minimum duration of silence in milliseconds
2664
+ * before a turn can end. Must be less than or equal to max_turn_silence.
2466
2665
  */
2467
2666
  min_turn_silence?: number;
2468
2667
  numerals?: boolean;
@@ -2934,10 +3133,10 @@ export interface AssistantCreateParams {
2934
3133
  /**
2935
3134
  * Body param: Configuration for post-conversation processing. When enabled, the
2936
3135
  * assistant receives one additional LLM turn after the conversation ends, allowing
2937
- * it to execute tool calls such as logging to a CRM or sending a summary. The
2938
- * assistant can execute multiple parallel or sequential tools during this phase.
2939
- * Telephony-control tools (e.g. hangup, transfer) are unavailable
2940
- * post-conversation. Beta feature.
3136
+ * it to execute final tool calls such as sending a summary or updating a record
3137
+ * via webhook or function tools. Integration and MCP server tools are not
3138
+ * available post-conversation; call-control tools (e.g. hangup, transfer) are also
3139
+ * unavailable. Beta feature.
2941
3140
  */
2942
3141
  post_conversation_settings?: PostConversationSettingsReq;
2943
3142
  /**
@@ -3142,10 +3341,10 @@ export interface AssistantUpdateParams {
3142
3341
  /**
3143
3342
  * Configuration for post-conversation processing. When enabled, the assistant
3144
3343
  * receives one additional LLM turn after the conversation ends, allowing it to
3145
- * execute tool calls such as logging to a CRM or sending a summary. The assistant
3146
- * can execute multiple parallel or sequential tools during this phase.
3147
- * Telephony-control tools (e.g. hangup, transfer) are unavailable
3148
- * post-conversation. Beta feature.
3344
+ * execute final tool calls such as sending a summary or updating a record via
3345
+ * webhook or function tools. Integration and MCP server tools are not available
3346
+ * post-conversation; call-control tools (e.g. hangup, transfer) are also
3347
+ * unavailable. Beta feature.
3149
3348
  */
3150
3349
  post_conversation_settings?: PostConversationSettingsReq;
3151
3350
  privacy_settings?: PrivacySettings;
@@ -3162,13 +3361,24 @@ export interface AssistantUpdateParams {
3162
3361
  telephony_settings?: TelephonySettings;
3163
3362
  /**
3164
3363
  * IDs of shared tools to attach to the assistant. New integrations should prefer
3165
- * `tool_ids` over inline `tools`.
3364
+ * `tool_ids` over inline `tools`. On update, a sent `tool_ids` array fully
3365
+ * replaces the assistant's attached shared tools; omit the field to leave them
3366
+ * unchanged. Single-instance tool types are counted across inline `tools` and
3367
+ * `tool_ids` combined, so attaching a shared tool of such a type when an instance
3368
+ * already exists returns HTTP 400 with error code 10015.
3166
3369
  */
3167
3370
  tool_ids?: Array<string>;
3168
3371
  /**
3169
3372
  * Deprecated for new integrations. Inline tool definitions available to the
3170
3373
  * assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools
3171
- * endpoints.
3374
+ * endpoints. On update, a sent `tools` array fully replaces the assistant's inline
3375
+ * tools; omit the field to leave the inline tools unchanged. Each tool type except
3376
+ * `function`, `webhook`, and `client_side_tool` allows at most one instance per
3377
+ * assistant, counted across inline `tools` and shared `tool_ids` combined —
3378
+ * sending a duplicate of such a type returns HTTP 400 with error code 10015.
3379
+ * Responses merge shared tools into `tools` with `shared: true`; when updating,
3380
+ * omit those tools from the `tools` array and manage them through `tool_ids`
3381
+ * instead.
3172
3382
  */
3173
3383
  tools?: Array<AssistantTool>;
3174
3384
  transcription?: TranscriptionSettings;