@8wave/ai-elements 0.98.0 → 0.99.0-beta.2

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 (178) hide show
  1. package/README.md +24 -5
  2. package/{dist-vue/_chunks/PkStreamingMarkdown-DEhbK-3c.js → dist/_chunks/PkStreamingMarkdown-6Xx9n1ue.js} +379 -362
  3. package/dist/_chunks/PkStreamingMarkdown-6Xx9n1ue.js.map +1 -0
  4. package/dist/_chunks/{PkToolRequestGeolocation-BJ9NJZIg.js → PkToolRequestGeolocation-B73evGBg.js} +2 -2
  5. package/dist/_chunks/{PkToolRequestGeolocation-BJ9NJZIg.js.map → PkToolRequestGeolocation-B73evGBg.js.map} +1 -1
  6. package/dist/_chunks/{PkToolRequestOAuthConnection-DdvJ6n1K.js → PkToolRequestOAuthConnection-BWP5dsK_.js} +3 -3
  7. package/dist/_chunks/{PkToolRequestOAuthConnection-DdvJ6n1K.js.map → PkToolRequestOAuthConnection-BWP5dsK_.js.map} +1 -1
  8. package/dist/_chunks/{PkToolShowArtifact-BaGEr7O9.js → PkToolShowArtifact-bYYaMGxq.js} +7 -7
  9. package/dist/_chunks/{PkToolShowArtifact-BaGEr7O9.js.map → PkToolShowArtifact-bYYaMGxq.js.map} +1 -1
  10. package/dist/_chunks/{PkToolShowCalendarEvent-BYnhl2er.js → PkToolShowCalendarEvent-DdEWaTj-.js} +4 -4
  11. package/dist/_chunks/{PkToolShowCalendarEvent-BYnhl2er.js.map → PkToolShowCalendarEvent-DdEWaTj-.js.map} +1 -1
  12. package/dist/_chunks/{PkToolShowComparison-DahL5vHr.js → PkToolShowComparison-Dcar7HPW.js} +4 -4
  13. package/dist/_chunks/{PkToolShowComparison-DahL5vHr.js.map → PkToolShowComparison-Dcar7HPW.js.map} +1 -1
  14. package/dist/_chunks/{PkToolShowContactForm-upUNZtId.js → PkToolShowContactForm-DtjVW-n6.js} +13 -13
  15. package/dist/_chunks/{PkToolShowContactForm-upUNZtId.js.map → PkToolShowContactForm-DtjVW-n6.js.map} +1 -1
  16. package/dist/_chunks/{PkToolShowDiagram-Jq_4KWiK.js → PkToolShowDiagram-X35nsoIY.js} +8 -8
  17. package/dist/_chunks/{PkToolShowDiagram-Jq_4KWiK.js.map → PkToolShowDiagram-X35nsoIY.js.map} +1 -1
  18. package/dist/_chunks/{PkToolShowEmail-CtmpDS1B.js → PkToolShowEmail-jVoK8qEh.js} +4 -4
  19. package/dist/_chunks/{PkToolShowEmail-CtmpDS1B.js.map → PkToolShowEmail-jVoK8qEh.js.map} +1 -1
  20. package/dist/_chunks/{PkToolShowForm-BNV4Ja6g.js → PkToolShowForm-BP8asXtz.js} +123 -97
  21. package/dist/_chunks/PkToolShowForm-BP8asXtz.js.map +1 -0
  22. package/dist/_chunks/{PkToolShowImageGallery-mLq2p3aH.js → PkToolShowImageGallery-WQL3T4Hr.js} +2 -2
  23. package/dist/_chunks/{PkToolShowImageGallery-mLq2p3aH.js.map → PkToolShowImageGallery-WQL3T4Hr.js.map} +1 -1
  24. package/dist/_chunks/{PkToolShowLocation-SbgTbuGu.js → PkToolShowLocation-w2t7lKpb.js} +4 -4
  25. package/dist/_chunks/{PkToolShowLocation-SbgTbuGu.js.map → PkToolShowLocation-w2t7lKpb.js.map} +1 -1
  26. package/dist/_chunks/{PkToolShowMessage-CAVpDTzd.js → PkToolShowMessage-BPo7WPim.js} +4 -4
  27. package/dist/_chunks/{PkToolShowMessage-CAVpDTzd.js.map → PkToolShowMessage-BPo7WPim.js.map} +1 -1
  28. package/dist/_chunks/{PkToolShowProductList-puiPFItN.js → PkToolShowProductList-BbY4ni7Y.js} +2 -2
  29. package/dist/_chunks/{PkToolShowProductList-puiPFItN.js.map → PkToolShowProductList-BbY4ni7Y.js.map} +1 -1
  30. package/dist/_chunks/{PkToolShowQrCode-CctXvRyG.js → PkToolShowQrCode-CN0ms27N.js} +4 -4
  31. package/dist/_chunks/{PkToolShowQrCode-CctXvRyG.js.map → PkToolShowQrCode-CN0ms27N.js.map} +1 -1
  32. package/dist/_chunks/{PkToolShowSources-DwB6VXrK.js → PkToolShowSources-D2tBcx7n.js} +18 -18
  33. package/dist/_chunks/{PkToolShowSources-DwB6VXrK.js.map → PkToolShowSources-D2tBcx7n.js.map} +1 -1
  34. package/dist/_chunks/{PkToolShowSuggestedReply-QEcIhSxa.js → PkToolShowSuggestedReply-Cdh_elSh.js} +2 -2
  35. package/dist/_chunks/{PkToolShowSuggestedReply-QEcIhSxa.js.map → PkToolShowSuggestedReply-Cdh_elSh.js.map} +1 -1
  36. package/dist/_chunks/{PkToolShowVideo-DoLoI8_N.js → PkToolShowVideo-D3aU5FMO.js} +2 -2
  37. package/dist/_chunks/{PkToolShowVideo-DoLoI8_N.js.map → PkToolShowVideo-D3aU5FMO.js.map} +1 -1
  38. package/dist/_chunks/{PkToolShowWeather-C2rPCQ_K.js → PkToolShowWeather-CzanXIJp.js} +3 -3
  39. package/dist/_chunks/{PkToolShowWeather-C2rPCQ_K.js.map → PkToolShowWeather-CzanXIJp.js.map} +1 -1
  40. package/dist/_chunks/{PkToolShowWebPages-BBJYzF8V.js → PkToolShowWebPages-DkMJrWmT.js} +2 -2
  41. package/dist/_chunks/{PkToolShowWebPages-BBJYzF8V.js.map → PkToolShowWebPages-DkMJrWmT.js.map} +1 -1
  42. package/dist/_chunks/{VvCheckbox.es-D5d8k9yP.js → VvCheckbox.es-CRhIKQNR.js} +2 -2
  43. package/dist/_chunks/{VvCheckbox.es-D5d8k9yP.js.map → VvCheckbox.es-CRhIKQNR.js.map} +1 -1
  44. package/dist/_chunks/{VvCheckboxGroup.es-DVnsOjX0.js → VvCheckboxGroup.es-gOy2kM1Y.js} +5 -5
  45. package/dist/_chunks/{VvCheckboxGroup.es-DVnsOjX0.js.map → VvCheckboxGroup.es-gOy2kM1Y.js.map} +1 -1
  46. package/dist/_chunks/{VvCombobox.es-CFA-K-cQ.js → VvCombobox.es-BOwH3LmO.js} +9 -9
  47. package/dist/_chunks/VvCombobox.es-BOwH3LmO.js.map +1 -0
  48. package/dist/_chunks/{VvInputText.es-csEQ-bSG.js → VvInputText.es-D8nXroKO.js} +536 -513
  49. package/dist/_chunks/VvInputText.es-D8nXroKO.js.map +1 -0
  50. package/dist/_chunks/{VvRadio.es-BpymhC73.js → VvRadio.es-Djy5J33A.js} +2 -2
  51. package/dist/_chunks/{VvRadio.es-BpymhC73.js.map → VvRadio.es-Djy5J33A.js.map} +1 -1
  52. package/dist/_chunks/{VvRadioGroup.es-CSNzOJKx.js → VvRadioGroup.es-DQq3JYCR.js} +5 -5
  53. package/dist/_chunks/VvRadioGroup.es-DQq3JYCR.js.map +1 -0
  54. package/dist/_chunks/{VvSelect.es-CjKMd0nH.js → VvSelect.es-CE4x1ww0.js} +4 -4
  55. package/dist/_chunks/{VvSelect.es-CjKMd0nH.js.map → VvSelect.es-CE4x1ww0.js.map} +1 -1
  56. package/dist/_chunks/VvTextarea.es-BU2vqdEQ.js +1129 -0
  57. package/dist/_chunks/VvTextarea.es-BU2vqdEQ.js.map +1 -0
  58. package/dist/_chunks/{dist-BNET2z7b.js → dist-CvMCBce7.js} +39 -21
  59. package/dist/_chunks/dist-CvMCBce7.js.map +1 -0
  60. package/dist/_chunks/dot-prop-CObyt75F.js +141 -0
  61. package/dist/_chunks/dot-prop-CObyt75F.js.map +1 -0
  62. package/dist/_chunks/{floating-ui.vue-CIKvCpTA.js → floating-ui.vue-BacoFpVq.js} +278 -305
  63. package/dist/_chunks/floating-ui.vue-BacoFpVq.js.map +1 -0
  64. package/dist/_chunks/{index.es-u1dF1xg2.js → index.es-DpqfagWZ.js} +12 -12
  65. package/dist/_chunks/{index.es-u1dF1xg2.js.map → index.es-DpqfagWZ.js.map} +1 -1
  66. package/dist/_chunks/{index.es-BYny0uhz.js → index.es-_oXVRjHy.js} +2352 -2329
  67. package/dist/_chunks/index.es-_oXVRjHy.js.map +1 -0
  68. package/dist/ai-elements.es.js +4818 -5765
  69. package/dist/ai-elements.es.js.map +1 -1
  70. package/dist-vue/PkChatbot.js +1 -1
  71. package/dist-vue/PkChatbotAuth.js +1 -1
  72. package/dist-vue/PkChatbotEmptyState.js +1 -1
  73. package/dist-vue/PkChatbotFeedbackForm.js +1 -1
  74. package/dist-vue/PkChatbotInput.js +1 -1
  75. package/dist-vue/PkChatbotMessages.js +1 -1
  76. package/dist-vue/PkChatbotStepToolDetail.js +1 -1
  77. package/dist-vue/PkChatbotSteps.js +1 -1
  78. package/dist-vue/PkChatbotViewChat.js +1 -1
  79. package/dist-vue/PkChatbotViewConversations.js +1 -1
  80. package/dist-vue/PkChatbotViewFiles.js +1 -1
  81. package/dist-vue/PkChatbotViewProfile.js +1 -1
  82. package/dist-vue/_chunks/PkChatbot-Bf5uY3cO.js +236 -0
  83. package/dist-vue/_chunks/{PkChatbot-DHkhT0Jf.js.map → PkChatbot-Bf5uY3cO.js.map} +1 -1
  84. package/dist-vue/_chunks/{PkChatbotAuth-C_L2xWuD.js → PkChatbotAuth-BGn2MDYD.js} +2 -2
  85. package/dist-vue/_chunks/{PkChatbotAuth-C_L2xWuD.js.map → PkChatbotAuth-BGn2MDYD.js.map} +1 -1
  86. package/dist-vue/_chunks/{PkChatbotEmptyState-BGOC6vxr.js → PkChatbotEmptyState-CPqLqXek.js} +2 -2
  87. package/dist-vue/_chunks/{PkChatbotEmptyState-BGOC6vxr.js.map → PkChatbotEmptyState-CPqLqXek.js.map} +1 -1
  88. package/dist-vue/_chunks/{PkChatbotFeedbackForm-BSe40qlc.js → PkChatbotFeedbackForm-C_y__RH8.js} +2 -2
  89. package/dist-vue/_chunks/{PkChatbotFeedbackForm-BSe40qlc.js.map → PkChatbotFeedbackForm-C_y__RH8.js.map} +1 -1
  90. package/dist-vue/_chunks/{PkChatbotInput-DTazYlPd.js → PkChatbotInput-jvb0vuak.js} +2 -2
  91. package/dist-vue/_chunks/{PkChatbotInput-DTazYlPd.js.map → PkChatbotInput-jvb0vuak.js.map} +1 -1
  92. package/dist-vue/_chunks/PkChatbotMessages-B3G12zah.js +752 -0
  93. package/dist-vue/_chunks/PkChatbotMessages-B3G12zah.js.map +1 -0
  94. package/dist-vue/_chunks/{PkChatbotStepToolDetail-ldThv0t5.js → PkChatbotStepToolDetail-BVI72gyx.js} +2 -2
  95. package/dist-vue/_chunks/{PkChatbotStepToolDetail-ldThv0t5.js.map → PkChatbotStepToolDetail-BVI72gyx.js.map} +1 -1
  96. package/dist-vue/_chunks/PkChatbotSteps-BdU6YC_N.js +172 -0
  97. package/dist-vue/_chunks/{PkChatbotSteps-BpqdFhsG.js.map → PkChatbotSteps-BdU6YC_N.js.map} +1 -1
  98. package/dist-vue/_chunks/{PkChatbotViewChat-C08TsXiL.js → PkChatbotViewChat-c0Ecpzoc.js} +68 -68
  99. package/dist-vue/_chunks/PkChatbotViewChat-c0Ecpzoc.js.map +1 -0
  100. package/dist-vue/_chunks/{PkChatbotViewConversations-BQZi5kSC.js → PkChatbotViewConversations-BfhRCA_1.js} +2 -2
  101. package/dist-vue/_chunks/{PkChatbotViewConversations-BQZi5kSC.js.map → PkChatbotViewConversations-BfhRCA_1.js.map} +1 -1
  102. package/dist-vue/_chunks/{PkChatbotViewFiles-TLKE_tRw.js → PkChatbotViewFiles-BipRoidH.js} +2 -2
  103. package/dist-vue/_chunks/{PkChatbotViewFiles-TLKE_tRw.js.map → PkChatbotViewFiles-BipRoidH.js.map} +1 -1
  104. package/dist-vue/_chunks/{PkChatbotViewProfile-B6ANZY96.js → PkChatbotViewProfile-DuLwYpGZ.js} +2 -2
  105. package/dist-vue/_chunks/{PkChatbotViewProfile-B6ANZY96.js.map → PkChatbotViewProfile-DuLwYpGZ.js.map} +1 -1
  106. package/{dist/_chunks/PkStreamingMarkdown-Djw604Ny.js → dist-vue/_chunks/PkStreamingMarkdown-CjBMQ18U.js} +344 -347
  107. package/dist-vue/_chunks/PkStreamingMarkdown-CjBMQ18U.js.map +1 -0
  108. package/dist-vue/_chunks/{PkToolShowArtifact-CTBwt4DN.js → PkToolShowArtifact-COwSXmF4.js} +2 -2
  109. package/dist-vue/_chunks/{PkToolShowArtifact-CTBwt4DN.js.map → PkToolShowArtifact-COwSXmF4.js.map} +1 -1
  110. package/dist-vue/_chunks/{PkToolShowContactForm-B6-MsExL.js → PkToolShowContactForm-DRRtCCxB.js} +10 -10
  111. package/dist-vue/_chunks/{PkToolShowContactForm-B6-MsExL.js.map → PkToolShowContactForm-DRRtCCxB.js.map} +1 -1
  112. package/dist-vue/_chunks/{PkToolShowForm-C-mWyeka.js → PkToolShowForm-j7Ha-0X3.js} +128 -102
  113. package/dist-vue/_chunks/PkToolShowForm-j7Ha-0X3.js.map +1 -0
  114. package/dist-vue/_chunks/{PkToolShowSources-CFh-i60o.js → PkToolShowSources-BVLw4W5l.js} +43 -43
  115. package/dist-vue/_chunks/{PkToolShowSources-CFh-i60o.js.map → PkToolShowSources-BVLw4W5l.js.map} +1 -1
  116. package/dist-vue/_chunks/{createChatbotApiClient-BOBdBxmf.js → createChatbotApiClient-IH6wBh4s.js} +148 -160
  117. package/dist-vue/_chunks/createChatbotApiClient-IH6wBh4s.js.map +1 -0
  118. package/dist-vue/_chunks/{index.es-XfWQ82pb.js → index.es-Bk1O0p8N.js} +166 -156
  119. package/dist-vue/_chunks/index.es-Bk1O0p8N.js.map +1 -0
  120. package/dist-vue/_chunks/{useChatbotStore-BJ-EDmND.js → useChatbotStore-C3uKi2FS.js} +114 -106
  121. package/dist-vue/_chunks/useChatbotStore-C3uKi2FS.js.map +1 -0
  122. package/dist-vue/_chunks/{utils-BMa8jwJS.js → utils-Cru8TJxe.js} +48 -30
  123. package/dist-vue/_chunks/utils-Cru8TJxe.js.map +1 -0
  124. package/dist-vue/api.js +1 -1
  125. package/dist-vue/composables.js +3 -3
  126. package/dist-vue/index.js +3732 -3213
  127. package/dist-vue/index.js.map +1 -1
  128. package/dist-vue/locales.js +43 -7
  129. package/dist-vue/packages/components/src/PkCheckboxField.d.ts +45 -0
  130. package/dist-vue/packages/components/src/PkEditorRepeater.d.ts +2 -2
  131. package/dist-vue/packages/components/src/{chat/PkToolRequestConfirm.d.ts → PkOfflineScreen.d.ts} +10 -3
  132. package/dist-vue/packages/components/src/PkPwaNotices.d.ts +19 -0
  133. package/dist-vue/packages/components/src/chat/PkAgentSettingsPanel.d.ts +18 -3
  134. package/dist-vue/packages/components/src/chat/PkChatbotMessages.d.ts +24 -2
  135. package/dist-vue/packages/components/src/chat/PkToolApprovalBadge.d.ts +4 -0
  136. package/dist-vue/packages/components/src/chat/PkToolApprovalCard.d.ts +35 -0
  137. package/dist-vue/packages/components/src/chat/PkToolApprovalPreviewMessage.d.ts +11 -0
  138. package/dist-vue/packages/components/src/chat/index.d.ts +2 -1
  139. package/dist-vue/packages/components/src/chat/toolApprovalPreviews.d.ts +12 -0
  140. package/dist-vue/packages/components/src/chat/toolComponentMap.d.ts +5 -3
  141. package/dist-vue/packages/components/src/chat/useChatScroll.d.ts +6 -0
  142. package/dist-vue/packages/components/src/chat/utils.d.ts +13 -0
  143. package/dist-vue/packages/components/src/index.d.ts +4 -1
  144. package/dist-vue/packages/composable/src/chatbot/useChatbotStore.d.ts +70 -1
  145. package/dist-vue/packages/composable/src/index.d.ts +1 -0
  146. package/dist-vue/packages/composable/src/useConnectivity.d.ts +28 -0
  147. package/dist-vue/packages/models/src/schema/Agent.d.ts +129 -0
  148. package/dist-vue/packages/models/src/schema/ReasoningChat.d.ts +30 -0
  149. package/dist-vue/packages/models/src/schema/SubAgent.d.ts +30 -0
  150. package/dist-vue/style.css +1 -1
  151. package/package.json +3 -3
  152. package/dist/_chunks/PkStreamingMarkdown-Djw604Ny.js.map +0 -1
  153. package/dist/_chunks/PkToolRequestConfirm-FQ9nDFXy.js +0 -48
  154. package/dist/_chunks/PkToolRequestConfirm-FQ9nDFXy.js.map +0 -1
  155. package/dist/_chunks/PkToolShowForm-BNV4Ja6g.js.map +0 -1
  156. package/dist/_chunks/VvCombobox.es-CFA-K-cQ.js.map +0 -1
  157. package/dist/_chunks/VvInputText.es-csEQ-bSG.js.map +0 -1
  158. package/dist/_chunks/VvRadioGroup.es-CSNzOJKx.js.map +0 -1
  159. package/dist/_chunks/VvTextarea.es-eEyRRpuT.js +0 -1109
  160. package/dist/_chunks/VvTextarea.es-eEyRRpuT.js.map +0 -1
  161. package/dist/_chunks/dist-BNET2z7b.js.map +0 -1
  162. package/dist/_chunks/dot-prop-BXrC9bAX.js +0 -131
  163. package/dist/_chunks/dot-prop-BXrC9bAX.js.map +0 -1
  164. package/dist/_chunks/floating-ui.vue-CIKvCpTA.js.map +0 -1
  165. package/dist/_chunks/index.es-BYny0uhz.js.map +0 -1
  166. package/dist-vue/_chunks/PkChatbot-DHkhT0Jf.js +0 -236
  167. package/dist-vue/_chunks/PkChatbotMessages-B4qfTNOJ.js +0 -630
  168. package/dist-vue/_chunks/PkChatbotMessages-B4qfTNOJ.js.map +0 -1
  169. package/dist-vue/_chunks/PkChatbotSteps-BpqdFhsG.js +0 -172
  170. package/dist-vue/_chunks/PkChatbotViewChat-C08TsXiL.js.map +0 -1
  171. package/dist-vue/_chunks/PkStreamingMarkdown-DEhbK-3c.js.map +0 -1
  172. package/dist-vue/_chunks/PkToolRequestConfirm-CQNa3seA.js +0 -48
  173. package/dist-vue/_chunks/PkToolRequestConfirm-CQNa3seA.js.map +0 -1
  174. package/dist-vue/_chunks/PkToolShowForm-C-mWyeka.js.map +0 -1
  175. package/dist-vue/_chunks/createChatbotApiClient-BOBdBxmf.js.map +0 -1
  176. package/dist-vue/_chunks/index.es-XfWQ82pb.js.map +0 -1
  177. package/dist-vue/_chunks/useChatbotStore-BJ-EDmND.js.map +0 -1
  178. package/dist-vue/_chunks/utils-BMa8jwJS.js.map +0 -1
@@ -13,6 +13,8 @@ var e = {
13
13
  remove: "Remove",
14
14
  moveDown: "Move down",
15
15
  reset: "Reset",
16
+ retry: "Retry",
17
+ update: "Update",
16
18
  reorder: "Reorder",
17
19
  addHint: "Press enter to add",
18
20
  delete: "Delete",
@@ -196,7 +198,10 @@ var e = {
196
198
  whatsapp: "WhatsApp",
197
199
  teams: "Microsoft Teams",
198
200
  formMaxSteps: "Maximum steps",
199
- formMaxOptionsPerStep: "Max options per step",
201
+ formMaxOptionsPerStep: "Max options",
202
+ suggestedReplyMode: "Mode",
203
+ showSourcesMode: "Sources mode",
204
+ toolRequiresApproval: "Ask the user to confirm",
200
205
  chatWidget: "Chat Widget",
201
206
  widgetUrl: "Widget URL",
202
207
  loadDelay: "Load Delay (ms)",
@@ -256,6 +261,7 @@ var e = {
256
261
  includeThoughts: "View reasoning",
257
262
  thinking: "Thinking",
258
263
  enabled: "Enabled",
264
+ toolApprovalBadge: "User confirm",
259
265
  calendarEvent: "Event",
260
266
  comparison: "Comparison",
261
267
  contactUs: "Contact us",
@@ -335,13 +341,13 @@ var e = {
335
341
  dismissableNotice: "It will be hidden after the first message.",
336
342
  privacyPolicyNotice: "Displayed at the bottom of the contact form. Supports Markdown.",
337
343
  fileUploadEnabled: "Allow users to attach files to their messages.",
344
+ approvalChannels: "A tool can ask the user to confirm before it runs: expand a tool to turn it on. On API endpoints and scheduled runs the call is refused.",
338
345
  platformSupported: "Renders natively on WhatsApp and Teams",
339
- formMaxSteps: "Maximum number of steps the agent can generate in a single form (min. 1, max. 10).",
340
- formMaxOptionsPerStep: "Maximum number of options for each choice step (min. 2, max. 10).",
341
346
  tool: {
342
347
  useAllUserKb: "Reads the memories the user shared with all their agents, not just this one. Writing stays scoped to this agent.",
343
348
  useAllUserFiles: "Searches all the user's files, including those uploaded on other agents, not just this agent's."
344
349
  },
350
+ toolRequiresApproval: "The assistant waits for approval in the chat before running.",
345
351
  channelWidgetDisabled: "The Widget channel is disabled: the embed code and loader will not work.",
346
352
  channelAppDisabled: "The App channel is disabled: the direct link and iframe will not work.",
347
353
  embedCode: "Copy and paste this code to embed the agent in your website.",
@@ -380,6 +386,14 @@ var e = {
380
386
  semantic: "Semantic (vector only)",
381
387
  keyword: "Keyword (full-text only)"
382
388
  },
389
+ suggestedReplyMode: {
390
+ optional: "Optional (the agent decides)",
391
+ required: "Required after every answer"
392
+ },
393
+ showSourcesMode: {
394
+ optional: "Optional (the agent decides)",
395
+ required: "Required after every answer"
396
+ },
383
397
  tool: {
384
398
  useAllUserKb: "Use the entire user KB",
385
399
  useAllUserFiles: "Use all user files",
@@ -456,6 +470,10 @@ var e = {
456
470
  reasoning: "Reasoning...",
457
471
  streaming: "Loading..."
458
472
  },
473
+ toolApproval: {
474
+ expired: "This request is no longer answerable: the action was not performed.",
475
+ prompt: "Your confirmation is needed to continue:"
476
+ },
459
477
  validation: { invalidPhoneNumber: "The number entered is incorrect" },
460
478
  showForm: {
461
479
  step: "Step {current} of {total}",
@@ -482,6 +500,8 @@ var e = {
482
500
  remove: "Rimuovi",
483
501
  moveDown: "Sposta giù",
484
502
  reset: "Reset",
503
+ retry: "Riprova",
504
+ update: "Aggiorna",
485
505
  reorder: "Riordina",
486
506
  addHint: "Premi invio per aggiungere",
487
507
  delete: "Elimina",
@@ -664,8 +684,11 @@ var e = {
664
684
  deprecated: "Deprecato",
665
685
  whatsapp: "WhatsApp",
666
686
  teams: "Microsoft Teams",
667
- formMaxSteps: "Numero massimo di step",
668
- formMaxOptionsPerStep: "Opzioni massime per step",
687
+ formMaxSteps: "Step massimi",
688
+ formMaxOptionsPerStep: "Opzioni massime",
689
+ suggestedReplyMode: "Modalità ",
690
+ showSourcesMode: "Modalità fonti",
691
+ toolRequiresApproval: "Chiedi conferma all'utente",
669
692
  chatWidget: "Chat Widget",
670
693
  widgetUrl: "URL widget",
671
694
  loadDelay: "Ritardo caricamento (ms)",
@@ -725,6 +748,7 @@ var e = {
725
748
  includeThoughts: "Visualizza ragionamento",
726
749
  thinking: "Pensiero",
727
750
  enabled: "Abilitato",
751
+ toolApprovalBadge: "Conferma utente",
728
752
  calendarEvent: "Evento",
729
753
  comparison: "Confronto",
730
754
  contactUs: "Contattaci",
@@ -804,13 +828,13 @@ var e = {
804
828
  dismissableNotice: "Verrà nascosto dopo il primo messaggio.",
805
829
  privacyPolicyNotice: "Visibile del modulo di contatto.",
806
830
  fileUploadEnabled: "Permetti agli utenti di allegare file ai messaggi.",
831
+ approvalChannels: "Un tool può chiedere conferma all'utente prima di eseguire: espandi il tool per attivarla. Via API o in esecuzioni schedulate la chiamata viene rifiutata.",
807
832
  platformSupported: "Resa nativa su WhatsApp e Teams",
808
- formMaxSteps: "Numero massimo di step che l'agente può generare in un singolo form (min. 1, max. 10).",
809
- formMaxOptionsPerStep: "Numero massimo di opzioni per ciascuno step di scelta (min. 2, max. 10).",
810
833
  tool: {
811
834
  useAllUserKb: "Legge le memorie che l'utente ha condiviso con tutti i suoi agenti, non solo con questo. La scrittura resta legata a questo agente.",
812
835
  useAllUserFiles: "Cerca in tutti i file dell'utente, anche quelli caricati su altri agenti, non solo in quelli di questo agente."
813
836
  },
837
+ toolRequiresApproval: "Prima di eseguire, l'assistente attende l'approvazione in chat.",
814
838
  channelWidgetDisabled: "Il canale Widget è disabilitato: il codice embed e il loader non funzioneranno.",
815
839
  channelAppDisabled: "Il canale App è disabilitato: il link diretto e l'iframe non funzioneranno.",
816
840
  embedCode: "Copia e incolla questo codice per incorporare l'agente nel tuo sito web.",
@@ -849,6 +873,14 @@ var e = {
849
873
  semantic: "Semantico (solo vettoriale)",
850
874
  keyword: "Parole chiave (solo full-text)"
851
875
  },
876
+ suggestedReplyMode: {
877
+ optional: "Opzionali (decide l'agente)",
878
+ required: "Obbligatorie dopo ogni risposta"
879
+ },
880
+ showSourcesMode: {
881
+ optional: "Opzionali (decide l'agente)",
882
+ required: "Obbligatorie dopo ogni risposta"
883
+ },
852
884
  tool: {
853
885
  useAllUserKb: "Utilizza tutta la KB utente",
854
886
  useAllUserFiles: "Utilizza tutti i file utente",
@@ -925,6 +957,10 @@ var e = {
925
957
  reasoning: "Ragionamento...",
926
958
  streaming: "Caricamento..."
927
959
  },
960
+ toolApproval: {
961
+ expired: "Questa richiesta non è più confermabile: l'azione non è stata eseguita.",
962
+ prompt: "Per continuare serve la tua conferma:"
963
+ },
928
964
  validation: { invalidPhoneNumber: "Il numero inserito non è corretto" },
929
965
  showForm: {
930
966
  step: "Domanda {current} di {total}",
@@ -0,0 +1,45 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ type __VLS_Props = {
3
+ label: string;
4
+ hintLabel?: string;
5
+ /** Field name, unique within the form. */
6
+ name?: string;
7
+ disabled?: boolean;
8
+ };
9
+ type __VLS_ModelProps = {
10
+ /**
11
+ * A checkbox (or switch) with a bold label and an optional hint below it, the
12
+ * shape settings panels use for every boolean option. It exists because that
13
+ * markup was copied in ~30 places: same three elements, same utility classes,
14
+ * drifting one edit at a time.
15
+ *
16
+ * Layout only. Wording stays with the caller, so labels keep living next to
17
+ * the option they describe (and in the caller's i18n keys).
18
+ *
19
+ * Extra content under the hint (badges, a channel-support strip) goes in the
20
+ * default slot; options that need a whole custom body are better off with
21
+ * `VvCheckbox` directly.
22
+ *
23
+ * Anything else is forwarded to `VvCheckbox`, `switch` included: options that
24
+ * read as on/off rather than opt-in pass it as a plain attribute.
25
+ */
26
+ modelValue?: boolean;
27
+ };
28
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
29
+ declare var __VLS_8: {};
30
+ type __VLS_Slots = {} & {
31
+ default?: (props: typeof __VLS_8) => any;
32
+ };
33
+ declare const __VLS_base: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
34
+ "update:modelValue": (value: boolean) => any;
35
+ }, string, PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
36
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
37
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
38
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
39
+ declare const _default: typeof __VLS_export;
40
+ export default _default;
41
+ type __VLS_WithSlots<T, S> = T & {
42
+ new (): {
43
+ $slots: S;
44
+ };
45
+ };
@@ -14,7 +14,7 @@ declare const __VLS_export: <T extends Record<string, any>>(__VLS_props: NonNull
14
14
  allowEmpty?: boolean;
15
15
  force?: boolean;
16
16
  } & {
17
- "onUpdate:modelValue"?: ((value: T[]) => any) | undefined;
17
+ "onUpdate:modelValue"?: ((value: Partial<T>[]) => any) | undefined;
18
18
  }> & (typeof globalThis extends {
19
19
  __VLS_PROPS_FALLBACK: infer P;
20
20
  } ? P : {});
@@ -34,7 +34,7 @@ declare const __VLS_export: <T extends Record<string, any>>(__VLS_props: NonNull
34
34
  } & {
35
35
  actions?: (props: {}) => any;
36
36
  };
37
- emit: (evt: "update:modelValue", value: T[]) => void;
37
+ emit: (evt: "update:modelValue", value: Partial<T>[]) => void;
38
38
  }>) => VNode & {
39
39
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
40
40
  };
@@ -1,11 +1,18 @@
1
1
  import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
2
  type __VLS_Props = {
3
- part: unknown;
3
+ /**
4
+ * Confirmed offline, not just `navigator.onLine`: this state covers the
5
+ * whole app, so the caller must verify before switching it on (see
6
+ * `useConnectivity`).
7
+ */
8
+ offline?: boolean;
9
+ /** A connectivity check is in flight. */
10
+ checking?: boolean;
4
11
  };
5
12
  declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
6
- confirm: (confirmed: boolean) => any;
13
+ retry: () => any;
7
14
  }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
8
- onConfirm?: ((confirmed: boolean) => any) | undefined;
15
+ onRetry?: (() => any) | undefined;
9
16
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
10
17
  declare const _default: typeof __VLS_export;
11
18
  export default _default;
@@ -0,0 +1,19 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ type __VLS_Props = {
3
+ /**
4
+ * A new service worker is waiting: the app shell owns this state,
5
+ * because `virtual:pwa-register` only exists in the frontend build.
6
+ */
7
+ updateAvailable?: boolean;
8
+ /** The update is being applied and the page is about to reload. */
9
+ updating?: boolean;
10
+ };
11
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
12
+ update: () => any;
13
+ dismissUpdate: () => any;
14
+ }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
15
+ onUpdate?: (() => any) | undefined;
16
+ onDismissUpdate?: (() => any) | undefined;
17
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
@@ -1,4 +1,4 @@
1
- import { AgentFormSettings, AgentReasoning, AgentWebSearch, LocalizedString, Media, AgentBuiltInTool, AgentChannel, AgentLoaderStrategy, AgentType, WebSearchProvider, StoragePolicy } from '../../../models/src';
1
+ import { AgentFormSettings, AgentReasoning, ShowSourcesMode, SuggestedReplyMode, AgentWebSearch, LocalizedString, Media, AgentBuiltInTool, AgentChannel, AgentLoaderStrategy, AgentType, WebSearchProvider, StoragePolicy } from '../../../models/src';
2
2
  import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
3
  type __VLS_Props = {
4
4
  organizationSlug?: string;
@@ -48,10 +48,19 @@ type __VLS_ModelProps = {
48
48
  origins?: string[];
49
49
  };
50
50
  'disabledTools'?: AgentBuiltInTool[];
51
+ /**
52
+ * Tools that ask the user to confirm before running
53
+ * (docs/specs/tool-approval-interface.md). Names are canonical tool-set
54
+ * keys, so built-ins go in verbatim; the MCP and API tool pages add their
55
+ * own prefixed entries to the same list.
56
+ */
57
+ 'approvalTools'?: string[];
51
58
  'useAllUserKb'?: boolean;
52
59
  'useAllUserFiles'?: boolean;
53
60
  'formMaxSteps'?: AgentFormSettings['maxSteps'];
54
61
  'formMaxOptionsPerStep'?: AgentFormSettings['maxOptionsPerStep'];
62
+ 'suggestedReplyMode'?: SuggestedReplyMode;
63
+ 'showSourcesMode'?: ShowSourcesMode;
55
64
  'widgetUrl'?: string | undefined;
56
65
  'loadDelay'?: number | undefined;
57
66
  'loaderStrategy'?: AgentLoaderStrategy | undefined;
@@ -87,9 +96,9 @@ type __VLS_ModelProps = {
87
96
  };
88
97
  };
89
98
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
90
- declare var __VLS_589: {};
99
+ declare var __VLS_602: {};
91
100
  type __VLS_Slots = {} & {
92
- default?: (props: typeof __VLS_589) => any;
101
+ default?: (props: typeof __VLS_602) => any;
93
102
  };
94
103
  declare const __VLS_base: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
95
104
  "update:reasoning": (value: {
@@ -262,10 +271,13 @@ declare const __VLS_base: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, Com
262
271
  origins?: string[];
263
272
  }) => any;
264
273
  "update:disabledTools": (value: AgentBuiltInTool[]) => any;
274
+ "update:approvalTools": (value: string[]) => any;
265
275
  "update:useAllUserKb": (value: boolean) => any;
266
276
  "update:useAllUserFiles": (value: boolean) => any;
267
277
  "update:formMaxSteps": (value: number) => any;
268
278
  "update:formMaxOptionsPerStep": (value: number) => any;
279
+ "update:suggestedReplyMode": (value: "required" | "optional") => any;
280
+ "update:showSourcesMode": (value: "required" | "optional") => any;
269
281
  "update:widgetUrl": (value: string | undefined) => any;
270
282
  "update:loadDelay": (value: number | undefined) => any;
271
283
  "update:loaderStrategy": (value: AgentLoaderStrategy | undefined) => any;
@@ -470,10 +482,13 @@ declare const __VLS_base: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, Com
470
482
  origins?: string[];
471
483
  }) => any) | undefined;
472
484
  "onUpdate:disabledTools"?: ((value: AgentBuiltInTool[]) => any) | undefined;
485
+ "onUpdate:approvalTools"?: ((value: string[]) => any) | undefined;
473
486
  "onUpdate:useAllUserKb"?: ((value: boolean) => any) | undefined;
474
487
  "onUpdate:useAllUserFiles"?: ((value: boolean) => any) | undefined;
475
488
  "onUpdate:formMaxSteps"?: ((value: number) => any) | undefined;
476
489
  "onUpdate:formMaxOptionsPerStep"?: ((value: number) => any) | undefined;
490
+ "onUpdate:suggestedReplyMode"?: ((value: "required" | "optional") => any) | undefined;
491
+ "onUpdate:showSourcesMode"?: ((value: "required" | "optional") => any) | undefined;
477
492
  "onUpdate:widgetUrl"?: ((value: string | undefined) => any) | undefined;
478
493
  "onUpdate:loadDelay"?: ((value: number | undefined) => any) | undefined;
479
494
  "onUpdate:loaderStrategy"?: ((value: AgentLoaderStrategy | undefined) => any) | undefined;
@@ -20,6 +20,12 @@ type __VLS_Props = {
20
20
  showMessageDateTime?: boolean;
21
21
  showMessageTokensCount?: boolean;
22
22
  showAllMessageParts?: boolean;
23
+ /**
24
+ * Lets the user answer the tool requests rendered in the feed (approval
25
+ * and confirm cards). Off by default: the log viewers render the same
26
+ * messages read-only and have nothing to answer with.
27
+ */
28
+ interactive?: boolean;
23
29
  showExtendedSteps?: boolean;
24
30
  isDark?: boolean;
25
31
  /** Show a floating "back to bottom" button when the user scrolls up (fullscreen layout) */
@@ -34,7 +40,7 @@ declare var __VLS_25: {
34
40
  part: TextUIPart;
35
41
  index: number;
36
42
  isLoading: boolean;
37
- }, __VLS_60: `tool-${string}`, __VLS_61: {
43
+ }, __VLS_73: `tool-${string}`, __VLS_74: {
38
44
  message: UIChatMessage;
39
45
  part: {
40
46
  type: `tool-${string}`;
@@ -43,7 +49,7 @@ declare var __VLS_25: {
43
49
  isLoading: boolean;
44
50
  };
45
51
  type __VLS_Slots = {} & {
46
- [K in NonNullable<typeof __VLS_60>]?: (props: typeof __VLS_61) => any;
52
+ [K in NonNullable<typeof __VLS_73>]?: (props: typeof __VLS_74) => any;
47
53
  } & {
48
54
  text?: (props: typeof __VLS_25) => any;
49
55
  };
@@ -60,6 +66,14 @@ declare const __VLS_base: DefineComponent<__VLS_Props, {}, {}, {}, {}, Component
60
66
  "scroll-down": () => any;
61
67
  "auto-retry": () => any;
62
68
  "reset-chat": () => any;
69
+ "approval-respond": (payload: {
70
+ id: string;
71
+ approved: boolean;
72
+ }) => any;
73
+ "confirm-respond": (payload: {
74
+ toolCallId: string;
75
+ confirmed: boolean;
76
+ }) => any;
63
77
  }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
64
78
  onUpvote?: ((message: UIChatMessage) => any) | undefined;
65
79
  onDownvote?: ((message: UIChatMessage) => any) | undefined;
@@ -73,6 +87,14 @@ declare const __VLS_base: DefineComponent<__VLS_Props, {}, {}, {}, {}, Component
73
87
  "onScroll-down"?: (() => any) | undefined;
74
88
  "onAuto-retry"?: (() => any) | undefined;
75
89
  "onReset-chat"?: (() => any) | undefined;
90
+ "onApproval-respond"?: ((payload: {
91
+ id: string;
92
+ approved: boolean;
93
+ }) => any) | undefined;
94
+ "onConfirm-respond"?: ((payload: {
95
+ toolCallId: string;
96
+ confirmed: boolean;
97
+ }) => any) | undefined;
76
98
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
77
99
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
78
100
  declare const _default: typeof __VLS_export;
@@ -0,0 +1,4 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ declare const __VLS_export: DefineComponent<{}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
3
+ declare const _default: typeof __VLS_export;
4
+ export default _default;
@@ -0,0 +1,35 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ /**
3
+ * The single confirmation card of the chat. It renders two things that are
4
+ * the same question for the user:
5
+ *
6
+ * - **approval**: a tool call the backend suspended waiting for consent
7
+ * (`approval-requested`), plus its resolved states so the decision stays
8
+ * visible in the transcript;
9
+ * - **confirm**: a `requestConfirm` call, the client-side tool the model uses
10
+ * to have an action it described approved. Same layout, its own wording
11
+ * (Proceed / Cancel, as on the messaging channels).
12
+ *
13
+ * The body comes from `toolApprovalPreviews[toolName]` when the tool has a
14
+ * dedicated preview (localized, human copy: e.g. `sendEmail` will reuse the
15
+ * email renderer); tools without one show only the localized prompt, never
16
+ * a raw echo of the call input. Adding a preview never requires touching
17
+ * this component.
18
+ */
19
+ type __VLS_Props = {
20
+ part: unknown;
21
+ /**
22
+ * Whether the user can still answer. False in read-only views (chat
23
+ * logs) and, for approvals, once the conversation has moved past the
24
+ * request: the backend closes an abandoned approval as denied, so
25
+ * answering it later would not run the tool.
26
+ */
27
+ actionable?: boolean;
28
+ };
29
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
30
+ respond: (approved: boolean) => any;
31
+ }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
32
+ onRespond?: ((approved: boolean) => any) | undefined;
33
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
34
+ declare const _default: typeof __VLS_export;
35
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ /**
3
+ * Preview for the tools whose input is already a sentence written for the
4
+ * user (`requestConfirm`): it is shown as-is, with no key/value framing.
5
+ */
6
+ type __VLS_Props = {
7
+ input?: unknown;
8
+ };
9
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -28,6 +28,7 @@ import { default as PkMessageDetail } from './PkMessageDetail';
28
28
  import { default as PkStreamingMarkdown } from './PkStreamingMarkdown';
29
29
  import { default as PkToolShowForm } from './PkToolShowForm';
30
30
  import { default as PkToolShowArtifact } from './PkToolShowArtifact';
31
+ import { default as PkToolApprovalBadge } from './PkToolApprovalBadge';
31
32
  import { default as PkToolShowEmail } from './PkToolShowEmail';
32
33
  import { default as PkToolShowMessage } from './PkToolShowMessage';
33
34
  import { default as PkToolShowWebPages } from './PkToolShowWebPages';
@@ -46,4 +47,4 @@ import { default as PkWebSearchSettings } from './PkWebSearchSettings';
46
47
  import { default as PkStreamingMarkdownAutoscroll } from './PkStreamingMarkdownAutoscroll';
47
48
  import { default as PkWelcomePopup } from './PkWelcomePopup';
48
49
  import { default as PkChatbotAuth } from './PkChatbotAuth';
49
- export { PkAgentSelectorInline, PkAgentSettingsPanel, PkAuroraCanvas, PkAvatar, PkChatSidebar, PkChatSidebarConversationItem, PkChatbot, PkChatbotEmptyState, PkChatbotError, PkChatbotFeedbackForm, PkChatbotFilePreview, PkChatbotInput, PkChatbotMessages, PkChatbotSteps, PkChatbotStepToolDetail, PkChatbotViewChat, PkChunkPreview, PkChatbotViewConversations, PkChatbotViewProfile, PkCode, PkCopyBlock, PkDocumentHeader, PkLanguageModel, PkLanguageModelCombobox, PkMessageParts, PkMessageDetail, PkStreamingMarkdown, PkStreamingMarkdownAutoscroll, PkToolShowForm, PkToolShowArtifact, PkToolShowEmail, PkToolShowMessage, PkToolShowWebPages, PkToolShowProductList, PkToolShowContactForm, PkToolShowCalendarEvent, PkToolShowComparison, PkToolShowLocation, PkToolShowQrCode, PkToolShowImageGallery, PkToolShowSuggestedReply, PkToolShowSources, PkRetryCountdown, PkReasoningChat, PkReasoningSettings, PkWebSearchSettings, PkWelcomePopup, PkChatbotAuth, };
50
+ export { PkAgentSelectorInline, PkAgentSettingsPanel, PkAuroraCanvas, PkAvatar, PkChatSidebar, PkChatSidebarConversationItem, PkChatbot, PkChatbotEmptyState, PkChatbotError, PkChatbotFeedbackForm, PkChatbotFilePreview, PkChatbotInput, PkChatbotMessages, PkChatbotSteps, PkChatbotStepToolDetail, PkChatbotViewChat, PkChunkPreview, PkChatbotViewConversations, PkChatbotViewProfile, PkCode, PkCopyBlock, PkDocumentHeader, PkLanguageModel, PkLanguageModelCombobox, 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, };
@@ -0,0 +1,12 @@
1
+ import { Component } from 'vue';
2
+ /**
3
+ * Maps a tool name to the component that renders a human-readable preview of
4
+ * its input inside `PkToolApprovalCard`. The preview receives the tool call
5
+ * input as its `input` prop.
6
+ *
7
+ * Registering a preview needs no change to the card: tools with no entry here
8
+ * show only the localized confirmation prompt (no raw echo of the call input).
9
+ * Reuse the component that already renders that kind of payload when there is
10
+ * one (e.g. `sendEmail` will reuse `PkToolShowEmail`).
11
+ */
12
+ export declare const toolApprovalPreviews: Record<string, Component>;
@@ -2,8 +2,10 @@ import { defineAsyncComponent } from 'vue';
2
2
  /**
3
3
  * Maps tool `part.type` to the corresponding component for auto-rendering.
4
4
  * Only includes simple tools that accept only a `:part` prop.
5
- * Interactive tools (requestConfirm, showContactForm, showSuggestedReply,
6
- * showSources, showMultipleChoice) must be wired explicitly in the parent
7
- * with their required callbacks/events.
5
+ * Interactive tools (showContactForm, showSuggestedReply, showSources,
6
+ * showMultipleChoice) must be wired explicitly in the parent with their
7
+ * required callbacks/events. Consent requests (`requestConfirm` and the tool
8
+ * calls suspended for approval) are not here either: `PkChatbotMessages`
9
+ * renders them all with `PkToolApprovalCard`.
8
10
  */
9
11
  export declare const toolComponentMap: Record<string, ReturnType<typeof defineAsyncComponent>>;
@@ -10,6 +10,12 @@ interface UseChatScrollOptions {
10
10
  * child.
11
11
  */
12
12
  contentEl?: () => HTMLElement | null;
13
+ /**
14
+ * Awaited right before the new-exchange scroll. Lets the host apply the
15
+ * layout that changes the content height (the anchor spacer) first, so
16
+ * the scroll targets the final bottom instead of an intermediate one.
17
+ */
18
+ beforeNewMessageScroll?: () => void | Promise<void>;
13
19
  onScrollUp?: () => void;
14
20
  onScrollDown?: () => void;
15
21
  }
@@ -10,6 +10,19 @@ export declare function mergeConsecutiveTextParts(parts: UIMessage['parts']): UI
10
10
  export declare function isStreamingPart(part: UIMessage['parts'][number] | null | undefined): part is Extract<UIMessage['parts'][number], {
11
11
  streaming?: boolean;
12
12
  }>;
13
+ export declare function isToolApprovalPart(part: UIMessage['parts'][number] | null | undefined): boolean;
14
+ /**
15
+ * The client-side tool the model uses to have an action it described approved.
16
+ * It predates the SDK's approval gate and keeps its own round-trip (it resolves
17
+ * through `addToolOutput`), but it asks the user the very same question, so it
18
+ * shares `PkToolApprovalCard` instead of having a card of its own.
19
+ */
20
+ export declare const CONFIRM_TOOL_NAME = "requestConfirm";
21
+ export declare function isToolConfirmPart(part: UIMessage['parts'][number] | null | undefined): boolean;
22
+ /** True for any part the confirmation card is responsible for. */
23
+ export declare function isConfirmationCardPart(part: UIMessage['parts'][number] | null | undefined): boolean;
24
+ /** The id of the pending approval request on a tool part, if any. */
25
+ export declare function getToolApprovalId(part: UIMessage['parts'][number] | null | undefined): string | undefined;
13
26
  export declare function getPartState(part: UIMessage['parts'][number] | null | undefined): string | undefined;
14
27
  export declare function isLoadingState(state?: string): boolean;
15
28
  export declare function getContrast(hexcolor?: string): 'black' | 'white';
@@ -11,6 +11,7 @@ import { default as PkEditorRadioButtons } from './PkEditorRadioButtons';
11
11
  import { default as PkEditorCheckboxButtons } from './PkEditorCheckboxButtons';
12
12
  import { default as PkEditorRepeater } from './PkEditorRepeater';
13
13
  import { default as PkEditorWyswyg } from './PkEditorWyswyg';
14
+ import { default as PkCheckboxField } from './PkCheckboxField';
14
15
  import { default as PkFieldset } from './PkFieldset';
15
16
  import { default as PkInfobox } from './PkInfobox';
16
17
  import { default as PkSchemaField } from './PkSchemaField';
@@ -19,6 +20,8 @@ import { default as PkLazyImg } from './PkLazyImg';
19
20
  import { default as PkLightbox } from './PkLightbox';
20
21
  import { default as PkLoader } from './PkLoader';
21
22
  import { default as PkMedia } from './PkMedia';
23
+ import { default as PkOfflineScreen } from './PkOfflineScreen';
24
+ import { default as PkPwaNotices } from './PkPwaNotices';
22
25
  import { default as PkRelativeTime } from './PkRelativeTime';
23
26
  import { default as PkSkeleton } from './PkSkeleton';
24
27
  import { default as PkSvgViewer } from './PkSvgViewer';
@@ -27,4 +30,4 @@ export * from './chat';
27
30
  export * from './input';
28
31
  export * from './table';
29
32
  export * from './types';
30
- export { PkBadge, PkEditorAgentType, PkEditorDocumentType, PkEditorNotificationType, PkEditorCode, PkEditorJsonSchema, PkEditorMarkdown, PkEditorMedia, PkEditorPrompt, PkEditorRadioButtons, PkEditorCheckboxButtons, PkEditorRepeater, PkEditorWyswyg, PkFieldset, PkInfobox, PkSchemaField, PkIntegrationProvider, PkLazyImg, PkLightbox, PkLoader, PkMedia, PkRelativeTime, PkSkeleton, PkSvgViewer, PkUrl, };
33
+ export { PkBadge, PkEditorAgentType, PkEditorDocumentType, PkEditorNotificationType, PkEditorCode, PkEditorJsonSchema, PkEditorMarkdown, PkEditorMedia, PkEditorPrompt, PkEditorRadioButtons, PkEditorCheckboxButtons, PkEditorRepeater, PkEditorWyswyg, PkCheckboxField, PkFieldset, PkInfobox, PkSchemaField, PkIntegrationProvider, PkLazyImg, PkLightbox, PkLoader, PkMedia, PkOfflineScreen, PkPwaNotices, PkRelativeTime, PkSkeleton, PkSvgViewer, PkUrl, };