@touchvue/chat 1.0.0-beta.5 → 1.0.0-beta.50

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 (443) hide show
  1. package/README.md +25 -25
  2. package/es/_virtual/_plugin-vue_export-helper.mjs +10 -0
  3. package/es/_virtual/_plugin-vue_export-helper.mjs.map +1 -0
  4. package/es/index.mjs.map +1 -1
  5. package/es/node_modules/.pnpm/@touchvue_a2ui@1.0.0-beta.46/node_modules/@touchvue/a2ui/dist/index.mjs +4816 -0
  6. package/es/node_modules/.pnpm/@touchvue_a2ui@1.0.0-beta.46/node_modules/@touchvue/a2ui/dist/index.mjs.map +1 -0
  7. package/es/node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.mjs +1380 -0
  8. package/es/node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.mjs.map +1 -0
  9. package/es/node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/html2canvas.esm.mjs +7824 -0
  10. package/es/node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/html2canvas.esm.mjs.map +1 -0
  11. package/es/package.json.css +1 -1
  12. package/es/package.json.mjs +2 -2
  13. package/es/packages/components/index.mjs +1 -1
  14. package/es/packages/components/resolver.mjs.map +1 -1
  15. package/es/packages/components/touchchat/component/AiRobot/HelloChat.vue.mjs +3 -2
  16. package/es/packages/components/touchchat/component/AiRobot/HelloChat.vue.mjs.map +1 -1
  17. package/es/packages/components/touchchat/component/AiRobot/HelloChat.vue2.mjs +219 -159
  18. package/es/packages/components/touchchat/component/AiRobot/HelloChat.vue2.mjs.map +1 -1
  19. package/es/packages/components/touchchat/component/AiRobot/face.vue.mjs +3 -2
  20. package/es/packages/components/touchchat/component/AiRobot/face.vue.mjs.map +1 -1
  21. package/es/packages/components/touchchat/component/AiRobot/face.vue2.mjs +27 -13
  22. package/es/packages/components/touchchat/component/AiRobot/face.vue2.mjs.map +1 -1
  23. package/es/packages/components/touchchat/component/AiRobot/letter.vue.mjs +3 -2
  24. package/es/packages/components/touchchat/component/AiRobot/letter.vue.mjs.map +1 -1
  25. package/es/packages/components/touchchat/component/AiRobot/letter.vue2.mjs +182 -41
  26. package/es/packages/components/touchchat/component/AiRobot/letter.vue2.mjs.map +1 -1
  27. package/es/packages/components/touchchat/component/AiRobot/meterialPrepare.vue.mjs +3 -2
  28. package/es/packages/components/touchchat/component/AiRobot/meterialPrepare.vue.mjs.map +1 -1
  29. package/es/packages/components/touchchat/component/AiRobot/meterialPrepare.vue2.mjs +15 -10
  30. package/es/packages/components/touchchat/component/AiRobot/meterialPrepare.vue2.mjs.map +1 -1
  31. package/es/packages/components/touchchat/component/AiRobot/start.vue.mjs +3 -2
  32. package/es/packages/components/touchchat/component/AiRobot/start.vue.mjs.map +1 -1
  33. package/es/packages/components/touchchat/component/AiRobot/start.vue2.mjs +18 -11
  34. package/es/packages/components/touchchat/component/AiRobot/start.vue2.mjs.map +1 -1
  35. package/es/packages/components/touchchat/component/CardView.vue.mjs +3 -2
  36. package/es/packages/components/touchchat/component/CardView.vue.mjs.map +1 -1
  37. package/es/packages/components/touchchat/component/CardView.vue2.mjs +66 -42
  38. package/es/packages/components/touchchat/component/CardView.vue2.mjs.map +1 -1
  39. package/es/packages/components/touchchat/component/FileContent.vue.mjs +7 -0
  40. package/es/packages/components/touchchat/component/FileContent.vue.mjs.map +1 -0
  41. package/es/packages/components/touchchat/component/FileContent.vue2.mjs +206 -0
  42. package/es/packages/components/touchchat/component/FileContent.vue2.mjs.map +1 -0
  43. package/es/packages/components/touchchat/component/FileView.vue.mjs +3 -2
  44. package/es/packages/components/touchchat/component/FileView.vue.mjs.map +1 -1
  45. package/es/packages/components/touchchat/component/FileView.vue2.mjs +17 -4
  46. package/es/packages/components/touchchat/component/FileView.vue2.mjs.map +1 -1
  47. package/es/packages/components/touchchat/component/HelloChat.vue.mjs +3 -2
  48. package/es/packages/components/touchchat/component/HelloChat.vue.mjs.map +1 -1
  49. package/es/packages/components/touchchat/component/HelloChat.vue2.mjs +26 -14
  50. package/es/packages/components/touchchat/component/HelloChat.vue2.mjs.map +1 -1
  51. package/es/packages/components/touchchat/component/ImageFile.vue.mjs +7 -0
  52. package/es/packages/components/touchchat/component/ImageFile.vue.mjs.map +1 -0
  53. package/es/packages/components/touchchat/component/ImageFile.vue2.mjs +162 -0
  54. package/es/packages/components/touchchat/component/ImageFile.vue2.mjs.map +1 -0
  55. package/es/packages/components/touchchat/component/ImageView.vue.mjs +3 -2
  56. package/es/packages/components/touchchat/component/ImageView.vue.mjs.map +1 -1
  57. package/es/packages/components/touchchat/component/ImageView.vue2.mjs +1 -1
  58. package/es/packages/components/touchchat/component/ImageView.vue2.mjs.map +1 -1
  59. package/es/packages/components/touchchat/component/LinkView.vue.mjs +3 -2
  60. package/es/packages/components/touchchat/component/LinkView.vue.mjs.map +1 -1
  61. package/es/packages/components/touchchat/component/LinkView.vue2.mjs +19 -5
  62. package/es/packages/components/touchchat/component/LinkView.vue2.mjs.map +1 -1
  63. package/es/packages/components/touchchat/component/MarkLayer.vue.mjs +7 -0
  64. package/es/packages/components/touchchat/component/MarkLayer.vue.mjs.map +1 -0
  65. package/es/packages/components/touchchat/component/MarkLayer.vue2.mjs +56 -0
  66. package/es/packages/components/touchchat/component/MarkLayer.vue2.mjs.map +1 -0
  67. package/es/packages/components/touchchat/component/ModuleSelect.vue.mjs +7 -0
  68. package/es/packages/components/touchchat/component/ModuleSelect.vue.mjs.map +1 -0
  69. package/es/packages/components/touchchat/component/ModuleSelect.vue2.mjs +121 -0
  70. package/es/packages/components/touchchat/component/ModuleSelect.vue2.mjs.map +1 -0
  71. package/es/packages/components/touchchat/component/PDFFile.vue.mjs +7 -0
  72. package/es/packages/components/touchchat/component/PDFFile.vue.mjs.map +1 -0
  73. package/es/packages/components/touchchat/component/PDFFile.vue2.mjs +211 -0
  74. package/es/packages/components/touchchat/component/PDFFile.vue2.mjs.map +1 -0
  75. package/es/packages/components/touchchat/component/QuoteContent.vue.mjs +7 -0
  76. package/es/packages/components/touchchat/component/QuoteContent.vue.mjs.map +1 -0
  77. package/es/packages/components/touchchat/component/QuoteContent.vue2.mjs +40 -0
  78. package/es/packages/components/touchchat/component/QuoteContent.vue2.mjs.map +1 -0
  79. package/es/packages/components/touchchat/component/RealtimeVoice.vue.mjs +7 -0
  80. package/es/packages/components/touchchat/component/RealtimeVoice.vue.mjs.map +1 -0
  81. package/es/packages/components/touchchat/component/RealtimeVoice.vue2.mjs +160 -0
  82. package/es/packages/components/touchchat/component/RealtimeVoice.vue2.mjs.map +1 -0
  83. package/es/packages/components/touchchat/component/Screenshot.vue.mjs +7 -0
  84. package/es/packages/components/touchchat/component/Screenshot.vue.mjs.map +1 -0
  85. package/es/packages/components/touchchat/component/Screenshot.vue2.mjs +208 -0
  86. package/es/packages/components/touchchat/component/Screenshot.vue2.mjs.map +1 -0
  87. package/es/packages/components/touchchat/component/ThoughtChain.vue.mjs +7 -0
  88. package/es/packages/components/touchchat/component/ThoughtChain.vue.mjs.map +1 -0
  89. package/es/packages/components/touchchat/component/ThoughtChain.vue2.mjs +69 -0
  90. package/es/packages/components/touchchat/component/ThoughtChain.vue2.mjs.map +1 -0
  91. package/es/packages/components/touchchat/component/UploadView.vue.mjs +7 -0
  92. package/es/packages/components/touchchat/component/UploadView.vue.mjs.map +1 -0
  93. package/es/packages/components/touchchat/component/UploadView.vue2.mjs +186 -0
  94. package/es/packages/components/touchchat/component/UploadView.vue2.mjs.map +1 -0
  95. package/es/packages/components/touchchat/component/UploadView_api.vue.mjs +7 -0
  96. package/es/packages/components/touchchat/component/UploadView_api.vue.mjs.map +1 -0
  97. package/es/packages/components/touchchat/component/UploadView_api.vue2.mjs +166 -0
  98. package/es/packages/components/touchchat/component/UploadView_api.vue2.mjs.map +1 -0
  99. package/es/packages/components/touchchat/component/VideoFile.vue.mjs +7 -0
  100. package/es/packages/components/touchchat/component/VideoFile.vue.mjs.map +1 -0
  101. package/es/packages/components/touchchat/component/VideoFile.vue2.mjs +33 -0
  102. package/es/packages/components/touchchat/component/VideoFile.vue2.mjs.map +1 -0
  103. package/es/packages/components/touchchat/component/VoiceView.vue.mjs +7 -0
  104. package/es/packages/components/touchchat/component/VoiceView.vue.mjs.map +1 -0
  105. package/es/packages/components/touchchat/component/VoiceView.vue2.mjs +165 -0
  106. package/es/packages/components/touchchat/component/VoiceView.vue2.mjs.map +1 -0
  107. package/es/packages/components/touchchat/img/file/doc.png.mjs +4 -0
  108. package/es/packages/components/touchchat/img/file/doc.png.mjs.map +1 -0
  109. package/es/packages/components/touchchat/img/file/docx.png.mjs +4 -0
  110. package/es/packages/components/touchchat/img/file/docx.png.mjs.map +1 -0
  111. package/es/packages/components/touchchat/img/file/gif.png.mjs +4 -0
  112. package/es/packages/components/touchchat/img/file/gif.png.mjs.map +1 -0
  113. package/es/packages/components/touchchat/img/file/html.png.mjs +4 -0
  114. package/es/packages/components/touchchat/img/file/html.png.mjs.map +1 -0
  115. package/es/packages/components/touchchat/img/file/jpg.png.mjs +4 -0
  116. package/es/packages/components/touchchat/img/file/jpg.png.mjs.map +1 -0
  117. package/es/packages/components/touchchat/img/file/mp3.png.mjs +4 -0
  118. package/es/packages/components/touchchat/img/file/mp3.png.mjs.map +1 -0
  119. package/es/packages/components/touchchat/img/file/mp4.png.mjs +4 -0
  120. package/es/packages/components/touchchat/img/file/mp4.png.mjs.map +1 -0
  121. package/es/packages/components/touchchat/img/file/music.png.mjs +4 -0
  122. package/es/packages/components/touchchat/img/file/music.png.mjs.map +1 -0
  123. package/es/packages/components/touchchat/img/file/pdf.png.mjs +4 -0
  124. package/es/packages/components/touchchat/img/file/pdf.png.mjs.map +1 -0
  125. package/es/packages/components/touchchat/img/file/png.png.mjs +4 -0
  126. package/es/packages/components/touchchat/img/file/png.png.mjs.map +1 -0
  127. package/es/packages/components/touchchat/img/file/ppt.png.mjs +4 -0
  128. package/es/packages/components/touchchat/img/file/ppt.png.mjs.map +1 -0
  129. package/es/packages/components/touchchat/img/file/pptx.png.mjs +4 -0
  130. package/es/packages/components/touchchat/img/file/pptx.png.mjs.map +1 -0
  131. package/es/packages/components/touchchat/img/file/txt.png.mjs +4 -0
  132. package/es/packages/components/touchchat/img/file/txt.png.mjs.map +1 -0
  133. package/es/packages/components/touchchat/img/file/xls.png.mjs +4 -0
  134. package/es/packages/components/touchchat/img/file/xls.png.mjs.map +1 -0
  135. package/es/packages/components/touchchat/img/file/xlsx.png.mjs +4 -0
  136. package/es/packages/components/touchchat/img/file/xlsx.png.mjs.map +1 -0
  137. package/es/packages/components/touchchat/img/svg/reset.svg.mjs +4 -0
  138. package/es/packages/components/touchchat/img/svg/reset.svg.mjs.map +1 -0
  139. package/es/packages/components/touchchat/index.mjs +5 -5
  140. package/es/packages/components/touchchat/index.mjs.map +1 -1
  141. package/es/packages/components/touchchat/src/AiChat/AgentsView.vue.mjs +7 -0
  142. package/es/packages/components/touchchat/src/AiChat/AgentsView.vue.mjs.map +1 -0
  143. package/es/packages/components/touchchat/src/AiChat/AgentsView.vue2.mjs +59 -0
  144. package/es/packages/components/touchchat/src/AiChat/AgentsView.vue2.mjs.map +1 -0
  145. package/es/packages/components/touchchat/src/AiChat/AiMessage.vue.mjs +3 -2
  146. package/es/packages/components/touchchat/src/AiChat/AiMessage.vue.mjs.map +1 -1
  147. package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs +322 -139
  148. package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs.map +1 -1
  149. package/es/packages/components/touchchat/src/AiChat/Chat/TouchChat.mjs +18 -0
  150. package/es/packages/components/touchchat/src/AiChat/Chat/TouchChat.mjs.map +1 -0
  151. package/es/packages/components/touchchat/src/AiChat/Chat/scriptMatcher.mjs +145 -0
  152. package/es/packages/components/touchchat/src/AiChat/Chat/scriptMatcher.mjs.map +1 -0
  153. package/es/packages/components/touchchat/src/AiChat/Chat/types.mjs +19 -0
  154. package/es/packages/components/touchchat/src/AiChat/Chat/types.mjs.map +1 -0
  155. package/es/packages/components/touchchat/src/AiChat/Chat/useChat.mjs +693 -0
  156. package/es/packages/components/touchchat/src/AiChat/Chat/useChat.mjs.map +1 -0
  157. package/es/packages/components/touchchat/src/AiChat/Chat/useCopy.mjs +55 -0
  158. package/es/packages/components/touchchat/src/AiChat/Chat/useCopy.mjs.map +1 -0
  159. package/es/packages/components/touchchat/src/AiChat/Chat/useMessageRender.mjs +155 -0
  160. package/es/packages/components/touchchat/src/AiChat/Chat/useMessageRender.mjs.map +1 -0
  161. package/es/packages/components/touchchat/src/AiChat/Chat/useSSE.mjs +345 -0
  162. package/es/packages/components/touchchat/src/AiChat/Chat/useSSE.mjs.map +1 -0
  163. package/es/packages/components/touchchat/src/AiChat/Chat/useScroll.mjs +74 -0
  164. package/es/packages/components/touchchat/src/AiChat/Chat/useScroll.mjs.map +1 -0
  165. package/es/packages/components/touchchat/src/AiChat/ChatInput.vue.mjs +3 -2
  166. package/es/packages/components/touchchat/src/AiChat/ChatInput.vue.mjs.map +1 -1
  167. package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs +472 -44
  168. package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs.map +1 -1
  169. package/es/packages/components/touchchat/src/AiChat/HistoryList.vue.mjs +3 -2
  170. package/es/packages/components/touchchat/src/AiChat/HistoryList.vue.mjs.map +1 -1
  171. package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs +180 -98
  172. package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs.map +1 -1
  173. package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue.mjs +3 -2
  174. package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue.mjs.map +1 -1
  175. package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs +29 -12
  176. package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs.map +1 -1
  177. package/es/packages/components/touchchat/src/AiChat/MessageActions.vue.mjs +3 -2
  178. package/es/packages/components/touchchat/src/AiChat/MessageActions.vue.mjs.map +1 -1
  179. package/es/packages/components/touchchat/src/AiChat/MessageActions.vue2.mjs +175 -62
  180. package/es/packages/components/touchchat/src/AiChat/MessageActions.vue2.mjs.map +1 -1
  181. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue.mjs +3 -2
  182. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue.mjs.map +1 -1
  183. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue2.mjs +14 -8
  184. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue2.mjs.map +1 -1
  185. package/es/packages/components/touchchat/src/AiChat/TouchAgent.vue.mjs +7 -0
  186. package/es/packages/components/touchchat/src/AiChat/TouchAgent.vue.mjs.map +1 -0
  187. package/es/packages/components/touchchat/src/AiChat/TouchAgent.vue2.mjs +1034 -0
  188. package/es/packages/components/touchchat/src/AiChat/TouchAgent.vue2.mjs.map +1 -0
  189. package/es/packages/components/touchchat/src/AiChat/TouchChat.vue.mjs +3 -2
  190. package/es/packages/components/touchchat/src/AiChat/TouchChat.vue.mjs.map +1 -1
  191. package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs +276 -1004
  192. package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs.map +1 -1
  193. package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue.mjs +3 -2
  194. package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue.mjs.map +1 -1
  195. package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue2.mjs +346 -122
  196. package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue2.mjs.map +1 -1
  197. package/es/packages/components/touchchat/src/AiChat/UserMessage.vue.mjs +3 -2
  198. package/es/packages/components/touchchat/src/AiChat/UserMessage.vue.mjs.map +1 -1
  199. package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs +143 -64
  200. package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs.map +1 -1
  201. package/es/packages/components/touchchat/src/index.vue.mjs +3 -2
  202. package/es/packages/components/touchchat/src/index.vue.mjs.map +1 -1
  203. package/es/packages/components/touchchat/src/index.vue2.mjs +252 -143
  204. package/es/packages/components/touchchat/src/index.vue2.mjs.map +1 -1
  205. package/es/packages/components/touchchat/src/types/a2a.mjs +11 -0
  206. package/es/packages/components/touchchat/src/types/a2a.mjs.map +1 -0
  207. package/es/packages/components/touchchat/utils/a2aService.mjs +316 -0
  208. package/es/packages/components/touchchat/utils/a2aService.mjs.map +1 -0
  209. package/es/packages/components/touchchat/utils/fetchStream.mjs +8 -2
  210. package/es/packages/components/touchchat/utils/fetchStream.mjs.map +1 -1
  211. package/es/packages/components/touchchat/utils/markdown.mjs +31 -13
  212. package/es/packages/components/touchchat/utils/markdown.mjs.map +1 -1
  213. package/es/packages/utils/config.mjs.map +1 -1
  214. package/es/packages/utils/types.mjs.map +1 -1
  215. package/global.d.ts +2 -2
  216. package/lib/_virtual/_plugin-vue_export-helper.js +14 -0
  217. package/lib/_virtual/_plugin-vue_export-helper.js.map +1 -0
  218. package/lib/index.js.map +1 -1
  219. package/lib/node_modules/.pnpm/@touchvue_a2ui@1.0.0-beta.46/node_modules/@touchvue/a2ui/dist/index.js +4819 -0
  220. package/lib/node_modules/.pnpm/@touchvue_a2ui@1.0.0-beta.46/node_modules/@touchvue/a2ui/dist/index.js.map +1 -0
  221. package/lib/node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.js +1384 -0
  222. package/lib/node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.js.map +1 -0
  223. package/lib/node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/html2canvas.esm.js +7828 -0
  224. package/lib/node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/html2canvas.esm.js.map +1 -0
  225. package/lib/package.json.css +1 -1
  226. package/lib/package.json.js +2 -2
  227. package/lib/packages/components/index.js +2 -2
  228. package/lib/packages/components/resolver.js.map +1 -1
  229. package/lib/packages/components/touchchat/component/AiRobot/HelloChat.vue.js +3 -2
  230. package/lib/packages/components/touchchat/component/AiRobot/HelloChat.vue.js.map +1 -1
  231. package/lib/packages/components/touchchat/component/AiRobot/HelloChat.vue2.js +219 -159
  232. package/lib/packages/components/touchchat/component/AiRobot/HelloChat.vue2.js.map +1 -1
  233. package/lib/packages/components/touchchat/component/AiRobot/face.vue.js +3 -2
  234. package/lib/packages/components/touchchat/component/AiRobot/face.vue.js.map +1 -1
  235. package/lib/packages/components/touchchat/component/AiRobot/face.vue2.js +26 -12
  236. package/lib/packages/components/touchchat/component/AiRobot/face.vue2.js.map +1 -1
  237. package/lib/packages/components/touchchat/component/AiRobot/letter.vue.js +3 -2
  238. package/lib/packages/components/touchchat/component/AiRobot/letter.vue.js.map +1 -1
  239. package/lib/packages/components/touchchat/component/AiRobot/letter.vue2.js +181 -40
  240. package/lib/packages/components/touchchat/component/AiRobot/letter.vue2.js.map +1 -1
  241. package/lib/packages/components/touchchat/component/AiRobot/meterialPrepare.vue.js +3 -2
  242. package/lib/packages/components/touchchat/component/AiRobot/meterialPrepare.vue.js.map +1 -1
  243. package/lib/packages/components/touchchat/component/AiRobot/meterialPrepare.vue2.js +15 -10
  244. package/lib/packages/components/touchchat/component/AiRobot/meterialPrepare.vue2.js.map +1 -1
  245. package/lib/packages/components/touchchat/component/AiRobot/start.vue.js +3 -2
  246. package/lib/packages/components/touchchat/component/AiRobot/start.vue.js.map +1 -1
  247. package/lib/packages/components/touchchat/component/AiRobot/start.vue2.js +17 -10
  248. package/lib/packages/components/touchchat/component/AiRobot/start.vue2.js.map +1 -1
  249. package/lib/packages/components/touchchat/component/CardView.vue.js +3 -2
  250. package/lib/packages/components/touchchat/component/CardView.vue.js.map +1 -1
  251. package/lib/packages/components/touchchat/component/CardView.vue2.js +66 -42
  252. package/lib/packages/components/touchchat/component/CardView.vue2.js.map +1 -1
  253. package/lib/packages/components/touchchat/component/FileContent.vue.js +11 -0
  254. package/lib/packages/components/touchchat/component/FileContent.vue.js.map +1 -0
  255. package/lib/packages/components/touchchat/component/FileContent.vue2.js +210 -0
  256. package/lib/packages/components/touchchat/component/FileContent.vue2.js.map +1 -0
  257. package/lib/packages/components/touchchat/component/FileView.vue.js +3 -2
  258. package/lib/packages/components/touchchat/component/FileView.vue.js.map +1 -1
  259. package/lib/packages/components/touchchat/component/FileView.vue2.js +16 -3
  260. package/lib/packages/components/touchchat/component/FileView.vue2.js.map +1 -1
  261. package/lib/packages/components/touchchat/component/HelloChat.vue.js +3 -2
  262. package/lib/packages/components/touchchat/component/HelloChat.vue.js.map +1 -1
  263. package/lib/packages/components/touchchat/component/HelloChat.vue2.js +26 -14
  264. package/lib/packages/components/touchchat/component/HelloChat.vue2.js.map +1 -1
  265. package/lib/packages/components/touchchat/component/ImageFile.vue.js +11 -0
  266. package/lib/packages/components/touchchat/component/ImageFile.vue.js.map +1 -0
  267. package/lib/packages/components/touchchat/component/ImageFile.vue2.js +166 -0
  268. package/lib/packages/components/touchchat/component/ImageFile.vue2.js.map +1 -0
  269. package/lib/packages/components/touchchat/component/ImageView.vue.js +3 -2
  270. package/lib/packages/components/touchchat/component/ImageView.vue.js.map +1 -1
  271. package/lib/packages/components/touchchat/component/ImageView.vue2.js +1 -1
  272. package/lib/packages/components/touchchat/component/ImageView.vue2.js.map +1 -1
  273. package/lib/packages/components/touchchat/component/LinkView.vue.js +3 -2
  274. package/lib/packages/components/touchchat/component/LinkView.vue.js.map +1 -1
  275. package/lib/packages/components/touchchat/component/LinkView.vue2.js +18 -4
  276. package/lib/packages/components/touchchat/component/LinkView.vue2.js.map +1 -1
  277. package/lib/packages/components/touchchat/component/MarkLayer.vue.js +11 -0
  278. package/lib/packages/components/touchchat/component/MarkLayer.vue.js.map +1 -0
  279. package/lib/packages/components/touchchat/component/MarkLayer.vue2.js +60 -0
  280. package/lib/packages/components/touchchat/component/MarkLayer.vue2.js.map +1 -0
  281. package/lib/packages/components/touchchat/component/ModuleSelect.vue.js +11 -0
  282. package/lib/packages/components/touchchat/component/ModuleSelect.vue.js.map +1 -0
  283. package/lib/packages/components/touchchat/component/ModuleSelect.vue2.js +125 -0
  284. package/lib/packages/components/touchchat/component/ModuleSelect.vue2.js.map +1 -0
  285. package/lib/packages/components/touchchat/component/PDFFile.vue.js +11 -0
  286. package/lib/packages/components/touchchat/component/PDFFile.vue.js.map +1 -0
  287. package/lib/packages/components/touchchat/component/PDFFile.vue2.js +215 -0
  288. package/lib/packages/components/touchchat/component/PDFFile.vue2.js.map +1 -0
  289. package/lib/packages/components/touchchat/component/QuoteContent.vue.js +11 -0
  290. package/lib/packages/components/touchchat/component/QuoteContent.vue.js.map +1 -0
  291. package/lib/packages/components/touchchat/component/QuoteContent.vue2.js +44 -0
  292. package/lib/packages/components/touchchat/component/QuoteContent.vue2.js.map +1 -0
  293. package/lib/packages/components/touchchat/component/RealtimeVoice.vue.js +11 -0
  294. package/lib/packages/components/touchchat/component/RealtimeVoice.vue.js.map +1 -0
  295. package/lib/packages/components/touchchat/component/RealtimeVoice.vue2.js +164 -0
  296. package/lib/packages/components/touchchat/component/RealtimeVoice.vue2.js.map +1 -0
  297. package/lib/packages/components/touchchat/component/Screenshot.vue.js +11 -0
  298. package/lib/packages/components/touchchat/component/Screenshot.vue.js.map +1 -0
  299. package/lib/packages/components/touchchat/component/Screenshot.vue2.js +212 -0
  300. package/lib/packages/components/touchchat/component/Screenshot.vue2.js.map +1 -0
  301. package/lib/packages/components/touchchat/component/ThoughtChain.vue.js +11 -0
  302. package/lib/packages/components/touchchat/component/ThoughtChain.vue.js.map +1 -0
  303. package/lib/packages/components/touchchat/component/ThoughtChain.vue2.js +73 -0
  304. package/lib/packages/components/touchchat/component/ThoughtChain.vue2.js.map +1 -0
  305. package/lib/packages/components/touchchat/component/UploadView.vue.js +11 -0
  306. package/lib/packages/components/touchchat/component/UploadView.vue.js.map +1 -0
  307. package/lib/packages/components/touchchat/component/UploadView.vue2.js +190 -0
  308. package/lib/packages/components/touchchat/component/UploadView.vue2.js.map +1 -0
  309. package/lib/packages/components/touchchat/component/UploadView_api.vue.js +11 -0
  310. package/lib/packages/components/touchchat/component/UploadView_api.vue.js.map +1 -0
  311. package/lib/packages/components/touchchat/component/UploadView_api.vue2.js +170 -0
  312. package/lib/packages/components/touchchat/component/UploadView_api.vue2.js.map +1 -0
  313. package/lib/packages/components/touchchat/component/VideoFile.vue.js +11 -0
  314. package/lib/packages/components/touchchat/component/VideoFile.vue.js.map +1 -0
  315. package/lib/packages/components/touchchat/component/VideoFile.vue2.js +37 -0
  316. package/lib/packages/components/touchchat/component/VideoFile.vue2.js.map +1 -0
  317. package/lib/packages/components/touchchat/component/VoiceView.vue.js +11 -0
  318. package/lib/packages/components/touchchat/component/VoiceView.vue.js.map +1 -0
  319. package/lib/packages/components/touchchat/component/VoiceView.vue2.js +169 -0
  320. package/lib/packages/components/touchchat/component/VoiceView.vue2.js.map +1 -0
  321. package/lib/packages/components/touchchat/img/file/doc.png.js +8 -0
  322. package/lib/packages/components/touchchat/img/file/doc.png.js.map +1 -0
  323. package/lib/packages/components/touchchat/img/file/docx.png.js +8 -0
  324. package/lib/packages/components/touchchat/img/file/docx.png.js.map +1 -0
  325. package/lib/packages/components/touchchat/img/file/gif.png.js +8 -0
  326. package/lib/packages/components/touchchat/img/file/gif.png.js.map +1 -0
  327. package/lib/packages/components/touchchat/img/file/html.png.js +8 -0
  328. package/lib/packages/components/touchchat/img/file/html.png.js.map +1 -0
  329. package/lib/packages/components/touchchat/img/file/jpg.png.js +8 -0
  330. package/lib/packages/components/touchchat/img/file/jpg.png.js.map +1 -0
  331. package/lib/packages/components/touchchat/img/file/mp3.png.js +8 -0
  332. package/lib/packages/components/touchchat/img/file/mp3.png.js.map +1 -0
  333. package/lib/packages/components/touchchat/img/file/mp4.png.js +8 -0
  334. package/lib/packages/components/touchchat/img/file/mp4.png.js.map +1 -0
  335. package/lib/packages/components/touchchat/img/file/music.png.js +8 -0
  336. package/lib/packages/components/touchchat/img/file/music.png.js.map +1 -0
  337. package/lib/packages/components/touchchat/img/file/pdf.png.js +8 -0
  338. package/lib/packages/components/touchchat/img/file/pdf.png.js.map +1 -0
  339. package/lib/packages/components/touchchat/img/file/png.png.js +8 -0
  340. package/lib/packages/components/touchchat/img/file/png.png.js.map +1 -0
  341. package/lib/packages/components/touchchat/img/file/ppt.png.js +8 -0
  342. package/lib/packages/components/touchchat/img/file/ppt.png.js.map +1 -0
  343. package/lib/packages/components/touchchat/img/file/pptx.png.js +8 -0
  344. package/lib/packages/components/touchchat/img/file/pptx.png.js.map +1 -0
  345. package/lib/packages/components/touchchat/img/file/txt.png.js +8 -0
  346. package/lib/packages/components/touchchat/img/file/txt.png.js.map +1 -0
  347. package/lib/packages/components/touchchat/img/file/xls.png.js +8 -0
  348. package/lib/packages/components/touchchat/img/file/xls.png.js.map +1 -0
  349. package/lib/packages/components/touchchat/img/file/xlsx.png.js +8 -0
  350. package/lib/packages/components/touchchat/img/file/xlsx.png.js.map +1 -0
  351. package/lib/packages/components/touchchat/img/svg/reset.svg.js +8 -0
  352. package/lib/packages/components/touchchat/img/svg/reset.svg.js.map +1 -0
  353. package/lib/packages/components/touchchat/index.js +6 -6
  354. package/lib/packages/components/touchchat/index.js.map +1 -1
  355. package/lib/packages/components/touchchat/src/AiChat/AgentsView.vue.js +11 -0
  356. package/lib/packages/components/touchchat/src/AiChat/AgentsView.vue.js.map +1 -0
  357. package/lib/packages/components/touchchat/src/AiChat/AgentsView.vue2.js +63 -0
  358. package/lib/packages/components/touchchat/src/AiChat/AgentsView.vue2.js.map +1 -0
  359. package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue.js +3 -2
  360. package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue.js.map +1 -1
  361. package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js +321 -138
  362. package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js.map +1 -1
  363. package/lib/packages/components/touchchat/src/AiChat/Chat/TouchChat.js +21 -0
  364. package/lib/packages/components/touchchat/src/AiChat/Chat/TouchChat.js.map +1 -0
  365. package/lib/packages/components/touchchat/src/AiChat/Chat/scriptMatcher.js +147 -0
  366. package/lib/packages/components/touchchat/src/AiChat/Chat/scriptMatcher.js.map +1 -0
  367. package/lib/packages/components/touchchat/src/AiChat/Chat/types.js +22 -0
  368. package/lib/packages/components/touchchat/src/AiChat/Chat/types.js.map +1 -0
  369. package/lib/packages/components/touchchat/src/AiChat/Chat/useChat.js +695 -0
  370. package/lib/packages/components/touchchat/src/AiChat/Chat/useChat.js.map +1 -0
  371. package/lib/packages/components/touchchat/src/AiChat/Chat/useCopy.js +57 -0
  372. package/lib/packages/components/touchchat/src/AiChat/Chat/useCopy.js.map +1 -0
  373. package/lib/packages/components/touchchat/src/AiChat/Chat/useMessageRender.js +157 -0
  374. package/lib/packages/components/touchchat/src/AiChat/Chat/useMessageRender.js.map +1 -0
  375. package/lib/packages/components/touchchat/src/AiChat/Chat/useSSE.js +347 -0
  376. package/lib/packages/components/touchchat/src/AiChat/Chat/useSSE.js.map +1 -0
  377. package/lib/packages/components/touchchat/src/AiChat/Chat/useScroll.js +76 -0
  378. package/lib/packages/components/touchchat/src/AiChat/Chat/useScroll.js.map +1 -0
  379. package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue.js +3 -2
  380. package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue.js.map +1 -1
  381. package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js +471 -43
  382. package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js.map +1 -1
  383. package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue.js +3 -2
  384. package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue.js.map +1 -1
  385. package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js +179 -97
  386. package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js.map +1 -1
  387. package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue.js +3 -2
  388. package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue.js.map +1 -1
  389. package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js +28 -11
  390. package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js.map +1 -1
  391. package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue.js +3 -2
  392. package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue.js.map +1 -1
  393. package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue2.js +174 -61
  394. package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue2.js.map +1 -1
  395. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue.js +3 -2
  396. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue.js.map +1 -1
  397. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue2.js +14 -8
  398. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue2.js.map +1 -1
  399. package/lib/packages/components/touchchat/src/AiChat/TouchAgent.vue.js +11 -0
  400. package/lib/packages/components/touchchat/src/AiChat/TouchAgent.vue.js.map +1 -0
  401. package/lib/packages/components/touchchat/src/AiChat/TouchAgent.vue2.js +1038 -0
  402. package/lib/packages/components/touchchat/src/AiChat/TouchAgent.vue2.js.map +1 -0
  403. package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue.js +3 -2
  404. package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue.js.map +1 -1
  405. package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js +275 -1003
  406. package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js.map +1 -1
  407. package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue.js +3 -2
  408. package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue.js.map +1 -1
  409. package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue2.js +345 -121
  410. package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue2.js.map +1 -1
  411. package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue.js +3 -2
  412. package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue.js.map +1 -1
  413. package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js +142 -63
  414. package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js.map +1 -1
  415. package/lib/packages/components/touchchat/src/index.vue.js +3 -2
  416. package/lib/packages/components/touchchat/src/index.vue.js.map +1 -1
  417. package/lib/packages/components/touchchat/src/index.vue2.js +251 -142
  418. package/lib/packages/components/touchchat/src/index.vue2.js.map +1 -1
  419. package/lib/packages/components/touchchat/src/types/a2a.js +13 -0
  420. package/lib/packages/components/touchchat/src/types/a2a.js.map +1 -0
  421. package/lib/packages/components/touchchat/utils/a2aService.js +319 -0
  422. package/lib/packages/components/touchchat/utils/a2aService.js.map +1 -0
  423. package/lib/packages/components/touchchat/utils/fetchStream.js +8 -2
  424. package/lib/packages/components/touchchat/utils/fetchStream.js.map +1 -1
  425. package/lib/packages/components/touchchat/utils/markdown.js +31 -13
  426. package/lib/packages/components/touchchat/utils/markdown.js.map +1 -1
  427. package/lib/packages/utils/config.js.map +1 -1
  428. package/lib/packages/utils/types.js.map +1 -1
  429. package/package.json +83 -83
  430. package/theme/components/index.css +969 -43
  431. package/theme/font/iconfont.woff +0 -0
  432. package/theme/font/iconfont.woff2 +0 -0
  433. package/theme/index.css +969 -43
  434. package/theme/skin/default.css +969 -43
  435. package/types/global.d.ts +2 -2
  436. package/es/packages/components/touchchat/src/AiChat/Scene.vue.mjs +0 -6
  437. package/es/packages/components/touchchat/src/AiChat/Scene.vue.mjs.map +0 -1
  438. package/es/packages/components/touchchat/src/AiChat/Scene.vue2.mjs +0 -42
  439. package/es/packages/components/touchchat/src/AiChat/Scene.vue2.mjs.map +0 -1
  440. package/lib/packages/components/touchchat/src/AiChat/Scene.vue.js +0 -10
  441. package/lib/packages/components/touchchat/src/AiChat/Scene.vue.js.map +0 -1
  442. package/lib/packages/components/touchchat/src/AiChat/Scene.vue2.js +0 -46
  443. package/lib/packages/components/touchchat/src/AiChat/Scene.vue2.js.map +0 -1
@@ -5,48 +5,68 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var vue = require('vue');
6
6
  var aiAvatar = require('../../img/aiAvatar.png.js');
7
7
  var markdown = require('../../utils/markdown.js');
8
- var FileView_vue_vue_type_script_setup_true_lang = require('../../component/FileView.vue2.js');
9
- var ImageView_vue_vue_type_script_setup_true_lang = require('../../component/ImageView.vue2.js');
10
- var LinkView_vue_vue_type_script_setup_true_lang = require('../../component/LinkView.vue2.js');
11
- var CardView_vue_vue_type_script_setup_true_lang = require('../../component/CardView.vue2.js');
12
- var MessageActions_vue_vue_type_script_setup_true_lang = require('./MessageActions.vue2.js');
13
- var face_vue_vue_type_script_setup_true_lang = require('../../component/AiRobot/face.vue2.js');
14
- var meterialPrepare_vue_vue_type_script_setup_true_lang = require('../../component/AiRobot/meterialPrepare.vue2.js');
15
- var letter_vue_vue_type_script_setup_true_lang = require('../../component/AiRobot/letter.vue2.js');
8
+ var FileView = require('../../component/FileView.vue.js');
9
+ var ImageView = require('../../component/ImageView.vue.js');
10
+ var LinkView = require('../../component/LinkView.vue.js');
11
+ var CardView = require('../../component/CardView.vue.js');
12
+ var MessageActions = require('./MessageActions.vue.js');
13
+ var face = require('../../component/AiRobot/face.vue.js');
14
+ var meterialPrepare = require('../../component/AiRobot/meterialPrepare.vue.js');
15
+ var letter = require('../../component/AiRobot/letter.vue.js');
16
+ var ThoughtChain = require('../../component/ThoughtChain.vue.js');
17
+ var index = require('../../../../../node_modules/.pnpm/@touchvue_a2ui@1.0.0-beta.46/node_modules/@touchvue/a2ui/dist/index.js');
16
18
 
17
19
  var _sfc_main = /* @__PURE__ */ vue.defineComponent({
18
20
  __name: "AiMessage",
19
21
  props: {
20
22
  item: {},
21
- index: {}
23
+ index: {},
24
+ hasRetry: { type: Boolean, default: true }
22
25
  },
23
- emits: ["copy", "retry", "like", "dislike", "contentRendered", "completeRendered", "toggle-sidebar"],
26
+ emits: ["copy", "retry", "like", "dislike", "quote", "contentRendered", "completeRendered", "toggle-sidebar", "openSideBar", "send"],
24
27
  setup(__props, { emit: __emit }) {
25
28
  const componentMap = {
26
- FileView: FileView_vue_vue_type_script_setup_true_lang.default,
27
- ImageView: ImageView_vue_vue_type_script_setup_true_lang.default,
28
- LinkView: LinkView_vue_vue_type_script_setup_true_lang.default,
29
- CardView: CardView_vue_vue_type_script_setup_true_lang.default,
30
- Face: face_vue_vue_type_script_setup_true_lang.default,
31
- MeterialPrepare: meterialPrepare_vue_vue_type_script_setup_true_lang.default
29
+ FileView: FileView.default,
30
+ ImageView: ImageView.default,
31
+ LinkView: LinkView.default,
32
+ CardView: CardView.default,
33
+ Face: face.default,
34
+ MeterialPrepare: meterialPrepare.default
32
35
  };
33
36
  const props = __props;
37
+ vue.watch(
38
+ () => props.item,
39
+ (val) => {
40
+ var _a;
41
+ let arr = [];
42
+ if (val.msgList) {
43
+ arr = (_a = val.msgList) == null ? void 0 : _a.filter((item) => item.type === "component" && (item.displayMode === "drawer" || item.displayMode === "tip") || item.type === "iframe" && item.url);
44
+ }
45
+ if (arr.length) {
46
+ emits("openSideBar", arr[0], props.index);
47
+ }
48
+ },
49
+ {
50
+ deep: true
51
+ }
52
+ );
34
53
  const emits = __emit;
35
- const htmlContentRef = vue.ref(null);
36
- const thinkingContentRef = vue.ref(null);
37
- const reasoningContentRef = vue.ref(null);
38
54
  const collapse = vue.ref(true);
39
55
  const isShowAvatar = vue.ref(true);
40
56
  const aiAvatarPath = vue.ref(aiAvatar.default);
41
- const rootMap = vue.inject("rootMap", {});
42
- const isAvatar = vue.inject("isAvatar", true);
57
+ const components = vue.inject("components", {});
58
+ const a2uiProps = vue.inject("a2uiProps", {});
59
+ const avatar = vue.inject("avatar", true);
43
60
  const scripts = vue.inject("scripts", []);
44
- const noBubbleBorder = vue.inject("noBubbleBorder", false);
61
+ const layout = vue.inject("layout", "side, think, upload, chain");
62
+ const chainAble = layout.includes("chain");
63
+ const showComponent = vue.ref(false);
64
+ const showFn = vue.ref(false);
45
65
  const init = () => {
46
- isShowAvatar.value = isAvatar;
66
+ isShowAvatar.value = avatar;
47
67
  };
48
68
  const componentName = vue.computed(() => {
49
- const slotMap = rootMap;
69
+ const slotMap = components;
50
70
  const newMap = {
51
71
  ...slotMap,
52
72
  ...componentMap
@@ -59,147 +79,310 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
59
79
  const reasoningContentShow = vue.computed(() => {
60
80
  return props.item.reasoningContent;
61
81
  });
82
+ const processedContent = vue.computed(() => {
83
+ var _a;
84
+ return props.item.content ? ((_a = markdown.default) == null ? void 0 : _a.render(props.item.content, { isReasoning: false })) || "" : "";
85
+ });
86
+ const getProcessedContent = (node) => {
87
+ var _a;
88
+ return node.content ? ((_a = markdown.default) == null ? void 0 : _a.render(node.content, { isReasoning: false })) || "" : "";
89
+ };
90
+ const processedThinkContent = vue.computed(() => {
91
+ var _a;
92
+ return props.item.thinkContent ? ((_a = markdown.default) == null ? void 0 : _a.render(props.item.thinkContent, { isReasoning: true })) || "" : "";
93
+ });
94
+ const processedReasoningContent = vue.computed(() => {
95
+ var _a;
96
+ return props.item.reasoningContent ? ((_a = markdown.default) == null ? void 0 : _a.render(props.item.reasoningContent, { isReasoning: true })) || "" : "";
97
+ });
62
98
  const contentShow = vue.computed(() => {
63
- return props.item.content;
99
+ var _a;
100
+ return props.item.content || ((_a = props.item.msgList) == null ? void 0 : _a.length);
64
101
  });
102
+ const handleSend = (sendVal) => {
103
+ emits("send", sendVal);
104
+ };
65
105
  const toggleSidebarClick = (item, index) => {
66
106
  emits("toggle-sidebar", item, index);
67
107
  };
68
- vue.nextTick(() => {
69
- renderContent();
108
+ vue.onMounted(() => {
109
+ init();
70
110
  });
71
- vue.watch(
72
- () => [props.item.content, props.item.thinkContent, props.item.reasoningContent],
73
- () => {
74
- vue.nextTick(() => renderContent());
75
- },
76
- { deep: true }
77
- );
78
- const renderContent = () => {
79
- var _a, _b, _c;
80
- if (htmlContentRef.value) {
81
- htmlContentRef.value.innerHTML = props.item.content ? markdown.default && ((_a = markdown.default) == null ? void 0 : _a.render(props.item.content, { isReasoning: false })) || "" : "";
82
- emits("contentRendered", htmlContentRef.value);
83
- }
84
- if (thinkingContentRef.value) {
85
- thinkingContentRef.value.innerHTML = props.item.thinkContent ? markdown.default && ((_b = markdown.default) == null ? void 0 : _b.render(props.item.thinkContent, { isReasoning: true })) || "" : "";
86
- emits("contentRendered", thinkingContentRef.value);
87
- }
88
- if (reasoningContentRef.value) {
89
- reasoningContentRef.value.innerHTML = props.item.reasoningContent ? markdown.default && ((_c = markdown.default) == null ? void 0 : _c.render(props.item.reasoningContent, { isReasoning: true })) || "" : "";
90
- emits("contentRendered", reasoningContentRef.value);
111
+ const completeCompentent = () => {
112
+ var _a;
113
+ emits("completeRendered", ((_a = props.item) == null ? void 0 : _a.chatId) || "");
114
+ showFn.value = true;
115
+ };
116
+ const completeLetter = () => {
117
+ var _a;
118
+ showComponent.value = true;
119
+ if (!props.item.componentName) {
120
+ emits("completeRendered", ((_a = props.item) == null ? void 0 : _a.chatId) || "");
121
+ showFn.value = true;
91
122
  }
92
- init();
93
123
  };
94
- const complete = () => {
95
- emits("completeRendered");
124
+ const startCompentent = () => {
125
+ console.log("startCompentent");
126
+ };
127
+ const startLetter = () => {
128
+ showComponent.value = false;
129
+ showFn.value = false;
96
130
  };
97
131
  const onCopy = () => emits("copy", props.index);
98
132
  const onRetry = () => emits("retry", props.index);
99
133
  const onLike = () => emits("like", props.index);
100
134
  const onDislike = () => emits("dislike", props.index);
135
+ const onQuote = () => emits("quote", props.item, props.index);
101
136
  return (_ctx, _cache) => {
102
- return vue.openBlock(), vue.createElementBlock("div", { class: "touchchat-ai" }, [
137
+ return vue.openBlock(), vue.createElementBlock("div", {
138
+ class: "touchchat-ai touchchat-item",
139
+ "data-chat-id": __props.item.chatId
140
+ }, [
141
+ vue.createCommentVNode(" \u5934\u50CF\u533A\u57DF "),
103
142
  vue.createElementVNode("div", { class: "touchchat-ai-avatar" }, [
104
143
  vue.renderSlot(_ctx.$slots, "aiAvatar", {}, () => [
105
144
  isShowAvatar.value ? (vue.openBlock(), vue.createElementBlock("img", {
106
145
  key: 0,
107
146
  src: aiAvatarPath.value,
108
147
  class: "touchchat-ai-avatar-pic"
109
- }, null, 8, ["src"])) : vue.createCommentVNode("", true)
148
+ }, null, 8, ["src"])) : vue.createCommentVNode("v-if", true)
110
149
  ])
111
150
  ]),
112
- vue.createElementVNode("div", {
113
- class: vue.normalizeClass(["touchchat-ai-content", { "is-full": !_ctx.item.isChating && _ctx.item.componentName }])
114
- }, [
115
- vue.createElementVNode("div", {
116
- class: vue.normalizeClass(["touchchat-ai-bubble", vue.unref(noBubbleBorder) && !_ctx.item.isChating && _ctx.item.componentName ? "no-bobble-border" : ""])
117
- }, [
118
- thinkContentShow.value ? (vue.openBlock(), vue.createElementBlock("div", {
119
- key: 0,
120
- ref: (el) => thinkingContentRef.value = el,
121
- class: "touchchat-ai-think"
122
- }, null, 512)) : vue.createCommentVNode("", true),
123
- reasoningContentShow.value ? (vue.openBlock(), vue.createElementBlock("div", {
124
- key: 1,
125
- class: "touchchat-ai-think"
126
- }, [
127
- vue.createElementVNode("div", { class: "touchchat-ai-think-header" }, [
128
- vue.createElementVNode("div", { class: "touchchat-ai-think-state" }, [
129
- vue.createTextVNode(vue.toDisplayString(_ctx.item.thinkStatus === "thinking" ? "\u6DF1\u5EA6\u601D\u8003\u4E2D..." : _ctx.item.thinkStatus === "completed" ? "\u5DF2\u6DF1\u5EA6\u601D\u8003" : "\u601D\u8003\u5DF2\u505C\u6B62") + " ", 1),
130
- _ctx.item.thinkStatus === "completed" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
131
- vue.createTextVNode("\uFF08\u7528\u65F6" + vue.toDisplayString((_ctx.item.thinkTime || 0) / 1e3) + "\u79D2\uFF09", 1)
132
- ], 64)) : vue.createCommentVNode("", true)
151
+ vue.createCommentVNode(" \u5185\u5BB9\u533A\u57DF "),
152
+ vue.createElementVNode(
153
+ "div",
154
+ {
155
+ class: vue.normalizeClass(["touchchat-ai-content", { "is-full": !__props.item.isChating && __props.item.componentName }])
156
+ },
157
+ [
158
+ vue.createCommentVNode(" \u6C14\u6CE1 "),
159
+ vue.createElementVNode("div", { class: "touchchat-ai-bubble" }, [
160
+ vue.createCommentVNode(" \u601D\u8003\u5185\u5BB9 "),
161
+ thinkContentShow.value ? (vue.openBlock(), vue.createElementBlock("div", {
162
+ key: 0,
163
+ class: "touchchat-ai-think",
164
+ innerHTML: processedThinkContent.value
165
+ }, null, 8, ["innerHTML"])) : vue.createCommentVNode("v-if", true),
166
+ vue.createCommentVNode(" \u63A8\u7406\u5185\u5BB9 "),
167
+ reasoningContentShow.value ? (vue.openBlock(), vue.createElementBlock("div", {
168
+ key: 1,
169
+ class: "touchchat-ai-think"
170
+ }, [
171
+ vue.createElementVNode("div", { class: "touchchat-ai-think-header" }, [
172
+ vue.createElementVNode("div", { class: "touchchat-ai-think-state" }, [
173
+ vue.createTextVNode(
174
+ vue.toDisplayString(__props.item.thinkStatus === "thinking" ? "\u6DF1\u5EA6\u601D\u8003\u4E2D..." : __props.item.thinkStatus === "completed" ? "\u5DF2\u6DF1\u5EA6\u601D\u8003" : "\u601D\u8003\u5DF2\u505C\u6B62") + " ",
175
+ 1
176
+ /* TEXT */
177
+ ),
178
+ __props.item.thinkStatus === "completed" ? (vue.openBlock(), vue.createElementBlock(
179
+ vue.Fragment,
180
+ { key: 0 },
181
+ [
182
+ vue.createTextVNode(
183
+ "\uFF08\u7528\u65F6" + vue.toDisplayString((__props.item.thinkTime || 0) / 1e3) + "\u79D2\uFF09",
184
+ 1
185
+ /* TEXT */
186
+ )
187
+ ],
188
+ 64
189
+ /* STABLE_FRAGMENT */
190
+ )) : vue.createCommentVNode("v-if", true)
191
+ ]),
192
+ vue.createElementVNode("div", {
193
+ class: vue.normalizeClass(["touchchat-ai-think-toggle", collapse.value ? "" : "is-expand"]),
194
+ onClick: ($event) => collapse.value = !collapse.value
195
+ }, [
196
+ vue.createElementVNode("span", { class: "touchchat-ai-think-toggle-icon" })
197
+ ], 10, ["onClick"])
133
198
  ]),
134
- vue.createElementVNode("div", {
135
- class: vue.normalizeClass(["touchchat-ai-think-toggle", collapse.value ? "" : "is-expand"]),
136
- onClick: ($event) => collapse.value = !collapse.value
199
+ vue.createVNode(vue.Transition, {
200
+ name: "touchchat-ai-think-collpase",
201
+ persisted: ""
202
+ }, {
203
+ default: vue.withCtx(() => [
204
+ vue.withDirectives(vue.createElementVNode("div", {
205
+ class: "touchchat-ai-think-content",
206
+ innerHTML: processedReasoningContent.value
207
+ }, null, 8, ["innerHTML"]), [
208
+ [vue.vShow, collapse.value && !vue.unref(chainAble)]
209
+ ])
210
+ ]),
211
+ _: 1
212
+ /* STABLE */
213
+ }),
214
+ vue.createVNode(vue.Transition, {
215
+ name: "touchchat-ai-think-collpase",
216
+ persisted: ""
217
+ }, {
218
+ default: vue.withCtx(() => [
219
+ vue.withDirectives(vue.createVNode(
220
+ ThoughtChain.default,
221
+ null,
222
+ null,
223
+ 512
224
+ /* NEED_PATCH */
225
+ ), [
226
+ [vue.vShow, collapse.value && vue.unref(chainAble)]
227
+ ])
228
+ ]),
229
+ _: 1
230
+ /* STABLE */
231
+ })
232
+ ])) : vue.createCommentVNode("v-if", true),
233
+ vue.createCommentVNode(" \u4E3B\u5185\u5BB9 "),
234
+ vue.renderSlot(_ctx.$slots, "aimsg", {
235
+ item: __props.item,
236
+ index: __props.index
237
+ }, () => [
238
+ contentShow.value && vue.unref(scripts) && vue.unref(scripts).length === 0 && __props.item.msgList && __props.item.msgList.length ? (vue.openBlock(), vue.createElementBlock("div", {
239
+ key: 0,
240
+ class: "touchchat-ai-bubble-text touchchat-markdown"
137
241
  }, [
138
- vue.createElementVNode("span", { class: "touchchat-ai-think-toggle-icon" })
139
- ], 10, ["onClick"])
242
+ (vue.openBlock(true), vue.createElementBlock(
243
+ vue.Fragment,
244
+ null,
245
+ vue.renderList(__props.item.msgList, (node) => {
246
+ return vue.openBlock(), vue.createElementBlock(
247
+ vue.Fragment,
248
+ {
249
+ key: node.id
250
+ },
251
+ [
252
+ node.type === "markdown" && node.content ? (vue.openBlock(), vue.createElementBlock("div", {
253
+ key: 0,
254
+ innerHTML: getProcessedContent(node)
255
+ }, null, 8, ["innerHTML"])) : vue.createCommentVNode("v-if", true),
256
+ node.type === "component" && node.displayMode === "inline" ? (vue.openBlock(), vue.createBlock(
257
+ vue.resolveDynamicComponent(vue.unref(components)[node.componentName]),
258
+ vue.mergeProps({
259
+ key: 1,
260
+ ref_for: true
261
+ }, __props.item.props),
262
+ null,
263
+ 16
264
+ /* FULL_PROPS */
265
+ )) : vue.createCommentVNode("v-if", true),
266
+ node.type === "a2ui" ? (vue.openBlock(), vue.createBlock(vue.unref(index.TouchA2ui), {
267
+ key: 2,
268
+ messages: node.msgs,
269
+ components: vue.unref(a2uiProps).components,
270
+ "surface-id": node.surfaceId
271
+ }, null, 8, ["messages", "components", "surface-id"])) : vue.createCommentVNode("v-if", true)
272
+ ],
273
+ 64
274
+ /* STABLE_FRAGMENT */
275
+ );
276
+ }),
277
+ 128
278
+ /* KEYED_FRAGMENT */
279
+ ))
280
+ ])) : vue.createCommentVNode("v-if", true),
281
+ contentShow.value && vue.unref(scripts) && vue.unref(scripts).length === 0 && !(__props.item.msgList && __props.item.msgList.length) ? (vue.openBlock(), vue.createElementBlock("div", {
282
+ key: 1,
283
+ class: "touchchat-ai-bubble-text touchchat-markdown",
284
+ innerHTML: processedContent.value
285
+ }, null, 8, ["innerHTML"])) : vue.createCommentVNode("v-if", true)
140
286
  ]),
141
- vue.createVNode(vue.Transition, { name: "touchchat-ai-think-collpase" }, {
142
- default: vue.withCtx(() => [
143
- vue.withDirectives(vue.createElementVNode("div", {
144
- ref: (el) => reasoningContentRef.value = el,
145
- class: "touchchat-ai-think-content"
146
- }, null, 512), [
147
- [vue.vShow, collapse.value]
148
- ])
149
- ]),
150
- _: 1
151
- })
152
- ])) : vue.createCommentVNode("", true),
153
- contentShow.value && vue.unref(scripts) && vue.unref(scripts).length === 0 ? (vue.openBlock(), vue.createElementBlock("div", {
154
- key: 2,
155
- ref: (el) => htmlContentRef.value = el,
156
- class: "touchchat-ai-bubble-text touchchat-markdown"
157
- }, null, 512)) : vue.createCommentVNode("", true),
158
- vue.unref(scripts) && vue.unref(scripts).length > 0 && !_ctx.item.componentName ? (vue.openBlock(), vue.createBlock(letter_vue_vue_type_script_setup_true_lang.default, {
159
- key: 3,
160
- data: _ctx.item.content,
161
- onComplete: complete
162
- }, null, 8, ["data"])) : vue.createCommentVNode("", true),
163
- !_ctx.item.isChating ? vue.renderSlot(_ctx.$slots, "aiMessageContent", {
164
- key: 4,
165
- item: _ctx.item,
166
- index: _ctx.index
287
+ vue.createCommentVNode(" && !item.componentName "),
288
+ vue.unref(scripts) && vue.unref(scripts).length > 0 ? (vue.openBlock(), vue.createBlock(letter.default, {
289
+ key: 2,
290
+ "auto-start": "",
291
+ data: __props.item.content,
292
+ onStart: startLetter,
293
+ onComplete: completeLetter
294
+ }, null, 8, ["data"])) : vue.createCommentVNode("v-if", true),
295
+ vue.unref(scripts).length > 0 && (showComponent.value || !__props.item.content) || !vue.unref(scripts).length && !__props.item.isChating ? vue.renderSlot(_ctx.$slots, "msg", {
296
+ key: 3,
297
+ item: __props.item,
298
+ index: __props.index
299
+ }, () => [
300
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(componentName.value), {
301
+ index: __props.index,
302
+ item: __props.item,
303
+ onStart: startCompentent,
304
+ onComplete: completeCompentent,
305
+ onToggleSidebar: toggleSidebarClick
306
+ }, null, 40, ["index", "item"]))
307
+ ]) : vue.createCommentVNode("v-if", true),
308
+ vue.createCommentVNode(" \u65B0\u589E\u52A0\u8F7D\u72B6\u6001\u533A\u57DF "),
309
+ __props.item.isChating ? (vue.openBlock(), vue.createElementBlock("div", {
310
+ key: 4,
311
+ class: "touchchat-ai-loading"
312
+ }, [
313
+ vue.createElementVNode("div", { class: "touchchat-ai-loading-icon" }),
314
+ vue.createElementVNode("span", { class: "touchchat-ai-loading-text" }, "\u52A0\u8F7D\u4E2D...")
315
+ ])) : vue.createCommentVNode("v-if", true)
316
+ ]),
317
+ vue.renderSlot(_ctx.$slots, "fn", {
318
+ item: __props.item,
319
+ index: __props.index
167
320
  }, () => [
168
- (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(componentName.value), {
169
- index: _ctx.index,
170
- item: _ctx.item,
171
- onComplete: complete,
172
- onToggleSidebar: toggleSidebarClick
173
- }, null, 40, ["index", "item"]))
174
- ]) : vue.createCommentVNode("", true),
175
- _ctx.item.isChating ? (vue.openBlock(), vue.createElementBlock("div", {
176
- key: 5,
177
- class: "touchchat-ai-loading"
321
+ vue.withDirectives(vue.createVNode(MessageActions.default, {
322
+ item: __props.item,
323
+ "message-type": "ai",
324
+ index: __props.index,
325
+ "has-retry": __props.hasRetry,
326
+ "show-copy": true,
327
+ onCopy,
328
+ onRetry,
329
+ onLike,
330
+ onDislike,
331
+ onQuote
332
+ }, {
333
+ extendsFn: vue.withCtx(() => [
334
+ vue.renderSlot(_ctx.$slots, "extendsFn", {
335
+ item: __props.item,
336
+ index: __props.index
337
+ })
338
+ ]),
339
+ _: 3
340
+ /* FORWARDED */
341
+ }, 8, ["item", "index", "has-retry"]), [
342
+ [vue.vShow, showFn.value && vue.unref(scripts).length > 0 || !vue.unref(scripts).length && !__props.item.isChating]
343
+ ])
344
+ ]),
345
+ showFn.value && __props.item.likeList && __props.item.likeList.length && !__props.item.isChating ? (vue.openBlock(), vue.createElementBlock("div", {
346
+ key: 0,
347
+ class: "touchchat-ai-may-like"
178
348
  }, [
179
- vue.createElementVNode("div", { class: "touchchat-ai-loading-icon" }),
180
- vue.createElementVNode("span", { class: "touchchat-ai-loading-text" }, "\u52A0\u8F7D\u4E2D...")
181
- ])) : vue.createCommentVNode("", true)
182
- ], 2),
183
- vue.renderSlot(_ctx.$slots, "messageActions", {
184
- item: _ctx.item,
185
- index: _ctx.index
186
- }, () => [
187
- vue.withDirectives(vue.createVNode(MessageActions_vue_vue_type_script_setup_true_lang.default, {
188
- "message-type": "ai",
189
- index: _ctx.index,
190
- "is-show-like": _ctx.item.isShowLike,
191
- "is-liked": _ctx.item.isLiked,
192
- "is-disliked": _ctx.item.isDisliked,
193
- onCopy,
194
- onRetry,
195
- onLike,
196
- onDislike
197
- }, null, 8, ["index", "is-show-like", "is-liked", "is-disliked"]), [
198
- [vue.vShow, !_ctx.item.isChating]
199
- ])
200
- ])
201
- ], 2)
202
- ]);
349
+ vue.renderSlot(_ctx.$slots, "mayLike", {
350
+ item: __props.item,
351
+ index: __props.index
352
+ }, () => [
353
+ (vue.openBlock(true), vue.createElementBlock(
354
+ vue.Fragment,
355
+ null,
356
+ vue.renderList(__props.item.likeList, (likeItem) => {
357
+ return vue.openBlock(), vue.createElementBlock("div", {
358
+ key: likeItem.id
359
+ }, [
360
+ vue.createElementVNode("span", {
361
+ class: "touchchat-ai-may-like-item",
362
+ onClick: ($event) => handleSend(likeItem.name)
363
+ }, [
364
+ vue.createElementVNode(
365
+ "span",
366
+ { class: "touchchat-ai-may-like-item-title" },
367
+ vue.toDisplayString(likeItem.name),
368
+ 1
369
+ /* TEXT */
370
+ ),
371
+ vue.createElementVNode("div", { class: "touchchat-action-item value-right-arrow" })
372
+ ], 8, ["onClick"])
373
+ ]);
374
+ }),
375
+ 128
376
+ /* KEYED_FRAGMENT */
377
+ ))
378
+ ])
379
+ ])) : vue.createCommentVNode("v-if", true),
380
+ vue.createCommentVNode(" && !scripts.length ")
381
+ ],
382
+ 2
383
+ /* CLASS */
384
+ )
385
+ ], 8, ["data-chat-id"]);
203
386
  };
204
387
  }
205
388
  });
@@ -1 +1 @@
1
- {"version":3,"file":"AiMessage.vue2.js","sources":["../../../../../../../packages/components/touchchat/src/AiChat/AiMessage.vue"],"sourcesContent":["<template>\n\t<div class=\"touchchat-ai\">\n\t\t<!-- 头像区域 -->\n\t\t<div class=\"touchchat-ai-avatar\">\n\t\t\t<slot name=\"aiAvatar\">\n\t\t\t\t<img v-if=\"isShowAvatar\" :src=\"aiAvatarPath\" class=\"touchchat-ai-avatar-pic\" />\n\t\t\t</slot>\n\t\t</div>\n\n\t\t<!-- 内容区域 -->\n\t\t<div class=\"touchchat-ai-content\" :class=\"{ 'is-full': !item.isChating && item.componentName }\">\n\t\t\t<!-- 气泡 -->\n\t\t\t<div class=\"touchchat-ai-bubble\" :class=\"noBubbleBorder && !item.isChating && item.componentName ? 'no-bobble-border' : ''\">\n\t\t\t\t<!-- 思考内容 -->\n\t\t\t\t<div v-if=\"thinkContentShow\" :ref=\"el => (thinkingContentRef = el as HTMLElement)\" class=\"touchchat-ai-think\"></div>\n\n\t\t\t\t<!-- 推理内容 -->\n\t\t\t\t<div v-if=\"reasoningContentShow\" class=\"touchchat-ai-think\">\n\t\t\t\t\t<div class=\"touchchat-ai-think-header\">\n\t\t\t\t\t\t<div class=\"touchchat-ai-think-state\">\n\t\t\t\t\t\t\t{{ item.thinkStatus === 'thinking' ? '深度思考中...' : item.thinkStatus === 'completed' ? '已深度思考' : '思考已停止' }}\n\t\t\t\t\t\t\t<template v-if=\"item.thinkStatus === 'completed'\">(用时{{ (item.thinkTime || 0) / 1000 }}秒)</template>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"touchchat-ai-think-toggle\" :class=\"collapse ? '' : 'is-expand'\" @click=\"collapse = !collapse\">\n\t\t\t\t\t\t\t<span class=\"touchchat-ai-think-toggle-icon\"></span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<transition name=\"touchchat-ai-think-collpase\">\n\t\t\t\t\t\t<div v-show=\"collapse\" :ref=\"el => (reasoningContentRef = el as HTMLElement)\" class=\"touchchat-ai-think-content\"></div>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- 主内容 -->\n\t\t\t\t<div v-if=\"contentShow && scripts && scripts.length === 0\" :ref=\"el => (htmlContentRef = el as HTMLElement)\" class=\"touchchat-ai-bubble-text touchchat-markdown\"></div>\n\n\t\t\t\t<letter v-if=\"scripts && scripts.length > 0 && !item.componentName\" :data=\"item.content\" @complete=\"complete\"></letter>\n\n\t\t\t\t<slot v-if=\"!item.isChating\" name=\"aiMessageContent\" :item=\"item\" :index=\"index\">\n\t\t\t\t\t<component :is=\"componentName\" :index=\"index\" :item=\"item\" @complete=\"complete\" @toggle-sidebar=\"toggleSidebarClick\"></component>\n\t\t\t\t</slot>\n\n\t\t\t\t<!-- 新增加载状态区域 -->\n\t\t\t\t<div v-if=\"item.isChating\" class=\"touchchat-ai-loading\">\n\t\t\t\t\t<div class=\"touchchat-ai-loading-icon\"></div>\n\t\t\t\t\t<span class=\"touchchat-ai-loading-text\">加载中...</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<slot name=\"messageActions\" :item=\"item\" :index=\"index\">\n\t\t\t\t<MessageActions v-show=\"!item.isChating\" message-type=\"ai\" :index=\"index\" :is-show-like=\"item.isShowLike\" :is-liked=\"item.isLiked\" :is-disliked=\"item.isDisliked\" @copy=\"onCopy\" @retry=\"onRetry\" @like=\"onLike\" @dislike=\"onDislike\" />\n\t\t\t</slot>\n\t\t\t<!-- && !scripts.length -->\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\n// useSlots, Comment,\nimport { ref, nextTick, watch, computed, inject } from 'vue'\nimport type { ChatMessage } from './TouchChat.vue'\nimport aiAvatarBase from '../../img/aiAvatar.png'\nimport markdown from '../../utils/markdown.ts'\nimport FileView from '../../component/FileView.vue'\nimport ImageView from '../../component/ImageView.vue'\nimport LinkView from '../../component/LinkView.vue'\nimport CardView from '../../component/CardView.vue'\nimport MessageActions from './MessageActions.vue'\nimport Face from '../../component/AiRobot/face.vue'\nimport MeterialPrepare from '../../component/AiRobot/meterialPrepare.vue'\nimport Letter from '../../component/AiRobot/letter.vue'\n\n// 为组件映射表定义接口\ninterface ComponentMap {\n\t[key: string]: any // 允许任何字符串键\n\tFileView: typeof FileView\n\tImageView: typeof ImageView\n\tLinkView: typeof LinkView\n\tCardView: typeof CardView\n}\n\n// 创建组件映射表\nconst componentMap: ComponentMap = {\n\tFileView,\n\tImageView,\n\tLinkView,\n\tCardView,\n\tFace,\n\tMeterialPrepare\n}\n\nconst props = withDefaults(\n\tdefineProps<{\n\t\titem: ChatMessage\n\t\tindex: number\n\t}>(),\n\t{}\n)\n\nconst emits = defineEmits<{\n\t(e: 'copy', index: number): void\n\t(e: 'retry', index: number): void\n\t(e: 'like', index: number): void\n\t(e: 'dislike', index: number): void\n\t(e: 'contentRendered', element: HTMLElement): void\n\t(e: 'completeRendered'): void\n\t(e: 'toggle-sidebar', item: any, index: number): void\n}>()\n\nconst htmlContentRef = ref<HTMLElement | null>(null)\nconst thinkingContentRef = ref<HTMLElement | null>(null)\nconst reasoningContentRef = ref<HTMLElement | null>(null)\nconst collapse = ref(true)\nconst isShowAvatar = ref(true)\nconst aiAvatarPath = ref(aiAvatarBase)\nconst rootMap = inject<Record<string, any>>('rootMap', {}) // 指定类型并提供默认值 {}\nconst isAvatar = inject<boolean>('isAvatar', true)\nconst scripts = inject<any[]>('scripts', [])\nconst noBubbleBorder = inject<boolean>('noBubbleBorder', false)\n\nconst init = () => {\n\tisShowAvatar.value = isAvatar\n}\n\nconst componentName = computed(() => {\n\tconst slotMap = rootMap\n\n\t// 明确newMap的类型,允许字符串索引\n\tconst newMap: Record<string, any> = {\n\t\t...slotMap,\n\t\t...componentMap\n\t}\n\n\treturn newMap[props.item.componentName as string] || null\n})\n\nconst thinkContentShow = computed(() => {\n\treturn props.item.thinkContent\n\t// && !props.item.componentName;\n})\n\nconst reasoningContentShow = computed(() => {\n\treturn props.item.reasoningContent\n})\n\nconst contentShow = computed(() => {\n\treturn props.item.content\n})\n\nconst toggleSidebarClick = (item: ChatMessage, index: number) => {\n\temits('toggle-sidebar', item, index)\n}\n\n// 初始化渲染\nnextTick(() => {\n\trenderContent()\n})\n\n// 添加数据变化监听\nwatch(\n\t() => [props.item.content, props.item.thinkContent, props.item.reasoningContent],\n\t() => {\n\t\tnextTick(() => renderContent())\n\t},\n\t{ deep: true }\n)\n\nconst renderContent = () => {\n\tif (htmlContentRef.value) {\n\t\thtmlContentRef.value.innerHTML = props.item.content ? (markdown && markdown?.render(props.item.content, { isReasoning: false })) || '' : ''\n\t\temits('contentRendered', htmlContentRef.value)\n\t}\n\tif (thinkingContentRef.value) {\n\t\tthinkingContentRef.value.innerHTML = props.item.thinkContent ? (markdown && markdown?.render(props.item.thinkContent, { isReasoning: true })) || '' : ''\n\t\temits('contentRendered', thinkingContentRef.value)\n\t}\n\tif (reasoningContentRef.value) {\n\t\treasoningContentRef.value.innerHTML = props.item.reasoningContent ? (markdown && markdown?.render(props.item.reasoningContent, { isReasoning: true })) || '' : ''\n\t\temits('contentRendered', reasoningContentRef.value)\n\t}\n\tinit()\n}\n\nconst complete = () => {\n\temits('completeRendered')\n}\n\nconst onCopy = () => emits('copy', props.index)\nconst onRetry = () => emits('retry', props.index)\nconst onLike = () => emits('like', props.index)\nconst onDislike = () => emits('dislike', props.index)\n</script>\n<!-- <style lang=\"less\" scoped>\n@import '../../style/ChatView.less';\n@import '../../style/AiMessage.less';\n</style> -->\n"],"names":["FileView","ImageView","LinkView","CardView","Face","MeterialPrepare","ref","aiAvatarBase","inject","computed","nextTick","watch","markdown","_createElementBlock","_createElementVNode","_renderSlot","_normalizeClass","item","_unref","_Fragment","_createTextVNode","_createVNode","_Transition","_createBlock","Letter","index","_openBlock","_resolveDynamicComponent","MessageActions"],"mappings":"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"}
1
+ {"version":3,"file":"AiMessage.vue2.js","sources":["../../../../../../../packages/components/touchchat/src/AiChat/AiMessage.vue"],"sourcesContent":["<template>\r\n\t<div class=\"touchchat-ai touchchat-item\" :data-chat-id=\"item.chatId\">\r\n\t\t<!-- 头像区域 -->\r\n\t\t<div class=\"touchchat-ai-avatar\">\r\n\t\t\t<slot name=\"aiAvatar\">\r\n\t\t\t\t<img v-if=\"isShowAvatar\" :src=\"aiAvatarPath\" class=\"touchchat-ai-avatar-pic\" />\r\n\t\t\t</slot>\r\n\t\t</div>\r\n\r\n\t\t<!-- 内容区域 -->\r\n\t\t<div class=\"touchchat-ai-content\" :class=\"{ 'is-full': !item.isChating && item.componentName }\">\r\n\t\t\t<!-- 气泡 -->\r\n\t\t\t<div class=\"touchchat-ai-bubble\">\r\n\t\t\t\t<!-- 思考内容 -->\r\n\t\t\t\t<div v-if=\"thinkContentShow\" class=\"touchchat-ai-think\" v-html=\"processedThinkContent\"></div>\r\n\r\n\t\t\t\t<!-- 推理内容 -->\r\n\t\t\t\t<div v-if=\"reasoningContentShow\" class=\"touchchat-ai-think\">\r\n\t\t\t\t\t<div class=\"touchchat-ai-think-header\">\r\n\t\t\t\t\t\t<div class=\"touchchat-ai-think-state\">\r\n\t\t\t\t\t\t\t{{ item.thinkStatus === 'thinking' ? '深度思考中...' : item.thinkStatus === 'completed' ? '已深度思考' : '思考已停止' }}\r\n\t\t\t\t\t\t\t<template v-if=\"item.thinkStatus === 'completed'\">(用时{{ (item.thinkTime || 0) / 1000 }}秒)</template>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"touchchat-ai-think-toggle\" :class=\"collapse ? '' : 'is-expand'\" @click=\"collapse = !collapse\">\r\n\t\t\t\t\t\t\t<span class=\"touchchat-ai-think-toggle-icon\"></span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<transition name=\"touchchat-ai-think-collpase\">\r\n\t\t\t\t\t\t<div v-show=\"collapse && !chainAble\" class=\"touchchat-ai-think-content\" v-html=\"processedReasoningContent\"></div>\r\n\t\t\t\t\t</transition>\r\n\t\t\t\t\t<transition name=\"touchchat-ai-think-collpase\">\r\n\t\t\t\t\t\t<thought-chain v-show=\"collapse && chainAble\"></thought-chain>\r\n\t\t\t\t\t</transition>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<!-- 主内容 -->\r\n\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\">\r\n\t\t\t\t\t<div v-if=\"contentShow && scripts && scripts.length === 0 && item.msgList && item.msgList.length\" class=\"touchchat-ai-bubble-text touchchat-markdown\">\r\n\t\t\t\t\t\t<template v-for=\"node in item.msgList\" :key=\"node.id\">\r\n\t\t\t\t\t\t\t<div v-if=\"node.type === 'markdown' && node.content\" v-html=\"getProcessedContent(node)\" />\r\n\t\t\t\t\t\t\t<component :is=\"components[node.componentName]\" v-if=\"node.type === 'component' && node.displayMode === 'inline'\" v-bind=\"item.props\" />\r\n\t\t\t\t\t\t\t<TouchA2ui v-if=\"node.type === 'a2ui'\" :messages=\"node.msgs\" :components=\"a2uiProps.components\" :surface-id=\"node.surfaceId\" />\r\n\t\t\t\t\t\t</template>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div v-if=\"contentShow && scripts && scripts.length === 0 && !(item.msgList && item.msgList.length)\" class=\"touchchat-ai-bubble-text touchchat-markdown\" v-html=\"processedContent\"></div>\r\n\t\t\t\t</slot>\r\n\r\n\t\t\t\t<!-- && !item.componentName -->\r\n\t\t\t\t<letter v-if=\"scripts && scripts.length > 0\" auto-start :data=\"item.content\" @start=\"startLetter\" @complete=\"completeLetter\"> </letter>\r\n\t\t\t\t<slot v-if=\"(scripts.length > 0 && (showComponent || !item.content)) || (!scripts.length && !item.isChating)\" name=\"msg\" :item=\"item\" :index=\"index\">\r\n\t\t\t\t\t<component :is=\"componentName\" :index=\"index\" :item=\"item\" @start=\"startCompentent\" @complete=\"completeCompentent\" @toggle-sidebar=\"toggleSidebarClick\"></component>\r\n\t\t\t\t</slot>\r\n\r\n\t\t\t\t<!-- 新增加载状态区域 -->\r\n\t\t\t\t<div v-if=\"item.isChating\" class=\"touchchat-ai-loading\">\r\n\t\t\t\t\t<div class=\"touchchat-ai-loading-icon\"></div>\r\n\t\t\t\t\t<span class=\"touchchat-ai-loading-text\">加载中...</span>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\">\r\n\t\t\t\t<MessageActions v-show=\"(showFn && scripts.length > 0) || (!scripts.length && !item.isChating)\" :item=\"item\" message-type=\"ai\" :index=\"index\" :has-retry=\"hasRetry\" :show-copy=\"true\" @copy=\"onCopy\" @retry=\"onRetry\" @like=\"onLike\" @dislike=\"onDislike\" @quote=\"onQuote\">\r\n\t\t\t\t\t<!-- <slot name=\"extendsFn\" :item=\"item\" :index=\"index\"></slot> -->\r\n\t\t\t\t\t<template #extendsFn>\r\n\t\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t\t</template>\r\n\t\t\t\t</MessageActions>\r\n\t\t\t</slot>\r\n\t\t\t<div v-if=\"showFn && item.likeList && item.likeList.length && !item.isChating\" class=\"touchchat-ai-may-like\">\r\n\t\t\t\t<slot name=\"mayLike\" :item=\"item\" :index=\"index\">\r\n\t\t\t\t\t<div v-for=\"likeItem in item.likeList\" :key=\"likeItem.id\">\r\n\t\t\t\t\t\t<span class=\"touchchat-ai-may-like-item\" @click=\"handleSend(likeItem.name)\">\r\n\t\t\t\t\t\t\t<span class=\"touchchat-ai-may-like-item-title\">{{ likeItem.name }}</span>\r\n\t\t\t\t\t\t\t<div class=\"touchchat-action-item value-right-arrow\"></div>\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</slot>\r\n\t\t\t</div>\r\n\t\t\t<!-- && !scripts.length -->\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\n// useSlots, Comment, watch\r\nimport { ref, computed, inject, onMounted, watch } from 'vue'\r\nimport type { ChatMessage, ChatMsgList } from './Chat/types'\r\nimport aiAvatarBase from '../../img/aiAvatar.png'\r\nimport markdown from '../../utils/markdown.ts'\r\nimport FileView from '../../component/FileView.vue'\r\nimport ImageView from '../../component/ImageView.vue'\r\nimport LinkView from '../../component/LinkView.vue'\r\nimport CardView from '../../component/CardView.vue'\r\nimport MessageActions from './MessageActions.vue'\r\nimport Face from '../../component/AiRobot/face.vue'\r\nimport MeterialPrepare from '../../component/AiRobot/meterialPrepare.vue'\r\nimport Letter from '../../component/AiRobot/letter.vue'\r\nimport ThoughtChain from '../../component/ThoughtChain.vue'\r\nimport { TouchA2ui } from '@touchvue/a2ui'\r\n// 为组件映射表定义接口\r\ninterface ComponentMap {\r\n\t[key: string]: any // 允许任何字符串键\r\n\tFileView: typeof FileView\r\n\tImageView: typeof ImageView\r\n\tLinkView: typeof LinkView\r\n\tCardView: typeof CardView\r\n}\r\n\r\n// 创建组件映射表\r\nconst componentMap: ComponentMap = {\r\n\tFileView,\r\n\tImageView,\r\n\tLinkView,\r\n\tCardView,\r\n\tFace,\r\n\tMeterialPrepare\r\n}\r\n\r\nconst props = withDefaults(\r\n\tdefineProps<{\r\n\t\titem: ChatMessage & ChatMsgList\r\n\t\tindex: number\r\n\t\thasRetry: boolean\r\n\t}>(),\r\n\t{\r\n\t\thasRetry: true\r\n\t}\r\n)\r\n\r\nwatch(\r\n\t() => props.item,\r\n\tval => {\r\n\t\tlet arr = []\r\n\t\tif (val.msgList) {\r\n\t\t\tarr = val.msgList?.filter(item => (item.type === 'component' && (item.displayMode === 'drawer' || item.displayMode === 'tip')) || (item.type === 'iframe' && item.url))\r\n\t\t}\r\n\t\tif (arr.length) {\r\n\t\t\temits('openSideBar', arr[0], props.index)\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tdeep: true\r\n\t}\r\n)\r\n\r\nconst emits = defineEmits<{\r\n\t(e: 'copy', index: number): void\r\n\t(e: 'retry', index: number): void\r\n\t(e: 'like', index: number): void\r\n\t(e: 'dislike', index: number): void\r\n\t(e: 'quote', item: any, index: number): void\r\n\t(e: 'contentRendered', element: HTMLElement): void\r\n\t(e: 'completeRendered', chatId: string): void\r\n\t(e: 'toggle-sidebar', item: any, index: number): void\r\n\t(e: 'openSideBar', item: any, index: number): void\r\n\t(e: 'send', sendVal: string): void\r\n}>()\r\n\r\nconst collapse = ref(true)\r\nconst isShowAvatar = ref(true)\r\nconst aiAvatarPath = ref(aiAvatarBase)\r\nconst components = inject<Record<string, any>>('components', {}) // 指定类型并提供默认值 {}\r\nconst a2uiProps = inject<Record<string, any>>('a2uiProps', {}) // 指定类型并提供默认值 {}\r\nconst avatar = inject<boolean>('avatar', true)\r\nconst scripts = inject<any[]>('scripts', [])\r\nconst layout = inject<string>('layout', 'side, think, upload, chain')\r\nconst chainAble = layout.includes('chain')\r\nconst showComponent = ref(false)\r\nconst showFn = ref(false)\r\n\r\nconst init = () => {\r\n\tisShowAvatar.value = avatar\r\n}\r\n\r\nconst componentName = computed(() => {\r\n\tconst slotMap = components\r\n\r\n\t// 明确newMap的类型,允许字符串索引\r\n\tconst newMap: Record<string, any> = {\r\n\t\t...slotMap,\r\n\t\t...componentMap\r\n\t}\r\n\treturn newMap[props.item.componentName as string] || null\r\n})\r\n\r\nconst thinkContentShow = computed(() => {\r\n\treturn props.item.thinkContent\r\n\t// && !props.item.componentName;\r\n})\r\n\r\nconst reasoningContentShow = computed(() => {\r\n\treturn props.item.reasoningContent\r\n})\r\n\r\nconst processedContent = computed(() => {\r\n\treturn props.item.content ? markdown?.render(props.item.content, { isReasoning: false }) || '' : ''\r\n})\r\n\r\nconst getProcessedContent = (node: any) => {\r\n\treturn node.content ? markdown?.render(node.content, { isReasoning: false }) || '' : ''\r\n}\r\n\r\nconst processedThinkContent = computed(() => {\r\n\treturn props.item.thinkContent ? markdown?.render(props.item.thinkContent, { isReasoning: true }) || '' : ''\r\n})\r\n\r\nconst processedReasoningContent = computed(() => {\r\n\treturn props.item.reasoningContent ? markdown?.render(props.item.reasoningContent, { isReasoning: true }) || '' : ''\r\n})\r\n\r\nconst contentShow = computed(() => {\r\n\treturn props.item.content || props.item.msgList?.length\r\n})\r\n\r\nconst handleSend = (sendVal: string) => {\r\n\temits('send', sendVal)\r\n}\r\n\r\nconst toggleSidebarClick = (item: ChatMessage, index: number) => {\r\n\temits('toggle-sidebar', item, index)\r\n}\r\n\r\nonMounted(() => {\r\n\tinit()\r\n})\r\n\r\nconst completeCompentent = () => {\r\n\temits('completeRendered', props.item?.chatId || '')\r\n\tshowFn.value = true\r\n}\r\nconst completeLetter = () => {\r\n\tshowComponent.value = true\r\n\tif (!props.item.componentName) {\r\n\t\temits('completeRendered', props.item?.chatId || '')\r\n\t\tshowFn.value = true\r\n\t}\r\n}\r\n\r\nconst startCompentent = () => {\r\n\tconsole.log('startCompentent')\r\n}\r\nconst startLetter = () => {\r\n\tshowComponent.value = false\r\n\tshowFn.value = false\r\n}\r\n\r\nconst onCopy = () => emits('copy', props.index)\r\nconst onRetry = () => emits('retry', props.index)\r\nconst onLike = () => emits('like', props.index)\r\nconst onDislike = () => emits('dislike', props.index)\r\nconst onQuote = () => emits('quote', props.item, props.index)\r\n</script>\r\n"],"names":["FileView","ImageView","LinkView","CardView","Face","MeterialPrepare","watch","ref","aiAvatarBase","inject","computed","markdown","onMounted","_createElementBlock","_createCommentVNode","_createElementVNode","_renderSlot","_normalizeClass","_createTextVNode","_toDisplayString","_Fragment","_createVNode","_Transition","_vShow","_unref","ThoughtChain","_openBlock","_renderList","_createBlock","_resolveDynamicComponent","_mergeProps","TouchA2ui","Letter","MessageActions"],"mappings":"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"}