@blueking/ai-blueking 2.1.4-beta.11 → 2.1.4-beta.13
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.
- package/README.md +11 -1
- package/dist/components/chat-bot.vue.d.ts.map +1 -1
- package/dist/components/composables/use-chatbot-init.d.ts +7 -1
- package/dist/components/composables/use-chatbot-init.d.ts.map +1 -1
- package/dist/components/types.d.ts +4 -0
- package/dist/components/types.d.ts.map +1 -1
- package/dist/composables/use-ai-blueking-init.d.ts +4 -0
- package/dist/composables/use-ai-blueking-init.d.ts.map +1 -1
- package/dist/standalone/index.es.min.js +225 -199
- package/dist/standalone/index.iife.min.js +3 -3
- package/dist/standalone/index.umd.min.js +3 -3
- package/dist/standalone/style.css +1 -1
- package/dist/vue2/index.es.min.js +231 -200
- package/dist/vue2/index.iife.min.js +2 -2
- package/dist/vue2/index.umd.min.js +184 -184
- package/dist/vue2.d.ts.map +1 -1
- package/dist/vue3/index.es.min.js +278 -252
- package/dist/vue3/index.iife.min.js +69 -69
- package/dist/vue3/index.umd.min.js +4 -4
- package/dist/vue3/style.css +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Fragment as e, Teleport as t, computed as n, createBlock as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, createSlots as s, createTextVNode as c, createVNode as l, defineComponent as u, guardReactiveProps as d, h as f, isRef as p, mergeDefaults as m, nextTick as h, normalizeClass as g, normalizeProps as _, normalizeStyle as v, onBeforeUnmount as y, onMounted as b, onUnmounted as x, openBlock as S, reactive as C, ref as w, render as T, renderList as E, renderSlot as D, shallowRef as O, toDisplayString as k, toValue as A, unref as j, useCssVars as M, useSlots as N, useTemplateRef as P, vShow as F, watch as I, withCtx as L, withDirectives as R, withModifiers as z } from "vue";
|
|
2
|
-
import { AiSelection as
|
|
3
|
-
import { Exception as
|
|
2
|
+
import { AiSelection as B, ChatContainer as ee, MessageContentType as V, MessageRender as te, MessageRole as ne, MessageStatus as H, MessageToolsStatus as re, RenderMode as ie, RenderMode as ae } from "@blueking/chat-x";
|
|
3
|
+
import { Exception as oe, Input as se, Loading as ce, Message as le, OverflowTitle as ue, PopConfirm as de, bkTooltips as fe } from "bkui-vue";
|
|
4
4
|
import { Tippy as pe, directive as me } from "vue-tippy";
|
|
5
5
|
import he from "tippy.js";
|
|
6
|
-
import { Search as
|
|
6
|
+
import { Search as ge } from "bkui-vue/lib/icon";
|
|
7
7
|
import "tippy.js/dist/tippy.css";
|
|
8
|
-
import
|
|
8
|
+
import _e from "vue-draggable-resizable";
|
|
9
9
|
import "vue-draggable-resizable/style.css";
|
|
10
10
|
//#region src/assets/icon/iconcool.js
|
|
11
11
|
(function() {
|
|
@@ -16,7 +16,7 @@ import "vue-draggable-resizable/style.css";
|
|
|
16
16
|
})();
|
|
17
17
|
//#endregion
|
|
18
18
|
//#region src/assets/images/avatar.png
|
|
19
|
-
var _e = "data:image/png;base64,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", ve = (e) => ({
|
|
19
|
+
var ve = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAAGVn0euAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAYKADAAQAAAABAAAAYAAAAACpM19OAAAj4UlEQVR4Ae1dB4AURbqu7pnZyOICShIVBI5TDPgwR0yn5yknKigIy+5KMCJ4ohgQMGdP8BQDsAsqHsZTnnqcPlEU1DNwnnqKYATxRDIsuxO63/f91dXTMzuzzBLEd28Leqq66q+//lR/he7qVWpbh35lsYVBnHbwJpjuPqB2Be/3s9X+jH9TFnMZZwxdBkVXdhkc+02w8E8VifoVOg+Kurze/tRxuw2OuodU1tUHMlgI2GdczH1/kSPXR1847ieLE+6AC2uk0v7DoxKn8DDkt7aaMOFOtWaNq8YjXr/WVS3DupEehXHBLRWInXc/rXbV22/NU+vWOurNN+epmnWoENEV9g9WWDIjzyoOuWo9AG694xlVi/ihe55SsfUJtOAI5h5FCYnD8oufj6ryrVcLNrknHmyrkO2qSEgpx3ZUK7SAf5Y11rIIKz+mEuM/jNzgtgDdpd4l6ZCjGO99Vat68MG6v5R09/61NfVoGe/6+vITBqg2HLoJevnK3DO+61v3CXPvi7VbpVsSj8XW7b2HUsNPDamrQ3VuKXRzVlF+wYhJVj9TwRcTtT1rbBgyVyqM3BBS190VVS0i7psfRMNHLnwwT2CFpD3LYmM6trXU8lWuWvzlCrV6jaO+/GqFumpoRLUMOUfu72mZrdgdyzd1tFz3liP3sdRaGNuI84eoDYiHDhuqatdrTRvDYwWfpIMr6tzKk21VBLoLYRqFaJvxFwuiqhtaOHZsiyRJrEmbef31mIoCa3yDqxIbHOXiYr4BTmmBNxeN2PgWbOjwUtoOACklY1c9r2npU0PYX07YYrL69nXzrKJ4ncfKglnVkcOZ3nNgbNyXj0YmGBZzauCSo39yPUBHWRZ0Y/We9HrLFwwSNlZYGFuUb1l7FECxBTCqAmWPu6E6dH2DDRjfYxCZ2EatAstV/6zOt24uc1vZduKnMVW0V6VeqUwsOWFqqLOBzdiAQdyji6VuroSRaz+miJiB5j1kQlQaKYArem5yoY+n7Xnx73+YEm4vgPjxC0yGQT71ct2PCEDENthmHMIF4pF2JT3pATQEof1pYrF10sW1IsqX7ytgNQnSmzsPqluOakXIac7cy84KqR/Q74jswvLTBbBqxrPSaQcO7CP3Tz/+jJTT65ILhgPQY8jty/pWfv2WDOWkkl3s4tNtQUjJRnAxTl5oHBxFIKu3X9EcjLqtuTXzOnRqwPWfsBN+dfD9EccGZh1SWesU2Mp65sWEOvUoW5DHIY48tJxQDly/gtMHIGKKjRyw3zNg7FgOBtrpO/3rtxTMZLo/xkBygsZExrSaQogieM+05LHMdh4+7roWwy0LN03hP0cCvXq5vhVm4yqrFWWrYPL7DY5ehM55H+9tK97piarCr01Zo+J9zqkd0X1A9C5W6n5u3d6YXc4zCG4sjz9k0oyPw0zzlLL45GDeZjkYAVcNF60mvt7KMm574hs7p9TrPzB2IvrDnHxgLgBsAfxFfjjcavwUa1UKYLBlk24/zC0q3BR7Bfc90XFnLnk0r9yUpcf3VsTdfHSz86voVHTwEybDxJg7TwFspbkPxnnorEUF8fbvP1S8/Nby+DfwIhddMS08+6+D3OKTZlgbg7AZGzCOzwCOHRhSR3S31FPzHDXjpYTnMuBGLGvBq4/ky1BpYNPjeg0Ekb94M8YEz7NwRktgXptqXXXZ7THto2znlKceKH6JiNtVxh+37dAVyx6xlvKewfOD+ib4y4nbhk1KbajVVw1iIubFSvdeERG3XmRbL5p6rSNO/11Cse/MPeOUBgz1V/UPqfVEjmvjJlfVeohr0Yi5YlGFaZr2tCNH1owksnYRR7XFhCoYUhowBe1aErmrNgLx0PIKHymRDyqrUDGsQ+pQdkllnioSl+7cw7ptMDa0Cev1hMHlDZnRtSaDMSmnzC/2hktyEAYpZd5wGfXuuUThYMOxgkFTn5kDjsUyHhOwBgjqsFBrvlML3kq6DhyVlur7GKZbnHIlAFPozWYJR+rTRSQccLg08o+AmjqIIgHKrr1hiozDMn8DR3fcPAVjsQPEmH9x8Mb/QsCbQb9dXir1bNTXARvJt1VdEXJehL1TDJpSxi4oxhQaiB0o14nhQtrFxSGTdRgy6cBvgACfVucVcBzeuC6h4kBEpDE0RFHIhTzGDi4XaRfK1uN2UgdtvcUj8THU8+eg6B5Mm0bNmx9X+3a2VBtYVAKiCIEUh8pELMtJxOtWOUJ9Pohi2HtM/Tk+qtYPfS+oeRrWcQYtJN/SEyuxFpokZY58mU3gPh/3wkXY6tfr2tIn07FlbMAAjbx0o0vqfORAXIAlcSEUzOmiXGwAejBw+cr9qNtVrWQnwuBpipsksF0l0Lfcbbs1DcCud1zoNzjmWm58OeKjs1HR4TwXniR72GEMXFQRf5Bzt50xrLVS6m+j+rqF6WTuPyh6futobGV6fvC+QT8UBGwofeqp2OiDM+UQi/D3F2Y3P/i001bt7jrhb3SexXHpsednlwxMx1N9Xnzw4Cnh6mB+X0g9EY+v5KYkXJysESPKemBKdfjCIBzT24SBINJ7enw/G7uO7wPxWEw2mg1/v339LbpghbT05Zh5WnZ8acSySkk8xyq5gBAMnfeHqvDUYJWtYqDzoNizGNn0JkAQa+Z03Lat47+ojryRqfiWytgJV02NcP7uh8cqEj9hht7KKrBL+t1vbfALAolGM4B5DXeZKZycAzc7/P0H2JpOu5fPn1ogS6Zby9zdlZV4dUx1uGs60oWVsWN7TI28lp5v7nNmwEzITEUT331BSO3bKTMazskYGI15IK6+/I7EY/MEGWQihHSerapfmFxYTrgtCV4T2at2Hlh3O3rn6CDEeb+11WmHYYtFz4L8Iq8Tc74kRBsGCMCGvEmmuvTmqDDiawWMzLy/KIWWzkOjj6Pr9zfIFz9MtuuHjJkGrPPA2DPYNdMbW17mo1fVmwL6jHBzjQh5CfFkBDf01YxNGVF9vthRz74Y88yJGsETi0nFBJFw5IWYlQbCm/fn+2WBbMEZvPfTXc51m7t2LGU1MnmkNn0j+SBRJi3EAksmwrUGkkz+6zM8l3krrvfkQB40Er3zj8VcxKszR2yCM9M0u2jw6YnJ7UyfSCTqi9MrBfH/HQQ893hbllMmj6gfuf8u9e78eSZLTX/8WV/6LL9v0t1qfqD8mT/rcs2cq7p2stR7C3Sf4MYiGMgzyNpiESmjBzJkkDEFabHPALZLX4bcTkor9293b20JA5QwJckrSDwBudoykmd5kHiWc6Fk6pJBEs2FqXRozQDBJMjaxdMAirIG0iNhyYz8k5FY592mRELMx45eX8I0uZDldd3ND/twRcUlKooyvZrTK7k7bnvILy9GeRyLLC7E9AoPMRZeXFVwycKLzJjQFktIMiFXnn6KZ8qCMQVRL3QeGK2C/gYn/beW0nm/C6FD6s0JI0nCUAoSI22hnD2FwmMscF5MibNBA8t6781N9Ujn39KcIOr5CWuwoyxJ1HJV73Gl+oaFgeCbUCBPebtY5T3Koz3gqz8Udwcks16Oq95HhVR+hESAGAhMVpxAzR0JwtETcS9bd3fYL5vlJSFpQpQ1pqIiecGPNGMTKPlgJzb56XFGBgzQwqq8hScMc0vjTt0aujkCv4blMhs67pAQYpCBtDFVGaKNUbIMgWWOEKalT3gyJaWIuSDlkw/BL/lwPhBN+7C7m2O73wkSV62SOMMPquQWThu+aQEIP1QaA5HB0bRjB1vtglk7GRNzwg81YMxL5+vnJ9Qc82vwLHz9DwlNOOxMM6HUqeN3shvzQCBnBgybZRfXnI3GniBRhgkjPeb5aVTg85aUPJZT2syX2AIOzZDGpfsP02SU9SO2NXa/MS1uNO2nxwDdujBm1IZRIGgCCCrRxCYZEyKEqQBjICwMIzGM+oQDjszQTIVB1vOYJUynK/5vPOHfOmk21W6SQJMEmiTQKAmcUxE7vFEVMgBjqNhxwXGsR/HmiJk2bREhO4yBfoPjWO+6nfCOzepslHcZXNc9W5nJb3AyZ4C2ZXxmeW3XsGP/DXPWPTy8JdwjxQyvfNb00HRM//QsEIWuY41ANLyh9n92DTxdVfCFsynyK+yHck9U7azjG2dND1cHiSfRWBkMO3BwvDfT2QJmGVsZ8CZf90XRhUDUPJyX12NhlbXGYNzn3Lo/YzpzMt7JOfNfjxek7LoR5iY8IQfR114zLXSTqWPiY8pif4kotze2GNVL1ZwNZQ5ZCzKD18897dT1eOHGxYt+GlVBYbPwk09aCWz4rkNeCWugXM2erVdaQQzTKhPjK6aGxgfzmO4D4tGze8vkEPfs5TU14SLgxVPa1LDVfaDTOkhZWZdqtBDouuinI3utPslZFxPi9dIls5zauPafDDnnVLi7hZ34KBA0SmarQCU7FRCMzFiLEzXXDI4vjoTcC8ZNDb/KRQ/rZsZssDYynrjf0g4JO4QNRHc+OtfckQvbX9NIFOryisTFIdedJNNqVGZMDWAV+83GjqEu48dbXPj5YZswgLdFT8ALoIOA9Rhc7XCth2i+sFzr+ZrC8L3fP2Q1aov9wWFupCaaiAoToBD94O4hU0N/8KkOJLaYgT3PrdsXT9Q/BK6cBiLsVsxePCP/tEDbfvLWisTwMdNCD/oZSMysdNu7bmJZWFnf9JsW6hgsC6YbzUC3cza2j0ci3wJJToSbxrgCo0fBKmvmwur8ASb/lor42SjCK8bWJ0Uldk+8PVxnyuZUJlbN393eGWaTdWOoUQxgs/dy9J07TAO5xGzALB8DS05nwdR8XwC3Do6vyLdCXUcFXDBxf1jpnnvAVOuxhtqhmeUU8HzgA3iUAzIBQ7Cq8mRb7benpbp1sNRK7O99vhQbsm846gt5JpDcdeA6OWxb9rFDat2CRKz1S9NKVuDl+EPTiWc7zVw1J1N7wbycNADiq1GpLFiR6b12xztjF/uC9IsNUjLG9Cdf4TjBw9yFTmpDXCNc1YsPJt9p9RE0ImHaylqly6C6vtiSmpUOwPeiigtSc0lwMPDWXMy/c3pcLfrK8bdaZNsF+15PT+b2VmrYdYjbIeHE30Xnn7t8ap7fZ1KhchgHMj1aehabKMFgCOdzAyEYP4wZGHN/1NzPfTehnn81AW2wU3OLhVpRMx+7vyiFyC5Dk4dWMK7MXPJwZiagxOyhc1m03vzliWvDKoahhBcf9/GqwztEvOJIx7FJKjHTuGKY7sRAC6840kf9l6326ojRFS2b/R+kMbVODcXYqW7mXSWh+uUGukEGIKTjDSDjS88ICYGG8CiI5kVmgsRGQSwvEpzwyshYzGNy8BlhjKz6wYY2I1edP2LjC8G2SvA6WDPvKoamsoWsDOw5MOrNb5JV6WUo6SDhRhuUtJF8AsTyMmWSj3qOl58A7KAzI2I+NCPp0Mo9NdkSPJBIn7FSZCZbyMoA7Fqe4ZqKfMRkJBsFAeYyJqI1kNQG7yl9wwzjOI5WkXjmt9tF74vqPgAm0FHG42VV014zdOtivF7Fi8xkC1kZQIUUz3DIr/EEDg3L5Wnh3z/+pC4cUqEm3nOXL32jBcY//rhCVVRUqNvvvMsnPMjYrnhsRemTeGoi2myjr/ViDL6mD/D8VbaQ6k6yQSGfhAcDOb/sgiGStQAnwFwM9hdefJlsr/N5AMuHDx8q5TwhBpNXl43Q5XywwfK9u4XU2yvxqBVpMSPL5errFlZCx0WV7IQThsHXANzl2sBV71lZ0O6NlDUK/fv2/HkBG9fmEyx/E8fdHJiQXBAGTaoFnhppDfgDXFdTJ+iF2A+yhaAGmmcDYj41QH9PXIgQ15cOvQysQS68mMlqKYG2z1zC8FlaMSyefUBLX7bcuUyWQA+URJF1LifaM3Ugk1S7NwWM6VH4ZIVvX7JzpJO3E96UpXQlH1ymC41vzrpogeXGxEhWYDATZpAlgX1AXoA1GVlivx0nkeicBQYEw3OgcRmMIGXTEflo1YTLx9wm3oVEJgiDi49WTZhwNcuJB0x6poQXdaUD66m2ZsbAsw/440ADXsg3oa8eL/wGfYBe4F6DhLE31Kt16zGw4KUwStB0wutvmQ5z0B0SypE+QPuiVGgmf7yjSqflnoSna4BPZMx0Qo8HAJUgJiTGytt0fWsY/voa4A1eQZ4ITXREEgZjiNcNzP0Ap/jEh2s/rn28SWviKGGHFyWM2KXNk2iROmLmMR0oMwOZ54XYrAR23FzGAV8DpiI1gXSk8yC3dcSK/ttoYMVKEgWx4r8RjKyTeM8MXxOQFns77qUESa01aEhyMLcFcUamMpUAjG4HCS+Q+FxCigaCFZbMsH7kAKMRc6TEcbG3cCyLNg4J+hfmPEFps1xLmbE2K1OuIH1yQc0wzbGDEgyakaFB+oA3mdvSkRjvfFtHknCeKGMjUbzM8ekizQQJdUCIeB4QYswmJZ8Eg1kRvUPz0UzxsT6ZcPDuBPHLSAz82DrxQ8o4EFLL/YK0RFYNEO69KZG3MGtcTuKlIZjFMuzDffElvDyIE+KFEWohQBzyDJHa/j27J0PeRfNb96P3oBt4iZ/eyAR04lWcD/FqbrkHm/z0OGl06SWB+5OG1bqyMEeemcMX422SnvuG5IE0Hq2Lq+U4gfbkbX1KhmlzRDI9TdjvPo5JvaCp/n5C5pc6gCpjqNeJM0E1L84vim6qrdG2qideCdj+hwsTqrTEUp12gyuFG4Gc9XsQtHMiApHsz3InHdvcK7X0c/26Gbda9OqMDCc1wFq5BEGfC+BpmOoWh2s3pmgCDZpOzljMAMgEBvfBMuYJsYgFVspNfU08NRGynKtsJ/TUseN3WpwLXTkzYJBVXFzzAwho4zPiESSmRYbEcyFOY8T4ec1UJubABIWQyvjKvGiL9t3HW1HTfnrcaAaI4PxLag6O2O47WqqGGB2LObBDGu0gTaJ8M6EmPK+WnRlqgtqh1rDeDsWa7T+6bcpBOMMI+1qjw+RJRe9OuhevSFqJVnB9L4uXEsl53gTEa/eoGfGZAoxI2GPOeB4hVBjVBBvC89A/yORObvj1RhPZVKFJAk0SaJJAkwSaJNAkgSYJbE8JDBjgtsBEH1OVHRe2aCa348jdti3Hw/ELzh6cSHmutW1b2Dy2/7cKwBtid2O5exMWwI+eXR6VDz9sXlypELtvgx60Q7tfKjvb/45L+qLa+Fg4Hb70EtyBYuNxfMJo9J+r8v6YKyU4pVOG9eKixY/lvZ1rnXS4/3gFlJe7pQkr1s1NWMfjWMtQbPt0pBB4ModH6+qllfWVYzkTsXP7Wl048vWTD1kpxwClAn743ZySTbGlWNgv/df0vP1MfmPj/3gFZBLImIr4EMj+ITAPA5aA50DuKbdNi/w1E3x63uHYsnes2KchZeE8CR9VWZ9YdvjAuVUWto0bF34RCjjijI34YKZ1vU+6Z5mw2K9DcXX0G38p+s4vQ+LIPhtOVrb9HEw4X/I9a0aER3fW0fOeKXorCJ8pfTfO64fjic8xDnx5SVXoUPP2YybYZJ5rnVSWeATbPZXUHAdQ9ADFJ1+M8X/ck9WRJB/JillTvwgFDDpxzWoQUso9YWFDYtJM8pDnWsNmvFL6MHPKTljzBB7Nne2XMdPAMbbcp2fMaXGWZG/m5+nz3CPwBctvT59mpSg4WI2fQmvdMVZmu9YECBwH5TzBoy2mpQdA83hZU+5DklaLbVuNundaCAeBTScLYk2mfxEKGNbTjbQJ//siHDA9GRw1c1zXsW27peM4e6NngDcw59oHgZcT8EDlFrBLvqLIXohixC5PLa62HPfh8e+2nZ1kr/Epjhm2XdcmlAgfCJxHwbrPgXXvJMIOCFnf621oipjb0RRmUkHsFdZ3IP55fNNoTsgNLY5H1LIxaWPKL0IBDYnpNVjgNz8umw93g89jqUPB7MTyz3Yb3VCd7VE2Hm/fWk6iCgI+0RcyNGRTKZCi5IFAGMQsFbWHjnjMqveSSSa6dqgCOuJzPKFErB+8TD+YDx/epU8NM9GcKY8PPd4B/8/godfjfCycCWhzeTeWubsWbVKrLsvwar+pOwvnfFY3S7yKT4IeQ6F7gzAVUD1oWqjcwOUa/6wK2LOs9leWa08AcfDh0mNzpbNRcLRIPghF9CYeb4/9uCoyd3MIbocx4LtwH+DVgRXhhH346LSvIabXf7YicQXw30afj0d5fU6ZEn4uHSaXe+DYvqHLwFgvDJo416Fab8+WIAdxA/6giG5FvwxLxSVuYi3Gjf7vTS14KUjHbXAtGGt6w1ffAFCeQmL4Cou1a2wr9PqVU63vdVb93zfPS8zAGLHo8KmhG+qX5pazXRTAz4knYvFpmNWcmRsZWw5FgcurAeCEzKR8JyKlTCuEMDiUU11YmDf8pcDhBFJw6+DERbbtfsNvgvJ+c+GzSvdAwHz+66nW+s3BZivfpgroibMuazfF/hu++MRsDWbK79nVUr32t9Vhe+PzTXjVEPUzBhLLMkM002vA+oJPHDX/n476x2L9qQdt+VAMyvEVKc8dmcFSK0wU5aoFdmHBsemKQLWfLRhetrpBfEvmRojmmlwQtcNXJIecYit+5X5LQ7oyiIduiBr6+6eOmjnHUStWOvKijCyaUCaKQQx3k0yjCl4CuPy5yUUpb1YT388RSPJWhe593Wa1BfHPwPmum0N06qG2GgrBY5GyRQFykykfYxIuAmfsYTMxM5h28JLPrL/G1et/TySniiiQxRLdEy6TxmC9NhJ39noUnyf20GWMeI4ERw7+gUJ8uSQlrMLLWvsHPwKcUprlxqc5S3mD2V0H1e2FTRQS0+D08bf4ix38YyIiOLTImIECNHk6J/NvkEimteCJhEuyYGzKNB5Tj/Gzf0uo+R9AEUjrebtxSWkKse1jq+4rnKsx1P/de1gdBmW7Xf0S5jjLP30ov33mssy5hsbMpQ3k4ot+x0F8rzYAolrjz17cVBGSt3sbgksvCxJl3AphdD78vGf6Wvgm34sBZOqnx7U4D/jgo1G1Bp+BpOWzBxBGjxlUjB4foNZeD08qfD2dLt4fdH4dVt0aM1foTDNmYPrdB/TfD5CMHH4MjTmAJkG6nFvTwbXDXyOH0+2MoXN7S/Ej4Y0JJEYIwo8mTAuIOPx88Orx78Hoew1v6jUcz3gqqpb/QGFrgcuADATY1cQ/GR/iiTxn18l3ltRb0B17Ib4j5jWmoXmrM6iI1+5v3Bm+nF6wTBcihD8DeVmly8OIo/D3L9IPqJBM7TA0RqbpErgJRyY8NjwL9/mUfI/nFOH7ecDBtK8Y3HCgJQa6G/o5bbUa54A+EfXs7Jhatky7IYIEZ07YuwnnRa2nkH00rpTA9+eTlGp8ehORYLonpFTYzE2jh0PtelSvbHgphDLslvBsFs9imZjpOi+PMS++t89zW3xnn2ex5NAZ3k/Wx/uQx/zghTJzyoJ1dZnGo48K6jTfvuW9/ya61DNnAuCpgfPEY3DqDtybNxP51qG8eYheIW8jhtRR+ExVyt/iIs98+5wvcPPiQTYTywk95DU2NL4HWO6QhhR98kG2yseXEdOtn4TR0hholatW/aTGXTlKbdyQuoYpblaibrr9HtWqpV6UGgthXW3h2gJZf/Toy+rVb4b6d995t9oZ9dkOJkK6F7BhyIc46GZI44E9Quqjf3Bg1j2BbckFGIlthw/s57CqCTz+iKdlEihu0mXEznRjg4eqEdVcdVhD0Lvtog82meOSJvYtWSxcqRuuGV1PeMRLhYy/erT0ClqwtnTPsr3ewvyrr7oiY/0NqH8lysx5DMZx9Aj2CjkF4+FgL2iDz0On9wDpFRCy7h32Mem80gWZHsDzF0z7Bwu3RQ/AeaWv0GjH9IZzvW+Nl/yN9XNyoH2wthTjo5m3ds3qrCjXoIyCF2sFDm21AWtGHmGyhdWrV8sRDG3xADZ0oAKt1OArxV9BoqBphRwD2DMkDQK9wbjelFLOUAFfpmBmR5nKsuVlcEH8WzXundkqbC5/FQ6V7cyPvXgMYZ0gzJBxBjJIt7C5QMv1FQhg1qer0C7FYMuOheMKDFkWfZydUGZUfHrMt8nrT0mNS3LhqFKDPnWUrf1cOEvFR3mkhCUzIncB/eMpmTnekKxlK+iC6DI4COJvZiE27kcPtvr+gIOOyor1wIOPkh7Ak008niinoBDzyKO4FqQPAUy2cNghR8qBOgeno+iuzAkpcxiJdOiDeMlX+vkqf3AglrR039RWxN3ADWlXhHPN4pLM4exU2FzusqlS7VlWNwAPuB/LFYnZZ2mPBXq/XtgERj9nN2YD5iIuwxPz1q1doWY/N0Mt+eJjFqkuXfdRv+8zSLUs3dl3E6auxPhJ3rtq9dqV6qmnZ6jPF+n6v/5Vd3XOmWWo3yq1vldPWxutm1hAG7rDvDlR6ZWkSy7ks9ykL7k19dtNVWPxV9y8oDkkj8RHjK4qvyH51908sAYjXbMBkM5ldXwA/iBw75QORoYMobKnAo6YdzR2NvfaA2UB0gzTLDeNsi7TcgXSzNdzd42DrEkesrUQk3WC+aYe26LyGUy5aSf9/p3/ierNORRo2rRL8sYAZT5TLMjw89Q4fK5YFEgSOU4Bkr7SC2dt65NuS6bn82EKL9VpwKY9LDt0Os5U9Uezh/gbWSjjBpth4J2PcAIOfwOoDV59Ja3Mp3WIXPFjhKEztJAoGPLBP7BHdgwMDyczzTzioZeVaaAHxLPtUo6G8Lk0D1bHxCnwqCMB9wa3pFCHc34svAKDsFY22+KYkx64DtAjEWmkmvQoRzhNeXqNhu8zDMLZK3hnie8FxL3dB9dNA/HlevagiTVpxq+966gj8OeHO+DbEJppMOZJmRH+S6CCKCTDKhlnGfNZk72I/8XKdFLxoCiScglKpImBeRKzMu71e88QkxRo8Zh2BBTKxd83kHpUhKGLZ9SEDo1QQM0PzzGn9gCPNgDodgxkbnGjFBBE+Ul1fsWB5bV7gvqjzSyCDGjLQYzEe/9MqG9b2OrQ/bRP5clbwiCSmII3TBuGtcVSmPyH4PUAMifwQgQQeEI2eRS2EQBFzbTpUewlgh91+f4KlWNguQ4Qny8xe4K2a21MKeqSlnn6l/UzhizZGWG9TNK1xeG9qoJjMFuYLIsZYNInH71DhsDKE5Fr8aep58xLqK+/Q2f1FkFyEB1pakIOoyOW49MyY2EaLFJLkK5MR5lmnl+OviFpNMJ8agGxzHI4w/HSrE84gSEcLrZpMQZc3UZHaNQHHfU3RPgn2/SWBGdF7IO6H6GGBMyCZpqFV3pcElYzDVyuMc1hq0OvIXVnwV8+qZf0tHZt6VwY0r9yY8xYWUtMEvbqHFIR/MkbWj/E4lkd4HBnegTT4oJokahPixVrQexbJ2RjdjSJh+W8fFiDD3RIHuoGcS5bFFdxbG5qGtl2kk7jTvtcjw+9sxsGwtLbVnYIh9TtyOrFdoF1LvaeruhwZaulAbCckuRzm4Tx+Kbou9/XPYlB9AwjCApTLiMc3qM15pHBEpzW3Q2PNpqXMDcgQA+GhBGW7BsB0q+IcJChFUuh6ktgpQ4Uxhi/FCplZJTC/GiNo376Fr6cikUhnoYB1msfAEEafzeucV/aB/pGBdKzTUPfivW7OPmRl6CInsIcWmAjZMpYrhkzmE/rE4YJg4xm+FM5zfENgQKsQcPoJXnwBxGMVDzNLo8yIUxjnYIXP75VCw4tfFMm7iyOP+JY46oaPIjh31RkO7pN0/u0Uv38QPlJ40rReVN7AJrZZoF0bqfgWgMu2nQLxqwrjTBoZWaQEwGgIFUpWpgGhmVaKNo10GKTCjMWq63XWDHbSsGJDKnH2GufbVOmHE9ThM720mg0yjY48UrLGiB6BXB/sWO1zxw4vnF/iCxd2KR3u4fykatLw4m8m8HwcDFkj1EzLlAIRujiCuAvjIUGy9KFEbz3BUlXIvg9KxfcWvimPdOWESpdlVas7j1GMb7CDL2QlOA2+BnDKODmPsSHZXp33ZFjQGO0OGLExp6Ya18EIfcH4/IMj8IQy/St1BMk8ikQ42a0gjzhIp+CkzIKEbBaaIwJwx6TqkxRrNdWUtnJtpLlyCN+GkMK3tReLOWe0kHLqE6jW+V8xAnohU7GOzzw4/bdO9QcELLdY7DSwqMSaxf4/J0hfHyr0N0FwigUJXHwxVQRjLsUkBE40m7SOkVIWERDiFSAWKkuFyXRlbE+3BAV5Slf18e9pzhdXyuL31GTb6kBFjVdfY/miQO4OMYTz6rdRrdqhWRTaJJAkwSaJNAkgSYJNEmgSQJNEmhQAv8Lix8k/gNx6O4AAAAASUVORK5CYII=", U = (e) => ({
|
|
20
20
|
conversationSettings: {
|
|
21
21
|
openingRemark: e?.conversation_settings?.opening_remark,
|
|
22
22
|
predefinedQuestions: e?.conversation_settings?.predefined_questions,
|
|
@@ -1433,7 +1433,7 @@ var He = (e) => {
|
|
|
1433
1433
|
t.defaults.baseURL = e.requestData.urlPrefix, t.interceptors.request.clear(), t.interceptors.response.clear(), Ve(t, e), e.interceptors?.request && t.interceptors.request.use(e.interceptors.request), e.interceptors?.response && t.interceptors.response.use(e.interceptors.response);
|
|
1434
1434
|
}
|
|
1435
1435
|
};
|
|
1436
|
-
}, Ue = (e) => ({ getAgentInfo: (t) => e.get("agent/info/", void 0, t).then(
|
|
1436
|
+
}, Ue = (e) => ({ getAgentInfo: (t) => e.get("agent/info/", void 0, t).then(U) }), We = (e) => ({
|
|
1437
1437
|
getMessages: (t, n, r) => e.get("session_content/content/", {
|
|
1438
1438
|
session_code: t,
|
|
1439
1439
|
limit: n
|
|
@@ -1860,7 +1860,7 @@ var pt = { class: "history-group" }, mt = { class: "history-group-title" }, ht =
|
|
|
1860
1860
|
return (t, n) => (S(), a("div", {
|
|
1861
1861
|
class: g(["history-item", { active: i.isActive }]),
|
|
1862
1862
|
onClick: p
|
|
1863
|
-
}, [i.isEditing ? (S(), r(j(
|
|
1863
|
+
}, [i.isEditing ? (S(), r(j(se), {
|
|
1864
1864
|
key: 1,
|
|
1865
1865
|
ref_key: "editInputRef",
|
|
1866
1866
|
ref: d,
|
|
@@ -1911,14 +1911,14 @@ var pt = { class: "history-group" }, mt = { class: "history-group-title" }, ht =
|
|
|
1911
1911
|
let n = e, r = t, i = (e) => {
|
|
1912
1912
|
r("update:modelValue", e);
|
|
1913
1913
|
};
|
|
1914
|
-
return (e, t) => (S(), a("div", bt, [l(j(
|
|
1914
|
+
return (e, t) => (S(), a("div", bt, [l(j(se), {
|
|
1915
1915
|
"model-value": n.modelValue,
|
|
1916
1916
|
behavior: "simplicity",
|
|
1917
1917
|
placeholder: n.placeholder || j(Z)("搜索会话名称"),
|
|
1918
1918
|
style: { height: "22px" },
|
|
1919
1919
|
"onUpdate:modelValue": i
|
|
1920
1920
|
}, {
|
|
1921
|
-
suffix: L(() => [o("span", xt, [l(j(
|
|
1921
|
+
suffix: L(() => [o("span", xt, [l(j(ge))])]),
|
|
1922
1922
|
_: 1
|
|
1923
1923
|
}, 8, ["model-value", "placeholder"])]));
|
|
1924
1924
|
}
|
|
@@ -2023,7 +2023,7 @@ var pt = { class: "history-group" }, mt = { class: "history-group-title" }, ht =
|
|
|
2023
2023
|
"current-session-code",
|
|
2024
2024
|
"sessions",
|
|
2025
2025
|
"title"
|
|
2026
|
-
]))), 128)) : (S(), r(j(
|
|
2026
|
+
]))), 128)) : (S(), r(j(oe), {
|
|
2027
2027
|
key: 1,
|
|
2028
2028
|
description: u.value ? j(Z)("搜索为空") : j(Z)("暂无对话"),
|
|
2029
2029
|
scene: "part",
|
|
@@ -2120,7 +2120,7 @@ var kt = { class: "left-section" }, At = { class: "logo" }, jt = ["src"], Mt = {
|
|
|
2120
2120
|
showShare: !1
|
|
2121
2121
|
}) },
|
|
2122
2122
|
sessionBusinessManager: { default: void 0 },
|
|
2123
|
-
renderMode: { default:
|
|
2123
|
+
renderMode: { default: ae.Chat }
|
|
2124
2124
|
},
|
|
2125
2125
|
emits: [
|
|
2126
2126
|
"close",
|
|
@@ -2145,9 +2145,9 @@ var kt = { class: "left-section" }, At = { class: "logo" }, jt = ["src"], Mt = {
|
|
|
2145
2145
|
onSessionDelete: (e) => d("history-session-delete", e),
|
|
2146
2146
|
onSessionRename: (e, t) => d("history-session-rename", e, t)
|
|
2147
2147
|
}));
|
|
2148
|
-
}, M = n(() => u.hasPermission ? u.enableChatSession ? u.title || `${u.agentName || ""}-${u.sessionName || ""}` : u.agentName : Z("无智能体使用权限")), N = n(() => u.isCompressionHeight ? "bkai-morenchicun" : "bkai-yasuo"), F = n(() => u.isCompressionHeight ? Z("恢复默认尺寸") : Z("缩小高度")), z = n(() => u.hasPermission),
|
|
2149
|
-
if (!
|
|
2150
|
-
|
|
2148
|
+
}, M = n(() => u.hasPermission ? u.enableChatSession ? u.title || `${u.agentName || ""}-${u.sessionName || ""}` : u.agentName : Z("无智能体使用权限")), N = n(() => u.isCompressionHeight ? "bkai-morenchicun" : "bkai-yasuo"), F = n(() => u.isCompressionHeight ? Z("恢复默认尺寸") : Z("缩小高度")), z = n(() => u.hasPermission), B = (e) => z.value ? e : Z("暂无使用权限"), ee = () => ({ cursor: z.value ? "pointer" : "not-allowed" }), V = w(!1), te = async () => {
|
|
2149
|
+
if (!V.value) {
|
|
2150
|
+
V.value = !0;
|
|
2151
2151
|
try {
|
|
2152
2152
|
if (u.sessionBusinessManager) try {
|
|
2153
2153
|
let e = await u.sessionBusinessManager.createNewSession();
|
|
@@ -2157,31 +2157,31 @@ var kt = { class: "left-section" }, At = { class: "logo" }, jt = ["src"], Mt = {
|
|
|
2157
2157
|
createdAt: e.createdAt
|
|
2158
2158
|
});
|
|
2159
2159
|
} catch (e) {
|
|
2160
|
-
console.error("Failed to create new session:", e),
|
|
2160
|
+
console.error("Failed to create new session:", e), le({
|
|
2161
2161
|
theme: "error",
|
|
2162
2162
|
message: Z("创建会话失败")
|
|
2163
2163
|
});
|
|
2164
2164
|
}
|
|
2165
2165
|
d("new-chat");
|
|
2166
2166
|
} finally {
|
|
2167
|
-
|
|
2167
|
+
V.value = !1;
|
|
2168
2168
|
}
|
|
2169
2169
|
}
|
|
2170
|
-
},
|
|
2170
|
+
}, ne = (e) => {
|
|
2171
2171
|
e.stopPropagation(), u.sessionBusinessManager ? (O || A(), O && O.handleTriggerClick(e)) : d("history-click", e);
|
|
2172
|
-
},
|
|
2172
|
+
}, H = () => {
|
|
2173
2173
|
d("help-click");
|
|
2174
|
-
},
|
|
2174
|
+
}, re = (e) => {
|
|
2175
2175
|
e.stopPropagation(), O && O.isVisible() && O.hide(), h.value && (T.value ? h.value.hide() : h.value.show());
|
|
2176
|
-
},
|
|
2176
|
+
}, ie = () => {
|
|
2177
2177
|
h.value?.hide(), de();
|
|
2178
|
-
},
|
|
2178
|
+
}, oe = () => {
|
|
2179
2179
|
!u.hasSessionContents || u.autoGenerateLoading || d("auto-generate-name");
|
|
2180
2180
|
}, ue = () => {
|
|
2181
2181
|
u.hasSessionContents && (h.value?.hide(), d("share"));
|
|
2182
2182
|
}, de = () => {
|
|
2183
|
-
document.removeEventListener("click",
|
|
2184
|
-
document.addEventListener("click",
|
|
2183
|
+
document.removeEventListener("click", U), x.value = u.sessionName || "", _.value = !0, setTimeout(() => {
|
|
2184
|
+
document.addEventListener("click", U);
|
|
2185
2185
|
}, 100), setTimeout(() => {
|
|
2186
2186
|
if (C.value) try {
|
|
2187
2187
|
let e = C.value;
|
|
@@ -2195,25 +2195,25 @@ var kt = { class: "left-section" }, At = { class: "logo" }, jt = ["src"], Mt = {
|
|
|
2195
2195
|
}, he = () => {
|
|
2196
2196
|
let e = x.value.trim();
|
|
2197
2197
|
if (!e) {
|
|
2198
|
-
|
|
2198
|
+
ge();
|
|
2199
2199
|
return;
|
|
2200
2200
|
}
|
|
2201
2201
|
d("rename", e), _.value = !1, x.value = "";
|
|
2202
|
-
},
|
|
2202
|
+
}, ge = () => {
|
|
2203
2203
|
_.value = !1, x.value = "";
|
|
2204
|
-
},
|
|
2205
|
-
x.value = e, t.key === "Enter" ? he() : t.key === "Escape" &&
|
|
2206
|
-
},
|
|
2204
|
+
}, _e = (e, t) => {
|
|
2205
|
+
x.value = e, t.key === "Enter" ? he() : t.key === "Escape" && ge();
|
|
2206
|
+
}, U = (e) => {
|
|
2207
2207
|
if (!_.value) return;
|
|
2208
2208
|
let t = e.target, n = document.querySelector(".rename-tooltip");
|
|
2209
|
-
n && !n.contains(t) &&
|
|
2209
|
+
n && !n.contains(t) && ge();
|
|
2210
2210
|
};
|
|
2211
2211
|
return I(() => u.autoGenerateLoading, (e, t) => {
|
|
2212
2212
|
t && !e && T.value && h.value?.hide();
|
|
2213
2213
|
}), b(() => {
|
|
2214
|
-
u.sessionBusinessManager && A(), document.addEventListener("click",
|
|
2214
|
+
u.sessionBusinessManager && A(), document.addEventListener("click", U);
|
|
2215
2215
|
}), y(() => {
|
|
2216
|
-
O &&= (O.destroy(), null), document.removeEventListener("click",
|
|
2216
|
+
O &&= (O.destroy(), null), document.removeEventListener("click", U);
|
|
2217
2217
|
}), t({
|
|
2218
2218
|
headerRef: p,
|
|
2219
2219
|
historyIconRef: m
|
|
@@ -2225,25 +2225,25 @@ var kt = { class: "left-section" }, At = { class: "logo" }, jt = ["src"], Mt = {
|
|
|
2225
2225
|
o("div", kt, [
|
|
2226
2226
|
o("div", At, [o("img", {
|
|
2227
2227
|
alt: "logo",
|
|
2228
|
-
src: j(
|
|
2228
|
+
src: j(ve)
|
|
2229
2229
|
}, null, 8, jt)]),
|
|
2230
2230
|
o("div", { class: g(["title", { "title-with-tooltip": _.value }]) }, [
|
|
2231
2231
|
c(k(M.value) + " ", 1),
|
|
2232
2232
|
i(" 重命名 tooltip 直接绑定在 title 上 "),
|
|
2233
|
-
_.value ? (S(), a("div", Mt, [o("div", Nt, [l(j(
|
|
2233
|
+
_.value ? (S(), a("div", Mt, [o("div", Nt, [l(j(se), {
|
|
2234
2234
|
ref_key: "renameInputRef",
|
|
2235
2235
|
ref: C,
|
|
2236
2236
|
modelValue: x.value,
|
|
2237
2237
|
"onUpdate:modelValue": n[0] ||= (e) => x.value = e,
|
|
2238
2238
|
class: "rename-input",
|
|
2239
2239
|
placeholder: j(Z)("请输入新的会话名称"),
|
|
2240
|
-
onKeyup:
|
|
2240
|
+
onKeyup: _e
|
|
2241
2241
|
}, null, 8, ["modelValue", "placeholder"]), o("div", { class: "rename-buttons" }, [o("i", {
|
|
2242
2242
|
class: "bkai-icon bkai-check-1 rename-btn confirm-btn",
|
|
2243
2243
|
onClick: he
|
|
2244
2244
|
}), o("i", {
|
|
2245
2245
|
class: "bkai-icon bkai-close rename-btn cancel-btn",
|
|
2246
|
-
onClick:
|
|
2246
|
+
onClick: ge
|
|
2247
2247
|
})])])])) : i("v-if", !0)
|
|
2248
2248
|
], 2),
|
|
2249
2249
|
i(" 更多图标下拉菜单 - 使用 vue-tippy "),
|
|
@@ -2265,13 +2265,13 @@ var kt = { class: "left-section" }, At = { class: "logo" }, jt = ["src"], Mt = {
|
|
|
2265
2265
|
u.dropdownMenuConfig?.showRename ? (S(), a("div", {
|
|
2266
2266
|
key: 0,
|
|
2267
2267
|
class: "tippy-menu-item",
|
|
2268
|
-
onClick:
|
|
2268
|
+
onClick: ie
|
|
2269
2269
|
}, [n[7] ||= o("i", { class: "bkai-icon bkai-bianji" }, null, -1), o("span", null, k(j(Z)("重命名")), 1)])) : i("v-if", !0),
|
|
2270
2270
|
u.dropdownMenuConfig?.showAutoGenerate ? R((S(), a("div", {
|
|
2271
2271
|
key: 1,
|
|
2272
2272
|
class: g(["tippy-menu-item", { disabled: !u.hasSessionContents || u.autoGenerateLoading }]),
|
|
2273
|
-
onClick:
|
|
2274
|
-
}, [u.autoGenerateLoading ? (S(), r(j(
|
|
2273
|
+
onClick: oe
|
|
2274
|
+
}, [u.autoGenerateLoading ? (S(), r(j(ce), {
|
|
2275
2275
|
key: 0,
|
|
2276
2276
|
mode: "spin",
|
|
2277
2277
|
size: "mini",
|
|
@@ -2283,7 +2283,7 @@ var kt = { class: "left-section" }, At = { class: "logo" }, jt = ["src"], Mt = {
|
|
|
2283
2283
|
delay: [300, 0],
|
|
2284
2284
|
appendTo: E
|
|
2285
2285
|
}]]) : i("v-if", !0),
|
|
2286
|
-
u.dropdownMenuConfig?.showShare && u.renderMode !== j(
|
|
2286
|
+
u.dropdownMenuConfig?.showShare && u.renderMode !== j(ae).Test ? R((S(), a("div", {
|
|
2287
2287
|
key: 2,
|
|
2288
2288
|
class: g(["tippy-menu-item", { disabled: !u.hasSessionContents }]),
|
|
2289
2289
|
onClick: ue
|
|
@@ -2297,7 +2297,7 @@ var kt = { class: "left-section" }, At = { class: "logo" }, jt = ["src"], Mt = {
|
|
|
2297
2297
|
])) : i("v-if", !0)]),
|
|
2298
2298
|
default: L(() => [o("span", {
|
|
2299
2299
|
class: "bkai-icon bkai-more",
|
|
2300
|
-
onClick:
|
|
2300
|
+
onClick: re
|
|
2301
2301
|
})]),
|
|
2302
2302
|
_: 1
|
|
2303
2303
|
}, 512)) : i("v-if", !0)
|
|
@@ -2310,12 +2310,12 @@ var kt = { class: "left-section" }, At = { class: "logo" }, jt = ["src"], Mt = {
|
|
|
2310
2310
|
class: g([
|
|
2311
2311
|
"bkai-icon",
|
|
2312
2312
|
"bkai-xinzengliaotian",
|
|
2313
|
-
{ disabled: !z.value ||
|
|
2313
|
+
{ disabled: !z.value || V.value }
|
|
2314
2314
|
]),
|
|
2315
|
-
style: v(
|
|
2316
|
-
onClick: n[3] ||= (e) => z.value && !
|
|
2315
|
+
style: v(ee()),
|
|
2316
|
+
onClick: n[3] ||= (e) => z.value && !V.value ? te() : void 0
|
|
2317
2317
|
}, null, 6)), [[j(f), {
|
|
2318
|
-
content:
|
|
2318
|
+
content: V.value ? j(Z)("正在创建会话...") : B(j(Z)("新增会话")),
|
|
2319
2319
|
boundary: "parent"
|
|
2320
2320
|
}]]) : i("v-if", !0),
|
|
2321
2321
|
i(" 历史会话按钮 "),
|
|
@@ -2328,16 +2328,16 @@ var kt = { class: "left-section" }, At = { class: "logo" }, jt = ["src"], Mt = {
|
|
|
2328
2328
|
"bkai-history",
|
|
2329
2329
|
{ disabled: !z.value }
|
|
2330
2330
|
]),
|
|
2331
|
-
style: v(
|
|
2332
|
-
onClick: n[4] ||= (e) => z.value ?
|
|
2331
|
+
style: v(ee()),
|
|
2332
|
+
onClick: n[4] ||= (e) => z.value ? ne(e) : void 0
|
|
2333
2333
|
}, null, 6)), [[j(f), {
|
|
2334
|
-
content:
|
|
2334
|
+
content: B(j(Z)("历史会话")),
|
|
2335
2335
|
boundary: "parent"
|
|
2336
2336
|
}]]) : i("v-if", !0),
|
|
2337
2337
|
e.chatGroup?.enabled ? R((S(), a("i", {
|
|
2338
2338
|
key: 2,
|
|
2339
2339
|
class: "bkai-icon bkai-zhushou",
|
|
2340
|
-
onClick:
|
|
2340
|
+
onClick: H
|
|
2341
2341
|
}, null, 512)), [[j(f), {
|
|
2342
2342
|
content: j(Z)("转人工"),
|
|
2343
2343
|
boundary: "parent"
|
|
@@ -3092,84 +3092,108 @@ var Kt = class {
|
|
|
3092
3092
|
reset() {
|
|
3093
3093
|
this.clearSelection(), this.disableSelectionMode(), this.stopEditingSession(), this.clearLoadingStates();
|
|
3094
3094
|
}
|
|
3095
|
+
}, qt = class extends Error {
|
|
3096
|
+
constructor() {
|
|
3097
|
+
super("[ChatBot] Initialization was superseded by a newer init"), this.name = "ChatBotInitStaleError";
|
|
3098
|
+
}
|
|
3095
3099
|
};
|
|
3096
|
-
|
|
3097
|
-
|
|
3098
|
-
function qt(e) {
|
|
3099
|
-
let { props: t, emit: n, scrollToBottom: r } = e, i = O(null), a = O(null), o = O(null), s = O(null), c = w(!1), l = w(!t.chatHelper), u = w(null), d = () => t.chatHelper ? !t.chatHelper.agent || !t.chatHelper.session || !t.chatHelper.message ? {
|
|
3100
|
+
function Jt(e) {
|
|
3101
|
+
let { props: t, emit: r, scrollToBottom: i } = e, a = O(null), o = O(null), s = O(null), c = O(null), l = w(!1), u = w(!t.chatHelper), d = w(null), f = n(() => l.value), p = () => t.chatHelper ? !t.chatHelper.agent || !t.chatHelper.session || !t.chatHelper.message ? {
|
|
3100
3102
|
valid: !1,
|
|
3101
3103
|
error: "[ChatBot] Invalid chatHelper: missing required modules (agent, session, message)"
|
|
3102
3104
|
} : { valid: !0 } : t.url ? { valid: !0 } : {
|
|
3103
3105
|
valid: !1,
|
|
3104
3106
|
error: "[ChatBot] Neither chatHelper nor url provided. Component requires at least one."
|
|
3105
|
-
},
|
|
3106
|
-
let e =
|
|
3107
|
-
if (!e.valid) return console.error(e.error),
|
|
3107
|
+
}, m = () => {
|
|
3108
|
+
let e = p();
|
|
3109
|
+
if (!e.valid) return console.error(e.error), d.value = Error(e.error), null;
|
|
3108
3110
|
if (t.chatHelper) return t.chatHelper;
|
|
3109
|
-
let
|
|
3111
|
+
let n = new Y({
|
|
3110
3112
|
onStart: () => {
|
|
3111
|
-
|
|
3113
|
+
r("receive-start");
|
|
3112
3114
|
},
|
|
3113
3115
|
onMessage: (e) => {
|
|
3114
|
-
|
|
3116
|
+
r("receive-text");
|
|
3115
3117
|
},
|
|
3116
3118
|
onDone: () => {
|
|
3117
|
-
|
|
3119
|
+
r("receive-end"), i();
|
|
3118
3120
|
},
|
|
3119
3121
|
onError: (e) => {
|
|
3120
|
-
|
|
3122
|
+
r("error", e);
|
|
3121
3123
|
}
|
|
3122
3124
|
}), a = Xe({
|
|
3123
3125
|
requestData: Ze(rt(t.url), () => A(t.requestOptions)),
|
|
3124
|
-
protocol:
|
|
3126
|
+
protocol: n
|
|
3125
3127
|
});
|
|
3126
|
-
return
|
|
3127
|
-
},
|
|
3128
|
+
return n.injectMessageModule(a.message), a;
|
|
3129
|
+
}, h = async (e, t) => {
|
|
3128
3130
|
if (e) try {
|
|
3129
3131
|
let n = e.session.current?.value?.sessionCode ?? "";
|
|
3130
3132
|
await e.agent.stopChat(n), t && e.agent.abortChat();
|
|
3131
3133
|
} catch {}
|
|
3132
|
-
},
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
let
|
|
3134
|
+
}, g = 0, _ = null, v = null, b = null, x = (e) => {
|
|
3135
|
+
b &&= (e ? b.reject(e) : b.resolve(), null), _ = null;
|
|
3136
|
+
}, S = (e) => {
|
|
3137
|
+
if (e !== g) throw new qt();
|
|
3138
|
+
}, C = async (e) => {
|
|
3139
|
+
let n = a.value, i = u.value;
|
|
3140
|
+
l.value = !1, d.value = null, u.value = !t.chatHelper, await h(n, i), S(e), a.value = null, o.value = null, s.value = null, c.value = null;
|
|
3141
|
+
let f = m();
|
|
3142
|
+
if (!f) throw d.value ?? /* @__PURE__ */ Error("[ChatBot] Failed to create chatHelper");
|
|
3143
|
+
let p = new zt(f.session, f.agent, null, {
|
|
3138
3144
|
enableChatSession: !0,
|
|
3139
3145
|
autoSwitchToInitialSession: !!t.sessionCode,
|
|
3140
3146
|
loadRecentSessionOnMount: t.autoLoad,
|
|
3141
3147
|
initialSessionCode: t.sessionCode,
|
|
3142
3148
|
alwaysCreateNewSession: t.alwaysCreateNewSession
|
|
3143
|
-
}),
|
|
3149
|
+
}), g = new Rt(f.agent, f.message, f.session, null, {
|
|
3144
3150
|
openingRemark: t.helloText,
|
|
3145
3151
|
predefinedQuestions: t.prompts,
|
|
3146
3152
|
placeholder: t.placeholder
|
|
3147
|
-
}),
|
|
3148
|
-
|
|
3153
|
+
}), _ = new Vt(null, t.shortcuts || []);
|
|
3154
|
+
a.value = f, o.value = p, s.value = g, c.value = _;
|
|
3149
3155
|
try {
|
|
3150
|
-
|
|
3151
|
-
c.value = !0, n("agent-info-loaded", h);
|
|
3156
|
+
u.value && (await Promise.all([f.agent.getAgentInfo(), f.session.getSessions()]), S(e), await p.loadRecentSession({ skipLoadSessions: !0 }), S(e)), S(e), l.value = !0, r("agent-info-loaded", f);
|
|
3152
3157
|
} catch (t) {
|
|
3153
|
-
|
|
3154
|
-
console.error("Failed to initialize ChatBot:", t), u.value = t, n("error", t);
|
|
3158
|
+
throw S(e), console.error("Failed to initialize ChatBot:", t), d.value = t, r("error", t), t;
|
|
3155
3159
|
}
|
|
3160
|
+
}, T = () => {
|
|
3161
|
+
x(new qt()), v = null;
|
|
3162
|
+
let e = ++g;
|
|
3163
|
+
_ = new Promise((t, n) => {
|
|
3164
|
+
b = {
|
|
3165
|
+
resolve: t,
|
|
3166
|
+
reject: n
|
|
3167
|
+
}, C(e).then(() => {
|
|
3168
|
+
b &&= (v = Promise.resolve(), b.resolve(), null);
|
|
3169
|
+
}).catch((e) => {
|
|
3170
|
+
if (b) {
|
|
3171
|
+
let t = e instanceof Error ? e : Error(String(e));
|
|
3172
|
+
b.reject(t), b = null;
|
|
3173
|
+
}
|
|
3174
|
+
}).finally(() => {
|
|
3175
|
+
e === g && (_ = null);
|
|
3176
|
+
});
|
|
3177
|
+
}), _.catch(() => {});
|
|
3156
3178
|
};
|
|
3157
|
-
return I([() => t.url, () => t.chatHelper], () =>
|
|
3158
|
-
|
|
3179
|
+
return I([() => t.url, () => t.chatHelper], () => T(), { immediate: !0 }), y(() => {
|
|
3180
|
+
x(), h(a.value, u.value);
|
|
3159
3181
|
}), {
|
|
3160
|
-
chatHelper:
|
|
3161
|
-
isStandaloneMode:
|
|
3162
|
-
isInitialized:
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3182
|
+
chatHelper: a,
|
|
3183
|
+
isStandaloneMode: u,
|
|
3184
|
+
isInitialized: l,
|
|
3185
|
+
isReady: f,
|
|
3186
|
+
initError: d,
|
|
3187
|
+
whenReady: () => l.value ? (v ||= Promise.resolve(), v) : d.value ? Promise.reject(d.value) : _ || Promise.resolve(),
|
|
3188
|
+
chatBusinessManager: s,
|
|
3189
|
+
sessionBusinessManager: o,
|
|
3190
|
+
shortcutManager: c
|
|
3167
3191
|
};
|
|
3168
3192
|
}
|
|
3169
3193
|
//#endregion
|
|
3170
3194
|
//#region src/components/composables/use-chatbot-state.ts
|
|
3171
|
-
function
|
|
3172
|
-
let { props: t, chatHelper: r, chatBusinessManager: i, sessionBusinessManager: a, shortcutManager: o, isStandaloneMode: s, isInitialized: c, selectedShortcut: l } = e, u = n(() => i.value?.isStopLoading.value ?
|
|
3195
|
+
function Yt(e) {
|
|
3196
|
+
let { props: t, chatHelper: r, chatBusinessManager: i, sessionBusinessManager: a, shortcutManager: o, isStandaloneMode: s, isInitialized: c, selectedShortcut: l } = e, u = n(() => i.value?.isStopLoading.value ? H.StopLoading : ((t.chatHelper || r.value)?.agent)?.isChatting?.value ? H.Streaming : H.Complete), d = n(() => u.value === H.Streaming ? re.Disabled : void 0), f = n(() => i.value?.messages.value ?? []), p = n(() => i.value?.isMessagesLoading.value ?? !1);
|
|
3173
3197
|
return {
|
|
3174
3198
|
messageStatus: u,
|
|
3175
3199
|
messageToolsStatus: d,
|
|
@@ -3191,7 +3215,7 @@ function Jt(e) {
|
|
|
3191
3215
|
}
|
|
3192
3216
|
//#endregion
|
|
3193
3217
|
//#region src/components/composables/use-message-sender.ts
|
|
3194
|
-
function
|
|
3218
|
+
function Xt(e) {
|
|
3195
3219
|
let { emit: t, chatHelper: n, chatBusinessManager: r, selectedShortcut: i, selectedResources: a } = e, o = O([[]]), s = O(""), c = (e, t) => {
|
|
3196
3220
|
o.value = e, a.value = t;
|
|
3197
3221
|
}, l = async (e, i = {}) => {
|
|
@@ -3234,15 +3258,15 @@ function Yt(e) {
|
|
|
3234
3258
|
}
|
|
3235
3259
|
//#endregion
|
|
3236
3260
|
//#region src/components/composables/use-share-selection.ts
|
|
3237
|
-
function
|
|
3261
|
+
function Zt(e) {
|
|
3238
3262
|
let { emit: t, chatHelper: n, isStandaloneMode: r } = e, i = async (e) => {
|
|
3239
3263
|
if (!(!n.value || e.length === 0)) try {
|
|
3240
|
-
await it((await new Bt(n.value.message, n.value.session).shareMessages(e)).shareUrl),
|
|
3264
|
+
await it((await new Bt(n.value.message, n.value.session).shareMessages(e)).shareUrl), le({
|
|
3241
3265
|
message: "分享链接已复制到剪贴板",
|
|
3242
3266
|
theme: "success"
|
|
3243
3267
|
});
|
|
3244
3268
|
} catch (e) {
|
|
3245
|
-
console.error("[ChatBot] Failed to share messages:", e),
|
|
3269
|
+
console.error("[ChatBot] Failed to share messages:", e), le({
|
|
3246
3270
|
message: "分享失败,请重试",
|
|
3247
3271
|
theme: "error"
|
|
3248
3272
|
});
|
|
@@ -3254,7 +3278,7 @@ function Xt(e) {
|
|
|
3254
3278
|
}
|
|
3255
3279
|
//#endregion
|
|
3256
3280
|
//#region src/components/composables/use-shortcuts.ts
|
|
3257
|
-
function
|
|
3281
|
+
function Qt(e) {
|
|
3258
3282
|
let { props: t, emit: r, shortcutManager: i, doSendMessage: a, selectedShortcut: o } = e, s = n(() => i.value?.effectiveShortcuts.value ?? []), c = (e, t) => {
|
|
3259
3283
|
let n = e, r;
|
|
3260
3284
|
if (r = n.enable_fill_back && n.fill_back_component_key ? n.fill_back_component_key : n.components?.find((e) => e.fillBack)?.key, r && t) {
|
|
@@ -3348,7 +3372,7 @@ function Zt(e) {
|
|
|
3348
3372
|
}
|
|
3349
3373
|
//#endregion
|
|
3350
3374
|
//#region src/components/composables/use-tool-actions.ts
|
|
3351
|
-
function
|
|
3375
|
+
function $t(e) {
|
|
3352
3376
|
let { emit: t, chatHelper: n, chatBusinessManager: r, cite: i, focusInput: a, scrollToBottom: o, getShortcutFromMessage: s, buildShortcutProperty: c } = e, l = async (e) => {
|
|
3353
3377
|
if (!r.value || !n.value) {
|
|
3354
3378
|
console.error("[ChatBot] Cannot delete messages: chatBusinessManager not initialized");
|
|
@@ -3394,7 +3418,7 @@ function Qt(e) {
|
|
|
3394
3418
|
let a = [];
|
|
3395
3419
|
for (let e = i + 1; e < t.length; e++) {
|
|
3396
3420
|
let n = t[e];
|
|
3397
|
-
if (n.role ===
|
|
3421
|
+
if (n.role === ne.User) break;
|
|
3398
3422
|
a.push(n);
|
|
3399
3423
|
}
|
|
3400
3424
|
let o = [e, ...a];
|
|
@@ -3406,7 +3430,7 @@ function Qt(e) {
|
|
|
3406
3430
|
return {
|
|
3407
3431
|
handleAgentAction: async (e, t) => {
|
|
3408
3432
|
if (e.id === "cite") {
|
|
3409
|
-
i.value = t.filter((e) => e.role !==
|
|
3433
|
+
i.value = t.filter((e) => e.role !== ne.Reasoning).map((e) => typeof e.content == "string" ? e.content : JSON.stringify(e.content || "")).join("\n"), a();
|
|
3410
3434
|
return;
|
|
3411
3435
|
}
|
|
3412
3436
|
if (e.id === "rebuild") {
|
|
@@ -3525,7 +3549,7 @@ function Qt(e) {
|
|
|
3525
3549
|
}
|
|
3526
3550
|
//#endregion
|
|
3527
3551
|
//#region src/components/chat-bot.vue
|
|
3528
|
-
var
|
|
3552
|
+
var en = /* @__PURE__ */ u({
|
|
3529
3553
|
__name: "chat-bot",
|
|
3530
3554
|
props: {
|
|
3531
3555
|
autoLoad: {
|
|
@@ -3538,7 +3562,7 @@ var $t = /* @__PURE__ */ u({
|
|
|
3538
3562
|
type: Boolean,
|
|
3539
3563
|
default: !1
|
|
3540
3564
|
},
|
|
3541
|
-
renderMode: { default:
|
|
3565
|
+
renderMode: { default: ae.Chat },
|
|
3542
3566
|
extCls: {},
|
|
3543
3567
|
height: {},
|
|
3544
3568
|
helloText: {},
|
|
@@ -3579,147 +3603,149 @@ var $t = /* @__PURE__ */ u({
|
|
|
3579
3603
|
],
|
|
3580
3604
|
setup(t, { expose: r, emit: o }) {
|
|
3581
3605
|
let c = t, u = o, f = N(), m = w(), y = w(), b = w(), x = O([]), C = w(null), T = n({
|
|
3582
|
-
get: () => c.renderMode ??
|
|
3606
|
+
get: () => c.renderMode ?? ae.Chat,
|
|
3583
3607
|
set: () => {}
|
|
3584
3608
|
}), E = async () => {
|
|
3585
3609
|
await h(), m.value && (m.value.scrollTop = m.value.scrollHeight);
|
|
3586
3610
|
}, k = () => {
|
|
3587
3611
|
b.value?.focus?.();
|
|
3588
|
-
}, { chatHelper: A, isStandaloneMode: M, isInitialized: P,
|
|
3612
|
+
}, { chatHelper: A, isStandaloneMode: M, isInitialized: P, isReady: F, initError: I, whenReady: R, chatBusinessManager: z, sessionBusinessManager: B, shortcutManager: V } = Jt({
|
|
3589
3613
|
props: c,
|
|
3590
3614
|
emit: u,
|
|
3591
3615
|
scrollToBottom: E
|
|
3592
|
-
}), { userInput:
|
|
3616
|
+
}), { userInput: ne, cite: H, handleUpdateModelValue: re, doSendMessage: ie, handleSendMessage: oe, handleUpload: se, handleStopSending: ce, stopGeneration: le } = Xt({
|
|
3593
3617
|
emit: u,
|
|
3594
3618
|
chatHelper: A,
|
|
3595
|
-
chatBusinessManager:
|
|
3619
|
+
chatBusinessManager: z,
|
|
3596
3620
|
selectedShortcut: C,
|
|
3597
3621
|
selectedResources: x
|
|
3598
|
-
}), { handleSelectShortcut:
|
|
3622
|
+
}), { handleSelectShortcut: ue, handleCloseShortcut: de, handleShortcutSubmit: fe, selectShortcutWithText: pe, getShortcutFromMessage: me, buildShortcutProperty: he, sendShortcutDirectly: ge } = Qt({
|
|
3599
3623
|
props: c,
|
|
3600
3624
|
emit: u,
|
|
3601
3625
|
chatHelper: A,
|
|
3602
|
-
shortcutManager:
|
|
3603
|
-
doSendMessage:
|
|
3626
|
+
shortcutManager: V,
|
|
3627
|
+
doSendMessage: ie,
|
|
3604
3628
|
selectedShortcut: C
|
|
3605
|
-
}), { messageStatus:
|
|
3629
|
+
}), { messageStatus: _e, messageToolsStatus: ve, messages: U, isMessagesLoading: W, isGenerating: G, currentSession: K, isWelcomeState: ye, openingRemark: be, effectiveResources: xe, effectivePrompts: Se, effectiveSupportUpload: Ce, chatbotStyle: we, filteredShortcuts: Te } = Yt({
|
|
3606
3630
|
props: c,
|
|
3607
3631
|
chatHelper: A,
|
|
3608
|
-
chatBusinessManager:
|
|
3609
|
-
sessionBusinessManager:
|
|
3610
|
-
shortcutManager:
|
|
3632
|
+
chatBusinessManager: z,
|
|
3633
|
+
sessionBusinessManager: B,
|
|
3634
|
+
shortcutManager: V,
|
|
3611
3635
|
isStandaloneMode: M,
|
|
3612
3636
|
isInitialized: P,
|
|
3613
3637
|
selectedShortcut: C
|
|
3614
|
-
}), { handleAgentAction:
|
|
3638
|
+
}), { handleAgentAction: Ee, handleAgentFeedback: De, handleUserAction: q, handleUserInputConfirm: J, handleUserShortcutConfirm: Oe, handleStopStreaming: Y } = $t({
|
|
3615
3639
|
emit: u,
|
|
3616
3640
|
chatHelper: A,
|
|
3617
|
-
chatBusinessManager:
|
|
3618
|
-
cite:
|
|
3641
|
+
chatBusinessManager: z,
|
|
3642
|
+
cite: H,
|
|
3619
3643
|
focusInput: k,
|
|
3620
3644
|
scrollToBottom: E,
|
|
3621
|
-
getShortcutFromMessage:
|
|
3622
|
-
buildShortcutProperty:
|
|
3623
|
-
}),
|
|
3645
|
+
getShortcutFromMessage: me,
|
|
3646
|
+
buildShortcutProperty: he
|
|
3647
|
+
}), ke = n(() => !P.value || W.value), { handleConfirmShare: Ae } = Zt({
|
|
3624
3648
|
emit: u,
|
|
3625
3649
|
chatHelper: A,
|
|
3626
3650
|
isStandaloneMode: M
|
|
3627
|
-
}),
|
|
3651
|
+
}), X = (e) => {
|
|
3628
3652
|
u("execution-panel-change", e);
|
|
3629
|
-
},
|
|
3653
|
+
}, je = async (e) => {
|
|
3630
3654
|
if (c.onCustomTabChange) return c.onCustomTabChange(e);
|
|
3631
3655
|
let t = e.data?.props;
|
|
3632
3656
|
if (t?.task_id != null && t?.node_id) return A.value?.message.getFlowAgentTaskNodeInfo(t.task_id, t.node_id);
|
|
3633
3657
|
};
|
|
3634
3658
|
return r({
|
|
3635
|
-
sendMessage: (e) =>
|
|
3636
|
-
stopGeneration:
|
|
3659
|
+
sendMessage: (e) => oe(e, [[]]),
|
|
3660
|
+
stopGeneration: le,
|
|
3637
3661
|
switchSession: async (e) => {
|
|
3638
|
-
if (!
|
|
3662
|
+
if (!B.value) {
|
|
3639
3663
|
console.error("[ChatBot] Cannot switch session: sessionBusinessManager not initialized");
|
|
3640
3664
|
return;
|
|
3641
3665
|
}
|
|
3642
3666
|
try {
|
|
3643
|
-
await
|
|
3667
|
+
await B.value.switchSession(e), u("session-switched", B.value.currentSession.value);
|
|
3644
3668
|
} catch (e) {
|
|
3645
3669
|
console.error("Failed to switch session:", e), u("error", e);
|
|
3646
3670
|
}
|
|
3647
3671
|
},
|
|
3648
|
-
messages:
|
|
3649
|
-
currentSession:
|
|
3650
|
-
isGenerating:
|
|
3672
|
+
messages: U,
|
|
3673
|
+
currentSession: K,
|
|
3674
|
+
isGenerating: G,
|
|
3675
|
+
isReady: F,
|
|
3676
|
+
whenReady: R,
|
|
3651
3677
|
getChatHelper: () => A.value,
|
|
3652
3678
|
setCiteText: (e) => {
|
|
3653
|
-
|
|
3679
|
+
H.value = e;
|
|
3654
3680
|
},
|
|
3655
3681
|
focusInput: k,
|
|
3656
3682
|
enterShareMode: () => y.value?.enterShareMode(),
|
|
3657
3683
|
exitShareMode: () => y.value?.exitShareMode(),
|
|
3658
3684
|
selectShortcut: (e, t) => {
|
|
3659
|
-
|
|
3685
|
+
pe(e, t);
|
|
3660
3686
|
},
|
|
3661
|
-
sendShortcut: (e, t) =>
|
|
3687
|
+
sendShortcut: (e, t) => ge(e, t)
|
|
3662
3688
|
}), (n, r) => (S(), a("div", {
|
|
3663
3689
|
class: g([
|
|
3664
3690
|
"ai-chatbot",
|
|
3665
3691
|
c.extCls,
|
|
3666
|
-
{ "welcome-state": j(
|
|
3692
|
+
{ "welcome-state": j(ye) }
|
|
3667
3693
|
]),
|
|
3668
|
-
style: v(j(
|
|
3669
|
-
}, [l(j(
|
|
3694
|
+
style: v(j(we))
|
|
3695
|
+
}, [l(j(ee), {
|
|
3670
3696
|
ref_key: "chatContainerRef",
|
|
3671
3697
|
ref: y,
|
|
3672
|
-
cite: j(
|
|
3673
|
-
"onUpdate:cite": r[0] ||= (e) => p(
|
|
3698
|
+
cite: j(H),
|
|
3699
|
+
"onUpdate:cite": r[0] ||= (e) => p(H) ? H.value = e : null,
|
|
3674
3700
|
"selected-shortcut": C.value,
|
|
3675
3701
|
"onUpdate:selectedShortcut": r[1] ||= (e) => C.value = e,
|
|
3676
3702
|
"render-mode": T.value,
|
|
3677
3703
|
"onUpdate:renderMode": r[2] ||= (e) => T.value = e,
|
|
3678
|
-
"chat-loading":
|
|
3704
|
+
"chat-loading": ke.value,
|
|
3679
3705
|
"common-tippy-options": t.messageToolsTippyOptions,
|
|
3680
|
-
"message-status": j(
|
|
3681
|
-
"message-tools-status": j(
|
|
3682
|
-
messages: j(
|
|
3683
|
-
"model-value": j(
|
|
3684
|
-
"on-agent-action": j(
|
|
3685
|
-
"on-agent-feedback": j(
|
|
3706
|
+
"message-status": j(_e),
|
|
3707
|
+
"message-tools-status": j(ve),
|
|
3708
|
+
messages: j(U),
|
|
3709
|
+
"model-value": j(ne),
|
|
3710
|
+
"on-agent-action": j(Ee),
|
|
3711
|
+
"on-agent-feedback": j(De),
|
|
3686
3712
|
"get-side-render-component": c.getSideRenderComponent,
|
|
3687
3713
|
"get-side-tab-render-component": c.getSideTabRenderComponent,
|
|
3688
|
-
"on-custom-tab-change":
|
|
3689
|
-
"on-send-message": j(
|
|
3690
|
-
"on-stop-sending": j(
|
|
3691
|
-
"on-upload": j(
|
|
3692
|
-
"on-user-action": j(
|
|
3693
|
-
"on-user-input-confirm": j(
|
|
3694
|
-
"on-user-shortcut-confirm": j(
|
|
3695
|
-
"opening-remark": j(
|
|
3714
|
+
"on-custom-tab-change": je,
|
|
3715
|
+
"on-send-message": j(oe),
|
|
3716
|
+
"on-stop-sending": j(ce),
|
|
3717
|
+
"on-upload": j(se),
|
|
3718
|
+
"on-user-action": j(q),
|
|
3719
|
+
"on-user-input-confirm": j(J),
|
|
3720
|
+
"on-user-shortcut-confirm": j(Oe),
|
|
3721
|
+
"opening-remark": j(be),
|
|
3696
3722
|
placeholder: c.placeholder,
|
|
3697
3723
|
placement: c.placement,
|
|
3698
|
-
prompts: j(
|
|
3724
|
+
prompts: j(Se),
|
|
3699
3725
|
"resize-props": c.resizeProps,
|
|
3700
|
-
resources: j(
|
|
3726
|
+
resources: j(xe),
|
|
3701
3727
|
"shortcut-id": C.value?.id,
|
|
3702
|
-
shortcuts: j(
|
|
3703
|
-
"support-upload": j(
|
|
3704
|
-
onCollapseChange:
|
|
3705
|
-
onConfirmShare: j(
|
|
3706
|
-
onDeleteShortcut: j(
|
|
3707
|
-
onSelectShortcut: j(
|
|
3708
|
-
onShortcutClose: j(
|
|
3709
|
-
onShortcutSubmit: j(
|
|
3710
|
-
onStopStreaming: j(
|
|
3728
|
+
shortcuts: j(Te),
|
|
3729
|
+
"support-upload": j(Ce),
|
|
3730
|
+
onCollapseChange: X,
|
|
3731
|
+
onConfirmShare: j(Ae),
|
|
3732
|
+
onDeleteShortcut: j(de),
|
|
3733
|
+
onSelectShortcut: j(ue),
|
|
3734
|
+
onShortcutClose: j(de),
|
|
3735
|
+
onShortcutSubmit: j(fe),
|
|
3736
|
+
onStopStreaming: j(Y),
|
|
3711
3737
|
"onUpdate:modelValue": j(re)
|
|
3712
3738
|
}, {
|
|
3713
3739
|
message: L(({ message: r, messageToolsStatus: o }) => [i(" 消费方提供了 #message slot 时,优先使用消费方的渲染 "), j(f).message ? D(n.$slots, "message", {
|
|
3714
3740
|
key: 0,
|
|
3715
3741
|
message: r,
|
|
3716
3742
|
messageToolsStatus: o
|
|
3717
|
-
}) : (S(), a(e, { key: 1 }, [i(" 否则使用默认的 MessageRender "), l(j(
|
|
3743
|
+
}) : (S(), a(e, { key: 1 }, [i(" 否则使用默认的 MessageRender "), l(j(te), {
|
|
3718
3744
|
message: r,
|
|
3719
3745
|
"message-tools-status": o,
|
|
3720
|
-
"on-action": (e) => j(
|
|
3721
|
-
"on-input-confirm": (e, t) => j(
|
|
3722
|
-
"on-shortcut-confirm": (e) => j(
|
|
3746
|
+
"on-action": (e) => j(q)(e, r),
|
|
3747
|
+
"on-input-confirm": (e, t) => j(J)(r, e, t),
|
|
3748
|
+
"on-shortcut-confirm": (e) => j(Oe)(r, e),
|
|
3723
3749
|
"tippy-options": t.messageToolsTippyOptions
|
|
3724
3750
|
}, s({ _: 2 }, [n.$slots.codeHeader ? {
|
|
3725
3751
|
name: "codeHeader",
|
|
@@ -3739,7 +3765,7 @@ var $t = /* @__PURE__ */ u({
|
|
|
3739
3765
|
}), $ = /* @__PURE__ */ function(e) {
|
|
3740
3766
|
return e.ERROR = "error", e.IDLE = "idle", e.LOADING_AGENT = "loading_agent", e.READY = "ready", e;
|
|
3741
3767
|
}({});
|
|
3742
|
-
function
|
|
3768
|
+
function tn(e) {
|
|
3743
3769
|
let { url: t, requestOptions: r, autoInit: i = !0, protocolCallbacks: a } = e, o = A(t);
|
|
3744
3770
|
if (!o) throw Error("[useChatBootstrap] url is required");
|
|
3745
3771
|
let s = w($.IDLE), c = w(null), l = w(!1), u = /* @__PURE__ */ new Map(), d = new Y({
|
|
@@ -3811,7 +3837,7 @@ function en(e) {
|
|
|
3811
3837
|
}
|
|
3812
3838
|
//#endregion
|
|
3813
3839
|
//#region src/composables/use-event-bridge.ts
|
|
3814
|
-
function
|
|
3840
|
+
function nn(e) {
|
|
3815
3841
|
return {
|
|
3816
3842
|
sendMessage: (t) => e("send-message", { content: t }),
|
|
3817
3843
|
receiveStart: () => e("receive-start", {}),
|
|
@@ -3829,7 +3855,7 @@ function tn(e) {
|
|
|
3829
3855
|
shareMessages: (t) => e("share-messages", { messageIds: t })
|
|
3830
3856
|
};
|
|
3831
3857
|
}
|
|
3832
|
-
function
|
|
3858
|
+
function rn(e) {
|
|
3833
3859
|
let { componentManager: t, emit: n, debug: r = !1 } = e, i = [], a = () => {
|
|
3834
3860
|
for (let [e, a] of Object.entries(Wt)) {
|
|
3835
3861
|
if (a === null) continue;
|
|
@@ -3856,17 +3882,17 @@ function nn(e) {
|
|
|
3856
3882
|
}
|
|
3857
3883
|
//#endregion
|
|
3858
3884
|
//#region src/composables/use-ai-blueking-init.ts
|
|
3859
|
-
function
|
|
3885
|
+
function an(e) {
|
|
3860
3886
|
let { props: t, emit: r } = e, i = w(), a = w(), o = n(() => rt(t.url ?? "")), s = Ut({
|
|
3861
3887
|
initialPanelVisible: !1,
|
|
3862
3888
|
initialNimbusMinimized: t.defaultMinimize,
|
|
3863
3889
|
enablePopup: t.enablePopup,
|
|
3864
3890
|
enableNimbus: !t.hideNimbus,
|
|
3865
3891
|
enableDraggable: t.draggable
|
|
3866
|
-
}), c = s.panelVisible, l = s.nimbusMinimized, { forwardToManager: u } =
|
|
3892
|
+
}), c = s.panelVisible, l = s.nimbusMinimized, { forwardToManager: u } = rn({
|
|
3867
3893
|
componentManager: s,
|
|
3868
3894
|
emit: r
|
|
3869
|
-
}), d =
|
|
3895
|
+
}), d = nn(u), f = (e, t) => {
|
|
3870
3896
|
let n = t instanceof Error ? t.message : String(t);
|
|
3871
3897
|
console.error(`[AIBlueking] ${e} error:`, t), s.emitInternal("sdk-error", {
|
|
3872
3898
|
apiName: e,
|
|
@@ -3876,9 +3902,9 @@ function rn(e) {
|
|
|
3876
3902
|
});
|
|
3877
3903
|
}, p = (e) => {
|
|
3878
3904
|
f("chat", e);
|
|
3879
|
-
}, { chatHelper: m, isReady: h, error: g, agentInfo: _, agentName: v, currentSession: x, initialize: S } =
|
|
3905
|
+
}, { chatHelper: m, isReady: h, error: g, agentInfo: _, agentName: v, currentSession: x, initialize: S } = tn({
|
|
3880
3906
|
url: o,
|
|
3881
|
-
requestOptions: t.requestOptions,
|
|
3907
|
+
requestOptions: () => A(t.requestOptions),
|
|
3882
3908
|
autoInit: !0,
|
|
3883
3909
|
protocolCallbacks: {
|
|
3884
3910
|
onStart: () => {
|
|
@@ -3900,12 +3926,12 @@ function rn(e) {
|
|
|
3900
3926
|
alwaysCreateNewSession: t.alwaysCreateNewSession
|
|
3901
3927
|
}), E = new Bt(C.message, C.session), D = new Vt(null, t.shortcuts || []), O = null, k = () => t.loadRecentSessionOnMount ? (O ||= T.loadRecentSession({ skipLoadSessions: !0 }).finally(() => {
|
|
3902
3928
|
O = null;
|
|
3903
|
-
}), O) : Promise.resolve(),
|
|
3929
|
+
}), O) : Promise.resolve(), j = async () => {
|
|
3904
3930
|
await S(), await k();
|
|
3905
|
-
},
|
|
3931
|
+
}, M = { appendTo: (e) => {
|
|
3906
3932
|
let t = e.closest(".draggable-container-content");
|
|
3907
3933
|
return console.log("[ai-blueking] appendTo called, ref:", e), console.log("[ai-blueking] appendTo closest result:", t), t ?? document.body;
|
|
3908
|
-
} },
|
|
3934
|
+
} }, N = n(() => s.isCompressed.value), P = n(() => v.value), F = n(() => C.message.list.value.length === 0), L = n(() => t.resources?.length ? t.resources : _.value?.resources ?? []), R = n(() => t.prompts?.length ? t.prompts : _.value?.conversationSettings?.predefinedQuestions ?? []);
|
|
3909
3935
|
I(() => g.value, (e) => {
|
|
3910
3936
|
e && f("init", e);
|
|
3911
3937
|
}), I(() => h.value, async (e) => {
|
|
@@ -3926,13 +3952,13 @@ function rn(e) {
|
|
|
3926
3952
|
}, { immediate: !0 }), I(() => t.shortcuts, (e) => {
|
|
3927
3953
|
D.setShortcuts(e || []);
|
|
3928
3954
|
}, { immediate: !0 });
|
|
3929
|
-
let
|
|
3955
|
+
let z = (e) => {
|
|
3930
3956
|
ct(e) && (e.preventDefault(), c.value ? s.hidePanel() : s.showPanel());
|
|
3931
3957
|
};
|
|
3932
3958
|
return b(async () => {
|
|
3933
|
-
i.value && s.setContainerRef(i.value), window.addEventListener("keydown",
|
|
3959
|
+
i.value && s.setContainerRef(i.value), window.addEventListener("keydown", z);
|
|
3934
3960
|
}), y(() => {
|
|
3935
|
-
window.removeEventListener("keydown",
|
|
3961
|
+
window.removeEventListener("keydown", z), s.destroy();
|
|
3936
3962
|
}), {
|
|
3937
3963
|
chatHelper: C,
|
|
3938
3964
|
componentManager: s,
|
|
@@ -3947,20 +3973,20 @@ function rn(e) {
|
|
|
3947
3973
|
nimbusMinimized: l,
|
|
3948
3974
|
normalizedUrl: o,
|
|
3949
3975
|
agentInfo: _,
|
|
3950
|
-
agentName:
|
|
3976
|
+
agentName: P,
|
|
3951
3977
|
currentSession: x,
|
|
3952
|
-
isCompressed:
|
|
3953
|
-
isWelcomeState:
|
|
3954
|
-
messageToolsTippyOptions:
|
|
3955
|
-
agentResources:
|
|
3956
|
-
agentPrompts:
|
|
3978
|
+
isCompressed: N,
|
|
3979
|
+
isWelcomeState: F,
|
|
3980
|
+
messageToolsTippyOptions: M,
|
|
3981
|
+
agentResources: L,
|
|
3982
|
+
agentPrompts: R,
|
|
3957
3983
|
handleError: p,
|
|
3958
|
-
ensureSessionReady:
|
|
3984
|
+
ensureSessionReady: j
|
|
3959
3985
|
};
|
|
3960
3986
|
}
|
|
3961
3987
|
//#endregion
|
|
3962
3988
|
//#region src/composables/use-ai-selection.ts
|
|
3963
|
-
function
|
|
3989
|
+
function on(e) {
|
|
3964
3990
|
let { shortcutManager: t, chatBotRef: r, forwardToManager: i, show: a, props: o } = e, s = w(!1), c = w("");
|
|
3965
3991
|
return {
|
|
3966
3992
|
aiSelectionVisible: s,
|
|
@@ -3982,7 +4008,7 @@ function an(e) {
|
|
|
3982
4008
|
}
|
|
3983
4009
|
//#endregion
|
|
3984
4010
|
//#region src/composables/use-nimbus.ts
|
|
3985
|
-
function
|
|
4011
|
+
function sn(e, t = !1) {
|
|
3986
4012
|
let n = window.innerHeight - 48 - 40, r = window.innerWidth - 48 - 16, i = w(r), a = w(n), o = w(0), s = w(t), c = w(!1), l = w(!1), u = 0, d = (e) => {
|
|
3987
4013
|
e ? i.value = window.innerWidth - 12 : i.value = r;
|
|
3988
4014
|
}, f = (e, t) => {
|
|
@@ -4035,8 +4061,8 @@ function on(e, t = !1) {
|
|
|
4035
4061
|
}
|
|
4036
4062
|
//#endregion
|
|
4037
4063
|
//#region src/composables/use-panel-container.ts
|
|
4038
|
-
var
|
|
4039
|
-
function
|
|
4064
|
+
var cn = 420;
|
|
4065
|
+
function ln(e) {
|
|
4040
4066
|
let { componentManager: t, chatBotRef: n, forwarders: r, forwardToManager: i, beforeNimbusClick: a, ensureSessionReady: o } = e, s = async (e) => {
|
|
4041
4067
|
t.showPanel(e), o && await o(), e && n.value && await n.value.switchSession(e);
|
|
4042
4068
|
}, c = async (e) => {
|
|
@@ -4077,7 +4103,7 @@ function cn(e) {
|
|
|
4077
4103
|
t.setCompressed(e);
|
|
4078
4104
|
},
|
|
4079
4105
|
handleExecutionPanelChange: (e) => {
|
|
4080
|
-
e ? t.collapseSidePanel() : t.expandForSidePanel(
|
|
4106
|
+
e ? t.collapseSidePanel() : t.expandForSidePanel(cn);
|
|
4081
4107
|
},
|
|
4082
4108
|
sendMessage: async (e) => {
|
|
4083
4109
|
n.value && await n.value.sendMessage(e);
|
|
@@ -4124,7 +4150,7 @@ function cn(e) {
|
|
|
4124
4150
|
}
|
|
4125
4151
|
//#endregion
|
|
4126
4152
|
//#region src/composables/use-session-handlers.ts
|
|
4127
|
-
function
|
|
4153
|
+
function un(e) {
|
|
4128
4154
|
let { chatHelper: t, sessionBusinessManager: n, chatBotRef: r, forwarders: i, handleError: a, currentSession: o } = e, s = w(""), c = w(!0), l = w(!1), u = w(!1), d = () => t.message.list.value.some((e) => {
|
|
4129
4155
|
if (!("property" in e)) return !0;
|
|
4130
4156
|
let { property: t } = e;
|
|
@@ -4214,7 +4240,7 @@ function ln(e) {
|
|
|
4214
4240
|
}
|
|
4215
4241
|
//#endregion
|
|
4216
4242
|
//#region src/composables/use-share-handlers.ts
|
|
4217
|
-
function
|
|
4243
|
+
function dn(e) {
|
|
4218
4244
|
let { shareBusinessManager: t, chatBotRef: n, forwarders: r, handleError: i } = e, a = w(!1);
|
|
4219
4245
|
return {
|
|
4220
4246
|
isShareLoading: a,
|
|
@@ -4228,7 +4254,7 @@ function un(e) {
|
|
|
4228
4254
|
a.value = !0;
|
|
4229
4255
|
try {
|
|
4230
4256
|
let { shareUrl: i, userMessageIds: a } = await t.shareMessages(e);
|
|
4231
|
-
await it(i),
|
|
4257
|
+
await it(i), le({
|
|
4232
4258
|
message: Z("分享链接已复制到剪贴板"),
|
|
4233
4259
|
theme: "success"
|
|
4234
4260
|
}), n.value?.exitShareMode(), r.shareMessages(a);
|
|
@@ -4242,7 +4268,7 @@ function un(e) {
|
|
|
4242
4268
|
}
|
|
4243
4269
|
//#endregion
|
|
4244
4270
|
//#region src/composables/use-tippy.ts
|
|
4245
|
-
function
|
|
4271
|
+
function fn(e = {}) {
|
|
4246
4272
|
let t = w([]), n = (n, r, i = {}) => {
|
|
4247
4273
|
try {
|
|
4248
4274
|
let a = typeof n == "string" ? document.querySelector(n) : n;
|
|
@@ -4295,7 +4321,7 @@ function dn(e = {}) {
|
|
|
4295
4321
|
}
|
|
4296
4322
|
//#endregion
|
|
4297
4323
|
//#region src/config/prop-defaults.ts
|
|
4298
|
-
var
|
|
4324
|
+
var pn = {
|
|
4299
4325
|
url: "",
|
|
4300
4326
|
title: "",
|
|
4301
4327
|
extCls: "",
|
|
@@ -4304,7 +4330,7 @@ var fn = {
|
|
|
4304
4330
|
enablePopup: !0,
|
|
4305
4331
|
draggable: !0,
|
|
4306
4332
|
enableChatSession: !0,
|
|
4307
|
-
renderMode:
|
|
4333
|
+
renderMode: ae.Chat,
|
|
4308
4334
|
defaultWidth: 400,
|
|
4309
4335
|
defaultHeight: void 0,
|
|
4310
4336
|
defaultTop: 0,
|
|
@@ -4337,7 +4363,7 @@ var fn = {
|
|
|
4337
4363
|
showShare: !0
|
|
4338
4364
|
}),
|
|
4339
4365
|
defaultChatInputPosition: void 0
|
|
4340
|
-
},
|
|
4366
|
+
}, mn = class extends Y {
|
|
4341
4367
|
eventEmitter;
|
|
4342
4368
|
constructor(e = {}) {
|
|
4343
4369
|
super({
|
|
@@ -4366,7 +4392,7 @@ var fn = {
|
|
|
4366
4392
|
super.handleToolCallStartEvent(e), this.eventEmitter?.emit("tool-call-start", { event: e });
|
|
4367
4393
|
}
|
|
4368
4394
|
};
|
|
4369
|
-
function
|
|
4395
|
+
function hn(e = {}) {
|
|
4370
4396
|
let { eventEmitter: t, onStart: n, onMessage: r, onDone: i, onError: a, onTextChunk: o } = e;
|
|
4371
4397
|
return new Y({
|
|
4372
4398
|
onStart: () => {
|
|
@@ -4385,7 +4411,7 @@ function mn(e = {}) {
|
|
|
4385
4411
|
}
|
|
4386
4412
|
//#endregion
|
|
4387
4413
|
//#region src/containers/use-draggable.ts
|
|
4388
|
-
function
|
|
4414
|
+
function gn(e = {}, t) {
|
|
4389
4415
|
let n = e.initWidth || 400, r = e.minWidth || 400, i = e.minHeight || 400, a = e.maxWidthPercent || 40, o = e.compressedHeight || 800, s = e.compressedPadding === void 0 ? 0 : e.compressedPadding, c = w(e.defaultLeft === void 0 ? window.innerWidth - n : e.defaultLeft), l = w(e.defaultTop === void 0 ? 0 : e.defaultTop), u = w(e.defaultHeight === void 0 ? window.innerHeight - (e.defaultTop === void 0 ? 0 : e.defaultTop) : e.defaultHeight), d = w(n), f = w(l.value), p = w(c.value), m = w(d.value), g = w(u.value), _ = w(Math.max(window.innerWidth * (a / 100), m.value)), v = w(!1), x = w(0), S = null, C = null, T = w(!1), E = (e) => {
|
|
4390
4416
|
let t = window.innerWidth, n = { ...e };
|
|
4391
4417
|
return n.width > t && (n.width = t), n.x + n.width > t && (n.x = t - n.width), n.x < 0 && (n.x = 0), n;
|
|
@@ -4478,7 +4504,7 @@ function hn(e = {}, t) {
|
|
|
4478
4504
|
}
|
|
4479
4505
|
//#endregion
|
|
4480
4506
|
//#region src/containers/draggable-container.vue?vue&type=script&setup=true&lang.ts
|
|
4481
|
-
var
|
|
4507
|
+
var _n = { class: "draggable-container-content" }, vn = /* @__PURE__ */ Q(/* @__PURE__ */ u({
|
|
4482
4508
|
__name: "draggable-container",
|
|
4483
4509
|
props: {
|
|
4484
4510
|
className: { default: "" },
|
|
@@ -4515,7 +4541,7 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4515
4541
|
"compression-change"
|
|
4516
4542
|
],
|
|
4517
4543
|
setup(e, { expose: t, emit: i }) {
|
|
4518
|
-
let a = e, s = i, c = w(!1), { minWidth: l, minHeight: u, maxWidth: d, top: f, left: p, width: m, height: h, isCompressed: _, isSidePanelExpanded: y, handleDragging: b, handleResizing: x, handleDragStop: C, handleResizeStop: T, toggleCompression: E, updatePosition: O, updateSize: k, updatePositionAndSize: A, expandForSidePanel: M, collapseSidePanel: N } =
|
|
4544
|
+
let a = e, s = i, c = w(!1), { minWidth: l, minHeight: u, maxWidth: d, top: f, left: p, width: m, height: h, isCompressed: _, isSidePanelExpanded: y, handleDragging: b, handleResizing: x, handleDragStop: C, handleResizeStop: T, toggleCompression: E, updatePosition: O, updateSize: k, updatePositionAndSize: A, expandForSidePanel: M, collapseSidePanel: N } = gn({
|
|
4519
4545
|
initWidth: a.defaultWidth,
|
|
4520
4546
|
minWidth: a.minWidth,
|
|
4521
4547
|
minHeight: a.minHeight,
|
|
@@ -4535,22 +4561,22 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4535
4561
|
y: f.value,
|
|
4536
4562
|
width: m.value,
|
|
4537
4563
|
height: h.value
|
|
4538
|
-
})),
|
|
4564
|
+
})), B = () => {
|
|
4539
4565
|
document.querySelectorAll("iframe").forEach((e) => {
|
|
4540
4566
|
e.style.pointerEvents = "none";
|
|
4541
4567
|
});
|
|
4542
|
-
},
|
|
4568
|
+
}, ee = () => {
|
|
4543
4569
|
document.querySelectorAll("iframe").forEach((e) => {
|
|
4544
4570
|
e.style.pointerEvents = "";
|
|
4545
4571
|
});
|
|
4546
|
-
},
|
|
4547
|
-
c.value || (c.value = !0,
|
|
4548
|
-
},
|
|
4549
|
-
c.value || (c.value = !0,
|
|
4550
|
-
},
|
|
4551
|
-
C(e, t), c.value = !1,
|
|
4552
|
-
},
|
|
4553
|
-
T(e, t, n, r), c.value = !1,
|
|
4572
|
+
}, V = (e, t) => {
|
|
4573
|
+
c.value || (c.value = !0, B()), b(e, t);
|
|
4574
|
+
}, te = (e, t, n, r) => {
|
|
4575
|
+
c.value || (c.value = !0, B()), x(e, t, n, r);
|
|
4576
|
+
}, ne = (e, t) => {
|
|
4577
|
+
C(e, t), c.value = !1, ee();
|
|
4578
|
+
}, H = (e, t, n, r) => {
|
|
4579
|
+
T(e, t, n, r), c.value = !1, ee();
|
|
4554
4580
|
};
|
|
4555
4581
|
return I(_, (e) => {
|
|
4556
4582
|
s("compression-change", e);
|
|
@@ -4564,7 +4590,7 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4564
4590
|
positionAndSize: z,
|
|
4565
4591
|
isCompressed: _,
|
|
4566
4592
|
isSidePanelExpanded: y
|
|
4567
|
-
}), (e, t) => R((S(), r(j(
|
|
4593
|
+
}), (e, t) => R((S(), r(j(_e), {
|
|
4568
4594
|
ref: "draggableRef",
|
|
4569
4595
|
active: a.visible,
|
|
4570
4596
|
class: g(["draggable-container-wrapper", a.className]),
|
|
@@ -4582,12 +4608,12 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4582
4608
|
w: j(m),
|
|
4583
4609
|
x: j(p),
|
|
4584
4610
|
y: j(f),
|
|
4585
|
-
onDragStop:
|
|
4586
|
-
onDragging:
|
|
4587
|
-
onResizeStop:
|
|
4588
|
-
onResizing:
|
|
4611
|
+
onDragStop: ne,
|
|
4612
|
+
onDragging: V,
|
|
4613
|
+
onResizeStop: H,
|
|
4614
|
+
onResizing: te
|
|
4589
4615
|
}, {
|
|
4590
|
-
default: L(() => [o("div",
|
|
4616
|
+
default: L(() => [o("div", _n, [D(e.$slots, "default", {}, void 0, !0)])]),
|
|
4591
4617
|
_: 3
|
|
4592
4618
|
}, 8, [
|
|
4593
4619
|
"active",
|
|
@@ -4605,11 +4631,11 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4605
4631
|
"y"
|
|
4606
4632
|
])), [[F, a.visible]]);
|
|
4607
4633
|
}
|
|
4608
|
-
}), [["__scopeId", "data-v-1118456b"]]),
|
|
4634
|
+
}), [["__scopeId", "data-v-1118456b"]]), yn = { class: "nimbus-bkai-wrapper" }, bn = [
|
|
4609
4635
|
"width",
|
|
4610
4636
|
"height",
|
|
4611
4637
|
"src"
|
|
4612
|
-
],
|
|
4638
|
+
], xn = /* @__PURE__ */ Q(/* @__PURE__ */ u({
|
|
4613
4639
|
name: "NimbusButton",
|
|
4614
4640
|
__name: "nimbus",
|
|
4615
4641
|
props: {
|
|
@@ -4661,11 +4687,11 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4661
4687
|
right: -6
|
|
4662
4688
|
}
|
|
4663
4689
|
}
|
|
4664
|
-
}, c = n(() => s[i.size]), l = w(null), u = w(null), { nimbusLeft: d, nimbusTop: f, isMinimize: p, handleClick: m, handleMinimize: _, handleDragging: v, handleMouseEnter: x, handleMouseLeave: C, handleMouseDown: T, handleMouseUp: E } =
|
|
4690
|
+
}, c = n(() => s[i.size]), l = w(null), u = w(null), { nimbusLeft: d, nimbusTop: f, isMinimize: p, handleClick: m, handleMinimize: _, handleDragging: v, handleMouseEnter: x, handleMouseLeave: C, handleMouseDown: T, handleMouseUp: E } = sn(a, i.isMinimize);
|
|
4665
4691
|
I(p, (e) => {
|
|
4666
4692
|
a("update:isMinimize", e);
|
|
4667
4693
|
});
|
|
4668
|
-
let D = n(() => p.value ? Z("恢复默认大小") : Z("最小化,将缩成锚点")), { createTooltip: O, destroyAll: k } =
|
|
4694
|
+
let D = n(() => p.value ? Z("恢复默认大小") : Z("最小化,将缩成锚点")), { createTooltip: O, destroyAll: k } = fn({
|
|
4669
4695
|
theme: "ai-blueking",
|
|
4670
4696
|
delay: [0, 0]
|
|
4671
4697
|
}), A = () => {
|
|
@@ -4685,7 +4711,7 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4685
4711
|
}), window.addEventListener("resize", A);
|
|
4686
4712
|
}), y(() => {
|
|
4687
4713
|
window.removeEventListener("resize", A);
|
|
4688
|
-
}), (t, n) => (S(), r(j(
|
|
4714
|
+
}), (t, n) => (S(), r(j(_e), {
|
|
4689
4715
|
active: !e.isPanelShow,
|
|
4690
4716
|
axis: "y",
|
|
4691
4717
|
draggable: !0,
|
|
@@ -4707,12 +4733,12 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4707
4733
|
onMouseenter: n[3] ||= (...e) => j(x) && j(x)(...e),
|
|
4708
4734
|
onMouseleave: n[4] ||= (...e) => j(C) && j(C)(...e),
|
|
4709
4735
|
onMouseup: n[5] ||= (...e) => j(E) && j(E)(...e)
|
|
4710
|
-
}, [o("div",
|
|
4736
|
+
}, [o("div", yn, [o("img", {
|
|
4711
4737
|
width: c.value.img,
|
|
4712
4738
|
height: c.value.img,
|
|
4713
|
-
src: j(
|
|
4739
|
+
src: j(ve),
|
|
4714
4740
|
alt: "nimbus"
|
|
4715
|
-
}, null, 8,
|
|
4741
|
+
}, null, 8, bn)]), o("i", {
|
|
4716
4742
|
ref_key: "minimizeButtonRef",
|
|
4717
4743
|
ref: u,
|
|
4718
4744
|
class: g(["nimbus-mini bkai-icon", j(p) ? "bkai-yinyong" : "bkai-minus-line"]),
|
|
@@ -4728,7 +4754,7 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4728
4754
|
"onDragging"
|
|
4729
4755
|
]));
|
|
4730
4756
|
}
|
|
4731
|
-
}), [["__scopeId", "data-v-26b6f3ea"]]),
|
|
4757
|
+
}), [["__scopeId", "data-v-26b6f3ea"]]), Sn = /* @__PURE__ */ Q(/* @__PURE__ */ u({
|
|
4732
4758
|
__name: "ai-blueking",
|
|
4733
4759
|
props: /* @__PURE__ */ m({
|
|
4734
4760
|
autoSwitchToInitialSession: { type: Boolean },
|
|
@@ -4774,7 +4800,7 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4774
4800
|
getSideRenderComponent: { type: Function },
|
|
4775
4801
|
getSideTabRenderComponent: { type: Function },
|
|
4776
4802
|
onCustomTabChange: { type: Function }
|
|
4777
|
-
},
|
|
4803
|
+
}, pn),
|
|
4778
4804
|
emits: [
|
|
4779
4805
|
"show",
|
|
4780
4806
|
"close",
|
|
@@ -4801,45 +4827,45 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4801
4827
|
"share"
|
|
4802
4828
|
],
|
|
4803
4829
|
setup(e, { expose: n, emit: a }) {
|
|
4804
|
-
let c = e, { chatHelper: u, componentManager: f, sessionBusinessManager: m, shareBusinessManager: h, shortcutManager: y, forwarders: b, forwardToManager: x, chatBotRef: C, draggableContainerRef: w, panelVisible: T, nimbusMinimized: E, normalizedUrl: O, agentName: k, currentSession: A, isCompressed: M, isWelcomeState: N, messageToolsTippyOptions: P, agentResources: F, agentPrompts: I, handleError: R, ensureSessionReady: z } =
|
|
4830
|
+
let c = e, { chatHelper: u, componentManager: f, sessionBusinessManager: m, shareBusinessManager: h, shortcutManager: y, forwarders: b, forwardToManager: x, chatBotRef: C, draggableContainerRef: w, panelVisible: T, nimbusMinimized: E, normalizedUrl: O, agentName: k, currentSession: A, isCompressed: M, isWelcomeState: N, messageToolsTippyOptions: P, agentResources: F, agentPrompts: I, handleError: R, ensureSessionReady: z } = an({
|
|
4805
4831
|
props: c,
|
|
4806
4832
|
emit: a
|
|
4807
|
-
}), { show:
|
|
4833
|
+
}), { show: ee, hide: V, handleShow: te, handleClose: ne, handleNimbusClick: H, handleDragging: re, handleResizing: ie, handleDragStop: ae, handleResizeStop: oe, handleToggleCompression: se, handleCompressionChange: ce, handleExecutionPanelChange: le, sendMessage: ue, handleReceiveStart: de, handleReceiveText: fe, handleReceiveEnd: pe, handleStop: me, stopGeneration: he, setCiteText: ge, focusInput: _e, selectShortcut: ve, sendShortcut: U, getChatHelper: W, updatePosition: G, updateSize: K, updatePositionAndSize: ye, handleShortcutClick: be } = ln({
|
|
4808
4834
|
componentManager: f,
|
|
4809
4835
|
chatBotRef: C,
|
|
4810
4836
|
forwarders: b,
|
|
4811
4837
|
forwardToManager: x,
|
|
4812
4838
|
beforeNimbusClick: c.beforeNimbusClick,
|
|
4813
4839
|
ensureSessionReady: z
|
|
4814
|
-
}), { sessionName: xe, hasPermission: Se, hasSessionContents: Ce, autoGenerateLoading: we, handleNewChat: Te, handleNewChatCreated: Ee, handleHistoryClick: De, handleHistorySessionSwitch: q, handleHistorySessionDelete: J, handleHistorySessionRename: Oe, handleAutoGenerateName: Y, handleHelpClick: ke, handleRename: Ae, handleSessionSwitched: X, addNewSession: je, switchToSession: Me, updateSessionName: Ne } =
|
|
4840
|
+
}), { sessionName: xe, hasPermission: Se, hasSessionContents: Ce, autoGenerateLoading: we, handleNewChat: Te, handleNewChatCreated: Ee, handleHistoryClick: De, handleHistorySessionSwitch: q, handleHistorySessionDelete: J, handleHistorySessionRename: Oe, handleAutoGenerateName: Y, handleHelpClick: ke, handleRename: Ae, handleSessionSwitched: X, addNewSession: je, switchToSession: Me, updateSessionName: Ne } = un({
|
|
4815
4841
|
chatHelper: u,
|
|
4816
4842
|
sessionBusinessManager: m,
|
|
4817
4843
|
chatBotRef: C,
|
|
4818
4844
|
forwarders: b,
|
|
4819
4845
|
handleError: R,
|
|
4820
4846
|
currentSession: A
|
|
4821
|
-
}), { isShareLoading: Pe, handleShare: Fe, handleCancelShare: Ie, handleConfirmShare: Le } =
|
|
4847
|
+
}), { isShareLoading: Pe, handleShare: Fe, handleCancelShare: Ie, handleConfirmShare: Le } = dn({
|
|
4822
4848
|
shareBusinessManager: h,
|
|
4823
4849
|
chatBotRef: C,
|
|
4824
4850
|
forwarders: b,
|
|
4825
4851
|
handleError: R
|
|
4826
|
-
}), { aiSelectionVisible: Re, filteredPopupShortcuts: ze, handleSelectionChange: Be, handleAiSelectionShortcut: Ve } =
|
|
4852
|
+
}), { aiSelectionVisible: Re, filteredPopupShortcuts: ze, handleSelectionChange: Be, handleAiSelectionShortcut: Ve } = on({
|
|
4827
4853
|
shortcutManager: y,
|
|
4828
4854
|
chatBotRef: C,
|
|
4829
4855
|
forwardToManager: x,
|
|
4830
|
-
show:
|
|
4856
|
+
show: ee,
|
|
4831
4857
|
props: c
|
|
4832
4858
|
}), He = (e) => {
|
|
4833
4859
|
Ce.value = !0, b.sendMessage(e);
|
|
4834
4860
|
};
|
|
4835
4861
|
return n({
|
|
4836
|
-
show:
|
|
4837
|
-
handleShow:
|
|
4838
|
-
handleClose:
|
|
4839
|
-
hide:
|
|
4862
|
+
show: ee,
|
|
4863
|
+
handleShow: te,
|
|
4864
|
+
handleClose: ne,
|
|
4865
|
+
hide: V,
|
|
4840
4866
|
sendMessage: ue,
|
|
4841
|
-
selectShortcut:
|
|
4842
|
-
sendShortcut:
|
|
4867
|
+
selectShortcut: ve,
|
|
4868
|
+
sendShortcut: U,
|
|
4843
4869
|
getChatHelper: W,
|
|
4844
4870
|
stopGeneration: he,
|
|
4845
4871
|
addNewSession: je,
|
|
@@ -4848,11 +4874,11 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4848
4874
|
updatePosition: G,
|
|
4849
4875
|
updateSize: K,
|
|
4850
4876
|
updatePositionAndSize: ye,
|
|
4851
|
-
setCiteText:
|
|
4852
|
-
focusInput:
|
|
4877
|
+
setCiteText: ge,
|
|
4878
|
+
focusInput: _e
|
|
4853
4879
|
}), (e, n) => (S(), r(t, { to: c.teleportTo }, [o("div", { class: g(["ai-blueking-v2", c.extCls]) }, [
|
|
4854
4880
|
i(" 可拖拽容器 "),
|
|
4855
|
-
l(j(
|
|
4881
|
+
l(j(vn), {
|
|
4856
4882
|
ref_key: "draggableContainerRef",
|
|
4857
4883
|
ref: w,
|
|
4858
4884
|
"compressed-padding": c.miniPadding,
|
|
@@ -4865,11 +4891,11 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4865
4891
|
"max-width": c.maxWidth,
|
|
4866
4892
|
"max-width-percent": 80,
|
|
4867
4893
|
visible: j(T),
|
|
4868
|
-
onCompressionChange: j(
|
|
4869
|
-
onDragStop: j(
|
|
4870
|
-
onDragging: j(
|
|
4871
|
-
onResizeStop: j(
|
|
4872
|
-
onResizing: j(
|
|
4894
|
+
onCompressionChange: j(ce),
|
|
4895
|
+
onDragStop: j(ae),
|
|
4896
|
+
onDragging: j(re),
|
|
4897
|
+
onResizeStop: j(oe),
|
|
4898
|
+
onResizing: j(ie)
|
|
4873
4899
|
}, {
|
|
4874
4900
|
default: L(() => [o("div", { class: g(["ai-blueking-panel", { "has-messages": !j(N) }]) }, [
|
|
4875
4901
|
i(" 独立的 Header 组件 "),
|
|
@@ -4893,7 +4919,7 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4893
4919
|
"show-new-chat-icon": c.showNewChatIcon,
|
|
4894
4920
|
title: c.title,
|
|
4895
4921
|
onAutoGenerateName: j(Y),
|
|
4896
|
-
onClose: j(
|
|
4922
|
+
onClose: j(ne),
|
|
4897
4923
|
onHelpClick: j(ke),
|
|
4898
4924
|
onHistoryClick: j(De),
|
|
4899
4925
|
onHistorySessionDelete: j(J),
|
|
@@ -4903,14 +4929,14 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4903
4929
|
onNewChatCreated: j(Ee),
|
|
4904
4930
|
onRename: j(Ae),
|
|
4905
4931
|
onShare: j(Fe),
|
|
4906
|
-
onToggleCompression: j(
|
|
4932
|
+
onToggleCompression: j(se)
|
|
4907
4933
|
}, s({ _: 2 }, [e.$slots.headerLeft ? {
|
|
4908
4934
|
name: "headerLeft",
|
|
4909
4935
|
fn: L(() => [D(e.$slots, "headerLeft", {}, void 0, !0)]),
|
|
4910
4936
|
key: "0"
|
|
4911
4937
|
} : void 0]), 1032, /* @__PURE__ */ "agent-name.chat-helper.draggable.dropdown-menu-config.enable-chat-session.has-permission.has-session-contents.auto-generate-loading.is-compression-height.render-mode.session-business-manager.session-name.show-compression-icon.show-history-icon.show-more-icon.show-new-chat-icon.title.onAutoGenerateName.onClose.onHelpClick.onHistoryClick.onHistorySessionDelete.onHistorySessionRename.onHistorySessionSwitch.onNewChat.onNewChatCreated.onRename.onShare.onToggleCompression".split("."))),
|
|
4912
4938
|
i(" ChatBot 核心组件(仅聊天区域) "),
|
|
4913
|
-
l(
|
|
4939
|
+
l(en, {
|
|
4914
4940
|
ref_key: "chatBotRef",
|
|
4915
4941
|
ref: C,
|
|
4916
4942
|
"always-create-new-session": c.alwaysCreateNewSession,
|
|
@@ -4935,7 +4961,7 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4935
4961
|
onCancelShare: j(Ie),
|
|
4936
4962
|
onConfirmShare: n[0] ||= (e) => j(Le)(e),
|
|
4937
4963
|
onError: n[1] ||= (e) => j(R)(e),
|
|
4938
|
-
onExecutionPanelChange: j(
|
|
4964
|
+
onExecutionPanelChange: j(le),
|
|
4939
4965
|
onReceiveEnd: j(pe),
|
|
4940
4966
|
onReceiveStart: j(de),
|
|
4941
4967
|
onReceiveText: j(fe),
|
|
@@ -4971,7 +4997,7 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4971
4997
|
"onResizing"
|
|
4972
4998
|
]),
|
|
4973
4999
|
i(" Nimbus 悬浮球 "),
|
|
4974
|
-
c.hideNimbus ? i("v-if", !0) : (S(), r(
|
|
5000
|
+
c.hideNimbus ? i("v-if", !0) : (S(), r(xn, {
|
|
4975
5001
|
key: 0,
|
|
4976
5002
|
"is-minimize": j(E),
|
|
4977
5003
|
"onUpdate:isMinimize": n[4] ||= (e) => p(E) ? E.value = e : null,
|
|
@@ -4979,7 +5005,7 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4979
5005
|
"onUpdate:isPanelShow": n[5] ||= (e) => p(T) ? T.value = e : null,
|
|
4980
5006
|
"default-minimize": c.defaultMinimize,
|
|
4981
5007
|
size: c.nimbusSize,
|
|
4982
|
-
onClick: j(
|
|
5008
|
+
onClick: j(H)
|
|
4983
5009
|
}, null, 8, [
|
|
4984
5010
|
"is-minimize",
|
|
4985
5011
|
"is-panel-show",
|
|
@@ -4988,7 +5014,7 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
4988
5014
|
"onClick"
|
|
4989
5015
|
])),
|
|
4990
5016
|
i(" 划词选择弹窗(使用 chat-x 的 AiSelection 组件) "),
|
|
4991
|
-
c.enablePopup ? (S(), r(j(
|
|
5017
|
+
c.enablePopup ? (S(), r(j(B), {
|
|
4992
5018
|
key: 1,
|
|
4993
5019
|
visible: j(Re),
|
|
4994
5020
|
"onUpdate:visible": n[6] ||= (e) => p(Re) ? Re.value = e : null,
|
|
@@ -5008,4 +5034,4 @@ var gn = { class: "draggable-container-content" }, _n = /* @__PURE__ */ Q(/* @__
|
|
|
5008
5034
|
}
|
|
5009
5035
|
}), [["__scopeId", "data-v-f367dd3f"]]);
|
|
5010
5036
|
//#endregion
|
|
5011
|
-
export { Y as AGUIProtocol,
|
|
5037
|
+
export { Y as AGUIProtocol, Sn as AIBlueking, Sn as default, mn as BluekingProtocol, $ as BootstrapPhase, en as ChatBot, Rt as ChatBusinessManager, Ht as ComponentManager, vn as DraggableContainer, V as MessageContentType, ie as RenderMode, zt as SessionBusinessManager, Vt as ShortcutManager, Kt as UIStateManager, hn as createBluekingProtocol, Ut as createComponentManager, pn as defaultProps, et as parseCustomBlocks, tn as useChatBootstrap, Xe as useChatHelper, gn as useDraggable };
|