@mistralai/mistralai 1.13.0 → 1.14.1

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 (586) hide show
  1. package/README.md +9 -3
  2. package/examples/src/async_audio_transcription_diarize.ts +17 -0
  3. package/examples/src/realtime_microphone.ts +163 -0
  4. package/examples/src/realtime_transcription.ts +225 -0
  5. package/extra/realtime/connection.d.ts +44 -0
  6. package/extra/realtime/connection.d.ts.map +1 -0
  7. package/extra/realtime/connection.js +299 -0
  8. package/extra/realtime/connection.js.map +1 -0
  9. package/extra/realtime/errors.d.ts +18 -0
  10. package/extra/realtime/errors.d.ts.map +1 -0
  11. package/extra/realtime/errors.js +21 -0
  12. package/extra/realtime/errors.js.map +1 -0
  13. package/extra/realtime/index.d.ts +15 -0
  14. package/extra/realtime/index.d.ts.map +1 -0
  15. package/extra/realtime/index.js +10 -0
  16. package/extra/realtime/index.js.map +1 -0
  17. package/extra/realtime/transcription.d.ts +17 -0
  18. package/extra/realtime/transcription.d.ts.map +1 -0
  19. package/extra/realtime/transcription.js +200 -0
  20. package/extra/realtime/transcription.js.map +1 -0
  21. package/extra/structChat.js.map +1 -1
  22. package/funcs/audioTranscriptionsComplete.js +6 -0
  23. package/funcs/audioTranscriptionsComplete.js.map +1 -1
  24. package/funcs/audioTranscriptionsStream.js +6 -0
  25. package/funcs/audioTranscriptionsStream.js.map +1 -1
  26. package/funcs/batchJobsList.js +1 -0
  27. package/funcs/batchJobsList.js.map +1 -1
  28. package/funcs/betaAgentsCreateVersionAlias.d.ts +19 -0
  29. package/funcs/betaAgentsCreateVersionAlias.d.ts.map +1 -0
  30. package/funcs/betaAgentsCreateVersionAlias.js +130 -0
  31. package/funcs/betaAgentsCreateVersionAlias.js.map +1 -0
  32. package/funcs/betaAgentsDeleteVersionAlias.d.ts +18 -0
  33. package/funcs/betaAgentsDeleteVersionAlias.d.ts.map +1 -0
  34. package/funcs/betaAgentsDeleteVersionAlias.js +128 -0
  35. package/funcs/betaAgentsDeleteVersionAlias.js.map +1 -0
  36. package/funcs/betaAgentsGet.d.ts +1 -1
  37. package/funcs/betaAgentsGet.js +1 -1
  38. package/funcs/betaAgentsGetVersion.js +1 -1
  39. package/funcs/betaAgentsGetVersion.js.map +1 -1
  40. package/funcs/betaAgentsList.js +1 -0
  41. package/funcs/betaAgentsList.js.map +1 -1
  42. package/funcs/betaAgentsListVersionAliases.d.ts +19 -0
  43. package/funcs/betaAgentsListVersionAliases.d.ts.map +1 -0
  44. package/funcs/betaAgentsListVersionAliases.js +126 -0
  45. package/funcs/betaAgentsListVersionAliases.js.map +1 -0
  46. package/funcs/filesList.js +1 -0
  47. package/funcs/filesList.js.map +1 -1
  48. package/jsr.json +1 -1
  49. package/lib/config.d.ts +2 -2
  50. package/lib/config.js +2 -2
  51. package/models/components/agent.d.ts +2 -8
  52. package/models/components/agent.d.ts.map +1 -1
  53. package/models/components/agent.js +4 -8
  54. package/models/components/agent.js.map +1 -1
  55. package/models/components/agentaliasresponse.d.ts +13 -0
  56. package/models/components/agentaliasresponse.d.ts.map +1 -0
  57. package/models/components/agentaliasresponse.js +59 -0
  58. package/models/components/agentaliasresponse.js.map +1 -0
  59. package/models/components/agentconversation.d.ts +5 -8
  60. package/models/components/agentconversation.d.ts.map +1 -1
  61. package/models/components/agentconversation.js +8 -7
  62. package/models/components/agentconversation.js.map +1 -1
  63. package/models/components/agentcreationrequest.d.ts +2 -0
  64. package/models/components/agentcreationrequest.d.ts.map +1 -1
  65. package/models/components/agentcreationrequest.js +2 -0
  66. package/models/components/agentcreationrequest.js.map +1 -1
  67. package/models/components/agenthandoffdoneevent.d.ts +1 -8
  68. package/models/components/agenthandoffdoneevent.d.ts.map +1 -1
  69. package/models/components/agenthandoffdoneevent.js +2 -7
  70. package/models/components/agenthandoffdoneevent.js.map +1 -1
  71. package/models/components/agenthandoffentry.d.ts +4 -21
  72. package/models/components/agenthandoffentry.d.ts.map +1 -1
  73. package/models/components/agenthandoffentry.js +5 -19
  74. package/models/components/agenthandoffentry.js.map +1 -1
  75. package/models/components/agenthandoffstartedevent.d.ts +1 -8
  76. package/models/components/agenthandoffstartedevent.d.ts.map +1 -1
  77. package/models/components/agenthandoffstartedevent.js +2 -7
  78. package/models/components/agenthandoffstartedevent.js.map +1 -1
  79. package/models/components/agentupdaterequest.d.ts +2 -0
  80. package/models/components/agentupdaterequest.d.ts.map +1 -1
  81. package/models/components/agentupdaterequest.js +2 -0
  82. package/models/components/agentupdaterequest.js.map +1 -1
  83. package/models/components/archiveftmodelout.d.ts +1 -8
  84. package/models/components/archiveftmodelout.d.ts.map +1 -1
  85. package/models/components/archiveftmodelout.js +2 -7
  86. package/models/components/archiveftmodelout.js.map +1 -1
  87. package/models/components/assistantmessage.d.ts +2 -11
  88. package/models/components/assistantmessage.d.ts.map +1 -1
  89. package/models/components/assistantmessage.js +3 -10
  90. package/models/components/assistantmessage.js.map +1 -1
  91. package/models/components/audiochunk.d.ts +2 -11
  92. package/models/components/audiochunk.d.ts.map +1 -1
  93. package/models/components/audiochunk.js +3 -10
  94. package/models/components/audiochunk.js.map +1 -1
  95. package/models/components/audiotranscriptionrequest.d.ts +4 -0
  96. package/models/components/audiotranscriptionrequest.d.ts.map +1 -1
  97. package/models/components/audiotranscriptionrequest.js +3 -0
  98. package/models/components/audiotranscriptionrequest.js.map +1 -1
  99. package/models/components/audiotranscriptionrequeststream.d.ts +4 -0
  100. package/models/components/audiotranscriptionrequeststream.d.ts.map +1 -1
  101. package/models/components/audiotranscriptionrequeststream.js +3 -0
  102. package/models/components/audiotranscriptionrequeststream.js.map +1 -1
  103. package/models/components/basemodelcard.d.ts +0 -7
  104. package/models/components/basemodelcard.d.ts.map +1 -1
  105. package/models/components/basemodelcard.js +1 -6
  106. package/models/components/basemodelcard.js.map +1 -1
  107. package/models/components/batchjobout.d.ts +1 -8
  108. package/models/components/batchjobout.d.ts.map +1 -1
  109. package/models/components/batchjobout.js +2 -7
  110. package/models/components/batchjobout.js.map +1 -1
  111. package/models/components/batchjobsout.d.ts +1 -8
  112. package/models/components/batchjobsout.d.ts.map +1 -1
  113. package/models/components/batchjobsout.js +2 -7
  114. package/models/components/batchjobsout.js.map +1 -1
  115. package/models/components/classifierdetailedjobout.d.ts +2 -17
  116. package/models/components/classifierdetailedjobout.d.ts.map +1 -1
  117. package/models/components/classifierdetailedjobout.js +3 -13
  118. package/models/components/classifierdetailedjobout.js.map +1 -1
  119. package/models/components/classifierftmodelout.d.ts +2 -15
  120. package/models/components/classifierftmodelout.d.ts.map +1 -1
  121. package/models/components/classifierftmodelout.js +3 -13
  122. package/models/components/classifierftmodelout.js.map +1 -1
  123. package/models/components/classifierjobout.d.ts +2 -29
  124. package/models/components/classifierjobout.d.ts.map +1 -1
  125. package/models/components/classifierjobout.js +3 -19
  126. package/models/components/classifierjobout.js.map +1 -1
  127. package/models/components/codeinterpretertool.d.ts +3 -0
  128. package/models/components/codeinterpretertool.d.ts.map +1 -1
  129. package/models/components/codeinterpretertool.js +12 -0
  130. package/models/components/codeinterpretertool.js.map +1 -1
  131. package/models/components/completiondetailedjobout.d.ts +2 -17
  132. package/models/components/completiondetailedjobout.d.ts.map +1 -1
  133. package/models/components/completiondetailedjobout.js +3 -13
  134. package/models/components/completiondetailedjobout.js.map +1 -1
  135. package/models/components/completionftmodelout.d.ts +2 -15
  136. package/models/components/completionftmodelout.d.ts.map +1 -1
  137. package/models/components/completionftmodelout.js +3 -14
  138. package/models/components/completionftmodelout.js.map +1 -1
  139. package/models/components/completionjobout.d.ts +2 -29
  140. package/models/components/completionjobout.d.ts.map +1 -1
  141. package/models/components/completionjobout.js +3 -20
  142. package/models/components/completionjobout.js.map +1 -1
  143. package/models/components/conversationappendrequest.d.ts +5 -2
  144. package/models/components/conversationappendrequest.d.ts.map +1 -1
  145. package/models/components/conversationappendrequest.js +5 -1
  146. package/models/components/conversationappendrequest.js.map +1 -1
  147. package/models/components/conversationappendstreamrequest.d.ts +5 -2
  148. package/models/components/conversationappendstreamrequest.d.ts.map +1 -1
  149. package/models/components/conversationappendstreamrequest.js +5 -1
  150. package/models/components/conversationappendstreamrequest.js.map +1 -1
  151. package/models/components/conversationhistory.d.ts +1 -8
  152. package/models/components/conversationhistory.d.ts.map +1 -1
  153. package/models/components/conversationhistory.js +2 -7
  154. package/models/components/conversationhistory.js.map +1 -1
  155. package/models/components/conversationmessages.d.ts +1 -8
  156. package/models/components/conversationmessages.d.ts.map +1 -1
  157. package/models/components/conversationmessages.js +2 -7
  158. package/models/components/conversationmessages.js.map +1 -1
  159. package/models/components/conversationrequest.d.ts +8 -2
  160. package/models/components/conversationrequest.d.ts.map +1 -1
  161. package/models/components/conversationrequest.js +8 -2
  162. package/models/components/conversationrequest.js.map +1 -1
  163. package/models/components/conversationresponse.d.ts +1 -8
  164. package/models/components/conversationresponse.d.ts.map +1 -1
  165. package/models/components/conversationresponse.js +2 -7
  166. package/models/components/conversationresponse.js.map +1 -1
  167. package/models/components/conversationrestartrequest.d.ts +13 -4
  168. package/models/components/conversationrestartrequest.d.ts.map +1 -1
  169. package/models/components/conversationrestartrequest.js +9 -3
  170. package/models/components/conversationrestartrequest.js.map +1 -1
  171. package/models/components/conversationrestartstreamrequest.d.ts +13 -4
  172. package/models/components/conversationrestartstreamrequest.d.ts.map +1 -1
  173. package/models/components/conversationrestartstreamrequest.js +9 -3
  174. package/models/components/conversationrestartstreamrequest.js.map +1 -1
  175. package/models/components/conversationstreamrequest.d.ts +8 -2
  176. package/models/components/conversationstreamrequest.d.ts.map +1 -1
  177. package/models/components/conversationstreamrequest.js +8 -2
  178. package/models/components/conversationstreamrequest.js.map +1 -1
  179. package/models/components/documentlibrarytool.d.ts +3 -0
  180. package/models/components/documentlibrarytool.d.ts.map +1 -1
  181. package/models/components/documentlibrarytool.js +5 -0
  182. package/models/components/documentlibrarytool.js.map +1 -1
  183. package/models/components/documentout.d.ts +1 -1
  184. package/models/components/documentout.d.ts.map +1 -1
  185. package/models/components/documentout.js +2 -2
  186. package/models/components/documentout.js.map +1 -1
  187. package/models/components/documenturlchunk.d.ts +2 -11
  188. package/models/components/documenturlchunk.d.ts.map +1 -1
  189. package/models/components/documenturlchunk.js +3 -10
  190. package/models/components/documenturlchunk.js.map +1 -1
  191. package/models/components/ftmodelcard.d.ts +0 -7
  192. package/models/components/ftmodelcard.d.ts.map +1 -1
  193. package/models/components/ftmodelcard.js +1 -6
  194. package/models/components/ftmodelcard.js.map +1 -1
  195. package/models/components/functioncallentry.d.ts +13 -17
  196. package/models/components/functioncallentry.d.ts.map +1 -1
  197. package/models/components/functioncallentry.js +15 -16
  198. package/models/components/functioncallentry.js.map +1 -1
  199. package/models/components/functioncallevent.d.ts +8 -5
  200. package/models/components/functioncallevent.d.ts.map +1 -1
  201. package/models/components/functioncallevent.js +9 -5
  202. package/models/components/functioncallevent.js.map +1 -1
  203. package/models/components/functionresultentry.d.ts +4 -21
  204. package/models/components/functionresultentry.d.ts.map +1 -1
  205. package/models/components/functionresultentry.js +5 -19
  206. package/models/components/functionresultentry.js.map +1 -1
  207. package/models/components/functiontool.d.ts +5 -5
  208. package/models/components/functiontool.d.ts.map +1 -1
  209. package/models/components/functiontool.js +6 -6
  210. package/models/components/functiontool.js.map +1 -1
  211. package/models/components/githubrepositoryin.d.ts +2 -9
  212. package/models/components/githubrepositoryin.d.ts.map +1 -1
  213. package/models/components/githubrepositoryin.js +2 -7
  214. package/models/components/githubrepositoryin.js.map +1 -1
  215. package/models/components/githubrepositoryout.d.ts +1 -8
  216. package/models/components/githubrepositoryout.d.ts.map +1 -1
  217. package/models/components/githubrepositoryout.js +2 -7
  218. package/models/components/githubrepositoryout.js.map +1 -1
  219. package/models/components/imagedetail.d.ts +13 -0
  220. package/models/components/imagedetail.d.ts.map +1 -0
  221. package/models/components/imagedetail.js +51 -0
  222. package/models/components/imagedetail.js.map +1 -0
  223. package/models/components/imagegenerationtool.d.ts +3 -0
  224. package/models/components/imagegenerationtool.d.ts.map +1 -1
  225. package/models/components/imagegenerationtool.js +12 -0
  226. package/models/components/imagegenerationtool.js.map +1 -1
  227. package/models/components/imageurl.d.ts +2 -1
  228. package/models/components/imageurl.d.ts.map +1 -1
  229. package/models/components/imageurl.js +3 -2
  230. package/models/components/imageurl.js.map +1 -1
  231. package/models/components/imageurlchunk.d.ts +2 -11
  232. package/models/components/imageurlchunk.d.ts.map +1 -1
  233. package/models/components/imageurlchunk.js +3 -10
  234. package/models/components/imageurlchunk.js.map +1 -1
  235. package/models/components/index.d.ts +14 -0
  236. package/models/components/index.d.ts.map +1 -1
  237. package/models/components/index.js +14 -0
  238. package/models/components/index.js.map +1 -1
  239. package/models/components/jobin.d.ts +0 -3
  240. package/models/components/jobin.d.ts.map +1 -1
  241. package/models/components/jobin.js.map +1 -1
  242. package/models/components/jobsout.d.ts +1 -8
  243. package/models/components/jobsout.d.ts.map +1 -1
  244. package/models/components/jobsout.js +2 -7
  245. package/models/components/jobsout.js.map +1 -1
  246. package/models/components/legacyjobmetadataout.d.ts +1 -8
  247. package/models/components/legacyjobmetadataout.d.ts.map +1 -1
  248. package/models/components/legacyjobmetadataout.js +2 -7
  249. package/models/components/legacyjobmetadataout.js.map +1 -1
  250. package/models/components/messageinputentry.d.ts +9 -25
  251. package/models/components/messageinputentry.d.ts.map +1 -1
  252. package/models/components/messageinputentry.js +10 -25
  253. package/models/components/messageinputentry.js.map +1 -1
  254. package/models/components/messageoutputentry.d.ts +6 -31
  255. package/models/components/messageoutputentry.d.ts.map +1 -1
  256. package/models/components/messageoutputentry.js +7 -28
  257. package/models/components/messageoutputentry.js.map +1 -1
  258. package/models/components/messageoutputevent.d.ts +2 -15
  259. package/models/components/messageoutputevent.d.ts.map +1 -1
  260. package/models/components/messageoutputevent.js +3 -13
  261. package/models/components/messageoutputevent.js.map +1 -1
  262. package/models/components/mistralpromptmode.d.ts +14 -0
  263. package/models/components/mistralpromptmode.d.ts.map +1 -1
  264. package/models/components/mistralpromptmode.js +7 -0
  265. package/models/components/mistralpromptmode.js.map +1 -1
  266. package/models/components/modelcapabilities.d.ts +1 -0
  267. package/models/components/modelcapabilities.d.ts.map +1 -1
  268. package/models/components/modelcapabilities.js +2 -0
  269. package/models/components/modelcapabilities.js.map +1 -1
  270. package/models/components/modelconversation.d.ts +1 -8
  271. package/models/components/modelconversation.d.ts.map +1 -1
  272. package/models/components/modelconversation.js +2 -7
  273. package/models/components/modelconversation.js.map +1 -1
  274. package/models/components/realtimetranscriptionerror.d.ts +20 -0
  275. package/models/components/realtimetranscriptionerror.d.ts.map +1 -0
  276. package/models/components/realtimetranscriptionerror.js +61 -0
  277. package/models/components/realtimetranscriptionerror.js.map +1 -0
  278. package/models/components/realtimetranscriptionerrordetail.d.ts +45 -0
  279. package/models/components/realtimetranscriptionerrordetail.d.ts.map +1 -0
  280. package/models/components/realtimetranscriptionerrordetail.js +72 -0
  281. package/models/components/realtimetranscriptionerrordetail.js.map +1 -0
  282. package/models/components/realtimetranscriptioninputaudioappend.d.ts +22 -0
  283. package/models/components/realtimetranscriptioninputaudioappend.d.ts.map +1 -0
  284. package/models/components/realtimetranscriptioninputaudioappend.js +60 -0
  285. package/models/components/realtimetranscriptioninputaudioappend.js.map +1 -0
  286. package/models/components/realtimetranscriptioninputaudioend.d.ts +17 -0
  287. package/models/components/realtimetranscriptioninputaudioend.d.ts.map +1 -0
  288. package/models/components/realtimetranscriptioninputaudioend.js +58 -0
  289. package/models/components/realtimetranscriptioninputaudioend.js.map +1 -0
  290. package/models/components/realtimetranscriptioninputaudioflush.d.ts +17 -0
  291. package/models/components/realtimetranscriptioninputaudioflush.d.ts.map +1 -0
  292. package/models/components/realtimetranscriptioninputaudioflush.js +58 -0
  293. package/models/components/realtimetranscriptioninputaudioflush.js.map +1 -0
  294. package/models/components/realtimetranscriptionsession.d.ts +24 -0
  295. package/models/components/realtimetranscriptionsession.d.ts.map +1 -0
  296. package/models/components/realtimetranscriptionsession.js +78 -0
  297. package/models/components/realtimetranscriptionsession.js.map +1 -0
  298. package/models/components/realtimetranscriptionsessioncreated.d.ts +20 -0
  299. package/models/components/realtimetranscriptionsessioncreated.d.ts.map +1 -0
  300. package/models/components/realtimetranscriptionsessioncreated.js +61 -0
  301. package/models/components/realtimetranscriptionsessioncreated.js.map +1 -0
  302. package/models/components/realtimetranscriptionsessionupdated.d.ts +20 -0
  303. package/models/components/realtimetranscriptionsessionupdated.d.ts.map +1 -0
  304. package/models/components/realtimetranscriptionsessionupdated.js +61 -0
  305. package/models/components/realtimetranscriptionsessionupdated.js.map +1 -0
  306. package/models/components/realtimetranscriptionsessionupdatemessage.d.ts +20 -0
  307. package/models/components/realtimetranscriptionsessionupdatemessage.d.ts.map +1 -0
  308. package/models/components/realtimetranscriptionsessionupdatemessage.js +61 -0
  309. package/models/components/realtimetranscriptionsessionupdatemessage.js.map +1 -0
  310. package/models/components/realtimetranscriptionsessionupdatepayload.d.ts +26 -0
  311. package/models/components/realtimetranscriptionsessionupdatepayload.d.ts.map +1 -0
  312. package/models/components/realtimetranscriptionsessionupdatepayload.js +72 -0
  313. package/models/components/realtimetranscriptionsessionupdatepayload.js.map +1 -0
  314. package/models/components/referencechunk.d.ts +2 -11
  315. package/models/components/referencechunk.d.ts.map +1 -1
  316. package/models/components/referencechunk.js +3 -10
  317. package/models/components/referencechunk.js.map +1 -1
  318. package/models/components/responsedoneevent.d.ts +1 -8
  319. package/models/components/responsedoneevent.d.ts.map +1 -1
  320. package/models/components/responsedoneevent.js +2 -7
  321. package/models/components/responsedoneevent.js.map +1 -1
  322. package/models/components/responseerrorevent.d.ts +1 -8
  323. package/models/components/responseerrorevent.d.ts.map +1 -1
  324. package/models/components/responseerrorevent.js +2 -7
  325. package/models/components/responseerrorevent.js.map +1 -1
  326. package/models/components/responsestartedevent.d.ts +1 -8
  327. package/models/components/responsestartedevent.d.ts.map +1 -1
  328. package/models/components/responsestartedevent.js +2 -7
  329. package/models/components/responsestartedevent.js.map +1 -1
  330. package/models/components/systemmessage.d.ts +2 -9
  331. package/models/components/systemmessage.d.ts.map +1 -1
  332. package/models/components/systemmessage.js +2 -7
  333. package/models/components/systemmessage.js.map +1 -1
  334. package/models/components/textchunk.d.ts +2 -11
  335. package/models/components/textchunk.d.ts.map +1 -1
  336. package/models/components/textchunk.js +3 -10
  337. package/models/components/textchunk.js.map +1 -1
  338. package/models/components/thinkchunk.d.ts +8 -20
  339. package/models/components/thinkchunk.d.ts.map +1 -1
  340. package/models/components/thinkchunk.js +10 -17
  341. package/models/components/thinkchunk.js.map +1 -1
  342. package/models/components/timestampgranularity.d.ts +1 -0
  343. package/models/components/timestampgranularity.d.ts.map +1 -1
  344. package/models/components/timestampgranularity.js +1 -0
  345. package/models/components/timestampgranularity.js.map +1 -1
  346. package/models/components/toolcallconfirmation.d.ts +22 -0
  347. package/models/components/toolcallconfirmation.d.ts.map +1 -0
  348. package/models/components/toolcallconfirmation.js +61 -0
  349. package/models/components/toolcallconfirmation.js.map +1 -0
  350. package/models/components/toolconfiguration.d.ts +21 -0
  351. package/models/components/toolconfiguration.d.ts.map +1 -0
  352. package/models/components/toolconfiguration.js +71 -0
  353. package/models/components/toolconfiguration.js.map +1 -0
  354. package/models/components/toolexecutiondeltaevent.d.ts +1 -8
  355. package/models/components/toolexecutiondeltaevent.d.ts.map +1 -1
  356. package/models/components/toolexecutiondeltaevent.js +2 -7
  357. package/models/components/toolexecutiondeltaevent.js.map +1 -1
  358. package/models/components/toolexecutiondoneevent.d.ts +1 -8
  359. package/models/components/toolexecutiondoneevent.d.ts.map +1 -1
  360. package/models/components/toolexecutiondoneevent.js +2 -7
  361. package/models/components/toolexecutiondoneevent.js.map +1 -1
  362. package/models/components/toolexecutionentry.d.ts +4 -21
  363. package/models/components/toolexecutionentry.d.ts.map +1 -1
  364. package/models/components/toolexecutionentry.js +5 -19
  365. package/models/components/toolexecutionentry.js.map +1 -1
  366. package/models/components/toolexecutionstartedevent.d.ts +1 -8
  367. package/models/components/toolexecutionstartedevent.d.ts.map +1 -1
  368. package/models/components/toolexecutionstartedevent.js +2 -7
  369. package/models/components/toolexecutionstartedevent.js.map +1 -1
  370. package/models/components/toolfilechunk.d.ts +2 -11
  371. package/models/components/toolfilechunk.d.ts.map +1 -1
  372. package/models/components/toolfilechunk.js +3 -10
  373. package/models/components/toolfilechunk.js.map +1 -1
  374. package/models/components/toolmessage.d.ts +2 -9
  375. package/models/components/toolmessage.d.ts.map +1 -1
  376. package/models/components/toolmessage.js +2 -7
  377. package/models/components/toolmessage.js.map +1 -1
  378. package/models/components/toolreferencechunk.d.ts +2 -11
  379. package/models/components/toolreferencechunk.d.ts.map +1 -1
  380. package/models/components/toolreferencechunk.js +3 -10
  381. package/models/components/toolreferencechunk.js.map +1 -1
  382. package/models/components/transcriptionsegmentchunk.d.ts +6 -11
  383. package/models/components/transcriptionsegmentchunk.d.ts.map +1 -1
  384. package/models/components/transcriptionsegmentchunk.js +13 -11
  385. package/models/components/transcriptionsegmentchunk.js.map +1 -1
  386. package/models/components/transcriptionstreamdone.d.ts +2 -11
  387. package/models/components/transcriptionstreamdone.d.ts.map +1 -1
  388. package/models/components/transcriptionstreamdone.js +3 -10
  389. package/models/components/transcriptionstreamdone.js.map +1 -1
  390. package/models/components/transcriptionstreamlanguage.d.ts +2 -11
  391. package/models/components/transcriptionstreamlanguage.d.ts.map +1 -1
  392. package/models/components/transcriptionstreamlanguage.js +3 -10
  393. package/models/components/transcriptionstreamlanguage.js.map +1 -1
  394. package/models/components/transcriptionstreamsegmentdelta.d.ts +2 -8
  395. package/models/components/transcriptionstreamsegmentdelta.d.ts.map +1 -1
  396. package/models/components/transcriptionstreamsegmentdelta.js +9 -8
  397. package/models/components/transcriptionstreamsegmentdelta.js.map +1 -1
  398. package/models/components/transcriptionstreamtextdelta.d.ts +2 -11
  399. package/models/components/transcriptionstreamtextdelta.d.ts.map +1 -1
  400. package/models/components/transcriptionstreamtextdelta.js +3 -10
  401. package/models/components/transcriptionstreamtextdelta.js.map +1 -1
  402. package/models/components/unarchiveftmodelout.d.ts +1 -8
  403. package/models/components/unarchiveftmodelout.d.ts.map +1 -1
  404. package/models/components/unarchiveftmodelout.js +2 -7
  405. package/models/components/unarchiveftmodelout.js.map +1 -1
  406. package/models/components/usermessage.d.ts +2 -9
  407. package/models/components/usermessage.d.ts.map +1 -1
  408. package/models/components/usermessage.js +2 -7
  409. package/models/components/usermessage.js.map +1 -1
  410. package/models/components/wandbintegration.d.ts +2 -9
  411. package/models/components/wandbintegration.d.ts.map +1 -1
  412. package/models/components/wandbintegration.js +2 -7
  413. package/models/components/wandbintegration.js.map +1 -1
  414. package/models/components/wandbintegrationout.d.ts +1 -8
  415. package/models/components/wandbintegrationout.d.ts.map +1 -1
  416. package/models/components/wandbintegrationout.js +2 -7
  417. package/models/components/wandbintegrationout.js.map +1 -1
  418. package/models/components/websearchpremiumtool.d.ts +3 -0
  419. package/models/components/websearchpremiumtool.d.ts.map +1 -1
  420. package/models/components/websearchpremiumtool.js +12 -0
  421. package/models/components/websearchpremiumtool.js.map +1 -1
  422. package/models/components/websearchtool.d.ts +3 -0
  423. package/models/components/websearchtool.d.ts.map +1 -1
  424. package/models/components/websearchtool.js +12 -0
  425. package/models/components/websearchtool.js.map +1 -1
  426. package/models/operations/agentsapiv1agentscreateorupdatealias.d.ts +16 -0
  427. package/models/operations/agentsapiv1agentscreateorupdatealias.d.ts.map +1 -0
  428. package/models/operations/agentsapiv1agentscreateorupdatealias.js +56 -0
  429. package/models/operations/agentsapiv1agentscreateorupdatealias.js.map +1 -0
  430. package/models/operations/agentsapiv1agentsdeletealias.d.ts +14 -0
  431. package/models/operations/agentsapiv1agentsdeletealias.d.ts.map +1 -0
  432. package/models/operations/agentsapiv1agentsdeletealias.js +55 -0
  433. package/models/operations/agentsapiv1agentsdeletealias.js.map +1 -0
  434. package/models/operations/agentsapiv1agentsget.d.ts +8 -2
  435. package/models/operations/agentsapiv1agentsget.d.ts.map +1 -1
  436. package/models/operations/agentsapiv1agentsget.js +8 -2
  437. package/models/operations/agentsapiv1agentsget.js.map +1 -1
  438. package/models/operations/agentsapiv1agentsgetversion.d.ts +2 -2
  439. package/models/operations/agentsapiv1agentsgetversion.js +1 -1
  440. package/models/operations/agentsapiv1agentsgetversion.js.map +1 -1
  441. package/models/operations/agentsapiv1agentslist.d.ts +8 -0
  442. package/models/operations/agentsapiv1agentslist.d.ts.map +1 -1
  443. package/models/operations/agentsapiv1agentslist.js +1 -0
  444. package/models/operations/agentsapiv1agentslist.js.map +1 -1
  445. package/models/operations/agentsapiv1agentslistversionaliases.d.ts +12 -0
  446. package/models/operations/agentsapiv1agentslistversionaliases.d.ts.map +1 -0
  447. package/models/operations/agentsapiv1agentslistversionaliases.js +54 -0
  448. package/models/operations/agentsapiv1agentslistversionaliases.js.map +1 -0
  449. package/models/operations/filesapirouteslistfiles.d.ts +2 -0
  450. package/models/operations/filesapirouteslistfiles.d.ts.map +1 -1
  451. package/models/operations/filesapirouteslistfiles.js +1 -0
  452. package/models/operations/filesapirouteslistfiles.js.map +1 -1
  453. package/models/operations/index.d.ts +3 -0
  454. package/models/operations/index.d.ts.map +1 -1
  455. package/models/operations/index.js +3 -0
  456. package/models/operations/index.js.map +1 -1
  457. package/models/operations/jobsapiroutesbatchgetbatchjobs.d.ts +10 -0
  458. package/models/operations/jobsapiroutesbatchgetbatchjobs.d.ts.map +1 -1
  459. package/models/operations/jobsapiroutesbatchgetbatchjobs.js +10 -1
  460. package/models/operations/jobsapiroutesbatchgetbatchjobs.js.map +1 -1
  461. package/package.json +4 -1
  462. package/sdk/mistralagents.d.ts +22 -1
  463. package/sdk/mistralagents.d.ts.map +1 -1
  464. package/sdk/mistralagents.js +31 -1
  465. package/sdk/mistralagents.js.map +1 -1
  466. package/src/extra/realtime/connection.ts +459 -0
  467. package/src/extra/realtime/errors.ts +32 -0
  468. package/src/extra/realtime/index.ts +32 -0
  469. package/src/extra/realtime/transcription.ts +291 -0
  470. package/src/extra/structChat.ts +2 -2
  471. package/src/funcs/audioTranscriptionsComplete.ts +6 -0
  472. package/src/funcs/audioTranscriptionsStream.ts +6 -0
  473. package/src/funcs/batchJobsList.ts +1 -0
  474. package/src/funcs/betaAgentsCreateVersionAlias.ts +184 -0
  475. package/src/funcs/betaAgentsDeleteVersionAlias.ts +184 -0
  476. package/src/funcs/betaAgentsGet.ts +1 -1
  477. package/src/funcs/betaAgentsGetVersion.ts +1 -1
  478. package/src/funcs/betaAgentsList.ts +1 -0
  479. package/src/funcs/betaAgentsListVersionAliases.ts +179 -0
  480. package/src/funcs/filesList.ts +1 -0
  481. package/src/lib/config.ts +2 -2
  482. package/src/models/components/agent.ts +5 -12
  483. package/src/models/components/agentaliasresponse.ts +43 -0
  484. package/src/models/components/agentconversation.ts +20 -14
  485. package/src/models/components/agentcreationrequest.ts +4 -0
  486. package/src/models/components/agenthandoffdoneevent.ts +2 -15
  487. package/src/models/components/agenthandoffentry.ts +8 -39
  488. package/src/models/components/agenthandoffstartedevent.ts +2 -17
  489. package/src/models/components/agentupdaterequest.ts +4 -0
  490. package/src/models/components/archiveftmodelout.ts +2 -15
  491. package/src/models/components/assistantmessage.ts +4 -19
  492. package/src/models/components/audiochunk.ts +4 -19
  493. package/src/models/components/audiotranscriptionrequest.ts +7 -0
  494. package/src/models/components/audiotranscriptionrequeststream.ts +7 -0
  495. package/src/models/components/basemodelcard.ts +0 -11
  496. package/src/models/components/batchjobout.ts +2 -13
  497. package/src/models/components/batchjobsout.ts +2 -13
  498. package/src/models/components/classifierdetailedjobout.ts +4 -31
  499. package/src/models/components/classifierftmodelout.ts +4 -29
  500. package/src/models/components/classifierjobout.ts +4 -41
  501. package/src/models/components/codeinterpretertool.ts +19 -0
  502. package/src/models/components/completiondetailedjobout.ts +4 -31
  503. package/src/models/components/completionftmodelout.ts +4 -26
  504. package/src/models/components/completionjobout.ts +4 -38
  505. package/src/models/components/conversationappendrequest.ts +13 -3
  506. package/src/models/components/conversationappendstreamrequest.ts +13 -3
  507. package/src/models/components/conversationhistory.ts +2 -17
  508. package/src/models/components/conversationmessages.ts +2 -17
  509. package/src/models/components/conversationrequest.ts +19 -3
  510. package/src/models/components/conversationresponse.ts +2 -17
  511. package/src/models/components/conversationrestartrequest.ts +32 -6
  512. package/src/models/components/conversationrestartstreamrequest.ts +35 -6
  513. package/src/models/components/conversationstreamrequest.ts +25 -3
  514. package/src/models/components/documentlibrarytool.ts +12 -0
  515. package/src/models/components/documentout.ts +3 -3
  516. package/src/models/components/documenturlchunk.ts +4 -19
  517. package/src/models/components/ftmodelcard.ts +0 -11
  518. package/src/models/components/functioncallentry.ts +25 -33
  519. package/src/models/components/functioncallevent.ts +17 -8
  520. package/src/models/components/functionresultentry.ts +8 -41
  521. package/src/models/components/functiontool.ts +10 -11
  522. package/src/models/components/githubrepositoryin.ts +3 -14
  523. package/src/models/components/githubrepositoryout.ts +2 -15
  524. package/src/models/components/imagedetail.ts +20 -0
  525. package/src/models/components/imagegenerationtool.ts +19 -0
  526. package/src/models/components/imageurl.ts +8 -3
  527. package/src/models/components/imageurlchunk.ts +4 -19
  528. package/src/models/components/index.ts +14 -0
  529. package/src/models/components/jobin.ts +0 -3
  530. package/src/models/components/jobsout.ts +2 -13
  531. package/src/models/components/legacyjobmetadataout.ts +2 -15
  532. package/src/models/components/messageinputentry.ts +18 -45
  533. package/src/models/components/messageoutputentry.ts +12 -57
  534. package/src/models/components/messageoutputevent.ts +4 -25
  535. package/src/models/components/mistralpromptmode.ts +14 -0
  536. package/src/models/components/modelcapabilities.ts +3 -0
  537. package/src/models/components/modelconversation.ts +2 -15
  538. package/src/models/components/realtimetranscriptionerror.ts +61 -0
  539. package/src/models/components/realtimetranscriptionerrordetail.ts +94 -0
  540. package/src/models/components/realtimetranscriptioninputaudioappend.ts +61 -0
  541. package/src/models/components/realtimetranscriptioninputaudioend.ts +54 -0
  542. package/src/models/components/realtimetranscriptioninputaudioflush.ts +54 -0
  543. package/src/models/components/realtimetranscriptionsession.ts +84 -0
  544. package/src/models/components/realtimetranscriptionsessioncreated.ts +64 -0
  545. package/src/models/components/realtimetranscriptionsessionupdated.ts +64 -0
  546. package/src/models/components/realtimetranscriptionsessionupdatemessage.ts +71 -0
  547. package/src/models/components/realtimetranscriptionsessionupdatepayload.ts +88 -0
  548. package/src/models/components/referencechunk.ts +4 -19
  549. package/src/models/components/responsedoneevent.ts +2 -13
  550. package/src/models/components/responseerrorevent.ts +2 -13
  551. package/src/models/components/responsestartedevent.ts +2 -15
  552. package/src/models/components/systemmessage.ts +3 -14
  553. package/src/models/components/textchunk.ts +4 -19
  554. package/src/models/components/thinkchunk.ts +23 -39
  555. package/src/models/components/timestampgranularity.ts +1 -0
  556. package/src/models/components/toolcallconfirmation.ts +50 -0
  557. package/src/models/components/toolconfiguration.ts +68 -0
  558. package/src/models/components/toolexecutiondeltaevent.ts +2 -17
  559. package/src/models/components/toolexecutiondoneevent.ts +2 -15
  560. package/src/models/components/toolexecutionentry.ts +8 -39
  561. package/src/models/components/toolexecutionstartedevent.ts +2 -17
  562. package/src/models/components/toolfilechunk.ts +4 -19
  563. package/src/models/components/toolmessage.ts +3 -14
  564. package/src/models/components/toolreferencechunk.ts +4 -19
  565. package/src/models/components/transcriptionsegmentchunk.ts +20 -19
  566. package/src/models/components/transcriptionstreamdone.ts +4 -25
  567. package/src/models/components/transcriptionstreamlanguage.ts +5 -24
  568. package/src/models/components/transcriptionstreamsegmentdelta.ts +10 -18
  569. package/src/models/components/transcriptionstreamtextdelta.ts +7 -24
  570. package/src/models/components/unarchiveftmodelout.ts +2 -15
  571. package/src/models/components/usermessage.ts +3 -14
  572. package/src/models/components/wandbintegration.ts +3 -14
  573. package/src/models/components/wandbintegrationout.ts +2 -15
  574. package/src/models/components/websearchpremiumtool.ts +19 -0
  575. package/src/models/components/websearchtool.ts +19 -0
  576. package/src/models/operations/agentsapiv1agentscreateorupdatealias.ts +46 -0
  577. package/src/models/operations/agentsapiv1agentsdeletealias.ts +41 -0
  578. package/src/models/operations/agentsapiv1agentsget.ts +19 -3
  579. package/src/models/operations/agentsapiv1agentsgetversion.ts +3 -3
  580. package/src/models/operations/agentsapiv1agentslist.ts +9 -0
  581. package/src/models/operations/agentsapiv1agentslistversionaliases.ts +40 -0
  582. package/src/models/operations/filesapirouteslistfiles.ts +3 -0
  583. package/src/models/operations/index.ts +3 -0
  584. package/src/models/operations/jobsapiroutesbatchgetbatchjobs.ts +15 -0
  585. package/src/sdk/mistralagents.ts +55 -1
  586. package/tests/extra/realtime.test.ts +389 -0
package/README.md CHANGED
@@ -101,9 +101,9 @@ async function run() {
101
101
  model: "mistral-large-latest",
102
102
  messages: [
103
103
  {
104
+ role: "user",
104
105
  content:
105
106
  "Who is the best French painter? Answer in one short sentence.",
106
- role: "user",
107
107
  },
108
108
  ],
109
109
  responseFormat: {
@@ -157,9 +157,9 @@ async function run() {
157
157
  const result = await mistral.agents.complete({
158
158
  messages: [
159
159
  {
160
+ role: "user",
160
161
  content:
161
162
  "Who is the best French painter? Answer in one short sentence.",
162
- role: "user",
163
163
  },
164
164
  ],
165
165
  agentId: "<id>",
@@ -240,6 +240,9 @@ We have dedicated SDKs for the following providers:
240
240
  * [updateVersion](docs/sdks/mistralagents/README.md#updateversion) - Update an agent version.
241
241
  * [listVersions](docs/sdks/mistralagents/README.md#listversions) - List all versions of an agent.
242
242
  * [getVersion](docs/sdks/mistralagents/README.md#getversion) - Retrieve a specific version of an agent.
243
+ * [createVersionAlias](docs/sdks/mistralagents/README.md#createversionalias) - Create or update an agent version alias.
244
+ * [listVersionAliases](docs/sdks/mistralagents/README.md#listversionaliases) - List all aliases for an agent.
245
+ * [deleteVersionAlias](docs/sdks/mistralagents/README.md#deleteversionalias) - Delete an agent version alias.
243
246
 
244
247
  ### [Beta.Conversations](docs/sdks/conversations/README.md)
245
248
 
@@ -552,7 +555,7 @@ run();
552
555
 
553
556
 
554
557
  **Inherit from [`MistralError`](./src/models/errors/mistralerror.ts)**:
555
- * [`HTTPValidationError`](./src/models/errors/httpvalidationerror.ts): Validation Error. Status code `422`. Applicable to 50 of 72 methods.*
558
+ * [`HTTPValidationError`](./src/models/errors/httpvalidationerror.ts): Validation Error. Status code `422`. Applicable to 53 of 75 methods.*
556
559
  * [`ResponseValidationError`](./src/models/errors/responsevalidationerror.ts): Type mismatch between the data returned from the server and the structure expected by the SDK. See `error.rawValue` for the raw value and `error.pretty()` for a nicely formatted multi-line string.
557
560
 
558
561
  </details>
@@ -723,10 +726,13 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md).
723
726
  - [`batchJobsGet`](docs/sdks/mistraljobs/README.md#get) - Get Batch Job
724
727
  - [`batchJobsList`](docs/sdks/mistraljobs/README.md#list) - Get Batch Jobs
725
728
  - [`betaAgentsCreate`](docs/sdks/mistralagents/README.md#create) - Create a agent that can be used within a conversation.
729
+ - [`betaAgentsCreateVersionAlias`](docs/sdks/mistralagents/README.md#createversionalias) - Create or update an agent version alias.
726
730
  - [`betaAgentsDelete`](docs/sdks/mistralagents/README.md#delete) - Delete an agent entity.
731
+ - [`betaAgentsDeleteVersionAlias`](docs/sdks/mistralagents/README.md#deleteversionalias) - Delete an agent version alias.
727
732
  - [`betaAgentsGet`](docs/sdks/mistralagents/README.md#get) - Retrieve an agent entity.
728
733
  - [`betaAgentsGetVersion`](docs/sdks/mistralagents/README.md#getversion) - Retrieve a specific version of an agent.
729
734
  - [`betaAgentsList`](docs/sdks/mistralagents/README.md#list) - List agent entities.
735
+ - [`betaAgentsListVersionAliases`](docs/sdks/mistralagents/README.md#listversionaliases) - List all aliases for an agent.
730
736
  - [`betaAgentsListVersions`](docs/sdks/mistralagents/README.md#listversions) - List all versions of an agent.
731
737
  - [`betaAgentsUpdate`](docs/sdks/mistralagents/README.md#update) - Update an agent entity.
732
738
  - [`betaAgentsUpdateVersion`](docs/sdks/mistralagents/README.md#updateversion) - Update an agent version.
@@ -0,0 +1,17 @@
1
+ import { Mistral } from "@mistralai/mistralai";
2
+
3
+ const apiKey = process.env["MISTRAL_API_KEY"];
4
+ if (!apiKey) {
5
+ throw new Error("missing MISTRAL_API_KEY environment variable");
6
+ }
7
+
8
+ const mistral = new Mistral({ apiKey: apiKey });
9
+
10
+ const response = await mistral.audio.transcriptions.complete({
11
+ model: "voxtral-mini-2602",
12
+ fileUrl: "https://docs.mistral.ai/audio/bcn_weather.mp3",
13
+ diarize: true,
14
+ timestampGranularities: ["segment"],
15
+ });
16
+
17
+ process.stdout.write(JSON.stringify(response));
@@ -0,0 +1,163 @@
1
+ import { spawn, type ChildProcess } from "node:child_process";
2
+ import yargs from "yargs/yargs";
3
+ import { hideBin } from "yargs/helpers";
4
+
5
+ import {
6
+ AudioEncoding,
7
+ RealtimeTranscription,
8
+ } from "@mistralai/mistralai/extra/realtime";
9
+
10
+ type Args = {
11
+ model: string;
12
+ encoding: string;
13
+ sampleRate: number;
14
+ apiKey?: string;
15
+ baseUrl: string;
16
+ };
17
+
18
+ function parseArgs(): Args {
19
+ const argv = yargs(hideBin(process.argv))
20
+ .usage("Usage: $0 [options]")
21
+ .option("model", {
22
+ type: "string",
23
+ default: "voxtral-mini-transcribe-realtime-2602",
24
+ describe: "Model ID",
25
+ })
26
+ .option("encoding", {
27
+ type: "string",
28
+ default: AudioEncoding.PcmS16le,
29
+ describe: "Audio encoding",
30
+ })
31
+ .option("sample-rate", {
32
+ type: "number",
33
+ default: 16000,
34
+ describe: "Sample rate in Hz",
35
+ })
36
+ .option("api-key", {
37
+ type: "string",
38
+ default: process.env["MISTRAL_API_KEY"],
39
+ describe: "Mistral API key",
40
+ })
41
+ .option("base-url", {
42
+ type: "string",
43
+ default: process.env["MISTRAL_BASE_URL"] ?? "wss://api.mistral.ai",
44
+ describe: "API base URL",
45
+ })
46
+ .help()
47
+ .parseSync();
48
+
49
+ return {
50
+ model: argv.model,
51
+ encoding: argv.encoding,
52
+ sampleRate: argv.sampleRate,
53
+ apiKey: argv.apiKey,
54
+ baseUrl: argv.baseUrl,
55
+ };
56
+ }
57
+
58
+ async function* captureAudio(
59
+ sampleRate: number,
60
+ ): AsyncGenerator<Uint8Array, void, unknown> {
61
+ const recorder: ChildProcess = spawn(
62
+ "rec",
63
+ [
64
+ "-q",
65
+ "-t", "raw",
66
+ "-b", "16",
67
+ "-e", "signed-integer",
68
+ "-r", String(sampleRate),
69
+ "-c", "1",
70
+ "-",
71
+ ],
72
+ { stdio: ["ignore", "pipe", "ignore"] },
73
+ );
74
+
75
+ recorder.on("error", (err) => {
76
+ const error = err as NodeJS.ErrnoException;
77
+ if (error.code === "ENOENT") {
78
+ console.error(
79
+ "\nError: 'rec' not found. Install SoX: brew install sox (macOS) or apt install sox (Linux)",
80
+ );
81
+ process.exit(1);
82
+ }
83
+ throw err;
84
+ });
85
+
86
+ try {
87
+ if (!recorder.stdout) {
88
+ throw new Error("Failed to create audio capture stream");
89
+ }
90
+ for await (const chunk of recorder.stdout) {
91
+ yield new Uint8Array(chunk as Buffer);
92
+ }
93
+ } finally {
94
+ if (!recorder.killed) {
95
+ recorder.kill("SIGTERM");
96
+ }
97
+ }
98
+ }
99
+
100
+ function clearLine(): void {
101
+ process.stdout.write("\x1b[2K\r");
102
+ }
103
+
104
+ async function main(): Promise<void> {
105
+ const args = parseArgs();
106
+
107
+ const apiKey = args.apiKey ?? process.env["MISTRAL_API_KEY"];
108
+ if (!apiKey) {
109
+ console.error(
110
+ "Missing MISTRAL_API_KEY. Set the environment variable or pass --api-key.",
111
+ );
112
+ process.exit(1);
113
+ }
114
+
115
+ const client = new RealtimeTranscription({
116
+ apiKey: apiKey,
117
+ serverURL: args.baseUrl,
118
+ });
119
+
120
+ console.log("Listening... (Ctrl+C to stop)\n");
121
+
122
+ const audioStream = captureAudio(args.sampleRate);
123
+
124
+ process.on("SIGINT", () => {
125
+ clearLine();
126
+ console.log("\nStopped.");
127
+ process.exit(0);
128
+ });
129
+
130
+ try {
131
+ for await (const event of client.transcribeStream(
132
+ audioStream,
133
+ args.model,
134
+ {
135
+ audioFormat: {
136
+ encoding: args.encoding,
137
+ sampleRate: args.sampleRate,
138
+ },
139
+ },
140
+ )) {
141
+ if (event.type === "transcription.text.delta") {
142
+ process.stdout.write(event.text);
143
+ continue;
144
+ }
145
+ if (event.type === "transcription.done") {
146
+ process.stdout.write("\n");
147
+ break;
148
+ }
149
+ if (event.type === "error") {
150
+ const errorMessage = typeof event.error.message === "string"
151
+ ? event.error.message
152
+ : JSON.stringify(event.error.message);
153
+ console.error(`\nTranscription error: ${errorMessage}`);
154
+ process.exitCode = 1;
155
+ break;
156
+ }
157
+ }
158
+ } finally {
159
+ await audioStream.return?.();
160
+ }
161
+ }
162
+
163
+ await main();
@@ -0,0 +1,225 @@
1
+ import { spawn } from "node:child_process";
2
+ import { randomUUID } from "node:crypto";
3
+ import { createReadStream, promises as fs } from "node:fs";
4
+ import { tmpdir } from "node:os";
5
+ import { extname, join, resolve } from "node:path";
6
+ import yargs from "yargs/yargs";
7
+ import { hideBin } from "yargs/helpers";
8
+
9
+ import {
10
+ AudioEncoding,
11
+ RealtimeTranscription,
12
+ } from "@mistralai/mistralai/extra/realtime";
13
+
14
+ type KnownAudioEncoding = (typeof AudioEncoding)[keyof typeof AudioEncoding];
15
+
16
+ const DEFAULT_ENCODING: KnownAudioEncoding = AudioEncoding.PcmS16le;
17
+ const DEFAULT_SAMPLE_RATE = 16000;
18
+
19
+ const FFMPEG_FORMAT_BY_ENCODING: Record<KnownAudioEncoding, string> = {
20
+ [AudioEncoding.PcmS16le]: "s16le",
21
+ [AudioEncoding.PcmS32le]: "s32le",
22
+ [AudioEncoding.PcmF32le]: "f32le",
23
+ [AudioEncoding.PcmF16le]: "f16le",
24
+ [AudioEncoding.PcmMulaw]: "mulaw",
25
+ [AudioEncoding.PcmAlaw]: "alaw",
26
+ };
27
+
28
+ type Args = {
29
+ file?: string;
30
+ model: string;
31
+ apiKey?: string;
32
+ baseUrl: string;
33
+ noConvert: boolean;
34
+ };
35
+
36
+ function parseArgs(): Args {
37
+ const argv = yargs(hideBin(process.argv))
38
+ .usage("Usage: $0 <file> [options]")
39
+ .option("model", {
40
+ type: "string",
41
+ default: "voxtral-mini-transcribe-realtime-2602",
42
+ describe: "Model ID",
43
+ })
44
+ .option("api-key", {
45
+ type: "string",
46
+ default: process.env["MISTRAL_API_KEY"],
47
+ describe: "Mistral API key",
48
+ })
49
+ .option("base-url", {
50
+ type: "string",
51
+ default: process.env["MISTRAL_BASE_URL"] ?? "https://api.mistral.ai",
52
+ describe: "API base URL",
53
+ })
54
+ .option("no-convert", {
55
+ type: "boolean",
56
+ default: false,
57
+ describe: "Skip ffmpeg conversion (input must be raw PCM)",
58
+ })
59
+ .help()
60
+ .parseSync();
61
+
62
+ const fileArg = argv._[0];
63
+ const file = typeof fileArg === "string" ? fileArg : undefined;
64
+
65
+ return {
66
+ file,
67
+ model: argv.model,
68
+ apiKey: argv.apiKey,
69
+ baseUrl: argv.baseUrl,
70
+ noConvert: argv.noConvert,
71
+ };
72
+ }
73
+
74
+ async function runFfmpeg(args: string[]): Promise<void> {
75
+ await new Promise<void>((resolve, reject) => {
76
+ const child = spawn("ffmpeg", args, {
77
+ stdio: ["ignore", "ignore", "pipe"],
78
+ });
79
+
80
+ let stderr = "";
81
+ child.stderr.setEncoding("utf8");
82
+ child.stderr.on("data", (chunk) => {
83
+ stderr += chunk;
84
+ });
85
+
86
+ child.on("error", (err) => {
87
+ const error = err as NodeJS.ErrnoException;
88
+ if (error.code === "ENOENT") {
89
+ reject(new Error(
90
+ "ffmpeg not found. Install ffmpeg or use --no-convert with raw PCM input.",
91
+ ));
92
+ return;
93
+ }
94
+ reject(err);
95
+ });
96
+
97
+ child.on("close", (code) => {
98
+ if (code === 0) {
99
+ resolve();
100
+ return;
101
+ }
102
+ const details = stderr.trim();
103
+ reject(new Error(
104
+ `ffmpeg conversion failed${details ? `: ${details}` : ""}`,
105
+ ));
106
+ });
107
+ });
108
+ }
109
+
110
+ async function convertAudioToPcm(
111
+ inputPath: string,
112
+ encoding: KnownAudioEncoding,
113
+ sampleRate: number,
114
+ ): Promise<string> {
115
+ const tempPath = join(
116
+ tmpdir(),
117
+ `mistral-realtime-${randomUUID()}.pcm`,
118
+ );
119
+
120
+ const ffmpegFormat = FFMPEG_FORMAT_BY_ENCODING[encoding];
121
+ const args = [
122
+ "-y",
123
+ "-i",
124
+ inputPath,
125
+ "-f",
126
+ ffmpegFormat,
127
+ "-ar",
128
+ String(sampleRate),
129
+ "-ac",
130
+ "1",
131
+ tempPath,
132
+ ];
133
+
134
+ try {
135
+ await runFfmpeg(args);
136
+ } catch (err) {
137
+ await fs.unlink(tempPath).catch(() => undefined);
138
+ throw err;
139
+ }
140
+
141
+ return tempPath;
142
+ }
143
+
144
+ async function* streamAudioFile(
145
+ filePath: string,
146
+ chunkSize: number = 4096,
147
+ ): AsyncIterable<Uint8Array> {
148
+ for await (const chunk of createReadStream(filePath, { highWaterMark: chunkSize })) {
149
+ yield chunk as Uint8Array;
150
+ }
151
+ }
152
+
153
+ async function main(): Promise<void> {
154
+ const args = parseArgs();
155
+ if (!args.file) {
156
+ console.error(
157
+ "Missing audio file. Provide a file path after the script name.",
158
+ );
159
+ return;
160
+ }
161
+
162
+ const apiKey = args.apiKey ?? process.env["MISTRAL_API_KEY"];
163
+ if (!apiKey) {
164
+ throw new Error(
165
+ "Missing MISTRAL_API_KEY. Set the environment variable or pass --api-key.",
166
+ );
167
+ }
168
+
169
+ const inputPath = resolve(args.file);
170
+
171
+ let audioPath = inputPath;
172
+ let tempPath: string | undefined;
173
+
174
+ const extension = extname(inputPath).toLowerCase();
175
+ const isRawPcm = extension === ".pcm" || extension === ".raw";
176
+ if (!args.noConvert && !isRawPcm) {
177
+ tempPath = await convertAudioToPcm(
178
+ inputPath,
179
+ DEFAULT_ENCODING,
180
+ DEFAULT_SAMPLE_RATE,
181
+ );
182
+ audioPath = tempPath;
183
+ }
184
+
185
+ const client = new RealtimeTranscription({
186
+ apiKey: apiKey,
187
+ serverURL: args.baseUrl,
188
+ });
189
+
190
+ try {
191
+ for await (const event of client.transcribeStream(
192
+ streamAudioFile(audioPath),
193
+ args.model,
194
+ {
195
+ audioFormat: {
196
+ encoding: DEFAULT_ENCODING,
197
+ sampleRate: DEFAULT_SAMPLE_RATE,
198
+ },
199
+ },
200
+ )) {
201
+ if (event.type === "transcription.text.delta") {
202
+ process.stdout.write(event.text);
203
+ continue;
204
+ }
205
+ if (event.type === "transcription.done") {
206
+ process.stdout.write("\n");
207
+ break;
208
+ }
209
+ if (event.type === "error") {
210
+ const errorMessage = typeof event.error.message === "string"
211
+ ? event.error.message
212
+ : JSON.stringify(event.error.message);
213
+ console.error(`Transcription error: ${errorMessage}`);
214
+ process.exitCode = 1;
215
+ break;
216
+ }
217
+ }
218
+ } finally {
219
+ if (tempPath) {
220
+ await fs.unlink(tempPath).catch(() => undefined);
221
+ }
222
+ }
223
+ }
224
+
225
+ await main();
@@ -0,0 +1,44 @@
1
+ import WebSocket from "ws";
2
+ import { TranscriptionStreamDone } from "../../models/components/transcriptionstreamdone.js";
3
+ import { TranscriptionStreamLanguage } from "../../models/components/transcriptionstreamlanguage.js";
4
+ import { TranscriptionStreamSegmentDelta } from "../../models/components/transcriptionstreamsegmentdelta.js";
5
+ import { TranscriptionStreamTextDelta } from "../../models/components/transcriptionstreamtextdelta.js";
6
+ import { type AudioFormat } from "../../models/components/audioformat.js";
7
+ import { type RealtimeTranscriptionError } from "../../models/components/realtimetranscriptionerror.js";
8
+ import type { RealtimeTranscriptionSession } from "../../models/components/realtimetranscriptionsession.js";
9
+ import { type RealtimeTranscriptionSessionCreated } from "../../models/components/realtimetranscriptionsessioncreated.js";
10
+ import { type RealtimeTranscriptionSessionUpdated } from "../../models/components/realtimetranscriptionsessionupdated.js";
11
+ export type KnownRealtimeEvent = RealtimeTranscriptionSessionCreated | RealtimeTranscriptionSessionUpdated | RealtimeTranscriptionError | TranscriptionStreamLanguage | TranscriptionStreamSegmentDelta | TranscriptionStreamTextDelta | TranscriptionStreamDone;
12
+ export type UnknownRealtimeEvent = {
13
+ type: string;
14
+ raw: unknown;
15
+ error?: Error | undefined;
16
+ };
17
+ export type RealtimeEvent = KnownRealtimeEvent | UnknownRealtimeEvent;
18
+ /** @internal */
19
+ export declare function isUnknownRealtimeEvent(event: RealtimeEvent): event is UnknownRealtimeEvent;
20
+ /** @internal */
21
+ export declare function parseRealtimeEventFromData(data: unknown): RealtimeEvent;
22
+ /** WebSocket connection for realtime transcription. */
23
+ export declare class RealtimeConnection implements AsyncIterable<RealtimeEvent> {
24
+ private readonly websocket;
25
+ private closed;
26
+ private currentAudioFormat;
27
+ private currentSession;
28
+ private initialEvents;
29
+ constructor(websocket: WebSocket, session: RealtimeTranscriptionSession, initialEvents?: RealtimeEvent[]);
30
+ get requestId(): string;
31
+ get session(): RealtimeTranscriptionSession;
32
+ get audioFormat(): AudioFormat;
33
+ get isClosed(): boolean;
34
+ [Symbol.asyncIterator](): AsyncIterator<RealtimeEvent>;
35
+ events(): AsyncGenerator<RealtimeEvent>;
36
+ sendAudio(audioBytes: Uint8Array | ArrayBuffer): Promise<void>;
37
+ flushAudio(): Promise<void>;
38
+ updateSession(audioFormat: AudioFormat): Promise<void>;
39
+ endAudio(): Promise<void>;
40
+ close(code?: number, reason?: string): Promise<void>;
41
+ private sendJson;
42
+ private applySessionEvent;
43
+ }
44
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/extra/realtime/connection.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EACL,uBAAuB,EAExB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EACL,2BAA2B,EAE5B,MAAM,wDAAwD,CAAC;AAChE,OAAO,EACL,+BAA+B,EAEhC,MAAM,4DAA4D,CAAC;AACpE,OAAO,EACL,4BAA4B,EAE7B,MAAM,yDAAyD,CAAC;AACjE,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,uDAAuD,CAAC;AAC/D,OAAO,KAAK,EACV,4BAA4B,EAC7B,MAAM,yDAAyD,CAAC;AACjE,OAAO,EAEL,KAAK,mCAAmC,EACzC,MAAM,gEAAgE,CAAC;AACxE,OAAO,EAEL,KAAK,mCAAmC,EACzC,MAAM,gEAAgE,CAAC;AAKxE,MAAM,MAAM,kBAAkB,GAC1B,mCAAmC,GACnC,mCAAmC,GACnC,0BAA0B,GAC1B,2BAA2B,GAC3B,+BAA+B,GAC/B,4BAA4B,GAC5B,uBAAuB,CAAC;AAE5B,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;AAEtE,gBAAgB;AAChB,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,GACnB,KAAK,IAAI,oBAAoB,CAE/B;AAED,gBAAgB;AAChB,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,CAkBvE;AAED,uDAAuD;AACvD,qBAAa,kBAAmB,YAAW,aAAa,CAAC,aAAa,CAAC;IACrE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,kBAAkB,CAAc;IACxC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,aAAa,CAAkB;gBAGrC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,4BAA4B,EACrC,aAAa,GAAE,aAAa,EAAO;IAQrC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,OAAO,IAAI,4BAA4B,CAE1C;IAED,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,IAAI,QAAQ,IAAI,OAAO,CAMtB;IAED,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,aAAa,CAAC;IAI/C,MAAM,IAAI,cAAc,CAAC,aAAa,CAAC;IAkFxC,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,aAAa,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBtD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAQzB,KAAK,CAAC,IAAI,GAAE,MAAa,EAAE,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YAqBtD,QAAQ;IAatB,OAAO,CAAC,iBAAiB;CAU1B"}