@touchvue/chat 1.0.0-beta.3 → 1.0.0-beta.31

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 (1012) hide show
  1. package/README.md +70 -70
  2. package/es/index.mjs.map +1 -1
  3. package/es/node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.mjs +1380 -0
  4. package/es/node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.mjs.map +1 -0
  5. package/es/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode.mjs +469 -0
  6. package/es/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode.mjs.map +1 -0
  7. package/es/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode_codepoint.mjs +63 -0
  8. package/es/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode_codepoint.mjs.map +1 -0
  9. package/es/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-html.mjs +9 -0
  10. package/es/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-html.mjs.map +1 -0
  11. package/es/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-xml.mjs +9 -0
  12. package/es/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-xml.mjs.map +1 -0
  13. package/es/node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/html2canvas.esm.mjs +7824 -0
  14. package/es/node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/html2canvas.esm.mjs.map +1 -0
  15. package/es/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/index.mjs +643 -0
  16. package/es/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/index.mjs.map +1 -0
  17. package/es/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/lib/re.mjs +195 -0
  18. package/es/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/lib/re.mjs.map +1 -0
  19. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/common/html_blocks.mjs +70 -0
  20. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/common/html_blocks.mjs.map +1 -0
  21. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/common/html_re.mjs +26 -0
  22. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/common/html_re.mjs.map +1 -0
  23. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/common/utils.mjs +291 -0
  24. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/common/utils.mjs.map +1 -0
  25. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/helpers/index.mjs +6 -0
  26. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/helpers/index.mjs.map +1 -0
  27. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs +81 -0
  28. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs.map +1 -0
  29. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/helpers/parse_link_label.mjs +52 -0
  30. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/helpers/parse_link_label.mjs.map +1 -0
  31. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/helpers/parse_link_title.mjs +70 -0
  32. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/helpers/parse_link_title.mjs.map +1 -0
  33. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/index.mjs +570 -0
  34. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/index.mjs.map +1 -0
  35. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/parser_block.mjs +135 -0
  36. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/parser_block.mjs.map +1 -0
  37. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/parser_core.mjs +63 -0
  38. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/parser_core.mjs.map +1 -0
  39. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/parser_inline.mjs +197 -0
  40. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/parser_inline.mjs.map +1 -0
  41. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/presets/commonmark.mjs +91 -0
  42. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/presets/commonmark.mjs.map +1 -0
  43. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/presets/default.mjs +50 -0
  44. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/presets/default.mjs.map +1 -0
  45. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/presets/zero.mjs +73 -0
  46. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/presets/zero.mjs.map +1 -0
  47. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/renderer.mjs +323 -0
  48. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/renderer.mjs.map +1 -0
  49. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/ruler.mjs +341 -0
  50. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/ruler.mjs.map +1 -0
  51. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/blockquote.mjs +213 -0
  52. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/blockquote.mjs.map +1 -0
  53. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/code.mjs +33 -0
  54. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/code.mjs.map +1 -0
  55. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/fence.mjs +97 -0
  56. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/fence.mjs.map +1 -0
  57. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/heading.mjs +55 -0
  58. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/heading.mjs.map +1 -0
  59. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/hr.mjs +44 -0
  60. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/hr.mjs.map +1 -0
  61. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/html_block.mjs +73 -0
  62. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/html_block.mjs.map +1 -0
  63. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/lheading.mjs +85 -0
  64. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/lheading.mjs.map +1 -0
  65. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/list.mjs +335 -0
  66. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/list.mjs.map +1 -0
  67. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/paragraph.mjs +49 -0
  68. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/paragraph.mjs.map +1 -0
  69. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/reference.mjs +211 -0
  70. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/reference.mjs.map +1 -0
  71. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/state_block.mjs +222 -0
  72. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/state_block.mjs.map +1 -0
  73. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/table.mjs +232 -0
  74. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/table.mjs.map +1 -0
  75. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/block.mjs +16 -0
  76. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/block.mjs.map +1 -0
  77. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/inline.mjs +14 -0
  78. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/inline.mjs.map +1 -0
  79. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/linkify.mjs +138 -0
  80. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/linkify.mjs.map +1 -0
  81. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/normalize.mjs +20 -0
  82. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/normalize.mjs.map +1 -0
  83. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/replacements.mjs +104 -0
  84. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/replacements.mjs.map +1 -0
  85. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/smartquotes.mjs +197 -0
  86. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/smartquotes.mjs.map +1 -0
  87. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/state_core.mjs +19 -0
  88. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/state_core.mjs.map +1 -0
  89. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/text_join.mjs +46 -0
  90. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/text_join.mjs.map +1 -0
  91. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/autolink.mjs +75 -0
  92. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/autolink.mjs.map +1 -0
  93. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/backticks.mjs +63 -0
  94. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/backticks.mjs.map +1 -0
  95. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs +127 -0
  96. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs.map +1 -0
  97. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/emphasis.mjs +126 -0
  98. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/emphasis.mjs.map +1 -0
  99. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/entity.mjs +55 -0
  100. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/entity.mjs.map +1 -0
  101. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/escape.mjs +73 -0
  102. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/escape.mjs.map +1 -0
  103. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/fragments_join.mjs +41 -0
  104. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/fragments_join.mjs.map +1 -0
  105. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/html_inline.mjs +54 -0
  106. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/html_inline.mjs.map +1 -0
  107. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/image.mjs +142 -0
  108. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/image.mjs.map +1 -0
  109. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/link.mjs +143 -0
  110. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/link.mjs.map +1 -0
  111. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/linkify.mjs +59 -0
  112. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/linkify.mjs.map +1 -0
  113. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/newline.mjs +46 -0
  114. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/newline.mjs.map +1 -0
  115. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/state_inline.mjs +125 -0
  116. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/state_inline.mjs.map +1 -0
  117. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs +130 -0
  118. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs.map +1 -0
  119. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/text.mjs +89 -0
  120. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/text.mjs.map +1 -0
  121. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/token.mjs +192 -0
  122. package/es/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/token.mjs.map +1 -0
  123. package/es/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/index.mjs +5 -0
  124. package/es/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/index.mjs.map +1 -0
  125. package/es/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/decode.mjs +113 -0
  126. package/es/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/decode.mjs.map +1 -0
  127. package/es/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/encode.mjs +90 -0
  128. package/es/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/encode.mjs.map +1 -0
  129. package/es/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/format.mjs +24 -0
  130. package/es/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/format.mjs.map +1 -0
  131. package/es/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/parse.mjs +309 -0
  132. package/es/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/parse.mjs.map +1 -0
  133. package/es/node_modules/.pnpm/punycode.js@2.3.1/node_modules/punycode.js/punycode.es6.mjs +443 -0
  134. package/es/node_modules/.pnpm/punycode.js@2.3.1/node_modules/punycode.js/punycode.es6.mjs.map +1 -0
  135. package/es/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Cc/regex.mjs +4 -0
  136. package/es/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Cc/regex.mjs.map +1 -0
  137. package/es/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Cf/regex.mjs +4 -0
  138. package/es/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Cf/regex.mjs.map +1 -0
  139. package/es/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/P/regex.mjs +4 -0
  140. package/es/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/P/regex.mjs.map +1 -0
  141. package/es/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/S/regex.mjs +4 -0
  142. package/es/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/S/regex.mjs.map +1 -0
  143. package/es/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Z/regex.mjs +4 -0
  144. package/es/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Z/regex.mjs.map +1 -0
  145. package/es/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/index.mjs +7 -0
  146. package/es/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/index.mjs.map +1 -0
  147. package/es/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/properties/Any/regex.mjs +4 -0
  148. package/es/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/properties/Any/regex.mjs.map +1 -0
  149. package/es/package.json.css +1 -1
  150. package/es/package.json.mjs +1 -1
  151. package/es/packages/components/index.mjs +1 -1
  152. package/es/packages/components/resolver.mjs.map +1 -1
  153. package/es/packages/components/touchchat/component/AiRobot/HelloChat.vue.mjs +7 -0
  154. package/es/packages/components/touchchat/component/AiRobot/HelloChat.vue2.mjs +270 -0
  155. package/es/packages/components/touchchat/component/AiRobot/HelloChat.vue2.mjs.map +1 -0
  156. package/es/packages/components/touchchat/component/AiRobot/face.vue.mjs +7 -0
  157. package/es/packages/components/touchchat/component/AiRobot/face.vue2.mjs +92 -0
  158. package/es/packages/components/touchchat/component/AiRobot/face.vue2.mjs.map +1 -0
  159. package/es/packages/components/touchchat/component/AiRobot/letter.vue.mjs +7 -0
  160. package/es/packages/components/touchchat/component/AiRobot/letter.vue2.mjs +189 -0
  161. package/es/packages/components/touchchat/component/AiRobot/letter.vue2.mjs.map +1 -0
  162. package/es/packages/components/touchchat/component/AiRobot/meterialPrepare.vue.mjs +7 -0
  163. package/es/packages/components/touchchat/component/AiRobot/meterialPrepare.vue2.mjs +44 -0
  164. package/es/packages/components/touchchat/component/AiRobot/meterialPrepare.vue2.mjs.map +1 -0
  165. package/es/packages/components/touchchat/component/AiRobot/start.vue.mjs +7 -0
  166. package/es/packages/components/touchchat/component/AiRobot/start.vue2.mjs +43 -0
  167. package/es/packages/components/touchchat/component/AiRobot/start.vue2.mjs.map +1 -0
  168. package/es/packages/components/touchchat/component/CardView.vue2.mjs.map +1 -1
  169. package/es/packages/components/touchchat/component/FileContent.vue.mjs +7 -0
  170. package/es/packages/components/touchchat/component/FileContent.vue.mjs.map +1 -0
  171. package/es/packages/components/touchchat/component/FileContent.vue2.mjs +201 -0
  172. package/es/packages/components/touchchat/component/FileContent.vue2.mjs.map +1 -0
  173. package/es/packages/components/touchchat/component/FileView.vue2.mjs +2 -2
  174. package/es/packages/components/touchchat/component/FileView.vue2.mjs.map +1 -1
  175. package/es/packages/components/touchchat/component/HelloChat.vue2.mjs +2 -2
  176. package/es/packages/components/touchchat/component/HelloChat.vue2.mjs.map +1 -1
  177. package/es/packages/components/touchchat/component/ImageFile.vue.mjs +7 -0
  178. package/es/packages/components/touchchat/component/ImageFile.vue.mjs.map +1 -0
  179. package/es/packages/components/touchchat/component/ImageFile.vue2.mjs +162 -0
  180. package/es/packages/components/touchchat/component/ImageFile.vue2.mjs.map +1 -0
  181. package/es/packages/components/touchchat/component/ImageView.vue2.mjs +1 -1
  182. package/es/packages/components/touchchat/component/ImageView.vue2.mjs.map +1 -1
  183. package/es/packages/components/touchchat/component/LinkView.vue2.mjs +4 -4
  184. package/es/packages/components/touchchat/component/LinkView.vue2.mjs.map +1 -1
  185. package/es/packages/components/touchchat/component/MarkLayer.vue.mjs +7 -0
  186. package/es/packages/components/touchchat/component/MarkLayer.vue.mjs.map +1 -0
  187. package/es/packages/components/touchchat/component/MarkLayer.vue2.mjs +56 -0
  188. package/es/packages/components/touchchat/component/MarkLayer.vue2.mjs.map +1 -0
  189. package/es/packages/components/touchchat/component/ModuleSelect.vue.mjs +7 -0
  190. package/es/packages/components/touchchat/component/ModuleSelect.vue.mjs.map +1 -0
  191. package/es/packages/components/touchchat/component/ModuleSelect.vue2.mjs +121 -0
  192. package/es/packages/components/touchchat/component/ModuleSelect.vue2.mjs.map +1 -0
  193. package/es/packages/components/touchchat/component/PDFFile.vue.mjs +7 -0
  194. package/es/packages/components/touchchat/component/PDFFile.vue.mjs.map +1 -0
  195. package/es/packages/components/touchchat/component/PDFFile.vue2.mjs +205 -0
  196. package/es/packages/components/touchchat/component/PDFFile.vue2.mjs.map +1 -0
  197. package/es/packages/components/touchchat/component/RealtimeVoice.vue.mjs +7 -0
  198. package/es/packages/components/touchchat/component/RealtimeVoice.vue.mjs.map +1 -0
  199. package/es/packages/components/touchchat/component/RealtimeVoice.vue2.mjs +162 -0
  200. package/es/packages/components/touchchat/component/RealtimeVoice.vue2.mjs.map +1 -0
  201. package/es/packages/components/touchchat/component/Screenshot.vue.mjs +7 -0
  202. package/es/packages/components/touchchat/component/Screenshot.vue.mjs.map +1 -0
  203. package/es/packages/components/touchchat/component/Screenshot.vue2.mjs +201 -0
  204. package/es/packages/components/touchchat/component/Screenshot.vue2.mjs.map +1 -0
  205. package/es/packages/components/touchchat/component/ThoughtChain.vue.mjs +7 -0
  206. package/es/packages/components/touchchat/component/ThoughtChain.vue.mjs.map +1 -0
  207. package/es/packages/components/touchchat/component/ThoughtChain.vue2.mjs +69 -0
  208. package/es/packages/components/touchchat/component/ThoughtChain.vue2.mjs.map +1 -0
  209. package/es/packages/components/touchchat/component/UploadView.vue.mjs +7 -0
  210. package/es/packages/components/touchchat/component/UploadView.vue.mjs.map +1 -0
  211. package/es/packages/components/touchchat/component/UploadView.vue2.mjs +146 -0
  212. package/es/packages/components/touchchat/component/UploadView.vue2.mjs.map +1 -0
  213. package/es/packages/components/touchchat/component/UploadView_api.vue.mjs +7 -0
  214. package/es/packages/components/touchchat/component/UploadView_api.vue.mjs.map +1 -0
  215. package/es/packages/components/touchchat/component/UploadView_api.vue2.mjs +166 -0
  216. package/es/packages/components/touchchat/component/UploadView_api.vue2.mjs.map +1 -0
  217. package/es/packages/components/touchchat/component/VoiceView.vue.mjs +7 -0
  218. package/es/packages/components/touchchat/component/VoiceView.vue.mjs.map +1 -0
  219. package/es/packages/components/touchchat/component/VoiceView.vue2.mjs +167 -0
  220. package/es/packages/components/touchchat/component/VoiceView.vue2.mjs.map +1 -0
  221. package/es/packages/components/touchchat/img/aiAvatar.png.mjs +4 -0
  222. package/es/packages/components/touchchat/img/aiAvatar.png.mjs.map +1 -0
  223. package/es/packages/components/touchchat/img/file/doc.png.mjs +4 -0
  224. package/es/packages/components/touchchat/img/file/doc.png.mjs.map +1 -0
  225. package/es/packages/components/touchchat/img/file/docx.png.mjs +4 -0
  226. package/es/packages/components/touchchat/img/file/docx.png.mjs.map +1 -0
  227. package/es/packages/components/touchchat/img/file/gif.png.mjs +4 -0
  228. package/es/packages/components/touchchat/img/file/gif.png.mjs.map +1 -0
  229. package/es/packages/components/touchchat/img/file/html.png.mjs +4 -0
  230. package/es/packages/components/touchchat/img/file/html.png.mjs.map +1 -0
  231. package/es/packages/components/touchchat/img/file/jpg.png.mjs +4 -0
  232. package/es/packages/components/touchchat/img/file/jpg.png.mjs.map +1 -0
  233. package/es/packages/components/touchchat/img/file/mp3.png.mjs +4 -0
  234. package/es/packages/components/touchchat/img/file/mp3.png.mjs.map +1 -0
  235. package/es/packages/components/touchchat/img/file/mp4.png.mjs +4 -0
  236. package/es/packages/components/touchchat/img/file/mp4.png.mjs.map +1 -0
  237. package/es/packages/components/touchchat/img/file/music.png.mjs +4 -0
  238. package/es/packages/components/touchchat/img/file/music.png.mjs.map +1 -0
  239. package/es/packages/components/touchchat/img/file/pdf.png.mjs +4 -0
  240. package/es/packages/components/touchchat/img/file/pdf.png.mjs.map +1 -0
  241. package/es/packages/components/touchchat/img/file/png.png.mjs +4 -0
  242. package/es/packages/components/touchchat/img/file/png.png.mjs.map +1 -0
  243. package/es/packages/components/touchchat/img/file/ppt.png.mjs +4 -0
  244. package/es/packages/components/touchchat/img/file/ppt.png.mjs.map +1 -0
  245. package/es/packages/components/touchchat/img/file/pptx.png.mjs +4 -0
  246. package/es/packages/components/touchchat/img/file/pptx.png.mjs.map +1 -0
  247. package/es/packages/components/touchchat/img/file/txt.png.mjs +4 -0
  248. package/es/packages/components/touchchat/img/file/txt.png.mjs.map +1 -0
  249. package/es/packages/components/touchchat/img/file/xls.png.mjs +4 -0
  250. package/es/packages/components/touchchat/img/file/xls.png.mjs.map +1 -0
  251. package/es/packages/components/touchchat/img/file/xlsx.png.mjs +4 -0
  252. package/es/packages/components/touchchat/img/file/xlsx.png.mjs.map +1 -0
  253. package/es/packages/components/touchchat/img/icon.png.mjs.map +1 -0
  254. package/es/packages/components/touchchat/img/svg/reset.svg.mjs +4 -0
  255. package/es/packages/components/touchchat/img/svg/reset.svg.mjs.map +1 -0
  256. package/es/packages/components/touchchat/img/userAvatar.png.mjs +4 -0
  257. package/es/packages/components/touchchat/img/userAvatar.png.mjs.map +1 -0
  258. package/es/packages/components/touchchat/index.mjs +5 -5
  259. package/es/packages/components/touchchat/index.mjs.map +1 -1
  260. package/es/packages/components/touchchat/src/AiChat/AgentsView.vue.mjs +7 -0
  261. package/es/packages/components/touchchat/src/AiChat/AgentsView.vue.mjs.map +1 -0
  262. package/es/packages/components/touchchat/src/AiChat/AgentsView.vue2.mjs +59 -0
  263. package/es/packages/components/touchchat/src/AiChat/AgentsView.vue2.mjs.map +1 -0
  264. package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs +223 -281
  265. package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs.map +1 -1
  266. package/es/packages/components/touchchat/src/AiChat/Chat/TouchChat.mjs +18 -0
  267. package/es/packages/components/touchchat/src/AiChat/Chat/TouchChat.mjs.map +1 -0
  268. package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs +438 -158
  269. package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs.map +1 -1
  270. package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs +118 -149
  271. package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs.map +1 -1
  272. package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs +51 -64
  273. package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs.map +1 -1
  274. package/es/packages/components/touchchat/src/AiChat/MessageActions.vue2.mjs +127 -227
  275. package/es/packages/components/touchchat/src/AiChat/MessageActions.vue2.mjs.map +1 -1
  276. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue.mjs +7 -0
  277. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue.mjs.map +1 -0
  278. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue2.mjs +31 -0
  279. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue2.mjs.map +1 -0
  280. package/es/packages/components/touchchat/src/AiChat/TouchAgent.vue.mjs +7 -0
  281. package/es/packages/components/touchchat/src/AiChat/TouchAgent.vue.mjs.map +1 -0
  282. package/es/packages/components/touchchat/src/AiChat/TouchAgent.vue2.mjs +929 -0
  283. package/es/packages/components/touchchat/src/AiChat/TouchAgent.vue2.mjs.map +1 -0
  284. package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs +1075 -527
  285. package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs.map +1 -1
  286. package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue2.mjs +365 -136
  287. package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue2.mjs.map +1 -1
  288. package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs +129 -66
  289. package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs.map +1 -1
  290. package/es/packages/components/touchchat/src/index.vue.mjs +2 -2
  291. package/es/packages/components/touchchat/src/index.vue2.mjs +180 -117
  292. package/es/packages/components/touchchat/src/index.vue2.mjs.map +1 -1
  293. package/es/packages/components/touchchat/src/types/a2a.mjs +11 -0
  294. package/es/packages/components/touchchat/src/types/a2a.mjs.map +1 -0
  295. package/es/packages/components/touchchat/utils/a2aService.mjs +292 -0
  296. package/es/packages/components/touchchat/utils/a2aService.mjs.map +1 -0
  297. package/es/packages/components/touchchat/utils/fetchStream.mjs +6 -1
  298. package/es/packages/components/touchchat/utils/fetchStream.mjs.map +1 -1
  299. package/es/packages/components/touchchat/utils/markdown.mjs +3 -3
  300. package/es/packages/components/touchchat/utils/markdown.mjs.map +1 -1
  301. package/es/packages/utils/config.mjs.map +1 -1
  302. package/es/packages/utils/types.mjs.map +1 -1
  303. package/global.d.ts +2 -2
  304. package/lib/index.js.map +1 -1
  305. package/lib/node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.js +1384 -0
  306. package/lib/node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.js.map +1 -0
  307. package/lib/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode.js +477 -0
  308. package/lib/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode.js.map +1 -0
  309. package/lib/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode_codepoint.js +66 -0
  310. package/lib/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode_codepoint.js.map +1 -0
  311. package/lib/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-html.js +13 -0
  312. package/lib/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-html.js.map +1 -0
  313. package/lib/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-xml.js +13 -0
  314. package/lib/node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-xml.js.map +1 -0
  315. package/lib/node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/html2canvas.esm.js +7828 -0
  316. package/lib/node_modules/.pnpm/html2canvas@1.4.1/node_modules/html2canvas/dist/html2canvas.esm.js.map +1 -0
  317. package/lib/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/index.js +647 -0
  318. package/lib/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/index.js.map +1 -0
  319. package/lib/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/lib/re.js +199 -0
  320. package/lib/node_modules/.pnpm/linkify-it@5.0.0/node_modules/linkify-it/lib/re.js.map +1 -0
  321. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/common/html_blocks.js +74 -0
  322. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/common/html_blocks.js.map +1 -0
  323. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/common/html_re.js +29 -0
  324. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/common/html_re.js.map +1 -0
  325. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/common/utils.js +308 -0
  326. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/common/utils.js.map +1 -0
  327. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/helpers/index.js +12 -0
  328. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/helpers/index.js.map +1 -0
  329. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/helpers/parse_link_destination.js +85 -0
  330. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/helpers/parse_link_destination.js.map +1 -0
  331. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/helpers/parse_link_label.js +56 -0
  332. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/helpers/parse_link_label.js.map +1 -0
  333. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/helpers/parse_link_title.js +74 -0
  334. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/helpers/parse_link_title.js.map +1 -0
  335. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/index.js +573 -0
  336. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/index.js.map +1 -0
  337. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/parser_block.js +139 -0
  338. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/parser_block.js.map +1 -0
  339. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/parser_core.js +67 -0
  340. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/parser_core.js.map +1 -0
  341. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/parser_inline.js +201 -0
  342. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/parser_inline.js.map +1 -0
  343. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/presets/commonmark.js +95 -0
  344. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/presets/commonmark.js.map +1 -0
  345. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/presets/default.js +54 -0
  346. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/presets/default.js.map +1 -0
  347. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/presets/zero.js +77 -0
  348. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/presets/zero.js.map +1 -0
  349. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/renderer.js +327 -0
  350. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/renderer.js.map +1 -0
  351. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/ruler.js +345 -0
  352. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/ruler.js.map +1 -0
  353. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/blockquote.js +217 -0
  354. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/blockquote.js.map +1 -0
  355. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/code.js +37 -0
  356. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/code.js.map +1 -0
  357. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/fence.js +101 -0
  358. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/fence.js.map +1 -0
  359. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/heading.js +59 -0
  360. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/heading.js.map +1 -0
  361. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/hr.js +48 -0
  362. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/hr.js.map +1 -0
  363. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/html_block.js +77 -0
  364. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/html_block.js.map +1 -0
  365. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/lheading.js +89 -0
  366. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/lheading.js.map +1 -0
  367. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/list.js +339 -0
  368. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/list.js.map +1 -0
  369. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/paragraph.js +53 -0
  370. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/paragraph.js.map +1 -0
  371. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/reference.js +215 -0
  372. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/reference.js.map +1 -0
  373. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/state_block.js +226 -0
  374. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/state_block.js.map +1 -0
  375. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/table.js +236 -0
  376. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_block/table.js.map +1 -0
  377. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/block.js +20 -0
  378. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/block.js.map +1 -0
  379. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/inline.js +18 -0
  380. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/inline.js.map +1 -0
  381. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/linkify.js +142 -0
  382. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/linkify.js.map +1 -0
  383. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/normalize.js +24 -0
  384. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/normalize.js.map +1 -0
  385. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/replacements.js +108 -0
  386. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/replacements.js.map +1 -0
  387. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/smartquotes.js +201 -0
  388. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/smartquotes.js.map +1 -0
  389. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/state_core.js +23 -0
  390. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/state_core.js.map +1 -0
  391. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/text_join.js +50 -0
  392. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_core/text_join.js.map +1 -0
  393. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/autolink.js +79 -0
  394. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/autolink.js.map +1 -0
  395. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/backticks.js +67 -0
  396. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/backticks.js.map +1 -0
  397. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/balance_pairs.js +131 -0
  398. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/balance_pairs.js.map +1 -0
  399. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/emphasis.js +130 -0
  400. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/emphasis.js.map +1 -0
  401. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/entity.js +59 -0
  402. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/entity.js.map +1 -0
  403. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/escape.js +77 -0
  404. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/escape.js.map +1 -0
  405. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/fragments_join.js +45 -0
  406. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/fragments_join.js.map +1 -0
  407. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/html_inline.js +58 -0
  408. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/html_inline.js.map +1 -0
  409. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/image.js +146 -0
  410. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/image.js.map +1 -0
  411. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/link.js +147 -0
  412. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/link.js.map +1 -0
  413. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/linkify.js +63 -0
  414. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/linkify.js.map +1 -0
  415. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/newline.js +50 -0
  416. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/newline.js.map +1 -0
  417. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/state_inline.js +129 -0
  418. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/state_inline.js.map +1 -0
  419. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/strikethrough.js +134 -0
  420. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/strikethrough.js.map +1 -0
  421. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/text.js +93 -0
  422. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/rules_inline/text.js.map +1 -0
  423. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/token.js +196 -0
  424. package/lib/node_modules/.pnpm/markdown-it@14.1.0/node_modules/markdown-it/lib/token.js.map +1 -0
  425. package/lib/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/index.js +14 -0
  426. package/lib/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/index.js.map +1 -0
  427. package/lib/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/decode.js +117 -0
  428. package/lib/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/decode.js.map +1 -0
  429. package/lib/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/encode.js +94 -0
  430. package/lib/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/encode.js.map +1 -0
  431. package/lib/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/format.js +28 -0
  432. package/lib/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/format.js.map +1 -0
  433. package/lib/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/parse.js +313 -0
  434. package/lib/node_modules/.pnpm/mdurl@2.0.0/node_modules/mdurl/lib/parse.js.map +1 -0
  435. package/lib/node_modules/.pnpm/punycode.js@2.3.1/node_modules/punycode.js/punycode.es6.js +453 -0
  436. package/lib/node_modules/.pnpm/punycode.js@2.3.1/node_modules/punycode.js/punycode.es6.js.map +1 -0
  437. package/lib/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Cc/regex.js +8 -0
  438. package/lib/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Cc/regex.js.map +1 -0
  439. package/lib/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Cf/regex.js +8 -0
  440. package/lib/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Cf/regex.js.map +1 -0
  441. package/lib/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/P/regex.js +8 -0
  442. package/lib/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/P/regex.js.map +1 -0
  443. package/lib/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/S/regex.js +8 -0
  444. package/lib/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/S/regex.js.map +1 -0
  445. package/lib/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Z/regex.js +8 -0
  446. package/lib/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/categories/Z/regex.js.map +1 -0
  447. package/lib/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/index.js +18 -0
  448. package/lib/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/index.js.map +1 -0
  449. package/lib/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/properties/Any/regex.js +8 -0
  450. package/lib/node_modules/.pnpm/uc.micro@2.1.0/node_modules/uc.micro/properties/Any/regex.js.map +1 -0
  451. package/lib/package.json.css +1 -1
  452. package/lib/package.json.js +1 -1
  453. package/lib/packages/components/index.js +2 -2
  454. package/lib/packages/components/resolver.js.map +1 -1
  455. package/lib/packages/components/touchchat/component/AiRobot/HelloChat.vue.js +11 -0
  456. package/lib/packages/components/touchchat/component/AiRobot/HelloChat.vue2.js +274 -0
  457. package/lib/packages/components/touchchat/component/AiRobot/HelloChat.vue2.js.map +1 -0
  458. package/lib/packages/components/touchchat/component/AiRobot/face.vue.js +11 -0
  459. package/lib/packages/components/touchchat/component/AiRobot/face.vue2.js +96 -0
  460. package/lib/packages/components/touchchat/component/AiRobot/face.vue2.js.map +1 -0
  461. package/lib/packages/components/touchchat/component/AiRobot/letter.vue.js +11 -0
  462. package/lib/packages/components/touchchat/component/AiRobot/letter.vue2.js +193 -0
  463. package/lib/packages/components/touchchat/component/AiRobot/letter.vue2.js.map +1 -0
  464. package/lib/packages/components/touchchat/component/AiRobot/meterialPrepare.vue.js +11 -0
  465. package/lib/packages/components/touchchat/component/AiRobot/meterialPrepare.vue2.js +48 -0
  466. package/lib/packages/components/touchchat/component/AiRobot/meterialPrepare.vue2.js.map +1 -0
  467. package/lib/packages/components/touchchat/component/AiRobot/start.vue.js +11 -0
  468. package/lib/packages/components/touchchat/component/AiRobot/start.vue2.js +47 -0
  469. package/lib/packages/components/touchchat/component/AiRobot/start.vue2.js.map +1 -0
  470. package/lib/packages/components/touchchat/component/CardView.vue2.js.map +1 -1
  471. package/lib/packages/components/touchchat/component/FileContent.vue.js +11 -0
  472. package/lib/packages/components/touchchat/component/FileContent.vue.js.map +1 -0
  473. package/lib/packages/components/touchchat/component/FileContent.vue2.js +205 -0
  474. package/lib/packages/components/touchchat/component/FileContent.vue2.js.map +1 -0
  475. package/lib/packages/components/touchchat/component/FileView.vue2.js +2 -2
  476. package/lib/packages/components/touchchat/component/FileView.vue2.js.map +1 -1
  477. package/lib/packages/components/touchchat/component/HelloChat.vue2.js +2 -2
  478. package/lib/packages/components/touchchat/component/HelloChat.vue2.js.map +1 -1
  479. package/lib/packages/components/touchchat/component/ImageFile.vue.js +11 -0
  480. package/lib/packages/components/touchchat/component/ImageFile.vue.js.map +1 -0
  481. package/lib/packages/components/touchchat/component/ImageFile.vue2.js +166 -0
  482. package/lib/packages/components/touchchat/component/ImageFile.vue2.js.map +1 -0
  483. package/lib/packages/components/touchchat/component/ImageView.vue2.js +1 -1
  484. package/lib/packages/components/touchchat/component/ImageView.vue2.js.map +1 -1
  485. package/lib/packages/components/touchchat/component/LinkView.vue2.js +4 -4
  486. package/lib/packages/components/touchchat/component/LinkView.vue2.js.map +1 -1
  487. package/lib/packages/components/touchchat/component/MarkLayer.vue.js +11 -0
  488. package/lib/packages/components/touchchat/component/MarkLayer.vue.js.map +1 -0
  489. package/lib/packages/components/touchchat/component/MarkLayer.vue2.js +60 -0
  490. package/lib/packages/components/touchchat/component/MarkLayer.vue2.js.map +1 -0
  491. package/lib/packages/components/touchchat/component/ModuleSelect.vue.js +11 -0
  492. package/lib/packages/components/touchchat/component/ModuleSelect.vue.js.map +1 -0
  493. package/lib/packages/components/touchchat/component/ModuleSelect.vue2.js +125 -0
  494. package/lib/packages/components/touchchat/component/ModuleSelect.vue2.js.map +1 -0
  495. package/lib/packages/components/touchchat/component/PDFFile.vue.js +11 -0
  496. package/lib/packages/components/touchchat/component/PDFFile.vue.js.map +1 -0
  497. package/lib/packages/components/touchchat/component/PDFFile.vue2.js +209 -0
  498. package/lib/packages/components/touchchat/component/PDFFile.vue2.js.map +1 -0
  499. package/lib/packages/components/touchchat/component/RealtimeVoice.vue.js +11 -0
  500. package/lib/packages/components/touchchat/component/RealtimeVoice.vue.js.map +1 -0
  501. package/lib/packages/components/touchchat/component/RealtimeVoice.vue2.js +166 -0
  502. package/lib/packages/components/touchchat/component/RealtimeVoice.vue2.js.map +1 -0
  503. package/lib/packages/components/touchchat/component/Screenshot.vue.js +11 -0
  504. package/lib/packages/components/touchchat/component/Screenshot.vue.js.map +1 -0
  505. package/lib/packages/components/touchchat/component/Screenshot.vue2.js +205 -0
  506. package/lib/packages/components/touchchat/component/Screenshot.vue2.js.map +1 -0
  507. package/lib/packages/components/touchchat/component/ThoughtChain.vue.js +11 -0
  508. package/lib/packages/components/touchchat/component/ThoughtChain.vue.js.map +1 -0
  509. package/lib/packages/components/touchchat/component/ThoughtChain.vue2.js +73 -0
  510. package/lib/packages/components/touchchat/component/ThoughtChain.vue2.js.map +1 -0
  511. package/lib/packages/components/touchchat/component/UploadView.vue.js +11 -0
  512. package/lib/packages/components/touchchat/component/UploadView.vue.js.map +1 -0
  513. package/lib/packages/components/touchchat/component/UploadView.vue2.js +150 -0
  514. package/lib/packages/components/touchchat/component/UploadView.vue2.js.map +1 -0
  515. package/lib/packages/components/touchchat/component/UploadView_api.vue.js +11 -0
  516. package/lib/packages/components/touchchat/component/UploadView_api.vue.js.map +1 -0
  517. package/lib/packages/components/touchchat/component/UploadView_api.vue2.js +170 -0
  518. package/lib/packages/components/touchchat/component/UploadView_api.vue2.js.map +1 -0
  519. package/lib/packages/components/touchchat/component/VoiceView.vue.js +11 -0
  520. package/lib/packages/components/touchchat/component/VoiceView.vue.js.map +1 -0
  521. package/lib/packages/components/touchchat/component/VoiceView.vue2.js +171 -0
  522. package/lib/packages/components/touchchat/component/VoiceView.vue2.js.map +1 -0
  523. package/lib/packages/components/touchchat/img/aiAvatar.png.js +8 -0
  524. package/lib/packages/components/touchchat/img/aiAvatar.png.js.map +1 -0
  525. package/lib/packages/components/touchchat/img/file/doc.png.js +8 -0
  526. package/lib/packages/components/touchchat/img/file/doc.png.js.map +1 -0
  527. package/lib/packages/components/touchchat/img/file/docx.png.js +8 -0
  528. package/lib/packages/components/touchchat/img/file/docx.png.js.map +1 -0
  529. package/lib/packages/components/touchchat/img/file/gif.png.js +8 -0
  530. package/lib/packages/components/touchchat/img/file/gif.png.js.map +1 -0
  531. package/lib/packages/components/touchchat/img/file/html.png.js +8 -0
  532. package/lib/packages/components/touchchat/img/file/html.png.js.map +1 -0
  533. package/lib/packages/components/touchchat/img/file/jpg.png.js +8 -0
  534. package/lib/packages/components/touchchat/img/file/jpg.png.js.map +1 -0
  535. package/lib/packages/components/touchchat/img/file/mp3.png.js +8 -0
  536. package/lib/packages/components/touchchat/img/file/mp3.png.js.map +1 -0
  537. package/lib/packages/components/touchchat/img/file/mp4.png.js +8 -0
  538. package/lib/packages/components/touchchat/img/file/mp4.png.js.map +1 -0
  539. package/lib/packages/components/touchchat/img/file/music.png.js +8 -0
  540. package/lib/packages/components/touchchat/img/file/music.png.js.map +1 -0
  541. package/lib/packages/components/touchchat/img/file/pdf.png.js +8 -0
  542. package/lib/packages/components/touchchat/img/file/pdf.png.js.map +1 -0
  543. package/lib/packages/components/touchchat/img/file/png.png.js +8 -0
  544. package/lib/packages/components/touchchat/img/file/png.png.js.map +1 -0
  545. package/lib/packages/components/touchchat/img/file/ppt.png.js +8 -0
  546. package/lib/packages/components/touchchat/img/file/ppt.png.js.map +1 -0
  547. package/lib/packages/components/touchchat/img/file/pptx.png.js +8 -0
  548. package/lib/packages/components/touchchat/img/file/pptx.png.js.map +1 -0
  549. package/lib/packages/components/touchchat/img/file/txt.png.js +8 -0
  550. package/lib/packages/components/touchchat/img/file/txt.png.js.map +1 -0
  551. package/lib/packages/components/touchchat/img/file/xls.png.js +8 -0
  552. package/lib/packages/components/touchchat/img/file/xls.png.js.map +1 -0
  553. package/lib/packages/components/touchchat/img/file/xlsx.png.js +8 -0
  554. package/lib/packages/components/touchchat/img/file/xlsx.png.js.map +1 -0
  555. package/lib/packages/components/touchchat/img/icon.png.js.map +1 -0
  556. package/lib/packages/components/touchchat/img/svg/reset.svg.js +8 -0
  557. package/lib/packages/components/touchchat/img/svg/reset.svg.js.map +1 -0
  558. package/lib/packages/components/touchchat/img/userAvatar.png.js +8 -0
  559. package/lib/packages/components/touchchat/img/userAvatar.png.js.map +1 -0
  560. package/lib/packages/components/touchchat/index.js +5 -5
  561. package/lib/packages/components/touchchat/index.js.map +1 -1
  562. package/lib/packages/components/touchchat/src/AiChat/AgentsView.vue.js +11 -0
  563. package/lib/packages/components/touchchat/src/AiChat/AgentsView.vue.js.map +1 -0
  564. package/lib/packages/components/touchchat/src/AiChat/AgentsView.vue2.js +63 -0
  565. package/lib/packages/components/touchchat/src/AiChat/AgentsView.vue2.js.map +1 -0
  566. package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js +223 -281
  567. package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js.map +1 -1
  568. package/lib/packages/components/touchchat/src/AiChat/Chat/TouchChat.js +21 -0
  569. package/lib/packages/components/touchchat/src/AiChat/Chat/TouchChat.js.map +1 -0
  570. package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js +437 -157
  571. package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js.map +1 -1
  572. package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js +117 -148
  573. package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js.map +1 -1
  574. package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js +50 -63
  575. package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js.map +1 -1
  576. package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue2.js +126 -226
  577. package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue2.js.map +1 -1
  578. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue.js +11 -0
  579. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue.js.map +1 -0
  580. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue2.js +35 -0
  581. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue2.js.map +1 -0
  582. package/lib/packages/components/touchchat/src/AiChat/TouchAgent.vue.js +11 -0
  583. package/lib/packages/components/touchchat/src/AiChat/TouchAgent.vue.js.map +1 -0
  584. package/lib/packages/components/touchchat/src/AiChat/TouchAgent.vue2.js +933 -0
  585. package/lib/packages/components/touchchat/src/AiChat/TouchAgent.vue2.js.map +1 -0
  586. package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js +1074 -526
  587. package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js.map +1 -1
  588. package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue2.js +364 -135
  589. package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue2.js.map +1 -1
  590. package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js +128 -65
  591. package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js.map +1 -1
  592. package/lib/packages/components/touchchat/src/index.vue.js +2 -2
  593. package/lib/packages/components/touchchat/src/index.vue2.js +179 -116
  594. package/lib/packages/components/touchchat/src/index.vue2.js.map +1 -1
  595. package/lib/packages/components/touchchat/src/types/a2a.js +13 -0
  596. package/lib/packages/components/touchchat/src/types/a2a.js.map +1 -0
  597. package/lib/packages/components/touchchat/utils/a2aService.js +295 -0
  598. package/lib/packages/components/touchchat/utils/a2aService.js.map +1 -0
  599. package/lib/packages/components/touchchat/utils/fetchStream.js +6 -1
  600. package/lib/packages/components/touchchat/utils/fetchStream.js.map +1 -1
  601. package/lib/packages/components/touchchat/utils/markdown.js +2 -2
  602. package/lib/packages/components/touchchat/utils/markdown.js.map +1 -1
  603. package/lib/packages/utils/config.js.map +1 -1
  604. package/lib/packages/utils/types.js.map +1 -1
  605. package/package.json +81 -81
  606. package/theme/components/index.css +1980 -1684
  607. package/theme/font/iconfont.woff +0 -0
  608. package/theme/font/iconfont.woff2 +0 -0
  609. package/theme/img/aiArrow.png +0 -0
  610. package/theme/img/loading.png +0 -0
  611. package/theme/img/logo.png +0 -0
  612. package/theme/img/userArrow.png +0 -0
  613. package/theme/index.css +1980 -1684
  614. package/theme/skin/default.css +1980 -1684
  615. package/types/global.d.ts +2 -2
  616. package/es/_virtual/emphasis.mjs +0 -4
  617. package/es/_virtual/emphasis.mjs.map +0 -1
  618. package/es/_virtual/html_re.mjs +0 -4
  619. package/es/_virtual/html_re.mjs.map +0 -1
  620. package/es/_virtual/index.mjs +0 -4
  621. package/es/_virtual/index.mjs.map +0 -1
  622. package/es/_virtual/index2.mjs +0 -4
  623. package/es/_virtual/index2.mjs.map +0 -1
  624. package/es/_virtual/index3.mjs +0 -4
  625. package/es/_virtual/index3.mjs.map +0 -1
  626. package/es/_virtual/strikethrough.mjs +0 -4
  627. package/es/_virtual/strikethrough.mjs.map +0 -1
  628. package/es/_virtual/utils.mjs +0 -4
  629. package/es/_virtual/utils.mjs.map +0 -1
  630. package/es/node_modules/.pnpm/entities@2.1.0/node_modules/entities/lib/maps/entities.json.mjs +0 -4253
  631. package/es/node_modules/.pnpm/entities@2.1.0/node_modules/entities/lib/maps/entities.json.mjs.map +0 -1
  632. package/es/node_modules/.pnpm/linkify-it@3.0.3/node_modules/linkify-it/index.mjs +0 -638
  633. package/es/node_modules/.pnpm/linkify-it@3.0.3/node_modules/linkify-it/index.mjs.map +0 -1
  634. package/es/node_modules/.pnpm/linkify-it@3.0.3/node_modules/linkify-it/lib/re.mjs +0 -196
  635. package/es/node_modules/.pnpm/linkify-it@3.0.3/node_modules/linkify-it/lib/re.mjs.map +0 -1
  636. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/index.mjs +0 -9
  637. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/index.mjs.map +0 -1
  638. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/common/entities.mjs +0 -7
  639. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/common/entities.mjs.map +0 -1
  640. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/common/html_blocks.mjs +0 -67
  641. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/common/html_blocks.mjs.map +0 -1
  642. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/common/html_re.mjs +0 -29
  643. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/common/html_re.mjs.map +0 -1
  644. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/common/utils.mjs +0 -324
  645. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/common/utils.mjs.map +0 -1
  646. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/helpers/index.mjs +0 -11
  647. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/helpers/index.mjs.map +0 -1
  648. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs +0 -83
  649. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs.map +0 -1
  650. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/helpers/parse_link_label.mjs +0 -44
  651. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/helpers/parse_link_label.mjs.map +0 -1
  652. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/helpers/parse_link_title.mjs +0 -56
  653. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/helpers/parse_link_title.mjs.map +0 -1
  654. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/index.mjs +0 -596
  655. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/index.mjs.map +0 -1
  656. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/parser_block.mjs +0 -138
  657. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/parser_block.mjs.map +0 -1
  658. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/parser_core.mjs +0 -69
  659. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/parser_core.mjs.map +0 -1
  660. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/parser_inline.mjs +0 -197
  661. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/parser_inline.mjs.map +0 -1
  662. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/presets/commonmark.mjs +0 -78
  663. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/presets/commonmark.mjs.map +0 -1
  664. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/presets/default.mjs +0 -39
  665. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/presets/default.mjs.map +0 -1
  666. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/presets/zero.mjs +0 -59
  667. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/presets/zero.mjs.map +0 -1
  668. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/renderer.mjs +0 -346
  669. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/renderer.mjs.map +0 -1
  670. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/ruler.mjs +0 -354
  671. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/ruler.mjs.map +0 -1
  672. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/blockquote.mjs +0 -286
  673. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/blockquote.mjs.map +0 -1
  674. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/code.mjs +0 -32
  675. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/code.mjs.map +0 -1
  676. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/fence.mjs +0 -96
  677. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/fence.mjs.map +0 -1
  678. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/heading.mjs +0 -57
  679. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/heading.mjs.map +0 -1
  680. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/hr.mjs +0 -47
  681. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/hr.mjs.map +0 -1
  682. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/html_block.mjs +0 -76
  683. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/html_block.mjs.map +0 -1
  684. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/lheading.mjs +0 -81
  685. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/lheading.mjs.map +0 -1
  686. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/list.mjs +0 -366
  687. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/list.mjs.map +0 -1
  688. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/paragraph.mjs +0 -50
  689. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/paragraph.mjs.map +0 -1
  690. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/reference.mjs +0 -197
  691. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/reference.mjs.map +0 -1
  692. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/state_block.mjs +0 -234
  693. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/state_block.mjs.map +0 -1
  694. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/table.mjs +0 -223
  695. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/table.mjs.map +0 -1
  696. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/block.mjs +0 -16
  697. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/block.mjs.map +0 -1
  698. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/inline.mjs +0 -14
  699. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/inline.mjs.map +0 -1
  700. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/linkify.mjs +0 -132
  701. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/linkify.mjs.map +0 -1
  702. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/normalize.mjs +0 -19
  703. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/normalize.mjs.map +0 -1
  704. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/replacements.mjs +0 -97
  705. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/replacements.mjs.map +0 -1
  706. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/smartquotes.mjs +0 -202
  707. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/smartquotes.mjs.map +0 -1
  708. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/state_core.mjs +0 -21
  709. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/state_core.mjs.map +0 -1
  710. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/autolink.mjs +0 -74
  711. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/autolink.mjs.map +0 -1
  712. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/backticks.mjs +0 -61
  713. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/backticks.mjs.map +0 -1
  714. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs +0 -128
  715. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs.map +0 -1
  716. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/emphasis.mjs +0 -130
  717. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/emphasis.mjs.map +0 -1
  718. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/entity.mjs +0 -51
  719. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/entity.mjs.map +0 -1
  720. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/escape.mjs +0 -54
  721. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/escape.mjs.map +0 -1
  722. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/html_inline.mjs +0 -48
  723. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/html_inline.mjs.map +0 -1
  724. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/image.mjs +0 -154
  725. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/image.mjs.map +0 -1
  726. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/link.mjs +0 -150
  727. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/link.mjs.map +0 -1
  728. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/newline.mjs +0 -48
  729. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/newline.mjs.map +0 -1
  730. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/state_inline.mjs +0 -156
  731. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/state_inline.mjs.map +0 -1
  732. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs +0 -130
  733. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs.map +0 -1
  734. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/text.mjs +0 -56
  735. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/text.mjs.map +0 -1
  736. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/text_collapse.mjs +0 -33
  737. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/text_collapse.mjs.map +0 -1
  738. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/token.mjs +0 -199
  739. package/es/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/token.mjs.map +0 -1
  740. package/es/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/decode.mjs +0 -121
  741. package/es/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/decode.mjs.map +0 -1
  742. package/es/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/encode.mjs +0 -97
  743. package/es/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/encode.mjs.map +0 -1
  744. package/es/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/format.mjs +0 -24
  745. package/es/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/format.mjs.map +0 -1
  746. package/es/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/index.mjs +0 -13
  747. package/es/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/index.mjs.map +0 -1
  748. package/es/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/parse.mjs +0 -292
  749. package/es/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/parse.mjs.map +0 -1
  750. package/es/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/categories/Cc/regex.mjs +0 -12
  751. package/es/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/categories/Cc/regex.mjs.map +0 -1
  752. package/es/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/categories/Cf/regex.mjs +0 -12
  753. package/es/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/categories/Cf/regex.mjs.map +0 -1
  754. package/es/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/categories/P/regex.mjs +0 -4
  755. package/es/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/categories/P/regex.mjs.map +0 -1
  756. package/es/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/categories/Z/regex.mjs +0 -12
  757. package/es/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/categories/Z/regex.mjs.map +0 -1
  758. package/es/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/index.mjs +0 -23
  759. package/es/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/index.mjs.map +0 -1
  760. package/es/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/properties/Any/regex.mjs +0 -12
  761. package/es/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/properties/Any/regex.mjs.map +0 -1
  762. package/es/packages/components/touchchat/img/AI.png.mjs +0 -4
  763. package/es/packages/components/touchchat/img/AI.png.mjs.map +0 -1
  764. package/es/packages/components/touchchat/img/asir.png.mjs +0 -4
  765. package/es/packages/components/touchchat/img/asir.png.mjs.map +0 -1
  766. package/es/packages/components/touchchat/src/AiRobot/ChatPanel.vue.mjs +0 -7
  767. package/es/packages/components/touchchat/src/AiRobot/ChatPanel.vue.mjs.map +0 -1
  768. package/es/packages/components/touchchat/src/AiRobot/ChatPanel.vue2.mjs +0 -632
  769. package/es/packages/components/touchchat/src/AiRobot/ChatPanel.vue2.mjs.map +0 -1
  770. package/es/packages/components/touchchat/src/AiRobot/Content.vue.mjs +0 -7
  771. package/es/packages/components/touchchat/src/AiRobot/Content.vue.mjs.map +0 -1
  772. package/es/packages/components/touchchat/src/AiRobot/Content.vue2.mjs +0 -263
  773. package/es/packages/components/touchchat/src/AiRobot/Content.vue2.mjs.map +0 -1
  774. package/es/packages/components/touchchat/src/AiRobot/Header.vue.mjs +0 -7
  775. package/es/packages/components/touchchat/src/AiRobot/Header.vue.mjs.map +0 -1
  776. package/es/packages/components/touchchat/src/AiRobot/Header.vue2.mjs +0 -197
  777. package/es/packages/components/touchchat/src/AiRobot/Header.vue2.mjs.map +0 -1
  778. package/es/packages/components/touchchat/src/AiRobot/Input.vue.mjs +0 -7
  779. package/es/packages/components/touchchat/src/AiRobot/Input.vue.mjs.map +0 -1
  780. package/es/packages/components/touchchat/src/AiRobot/Input.vue2.mjs +0 -69
  781. package/es/packages/components/touchchat/src/AiRobot/Input.vue2.mjs.map +0 -1
  782. package/es/packages/components/touchchat/src/AiRobot/Scene.vue.mjs +0 -7
  783. package/es/packages/components/touchchat/src/AiRobot/Scene.vue.mjs.map +0 -1
  784. package/es/packages/components/touchchat/src/AiRobot/Scene.vue2.mjs +0 -48
  785. package/es/packages/components/touchchat/src/AiRobot/Scene.vue2.mjs.map +0 -1
  786. package/es/packages/components/touchchat/src/AiRobot/component/HelloChat.vue.mjs +0 -7
  787. package/es/packages/components/touchchat/src/AiRobot/component/HelloChat.vue2.mjs +0 -270
  788. package/es/packages/components/touchchat/src/AiRobot/component/HelloChat.vue2.mjs.map +0 -1
  789. package/es/packages/components/touchchat/src/AiRobot/component/face.vue.mjs +0 -7
  790. package/es/packages/components/touchchat/src/AiRobot/component/face.vue2.mjs +0 -89
  791. package/es/packages/components/touchchat/src/AiRobot/component/face.vue2.mjs.map +0 -1
  792. package/es/packages/components/touchchat/src/AiRobot/component/letter.vue.mjs +0 -7
  793. package/es/packages/components/touchchat/src/AiRobot/component/letter.vue2.mjs +0 -64
  794. package/es/packages/components/touchchat/src/AiRobot/component/letter.vue2.mjs.map +0 -1
  795. package/es/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue.mjs +0 -7
  796. package/es/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue2.mjs +0 -36
  797. package/es/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue2.mjs.map +0 -1
  798. package/es/packages/components/touchchat/src/AiRobot/component/start.vue.mjs +0 -7
  799. package/es/packages/components/touchchat/src/AiRobot/component/start.vue2.mjs +0 -36
  800. package/es/packages/components/touchchat/src/AiRobot/component/start.vue2.mjs.map +0 -1
  801. package/es/packages/components/touchchat/src/AiRobot/img/Avatar-AI.png.mjs +0 -4
  802. package/es/packages/components/touchchat/src/AiRobot/img/Avatar-AI.png.mjs.map +0 -1
  803. package/es/packages/components/touchchat/src/AiRobot/img/icon.png.mjs.map +0 -1
  804. package/es/packages/components/touchchat/src/AiRobot/index.vue.mjs +0 -7
  805. package/es/packages/components/touchchat/src/AiRobot/index.vue.mjs.map +0 -1
  806. package/es/packages/components/touchchat/src/AiRobot/index.vue2.mjs +0 -135
  807. package/es/packages/components/touchchat/src/AiRobot/index.vue2.mjs.map +0 -1
  808. package/lib/_virtual/emphasis.js +0 -6
  809. package/lib/_virtual/emphasis.js.map +0 -1
  810. package/lib/_virtual/html_re.js +0 -6
  811. package/lib/_virtual/html_re.js.map +0 -1
  812. package/lib/_virtual/index.js +0 -6
  813. package/lib/_virtual/index.js.map +0 -1
  814. package/lib/_virtual/index2.js +0 -6
  815. package/lib/_virtual/index2.js.map +0 -1
  816. package/lib/_virtual/index3.js +0 -6
  817. package/lib/_virtual/index3.js.map +0 -1
  818. package/lib/_virtual/strikethrough.js +0 -6
  819. package/lib/_virtual/strikethrough.js.map +0 -1
  820. package/lib/_virtual/utils.js +0 -6
  821. package/lib/_virtual/utils.js.map +0 -1
  822. package/lib/node_modules/.pnpm/entities@2.1.0/node_modules/entities/lib/maps/entities.json.js +0 -6380
  823. package/lib/node_modules/.pnpm/entities@2.1.0/node_modules/entities/lib/maps/entities.json.js.map +0 -1
  824. package/lib/node_modules/.pnpm/linkify-it@3.0.3/node_modules/linkify-it/index.js +0 -640
  825. package/lib/node_modules/.pnpm/linkify-it@3.0.3/node_modules/linkify-it/index.js.map +0 -1
  826. package/lib/node_modules/.pnpm/linkify-it@3.0.3/node_modules/linkify-it/lib/re.js +0 -198
  827. package/lib/node_modules/.pnpm/linkify-it@3.0.3/node_modules/linkify-it/lib/re.js.map +0 -1
  828. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/index.js +0 -13
  829. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/index.js.map +0 -1
  830. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/common/entities.js +0 -9
  831. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/common/entities.js.map +0 -1
  832. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/common/html_blocks.js +0 -69
  833. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/common/html_blocks.js.map +0 -1
  834. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/common/html_re.js +0 -33
  835. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/common/html_re.js.map +0 -1
  836. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/common/utils.js +0 -326
  837. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/common/utils.js.map +0 -1
  838. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/helpers/index.js +0 -15
  839. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/helpers/index.js.map +0 -1
  840. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/helpers/parse_link_destination.js +0 -85
  841. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/helpers/parse_link_destination.js.map +0 -1
  842. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/helpers/parse_link_label.js +0 -46
  843. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/helpers/parse_link_label.js.map +0 -1
  844. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/helpers/parse_link_title.js +0 -58
  845. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/helpers/parse_link_title.js.map +0 -1
  846. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/index.js +0 -598
  847. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/index.js.map +0 -1
  848. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/parser_block.js +0 -140
  849. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/parser_block.js.map +0 -1
  850. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/parser_core.js +0 -71
  851. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/parser_core.js.map +0 -1
  852. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/parser_inline.js +0 -199
  853. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/parser_inline.js.map +0 -1
  854. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/presets/commonmark.js +0 -80
  855. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/presets/commonmark.js.map +0 -1
  856. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/presets/default.js +0 -41
  857. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/presets/default.js.map +0 -1
  858. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/presets/zero.js +0 -61
  859. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/presets/zero.js.map +0 -1
  860. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/renderer.js +0 -348
  861. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/renderer.js.map +0 -1
  862. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/ruler.js +0 -356
  863. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/ruler.js.map +0 -1
  864. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/blockquote.js +0 -288
  865. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/blockquote.js.map +0 -1
  866. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/code.js +0 -34
  867. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/code.js.map +0 -1
  868. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/fence.js +0 -98
  869. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/fence.js.map +0 -1
  870. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/heading.js +0 -59
  871. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/heading.js.map +0 -1
  872. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/hr.js +0 -49
  873. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/hr.js.map +0 -1
  874. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/html_block.js +0 -78
  875. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/html_block.js.map +0 -1
  876. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/lheading.js +0 -83
  877. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/lheading.js.map +0 -1
  878. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/list.js +0 -368
  879. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/list.js.map +0 -1
  880. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/paragraph.js +0 -52
  881. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/paragraph.js.map +0 -1
  882. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/reference.js +0 -199
  883. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/reference.js.map +0 -1
  884. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/state_block.js +0 -236
  885. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/state_block.js.map +0 -1
  886. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/table.js +0 -225
  887. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_block/table.js.map +0 -1
  888. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/block.js +0 -18
  889. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/block.js.map +0 -1
  890. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/inline.js +0 -16
  891. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/inline.js.map +0 -1
  892. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/linkify.js +0 -134
  893. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/linkify.js.map +0 -1
  894. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/normalize.js +0 -21
  895. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/normalize.js.map +0 -1
  896. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/replacements.js +0 -99
  897. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/replacements.js.map +0 -1
  898. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/smartquotes.js +0 -204
  899. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/smartquotes.js.map +0 -1
  900. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/state_core.js +0 -23
  901. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_core/state_core.js.map +0 -1
  902. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/autolink.js +0 -76
  903. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/autolink.js.map +0 -1
  904. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/backticks.js +0 -63
  905. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/backticks.js.map +0 -1
  906. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/balance_pairs.js +0 -130
  907. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/balance_pairs.js.map +0 -1
  908. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/emphasis.js +0 -134
  909. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/emphasis.js.map +0 -1
  910. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/entity.js +0 -53
  911. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/entity.js.map +0 -1
  912. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/escape.js +0 -56
  913. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/escape.js.map +0 -1
  914. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/html_inline.js +0 -50
  915. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/html_inline.js.map +0 -1
  916. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/image.js +0 -156
  917. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/image.js.map +0 -1
  918. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/link.js +0 -152
  919. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/link.js.map +0 -1
  920. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/newline.js +0 -50
  921. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/newline.js.map +0 -1
  922. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/state_inline.js +0 -158
  923. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/state_inline.js.map +0 -1
  924. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/strikethrough.js +0 -134
  925. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/strikethrough.js.map +0 -1
  926. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/text.js +0 -58
  927. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/text.js.map +0 -1
  928. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/text_collapse.js +0 -35
  929. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/rules_inline/text_collapse.js.map +0 -1
  930. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/token.js +0 -201
  931. package/lib/node_modules/.pnpm/markdown-it@12.3.2/node_modules/markdown-it/lib/token.js.map +0 -1
  932. package/lib/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/decode.js +0 -123
  933. package/lib/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/decode.js.map +0 -1
  934. package/lib/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/encode.js +0 -99
  935. package/lib/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/encode.js.map +0 -1
  936. package/lib/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/format.js +0 -26
  937. package/lib/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/format.js.map +0 -1
  938. package/lib/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/index.js +0 -17
  939. package/lib/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/index.js.map +0 -1
  940. package/lib/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/parse.js +0 -294
  941. package/lib/node_modules/.pnpm/mdurl@1.0.1/node_modules/mdurl/parse.js.map +0 -1
  942. package/lib/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/categories/Cc/regex.js +0 -14
  943. package/lib/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/categories/Cc/regex.js.map +0 -1
  944. package/lib/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/categories/Cf/regex.js +0 -14
  945. package/lib/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/categories/Cf/regex.js.map +0 -1
  946. package/lib/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/categories/P/regex.js +0 -6
  947. package/lib/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/categories/P/regex.js.map +0 -1
  948. package/lib/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/categories/Z/regex.js +0 -14
  949. package/lib/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/categories/Z/regex.js.map +0 -1
  950. package/lib/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/index.js +0 -25
  951. package/lib/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/index.js.map +0 -1
  952. package/lib/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/properties/Any/regex.js +0 -14
  953. package/lib/node_modules/.pnpm/uc.micro@1.0.6/node_modules/uc.micro/properties/Any/regex.js.map +0 -1
  954. package/lib/packages/components/touchchat/img/AI.png.js +0 -8
  955. package/lib/packages/components/touchchat/img/AI.png.js.map +0 -1
  956. package/lib/packages/components/touchchat/img/asir.png.js +0 -8
  957. package/lib/packages/components/touchchat/img/asir.png.js.map +0 -1
  958. package/lib/packages/components/touchchat/src/AiRobot/ChatPanel.vue.js +0 -11
  959. package/lib/packages/components/touchchat/src/AiRobot/ChatPanel.vue.js.map +0 -1
  960. package/lib/packages/components/touchchat/src/AiRobot/ChatPanel.vue2.js +0 -636
  961. package/lib/packages/components/touchchat/src/AiRobot/ChatPanel.vue2.js.map +0 -1
  962. package/lib/packages/components/touchchat/src/AiRobot/Content.vue.js +0 -11
  963. package/lib/packages/components/touchchat/src/AiRobot/Content.vue.js.map +0 -1
  964. package/lib/packages/components/touchchat/src/AiRobot/Content.vue2.js +0 -267
  965. package/lib/packages/components/touchchat/src/AiRobot/Content.vue2.js.map +0 -1
  966. package/lib/packages/components/touchchat/src/AiRobot/Header.vue.js +0 -11
  967. package/lib/packages/components/touchchat/src/AiRobot/Header.vue.js.map +0 -1
  968. package/lib/packages/components/touchchat/src/AiRobot/Header.vue2.js +0 -201
  969. package/lib/packages/components/touchchat/src/AiRobot/Header.vue2.js.map +0 -1
  970. package/lib/packages/components/touchchat/src/AiRobot/Input.vue.js +0 -11
  971. package/lib/packages/components/touchchat/src/AiRobot/Input.vue.js.map +0 -1
  972. package/lib/packages/components/touchchat/src/AiRobot/Input.vue2.js +0 -73
  973. package/lib/packages/components/touchchat/src/AiRobot/Input.vue2.js.map +0 -1
  974. package/lib/packages/components/touchchat/src/AiRobot/Scene.vue.js +0 -11
  975. package/lib/packages/components/touchchat/src/AiRobot/Scene.vue.js.map +0 -1
  976. package/lib/packages/components/touchchat/src/AiRobot/Scene.vue2.js +0 -52
  977. package/lib/packages/components/touchchat/src/AiRobot/Scene.vue2.js.map +0 -1
  978. package/lib/packages/components/touchchat/src/AiRobot/component/HelloChat.vue.js +0 -11
  979. package/lib/packages/components/touchchat/src/AiRobot/component/HelloChat.vue2.js +0 -274
  980. package/lib/packages/components/touchchat/src/AiRobot/component/HelloChat.vue2.js.map +0 -1
  981. package/lib/packages/components/touchchat/src/AiRobot/component/face.vue.js +0 -11
  982. package/lib/packages/components/touchchat/src/AiRobot/component/face.vue2.js +0 -93
  983. package/lib/packages/components/touchchat/src/AiRobot/component/face.vue2.js.map +0 -1
  984. package/lib/packages/components/touchchat/src/AiRobot/component/letter.vue.js +0 -11
  985. package/lib/packages/components/touchchat/src/AiRobot/component/letter.vue2.js +0 -68
  986. package/lib/packages/components/touchchat/src/AiRobot/component/letter.vue2.js.map +0 -1
  987. package/lib/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue.js +0 -11
  988. package/lib/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue2.js +0 -40
  989. package/lib/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue2.js.map +0 -1
  990. package/lib/packages/components/touchchat/src/AiRobot/component/start.vue.js +0 -11
  991. package/lib/packages/components/touchchat/src/AiRobot/component/start.vue2.js +0 -40
  992. package/lib/packages/components/touchchat/src/AiRobot/component/start.vue2.js.map +0 -1
  993. package/lib/packages/components/touchchat/src/AiRobot/img/Avatar-AI.png.js +0 -8
  994. package/lib/packages/components/touchchat/src/AiRobot/img/Avatar-AI.png.js.map +0 -1
  995. package/lib/packages/components/touchchat/src/AiRobot/img/icon.png.js.map +0 -1
  996. package/lib/packages/components/touchchat/src/AiRobot/index.vue.js +0 -11
  997. package/lib/packages/components/touchchat/src/AiRobot/index.vue.js.map +0 -1
  998. package/lib/packages/components/touchchat/src/AiRobot/index.vue2.js +0 -139
  999. package/lib/packages/components/touchchat/src/AiRobot/index.vue2.js.map +0 -1
  1000. package/theme/img/default.png +0 -0
  1001. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/HelloChat.vue.mjs.map +0 -0
  1002. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/face.vue.mjs.map +0 -0
  1003. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/letter.vue.mjs.map +0 -0
  1004. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/meterialPrepare.vue.mjs.map +0 -0
  1005. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/start.vue.mjs.map +0 -0
  1006. /package/es/packages/components/touchchat/{src/AiRobot/img → img}/icon.png.mjs +0 -0
  1007. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/HelloChat.vue.js.map +0 -0
  1008. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/face.vue.js.map +0 -0
  1009. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/letter.vue.js.map +0 -0
  1010. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/meterialPrepare.vue.js.map +0 -0
  1011. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/start.vue.js.map +0 -0
  1012. /package/lib/packages/components/touchchat/{src/AiRobot/img → img}/icon.png.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"TouchChat.vue2.mjs","sources":["../../../../../../../packages/components/touchchat/src/AiChat/TouchChat.vue"],"sourcesContent":["<template>\r\n <div ref=\"chatContainer\" class=\"chat-container\">\r\n\t<!-- <span>chatList === {{chatList}}</span> -->\r\n <div v-if=\"chatList.length === 0\" class=\"hello-chat-content\">\r\n <slot name=\"welcome\">\r\n <HelloChat @send-message=\"sendMessage\" />\r\n </slot>\r\n </div>\r\n <!-- Chat messages list -->\r\n <div class=\"chat-messages\">\r\n <template v-for=\"(item, index) in chatList\" :key=\"item.chatId\">\r\n <UserMessage\r\n v-if=\"item.user === 'u'\"\r\n :item=\"item\"\r\n :index=\"index\"\r\n @copy=\"handleMessageAction('copy', index)\"\r\n @edit=\"handleMessageAction('edit', index)\"\r\n @delete=\"handleMessageAction('delete', index)\"\r\n @save-edit=\"saveEdit\"\r\n @cancel-edit=\"cancelEdit(index)\"\r\n >\r\n <template #userAvatar>\r\n <slot name=\"userAvatar\" />\r\n </template>\r\n </UserMessage>\r\n <AiMessage\r\n v-else\r\n :item=\"item\"\r\n :index=\"index\"\r\n :enable-deep-thinking=\"enableDeepThinking\"\r\n @copy=\"handleMessageAction('copy', index)\"\r\n @retry=\"handleMessageAction('retry', index)\"\r\n @like=\"handleMessageAction('like', index)\"\r\n @dislike=\"handleMessageAction('dislike', index)\"\r\n @content-rendered=\"attachCopyButtons\"\r\n >\r\n <!-- 新增插槽透传 -->\r\n <template #aiMessageContent>\r\n <slot name=\"aiMessageContent\" :item=\"item\" :index=\"index\" />\r\n </template>\r\n <template #aiAvatar>\r\n <slot name=\"aiAvatar\" />\r\n </template>\r\n </AiMessage>\r\n </template>\r\n </div>\r\n </div>\r\n <ChatInput\r\n v-model:input-value=\"inputValue\"\r\n v-model:enable-deep-thinking=\"enableDeepThinking\"\r\n :is-chating=\"isChating\"\r\n @send=\"handleBeforeSend\"\r\n @stop=\"handleStop\"\r\n @toggle-deep-thinking=\"(val: boolean) => (enableDeepThinking = val)\"\r\n >\r\n <template #input=\"{ disabled }\">\r\n <slot name=\"input\" :disabled=\"disabled\" />\r\n </template>\r\n </ChatInput>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport UserMessage from './UserMessage.vue';\r\nimport AiMessage from './AiMessage.vue';\r\nimport ChatInput from './ChatInput.vue';\r\nimport { ref, onMounted, onBeforeUnmount, nextTick, defineEmits, inject, watch } from 'vue';\r\nimport { throttle } from 'throttle-debounce';\r\nimport { FetchStream } from '../../utils/fetchStream.ts';\r\nimport { ChatRobot } from '../../utils/chatRobot.ts';\r\nimport markdown from '../../utils/markdown.ts';\r\nimport HelloChat from '../../component/HelloChat.vue';\r\nimport { showToast } from '../../utils/tools.ts';\r\n\r\ninterface ChatMessage {\r\n chatId?: string;\r\n user: string;\r\n type: string;\r\n content: string;\r\n isChating?: boolean;\r\n thinkContent?: string;\r\n reasoningContent?: string;\r\n isLiked?: boolean; // 新增点赞状态\r\n isDisliked?: boolean; // 新增踩状态\r\n isShowLike?: boolean; // 是否显示点赞\r\n // 添加编辑状态属性\r\n isEditing?: boolean;\r\n editContent?: string;\r\n componentName?: string;\r\n // 添加深度思考相关属性\r\n // thinkStatus?: 'thinking' | 'completed' | 'stopped';\r\n thinkStatus?: string;\r\n thinkStartTime?: number;\r\n thinkTime?: number;\r\n [key: string]: any;\r\n}\r\n\r\ninterface ChatInfoItem {\r\n msgContent: string;\r\n // 可以根据实际情况添加其他属性\r\n}\r\n\r\nconst emit = defineEmits(['sendMessage']);\r\nconst action = inject<string>('action', '');\r\nconst headers = inject<Record<string, string> | Headers | undefined>('headers', undefined);\r\nconst body = inject<Record<string, any> | undefined>('body', undefined);\r\n// const rootMap = inject<Record<string, any>>('rootMap', {});\r\nconst token = inject<string>('token', '');\r\nconst wsUrl = inject<string>('wsUrl', '');\r\nconst connectionType = inject('connectionType');\r\nconst isDeepSeek = inject<boolean>('isDeepSeek', true);\r\nconst aiChatType = inject<'Flow' | 'Intelligent'>('aiChatType', 'Flow');\r\nconst afterSendMessage = inject<(content: string) => void>('afterSendMessage', () => {\r\n console.warn('未提供afterSendMessage函数');\r\n});\r\n\r\nconst props = defineProps({\r\n model: {\r\n type: String,\r\n default: 'deepseek-v3',\r\n },\r\n value: {\r\n type: Array as () => ChatMessage[],\r\n default: () => [],\r\n },\r\n placeholder: {\r\n type: String,\r\n default: '快来和我聊天吧~',\r\n },\r\n components: {\r\n type: Object,\r\n default: () => ({}),\r\n },\r\n openSSECallback: {\r\n type: Function as unknown as () => (fetchStream: typeof FetchStream) => void,\r\n default: null,\r\n },\r\n});\r\n\r\nconst chatContainer = ref<HTMLElement | null>(null);\r\nconst htmlContentRef = ref<(HTMLElement | null)[]>([]);\r\nconst thinkingContentRef = ref<(HTMLElement | null)[]>([]);\r\nconst reasoningContentRef = ref<(HTMLElement | null)[]>([]); // 添加深度思考引用\r\nconst isMounted = ref(false); // 新增组件挂载状态跟踪\r\n\r\n// const isReady = ref(false);\r\nconst isChating = ref(false);\r\nconst inputValue = ref('');\r\nconst enableDeepThinking = ref(false); // 深度思考开关状态\r\nconst chatList = ref<ChatMessage[]>([]);\r\n// 将字符串数组改为对象数组\r\nconst renderQueue = ref<\r\n Array<{ mainContent: string; thinkContent: string; reasoningContent: string }>\r\n>([]);\r\nconst isRendering = ref(false);\r\nconst currIndex = ref(0);\r\nconst fetchStream = ref<InstanceType<typeof FetchStream> | null>(null);\r\nconst TouchChatRobot = ref<ChatRobot>();\r\nconst isUnmounting = ref(false);\r\nconst currentComponentName = ref('');\r\n\r\n// watch(chatList, (val) => {\r\n// \tif (!val.length && aiChatType === 'Intelligent') {\r\n// \t\tchatList.value = localStorage.getItem('chatList') ? JSON.parse(localStorage.getItem('chatHistory') || '') : [];\r\n// \t}\r\n// })\r\n\r\n// 修改init方法确保原始数据已标准化\r\nconst init = () => {\r\n if (Array.isArray(props.value) && props.value.length) {\r\n // 直接标准化并赋值给chatList,不创建中间计算属性\r\n chatList.value = props.value.map(item => ({\r\n ...item,\r\n content: item.thinkContent ? item.content || '' : item.content || '',\r\n thinkContent: item.thinkContent || '',\r\n }));\r\n\r\n nextTick(() => {\r\n requestAnimationFrame(() => {\r\n try {\r\n chatList.value.forEach((item, index) => {\r\n currIndex.value = index;\r\n // 严格分离渲染\r\n if (item.thinkContent) {\r\n renderContent(item.thinkContent, 'thinking');\r\n }\r\n // 添加深度思考初始渲染\r\n if (item.reasoningContent) {\r\n renderContent(item.reasoningContent, 'reasoning');\r\n }\r\n if (item.content) {\r\n renderContent(item.content, 'main');\r\n }\r\n });\r\n // scrollToBottom();\r\n } catch (error) {\r\n console.error('初始渲染失败:', error);\r\n }\r\n });\r\n });\r\n }\r\n if (connectionType === 'Websocket') {\r\n openWebsocket();\r\n }\r\n};\r\n\r\n// 添加watch监听props.value的变化\r\nwatch(\r\n () => props.value,\r\n (newVal, oldVal) => {\r\n // 只有当 newVal 和 oldVal 不同时才重新初始化\r\n if (Array.isArray(newVal) && newVal.length && JSON.stringify(newVal) !== JSON.stringify(oldVal)) {\r\n // 重新初始化chatList数据\r\n chatList.value = newVal.map(item => ({\r\n ...item,\r\n content: item.thinkContent ? item.content || '' : item.content || '',\r\n thinkContent: item.thinkContent || '',\r\n }));\r\n\r\n // 强制重新渲染UI\r\n nextTick(() => {\r\n requestAnimationFrame(() => {\r\n try {\r\n chatList.value.forEach((item, index) => {\r\n currIndex.value = index;\r\n if (item.thinkContent) {\r\n renderContent(item.thinkContent, 'thinking');\r\n }\r\n if (item.reasoningContent) {\r\n renderContent(item.reasoningContent, 'reasoning');\r\n }\r\n if (item.content) {\r\n renderContent(item.content, 'main');\r\n }\r\n });\r\n } catch (error) {\r\n console.error('数据更新渲染失败:', error);\r\n }\r\n });\r\n });\r\n }\r\n },\r\n { deep: true, immediate: true } // 深度监听并立即执行\r\n);\r\n\r\nconst openWebsocket = () => {\r\n if (!wsUrl) {\r\n throw new Error('wsUrl is required');\r\n }\r\n if (!token) {\r\n throw new Error('token is required');\r\n }\r\n // 与 AI 大模型对话\r\n let config = {\r\n token,\r\n wsUrl,\r\n };\r\n TouchChatRobot.value = new ChatRobot(config);\r\n\r\n // 设置监听事件\r\n // AI 对话成功回调\r\n TouchChatRobot.value &&\r\n TouchChatRobot.value.addListener('chatCrmSuccess', {\r\n msgCallback: chatCrmSuccess,\r\n statusCallback: () => {},\r\n });\r\n // AI 对话错误回调\r\n TouchChatRobot.value &&\r\n TouchChatRobot.value.addListener('onMessageError', {\r\n msgCallback: () => {},\r\n });\r\n // AI 对话连接错误回调\r\n TouchChatRobot.value &&\r\n TouchChatRobot.value.addListener('chatCrmError', {\r\n msgCallback: data => {\r\n console.log('AI 对话连接错误回调', data);\r\n },\r\n });\r\n TouchChatRobot.value.connect();\r\n};\r\n\r\nconst chatCrmSuccess = (data: any) => {\r\n if (data && data.chatType === 'response') {\r\n if (Array.isArray(data.chatInfo)) {\r\n // 获取大模型返回的对话\r\n let msgContentList = (data.chatInfo as ChatInfoItem[]).map(item => item.msgContent);\r\n let msgContent = '';\r\n if (msgContentList.length) {\r\n msgContent = msgContentList[0];\r\n }\r\n\r\n chatList.value.push({\r\n user: 'u',\r\n type: 'text',\r\n content: msgContent,\r\n });\r\n }\r\n }\r\n};\r\n\r\nconst openSSE = (userContent: string, insertIndex?: number, type?: number) => {\r\n if (isUnmounting.value) return;\r\n isChating.value = true;\r\n\r\n if (props.openSSECallback) {\r\n props.openSSECallback(FetchStream);\r\n return;\r\n }\r\n\r\n // 查找当前正在处理的AI消息ID\r\n const currentAiMessage = chatList.value.find(item => item.isChating);\r\n if (currentAiMessage) {\r\n currentAiMessage.isShowLike = true;\r\n currentAiMessage.isShowCopy = true;\r\n currentAiMessage.componentName = currentComponentName.value;\r\n }\r\n const chatId = currentAiMessage?.chatId || 'ai_' + crypto.randomUUID().replace(/-/gi, '');\r\n // 修复:使用独立变量存储AI回复内容,初始化为空\r\n let aiContent = currentAiMessage?.content || '';\r\n let thinkingContent = currentAiMessage?.thinkContent || '';\r\n let reasoningContent = currentAiMessage?.reasoningContent || '';\r\n let allAiContent = '';\r\n// console.log(currentComponentName.value, 'currentComponentName.value === TouchChat.vue === 360');\r\n\r\n // 如果是继续生成,则不需要添加新消息\r\n if (!currentAiMessage) {\r\n // 修改AI消息用户类型标识\r\n const chatItem: ChatMessage = {\r\n chatId: chatId,\r\n user: 'ai', // u:user, ai:ai\r\n type: 'text',\r\n isChating: true,\r\n content: '',\r\n thinkContent: '',\r\n reasoningContent: '',\r\n thinkStatus: 'thinking',\r\n thinkStartTime: Date.now(),\r\n isShowLike: true,\r\n isShowCopy: true,\r\n componentName: currentComponentName.value,\r\n // ...componentNameFn(),\r\n };\r\n // 根据插入位置决定添加方式\r\n if (insertIndex !== undefined && insertIndex <= chatList.value.length) {\r\n chatList.value.splice(insertIndex, 0, chatItem);\r\n } else {\r\n chatList.value.push(chatItem);\r\n }\r\n }\r\n currIndex.value = chatList.value.findIndex(ele => ele.chatId === chatId);\r\n fetchStream.value = new FetchStream({\r\n url: action ?? 'https://api.apiyi.com/v1/chat/completions',\r\n requestInit: {\r\n headers: headers ?? {\r\n 'Content-Type': 'application/json',\r\n Authorization: 'Bearer sk-fe9MtODvds8wpzz05f3417Fe3e9641C1926e6fC588425dEd',\r\n },\r\n body: !isDeepSeek\r\n ? JSON.stringify(body)\r\n : JSON.stringify({\r\n model: enableDeepThinking.value ? 'deepseek-reasoner' : 'deepseek-v3',\r\n messages: [\r\n {\r\n role: 'user',\r\n content: userContent, // 使用传入的用户内容参数\r\n },\r\n ],\r\n stream: true,\r\n }),\r\n },\r\n onmessage: (line: string) => {\r\n // console.log('onmessage === TouchChat.vue', line,typeof line);\r\n if (isUnmounting.value) return;\r\n let dataString = '';\r\n // let task_process_trace_flag = false;\r\n if (line.length) {\r\n if (line.includes('data:')) {\r\n dataString = line.split('data:')[1];\r\n } else if (line.startsWith('{') && line.endsWith('}')) {\r\n dataString = line;\r\n }\r\n\r\n // if(line.includes('event:task_process_trace')){\r\n // \ttask_process_trace_flag = true;\r\n // }\r\n }\r\n\r\n dataString = dataString.trim();\r\n\r\n if (dataString && dataString.startsWith('{') && dataString.endsWith('}')) {\r\n const result = JSON.parse(dataString);\r\n\r\n // const newAiMessage = chatList.value.find(ele => ele.chatId === chatId);\r\n const newAiMessage = chatList.value[currIndex.value];\r\n\r\n if (isDeepSeek) {\r\n // 分离普通内容存储\r\n if (result?.choices?.[0]?.delta?.content) {\r\n aiContent += result.choices[0].delta.content;\r\n // 当content有值且思考状态为thinking时,标记为completed并计算时间\r\n if (newAiMessage?.thinkStatus === 'thinking') {\r\n newAiMessage.thinkStatus = 'completed';\r\n newAiMessage.thinkTime = Date.now() - (newAiMessage.thinkStartTime || Date.now());\r\n }\r\n }\r\n\r\n // 独立存储思考内容\r\n if (result?.choices?.[0]?.delta?.reasoning_content) {\r\n reasoningContent += result.choices[0].delta.reasoning_content;\r\n // 当reasoningContent有值且尚未开始计时时,标记为thinking并记录开始时间\r\n if (!newAiMessage?.thinkStatus) {\r\n newAiMessage.thinkStatus = 'thinking';\r\n newAiMessage.thinkStartTime = Date.now();\r\n }\r\n }\r\n\r\n // 删除未使用的deep_thought处理代码\r\n // if (enableDeepThinking.value && result?.choices?.[0]?.delta?.deep_thought) {\r\n // deepThoughtContent += result.choices[0].delta.deep_thought;\r\n // }\r\n } else {\r\n if (aiChatType === 'Flow') {\r\n // 分离普通内容存储\r\n if (result?.message && result?.category === 'answer') {\r\n aiContent += result.message;\r\n }\r\n } else if (aiChatType === 'Intelligent') {\r\n // console.log(result, 'Intelligent');\r\n // && task_process_trace_flag\r\n if (result?.content && result?.category === 'task_stream_content') {\r\n aiContent += result.content;\r\n }\r\n if (result?.message && result?.category === 'answer') {\r\n allAiContent = result.message;\r\n // afterSendMessage(allAiContent);\r\n }\r\n }\r\n }\r\n\r\n // 传递分离后的数据进行渲染\r\n if (chatList.value.some(ele => ele.chatId === chatId)) {\r\n enqueueRender({\r\n mainContent: aiContent,\r\n thinkContent: thinkingContent,\r\n reasoningContent: reasoningContent,\r\n });\r\n }\r\n if (type === 1) {\r\n scrollToBottom();\r\n }\r\n }\r\n },\r\n ondone: () => {\r\n nextTick(() => {\r\n isChating.value = false;\r\n if (isUnmounting.value) return;\r\n if (!isMounted.value) return;\r\n const index = chatList.value.findIndex(ele => ele.chatId === chatId);\r\n if (index !== -1 && chatList.value[index]) {\r\n chatList.value[index].isChating = false;\r\n chatList.value[index].componentName = currentComponentName.value;\r\n if (aiChatType === 'Intelligent' && allAiContent) {\r\n afterSendMessage(allAiContent);\r\n }\r\n // console.log('ondone === TouchChat.vue === chatContainer.value', chatContainer.value);\r\n // console.log(\r\n // 'ondone === TouchChat.vue === htmlContentRef.value[index]',\r\n // htmlContentRef.value[index]\r\n // );\r\n // console.log('ondone === 调用栈 ===', new Error().stack);\r\n // console.log('ondone === chatList.value ===', chatList.value);\r\n // if (htmlContentRef.value[index] && document.body.contains(htmlContentRef.value[index])) {\r\n // try {\r\n // if (\r\n // isMounted.value &&\r\n // chatContainer.value &&\r\n // document.body.contains(chatContainer.value) &&\r\n // type === 1\r\n // ) {\r\n // scrollToBottom();\r\n // }\r\n // } catch (error) {\r\n // console.error('nextTick 滚动操作失败:', error);\r\n // }\r\n // }\r\n\r\n // 等待渲染队列处理完毕再发送数据\r\n const waitForRenderComplete = () => {\r\n if (renderQueue.value.length === 0 && !isRendering.value) {\r\n // 确保 chatList 不为空才触发 sendMessage\r\n if (chatList.value.length > 0) {\r\n // emit('sendMessage', JSON.parse(JSON.stringify(chatList.value)));\r\n console.log('done!', isChating.value, chatList.value);\r\n }\r\n } else {\r\n requestAnimationFrame(waitForRenderComplete);\r\n }\r\n };\r\n waitForRenderComplete();\r\n\r\n // // 将 afterSendMessage 移到此处,确保 aiContent 已完全处理\r\n // afterSendMessage(aiContent);\r\n }\r\n });\r\n },\r\n onabort: () => {\r\n isChating.value = false;\r\n\t// console.log('onabort === TouchChat.vue === isUnmounting.value', isUnmounting.value);\r\n if (isUnmounting.value) return;\r\n\r\n const currentAiMessage = chatList.value[currIndex.value];\r\n const hasContent =\r\n currentAiMessage &&\r\n (currentAiMessage.content ||\r\n currentAiMessage.thinkContent ||\r\n currentAiMessage.reasoningContent);\r\n\r\n if (currentAiMessage) {\r\n\t\t// console.log('onabort === TouchChat.vue === currentAiMessage', currentAiMessage);\r\n // 如果正在思考中,设置状态为stopped\r\n if (currentAiMessage.thinkStatus === 'thinking') {\r\n currentAiMessage.thinkStatus = 'stopped';\r\n currentAiMessage.thinkTime = Date.now() - (currentAiMessage.thinkStartTime || Date.now());\r\n }\r\n\t// console.log('onabort === TouchChat.vue === hasContent', hasContent);\r\n if (!hasContent) {\r\n // 场景1: AI尚未回复,清除用户消息和对应AI消息\r\n const userMessageIndex = currIndex.value - 1;\r\n if (userMessageIndex >= 0 && chatList.value[userMessageIndex].user === 'u') {\r\n // 先移除AI消息\r\n chatList.value.splice(currIndex.value, 1);\r\n // 再移除用户消息\r\n chatList.value.splice(userMessageIndex, 1);\r\n } else {\r\n // 仅移除AI消息\r\n chatList.value.splice(currIndex.value, 1);\r\n }\r\n } else {\r\n // 场景2: AI已回复,保留内容并添加省略号\r\n // 创建新对象确保Vue的响应式系统能检测到变化\r\n const updatedAiMessage = {\r\n ...currentAiMessage,\r\n isChating: false,\r\n content: currentAiMessage.content ? currentAiMessage.content + '。。。' : '',\r\n thinkContent: currentAiMessage.thinkContent\r\n ? currentAiMessage.thinkContent + '。。。'\r\n : undefined,\r\n reasoningContent: currentAiMessage.reasoningContent\r\n ? currentAiMessage.reasoningContent + '。。。'\r\n : undefined,\r\n thinkStatus: currentAiMessage.thinkStatus as 'thinking' | 'completed' | 'stopped',\r\n };\r\n\r\n // 使用splice替换元素,确保响应式更新\r\n chatList.value.splice(currIndex.value, 1, updatedAiMessage);\r\n\r\n // 立即更新DOM\r\n nextTick(() => {\r\n renderContent(updatedAiMessage.thinkContent || '', 'thinking');\r\n renderContent(updatedAiMessage.reasoningContent || '', 'reasoning');\r\n renderContent(updatedAiMessage.content || '', 'main');\r\n\r\n // DOM更新后再触发保存事件\r\n emit('sendMessage', [...chatList.value]);\r\n });\r\n return;\r\n }\r\n }\r\n\r\n // 对于清除消息的情况,确保 chatList 不为空才触发保存\r\n if (chatList.value.length > 0) {\r\n emit('sendMessage', [...chatList.value]);\r\n }\r\n },\r\n // 添加onerror回调函数来捕获异常\r\n onerror: (response: Error | Response) => {\r\n if (isUnmounting.value) return;\r\n isChating.value = false;\r\n\r\n // 判断response的类型\r\n let errorMessage = '未知错误';\r\n if (response instanceof Error) {\r\n console.error('API请求错误:', response);\r\n errorMessage = response.message;\r\n } else if (response instanceof Response) {\r\n console.error('API请求错误, 响应状态:', response.status, response.statusText);\r\n errorMessage = `请求失败: ${response.status} ${response.statusText}`;\r\n }\r\n\r\n // 获取当前正在处理的AI消息\r\n const currentAiMessage = chatList.value[currIndex.value];\r\n if (currentAiMessage) {\r\n // 更新AI消息内容,添加红色叉叉和错误信息\r\n currentAiMessage.content = `<div style=\"color: red; display: flex; align-items: center;\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"16\" viewBox=\"0 0 15 16\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.5 15.5C11.6421 15.5 15 12.1421 15 8C15 3.85786 11.6421 0.5 7.5 0.5C3.35786 0.5 0 3.85786 0 8C0 12.1421 3.35786 15.5 7.5 15.5ZM9.7539 4.9506L10.5494 5.7461L8.2951 8.0001L10.5494 10.2539L9.7539 11.0494L7.5001 8.7951L5.2461 11.0494L4.4506 10.2539L6.7051 8.0001L4.4506 5.7461L5.2461 4.9506L7.5001 7.2051L9.7539 4.9506Z\" fill=\"#F93920\"/>\r\n</svg>${errorMessage}</div>`;\r\n currentAiMessage.isChating = false;\r\n currentAiMessage.componentName = '';\r\n currentAiMessage.isShowLike = false;\r\n currentAiMessage.isShowCopy = false;\r\n\r\n // 立即更新DOM\r\n nextTick(() => {\r\n renderContent(currentAiMessage.content || '', 'main');\r\n\r\n // DOM更新后触发保存事件\r\n emit('sendMessage', [...chatList.value]);\r\n });\r\n } else {\r\n // 如果没有当前AI消息,仍使用toast提示\r\n showToast(errorMessage, 'error', 3000);\r\n emit('sendMessage', [...chatList.value]);\r\n }\r\n },\r\n });\r\n};\r\n\r\nconst enqueueRender = (data: {\r\n mainContent: string;\r\n thinkContent: string;\r\n reasoningContent: string;\r\n}) => {\r\n if (isUnmounting.value || !isMounted.value) return;\r\n if (currIndex.value < 0 || currIndex.value >= chatList.value.length) return;\r\n renderQueue.value.push(data);\r\n if (!isRendering.value) {\r\n isRendering.value = true;\r\n processRenderQueue();\r\n }\r\n};\r\n\r\nconst processRenderQueue = () => {\r\n if (isUnmounting.value || !isMounted.value) {\r\n renderQueue.value = [];\r\n isRendering.value = false;\r\n return;\r\n }\r\n\r\n if (renderQueue.value.length === 0) {\r\n isRendering.value = false;\r\n return;\r\n }\r\n\r\n // 使用requestAnimationFrame优化渲染性能\r\n requestAnimationFrame(() => {\r\n const data = renderQueue.value.shift();\r\n if (data) {\r\n formatMarkdown(data);\r\n }\r\n processRenderQueue();\r\n });\r\n};\r\n\r\nonBeforeUnmount(() => {\r\n // 仅在组件确实需要卸载时执行清理逻辑\r\n if (!isUnmounting.value) {\r\n isUnmounting.value = true;\r\n // console.log('onBeforeUnmount === abort === TouchChat.vue === 668');\r\n if (fetchStream.value) {\r\n fetchStream.value.abort();\r\n }\r\n if (TouchChatRobot.value) {\r\n TouchChatRobot.value.close();\r\n TouchChatRobot.value = undefined;\r\n }\r\n isMounted.value = false;\r\n renderQueue.value = [];\r\n // 清空所有 ref 数组,避免内存泄漏\r\n htmlContentRef.value = [];\r\n thinkingContentRef.value = [];\r\n }\r\n});\r\n\r\nconst formatMarkdown = (data: {\r\n mainContent: string;\r\n thinkContent: string;\r\n reasoningContent: string;\r\n}) => {\r\n if (!isMounted.value) return;\r\n if (currIndex.value < 0 || currIndex.value >= chatList.value.length) return;\r\n\r\n const currentItem = chatList.value[currIndex.value];\r\n // 将直接替换改为追加操作\r\n currentItem.thinkContent = data.thinkContent;\r\n currentItem.content = data.mainContent;\r\n currentItem.reasoningContent = data.reasoningContent;\r\n\r\n nextTick(() => {\r\n const thinkingContainer = thinkingContentRef.value[currIndex.value];\r\n if (thinkingContainer) {\r\n if (data.thinkContent) {\r\n renderContent(data.thinkContent, 'thinking');\r\n thinkingContainer.style.display = 'block';\r\n thinkingContainer.style.visibility = 'visible';\r\n } else {\r\n thinkingContainer.style.display = 'none';\r\n thinkingContainer.style.visibility = 'hidden';\r\n }\r\n }\r\n\r\n const reasoningContainer = reasoningContentRef.value[currIndex.value];\r\n if (reasoningContainer) {\r\n if (data.reasoningContent) {\r\n renderContent(data.reasoningContent, 'reasoning');\r\n reasoningContainer.style.display = 'block';\r\n reasoningContainer.style.visibility = 'visible';\r\n } else {\r\n reasoningContainer.style.display = 'none';\r\n reasoningContainer.style.visibility = 'hidden';\r\n }\r\n }\r\n\r\n renderContent(data.mainContent, 'main');\r\n // if (data.mainContent.trim()) {\r\n // renderContent(data.mainContent, 'main');\r\n // }\r\n\r\n // if (isMounted.value) {\r\n // scrollToBottom();\r\n // }\r\n });\r\n};\r\n\r\n// 在attachCopyButtons函数中调用showToast\r\nconst attachCopyButtons = (container: HTMLElement) => {\r\n const codeBlocks = container.querySelectorAll('pre code');\r\n codeBlocks.forEach(codeBlock => {\r\n const pre = codeBlock.parentElement;\r\n if (pre) {\r\n const copyBtn = document.createElement('button');\r\n copyBtn.className = 'copy-code-btn';\r\n copyBtn.textContent = '复制';\r\n copyBtn.addEventListener('click', () => {\r\n const code = codeBlock.textContent || '';\r\n navigator.clipboard.writeText(code).then(() => {\r\n // 调用toast提示\r\n showToast('复制成功', 'info', 2000);\r\n copyBtn.textContent = '已复制';\r\n setTimeout(() => {\r\n copyBtn.textContent = '复制';\r\n }, 2000);\r\n });\r\n }); // 修复:移动事件监听器闭合括号到此处\r\n\r\n // 将DOM操作移出事件回调\r\n pre.style.position = 'relative';\r\n pre.appendChild(copyBtn);\r\n }\r\n }); // 修复:添加缺失的forEach回调闭合括号\r\n};\r\n\r\n// 新增统一渲染函数\r\nconst renderContent = (\r\n content: string,\r\n type: 'main' | 'thinking' | 'reasoning',\r\n index?: number\r\n) => {\r\n const renderIndex = index ?? currIndex.value;\r\n if (renderIndex < 0 || renderIndex >= chatList.value.length) return;\r\n\r\n // 根据类型选择不同的ref数组和处理函数\r\n const refArrays = {\r\n main: htmlContentRef,\r\n thinking: thinkingContentRef,\r\n reasoning: reasoningContentRef,\r\n };\r\n const processors = {\r\n main: (content: string) => markdown?.render(content, { isReasoning: false }) || '',\r\n thinking: (content: string) => markdown?.render(content, { isReasoning: false }) || '',\r\n reasoning: (content: string) => markdown?.render(content, { isReasoning: false }) || '',\r\n };\r\n\r\n const container = refArrays[type].value[renderIndex];\r\n if (!container) return;\r\n\r\n // 统一的内容处理和渲染逻辑\r\n container.innerHTML = processors[type](content || '');\r\n attachCopyButtons(container);\r\n};\r\n\r\nconst sendMessage = (item: any) => {\r\n inputValue.value = item.name || '';\r\n handleBeforeSend();\r\n};\r\n\r\nconst sendMessageInject = inject<(value: string) => void>('handleSend', () => {\r\n console.warn('未提供handleSend函数');\r\n});\r\n\r\nconst beforeSend = inject<() => { result: boolean; componentName?: string }>('beforeSend', () => ({\r\n result: true,\r\n}));\r\n\r\nconst handleBeforeSend = () => {\r\n// console.log('handleBeforeSend === TouchChat.vue === 773', beforeSend());\r\n // && !isDeepSeek\r\n if (beforeSend) {\r\n const fn = beforeSend();\r\n if (fn && typeof (fn as any).then === 'function') {\r\n (Promise.resolve(fn) as Promise<{ result: boolean; componentName?: string }>)\r\n .then(res => {\r\n // console.log(res, 'res===handleBeforeSend === TouchChat.vue === 781');\r\n if (res.result) {\r\n currentComponentName.value = res.componentName || '';\r\n handleSend();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n } else {\r\n if (fn.result) {\r\n currentComponentName.value = fn.componentName || '';\r\n handleSend();\r\n }\r\n }\r\n }\r\n // else if (isDeepSeek) {\r\n // \tcurrentComponentName.value = beforeSend()?.componentName || '';\r\n // handleSend();\r\n // }\r\n};\r\n\r\nconst handleSend = () => {\r\n if (isChating.value || !inputValue.value.trim()) return;\r\n const userChatId = 'user_' + crypto.randomUUID().replace(/-/gi, '');\r\n\r\n // 创建标准化用户消息(修复未定义messageUtils问题)\r\n const userMessage: ChatMessage = {\r\n chatId: userChatId, // 添加唯一chatId\r\n user: 'u',\r\n type: 'text',\r\n content: inputValue.value,\r\n // isShowAvatar: true,\r\n // avatar: props.userAvatar,\r\n };\r\n sendMessageInject(inputValue.value);\r\n // 发送用户消息后立即插入到聊天列表\r\n chatList.value.push(userMessage);\r\n const index = chatList.value.length - 1;\r\n\r\n // 修复:使用nextTick确保DOM更新后再渲染\r\n nextTick(() => {\r\n renderContent(userMessage.content, 'main', index);\r\n // 确保滚动到底部\r\n scrollToBottom();\r\n });\r\n\r\n // 继续处理AI回复逻辑\r\n if (connectionType === 'SSE') {\r\n openSSE(inputValue.value, index + 1, 1);\r\n } else if (connectionType === 'Websocket') {\r\n let chatInfo = [\r\n {\r\n type: 'text',\r\n msgContent: inputValue.value,\r\n },\r\n ];\r\n TouchChatRobot.value?.send(chatInfo);\r\n // ChatRobot.send(chatInfo)\r\n }\r\n\r\n inputValue.value = '';\r\n};\r\n\r\nconst handleStop = () => {\r\n// console.log('handleStop === abort === TouchChat.vue === 868');\r\n // 停止流请求\r\n fetchStream.value?.abort();\r\n\r\n // 查找当前正在回复的AI消息\r\n const aiIndex = chatList.value.findIndex(item => item.isChating);\r\n if (aiIndex !== -1) {\r\n const currentAiMessage = chatList.value[aiIndex];\r\n\r\n // 检查AI是否已回复内容\r\n if (currentAiMessage.content?.trim()) {\r\n // 修复:传递索引参数确保正确渲染\r\n nextTick(() => {\r\n // 已回复内容,添加省略号并停止\r\n chatList.value[aiIndex] = {\r\n ...currentAiMessage,\r\n content: currentAiMessage.content + '...',\r\n isChating: false,\r\n };\r\n renderContent(chatList.value[aiIndex].content, 'main', aiIndex);\r\n emit('sendMessage', chatList.value);\r\n });\r\n } else {\r\n // 未开始回复,移除对应的用户消息和AI消息\r\n if (aiIndex > 0) {\r\n const userMessageIndex = aiIndex - 1;\r\n // 确认前一条是用户消息\r\n if (chatList.value[userMessageIndex].user === 'u') {\r\n chatList.value.splice(userMessageIndex, 2);\r\n } else {\r\n chatList.value.splice(aiIndex, 1);\r\n }\r\n } else {\r\n chatList.value.splice(aiIndex, 1);\r\n }\r\n }\r\n } else {\r\n // 没有找到正在回复的AI消息,移除最后一条用户消息\r\n const lastIndex = chatList.value.length - 1;\r\n if (lastIndex >= 0 && chatList.value[lastIndex].user === 'u') {\r\n chatList.value.pop();\r\n }\r\n }\r\n\r\n isChating.value = false;\r\n};\r\nconst scrollToBottom = throttle(500, () => {\r\n const endEl = document.querySelector('.to-chat-item:last-child');\r\n if (endEl?.scrollIntoView) {\r\n endEl.scrollIntoView({ behavior: 'smooth', block: 'end', inline: 'nearest' });\r\n }\r\n});\r\n\r\n// 统一的事件处理函数\r\nconst handleMessageAction = (\r\n action: 'copy' | 'edit' | 'retry' | 'like' | 'dislike' | 'delete',\r\n index: number\r\n) => {\r\n const message = chatList.value[index];\r\n if (!message) return;\r\n\r\n switch (action) {\r\n case 'copy':\r\n navigator.clipboard.writeText(message.content).then(() => {\r\n // 修复:使用工具函数显示提示\r\n showToast('复制成功', 'info');\r\n });\r\n break;\r\n case 'edit':\r\n // 启用编辑模式\r\n if (message) {\r\n message.isEditing = true;\r\n message.editContent = message.content; // 初始化编辑内容\r\n }\r\n break;\r\n case 'delete':\r\n messageUtils.deleteMessageChain(index);\r\n emit('sendMessage', chatList.value);\r\n break;\r\n case 'retry': {\r\n // 获取当前AI消息和对应的用户消息\r\n const aiMessage = chatList.value[index];\r\n const userMessageIndex = index - 1;\r\n const userMessage = chatList.value[userMessageIndex];\r\n\r\n if (userMessage && userMessage.user === 'u') {\r\n // 创建用户消息内容副本\r\n\r\n const updatedAiMessage = {\r\n ...aiMessage,\r\n content: '',\r\n thinkContent: '',\r\n reasoningContent: '',\r\n isLiked: false,\r\n isDisliked: false,\r\n isChating: true,\r\n // 保留其他必要属性\r\n chatId: aiMessage.chatId,\r\n user: aiMessage.user,\r\n type: aiMessage.type,\r\n // isShowAvatar: aiMessage.isShowAvatar,\r\n // avatar: aiMessage.avatar,\r\n thinkStatus: 'completed',\r\n thinkStartTime: 0,\r\n thinkEndTime: 0,\r\n };\r\n chatList.value.splice(index, 1, updatedAiMessage);\r\n\r\n // 新增:使用nextTick确保DOM更新后再发起请求\r\n nextTick(() => {\r\n if (htmlContentRef.value[index]) htmlContentRef.value[index].innerHTML = '';\r\n if (thinkingContentRef.value[index]) thinkingContentRef.value[index].innerHTML = '';\r\n if (reasoningContentRef.value[index]) reasoningContentRef.value[index].innerHTML = '';\r\n // 使用用户内容副本调用openSSE,传入当前索引更新现有消息\r\n setTimeout(() => {\r\n openSSE(userMessage.content || '', index, 2);\r\n }, 50);\r\n });\r\n }\r\n break;\r\n }\r\n case 'like':\r\n messageUtils.updateMessage(index, {\r\n isLiked: true,\r\n isDisliked: false,\r\n });\r\n break;\r\n case 'dislike':\r\n messageUtils.updateMessage(index, {\r\n isLiked: false,\r\n isDisliked: true,\r\n });\r\n break;\r\n }\r\n};\r\n\r\n// 新增消息管理工具函数\r\nconst messageUtils = {\r\n // 更新消息内容\r\n updateMessage: (index: number, updates: Partial<ChatMessage>) => {\r\n if (index < 0 || index >= chatList.value.length) return;\r\n chatList.value.splice(index, 1, { ...chatList.value[index], ...updates });\r\n },\r\n\r\n // 删除消息及其后续AI回复\r\n deleteMessageChain: (index: number) => {\r\n if (index < 0 || index >= chatList.value.length) return;\r\n const nextIndex = index + 1;\r\n const deleteCount =\r\n nextIndex < chatList.value.length && chatList.value[nextIndex].user === 'ai' ? 2 : 1;\r\n chatList.value.splice(index, deleteCount);\r\n },\r\n\r\n // 创建标准化消息对象\r\n createStandardMessage: (data: Partial<ChatMessage>): ChatMessage => ({\r\n chatId: data.chatId || 'ai_' + crypto.randomUUID().replace(/-/gi, ''),\r\n user: data.user || 'ai',\r\n type: data.type || 'text',\r\n content: data.content || '',\r\n // isShowAvatar: data.isShowAvatar ?? true,\r\n // avatar: data.avatar || (data.user === 'u' ? props.userAvatar : props.aiAvatar),\r\n isChating: data.isChating ?? false,\r\n thinkContent: data.thinkContent || '',\r\n reasoningContent: data.reasoningContent || '',\r\n isLiked: data.isLiked ?? false,\r\n isDisliked: data.isDisliked ?? false,\r\n isEditing: data.isEditing ?? false,\r\n editContent: data.editContent ?? '',\r\n }),\r\n};\r\n\r\nonMounted(() => {\r\n init();\r\n isMounted.value = true;\r\n});\r\n\r\n// 添加编辑保存功能\r\nconst saveEdit = (index: number, newContent: string) => {\r\n const message = chatList.value[index];\r\n if (!message || !message.editContent) return;\r\n\r\n // if (message.editContent !== undefined) {\r\n // 创建新对象触发Vue响应式更新\r\n chatList.value[index] = {\r\n ...message,\r\n content: newContent,\r\n isEditing: false,\r\n editContent: undefined,\r\n };\r\n // 显式调用渲染函数\r\n nextTick(() => {\r\n renderContent(message.content, 'main', index);\r\n });\r\n // }\r\n\r\n // 删除对应的AI回复(如果存在)\r\n if (index + 1 < chatList.value.length && chatList.value[index + 1].user === 'ai') {\r\n chatList.value.splice(index + 1, 1);\r\n }\r\n\r\n // 调用openSSE获取新的AI回复,插入到用户消息之后\r\n openSSE(newContent, index + 1);\r\n\r\n // 触发保存事件\r\n emit('sendMessage', chatList.value);\r\n};\r\n\r\nconst cancelEdit = (index: number) => {\r\n const message = chatList.value[index];\r\n if (!message) return;\r\n\r\n // 关闭编辑模式并清空编辑内容\r\n message.isEditing = false;\r\n message.editContent = '';\r\n // 添加nextTick确保DOM正确切换回查看模式\r\n nextTick(() => {\r\n renderContent(message.content, 'main', index);\r\n });\r\n};\r\nexport type { ChatMessage };\r\n</script>\r\n\r\n<!-- <style>\r\n@import '../../style/ChatView.less';\r\n</style> -->\r\n"],"names":["currentAiMessage","content","action","_createElementVNode","_createCommentVNode","_createElementBlock","_renderSlot","_createVNode","_openBlock","_Fragment","_renderList","_createBlock","_withCtx"],"mappings":"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"}
1
+ {"version":3,"file":"TouchChat.vue2.mjs","sources":["../../../../../../../packages/components/touchchat/src/AiChat/TouchChat.vue"],"sourcesContent":["<template>\n\t<div class=\"touchchat-main\" @dragover.prevent @dragenter.prevent=\"handleDragEnter\" @dragleave=\"handleDragLeave\" @drop.prevent=\"handleDrop\">\n\t\t<div ref=\"chatContainer\" class=\"touchchat-dialog\" @scroll=\"handleScroll\">\n\t\t\t<slot name=\"top\"> </slot>\n\t\t\t<div v-if=\"chatList.length === 0\" class=\"touchchat-welcome\">\n\t\t\t\t<slot name=\"welcome\">\n\t\t\t\t\t<HelloChat @send-message=\"sendMessage\" />\n\t\t\t\t</slot>\n\t\t\t</div>\n\t\t\t<div class=\"touchchat-dialog-content\">\n\t\t\t\t<template v-for=\"(item, index) in chatList\" :key=\"item.chatId\">\n\t\t\t\t\t<UserMessage v-if=\"item.user === 'u'\" :item=\"item\" :index=\"index\" @user-message-file-list=\"itemUploadFile\" @copy=\"handleMessageAction(MessageAction.COPY, index)\" @edit=\"handleMessageAction(MessageAction.EDIT, index)\" @delete=\"handleMessageAction(MessageAction.DELETE, index)\" @save-edit=\"saveEdit\" @cancel-edit=\"cancelEdit(index)\">\n\t\t\t\t\t\t<template #userAvatar>\n\t\t\t\t\t\t\t<slot name=\"userAvatar\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #fn>\n\t\t\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</UserMessage>\n\t\t\t\t\t<AiMessage v-else :item=\"item\" :index=\"index\" :enable-deep-thinking=\"enableDeepThinking\" :has-retry=\"activeAgentsName || scripts.length > 0 ? false : true\" @copy=\"handleMessageAction(MessageAction.COPY, index)\" @retry=\"handleMessageAction(MessageAction.RETRY, index)\" @like=\"handleMessageAction(MessageAction.LIKE, index)\" @dislike=\"handleMessageAction(MessageAction.DISLIKE, index)\" @content-rendered=\"attachCopyButtons\" @complete-rendered=\"chatId => completeRendered(chatId)\" @toggle-sidebar=\"toggleSidebarClick\">\n\t\t\t\t\t\t<template #aimsg>\n\t\t\t\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #msg>\n\t\t\t\t\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #aiAvatar>\n\t\t\t\t\t\t\t<slot name=\"aiAvatar\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #fn>\n\t\t\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template #extendsFn>\n\t\t\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</AiMessage>\n\t\t\t\t</template>\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-if=\"$slots.shortcut\" class=\"touchchat-edit-shortcut\">\n\t\t\t<slot name=\"shortcut\"></slot>\n\t\t</div>\n\t\t<slot name=\"edit\">\n\t\t\t<ChatInput ref=\"ChatInputRef\" v-model:input-value=\"inputValue\" v-model:enable-deep-thinking=\"enableDeepThinking\" :is-chating=\"isChating\" @send=\"handleBeforeSend\" @stop=\"handleStop\" @toggle-deep-thinking=\"(val: boolean) => (enableDeepThinking = val)\" @module-info=\"updateModule\"> </ChatInput>\n\t\t</slot>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport UserMessage from './UserMessage.vue'\nimport AiMessage from './AiMessage.vue'\nimport ChatInput from './ChatInput.vue'\nimport HelloChat from '../../component/HelloChat.vue'\nimport { ref, onMounted, onBeforeUnmount, nextTick, inject, watch, provide } from 'vue'\nimport { throttle } from 'throttle-debounce'\nimport { FetchStream } from '../../utils/fetchStream.ts'\nimport { ChatRobot } from '../../utils/chatRobot.ts'\nimport markdown from '../../utils/markdown.ts'\nimport { showToast } from '../../utils/tools.ts'\nimport { MessageAction, type ChatMessage, type AgentsItem, type Script, type ModuleItem, type FileItem, type RenderData, ThinkStatus } from './Chat/TouchChat.ts'\n\n// 组件属性和注入\nconst emit = defineEmits(['sendMessage', 'toggleSidebar', 'beforeSendMessage'])\nconst scripts = inject<any[]>('scripts', [])\nconst activeScript = ref<Script | null>(null)\n\ninterface ResultItem {\n\tallAiContent?: string\n\t[key: string]: any\n}\nconst resultItem = ref<ResultItem | null>(null)\nconst unmatchText = inject<string>('unmatchText', '您的消息未匹配到任何内容')\nconst modules = inject<(string | ModuleItem)[]>('modules', [])\nconst afterSend = inject<(result: object) => void>('afterSend', () => {\n\tconsole.warn('未提供afterSend函数')\n})\nconst sendMessageInject = inject<(value: string, fileList?: any[]) => void>('send', () => {\n\tconsole.warn('未提供handleSend函数')\n})\nconst beforeSend = inject<() => { result: boolean; componentName?: string }>('beforeSend', () => ({\n\tresult: true,\n\tcomponentName: ''\n}))\n\nconst bottom = inject<() => void>('bottom', () => {\n\tconsole.warn('未提供bottom函数')\n})\n\nconst stop = inject<(item: ChatMessage, index: number) => void>('stop', () => {\n\tconsole.warn('未提供stop函数')\n})\n\n// 组件属性\nconst props = defineProps({\n\tvalue: {\n\t\ttype: Array as () => ChatMessage[],\n\t\tdefault: () => []\n\t}\n})\n\n// 组件状态\nconst chatContainer = ref<HTMLElement | null>(null)\nconst htmlContentRef = ref<(HTMLElement | null)[]>([])\nconst thinkingContentRef = ref<(HTMLElement | null)[]>([])\nconst reasoningContentRef = ref<(HTMLElement | null)[]>([])\nconst isMounted = ref(false)\nconst isChating = ref(false)\nconst inputValue = ref('')\nconst enableDeepThinking = ref(false)\nconst chatList = ref<ChatMessage[]>([])\nconst renderQueue = ref<RenderData[]>([])\nconst isRendering = ref(false)\nconst currIndex = ref(0)\nconst fetchStream = ref<InstanceType<typeof FetchStream> | null>(null)\nconst TouchChatRobot = ref<ChatRobot>()\nconst isUnmounting = ref(false)\nconst currentComponentName = ref('')\nconst fileData = ref<FileItem[]>([])\nconst activeAgentsName = ref<string>('')\nconst moduleInfo = ref<ModuleItem>(modules[0] as ModuleItem)\nconst ChatInputRef = ref<InstanceType<typeof ChatInput> | null>(null)\nconst isDragging = ref(false)\nconst typeFlag = ref('')\n\n// 消息处理器状态\ninterface MessageProcessor {\n\tmessageQueue: ChatMessage[]\n\tisProcessing: boolean\n\tcurrentMessage: ChatMessage | null\n\tprocessNextMessage: () => void\n\thandleMessageComplete: (chatId: string) => void\n}\nconst currentMessageProcessor = ref<MessageProcessor | null>(null)\n\nwatch(\n\t() => activeAgentsName,\n\t(val: any) => {\n\t\tif (!val) {\n\t\t\tactiveAgentsName.value = localStorage.getItem('activeAgentsName') as string\n\t\t}\n\t},\n\t{ immediate: true }\n)\n\n// 消息管理工具函数\nconst messageUtils = {\n\tupdateMessage: (index: number, updates: Partial<ChatMessage>): void => {\n\t\tif (index < 0 || index >= chatList.value.length) return\n\t\tchatList.value.splice(index, 1, { ...chatList.value[index], ...updates })\n\t\tnextTick(() => {\n\t\t\tconst message = chatList.value[index]\n\t\t\tif (message) {\n\t\t\t\trenderContent(message.content, 'main', index)\n\t\t\t\tif (message.thinkContent) {\n\t\t\t\t\trenderContent(message.thinkContent, 'thinking', index)\n\t\t\t\t}\n\t\t\t\tif (message.reasoningContent) {\n\t\t\t\t\trenderContent(message.reasoningContent, 'reasoning', index)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t},\n\n\tdeleteMessageChain: (index: number): void => {\n\t\tif (index < 0 || index >= chatList.value.length) return\n\t\tif (chatList.value[index].user === 'u') {\n\t\t\tlet deleteCount = 1\n\t\t\tfor (let i = index + 1; i < chatList.value.length; i++) {\n\t\t\t\tif (chatList.value[i].user === 'ai') {\n\t\t\t\t\tdeleteCount++\n\t\t\t\t} else {\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tchatList.value.splice(index, deleteCount)\n\t\t} else {\n\t\t\tchatList.value.splice(index, 1)\n\t\t}\n\t},\n\n\tcreateStandardMessage: (data: Partial<ChatMessage>): ChatMessage => ({\n\t\t// chatId: data.chatId || 'ai_' + crypto.randomUUID().replace(/-/gi, ''),\n\t\tchatId: data.chatId || 'ai_' + Math.random().toString(36).slice(2).padEnd(10, '0').slice(0, 10),\n\t\tuser: data.user || 'ai',\n\t\ttype: data.type || 'text',\n\t\tcontent: data.content || '',\n\t\tisChating: data.isChating ?? false,\n\t\tthinkContent: data.thinkContent || '',\n\t\treasoningContent: data.reasoningContent || '',\n\t\tisLiked: data.isLiked ?? false,\n\t\tisDisliked: data.isDisliked ?? false,\n\t\tisEditing: data.isEditing ?? false,\n\t\teditContent: data.editContent ?? ''\n\t})\n}\n\nconst update = (index: number, message: object) => {\n\tchatList.value[index] = { ...chatList.value[index], ...message }\n\tconsole.log('update', chatList.value[index])\n}\n\nconst markdownToHtml = (markdownContent: string): string => {\n\t// 使用现有的 markdown 渲染器\n\treturn markdown?.render(markdownContent, { isReasoning: false }) || ''\n}\n\nconst updateModule = (info: ModuleItem) => {\n\tmoduleInfo.value = info\n}\n\nconst handleAgentSelect = (item: AgentsItem) => {\n\tlocalStorage.setItem('activeAgentsName', item.name)\n\tconst aiMessage = item.intro\n\tmessageUtils.updateMessage(0, {\n\t\tcontent: '',\n\t\tisChating: false\n\t})\n\tsimulateStreamOutput(0, aiMessage)\n}\n\nconst completeRendered = (chatId: string) => {\n\tconsole.log('completeRendered', '渲染完成', chatId)\n\t// 调用消息处理器的handleMessageComplete方法处理下一条消息\n\tif (currentMessageProcessor.value) {\n\t\tcurrentMessageProcessor.value.handleMessageComplete(chatId)\n\t}\n}\n\nconst toggleSidebarClick = (item: ChatMessage, index: number) => {\n\temit('toggleSidebar', item, index)\n}\n// 初始化函数\nconst init = (): void => {\n\ttry {\n\t\tif (Array.isArray(props.value) && props.value.length && !scripts.length) {\n\t\t\tchatList.value = props.value.map((item: any) => ({\n\t\t\t\t...item,\n\t\t\t\tcontent: item.thinkContent ? item.content || '' : item.content || '',\n\t\t\t\tthinkContent: item.thinkContent || ''\n\t\t\t}))\n\n\t\t\tnextTick(() => {\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\tif (activeAgentsName.value && chatList.value.length > 0 && chatList.value[0].user === 'ai') {\n\t\t\t\t\t\tconst aiMessage = chatList.value[0]\n\t\t\t\t\t\tmessageUtils.updateMessage(0, {\n\t\t\t\t\t\t\tcontent: '',\n\t\t\t\t\t\t\tisChating: true\n\t\t\t\t\t\t})\n\t\t\t\t\t\tsimulateStreamOutput(0, aiMessage.content)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// index\n\t\t\t\t\t\tchatList.value.forEach((item: any) => {\n\t\t\t\t\t\t\tif (item.thinkContent) {\n\t\t\t\t\t\t\t\trenderContent(item.thinkContent, 'thinking')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (item.reasoningContent) {\n\t\t\t\t\t\t\t\trenderContent(item.reasoningContent, 'reasoning')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (item.content) {\n\t\t\t\t\t\t\t\trenderContent(item.content, 'main')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\t// 确保初始化渲染完成后滚动到底部\n\t\t\t\t\t\tnextTick(() => {\n\t\t\t\t\t\t\tscrollToBottom()\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\t} catch (error) {\n\t\tconsole.error('初始化失败:', error)\n\t}\n}\n\nconst onScrollToBottom = () => {\n\t// console.log('滚动条已触底')\n\tbottom()\n}\n\n// 使用节流包装触底处理函数,这里设置 300ms 内只触发一次 , { noTrailing: true }\nconst throttledScrollToBottom = throttle(300, onScrollToBottom)\n\n// 处理滚动事件\nconst handleScroll = () => {\n\tif (!chatContainer.value) return\n\n\tconst { scrollTop, scrollHeight, clientHeight } = chatContainer.value\n\t// 判断是否滚动到底部\n\tif (scrollTop + clientHeight >= scrollHeight) {\n\t\tthrottledScrollToBottom()\n\t}\n}\n\nconst simulateStreamOutput = (aiIndex: number, msg: string | ChatMessage, callback?: () => void) => {\n\tconst message: string = typeof msg === 'string' ? msg : msg.content\n\tconst componentName = typeof msg === 'string' ? '' : msg.needSequenceProcessing ? msg.needSequenceType : ''\n\tconst isNeedSequenceProcessing = typeof msg === 'string' ? false : msg.needSequenceProcessing\n\tconst fn = () => {\n\t\tclearInterval(interval)\n\t\temit('sendMessage', [...chatList.value])\n\t\tif (componentName) {\n\t\t\tchatList.value[aiIndex].componentName = componentName\n\t\t}\n\t\tmessageUtils.updateMessage(aiIndex, {\n\t\t\tisChating: false\n\t\t})\n\t\t// 确保最终渲染完成后滚动到底部\n\t\tnextTick(() => {\n\t\t\trenderContent(message, 'main', aiIndex)\n\t\t\tnextTick(() => {\n\t\t\t\tscrollToBottom()\n\t\t\t\t// 对于需要序列处理的消息,流式输出完成后不自动处理下一条\n\t\t\t\t// 而是等待组件渲染完成后通过completeRendered触发\n\t\t\t\tif (!isNeedSequenceProcessing && callback) {\n\t\t\t\t\tcallback()\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n\tlet index = 0\n\tconst interval = setInterval(() => {\n\t\tif (index < message.length) {\n\t\t\t// 流式更新时也需要正确渲染和滚动\n\t\t\tconst newContent = message\n\t\t\tmessageUtils.updateMessage(aiIndex, {\n\t\t\t\tcontent: newContent\n\t\t\t})\n\t\t\t// 确保DOM更新后渲染内容并滚动\n\t\t\tnextTick(() => {\n\t\t\t\trenderContent(newContent, 'main', aiIndex)\n\t\t\t\tnextTick(() => {\n\t\t\t\t\tscrollToBottom()\n\t\t\t\t})\n\t\t\t})\n\t\t\tindex++\n\t\t} else {\n\t\t\tfn()\n\t\t}\n\t}, 50)\n}\n\nconst findMatchingScriptContent = (userInput: string) => {\n\tif (!scripts || scripts.length === 0) return null\n\n\tconst agentName = activeAgentsName.value ? activeAgentsName.value : localStorage.getItem('activeAgentsName') || ''\n\tif (agentName) {\n\t\tconst agentMatchedScripts = scripts.filter((script: any) => {\n\t\t\treturn script.content.some((item: any) => item.agents === agentName)\n\t\t})\n\t\tif (agentMatchedScripts.length > 0) {\n\t\t\tconst fileTypeItems = agentMatchedScripts.flatMap((script: any) => script.content.filter((item: any) => item.file))\n\t\t\tconst fileTypes = fileTypeItems.map((item: any) => item.file)\n\t\t\tconst isFileTypeMatched = fileData.value.some((file: any) => {\n\t\t\t\tconst nameArr = file.name.split('.')\n\t\t\t\tconst name = nameArr[nameArr.length - 1]\n\t\t\t\tconst isMatched = fileTypes.includes(name)\n\t\t\t\treturn isMatched\n\t\t\t})\n\t\t\t// 存储匹配的脚本内容下标\n\t\t\tlet matchedScriptContentIndex = -1\n\t\t\tif (!activeScript.value && isFileTypeMatched) {\n\t\t\t\tactiveScript.value = agentMatchedScripts[0]\n\t\t\t}\n\t\t\t// 智能体匹配成功,检查用户消息中是否有 file 字段\n\t\t\tif (isFileTypeMatched) {\n\t\t\t\t// 遍历所有匹配的脚本\n\t\t\t\tfor (const script of agentMatchedScripts) {\n\t\t\t\t\tfor (let i = 0; i < script.content.length; i++) {\n\t\t\t\t\t\tconst item = script.content[i]\n\t\t\t\t\t\tif (item.file) {\n\t\t\t\t\t\t\tconst nameArr = fileData.value.map((file: any) => {\n\t\t\t\t\t\t\t\tconst fileExtArr = file.name.split('.')\n\t\t\t\t\t\t\t\treturn fileExtArr[fileExtArr.length - 1]\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tif (nameArr.includes(item.file)) {\n\t\t\t\t\t\t\t\tmatchedScriptContentIndex = i\n\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (matchedScriptContentIndex !== -1) {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst responses: any[] = []\n\t\t\t\tconst matchContent = agentMatchedScripts[0].content\n\t\t\t\tfor (let j = matchedScriptContentIndex + 1; j < matchContent.length; j++) {\n\t\t\t\t\tconst nextItem = matchContent[j]\n\t\t\t\t\tif (nextItem.user === 'i') {\n\t\t\t\t\t\tbreak // 遇到下一个用户消息,停止收集\n\t\t\t\t\t}\n\t\t\t\t\tif (nextItem.user === 'ai') {\n\t\t\t\t\t\tif (nextItem.data && nextItem.type) {\n\t\t\t\t\t\t\t// 合并 data 和 type 到一条响应中\n\t\t\t\t\t\t\tresponses.push({\n\t\t\t\t\t\t\t\t...nextItem,\n\t\t\t\t\t\t\t\t// 标记需要先流式输出文字,再调用组件\n\t\t\t\t\t\t\t\tneedSequenceProcessing: true\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresponses.push(nextItem)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst nextIndex = matchContent.findIndex((contentItem: any, index: number) => index > matchedScriptContentIndex && contentItem.user === 'i')\n\t\t\t\treturn {\n\t\t\t\t\tresponses,\n\t\t\t\t\tnextIndex: nextIndex === -1 ? matchContent.length : nextIndex\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// 智能体未匹配,返回未匹配默认内容\n\t\t\treturn {\n\t\t\t\tresponses: [\n\t\t\t\t\t{\n\t\t\t\t\t\tuser: 'ai',\n\t\t\t\t\t\tdata: unmatchText\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tnextIndex: -1\n\t\t\t}\n\t\t}\n\t}\n\n\t// 先尝试从当前激活的脚本中查找\n\tif (activeScript.value) {\n\t\tconst result = searchInScript(activeScript.value, userInput)\n\t\tif (result) {\n\t\t\treturn result\n\t\t}\n\t}\n\n\t// 若当前激活脚本未匹配,遍历所有脚本查找\n\tfor (const script of scripts) {\n\t\tconst result = searchInScript(script, userInput)\n\t\tif (result) {\n\t\t\tactiveScript.value = script\n\t\t\treturn result\n\t\t}\n\t}\n\n\treturn null\n}\n\nconst searchInScript = (script: Script, userInput: string) => {\n\tfor (let i = 0; i < script.content.length; i++) {\n\t\tconst item = script.content[i]\n\t\tif (item.user === 'i') {\n\t\t\t// 检查 data 是否匹配\n\t\t\tconst isDataMatch = item.data && userInput.includes(item.data)\n\t\t\t// 检查 alias 是否匹配\n\t\t\tlet isSubDataMatch = false\n\t\t\t// let isFileMatch = false\n\t\t\t// const isAgentsMatch = findMatchingAgents()\n\t\t\tif (item.alias) {\n\t\t\t\tif (Array.isArray(item.alias)) {\n\t\t\t\t\t// isSubDataMatch = item.alias.some((subItem: string) => userInput.includes(subItem))\n\t\t\t\t\tisSubDataMatch = item.alias.some((subItem: string) => subItem === userInput)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// if (item.file && (isAgentsMatch && findMatchingFile())) {\n\t\t\t// \tisFileMatch = true\n\t\t\t// }\n\n\t\t\tif (isDataMatch || isSubDataMatch) {\n\t\t\t\t// 收集 AI 回复\n\t\t\t\tconst responses: any[] = []\n\t\t\t\t// 从匹配位置的下一个元素开始遍历\n\t\t\t\tfor (let j = i + 1; j < script.content.length; j++) {\n\t\t\t\t\tconst nextItem = script.content[j]\n\t\t\t\t\tif (nextItem.user === 'i') {\n\t\t\t\t\t\tbreak // 遇到下一个用户消息,停止收集\n\t\t\t\t\t}\n\t\t\t\t\tif (nextItem.user === 'ai') {\n\t\t\t\t\t\tif (nextItem.data && nextItem.type) {\n\t\t\t\t\t\t\t// 合并 data 和 type 到一条响应中\n\t\t\t\t\t\t\tresponses.push({\n\t\t\t\t\t\t\t\t...nextItem,\n\t\t\t\t\t\t\t\t// 标记需要先流式输出文字,再调用组件\n\t\t\t\t\t\t\t\tneedSequenceProcessing: true\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresponses.push(nextItem)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// 查找下一个用户消息的索引\n\t\t\t\tconst nextIndex = script.content.findIndex((contentItem: any, index: number) => index > i && contentItem.user === 'i')\n\t\t\t\treturn { responses, nextIndex: nextIndex === -1 ? script.content.length : nextIndex }\n\t\t\t}\n\t\t} else if (item.user === 'ai') {\n\t\t\t// let agentName = ''\n\t\t\tscripts.forEach((script: any) => {\n\t\t\t\tif (script.content.length) {\n\t\t\t\t\tconst contents = script.content\n\t\t\t\t\tcontents.forEach((item: any) => {\n\t\t\t\t\t\tif (item.agents) {\n\t\t\t\t\t\t\tif (item.agents === activeAgentsName.value) {\n\t\t\t\t\t\t\t\tactiveScript.value = script\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\n\treturn null\n}\n\n// 监听props.value变化\nwatch(\n\t() => props.value,\n\t(newVal: any, oldVal: any) => {\n\t\tif (!Array.isArray(newVal)) return\n\t\tif (newVal.length && JSON.stringify(newVal) !== JSON.stringify(oldVal)) {\n\t\t\tchatList.value = newVal.map(item => ({\n\t\t\t\t...item,\n\t\t\t\tcontent: item.thinkContent ? item.content || '' : item.content || '',\n\t\t\t\tthinkContent: item.thinkContent || ''\n\t\t\t}))\n\n\t\t\tnextTick(() => {\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t// index\n\t\t\t\t\tchatList.value.forEach((item: any) => {\n\t\t\t\t\t\t// currIndex.value = index\n\t\t\t\t\t\tif (item.thinkContent) {\n\t\t\t\t\t\t\trenderContent(item.thinkContent, 'thinking')\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (item.reasoningContent) {\n\t\t\t\t\t\t\trenderContent(item.reasoningContent, 'reasoning')\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (item.content) {\n\t\t\t\t\t\t\trenderContent(item.content, 'main')\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t// 确保props.value变化时渲染完成后滚动到底部\n\t\t\t\t\tnextTick(() => {\n\t\t\t\t\t\tscrollToBottom()\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\t},\n\t{ deep: true, immediate: true }\n)\n\n// SSE连接\nconst openSSE = (userContent: string, insertIndex?: number, type?: number): void => {\n\ttry {\n\t\tif (isUnmounting.value) return\n\t\tisChating.value = true\n\n\t\tconst currentAiMessage = chatList.value.find((item: any) => item.isChating)\n\t\tif (currentAiMessage) {\n\t\t\tcurrentAiMessage.isShowLike = true\n\t\t\tcurrentAiMessage.isShowCopy = true\n\t\t\tcurrentAiMessage.componentName = currentComponentName.value\n\t\t}\n\t\t// const chatId = currentAiMessage?.chatId || 'ai_' + crypto.randomUUID().replace(/-/gi, '')\n\t\tconst chatId = currentAiMessage?.chatId || 'ai_' + Math.random().toString(36).slice(2).padEnd(10, '0').slice(0, 10)\n\t\tlet aiContent = currentAiMessage?.content || ''\n\t\tlet reasoningContent = currentAiMessage?.reasoningContent || ''\n\t\tlet allAiContent = ''\n\t\tif (!currentAiMessage) {\n\t\t\tconst chatItem: ChatMessage = {\n\t\t\t\tchatId: chatId,\n\t\t\t\tuser: 'ai',\n\t\t\t\ttype: 'text',\n\t\t\t\tisChating: true,\n\t\t\t\tcontent: '',\n\t\t\t\tthinkContent: '',\n\t\t\t\treasoningContent: '',\n\t\t\t\tthinkStatus: ThinkStatus.THINKING,\n\t\t\t\tthinkStartTime: Date.now(),\n\t\t\t\tisShowLike: true,\n\t\t\t\tisShowCopy: true,\n\t\t\t\tcomponentName: currentComponentName.value,\n\t\t\t\ttypeFlag: typeFlag.value\n\t\t\t}\n\t\t\tif (insertIndex !== undefined && insertIndex <= chatList.value.length) {\n\t\t\t\tchatList.value.splice(insertIndex, 0, chatItem)\n\t\t\t} else {\n\t\t\t\tchatList.value.push(chatItem)\n\t\t\t}\n\t\t}\n\t\tcurrIndex.value = insertIndex ?? chatList.value.length - 1\n\t\t// currIndex.value = chatList.value.findIndex(ele => ele.chatId === chatId)\n\t\t// const config = moduleInfo.value && moduleInfo.value.config ? moduleInfo.value.config : {}\n\t\tconst BodyConfig = moduleInfo.value?.config?.body()\n\t\tif (!inputValue.value && BodyConfig?.messages?.length) {\n\t\t\tBodyConfig.messages[0].content = userContent\n\t\t\tBodyConfig.model = enableDeepThinking.value ? 'deepseek-reasoner' : 'deepseek-v3'\n\t\t}\n\t\tfetchStream.value = new FetchStream({\n\t\t\turl: moduleInfo.value?.config?.action ? moduleInfo.value.config.action : 'https://api.apiyi.com/v1/chat/completions',\n\t\t\trequestInit: {\n\t\t\t\theaders: moduleInfo.value?.config?.headers\n\t\t\t\t\t? new Headers(moduleInfo.value.config.headers() as Record<string, string>)\n\t\t\t\t\t: new Headers({\n\t\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t\tAuthorization: 'Bearer sk-fe9MtODvds8wpzz05f3417Fe3e9641C1926e6fC588425dEd'\n\t\t\t\t\t\t} as Record<string, string>),\n\t\t\t\t// body: moduleInfo.value?.config?.body\n\t\t\t\t// \t? JSON.stringify(BodyConfig as Record<string, any>)\n\t\t\t\t// \t: JSON.stringify({\n\t\t\t\t// \t\t\tmodel: enableDeepThinking.value ? 'deepseek-reasoner' : 'deepseek-v3',\n\t\t\t\t// \t\t\tmessages: [\n\t\t\t\t// \t\t\t\t{\n\t\t\t\t// \t\t\t\t\trole: 'user',\n\t\t\t\t// \t\t\t\t\tcontent: userContent\n\t\t\t\t// \t\t\t\t}\n\t\t\t\t// \t\t\t],\n\t\t\t\t// \t\t\tstream: true\n\t\t\t\t// \t\t})\n\t\t\t\tbody: JSON.stringify(BodyConfig as Record<string, any>)\n\t\t\t},\n\t\t\tonmessage: (line: string) => {\n\t\t\t\tif (isUnmounting.value) return\n\t\t\t\tlet dataString = ''\n\t\t\t\tif (line.length) {\n\t\t\t\t\tif (line.includes('data:')) {\n\t\t\t\t\t\t// dataString = line.split('data:')[1]\n\t\t\t\t\t\tconst match = line.match(/\\{[\\s\\S]*\\}/)\n\t\t\t\t\t\t// 如果匹配到结果,就赋值给 dataString,否则为空字符串\n\t\t\t\t\t\tdataString = match ? match[0] : ''\n\t\t\t\t\t} else if (line.startsWith('{') && line.endsWith('}')) {\n\t\t\t\t\t\tdataString = line\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tdataString = dataString.trim()\n\n\t\t\t\tconst respoKey = moduleInfo.value?.config?.respoKey()\n\n\t\t\t\tif (dataString && ((dataString.startsWith('{') && dataString.endsWith('}')) || !respoKey?.content)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst result = !respoKey?.content && moduleInfo.value ? dataString : JSON.parse(dataString)\n\t\t\t\t\t\tconst newAiMessage = chatList.value[currIndex.value]\n\n\t\t\t\t\t\tconst deepseekFlag = moduleInfo.value?.name === 'deepseek-v3'\n\t\t\t\t\t\t// deepseek\n\t\t\t\t\t\tif (deepseekFlag || !moduleInfo.value) {\n\t\t\t\t\t\t\tif (result?.choices?.[0]?.delta?.content) {\n\t\t\t\t\t\t\t\taiContent += result.choices[0].delta.content\n\t\t\t\t\t\t\t\tif (newAiMessage?.thinkStatus === ThinkStatus.THINKING) {\n\t\t\t\t\t\t\t\t\tnewAiMessage.thinkStatus = ThinkStatus.COMPLETED\n\t\t\t\t\t\t\t\t\tnewAiMessage.thinkTime = Date.now() - (newAiMessage.thinkStartTime || Date.now())\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (result?.choices?.[0]?.delta?.reasoning_content) {\n\t\t\t\t\t\t\t\treasoningContent += result.choices[0].delta.reasoning_content\n\t\t\t\t\t\t\t\tif (!newAiMessage?.thinkStatus) {\n\t\t\t\t\t\t\t\t\tnewAiMessage.thinkStatus = ThinkStatus.THINKING\n\t\t\t\t\t\t\t\t\tnewAiMessage.thinkStartTime = Date.now()\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tallAiContent = reasoningContent + aiContent\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (respoKey && result && result[respoKey.content] && (result[respoKey.category] === respoKey.contentCategory || !result[respoKey.category])) {\n\t\t\t\t\t\t\t\taiContent += result[respoKey.content]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// 匹配不规则的结束\n\t\t\t\t\t\t\tif (result && result[respoKey.category] === 'done') {\n\t\t\t\t\t\t\t\tresultItem.value = result\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// 匹配不规则的错误提示\n\t\t\t\t\t\t\tif (result && result[respoKey.category] === 'error') {\n\t\t\t\t\t\t\t\tconst errorMessage = result[respoKey.all] ?? '当前网络异常'\n\t\t\t\t\t\t\t\tconst currentAiMessage = chatList.value[currIndex.value]\n\t\t\t\t\t\t\t\tif (currentAiMessage.chatId) {\n\t\t\t\t\t\t\t\t\tcurrentAiMessage.content = `<div style=\"color: red; display: flex; align-items: center;\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"16\" viewBox=\"0 0 15 16\" fill=\"none\">\n\t\t\t\t\t\t\t\t\t\t<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.5 15.5C11.6421 15.5 15 12.1421 15 8C15 3.85786 11.6421 0.5 7.5 0.5C3.35786 0.5 0 3.85786 0 8C0 12.1421 3.35786 15.5 7.5 15.5ZM9.7539 4.9506L10.5494 5.7461L8.2951 8.0001L10.5494 10.2539L9.7539 11.0494L7.5001 8.7951L5.2461 11.0494L4.4506 10.2539L6.7051 8.0001L4.4506 5.7461L5.2461 4.9506L7.5001 7.2051L9.7539 4.9506Z\" fill=\"#F93920\"/>\n\t\t\t\t\t\t\t\t\t\t</svg>${errorMessage}</div>`\n\t\t\t\t\t\t\t\t\t// currentAiMessage.content = errorMessage\n\t\t\t\t\t\t\t\t\tcurrentAiMessage.isChating = false\n\t\t\t\t\t\t\t\t\tcurrentAiMessage.componentName = ''\n\t\t\t\t\t\t\t\t\tcurrentAiMessage.isShowLike = false\n\t\t\t\t\t\t\t\t\tcurrentAiMessage.isShowCopy = false\n\t\t\t\t\t\t\t\t\tcurrentAiMessage.isError = true\n\n\t\t\t\t\t\t\t\t\tnextTick(() => {\n\t\t\t\t\t\t\t\t\t\t// 直接更新 chatList 并触发重新渲染\n\t\t\t\t\t\t\t\t\t\temit('sendMessage', [...chatList.value])\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// 后端无allAiContent完整信息 前端手动拼接\n\t\t\t\t\t\t\tif (aiContent || reasoningContent) {\n\t\t\t\t\t\t\t\tallAiContent = aiContent + reasoningContent\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (respoKey && result && result[respoKey.all] && result[respoKey.category] === respoKey.allCategory) {\n\t\t\t\t\t\t\t\tallAiContent = result[respoKey.all]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// 后端返回匹配不规则的流式输出 如 data:啦啦啦\n\t\t\t\t\t\t\tif (respoKey && result && typeof result === 'string' && result !== '[DONE]') {\n\t\t\t\t\t\t\t\taiContent += result\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// 后端返回匹配不规则的流式输出 如 data:[DONE] 结束\n\t\t\t\t\t\t\tif (respoKey && result && typeof result === 'string' && result === '[DONE]') {\n\t\t\t\t\t\t\t\tconst index = chatList.value.findIndex((ele: any) => ele.chatId === chatId)\n\t\t\t\t\t\t\t\tif (index !== -1 && chatList.value[index]) {\n\t\t\t\t\t\t\t\t\tisChating.value = false\n\t\t\t\t\t\t\t\t\tchatList.value[index].isChating = false\n\t\t\t\t\t\t\t\t\temit('sendMessage', JSON.parse(JSON.stringify(chatList.value)))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (chatList.value.some((ele: any) => ele.chatId === chatId)) {\n\t\t\t\t\t\t\tenqueueRender({\n\t\t\t\t\t\t\t\tmainContent: aiContent,\n\t\t\t\t\t\t\t\tthinkContent: '',\n\t\t\t\t\t\t\t\treasoningContent: reasoningContent\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (type === 1) {\n\t\t\t\t\t\t\tnextTick(() => {\n\t\t\t\t\t\t\t\trenderContent(aiContent, 'main')\n\t\t\t\t\t\t\t\trenderContent(reasoningContent, 'reasoning')\n\t\t\t\t\t\t\t\tnextTick(() => {\n\t\t\t\t\t\t\t\t\tscrollToBottom()\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.error('解析SSE消息失败:', error)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tondone: () => {\n\t\t\t\tnextTick(() => {\n\t\t\t\t\tisChating.value = false\n\t\t\t\t\tif (isUnmounting.value || !isMounted.value) return\n\t\t\t\t\tconst index = chatList.value.findIndex((ele: any) => ele.chatId === chatId)\n\t\t\t\t\tif (index !== -1 && chatList.value[index]) {\n\t\t\t\t\t\tchatList.value[index].isChating = false\n\t\t\t\t\t\tchatList.value[index].componentName = currentComponentName.value\n\t\t\t\t\t\tchatList.value[index].html = markdownToHtml(allAiContent)\n\t\t\t\t\t\tif (allAiContent) {\n\t\t\t\t\t\t\tif (resultItem.value) {\n\t\t\t\t\t\t\t\tresultItem.value.allAiContent = allAiContent\n\t\t\t\t\t\t\t\tafterSend(resultItem.value)\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tafterSend({ allAiContent })\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst waitForRenderComplete = () => {\n\t\t\t\t\t\t\tif (renderQueue.value.length === 0 && !isRendering.value) {\n\t\t\t\t\t\t\t\tif (chatList.value.length > 0) {\n\t\t\t\t\t\t\t\t\temit('sendMessage', JSON.parse(JSON.stringify(chatList.value)))\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\trequestAnimationFrame(waitForRenderComplete)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\twaitForRenderComplete()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t},\n\t\t\tonabort: () => {\n\t\t\t\thandleAbort()\n\t\t\t},\n\t\t\tonerror: (response: Error | Response) => {\n\t\t\t\thandleError(response)\n\t\t\t}\n\t\t})\n\t} catch (error) {\n\t\tconsole.error('OpenSSE错误:', error)\n\t\tisChating.value = false\n\t\t// chatList.value[currIndex.value].content = `请求失败`\n\t\tchatList.value[currIndex.value].content = `<div style=\"color: red; display: flex; align-items: center;\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"16\" viewBox=\"0 0 15 16\" fill=\"none\">\n\t\t\t<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.5 15.5C11.6421 15.5 15 12.1421 15 8C15 3.85786 11.6421 0.5 7.5 0.5C3.35786 0.5 0 3.85786 0 8C0 12.1421 3.35786 15.5 7.5 15.5ZM9.7539 4.9506L10.5494 5.7461L8.2951 8.0001L10.5494 10.2539L9.7539 11.0494L7.5001 8.7951L5.2461 11.0494L4.4506 10.2539L6.7051 8.0001L4.4506 5.7461L5.2461 4.9506L7.5001 7.2051L9.7539 4.9506Z\" fill=\"#F93920\"/>\n\t\t</svg>${'请求失败'}</div>`\n\t\tchatList.value[currIndex.value].isChating = false\n\t\tchatList.value[currIndex.value].isShowCopy = false\n\t\tchatList.value[currIndex.value].isShowLike = false\n\t\tshowToast('请求失败,请重试', 'error', 3000)\n\t\t// handleError(error)\n\t}\n}\n\n// 处理请求中止\nconst handleAbort = (): void => {\n\tisChating.value = false\n\tif (isUnmounting.value) return\n\n\tconst currentAiMessage = chatList.value[currIndex.value]\n\tstop(chatList.value[currIndex.value], currIndex.value)\n\tconst hasContent = currentAiMessage && (currentAiMessage.content || currentAiMessage.thinkContent || currentAiMessage.reasoningContent)\n\n\tif (currentAiMessage) {\n\t\tif (currentAiMessage.thinkStatus === ThinkStatus.THINKING) {\n\t\t\tcurrentAiMessage.thinkStatus = ThinkStatus.STOPPED\n\t\t\tcurrentAiMessage.thinkTime = Date.now() - (currentAiMessage.thinkStartTime || Date.now())\n\t\t}\n\t\tif (!hasContent) {\n\t\t\tconst userMessageIndex = currIndex.value - 1\n\t\t\tif (userMessageIndex >= 0 && chatList.value[userMessageIndex].user === 'u') {\n\t\t\t\tchatList.value.splice(currIndex.value, 1)\n\t\t\t\tchatList.value.splice(userMessageIndex, 1)\n\t\t\t} else {\n\t\t\t\tchatList.value.splice(currIndex.value, 1)\n\t\t\t}\n\t\t} else {\n\t\t\tconst updatedAiMessage = {\n\t\t\t\t...currentAiMessage,\n\t\t\t\tisChating: false,\n\t\t\t\tcontent: currentAiMessage.content ? currentAiMessage.content + '...' : '',\n\t\t\t\tthinkContent: currentAiMessage.thinkContent ? currentAiMessage.thinkContent + '...' : undefined,\n\t\t\t\treasoningContent: currentAiMessage.reasoningContent ? currentAiMessage.reasoningContent + '...' : undefined,\n\t\t\t\tthinkStatus: currentAiMessage.thinkStatus as ThinkStatus,\n\t\t\t\tstop: true\n\t\t\t}\n\n\t\t\tchatList.value.splice(currIndex.value, 1, updatedAiMessage)\n\n\t\t\tnextTick(() => {\n\t\t\t\trenderContent(updatedAiMessage.thinkContent || '', 'thinking')\n\t\t\t\trenderContent(updatedAiMessage.reasoningContent || '', 'reasoning')\n\t\t\t\trenderContent(updatedAiMessage.content || '', 'main')\n\t\t\t\temit('sendMessage', [...chatList.value])\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n\n\tif (chatList.value.length > 0) {\n\t\temit('sendMessage', [...chatList.value])\n\t}\n}\n\n// 处理请求错误\nconst handleError = (response: Error | Response): void => {\n\tif (isUnmounting.value) return\n\tisChating.value = false\n\n\tlet errorMessage = '未知错误'\n\tif (response instanceof Error) {\n\t\tconsole.error('API请求错误:', response)\n\t\terrorMessage = response.message\n\t} else if (response instanceof Response) {\n\t\tconsole.error('API请求错误, 响应状态:', response.status, response.statusText)\n\t\terrorMessage = `请求失败: ${response.status} ${response.statusText}`\n\t}\n\n\tconst currentAiMessage = chatList.value[currIndex.value]\n\tif (currentAiMessage) {\n\t\tcurrentAiMessage.content = `<div style=\"color: red; display: flex; align-items: center;\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"16\" viewBox=\"0 0 15 16\" fill=\"none\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.5 15.5C11.6421 15.5 15 12.1421 15 8C15 3.85786 11.6421 0.5 7.5 0.5C3.35786 0.5 0 3.85786 0 8C0 12.1421 3.35786 15.5 7.5 15.5ZM9.7539 4.9506L10.5494 5.7461L8.2951 8.0001L10.5494 10.2539L9.7539 11.0494L7.5001 8.7951L5.2461 11.0494L4.4506 10.2539L6.7051 8.0001L4.4506 5.7461L5.2461 4.9506L7.5001 7.2051L9.7539 4.9506Z\" fill=\"#F93920\"/>\n</svg>${errorMessage}</div>`\n\t\t// currentAiMessage.content = errorMessage\n\t\tcurrentAiMessage.isChating = false\n\t\tcurrentAiMessage.componentName = ''\n\t\tcurrentAiMessage.isShowLike = false\n\t\tcurrentAiMessage.isShowCopy = false\n\t\tcurrentAiMessage.isError = true\n\n\t\tnextTick(() => {\n\t\t\trenderContent(currentAiMessage.content || '', 'main')\n\t\t\temit('sendMessage', [...chatList.value])\n\t\t})\n\t} else {\n\t\tshowToast(errorMessage, 'error', 3000)\n\t\temit('sendMessage', [...chatList.value])\n\t}\n}\n\n// 渲染队列\nconst enqueueRender = (data: RenderData): void => {\n\tif (isUnmounting.value || !isMounted.value) return\n\tif (currIndex.value < 0 || currIndex.value >= chatList.value.length) return\n\trenderQueue.value.push(data)\n\tif (!isRendering.value) {\n\t\tisRendering.value = true\n\t\tprocessRenderQueue()\n\t}\n}\n\nconst processRenderQueue = (): void => {\n\tif (isUnmounting.value || !isMounted.value) {\n\t\trenderQueue.value = []\n\t\tisRendering.value = false\n\t\treturn\n\t}\n\n\tif (renderQueue.value.length === 0) {\n\t\tisRendering.value = false\n\t\treturn\n\t}\n\n\trequestAnimationFrame(() => {\n\t\tconst data = renderQueue.value.shift()\n\t\tif (data) {\n\t\t\tformatMarkdown(data)\n\t\t}\n\t\tprocessRenderQueue()\n\t})\n}\n\n// 格式化Markdown内容\nconst formatMarkdown = (data: RenderData): void => {\n\tif (!isMounted.value) return\n\tif (currIndex.value < 0 || currIndex.value >= chatList.value.length) return\n\n\tconst currentItem = chatList.value[currIndex.value]\n\t// 如果是错误消息,不更新content\n\tif (!currentItem.isError) {\n\t\tcurrentItem.thinkContent = data.thinkContent\n\t\tcurrentItem.content = data.mainContent\n\t\tcurrentItem.reasoningContent = data.reasoningContent\n\t}\n\n\tnextTick(() => {\n\t\tconst thinkingContainer = thinkingContentRef.value[currIndex.value]\n\t\tif (thinkingContainer) {\n\t\t\tif (data.thinkContent && !currentItem.isError) {\n\t\t\t\trenderContent(data.thinkContent, 'thinking')\n\t\t\t\tthinkingContainer.style.display = 'block'\n\t\t\t\tthinkingContainer.style.visibility = 'visible'\n\t\t\t} else {\n\t\t\t\tthinkingContainer.style.display = 'none'\n\t\t\t\tthinkingContainer.style.visibility = 'hidden'\n\t\t\t}\n\t\t}\n\n\t\tconst reasoningContainer = reasoningContentRef.value[currIndex.value]\n\t\tif (reasoningContainer) {\n\t\t\tif (data.reasoningContent && !currentItem.isError) {\n\t\t\t\trenderContent(data.reasoningContent, 'reasoning')\n\t\t\t\treasoningContainer.style.display = 'block'\n\t\t\t\treasoningContainer.style.visibility = 'visible'\n\t\t\t} else {\n\t\t\t\treasoningContainer.style.display = 'none'\n\t\t\t\treasoningContainer.style.visibility = 'hidden'\n\t\t\t}\n\t\t}\n\n\t\t// 如果是错误消息,使用currentItem.content,否则使用data.mainContent\n\t\trenderContent(currentItem.isError ? currentItem.content : data.mainContent, 'main')\n\t})\n}\n\n// 附加复制按钮\nconst attachCopyButtons = (container: HTMLElement): void => {\n\tconst codeBlocks = container.querySelectorAll('pre code')\n\tcodeBlocks.forEach(codeBlock => {\n\t\tconst pre = codeBlock.parentElement\n\t\tif (pre) {\n\t\t\tconst copyBtn = document.createElement('button')\n\t\t\tcopyBtn.className = 'touchchat-code-copy'\n\t\t\tcopyBtn.addEventListener('click', () => {\n\t\t\t\tconst code = codeBlock.textContent || ''\n\t\t\t\tnavigator.clipboard\n\t\t\t\t\t.writeText(code)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tshowToast('复制成功', 'info', 2000)\n\t\t\t\t\t\tcopyBtn.textContent = '已复制'\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tcopyBtn.textContent = ''\n\t\t\t\t\t\t}, 2000)\n\t\t\t\t\t})\n\t\t\t\t\t.catch(err => {\n\t\t\t\t\t\tconsole.error('复制失败:', err)\n\t\t\t\t\t\tshowToast('复制失败', 'error', 2000)\n\t\t\t\t\t})\n\t\t\t})\n\n\t\t\tpre.style.position = 'relative'\n\t\t\tpre.appendChild(copyBtn)\n\t\t}\n\t})\n}\n\n// 渲染内容\nconst renderContent = (content: string, type: 'main' | 'thinking' | 'reasoning', index?: number): void => {\n\tconst renderIndex = index ?? currIndex.value\n\tif (renderIndex < 0 || renderIndex >= chatList.value.length) return\n\n\tconst refArrays = {\n\t\tmain: htmlContentRef,\n\t\tthinking: thinkingContentRef,\n\t\treasoning: reasoningContentRef\n\t}\n\tconst processors = {\n\t\tmain: (content: string) => markdown?.render(content, { isReasoning: false }) || '',\n\t\tthinking: (content: string) => markdown?.render(content, { isReasoning: false }) || '',\n\t\treasoning: (content: string) => markdown?.render(content, { isReasoning: false }) || ''\n\t}\n\n\tconst container = refArrays[type].value[renderIndex]\n\tif (!container) return\n\n\tcontainer.innerHTML = processors[type](content || '')\n\tattachCopyButtons(container)\n}\n\n// 发送消息\nconst sendMessage = (content?: string, fileList?: any[], auto?: boolean, type?: string): void => {\n\tinputValue.value = content || ''\n\thandleBeforeSend(content, fileList, auto, type)\n}\n\n// 发送前处理\nconst handleBeforeSend = (content?: string, fileList?: any[], auto?: boolean, type?: string): void => {\n\tfileData.value = fileList || []\n\tif (beforeSend) {\n\t\tconst fn = beforeSend()\n\t\tif (fn && typeof (fn as any).then === 'function') {\n\t\t\t;(Promise.resolve(fn) as Promise<{ result: boolean; componentName?: string }>)\n\t\t\t\t.then(res => {\n\t\t\t\t\tif (res.result) {\n\t\t\t\t\t\tcurrentComponentName.value = res.componentName || ''\n\t\t\t\t\t\thandleSend(content, fileList, auto, type)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\tconsole.log(error)\n\t\t\t\t})\n\t\t} else {\n\t\t\tif (fn.result) {\n\t\t\t\tcurrentComponentName.value = fn.componentName || ''\n\t\t\t\thandleSend(content, fileList, auto, type)\n\t\t\t}\n\t\t}\n\t}\n}\n\n// 处理发送\nconst handleSend = (content?: string, fileList?: any[], auto?: boolean, type?: string): void => {\n\temit('beforeSendMessage')\n\t// sendMessageInject(inputValue.value)\n\tsendMessageInject(inputValue.value, fileData.value)\n\ttypeFlag.value = type || ''\n\tif (scripts && Array.isArray(scripts) && scripts.length > 0) {\n\t\tconst userInput = content ? content.replace(/\\n/g, '') : inputValue.value.replace(/\\n/g, '').trim()\n\t\tif (!userInput && !fileList?.length && auto) return\n\n\t\t// 添加用户消息\n\t\tconst userChatId = `user_${Date.now()}`\n\t\tconst userMessage: ChatMessage = {\n\t\t\tchatId: userChatId,\n\t\t\tuser: 'u',\n\t\t\ttype: 'text',\n\t\t\tcontent: userInput,\n\t\t\tisShowLike: false,\n\t\t\tisShowCopy: true,\n\t\t\tfiles: fileList || [],\n\t\t\ttypeFlag: type,\n\t\t\tauto: auto || false\n\t\t}\n\t\tchatList.value.push(userMessage)\n\t\temit('sendMessage', [...chatList.value])\n\n\t\t// 滚动到底部 - 先渲染内容再滚动,确保准确性\n\t\tnextTick(() => {\n\t\t\t// 立即渲染用户消息\n\t\t\trenderContent(userMessage.content, 'main', chatList.value.length - 1)\n\t\t\t// 渲染完成后再滚动到底部\n\t\t\tnextTick(() => {\n\t\t\t\tscrollToBottom()\n\t\t\t})\n\t\t})\n\n\t\t// 查找匹配的脚本内容\n\t\tconst result = findMatchingScriptContent(userInput)\n\n\t\tif (result && result.responses.length > 0) {\n\t\t\t// 存储新AI消息的数组\n\t\t\tconst newAiMessages: ChatMessage[] = []\n\n\t\t\tresult.responses.forEach((response: any, idx: number) => {\n\t\t\t\tconst pauseMarker = Array.isArray(response.data) ? '\\u200B'.repeat(20) : ''\n\t\t\t\tconst content = Array.isArray(response.data) ? response.data.join(pauseMarker) : response.data\n\n\t\t\t\tconst aiChatId = `ai_${Date.now()}_${idx}`\n\t\t\t\tconst aiMessage: ChatMessage = {\n\t\t\t\t\tchatId: aiChatId,\n\t\t\t\t\tuser: 'ai',\n\t\t\t\t\ttype: 'text',\n\t\t\t\t\tcontent: content || '',\n\t\t\t\t\t// componentName: response.needSequenceProcessing ? '' : response.type || '',\n\t\t\t\t\tcomponentName: response.type || '',\n\t\t\t\t\tisShowLike: true,\n\t\t\t\t\tisShowCopy: true,\n\t\t\t\t\tneedSequenceType: response.type || '',\n\t\t\t\t\tneedSequenceProcessing: response.needSequenceProcessing || false,\n\t\t\t\t\ttypeFlag: type\n\t\t\t\t}\n\t\t\t\tnewAiMessages.push(aiMessage)\n\t\t\t})\n\n\t\t\t// 创建消息处理器相关变量\n\t\t\tlet messageQueue = [...newAiMessages]\n\t\t\tlet isProcessing = false\n\t\t\tlet currentMessage: ChatMessage | null = null\n\n\t\t\t// 处理下一条消息\n\t\t\tconst processNextMessage = () => {\n\t\t\t\tif (messageQueue.length > 0 && !isProcessing) {\n\t\t\t\t\tisProcessing = true\n\t\t\t\t\tconst nextMessage = messageQueue.shift()\n\t\t\t\t\tif (nextMessage) {\n\t\t\t\t\t\tcurrentMessage = nextMessage\n\t\t\t\t\t\tconsole.log('开始处理消息:', currentMessage.chatId)\n\t\t\t\t\t\tchatList.value.push(currentMessage)\n\t\t\t\t\t\temit('sendMessage', [...chatList.value])\n\t\t\t\t\t\tconst msgIndex = chatList.value.length - 1\n\t\t\t\t\t\tnextTick(() => {\n\t\t\t\t\t\t\t// 先渲染内容再滚动到底部\n\t\t\t\t\t\t\trenderContent(currentMessage?.content || '', 'main', msgIndex)\n\t\t\t\t\t\t\tnextTick(() => {\n\t\t\t\t\t\t\t\tscrollToBottom()\n\t\t\t\t\t\t\t\t// 内容渲染完成后再开始流式输出\n\t\t\t\t\t\t\t\tif (currentMessage) {\n\t\t\t\t\t\t\t\t\t// 无论是否需要序列处理,都等待渲染完成后再处理下一条消息\n\t\t\t\t\t\t\t\t\t// 标记当前消息需要序列处理,确保等待渲染完成\n\t\t\t\t\t\t\t\t\tconst messageToProcess = {\n\t\t\t\t\t\t\t\t\t\t...currentMessage,\n\t\t\t\t\t\t\t\t\t\tneedSequenceProcessing: true\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// 开始流式输出\n\t\t\t\t\t\t\t\t\tsimulateStreamOutput(msgIndex, messageToProcess)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// 处理消息完成事件\n\t\t\tconst handleMessageComplete = (chatId: string) => {\n\t\t\t\tif (currentMessage && currentMessage.chatId === chatId) {\n\t\t\t\t\tconsole.log('序列消息处理完成,处理下一条:', chatId)\n\t\t\t\t\tcurrentMessage = null\n\t\t\t\t\tisProcessing = false\n\t\t\t\t\tprocessNextMessage()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// 保存消息处理器到响应式变量,供completeRendered使用\n\t\t\tconst processorObj = {\n\t\t\t\tmessageQueue,\n\t\t\t\tisProcessing,\n\t\t\t\tcurrentMessage,\n\t\t\t\tprocessNextMessage,\n\t\t\t\thandleMessageComplete\n\t\t\t}\n\t\t\tcurrentMessageProcessor.value = processorObj\n\n\t\t\t// 开始处理消息队列\n\t\t\tprocessNextMessage()\n\t\t} else {\n\t\t\t// 插入默认AI回复\n\t\t\tconst defaultAiChatId = `ai_${Date.now()}`\n\t\t\tconst defaultAiMessage: ChatMessage = {\n\t\t\t\tchatId: defaultAiChatId,\n\t\t\t\tuser: 'ai',\n\t\t\t\ttype: 'text',\n\t\t\t\tcontent: unmatchText,\n\t\t\t\tisShowLike: true,\n\t\t\t\tisShowCopy: true\n\t\t\t}\n\t\t\tchatList.value.push(defaultAiMessage)\n\t\t\temit('sendMessage', [...chatList.value])\n\t\t\t// 滚动到底部并渲染默认回复\n\t\t\tnextTick(() => {\n\t\t\t\tconst msgIndex = chatList.value.findIndex((item: any) => item.chatId === defaultAiChatId)\n\t\t\t\tif (msgIndex !== -1) {\n\t\t\t\t\t// 先渲染内容再滚动到底部\n\t\t\t\t\trenderContent(defaultAiMessage.content, 'main', msgIndex)\n\t\t\t\t\tnextTick(() => {\n\t\t\t\t\t\tscrollToBottom()\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tinputValue.value = ''\n\t\t// emit('sendMessage', JSON.parse(JSON.stringify(chatList.value)))\n\t} else {\n\t\tif (content) {\n\t\t\tinputValue.value = content\n\t\t}\n\t\tif ((isChating.value || (!inputValue.value.trim() && !fileList?.length)) && !auto) return\n\t\t// const userChatId = 'user_' + crypto.randomUUID().replace(/-/gi, '')\n\t\tconst userChatId = 'user_' + Math.random().toString(36).slice(2).padEnd(10, '0').slice(0, 10)\n\t\tconst userMessage: ChatMessage = {\n\t\t\tchatId: userChatId,\n\t\t\tuser: 'u',\n\t\t\ttype: 'text',\n\t\t\tcontent: inputValue.value,\n\t\t\tfiles: fileList || []\n\t\t}\n\t\tchatList.value.push(userMessage)\n\t\tconst index = chatList.value.length - 1\n\t\tnextTick(() => {\n\t\t\trenderContent(userMessage.content, 'main', index)\n\t\t\tscrollToBottom()\n\t\t})\n\t\topenSSE(inputValue.value, index + 1, 1)\n\t\tinputValue.value = ''\n\t}\n}\n\n// 停止生成\nconst handleStop = (): void => {\n\tfetchStream.value?.abort()\n\n\tconst aiIndex = chatList.value.findIndex((item: any) => item.isChating)\n\tif (aiIndex !== -1) {\n\t\tconst currentAiMessage = chatList.value[aiIndex]\n\n\t\tif (currentAiMessage.content?.trim()) {\n\t\t\tnextTick(() => {\n\t\t\t\tchatList.value[aiIndex] = {\n\t\t\t\t\t...currentAiMessage,\n\t\t\t\t\tcontent: currentAiMessage.content + '...',\n\t\t\t\t\tisChating: false\n\t\t\t\t}\n\t\t\t\trenderContent(chatList.value[aiIndex].content, 'main', aiIndex)\n\t\t\t\temit('sendMessage', chatList.value)\n\t\t\t})\n\t\t} else {\n\t\t\tif (aiIndex > 0) {\n\t\t\t\tconst userMessageIndex = aiIndex - 1\n\t\t\t\tif (chatList.value[userMessageIndex].user === 'u') {\n\t\t\t\t\tchatList.value.splice(userMessageIndex, 2)\n\t\t\t\t} else {\n\t\t\t\t\tchatList.value.splice(aiIndex, 1)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tchatList.value.splice(aiIndex, 1)\n\t\t\t}\n\t\t}\n\t} else {\n\t\tconst lastIndex = chatList.value.length - 1\n\t\tif (lastIndex >= 0 && chatList.value[lastIndex].user === 'u') {\n\t\t\tchatList.value.pop()\n\t\t}\n\t}\n\n\tisChating.value = false\n}\n\n// 新增:滚动观察者实例\nconst scrollObserver = ref<MutationObserver | null>(null)\n\n// 滚动到底部 - 优化版,支持实时滚动和内容变化监听\nconst scrollToBottom = () => {\n\tif (!isMounted.value || isUnmounting.value || !chatContainer.value) return\n\n\tnextTick(() => {\n\t\trequestAnimationFrame(() => {\n\t\t\tconst chatContainerEl = chatContainer.value!\n\t\t\tconst lastMessage = chatContainerEl.querySelector('.touchchat-dialog-content > *:last-child') as HTMLElement | null\n\n\t\t\tif (lastMessage) {\n\t\t\t\t// 计算消息元素的完整高度(包含内边距和边框)\n\t\t\t\tconst { height: messageHeight } = lastMessage.getBoundingClientRect()\n\t\t\t\t// 计算容器可视区域高度\n\t\t\t\tconst containerHeight = chatContainerEl.clientHeight\n\t\t\t\t// 计算消息底部到容器顶部的距离\n\t\t\t\tconst messageBottom = lastMessage.offsetTop + lastMessage.offsetHeight\n\n\t\t\t\t// 如果消息高度超过容器高度,滚动到消息顶部;否则滚动到消息底部\n\t\t\t\tif (messageHeight > containerHeight) {\n\t\t\t\t\tchatContainerEl.scrollTop = lastMessage.offsetTop\n\t\t\t\t} else {\n\t\t\t\t\t// 确保消息底部完全可见(处理可能的内边距/边框问题)\n\t\t\t\t\tchatContainerEl.scrollTop = messageBottom - containerHeight\n\t\t\t\t}\n\n\t\t\t\t// 增强内容变化监听(包括文本节点和子元素变化)\n\t\t\t\tif (scrollObserver.value) {\n\t\t\t\t\tscrollObserver.value.disconnect()\n\t\t\t\t}\n\t\t\t\tscrollObserver.value = new MutationObserver(() => {\n\t\t\t\t\t// 内容变化后重新计算并滚动\n\t\t\t\t\tconst updatedMessageBottom = lastMessage.offsetTop + lastMessage.offsetHeight\n\t\t\t\t\tchatContainerEl.scrollTop = Math.max(updatedMessageBottom - containerHeight, chatContainerEl.scrollTop)\n\t\t\t\t})\n\n\t\t\t\tscrollObserver.value.observe(lastMessage, {\n\t\t\t\t\tchildList: true,\n\t\t\t\t\tsubtree: true,\n\t\t\t\t\tcharacterData: true,\n\t\t\t\t\tattributes: true, // 新增监听属性变化(如高度)\n\t\t\t\t\tattributeFilter: ['style', 'class'] // 只监听样式相关属性\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tchatContainerEl.scrollTo({\n\t\t\t\t\ttop: chatContainerEl.scrollHeight,\n\t\t\t\t\tbehavior: 'smooth'\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t})\n}\n\n// 处理消息操作\nconst handleMessageAction = (action: MessageAction, index: number): void => {\n\tconst message = chatList.value[index]\n\tif (!message) return\n\n\tswitch (action) {\n\t\tcase MessageAction.COPY: {\n\t\t\t// 提取文本内容\n\t\t\tconst textContent = message.content\n\t\t\t// const imgContent = message.files\n\n\t\t\t// if (imgContent && imgContent.length > 0) {\n\t\t\t// \tinputValue.value = textContent\n\t\t\t// \tshowToast('复制成功', 'info')\n\t\t\t// \tif (ChatInputRef.value) {\n\t\t\t// \t\tChatInputRef.value.handlePaste(JSON.parse(JSON.stringify(imgContent)), 'copy')\n\t\t\t// \t}\n\t\t\t// } else {\n\t\t\t// \tinputValue.value = textContent\n\t\t\t// \tif (ChatInputRef.value) {\n\t\t\t// \t\tChatInputRef.value.handlePaste([], 'copy')\n\t\t\t// \t}\n\t\t\t// 只有文本的情况,保持原逻辑\n\t\t\tnavigator.clipboard\n\t\t\t\t.writeText(textContent)\n\t\t\t\t.then(() => {\n\t\t\t\t\tshowToast('复制成功', 'info')\n\t\t\t\t})\n\t\t\t\t.catch(err => {\n\t\t\t\t\tconsole.error('复制失败:', err)\n\t\t\t\t\tshowToast('复制失败', 'error')\n\t\t\t\t})\n\t\t\t// }\n\t\t\tbreak\n\t\t}\n\t\tcase MessageAction.EDIT:\n\t\t\tmessage.isEditing = true\n\t\t\tmessage.editContent = message.content\n\t\t\tbreak\n\t\tcase MessageAction.DELETE:\n\t\t\tmessageUtils.deleteMessageChain(index)\n\t\t\temit('sendMessage', chatList.value)\n\t\t\tbreak\n\t\tcase MessageAction.RETRY: {\n\t\t\tconst aiMessage = chatList.value[index]\n\t\t\tconst userMessageIndex = index - 1\n\t\t\tconst userMessage = chatList.value[userMessageIndex]\n\n\t\t\tif (userMessage && userMessage.user === 'u') {\n\t\t\t\tconst updatedAiMessage = {\n\t\t\t\t\t...aiMessage,\n\t\t\t\t\tcontent: '',\n\t\t\t\t\tthinkContent: '',\n\t\t\t\t\treasoningContent: '',\n\t\t\t\t\tisLiked: false,\n\t\t\t\t\tisDisliked: false,\n\t\t\t\t\tisChating: true,\n\t\t\t\t\tchatId: aiMessage.chatId,\n\t\t\t\t\tuser: aiMessage.user,\n\t\t\t\t\ttype: aiMessage.type,\n\t\t\t\t\tthinkStatus: ThinkStatus.COMPLETED,\n\t\t\t\t\tthinkStartTime: 0,\n\t\t\t\t\tthinkEndTime: 0\n\t\t\t\t}\n\t\t\t\tchatList.value.splice(index, 1, updatedAiMessage)\n\n\t\t\t\tnextTick(() => {\n\t\t\t\t\tif (htmlContentRef.value[index]) htmlContentRef.value[index].innerHTML = ''\n\t\t\t\t\tif (thinkingContentRef.value[index]) thinkingContentRef.value[index].innerHTML = ''\n\t\t\t\t\tif (reasoningContentRef.value[index]) reasoningContentRef.value[index].innerHTML = ''\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\topenSSE(userMessage.content || '', index, 2)\n\t\t\t\t\t}, 50)\n\t\t\t\t})\n\t\t\t}\n\t\t\tbreak\n\t\t}\n\t\tcase MessageAction.LIKE:\n\t\t\tmessageUtils.updateMessage(index, {\n\t\t\t\tisLiked: true,\n\t\t\t\tisDisliked: false\n\t\t\t})\n\t\t\tbreak\n\t\tcase MessageAction.DISLIKE:\n\t\t\tmessageUtils.updateMessage(index, {\n\t\t\t\tisLiked: false,\n\t\t\t\tisDisliked: true\n\t\t\t})\n\t\t\tbreak\n\t}\n}\n\n// 保存编辑\nconst saveEdit = (index: number, newContent: string): void => {\n\tconst message = chatList.value[index]\n\tif (!message || !message.editContent) return\n\n\tchatList.value[index] = {\n\t\t...message,\n\t\tcontent: newContent,\n\t\tisEditing: false,\n\t\teditContent: undefined\n\t}\n\tnextTick(() => {\n\t\trenderContent(message.content, 'main', index)\n\t})\n\n\tif (index + 1 < chatList.value.length && chatList.value[index + 1].user === 'ai') {\n\t\tchatList.value.splice(index + 1, 1)\n\t}\n\n\topenSSE(newContent, index + 1)\n\temit('sendMessage', chatList.value)\n}\n\n// 取消编辑\nconst cancelEdit = (index: number): void => {\n\tconst message = chatList.value[index]\n\tif (!message) return\n\n\tmessage.isEditing = false\n\tmessage.editContent = ''\n\tnextTick(() => {\n\t\trenderContent(message.content, 'main', index)\n\t})\n}\n\n// 组件生命周期\nonMounted(async () => {\n\tif (isMounted.value) {\n\t\tinit()\n\t}\n\tisMounted.value = true\n\t// 监听scripts变化\n\twatch(\n\t\t() => scripts,\n\t\t() => {\n\t\t\tinit()\n\t\t},\n\t\t{ deep: true, immediate: false }\n\t)\n})\n\nonBeforeUnmount(() => {\n\tif (!isUnmounting.value) {\n\t\tisUnmounting.value = true\n\t\tif (fetchStream.value) {\n\t\t\tfetchStream.value.abort()\n\t\t\tfetchStream.value = null\n\t\t}\n\t\tif (TouchChatRobot.value) {\n\t\t\tTouchChatRobot.value.close()\n\t\t\tTouchChatRobot.value = undefined\n\t\t}\n\t\tisMounted.value = false\n\t\trenderQueue.value = []\n\t\thtmlContentRef.value = []\n\t\tthinkingContentRef.value = []\n\t\treasoningContentRef.value = []\n\t}\n\tif (scrollObserver.value) {\n\t\tscrollObserver.value.disconnect()\n\t\tscrollObserver.value = null\n\t}\n})\n\n// 处理拖拽进入事件\nconst handleDragEnter = () => {\n\tif (ChatInputRef.value) {\n\t\tChatInputRef.value.openMarkLayer()\n\t}\n\tisDragging.value = true\n}\n\n// 处理拖拽离开事件\nconst handleDragLeave = (e: DragEvent) => {\n\t// 检查鼠标是否真的离开容器\n\tconst rect = (e.target as HTMLElement).getBoundingClientRect()\n\tif (e.clientX < rect.left || e.clientX > rect.right || e.clientY < rect.top || e.clientY > rect.bottom) {\n\t\tisDragging.value = false\n\t}\n}\n\n// 处理文件放下事件\nconst handleDrop = async (e: DragEvent) => {\n\tisDragging.value = false\n\n\t// 获取拖拽的文件\n\tconst files = e.dataTransfer?.files\n\n\tif (files && files.length > 0) {\n\t\tconst fileList = await Promise.all(\n\t\t\tArray.from(files).map(async file => {\n\t\t\t\tlet base64 = ''\n\t\t\t\tif (file.type.startsWith('image/')) {\n\t\t\t\t\t// 使用 Promise 封装 FileReader 以正确获取 base64\n\t\t\t\t\tbase64 = await new Promise(resolve => {\n\t\t\t\t\t\tconst reader = new FileReader()\n\t\t\t\t\t\treader.onload = e => {\n\t\t\t\t\t\t\tresolve(e.target?.result as string)\n\t\t\t\t\t\t}\n\t\t\t\t\t\treader.readAsDataURL(file)\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\t// id: crypto.randomUUID().replace(/-/gi, ''),\n\t\t\t\t\tid: Math.random().toString(36).slice(2).padEnd(10, '0').slice(0, 10),\n\t\t\t\t\tfile: file,\n\t\t\t\t\tname: file.name,\n\t\t\t\t\tfileType: file.type,\n\t\t\t\t\tfileSize: file.size,\n\t\t\t\t\tlastModified: file.lastModified,\n\t\t\t\t\tpreview: URL.createObjectURL(file),\n\t\t\t\t\tbase64\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\t\tif (ChatInputRef.value) {\n\t\t\tChatInputRef.value.handlePaste(fileList, 'drop')\n\t\t}\n\t}\n\n\tif (ChatInputRef.value) {\n\t\tChatInputRef.value.colseMarkLayer()\n\t}\n}\n\nconst itemUploadFile = (item: FileItem, index: number) => {\n\tconsole.log('itemUploadFile', item, index)\n\tif (ChatInputRef.value) {\n\t\tChatInputRef.value.itemUploadFile(index, 'drop')\n\t}\n}\n\nexport type { ChatMessage, ModuleItem }\n\nprovide('touchchat', {\n\tsend: sendMessage,\n\tretry: handleMessageAction\n})\n\ndefineExpose({\n\tsend: (value: string, fileList?: any[], auto?: boolean, type?: string) => {\n\t\thandleSend(value, fileList, auto, type)\n\t},\n\thandleAgentSelect,\n\tretry: (index: number) => {\n\t\thandleMessageAction(MessageAction.RETRY, index)\n\t},\n\tupdate\n})\n</script>\n"],"names":["script","item","_b","_a","_c","_f","_e","_d","_g","currentAiMessage","content","e","_createElementBlock","_createElementVNode","_renderSlot","_createVNode","_openBlock","_Fragment","_renderList","_createBlock","_unref","$slots"],"mappings":"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"}