@8wave/ai-elements 0.104.0 → 0.105.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/dist/_chunks/{Agent-DG4nPG72.js → Agent-VhugusRf.js} +2 -2
  2. package/dist/_chunks/Agent-VhugusRf.js.map +1 -0
  3. package/dist/_chunks/{Document-DXkvvAnt.js → Document-DjNrISX1.js} +2 -2
  4. package/dist/_chunks/{Document-DXkvvAnt.js.map → Document-DjNrISX1.js.map} +1 -1
  5. package/dist/_chunks/{Media-3Mo4NRj7.js → Media-hjgDyEMr.js} +2 -2
  6. package/dist/_chunks/Media-hjgDyEMr.js.map +1 -0
  7. package/dist/_chunks/{PkStreamingMarkdown-YKd9F3xU.js → PkStreamingMarkdown-B4eMb97I.js} +2 -2
  8. package/dist/_chunks/{PkStreamingMarkdown-YKd9F3xU.js.map → PkStreamingMarkdown-B4eMb97I.js.map} +1 -1
  9. package/dist/_chunks/{PkToolRequestGeolocation-sf6LpUN_.js → PkToolRequestGeolocation-Bp-D2nDb.js} +3 -3
  10. package/{dist-vue/_chunks/PkToolRequestGeolocation-BdX5DzEN.js.map → dist/_chunks/PkToolRequestGeolocation-Bp-D2nDb.js.map} +1 -1
  11. package/dist/_chunks/{PkToolRequestOAuthConnection-BB8mlQit.js → PkToolRequestOAuthConnection-CjjyDj9A.js} +3 -3
  12. package/dist/_chunks/{PkToolRequestOAuthConnection-BB8mlQit.js.map → PkToolRequestOAuthConnection-CjjyDj9A.js.map} +1 -1
  13. package/dist/_chunks/{PkToolShowArtifact-54saXXCe.js → PkToolShowArtifact-Dl8f7Q7q.js} +2 -2
  14. package/dist/_chunks/{PkToolShowArtifact-54saXXCe.js.map → PkToolShowArtifact-Dl8f7Q7q.js.map} +1 -1
  15. package/dist/_chunks/{PkToolShowCalendarEvent-B_HPVUDk.js → PkToolShowCalendarEvent-B_QmZrlZ.js} +2 -2
  16. package/dist/_chunks/{PkToolShowCalendarEvent-B_HPVUDk.js.map → PkToolShowCalendarEvent-B_QmZrlZ.js.map} +1 -1
  17. package/dist/_chunks/{PkToolShowContactForm-BtcNCixq.js → PkToolShowContactForm-CXE0485W.js} +14 -14
  18. package/dist/_chunks/{PkToolShowContactForm-BtcNCixq.js.map → PkToolShowContactForm-CXE0485W.js.map} +1 -1
  19. package/dist/_chunks/{PkToolShowDiagram-cA64c2_N.js → PkToolShowDiagram-D-TyCkCB.js} +2 -2
  20. package/dist/_chunks/{PkToolShowDiagram-cA64c2_N.js.map → PkToolShowDiagram-D-TyCkCB.js.map} +1 -1
  21. package/dist/_chunks/{PkToolShowForm-DdBAG0Qs.js → PkToolShowForm-BzaibKAz.js} +101 -115
  22. package/dist/_chunks/PkToolShowForm-BzaibKAz.js.map +1 -0
  23. package/dist/_chunks/{PkToolShowSources-0qudS-bu.js → PkToolShowSources-CoTIoupP.js} +3 -3
  24. package/dist/_chunks/{PkToolShowSources-0qudS-bu.js.map → PkToolShowSources-CoTIoupP.js.map} +1 -1
  25. package/dist/_chunks/{PkToolShowSuggestedReply-B2IB6ioR.js → PkToolShowSuggestedReply-DA2Bi7k4.js} +2 -2
  26. package/dist/_chunks/{PkToolShowSuggestedReply-B2IB6ioR.js.map → PkToolShowSuggestedReply-DA2Bi7k4.js.map} +1 -1
  27. package/dist/_chunks/{PkToolShowWeather-Bl3Yoscl.js → PkToolShowWeather-ChDHtOLz.js} +2 -2
  28. package/dist/_chunks/{PkToolShowWeather-Bl3Yoscl.js.map → PkToolShowWeather-ChDHtOLz.js.map} +1 -1
  29. package/dist/_chunks/{browser-DuzNfJq0.js → browser-BXy4OnXA.js} +804 -779
  30. package/dist/_chunks/browser-BXy4OnXA.js.map +1 -0
  31. package/dist/_chunks/index.es-CnpsLhp_.js +1006 -0
  32. package/dist/_chunks/index.es-CnpsLhp_.js.map +1 -0
  33. package/dist/_chunks/utils-DtJdKlnF.js +185 -0
  34. package/dist/_chunks/utils-DtJdKlnF.js.map +1 -0
  35. package/dist/_chunks/{vue-i18n-_ouwlDGE.js → vue-i18n-C3J36GV4.js} +2 -2
  36. package/dist/_chunks/{vue-i18n-_ouwlDGE.js.map → vue-i18n-C3J36GV4.js.map} +1 -1
  37. package/dist/_chunks/{web-DnPxEADy.js → web-CzR5jWfC.js} +46 -45
  38. package/dist/_chunks/{web-DnPxEADy.js.map → web-CzR5jWfC.js.map} +1 -1
  39. package/dist/ai-elements.es.js +2100 -2159
  40. package/dist/ai-elements.es.js.map +1 -1
  41. package/dist-vue/PkChatbot.js +1 -1
  42. package/dist-vue/PkChatbotMessages.js +1 -1
  43. package/dist-vue/PkChatbotStepPayload.js +1 -1
  44. package/dist-vue/PkChatbotStepToolDetail.js +1 -1
  45. package/dist-vue/PkChatbotSteps.js +1 -1
  46. package/dist-vue/PkChatbotViewChat.js +1 -1
  47. package/dist-vue/PkChatbotViewConversations.js +1 -1
  48. package/dist-vue/PkChatbotViewFiles.js +1 -1
  49. package/dist-vue/PkChatbotViewProfile.js +1 -1
  50. package/dist-vue/_chunks/{Agent-gCuDMxHN.js → Agent-CpIgGdU4.js} +2 -2
  51. package/dist-vue/_chunks/Agent-CpIgGdU4.js.map +1 -0
  52. package/dist-vue/_chunks/{Document-iH61Cw06.js → Document-CiaGPYTR.js} +2 -2
  53. package/dist-vue/_chunks/{Document-iH61Cw06.js.map → Document-CiaGPYTR.js.map} +1 -1
  54. package/dist-vue/_chunks/{PkChatbot-Bg9oercD.js → PkChatbot-xmjKbljL.js} +7 -7
  55. package/dist-vue/_chunks/{PkChatbot-Bg9oercD.js.map → PkChatbot-xmjKbljL.js.map} +1 -1
  56. package/dist-vue/_chunks/{PkChatbotMessages-DUQxuYaG.js → PkChatbotMessages-tHQ2JQrb.js} +75 -75
  57. package/dist-vue/_chunks/{PkChatbotMessages-DUQxuYaG.js.map → PkChatbotMessages-tHQ2JQrb.js.map} +1 -1
  58. package/dist-vue/_chunks/{PkChatbotStepPayload-hCmy4XG9.js → PkChatbotStepPayload-BtsnkJIV.js} +2 -2
  59. package/dist-vue/_chunks/{PkChatbotStepPayload-hCmy4XG9.js.map → PkChatbotStepPayload-BtsnkJIV.js.map} +1 -1
  60. package/dist-vue/_chunks/{PkChatbotStepToolDetail-B0WU0HcD.js → PkChatbotStepToolDetail-CCa95eBO.js} +116 -101
  61. package/dist-vue/_chunks/PkChatbotStepToolDetail-CCa95eBO.js.map +1 -0
  62. package/dist-vue/_chunks/PkChatbotSteps-CPBzs7Gi.js +180 -0
  63. package/dist-vue/_chunks/PkChatbotSteps-CPBzs7Gi.js.map +1 -0
  64. package/dist-vue/_chunks/{PkChatbotViewChat-YwjWNoqf.js → PkChatbotViewChat-CdiPjQLq.js} +6 -6
  65. package/dist-vue/_chunks/{PkChatbotViewChat-YwjWNoqf.js.map → PkChatbotViewChat-CdiPjQLq.js.map} +1 -1
  66. package/dist-vue/_chunks/{PkChatbotViewConversations-vo57eSwy.js → PkChatbotViewConversations-BP-NJvlK.js} +2 -2
  67. package/dist-vue/_chunks/{PkChatbotViewConversations-vo57eSwy.js.map → PkChatbotViewConversations-BP-NJvlK.js.map} +1 -1
  68. package/dist-vue/_chunks/{PkChatbotViewFiles-DDPugn7F.js → PkChatbotViewFiles-DRUVmxU5.js} +3 -3
  69. package/dist-vue/_chunks/{PkChatbotViewFiles-DDPugn7F.js.map → PkChatbotViewFiles-DRUVmxU5.js.map} +1 -1
  70. package/dist-vue/_chunks/{PkChatbotViewProfile-Dww5KI21.js → PkChatbotViewProfile-ywvIs6N5.js} +2 -2
  71. package/dist-vue/_chunks/{PkChatbotViewProfile-Dww5KI21.js.map → PkChatbotViewProfile-ywvIs6N5.js.map} +1 -1
  72. package/dist-vue/_chunks/{PkToolRequestGeolocation-BdX5DzEN.js → PkToolRequestGeolocation-BdIyXoPQ.js} +2 -2
  73. package/{dist/_chunks/PkToolRequestGeolocation-sf6LpUN_.js.map → dist-vue/_chunks/PkToolRequestGeolocation-BdIyXoPQ.js.map} +1 -1
  74. package/dist-vue/_chunks/{PkToolRequestOAuthConnection-BUmnRgMi.js → PkToolRequestOAuthConnection-Dnch7xAB.js} +2 -2
  75. package/dist-vue/_chunks/{PkToolRequestOAuthConnection-BUmnRgMi.js.map → PkToolRequestOAuthConnection-Dnch7xAB.js.map} +1 -1
  76. package/dist-vue/_chunks/{PkToolShowDiagram-YMo-iVWr.js → PkToolShowDiagram-DgLxNNp7.js} +2 -2
  77. package/dist-vue/_chunks/{PkToolShowDiagram-YMo-iVWr.js.map → PkToolShowDiagram-DgLxNNp7.js.map} +1 -1
  78. package/dist-vue/_chunks/{PkToolShowForm-D2n2rA6J.js → PkToolShowForm-6eLi6Wr0.js} +103 -117
  79. package/dist-vue/_chunks/PkToolShowForm-6eLi6Wr0.js.map +1 -0
  80. package/dist-vue/_chunks/{PkToolShowSources-DUAsrrzC.js → PkToolShowSources-DTJgvDiB.js} +2 -2
  81. package/dist-vue/_chunks/{PkToolShowSources-DUAsrrzC.js.map → PkToolShowSources-DTJgvDiB.js.map} +1 -1
  82. package/dist-vue/_chunks/{PkToolShowSuggestedReply-Dm28RIJF.js → PkToolShowSuggestedReply-D9RY2h6Z.js} +2 -2
  83. package/dist-vue/_chunks/{PkToolShowSuggestedReply-Dm28RIJF.js.map → PkToolShowSuggestedReply-D9RY2h6Z.js.map} +1 -1
  84. package/dist-vue/_chunks/{createChatbotApiClient-CAX-3-oK.js → createChatbotApiClient-12eL7hul.js} +2 -2
  85. package/dist-vue/_chunks/{createChatbotApiClient-CAX-3-oK.js.map → createChatbotApiClient-12eL7hul.js.map} +1 -1
  86. package/dist-vue/_chunks/{useChatbotStore-Rj18hAUf.js → useChatbotStore-Chtzi5jc.js} +1086 -1016
  87. package/dist-vue/_chunks/useChatbotStore-Chtzi5jc.js.map +1 -0
  88. package/dist-vue/_chunks/{utils-B0jsOUqd.js → utils-DKNWwMTQ.js} +46 -23
  89. package/dist-vue/_chunks/utils-DKNWwMTQ.js.map +1 -0
  90. package/dist-vue/_chunks/{web-DnPxEADy.js → web-CzR5jWfC.js} +46 -45
  91. package/dist-vue/_chunks/{web-DnPxEADy.js.map → web-CzR5jWfC.js.map} +1 -1
  92. package/dist-vue/api.js +1 -1
  93. package/dist-vue/composables.js +3 -3
  94. package/dist-vue/index.js +259 -259
  95. package/dist-vue/index.js.map +1 -1
  96. package/dist-vue/locales.js +10 -4
  97. package/dist-vue/packages/components/src/PkEditorRepeater.d.ts +1 -1
  98. package/dist-vue/packages/components/src/chat/constants.d.ts +12 -0
  99. package/dist-vue/packages/components/src/chat/utils.d.ts +37 -0
  100. package/dist-vue/packages/models/src/schema/Agent.d.ts +24 -16
  101. package/dist-vue/packages/models/src/schema/AgentChatStatistics.d.ts +1 -1
  102. package/dist-vue/packages/models/src/schema/Chat.d.ts +9 -9
  103. package/dist-vue/packages/models/src/schema/Document.d.ts +6 -6
  104. package/dist-vue/packages/models/src/schema/DocumentFolder.d.ts +0 -1
  105. package/dist-vue/packages/models/src/schema/McpServer.d.ts +2 -2
  106. package/dist-vue/packages/models/src/schema/Member.d.ts +2 -2
  107. package/dist-vue/packages/models/src/schema/Organization.d.ts +4 -4
  108. package/dist-vue/packages/models/src/schema/ReasoningChat.d.ts +29 -29
  109. package/dist-vue/packages/models/src/schema/SubAgent.d.ts +20 -20
  110. package/dist-vue/packages/models/src/schema/User.d.ts +6 -6
  111. package/dist-vue/packages/models/src/schema/constants.d.ts +2 -0
  112. package/package.json +10 -5
  113. package/dist/_chunks/Agent-DG4nPG72.js.map +0 -1
  114. package/dist/_chunks/Media-3Mo4NRj7.js.map +0 -1
  115. package/dist/_chunks/PkToolShowForm-DdBAG0Qs.js.map +0 -1
  116. package/dist/_chunks/browser-DuzNfJq0.js.map +0 -1
  117. package/dist/_chunks/index.es-DXx8DNKf.js +0 -2986
  118. package/dist/_chunks/index.es-DXx8DNKf.js.map +0 -1
  119. package/dist-vue/_chunks/Agent-gCuDMxHN.js.map +0 -1
  120. package/dist-vue/_chunks/PkChatbotStepToolDetail-B0WU0HcD.js.map +0 -1
  121. package/dist-vue/_chunks/PkChatbotSteps-BrvTsAeZ.js +0 -177
  122. package/dist-vue/_chunks/PkChatbotSteps-BrvTsAeZ.js.map +0 -1
  123. package/dist-vue/_chunks/PkToolShowForm-D2n2rA6J.js.map +0 -1
  124. package/dist-vue/_chunks/useChatbotStore-Rj18hAUf.js.map +0 -1
  125. package/dist-vue/_chunks/utils-B0jsOUqd.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { v as e } from "./utils-B0jsOUqd.js";
1
+ import { b as e } from "./utils-DKNWwMTQ.js";
2
2
  import { VvIcon as t } from "@volverjs/ui-vue/components";
3
3
  import { Fragment as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createVNode as c, defineComponent as l, openBlock as u, reactive as d, ref as f, renderList as p, resolveDynamicComponent as m, toDisplayString as h, withCtx as g } from "vue";
4
4
  import { useI18n as _ } from "vue-i18n";
@@ -93,4 +93,4 @@ var v = {
93
93
  //#endregion
94
94
  export { O as t };
95
95
 
96
- //# sourceMappingURL=PkChatbotStepPayload-hCmy4XG9.js.map
96
+ //# sourceMappingURL=PkChatbotStepPayload-BtsnkJIV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PkChatbotStepPayload-hCmy4XG9.js","names":[],"sources":["../../../../packages/components/src/chat/PkChatbotStepPayload.vue","../../../../packages/components/src/chat/PkChatbotStepPayload.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { computed, reactive, ref } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { stringifyPayload } from './utils'\n\n interface PayloadRow {\n key: string\n preview: string\n full?: string\n }\n\n const props = defineProps<{\n label: string\n value: unknown\n }>()\n\n const { t: $t } = useI18n({\n useScope: 'global',\n })\n\n // A preview stays on a single line: long enough to recognize the value,\n // short enough to keep the payload readable without expanding anything.\n const PREVIEW_LENGTH = 120\n\n const stringify = (value: unknown, indent = 0): string | undefined => {\n try {\n return JSON.stringify(value, null, indent)\n } catch {\n return undefined\n }\n }\n\n const toPreview = (value: unknown): string => {\n if (value === undefined) {\n return ''\n }\n const text =\n typeof value === 'string' ? value : (stringify(value) ?? '')\n const single = text.replace(/\\s+/g, ' ').trim()\n return single.length > PREVIEW_LENGTH\n ? `${single.slice(0, PREVIEW_LENGTH)}…`\n : single\n }\n\n // Objects are listed by key, arrays by position: either way the payload\n // becomes a list of short lines instead of one wall of JSON.\n const entries = computed<[string, unknown][] | undefined>(() => {\n const value = props.value\n if (Array.isArray(value)) {\n return value.length\n ? value.map(\n (item, index) =>\n [`${index + 1}`, item] as [string, unknown],\n )\n : undefined\n }\n if (value && typeof value === 'object') {\n const own = Object.entries(value as Record<string, unknown>)\n return own.length ? own : undefined\n }\n return undefined\n })\n\n const rows = computed<PayloadRow[] | undefined>(() =>\n entries.value?.map(([key, value]) => {\n const preview = toPreview(value)\n const full = typeof value === 'string' ? value : stringify(value, 2)\n return {\n key,\n preview: preview || '-',\n // Only a value the preview had to cut (long, multiline or\n // nested) is worth its own expandable block.\n full: full && full.trim() !== preview ? full : undefined,\n }\n }),\n )\n\n // Scalars and strings have no rows: they fall back to the plain payload.\n const text = computed(() =>\n rows.value ? undefined : stringifyPayload(props.value),\n )\n\n const summary = computed(() => {\n const list = rows.value\n if (!list) {\n return toPreview(props.value)\n }\n if (Array.isArray(props.value)) {\n return $t('messagePart.stepItems', list.length)\n }\n if (list.length === 1) {\n return `${list[0].key}: ${list[0].preview}`\n }\n return list.map((row) => row.key).join(' · ')\n })\n\n const isOpen = ref(false)\n const expandedRows = reactive(new Set<string>())\n const toggleRow = (key: string) => {\n if (expandedRows.has(key)) {\n expandedRows.delete(key)\n } else {\n expandedRows.add(key)\n }\n }\n</script>\n\n<template>\n <div v-if=\"rows || text\" class=\"pk-chatbot-step-payload\">\n <button\n type=\"button\"\n class=\"pk-chatbot-step-payload__header\"\n :aria-expanded=\"isOpen\"\n @click=\"isOpen = !isOpen\">\n <span class=\"pk-chatbot-step-payload__label\">{{ label }}</span>\n <span class=\"pk-chatbot-step-payload__summary\">\n {{ summary }}\n </span>\n <VvIcon\n :name=\"isOpen ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\"\n class=\"shrink-0\" />\n </button>\n <ul v-if=\"isOpen && rows\" class=\"pk-chatbot-step-payload__rows\">\n <li v-for=\"row in rows\" :key=\"row.key\">\n <component\n :is=\"row.full ? 'button' : 'div'\"\n :type=\"row.full ? 'button' : undefined\"\n class=\"pk-chatbot-step-payload__row\"\n :aria-expanded=\"\n row.full ? expandedRows.has(row.key) : undefined\n \"\n @click=\"row.full ? toggleRow(row.key) : undefined\">\n <span class=\"pk-chatbot-step-payload__key\">\n {{ row.key }}\n </span>\n <span class=\"pk-chatbot-step-payload__value\">\n {{ row.preview }}\n </span>\n <VvIcon\n v-if=\"row.full\"\n :name=\"\n expandedRows.has(row.key)\n ? 'ri:arrow-up-s-line'\n : 'ri:arrow-down-s-line'\n \"\n class=\"shrink-0\" />\n </component>\n <pre\n v-if=\"row.full && expandedRows.has(row.key)\"\n class=\"pk-chatbot-step-payload__full\"\n >{{ row.full }}</pre>\n </li>\n </ul>\n <pre v-else-if=\"isOpen\" class=\"pk-chatbot-step-payload__full\">{{\n text\n }}</pre>\n </div>\n</template>\n\n<style lang=\"scss\">\n .pk-chatbot-step-payload {\n border: var(--spacing-px) solid var(--color-surface-4);\n border-radius: var(--rounded);\n background-color: var(--color-surface-1);\n overflow: hidden;\n\n &__header {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n width: 100%;\n min-height: var(--spacing-28);\n padding: var(--spacing-4) var(--spacing-8);\n text-align: left;\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n &:hover {\n background-color: var(--color-surface-2);\n }\n }\n\n &__label {\n flex-shrink: 0;\n font-weight: 600;\n font-size: var(--text-10);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--color-word-3);\n }\n\n &__summary {\n flex: 1 1 0;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: var(--font-mono);\n font-size: var(--text-10);\n color: var(--color-word-4);\n }\n\n &__rows > li {\n border-top: var(--spacing-px) solid var(--color-surface-3);\n }\n\n &__row {\n display: flex;\n align-items: baseline;\n gap: var(--spacing-8);\n width: 100%;\n padding: var(--spacing-4) var(--spacing-8);\n text-align: left;\n font-size: var(--text-10);\n\n &:is(button) {\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n &:hover {\n background-color: var(--color-surface-2);\n }\n }\n }\n\n &__key {\n flex-shrink: 0;\n max-width: 40%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: var(--font-mono);\n color: var(--color-word-4);\n }\n\n &__value {\n flex: 1 1 0;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--color-word-2);\n }\n\n &__full {\n padding: var(--spacing-8);\n border-top: var(--spacing-px) solid var(--color-surface-3);\n max-height: var(--spacing-160);\n overflow: auto;\n white-space: pre-wrap;\n word-break: break-word;\n font-family: var(--font-mono);\n font-size: var(--text-10);\n color: var(--color-word-3);\n }\n }\n</style>\n","<script lang=\"ts\" setup>\n import { computed, reactive, ref } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { stringifyPayload } from './utils'\n\n interface PayloadRow {\n key: string\n preview: string\n full?: string\n }\n\n const props = defineProps<{\n label: string\n value: unknown\n }>()\n\n const { t: $t } = useI18n({\n useScope: 'global',\n })\n\n // A preview stays on a single line: long enough to recognize the value,\n // short enough to keep the payload readable without expanding anything.\n const PREVIEW_LENGTH = 120\n\n const stringify = (value: unknown, indent = 0): string | undefined => {\n try {\n return JSON.stringify(value, null, indent)\n } catch {\n return undefined\n }\n }\n\n const toPreview = (value: unknown): string => {\n if (value === undefined) {\n return ''\n }\n const text =\n typeof value === 'string' ? value : (stringify(value) ?? '')\n const single = text.replace(/\\s+/g, ' ').trim()\n return single.length > PREVIEW_LENGTH\n ? `${single.slice(0, PREVIEW_LENGTH)}…`\n : single\n }\n\n // Objects are listed by key, arrays by position: either way the payload\n // becomes a list of short lines instead of one wall of JSON.\n const entries = computed<[string, unknown][] | undefined>(() => {\n const value = props.value\n if (Array.isArray(value)) {\n return value.length\n ? value.map(\n (item, index) =>\n [`${index + 1}`, item] as [string, unknown],\n )\n : undefined\n }\n if (value && typeof value === 'object') {\n const own = Object.entries(value as Record<string, unknown>)\n return own.length ? own : undefined\n }\n return undefined\n })\n\n const rows = computed<PayloadRow[] | undefined>(() =>\n entries.value?.map(([key, value]) => {\n const preview = toPreview(value)\n const full = typeof value === 'string' ? value : stringify(value, 2)\n return {\n key,\n preview: preview || '-',\n // Only a value the preview had to cut (long, multiline or\n // nested) is worth its own expandable block.\n full: full && full.trim() !== preview ? full : undefined,\n }\n }),\n )\n\n // Scalars and strings have no rows: they fall back to the plain payload.\n const text = computed(() =>\n rows.value ? undefined : stringifyPayload(props.value),\n )\n\n const summary = computed(() => {\n const list = rows.value\n if (!list) {\n return toPreview(props.value)\n }\n if (Array.isArray(props.value)) {\n return $t('messagePart.stepItems', list.length)\n }\n if (list.length === 1) {\n return `${list[0].key}: ${list[0].preview}`\n }\n return list.map((row) => row.key).join(' · ')\n })\n\n const isOpen = ref(false)\n const expandedRows = reactive(new Set<string>())\n const toggleRow = (key: string) => {\n if (expandedRows.has(key)) {\n expandedRows.delete(key)\n } else {\n expandedRows.add(key)\n }\n }\n</script>\n\n<template>\n <div v-if=\"rows || text\" class=\"pk-chatbot-step-payload\">\n <button\n type=\"button\"\n class=\"pk-chatbot-step-payload__header\"\n :aria-expanded=\"isOpen\"\n @click=\"isOpen = !isOpen\">\n <span class=\"pk-chatbot-step-payload__label\">{{ label }}</span>\n <span class=\"pk-chatbot-step-payload__summary\">\n {{ summary }}\n </span>\n <VvIcon\n :name=\"isOpen ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\"\n class=\"shrink-0\" />\n </button>\n <ul v-if=\"isOpen && rows\" class=\"pk-chatbot-step-payload__rows\">\n <li v-for=\"row in rows\" :key=\"row.key\">\n <component\n :is=\"row.full ? 'button' : 'div'\"\n :type=\"row.full ? 'button' : undefined\"\n class=\"pk-chatbot-step-payload__row\"\n :aria-expanded=\"\n row.full ? expandedRows.has(row.key) : undefined\n \"\n @click=\"row.full ? toggleRow(row.key) : undefined\">\n <span class=\"pk-chatbot-step-payload__key\">\n {{ row.key }}\n </span>\n <span class=\"pk-chatbot-step-payload__value\">\n {{ row.preview }}\n </span>\n <VvIcon\n v-if=\"row.full\"\n :name=\"\n expandedRows.has(row.key)\n ? 'ri:arrow-up-s-line'\n : 'ri:arrow-down-s-line'\n \"\n class=\"shrink-0\" />\n </component>\n <pre\n v-if=\"row.full && expandedRows.has(row.key)\"\n class=\"pk-chatbot-step-payload__full\"\n >{{ row.full }}</pre>\n </li>\n </ul>\n <pre v-else-if=\"isOpen\" class=\"pk-chatbot-step-payload__full\">{{\n text\n }}</pre>\n </div>\n</template>\n\n<style lang=\"scss\">\n .pk-chatbot-step-payload {\n border: var(--spacing-px) solid var(--color-surface-4);\n border-radius: var(--rounded);\n background-color: var(--color-surface-1);\n overflow: hidden;\n\n &__header {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n width: 100%;\n min-height: var(--spacing-28);\n padding: var(--spacing-4) var(--spacing-8);\n text-align: left;\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n &:hover {\n background-color: var(--color-surface-2);\n }\n }\n\n &__label {\n flex-shrink: 0;\n font-weight: 600;\n font-size: var(--text-10);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--color-word-3);\n }\n\n &__summary {\n flex: 1 1 0;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: var(--font-mono);\n font-size: var(--text-10);\n color: var(--color-word-4);\n }\n\n &__rows > li {\n border-top: var(--spacing-px) solid var(--color-surface-3);\n }\n\n &__row {\n display: flex;\n align-items: baseline;\n gap: var(--spacing-8);\n width: 100%;\n padding: var(--spacing-4) var(--spacing-8);\n text-align: left;\n font-size: var(--text-10);\n\n &:is(button) {\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n &:hover {\n background-color: var(--color-surface-2);\n }\n }\n }\n\n &__key {\n flex-shrink: 0;\n max-width: 40%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: var(--font-mono);\n color: var(--color-word-4);\n }\n\n &__value {\n flex: 1 1 0;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--color-word-2);\n }\n\n &__full {\n padding: var(--spacing-8);\n border-top: var(--spacing-px) solid var(--color-surface-3);\n max-height: var(--spacing-160);\n overflow: auto;\n white-space: pre-wrap;\n word-break: break-word;\n font-family: var(--font-mono);\n font-size: var(--text-10);\n color: var(--color-word-3);\n }\n }\n</style>\n"],"mappings":"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"}
1
+ {"version":3,"file":"PkChatbotStepPayload-BtsnkJIV.js","names":[],"sources":["../../../../packages/components/src/chat/PkChatbotStepPayload.vue","../../../../packages/components/src/chat/PkChatbotStepPayload.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n import { computed, reactive, ref } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { stringifyPayload } from './utils'\n\n interface PayloadRow {\n key: string\n preview: string\n full?: string\n }\n\n const props = defineProps<{\n label: string\n value: unknown\n }>()\n\n const { t: $t } = useI18n({\n useScope: 'global',\n })\n\n // A preview stays on a single line: long enough to recognize the value,\n // short enough to keep the payload readable without expanding anything.\n const PREVIEW_LENGTH = 120\n\n const stringify = (value: unknown, indent = 0): string | undefined => {\n try {\n return JSON.stringify(value, null, indent)\n } catch {\n return undefined\n }\n }\n\n const toPreview = (value: unknown): string => {\n if (value === undefined) {\n return ''\n }\n const text =\n typeof value === 'string' ? value : (stringify(value) ?? '')\n const single = text.replace(/\\s+/g, ' ').trim()\n return single.length > PREVIEW_LENGTH\n ? `${single.slice(0, PREVIEW_LENGTH)}…`\n : single\n }\n\n // Objects are listed by key, arrays by position: either way the payload\n // becomes a list of short lines instead of one wall of JSON.\n const entries = computed<[string, unknown][] | undefined>(() => {\n const value = props.value\n if (Array.isArray(value)) {\n return value.length\n ? value.map(\n (item, index) =>\n [`${index + 1}`, item] as [string, unknown],\n )\n : undefined\n }\n if (value && typeof value === 'object') {\n const own = Object.entries(value as Record<string, unknown>)\n return own.length ? own : undefined\n }\n return undefined\n })\n\n const rows = computed<PayloadRow[] | undefined>(() =>\n entries.value?.map(([key, value]) => {\n const preview = toPreview(value)\n const full = typeof value === 'string' ? value : stringify(value, 2)\n return {\n key,\n preview: preview || '-',\n // Only a value the preview had to cut (long, multiline or\n // nested) is worth its own expandable block.\n full: full && full.trim() !== preview ? full : undefined,\n }\n }),\n )\n\n // Scalars and strings have no rows: they fall back to the plain payload.\n const text = computed(() =>\n rows.value ? undefined : stringifyPayload(props.value),\n )\n\n const summary = computed(() => {\n const list = rows.value\n if (!list) {\n return toPreview(props.value)\n }\n if (Array.isArray(props.value)) {\n return $t('messagePart.stepItems', list.length)\n }\n if (list.length === 1) {\n return `${list[0].key}: ${list[0].preview}`\n }\n return list.map((row) => row.key).join(' · ')\n })\n\n const isOpen = ref(false)\n const expandedRows = reactive(new Set<string>())\n const toggleRow = (key: string) => {\n if (expandedRows.has(key)) {\n expandedRows.delete(key)\n } else {\n expandedRows.add(key)\n }\n }\n</script>\n\n<template>\n <div v-if=\"rows || text\" class=\"pk-chatbot-step-payload\">\n <button\n type=\"button\"\n class=\"pk-chatbot-step-payload__header\"\n :aria-expanded=\"isOpen\"\n @click=\"isOpen = !isOpen\">\n <span class=\"pk-chatbot-step-payload__label\">{{ label }}</span>\n <span class=\"pk-chatbot-step-payload__summary\">\n {{ summary }}\n </span>\n <VvIcon\n :name=\"isOpen ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\"\n class=\"shrink-0\" />\n </button>\n <ul v-if=\"isOpen && rows\" class=\"pk-chatbot-step-payload__rows\">\n <li v-for=\"row in rows\" :key=\"row.key\">\n <component\n :is=\"row.full ? 'button' : 'div'\"\n :type=\"row.full ? 'button' : undefined\"\n class=\"pk-chatbot-step-payload__row\"\n :aria-expanded=\"\n row.full ? expandedRows.has(row.key) : undefined\n \"\n @click=\"row.full ? toggleRow(row.key) : undefined\">\n <span class=\"pk-chatbot-step-payload__key\">\n {{ row.key }}\n </span>\n <span class=\"pk-chatbot-step-payload__value\">\n {{ row.preview }}\n </span>\n <VvIcon\n v-if=\"row.full\"\n :name=\"\n expandedRows.has(row.key)\n ? 'ri:arrow-up-s-line'\n : 'ri:arrow-down-s-line'\n \"\n class=\"shrink-0\" />\n </component>\n <pre\n v-if=\"row.full && expandedRows.has(row.key)\"\n class=\"pk-chatbot-step-payload__full\"\n >{{ row.full }}</pre>\n </li>\n </ul>\n <pre v-else-if=\"isOpen\" class=\"pk-chatbot-step-payload__full\">{{\n text\n }}</pre>\n </div>\n</template>\n\n<style lang=\"scss\">\n .pk-chatbot-step-payload {\n border: var(--spacing-px) solid var(--color-surface-4);\n border-radius: var(--rounded);\n background-color: var(--color-surface-1);\n overflow: hidden;\n\n &__header {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n width: 100%;\n min-height: var(--spacing-28);\n padding: var(--spacing-4) var(--spacing-8);\n text-align: left;\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n &:hover {\n background-color: var(--color-surface-2);\n }\n }\n\n &__label {\n flex-shrink: 0;\n font-weight: 600;\n font-size: var(--text-10);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--color-word-3);\n }\n\n &__summary {\n flex: 1 1 0;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: var(--font-mono);\n font-size: var(--text-10);\n color: var(--color-word-4);\n }\n\n &__rows > li {\n border-top: var(--spacing-px) solid var(--color-surface-3);\n }\n\n &__row {\n display: flex;\n align-items: baseline;\n gap: var(--spacing-8);\n width: 100%;\n padding: var(--spacing-4) var(--spacing-8);\n text-align: left;\n font-size: var(--text-10);\n\n &:is(button) {\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n &:hover {\n background-color: var(--color-surface-2);\n }\n }\n }\n\n &__key {\n flex-shrink: 0;\n max-width: 40%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: var(--font-mono);\n color: var(--color-word-4);\n }\n\n &__value {\n flex: 1 1 0;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--color-word-2);\n }\n\n &__full {\n padding: var(--spacing-8);\n border-top: var(--spacing-px) solid var(--color-surface-3);\n max-height: var(--spacing-160);\n overflow: auto;\n white-space: pre-wrap;\n word-break: break-word;\n font-family: var(--font-mono);\n font-size: var(--text-10);\n color: var(--color-word-3);\n }\n }\n</style>\n","<script lang=\"ts\" setup>\n import { computed, reactive, ref } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { stringifyPayload } from './utils'\n\n interface PayloadRow {\n key: string\n preview: string\n full?: string\n }\n\n const props = defineProps<{\n label: string\n value: unknown\n }>()\n\n const { t: $t } = useI18n({\n useScope: 'global',\n })\n\n // A preview stays on a single line: long enough to recognize the value,\n // short enough to keep the payload readable without expanding anything.\n const PREVIEW_LENGTH = 120\n\n const stringify = (value: unknown, indent = 0): string | undefined => {\n try {\n return JSON.stringify(value, null, indent)\n } catch {\n return undefined\n }\n }\n\n const toPreview = (value: unknown): string => {\n if (value === undefined) {\n return ''\n }\n const text =\n typeof value === 'string' ? value : (stringify(value) ?? '')\n const single = text.replace(/\\s+/g, ' ').trim()\n return single.length > PREVIEW_LENGTH\n ? `${single.slice(0, PREVIEW_LENGTH)}…`\n : single\n }\n\n // Objects are listed by key, arrays by position: either way the payload\n // becomes a list of short lines instead of one wall of JSON.\n const entries = computed<[string, unknown][] | undefined>(() => {\n const value = props.value\n if (Array.isArray(value)) {\n return value.length\n ? value.map(\n (item, index) =>\n [`${index + 1}`, item] as [string, unknown],\n )\n : undefined\n }\n if (value && typeof value === 'object') {\n const own = Object.entries(value as Record<string, unknown>)\n return own.length ? own : undefined\n }\n return undefined\n })\n\n const rows = computed<PayloadRow[] | undefined>(() =>\n entries.value?.map(([key, value]) => {\n const preview = toPreview(value)\n const full = typeof value === 'string' ? value : stringify(value, 2)\n return {\n key,\n preview: preview || '-',\n // Only a value the preview had to cut (long, multiline or\n // nested) is worth its own expandable block.\n full: full && full.trim() !== preview ? full : undefined,\n }\n }),\n )\n\n // Scalars and strings have no rows: they fall back to the plain payload.\n const text = computed(() =>\n rows.value ? undefined : stringifyPayload(props.value),\n )\n\n const summary = computed(() => {\n const list = rows.value\n if (!list) {\n return toPreview(props.value)\n }\n if (Array.isArray(props.value)) {\n return $t('messagePart.stepItems', list.length)\n }\n if (list.length === 1) {\n return `${list[0].key}: ${list[0].preview}`\n }\n return list.map((row) => row.key).join(' · ')\n })\n\n const isOpen = ref(false)\n const expandedRows = reactive(new Set<string>())\n const toggleRow = (key: string) => {\n if (expandedRows.has(key)) {\n expandedRows.delete(key)\n } else {\n expandedRows.add(key)\n }\n }\n</script>\n\n<template>\n <div v-if=\"rows || text\" class=\"pk-chatbot-step-payload\">\n <button\n type=\"button\"\n class=\"pk-chatbot-step-payload__header\"\n :aria-expanded=\"isOpen\"\n @click=\"isOpen = !isOpen\">\n <span class=\"pk-chatbot-step-payload__label\">{{ label }}</span>\n <span class=\"pk-chatbot-step-payload__summary\">\n {{ summary }}\n </span>\n <VvIcon\n :name=\"isOpen ? 'ri:arrow-up-s-line' : 'ri:arrow-down-s-line'\"\n class=\"shrink-0\" />\n </button>\n <ul v-if=\"isOpen && rows\" class=\"pk-chatbot-step-payload__rows\">\n <li v-for=\"row in rows\" :key=\"row.key\">\n <component\n :is=\"row.full ? 'button' : 'div'\"\n :type=\"row.full ? 'button' : undefined\"\n class=\"pk-chatbot-step-payload__row\"\n :aria-expanded=\"\n row.full ? expandedRows.has(row.key) : undefined\n \"\n @click=\"row.full ? toggleRow(row.key) : undefined\">\n <span class=\"pk-chatbot-step-payload__key\">\n {{ row.key }}\n </span>\n <span class=\"pk-chatbot-step-payload__value\">\n {{ row.preview }}\n </span>\n <VvIcon\n v-if=\"row.full\"\n :name=\"\n expandedRows.has(row.key)\n ? 'ri:arrow-up-s-line'\n : 'ri:arrow-down-s-line'\n \"\n class=\"shrink-0\" />\n </component>\n <pre\n v-if=\"row.full && expandedRows.has(row.key)\"\n class=\"pk-chatbot-step-payload__full\"\n >{{ row.full }}</pre>\n </li>\n </ul>\n <pre v-else-if=\"isOpen\" class=\"pk-chatbot-step-payload__full\">{{\n text\n }}</pre>\n </div>\n</template>\n\n<style lang=\"scss\">\n .pk-chatbot-step-payload {\n border: var(--spacing-px) solid var(--color-surface-4);\n border-radius: var(--rounded);\n background-color: var(--color-surface-1);\n overflow: hidden;\n\n &__header {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n width: 100%;\n min-height: var(--spacing-28);\n padding: var(--spacing-4) var(--spacing-8);\n text-align: left;\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n &:hover {\n background-color: var(--color-surface-2);\n }\n }\n\n &__label {\n flex-shrink: 0;\n font-weight: 600;\n font-size: var(--text-10);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--color-word-3);\n }\n\n &__summary {\n flex: 1 1 0;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: var(--font-mono);\n font-size: var(--text-10);\n color: var(--color-word-4);\n }\n\n &__rows > li {\n border-top: var(--spacing-px) solid var(--color-surface-3);\n }\n\n &__row {\n display: flex;\n align-items: baseline;\n gap: var(--spacing-8);\n width: 100%;\n padding: var(--spacing-4) var(--spacing-8);\n text-align: left;\n font-size: var(--text-10);\n\n &:is(button) {\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n &:hover {\n background-color: var(--color-surface-2);\n }\n }\n }\n\n &__key {\n flex-shrink: 0;\n max-width: 40%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: var(--font-mono);\n color: var(--color-word-4);\n }\n\n &__value {\n flex: 1 1 0;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--color-word-2);\n }\n\n &__full {\n padding: var(--spacing-8);\n border-top: var(--spacing-px) solid var(--color-surface-3);\n max-height: var(--spacing-160);\n overflow: auto;\n white-space: pre-wrap;\n word-break: break-word;\n font-family: var(--font-mono);\n font-size: var(--text-10);\n color: var(--color-word-3);\n }\n }\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;GAsBU,IAAiB;;;;;;;EAXvB,IAAM,IAAQ,GAKR,EAAE,GAAG,MAAO,EAAQ,EACtB,UAAU,SACd,CAAC,GAMK,KAAa,GAAgB,IAAS,MAA0B;GAClE,IAAI;IACA,OAAO,KAAK,UAAU,GAAO,MAAM,CAAM;GAC7C,QAAQ;IACJ;GACJ;EACJ,GAEM,KAAa,MAA2B;GAC1C,IAAI,MAAU,KAAA,GACV,OAAO;GAIX,IAAM,KADF,OAAO,KAAU,WAAW,IAAS,EAAU,CAAK,KAAK,GAAA,CACzC,QAAQ,QAAQ,GAAG,CAAC,CAAC,KAAK;GAC9C,OAAO,EAAO,SAAS,IACjB,GAAG,EAAO,MAAM,GAAG,CAAc,EAAE,KACnC;EACV,GAIM,IAAU,QAAgD;GAC5D,IAAM,IAAQ,EAAM;GACpB,IAAI,MAAM,QAAQ,CAAK,GACnB,OAAO,EAAM,SACP,EAAM,KACD,GAAM,MACH,CAAC,GAAG,IAAQ,KAAK,CAAI,CAC7B,IACA,KAAA;GAEV,IAAI,KAAS,OAAO,KAAU,UAAU;IACpC,IAAM,IAAM,OAAO,QAAQ,CAAgC;IAC3D,OAAO,EAAI,SAAS,IAAM,KAAA;GAC9B;EAEJ,CAAC,GAEK,IAAO,QACT,EAAQ,OAAO,KAAK,CAAC,GAAK,OAAW;GACjC,IAAM,IAAU,EAAU,CAAK,GACzB,IAAO,OAAO,KAAU,WAAW,IAAQ,EAAU,GAAO,CAAC;GACnE,OAAO;IACH;IACA,SAAS,KAAW;IAGpB,MAAM,KAAQ,EAAK,KAAK,MAAM,IAAU,IAAO,KAAA;GACnD;EACJ,CAAC,CACL,GAGM,IAAO,QACT,EAAK,QAAQ,KAAA,IAAY,EAAiB,EAAM,KAAK,CACzD,GAEM,IAAU,QAAe;GAC3B,IAAM,IAAO,EAAK;GAUlB,OATK,IAGD,MAAM,QAAQ,EAAM,KAAK,IAClB,EAAG,yBAAyB,EAAK,MAAM,IAE9C,EAAK,WAAW,IACT,GAAG,EAAK,EAAE,CAAC,IAAI,IAAI,EAAK,EAAE,CAAC,YAE/B,EAAK,KAAK,MAAQ,EAAI,GAAG,CAAC,CAAC,KAAK,KAAK,IARjC,EAAU,EAAM,KAAK;EASpC,CAAC,GAEK,IAAS,EAAI,EAAK,GAClB,IAAe,kBAAS,IAAI,IAAY,CAAC,GACzC,KAAa,MAAgB;GAC/B,AAAI,EAAa,IAAI,CAAG,IACpB,EAAa,OAAO,CAAG,IAEvB,EAAa,IAAI,CAAG;EAE5B;;;GAIW,OAAA,EAAA,SAAQ,EAAA,SAAnB,EAAA,GAAA,EAgDM,OAhDN,GAgDM,CA/CF,EAYS,UAAA;IAXL,MAAK;IACL,OAAM;IACL,iBAAe,EAAA;IACf,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,QAAM,CAAI,EAAA;;IAClB,EAA+D,QAA/D,GAA+D,EAAf,EAAA,KAAK,GAAA,CAAA;IACrD,EAEO,QAFP,GAEO,EADA,EAAA,KAAO,GAAA,CAAA;IAEd,EAEuB,GAAA;KADlB,MAAM,EAAA,QAAM,uBAAA;KACb,OAAM;;GAEJ,GAAA,GAAA,CAAA,GAAA,EAAA,SAAU,EAAA,SAApB,EAAA,GAAA,EA8BK,MA9BL,GA8BK,EA7BD,EAAA,EAAA,GAAA,EA4BK,GAAA,MAAA,EA5Ba,EAAA,QAAP,OAAX,EAAA,GAAA,EA4BK,MAAA,EA5BoB,KAAK,EAAI,IAAA,GAAA,EAC9B,EAAA,GAAA,EAsBY,EArBH,EAAI,OAAI,WAAA,KAAA,GAAA;IACZ,MAAM,EAAI,OAAI,WAAc,KAAA;IAC7B,OAAM;IACL,iBAAwC,EAAI,OAAO,EAAa,IAAI,EAAI,GAAG,IAAI,KAAA;IAG/E,UAAK,MAAE,EAAI,OAAO,EAAU,EAAI,GAAG,IAAI,KAAA;;IACxC,SAAA,QAEO;KAFP,EAEO,QAFP,GAEO,EADA,EAAI,GAAG,GAAA,CAAA;KAEd,EAEO,QAFP,GAEO,EADA,EAAI,OAAO,GAAA,CAAA;KAGR,EAAI,QADd,EAAA,GAAA,EAOuB,GAAA;;MALlB,MAAmC,EAAa,IAAI,EAAI,GAAG,IAAA,uBAAA;MAK5D,OAAM;;;;;;;;GAGJ,CAAA,IAAA,EAAI,QAAQ,EAAa,IAAI,EAAI,GAAG,KAD9C,EAAA,GAAA,EAGyB,OAHzB,GAGyB,EAAjB,EAAI,IAAI,GAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAGR,GAAA,GAAA,EAAA,CAAA,KAAA,EAAA,SAAhB,EAAA,GAAA,EAEQ,OAFR,GAEQ,EADJ,EAAA,KAAI,GAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA"}
@@ -1,5 +1,5 @@
1
- import { n as e, u as t } from "./utils-B0jsOUqd.js";
2
- import { t as n } from "./PkChatbotStepPayload-hCmy4XG9.js";
1
+ import { f as e, n as t } from "./utils-DKNWwMTQ.js";
2
+ import { t as n } from "./PkChatbotStepPayload-BtsnkJIV.js";
3
3
  import { VvIcon as r } from "@volverjs/ui-vue/components";
4
4
  import { Fragment as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createVNode as u, defineComponent as d, normalizeStyle as f, openBlock as p, reactive as m, renderList as h, resolveDynamicComponent as g, toDisplayString as _, unref as v, withCtx as y, withModifiers as b } from "vue";
5
5
  import { useI18n as x } from "vue-i18n";
@@ -7,172 +7,184 @@ import { useI18n as x } from "vue-i18n";
7
7
  var S = { class: "pk-chatbot-step-detail" }, C = {
8
8
  key: 0,
9
9
  class: "pk-chatbot-step-detail__chips"
10
- }, ee = { class: "pk-chatbot-step-detail__chip-text" }, te = {
10
+ }, w = { class: "pk-chatbot-step-detail__chip-text" }, T = {
11
11
  key: 1,
12
- class: "pk-chatbot-step-detail__fact"
13
- }, ne = {
14
- key: 2,
15
12
  class: "pk-chatbot-step-detail__empty"
16
- }, w = {
17
- key: 3,
13
+ }, ee = {
14
+ key: 2,
18
15
  class: "pk-chatbot-step-detail__hits"
19
- }, T = { class: "pk-chatbot-step-detail__hit-heading" }, E = { class: "pk-chatbot-step-detail__hit-title" }, D = ["href"], O = {
16
+ }, te = { class: "pk-chatbot-step-detail__hit-heading" }, ne = { class: "pk-chatbot-step-detail__hit-title" }, E = ["href"], D = {
20
17
  key: 0,
21
18
  class: "pk-chatbot-step-detail__hit-meta"
22
- }, k = {
19
+ }, O = {
23
20
  key: 1,
24
21
  class: "pk-chatbot-step-detail__relevance",
25
22
  "aria-hidden": "true"
26
- }, A = {
23
+ }, k = {
27
24
  key: 0,
28
25
  class: "pk-chatbot-step-detail__hit-body"
29
- }, re = {
30
- key: 4,
26
+ }, A = {
27
+ key: 3,
31
28
  class: "pk-chatbot-step-detail__passage"
32
- }, j = { class: "pk-chatbot-step-detail__passage-header" }, M = { class: "pk-chatbot-step-detail__hit-heading" }, N = { class: "pk-chatbot-step-detail__hit-title" }, P = {
29
+ }, j = { class: "pk-chatbot-step-detail__passage-header" }, re = { class: "pk-chatbot-step-detail__hit-heading" }, M = { class: "pk-chatbot-step-detail__hit-title" }, N = {
33
30
  key: 0,
34
31
  class: "pk-chatbot-step-detail__hit-meta"
35
- }, F = { class: "pk-chatbot-step-detail__passage-content" }, I = /* @__PURE__ */ d({
32
+ }, P = { class: "pk-chatbot-step-detail__passage-content" }, F = /* @__PURE__ */ d({
36
33
  __name: "PkChatbotStepToolDetail",
37
34
  props: { part: {} },
38
35
  setup(d) {
39
- let I = d, { t: L } = x({ useScope: "global" }), R = (e) => e && typeof e == "object" && !Array.isArray(e) ? e : void 0, z = (e, ...t) => {
36
+ let F = d, { t: I } = x({ useScope: "global" }), L = (e) => e && typeof e == "object" && !Array.isArray(e) ? e : void 0, R = (e, ...t) => {
40
37
  for (let n of t) {
41
38
  let t = e?.[n];
42
39
  if (typeof t == "string" && t.trim()) return t;
43
40
  }
44
- }, B = (e) => {
41
+ }, z = (e) => {
45
42
  let t = e?.latitude, n = e?.longitude;
46
43
  if (typeof t == "number" && typeof n == "number") return `${t.toFixed(4)}, ${n.toFixed(4)}`;
47
- }, V = a(() => "input" in I.part ? I.part.input : void 0), H = a(() => "output" in I.part ? I.part.output : void 0), U = a(() => R(V.value)), W = a(() => R(H.value)), G = a(() => {
48
- let e = U.value?.queries ?? U.value?.query ?? U.value?.objective;
44
+ }, B = a(() => "input" in F.part ? F.part.input : void 0), V = a(() => "output" in F.part ? F.part.output : void 0), H = a(() => L(B.value)), U = a(() => L(V.value)), W = a(() => {
45
+ let e = H.value?.queries ?? H.value?.query ?? H.value?.objective;
49
46
  return typeof e == "string" && e.trim() ? [e] : Array.isArray(e) ? e.filter((e) => typeof e == "string" && !!e.trim()) : [];
50
- }), K = (e) => {
47
+ }), G = (e) => {
51
48
  let t = Math.min(...e), n = Math.max(...e);
52
49
  return e.length < 2 || n <= t ? e.map(() => void 0) : e.map((e) => .15 + (e - t) / (n - t) * .85);
53
- }, q = (e) => {
50
+ }, K = (e) => {
54
51
  if (!Array.isArray(e)) return;
55
- let t = e.map((e) => R(e)).filter((e) => !!e), n = K(t.map((e) => typeof e.similarity == "number" ? e.similarity : 0));
52
+ let t = e.map((e) => L(e)).filter((e) => !!e), n = G(t.map((e) => typeof e.similarity == "number" ? e.similarity : 0));
56
53
  return t.map((e, t) => ({
57
54
  record: e,
58
55
  relevance: n[t]
59
56
  }));
60
- }, J = a(() => {
61
- let e = W.value?.results;
57
+ }, q = a(() => {
58
+ let e = U.value?.results;
62
59
  if (!Array.isArray(e)) return;
63
60
  let t = /* @__PURE__ */ new Map();
64
61
  for (let [n, r] of e.entries()) {
65
- let e = R(r);
62
+ let e = L(r);
66
63
  if (!e) continue;
67
- let i = R(e.document), a = R(i?.source), o = typeof i?.id == "string" ? i.id : `doc-${n}`, s = typeof e.similarity == "number" ? e.similarity : 0, c = t.get(o);
64
+ let i = L(e.document), a = L(i?.source), o = typeof i?.id == "string" ? i.id : `doc-${n}`, s = typeof e.similarity == "number" ? e.similarity : 0, c = t.get(o);
68
65
  c || (c = {
69
66
  id: o,
70
67
  type: typeof i?.type == "string" ? i.type : "",
71
- title: z(i, "name") ?? z(a, "filename", "url") ?? L("messagePart.stepDocument"),
72
- url: z(a, "url"),
68
+ title: R(i, "name") ?? R(a, "filename", "url") ?? I("messagePart.stepDocument"),
69
+ url: R(a, "url"),
73
70
  similarity: s,
74
71
  chunks: []
75
72
  }, t.set(o, c)), c.similarity = Math.max(c.similarity, s), typeof e.content == "string" && e.content.trim() && c.chunks.push(e.content);
76
73
  }
77
- let n = [...t.values()], r = K(n.map((e) => e.similarity));
74
+ let n = [...t.values()], r = G(n.map((e) => e.similarity));
78
75
  return n.map((e, t) => ({
79
76
  key: e.id,
80
77
  icon: e.type === "url" ? "ri:global-line" : "ri:file-text-line",
81
78
  title: e.title,
82
79
  url: e.url,
83
- meta: L("messagePart.stepExcerpts", e.chunks.length || 1),
80
+ meta: I("messagePart.stepExcerpts", e.chunks.length || 1),
84
81
  relevance: r[t],
85
82
  body: e.chunks.join("\n\n· · ·\n\n") || void 0
86
83
  }));
87
- }), Y = a(() => {
88
- let e = R(W.value?.repeated)?.count;
84
+ }), J = a(() => {
85
+ let e = L(U.value?.repeated)?.count;
89
86
  return typeof e == "number" ? e : 0;
90
- }), ie = a(() => q(W.value?.results)?.map(({ record: e, relevance: t }, n) => ({
91
- key: z(e, "revisedAnswerId") ?? `revised-${n}`,
87
+ }), Y = a(() => {
88
+ let e = [], t = L(U.value?.inputTruncated)?.dropped;
89
+ Array.isArray(t) && t.length && e.push({
90
+ icon: "ri:scissors-cut-line",
91
+ text: I("messagePart.stepDropped", t.length)
92
+ });
93
+ let n = L(U.value?.searchUnavailable);
94
+ if (n) {
95
+ let t = n.queries;
96
+ e.push({
97
+ icon: "ri:time-line",
98
+ text: I("messagePart.stepTimedOut", Array.isArray(t) ? t.length : 1)
99
+ });
100
+ }
101
+ return e;
102
+ }), ie = a(() => K(U.value?.results)?.map(({ record: e, relevance: t }, n) => ({
103
+ key: R(e, "revisedAnswerId") ?? `revised-${n}`,
92
104
  icon: "ri:file-edit-line",
93
- title: z(e, "userQuestion") ?? L("messagePart.revisedAnswers"),
105
+ title: R(e, "userQuestion") ?? I("messagePart.revisedAnswers"),
94
106
  relevance: t,
95
- body: z(e, "revisedMessage")
96
- }))), X = (e) => q(e)?.map(({ record: e, relevance: t }, n) => {
97
- let r = z(e, "content") ?? "";
107
+ body: R(e, "revisedMessage")
108
+ }))), X = (e) => K(e)?.map(({ record: e, relevance: t }, n) => {
109
+ let r = R(e, "content") ?? "";
98
110
  return {
99
- key: z(e, "id") ?? `memory-${n}`,
111
+ key: R(e, "id") ?? `memory-${n}`,
100
112
  icon: "ri:brain-line",
101
113
  title: r,
102
- meta: z(e, "updatedAt")?.slice(0, 10),
114
+ meta: R(e, "updatedAt")?.slice(0, 10),
103
115
  relevance: t,
104
116
  body: r.length > 120 ? r : void 0
105
117
  };
106
118
  }), Z = (e) => ({
107
- chips: G.value,
119
+ chips: W.value,
108
120
  hits: e,
109
121
  showEmpty: e !== void 0 && !e.length
110
122
  }), ae = () => {
111
- let t = I.part.type;
112
- if (t === "tool-searchInKnowledgeBase") {
113
- let e = Z(J.value);
114
- return Y.value && (e.fact = {
123
+ let e = F.part.type;
124
+ if (e === "tool-searchInKnowledgeBase") {
125
+ let e = Z(q.value);
126
+ return J.value && (e.facts = [{
115
127
  icon: "ri:history-line",
116
- text: L("messagePart.stepRepeated", Y.value)
117
- }, e.showEmpty = !1), e;
128
+ text: I("messagePart.stepRepeated", J.value)
129
+ }], e.showEmpty = !1), e;
118
130
  }
119
- if (t === "tool-retrieveRevisedAnswers") return Z(ie.value);
120
- if (t === "tool-expandChunkContext") {
121
- let e = z(W.value, "content");
131
+ if (e === "tool-retrieveRevisedAnswers") return Z(ie.value);
132
+ if (e === "tool-expandChunkContext") {
133
+ let e = R(U.value, "content");
122
134
  if (!e) return {};
123
- let t = W.value?.totalChunksReturned;
135
+ let t = U.value?.totalChunksReturned;
124
136
  return { passage: {
125
- title: z(W.value, "documentName"),
126
- meta: typeof t == "number" ? L("messagePart.stepExcerpts", t) : void 0,
137
+ title: R(U.value, "documentName"),
138
+ meta: typeof t == "number" ? I("messagePart.stepExcerpts", t) : void 0,
127
139
  content: e
128
140
  } };
129
141
  }
130
- if (t === "tool-readDocumentFile") {
131
- let e = z(W.value, "name");
142
+ if (e === "tool-readDocumentFile") {
143
+ let e = R(U.value, "name");
132
144
  if (!e) return {};
133
- let t = z(W.value, "mimeType");
134
- return { fact: {
145
+ let t = R(U.value, "mimeType");
146
+ return { facts: [{
135
147
  icon: "ri:file-text-line",
136
148
  text: t ? `${e} (${t})` : e
137
- } };
149
+ }] };
138
150
  }
139
- if (t === "tool-getWeather") {
140
- let e = z(W.value, "location") ?? z(U.value, "locationName") ?? B(U.value);
151
+ if (e === "tool-getWeather") {
152
+ let e = R(U.value, "location") ?? R(H.value, "locationName") ?? z(H.value);
141
153
  if (!e) return {};
142
- let t = z(U.value, "startDate"), n = z(U.value, "endDate");
143
- return { fact: {
154
+ let t = R(H.value, "startDate"), n = R(H.value, "endDate");
155
+ return { facts: [{
144
156
  icon: "ri:sun-cloudy-line",
145
157
  text: `${e}${t ? n && n !== t ? ` · ${t} → ${n}` : ` · ${t}` : ""}`
146
- } };
158
+ }] };
147
159
  }
148
- if (t === "tool-geocode") {
149
- let e = z(U.value, "locationName") ?? B(U.value), t = z(W.value, "name", "displayName", "locationName", "label") ?? B(W.value), n = e && t && e !== t ? `${e} → ${t}` : e ?? t;
150
- return n ? { fact: {
160
+ if (e === "tool-geocode") {
161
+ let e = R(H.value, "locationName") ?? z(H.value), t = R(U.value, "name", "displayName", "locationName", "label") ?? z(U.value), n = e && t && e !== t ? `${e} → ${t}` : e ?? t;
162
+ return n ? { facts: [{
151
163
  icon: "ri:map-pin-line",
152
164
  text: n
153
- } } : {};
165
+ }] } : {};
154
166
  }
155
- if (t === "tool-recallUserMemory") return Z(X(W.value?.memories));
156
- if (t === "tool-saveUserMemory") {
157
- let e = X(W.value?.candidates);
167
+ if (e === "tool-recallUserMemory") return Z(X(U.value?.memories));
168
+ if (e === "tool-saveUserMemory") {
169
+ let e = X(U.value?.candidates);
158
170
  if (e) return Z(e);
159
- let t = z(U.value, "content") ?? z(W.value, "message", "error");
160
- return t ? { fact: {
161
- icon: z(U.value, "action") === "delete" ? "ri:delete-bin-line" : "ri:save-3-line",
171
+ let t = R(H.value, "content") ?? R(U.value, "message", "error");
172
+ return t ? { facts: [{
173
+ icon: R(H.value, "action") === "delete" ? "ri:delete-bin-line" : "ri:save-3-line",
162
174
  text: t
163
- } } : {};
175
+ }] } : {};
164
176
  }
165
- return e.includes(t) ? {
166
- chips: G.value,
167
- rawOutput: H.value
177
+ return t.includes(e) ? {
178
+ chips: W.value,
179
+ rawOutput: V.value
168
180
  } : {};
169
181
  }, Q = a(() => {
170
182
  let e = ae();
171
- return e.chips?.length || e.fact || e.passage || e.showEmpty || e.hits?.length || (e.rawInput = V.value, e.rawOutput ??= H.value), e;
183
+ return Y.value.length && (e.facts = [...Y.value, ...e.facts ?? []]), U.value?.searchUnavailable && (e.showEmpty = !1), e.chips?.length || e.facts?.length || e.passage || e.showEmpty || e.hits?.length || (e.rawInput = B.value, e.rawOutput ??= V.value), e;
172
184
  }), $ = m(/* @__PURE__ */ new Set()), oe = (e) => {
173
185
  $.has(e) ? $.delete(e) : $.add(e);
174
186
  };
175
- return (e, a) => {
187
+ return (t, a) => {
176
188
  let d = r;
177
189
  return p(), c("div", S, [
178
190
  Q.value.chips?.length ? (p(), c("ul", C, [(p(!0), c(i, null, h(Q.value.chips, (e, t) => (p(), c("li", {
@@ -181,12 +193,15 @@ var S = { class: "pk-chatbot-step-detail" }, C = {
181
193
  }, [u(d, {
182
194
  name: "ri:search-line",
183
195
  class: "shrink-0"
184
- }), l("span", ee, _(e), 1)]))), 128))])) : s("", !0),
185
- Q.value.fact ? (p(), c("div", te, [u(d, {
186
- name: Q.value.fact.icon,
196
+ }), l("span", w, _(e), 1)]))), 128))])) : s("", !0),
197
+ (p(!0), c(i, null, h(Q.value.facts, (e, t) => (p(), c("div", {
198
+ key: `${t}-${e.text}`,
199
+ class: "pk-chatbot-step-detail__fact"
200
+ }, [u(d, {
201
+ name: e.icon,
187
202
  class: "shrink-0"
188
- }, null, 8, ["name"]), l("span", null, _(Q.value.fact.text), 1)])) : s("", !0),
189
- Q.value.showEmpty ? (p(), c("div", ne, _(v(L)("messagePart.stepNoResults")), 1)) : Q.value.hits?.length ? (p(), c("ul", w, [(p(!0), c(i, null, h(Q.value.hits, (e) => (p(), c("li", { key: e.key }, [(p(), o(g(e.body ? "button" : "div"), {
203
+ }, null, 8, ["name"]), l("span", null, _(e.text), 1)]))), 128)),
204
+ Q.value.showEmpty ? (p(), c("div", T, _(v(I)("messagePart.stepNoResults")), 1)) : Q.value.hits?.length ? (p(), c("ul", ee, [(p(!0), c(i, null, h(Q.value.hits, (e) => (p(), c("li", { key: e.key }, [(p(), o(g(e.body ? "button" : "div"), {
190
205
  type: e.body ? "button" : void 0,
191
206
  class: "pk-chatbot-step-detail__hit-header",
192
207
  "aria-expanded": e.body ? $.has(e.key) : void 0,
@@ -197,16 +212,16 @@ var S = { class: "pk-chatbot-step-detail" }, C = {
197
212
  name: e.icon,
198
213
  class: "pk-chatbot-step-detail__hit-icon"
199
214
  }, null, 8, ["name"]),
200
- l("span", T, [l("span", E, _(e.title), 1), e.url ? (p(), c("a", {
215
+ l("span", te, [l("span", ne, _(e.title), 1), e.url ? (p(), c("a", {
201
216
  key: 0,
202
217
  href: e.url,
203
218
  target: "_blank",
204
219
  rel: "noopener noreferrer",
205
220
  class: "pk-chatbot-step-detail__link",
206
221
  onClick: a[0] ||= b(() => {}, ["stop"])
207
- }, [u(d, { name: "ri:external-link-line" })], 8, D)) : s("", !0)]),
208
- e.meta ? (p(), c("span", O, _(e.meta), 1)) : s("", !0),
209
- e.relevance === void 0 ? s("", !0) : (p(), c("span", k, [l("span", {
222
+ }, [u(d, { name: "ri:external-link-line" })], 8, E)) : s("", !0)]),
223
+ e.meta ? (p(), c("span", D, _(e.meta), 1)) : s("", !0),
224
+ e.relevance === void 0 ? s("", !0) : (p(), c("span", O, [l("span", {
210
225
  class: "pk-chatbot-step-detail__relevance-fill",
211
226
  style: f({ width: `${Math.round(e.relevance * 100)}%` })
212
227
  }, null, 4)])),
@@ -221,23 +236,23 @@ var S = { class: "pk-chatbot-step-detail" }, C = {
221
236
  "type",
222
237
  "aria-expanded",
223
238
  "onClick"
224
- ])), e.body && $.has(e.key) ? (p(), c("div", A, _(e.body), 1)) : s("", !0)]))), 128))])) : s("", !0),
225
- Q.value.passage ? (p(), c("div", re, [l("div", j, [
239
+ ])), e.body && $.has(e.key) ? (p(), c("div", k, _(e.body), 1)) : s("", !0)]))), 128))])) : s("", !0),
240
+ Q.value.passage ? (p(), c("div", A, [l("div", j, [
226
241
  u(d, {
227
242
  name: "ri:file-text-line",
228
243
  class: "shrink-0"
229
244
  }),
230
- l("span", M, [l("span", N, _(Q.value.passage.title ?? v(L)("messagePart.stepDocument")), 1)]),
231
- Q.value.passage.meta ? (p(), c("span", P, _(Q.value.passage.meta), 1)) : s("", !0)
232
- ]), l("div", F, _(Q.value.passage.content), 1)])) : s("", !0),
233
- v(t)(Q.value.rawInput) ? (p(), o(n, {
234
- key: 5,
235
- label: v(L)("messagePart.stepInput"),
245
+ l("span", re, [l("span", M, _(Q.value.passage.title ?? v(I)("messagePart.stepDocument")), 1)]),
246
+ Q.value.passage.meta ? (p(), c("span", N, _(Q.value.passage.meta), 1)) : s("", !0)
247
+ ]), l("div", P, _(Q.value.passage.content), 1)])) : s("", !0),
248
+ v(e)(Q.value.rawInput) ? (p(), o(n, {
249
+ key: 4,
250
+ label: v(I)("messagePart.stepInput"),
236
251
  value: Q.value.rawInput
237
252
  }, null, 8, ["label", "value"])) : s("", !0),
238
- v(t)(Q.value.rawOutput) ? (p(), o(n, {
239
- key: 6,
240
- label: v(L)("messagePart.stepOutput"),
253
+ v(e)(Q.value.rawOutput) ? (p(), o(n, {
254
+ key: 5,
255
+ label: v(I)("messagePart.stepOutput"),
241
256
  value: Q.value.rawOutput
242
257
  }, null, 8, ["label", "value"])) : s("", !0)
243
258
  ]);
@@ -245,6 +260,6 @@ var S = { class: "pk-chatbot-step-detail" }, C = {
245
260
  }
246
261
  });
247
262
  //#endregion
248
- export { I as t };
263
+ export { F as t };
249
264
 
250
- //# sourceMappingURL=PkChatbotStepToolDetail-B0WU0HcD.js.map
265
+ //# sourceMappingURL=PkChatbotStepToolDetail-CCa95eBO.js.map