@8wave/ai-elements 0.73.0 → 0.74.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/README.md +62 -15
  2. package/dist/_chunks/{PkToolShowArtifact-D-dU41VG.js → PkToolShowArtifact-c_vCWUpQ.js} +2 -2
  3. package/dist/_chunks/{PkToolShowArtifact-D-dU41VG.js.map → PkToolShowArtifact-c_vCWUpQ.js.map} +1 -1
  4. package/dist/_chunks/{PkToolShowCalendarEvent-B33fWbkk.js → PkToolShowCalendarEvent-D2VHu1V3.js} +3 -3
  5. package/dist/_chunks/{PkToolShowCalendarEvent-B33fWbkk.js.map → PkToolShowCalendarEvent-D2VHu1V3.js.map} +1 -1
  6. package/dist/_chunks/{PkToolShowComparison-CcKHsr36.js → PkToolShowComparison-C2ZUH0w4.js} +3 -3
  7. package/dist/_chunks/{PkToolShowComparison-CcKHsr36.js.map → PkToolShowComparison-C2ZUH0w4.js.map} +1 -1
  8. package/dist/_chunks/{PkToolShowContactForm-SmOSbCsp.js → PkToolShowContactForm-6C4uWDtf.js} +3 -3
  9. package/dist/_chunks/{PkToolShowContactForm-SmOSbCsp.js.map → PkToolShowContactForm-6C4uWDtf.js.map} +1 -1
  10. package/dist/_chunks/{PkToolShowEmail-BOivL2p_.js → PkToolShowEmail-BuyCHUU5.js} +3 -3
  11. package/dist/_chunks/{PkToolShowEmail-BOivL2p_.js.map → PkToolShowEmail-BuyCHUU5.js.map} +1 -1
  12. package/dist/_chunks/{PkToolShowImageGallery-Dy0vFEU-.js → PkToolShowImageGallery-ByldZ0nj.js} +2 -2
  13. package/dist/_chunks/{PkToolShowImageGallery-Dy0vFEU-.js.map → PkToolShowImageGallery-ByldZ0nj.js.map} +1 -1
  14. package/dist/_chunks/{PkToolShowLocation-US6u26ra.js → PkToolShowLocation-BCFnC5c7.js} +3 -3
  15. package/dist/_chunks/{PkToolShowLocation-US6u26ra.js.map → PkToolShowLocation-BCFnC5c7.js.map} +1 -1
  16. package/dist/_chunks/{PkToolShowMessage-Cjslxq94.js → PkToolShowMessage-6Bsfi3BC.js} +3 -3
  17. package/dist/_chunks/{PkToolShowMessage-Cjslxq94.js.map → PkToolShowMessage-6Bsfi3BC.js.map} +1 -1
  18. package/dist/_chunks/{PkToolShowMultipleChoice-BEwiJCLu.js → PkToolShowMultipleChoice-BLNTD2lK.js} +3 -3
  19. package/dist/_chunks/{PkToolShowMultipleChoice-BEwiJCLu.js.map → PkToolShowMultipleChoice-BLNTD2lK.js.map} +1 -1
  20. package/dist/_chunks/{PkToolShowProductList-D3Qe8yQM.js → PkToolShowProductList-B4S5_m-f.js} +2 -2
  21. package/dist/_chunks/{PkToolShowProductList-D3Qe8yQM.js.map → PkToolShowProductList-B4S5_m-f.js.map} +1 -1
  22. package/dist/_chunks/{PkToolShowQrCode-B64sdI0N.js → PkToolShowQrCode-BVZlzYDq.js} +3 -3
  23. package/dist/_chunks/{PkToolShowQrCode-B64sdI0N.js.map → PkToolShowQrCode-BVZlzYDq.js.map} +1 -1
  24. package/dist/_chunks/{PkToolShowSources-B2rf94fU.js → PkToolShowSources-BQo5DRwt.js} +2 -2
  25. package/dist/_chunks/{PkToolShowSources-B2rf94fU.js.map → PkToolShowSources-BQo5DRwt.js.map} +1 -1
  26. package/dist/_chunks/{PkToolShowSuggestedReply-BGWA08C7.js → PkToolShowSuggestedReply-BxDI6yp_.js} +2 -2
  27. package/dist/_chunks/{PkToolShowSuggestedReply-BGWA08C7.js.map → PkToolShowSuggestedReply-BxDI6yp_.js.map} +1 -1
  28. package/dist/_chunks/{PkToolShowWeather-ClMzD04y.js → PkToolShowWeather-DR6egBIP.js} +3 -3
  29. package/dist/_chunks/{PkToolShowWeather-ClMzD04y.js.map → PkToolShowWeather-DR6egBIP.js.map} +1 -1
  30. package/dist/_chunks/{PkToolShowWebPages-BCqywwEK.js → PkToolShowWebPages-D8RngE-F.js} +2 -2
  31. package/dist/_chunks/{PkToolShowWebPages-BCqywwEK.js.map → PkToolShowWebPages-D8RngE-F.js.map} +1 -1
  32. package/dist/_chunks/{index.es-Z3Hu-QIb.js → index.es-BGFmj59S.js} +2429 -1559
  33. package/dist/_chunks/{index.es-Z3Hu-QIb.js.map → index.es-BGFmj59S.js.map} +1 -1
  34. package/dist/ai-elements.es.js +2908 -2711
  35. package/dist/ai-elements.es.js.map +1 -1
  36. package/dist-vue/PkChatbot.js +1 -1
  37. package/dist-vue/PkChatbotFeedbackForm.js +1 -1
  38. package/dist-vue/PkChatbotFilePreview.js +1 -1
  39. package/dist-vue/PkChatbotInput.js +1 -1
  40. package/dist-vue/PkChatbotMessages.js +1 -1
  41. package/dist-vue/PkChatbotViewChat.js +1 -1
  42. package/dist-vue/PkChatbotViewConversations.js +1 -1
  43. package/dist-vue/PkChatbotViewProfile.js +1 -1
  44. package/dist-vue/_chunks/PkChatbot-woRkjgP5.js +190 -0
  45. package/dist-vue/_chunks/{PkChatbot-D5_ytfqS.js.map → PkChatbot-woRkjgP5.js.map} +1 -1
  46. package/dist-vue/_chunks/{PkChatbotFeedbackForm-CUnS-WyR.js → PkChatbotFeedbackForm-D-lx1URv.js} +2 -2
  47. package/dist-vue/_chunks/{PkChatbotFeedbackForm-CUnS-WyR.js.map → PkChatbotFeedbackForm-D-lx1URv.js.map} +1 -1
  48. package/dist-vue/_chunks/{PkChatbotFilePreview-JSpi3pmN.js → PkChatbotFilePreview-DHzuGtz5.js} +2 -2
  49. package/dist-vue/_chunks/{PkChatbotFilePreview-JSpi3pmN.js.map → PkChatbotFilePreview-DHzuGtz5.js.map} +1 -1
  50. package/dist-vue/_chunks/{PkChatbotInput-ODPhsqZt.js → PkChatbotInput-LHE0HZ9z.js} +3 -3
  51. package/dist-vue/_chunks/{PkChatbotInput-ODPhsqZt.js.map → PkChatbotInput-LHE0HZ9z.js.map} +1 -1
  52. package/dist-vue/_chunks/{PkChatbotMessages-CMLqkhmb.js → PkChatbotMessages-BxTeEm3j.js} +15 -15
  53. package/dist-vue/_chunks/{PkChatbotMessages-CMLqkhmb.js.map → PkChatbotMessages-BxTeEm3j.js.map} +1 -1
  54. package/dist-vue/_chunks/{PkChatbotViewChat-wLCypxNG.js → PkChatbotViewChat-BoEfZeco.js} +9 -9
  55. package/dist-vue/_chunks/{PkChatbotViewChat-wLCypxNG.js.map → PkChatbotViewChat-BoEfZeco.js.map} +1 -1
  56. package/dist-vue/_chunks/PkChatbotViewConversations-DvVc1arX.js +163 -0
  57. package/dist-vue/_chunks/PkChatbotViewConversations-DvVc1arX.js.map +1 -0
  58. package/dist-vue/_chunks/{PkChatbotViewProfile-CXmmVXrD.js → PkChatbotViewProfile-Dev_6pki.js} +2 -2
  59. package/dist-vue/_chunks/{PkChatbotViewProfile-CXmmVXrD.js.map → PkChatbotViewProfile-Dev_6pki.js.map} +1 -1
  60. package/dist-vue/_chunks/{PkRelativeTime-jP41qAJ5.js → PkRelativeTime-WZ2aPcp_.js} +1 -1
  61. package/dist-vue/_chunks/{PkRelativeTime-jP41qAJ5.js.map → PkRelativeTime-WZ2aPcp_.js.map} +1 -1
  62. package/dist-vue/_chunks/{PkStreamingMarkdown-CtiMH6FD.js → PkStreamingMarkdown-B4gnJ4hk.js} +1 -1
  63. package/dist-vue/_chunks/{PkStreamingMarkdown-CtiMH6FD.js.map → PkStreamingMarkdown-B4gnJ4hk.js.map} +1 -1
  64. package/dist-vue/_chunks/{PkToolShowArtifact-C2DgB_1z.js → PkToolShowArtifact-EvbUZSOf.js} +2 -2
  65. package/dist-vue/_chunks/{PkToolShowArtifact-C2DgB_1z.js.map → PkToolShowArtifact-EvbUZSOf.js.map} +1 -1
  66. package/dist-vue/_chunks/{PkToolShowContactForm-BzzbXuhh.js → PkToolShowContactForm-CsDOqSJK.js} +3 -3
  67. package/dist-vue/_chunks/{PkToolShowContactForm-BzzbXuhh.js.map → PkToolShowContactForm-CsDOqSJK.js.map} +1 -1
  68. package/dist-vue/_chunks/{PkToolShowImageGallery-DQXrJYop.js → PkToolShowImageGallery-B7Bt6ZGv.js} +2 -2
  69. package/dist-vue/_chunks/{PkToolShowImageGallery-DQXrJYop.js.map → PkToolShowImageGallery-B7Bt6ZGv.js.map} +1 -1
  70. package/dist-vue/_chunks/{PkToolShowLocation-McDIqI8y.js → PkToolShowLocation-DteWf0Cs.js} +1 -1
  71. package/dist-vue/_chunks/{PkToolShowLocation-McDIqI8y.js.map → PkToolShowLocation-DteWf0Cs.js.map} +1 -1
  72. package/dist-vue/_chunks/{PkToolShowMultipleChoice-DW3m6VbJ.js → PkToolShowMultipleChoice-DZXfWtQp.js} +1 -1
  73. package/dist-vue/_chunks/{PkToolShowMultipleChoice-DW3m6VbJ.js.map → PkToolShowMultipleChoice-DZXfWtQp.js.map} +1 -1
  74. package/dist-vue/_chunks/{PkToolShowProductList-BDSJs7bn.js → PkToolShowProductList-CtqWK0x4.js} +2 -2
  75. package/dist-vue/_chunks/{PkToolShowProductList-BDSJs7bn.js.map → PkToolShowProductList-CtqWK0x4.js.map} +1 -1
  76. package/dist-vue/_chunks/{PkToolShowSources-D5cBZxwQ.js → PkToolShowSources-ZtXFkIHt.js} +3 -3
  77. package/dist-vue/_chunks/{PkToolShowSources-D5cBZxwQ.js.map → PkToolShowSources-ZtXFkIHt.js.map} +1 -1
  78. package/dist-vue/_chunks/{PkToolShowSuggestedReply-Dm3BTWYg.js → PkToolShowSuggestedReply-30m9yWDL.js} +1 -1
  79. package/dist-vue/_chunks/{PkToolShowSuggestedReply-Dm3BTWYg.js.map → PkToolShowSuggestedReply-30m9yWDL.js.map} +1 -1
  80. package/dist-vue/_chunks/{PkToolShowWebPages-DnYVhLVU.js → PkToolShowWebPages-DZIdrdWs.js} +2 -2
  81. package/dist-vue/_chunks/{PkToolShowWebPages-DnYVhLVU.js.map → PkToolShowWebPages-DZIdrdWs.js.map} +1 -1
  82. package/dist-vue/_chunks/{PkUrl-CH4pWBR8.js → PkUrl-CGbSBfuP.js} +1 -1
  83. package/dist-vue/_chunks/{PkUrl-CH4pWBR8.js.map → PkUrl-CGbSBfuP.js.map} +1 -1
  84. package/dist-vue/_chunks/{createChatbotApiClient-2ynLWELM.js → createChatbotApiClient-YJegM3ni.js} +140 -118
  85. package/dist-vue/_chunks/createChatbotApiClient-YJegM3ni.js.map +1 -0
  86. package/dist-vue/_chunks/{dist-Bs6dYy7x.js → dist-21vPGg1O.js} +3 -3
  87. package/dist-vue/_chunks/{dist-Bs6dYy7x.js.map → dist-21vPGg1O.js.map} +1 -1
  88. package/dist-vue/_chunks/{dist-Bb1zRSg4.js → dist-BGXTbYew2.js} +4 -4
  89. package/dist-vue/_chunks/dist-BGXTbYew2.js.map +1 -0
  90. package/dist-vue/_chunks/{dist-BrlD3co0.js → dist-BL9cumqH.js} +2 -2
  91. package/dist-vue/_chunks/{dist-BrlD3co0.js.map → dist-BL9cumqH.js.map} +1 -1
  92. package/dist-vue/_chunks/{dist-B9Pw4_a5.js → dist-BU-VgsYM.js} +3 -3
  93. package/dist-vue/_chunks/{dist-B9Pw4_a5.js.map → dist-BU-VgsYM.js.map} +1 -1
  94. package/dist-vue/_chunks/{dist-D-tjAaHK.js → dist-BU5m1pTR.js} +3 -3
  95. package/dist-vue/_chunks/{dist-D-tjAaHK.js.map → dist-BU5m1pTR.js.map} +1 -1
  96. package/dist-vue/_chunks/{dist-Dn0cKZ5Q.js → dist-BbP2I_Or.js} +2 -2
  97. package/dist-vue/_chunks/{dist-Dn0cKZ5Q.js.map → dist-BbP2I_Or.js.map} +1 -1
  98. package/dist-vue/_chunks/{dist-Cvsv0YEw.js → dist-BvmTki6w.js} +3 -3
  99. package/dist-vue/_chunks/{dist-Cvsv0YEw.js.map → dist-BvmTki6w.js.map} +1 -1
  100. package/dist-vue/_chunks/{dist-QzbLuLIV.js → dist-C3dPzENq.js} +3 -3
  101. package/dist-vue/_chunks/{dist-QzbLuLIV.js.map → dist-C3dPzENq.js.map} +1 -1
  102. package/dist-vue/_chunks/{dist-BMWOJZqC.js → dist-C6AWJq9a.js} +2 -2
  103. package/dist-vue/_chunks/{dist-BMWOJZqC.js.map → dist-C6AWJq9a.js.map} +1 -1
  104. package/dist-vue/_chunks/{dist-BQCdUoYc.js → dist-CGNGkvWf.js} +4 -4
  105. package/dist-vue/_chunks/{dist-BQCdUoYc.js.map → dist-CGNGkvWf.js.map} +1 -1
  106. package/dist-vue/_chunks/{dist-JOgG1zY3.js → dist-CIN_Avbm.js} +1 -1
  107. package/dist-vue/_chunks/{dist-JOgG1zY3.js.map → dist-CIN_Avbm.js.map} +1 -1
  108. package/dist-vue/_chunks/{dist-NKG-Bt-Q.js → dist-CePpgudw.js} +3 -3
  109. package/dist-vue/_chunks/{dist-NKG-Bt-Q.js.map → dist-CePpgudw.js.map} +1 -1
  110. package/dist-vue/_chunks/{dist-C13mHkC-.js → dist-CtMo7ig_.js} +2 -2
  111. package/dist-vue/_chunks/{dist-C13mHkC-.js.map → dist-CtMo7ig_.js.map} +1 -1
  112. package/dist-vue/_chunks/{dist-DucfoJQX.js → dist-CwG072cD.js} +3 -3
  113. package/dist-vue/_chunks/{dist-DucfoJQX.js.map → dist-CwG072cD.js.map} +1 -1
  114. package/dist-vue/_chunks/{dist-_4yQQX_L.js → dist-DFvVVU0-.js} +2 -2
  115. package/dist-vue/_chunks/{dist-_4yQQX_L.js.map → dist-DFvVVU0-.js.map} +1 -1
  116. package/dist-vue/_chunks/{dist-C_tRbeXQ.js → dist-DGz57kzK.js} +2 -2
  117. package/dist-vue/_chunks/{dist-C_tRbeXQ.js.map → dist-DGz57kzK.js.map} +1 -1
  118. package/dist-vue/_chunks/{dist-C2tC3pDh.js → dist-DT30Xa-D.js} +2 -2
  119. package/dist-vue/_chunks/{dist-C2tC3pDh.js.map → dist-DT30Xa-D.js.map} +1 -1
  120. package/dist-vue/_chunks/{dist-DNn7FqmI.js → dist-DoRhRpjL.js} +2 -2
  121. package/dist-vue/_chunks/{dist-DNn7FqmI.js.map → dist-DoRhRpjL.js.map} +1 -1
  122. package/dist-vue/_chunks/{dist-CQmgfFIN.js → dist-GnhLE5-A.js} +4 -4
  123. package/dist-vue/_chunks/{dist-CQmgfFIN.js.map → dist-GnhLE5-A.js.map} +1 -1
  124. package/dist-vue/_chunks/{dist-1ToEz3Zq.js → dist-QzWOn2Kx.js} +3 -3
  125. package/dist-vue/_chunks/{dist-1ToEz3Zq.js.map → dist-QzWOn2Kx.js.map} +1 -1
  126. package/dist-vue/_chunks/{dist-e9UFeG14.js → dist-uYEYs0EJ.js} +2 -2
  127. package/dist-vue/_chunks/{dist-e9UFeG14.js.map → dist-uYEYs0EJ.js.map} +1 -1
  128. package/dist-vue/_chunks/{dist-BpT8aqtS.js → dist-ukeBjdwq.js} +4 -4
  129. package/dist-vue/_chunks/{dist-BpT8aqtS.js.map → dist-ukeBjdwq.js.map} +1 -1
  130. package/dist-vue/_chunks/{dist-BHTSdHeX.js → dist-wLB8N32T.js} +3 -3
  131. package/dist-vue/_chunks/{dist-BHTSdHeX.js.map → dist-wLB8N32T.js.map} +1 -1
  132. package/dist-vue/_chunks/{index.es-BnOT0fHY.js → index.es-CrPSzhoZ.js} +1 -1
  133. package/dist-vue/_chunks/{index.es-BnOT0fHY.js.map → index.es-CrPSzhoZ.js.map} +1 -1
  134. package/dist-vue/_chunks/{useChatbotStore-Im8Xjwte.js → useChatbotStore-DGL81KJa.js} +720 -704
  135. package/dist-vue/_chunks/{useChatbotStore-Im8Xjwte.js.map → useChatbotStore-DGL81KJa.js.map} +1 -1
  136. package/dist-vue/_chunks/{useLightbox-BiZUwsmB.js → useLightbox-1sB7fmFb.js} +1 -1
  137. package/dist-vue/_chunks/{useLightbox-BiZUwsmB.js.map → useLightbox-1sB7fmFb.js.map} +1 -1
  138. package/dist-vue/_chunks/{utils-DO7emdsn.js → utils-BegUBK7s.js} +1 -1
  139. package/dist-vue/_chunks/{utils-DO7emdsn.js.map → utils-BegUBK7s.js.map} +1 -1
  140. package/dist-vue/api.js +1 -1
  141. package/dist-vue/apps/web-component/src/composables/useChatbotAgent.d.ts +3 -1
  142. package/dist-vue/composables.js +3 -3
  143. package/dist-vue/index.js +3552 -3512
  144. package/dist-vue/index.js.map +1 -1
  145. package/dist-vue/locales.js +56 -20
  146. package/dist-vue/packages/components/src/PkEditorPrompt.d.ts +2 -0
  147. package/dist-vue/packages/components/src/chat/PkAgentSettingsPanel.d.ts +6 -3
  148. package/dist-vue/packages/components/src/chat/PkEditorChannels.d.ts +16 -0
  149. package/dist-vue/packages/composable/src/chatbot/api/createChatbotApiClient.d.ts +2 -0
  150. package/dist-vue/packages/models/src/schema/Agent.d.ts +10 -0
  151. package/dist-vue/packages/models/src/schema/Chat.d.ts +6 -0
  152. package/dist-vue/packages/models/src/schema/ReasoningChat.d.ts +3 -1
  153. package/dist-vue/packages/models/src/schema/SubAgent.d.ts +3 -1
  154. package/dist-vue/style.css +1 -1
  155. package/package.json +1 -1
  156. package/dist-vue/_chunks/PkChatbot-D5_ytfqS.js +0 -190
  157. package/dist-vue/_chunks/PkChatbotViewConversations-B5qBiqo4.js +0 -40
  158. package/dist-vue/_chunks/PkChatbotViewConversations-B5qBiqo4.js.map +0 -1
  159. package/dist-vue/_chunks/createChatbotApiClient-2ynLWELM.js.map +0 -1
  160. package/dist-vue/_chunks/dist-Bb1zRSg4.js.map +0 -1
@@ -1,40 +0,0 @@
1
- import { m as e, s as t } from "./src-EtGd6cRz.js";
2
- import { t as n } from "./useChatbotStore-Im8Xjwte.js";
3
- import { t as r } from "./PkRelativeTime-jP41qAJ5.js";
4
- import { Fragment as i, createElementBlock as a, createElementVNode as o, createVNode as s, defineComponent as c, normalizeClass as l, openBlock as u, renderList as d, toDisplayString as f, unref as p, withModifiers as m } from "vue";
5
- import { VvButton as h } from "@volverjs/ui-vue/components";
6
- import { useI18n as g } from "vue-i18n";
7
- import { storeToRefs as _ } from "pinia";
8
- //#region ../../packages/components/src/chat/PkChatbotViewConversations.vue?vue&type=script&setup=true&lang.ts
9
- var v = { class: "flex flex-col flex-1 min-h-0 overflow-y-auto p-md gap-sm relative" }, y = {
10
- key: 0,
11
- class: "flex justify-center p-lg text-word-3 text-sm"
12
- }, b = {
13
- key: 1,
14
- class: "flex flex-col min-h-0 gap-8 overflow-auto px-8 pb-8 light-scrollbar pb-64"
15
- }, x = ["onClick"], S = { class: "flex items-center gap-16" }, C = { class: "font-bold truncate block flex-1" }, w = { class: "text-word-4 text-smaller shrink-0" }, T = { class: "text-12 text-word-4 line-clamp-2" }, E = { class: "absolute bottom-0 left-0 right-0 flex justify-center px-16 pb-16 pt-32 bg-gradient-to-t" }, D = /* @__PURE__ */ c({
16
- __name: "PkChatbotViewConversations",
17
- props: { agentId: {} },
18
- setup(c) {
19
- let D = c, { t: O } = g({ useScope: "global" }), k = n(D.agentId), { conversations: A, localChatId: j } = _(k), { navigate: M, startNewChat: N } = k, P = (e) => {
20
- j.value = e, M("chat");
21
- }, F = (e) => j.value === e.id, I = (n, r) => e(t(n.filter((e) => e.role === r).slice(-1)[0]) || "");
22
- return (t, n) => {
23
- let c = h;
24
- return u(), a("div", v, [p(A).length === 0 ? (u(), a("div", y, f(p(O)("message.noConversations")), 1)) : (u(), a("ul", b, [(u(!0), a(i, null, d(p(A), (t) => (u(), a("li", { key: t.id }, [o("button", {
25
- type: "button",
26
- class: l(["rounded-md border p-10 cursor-pointer block w-full transition-colors text-14 leading-relaxed border-b border-surface-3 hover:border-surface-5 hover:bg-surface-1", { "bg-surface-2 border-surface-5": F(t) }]),
27
- onClick: (e) => P(t.id)
28
- }, [o("div", S, [o("strong", C, f(p(e)(t.title) || I(t.messages, "assistant")), 1), o("span", w, [s(r, { date: t.updatedAt }, null, 8, ["date"])])]), o("span", T, f(p(e)(t.summary) || I(t.messages, "user")), 1)], 10, x)]))), 128))])), o("div", E, [s(c, {
29
- class: "text-14",
30
- modifiers: "rounded",
31
- label: p(O)("action.startNewChat"),
32
- onClick: n[0] ||= m((e) => p(N)(), ["stop"])
33
- }, null, 8, ["label"])])]);
34
- };
35
- }
36
- });
37
- //#endregion
38
- export { D as t };
39
-
40
- //# sourceMappingURL=PkChatbotViewConversations-B5qBiqo4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PkChatbotViewConversations-B5qBiqo4.js","names":[],"sources":["../../../../packages/components/src/chat/PkChatbotViewConversations.vue","../../../../packages/components/src/chat/PkChatbotViewConversations.vue"],"sourcesContent":["<script setup lang=\"ts\">\n import { storeToRefs } from 'pinia'\n import { useI18n } from 'vue-i18n'\n import type { Chat as Conversation, UIChatMessage } from 'models'\n import { stripMarkdown, getTextPart } from 'utils'\n import { useChatbotStore } from 'composables'\n import PkRelativeTime from '../PkRelativeTime.vue'\n\n const props = defineProps<{ agentId: string }>()\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n const store = useChatbotStore(props.agentId)\n const { conversations, localChatId } = storeToRefs(store)\n const { navigate, startNewChat } = store\n\n const openConversation = (id: string) => {\n localChatId.value = id\n navigate('chat')\n }\n\n const isCurrentConversation = (conversation: Conversation) => {\n return localChatId.value === conversation.id\n }\n\n const getLastMessage = (\n messages: UIChatMessage[],\n role: 'user' | 'assistant',\n ) => {\n return stripMarkdown(\n getTextPart(messages.filter((m) => m.role === role).slice(-1)[0]) ||\n '',\n )\n }\n</script>\n\n<template>\n <div\n class=\"flex flex-col flex-1 min-h-0 overflow-y-auto p-md gap-sm relative\">\n <div\n v-if=\"conversations.length === 0\"\n class=\"flex justify-center p-lg text-word-3 text-sm\">\n {{ $t('message.noConversations') }}\n </div>\n <ul\n v-else\n class=\"flex flex-col min-h-0 gap-8 overflow-auto px-8 pb-8 light-scrollbar pb-64\">\n <li v-for=\"conversation in conversations\" :key=\"conversation.id\">\n <button\n type=\"button\"\n class=\"rounded-md border p-10 cursor-pointer block w-full transition-colors text-14 leading-relaxed border-b border-surface-3 hover:border-surface-5 hover:bg-surface-1\"\n :class=\"{\n 'bg-surface-2 border-surface-5':\n isCurrentConversation(conversation),\n }\"\n @click=\"openConversation(conversation.id)\">\n <div class=\"flex items-center gap-16\">\n <strong class=\"font-bold truncate block flex-1\">\n {{\n stripMarkdown(conversation.title) ||\n getLastMessage(\n conversation.messages,\n 'assistant',\n )\n }}\n </strong>\n <span class=\"text-word-4 text-smaller shrink-0\">\n <PkRelativeTime :date=\"conversation.updatedAt\" />\n </span>\n </div>\n <span class=\"text-12 text-word-4 line-clamp-2\">\n {{\n stripMarkdown(conversation.summary) ||\n getLastMessage(conversation.messages, 'user')\n }}\n </span>\n </button>\n </li>\n </ul>\n <div\n class=\"absolute bottom-0 left-0 right-0 flex justify-center px-16 pb-16 pt-32 bg-gradient-to-t\">\n <VvButton\n class=\"text-14\"\n modifiers=\"rounded\"\n :label=\"$t('action.startNewChat')\"\n @click.stop=\"startNewChat()\" />\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\n import { storeToRefs } from 'pinia'\n import { useI18n } from 'vue-i18n'\n import type { Chat as Conversation, UIChatMessage } from 'models'\n import { stripMarkdown, getTextPart } from 'utils'\n import { useChatbotStore } from 'composables'\n import PkRelativeTime from '../PkRelativeTime.vue'\n\n const props = defineProps<{ agentId: string }>()\n\n const { t: $t } = useI18n({ useScope: 'global' })\n\n const store = useChatbotStore(props.agentId)\n const { conversations, localChatId } = storeToRefs(store)\n const { navigate, startNewChat } = store\n\n const openConversation = (id: string) => {\n localChatId.value = id\n navigate('chat')\n }\n\n const isCurrentConversation = (conversation: Conversation) => {\n return localChatId.value === conversation.id\n }\n\n const getLastMessage = (\n messages: UIChatMessage[],\n role: 'user' | 'assistant',\n ) => {\n return stripMarkdown(\n getTextPart(messages.filter((m) => m.role === role).slice(-1)[0]) ||\n '',\n )\n }\n</script>\n\n<template>\n <div\n class=\"flex flex-col flex-1 min-h-0 overflow-y-auto p-md gap-sm relative\">\n <div\n v-if=\"conversations.length === 0\"\n class=\"flex justify-center p-lg text-word-3 text-sm\">\n {{ $t('message.noConversations') }}\n </div>\n <ul\n v-else\n class=\"flex flex-col min-h-0 gap-8 overflow-auto px-8 pb-8 light-scrollbar pb-64\">\n <li v-for=\"conversation in conversations\" :key=\"conversation.id\">\n <button\n type=\"button\"\n class=\"rounded-md border p-10 cursor-pointer block w-full transition-colors text-14 leading-relaxed border-b border-surface-3 hover:border-surface-5 hover:bg-surface-1\"\n :class=\"{\n 'bg-surface-2 border-surface-5':\n isCurrentConversation(conversation),\n }\"\n @click=\"openConversation(conversation.id)\">\n <div class=\"flex items-center gap-16\">\n <strong class=\"font-bold truncate block flex-1\">\n {{\n stripMarkdown(conversation.title) ||\n getLastMessage(\n conversation.messages,\n 'assistant',\n )\n }}\n </strong>\n <span class=\"text-word-4 text-smaller shrink-0\">\n <PkRelativeTime :date=\"conversation.updatedAt\" />\n </span>\n </div>\n <span class=\"text-12 text-word-4 line-clamp-2\">\n {{\n stripMarkdown(conversation.summary) ||\n getLastMessage(conversation.messages, 'user')\n }}\n </span>\n </button>\n </li>\n </ul>\n <div\n class=\"absolute bottom-0 left-0 right-0 flex justify-center px-16 pb-16 pt-32 bg-gradient-to-t\">\n <VvButton\n class=\"text-14\"\n modifiers=\"rounded\"\n :label=\"$t('action.startNewChat')\"\n @click.stop=\"startNewChat()\" />\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAQI,IAAM,IAAQ,GAER,EAAE,GAAG,MAAO,EAAQ,EAAE,UAAU,UAAU,CAAA,EAE1C,IAAQ,EAAgB,EAAM,QAAO,EACrC,EAAE,kBAAe,mBAAgB,EAAY,EAAK,EAClD,EAAE,aAAU,oBAAiB,GAE7B,KAAoB,MAAe;AAErC,GADA,EAAY,QAAQ,GACpB,EAAS,OAAM;KAGb,KAAyB,MACpB,EAAY,UAAU,EAAa,IAGxC,KACF,GACA,MAEO,EACH,EAAY,EAAS,QAAQ,MAAM,EAAE,SAAS,EAAK,CAAC,MAAM,GAAG,CAAC,GAAG,IAC7D,GACR;;;eAKJ,EAkDM,OAlDN,GAkDM,CA/CQ,EAAA,EAAa,CAAC,WAAM,KAAA,GAAA,EAD9B,EAIM,OAJN,GAIM,EADC,EAAA,EAAE,CAAA,0BAAA,CAAA,EAAA,EAAA,KAAA,GAAA,EAET,EAkCK,MAlCL,GAkCK,EAAA,EAAA,GAAA,EA/BD,EA8BK,GAAA,MAAA,EA9BsB,EAAA,EAAa,GAA7B,YAAX,EA8BK,MAAA,EA9BsC,KAAK,EAAa,IAAA,EAAA,CACzD,EA4BS,UAAA;IA3BL,MAAK;IACL,OAAK,EAAA,CAAC,oKAAkK,EAAA,iCACzE,EAAsB,EAAY,EAAA,CAAA,CAAA;IAIhI,UAAK,MAAE,EAAiB,EAAa,GAAA;OACtC,EAaM,OAbN,GAaM,CAZF,EAQS,UART,GAQS,EAND,EAAA,EAAa,CAAC,EAAa,MAAK,IAAqC,EAAoD,EAAa,UAAA,YAAA,CAAA,EAAA,EAAA,EAO9I,EAEO,QAFP,GAEO,CADH,EAAiD,GAAA,EAAhC,MAAM,EAAa,WAAA,EAAA,MAAA,GAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAG5C,EAKO,QALP,GAKO,EAHC,EAAA,EAAa,CAAC,EAAa,QAAO,IAAiC,EAAe,EAAa,UAAQ,OAAA,CAAA,EAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,cAO3H,EAOM,OAPN,GAOM,CALF,EAImC,GAAA;IAH/B,OAAM;IACN,WAAU;IACT,OAAO,EAAA,EAAE,CAAA,sBAAA;IACT,SAAK,AAAA,EAAA,OAAA,GAAA,MAAO,EAAA,EAAY,EAAA,EAAA,CAAA,OAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createChatbotApiClient-2ynLWELM.js","names":["c","l","u","d","f","s","n","e","t","i","r"],"sources":["../../../../node_modules/.pnpm/@ucast+core@2.0.0/node_modules/@ucast/core/dist/esm/index.mjs","../../../../node_modules/.pnpm/@ucast+mongo@3.0.0/node_modules/@ucast/mongo/dist/esm/index.mjs","../../../../packages/ability/src/types.ts","../../../../packages/models/src/schema/Agent.ts","../../../../packages/ability/src/roles/User.ts","../../../../packages/ability/src/index.ts","../../../../packages/composable/src/chatbot/api/createChatbotApiClient.ts"],"sourcesContent":["var e=class{constructor(e,t){this.operator=e,this.value=t,Object.defineProperty(this,`_notes`,{writable:!0})}get notes(){return this._notes}addNote(e){this._notes=this._notes||[],this._notes.push(e)}},t=class extends e{},n=class extends t{constructor(e,t){if(!Array.isArray(t))throw Error(`\"${e}\" operator expects to receive an array of conditions`);super(e,t)}};const r=`__itself__`;var i=class extends e{constructor(e,t,n){super(e,n),this.field=t}};const a=new t(`__null__`,null),o=Object.hasOwn||((e,t)=>Object.prototype.hasOwnProperty.call(e,t));function s(e,t){return t instanceof n&&t.operator===e}function c(e,t){let r;for(let i=0,a=t.length;i<a;i++){let a=t[i];if(a instanceof n){if(a.operator!==e){r&&r.push(a);continue}if(a.value.length===0)continue;r||(r=t.slice(0,i));let n=a.value;for(let e=0,t=n.length;e<t;e++)r.push(n[e])}else r&&r.push(a)}return r||t}function l(e,t){if(t.length===1)return t[0];if(t.length===0)return new n(e,t);let r=c(e,t);return r.length===1?r[0]:(r.length,new n(e,r))}const u=e=>e,d=()=>Object.create(null),f=Object.defineProperty(d(),`__@type@__`,{value:`ignore value`});function p(e,t,n=!1){if(!e||e&&e.constructor!==Object)return!1;for(let r in e)if(o(e,r)&&o(t,r)&&(!n||e[r]!==f))return!0;return!1}function m(e){let t=[];for(let n in e)o(e,n)&&e[n]!==f&&t.push(n);return t}function h(e,t){t!==a&&e.push(t)}const g=e=>l(`and`,e),_=e=>l(`or`,e);function v(e,t){let n=e[t];if(typeof n!=`function`)throw Error(`Unable to interpret \"${String(t)}\" condition. Did you forget to register interpreter for it?`);return n}function y(e){return e.operator}function b(e,t){let n=t,r=n&&n.getInterpreterName||y,i;switch(n?n.numberOfArguments:0){case 1:i=(t=>v(e,r(t,n))(t,a));break;case 3:i=((t,i,o)=>v(e,r(t,n))(t,i,o,a));break;default:i=((t,i)=>v(e,r(t,n))(t,i,a));break}let a={...n,interpret:i};return a.interpret}const x={compound(e,t,r){let i=(Array.isArray(t)?t:[t]).map(e=>r.parse(e));return new n(e.name,i)},field(e,t,n){return new i(e.name,n.field,t)},document(e,n){return new t(e.name,n)}};var S=class{constructor(e,t=d()){this.parse=this.parse.bind(this),this._options={operatorToConditionName:t.operatorToConditionName||u,defaultOperatorName:t.defaultOperatorName||`eq`,mergeFinalConditions:t.mergeFinalConditions||g},this._instructions=Object.keys(e).reduce((t,n)=>(t[n]={name:this._options.operatorToConditionName(n),...e[n]},t),{}),this._fieldInstructionContext={...t.fieldContext,field:``,query:{},parse:this.parse,hasOperators:e=>p(e,this._instructions,t.useIgnoreValue)},this._documentInstructionContext={...t.documentContext,parse:this.parse,query:{}},this._objectKeys=t.useIgnoreValue?m:Object.keys}setParse(e){this.parse=e,this._fieldInstructionContext.parse=e,this._documentInstructionContext.parse=e}parseField(e,t,n,r){let i=this._instructions[t];if(!i)throw Error(`Unsupported operator \"${t}\"`);if(i.type!==`field`)throw Error(`Unexpected ${i.type} operator \"${t}\" at field level`);return this._fieldInstructionContext.field=e,this._fieldInstructionContext.query=r,this.parseInstruction(i,n,this._fieldInstructionContext)}parseInstruction(e,t,n){return typeof e.validate==`function`&&e.validate(e,t),(e.parse||x[e.type])(e,t,n)}parseFieldOperators(e,t){let n=[],r=this._objectKeys(t);for(let i=0,a=r.length;i<a;i++){let a=r[i];if(!this._instructions[a])throw Error(`Field query for \"${e}\" may contain only operators or a plain object as a value`);h(n,this.parseField(e,a,t[a],t))}return n}parse(e){let t=[],n=this._objectKeys(e);this._documentInstructionContext.query=e;for(let r=0,i=n.length;r<i;r++){let i=n[r],a=e[i],o=this._instructions[i];if(o){if(o.type!==`document`&&o.type!==`compound`)throw Error(`Cannot use parsing instruction for operator \"${i}\" in \"document\" context as it is supposed to be used in \"${o.type}\" context`);h(t,this.parseInstruction(o,a,this._documentInstructionContext))}else this._fieldInstructionContext.hasOperators(a)?t.push(...this.parseFieldOperators(i,a)):h(t,this.parseField(i,this._options.defaultOperatorName,a,e))}return this._options.mergeFinalConditions(t)}};function C(e,t){return(n,...r)=>{let i=e(n,...r),a=t.bind(null,i);return Object.defineProperty(a,`ast`,{value:i}),a}}export{n as CompoundCondition,e as Condition,t as DocumentCondition,i as FieldCondition,r as ITSELF,a as NULL_CONDITION,S as ObjectQueryParser,g as buildAnd,_ as buildOr,b as createInterpreter,C as createTranslatorFactory,x as defaultInstructionParsers,p as hasOperators,u as identity,f as ignoreValue,s as isCompound,d as object,l as optimizedCompoundCondition};\n//# sourceMappingURL=index.mjs.map","import{CompoundCondition as e,FieldCondition as t,ITSELF as n,NULL_CONDITION as r,ObjectQueryParser as i,buildAnd as a,defaultInstructionParsers as o,optimizedCompoundCondition as s}from\"@ucast/core\";var c=Object.defineProperty,l=((e,t)=>{let n={};for(var r in e)c(n,r,{get:e[r],enumerable:!0});return t||c(n,Symbol.toStringTag,{value:`Module`}),n})({$all:()=>y,$and:()=>u,$elemMatch:()=>h,$eq:()=>E,$exists:()=>x,$gt:()=>C,$gte:()=>S,$in:()=>_,$lt:()=>w,$lte:()=>T,$mod:()=>b,$ne:()=>D,$nin:()=>v,$nor:()=>f,$not:()=>m,$options:()=>k,$or:()=>d,$regex:()=>O,$size:()=>g,$where:()=>A});const u={type:`compound`,validate:M,parse(e,t,n){let r=p(e,t,n);return s(e.name,r)}},d=u,f={type:`compound`,validate:M,parse(t,n,r){let i=p(t,n,r);return new e(t.name,i)}};function p(e,t,n){let r=Array(t.length);for(let i=0;i<t.length;i++){let a=t[i];F(e,a,i),r[i]=n.parse(a)}return r}const m={type:`field`,validate(e,t){if(!(t&&(t instanceof RegExp||t.constructor===Object)))throw Error(`\"${e.name}\" expects to receive either regular expression or object of field operators`)},parse(n,r,i){let a=r instanceof RegExp?new t(`regex`,i.field,r):i.parse(r,i);return new e(n.name,[a])}},h={type:`field`,validate(e,t){if(!t||t.constructor!==Object)throw Error(`\"${e.name}\" expects to receive an object with nested query or field level operators`)},parse(e,r,{parse:i,field:a,hasOperators:o}){let s=o(r)?i(r,{field:n}):i(r);return new t(e.name,a,s)}},g={type:`field`,validate:P(`number`)},_={type:`field`,validate:j},v=_,y=_,b={type:`field`,validate(e,t){if(!Array.isArray(t)||t.length!==2)throw Error(`\"${e.name}\" expects an array with 2 numeric elements`)}},x={type:`field`,validate:P(`boolean`)},S={type:`field`,validate:N},C=S,w=C,T=C,E={type:`field`},D=E,O={type:`field`,validate(e,t){if(!(t instanceof RegExp)&&typeof t!=`string`)throw Error(`\"${e.name}\" expects value to be a regular expression or a string that represents regular expression`)},parse(e,n,r){let i=typeof n==`string`?new RegExp(n,r.query.$options||``):n;return new t(e.name,r.field,i)}},k={type:`field`,parse:()=>r},A={type:`document`,validate:P(`function`)};function j(e,t){if(!Array.isArray(t))throw Error(`\"${e.name}\" expects value to be an array`)}function M(e,t){if(j(e,t),!t.length)throw Error(`\"${e.name}\" expects to have at least one element in array`)}function N(e,t){if(!(typeof t==`string`||typeof t==`number`||t instanceof Date))throw Error(`\"${e.name}\" expects value to be comparable (i.e., string, number or date)`)}function P(e){return(t,n)=>{if(typeof n!==e)throw Error(`\"${t.name}\" expects value to be a \"${e}\"`)}}function F(e,t,n){let r=t;if(!r||r.constructor!==Object)throw Error(`\"${e.name}\" expects item at index ${n} to be an object`)}var I=class extends i{constructor(e){super(e,{defaultOperatorName:`$eq`,operatorToConditionName:e=>e.slice(1)})}parse(e,t){return t&&t.field?a(this.parseFieldOperators(t.field,e)):super.parse(e)}};const L=l;export{y as $all,u as $and,h as $elemMatch,E as $eq,x as $exists,C as $gt,S as $gte,_ as $in,w as $lt,T as $lte,b as $mod,D as $ne,v as $nin,f as $nor,m as $not,k as $options,d as $or,O as $regex,g as $size,A as $where,I as MongoQueryParser,L as allParsingInstructions,o as defaultParsers};\n//# sourceMappingURL=index.mjs.map","import type { MongoQuery } from '@ucast/mongo2js'\nimport type { Session } from 'auth'\n\nexport enum Audience {\n Backoffice = 'backoffice',\n Frontoffice = 'frontoffice',\n System = 'system',\n Public = 'public',\n}\n\nexport enum Subject {\n All = 'all',\n Todo = 'todo',\n User = 'user',\n Chat = 'chat',\n Agent = 'agent',\n SubAgent = 'subAgent',\n Document = 'document',\n AgentDocument = 'agent_document',\n AgentAnalytic = 'agent_analytic',\n McpServer = 'mcp_server',\n Media = 'media',\n RevisedAnswer = 'revised_answer',\n Organization = 'organization',\n Member = 'member',\n Lead = 'lead',\n MessageFeedback = 'message_feedback',\n Backoffice = 'backoffice',\n Frontoffice = 'frontoffice',\n System = 'system',\n Invitation = 'invitation',\n Crawler = 'crawler',\n ReasoningChat = 'reasoning_chat',\n TimeTrackerChat = 'time_tracker_chat',\n OrganizationExternalAuth = 'organization_external_auth',\n AgentEndpoint = 'agent_endpoint',\n AgentEndpointLog = 'agent_endpoint_log',\n AgentApiTool = 'agent_api_tool',\n}\n\n// action\nexport type Action =\n | 'create'\n | 'read'\n | 'update'\n | 'delete'\n | 'manage'\n | 'impersonate'\n | 'invite'\n | 'access'\n | 'clone'\n | 'ban'\n | 'unban'\n | 'change-role'\n | 'resend'\n | 'cancel'\n | 'execute'\n | 'refill'\n\nexport type Capability = {\n action: Action\n subject: Subject\n fields?: string[]\n condition?: MongoQuery\n inverted?: boolean\n}\n\nexport type CapabilitiesFactory = (\n currentSession?: Session | null,\n) => Capability[]\n","import * as z from 'zod'\nimport { zodQs } from '../utils'\nimport { LanguageModel } from './constants'\nimport { MediaSchema, MIME_TYPE_REGEX } from './Media'\n\nexport enum AgentStatus {\n Draft = 'draft',\n Active = 'active',\n Inactive = 'inactive',\n}\n\nexport enum AgentVisibility {\n Public = 'public',\n Private = 'private',\n Organization = 'organization',\n}\n\nexport enum AgentType {\n Chat = 'chat',\n Reasoning = 'reasoning',\n}\n\nexport enum AgentSearchMode {\n Semantic = 'semantic',\n Balanced = 'balanced',\n Keyword = 'keyword',\n}\n\n/**\n * Provider-agnostic reasoning configuration.\n *\n * Maps to provider-specific options:\n * - OpenAI (GPT-5, o-series): `reasoningEffort` + `reasoningSummary`\n * - Anthropic Claude 4.6: adaptive thinking via `thinking: { type: 'adaptive' }`\n * - Google Gemini 3/3.1: `thinkingConfig.thinkingLevel`\n */\nexport const AgentReasoningSchema = z\n .object({\n /**\n * Reasoning effort level:\n * - `off` → disables reasoning (where supported)\n * - `low` → minimal thinking, fast and cheap\n * - `medium` → balanced reasoning (recommended default)\n * - `high` → deep reasoning, slower and more expensive\n */\n effort: z.enum(['off', 'low', 'medium', 'high']).optional(),\n /**\n * OpenAI only: format of the reasoning summary returned in the response.\n */\n reasoningSummary: z.enum(['auto', 'detailed', 'concise']).optional(),\n })\n .optional()\n\nexport type AgentReasoning = z.infer<typeof AgentReasoningSchema>\n\nexport enum AgentBuiltInTool {\n SearchInKnowledgeBase = 'searchInKnowledgeBase',\n ShowSources = 'showSources',\n RetrieveRevisedAnswers = 'retrieveRevisedAnswers',\n ShowMultipleChoice = 'showMultipleChoice',\n ShowArtifact = 'showArtifact',\n ShowEmail = 'showEmail',\n ShowMessage = 'showMessage',\n ShowWebPages = 'showWebPages',\n ShowProductList = 'showProductList',\n ShowContactForm = 'showContactForm',\n ShowCalendarEvent = 'showCalendarEvent',\n ShowComparison = 'showComparison',\n ShowLocation = 'showLocation',\n ShowQrCode = 'showQrCode',\n ShowImageGallery = 'showImageGallery',\n ShowSuggestedReply = 'showSuggestedReply',\n RequestGeolocation = 'requestGeolocation',\n GetWeather = 'getWeather',\n ShowWeather = 'showWeather',\n Geocode = 'geocode',\n ReadDocumentFile = 'readDocumentFile',\n}\n\nexport const AgentToolsSchema = z.object({\n disabled: z.array(z.enum(AgentBuiltInTool)).default([]),\n})\nexport type AgentTools = z.infer<typeof AgentToolsSchema>\n\nexport const DEFAULT_MAX_STEP_COUNT = 10\nexport const DEFAULT_SUB_AGENT_MAX_STEP_COUNT = 6\nexport const DEFAULT_ENDPOINT_MAX_STEP_COUNT = 5\n\nexport const AgentModelSchema = z.object({\n prompt: z.string().optional(),\n temperature: z.number().min(0).max(2).optional().default(0.6),\n maxOutputTokens: z.number().positive().optional(),\n presencePenalty: z.number().min(-2).max(2).optional(),\n frequencyPenalty: z.number().min(-2).max(2).optional(),\n searchMode: z\n .enum(AgentSearchMode)\n .optional()\n .default(AgentSearchMode.Balanced),\n limit: z.number().positive().max(100).optional().default(10),\n maxStepCount: z\n .number()\n .int()\n .min(1)\n .max(20)\n .optional()\n .default(DEFAULT_MAX_STEP_COUNT),\n reasoning: AgentReasoningSchema,\n})\nexport type AgentModel = z.infer<typeof AgentModelSchema>\n\nexport const LocalizedStringSchema = z.preprocess(\n (val) => (typeof val === 'string' ? { it: val } : val),\n z.record(z.string(), z.string()),\n)\nexport type LocalizedString = z.infer<typeof LocalizedStringSchema>\n\nexport const DEFAULT_WIDGET_URL =\n 'https://cdn.jsdelivr.net/npm/@8wave/ai-elements/dist/ai-elements.es.js'\n\nexport enum AgentLoaderStrategy {\n InlineModule = 'inline-module',\n ScriptSrc = 'script-src',\n DynamicImport = 'dynamic-import',\n}\n\nexport const AgentInterfaceSchema = z.object({\n media: MediaSchema.optional(),\n logo: z.string().optional(),\n theme: z.enum(['light', 'dark', 'auto']).optional().default('auto'),\n mainColor: z\n .string()\n .regex(/^#[0-9A-Fa-f]{6}$/)\n .optional()\n .default('#000000'),\n textColor: z.enum(['auto', 'white', 'black']).optional().default('auto'),\n useColorsForAgentHeader: z.boolean().optional().default(false),\n initialMessage: LocalizedStringSchema.optional(),\n messagePlaceholder: LocalizedStringSchema.optional(),\n dismissableNotice: LocalizedStringSchema.optional(),\n footerMessage: LocalizedStringSchema.optional(),\n privacyPolicyNotice: LocalizedStringSchema.optional(),\n welcomePopup: z.boolean().optional().default(false),\n floatingButtonPosition: z\n .enum(['left', 'right'])\n .optional()\n .default('right'),\n maxMessageLength: z.number().int().positive().optional(),\n widgetUrl: z.url().default(DEFAULT_WIDGET_URL),\n loadDelay: z.number().int().min(0).max(30000).optional().default(0),\n loaderStrategy: z\n .enum(AgentLoaderStrategy)\n .optional()\n .default(AgentLoaderStrategy.InlineModule),\n customCss: z.string().optional(),\n})\nexport type AgentInterface = z.infer<typeof AgentInterfaceSchema>\n\nexport const CHAT_FILE_UPLOAD_DEFAULT_MIME_TYPES = [\n 'image/jpeg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n 'application/pdf',\n 'text/plain',\n 'text/markdown',\n 'text/csv',\n] as const\n\nexport type ChatFileUploadMimeType =\n (typeof CHAT_FILE_UPLOAD_DEFAULT_MIME_TYPES)[number]\n\nexport const CHAT_FILE_UPLOAD_MAX_FILE_SIZE_BYTES = 104_857_600 // 100 MB\n\nexport const AgentFileUploadSchema = z.object({\n enabled: z.boolean().default(false),\n maxFileSizeBytes: z\n .number()\n .int()\n .positive()\n .max(CHAT_FILE_UPLOAD_MAX_FILE_SIZE_BYTES)\n .optional()\n .default(20_971_520),\n allowedMimeTypes: z\n .array(z.string().regex(MIME_TYPE_REGEX))\n .optional()\n .default([...CHAT_FILE_UPLOAD_DEFAULT_MIME_TYPES]),\n maxFilesPerMessage: z\n .number()\n .int()\n .positive()\n .max(10)\n .optional()\n .default(5),\n maxFilesPerChat: z.number().int().positive().max(50).optional().default(20),\n})\nexport type AgentFileUpload = z.infer<typeof AgentFileUploadSchema>\n\nexport const AgentGatewayOptionsSchema = z.object({\n zeroDataRetention: z.boolean().default(true),\n disallowPromptTraining: z.boolean().default(true),\n providerTimeoutMs: z.number().int().min(1000).max(789000).optional(),\n})\nexport type AgentGatewayOptions = z.infer<typeof AgentGatewayOptionsSchema>\n\nexport const AgentSettingsSchema = z.object({\n model: AgentModelSchema,\n interface: AgentInterfaceSchema,\n tools: AgentToolsSchema.default({ disabled: [] }),\n fileUpload: AgentFileUploadSchema.optional().default(() =>\n AgentFileUploadSchema.parse({}),\n ),\n gatewayOptions: AgentGatewayOptionsSchema.optional().default(() =>\n AgentGatewayOptionsSchema.parse({}),\n ),\n})\nexport type AgentSettings = z.infer<typeof AgentSettingsSchema>\n\nexport const AgentSecuritySchema = z.object({\n rateLimits: z.object({\n minuteRateLimit: z.number().int().min(0).optional(),\n hourRateLimit: z.number().int().min(0).optional(),\n dayRateLimit: z.number().int().min(0).optional(),\n monthRateLimit: z.number().int().min(0).optional(),\n }),\n trustedOrigins: z\n .object({\n origins: z\n .array(z.url().or(z.literal('')))\n .transform((items) => {\n return items?.filter((item) => item?.trim())\n })\n .default([]),\n })\n .default({ origins: [] }),\n})\nexport type AgentSecurity = z.infer<typeof AgentSecuritySchema>\n\nexport const AgentDtoSchema = z.object({\n id: z.string().optional(),\n name: z.string(),\n prompt: z.string().optional(),\n model: z.string().default(LanguageModel.gpt52Chat),\n fallbackModels: z.array(z.string()).default([]),\n status: z.enum(AgentStatus).default(AgentStatus.Draft),\n visibility: z.enum(AgentVisibility).default(AgentVisibility.Organization),\n settings: AgentSettingsSchema,\n security: AgentSecuritySchema.nullish(),\n type: z.enum(AgentType).default(AgentType.Chat),\n organizationId: z.string(),\n})\n\nexport const AgentSchema = z.lazy(() =>\n z.object({\n id: z.string(),\n name: z.string(),\n prompt: z.string(),\n model: z.string(),\n fallbackModels: z.array(z.string()).nullable().default([]),\n status: z.enum(AgentStatus).default(AgentStatus.Draft),\n visibility: z\n .enum(AgentVisibility)\n .default(AgentVisibility.Organization),\n settings: AgentSettingsSchema,\n security: AgentSecuritySchema.nullable(),\n type: z.enum(AgentType).default(AgentType.Chat),\n organizationId: z.string(),\n createdAt: z.coerce.date(),\n createdBy: z.string(),\n updatedAt: z.coerce.date(),\n updatedBy: z.string(),\n deleted: z.boolean(),\n deletedAt: z.coerce.date().nullable(),\n deletedBy: z.string().nullable(),\n outOfBudget: z.boolean().optional().default(false),\n outOfBudgetReason: z.string().optional().default(''),\n }),\n)\n\nexport const AgentPublicSchema = z.object({\n id: z.string(),\n name: z.string(),\n status: z.enum(AgentStatus),\n visibility: z.enum(AgentVisibility),\n organizationId: z.string(),\n interface: AgentInterfaceSchema,\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n logo: z.string().optional(),\n capabilities: z.object({\n fileUpload: AgentFileUploadSchema,\n }),\n})\n\nexport const AgentsQuerystringSchema = z.object({\n ...zodQs.pagination(),\n ...zodQs.sort([\n 'id',\n 'updatedAt',\n 'createdAt',\n 'name',\n 'type',\n 'status',\n 'visibility',\n 'model',\n ]),\n ...zodQs.filters(['done', 'type']),\n ...zodQs.fullText(),\n ...zodQs.ids(),\n})\n\nexport type AgentDto = z.infer<typeof AgentDtoSchema>\nexport type Agent = z.infer<typeof AgentSchema>\nexport type AgentPublic = z.infer<typeof AgentPublicSchema>\n\nexport type AgentQuerystring = z.infer<typeof AgentsQuerystringSchema>\n","import { AgentStatus } from 'models'\nimport type { CapabilitiesFactory } from '../types'\nimport { Subject } from '../types'\n\nconst GuestCapabilities: CapabilitiesFactory = (currentSession) => {\n if (!currentSession) {\n return []\n }\n return [\n // chats\n {\n subject: Subject.Chat,\n action: 'create',\n },\n {\n subject: Subject.Chat,\n action: 'read',\n condition: {\n createdBy: {\n $eq: currentSession.user.id,\n },\n },\n },\n // agents\n {\n subject: Subject.Agent,\n action: 'read',\n condition: {\n status: {\n $eq: AgentStatus.Active,\n },\n },\n },\n // feedbacks\n {\n subject: Subject.MessageFeedback,\n action: 'create',\n },\n {\n subject: Subject.MessageFeedback,\n action: 'read',\n condition: {\n createdBy: {\n $eq: currentSession.user.id,\n },\n },\n },\n ]\n}\nexport default GuestCapabilities\n","import type { MongoAbility, InferSubjects, ForcedSubject } from '@casl/ability'\nimport type { MongoQuery } from '@ucast/mongo2js'\nimport { Action, Capability, Subject } from './types'\nimport { $or } from '@ucast/mongo2js'\nimport {\n AbilityBuilder,\n createMongoAbility,\n buildMongoQueryMatcher,\n PureAbility,\n createAliasResolver,\n FieldMatcher,\n} from '@casl/ability'\nimport { organizationCapabilitiesByRole, userCapabilitiesByRole } from './roles'\nimport type { Session } from 'auth'\nimport DefaultCapabilities from './roles/User'\nimport { createAccessControl } from 'better-auth/plugins'\nimport {\n adminAc,\n defaultStatements,\n memberAc,\n ownerAc,\n} from 'better-auth/plugins/organization/access'\n\nexport const OrganizationRoles = {\n admin: 'admin',\n owner: 'owner',\n member: 'member',\n user: 'user',\n} as const\n\nexport const UserRoles = {\n admin: 'admin',\n user: 'user',\n} as const\n\n// action alias\nconst resolveAction = createAliasResolver({\n modify: ['read', 'update', 'delete'],\n})\n\n// subject\nexport type AbilitySubject =\n | InferSubjects<'all' | Subject, true>\n | ForcedSubject<InferSubjects<'all' | Subject, true>>\ntype Ability = MongoAbility<[Action, AbilitySubject]>\n\n// matcher\nconst conditionsMatcher = buildMongoQueryMatcher({ $or })\nconst fieldMatcher: FieldMatcher = (fields) => (field) => fields.includes(field)\n\n// ability\nexport const ability = new PureAbility<[Action, AbilitySubject], MongoQuery>(\n DefaultCapabilities(),\n {\n conditionsMatcher,\n resolveAction,\n fieldMatcher,\n },\n)\n\nexport const isValidOrganizationRole = (\n role?: string | null,\n): role is keyof typeof OrganizationRoles => {\n if (!role) {\n return false\n }\n return role in OrganizationRoles\n}\n\nexport const isValidUserRole = (\n role?: string | null,\n): role is keyof typeof UserRoles => {\n if (!role) {\n return false\n }\n return role in UserRoles\n}\n\nexport const getOrganizationRoleCapabilities = (\n currentSession?: Session | null,\n): Capability[] => {\n if (!isValidOrganizationRole(currentSession?.session.organizationRole)) {\n return DefaultCapabilities(currentSession)\n }\n const capabilities =\n organizationCapabilitiesByRole[currentSession.session.organizationRole]\n if (typeof capabilities === 'function') {\n return capabilities(currentSession)\n }\n return capabilities\n}\n\nexport const getUserRoleCapabilities = (\n currentSession?: Session | null,\n): Capability[] => {\n if (!isValidUserRole(currentSession?.user.role)) {\n return DefaultCapabilities(currentSession)\n }\n const capabilities = userCapabilitiesByRole[currentSession.user.role]\n if (typeof capabilities === 'function') {\n return capabilities(currentSession)\n }\n return capabilities\n}\n\nexport const updateAbilityFromSession = (currentSession?: Session | null) => {\n const { can, build, cannot } = new AbilityBuilder<Ability>(\n createMongoAbility,\n )\n const organizationRoleCapabilities =\n getOrganizationRoleCapabilities(currentSession)\n const userRoleCapabilities = getUserRoleCapabilities(currentSession)\n const capabilities = [\n ...organizationRoleCapabilities,\n ...userRoleCapabilities,\n ]\n capabilities.forEach((capability) => {\n const { action, subject, fields, condition, inverted } = capability\n if (inverted) {\n cannot(action, subject, fields, condition)\n return\n }\n can(action, subject, fields, condition)\n })\n ability.update(\n build({\n conditionsMatcher,\n resolveAction,\n fieldMatcher,\n }).rules,\n )\n}\n\nconst ac = createAccessControl(defaultStatements)\nconst adminRole = ac.newRole(adminAc.statements)\nconst ownerRole = ac.newRole(ownerAc.statements)\nconst memberRole = ac.newRole(memberAc.statements)\nconst userRole = ac.newRole(memberAc.statements)\n\nexport const betterAuthOrganizationSettings = {\n ac,\n roles: {\n owner: ownerRole,\n admin: adminRole,\n member: memberRole,\n user: userRole,\n },\n}\n\nexport * from './types'\nexport { subject } from '@casl/ability'\n","import { Audience } from 'ability'\nimport type { Chat, MessageFeedback, AgentPublic, MediaSource } from 'models'\nimport { addInitialSlash, removeTrailingSlash } from 'utils'\n\nexport interface ChatbotApiClientOptions {\n baseUrl: string\n basePath?: string\n headers?: () => Record<string, string> | undefined\n credentials?: RequestCredentials\n}\n\nexport interface SubmitFeedbackPayload {\n messageId: string\n chatId: string\n agentId: string\n vote?: 'upvote' | 'downvote'\n userQuestion: string\n assistantMessage: string\n comment?: string\n}\n\nexport interface SubmitLeadPayload {\n agentId: string\n chatId: string\n [key: string]: unknown\n}\n\nexport interface ChatbotApiClient {\n getConversations(\n agentId: string,\n userId: string | undefined,\n ): Promise<Chat[]>\n getChat(agentId: string, chatId: string): Promise<Chat | null>\n getMessageFeedbacks(chatId: string): Promise<MessageFeedback[]>\n submitMessageFeedback(\n payload: SubmitFeedbackPayload,\n ): Promise<MessageFeedback>\n submitLead(payload: SubmitLeadPayload): Promise<void>\n getAgent(orgSlug: string, agentId: string): Promise<AgentPublic>\n getMediaUrl(agentId: string, chatId: string, storedFileName: string): string\n appendAuthToken(url: string): string\n uploadMedia(\n agentId: string,\n chatId: string,\n file: File,\n ): Promise<MediaSource>\n getChatEndpoint(agentId: string, type?: 'chat' | 'reasoning'): string\n expandSourceContext(\n agentId: string,\n documentId: string,\n chunkIndex: number,\n windowSize?: number,\n ): Promise<{ content: string }>\n downloadSourceDocument(\n agentId: string,\n documentId: string,\n ): Promise<{ downloadUrl: string; filename: string; mimeType: string }>\n reverseGeocode(\n lat: number,\n lon: number,\n lang?: string,\n ): Promise<string | undefined>\n forwardGeocode(\n query: string,\n lang?: string,\n ): Promise<\n { latitude: number; longitude: number; displayName: string } | undefined\n >\n}\n\nexport function createChatbotApiClient(\n options: ChatbotApiClientOptions,\n): ChatbotApiClient {\n const basePath = options.basePath\n ? addInitialSlash(options.basePath)\n : `/api/v1/${Audience.Public}`\n\n const baseUrl = `${removeTrailingSlash(options.baseUrl)}${basePath}`\n\n async function request<T>(\n url: string,\n init?: RequestInit,\n responseType: 'json' | 'void' = 'json',\n ): Promise<T> {\n const response = await fetch(`${baseUrl}${url}`, {\n credentials: options.credentials ?? 'include',\n ...init,\n headers: {\n ...options.headers?.(),\n ...init?.headers,\n },\n })\n\n if (!response.ok) {\n throw new Error(\n `API error: ${response.status} ${response.statusText}`,\n )\n }\n\n if (responseType === 'void' || response.status === 204) {\n return undefined as T\n }\n\n return response.json() as Promise<T>\n }\n\n return {\n async getConversations(agentId, userId) {\n const userFilter = userId\n ? `&filter[userId]=${encodeURIComponent(userId)}`\n : ''\n return request<Chat[]>(\n `/agents/${encodeURIComponent(agentId)}/chats?sort=-updatedAt&page[size]=100${userFilter}`,\n )\n },\n\n async getChat(agentId, chatId) {\n const result = await request<Chat | undefined>(\n `/agents/${encodeURIComponent(agentId)}/chats/${encodeURIComponent(chatId)}`,\n )\n return result ?? null\n },\n\n async getMessageFeedbacks(chatId) {\n return request<MessageFeedback[]>(\n `/message-feedbacks?filter[chatId]=${encodeURIComponent(chatId)}&page[size]=200`,\n )\n },\n\n async submitMessageFeedback(payload) {\n return request<MessageFeedback>('/message-feedbacks', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(payload),\n })\n },\n\n async submitLead(payload) {\n await request<void>(\n '/leads',\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(payload),\n },\n 'void',\n )\n },\n\n async getAgent(orgSlug, agentId) {\n return request<AgentPublic>(\n `/organizations/${encodeURIComponent(orgSlug)}/agents/${encodeURIComponent(agentId)}`,\n )\n },\n\n async uploadMedia(agentId, chatId, file) {\n const formData = new FormData()\n formData.append('file', file)\n const response = await fetch(\n `${baseUrl}/agents/${encodeURIComponent(agentId)}/chats/${encodeURIComponent(chatId)}/media/upload`,\n {\n method: 'POST',\n credentials: options.credentials ?? 'include',\n // Do NOT set Content-Type — browser sets multipart/form-data with boundary automatically\n headers: options.headers?.(),\n body: formData,\n },\n )\n if (!response.ok) {\n const text = await response.text().catch(() => '')\n let title = `Upload failed: ${response.status}`\n try {\n title =\n (JSON.parse(text) as { title?: string }).title ?? title\n } catch {\n // ignore parse errors\n }\n throw new Error(title)\n }\n return response.json() as Promise<MediaSource>\n },\n\n getChatEndpoint(agentId, type = 'chat') {\n const path = type === 'reasoning' ? 'reasoning-chat' : 'chat'\n return `${baseUrl}/agents/${encodeURIComponent(agentId)}/${path}`\n },\n\n appendAuthToken(url) {\n const bearer = options\n .headers?.()\n ?.[`Authorization`]?.slice('Bearer '.length)\n if (!bearer) {\n return url\n }\n const separator = url.includes('?') ? '&' : '?'\n return `${url}${separator}token=${encodeURIComponent(bearer)}`\n },\n\n getMediaUrl(agentId, chatId, storedFileName) {\n const base = `${baseUrl}/agents/${encodeURIComponent(agentId)}/chats/${encodeURIComponent(chatId)}/media/${encodeURIComponent(storedFileName)}/view`\n return this.appendAuthToken(base)\n },\n\n async expandSourceContext(\n agentId,\n documentId,\n chunkIndex,\n windowSize = 2,\n ) {\n return request<{ content: string }>(\n `/agents/${encodeURIComponent(agentId)}/sources/expand-context`,\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n documentId,\n chunkIndex,\n windowSize,\n }),\n },\n )\n },\n\n async downloadSourceDocument(agentId, documentId) {\n return request<{\n downloadUrl: string\n filename: string\n mimeType: string\n }>(\n `/agents/${encodeURIComponent(agentId)}/sources/documents/${encodeURIComponent(documentId)}/download`,\n )\n },\n\n async reverseGeocode(lat, lon, lang) {\n const params = new URLSearchParams({\n lat: String(lat),\n lon: String(lon),\n })\n if (lang) {\n params.set('lang', lang)\n }\n try {\n const data = await request<{ displayName?: string }>(\n `/geocoder/reverse?${params}`,\n )\n return data.displayName\n } catch {\n return undefined\n }\n },\n\n async forwardGeocode(query, lang) {\n const params = new URLSearchParams({ q: query })\n if (lang) {\n params.set('lang', lang)\n }\n try {\n return await request<{\n latitude: number\n longitude: number\n displayName: string\n }>(`/geocoder/forward?${params}`)\n } catch {\n return undefined\n }\n },\n }\n}\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dist-Bb1zRSg4.js","names":[],"sources":["../../../../node_modules/.pnpm/@codemirror+lang-angular@0.1.4/node_modules/@codemirror/lang-angular/dist/index.js"],"sourcesContent":["import { LRLanguage, LanguageSupport } from '@codemirror/language';\nimport { html } from '@codemirror/lang-html';\nimport { javascriptLanguage } from '@codemirror/lang-javascript';\nimport { styleTags, tags } from '@lezer/highlight';\nimport { parseMixed } from '@lezer/common';\nimport { ExternalTokenizer, LRParser } from '@lezer/lr';\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst Text = 1,\n attributeContentSingle = 33,\n attributeContentDouble = 34,\n scriptAttributeContentSingle = 35,\n scriptAttributeContentDouble = 36;\n\nconst text = /*@__PURE__*/new ExternalTokenizer(input => {\n let start = input.pos;\n for (;;) {\n if (input.next == 10 /* Ch.Newline */) {\n input.advance();\n break;\n }\n else if (input.next == 123 /* Ch.BraceL */ && input.peek(1) == 123 /* Ch.BraceL */ || input.next < 0) {\n break;\n }\n input.advance();\n }\n if (input.pos > start)\n input.acceptToken(Text);\n});\nfunction attrContent(quote, token, script) {\n return new ExternalTokenizer(input => {\n let start = input.pos;\n while (input.next != quote && input.next >= 0 &&\n (script || input.next != 38 /* Ch.Ampersand */ && (input.next != 123 /* Ch.BraceL */ || input.peek(1) != 123 /* Ch.BraceL */)))\n input.advance();\n if (input.pos > start)\n input.acceptToken(token);\n });\n}\nconst attrSingle = /*@__PURE__*/attrContent(39 /* Ch.SingleQuote */, attributeContentSingle, false);\nconst attrDouble = /*@__PURE__*/attrContent(34 /* Ch.DoubleQuote */, attributeContentDouble, false);\nconst scriptAttrSingle = /*@__PURE__*/attrContent(39 /* Ch.SingleQuote */, scriptAttributeContentSingle, true);\nconst scriptAttrDouble = /*@__PURE__*/attrContent(34 /* Ch.DoubleQuote */, scriptAttributeContentDouble, true);\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst parser = /*@__PURE__*/LRParser.deserialize({\n version: 14,\n states: \"(jOVOqOOOeQpOOOvO!bO'#CaOOOP'#Cx'#CxQVOqOOO!OQpO'#CfO!WQpO'#ClO!]QpO'#CrO!bQpO'#CsOOQO'#Cv'#CvQ!gQpOOQ!lQpOOQ!qQpOOOOOV,58{,58{O!vOpO,58{OOOP-E6v-E6vO!{QpO,59QO#TQpO,59QOOQO,59W,59WO#YQpO,59^OOQO,59_,59_O#_QpOOO#_QpOOO#gQpOOOOOV1G.g1G.gO#oQpO'#CyO#tQpO1G.lOOQO1G.l1G.lO#|QpO1G.lOOQO1G.x1G.xO$UO`O'#DUO$ZOWO'#DUOOQO'#Co'#CoQOQpOOOOQO'#Cu'#CuO$`OtO'#CwO$qOrO'#CwOOQO,59e,59eOOQO-E6w-E6wOOQO7+$W7+$WO%SQpO7+$WO%[QpO7+$WOOOO'#Cp'#CpO%aOpO,59pOOOO'#Cq'#CqO%fOpO,59pOOOS'#Cz'#CzO%kOtO,59cOOQO,59c,59cOOOQ'#C{'#C{O%|OrO,59cO&_QpO<<GrOOQO<<Gr<<GrOOQO1G/[1G/[OOOS-E6x-E6xOOQO1G.}1G.}OOOQ-E6y-E6yOOQOAN=^AN=^\",\n stateData: \"&d~OvOS~OPROSQOVROWRO~OZTO[XO^VOaUOhWO~OR]OU^O~O[`O^aO~O[bO~O[cO~O[dO~ObeO~ObfO~ObgO~ORhO~O]kOwiO~O[lO~O_mO~OynOzoO~OysOztO~O[uO~O]wOwiO~O_yOwiO~OtzO~Os|O~OSQOV!OOW!OOr!OOy!QO~OSQOV!ROW!ROq!ROz!QO~O_!TOwiO~O]!UO~Oy!VO~Oz!VO~OSQOV!OOW!OOr!OOy!XO~OSQOV!ROW!ROq!ROz!XO~O]!ZO~O\",\n goto: \"#dyPPPPPzPPPP!WPPPPP!WPP!Z!^!a!d!dP!g!j!m!p!v#Q#WPPPPPPPP#^SROSS!Os!PT!Rt!SRYPRqeR{nR}oRZPRqfR[PRqgQSOR_SQj`SvjxRxlQ!PsR!W!PQ!StR!Y!SQpeRrf\",\n nodeNames: \"⚠ Text Content }} {{ Interpolation InterpolationContent Entity InvalidEntity Attribute BoundAttributeName [ Identifier ] ( ) ReferenceName # Is ExpressionAttributeValue AttributeInterpolation AttributeInterpolation EventName DirectiveName * StatementAttributeValue AttributeName AttributeValue\",\n maxTerm: 42,\n nodeProps: [\n [\"openedBy\", 3,\"{{\",15,\"(\"],\n [\"closedBy\", 4,\"}}\",14,\")\"],\n [\"isolate\", -4,5,19,25,27,\"\"]\n ],\n skippedNodes: [0],\n repeatNodeCount: 4,\n tokenData: \"0r~RyOX#rXY$mYZ$mZ]#r]^$m^p#rpq$mqr#rrs%jst&Qtv#rvw&hwx)zxy*byz*xz{+`{}#r}!O+v!O!P-]!P!Q#r!Q![+v![!]+v!]!_#r!_!`-s!`!c#r!c!}+v!}#O.Z#O#P#r#P#Q.q#Q#R#r#R#S+v#S#T#r#T#o+v#o#p/X#p#q#r#q#r0Z#r%W#r%W;'S+v;'S;:j-V;:j;=`$g<%lO+vQ#wTUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rQ$ZSO#q#r#r;'S#r;'S;=`$g<%lO#rQ$jP;=`<%l#rR$t[UQvPOX#rXY$mYZ$mZ]#r]^$m^p#rpq$mq#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR%qTyPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR&XTaPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR&oXUQWPOp'[pq#rq!]'[!]!^#r!^#q'[#q#r(d#r;'S'[;'S;=`)t<%lO'[R'aXUQOp'[pq#rq!]'[!]!^'|!^#q'[#q#r(d#r;'S'[;'S;=`)t<%lO'[R(TTVPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR(gXOp'[pq#rq!]'[!]!^'|!^#q'[#q#r)S#r;'S'[;'S;=`)t<%lO'[P)VUOp)Sq!])S!]!^)i!^;'S)S;'S;=`)n<%lO)SP)nOVPP)qP;=`<%l)SR)wP;=`<%l'[R*RTzPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR*iT^PUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR+PT_PUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR+gThPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR+}b[PUQO}#r}!O+v!O!Q#r!Q![+v![!]+v!]!c#r!c!}+v!}#R#r#R#S+v#S#T#r#T#o+v#o#q#r#q#r$W#r%W#r%W;'S+v;'S;:j-V;:j;=`$g<%lO+vR-YP;=`<%l+vR-dTwPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR-zTUQbPO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR.bTZPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR.xT]PUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR/^VUQO#o#r#o#p/s#p#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#rR/zTSPUQO#q#r#q#r$W#r;'S#r;'S;=`$g<%lO#r~0^TO#q#r#q#r0m#r;'S#r;'S;=`$g<%lO#r~0rOR~\",\n tokenizers: [text, attrSingle, attrDouble, scriptAttrSingle, scriptAttrDouble, 0, 1],\n topRules: {\"Content\":[0,2],\"Attribute\":[1,9]},\n tokenPrec: 0\n});\n\nconst exprParser = /*@__PURE__*/javascriptLanguage.parser.configure({\n top: \"SingleExpression\"\n});\nconst baseParser = /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/styleTags({\n Text: tags.content,\n Is: tags.definitionOperator,\n AttributeName: tags.attributeName,\n \"AttributeValue ExpressionAttributeValue StatementAttributeValue\": tags.attributeValue,\n Entity: tags.character,\n InvalidEntity: tags.invalid,\n \"BoundAttributeName/Identifier\": tags.attributeName,\n \"EventName/Identifier\": /*@__PURE__*/tags.special(tags.attributeName),\n \"ReferenceName/Identifier\": tags.variableName,\n \"DirectiveName/Identifier\": tags.keyword,\n \"{{ }}\": tags.brace,\n \"( )\": tags.paren,\n \"[ ]\": tags.bracket,\n \"# '*'\": tags.punctuation\n })\n ]\n});\nconst exprMixed = { parser: exprParser }, statementMixed = { parser: javascriptLanguage.parser };\nconst textParser = /*@__PURE__*/baseParser.configure({\n wrap: /*@__PURE__*/parseMixed((node, input) => node.name == \"InterpolationContent\" ? exprMixed : null),\n});\nconst attrParser = /*@__PURE__*/baseParser.configure({\n wrap: /*@__PURE__*/parseMixed((node, input) => {\n var _a;\n return node.name == \"InterpolationContent\" ? exprMixed\n : node.name != \"AttributeInterpolation\" ? null\n : ((_a = node.node.parent) === null || _a === void 0 ? void 0 : _a.name) == \"StatementAttributeValue\" ? statementMixed : exprMixed;\n }),\n top: \"Attribute\"\n});\nconst textMixed = { parser: textParser }, attrMixed = { parser: attrParser };\nconst baseHTML = /*@__PURE__*/html({ selfClosingTags: true });\nfunction mkAngular(language) {\n return language.configure({ wrap: parseMixed(mixAngular) }, \"angular\");\n}\n/**\nA language provider for Angular Templates.\n*/\nconst angularLanguage = /*@__PURE__*/mkAngular(baseHTML.language);\nfunction mixAngular(node, input) {\n switch (node.name) {\n case \"Attribute\":\n return /^[*#(\\[]|\\{\\{/.test(input.read(node.from, node.to)) ? attrMixed : null;\n case \"Text\":\n return textMixed;\n }\n return null;\n}\n/**\nAngular Template language support.\n*/\nfunction angular(config = {}) {\n let base = baseHTML;\n if (config.base) {\n if (config.base.language.name != \"html\" || !(config.base.language instanceof LRLanguage))\n throw new RangeError(\"The base option must be the result of calling html(...)\");\n base = config.base;\n }\n return new LanguageSupport(base.language == baseHTML.language ? angularLanguage : mkAngular(base.language), [base.support, base.language.data.of({\n closeBrackets: { brackets: [\"[\", \"{\", '\"'] },\n indentOnInput: /^\\s*[\\}\\]]$/\n })]);\n}\n\nexport { angular, angularLanguage };\n"],"x_google_ignoreList":[0],"mappings":"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"}