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
@@ -57,6 +57,7 @@ import {
57
57
  VersionUpdateParams,
58
58
  Versions,
59
59
  } from './versions';
60
+ import * as OpenAIChatAPI from '../openai/chat';
60
61
  import * as TestsAPI from './tests/tests';
61
62
  import {
62
63
  AssistantTest,
@@ -543,11 +544,12 @@ export interface AssistantMcpServer {
543
544
  * user.
544
545
  */
545
546
  export type AssistantTool =
547
+ | AssistantTool.Function
546
548
  | InferenceEmbeddingWebhookToolParams
547
549
  | AssistantTool.ClientSideTool
548
550
  | RetrievalTool
549
551
  | AssistantTool.Handoff
550
- | HangupTool
552
+ | AssistantTool.Hangup
551
553
  | AssistantTool.Transfer
552
554
  | AssistantTool.Invite
553
555
  | AssistantTool.Refer
@@ -558,10 +560,38 @@ export type AssistantTool =
558
560
  | AssistantTool.UpdateDynamicVariables;
559
561
 
560
562
  export namespace AssistantTool {
563
+ export interface Function {
564
+ function: OpenAIChatAPI.FunctionDefinition;
565
+
566
+ type: 'function';
567
+
568
+ /**
569
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
570
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
571
+ * Read-only: set by the server, not accepted in requests. When updating an
572
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
573
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
574
+ * duplicate (rejected with error code 10015 when the type allows only one instance
575
+ * per assistant).
576
+ */
577
+ shared?: boolean;
578
+ }
579
+
561
580
  export interface ClientSideTool {
562
581
  client_side_tool: ClientSideTool.ClientSideTool;
563
582
 
564
583
  type: 'client_side_tool';
584
+
585
+ /**
586
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
587
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
588
+ * Read-only: set by the server, not accepted in requests. When updating an
589
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
590
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
591
+ * duplicate (rejected with error code 10015 when the type allows only one instance
592
+ * per assistant).
593
+ */
594
+ shared?: boolean;
565
595
  }
566
596
 
567
597
  export namespace ClientSideTool {
@@ -615,6 +645,17 @@ export namespace AssistantTool {
615
645
  handoff: Handoff.Handoff;
616
646
 
617
647
  type: 'handoff';
648
+
649
+ /**
650
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
651
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
652
+ * Read-only: set by the server, not accepted in requests. When updating an
653
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
654
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
655
+ * duplicate (rejected with error code 10015 when the type allows only one instance
656
+ * per assistant).
657
+ */
658
+ shared?: boolean;
618
659
  }
619
660
 
620
661
  export namespace Handoff {
@@ -648,10 +689,38 @@ export namespace AssistantTool {
648
689
  }
649
690
  }
650
691
 
692
+ export interface Hangup {
693
+ hangup: AssistantsAPI.HangupToolParams;
694
+
695
+ type: 'hangup';
696
+
697
+ /**
698
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
699
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
700
+ * Read-only: set by the server, not accepted in requests. When updating an
701
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
702
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
703
+ * duplicate (rejected with error code 10015 when the type allows only one instance
704
+ * per assistant).
705
+ */
706
+ shared?: boolean;
707
+ }
708
+
651
709
  export interface Transfer {
652
710
  transfer: Transfer.Transfer;
653
711
 
654
712
  type: 'transfer';
713
+
714
+ /**
715
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
716
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
717
+ * Read-only: set by the server, not accepted in requests. When updating an
718
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
719
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
720
+ * duplicate (rejected with error code 10015 when the type allows only one instance
721
+ * per assistant).
722
+ */
723
+ shared?: boolean;
655
724
  }
656
725
 
657
726
  export namespace Transfer {
@@ -922,6 +991,17 @@ export namespace AssistantTool {
922
991
  invite: Invite.Invite;
923
992
 
924
993
  type: 'invite';
994
+
995
+ /**
996
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
997
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
998
+ * Read-only: set by the server, not accepted in requests. When updating an
999
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
1000
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
1001
+ * duplicate (rejected with error code 10015 when the type allows only one instance
1002
+ * per assistant).
1003
+ */
1004
+ shared?: boolean;
925
1005
  }
926
1006
 
927
1007
  export namespace Invite {
@@ -1013,6 +1093,17 @@ export namespace AssistantTool {
1013
1093
  refer: Refer.Refer;
1014
1094
 
1015
1095
  type: 'refer';
1096
+
1097
+ /**
1098
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
1099
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
1100
+ * Read-only: set by the server, not accepted in requests. When updating an
1101
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
1102
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
1103
+ * duplicate (rejected with error code 10015 when the type allows only one instance
1104
+ * per assistant).
1105
+ */
1106
+ shared?: boolean;
1016
1107
  }
1017
1108
 
1018
1109
  export namespace Refer {
@@ -1088,6 +1179,17 @@ export namespace AssistantTool {
1088
1179
  send_dtmf: { [key: string]: unknown };
1089
1180
 
1090
1181
  type: 'send_dtmf';
1182
+
1183
+ /**
1184
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
1185
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
1186
+ * Read-only: set by the server, not accepted in requests. When updating an
1187
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
1188
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
1189
+ * duplicate (rejected with error code 10015 when the type allows only one instance
1190
+ * per assistant).
1191
+ */
1192
+ shared?: boolean;
1091
1193
  }
1092
1194
 
1093
1195
  /**
@@ -1100,6 +1202,17 @@ export namespace AssistantTool {
1100
1202
  send_message: SendMessage.SendMessage;
1101
1203
 
1102
1204
  type: 'send_message';
1205
+
1206
+ /**
1207
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
1208
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
1209
+ * Read-only: set by the server, not accepted in requests. When updating an
1210
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
1211
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
1212
+ * duplicate (rejected with error code 10015 when the type allows only one instance
1213
+ * per assistant).
1214
+ */
1215
+ shared?: boolean;
1103
1216
  }
1104
1217
 
1105
1218
  export namespace SendMessage {
@@ -1121,6 +1234,17 @@ export namespace AssistantTool {
1121
1234
  skip_turn: SkipTurn.SkipTurn;
1122
1235
 
1123
1236
  type: 'skip_turn';
1237
+
1238
+ /**
1239
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
1240
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
1241
+ * Read-only: set by the server, not accepted in requests. When updating an
1242
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
1243
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
1244
+ * duplicate (rejected with error code 10015 when the type allows only one instance
1245
+ * per assistant).
1246
+ */
1247
+ shared?: boolean;
1124
1248
  }
1125
1249
 
1126
1250
  export namespace SkipTurn {
@@ -1142,6 +1266,17 @@ export namespace AssistantTool {
1142
1266
  pay: ToolsAPI.PayToolParams;
1143
1267
 
1144
1268
  type: 'pay';
1269
+
1270
+ /**
1271
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
1272
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
1273
+ * Read-only: set by the server, not accepted in requests. When updating an
1274
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
1275
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
1276
+ * duplicate (rejected with error code 10015 when the type allows only one instance
1277
+ * per assistant).
1278
+ */
1279
+ shared?: boolean;
1145
1280
  }
1146
1281
 
1147
1282
  /**
@@ -1158,6 +1293,17 @@ export namespace AssistantTool {
1158
1293
  * Configuration for an update_dynamic_variables tool.
1159
1294
  */
1160
1295
  update_dynamic_variables: ToolsAPI.UpdateDynamicVariablesToolParams;
1296
+
1297
+ /**
1298
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
1299
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
1300
+ * Read-only: set by the server, not accepted in requests. When updating an
1301
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
1302
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
1303
+ * duplicate (rejected with error code 10015 when the type allows only one instance
1304
+ * per assistant).
1305
+ */
1306
+ shared?: boolean;
1161
1307
  }
1162
1308
  }
1163
1309
 
@@ -1944,10 +2090,10 @@ export interface InferenceEmbedding {
1944
2090
  /**
1945
2091
  * Configuration for post-conversation processing. When enabled, the assistant
1946
2092
  * receives one additional LLM turn after the conversation ends, allowing it to
1947
- * execute tool calls such as logging to a CRM or sending a summary. The assistant
1948
- * can execute multiple parallel or sequential tools during this phase.
1949
- * Telephony-control tools (e.g. hangup, transfer) are unavailable
1950
- * post-conversation. Beta feature.
2093
+ * execute final tool calls such as sending a summary or updating a record via
2094
+ * webhook or function tools. Integration and MCP server tools are not available
2095
+ * post-conversation; call-control tools (e.g. hangup, transfer) are also
2096
+ * unavailable. Beta feature.
1951
2097
  */
1952
2098
  post_conversation_settings?: PostConversationSettings;
1953
2099
 
@@ -1967,9 +2113,12 @@ export interface InferenceEmbedding {
1967
2113
  telephony_settings?: TelephonySettings;
1968
2114
 
1969
2115
  /**
1970
- * Deprecated for new integrations. Inline tool definitions available to the
1971
- * assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools
1972
- * endpoints.
2116
+ * The assistant's tools. Responses merge the assistant's shared Tools Library
2117
+ * tools into this array alongside inline tools, each flagged `shared: true`;
2118
+ * inline tools carry `shared: false`. On update, a sent `tools` array fully
2119
+ * replaces the inline tools only — shared tools stay attached unless `tool_ids`
2120
+ * changes. Each tool type except `function`, `webhook`, and `client_side_tool`
2121
+ * allows at most one instance per assistant across both sources.
1973
2122
  */
1974
2123
  tools?: Array<AssistantTool>;
1975
2124
 
@@ -2018,6 +2167,12 @@ export interface InferenceEmbeddingInterruptionSettings {
2018
2167
  */
2019
2168
  enable?: boolean;
2020
2169
 
2170
+ /**
2171
+ * Interrupt-prediction sensitivity, from 0.0 to 1.0. Set to null or 0.0 to disable
2172
+ * interrupt prediction.
2173
+ */
2174
+ interrupt_prediction_threshold?: number | null;
2175
+
2021
2176
  /**
2022
2177
  * Controls when the assistant starts speaking after the user stops. These
2023
2178
  * thresholds primarily apply to non turn-taking transcription models. For
@@ -2031,6 +2186,17 @@ export interface InferenceEmbeddingWebhookToolParams {
2031
2186
  type: 'webhook';
2032
2187
 
2033
2188
  webhook: InferenceEmbeddingWebhookToolParams.Webhook;
2189
+
2190
+ /**
2191
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
2192
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
2193
+ * Read-only: set by the server, not accepted in requests. When updating an
2194
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
2195
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
2196
+ * duplicate (rejected with error code 10015 when the type allows only one instance
2197
+ * per assistant).
2198
+ */
2199
+ shared?: boolean;
2034
2200
  }
2035
2201
 
2036
2202
  export namespace InferenceEmbeddingWebhookToolParams {
@@ -2379,10 +2545,10 @@ export type ObservabilityStatus = 'enabled' | 'disabled';
2379
2545
  /**
2380
2546
  * Configuration for post-conversation processing. When enabled, the assistant
2381
2547
  * receives one additional LLM turn after the conversation ends, allowing it to
2382
- * execute tool calls such as logging to a CRM or sending a summary. The assistant
2383
- * can execute multiple parallel or sequential tools during this phase.
2384
- * Telephony-control tools (e.g. hangup, transfer) are unavailable
2385
- * post-conversation. Beta feature.
2548
+ * execute final tool calls such as sending a summary or updating a record via
2549
+ * webhook or function tools. Integration and MCP server tools are not available
2550
+ * post-conversation; call-control tools (e.g. hangup, transfer) are also
2551
+ * unavailable. Beta feature.
2386
2552
  */
2387
2553
  export interface PostConversationSettings {
2388
2554
  /**
@@ -2396,10 +2562,10 @@ export interface PostConversationSettings {
2396
2562
  /**
2397
2563
  * Configuration for post-conversation processing. When enabled, the assistant
2398
2564
  * receives one additional LLM turn after the conversation ends, allowing it to
2399
- * execute tool calls such as logging to a CRM or sending a summary. The assistant
2400
- * can execute multiple parallel or sequential tools during this phase.
2401
- * Telephony-control tools (e.g. hangup, transfer) are unavailable
2402
- * post-conversation. Beta feature.
2565
+ * execute final tool calls such as sending a summary or updating a record via
2566
+ * webhook or function tools. Integration and MCP server tools are not available
2567
+ * post-conversation; call-control tools (e.g. hangup, transfer) are also
2568
+ * unavailable. Beta feature.
2403
2569
  */
2404
2570
  export interface PostConversationSettingsReq {
2405
2571
  /**
@@ -2420,6 +2586,22 @@ export interface PrivacySettings {
2420
2586
  * force regardless of your selection here.
2421
2587
  */
2422
2588
  data_retention?: boolean;
2589
+
2590
+ /**
2591
+ * Requires every model call made for a web chat turn to be received and served
2592
+ * inside your organization's data-locality region, rather than only stored there.
2593
+ * Applies to web chat only — voice and messaging assistants are unaffected.
2594
+ * Enabling it requires a data-locality region with in-region inference (USA, EU,
2595
+ * AUS, UAE; see
2596
+ * [Inference regions](https://developers.telnyx.com/docs/inference/models/regions))
2597
+ * and Telnyx-hosted models for the assistant, its fallback, and any
2598
+ * conversation-flow node that overrides the model; the request is rejected
2599
+ * otherwise. Once enabled, send chat requests to your region's API hostname: a
2600
+ * request entering the platform in another region is rejected rather than
2601
+ * forwarded, because forwarding it would already have moved the content across the
2602
+ * border. Defaults to false.
2603
+ */
2604
+ in_transit_data_locality?: boolean;
2423
2605
  }
2424
2606
 
2425
2607
  /**
@@ -2435,6 +2617,17 @@ export interface RetrievalTool {
2435
2617
  retrieval: ChatAPI.BucketIDs;
2436
2618
 
2437
2619
  type: 'retrieval';
2620
+
2621
+ /**
2622
+ * Whether this tool comes from the shared Tools Library. Responses merge shared
2623
+ * tools into `tools` with `shared: true`; inline tools carry `shared: false`.
2624
+ * Read-only: set by the server, not accepted in requests. When updating an
2625
+ * assistant, omit `shared: true` tools from the request `tools` array and manage
2626
+ * them through `tool_ids` instead — re-sending their definitions creates an inline
2627
+ * duplicate (rejected with error code 10015 when the type allows only one instance
2628
+ * per assistant).
2629
+ */
2630
+ shared?: boolean;
2438
2631
  }
2439
2632
 
2440
2633
  /**
@@ -2563,14 +2756,17 @@ export interface TelephonySettings {
2563
2756
  fallback_destination?: string;
2564
2757
 
2565
2758
  /**
2566
- * The noise suppression engine to use. Use 'disabled' to turn off noise
2567
- * suppression.
2759
+ * The noise suppression engine to use. 'aicoustics' is STT-optimized and
2760
+ * recommended for AI assistants (configure through noise_suppression_config). Use
2761
+ * 'disabled' to turn off noise suppression.
2568
2762
  */
2569
- noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled';
2763
+ noise_suppression?: 'aicoustics' | 'krisp' | 'deepfilternet' | 'disabled';
2570
2764
 
2571
2765
  /**
2572
- * Configuration for noise suppression. Only applicable when noise_suppression is
2573
- * 'deepfilternet'.
2766
+ * Configuration for noise suppression. Applicable fields depend on the engine:
2767
+ * 'attenuation_limit' and 'mode' only when noise_suppression is 'deepfilternet';
2768
+ * 'family', 'size' and 'enhancement_level' only when noise_suppression is
2769
+ * 'aicoustics'.
2574
2770
  */
2575
2771
  noise_suppression_config?: TelephonySettings.NoiseSuppressionConfig;
2576
2772
 
@@ -2634,19 +2830,42 @@ export interface TelephonySettings {
2634
2830
 
2635
2831
  export namespace TelephonySettings {
2636
2832
  /**
2637
- * Configuration for noise suppression. Only applicable when noise_suppression is
2638
- * 'deepfilternet'.
2833
+ * Configuration for noise suppression. Applicable fields depend on the engine:
2834
+ * 'attenuation_limit' and 'mode' only when noise_suppression is 'deepfilternet';
2835
+ * 'family', 'size' and 'enhancement_level' only when noise_suppression is
2836
+ * 'aicoustics'.
2639
2837
  */
2640
2838
  export interface NoiseSuppressionConfig {
2641
2839
  /**
2642
- * Attenuation limit for noise suppression. Range: 0-100.
2840
+ * Attenuation limit for noise suppression. Range: 0-100. Only applicable when
2841
+ * noise_suppression is 'deepfilternet'.
2643
2842
  */
2644
2843
  attenuation_limit?: number;
2645
2844
 
2646
2845
  /**
2647
- * Mode for noise suppression configuration.
2846
+ * AiCoustics enhancement intensity. Range: 0-1. Only applicable when
2847
+ * noise_suppression is 'aicoustics'.
2848
+ */
2849
+ enhancement_level?: number;
2850
+
2851
+ /**
2852
+ * AiCoustics model family optimized for Voice AI and STT. Only applicable when
2853
+ * noise_suppression is 'aicoustics'.
2854
+ */
2855
+ family?: 'quail';
2856
+
2857
+ /**
2858
+ * Mode for noise suppression configuration. Only applicable when noise_suppression
2859
+ * is 'deepfilternet'.
2648
2860
  */
2649
2861
  mode?: 'advanced';
2862
+
2863
+ /**
2864
+ * AiCoustics model size. 'vf' tracks the latest model release; 'vf_2_0_l' is
2865
+ * pinned to version 2.0 for consistent, predictable behavior. Only applicable when
2866
+ * noise_suppression is 'aicoustics'.
2867
+ */
2868
+ size?: 'vf' | 'vf_2_0_l';
2650
2869
  }
2651
2870
 
2652
2871
  /**
@@ -2882,14 +3101,17 @@ export interface TranscriptionSettings {
2882
3101
  * - `deepgram/nova-3` is multilingual with automatic language detection.
2883
3102
  * - `deepgram/nova-2` is Deepgram's previous-generation multilingual model.
2884
3103
  * - `azure/fast` is a multilingual Azure transcription model.
2885
- * - `assemblyai/universal-streaming` is a multilingual streaming model with
2886
- * configurable turn detection.
3104
+ * - `assemblyai/universal-3-5-pro` is a multilingual streaming model with
3105
+ * configurable turn detection. The legacy alias `assemblyai/universal-streaming`
3106
+ * is still accepted and resolves to the same model.
2887
3107
  * - `xai/grok-stt` is a multilingual Grok STT model.
2888
3108
  * - `soniox/stt-rt-v4` and `soniox/stt-rt-v5` are multilingual streaming models
2889
3109
  * with automatic language detection, configurable endpointing, term biasing
2890
3110
  * (`context`), and `language_hints`.
2891
3111
  * - `nvidia/parakeet-v3` is a multilingual transcription model with automatic
2892
3112
  * language detection.
3113
+ * - `omi-health/omi-med-stt-v1` is an English-only medical transcription model
3114
+ * (Parakeet-based).
2893
3115
  * - `humain/realtime` is a streaming model with native Arabic and Arabic/English
2894
3116
  * code-switching support.
2895
3117
  * - `reson8/turns` is a turn-based streaming model covering 10 European languages
@@ -2901,11 +3123,13 @@ export interface TranscriptionSettings {
2901
3123
  | 'deepgram/nova-3'
2902
3124
  | 'deepgram/nova-2'
2903
3125
  | 'azure/fast'
3126
+ | 'assemblyai/universal-3-5-pro'
2904
3127
  | 'assemblyai/universal-streaming'
2905
3128
  | 'xai/grok-stt'
2906
3129
  | 'soniox/stt-rt-v4'
2907
3130
  | 'soniox/stt-rt-v5'
2908
3131
  | 'nvidia/parakeet-v3'
3132
+ | 'omi-health/omi-med-stt-v1'
2909
3133
  | 'humain/realtime'
2910
3134
  | 'reson8/turns'
2911
3135
  | 'cohere/ar-stt'
@@ -2948,9 +3172,9 @@ export interface TranscriptionSettingsConfig {
2948
3172
  enable_endpoint_detection?: boolean;
2949
3173
 
2950
3174
  /**
2951
- * Available only for assemblyai/universal-streaming. Confidence level required to
2952
- * trigger an end of turn. Higher values require more certainty before ending a
2953
- * turn.
3175
+ * Available only for assemblyai/universal-3-5-pro (and its legacy alias
3176
+ * assemblyai/universal-streaming). Confidence level required to trigger an end of
3177
+ * turn. Higher values require more certainty before ending a turn.
2954
3178
  */
2955
3179
  end_of_turn_confidence_threshold?: number;
2956
3180
 
@@ -2998,15 +3222,16 @@ export interface TranscriptionSettingsConfig {
2998
3222
  max_endpoint_delay_ms?: number;
2999
3223
 
3000
3224
  /**
3001
- * Available only for assemblyai/universal-streaming. Maximum duration of silence
3002
- * in milliseconds before forcing an end of turn.
3225
+ * Available only for assemblyai/universal-3-5-pro (and its legacy alias
3226
+ * assemblyai/universal-streaming). Maximum duration of silence in milliseconds
3227
+ * before forcing an end of turn.
3003
3228
  */
3004
3229
  max_turn_silence?: number;
3005
3230
 
3006
3231
  /**
3007
- * Available only for assemblyai/universal-streaming. Minimum duration of silence
3008
- * in milliseconds before a turn can end. Must be less than or equal to
3009
- * max_turn_silence.
3232
+ * Available only for assemblyai/universal-3-5-pro (and its legacy alias
3233
+ * assemblyai/universal-streaming). Minimum duration of silence in milliseconds
3234
+ * before a turn can end. Must be less than or equal to max_turn_silence.
3010
3235
  */
3011
3236
  min_turn_silence?: number;
3012
3237
 
@@ -3597,10 +3822,10 @@ export interface AssistantCreateParams {
3597
3822
  /**
3598
3823
  * Body param: Configuration for post-conversation processing. When enabled, the
3599
3824
  * assistant receives one additional LLM turn after the conversation ends, allowing
3600
- * it to execute tool calls such as logging to a CRM or sending a summary. The
3601
- * assistant can execute multiple parallel or sequential tools during this phase.
3602
- * Telephony-control tools (e.g. hangup, transfer) are unavailable
3603
- * post-conversation. Beta feature.
3825
+ * it to execute final tool calls such as sending a summary or updating a record
3826
+ * via webhook or function tools. Integration and MCP server tools are not
3827
+ * available post-conversation; call-control tools (e.g. hangup, transfer) are also
3828
+ * unavailable. Beta feature.
3604
3829
  */
3605
3830
  post_conversation_settings?: PostConversationSettingsReq;
3606
3831
 
@@ -3841,10 +4066,10 @@ export interface AssistantUpdateParams {
3841
4066
  /**
3842
4067
  * Configuration for post-conversation processing. When enabled, the assistant
3843
4068
  * receives one additional LLM turn after the conversation ends, allowing it to
3844
- * execute tool calls such as logging to a CRM or sending a summary. The assistant
3845
- * can execute multiple parallel or sequential tools during this phase.
3846
- * Telephony-control tools (e.g. hangup, transfer) are unavailable
3847
- * post-conversation. Beta feature.
4069
+ * execute final tool calls such as sending a summary or updating a record via
4070
+ * webhook or function tools. Integration and MCP server tools are not available
4071
+ * post-conversation; call-control tools (e.g. hangup, transfer) are also
4072
+ * unavailable. Beta feature.
3848
4073
  */
3849
4074
  post_conversation_settings?: PostConversationSettingsReq;
3850
4075
 
@@ -3866,14 +4091,25 @@ export interface AssistantUpdateParams {
3866
4091
 
3867
4092
  /**
3868
4093
  * IDs of shared tools to attach to the assistant. New integrations should prefer
3869
- * `tool_ids` over inline `tools`.
4094
+ * `tool_ids` over inline `tools`. On update, a sent `tool_ids` array fully
4095
+ * replaces the assistant's attached shared tools; omit the field to leave them
4096
+ * unchanged. Single-instance tool types are counted across inline `tools` and
4097
+ * `tool_ids` combined, so attaching a shared tool of such a type when an instance
4098
+ * already exists returns HTTP 400 with error code 10015.
3870
4099
  */
3871
4100
  tool_ids?: Array<string>;
3872
4101
 
3873
4102
  /**
3874
4103
  * Deprecated for new integrations. Inline tool definitions available to the
3875
4104
  * assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools
3876
- * endpoints.
4105
+ * endpoints. On update, a sent `tools` array fully replaces the assistant's inline
4106
+ * tools; omit the field to leave the inline tools unchanged. Each tool type except
4107
+ * `function`, `webhook`, and `client_side_tool` allows at most one instance per
4108
+ * assistant, counted across inline `tools` and shared `tool_ids` combined —
4109
+ * sending a duplicate of such a type returns HTTP 400 with error code 10015.
4110
+ * Responses merge shared tools into `tools` with `shared: true`; when updating,
4111
+ * omit those tools from the `tools` array and manage them through `tool_ids`
4112
+ * instead.
3877
4113
  */
3878
4114
  tools?: Array<AssistantTool>;
3879
4115
 
@@ -242,10 +242,10 @@ export interface UpdateAssistant {
242
242
  /**
243
243
  * Configuration for post-conversation processing. When enabled, the assistant
244
244
  * receives one additional LLM turn after the conversation ends, allowing it to
245
- * execute tool calls such as logging to a CRM or sending a summary. The assistant
246
- * can execute multiple parallel or sequential tools during this phase.
247
- * Telephony-control tools (e.g. hangup, transfer) are unavailable
248
- * post-conversation. Beta feature.
245
+ * execute final tool calls such as sending a summary or updating a record via
246
+ * webhook or function tools. Integration and MCP server tools are not available
247
+ * post-conversation; call-control tools (e.g. hangup, transfer) are also
248
+ * unavailable. Beta feature.
249
249
  */
250
250
  post_conversation_settings?: AssistantsAPI.PostConversationSettingsReq;
251
251
 
@@ -261,14 +261,25 @@ export interface UpdateAssistant {
261
261
 
262
262
  /**
263
263
  * IDs of shared tools to attach to the assistant. New integrations should prefer
264
- * `tool_ids` over inline `tools`.
264
+ * `tool_ids` over inline `tools`. On update, a sent `tool_ids` array fully
265
+ * replaces the assistant's attached shared tools; omit the field to leave them
266
+ * unchanged. Single-instance tool types are counted across inline `tools` and
267
+ * `tool_ids` combined, so attaching a shared tool of such a type when an instance
268
+ * already exists returns HTTP 400 with error code 10015.
265
269
  */
266
270
  tool_ids?: Array<string>;
267
271
 
268
272
  /**
269
273
  * Deprecated for new integrations. Inline tool definitions available to the
270
274
  * assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools
271
- * endpoints.
275
+ * endpoints. On update, a sent `tools` array fully replaces the assistant's inline
276
+ * tools; omit the field to leave the inline tools unchanged. Each tool type except
277
+ * `function`, `webhook`, and `client_side_tool` allows at most one instance per
278
+ * assistant, counted across inline `tools` and shared `tool_ids` combined —
279
+ * sending a duplicate of such a type returns HTTP 400 with error code 10015.
280
+ * Responses merge shared tools into `tools` with `shared: true`; when updating,
281
+ * omit those tools from the `tools` array and manage them through `tool_ids`
282
+ * instead.
272
283
  */
273
284
  tools?: Array<AssistantsAPI.AssistantTool>;
274
285
 
@@ -463,10 +474,10 @@ export interface VersionUpdateParams {
463
474
  /**
464
475
  * Body param: Configuration for post-conversation processing. When enabled, the
465
476
  * assistant receives one additional LLM turn after the conversation ends, allowing
466
- * it to execute tool calls such as logging to a CRM or sending a summary. The
467
- * assistant can execute multiple parallel or sequential tools during this phase.
468
- * Telephony-control tools (e.g. hangup, transfer) are unavailable
469
- * post-conversation. Beta feature.
477
+ * it to execute final tool calls such as sending a summary or updating a record
478
+ * via webhook or function tools. Integration and MCP server tools are not
479
+ * available post-conversation; call-control tools (e.g. hangup, transfer) are also
480
+ * unavailable. Beta feature.
470
481
  */
471
482
  post_conversation_settings?: AssistantsAPI.PostConversationSettingsReq;
472
483
 
@@ -488,14 +499,25 @@ export interface VersionUpdateParams {
488
499
 
489
500
  /**
490
501
  * Body param: IDs of shared tools to attach to the assistant. New integrations
491
- * should prefer `tool_ids` over inline `tools`.
502
+ * should prefer `tool_ids` over inline `tools`. On update, a sent `tool_ids` array
503
+ * fully replaces the assistant's attached shared tools; omit the field to leave
504
+ * them unchanged. Single-instance tool types are counted across inline `tools` and
505
+ * `tool_ids` combined, so attaching a shared tool of such a type when an instance
506
+ * already exists returns HTTP 400 with error code 10015.
492
507
  */
493
508
  tool_ids?: Array<string>;
494
509
 
495
510
  /**
496
511
  * Body param: Deprecated for new integrations. Inline tool definitions available
497
512
  * to the assistant. Prefer `tool_ids` to attach shared tools created with the AI
498
- * Tools endpoints.
513
+ * Tools endpoints. On update, a sent `tools` array fully replaces the assistant's
514
+ * inline tools; omit the field to leave the inline tools unchanged. Each tool type
515
+ * except `function`, `webhook`, and `client_side_tool` allows at most one instance
516
+ * per assistant, counted across inline `tools` and shared `tool_ids` combined —
517
+ * sending a duplicate of such a type returns HTTP 400 with error code 10015.
518
+ * Responses merge shared tools into `tools` with `shared: true`; when updating,
519
+ * omit those tools from the `tools` array and manage them through `tool_ids`
520
+ * instead.
499
521
  */
500
522
  tools?: Array<AssistantsAPI.AssistantTool>;
501
523