@8wave/ai-elements 0.90.0 → 0.91.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 (188) hide show
  1. package/dist/_chunks/{Document-BajUssb0.js → Document-OYsMoc9f.js} +46 -9
  2. package/dist/_chunks/Document-OYsMoc9f.js.map +1 -0
  3. package/dist/_chunks/{PkToolShowSources-CZWBpBBV.js → PkToolShowSources-BHLHRoy2.js} +2 -2
  4. package/dist/_chunks/{PkToolShowSources-CZWBpBBV.js.map → PkToolShowSources-BHLHRoy2.js.map} +1 -1
  5. package/dist/_chunks/{PkToolShowSuggestedReply-1j4lOkRj.js → PkToolShowSuggestedReply-CUk_SK-9.js} +2 -2
  6. package/dist/_chunks/PkToolShowSuggestedReply-CUk_SK-9.js.map +1 -0
  7. package/dist/ai-elements.es.js +4099 -3985
  8. package/dist/ai-elements.es.js.map +1 -1
  9. package/dist-vue/PkChatbot.js +1 -1
  10. package/dist-vue/PkChatbotAuth.js +1 -1
  11. package/dist-vue/PkChatbotEmptyState.js +1 -1
  12. package/dist-vue/PkChatbotFeedbackForm.js +1 -1
  13. package/dist-vue/PkChatbotFilePreview.js +1 -1
  14. package/dist-vue/PkChatbotInput.js +1 -1
  15. package/dist-vue/PkChatbotMessageFeedback.js +1 -1
  16. package/dist-vue/PkChatbotMessages.js +1 -1
  17. package/dist-vue/PkChatbotOutlineRail.js +1 -1
  18. package/dist-vue/PkChatbotStepToolDetail.js +1 -1
  19. package/dist-vue/PkChatbotSteps.js +1 -1
  20. package/dist-vue/PkChatbotViewChat.js +1 -1
  21. package/dist-vue/PkChatbotViewConversations.js +1 -1
  22. package/dist-vue/PkChatbotViewFiles.js +1 -1
  23. package/dist-vue/PkChatbotViewProfile.js +1 -1
  24. package/dist-vue/_chunks/{Document-Dvf2nw6v.js → Document-c1tATTDs.js} +46 -9
  25. package/dist-vue/_chunks/{Document-Dvf2nw6v.js.map → Document-c1tATTDs.js.map} +1 -1
  26. package/dist-vue/_chunks/{PkAvatar-Dv3e4aUl.js → PkAvatar-Bpf6cD4N.js} +1 -1
  27. package/dist-vue/_chunks/{PkAvatar-Dv3e4aUl.js.map → PkAvatar-Bpf6cD4N.js.map} +1 -1
  28. package/dist-vue/_chunks/PkChatbot-DpfxBVue.js +237 -0
  29. package/dist-vue/_chunks/PkChatbot-DpfxBVue.js.map +1 -0
  30. package/dist-vue/_chunks/{PkChatbotAuth-CFqcYxj9.js → PkChatbotAuth-uAPZRV6N.js} +2 -2
  31. package/dist-vue/_chunks/{PkChatbotAuth-CFqcYxj9.js.map → PkChatbotAuth-uAPZRV6N.js.map} +1 -1
  32. package/dist-vue/_chunks/{PkChatbotEmptyState-C70aTfG-.js → PkChatbotEmptyState-JTlPPXdI.js} +2 -2
  33. package/dist-vue/_chunks/{PkChatbotEmptyState-C70aTfG-.js.map → PkChatbotEmptyState-JTlPPXdI.js.map} +1 -1
  34. package/dist-vue/_chunks/{PkChatbotFeedbackForm-Ds2-nOaU.js → PkChatbotFeedbackForm-CHXxzWqQ.js} +2 -2
  35. package/dist-vue/_chunks/{PkChatbotFeedbackForm-Ds2-nOaU.js.map → PkChatbotFeedbackForm-CHXxzWqQ.js.map} +1 -1
  36. package/dist-vue/_chunks/{PkChatbotFilePreview-DG887KhT.js → PkChatbotFilePreview-Bf1bdZn8.js} +61 -54
  37. package/dist-vue/_chunks/PkChatbotFilePreview-Bf1bdZn8.js.map +1 -0
  38. package/dist-vue/_chunks/{PkChatbotInput-BTszEUj2.js → PkChatbotInput-DWS7vqC5.js} +152 -124
  39. package/dist-vue/_chunks/PkChatbotInput-DWS7vqC5.js.map +1 -0
  40. package/dist-vue/_chunks/{PkChatbotMessageFeedback-Cp0zzCP8.js → PkChatbotMessageFeedback-DAqlgPrz.js} +1 -1
  41. package/dist-vue/_chunks/{PkChatbotMessageFeedback-Cp0zzCP8.js.map → PkChatbotMessageFeedback-DAqlgPrz.js.map} +1 -1
  42. package/dist-vue/_chunks/{PkChatbotMessages-DLP7utmG.js → PkChatbotMessages-BR5JUybd.js} +208 -212
  43. package/dist-vue/_chunks/PkChatbotMessages-BR5JUybd.js.map +1 -0
  44. package/dist-vue/_chunks/{PkChatbotOutlineRail-CAIfj2dI.js → PkChatbotOutlineRail-BXrdMIrA.js} +1 -1
  45. package/dist-vue/_chunks/{PkChatbotOutlineRail-CAIfj2dI.js.map → PkChatbotOutlineRail-BXrdMIrA.js.map} +1 -1
  46. package/dist-vue/_chunks/{PkChatbotStepToolDetail-C-ucv_wp.js → PkChatbotStepToolDetail-C2nWevnD.js} +2 -2
  47. package/dist-vue/_chunks/{PkChatbotStepToolDetail-C-ucv_wp.js.map → PkChatbotStepToolDetail-C2nWevnD.js.map} +1 -1
  48. package/dist-vue/_chunks/{PkChatbotSteps-CBOhYZ10.js → PkChatbotSteps-5Ahr-zpZ.js} +4 -4
  49. package/dist-vue/_chunks/{PkChatbotSteps-CBOhYZ10.js.map → PkChatbotSteps-5Ahr-zpZ.js.map} +1 -1
  50. package/dist-vue/_chunks/{PkChatbotViewChat-BZ9IH-sz.js → PkChatbotViewChat-C_t6qEEV.js} +64 -55
  51. package/dist-vue/_chunks/PkChatbotViewChat-C_t6qEEV.js.map +1 -0
  52. package/dist-vue/_chunks/{PkChatbotViewConversations-q5KPJt_D.js → PkChatbotViewConversations-CEaEsnBy.js} +4 -4
  53. package/dist-vue/_chunks/{PkChatbotViewConversations-q5KPJt_D.js.map → PkChatbotViewConversations-CEaEsnBy.js.map} +1 -1
  54. package/dist-vue/_chunks/PkChatbotViewFiles-Bzcn8AEo.js +114 -0
  55. package/dist-vue/_chunks/PkChatbotViewFiles-Bzcn8AEo.js.map +1 -0
  56. package/dist-vue/_chunks/{PkChatbotViewProfile-DTbQlkVL.js → PkChatbotViewProfile-CfFeqjse.js} +4 -4
  57. package/dist-vue/_chunks/{PkChatbotViewProfile-DTbQlkVL.js.map → PkChatbotViewProfile-CfFeqjse.js.map} +1 -1
  58. package/dist-vue/_chunks/{PkRelativeTime-D72zYq42.js → PkRelativeTime-2HoOjv_T.js} +1 -1
  59. package/dist-vue/_chunks/{PkRelativeTime-D72zYq42.js.map → PkRelativeTime-2HoOjv_T.js.map} +1 -1
  60. package/dist-vue/_chunks/{PkStreamingMarkdown-CVAsbuWi.js → PkStreamingMarkdown-C_LQOTVJ.js} +1 -1
  61. package/dist-vue/_chunks/{PkStreamingMarkdown-CVAsbuWi.js.map → PkStreamingMarkdown-C_LQOTVJ.js.map} +1 -1
  62. package/dist-vue/_chunks/{PkSvgViewer-CTYxVK7q.js → PkSvgViewer-Dtx4uluo.js} +2 -2
  63. package/dist-vue/_chunks/{PkSvgViewer-CTYxVK7q.js.map → PkSvgViewer-Dtx4uluo.js.map} +1 -1
  64. package/dist-vue/_chunks/{PkToolShowArtifact-Csjfo9Xl.js → PkToolShowArtifact-CoYM3_A3.js} +3 -3
  65. package/dist-vue/_chunks/{PkToolShowArtifact-Csjfo9Xl.js.map → PkToolShowArtifact-CoYM3_A3.js.map} +1 -1
  66. package/dist-vue/_chunks/{PkToolShowCalendarEvent-B2tHaoqo.js → PkToolShowCalendarEvent-BZYdRwid.js} +2 -2
  67. package/dist-vue/_chunks/{PkToolShowCalendarEvent-B2tHaoqo.js.map → PkToolShowCalendarEvent-BZYdRwid.js.map} +1 -1
  68. package/dist-vue/_chunks/{PkToolShowComparison-BLDtjv3w.js → PkToolShowComparison-C4OP5c1t.js} +2 -2
  69. package/dist-vue/_chunks/{PkToolShowComparison-BLDtjv3w.js.map → PkToolShowComparison-C4OP5c1t.js.map} +1 -1
  70. package/dist-vue/_chunks/{PkToolShowContactForm-CdgD4fd8.js → PkToolShowContactForm-DjX9G8CD.js} +5 -5
  71. package/dist-vue/_chunks/{PkToolShowContactForm-CdgD4fd8.js.map → PkToolShowContactForm-DjX9G8CD.js.map} +1 -1
  72. package/dist-vue/_chunks/{PkToolShowDiagram-DGYQjjGj.js → PkToolShowDiagram-DHwAckwN.js} +2 -2
  73. package/dist-vue/_chunks/{PkToolShowDiagram-DGYQjjGj.js.map → PkToolShowDiagram-DHwAckwN.js.map} +1 -1
  74. package/dist-vue/_chunks/{PkToolShowEmail-D42WDTO9.js → PkToolShowEmail-5waUO5cm.js} +2 -2
  75. package/dist-vue/_chunks/{PkToolShowEmail-D42WDTO9.js.map → PkToolShowEmail-5waUO5cm.js.map} +1 -1
  76. package/dist-vue/_chunks/{PkToolShowForm-BhVSPIAR.js → PkToolShowForm-C7bOdRse.js} +3 -3
  77. package/dist-vue/_chunks/{PkToolShowForm-BhVSPIAR.js.map → PkToolShowForm-C7bOdRse.js.map} +1 -1
  78. package/dist-vue/_chunks/{PkToolShowImageGallery-WANi2hA0.js → PkToolShowImageGallery-D3bqInQn.js} +3 -3
  79. package/dist-vue/_chunks/{PkToolShowImageGallery-WANi2hA0.js.map → PkToolShowImageGallery-D3bqInQn.js.map} +1 -1
  80. package/dist-vue/_chunks/{PkToolShowLocation-RVbaQoU5.js → PkToolShowLocation-DE-dbJEw.js} +2 -2
  81. package/dist-vue/_chunks/{PkToolShowLocation-RVbaQoU5.js.map → PkToolShowLocation-DE-dbJEw.js.map} +1 -1
  82. package/dist-vue/_chunks/{PkToolShowMessage-D8UbJcas.js → PkToolShowMessage-DCbW7AYl.js} +2 -2
  83. package/dist-vue/_chunks/{PkToolShowMessage-D8UbJcas.js.map → PkToolShowMessage-DCbW7AYl.js.map} +1 -1
  84. package/dist-vue/_chunks/{PkToolShowProductList-BQts3MBy.js → PkToolShowProductList-Blsv3Cio.js} +3 -3
  85. package/dist-vue/_chunks/{PkToolShowProductList-BQts3MBy.js.map → PkToolShowProductList-Blsv3Cio.js.map} +1 -1
  86. package/dist-vue/_chunks/{PkToolShowQrCode-BybXCt5e.js → PkToolShowQrCode-BbMTgOW3.js} +2 -2
  87. package/dist-vue/_chunks/{PkToolShowQrCode-BybXCt5e.js.map → PkToolShowQrCode-BbMTgOW3.js.map} +1 -1
  88. package/dist-vue/_chunks/{PkToolShowSources-DRewYfe-.js → PkToolShowSources-B9d3iLVk.js} +5 -5
  89. package/dist-vue/_chunks/{PkToolShowSources-DRewYfe-.js.map → PkToolShowSources-B9d3iLVk.js.map} +1 -1
  90. package/dist-vue/_chunks/{PkToolShowSuggestedReply-DKiYUsaZ.js → PkToolShowSuggestedReply-B516t3Nb.js} +2 -2
  91. package/dist-vue/_chunks/PkToolShowSuggestedReply-B516t3Nb.js.map +1 -0
  92. package/dist-vue/_chunks/{PkToolShowWebPages-IV3OzwJe.js → PkToolShowWebPages-BF2aHJGK.js} +3 -3
  93. package/dist-vue/_chunks/{PkToolShowWebPages-IV3OzwJe.js.map → PkToolShowWebPages-BF2aHJGK.js.map} +1 -1
  94. package/dist-vue/_chunks/{PkUrl-a6l-l4Au.js → PkUrl-DA-6t_2f.js} +1 -1
  95. package/dist-vue/_chunks/{PkUrl-a6l-l4Au.js.map → PkUrl-DA-6t_2f.js.map} +1 -1
  96. package/dist-vue/_chunks/{chatbotProfileContext-R95aQ5bH.js → chatbotProfileContext-R1zi561l.js} +1 -1
  97. package/dist-vue/_chunks/{chatbotProfileContext-R95aQ5bH.js.map → chatbotProfileContext-R1zi561l.js.map} +1 -1
  98. package/dist-vue/_chunks/{constants-DpYDYnZU.js → constants-CWT3GgSb.js} +2 -2
  99. package/dist-vue/_chunks/constants-CWT3GgSb.js.map +1 -0
  100. package/dist-vue/_chunks/{createChatbotApiClient-DXmWtu3b.js → createChatbotApiClient-kU7rCKwN.js} +13 -5
  101. package/dist-vue/_chunks/createChatbotApiClient-kU7rCKwN.js.map +1 -0
  102. package/dist-vue/_chunks/{dist-BbAXqaCM.js → dist-0LxfGh4q.js} +2 -2
  103. package/dist-vue/_chunks/{dist-BbAXqaCM.js.map → dist-0LxfGh4q.js.map} +1 -1
  104. package/dist-vue/_chunks/{dist-BU1gMaJv.js → dist-46HfWmpr.js} +2 -2
  105. package/dist-vue/_chunks/{dist-BU1gMaJv.js.map → dist-46HfWmpr.js.map} +1 -1
  106. package/dist-vue/_chunks/{dist-CpoLpTWk.js → dist-8YCZENrl.js} +3 -3
  107. package/dist-vue/_chunks/{dist-CpoLpTWk.js.map → dist-8YCZENrl.js.map} +1 -1
  108. package/dist-vue/_chunks/{dist-l7mimsz6.js → dist-B34dY8rD.js} +2 -2
  109. package/dist-vue/_chunks/{dist-l7mimsz6.js.map → dist-B34dY8rD.js.map} +1 -1
  110. package/dist-vue/_chunks/{dist-CYrZgvgZ.js → dist-BfbUNalO.js} +4 -4
  111. package/dist-vue/_chunks/{dist-CYrZgvgZ.js.map → dist-BfbUNalO.js.map} +1 -1
  112. package/dist-vue/_chunks/{dist-Begygip9.js → dist-BmRGnWn9.js} +3 -3
  113. package/dist-vue/_chunks/{dist-Begygip9.js.map → dist-BmRGnWn9.js.map} +1 -1
  114. package/dist-vue/_chunks/{dist-BGl_mYmF.js → dist-BoaZDzxm.js} +4 -4
  115. package/dist-vue/_chunks/{dist-BGl_mYmF.js.map → dist-BoaZDzxm.js.map} +1 -1
  116. package/dist-vue/_chunks/{dist-DEyUvwtq.js → dist-Bq9kJLlA.js} +3 -3
  117. package/dist-vue/_chunks/{dist-DEyUvwtq.js.map → dist-Bq9kJLlA.js.map} +1 -1
  118. package/dist-vue/_chunks/{dist-nZs6UeVS.js → dist-Bs-QG-km.js} +1 -1
  119. package/dist-vue/_chunks/{dist-nZs6UeVS.js.map → dist-Bs-QG-km.js.map} +1 -1
  120. package/dist-vue/_chunks/{dist-DinYvSmw.js → dist-BxqLQ_dy.js} +2 -2
  121. package/dist-vue/_chunks/{dist-DinYvSmw.js.map → dist-BxqLQ_dy.js.map} +1 -1
  122. package/dist-vue/_chunks/{dist-Dj7rLAD9.js → dist-Cc0Lyhoq.js} +3 -3
  123. package/dist-vue/_chunks/{dist-Dj7rLAD9.js.map → dist-Cc0Lyhoq.js.map} +1 -1
  124. package/dist-vue/_chunks/{dist-Jh4J_VuU.js → dist-CiYFTV6m.js} +3 -3
  125. package/dist-vue/_chunks/{dist-Jh4J_VuU.js.map → dist-CiYFTV6m.js.map} +1 -1
  126. package/dist-vue/_chunks/{dist-BzsV0Mzp.js → dist-CrcvoPSj.js} +2 -2
  127. package/dist-vue/_chunks/{dist-BzsV0Mzp.js.map → dist-CrcvoPSj.js.map} +1 -1
  128. package/dist-vue/_chunks/{dist-CABEM3v-.js → dist-DK5UPLjU.js} +4 -4
  129. package/dist-vue/_chunks/{dist-CABEM3v-.js.map → dist-DK5UPLjU.js.map} +1 -1
  130. package/dist-vue/_chunks/{dist-uvKhW3hB.js → dist-Da4-ZEZn.js} +3 -3
  131. package/dist-vue/_chunks/{dist-uvKhW3hB.js.map → dist-Da4-ZEZn.js.map} +1 -1
  132. package/dist-vue/_chunks/{dist-SbwxxzT7.js → dist-Dc77ClI_.js} +3 -3
  133. package/dist-vue/_chunks/{dist-SbwxxzT7.js.map → dist-Dc77ClI_.js.map} +1 -1
  134. package/dist-vue/_chunks/{dist-t9ZGnt-g.js → dist-LN9oA4PR.js} +2 -2
  135. package/dist-vue/_chunks/{dist-t9ZGnt-g.js.map → dist-LN9oA4PR.js.map} +1 -1
  136. package/dist-vue/_chunks/{dist-DKzsFjYx.js → dist-gx9K9AtO.js} +5 -5
  137. package/dist-vue/_chunks/{dist-DKzsFjYx.js.map → dist-gx9K9AtO.js.map} +1 -1
  138. package/dist-vue/_chunks/{dist-Bnrde8nq.js → dist-iDVEgNgZ.js} +3 -3
  139. package/dist-vue/_chunks/{dist-Bnrde8nq.js.map → dist-iDVEgNgZ.js.map} +1 -1
  140. package/dist-vue/_chunks/{dist-Byr8BhEG.js → dist-m2_O1KGc.js} +3 -3
  141. package/dist-vue/_chunks/{dist-Byr8BhEG.js.map → dist-m2_O1KGc.js.map} +1 -1
  142. package/dist-vue/_chunks/{dist-C08Qizu9.js → dist-qArLqzVS.js} +2 -2
  143. package/dist-vue/_chunks/{dist-C08Qizu9.js.map → dist-qArLqzVS.js.map} +1 -1
  144. package/dist-vue/_chunks/{dist-6gaEFVNT.js → dist-qJLUge9r.js} +2 -2
  145. package/dist-vue/_chunks/{dist-6gaEFVNT.js.map → dist-qJLUge9r.js.map} +1 -1
  146. package/dist-vue/_chunks/{index.es-ChKj3bPm.js → index.es-W-WNHB7-.js} +1 -1
  147. package/dist-vue/_chunks/{index.es-ChKj3bPm.js.map → index.es-W-WNHB7-.js.map} +1 -1
  148. package/dist-vue/_chunks/{useChatbotStore-GEO6rQ74.js → useChatbotStore-WPRS7mhR.js} +855 -832
  149. package/dist-vue/_chunks/{useChatbotStore-GEO6rQ74.js.map → useChatbotStore-WPRS7mhR.js.map} +1 -1
  150. package/dist-vue/_chunks/{useLocalizedString-DPX1ED4p.js → useLocalizedString-BQzGZyu0.js} +1 -1
  151. package/dist-vue/_chunks/{useLocalizedString-DPX1ED4p.js.map → useLocalizedString-BQzGZyu0.js.map} +1 -1
  152. package/dist-vue/_chunks/utils-BDNQaNua.js +101 -0
  153. package/dist-vue/_chunks/utils-BDNQaNua.js.map +1 -0
  154. package/dist-vue/api.js +1 -1
  155. package/dist-vue/composables.js +4 -4
  156. package/dist-vue/index.js +105 -80
  157. package/dist-vue/index.js.map +1 -1
  158. package/dist-vue/locales.js +10 -2
  159. package/dist-vue/packages/components/src/chat/PkChatbotInput.d.ts +7 -3
  160. package/dist-vue/packages/components/src/chat/PkMessageParts.d.ts +3 -0
  161. package/dist-vue/packages/components/src/chat/constants.d.ts +1 -1
  162. package/dist-vue/packages/components/src/chat/useChatScroll.d.ts +0 -7
  163. package/dist-vue/packages/components/src/table/PkTableSortable.d.ts +4 -0
  164. package/dist-vue/packages/composable/src/chatbot/api/createChatbotApiClient.d.ts +1 -0
  165. package/dist-vue/packages/composable/src/chatbot/useChatbotStore.d.ts +42 -3
  166. package/dist-vue/packages/composable/src/index.d.ts +1 -0
  167. package/dist-vue/packages/composable/src/useFileRow.d.ts +24 -0
  168. package/dist-vue/packages/models/src/schema/Agent.d.ts +1 -0
  169. package/dist-vue/packages/models/src/schema/Document.d.ts +12 -0
  170. package/dist-vue/packages/models/src/schema/Platform.d.ts +6 -0
  171. package/dist-vue/packages/models/src/schema/constants.d.ts +7 -2
  172. package/dist-vue/style.css +1 -1
  173. package/package.json +1 -1
  174. package/dist/_chunks/Document-BajUssb0.js.map +0 -1
  175. package/dist/_chunks/PkToolShowSuggestedReply-1j4lOkRj.js.map +0 -1
  176. package/dist-vue/_chunks/PkChatbot-q_W4cKsy.js +0 -237
  177. package/dist-vue/_chunks/PkChatbot-q_W4cKsy.js.map +0 -1
  178. package/dist-vue/_chunks/PkChatbotFilePreview-DG887KhT.js.map +0 -1
  179. package/dist-vue/_chunks/PkChatbotInput-BTszEUj2.js.map +0 -1
  180. package/dist-vue/_chunks/PkChatbotMessages-DLP7utmG.js.map +0 -1
  181. package/dist-vue/_chunks/PkChatbotViewChat-BZ9IH-sz.js.map +0 -1
  182. package/dist-vue/_chunks/PkChatbotViewFiles-B0FNE1Kk.js +0 -86
  183. package/dist-vue/_chunks/PkChatbotViewFiles-B0FNE1Kk.js.map +0 -1
  184. package/dist-vue/_chunks/PkToolShowSuggestedReply-DKiYUsaZ.js.map +0 -1
  185. package/dist-vue/_chunks/constants-DpYDYnZU.js.map +0 -1
  186. package/dist-vue/_chunks/createChatbotApiClient-DXmWtu3b.js.map +0 -1
  187. package/dist-vue/_chunks/utils-BBAveXy4.js +0 -101
  188. package/dist-vue/_chunks/utils-BBAveXy4.js.map +0 -1
@@ -101,6 +101,8 @@ var e = {
101
101
  chatErrorInternalServer: "A server error occurred. Start a new chat to continue.",
102
102
  feedbackSubmittedTitle: "Thank you!",
103
103
  feedbackSubmittedMessage: "Your feedback has been submitted successfully.",
104
+ fileLimitPerChat: "You have reached the limit of {max} files for this conversation.",
105
+ fileLimitPerMessage: "You can attach at most {max} files per message.",
104
106
  deleteMyConversationsConfirm: "Are you sure you want to permanently delete all your conversations? This action cannot be undone.",
105
107
  noConversationsHint: "Start a new chat to see it appear here.",
106
108
  geolocationPermissionDenied: "Location access denied. Please allow it in your browser settings.",
@@ -375,7 +377,8 @@ var e = {
375
377
  },
376
378
  tool: {
377
379
  useAllUserKb: "Use the entire user KB",
378
- useAllUserFiles: "Use all user files"
380
+ useAllUserFiles: "Use all user files",
381
+ runWorker: "Parallel workers"
379
382
  },
380
383
  channel: {
381
384
  frontoffice: "Frontoffice",
@@ -416,6 +419,7 @@ var e = {
416
419
  requestOAuthConnectionButton: "Connect {name}",
417
420
  requestOAuthConnectionPrompt: "To access {name} data, you need to authorize the connection.",
418
421
  requestOAuthConnectionInfo: "Authorization requested to access {name}'s data.",
422
+ runWorker: "Delegating to a worker...",
419
423
  searchingDocuments: "Memory search...",
420
424
  expandChunkContext: "Reading more context...",
421
425
  readDocumentFile: "Reading the original document...",
@@ -557,6 +561,8 @@ var e = {
557
561
  chatErrorInternalServer: "Si è verificato un errore del server. Inizia una nuova chat per continuare.",
558
562
  feedbackSubmittedTitle: "Grazie!",
559
563
  feedbackSubmittedMessage: "Il tuo feedback è stato inviato con successo.",
564
+ fileLimitPerChat: "Hai raggiunto il limite di {max} file per questa conversazione.",
565
+ fileLimitPerMessage: "Puoi allegare al massimo {max} file per messaggio.",
560
566
  deleteMyConversationsConfirm: "Sei sicuro di voler cancellare definitivamente tutte le tue conversazioni? Questa azione non può essere annullata.",
561
567
  noConversationsHint: "Inizia una nuova chat per vederla comparire qui.",
562
568
  geolocationPermissionDenied: "Accesso alla posizione negato. Consentilo nelle impostazioni del browser.",
@@ -831,7 +837,8 @@ var e = {
831
837
  },
832
838
  tool: {
833
839
  useAllUserKb: "Utilizza tutta la KB utente",
834
- useAllUserFiles: "Utilizza tutti i file utente"
840
+ useAllUserFiles: "Utilizza tutti i file utente",
841
+ runWorker: "Worker parallelo"
835
842
  },
836
843
  channel: {
837
844
  frontoffice: "Frontoffice",
@@ -872,6 +879,7 @@ var e = {
872
879
  requestOAuthConnectionButton: "Connetti {name}",
873
880
  requestOAuthConnectionPrompt: "Per accedere ai dati di {name} è necessario autorizzare la connessione.",
874
881
  requestOAuthConnectionInfo: "Richiesta autorizzazione per accedere i dati di {name}.",
882
+ runWorker: "Delega a un worker...",
875
883
  searchingDocuments: "Ricerca nella memoria...",
876
884
  expandChunkContext: "Lettura di altro contesto...",
877
885
  readDocumentFile: "Lettura del documento originale...",
@@ -8,17 +8,19 @@ type __VLS_Props = {
8
8
  maxMessageLength?: number;
9
9
  fileUpload?: AgentFileUpload;
10
10
  enableDragDrop?: boolean;
11
+ attachmentLimitReached?: boolean;
12
+ attachmentNotice?: string;
11
13
  };
12
14
  type __VLS_ModelProps = {
13
15
  modelValue?: string;
14
16
  'pendingAttachments'?: PendingAttachment[];
15
17
  };
16
18
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
17
- declare var __VLS_25: {}, __VLS_66: {};
19
+ declare var __VLS_30: {}, __VLS_71: {};
18
20
  type __VLS_Slots = {} & {
19
- prepend?: (props: typeof __VLS_25) => any;
21
+ prepend?: (props: typeof __VLS_30) => any;
20
22
  } & {
21
- 'additional-actions'?: (props: typeof __VLS_66) => any;
23
+ 'additional-actions'?: (props: typeof __VLS_71) => any;
22
24
  };
23
25
  declare const __VLS_base: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
24
26
  "update:modelValue": (value: string | undefined) => any;
@@ -26,12 +28,14 @@ declare const __VLS_base: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, Com
26
28
  "update:pendingAttachments": (value: PendingAttachment[]) => any;
27
29
  "stop-generation": () => any;
28
30
  "file-select": (file: File) => any;
31
+ "dismiss-attachment-notice": () => any;
29
32
  }, string, PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
30
33
  "onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
31
34
  onSubmit?: (() => any) | undefined;
32
35
  "onUpdate:pendingAttachments"?: ((value: PendingAttachment[]) => any) | undefined;
33
36
  "onStop-generation"?: (() => any) | undefined;
34
37
  "onFile-select"?: ((file: File) => any) | undefined;
38
+ "onDismiss-attachment-notice"?: (() => any) | undefined;
35
39
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
36
40
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
37
41
  declare const _default: typeof __VLS_export;
@@ -3,6 +3,9 @@ import { JSONObject } from '../../../composable/src';
3
3
  import { ProviderMetadata, TextUIPart, ReasoningUIPart } from 'ai';
4
4
  import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
5
5
  interface SubAgentSlotPart {
6
+ input?: {
7
+ objective?: string;
8
+ };
6
9
  output?: {
7
10
  subAgentId?: string;
8
11
  subAgentName?: string;
@@ -1,5 +1,5 @@
1
1
  import { LanguageModel } from 'models/src/schema/constants';
2
- export declare const MODELS: readonly [LanguageModel.gpt5Nano, LanguageModel.gpt5Mini, LanguageModel.gpt51Instant, LanguageModel.gpt51Thinking, LanguageModel.gpt52, LanguageModel.gpt52Chat, LanguageModel.gpt54nano, LanguageModel.gpt54mini, LanguageModel.gpt54, LanguageModel.gpt54Pro, LanguageModel.gpt55, LanguageModel.gpt55Pro, LanguageModel.gemini25FlashLite, LanguageModel.gemini25Flash, LanguageModel.gemini25Pro, LanguageModel.gemini3Flash, LanguageModel.gemini3ProPreview, LanguageModel.gemini31FlashLitePreview, LanguageModel.gemini31ProPreview, LanguageModel.gemini31FlashLite, LanguageModel.gemini35Flash, LanguageModel.claudeHaiku45, LanguageModel.claudeSonnet46, LanguageModel.claudeOpus46, LanguageModel.claudeOpus47, LanguageModel.claudeOpus48, LanguageModel.deepseek32, LanguageModel.deepseek4pro, LanguageModel.deepseek4Flash, LanguageModel.alibabaQwen36Plus, LanguageModel.alibabaQwen37Max, LanguageModel.alibabaQwen37Plus, LanguageModel.xaiGrok43];
2
+ export declare const MODELS: readonly [LanguageModel.gpt5Nano, LanguageModel.gpt5Mini, LanguageModel.gpt51Instant, LanguageModel.gpt51Thinking, LanguageModel.gpt52, LanguageModel.gpt52Chat, LanguageModel.gpt54nano, LanguageModel.gpt54mini, LanguageModel.gpt54, LanguageModel.gpt54Pro, LanguageModel.gpt55, LanguageModel.gpt55Pro, LanguageModel.gemini25FlashLite, LanguageModel.gemini25Flash, LanguageModel.gemini25Pro, LanguageModel.gemini3Flash, LanguageModel.gemini3ProPreview, LanguageModel.gemini31FlashLitePreview, LanguageModel.gemini31ProPreview, LanguageModel.gemini31FlashLite, LanguageModel.gemini35Flash, LanguageModel.claudeHaiku45, LanguageModel.claudeSonnet46, LanguageModel.claudeSonnet5, LanguageModel.claudeOpus46, LanguageModel.claudeOpus47, LanguageModel.claudeOpus48, LanguageModel.claudeFable5, LanguageModel.deepseek32, LanguageModel.deepseek4pro, LanguageModel.deepseek4Flash, LanguageModel.alibabaQwen36Plus, LanguageModel.alibabaQwen37Max, LanguageModel.alibabaQwen37Plus, LanguageModel.xaiGrok43, LanguageModel.zaiGlm52, LanguageModel.zaiGlm52Fast];
3
3
  export declare const DEFAULT_TEMPERATURE = 0.6;
4
4
  export declare const DEFAULT_PROMPT = "";
5
5
  export declare const DEFAULT_LIMIT = 5;
@@ -4,13 +4,6 @@ interface UseChatScrollOptions {
4
4
  status: () => string | undefined;
5
5
  messagesLength: () => number | undefined;
6
6
  lastMessageRole: () => string | undefined;
7
- /**
8
- * Max scrollTop the streaming auto-follow may reach (e.g. the freshly
9
- * sent user message resting at the top of the viewport). Scrolling past
10
- * it remains possible (user gesture or scrollToBottom), and once past it
11
- * the auto-follow tracks the bottom again.
12
- */
13
- autoScrollLimit?: () => number | undefined;
14
7
  /**
15
8
  * Element whose height tracks the content height, watched for late
16
9
  * growth (lazy tool outputs). Defaults to the scroll element's first
@@ -67,6 +67,10 @@ declare const __VLS_export: <TableRow extends Record<string | number | symbol, a
67
67
  type: StringConstructor;
68
68
  default: string;
69
69
  };
70
+ classPagination: {
71
+ type: StringConstructor;
72
+ default: undefined;
73
+ };
70
74
  }> & {
71
75
  "onUpdate:limit"?: ((...args: any[]) => any) | undefined;
72
76
  "onUpdate:page"?: ((...args: any[]) => any) | undefined;
@@ -62,6 +62,7 @@ export interface ChatbotApiClient {
62
62
  resolveShortUrls(hashes: string[]): Promise<Record<string, string>>;
63
63
  getChatFiles(chatId: string): Promise<ChatbotFile[]>;
64
64
  getChatFileDownloadUrl(documentId: string, inline?: boolean): string;
65
+ getChatFilePreviewUrl(documentId: string): string;
65
66
  deleteChatFile(documentId: string): Promise<void>;
66
67
  }
67
68
  export declare function createChatbotApiClient(options: ChatbotApiClientOptions): ChatbotApiClient;
@@ -1367,6 +1367,17 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
1367
1367
  } | undefined;
1368
1368
  error?: string | undefined;
1369
1369
  }[]>;
1370
+ isAttachmentLimitReached: globalThis.ComputedRef<boolean>;
1371
+ fileLimitError: globalThis.Ref<{
1372
+ reason: "per-message" | "per-chat";
1373
+ max: number;
1374
+ } | null, {
1375
+ reason: "per-message" | "per-chat";
1376
+ max: number;
1377
+ } | {
1378
+ reason: "per-message" | "per-chat";
1379
+ max: number;
1380
+ } | null>;
1370
1381
  localChatId: globalThis.WritableComputedRef<string, string>;
1371
1382
  isConversationBlocked: globalThis.Ref<boolean, boolean>;
1372
1383
  inputMessagePlaceholder: globalThis.ComputedRef<string>;
@@ -1423,6 +1434,7 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
1423
1434
  loadConversations: (id: string) => Promise<void>;
1424
1435
  loadChatFiles: () => Promise<void>;
1425
1436
  getChatFileUrl: (documentId: string, inline?: boolean) => string;
1437
+ getChatFilePreviewUrl: (documentId: string) => string;
1426
1438
  deleteChatFile: (documentId: string) => Promise<void>;
1427
1439
  handleSubmit: () => Promise<void>;
1428
1440
  sendMessage: (text: string) => void;
@@ -1437,6 +1449,7 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
1437
1449
  output: unknown;
1438
1450
  }) => void;
1439
1451
  handleFileSelect: (file: File) => Promise<void>;
1452
+ clearFileLimitError: () => void;
1440
1453
  clearPendingAttachments: (revokeAll?: boolean) => void;
1441
1454
  onUpvote: (message: UIChatMessage) => Promise<void>;
1442
1455
  onDownvote: (message: UIChatMessage) => Promise<void>;
@@ -1446,7 +1459,7 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
1446
1459
  navigate: (view: ChatbotView) => void;
1447
1460
  renameChatTitle: (chatId: string, title: string) => Promise<void>;
1448
1461
  deleteChat: (chatId: string) => Promise<void>;
1449
- }, "name" | "input" | "model" | "gatewayOptions" | "fallbackModels" | "agentId" | "headers" | "conversations" | "externalContext" | "userId" | "agentModel" | "agentType" | "baseUrl" | "basePath" | "agentInterface" | "agentTools" | "revisedAnswers" | "actionsInput" | "agentFileUpload" | "systemTheme" | "hideWelcomeMessage" | "isLoadingConversations" | "chatFiles" | "isLoadingChatFiles" | "pendingAttachments" | "isConversationBlocked" | "chatError" | "activeView" | "messageFeedbacks" | "feedbackDialogMessage" | "isFeedbackSubmitting" | "isFeedbackSubmitted" | "feedbackSubmitError" | "isLeadSubmitted" | "isLoadingSubmitLead" | "submitLeadError">, Pick<{
1462
+ }, "name" | "input" | "model" | "gatewayOptions" | "fallbackModels" | "agentId" | "headers" | "conversations" | "externalContext" | "userId" | "agentModel" | "agentType" | "baseUrl" | "basePath" | "agentInterface" | "agentTools" | "revisedAnswers" | "actionsInput" | "agentFileUpload" | "systemTheme" | "hideWelcomeMessage" | "isLoadingConversations" | "chatFiles" | "isLoadingChatFiles" | "pendingAttachments" | "fileLimitError" | "isConversationBlocked" | "chatError" | "activeView" | "messageFeedbacks" | "feedbackDialogMessage" | "isFeedbackSubmitting" | "isFeedbackSubmitted" | "feedbackSubmitError" | "isLeadSubmitted" | "isLoadingSubmitLead" | "submitLeadError">, Pick<{
1450
1463
  apiClient: globalThis.ComputedRef< ChatbotApiClient>;
1451
1464
  baseUrl: globalThis.Ref<string, string>;
1452
1465
  basePath: globalThis.Ref<string | undefined, string | undefined>;
@@ -2805,6 +2818,17 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
2805
2818
  } | undefined;
2806
2819
  error?: string | undefined;
2807
2820
  }[]>;
2821
+ isAttachmentLimitReached: globalThis.ComputedRef<boolean>;
2822
+ fileLimitError: globalThis.Ref<{
2823
+ reason: "per-message" | "per-chat";
2824
+ max: number;
2825
+ } | null, {
2826
+ reason: "per-message" | "per-chat";
2827
+ max: number;
2828
+ } | {
2829
+ reason: "per-message" | "per-chat";
2830
+ max: number;
2831
+ } | null>;
2808
2832
  localChatId: globalThis.WritableComputedRef<string, string>;
2809
2833
  isConversationBlocked: globalThis.Ref<boolean, boolean>;
2810
2834
  inputMessagePlaceholder: globalThis.ComputedRef<string>;
@@ -2861,6 +2885,7 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
2861
2885
  loadConversations: (id: string) => Promise<void>;
2862
2886
  loadChatFiles: () => Promise<void>;
2863
2887
  getChatFileUrl: (documentId: string, inline?: boolean) => string;
2888
+ getChatFilePreviewUrl: (documentId: string) => string;
2864
2889
  deleteChatFile: (documentId: string) => Promise<void>;
2865
2890
  handleSubmit: () => Promise<void>;
2866
2891
  sendMessage: (text: string) => void;
@@ -2875,6 +2900,7 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
2875
2900
  output: unknown;
2876
2901
  }) => void;
2877
2902
  handleFileSelect: (file: File) => Promise<void>;
2903
+ clearFileLimitError: () => void;
2878
2904
  clearPendingAttachments: (revokeAll?: boolean) => void;
2879
2905
  onUpvote: (message: UIChatMessage) => Promise<void>;
2880
2906
  onDownvote: (message: UIChatMessage) => Promise<void>;
@@ -2884,7 +2910,7 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
2884
2910
  navigate: (view: ChatbotView) => void;
2885
2911
  renameChatTitle: (chatId: string, title: string) => Promise<void>;
2886
2912
  deleteChat: (chatId: string) => Promise<void>;
2887
- }, "messages" | "chat" | "actions" | "apiClient" | "isDark" | "localChatId" | "inputMessagePlaceholder">, Pick<{
2913
+ }, "messages" | "chat" | "actions" | "apiClient" | "isDark" | "isAttachmentLimitReached" | "localChatId" | "inputMessagePlaceholder">, Pick<{
2888
2914
  apiClient: globalThis.ComputedRef< ChatbotApiClient>;
2889
2915
  baseUrl: globalThis.Ref<string, string>;
2890
2916
  basePath: globalThis.Ref<string | undefined, string | undefined>;
@@ -4243,6 +4269,17 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
4243
4269
  } | undefined;
4244
4270
  error?: string | undefined;
4245
4271
  }[]>;
4272
+ isAttachmentLimitReached: globalThis.ComputedRef<boolean>;
4273
+ fileLimitError: globalThis.Ref<{
4274
+ reason: "per-message" | "per-chat";
4275
+ max: number;
4276
+ } | null, {
4277
+ reason: "per-message" | "per-chat";
4278
+ max: number;
4279
+ } | {
4280
+ reason: "per-message" | "per-chat";
4281
+ max: number;
4282
+ } | null>;
4246
4283
  localChatId: globalThis.WritableComputedRef<string, string>;
4247
4284
  isConversationBlocked: globalThis.Ref<boolean, boolean>;
4248
4285
  inputMessagePlaceholder: globalThis.ComputedRef<string>;
@@ -4299,6 +4336,7 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
4299
4336
  loadConversations: (id: string) => Promise<void>;
4300
4337
  loadChatFiles: () => Promise<void>;
4301
4338
  getChatFileUrl: (documentId: string, inline?: boolean) => string;
4339
+ getChatFilePreviewUrl: (documentId: string) => string;
4302
4340
  deleteChatFile: (documentId: string) => Promise<void>;
4303
4341
  handleSubmit: () => Promise<void>;
4304
4342
  sendMessage: (text: string) => void;
@@ -4313,6 +4351,7 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
4313
4351
  output: unknown;
4314
4352
  }) => void;
4315
4353
  handleFileSelect: (file: File) => Promise<void>;
4354
+ clearFileLimitError: () => void;
4316
4355
  clearPendingAttachments: (revokeAll?: boolean) => void;
4317
4356
  onUpvote: (message: UIChatMessage) => Promise<void>;
4318
4357
  onDownvote: (message: UIChatMessage) => Promise<void>;
@@ -4322,4 +4361,4 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
4322
4361
  navigate: (view: ChatbotView) => void;
4323
4362
  renameChatTitle: (chatId: string, title: string) => Promise<void>;
4324
4363
  deleteChat: (chatId: string) => Promise<void>;
4325
- }, "regenerate" | "initialize" | "loadConversations" | "loadChatFiles" | "getChatFileUrl" | "deleteChatFile" | "handleSubmit" | "sendMessage" | "stopGeneration" | "startNewChat" | "addToolOutput" | "handleFileSelect" | "clearPendingAttachments" | "onUpvote" | "onDownvote" | "onFeedback" | "onFeedbackSubmit" | "onLeadSubmit" | "navigate" | "renameChatTitle" | "deleteChat">>;
4364
+ }, "regenerate" | "initialize" | "loadConversations" | "loadChatFiles" | "getChatFileUrl" | "getChatFilePreviewUrl" | "deleteChatFile" | "handleSubmit" | "sendMessage" | "stopGeneration" | "startNewChat" | "addToolOutput" | "handleFileSelect" | "clearFileLimitError" | "clearPendingAttachments" | "onUpvote" | "onDownvote" | "onFeedback" | "onFeedbackSubmit" | "onLeadSubmit" | "navigate" | "renameChatTitle" | "deleteChat">>;
@@ -2,6 +2,7 @@ export * from './chatbot';
2
2
  export * from './useChatbotError';
3
3
  export * from './useDialog';
4
4
  export * from './useDialogConfirm';
5
+ export * from './useFileRow';
5
6
  export * from './useJsonDiff';
6
7
  export * from './useJsonSchemaEditor';
7
8
  export * from './useLocalizedString';
@@ -0,0 +1,24 @@
1
+ /** Minimal shape a file-list row needs for the shared display helpers. */
2
+ export interface FileRowLike {
3
+ documentId: string;
4
+ mimeType: string | null;
5
+ }
6
+ /**
7
+ * Shared display logic for the user-files list rows, used by both the in-app
8
+ * table (PjUserFilesTable) and the embedded widget (PkChatbotViewFiles). The two
9
+ * surfaces differ only in how they build URLs (authenticated store vs widget API
10
+ * client), so the URL builders are injected.
11
+ *
12
+ * - `view(id, inline)` → opens/downloads the original file.
13
+ * - `preview(id)` → small resized blob for the row thumbnail.
14
+ */
15
+ export declare function useFileRow(urls: {
16
+ view: (documentId: string, inline: boolean) => string;
17
+ preview: (documentId: string) => string;
18
+ }): {
19
+ showThumb: (file: FileRowLike) => boolean;
20
+ thumbUrl: (file: FileRowLike) => string;
21
+ onThumbError: (file: FileRowLike) => void;
22
+ openFile: (file: FileRowLike, download?: boolean) => void;
23
+ formatDate: (iso: string) => string;
24
+ };
@@ -155,6 +155,7 @@ export declare enum AgentBuiltInTool {
155
155
  SearchInKnowledgeBase = "searchInKnowledgeBase",
156
156
  SearchInUserFiles = "searchInUserFiles",
157
157
  UserMemory = "userMemory",
158
+ RunWorker = "runWorker",
158
159
  ShowArtifact = "showArtifact",
159
160
  ShowCalendarEvent = "showCalendarEvent",
160
161
  ShowComparison = "showComparison",
@@ -562,9 +562,21 @@ export declare const getStatusColor: (status: IndexStatus) => "success" | "dange
562
562
  export declare const getStatusIcon: (status: IndexStatus) => "ri:check-line" | "ri:error-warning-line" | "ri:hourglass-line" | "ri:time-line";
563
563
  export declare const getTypeIcon: (type: DocumentType) => "ri:file-line" | "ri:link" | "ri:feedback-line" | "ri:input-method-line";
564
564
  export declare const getFileIcon: (extension: string) => "ri:file-line" | "ri:file-pdf-2-line" | "ri:file-word-line" | "ri:file-excel-line" | "ri:file-ppt-line" | "ri:file-text-line" | "ri:file-music-line" | "ri:file-video-line" | "ri:file-image-line" | "ri:file-zip-line";
565
+ /** Whether a MIME type is an image. */
566
+ export declare const isImageMime: (mimeType?: string | null) => boolean;
565
567
  /** Whether a file MIME type can be previewed inline in the browser (image or
566
568
  * PDF) instead of being forced as a download. Shared by every file-list surface
567
569
  * so the preview/download decision stays consistent. */
568
570
  export declare const isInlineViewable: (mimeType?: string | null) => boolean;
571
+ /** File-type identity for list rows and previews: icon, accent color
572
+ * (CSS value driving glyph and tile tint) and a short human kind label. */
573
+ export interface FileKind {
574
+ icon: string;
575
+ accent: string;
576
+ label: string;
577
+ }
578
+ /** File-type identity derived from a MIME type. Accents match the chat
579
+ * attachment cards (PkChatbotFilePreview) so files read the same everywhere. */
580
+ export declare const fileKindForMime: (mimeType?: string | null) => FileKind;
569
581
  /** Icon for a file-list row, derived from its MIME type. */
570
582
  export declare const fileIconForMime: (mimeType?: string | null) => string;
@@ -74,6 +74,12 @@ export interface PlatformContext {
74
74
  threadId: string;
75
75
  userId: string;
76
76
  userName: string;
77
+ /**
78
+ * BCP-47 user locale (e.g. `en-US`, `it-IT`) when the platform provides it
79
+ * (Teams sends it on the activity; WhatsApp does not). Drives the fixed card
80
+ * labels; absent → English.
81
+ */
82
+ locale?: string;
77
83
  }
78
84
  /**
79
85
  * Bridge metadata stored on `chats.metadata` for platform conversations
@@ -25,9 +25,11 @@ export declare enum LanguageModel {
25
25
  claudeHaiku45 = "anthropic/claude-haiku-4.5",
26
26
  claudeSonnet45 = "anthropic/claude-sonnet-4.5",
27
27
  claudeSonnet46 = "anthropic/claude-sonnet-4.6",
28
+ claudeSonnet5 = "anthropic/claude-sonnet-5",
28
29
  claudeOpus46 = "anthropic/claude-opus-4.6",
29
30
  claudeOpus47 = "anthropic/claude-opus-4.7",
30
31
  claudeOpus48 = "anthropic/claude-opus-4.8",
32
+ claudeFable5 = "anthropic/claude-fable-5",
31
33
  deepseek32 = "deepseek/deepseek-v3.2",
32
34
  deepseek32Thinking = "deepseek/deepseek-v3.2-thinking",
33
35
  deepseek4pro = "deepseek/deepseek-v4-pro",
@@ -35,7 +37,9 @@ export declare enum LanguageModel {
35
37
  alibabaQwen36Plus = "alibaba/qwen3.6-plus",
36
38
  alibabaQwen37Max = "alibaba/qwen3.7-max",
37
39
  alibabaQwen37Plus = "alibaba/qwen3.7-plus",
38
- xaiGrok43 = "xai/grok-4.3"
40
+ xaiGrok43 = "xai/grok-4.3",
41
+ zaiGlm52 = "zai/glm-5.2",
42
+ zaiGlm52Fast = "zai/glm-5.2-fast"
39
43
  }
40
44
  export declare const EMBED_MODEL = LanguageModel.geminiEmbedding2;
41
45
  export declare enum LanguageModelBrand {
@@ -43,7 +47,8 @@ export declare enum LanguageModelBrand {
43
47
  google = "google",
44
48
  anthropic = "anthropic",
45
49
  deepseek = "deepseek",
46
- xai = "xai"
50
+ xai = "xai",
51
+ zai = "zai"
47
52
  }
48
53
  /**
49
54
  * Supported languages for documents and revised answers