@8wave/ai-elements 0.115.0-beta.34 → 0.115.0-beta.52

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 (185) hide show
  1. package/README.md +1 -0
  2. package/dist/_chunks/{Agent-Cu04vBnd.js → Agent-CJbRpoZG.js} +133 -122
  3. package/dist/_chunks/Agent-CJbRpoZG.js.map +1 -0
  4. package/dist/_chunks/PkChatbotFilePreview-DcqwX9nI.js +256 -0
  5. package/dist/_chunks/PkChatbotFilePreview-DcqwX9nI.js.map +1 -0
  6. package/dist/_chunks/PkHeldImage-BtaPh0Jr.js +42 -0
  7. package/dist/_chunks/PkHeldImage-BtaPh0Jr.js.map +1 -0
  8. package/dist/_chunks/{PkStreamingMarkdown-Qk9Tk_N7.js → PkStreamingMarkdown-B_qmgO9_.js} +801 -745
  9. package/dist/_chunks/PkStreamingMarkdown-B_qmgO9_.js.map +1 -0
  10. package/dist/_chunks/PkToolEditSpreadsheet-BSxYLcys.js +41 -0
  11. package/dist/_chunks/PkToolEditSpreadsheet-BSxYLcys.js.map +1 -0
  12. package/dist/_chunks/{PkToolRequestGeolocation-BoKYkQ-Z.js → PkToolRequestGeolocation-YW0ilIxN.js} +2 -2
  13. package/dist/_chunks/{PkToolRequestGeolocation-BoKYkQ-Z.js.map → PkToolRequestGeolocation-YW0ilIxN.js.map} +1 -1
  14. package/dist/_chunks/{PkToolRequestOAuthConnection-CDzpfBg6.js → PkToolRequestOAuthConnection-Cx4aFL5g.js} +2 -2
  15. package/dist/_chunks/{PkToolRequestOAuthConnection-CDzpfBg6.js.map → PkToolRequestOAuthConnection-Cx4aFL5g.js.map} +1 -1
  16. package/dist/_chunks/{PkToolShowArtifact-DB8JjN-b.js → PkToolShowArtifact-Bgj02cPe.js} +2 -2
  17. package/dist/_chunks/{PkToolShowArtifact-DB8JjN-b.js.map → PkToolShowArtifact-Bgj02cPe.js.map} +1 -1
  18. package/dist/_chunks/{PkToolShowContactForm-DHviNxDk.js → PkToolShowContactForm-Die8UpNv.js} +2 -2
  19. package/dist/_chunks/{PkToolShowContactForm-DHviNxDk.js.map → PkToolShowContactForm-Die8UpNv.js.map} +1 -1
  20. package/dist/_chunks/{PkToolShowForm-B-R9fh3R.js → PkToolShowForm-Dmq95u6b.js} +5 -5
  21. package/dist/_chunks/{PkToolShowForm-B-R9fh3R.js.map → PkToolShowForm-Dmq95u6b.js.map} +1 -1
  22. package/dist/_chunks/PkToolShowImageGallery-CKuyTxih.js +88 -0
  23. package/dist/_chunks/PkToolShowImageGallery-CKuyTxih.js.map +1 -0
  24. package/dist/_chunks/PkToolShowProductList-DjS9nvXe.js +72 -0
  25. package/dist/_chunks/PkToolShowProductList-DjS9nvXe.js.map +1 -0
  26. package/dist/_chunks/{PkToolShowSources-CfZEfleZ.js → PkToolShowSources-MJRFeqMA.js} +3 -3
  27. package/dist/_chunks/{PkToolShowSources-CfZEfleZ.js.map → PkToolShowSources-MJRFeqMA.js.map} +1 -1
  28. package/dist/_chunks/{PkToolShowSuggestedReply-DsB35hRR.js → PkToolShowSuggestedReply-DPVS3C74.js} +2 -2
  29. package/dist/_chunks/{PkToolShowSuggestedReply-DsB35hRR.js.map → PkToolShowSuggestedReply-DPVS3C74.js.map} +1 -1
  30. package/dist/_chunks/PkToolShowVideo-DnvvRE7H.js +142 -0
  31. package/dist/_chunks/PkToolShowVideo-DnvvRE7H.js.map +1 -0
  32. package/dist/_chunks/{PkToolShowWebPages-BOxbTe2X.js → PkToolShowWebPages-CYbiGa7e.js} +31 -24
  33. package/dist/_chunks/PkToolShowWebPages-CYbiGa7e.js.map +1 -0
  34. package/dist/_chunks/chatImagePolicy-C5eH4Cpq.js +46 -0
  35. package/dist/_chunks/chatImagePolicy-C5eH4Cpq.js.map +1 -0
  36. package/dist/_chunks/{markdown-_p-gd9w8.js → markdown-qIVVfGoX.js} +146 -73
  37. package/dist/_chunks/markdown-qIVVfGoX.js.map +1 -0
  38. package/dist/ai-elements.es.js +2975 -3134
  39. package/dist/ai-elements.es.js.map +1 -1
  40. package/dist-vue/PkChatbot.js +1 -1
  41. package/dist-vue/PkChatbotEmptyState.js +1 -1
  42. package/dist-vue/PkChatbotFilePreview.js +1 -1
  43. package/dist-vue/PkChatbotInput.js +1 -1
  44. package/dist-vue/PkChatbotMessages.js +1 -1
  45. package/dist-vue/PkChatbotStepPayload.js +1 -1
  46. package/dist-vue/PkChatbotStepToolDetail.js +1 -1
  47. package/dist-vue/PkChatbotSteps.js +1 -1
  48. package/dist-vue/PkChatbotViewChat.js +1 -1
  49. package/dist-vue/PkChatbotViewConversations.js +1 -1
  50. package/dist-vue/PkChatbotViewFiles.js +1 -1
  51. package/dist-vue/PkChatbotViewProfile.js +1 -1
  52. package/dist-vue/_chunks/{Agent-KbZm8GvA.js → Agent---jwXeaB.js} +57 -46
  53. package/dist-vue/_chunks/Agent---jwXeaB.js.map +1 -0
  54. package/dist-vue/_chunks/{Document-DCSWwcRE.js → Document-DmBTgjd4.js} +150 -77
  55. package/dist-vue/_chunks/Document-DmBTgjd4.js.map +1 -0
  56. package/dist-vue/_chunks/PkChatbot-W9tO1H9i.js +275 -0
  57. package/dist-vue/_chunks/PkChatbot-W9tO1H9i.js.map +1 -0
  58. package/dist-vue/_chunks/{PkChatbotEmptyState-CO7-vlsZ.js → PkChatbotEmptyState-BY3f3T0T.js} +2 -2
  59. package/dist-vue/_chunks/{PkChatbotEmptyState-CO7-vlsZ.js.map → PkChatbotEmptyState-BY3f3T0T.js.map} +1 -1
  60. package/dist-vue/_chunks/{PkChatbotFilePreview-CwiVQDF2.js → PkChatbotFilePreview-Dq9JBX9U.js} +5 -3
  61. package/dist-vue/_chunks/PkChatbotFilePreview-Dq9JBX9U.js.map +1 -0
  62. package/dist-vue/_chunks/{PkChatbotInput-D8ykcHKJ.js → PkChatbotInput-C5l6QDQY.js} +3 -3
  63. package/dist-vue/_chunks/{PkChatbotInput-D8ykcHKJ.js.map → PkChatbotInput-C5l6QDQY.js.map} +1 -1
  64. package/dist-vue/_chunks/PkChatbotMessages-3RZER9PO.js +769 -0
  65. package/dist-vue/_chunks/PkChatbotMessages-3RZER9PO.js.map +1 -0
  66. package/dist-vue/_chunks/{PkChatbotStepPayload-CSVHe7DP.js → PkChatbotStepPayload-C-xnhmzZ.js} +2 -2
  67. package/dist-vue/_chunks/{PkChatbotStepPayload-CSVHe7DP.js.map → PkChatbotStepPayload-C-xnhmzZ.js.map} +1 -1
  68. package/dist-vue/_chunks/{PkChatbotStepToolDetail-ixte-rGB.js → PkChatbotStepToolDetail-Cko1vU0N.js} +3 -3
  69. package/dist-vue/_chunks/{PkChatbotStepToolDetail-ixte-rGB.js.map → PkChatbotStepToolDetail-Cko1vU0N.js.map} +1 -1
  70. package/dist-vue/_chunks/PkChatbotSteps-BkZ3Kq2M.js +191 -0
  71. package/dist-vue/_chunks/{PkChatbotSteps-Y6kQ00ui.js.map → PkChatbotSteps-BkZ3Kq2M.js.map} +1 -1
  72. package/dist-vue/_chunks/PkChatbotViewChat-BFImSy1X.js +789 -0
  73. package/dist-vue/_chunks/PkChatbotViewChat-BFImSy1X.js.map +1 -0
  74. package/dist-vue/_chunks/{PkChatbotViewConversations-dpwDFyr_.js → PkChatbotViewConversations-C6T4ZxxX.js} +2 -2
  75. package/dist-vue/_chunks/{PkChatbotViewConversations-dpwDFyr_.js.map → PkChatbotViewConversations-C6T4ZxxX.js.map} +1 -1
  76. package/dist-vue/_chunks/PkChatbotViewFiles-CMQdbZN6.js +125 -0
  77. package/dist-vue/_chunks/PkChatbotViewFiles-CMQdbZN6.js.map +1 -0
  78. package/dist-vue/_chunks/{PkChatbotViewProfile-Brylm3We.js → PkChatbotViewProfile-CDCy1LEX.js} +2 -2
  79. package/dist-vue/_chunks/{PkChatbotViewProfile-Brylm3We.js.map → PkChatbotViewProfile-CDCy1LEX.js.map} +1 -1
  80. package/dist-vue/_chunks/PkHeldImage-BqnlurT_.js +41 -0
  81. package/dist-vue/_chunks/PkHeldImage-BqnlurT_.js.map +1 -0
  82. package/dist-vue/_chunks/{PkStreamingMarkdown-CJlfq7ub.js → PkStreamingMarkdown-DJG-aPx2.js} +792 -780
  83. package/dist-vue/_chunks/PkStreamingMarkdown-DJG-aPx2.js.map +1 -0
  84. package/dist-vue/_chunks/{PkSvgViewer-D-0M5bqg.js → PkSvgViewer-D1y8hZRW.js} +2 -2
  85. package/dist-vue/_chunks/{PkSvgViewer-D-0M5bqg.js.map → PkSvgViewer-D1y8hZRW.js.map} +1 -1
  86. package/dist-vue/_chunks/PkToolEditSpreadsheet-BHh7NUdR.js +40 -0
  87. package/dist-vue/_chunks/PkToolEditSpreadsheet-BHh7NUdR.js.map +1 -0
  88. package/dist-vue/_chunks/{PkToolRequestGeolocation-C8sLjD6g.js → PkToolRequestGeolocation-Ccbhljmn.js} +2 -2
  89. package/dist-vue/_chunks/{PkToolRequestGeolocation-C8sLjD6g.js.map → PkToolRequestGeolocation-Ccbhljmn.js.map} +1 -1
  90. package/dist-vue/_chunks/{PkToolRequestOAuthConnection-rbjNi_l0.js → PkToolRequestOAuthConnection-BXf5ZRzR.js} +2 -2
  91. package/dist-vue/_chunks/{PkToolRequestOAuthConnection-rbjNi_l0.js.map → PkToolRequestOAuthConnection-BXf5ZRzR.js.map} +1 -1
  92. package/dist-vue/_chunks/{PkToolShowArtifact-hBmAAfsd.js → PkToolShowArtifact-BsfbvfVC.js} +2 -2
  93. package/dist-vue/_chunks/{PkToolShowArtifact-hBmAAfsd.js.map → PkToolShowArtifact-BsfbvfVC.js.map} +1 -1
  94. package/dist-vue/_chunks/{PkToolShowContactForm-BHsm_W2R.js → PkToolShowContactForm-C-YbtBlG.js} +2 -2
  95. package/dist-vue/_chunks/{PkToolShowContactForm-BHsm_W2R.js.map → PkToolShowContactForm-C-YbtBlG.js.map} +1 -1
  96. package/dist-vue/_chunks/{PkToolShowDiagram-De2XvRnq.js → PkToolShowDiagram-CIHVrQ3e.js} +3 -3
  97. package/dist-vue/_chunks/{PkToolShowDiagram-De2XvRnq.js.map → PkToolShowDiagram-CIHVrQ3e.js.map} +1 -1
  98. package/dist-vue/_chunks/{PkToolShowEmail-D1mXZrT-.js → PkToolShowEmail-C591LR5N.js} +2 -2
  99. package/dist-vue/_chunks/{PkToolShowEmail-D1mXZrT-.js.map → PkToolShowEmail-C591LR5N.js.map} +1 -1
  100. package/dist-vue/_chunks/{PkToolShowForm-Ce_GpcBt.js → PkToolShowForm-BwYJhEVO.js} +6 -6
  101. package/dist-vue/_chunks/{PkToolShowForm-Ce_GpcBt.js.map → PkToolShowForm-BwYJhEVO.js.map} +1 -1
  102. package/dist-vue/_chunks/PkToolShowImageGallery-1A9zyOVn.js +88 -0
  103. package/dist-vue/_chunks/PkToolShowImageGallery-1A9zyOVn.js.map +1 -0
  104. package/dist-vue/_chunks/{PkToolShowMessage-lNPZxw2v.js → PkToolShowMessage-CbXERPHI.js} +2 -2
  105. package/dist-vue/_chunks/{PkToolShowMessage-lNPZxw2v.js.map → PkToolShowMessage-CbXERPHI.js.map} +1 -1
  106. package/dist-vue/_chunks/PkToolShowProductList-D61i6AMs.js +72 -0
  107. package/dist-vue/_chunks/PkToolShowProductList-D61i6AMs.js.map +1 -0
  108. package/dist-vue/_chunks/{PkToolShowSources-B1Nhrk7O.js → PkToolShowSources-BQpdJE_m.js} +4 -4
  109. package/dist-vue/_chunks/{PkToolShowSources-B1Nhrk7O.js.map → PkToolShowSources-BQpdJE_m.js.map} +1 -1
  110. package/dist-vue/_chunks/{PkToolShowSuggestedReply-Bmzygdww.js → PkToolShowSuggestedReply-D3jLsbKJ.js} +2 -2
  111. package/dist-vue/_chunks/{PkToolShowSuggestedReply-Bmzygdww.js.map → PkToolShowSuggestedReply-D3jLsbKJ.js.map} +1 -1
  112. package/dist-vue/_chunks/PkToolShowVideo-DUdkb3qb.js +141 -0
  113. package/dist-vue/_chunks/PkToolShowVideo-DUdkb3qb.js.map +1 -0
  114. package/dist-vue/_chunks/PkToolShowWebPages-BeeBiv9R.js +86 -0
  115. package/dist-vue/_chunks/PkToolShowWebPages-BeeBiv9R.js.map +1 -0
  116. package/dist-vue/_chunks/{PkUrl-E12f7rn_.js → PkUrl-CN1kkZiH.js} +2 -2
  117. package/dist-vue/_chunks/{PkUrl-E12f7rn_.js.map → PkUrl-CN1kkZiH.js.map} +1 -1
  118. package/dist-vue/_chunks/{createChatbotApiClient-B_mkyrEl.js → createChatbotApiClient-CDrs7NwO.js} +13 -9
  119. package/dist-vue/_chunks/{createChatbotApiClient-B_mkyrEl.js.map → createChatbotApiClient-CDrs7NwO.js.map} +1 -1
  120. package/dist-vue/_chunks/{useChatbotStore-DEELIJ89.js → useChatbotStore-D6YNk8Rx.js} +6 -4
  121. package/dist-vue/_chunks/useChatbotStore-D6YNk8Rx.js.map +1 -0
  122. package/dist-vue/_chunks/useShortUrlResolver-DI8ycJiO.js +71 -0
  123. package/dist-vue/_chunks/useShortUrlResolver-DI8ycJiO.js.map +1 -0
  124. package/dist-vue/_chunks/utils-roi6YVNC.js +199 -0
  125. package/dist-vue/_chunks/utils-roi6YVNC.js.map +1 -0
  126. package/dist-vue/api.js +1 -1
  127. package/dist-vue/apps/web-component/src/composables/useChatbotAgent.d.ts +2 -0
  128. package/dist-vue/composables.js +73 -13
  129. package/dist-vue/composables.js.map +1 -1
  130. package/dist-vue/index.js +3614 -3559
  131. package/dist-vue/index.js.map +1 -1
  132. package/dist-vue/locales.js +26 -14
  133. package/dist-vue/packages/components/src/chat/PkAgentSettingsPanel.d.ts +6 -2
  134. package/dist-vue/packages/components/src/chat/PkChatbotFilePreview.d.ts +5 -0
  135. package/dist-vue/packages/components/src/chat/PkHeldImage.d.ts +21 -0
  136. package/dist-vue/packages/components/src/chat/PkToolEditSpreadsheet.d.ts +14 -0
  137. package/dist-vue/packages/components/src/chat/chatImagePolicy.d.ts +55 -0
  138. package/dist-vue/packages/components/src/chat/index.d.ts +1 -0
  139. package/dist-vue/packages/components/src/chat/markdownHtml.d.ts +17 -1
  140. package/dist-vue/packages/components/src/chat/utils.d.ts +8 -0
  141. package/dist-vue/packages/composable/src/chatbot/api/createChatbotApiClient.d.ts +7 -1
  142. package/dist-vue/packages/composable/src/chatbot/useChatbotStore.d.ts +18 -0
  143. package/dist-vue/packages/composable/src/useFileRow.d.ts +21 -0
  144. package/dist-vue/packages/models/src/schema/Agent.d.ts +28 -0
  145. package/dist-vue/packages/models/src/schema/Document.d.ts +173 -0
  146. package/dist-vue/packages/models/src/schema/ReasoningChat.d.ts +2 -0
  147. package/dist-vue/packages/models/src/schema/SubAgent.d.ts +2 -0
  148. package/dist-vue/packages/models/src/schema/Tabular.d.ts +181 -0
  149. package/dist-vue/packages/models/src/schema/index.d.ts +1 -0
  150. package/dist-vue/style.css +1 -1
  151. package/package.json +1 -1
  152. package/dist/_chunks/Agent-Cu04vBnd.js.map +0 -1
  153. package/dist/_chunks/PkStreamingMarkdown-Qk9Tk_N7.js.map +0 -1
  154. package/dist/_chunks/PkToolShowImageGallery-FubPWFCb.js +0 -75
  155. package/dist/_chunks/PkToolShowImageGallery-FubPWFCb.js.map +0 -1
  156. package/dist/_chunks/PkToolShowProductList-DFy2jxn4.js +0 -65
  157. package/dist/_chunks/PkToolShowProductList-DFy2jxn4.js.map +0 -1
  158. package/dist/_chunks/PkToolShowVideo-DClps9oP.js +0 -123
  159. package/dist/_chunks/PkToolShowVideo-DClps9oP.js.map +0 -1
  160. package/dist/_chunks/PkToolShowWebPages-BOxbTe2X.js.map +0 -1
  161. package/dist/_chunks/markdown-_p-gd9w8.js.map +0 -1
  162. package/dist-vue/_chunks/Agent-KbZm8GvA.js.map +0 -1
  163. package/dist-vue/_chunks/Document-DCSWwcRE.js.map +0 -1
  164. package/dist-vue/_chunks/PkChatbot-CRb-U8e3.js +0 -272
  165. package/dist-vue/_chunks/PkChatbot-CRb-U8e3.js.map +0 -1
  166. package/dist-vue/_chunks/PkChatbotFilePreview-CwiVQDF2.js.map +0 -1
  167. package/dist-vue/_chunks/PkChatbotMessages-UT72KC_z.js +0 -769
  168. package/dist-vue/_chunks/PkChatbotMessages-UT72KC_z.js.map +0 -1
  169. package/dist-vue/_chunks/PkChatbotSteps-Y6kQ00ui.js +0 -191
  170. package/dist-vue/_chunks/PkChatbotViewChat-D3PwREDw.js +0 -784
  171. package/dist-vue/_chunks/PkChatbotViewChat-D3PwREDw.js.map +0 -1
  172. package/dist-vue/_chunks/PkChatbotViewFiles-BStYLY2B.js +0 -111
  173. package/dist-vue/_chunks/PkChatbotViewFiles-BStYLY2B.js.map +0 -1
  174. package/dist-vue/_chunks/PkStreamingMarkdown-CJlfq7ub.js.map +0 -1
  175. package/dist-vue/_chunks/PkToolShowImageGallery-DmhZLnBk.js +0 -75
  176. package/dist-vue/_chunks/PkToolShowImageGallery-DmhZLnBk.js.map +0 -1
  177. package/dist-vue/_chunks/PkToolShowProductList-BW5pRFe4.js +0 -65
  178. package/dist-vue/_chunks/PkToolShowProductList-BW5pRFe4.js.map +0 -1
  179. package/dist-vue/_chunks/PkToolShowVideo-BZOTu2Qe.js +0 -122
  180. package/dist-vue/_chunks/PkToolShowVideo-BZOTu2Qe.js.map +0 -1
  181. package/dist-vue/_chunks/PkToolShowWebPages-BiIBRV_n.js +0 -79
  182. package/dist-vue/_chunks/PkToolShowWebPages-BiIBRV_n.js.map +0 -1
  183. package/dist-vue/_chunks/useChatbotStore-DEELIJ89.js.map +0 -1
  184. package/dist-vue/_chunks/utils-CtD8DCrq.js +0 -184
  185. package/dist-vue/_chunks/utils-CtD8DCrq.js.map +0 -1
@@ -154,6 +154,7 @@ var e = {
154
154
  mimeTypeImages: "Images",
155
155
  mimeTypeDocuments: "Documents",
156
156
  mimeTypeText: "Text",
157
+ mimeTypeSpreadsheets: "Spreadsheets (.xlsx)",
157
158
  general: "General",
158
159
  style: "Style",
159
160
  tools: "Tools",
@@ -254,6 +255,9 @@ var e = {
254
255
  monthRateLimit: "Month Rate Limit",
255
256
  trustedOrigins: "Trusted Origins",
256
257
  origin: "Origine",
258
+ imageHosts: "Image hosts",
259
+ imageHost: "Host",
260
+ imageHostsHint: "Answers and cards load images by themselves only from these hosts and from the platform. An image from any other host shows its host and loads on a click, so an answer cannot send the conversation to a site through an image url.",
257
261
  conversations: "Conversations",
258
262
  profile: "Profile",
259
263
  authentication: "Authentication",
@@ -302,6 +306,7 @@ var e = {
302
306
  thinking: "Thinking",
303
307
  enabled: "Enabled",
304
308
  disabled: "Disabled",
309
+ imageHeld: "Image from {host}: click to load",
305
310
  imageLoadError: "Image not available",
306
311
  toolApprovalBadge: "User confirm",
307
312
  calendarEvent: "Event",
@@ -353,6 +358,8 @@ var e = {
353
358
  askAnything: "Type your message...",
354
359
  noTrustedOrigins: "No trusted origins configured",
355
360
  insertOrigin: "https://example.com",
361
+ noImageHosts: "No image hosts: images from other hosts wait for a click",
362
+ insertImageHost: "images.example.com",
356
363
  search: "Search...",
357
364
  comment: "Write your comment...",
358
365
  enterYourQuestion: "Enter your question...",
@@ -467,11 +474,9 @@ var e = {
467
474
  },
468
475
  userFiles: {
469
476
  chatFilesTitle: "Files in this chat",
470
- excludeConfirm: "The assistant will not be able to search it any more. It stays in the chat you uploaded it to.",
471
477
  chatFilesEmpty: "No files uploaded in this chat.",
472
478
  open: "Open file",
473
- untitled: "Untitled file",
474
- exclude: "Remove file"
479
+ untitled: "Untitled file"
475
480
  },
476
481
  twoFactor: {
477
482
  challengeBackup: "Enter one of the backup codes you saved.",
@@ -507,6 +512,7 @@ var e = {
507
512
  steps: "Processing",
508
513
  stepCount: "{n} step | {n} steps",
509
514
  stepError: "Error",
515
+ editSpreadsheetCells: "{count} cell changed | {count} cells changed",
510
516
  requestGeolocation: "Requesting location...",
511
517
  requestOAuthConnectionSuccess: "Successfully connected to {name}.",
512
518
  requestOAuthConnection: "Connecting...",
@@ -520,6 +526,9 @@ var e = {
520
526
  searchingDocuments: "Memory search...",
521
527
  expandChunkContext: "Reading more context...",
522
528
  readDocumentFile: "Reading the original document...",
529
+ readSpreadsheet: "Reading the spreadsheet...",
530
+ editSpreadsheet: "Editing the spreadsheet...",
531
+ querySpreadsheet: "Querying the spreadsheet...",
523
532
  geocode: "Looking up a location...",
524
533
  getWeather: "Fetching weather data...",
525
534
  recallUserMemory: "Recalling user memories...",
@@ -548,10 +557,7 @@ var e = {
548
557
  reasoning: "Reasoning...",
549
558
  streaming: "Loading..."
550
559
  },
551
- confirmTitle: {
552
- deleteMyConversations: "Delete all your conversations?",
553
- excludeUserFile: "Remove this file from your files?"
554
- },
560
+ confirmTitle: { deleteMyConversations: "Delete all your conversations?" },
555
561
  toolApproval: {
556
562
  expired: "This request is no longer answerable: the action was not performed.",
557
563
  prompt: "Your confirmation is needed to continue:"
@@ -747,6 +753,7 @@ var e = {
747
753
  mimeTypeImages: "Immagini",
748
754
  mimeTypeDocuments: "Documenti",
749
755
  mimeTypeText: "Testo",
756
+ mimeTypeSpreadsheets: "Fogli di calcolo (.xlsx)",
750
757
  general: "Generale",
751
758
  style: "Stile",
752
759
  tools: "Tool",
@@ -847,6 +854,9 @@ var e = {
847
854
  monthRateLimit: "Limite al mese",
848
855
  trustedOrigins: "Origini attendibili",
849
856
  origin: "Origine",
857
+ imageHosts: "Host delle immagini",
858
+ imageHost: "Host",
859
+ imageHostsHint: "Risposte e card caricano da sole solo le immagini di questi host e della piattaforma. Un'immagine di un altro host mostra il suo host e si carica con un clic, così una risposta non può mandare la conversazione a un sito dentro l'url di un'immagine.",
850
860
  conversations: "Conversazioni",
851
861
  profile: "Profilo",
852
862
  authentication: "Autenticazione",
@@ -895,6 +905,7 @@ var e = {
895
905
  thinking: "Pensiero",
896
906
  enabled: "Abilitato",
897
907
  disabled: "Disabilitato",
908
+ imageHeld: "Immagine da {host}: clicca per caricarla",
898
909
  imageLoadError: "Immagine non disponibile",
899
910
  toolApprovalBadge: "Conferma utente",
900
911
  calendarEvent: "Evento",
@@ -946,6 +957,8 @@ var e = {
946
957
  askAnything: "Scrivi la tua domanda...",
947
958
  noTrustedOrigins: "Nessuna origine attendibile configurata",
948
959
  insertOrigin: "https://example.com",
960
+ noImageHosts: "Nessun host: le immagini degli altri host aspettano un clic",
961
+ insertImageHost: "images.example.com",
949
962
  search: "Cerca...",
950
963
  comment: "Scrivi il tuo commento...",
951
964
  enterYourQuestion: "Inserisci la tua domanda...",
@@ -1060,11 +1073,9 @@ var e = {
1060
1073
  },
1061
1074
  userFiles: {
1062
1075
  chatFilesTitle: "File in questa chat",
1063
- excludeConfirm: "L'assistente non potrà più cercarlo. Resta nella chat in cui lo avete caricato.",
1064
1076
  chatFilesEmpty: "Nessun file caricato in questa chat.",
1065
1077
  open: "Apri file",
1066
- untitled: "File senza nome",
1067
- exclude: "Rimuovi file"
1078
+ untitled: "File senza nome"
1068
1079
  },
1069
1080
  twoFactor: {
1070
1081
  challengeBackup: "Scrivi uno dei codici di recupero che hai salvato.",
@@ -1100,6 +1111,7 @@ var e = {
1100
1111
  steps: "Elaborazione",
1101
1112
  stepCount: "{n} passaggio | {n} passaggi",
1102
1113
  stepError: "Errore",
1114
+ editSpreadsheetCells: "{count} cella modificata | {count} celle modificate",
1103
1115
  requestGeolocation: "Richiesta posizione...",
1104
1116
  requestOAuthConnectionSuccess: "Connessione a {name} riuscita.",
1105
1117
  requestOAuthConnection: "Connessione in corso...",
@@ -1113,6 +1125,9 @@ var e = {
1113
1125
  searchingDocuments: "Ricerca nella memoria...",
1114
1126
  expandChunkContext: "Lettura di altro contesto...",
1115
1127
  readDocumentFile: "Lettura del documento originale...",
1128
+ readSpreadsheet: "Lettura del foglio di calcolo...",
1129
+ editSpreadsheet: "Modifica del foglio di calcolo...",
1130
+ querySpreadsheet: "Interrogazione del foglio di calcolo...",
1116
1131
  geocode: "Ricerca della posizione...",
1117
1132
  getWeather: "Recupero dati meteo...",
1118
1133
  recallUserMemory: "Richiamo dei ricordi utente...",
@@ -1141,10 +1156,7 @@ var e = {
1141
1156
  reasoning: "Ragionamento...",
1142
1157
  streaming: "Caricamento..."
1143
1158
  },
1144
- confirmTitle: {
1145
- deleteMyConversations: "Eliminare tutte le vostre conversazioni?",
1146
- excludeUserFile: "Rimuovere questo file dai vostri file?"
1147
- },
1159
+ confirmTitle: { deleteMyConversations: "Eliminare tutte le vostre conversazioni?" },
1148
1160
  toolApproval: {
1149
1161
  expired: "Questa richiesta non è più confermabile: l'azione non è stata eseguita.",
1150
1162
  prompt: "Per continuare serve la tua conferma:"
@@ -60,6 +60,8 @@ type __VLS_ModelProps = {
60
60
  'trustedOrigins'?: {
61
61
  origins?: string[];
62
62
  };
63
+ /** Hosts the answers may load images from by themselves (hole 20). */
64
+ 'imageHosts'?: string[] | undefined;
63
65
  'disabledTools'?: AgentBuiltInTool[];
64
66
  /**
65
67
  * Tools that ask the user to confirm before running
@@ -119,9 +121,9 @@ type __VLS_ModelProps = {
119
121
  } | undefined;
120
122
  };
121
123
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
122
- declare var __VLS_766: {};
124
+ declare var __VLS_777: {};
123
125
  type __VLS_Slots = {} & {
124
- default?: (props: typeof __VLS_766) => any;
126
+ default?: (props: typeof __VLS_777) => any;
125
127
  };
126
128
  declare const __VLS_base: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
127
129
  "update:reasoning": (value: {
@@ -311,6 +313,7 @@ declare const __VLS_base: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, Com
311
313
  "update:trustedOrigins": (value: {
312
314
  origins?: string[];
313
315
  }) => any;
316
+ "update:imageHosts": (value: string[] | undefined) => any;
314
317
  "update:disabledTools": (value: AgentBuiltInTool[]) => any;
315
318
  "update:approvalTools": (value: string[]) => any;
316
319
  "update:useAllUserKb": (value: boolean) => any;
@@ -550,6 +553,7 @@ declare const __VLS_base: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, Com
550
553
  "onUpdate:trustedOrigins"?: ((value: {
551
554
  origins?: string[];
552
555
  }) => any) | undefined;
556
+ "onUpdate:imageHosts"?: ((value: string[] | undefined) => any) | undefined;
553
557
  "onUpdate:disabledTools"?: ((value: AgentBuiltInTool[]) => any) | undefined;
554
558
  "onUpdate:approvalTools"?: ((value: string[]) => any) | undefined;
555
559
  "onUpdate:useAllUserKb"?: ((value: boolean) => any) | undefined;
@@ -14,6 +14,11 @@ type __VLS_Props = {
14
14
  * message log where the details matter.
15
15
  */
16
16
  compact?: boolean;
17
+ /**
18
+ * Keeps the download button visible instead of revealing it on hover:
19
+ * for a file the agent wrote, which the user is there to download.
20
+ */
21
+ showDownload?: boolean;
17
22
  };
18
23
  declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
19
24
  remove: () => any;
@@ -0,0 +1,21 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ /**
3
+ * The place of an image a tool card may not load by itself
4
+ * (chatImagePolicy.ts): it names the host and asks for a click. A span and
5
+ * not a button, because the cards wrap their images in a link, and a
6
+ * click here must neither open it nor reach it.
7
+ */
8
+ type __VLS_Props = {
9
+ host?: string;
10
+ /** Fills the slot of a large image, with the words under the icon. */
11
+ fill?: boolean;
12
+ /** A video card holds its player the same way. */
13
+ kind?: 'image' | 'video';
14
+ };
15
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
16
+ release: () => any;
17
+ }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
18
+ onRelease?: (() => any) | undefined;
19
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
20
+ declare const _default: typeof __VLS_export;
21
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ /**
3
+ * The version an `editSpreadsheet` call wrote, as a file to download.
4
+ * Drawn once the call has an output: while it runs, the feed's activity
5
+ * indicator names it, and a refused edit is explained by the answer.
6
+ */
7
+ type __VLS_Props = {
8
+ part: unknown;
9
+ /** The authenticated download URL of a file stored in this chat. */
10
+ fileUrl: (storedFileName: string) => string;
11
+ };
12
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
@@ -0,0 +1,55 @@
1
+ import { ComputedRef, InjectionKey } from 'vue';
2
+ /**
3
+ * Which images a chat loads by itself: hole 20 of
4
+ * docs/specs/organization-isolation.md.
5
+ *
6
+ * The model writes the url of every image in an answer and in the image tool
7
+ * cards (gallery, products, web pages), and a prompt injected through a
8
+ * document, a page or a tool result can make it put the conversation in that
9
+ * url. The browser fetches it as soon as it renders, and the text is gone.
10
+ * So an image loads by itself only from the media of the platform and from
11
+ * the hosts the agent lists (`interface.imageHosts`); any other shows its host
12
+ * and loads on a click, a choice made by whoever reads it.
13
+ *
14
+ * Provided by `PkChatbot` (the app and the widget) and by the pages that show
15
+ * an agent's answers; where nothing is provided, images load as before.
16
+ */
17
+ export interface ChatImagePolicy {
18
+ /** Host names the agent lists, normalized (`normalizeImageHost`). */
19
+ hosts: string[];
20
+ /** Origins of the platform, which serve the media of a chat. */
21
+ platformOrigins: string[];
22
+ }
23
+ export declare const ChatImagePolicyKey: InjectionKey<ComputedRef<ChatImagePolicy>>;
24
+ /**
25
+ * Applies the policy of an agent to the answers rendered below: its listed
26
+ * hosts, and the backend the page talks to, which serves the chat's media.
27
+ * The hosts are normalized again because a preview passes them as typed,
28
+ * before the schema does.
29
+ */
30
+ export declare function provideChatImagePolicy(hosts: () => string[] | undefined, backendUrl: () => string | undefined): void;
31
+ /**
32
+ * The host an image url points to, for the placeholder, or `undefined` when
33
+ * it does not parse.
34
+ */
35
+ export declare function imageHostOf(src: string, pageUrl: string): string | undefined;
36
+ /**
37
+ * Whether an image may load without a click. `data:` and `blob:` images never
38
+ * reach the network; everything else needs the media of the platform or a
39
+ * listed host, over https. The page's own origin gets no exception: a site,
40
+ * the platform's included, often redirects wherever its query says.
41
+ */
42
+ export declare function isImageAllowed(src: string, policy: ChatImagePolicy, pageUrl: string): boolean;
43
+ /**
44
+ * The policy of the surrounding chat, with the images released by a click.
45
+ * A release is per url and lasts as long as the component that asked. A
46
+ * short link of the platform is judged, and named, by the url it stands for:
47
+ * it waits until the resolver brings that url back.
48
+ */
49
+ export declare function useChatImageGate(): {
50
+ /** Whether a policy applies here at all. */
51
+ isGated: ComputedRef<boolean>;
52
+ canLoad: (src: string | undefined) => boolean;
53
+ release: (src: string) => void;
54
+ hostOf: (src: string) => string | undefined;
55
+ };
@@ -54,4 +54,5 @@ import { default as PkVoiceOrb } from './PkVoiceOrb';
54
54
  import { default as PkChatButton } from './PkChatButton';
55
55
  export { MODEL_CATALOG_KEY, provideModelCatalog, useModelCatalogEntry, } from './modelCatalog';
56
56
  export { isMcpOAuthReport } from './mcpOAuthReport';
57
+ export { provideChatImagePolicy } from './chatImagePolicy';
57
58
  export { PkAgentSelectorInline, PkAgentSettingsPanel, PkAuroraCanvas, PkAvatar, PkChatSidebar, PkChatSidebarConversationItem, PkChatbot, PkChatbotEmptyState, PkChatbotError, PkChatbotFeedbackForm, PkChatbotFilePreview, PkChatbotInput, PkChatbotMessages, PkChatbotSteps, PkChatbotStepToolDetail, PkChatbotStepPayload, PkChatbotViewChat, PkChunkPreview, PkChatbotViewConversations, PkChatbotViewProfile, PkCode, PkCopyBlock, PkDocumentHeader, PkLanguageModel, PkLanguageModelCombobox, PkModelOption, PkMessageParts, PkMessageDetail, PkStreamingMarkdown, PkStreamingMarkdownAutoscroll, PkToolShowForm, PkToolShowArtifact, PkToolApprovalBadge, PkToolShowEmail, PkToolShowMessage, PkToolShowWebPages, PkToolShowProductList, PkToolShowContactForm, PkToolShowCalendarEvent, PkToolShowComparison, PkToolShowLocation, PkToolShowQrCode, PkToolShowImageGallery, PkToolShowSuggestedReply, PkToolShowSources, PkRetryCountdown, PkReasoningChat, PkReasoningSettings, PkWebSearchSettings, PkWelcomePopup, PkChatbotAuth, PkVoiceSession, PkVoiceOrb, PkChatButton, };
@@ -9,6 +9,18 @@ export declare function escapeHtml(text: string): string;
9
9
  * no quote either, so the formula cannot close the attribute.
10
10
  */
11
11
  export declare function renderKatexPlaceholder(text: string, displayMode: boolean): string;
12
+ /**
13
+ * What the sanitizer does with an image the chat may not load by itself
14
+ * (see `chatImagePolicy.ts`).
15
+ */
16
+ export interface HeldImages {
17
+ canLoad: (src: string) => boolean;
18
+ hostOf: (src: string) => string | undefined;
19
+ /** The words on the placeholder, for the host the image points to. */
20
+ label: (host: string) => string;
21
+ }
22
+ /** The attribute a held image keeps its url in, read back on a click. */
23
+ export declare const HELD_IMAGE_ATTRIBUTE = "data-held-src";
12
24
  /**
13
25
  * Cleans the HTML rendered from a markdown before it reaches `v-html`. The
14
26
  * markdown is written by a model, and through the knowledge base, the tools and
@@ -16,5 +28,9 @@ export declare function renderKatexPlaceholder(text: string, displayMode: boolea
16
28
  * through untouched, so a handler written in a document ran in the browser of
17
29
  * whoever read the answer. Scripts, handlers, `javascript:` urls, styles and
18
30
  * forms go, the formatting stays.
31
+ *
32
+ * With `held`, an image the chat may not load by itself becomes a button that
33
+ * names its host: the url waits in an attribute, which fetches nothing, until
34
+ * the reader asks for it.
19
35
  */
20
- export declare function sanitizeMarkdownHtml(html: string): string;
36
+ export declare function sanitizeMarkdownHtml(html: string, held?: HeldImages): string;
@@ -16,6 +16,14 @@ export declare function mergeConsecutiveTextParts(parts: UIMessage['parts']): UI
16
16
  * keeps every call, the refused one included.
17
17
  */
18
18
  export declare function dropCorrectedWidgetErrors(parts: UIMessage['parts']): UIMessage['parts'];
19
+ /** The parts with the file outputs moved last, in their own order. */
20
+ export declare function moveFileOutputsLast(parts: UIMessage['parts']): UIMessage['parts'];
21
+ /**
22
+ * The key of a part in the feed. Its position, except for a file output: that
23
+ * one is always last, so its position moves as the answer grows, and keyed by
24
+ * it the card would be redrawn at every new part.
25
+ */
26
+ export declare function feedPartKey(part: UIMessage['parts'][number], index: number): string | number;
19
27
  export declare function isStreamingPart(part: UIMessage['parts'][number] | null | undefined): part is Extract<UIMessage['parts'][number], {
20
28
  streaming?: boolean;
21
29
  }>;
@@ -19,9 +19,13 @@ export interface SubmitLeadPayload {
19
19
  chatId: string;
20
20
  [key: string]: unknown;
21
21
  }
22
- /** A file from the user's "My files" KB, as listed for a chat. */
22
+ /** A file from the user's "My files" KB, or a spreadsheet of the chat with its
23
+ * versions, as listed for a chat. */
23
24
  export interface ChatbotFile {
24
25
  documentId: string;
26
+ kind: 'document' | 'spreadsheet';
27
+ /** For a spreadsheet version, the attachment it is a version of. */
28
+ sourceAttachmentId: string | null;
25
29
  name: string | null;
26
30
  mimeType: string | null;
27
31
  indexStatus: string;
@@ -38,6 +42,8 @@ export interface ChatbotApiClient {
38
42
  getAgent(orgSlug: string, agentId: string): Promise<AgentPublic>;
39
43
  getAgentAccess(orgSlug: string, agentId: string): Promise<AgentAccess>;
40
44
  getMediaUrl(agentId: string, chatId: string, storedFileName: string): string;
45
+ /** Like {@link getMediaUrl}, served as an attachment: the browser saves it. */
46
+ getMediaDownloadUrl(agentId: string, chatId: string, storedFileName: string): string;
41
47
  appendAuthToken(url: string): string;
42
48
  uploadMedia(agentId: string, chatId: string, file: File): Promise<MediaSource>;
43
49
  getChatEndpoint(agentId: string, type?: 'chat' | 'reasoning'): string;
@@ -57,6 +57,7 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
57
57
  loaderStrategy: AgentLoaderStrategy;
58
58
  smoothStream: boolean;
59
59
  showExtendedSteps: boolean;
60
+ imageHosts: string[];
60
61
  media?: {
61
62
  name: string;
62
63
  src: {
@@ -150,6 +151,7 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
150
151
  loaderStrategy: AgentLoaderStrategy;
151
152
  smoothStream: boolean;
152
153
  showExtendedSteps: boolean;
154
+ imageHosts: string[];
153
155
  media?: {
154
156
  name: string;
155
157
  src: {
@@ -1556,12 +1558,16 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
1556
1558
  isLoadingConversations: globalThis.Ref<boolean, boolean>;
1557
1559
  chatFiles: globalThis.Ref<{
1558
1560
  documentId: string;
1561
+ kind: "document" | "spreadsheet";
1562
+ sourceAttachmentId: string | null;
1559
1563
  name: string | null;
1560
1564
  mimeType: string | null;
1561
1565
  indexStatus: string;
1562
1566
  createdAt: string;
1563
1567
  }[], ChatbotFile[] | {
1564
1568
  documentId: string;
1569
+ kind: "document" | "spreadsheet";
1570
+ sourceAttachmentId: string | null;
1565
1571
  name: string | null;
1566
1572
  mimeType: string | null;
1567
1573
  indexStatus: string;
@@ -1801,6 +1807,7 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
1801
1807
  loaderStrategy: AgentLoaderStrategy;
1802
1808
  smoothStream: boolean;
1803
1809
  showExtendedSteps: boolean;
1810
+ imageHosts: string[];
1804
1811
  media?: {
1805
1812
  name: string;
1806
1813
  src: {
@@ -1894,6 +1901,7 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
1894
1901
  loaderStrategy: AgentLoaderStrategy;
1895
1902
  smoothStream: boolean;
1896
1903
  showExtendedSteps: boolean;
1904
+ imageHosts: string[];
1897
1905
  media?: {
1898
1906
  name: string;
1899
1907
  src: {
@@ -3300,12 +3308,16 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
3300
3308
  isLoadingConversations: globalThis.Ref<boolean, boolean>;
3301
3309
  chatFiles: globalThis.Ref<{
3302
3310
  documentId: string;
3311
+ kind: "document" | "spreadsheet";
3312
+ sourceAttachmentId: string | null;
3303
3313
  name: string | null;
3304
3314
  mimeType: string | null;
3305
3315
  indexStatus: string;
3306
3316
  createdAt: string;
3307
3317
  }[], ChatbotFile[] | {
3308
3318
  documentId: string;
3319
+ kind: "document" | "spreadsheet";
3320
+ sourceAttachmentId: string | null;
3309
3321
  name: string | null;
3310
3322
  mimeType: string | null;
3311
3323
  indexStatus: string;
@@ -3545,6 +3557,7 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
3545
3557
  loaderStrategy: AgentLoaderStrategy;
3546
3558
  smoothStream: boolean;
3547
3559
  showExtendedSteps: boolean;
3560
+ imageHosts: string[];
3548
3561
  media?: {
3549
3562
  name: string;
3550
3563
  src: {
@@ -3638,6 +3651,7 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
3638
3651
  loaderStrategy: AgentLoaderStrategy;
3639
3652
  smoothStream: boolean;
3640
3653
  showExtendedSteps: boolean;
3654
+ imageHosts: string[];
3641
3655
  media?: {
3642
3656
  name: string;
3643
3657
  src: {
@@ -5044,12 +5058,16 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
5044
5058
  isLoadingConversations: globalThis.Ref<boolean, boolean>;
5045
5059
  chatFiles: globalThis.Ref<{
5046
5060
  documentId: string;
5061
+ kind: "document" | "spreadsheet";
5062
+ sourceAttachmentId: string | null;
5047
5063
  name: string | null;
5048
5064
  mimeType: string | null;
5049
5065
  indexStatus: string;
5050
5066
  createdAt: string;
5051
5067
  }[], ChatbotFile[] | {
5052
5068
  documentId: string;
5069
+ kind: "document" | "spreadsheet";
5070
+ sourceAttachmentId: string | null;
5053
5071
  name: string | null;
5054
5072
  mimeType: string | null;
5055
5073
  indexStatus: string;
@@ -22,3 +22,24 @@ export declare function useFileRow(urls: {
22
22
  openFile: (file: FileRowLike, download?: boolean) => void;
23
23
  formatDate: (iso: string) => string;
24
24
  };
25
+ /** What tells a spreadsheet row apart from a KB document. */
26
+ export interface FileKindLike {
27
+ kind?: 'document' | 'spreadsheet';
28
+ sourceAttachmentId?: string | null;
29
+ }
30
+ /**
31
+ * The wording that depends on what a "My files" row is. A KB document is a
32
+ * copy of the upload: removing it only takes it out of the assistant's reach.
33
+ * A spreadsheet is the chat attachment itself and never enters the KB: its row
34
+ * says so, and removing it deletes it from its chat with every version the
35
+ * assistant wrote of it.
36
+ */
37
+ export declare function useUserFileKind(): {
38
+ isSpreadsheet: (file: FileKindLike) => boolean;
39
+ kindNote: (file: FileKindLike) => string | undefined;
40
+ removeLabel: (file: FileKindLike) => string;
41
+ removeConfirm: (file: FileKindLike) => {
42
+ title: string;
43
+ questionLabel: string;
44
+ };
45
+ };
@@ -320,6 +320,13 @@ export declare enum AgentBuiltInTool {
320
320
  SearchInKnowledgeBase = "searchInKnowledgeBase",
321
321
  SearchInUserFiles = "searchInUserFiles",
322
322
  UserMemory = "userMemory",
323
+ /**
324
+ * `readSpreadsheet`, `editSpreadsheet` and `querySpreadsheet`, on a chat
325
+ * with an attached .xlsx.
326
+ */
327
+ Spreadsheet = "spreadsheet",
328
+ /** `querySpreadsheet` on the spreadsheets of the knowledge base. */
329
+ QuerySpreadsheet = "querySpreadsheet",
323
330
  RunWorker = "runWorker",
324
331
  FetchTeamsChannelHistory = "fetchTeamsChannelHistory",
325
332
  ShowArtifact = "showArtifact",
@@ -955,6 +962,12 @@ export declare enum AgentChannel {
955
962
  Widget = "widget"
956
963
  }
957
964
  export declare const ALL_AGENT_CHANNELS: AgentChannel[];
965
+ /**
966
+ * An image host as an agent lists it: lower case, without scheme, port or
967
+ * path, so `https://Images.Example.com/a.png` and `images.example.com` are the
968
+ * same entry and compare equal to `URL.hostname`.
969
+ */
970
+ export declare function normalizeImageHost(value: string): string;
958
971
  export declare const AgentInterfaceSchema: z.ZodObject<{
959
972
  media: z.ZodOptional<z.ZodObject<{
960
973
  name: z.ZodString;
@@ -1080,10 +1093,18 @@ export declare const AgentInterfaceSchema: z.ZodObject<{
1080
1093
  customCss: z.ZodOptional<z.ZodString>;
1081
1094
  smoothStream: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1082
1095
  showExtendedSteps: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1096
+ imageHosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
1083
1097
  }, z.core.$strip>;
1084
1098
  export type AgentInterface = z.infer<typeof AgentInterfaceSchema>;
1085
1099
  export declare const CHAT_FILE_UPLOAD_DEFAULT_MIME_TYPES: readonly ["image/jpeg", "image/png", "image/gif", "image/webp", "application/pdf", "text/plain", "text/markdown", "text/csv"];
1086
1100
  export type ChatFileUploadMimeType = (typeof CHAT_FILE_UPLOAD_DEFAULT_MIME_TYPES)[number];
1101
+ /**
1102
+ * An Excel workbook (.xlsx). Opt-in, never in the defaults: an agent accepts it
1103
+ * when its admin turns spreadsheets on, and the model then reads and edits it
1104
+ * through the spreadsheet tools instead of receiving the file (spec
1105
+ * `chat-spreadsheet-editing.md`).
1106
+ */
1107
+ export declare const SPREADSHEET_MIME_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
1087
1108
  export declare const CHAT_FILE_UPLOAD_MAX_FILE_SIZE_BYTES = 104857600;
1088
1109
  export declare const AgentFileUploadSchema: z.ZodObject<{
1089
1110
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -1517,6 +1538,7 @@ export declare const AgentSettingsSchema: z.ZodObject<{
1517
1538
  customCss: z.ZodOptional<z.ZodString>;
1518
1539
  smoothStream: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1519
1540
  showExtendedSteps: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1541
+ imageHosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
1520
1542
  }, z.core.$strip>;
1521
1543
  tools: z.ZodDefault<z.ZodOptional<z.ZodObject<{
1522
1544
  disabled: z.ZodDefault<z.ZodArray<z.ZodEnum<typeof AgentBuiltInTool>>>;
@@ -1912,6 +1934,7 @@ export declare const AgentDtoSchema: z.ZodObject<{
1912
1934
  customCss: z.ZodOptional<z.ZodString>;
1913
1935
  smoothStream: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1914
1936
  showExtendedSteps: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1937
+ imageHosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
1915
1938
  }, z.core.$strip>;
1916
1939
  tools: z.ZodDefault<z.ZodOptional<z.ZodObject<{
1917
1940
  disabled: z.ZodDefault<z.ZodArray<z.ZodEnum<typeof AgentBuiltInTool>>>;
@@ -2308,6 +2331,7 @@ export declare const AgentSchema: z.ZodLazy<z.ZodObject<{
2308
2331
  customCss: z.ZodOptional<z.ZodString>;
2309
2332
  smoothStream: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2310
2333
  showExtendedSteps: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2334
+ imageHosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
2311
2335
  }, z.core.$strip>;
2312
2336
  tools: z.ZodDefault<z.ZodOptional<z.ZodObject<{
2313
2337
  disabled: z.ZodDefault<z.ZodArray<z.ZodEnum<typeof AgentBuiltInTool>>>;
@@ -2573,6 +2597,7 @@ export declare const AgentPublicSchema: z.ZodObject<{
2573
2597
  customCss: z.ZodOptional<z.ZodString>;
2574
2598
  smoothStream: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2575
2599
  showExtendedSteps: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2600
+ imageHosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
2576
2601
  }, z.core.$strip>;
2577
2602
  createdAt: z.ZodCoercedDate<unknown>;
2578
2603
  updatedAt: z.ZodCoercedDate<unknown>;
@@ -2793,6 +2818,7 @@ export declare const AgentAccessGrantedSchema: z.ZodObject<{
2793
2818
  customCss: z.ZodOptional<z.ZodString>;
2794
2819
  smoothStream: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2795
2820
  showExtendedSteps: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2821
+ imageHosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
2796
2822
  }, z.core.$strip>;
2797
2823
  createdAt: z.ZodCoercedDate<unknown>;
2798
2824
  updatedAt: z.ZodCoercedDate<unknown>;
@@ -2973,6 +2999,7 @@ export declare const AgentAccessDecisionSchema: z.ZodDiscriminatedUnion<[z.ZodOb
2973
2999
  customCss: z.ZodOptional<z.ZodString>;
2974
3000
  smoothStream: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2975
3001
  showExtendedSteps: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3002
+ imageHosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
2976
3003
  }, z.core.$strip>;
2977
3004
  createdAt: z.ZodCoercedDate<unknown>;
2978
3005
  updatedAt: z.ZodCoercedDate<unknown>;
@@ -3158,6 +3185,7 @@ export declare const AgentAccessSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
3158
3185
  customCss: z.ZodOptional<z.ZodString>;
3159
3186
  smoothStream: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3160
3187
  showExtendedSteps: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
3188
+ imageHosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
3161
3189
  }, z.core.$strip>;
3162
3190
  createdAt: z.ZodCoercedDate<unknown>;
3163
3191
  updatedAt: z.ZodCoercedDate<unknown>;