@touchvue/chat 1.0.0-beta.51 → 1.0.0-beta.52

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 (132) hide show
  1. package/README.md +70 -70
  2. package/es/node_modules/.pnpm/{dompurify@3.4.3 → dompurify@3.3.0}/node_modules/dompurify/dist/purify.es.mjs +143 -299
  3. package/es/node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.mjs.map +1 -0
  4. package/es/package.json.css +1 -1
  5. package/es/package.json.mjs +1 -1
  6. package/es/packages/components/resolver.mjs.map +1 -1
  7. package/es/packages/components/touchchat/component/AiRobot/HelloChat.vue2.mjs.map +1 -1
  8. package/es/packages/components/touchchat/component/AiRobot/letter.vue.mjs +1 -1
  9. package/es/packages/components/touchchat/component/AiRobot/letter.vue2.mjs +9 -9
  10. package/es/packages/components/touchchat/component/AiRobot/letter.vue2.mjs.map +1 -1
  11. package/es/packages/components/touchchat/component/FileContent.vue2.mjs +3 -3
  12. package/es/packages/components/touchchat/component/FileContent.vue2.mjs.map +1 -1
  13. package/es/packages/components/touchchat/component/FileView.vue2.mjs +2 -2
  14. package/es/packages/components/touchchat/component/FileView.vue2.mjs.map +1 -1
  15. package/es/packages/components/touchchat/component/HelloChat.vue2.mjs.map +1 -1
  16. package/es/packages/components/touchchat/component/ImageFile.vue2.mjs +6 -6
  17. package/es/packages/components/touchchat/component/ImageFile.vue2.mjs.map +1 -1
  18. package/es/packages/components/touchchat/component/ImageView.vue2.mjs +1 -1
  19. package/es/packages/components/touchchat/component/ImageView.vue2.mjs.map +1 -1
  20. package/es/packages/components/touchchat/component/LinkView.vue2.mjs +4 -4
  21. package/es/packages/components/touchchat/component/LinkView.vue2.mjs.map +1 -1
  22. package/es/packages/components/touchchat/component/MarkLayer.vue2.mjs +1 -1
  23. package/es/packages/components/touchchat/component/MarkLayer.vue2.mjs.map +1 -1
  24. package/es/packages/components/touchchat/component/ModuleSelect.vue2.mjs +2 -2
  25. package/es/packages/components/touchchat/component/ModuleSelect.vue2.mjs.map +1 -1
  26. package/es/packages/components/touchchat/component/PDFFile.vue2.mjs +10 -10
  27. package/es/packages/components/touchchat/component/PDFFile.vue2.mjs.map +1 -1
  28. package/es/packages/components/touchchat/component/QuoteContent.vue2.mjs.map +1 -1
  29. package/es/packages/components/touchchat/component/RealtimeVoice.vue2.mjs +1 -1
  30. package/es/packages/components/touchchat/component/RealtimeVoice.vue2.mjs.map +1 -1
  31. package/es/packages/components/touchchat/component/UploadView.vue2.mjs.map +1 -1
  32. package/es/packages/components/touchchat/component/VideoFile.vue.mjs +1 -1
  33. package/es/packages/components/touchchat/component/VideoFile.vue2.mjs.map +1 -1
  34. package/es/packages/components/touchchat/src/AiChat/AgentsView.vue2.mjs +1 -1
  35. package/es/packages/components/touchchat/src/AiChat/AgentsView.vue2.mjs.map +1 -1
  36. package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs +30 -30
  37. package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs.map +1 -1
  38. package/es/packages/components/touchchat/src/AiChat/Chat/scriptMatcher.mjs.map +1 -1
  39. package/es/packages/components/touchchat/src/AiChat/Chat/types.mjs.map +1 -1
  40. package/es/packages/components/touchchat/src/AiChat/Chat/useChat.mjs +6 -0
  41. package/es/packages/components/touchchat/src/AiChat/Chat/useChat.mjs.map +1 -1
  42. package/es/packages/components/touchchat/src/AiChat/Chat/useCopy.mjs.map +1 -1
  43. package/es/packages/components/touchchat/src/AiChat/Chat/useMessageRender.mjs +1 -1
  44. package/es/packages/components/touchchat/src/AiChat/Chat/useMessageRender.mjs.map +1 -1
  45. package/es/packages/components/touchchat/src/AiChat/Chat/useSSE.mjs +93 -4
  46. package/es/packages/components/touchchat/src/AiChat/Chat/useSSE.mjs.map +1 -1
  47. package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs +5 -5
  48. package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs.map +1 -1
  49. package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs +1 -1
  50. package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs.map +1 -1
  51. package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs +3 -3
  52. package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs.map +1 -1
  53. package/es/packages/components/touchchat/src/AiChat/MessageActions.vue2.mjs +11 -11
  54. package/es/packages/components/touchchat/src/AiChat/MessageActions.vue2.mjs.map +1 -1
  55. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue2.mjs +3 -3
  56. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue2.mjs.map +1 -1
  57. package/es/packages/components/touchchat/src/AiChat/TouchAgent.vue2.mjs +1 -1
  58. package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs.map +1 -1
  59. package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue2.mjs.map +1 -1
  60. package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs +16 -16
  61. package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs.map +1 -1
  62. package/es/packages/components/touchchat/src/index.vue2.mjs.map +1 -1
  63. package/es/packages/components/touchchat/utils/a2aService.mjs.map +1 -1
  64. package/es/packages/components/touchchat/utils/fetchStream.mjs.map +1 -1
  65. package/es/packages/components/touchchat/utils/markdown.mjs +1 -1
  66. package/lib/node_modules/.pnpm/{dompurify@3.4.3 → dompurify@3.3.0}/node_modules/dompurify/dist/purify.es.js +143 -299
  67. package/lib/node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.js.map +1 -0
  68. package/lib/package.json.css +1 -1
  69. package/lib/package.json.js +1 -1
  70. package/lib/packages/components/resolver.js.map +1 -1
  71. package/lib/packages/components/touchchat/component/AiRobot/HelloChat.vue2.js.map +1 -1
  72. package/lib/packages/components/touchchat/component/AiRobot/letter.vue.js +1 -1
  73. package/lib/packages/components/touchchat/component/AiRobot/letter.vue2.js +9 -9
  74. package/lib/packages/components/touchchat/component/AiRobot/letter.vue2.js.map +1 -1
  75. package/lib/packages/components/touchchat/component/FileContent.vue2.js +3 -3
  76. package/lib/packages/components/touchchat/component/FileContent.vue2.js.map +1 -1
  77. package/lib/packages/components/touchchat/component/FileView.vue2.js +2 -2
  78. package/lib/packages/components/touchchat/component/FileView.vue2.js.map +1 -1
  79. package/lib/packages/components/touchchat/component/HelloChat.vue2.js.map +1 -1
  80. package/lib/packages/components/touchchat/component/ImageFile.vue2.js +6 -6
  81. package/lib/packages/components/touchchat/component/ImageFile.vue2.js.map +1 -1
  82. package/lib/packages/components/touchchat/component/ImageView.vue2.js +1 -1
  83. package/lib/packages/components/touchchat/component/ImageView.vue2.js.map +1 -1
  84. package/lib/packages/components/touchchat/component/LinkView.vue2.js +4 -4
  85. package/lib/packages/components/touchchat/component/LinkView.vue2.js.map +1 -1
  86. package/lib/packages/components/touchchat/component/MarkLayer.vue2.js +1 -1
  87. package/lib/packages/components/touchchat/component/MarkLayer.vue2.js.map +1 -1
  88. package/lib/packages/components/touchchat/component/ModuleSelect.vue2.js +2 -2
  89. package/lib/packages/components/touchchat/component/ModuleSelect.vue2.js.map +1 -1
  90. package/lib/packages/components/touchchat/component/PDFFile.vue2.js +10 -10
  91. package/lib/packages/components/touchchat/component/PDFFile.vue2.js.map +1 -1
  92. package/lib/packages/components/touchchat/component/QuoteContent.vue2.js.map +1 -1
  93. package/lib/packages/components/touchchat/component/RealtimeVoice.vue2.js +1 -1
  94. package/lib/packages/components/touchchat/component/RealtimeVoice.vue2.js.map +1 -1
  95. package/lib/packages/components/touchchat/component/UploadView.vue2.js.map +1 -1
  96. package/lib/packages/components/touchchat/component/VideoFile.vue.js +1 -1
  97. package/lib/packages/components/touchchat/component/VideoFile.vue2.js.map +1 -1
  98. package/lib/packages/components/touchchat/src/AiChat/AgentsView.vue2.js +1 -1
  99. package/lib/packages/components/touchchat/src/AiChat/AgentsView.vue2.js.map +1 -1
  100. package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js +30 -30
  101. package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js.map +1 -1
  102. package/lib/packages/components/touchchat/src/AiChat/Chat/scriptMatcher.js.map +1 -1
  103. package/lib/packages/components/touchchat/src/AiChat/Chat/types.js.map +1 -1
  104. package/lib/packages/components/touchchat/src/AiChat/Chat/useChat.js +6 -0
  105. package/lib/packages/components/touchchat/src/AiChat/Chat/useChat.js.map +1 -1
  106. package/lib/packages/components/touchchat/src/AiChat/Chat/useCopy.js.map +1 -1
  107. package/lib/packages/components/touchchat/src/AiChat/Chat/useMessageRender.js +1 -1
  108. package/lib/packages/components/touchchat/src/AiChat/Chat/useMessageRender.js.map +1 -1
  109. package/lib/packages/components/touchchat/src/AiChat/Chat/useSSE.js +93 -4
  110. package/lib/packages/components/touchchat/src/AiChat/Chat/useSSE.js.map +1 -1
  111. package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js +5 -5
  112. package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js.map +1 -1
  113. package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js +1 -1
  114. package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js.map +1 -1
  115. package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js +3 -3
  116. package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js.map +1 -1
  117. package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue2.js +11 -11
  118. package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue2.js.map +1 -1
  119. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue2.js +3 -3
  120. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue2.js.map +1 -1
  121. package/lib/packages/components/touchchat/src/AiChat/TouchAgent.vue2.js +1 -1
  122. package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js.map +1 -1
  123. package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue2.js.map +1 -1
  124. package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js +16 -16
  125. package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js.map +1 -1
  126. package/lib/packages/components/touchchat/src/index.vue2.js.map +1 -1
  127. package/lib/packages/components/touchchat/utils/a2aService.js.map +1 -1
  128. package/lib/packages/components/touchchat/utils/fetchStream.js.map +1 -1
  129. package/lib/packages/components/touchchat/utils/markdown.js +1 -1
  130. package/package.json +83 -83
  131. package/es/node_modules/.pnpm/dompurify@3.4.3/node_modules/dompurify/dist/purify.es.mjs.map +0 -1
  132. package/lib/node_modules/.pnpm/dompurify@3.4.3/node_modules/dompurify/dist/purify.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"HistorySidebar.vue2.mjs","sources":["../../../../../../../packages/components/touchchat/src/AiChat/HistorySidebar.vue"],"sourcesContent":["<template>\n\t<div class=\"touchchat-side\">\n\t\t<div class=\"touchchat-side-header\">\n\t\t\t<div class=\"touchchat-logo\">\n\t\t\t\t<div class=\"touchchat-logo-pic\"></div>\n\t\t\t\t<div class=\"touchchat-logo-text\">{{ title }}</div>\n\t\t\t</div>\n\t\t\t<div class=\"touchchat-side-fn\" @click=\"handleToggleSidebar\">\n\t\t\t\t<div class=\"touchchat-hidemenu\">\n\t\t\t\t\t<div class=\"touchchat-hidemenu-icon\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<!-- 新对话按钮 -->\n\t\t<button class=\"touchchat-add\" @click=\"handleStartNewChat\">\n\t\t\t<div class=\"touchchat-add-icon\"></div>\n\t\t\t<div class=\"touchchat-add-text\">新建对话</div>\n\t\t</button>\n\n\t\t<agents-view :active-chat=\"activeChat\" @select-chat=\"agentsSelectChat\"></agents-view>\n\n\t\t<!-- 引入历史记录列表组件 -->\n\t\t<HistoryList :active-chat=\"activeChat\" :chat-history=\"chatHistory\" @select-chat=\"handleSelectChat\" @rename-chat=\"handleRenameChat\" @delete-chat=\"remove\" />\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\n// , watch\nimport { reactive, inject, ref } from 'vue'\nimport HistoryList from './HistoryList.vue'\nimport AgentsView from './AgentsView.vue'\n\n// 类型定义\ninterface ChatMessage {\n\tchatId?: string\n\tuser: string\n\ttype: string\n\tcontent: string\n\tisShowAvatar?: boolean\n\tavatar?: string\n\tisChating?: boolean\n\tthinkContent?: string\n\treasoningContent?: string\n}\n\ninterface HistoryItem {\n\tid: string\n\ttitle: string\n\ttime: Date\n\ttype: string\n\tmessages?: ChatMessage[]\n}\n\n// Props\nconst props = defineProps<{\n\tisSidebarCollapsed: boolean\n\tactiveChat: string\n\tchatHistory: HistoryItem[]\n}>()\n\n// watch(\n// \t() => props.chatHistory,\n// \tnewVal => {\n// \t\tconsole.log('props.chatHistory === HistorySidebar.vue === 162', newVal)\n// \t},\n// \t{ deep: true }\n// )\n\n// Emits\nconst emit = defineEmits<{\n\t(e: 'toggle-sidebar'): void\n\t(e: 'start-new-chat'): void\n\t(e: 'select-chat', id: string, type?: string): void\n\t(e: 'rename-chat', id: string, newTitle: string): void\n\t(e: 'delete-chat', id: string): void\n}>()\n\nconst title = ref(inject('title', 'TouchChat'))\n\n// 内部状态\nconst state = reactive<{\n\trenameInput: string\n\tcurrentRenameId: string\n}>({\n\trenameInput: '',\n\tcurrentRenameId: ''\n})\n\n// 处理重命名请求\nconst handleRenameChat = (id: string, title: string) => {\n\tconst item = props.chatHistory.find(item => item.id === id)\n\tif (item) {\n\t\tstate.currentRenameId = id\n\t\tstate.renameInput = item.title\n\t\temit('rename-chat', id, title)\n\t}\n}\n\n// 处理删除请求\nconst remove = (id: string) => {\n\temit('delete-chat', id)\n}\n\n// 其他事件处理\nconst handleToggleSidebar = () => {\n\temit('toggle-sidebar')\n}\n\nconst handleStartNewChat = () => {\n\temit('start-new-chat')\n}\n\nconst agentsSelectChat = (id: string) => {\n\thandleSelectChat(id, 'agents')\n}\n\nconst handleSelectChat = (id: string, type?: string) => {\n\temit('select-chat', id, type)\n}\n</script>\n"],"names":["title","item","_createElementBlock","_createElementVNode","_createCommentVNode","_createVNode"],"mappings":"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"}
1
+ {"version":3,"file":"HistorySidebar.vue2.mjs","sources":["../../../../../../../packages/components/touchchat/src/AiChat/HistorySidebar.vue"],"sourcesContent":["<template>\n\t<div class=\"touchchat-side\">\n\t\t<div class=\"touchchat-side-header\">\n\t\t\t<div class=\"touchchat-logo\">\n\t\t\t\t<div class=\"touchchat-logo-pic\"></div>\n\t\t\t\t<div class=\"touchchat-logo-text\">{{ title }}</div>\n\t\t\t</div>\n\t\t\t<div class=\"touchchat-side-fn\" @click=\"handleToggleSidebar\">\n\t\t\t\t<div class=\"touchchat-hidemenu\">\n\t\t\t\t\t<div class=\"touchchat-hidemenu-icon\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<!-- 新对话按钮 -->\n\t\t<button class=\"touchchat-add\" @click=\"handleStartNewChat\">\n\t\t\t<div class=\"touchchat-add-icon\"></div>\n\t\t\t<div class=\"touchchat-add-text\">新建对话</div>\n\t\t</button>\n\n\t\t<agents-view :active-chat=\"activeChat\" @select-chat=\"agentsSelectChat\"></agents-view>\n\n\t\t<!-- 引入历史记录列表组件 -->\n\t\t<HistoryList :active-chat=\"activeChat\" :chat-history=\"chatHistory\" @select-chat=\"handleSelectChat\" @rename-chat=\"handleRenameChat\" @delete-chat=\"remove\" />\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\n// , watch\nimport { reactive, inject, ref } from 'vue'\nimport HistoryList from './HistoryList.vue'\nimport AgentsView from './AgentsView.vue'\n\n// 类型定义\ninterface ChatMessage {\n\tchatId?: string\n\tuser: string\n\ttype: string\n\tcontent: string\n\tisShowAvatar?: boolean\n\tavatar?: string\n\tisChating?: boolean\n\tthinkContent?: string\n\treasoningContent?: string\n}\n\ninterface HistoryItem {\n\tid: string\n\ttitle: string\n\ttime: Date\n\ttype: string\n\tmessages?: ChatMessage[]\n}\n\n// Props\nconst props = defineProps<{\n\tisSidebarCollapsed: boolean\n\tactiveChat: string\n\tchatHistory: HistoryItem[]\n}>()\n\n// watch(\n// \t() => props.chatHistory,\n// \tnewVal => {\n// \t\tconsole.log('props.chatHistory === HistorySidebar.vue === 162', newVal)\n// \t},\n// \t{ deep: true }\n// )\n\n// Emits\nconst emit = defineEmits<{\n\t(e: 'toggle-sidebar'): void\n\t(e: 'start-new-chat'): void\n\t(e: 'select-chat', id: string, type?: string): void\n\t(e: 'rename-chat', id: string, newTitle: string): void\n\t(e: 'delete-chat', id: string): void\n}>()\n\nconst title = ref(inject('title', 'TouchChat'))\n\n// 内部状态\nconst state = reactive<{\n\trenameInput: string\n\tcurrentRenameId: string\n}>({\n\trenameInput: '',\n\tcurrentRenameId: ''\n})\n\n// 处理重命名请求\nconst handleRenameChat = (id: string, title: string) => {\n\tconst item = props.chatHistory.find(item => item.id === id)\n\tif (item) {\n\t\tstate.currentRenameId = id\n\t\tstate.renameInput = item.title\n\t\temit('rename-chat', id, title)\n\t}\n}\n\n// 处理删除请求\nconst remove = (id: string) => {\n\temit('delete-chat', id)\n}\n\n// 其他事件处理\nconst handleToggleSidebar = () => {\n\temit('toggle-sidebar')\n}\n\nconst handleStartNewChat = () => {\n\temit('start-new-chat')\n}\n\nconst agentsSelectChat = (id: string) => {\n\thandleSelectChat(id, 'agents')\n}\n\nconst handleSelectChat = (id: string, type?: string) => {\n\temit('select-chat', id, type)\n}\n</script>\n"],"names":["title","item","_createElementBlock","_createElementVNode","_createCommentVNode","_createVNode","activeChat","chatHistory"],"mappings":"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"}
@@ -73,11 +73,11 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
73
73
  return openBlock(), createElementBlock(
74
74
  "div",
75
75
  {
76
- class: normalizeClass(["touchchat-action", { "type-ai": __props.messageType === "ai" }])
76
+ class: normalizeClass(["touchchat-action", { "type-ai": _ctx.messageType === "ai" }])
77
77
  },
78
78
  [
79
79
  createCommentVNode(" \u590D\u5236\u6309\u94AE - \u4E24\u4E2A\u6D88\u606F\u7C7B\u578B\u90FD\u6709 "),
80
- ((_a = __props.item) == null ? void 0 : _a.isShowCopy) || __props.messageType === "user" ? (openBlock(), createElementBlock("div", {
80
+ ((_a = _ctx.item) == null ? void 0 : _a.isShowCopy) || _ctx.messageType === "user" ? (openBlock(), createElementBlock("div", {
81
81
  key: 0,
82
82
  class: "touchchat-action-item value-copy",
83
83
  onClick: onCopy
@@ -85,22 +85,22 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
85
85
  createElementVNode("div", { class: "touchchat-action-tip" }, "\u590D\u5236")
86
86
  ])) : createCommentVNode("v-if", true),
87
87
  createCommentVNode(" AI\u6D88\u606F\u7279\u6709\u6309\u94AE "),
88
- __props.messageType === "ai" ? (openBlock(), createElementBlock(
88
+ _ctx.messageType === "ai" ? (openBlock(), createElementBlock(
89
89
  Fragment,
90
90
  { key: 1 },
91
91
  [
92
- __props.hasRetry && ((_b = unref(messageActions)) == null ? void 0 : _b.ai.includes("retry")) ? (openBlock(), createElementBlock("div", {
92
+ _ctx.hasRetry && ((_b = unref(messageActions)) == null ? void 0 : _b.ai.includes("retry")) ? (openBlock(), createElementBlock("div", {
93
93
  key: 0,
94
94
  class: "touchchat-action-item value-refresh",
95
95
  onClick: onRetry
96
96
  }, [
97
97
  createElementVNode("div", { class: "touchchat-action-tip" }, "\u91CD\u65B0\u83B7\u53D6")
98
98
  ])) : createCommentVNode("v-if", true),
99
- ((_c = __props.item) == null ? void 0 : _c.isShowLike) && ((_d = unref(messageActions)) == null ? void 0 : _d.ai.includes("like")) ? (openBlock(), createElementBlock(
99
+ ((_c = _ctx.item) == null ? void 0 : _c.isShowLike) && ((_d = unref(messageActions)) == null ? void 0 : _d.ai.includes("like")) ? (openBlock(), createElementBlock(
100
100
  "div",
101
101
  {
102
102
  key: 1,
103
- class: normalizeClass(["touchchat-action-item value-good", { "is-on": (_e = __props.item) == null ? void 0 : _e.isLiked }]),
103
+ class: normalizeClass(["touchchat-action-item value-good", { "is-on": (_e = _ctx.item) == null ? void 0 : _e.isLiked }]),
104
104
  onClick: onLike
105
105
  },
106
106
  [
@@ -113,7 +113,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
113
113
  "div",
114
114
  {
115
115
  key: 2,
116
- class: normalizeClass(["touchchat-action-item value-bad", { "is-on": (_g = __props.item) == null ? void 0 : _g.isDisliked }]),
116
+ class: normalizeClass(["touchchat-action-item value-bad", { "is-on": (_g = _ctx.item) == null ? void 0 : _g.isDisliked }]),
117
117
  onClick: onDislike
118
118
  },
119
119
  [
@@ -142,11 +142,11 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
142
142
  /* STABLE_FRAGMENT */
143
143
  )) : createCommentVNode("v-if", true),
144
144
  createCommentVNode(" \u7528\u6237\u6D88\u606F\u7279\u6709\u6309\u94AE "),
145
- __props.messageType === "user" ? (openBlock(), createElementBlock(
145
+ _ctx.messageType === "user" ? (openBlock(), createElementBlock(
146
146
  Fragment,
147
147
  { key: 2 },
148
148
  [
149
- ((_j = __props.item) == null ? void 0 : _j.content) && !unref(scripts).length && ((_k = unref(messageActions)) == null ? void 0 : _k.user.includes("edit")) ? (openBlock(), createElementBlock("div", {
149
+ ((_j = _ctx.item) == null ? void 0 : _j.content) && !unref(scripts).length && ((_k = unref(messageActions)) == null ? void 0 : _k.user.includes("edit")) ? (openBlock(), createElementBlock("div", {
150
150
  key: 0,
151
151
  class: "touchchat-action-item value-edit",
152
152
  onClick: onEdit
@@ -173,8 +173,8 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
173
173
  /* STABLE_FRAGMENT */
174
174
  )) : createCommentVNode("v-if", true),
175
175
  renderSlot(_ctx.$slots, "extendsFn", {
176
- item: __props.item,
177
- index: __props.index
176
+ item: _ctx.item,
177
+ index: _ctx.index
178
178
  }),
179
179
  isDeleteDialogVisible.value ? (openBlock(), createElementBlock("div", {
180
180
  key: 3,
@@ -1 +1 @@
1
- {"version":3,"file":"MessageActions.vue2.mjs","sources":["../../../../../../../packages/components/touchchat/src/AiChat/MessageActions.vue"],"sourcesContent":["<template>\r\n\t<div class=\"touchchat-action\" :class=\"{ 'type-ai': messageType === 'ai' }\">\r\n\t\t<!-- 复制按钮 - 两个消息类型都有 -->\r\n\t\t<div v-if=\"item?.isShowCopy || messageType === 'user'\" class=\"touchchat-action-item value-copy\" @click=\"onCopy\">\r\n\t\t\t<div class=\"touchchat-action-tip\">复制</div>\r\n\t\t</div>\r\n\r\n\t\t<!-- AI消息特有按钮 -->\r\n\t\t<template v-if=\"messageType === 'ai'\">\r\n\t\t\t<div v-if=\"hasRetry && messageActions?.ai.includes('retry')\" class=\"touchchat-action-item value-refresh\" @click=\"onRetry\">\r\n\t\t\t\t<div class=\"touchchat-action-tip\">重新获取</div>\r\n\t\t\t</div>\r\n\t\t\t<div v-if=\"item?.isShowLike && messageActions?.ai.includes('like')\" class=\"touchchat-action-item value-good\" :class=\"{ 'is-on': item?.isLiked }\" @click=\"onLike\">\r\n\t\t\t\t<div class=\"touchchat-action-tip\">点赞</div>\r\n\t\t\t</div>\r\n\t\t\t<div v-if=\"messageActions?.ai.includes('dislike')\" class=\"touchchat-action-item value-bad\" :class=\"{ 'is-on': item?.isDisliked }\" @click=\"onDislike\">\r\n\t\t\t\t<div class=\"touchchat-action-tip\">不喜欢</div>\r\n\t\t\t</div>\r\n\t\t\t<div v-if=\"messageActions?.ai.includes('share')\" class=\"touchchat-action-item value-share\" @click=\"onShare\">\r\n\t\t\t\t<div class=\"touchchat-action-tip\">转发</div>\r\n\t\t\t</div>\r\n\t\t\t<div v-if=\"messageActions?.ai.includes('quote')\" class=\"touchchat-action-item value-quote\" @click=\"onQuote\">\r\n\t\t\t\t<div class=\"touchchat-action-tip\">引用</div>\r\n\t\t\t</div>\r\n\t\t\t<!-- <slot name=\"extendsFn\" :item=\"item\" :index=\"index\" /> -->\r\n\t\t</template>\r\n\r\n\t\t<!-- 用户消息特有按钮 -->\r\n\t\t<template v-if=\"messageType === 'user'\">\r\n\t\t\t<div v-if=\"item?.content && !scripts.length && messageActions?.user.includes('edit')\" class=\"touchchat-action-item value-edit\" @click=\"onEdit\">\r\n\t\t\t\t<div class=\"touchchat-action-tip\">编辑</div>\r\n\t\t\t</div>\r\n\t\t\t<div v-if=\"messageActions?.user.includes('delete')\" class=\"touchchat-action-item value-remove\" @click=\"isDeleteDialogVisible = true\">\r\n\t\t\t\t<div class=\"touchchat-action-tip\">删除</div>\r\n\t\t\t</div>\r\n\t\t\t<div v-if=\"messageActions?.user.includes('withDraw')\" class=\"touchchat-action-item value-enter\" @click=\"onWithdraw\">\r\n\t\t\t\t<div class=\"touchchat-action-tip\">撤回</div>\r\n\t\t\t</div>\r\n\t\t\t<!-- <slot name=\"extendsFn\" :item=\"item\" :index=\"index\" /> -->\r\n\t\t</template>\r\n\r\n\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\r\n\r\n\t\t<div v-if=\"isDeleteDialogVisible\" class=\"delete-dialog-overlay\">\r\n\t\t\t<div class=\"delete-dialog\">\r\n\t\t\t\t<div class=\"delete-dialog-title\">永久删除对话</div>\r\n\t\t\t\t<div class=\"delete-dialog-content\">删除后,该对话将不可恢复。确认删除吗?</div>\r\n\t\t\t\t<div class=\"delete-dialog-actions\">\r\n\t\t\t\t\t<button class=\"delete-dialog-cancel\" @click=\"handleCancelDelete\">取消</button>\r\n\t\t\t\t\t<button class=\"delete-dialog-confirm\" @click=\"handleConfirmDelete\">确认</button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { inject, ref } from 'vue'\r\nimport type { ChatMessage, MessageActions } from './Chat/types'\r\nconst scripts = inject<any[]>('scripts', [])\r\n\r\nconst props = defineProps<{\r\n\titem: ChatMessage\r\n\tindex: number\r\n\tmessageType: 'ai' | 'user'\r\n\thasRetry?: boolean\r\n\tshowCopy?: boolean\r\n}>()\r\n\r\n// const props = withDefaults(\r\n// \tdefineProps<{\r\n// \t\tmessageType: 'ai' | 'user' // 消息类型\r\n// \t\tindex: number // 消息索引\r\n// \t\tshowCopy?: boolean // 是否显示复制按钮\r\n// \t\t// AI消息特有属性\r\n// \t\tisShowLike?: boolean // 是否显示点赞按钮\r\n// \t\tisLiked?: boolean // 是否已点赞\r\n// \t\tisDisliked?: boolean // 是否已点踩\r\n// \t\t// 用户消息特有属性\r\n// \t\tisEditing?: boolean // 是否正在编辑\r\n// \t\tcontent?: string // 消息内容,仅用于用户消息\r\n// \t\thasRetry?: boolean // 是否有重试操作,仅用于AI消息\r\n// \t}>(),\r\n// \t{\r\n// \t\tshowCopy: true,\r\n// \t\tisShowLike: false,\r\n// \t\tisLiked: false,\r\n// \t\tisDisliked: false,\r\n// \t\tisEditing: false,\r\n// \t\tcontent: '',\r\n// \t\thasRetry: true\r\n// \t}\r\n// )\r\n\r\nconst isDeleteDialogVisible = ref(false)\r\n\r\nconst emits = defineEmits<{\r\n\t(e: 'copy', index: number): void\r\n\t(e: 'retry', index: number): void\r\n\t(e: 'like', index: number): void\r\n\t(e: 'dislike', index: number): void\r\n\t(e: 'edit', index: number): void\r\n\t(e: 'delete', index: number): void\r\n\t(e: 'quote'): void\r\n\t(e: 'withDraw'): void\r\n}>()\r\n\r\nconst onCopy = () => emits('copy', props.index)\r\nconst onRetry = () => emits('retry', props.index)\r\nconst onLike = () => {\r\n\t// 调用注入的 like 函数,传递索引和当前点赞状态的反值\r\n\tlike(props.index, !props.item?.isLiked)\r\n\t// 如果当前是点赞操作(由未点赞变为点赞),则重置不喜欢状态\r\n\tif (!props.item?.isLiked) {\r\n\t\tdislike(props.index, false)\r\n\t}\r\n\temits('like', props.index)\r\n}\r\nconst onDislike = () => {\r\n\t// 调用注入的 dislike 函数,传递索引和当前不喜欢状态的反值\r\n\tdislike(props.index, !props.item?.isDisliked)\r\n\t// 如果当前是不喜欢操作(由未不喜欢变为不喜欢),则重置点赞状态\r\n\tif (!props.item?.isDisliked) {\r\n\t\tlike(props.index, false)\r\n\t}\r\n\temits('dislike', props.index)\r\n}\r\nconst onQuote = () => {\r\n\temits('quote')\r\n}\r\nconst onEdit = () => emits('edit', props.index)\r\n// const onDelete = () => emits('delete', props.index)\r\n\r\nconst handleConfirmDelete = () => {\r\n\temits('delete', props.index)\r\n\tremove(props.item, props.index)\r\n\tisDeleteDialogVisible.value = false\r\n}\r\n\r\nconst onWithdraw = () => {\r\n\temits('withDraw')\r\n\twithDraw(props.item, props.index)\r\n}\r\n\r\nconst handleCancelDelete = () => {\r\n\tisDeleteDialogVisible.value = false\r\n}\r\n\r\nconst like = inject<(index: number, isLike: boolean) => void>('like', () => {\r\n\tconsole.warn('未提供like函数')\r\n})\r\nconst dislike = inject<(index: number, isUnlike: boolean) => void>('dislike', () => {\r\n\tconsole.warn('未提供dislike函数')\r\n})\r\nconst remove = inject<(item: any, index: number) => void>('remove', () => {\r\n\tconsole.warn('未提供detailRemove函数')\r\n})\r\nconst share = inject<(item: any, index: number) => void>('share', () => {\r\n\tconsole.warn('未提供share函数')\r\n})\r\nconst withDraw = inject<(item: any, index: number) => void>('withDraw', () => {\r\n\tconsole.warn('未提供withDraw函数')\r\n})\r\nconst messageActions = inject<MessageActions>('messageActions')\r\n\r\nconst onShare = () => {\r\n\tshare(props.item, props.index)\r\n}\r\n</script>\r\n\r\n<!-- <style lang=\"less\" scoped>\r\n@import '../../style/MessageActions.less';\r\n</style> -->\r\n"],"names":["_createElementBlock","_normalizeClass","_createCommentVNode","_createElementVNode","_Fragment","_unref","_renderSlot"],"mappings":"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"}
1
+ {"version":3,"file":"MessageActions.vue2.mjs","sources":["../../../../../../../packages/components/touchchat/src/AiChat/MessageActions.vue"],"sourcesContent":["<template>\n\t<div class=\"touchchat-action\" :class=\"{ 'type-ai': messageType === 'ai' }\">\n\t\t<!-- 复制按钮 - 两个消息类型都有 -->\n\t\t<div v-if=\"item?.isShowCopy || messageType === 'user'\" class=\"touchchat-action-item value-copy\" @click=\"onCopy\">\n\t\t\t<div class=\"touchchat-action-tip\">复制</div>\n\t\t</div>\n\n\t\t<!-- AI消息特有按钮 -->\n\t\t<template v-if=\"messageType === 'ai'\">\n\t\t\t<div v-if=\"hasRetry && messageActions?.ai.includes('retry')\" class=\"touchchat-action-item value-refresh\" @click=\"onRetry\">\n\t\t\t\t<div class=\"touchchat-action-tip\">重新获取</div>\n\t\t\t</div>\n\t\t\t<div v-if=\"item?.isShowLike && messageActions?.ai.includes('like')\" class=\"touchchat-action-item value-good\" :class=\"{ 'is-on': item?.isLiked }\" @click=\"onLike\">\n\t\t\t\t<div class=\"touchchat-action-tip\">点赞</div>\n\t\t\t</div>\n\t\t\t<div v-if=\"messageActions?.ai.includes('dislike')\" class=\"touchchat-action-item value-bad\" :class=\"{ 'is-on': item?.isDisliked }\" @click=\"onDislike\">\n\t\t\t\t<div class=\"touchchat-action-tip\">不喜欢</div>\n\t\t\t</div>\n\t\t\t<div v-if=\"messageActions?.ai.includes('share')\" class=\"touchchat-action-item value-share\" @click=\"onShare\">\n\t\t\t\t<div class=\"touchchat-action-tip\">转发</div>\n\t\t\t</div>\n\t\t\t<div v-if=\"messageActions?.ai.includes('quote')\" class=\"touchchat-action-item value-quote\" @click=\"onQuote\">\n\t\t\t\t<div class=\"touchchat-action-tip\">引用</div>\n\t\t\t</div>\n\t\t\t<!-- <slot name=\"extendsFn\" :item=\"item\" :index=\"index\" /> -->\n\t\t</template>\n\n\t\t<!-- 用户消息特有按钮 -->\n\t\t<template v-if=\"messageType === 'user'\">\n\t\t\t<div v-if=\"item?.content && !scripts.length && messageActions?.user.includes('edit')\" class=\"touchchat-action-item value-edit\" @click=\"onEdit\">\n\t\t\t\t<div class=\"touchchat-action-tip\">编辑</div>\n\t\t\t</div>\n\t\t\t<div v-if=\"messageActions?.user.includes('delete')\" class=\"touchchat-action-item value-remove\" @click=\"isDeleteDialogVisible = true\">\n\t\t\t\t<div class=\"touchchat-action-tip\">删除</div>\n\t\t\t</div>\n\t\t\t<div v-if=\"messageActions?.user.includes('withDraw')\" class=\"touchchat-action-item value-enter\" @click=\"onWithdraw\">\n\t\t\t\t<div class=\"touchchat-action-tip\">撤回</div>\n\t\t\t</div>\n\t\t\t<!-- <slot name=\"extendsFn\" :item=\"item\" :index=\"index\" /> -->\n\t\t</template>\n\n\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\n\t\t<div v-if=\"isDeleteDialogVisible\" class=\"delete-dialog-overlay\">\n\t\t\t<div class=\"delete-dialog\">\n\t\t\t\t<div class=\"delete-dialog-title\">永久删除对话</div>\n\t\t\t\t<div class=\"delete-dialog-content\">删除后,该对话将不可恢复。确认删除吗?</div>\n\t\t\t\t<div class=\"delete-dialog-actions\">\n\t\t\t\t\t<button class=\"delete-dialog-cancel\" @click=\"handleCancelDelete\">取消</button>\n\t\t\t\t\t<button class=\"delete-dialog-confirm\" @click=\"handleConfirmDelete\">确认</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { inject, ref } from 'vue'\nimport type { ChatMessage, MessageActions } from './Chat/types'\nconst scripts = inject<any[]>('scripts', [])\n\nconst props = defineProps<{\n\titem: ChatMessage\n\tindex: number\n\tmessageType: 'ai' | 'user'\n\thasRetry?: boolean\n\tshowCopy?: boolean\n}>()\n\n// const props = withDefaults(\n// \tdefineProps<{\n// \t\tmessageType: 'ai' | 'user' // 消息类型\n// \t\tindex: number // 消息索引\n// \t\tshowCopy?: boolean // 是否显示复制按钮\n// \t\t// AI消息特有属性\n// \t\tisShowLike?: boolean // 是否显示点赞按钮\n// \t\tisLiked?: boolean // 是否已点赞\n// \t\tisDisliked?: boolean // 是否已点踩\n// \t\t// 用户消息特有属性\n// \t\tisEditing?: boolean // 是否正在编辑\n// \t\tcontent?: string // 消息内容,仅用于用户消息\n// \t\thasRetry?: boolean // 是否有重试操作,仅用于AI消息\n// \t}>(),\n// \t{\n// \t\tshowCopy: true,\n// \t\tisShowLike: false,\n// \t\tisLiked: false,\n// \t\tisDisliked: false,\n// \t\tisEditing: false,\n// \t\tcontent: '',\n// \t\thasRetry: true\n// \t}\n// )\n\nconst isDeleteDialogVisible = ref(false)\n\nconst emits = defineEmits<{\n\t(e: 'copy', index: number): void\n\t(e: 'retry', index: number): void\n\t(e: 'like', index: number): void\n\t(e: 'dislike', index: number): void\n\t(e: 'edit', index: number): void\n\t(e: 'delete', index: number): void\n\t(e: 'quote'): void\n\t(e: 'withDraw'): void\n}>()\n\nconst onCopy = () => emits('copy', props.index)\nconst onRetry = () => emits('retry', props.index)\nconst onLike = () => {\n\t// 调用注入的 like 函数,传递索引和当前点赞状态的反值\n\tlike(props.index, !props.item?.isLiked)\n\t// 如果当前是点赞操作(由未点赞变为点赞),则重置不喜欢状态\n\tif (!props.item?.isLiked) {\n\t\tdislike(props.index, false)\n\t}\n\temits('like', props.index)\n}\nconst onDislike = () => {\n\t// 调用注入的 dislike 函数,传递索引和当前不喜欢状态的反值\n\tdislike(props.index, !props.item?.isDisliked)\n\t// 如果当前是不喜欢操作(由未不喜欢变为不喜欢),则重置点赞状态\n\tif (!props.item?.isDisliked) {\n\t\tlike(props.index, false)\n\t}\n\temits('dislike', props.index)\n}\nconst onQuote = () => {\n\temits('quote')\n}\nconst onEdit = () => emits('edit', props.index)\n// const onDelete = () => emits('delete', props.index)\n\nconst handleConfirmDelete = () => {\n\temits('delete', props.index)\n\tremove(props.item, props.index)\n\tisDeleteDialogVisible.value = false\n}\n\nconst onWithdraw = () => {\n\temits('withDraw')\n\twithDraw(props.item, props.index)\n}\n\nconst handleCancelDelete = () => {\n\tisDeleteDialogVisible.value = false\n}\n\nconst like = inject<(index: number, isLike: boolean) => void>('like', () => {\n\tconsole.warn('未提供like函数')\n})\nconst dislike = inject<(index: number, isUnlike: boolean) => void>('dislike', () => {\n\tconsole.warn('未提供dislike函数')\n})\nconst remove = inject<(item: any, index: number) => void>('remove', () => {\n\tconsole.warn('未提供detailRemove函数')\n})\nconst share = inject<(item: any, index: number) => void>('share', () => {\n\tconsole.warn('未提供share函数')\n})\nconst withDraw = inject<(item: any, index: number) => void>('withDraw', () => {\n\tconsole.warn('未提供withDraw函数')\n})\nconst messageActions = inject<MessageActions>('messageActions')\n\nconst onShare = () => {\n\tshare(props.item, props.index)\n}\n</script>\n\n<!-- <style lang=\"less\" scoped>\n@import '../../style/MessageActions.less';\n</style> -->\n"],"names":["_createElementBlock","_normalizeClass","messageType","_createCommentVNode","item","_createElementVNode","_Fragment","hasRetry","_unref","_renderSlot","index"],"mappings":"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"}
@@ -12,12 +12,12 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
12
12
  return openBlock(), createElementBlock(
13
13
  "div",
14
14
  {
15
- class: normalizeClass(["sider-bar-view", __props.flag ? "sider-bar-view-flag" : ""])
15
+ class: normalizeClass(["sider-bar-view", _ctx.flag ? "sider-bar-view-flag" : ""])
16
16
  },
17
17
  [
18
18
  renderSlot(_ctx.$slots, "extend", {
19
- item: __props.item,
20
- index: __props.index
19
+ item: _ctx.item,
20
+ index: _ctx.index
21
21
  })
22
22
  ],
23
23
  2
@@ -1 +1 @@
1
- {"version":3,"file":"SiderBarView.vue2.mjs","sources":["../../../../../../../packages/components/touchchat/src/AiChat/SiderBarView.vue"],"sourcesContent":["<template>\n\t<div class=\"sider-bar-view\" :class=\"flag ? 'sider-bar-view-flag' : ''\">\n\t\t<slot name=\"extend\" :item=\"item\" :index=\"index\"></slot>\n\t</div>\n</template>\n<script setup lang=\"ts\">\nimport type { ChatMessage } from './Chat/types'\ndefineProps<{\n\tflag: boolean\n\titem: ChatMessage\n\tindex: number\n}>()\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_renderSlot"],"mappings":";;;;;;;;;;;wBACC,EAAAA,kBAAA;AAAA,QAEM,KAAA;AAAA,QAAA;AAAA,UAFD,KAAA,EAAKC,eAAA,CAAC,gBAAA,EAAyB,QAAI,IAAA,GAAA,qBAAA,GAAA,EAAA,CAAA,CAAA;AAAA;;UACvCC,UAAA,CAAuD,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA;AAAA,YAAlC,MAAM,OAAI,CAAA,IAAA;AAAA,YAAG,OAAO,OAAK,CAAA,KAAA;AAAA;;;;;;;;;;;"}
1
+ {"version":3,"file":"SiderBarView.vue2.mjs","sources":["../../../../../../../packages/components/touchchat/src/AiChat/SiderBarView.vue"],"sourcesContent":["<template>\n\t<div class=\"sider-bar-view\" :class=\"flag ? 'sider-bar-view-flag' : ''\">\n\t\t<slot name=\"extend\" :item=\"item\" :index=\"index\"></slot>\n\t</div>\n</template>\n<script setup lang=\"ts\">\nimport type { ChatMessage } from './Chat/types'\ndefineProps<{\n\tflag: boolean\n\titem: ChatMessage\n\tindex: number\n}>()\n</script>\n"],"names":["_createElementBlock","_normalizeClass","flag","_renderSlot","item","index"],"mappings":";;;;;;;;;;;wBACC,EAAAA,kBAAA;AAAA,QAEM,KAAA;AAAA,QAAA;AAAA,UAFD,KAAA,EAAKC,eAAA,CAAC,gBAAA,EAAyBC,KAAI,IAAA,GAAA,qBAAA,GAAA,EAAA,CAAA,CAAA;AAAA;;UACvCC,UAAA,CAAuD,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA;AAAA,YAAlC,MAAMC,IAAI,CAAA,IAAA;AAAA,YAAG,OAAOC,IAAK,CAAA,KAAA;AAAA;;;;;;;;;;;"}
@@ -5,7 +5,7 @@ import ChatInput from './ChatInput.vue.mjs';
5
5
  import HelloChat from '../../component/HelloChat.vue.mjs';
6
6
  import { throttle } from '../../../../../node_modules/.pnpm/throttle-debounce@5.0.2/node_modules/throttle-debounce/esm/index.mjs';
7
7
  import { showToast } from '../../utils/tools.mjs';
8
- import purify from '../../../../../node_modules/.pnpm/dompurify@3.4.3/node_modules/dompurify/dist/purify.es.mjs';
8
+ import purify from '../../../../../node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.mjs';
9
9
  import markdown from '../../utils/markdown.mjs';
10
10
  import { MessageAction, ThinkStatus } from './Chat/types.mjs';
11
11
  import { useMessageRender } from './Chat/useMessageRender.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"TouchChat.vue2.mjs","sources":["../../../../../../../packages/components/touchchat/src/AiChat/TouchChat.vue"],"sourcesContent":["<template>\r\n\t<div class=\"touchchat-main\" @dragover.prevent @dragenter.prevent=\"handleDragEnter\" @dragleave=\"handleDragLeave\" @drop.prevent=\"handleDrop\">\r\n\t\t<div ref=\"chatContainer\" class=\"touchchat-dialog\" @scroll=\"handleScroll\">\r\n\t\t\t<slot name=\"top\"> </slot>\r\n\t\t\t<div v-if=\"chatList.length === 0\" class=\"touchchat-welcome\">\r\n\t\t\t\t<slot name=\"welcome\">\r\n\t\t\t\t\t<HelloChat @send-message=\"sendMessage\" />\r\n\t\t\t\t</slot>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"touchchat-dialog-content\">\r\n\t\t\t\t<template v-for=\"(item, index) in chatList\" :key=\"item.chatId\">\r\n\t\t\t\t\t<div class=\"touchchat-list-box\">\r\n\t\t\t\t\t\t<div v-if=\"isSelectMode\" class=\"touchchat-list-check\">\r\n\t\t\t\t\t\t\t<input v-model=\"item.selecting\" class=\"input-check\" type=\"checkbox\" />\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"touchchat-list-content\" :class=\"[item.selecting ? 'status-select' : '', isSelectMode ? 'select-mode' : '']\" @click=\"handleSelectChange(index)\">\r\n\t\t\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)\" @with-draw=\"handleMessageAction(MessageAction.WITHDRAW, index)\">\r\n\t\t\t\t\t\t\t\t<template #userAvatar>\r\n\t\t\t\t\t\t\t\t\t<slot name=\"userAvatar\" />\r\n\t\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t\t\t<template #fn>\r\n\t\t\t\t\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t\t</UserMessage>\r\n\t\t\t\t\t\t\t<div v-if=\"item.user === 'withDraw'\" class=\"touchchat-dialog-withDraw\">你撤回了一条消息</div>\r\n\t\t\t\t\t\t\t<AiMessage v-if=\"item.user === 'ai'\" :item=\"item\" :index=\"index\" :enable-deep-thinking=\"enableDeepThinking\" :has-retry=\"activeAgentsName || scriptsLength > 0 ? false : true\" @copy=\"handleMessageAction(MessageAction.COPY, index)\" @retry=\"handleMessageAction(MessageAction.RETRY, index)\" @like=\"handleMessageAction(MessageAction.LIKE, index)\" @quote=\"handleMessageQuote\" @dislike=\"handleMessageAction(MessageAction.DISLIKE, index)\" @content-rendered=\"attachCopyButtons\" @complete-rendered=\"completeRendered\" @toggle-sidebar=\"toggleSidebarClick\" @open-side-bar=\"openSideBar\" @send=\"value => handleLikeSend(value, index)\">\r\n\t\t\t\t\t\t\t\t<template #aimsg>\r\n\t\t\t\t\t\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t\t\t<template #msg>\r\n\t\t\t\t\t\t\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t\t\t<template #aiAvatar>\r\n\t\t\t\t\t\t\t\t\t<slot name=\"aiAvatar\" />\r\n\t\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t\t\t<template #fn>\r\n\t\t\t\t\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t\t\t<template #extendsFn>\r\n\t\t\t\t\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t\t\t<template #mayLike>\r\n\t\t\t\t\t\t\t\t\t<slot name=\"mayLike\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t\t\t\t\t</template>\r\n\t\t\t\t\t\t\t</AiMessage>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</template>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div v-if=\"$slots.shortcut\" class=\"touchchat-edit-shortcut\">\r\n\t\t\t<slot name=\"shortcut\"></slot>\r\n\t\t</div>\r\n\t\t<slot name=\"edit\">\r\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=\"(_info: any) => {}\">\r\n\t\t\t\t<template #editTop>\r\n\t\t\t\t\t<slot name=\"editTop\"></slot>\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #editFn>\r\n\t\t\t\t\t<slot name=\"editFn\"></slot>\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #editSubmitRight>\r\n\t\t\t\t\t<slot name=\"editSubmitRight\"></slot>\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #editSubmitLeft>\r\n\t\t\t\t\t<slot name=\"editSubmitLeft\"></slot>\r\n\t\t\t\t</template>\r\n\t\t\t</ChatInput>\r\n\t\t</slot>\r\n\t</div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport UserMessage from './UserMessage.vue'\r\nimport AiMessage from './AiMessage.vue'\r\nimport ChatInput from './ChatInput.vue'\r\nimport HelloChat from '../../component/HelloChat.vue'\r\nimport { ref, computed, onMounted, onBeforeUnmount, inject, watch, provide, type Ref, nextTick, ComputedRef } from 'vue'\r\nimport { MessageAction, type ChatMessage, type ChatMsgList, type ModuleItem } from './Chat/types'\r\nimport { useChat } from './Chat/useChat'\r\nimport { useCopy } from './Chat/useCopy'\r\n\r\n// 组件属性和注入\r\nconst emit = defineEmits(['sendMessage', 'toggleSidebar', 'beforeSendMessage', 'openSideBar'])\r\nconst scripts = inject<Ref<any[]>>('scripts', ref([]))\r\nconst unmatchText = inject<string>('unmatchText', '您的消息未匹配到任何内容')\r\nconst modules = inject<Ref<(string | ModuleItem)[]>>('modules', ref([]))\r\nconst afterSend = inject<(result: object) => void>('afterSend', () => {\r\n\tconsole.warn('未提供afterSend函数')\r\n})\r\nconst sendMessageInject = inject<(value: string, fileList?: any[]) => void>('send', () => {\r\n\tconsole.warn('未提供handleSend函数')\r\n})\r\nconst beforeSend = inject<() => { result: boolean; componentName?: string }>('beforeSend', () => ({\r\n\tresult: true,\r\n\tcomponentName: ''\r\n}))\r\n\r\nconst bottom = inject<() => void>('bottom', () => {\r\n\tconsole.warn('未提供bottom函数')\r\n})\r\n\r\nconst stop = inject<(item: ChatMessage, index: number) => void>('stop', () => {\r\n\tconsole.warn('未提供stop函数')\r\n})\r\n\r\nconst isSelectMode = inject<ComputedRef<boolean>>(\r\n\t'isSelectMode',\r\n\tcomputed(() => false)\r\n)\r\n\r\n// 计算属性\r\nconst scriptsLength = computed(() => scripts.value?.length || 0)\r\n\r\n// 组件属性\r\nconst props = defineProps({\r\n\tvalue: {\r\n\t\ttype: Array as () => ChatMessage[],\r\n\t\tdefault: () => []\r\n\t}\r\n})\r\n\r\n// DOM 引用\r\nconst chatContainer = ref<HTMLElement | null>(null)\r\nconst ChatInputRef = ref<InstanceType<typeof ChatInput> | null>(null)\r\n\r\n// 初始化 useChat\r\nconst {\r\n\tchatList,\r\n\tisChating,\r\n\tinputValue,\r\n\tenableDeepThinking,\r\n\tactiveAgentsName,\r\n\tinit,\r\n\tsendMessage,\r\n\thandleBeforeSend,\r\n\thandleSend,\r\n\thandleStop,\r\n\thandleMessageAction,\r\n\tsaveEdit,\r\n\tcancelEdit,\r\n\tcompleteRendered,\r\n\thandleAgentSelect,\r\n\tupdate,\r\n\tupdateModule,\r\n\thandleDragEnter,\r\n\thandleDragLeave,\r\n\thandleDrop,\r\n\thandleScroll,\r\n\tonMounted: chatOnMounted,\r\n\tonBeforeUnmount: chatOnBeforeUnmount\r\n} = useChat({\r\n\tprops,\r\n\temit: emit as any,\r\n\tscripts: scripts.value,\r\n\tunmatchText,\r\n\tmodules: modules.value,\r\n\tafterSend,\r\n\tsendMessageInject,\r\n\tbeforeSend,\r\n\tbottom,\r\n\tstop,\r\n\tchatContainer,\r\n\tchatInputRef: ChatInputRef\r\n})\r\n\r\n// 使用 useCopy composable\r\nconst { copyWithFeedback } = useCopy()\r\n\r\n// 注入外部的 modelChange 并覆盖,调用内部 updateModule 更新 moduleInfo\r\nconst modelChangeExternal = inject<(item: ModuleItem, index: number) => void>('modelChange', () => {})\r\nprovide('modelChange', (item: ModuleItem, index: number) => {\r\n\tmodelChangeExternal(item, index)\r\n\tupdateModule(item)\r\n})\r\n\r\n// 附加复制按钮到代码块\r\nconst attachCopyButtons = (container: HTMLElement): void => {\r\n\tconst codeBlocks = container.querySelectorAll('pre code')\r\n\tcodeBlocks.forEach(codeBlock => {\r\n\t\tconst pre = codeBlock.parentElement\r\n\t\tif (pre) {\r\n\t\t\tconst copyBtn = document.createElement('button')\r\n\t\t\tcopyBtn.className = 'touchchat-code-copy'\r\n\t\t\tcopyBtn.addEventListener('click', () => {\r\n\t\t\t\tconst code = codeBlock.textContent || ''\r\n\t\t\t\tcopyWithFeedback(code, copyBtn, '', '已复制', 2000)\r\n\t\t\t})\r\n\t\t\tpre.style.position = 'relative'\r\n\t\t\tpre.appendChild(copyBtn)\r\n\t\t}\r\n\t})\r\n}\r\n\r\nconst handleLikeSend = (value: string, idx: number) => {\r\n\thandleSend(value)\r\n\tnextTick(() => {\r\n\t\tchatList.value[idx].likeList = []\r\n\t})\r\n}\r\n\r\nconst handleSelectChange = (idx: number) => {\r\n\tif (isSelectMode.value) {\r\n\t\tchatList.value[idx].selecting = !chatList.value[idx].selecting\r\n\t}\r\n}\r\n\r\n// 侧边栏切换\r\nconst toggleSidebarClick = (item: ChatMessage, index: number) => {\r\n\temit('toggleSidebar', item, index)\r\n}\r\n\r\nconst openSideBar = (item: ChatMessage & ChatMsgList, index: number) => {\r\n\temit('openSideBar', item, index)\r\n}\r\n\r\nconst handleMessageQuote = (item: any, index: number) => {\r\n\tif (ChatInputRef.value) {\r\n\t\tChatInputRef.value.updateQuoteData(item, index)\r\n\t}\r\n}\r\n\r\n// 文件上传\r\nconst itemUploadFile = (_item: any, index: number) => {\r\n\tif (ChatInputRef.value) {\r\n\t\tChatInputRef.value.itemUploadFile(index, 'drop')\r\n\t}\r\n}\r\nconst setInputValue = inject<any>('setInput')\r\n\r\n// 组件生命周期\r\nonMounted(() => {\r\n\tsetInputValue.value = (value: string) => {\r\n\t\tinputValue.value = value\r\n\t}\r\n\tchatOnMounted()\r\n\twatch(\r\n\t\t() => scripts,\r\n\t\t() => {\r\n\t\t\tinit()\r\n\t\t},\r\n\t\t{ deep: true, immediate: false }\r\n\t)\r\n})\r\n\r\nonBeforeUnmount(() => {\r\n\tchatOnBeforeUnmount()\r\n})\r\n\r\n// 提供给子组件\r\nprovide('touchchat', {\r\n\tsend: sendMessage,\r\n\tretry: handleMessageAction\r\n})\r\n\r\n// 暴露方法\r\ndefineExpose({\r\n\tsend: (value: string, fileList?: any[], auto?: boolean, type?: string) => {\r\n\t\thandleSend(value, fileList, auto, type)\r\n\t},\r\n\thandleAgentSelect,\r\n\tretry: (index: number) => {\r\n\t\thandleMessageAction(MessageAction.RETRY, index)\r\n\t},\r\n\tupdate\r\n})\r\n</script>\r\n"],"names":["_createElementBlock","_unref","_createElementVNode","_renderSlot","_createVNode","_openBlock","_Fragment","_renderList","_vModelCheckbox","_createBlock","$slots"],"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<div class=\"touchchat-list-box\">\n\t\t\t\t\t\t<div v-if=\"isSelectMode\" class=\"touchchat-list-check\">\n\t\t\t\t\t\t\t<input v-model=\"item.selecting\" class=\"input-check\" type=\"checkbox\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"touchchat-list-content\" :class=\"[item.selecting ? 'status-select' : '', isSelectMode ? 'select-mode' : '']\" @click=\"handleSelectChange(index)\">\n\t\t\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)\" @with-draw=\"handleMessageAction(MessageAction.WITHDRAW, index)\">\n\t\t\t\t\t\t\t\t<template #userAvatar>\n\t\t\t\t\t\t\t\t\t<slot name=\"userAvatar\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template #fn>\n\t\t\t\t\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</UserMessage>\n\t\t\t\t\t\t\t<div v-if=\"item.user === 'withDraw'\" class=\"touchchat-dialog-withDraw\">你撤回了一条消息</div>\n\t\t\t\t\t\t\t<AiMessage v-if=\"item.user === 'ai'\" :item=\"item\" :index=\"index\" :enable-deep-thinking=\"enableDeepThinking\" :has-retry=\"activeAgentsName || scriptsLength > 0 ? false : true\" @copy=\"handleMessageAction(MessageAction.COPY, index)\" @retry=\"handleMessageAction(MessageAction.RETRY, index)\" @like=\"handleMessageAction(MessageAction.LIKE, index)\" @quote=\"handleMessageQuote\" @dislike=\"handleMessageAction(MessageAction.DISLIKE, index)\" @content-rendered=\"attachCopyButtons\" @complete-rendered=\"completeRendered\" @toggle-sidebar=\"toggleSidebarClick\" @open-side-bar=\"openSideBar\" @send=\"value => handleLikeSend(value, index)\">\n\t\t\t\t\t\t\t\t<template #aimsg>\n\t\t\t\t\t\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template #msg>\n\t\t\t\t\t\t\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template #aiAvatar>\n\t\t\t\t\t\t\t\t\t<slot name=\"aiAvatar\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template #fn>\n\t\t\t\t\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template #extendsFn>\n\t\t\t\t\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template #mayLike>\n\t\t\t\t\t\t\t\t\t<slot name=\"mayLike\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</AiMessage>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\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=\"(_info: any) => {}\">\n\t\t\t\t<template #editTop>\n\t\t\t\t\t<slot name=\"editTop\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editFn>\n\t\t\t\t\t<slot name=\"editFn\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editSubmitRight>\n\t\t\t\t\t<slot name=\"editSubmitRight\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editSubmitLeft>\n\t\t\t\t\t<slot name=\"editSubmitLeft\"></slot>\n\t\t\t\t</template>\n\t\t\t</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, computed, onMounted, onBeforeUnmount, inject, watch, provide, type Ref, nextTick, ComputedRef } from 'vue'\nimport { MessageAction, type ChatMessage, type ChatMsgList, type ModuleItem } from './Chat/types'\nimport { useChat } from './Chat/useChat'\nimport { useCopy } from './Chat/useCopy'\n\n// 组件属性和注入\nconst emit = defineEmits(['sendMessage', 'toggleSidebar', 'beforeSendMessage', 'openSideBar'])\nconst scripts = inject<Ref<any[]>>('scripts', ref([]))\nconst unmatchText = inject<string>('unmatchText', '您的消息未匹配到任何内容')\nconst modules = inject<Ref<(string | ModuleItem)[]>>('modules', ref([]))\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\nconst isSelectMode = inject<ComputedRef<boolean>>(\n\t'isSelectMode',\n\tcomputed(() => false)\n)\n\n// 计算属性\nconst scriptsLength = computed(() => scripts.value?.length || 0)\n\n// 组件属性\nconst props = defineProps({\n\tvalue: {\n\t\ttype: Array as () => ChatMessage[],\n\t\tdefault: () => []\n\t}\n})\n\n// DOM 引用\nconst chatContainer = ref<HTMLElement | null>(null)\nconst ChatInputRef = ref<InstanceType<typeof ChatInput> | null>(null)\n\n// 初始化 useChat\nconst {\n\tchatList,\n\tisChating,\n\tinputValue,\n\tenableDeepThinking,\n\tactiveAgentsName,\n\tinit,\n\tsendMessage,\n\thandleBeforeSend,\n\thandleSend,\n\thandleStop,\n\thandleMessageAction,\n\tsaveEdit,\n\tcancelEdit,\n\tcompleteRendered,\n\thandleAgentSelect,\n\tupdate,\n\tupdateModule,\n\thandleDragEnter,\n\thandleDragLeave,\n\thandleDrop,\n\thandleScroll,\n\tonMounted: chatOnMounted,\n\tonBeforeUnmount: chatOnBeforeUnmount\n} = useChat({\n\tprops,\n\temit: emit as any,\n\tscripts: scripts.value,\n\tunmatchText,\n\tmodules: modules.value,\n\tafterSend,\n\tsendMessageInject,\n\tbeforeSend,\n\tbottom,\n\tstop,\n\tchatContainer,\n\tchatInputRef: ChatInputRef\n})\n\n// 使用 useCopy composable\nconst { copyWithFeedback } = useCopy()\n\n// 注入外部的 modelChange 并覆盖,调用内部 updateModule 更新 moduleInfo\nconst modelChangeExternal = inject<(item: ModuleItem, index: number) => void>('modelChange', () => {})\nprovide('modelChange', (item: ModuleItem, index: number) => {\n\tmodelChangeExternal(item, index)\n\tupdateModule(item)\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\tcopyWithFeedback(code, copyBtn, '', '已复制', 2000)\n\t\t\t})\n\t\t\tpre.style.position = 'relative'\n\t\t\tpre.appendChild(copyBtn)\n\t\t}\n\t})\n}\n\nconst handleLikeSend = (value: string, idx: number) => {\n\thandleSend(value)\n\tnextTick(() => {\n\t\tchatList.value[idx].likeList = []\n\t})\n}\n\nconst handleSelectChange = (idx: number) => {\n\tif (isSelectMode.value) {\n\t\tchatList.value[idx].selecting = !chatList.value[idx].selecting\n\t}\n}\n\n// 侧边栏切换\nconst toggleSidebarClick = (item: ChatMessage, index: number) => {\n\temit('toggleSidebar', item, index)\n}\n\nconst openSideBar = (item: ChatMessage & ChatMsgList, index: number) => {\n\temit('openSideBar', item, index)\n}\n\nconst handleMessageQuote = (item: any, index: number) => {\n\tif (ChatInputRef.value) {\n\t\tChatInputRef.value.updateQuoteData(item, index)\n\t}\n}\n\n// 文件上传\nconst itemUploadFile = (_item: any, index: number) => {\n\tif (ChatInputRef.value) {\n\t\tChatInputRef.value.itemUploadFile(index, 'drop')\n\t}\n}\nconst setInputValue = inject<any>('setInput')\n\n// 组件生命周期\nonMounted(() => {\n\tsetInputValue.value = (value: string) => {\n\t\tinputValue.value = value\n\t}\n\tchatOnMounted()\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\tchatOnBeforeUnmount()\n})\n\n// 提供给子组件\nprovide('touchchat', {\n\tsend: sendMessage,\n\tretry: handleMessageAction\n})\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":["_createElementBlock","_unref","_createElementVNode","_renderSlot","_createVNode","_openBlock","_Fragment","_renderList","_vModelCheckbox","_createBlock","$slots"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TouchHistory.vue2.mjs","sources":["../../../../../../../packages/components/touchchat/src/AiChat/TouchHistory.vue"],"sourcesContent":["<template>\r\n\t<div class=\"touchchat\">\r\n\t\t<div v-if=\"state.isSidebarCollapsed && !isNotHeader\" class=\"touchchat-header\">\r\n\t\t\t<div class=\"touchchat-showmenu\" @click.stop=\"toggleSidebar\">\r\n\t\t\t\t<div class=\"touchchat-showmenu-icon\"></div>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"touchchat-add-lite\" @click.stop=\"startNewChat\">\r\n\t\t\t\t<div class=\"touchchat-add-lite-icon\"></div>\r\n\t\t\t\t<span>新对话</span>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"touchchat-content\">\r\n\t\t\t<HistorySidebar v-if=\"!isNotHeader && !state.isSidebarCollapsed\" :is-sidebar-collapsed=\"state.isSidebarCollapsed\" :active-chat=\"state.activeChat\" :chat-history=\"state.chatHistory\" @toggle-sidebar=\"toggleSidebar\" @start-new-chat=\"startNewChat\" @select-chat=\"selectChat\" @rename-chat=\"handleRenameChat\" @delete-chat=\"deleteChat\"> </HistorySidebar>\r\n\t\t\t<TouchChat v-if=\"!iIsAgent\" ref=\"chatComponent\" :key=\"state.activeChat + '-chat'\" :value=\"currentChatMessages\" @send-message=\"sendMessage\" @toggle-sidebar=\"toggleSidebarOut\" @before-send-message=\"beforeSendMessage\" @open-side-bar=\"openSideBar\">\r\n\t\t\t\t<template #aimsg=\"{ item, index }\">\r\n\t\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #msg=\"{ item, index }\">\r\n\t\t\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #aiAvatar>\r\n\t\t\t\t\t<slot name=\"aiAvatar\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #userAvatar>\r\n\t\t\t\t\t<slot name=\"userAvatar\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #welcome>\r\n\t\t\t\t\t<slot name=\"welcome\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #edit>\r\n\t\t\t\t\t<slot name=\"edit\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #shortcut>\r\n\t\t\t\t\t<slot name=\"shortcut\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #top>\r\n\t\t\t\t\t<slot name=\"top\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #fn=\"{ item, index }\">\r\n\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #extendsFn=\"{ item, index }\">\r\n\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #editTop>\r\n\t\t\t\t\t<slot name=\"editTop\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #editFn>\r\n\t\t\t\t\t<slot name=\"editFn\"></slot>\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #editSubmitRight>\r\n\t\t\t\t\t<slot name=\"editSubmitRight\"></slot>\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #editSubmitLeft>\r\n\t\t\t\t\t<slot name=\"editSubmitLeft\"></slot>\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #mayLike=\"{ item, index }\">\r\n\t\t\t\t\t<slot name=\"mayLike\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t</template>\r\n\t\t\t</TouchChat>\r\n\t\t\t<!-- :key=\"state.activeChat\" -->\r\n\t\t\t<TouchAgent v-else ref=\"chatComponent\" :key=\"state.activeChat + '-agent'\" :value=\"currentChatMessages\" @send-message=\"sendMessage\" @toggle-sidebar=\"toggleSidebarOut\" @before-send-message=\"beforeSendMessage\">\r\n\t\t\t\t<template #aimsg=\"{ item, index }\">\r\n\t\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #msg=\"{ item, index }\">\r\n\t\t\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #aiAvatar>\r\n\t\t\t\t\t<slot name=\"aiAvatar\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #userAvatar>\r\n\t\t\t\t\t<slot name=\"userAvatar\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #welcome>\r\n\t\t\t\t\t<slot name=\"welcome\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #edit>\r\n\t\t\t\t\t<slot name=\"edit\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #shortcut>\r\n\t\t\t\t\t<slot name=\"shortcut\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #top>\r\n\t\t\t\t\t<slot name=\"top\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #fn=\"{ item, index }\">\r\n\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t</template>\r\n\t\t\t\t<template #extendsFn=\"{ item, index }\">\r\n\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t</template>\r\n\t\t\t</TouchAgent>\r\n\t\t\t<SiderBarView v-show=\"state.toggleSidebarFlag\" :flag=\"state.isSidebarCollapsed\" :item=\"messageItem\" :index=\"messageIndex\">\r\n\t\t\t\t<template #extend=\"{ item: slotMessageItem, index: slotMessageIndex }\">\r\n\t\t\t\t\t<slot name=\"extend\" :item=\"slotMessageItem\" :index=\"slotMessageIndex\" />\r\n\t\t\t\t</template>\r\n\t\t\t</SiderBarView>\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { onMounted, computed, watch, reactive, inject, ref, provide, Ref } from 'vue'\r\nimport TouchChat from './TouchChat.vue'\r\nimport TouchAgent from './TouchAgent.vue'\r\nimport HistorySidebar from './HistorySidebar.vue'\r\nimport SiderBarView from './SiderBarView.vue'\r\nimport type { ChatMessage, ChatMsgList } from './Chat/types'\r\nimport type { AgentConfig, SubAgent } from '../types/a2a'\r\n\r\ninterface HistoryItem {\r\n\tid: string\r\n\ttitle: string\r\n\ttime: Date\r\n\ttype: string // 用于区分不同类型的对话\r\n\tmessages?: ChatMessage[]\r\n}\r\n\r\ninterface Agent {\r\n\tid: string\r\n\tname: string\r\n\tintro: string\r\n}\r\n\r\ntype ResultArray = AgentConfig[] | SubAgent[]\r\n\r\ninterface MultiAgentInfo {\r\n\tlist: ResultArray\r\n\turl?: string\r\n\theaders?: object\r\n}\r\n\r\n// 状态管理\r\nconst state = reactive({\r\n\tactiveChat: '',\r\n\tchatHistory: [] as HistoryItem[],\r\n\tisSidebarCollapsed: false,\r\n\tactionMenuVisible: {} as Record<string, boolean>,\r\n\tmockMessages: [] as ChatMessage[],\r\n\ttoggleSidebarFlag: false,\r\n\tagentsType: '',\r\n\tclickCreateNum: 0\r\n})\r\n\r\nconst watchHistoryData = ref<HistoryItem[]>([])\r\nconst watchHistoryDetail = ref<ChatMessage[]>([])\r\nconst chatComponent = ref<InstanceType<typeof TouchChat>>()\r\n\r\nconst layout = inject<string>('layout', 'side, think, upload, chain')\r\nconst isNotHeader = !layout.includes('side')\r\nconst scripts = inject<Ref<any[]>>('scripts', ref([]))\r\nconst agents = inject<Agent[]>('agents', [])\r\nconst agentsInfo = ref<Agent>()\r\nconst agentInfo = inject<Ref<MultiAgentInfo>>('agentInfo', ref({ list: [], url: '', headers: {} }))\r\nconst iIsAgent = ref(false)\r\nwatch(\r\n\tagentInfo,\r\n\tnewVal => {\r\n\t\tiIsAgent.value = newVal.list.length > 0\r\n\t},\r\n\t{ immediate: true, deep: true }\r\n)\r\n// 提供更新函数给后代组件\r\nconst updateSharedData = (item: Agent) => {\r\n\tagentsInfo.value = item\r\n\tif (chatComponent.value) {\r\n\t\tchatComponent.value?.handleAgentSelect?.(item)\r\n\t}\r\n}\r\nprovide('updateSharedData', updateSharedData)\r\n// 本地存储相关\r\nconst STORAGE_KEYS = {\r\n\tCHAT_HISTORY: scripts.value.length === 0 ? 'chatHistory' : 'robotHistory',\r\n\tSIDEBAR_STATE: 'sidebarCollapsed'\r\n}\r\nconst saveToLocalStorage = () => {\r\n\tlocalStorage.setItem(STORAGE_KEYS.CHAT_HISTORY, JSON.stringify(state.chatHistory))\r\n\tlocalStorage.setItem(STORAGE_KEYS.SIDEBAR_STATE, JSON.stringify(state.isSidebarCollapsed))\r\n}\r\n// 聊天管理\r\nconst createNewChat = (title: string = '新对话', messageList: ChatMessage[] = [], type?: string) => {\r\n\tlet agentsId = ''\r\n\tif (agents.length > 0) {\r\n\t\tagentsId = agents.find(item => item.name === title)?.id || ''\r\n\t}\r\n\tconst newChat: HistoryItem = {\r\n\t\t// id: Date.now().toString(),\r\n\t\tid: agentsId ? agentsId : (Math.floor(Math.random() * 89999999) + 10000000).toString(),\r\n\t\ttitle,\r\n\t\ttime: new Date(),\r\n\t\tmessages: messageList,\r\n\t\ttype: type ? type : ''\r\n\t}\r\n\r\n\tstate.chatHistory.unshift(newChat)\r\n\tsaveToLocalStorage()\r\n\treturn newChat\r\n}\r\n\r\nconst loadFromLocalStorage = () => {\r\n\t// 加载折叠状态\r\n\tconst savedCollapseState = localStorage.getItem(STORAGE_KEYS.SIDEBAR_STATE)\r\n\tif (savedCollapseState) {\r\n\t\tstate.isSidebarCollapsed = JSON.parse(savedCollapseState)\r\n\t}\r\n\r\n\tif (scripts.value.length > 0) {\r\n\t\tlocalStorage.setItem(STORAGE_KEYS.CHAT_HISTORY, '[]')\r\n\t\tlocalStorage.setItem('activeAgentsName', '')\r\n\t}\r\n\r\n\t// 加载聊天历史\r\n\tconst savedHistory = localStorage.getItem(STORAGE_KEYS.CHAT_HISTORY)\r\n\tconst historyData = JSON.parse(savedHistory || '[]')\r\n\tif (agents.length > 0 && !historyData.length) {\r\n\t\tagents.forEach(item => {\r\n\t\t\tconst agentsList = [\r\n\t\t\t\t{\r\n\t\t\t\t\tchatId: item.id,\r\n\t\t\t\t\tuser: 'ai',\r\n\t\t\t\t\ttype: 'text',\r\n\t\t\t\t\tisShowLike: true,\r\n\t\t\t\t\tcontent: item?.intro || '我是AI助手,我可以回答你的问题,你可以和我聊天,也可以问我问题。',\r\n\t\t\t\t\tmsgList: []\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\tcreateNewChat(item.name, agentsList, item.name)\r\n\t\t})\r\n\t}\r\n\tif (watchHistoryData.value.length > 0) {\r\n\t\tstate.chatHistory = watchHistoryData.value\r\n\t\t// if (state.chatHistory.length > 0) {\r\n\t\t// \tstate.activeChat = state.chatHistory[0].id\r\n\t\t// }\r\n\t} else if (historyData.length > 0) {\r\n\t\tstate.chatHistory = historyData\r\n\t\t// if (state.chatHistory.length > 0) {\r\n\t\t// \tstate.activeChat = state.chatHistory[0].id\r\n\t\t// }\r\n\t}\r\n\t// else {\r\n\t// \t// 初始化默认对话\r\n\t// \tconst newChat = createNewChat('AI基础问答')\r\n\t// \tstate.activeChat = newChat.id\r\n\t// }\r\n\t// 首次进入时若已有会话但未选中,需选中一个会话,避免首条消息发送时 activeChat 从空变为有值\r\n\t// 触发 TouchChat 的 :key 变化导致整组件重建,剧本里连续多条 AI 回复(如 222→333)被中断。\r\n\t// createNewChat 使用 unshift,数组顺序与 agents 遍历顺序相反,故有多智能体时默认选 agents[0] 对应会话,而不是 chatHistory[0]。\r\n\tif (!state.activeChat && state.chatHistory.length > 0) {\r\n\t\tif (agents.length > 0) {\r\n\t\t\tconst firstId = agents[0].id\r\n\t\t\tstate.activeChat = state.chatHistory.find(h => h.id === firstId)?.id ?? state.chatHistory[state.chatHistory.length - 1].id\r\n\t\t} else {\r\n\t\t\tstate.activeChat = state.chatHistory[0].id\r\n\t\t}\r\n\t}\r\n\t// 仅有剧本、未传 agents、且没有任何会话:先建一条空会话并选中。\r\n\t// 否则首条消息会在 sendMessage 里首次给 activeChat 赋值,TouchChat 的 :key 变化导致整组件重建,连续多条 AI 剧本会丢后半段。\r\n\tif (scripts.value.length > 0 && agents.length === 0 && state.chatHistory.length === 0) {\r\n\t\tconst seeded = createNewChat('对话')\r\n\t\tstate.activeChat = seeded.id\r\n\t}\r\n}\r\n\r\nconst historyList = inject<any>('historyList', [])\r\nconst setHistoryData = ref(Array.isArray(historyList) ? historyList : typeof historyList === 'object' && historyList ? historyList : [])\r\nconst computedHistoryData = computed(() => {\r\n\tif (setHistoryData.value.length) {\r\n\t\treturn setHistoryData.value\r\n\t}\r\n\treturn []\r\n})\r\nwatch(\r\n\tcomputedHistoryData,\r\n\tnewVal => {\r\n\t\twatchHistoryData.value = newVal\r\n\t\tstate.chatHistory = newVal\r\n\t\tloadFromLocalStorage()\r\n\t},\r\n\t{ immediate: true }\r\n)\r\nconst historyDetail = inject<ChatMessage[]>('historyDetail', [])\r\nconst setMessageDetail = ref(Array.isArray(historyDetail) ? historyDetail : typeof historyDetail === 'object' && historyDetail ? historyDetail : [])\r\nconst computedHistoryDetail = computed(() => {\r\n\tif (setMessageDetail.value.length) {\r\n\t\treturn setMessageDetail.value\r\n\t}\r\n\treturn []\r\n})\r\nwatch(\r\n\tcomputedHistoryDetail,\r\n\tnewVal => {\r\n\t\twatchHistoryDetail.value = newVal\r\n\t},\r\n\t{ immediate: true }\r\n)\r\nconst messageItem = ref<ChatMessage>({ user: 'u', type: '', content: '', msgList: [] })\r\nconst messageIndex = ref<number>(0)\r\n\r\n// 修改currentChatMessages计算属性\r\nconst currentChatMessages = computed(() => {\r\n\tif (watchHistoryDetail.value.length) {\r\n\t\treturn watchHistoryDetail.value\r\n\t}\r\n\tif (!state.activeChat) return []\r\n\tif ((!watchHistoryDetail.value.length && !watchHistoryData.value.length) || watchHistoryData.value.length) {\r\n\t\tconst currentChat = state.chatHistory.find(item => item.id === state.activeChat)\r\n\t\treturn currentChat?.messages || []\r\n\t} else {\r\n\t\treturn watchHistoryDetail.value\r\n\t}\r\n})\r\n\r\nwatch(\r\n\t() => {\r\n\t\tif (typeof historyList === 'object' && historyList !== undefined) {\r\n\t\t\treturn historyList\r\n\t\t}\r\n\t\treturn historyList\r\n\t},\r\n\tnewVal => {\r\n\t\tif (newVal && Array.isArray(newVal) && newVal.length) {\r\n\t\t\twatchHistoryData.value = newVal\r\n\t\t\t// loadFromLocalStorage()\r\n\t\t\tif (!scripts.value.length) {\r\n\t\t\t\tstate.chatHistory = newVal\r\n\t\t\t\tif (state.chatHistory.length > 0 && !state.activeChat) {\r\n\t\t\t\t\tstate.activeChat = state.chatHistory[0].id\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t{ deep: true }\r\n)\r\n\r\nwatch(\r\n\t() => {\r\n\t\tif (typeof historyDetail === 'object' && historyDetail !== undefined) {\r\n\t\t\treturn historyDetail\r\n\t\t}\r\n\t\treturn historyDetail\r\n\t},\r\n\tnewVal => {\r\n\t\tif (newVal && Array.isArray(newVal)) {\r\n\t\t\twatchHistoryDetail.value = JSON.parse(JSON.stringify(newVal))\r\n\t\t\tif (chatComponent.value) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tchatComponent.value?.$forceUpdate?.()\r\n\t\t\t\t}, 0)\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\t{ deep: true, immediate: true }\r\n)\r\n\r\n// 生命周期\r\nonMounted(() => {\r\n\tloadFromLocalStorage()\r\n\t// 初始化事件监听\r\n\t// initEventListeners()\r\n})\r\n\r\n// 事件监听\r\n// function initEventListeners() {\r\n// \tdocument.addEventListener('click', () => {\r\n// \t\t// 点击空白处关闭所有菜单\r\n// \t\tObject.keys(state.actionMenuVisible).forEach(key => {\r\n// \t\t\tstate.actionMenuVisible[key] = false\r\n// \t\t})\r\n// \t})\r\n// }\r\n\r\nconst toggleSidebarOut = (item: ChatMessage, index: number) => {\r\n\tmessageItem.value = item\r\n\tmessageIndex.value = index\r\n\tif (state.toggleSidebarFlag) {\r\n\t\treturn\r\n\t}\r\n\tstate.toggleSidebarFlag = true\r\n\tstate.isSidebarCollapsed = false\r\n\ttoggleSidebar()\r\n}\r\n\r\n// 侧边栏控制\r\nconst toggleSidebar = () => {\r\n\tstate.isSidebarCollapsed = !state.isSidebarCollapsed\r\n\tsaveToLocalStorage()\r\n}\r\n\r\nconst startNewChat = () => {\r\n\tlocalStorage.setItem('activeAgentsName', '')\r\n\tconst robotHistory = localStorage.getItem(STORAGE_KEYS.CHAT_HISTORY) || '[]'\r\n\tconst robotHistoryData = JSON.parse(robotHistory)\r\n\tlet messageList: ChatMessage[] = []\r\n\tlet messageItem: HistoryItem = {} as HistoryItem\r\n\tlet firstMessageList: ChatMessage[] = []\r\n\tif (robotHistoryData.length) {\r\n\t\tmessageItem = robotHistoryData.find((item: HistoryItem) => item.id === state.activeChat) || ({} as HistoryItem)\r\n\t\tmessageList = messageItem?.messages || []\r\n\t\tfirstMessageList = robotHistoryData?.[0]?.messages || ([] as ChatMessage[])\r\n\t}\r\n\tstate.toggleSidebarFlag = false\r\n\tif ((watchHistoryData.value.length > 0 && firstMessageList.length > 0 && (watchHistoryDetail.value.length > 0 || currentChatMessages.value.length > 0 || messageList.length > 0)) || (!messageItem?.messages && firstMessageList.length > 0) || !state.clickCreateNum) {\r\n\t\tconst newChat = createNewChat('新对话' + (state.chatHistory.length + 1))\r\n\t\tstate.activeChat = newChat.id\r\n\t\tchange('')\r\n\t\tstate.clickCreateNum++\r\n\t\treturn\r\n\t}\r\n\tif (state.chatHistory.length > 0 && !state.chatHistory?.[0]?.messages?.length) {\r\n\t\tstate.activeChat = state.chatHistory[0].id\r\n\t\tchange('')\r\n\t\treturn\r\n\t}\r\n\tif (!currentChatMessages.value.length && state.chatHistory.length > 0) {\r\n\t\tstate.activeChat = state.chatHistory?.[0]?.id ?? ''\r\n\t\tchange('')\r\n\t\treturn\r\n\t}\r\n\tconst newChat = createNewChat('新对话' + (state.chatHistory.length + 1))\r\n\tstate.activeChat = newChat.id\r\n\tchange('')\r\n}\r\n\r\nconst change = inject<(id: string) => void>('change', () => {\r\n\tconsole.warn('未提供change函数')\r\n})\r\n\r\nconst changeChatHistory = (index: number) => {\r\n\tstate.activeChat = state.chatHistory[index].id\r\n\tchange(state.chatHistory[index].id)\r\n}\r\n\r\nconst clearChatHistory = () => {\r\n\tstate.chatHistory = []\r\n\tstate.activeChat = ''\r\n\tlocalStorage.setItem(STORAGE_KEYS.CHAT_HISTORY, JSON.stringify([]))\r\n}\r\n\r\nconst selectChat = (id: string, type?: string) => {\r\n\tstate.activeChat = id\r\n\tstate.toggleSidebarFlag = false\r\n\tstate.agentsType = type as string\r\n\tif (!type) {\r\n\t\tlocalStorage.setItem('activeAgentsName', '')\r\n\t}\r\n\tchange(id)\r\n\tresetAllMenus()\r\n}\r\n\r\nconst historyRemove = inject<(id: string) => void>('historyRemove', () => {\r\n\tconsole.warn('未提供remove函数')\r\n})\r\nconst openSideBar = inject<(item: ChatMessage & ChatMsgList, index: number) => void>('openSideBar', () => {})\r\n\r\nconst deleteChat = (id: string) => {\r\n\tconst index = state.chatHistory.findIndex(item => item.id === id)\r\n\tif (index === -1) return\r\n\r\n\tstate.chatHistory.splice(index, 1)\r\n\r\n\tif (state.chatHistory.length > 0) {\r\n\t\tselectChat(state.chatHistory[0].id)\r\n\t} else {\r\n\t\tstate.activeChat = ''\r\n\t\tstate.mockMessages = []\r\n\t}\r\n\thistoryRemove(id)\r\n\tsaveToLocalStorage()\r\n}\r\n\r\nconst beforeSendMessage = () => {\r\n\tstate.toggleSidebarFlag = false\r\n}\r\n\r\nconst sendMessage = (messageList: ChatMessage[], type?: string) => {\r\n\tstate.mockMessages = messageList\r\n\r\n\tif (type) {\r\n\t\treturn\r\n\t}\r\n\r\n\tif (!state.activeChat) {\r\n\t\tconst newChat = createNewChat('AI基础问答', messageList)\r\n\t\tnewChat.messages = messageList\r\n\t\tstate.activeChat = newChat.id\r\n\t} else {\r\n\t\tconst currentChat = state.chatHistory.find(item => item.id === state.activeChat)\r\n\t\tif (currentChat) {\r\n\t\t\tcurrentChat.messages = messageList\r\n\t\t\tcurrentChat.time = new Date()\r\n\t\t}\r\n\t\tsaveToLocalStorage()\r\n\t}\r\n}\r\n\r\n// 菜单控制\r\nconst resetAllMenus = () => {\r\n\tObject.keys(state.actionMenuVisible).forEach(key => {\r\n\t\tstate.actionMenuVisible[key] = false\r\n\t})\r\n}\r\n\r\nconst handleRenameChat = (id: string, newTitle: string) => {\r\n\tconst item = state.chatHistory.find(item => item.id === id)\r\n\tif (item) {\r\n\t\titem.title = newTitle\r\n\t\titem.time = new Date()\r\n\t\tsaveToLocalStorage()\r\n\t}\r\n}\r\n\r\n// 监听聊天历史变化,自动保存\r\nwatch(\r\n\t() => state.chatHistory,\r\n\t() => {\r\n\t\tsaveToLocalStorage()\r\n\t},\r\n\t{ deep: true }\r\n)\r\ndefineExpose({\r\n\tsend: (value: string, fileList?: any[], auto?: boolean, type?: string) => {\r\n\t\tchatComponent.value?.send(value, fileList, auto, type)\r\n\t},\r\n\tcloseExtend: () => {\r\n\t\tstate.toggleSidebarFlag = false\r\n\t},\r\n\tcreate: () => {\r\n\t\t// startNewChat()\r\n\t\tconst newChat = createNewChat('新对话' + (state.chatHistory.length + 1))\r\n\t\tstate.activeChat = newChat.id\r\n\t\tchange('')\r\n\t},\r\n\tretry: (index: number) => {\r\n\t\tchatComponent.value?.retry(index)\r\n\t},\r\n\tupdate: (index: number, message: object) => {\r\n\t\tchatComponent.value?.update(index, message)\r\n\t},\r\n\tchangeChat: (index: number) => {\r\n\t\tchangeChatHistory(index)\r\n\t},\r\n\tclearChat: () => {\r\n\t\tclearChatHistory()\r\n\t}\r\n})\r\n</script>\r\n"],"names":["messageItem","newChat","item","_createElementBlock","_createElementVNode","_createBlock","_unref","_withCtx","_renderSlot","_Fragment","_createCommentVNode","_createVNode","_vShow"],"mappings":"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"}
1
+ {"version":3,"file":"TouchHistory.vue2.mjs","sources":["../../../../../../../packages/components/touchchat/src/AiChat/TouchHistory.vue"],"sourcesContent":["<template>\n\t<div class=\"touchchat\">\n\t\t<div v-if=\"state.isSidebarCollapsed && !isNotHeader\" class=\"touchchat-header\">\n\t\t\t<div class=\"touchchat-showmenu\" @click.stop=\"toggleSidebar\">\n\t\t\t\t<div class=\"touchchat-showmenu-icon\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"touchchat-add-lite\" @click.stop=\"startNewChat\">\n\t\t\t\t<div class=\"touchchat-add-lite-icon\"></div>\n\t\t\t\t<span>新对话</span>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"touchchat-content\">\n\t\t\t<HistorySidebar v-if=\"!isNotHeader && !state.isSidebarCollapsed\" :is-sidebar-collapsed=\"state.isSidebarCollapsed\" :active-chat=\"state.activeChat\" :chat-history=\"state.chatHistory\" @toggle-sidebar=\"toggleSidebar\" @start-new-chat=\"startNewChat\" @select-chat=\"selectChat\" @rename-chat=\"handleRenameChat\" @delete-chat=\"deleteChat\"> </HistorySidebar>\n\t\t\t<TouchChat v-if=\"!iIsAgent\" ref=\"chatComponent\" :key=\"state.activeChat + '-chat'\" :value=\"currentChatMessages\" @send-message=\"sendMessage\" @toggle-sidebar=\"toggleSidebarOut\" @before-send-message=\"beforeSendMessage\" @open-side-bar=\"openSideBar\">\n\t\t\t\t<template #aimsg=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #msg=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #aiAvatar>\n\t\t\t\t\t<slot name=\"aiAvatar\" />\n\t\t\t\t</template>\n\t\t\t\t<template #userAvatar>\n\t\t\t\t\t<slot name=\"userAvatar\" />\n\t\t\t\t</template>\n\t\t\t\t<template #welcome>\n\t\t\t\t\t<slot name=\"welcome\" />\n\t\t\t\t</template>\n\t\t\t\t<template #edit>\n\t\t\t\t\t<slot name=\"edit\" />\n\t\t\t\t</template>\n\t\t\t\t<template #shortcut>\n\t\t\t\t\t<slot name=\"shortcut\" />\n\t\t\t\t</template>\n\t\t\t\t<template #top>\n\t\t\t\t\t<slot name=\"top\" />\n\t\t\t\t</template>\n\t\t\t\t<template #fn=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #extendsFn=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #editTop>\n\t\t\t\t\t<slot name=\"editTop\" />\n\t\t\t\t</template>\n\t\t\t\t<template #editFn>\n\t\t\t\t\t<slot name=\"editFn\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editSubmitRight>\n\t\t\t\t\t<slot name=\"editSubmitRight\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #editSubmitLeft>\n\t\t\t\t\t<slot name=\"editSubmitLeft\"></slot>\n\t\t\t\t</template>\n\t\t\t\t<template #mayLike=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"mayLike\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t</TouchChat>\n\t\t\t<!-- :key=\"state.activeChat\" -->\n\t\t\t<TouchAgent v-else ref=\"chatComponent\" :key=\"state.activeChat + '-agent'\" :value=\"currentChatMessages\" @send-message=\"sendMessage\" @toggle-sidebar=\"toggleSidebarOut\" @before-send-message=\"beforeSendMessage\">\n\t\t\t\t<template #aimsg=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #msg=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"msg\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #aiAvatar>\n\t\t\t\t\t<slot name=\"aiAvatar\" />\n\t\t\t\t</template>\n\t\t\t\t<template #userAvatar>\n\t\t\t\t\t<slot name=\"userAvatar\" />\n\t\t\t\t</template>\n\t\t\t\t<template #welcome>\n\t\t\t\t\t<slot name=\"welcome\" />\n\t\t\t\t</template>\n\t\t\t\t<template #edit>\n\t\t\t\t\t<slot name=\"edit\" />\n\t\t\t\t</template>\n\t\t\t\t<template #shortcut>\n\t\t\t\t\t<slot name=\"shortcut\" />\n\t\t\t\t</template>\n\t\t\t\t<template #top>\n\t\t\t\t\t<slot name=\"top\" />\n\t\t\t\t</template>\n\t\t\t\t<template #fn=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t\t<template #extendsFn=\"{ item, index }\">\n\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t</template>\n\t\t\t</TouchAgent>\n\t\t\t<SiderBarView v-show=\"state.toggleSidebarFlag\" :flag=\"state.isSidebarCollapsed\" :item=\"messageItem\" :index=\"messageIndex\">\n\t\t\t\t<template #extend=\"{ item: slotMessageItem, index: slotMessageIndex }\">\n\t\t\t\t\t<slot name=\"extend\" :item=\"slotMessageItem\" :index=\"slotMessageIndex\" />\n\t\t\t\t</template>\n\t\t\t</SiderBarView>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, computed, watch, reactive, inject, ref, provide, Ref } from 'vue'\nimport TouchChat from './TouchChat.vue'\nimport TouchAgent from './TouchAgent.vue'\nimport HistorySidebar from './HistorySidebar.vue'\nimport SiderBarView from './SiderBarView.vue'\nimport type { ChatMessage, ChatMsgList } from './Chat/types'\nimport type { AgentConfig, SubAgent } from '../types/a2a'\n\ninterface HistoryItem {\n\tid: string\n\ttitle: string\n\ttime: Date\n\ttype: string // 用于区分不同类型的对话\n\tmessages?: ChatMessage[]\n}\n\ninterface Agent {\n\tid: string\n\tname: string\n\tintro: string\n}\n\ntype ResultArray = AgentConfig[] | SubAgent[]\n\ninterface MultiAgentInfo {\n\tlist: ResultArray\n\turl?: string\n\theaders?: object\n}\n\n// 状态管理\nconst state = reactive({\n\tactiveChat: '',\n\tchatHistory: [] as HistoryItem[],\n\tisSidebarCollapsed: false,\n\tactionMenuVisible: {} as Record<string, boolean>,\n\tmockMessages: [] as ChatMessage[],\n\ttoggleSidebarFlag: false,\n\tagentsType: '',\n\tclickCreateNum: 0\n})\n\nconst watchHistoryData = ref<HistoryItem[]>([])\nconst watchHistoryDetail = ref<ChatMessage[]>([])\nconst chatComponent = ref<InstanceType<typeof TouchChat>>()\n\nconst layout = inject<string>('layout', 'side, think, upload, chain')\nconst isNotHeader = !layout.includes('side')\nconst scripts = inject<Ref<any[]>>('scripts', ref([]))\nconst agents = inject<Agent[]>('agents', [])\nconst agentsInfo = ref<Agent>()\nconst agentInfo = inject<Ref<MultiAgentInfo>>('agentInfo', ref({ list: [], url: '', headers: {} }))\nconst iIsAgent = ref(false)\nwatch(\n\tagentInfo,\n\tnewVal => {\n\t\tiIsAgent.value = newVal.list.length > 0\n\t},\n\t{ immediate: true, deep: true }\n)\n// 提供更新函数给后代组件\nconst updateSharedData = (item: Agent) => {\n\tagentsInfo.value = item\n\tif (chatComponent.value) {\n\t\tchatComponent.value?.handleAgentSelect?.(item)\n\t}\n}\nprovide('updateSharedData', updateSharedData)\n// 本地存储相关\nconst STORAGE_KEYS = {\n\tCHAT_HISTORY: scripts.value.length === 0 ? 'chatHistory' : 'robotHistory',\n\tSIDEBAR_STATE: 'sidebarCollapsed'\n}\nconst saveToLocalStorage = () => {\n\tlocalStorage.setItem(STORAGE_KEYS.CHAT_HISTORY, JSON.stringify(state.chatHistory))\n\tlocalStorage.setItem(STORAGE_KEYS.SIDEBAR_STATE, JSON.stringify(state.isSidebarCollapsed))\n}\n// 聊天管理\nconst createNewChat = (title: string = '新对话', messageList: ChatMessage[] = [], type?: string) => {\n\tlet agentsId = ''\n\tif (agents.length > 0) {\n\t\tagentsId = agents.find(item => item.name === title)?.id || ''\n\t}\n\tconst newChat: HistoryItem = {\n\t\t// id: Date.now().toString(),\n\t\tid: agentsId ? agentsId : (Math.floor(Math.random() * 89999999) + 10000000).toString(),\n\t\ttitle,\n\t\ttime: new Date(),\n\t\tmessages: messageList,\n\t\ttype: type ? type : ''\n\t}\n\n\tstate.chatHistory.unshift(newChat)\n\tsaveToLocalStorage()\n\treturn newChat\n}\n\nconst loadFromLocalStorage = () => {\n\t// 加载折叠状态\n\tconst savedCollapseState = localStorage.getItem(STORAGE_KEYS.SIDEBAR_STATE)\n\tif (savedCollapseState) {\n\t\tstate.isSidebarCollapsed = JSON.parse(savedCollapseState)\n\t}\n\n\tif (scripts.value.length > 0) {\n\t\tlocalStorage.setItem(STORAGE_KEYS.CHAT_HISTORY, '[]')\n\t\tlocalStorage.setItem('activeAgentsName', '')\n\t}\n\n\t// 加载聊天历史\n\tconst savedHistory = localStorage.getItem(STORAGE_KEYS.CHAT_HISTORY)\n\tconst historyData = JSON.parse(savedHistory || '[]')\n\tif (agents.length > 0 && !historyData.length) {\n\t\tagents.forEach(item => {\n\t\t\tconst agentsList = [\n\t\t\t\t{\n\t\t\t\t\tchatId: item.id,\n\t\t\t\t\tuser: 'ai',\n\t\t\t\t\ttype: 'text',\n\t\t\t\t\tisShowLike: true,\n\t\t\t\t\tcontent: item?.intro || '我是AI助手,我可以回答你的问题,你可以和我聊天,也可以问我问题。',\n\t\t\t\t\tmsgList: []\n\t\t\t\t}\n\t\t\t]\n\t\t\tcreateNewChat(item.name, agentsList, item.name)\n\t\t})\n\t}\n\tif (watchHistoryData.value.length > 0) {\n\t\tstate.chatHistory = watchHistoryData.value\n\t\t// if (state.chatHistory.length > 0) {\n\t\t// \tstate.activeChat = state.chatHistory[0].id\n\t\t// }\n\t} else if (historyData.length > 0) {\n\t\tstate.chatHistory = historyData\n\t\t// if (state.chatHistory.length > 0) {\n\t\t// \tstate.activeChat = state.chatHistory[0].id\n\t\t// }\n\t}\n\t// else {\n\t// \t// 初始化默认对话\n\t// \tconst newChat = createNewChat('AI基础问答')\n\t// \tstate.activeChat = newChat.id\n\t// }\n\t// 首次进入时若已有会话但未选中,需选中一个会话,避免首条消息发送时 activeChat 从空变为有值\n\t// 触发 TouchChat 的 :key 变化导致整组件重建,剧本里连续多条 AI 回复(如 222→333)被中断。\n\t// createNewChat 使用 unshift,数组顺序与 agents 遍历顺序相反,故有多智能体时默认选 agents[0] 对应会话,而不是 chatHistory[0]。\n\tif (!state.activeChat && state.chatHistory.length > 0) {\n\t\tif (agents.length > 0) {\n\t\t\tconst firstId = agents[0].id\n\t\t\tstate.activeChat = state.chatHistory.find(h => h.id === firstId)?.id ?? state.chatHistory[state.chatHistory.length - 1].id\n\t\t} else {\n\t\t\tstate.activeChat = state.chatHistory[0].id\n\t\t}\n\t}\n\t// 仅有剧本、未传 agents、且没有任何会话:先建一条空会话并选中。\n\t// 否则首条消息会在 sendMessage 里首次给 activeChat 赋值,TouchChat 的 :key 变化导致整组件重建,连续多条 AI 剧本会丢后半段。\n\tif (scripts.value.length > 0 && agents.length === 0 && state.chatHistory.length === 0) {\n\t\tconst seeded = createNewChat('对话')\n\t\tstate.activeChat = seeded.id\n\t}\n}\n\nconst historyList = inject<any>('historyList', [])\nconst setHistoryData = ref(Array.isArray(historyList) ? historyList : typeof historyList === 'object' && historyList ? historyList : [])\nconst computedHistoryData = computed(() => {\n\tif (setHistoryData.value.length) {\n\t\treturn setHistoryData.value\n\t}\n\treturn []\n})\nwatch(\n\tcomputedHistoryData,\n\tnewVal => {\n\t\twatchHistoryData.value = newVal\n\t\tstate.chatHistory = newVal\n\t\tloadFromLocalStorage()\n\t},\n\t{ immediate: true }\n)\nconst historyDetail = inject<ChatMessage[]>('historyDetail', [])\nconst setMessageDetail = ref(Array.isArray(historyDetail) ? historyDetail : typeof historyDetail === 'object' && historyDetail ? historyDetail : [])\nconst computedHistoryDetail = computed(() => {\n\tif (setMessageDetail.value.length) {\n\t\treturn setMessageDetail.value\n\t}\n\treturn []\n})\nwatch(\n\tcomputedHistoryDetail,\n\tnewVal => {\n\t\twatchHistoryDetail.value = newVal\n\t},\n\t{ immediate: true }\n)\nconst messageItem = ref<ChatMessage>({ user: 'u', type: '', content: '', msgList: [] })\nconst messageIndex = ref<number>(0)\n\n// 修改currentChatMessages计算属性\nconst currentChatMessages = computed(() => {\n\tif (watchHistoryDetail.value.length) {\n\t\treturn watchHistoryDetail.value\n\t}\n\tif (!state.activeChat) return []\n\tif ((!watchHistoryDetail.value.length && !watchHistoryData.value.length) || watchHistoryData.value.length) {\n\t\tconst currentChat = state.chatHistory.find(item => item.id === state.activeChat)\n\t\treturn currentChat?.messages || []\n\t} else {\n\t\treturn watchHistoryDetail.value\n\t}\n})\n\nwatch(\n\t() => {\n\t\tif (typeof historyList === 'object' && historyList !== undefined) {\n\t\t\treturn historyList\n\t\t}\n\t\treturn historyList\n\t},\n\tnewVal => {\n\t\tif (newVal && Array.isArray(newVal) && newVal.length) {\n\t\t\twatchHistoryData.value = newVal\n\t\t\t// loadFromLocalStorage()\n\t\t\tif (!scripts.value.length) {\n\t\t\t\tstate.chatHistory = newVal\n\t\t\t\tif (state.chatHistory.length > 0 && !state.activeChat) {\n\t\t\t\t\tstate.activeChat = state.chatHistory[0].id\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{ deep: true }\n)\n\nwatch(\n\t() => {\n\t\tif (typeof historyDetail === 'object' && historyDetail !== undefined) {\n\t\t\treturn historyDetail\n\t\t}\n\t\treturn historyDetail\n\t},\n\tnewVal => {\n\t\tif (newVal && Array.isArray(newVal)) {\n\t\t\twatchHistoryDetail.value = JSON.parse(JSON.stringify(newVal))\n\t\t\tif (chatComponent.value) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tchatComponent.value?.$forceUpdate?.()\n\t\t\t\t}, 0)\n\t\t\t}\n\t\t}\n\t},\n\t{ deep: true, immediate: true }\n)\n\n// 生命周期\nonMounted(() => {\n\tloadFromLocalStorage()\n\t// 初始化事件监听\n\t// initEventListeners()\n})\n\n// 事件监听\n// function initEventListeners() {\n// \tdocument.addEventListener('click', () => {\n// \t\t// 点击空白处关闭所有菜单\n// \t\tObject.keys(state.actionMenuVisible).forEach(key => {\n// \t\t\tstate.actionMenuVisible[key] = false\n// \t\t})\n// \t})\n// }\n\nconst toggleSidebarOut = (item: ChatMessage, index: number) => {\n\tmessageItem.value = item\n\tmessageIndex.value = index\n\tif (state.toggleSidebarFlag) {\n\t\treturn\n\t}\n\tstate.toggleSidebarFlag = true\n\tstate.isSidebarCollapsed = false\n\ttoggleSidebar()\n}\n\n// 侧边栏控制\nconst toggleSidebar = () => {\n\tstate.isSidebarCollapsed = !state.isSidebarCollapsed\n\tsaveToLocalStorage()\n}\n\nconst startNewChat = () => {\n\tlocalStorage.setItem('activeAgentsName', '')\n\tconst robotHistory = localStorage.getItem(STORAGE_KEYS.CHAT_HISTORY) || '[]'\n\tconst robotHistoryData = JSON.parse(robotHistory)\n\tlet messageList: ChatMessage[] = []\n\tlet messageItem: HistoryItem = {} as HistoryItem\n\tlet firstMessageList: ChatMessage[] = []\n\tif (robotHistoryData.length) {\n\t\tmessageItem = robotHistoryData.find((item: HistoryItem) => item.id === state.activeChat) || ({} as HistoryItem)\n\t\tmessageList = messageItem?.messages || []\n\t\tfirstMessageList = robotHistoryData?.[0]?.messages || ([] as ChatMessage[])\n\t}\n\tstate.toggleSidebarFlag = false\n\tif ((watchHistoryData.value.length > 0 && firstMessageList.length > 0 && (watchHistoryDetail.value.length > 0 || currentChatMessages.value.length > 0 || messageList.length > 0)) || (!messageItem?.messages && firstMessageList.length > 0) || !state.clickCreateNum) {\n\t\tconst newChat = createNewChat('新对话' + (state.chatHistory.length + 1))\n\t\tstate.activeChat = newChat.id\n\t\tchange('')\n\t\tstate.clickCreateNum++\n\t\treturn\n\t}\n\tif (state.chatHistory.length > 0 && !state.chatHistory?.[0]?.messages?.length) {\n\t\tstate.activeChat = state.chatHistory[0].id\n\t\tchange('')\n\t\treturn\n\t}\n\tif (!currentChatMessages.value.length && state.chatHistory.length > 0) {\n\t\tstate.activeChat = state.chatHistory?.[0]?.id ?? ''\n\t\tchange('')\n\t\treturn\n\t}\n\tconst newChat = createNewChat('新对话' + (state.chatHistory.length + 1))\n\tstate.activeChat = newChat.id\n\tchange('')\n}\n\nconst change = inject<(id: string) => void>('change', () => {\n\tconsole.warn('未提供change函数')\n})\n\nconst changeChatHistory = (index: number) => {\n\tstate.activeChat = state.chatHistory[index].id\n\tchange(state.chatHistory[index].id)\n}\n\nconst clearChatHistory = () => {\n\tstate.chatHistory = []\n\tstate.activeChat = ''\n\tlocalStorage.setItem(STORAGE_KEYS.CHAT_HISTORY, JSON.stringify([]))\n}\n\nconst selectChat = (id: string, type?: string) => {\n\tstate.activeChat = id\n\tstate.toggleSidebarFlag = false\n\tstate.agentsType = type as string\n\tif (!type) {\n\t\tlocalStorage.setItem('activeAgentsName', '')\n\t}\n\tchange(id)\n\tresetAllMenus()\n}\n\nconst historyRemove = inject<(id: string) => void>('historyRemove', () => {\n\tconsole.warn('未提供remove函数')\n})\nconst openSideBar = inject<(item: ChatMessage & ChatMsgList, index: number) => void>('openSideBar', () => {})\n\nconst deleteChat = (id: string) => {\n\tconst index = state.chatHistory.findIndex(item => item.id === id)\n\tif (index === -1) return\n\n\tstate.chatHistory.splice(index, 1)\n\n\tif (state.chatHistory.length > 0) {\n\t\tselectChat(state.chatHistory[0].id)\n\t} else {\n\t\tstate.activeChat = ''\n\t\tstate.mockMessages = []\n\t}\n\thistoryRemove(id)\n\tsaveToLocalStorage()\n}\n\nconst beforeSendMessage = () => {\n\tstate.toggleSidebarFlag = false\n}\n\nconst sendMessage = (messageList: ChatMessage[], type?: string) => {\n\tstate.mockMessages = messageList\n\n\tif (type) {\n\t\treturn\n\t}\n\n\tif (!state.activeChat) {\n\t\tconst newChat = createNewChat('AI基础问答', messageList)\n\t\tnewChat.messages = messageList\n\t\tstate.activeChat = newChat.id\n\t} else {\n\t\tconst currentChat = state.chatHistory.find(item => item.id === state.activeChat)\n\t\tif (currentChat) {\n\t\t\tcurrentChat.messages = messageList\n\t\t\tcurrentChat.time = new Date()\n\t\t}\n\t\tsaveToLocalStorage()\n\t}\n}\n\n// 菜单控制\nconst resetAllMenus = () => {\n\tObject.keys(state.actionMenuVisible).forEach(key => {\n\t\tstate.actionMenuVisible[key] = false\n\t})\n}\n\nconst handleRenameChat = (id: string, newTitle: string) => {\n\tconst item = state.chatHistory.find(item => item.id === id)\n\tif (item) {\n\t\titem.title = newTitle\n\t\titem.time = new Date()\n\t\tsaveToLocalStorage()\n\t}\n}\n\n// 监听聊天历史变化,自动保存\nwatch(\n\t() => state.chatHistory,\n\t() => {\n\t\tsaveToLocalStorage()\n\t},\n\t{ deep: true }\n)\ndefineExpose({\n\tsend: (value: string, fileList?: any[], auto?: boolean, type?: string) => {\n\t\tchatComponent.value?.send(value, fileList, auto, type)\n\t},\n\tcloseExtend: () => {\n\t\tstate.toggleSidebarFlag = false\n\t},\n\tcreate: () => {\n\t\t// startNewChat()\n\t\tconst newChat = createNewChat('新对话' + (state.chatHistory.length + 1))\n\t\tstate.activeChat = newChat.id\n\t\tchange('')\n\t},\n\tretry: (index: number) => {\n\t\tchatComponent.value?.retry(index)\n\t},\n\tupdate: (index: number, message: object) => {\n\t\tchatComponent.value?.update(index, message)\n\t},\n\tchangeChat: (index: number) => {\n\t\tchangeChatHistory(index)\n\t},\n\tclearChat: () => {\n\t\tclearChatHistory()\n\t}\n})\n</script>\n"],"names":["messageItem","newChat","item","_createElementBlock","_createElementVNode","_createBlock","_unref","_withCtx","_renderSlot","_Fragment","_createCommentVNode","_createVNode","_vShow"],"mappings":"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"}