@touchvue/chat 1.0.0-beta.49 → 1.0.0-beta.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -70
- package/es/package.json.css +1 -1
- package/es/package.json.mjs +1 -1
- package/es/packages/components/resolver.mjs.map +1 -1
- package/es/packages/components/touchchat/component/AiRobot/HelloChat.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/AiRobot/letter.vue.mjs +1 -1
- package/es/packages/components/touchchat/component/AiRobot/letter.vue2.mjs +8 -8
- package/es/packages/components/touchchat/component/AiRobot/letter.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/FileContent.vue2.mjs +3 -3
- package/es/packages/components/touchchat/component/FileContent.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/FileView.vue2.mjs +2 -2
- package/es/packages/components/touchchat/component/FileView.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/HelloChat.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/ImageFile.vue2.mjs +6 -6
- package/es/packages/components/touchchat/component/ImageFile.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/ImageView.vue2.mjs +1 -1
- package/es/packages/components/touchchat/component/ImageView.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/LinkView.vue2.mjs +4 -4
- package/es/packages/components/touchchat/component/LinkView.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/MarkLayer.vue2.mjs +1 -1
- package/es/packages/components/touchchat/component/MarkLayer.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/ModuleSelect.vue2.mjs +2 -2
- package/es/packages/components/touchchat/component/ModuleSelect.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/PDFFile.vue2.mjs +10 -10
- package/es/packages/components/touchchat/component/PDFFile.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/QuoteContent.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/RealtimeVoice.vue2.mjs +1 -1
- package/es/packages/components/touchchat/component/RealtimeVoice.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/UploadView.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/component/VideoFile.vue.mjs +1 -1
- package/es/packages/components/touchchat/component/VideoFile.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/AgentsView.vue2.mjs +1 -1
- package/es/packages/components/touchchat/src/AiChat/AgentsView.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs +30 -30
- package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/Chat/scriptMatcher.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/Chat/types.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/Chat/useChat.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/Chat/useCopy.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/Chat/useMessageRender.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/Chat/useSSE.mjs +1 -4
- package/es/packages/components/touchchat/src/AiChat/Chat/useSSE.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs +5 -5
- package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs +1 -1
- package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs +3 -3
- package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/MessageActions.vue2.mjs +11 -11
- package/es/packages/components/touchchat/src/AiChat/MessageActions.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue2.mjs +3 -3
- package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs +16 -16
- package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/src/index.vue2.mjs.map +1 -1
- package/es/packages/components/touchchat/utils/a2aService.mjs.map +1 -1
- package/es/packages/components/touchchat/utils/fetchStream.mjs.map +1 -1
- package/lib/package.json.css +1 -1
- package/lib/package.json.js +1 -1
- package/lib/packages/components/resolver.js.map +1 -1
- package/lib/packages/components/touchchat/component/AiRobot/HelloChat.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/AiRobot/letter.vue.js +1 -1
- package/lib/packages/components/touchchat/component/AiRobot/letter.vue2.js +8 -8
- package/lib/packages/components/touchchat/component/AiRobot/letter.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/FileContent.vue2.js +3 -3
- package/lib/packages/components/touchchat/component/FileContent.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/FileView.vue2.js +2 -2
- package/lib/packages/components/touchchat/component/FileView.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/HelloChat.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/ImageFile.vue2.js +6 -6
- package/lib/packages/components/touchchat/component/ImageFile.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/ImageView.vue2.js +1 -1
- package/lib/packages/components/touchchat/component/ImageView.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/LinkView.vue2.js +4 -4
- package/lib/packages/components/touchchat/component/LinkView.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/MarkLayer.vue2.js +1 -1
- package/lib/packages/components/touchchat/component/MarkLayer.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/ModuleSelect.vue2.js +2 -2
- package/lib/packages/components/touchchat/component/ModuleSelect.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/PDFFile.vue2.js +10 -10
- package/lib/packages/components/touchchat/component/PDFFile.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/QuoteContent.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/RealtimeVoice.vue2.js +1 -1
- package/lib/packages/components/touchchat/component/RealtimeVoice.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/UploadView.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/component/VideoFile.vue.js +1 -1
- package/lib/packages/components/touchchat/component/VideoFile.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/AgentsView.vue2.js +1 -1
- package/lib/packages/components/touchchat/src/AiChat/AgentsView.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js +30 -30
- package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/Chat/scriptMatcher.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/Chat/types.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/Chat/useChat.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/Chat/useCopy.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/Chat/useMessageRender.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/Chat/useSSE.js +1 -4
- package/lib/packages/components/touchchat/src/AiChat/Chat/useSSE.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js +5 -5
- package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js +1 -1
- package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js +3 -3
- package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue2.js +11 -11
- package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue2.js +3 -3
- package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js +16 -16
- package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/src/index.vue2.js.map +1 -1
- package/lib/packages/components/touchchat/utils/a2aService.js.map +1 -1
- package/lib/packages/components/touchchat/utils/fetchStream.js.map +1 -1
- package/package.json +83 -83
|
@@ -132,7 +132,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
132
132
|
return (_ctx, _cache) => {
|
|
133
133
|
return openBlock(), createElementBlock("div", {
|
|
134
134
|
class: "touchchat-ai touchchat-item",
|
|
135
|
-
"data-chat-id":
|
|
135
|
+
"data-chat-id": __props.item.chatId
|
|
136
136
|
}, [
|
|
137
137
|
createCommentVNode(" \u5934\u50CF\u533A\u57DF "),
|
|
138
138
|
createElementVNode("div", { class: "touchchat-ai-avatar" }, [
|
|
@@ -148,7 +148,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
148
148
|
createElementVNode(
|
|
149
149
|
"div",
|
|
150
150
|
{
|
|
151
|
-
class: normalizeClass(["touchchat-ai-content", { "is-full": !
|
|
151
|
+
class: normalizeClass(["touchchat-ai-content", { "is-full": !__props.item.isChating && __props.item.componentName }])
|
|
152
152
|
},
|
|
153
153
|
[
|
|
154
154
|
createCommentVNode(" \u6C14\u6CE1 "),
|
|
@@ -167,16 +167,16 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
167
167
|
createElementVNode("div", { class: "touchchat-ai-think-header" }, [
|
|
168
168
|
createElementVNode("div", { class: "touchchat-ai-think-state" }, [
|
|
169
169
|
createTextVNode(
|
|
170
|
-
toDisplayString(
|
|
170
|
+
toDisplayString(__props.item.thinkStatus === "thinking" ? "\u6DF1\u5EA6\u601D\u8003\u4E2D..." : __props.item.thinkStatus === "completed" ? "\u5DF2\u6DF1\u5EA6\u601D\u8003" : "\u601D\u8003\u5DF2\u505C\u6B62") + " ",
|
|
171
171
|
1
|
|
172
172
|
/* TEXT */
|
|
173
173
|
),
|
|
174
|
-
|
|
174
|
+
__props.item.thinkStatus === "completed" ? (openBlock(), createElementBlock(
|
|
175
175
|
Fragment,
|
|
176
176
|
{ key: 0 },
|
|
177
177
|
[
|
|
178
178
|
createTextVNode(
|
|
179
|
-
"\uFF08\u7528\u65F6" + toDisplayString((
|
|
179
|
+
"\uFF08\u7528\u65F6" + toDisplayString((__props.item.thinkTime || 0) / 1e3) + "\u79D2\uFF09",
|
|
180
180
|
1
|
|
181
181
|
/* TEXT */
|
|
182
182
|
)
|
|
@@ -228,17 +228,17 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
228
228
|
])) : createCommentVNode("v-if", true),
|
|
229
229
|
createCommentVNode(" \u4E3B\u5185\u5BB9 "),
|
|
230
230
|
renderSlot(_ctx.$slots, "aimsg", {
|
|
231
|
-
item:
|
|
232
|
-
index:
|
|
231
|
+
item: __props.item,
|
|
232
|
+
index: __props.index
|
|
233
233
|
}, () => [
|
|
234
|
-
contentShow.value && unref(scripts) && unref(scripts).length === 0 &&
|
|
234
|
+
contentShow.value && unref(scripts) && unref(scripts).length === 0 && __props.item.msgList && __props.item.msgList.length ? (openBlock(), createElementBlock("div", {
|
|
235
235
|
key: 0,
|
|
236
236
|
class: "touchchat-ai-bubble-text touchchat-markdown"
|
|
237
237
|
}, [
|
|
238
238
|
(openBlock(true), createElementBlock(
|
|
239
239
|
Fragment,
|
|
240
240
|
null,
|
|
241
|
-
renderList(
|
|
241
|
+
renderList(__props.item.msgList, (node) => {
|
|
242
242
|
return openBlock(), createElementBlock(
|
|
243
243
|
Fragment,
|
|
244
244
|
{
|
|
@@ -254,7 +254,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
254
254
|
mergeProps({
|
|
255
255
|
key: 1,
|
|
256
256
|
ref_for: true
|
|
257
|
-
},
|
|
257
|
+
}, __props.item.props),
|
|
258
258
|
null,
|
|
259
259
|
16
|
|
260
260
|
/* FULL_PROPS */
|
|
@@ -274,7 +274,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
274
274
|
/* KEYED_FRAGMENT */
|
|
275
275
|
))
|
|
276
276
|
])) : createCommentVNode("v-if", true),
|
|
277
|
-
contentShow.value && unref(scripts) && unref(scripts).length === 0 && !(
|
|
277
|
+
contentShow.value && unref(scripts) && unref(scripts).length === 0 && !(__props.item.msgList && __props.item.msgList.length) ? (openBlock(), createElementBlock("div", {
|
|
278
278
|
key: 1,
|
|
279
279
|
class: "touchchat-ai-bubble-text touchchat-markdown",
|
|
280
280
|
innerHTML: processedContent.value
|
|
@@ -284,25 +284,25 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
284
284
|
unref(scripts) && unref(scripts).length > 0 ? (openBlock(), createBlock(Letter, {
|
|
285
285
|
key: 2,
|
|
286
286
|
"auto-start": "",
|
|
287
|
-
data:
|
|
287
|
+
data: __props.item.content,
|
|
288
288
|
onStart: startLetter,
|
|
289
289
|
onComplete: completeLetter
|
|
290
290
|
}, null, 8, ["data"])) : createCommentVNode("v-if", true),
|
|
291
|
-
unref(scripts).length > 0 && (showComponent.value || !
|
|
291
|
+
unref(scripts).length > 0 && (showComponent.value || !__props.item.content) || !unref(scripts).length && !__props.item.isChating ? renderSlot(_ctx.$slots, "msg", {
|
|
292
292
|
key: 3,
|
|
293
|
-
item:
|
|
294
|
-
index:
|
|
293
|
+
item: __props.item,
|
|
294
|
+
index: __props.index
|
|
295
295
|
}, () => [
|
|
296
296
|
(openBlock(), createBlock(resolveDynamicComponent(componentName.value), {
|
|
297
|
-
index:
|
|
298
|
-
item:
|
|
297
|
+
index: __props.index,
|
|
298
|
+
item: __props.item,
|
|
299
299
|
onStart: startCompentent,
|
|
300
300
|
onComplete: completeCompentent,
|
|
301
301
|
onToggleSidebar: toggleSidebarClick
|
|
302
302
|
}, null, 40, ["index", "item"]))
|
|
303
303
|
]) : createCommentVNode("v-if", true),
|
|
304
304
|
createCommentVNode(" \u65B0\u589E\u52A0\u8F7D\u72B6\u6001\u533A\u57DF "),
|
|
305
|
-
|
|
305
|
+
__props.item.isChating ? (openBlock(), createElementBlock("div", {
|
|
306
306
|
key: 4,
|
|
307
307
|
class: "touchchat-ai-loading"
|
|
308
308
|
}, [
|
|
@@ -311,14 +311,14 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
311
311
|
])) : createCommentVNode("v-if", true)
|
|
312
312
|
]),
|
|
313
313
|
renderSlot(_ctx.$slots, "fn", {
|
|
314
|
-
item:
|
|
315
|
-
index:
|
|
314
|
+
item: __props.item,
|
|
315
|
+
index: __props.index
|
|
316
316
|
}, () => [
|
|
317
317
|
withDirectives(createVNode(MessageActions, {
|
|
318
|
-
item:
|
|
318
|
+
item: __props.item,
|
|
319
319
|
"message-type": "ai",
|
|
320
|
-
index:
|
|
321
|
-
"has-retry":
|
|
320
|
+
index: __props.index,
|
|
321
|
+
"has-retry": __props.hasRetry,
|
|
322
322
|
"show-copy": true,
|
|
323
323
|
onCopy,
|
|
324
324
|
onRetry,
|
|
@@ -328,28 +328,28 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
328
328
|
}, {
|
|
329
329
|
extendsFn: withCtx(() => [
|
|
330
330
|
renderSlot(_ctx.$slots, "extendsFn", {
|
|
331
|
-
item:
|
|
332
|
-
index:
|
|
331
|
+
item: __props.item,
|
|
332
|
+
index: __props.index
|
|
333
333
|
})
|
|
334
334
|
]),
|
|
335
335
|
_: 3
|
|
336
336
|
/* FORWARDED */
|
|
337
337
|
}, 8, ["item", "index", "has-retry"]), [
|
|
338
|
-
[vShow, showFn.value && unref(scripts).length > 0 || !unref(scripts).length && !
|
|
338
|
+
[vShow, showFn.value && unref(scripts).length > 0 || !unref(scripts).length && !__props.item.isChating]
|
|
339
339
|
])
|
|
340
340
|
]),
|
|
341
|
-
showFn.value &&
|
|
341
|
+
showFn.value && __props.item.likeList && __props.item.likeList.length && !__props.item.isChating ? (openBlock(), createElementBlock("div", {
|
|
342
342
|
key: 0,
|
|
343
343
|
class: "touchchat-ai-may-like"
|
|
344
344
|
}, [
|
|
345
345
|
renderSlot(_ctx.$slots, "mayLike", {
|
|
346
|
-
item:
|
|
347
|
-
index:
|
|
346
|
+
item: __props.item,
|
|
347
|
+
index: __props.index
|
|
348
348
|
}, () => [
|
|
349
349
|
(openBlock(true), createElementBlock(
|
|
350
350
|
Fragment,
|
|
351
351
|
null,
|
|
352
|
-
renderList(
|
|
352
|
+
renderList(__props.item.likeList, (likeItem) => {
|
|
353
353
|
return openBlock(), createElementBlock("div", {
|
|
354
354
|
key: likeItem.id
|
|
355
355
|
}, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AiMessage.vue2.mjs","sources":["../../../../../../../packages/components/touchchat/src/AiChat/AiMessage.vue"],"sourcesContent":["<template>\n\t<div class=\"touchchat-ai touchchat-item\" :data-chat-id=\"item.chatId\">\n\t\t<!-- 头像区域 -->\n\t\t<div class=\"touchchat-ai-avatar\">\n\t\t\t<slot name=\"aiAvatar\">\n\t\t\t\t<img v-if=\"isShowAvatar\" :src=\"aiAvatarPath\" class=\"touchchat-ai-avatar-pic\" />\n\t\t\t</slot>\n\t\t</div>\n\n\t\t<!-- 内容区域 -->\n\t\t<div class=\"touchchat-ai-content\" :class=\"{ 'is-full': !item.isChating && item.componentName }\">\n\t\t\t<!-- 气泡 -->\n\t\t\t<div class=\"touchchat-ai-bubble\">\n\t\t\t\t<!-- 思考内容 -->\n\t\t\t\t<div v-if=\"thinkContentShow\" class=\"touchchat-ai-think\" v-html=\"processedThinkContent\"></div>\n\n\t\t\t\t<!-- 推理内容 -->\n\t\t\t\t<div v-if=\"reasoningContentShow\" class=\"touchchat-ai-think\">\n\t\t\t\t\t<div class=\"touchchat-ai-think-header\">\n\t\t\t\t\t\t<div class=\"touchchat-ai-think-state\">\n\t\t\t\t\t\t\t{{ item.thinkStatus === 'thinking' ? '深度思考中...' : item.thinkStatus === 'completed' ? '已深度思考' : '思考已停止' }}\n\t\t\t\t\t\t\t<template v-if=\"item.thinkStatus === 'completed'\">(用时{{ (item.thinkTime || 0) / 1000 }}秒)</template>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"touchchat-ai-think-toggle\" :class=\"collapse ? '' : 'is-expand'\" @click=\"collapse = !collapse\">\n\t\t\t\t\t\t\t<span class=\"touchchat-ai-think-toggle-icon\"></span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<transition name=\"touchchat-ai-think-collpase\">\n\t\t\t\t\t\t<div v-show=\"collapse && !chainAble\" class=\"touchchat-ai-think-content\" v-html=\"processedReasoningContent\"></div>\n\t\t\t\t\t</transition>\n\t\t\t\t\t<transition name=\"touchchat-ai-think-collpase\">\n\t\t\t\t\t\t<thought-chain v-show=\"collapse && chainAble\"></thought-chain>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\n\t\t\t\t<!-- 主内容 -->\n\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\">\n\t\t\t\t\t<div v-if=\"contentShow && scripts && scripts.length === 0 && item.msgList && item.msgList.length\" class=\"touchchat-ai-bubble-text touchchat-markdown\">\n\t\t\t\t\t\t<template v-for=\"node in item.msgList\" :key=\"node.id\">\n\t\t\t\t\t\t\t<div v-if=\"node.type === 'markdown' && node.content\" v-html=\"getProcessedContent(node)\" />\n\t\t\t\t\t\t\t<component :is=\"components[node.componentName]\" v-if=\"node.type === 'component' && node.displayMode === 'inline'\" v-bind=\"item.props\" />\n\t\t\t\t\t\t\t<TouchA2ui v-if=\"node.type === 'a2ui'\" :messages=\"node.msgs\" :components=\"a2uiProps.components\" :surface-id=\"node.surfaceId\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if=\"contentShow && scripts && scripts.length === 0 && !(item.msgList && item.msgList.length)\" class=\"touchchat-ai-bubble-text touchchat-markdown\" v-html=\"processedContent\"></div>\n\t\t\t\t</slot>\n\n\t\t\t\t<!-- && !item.componentName -->\n\t\t\t\t<letter v-if=\"scripts && scripts.length > 0\" auto-start :data=\"item.content\" @start=\"startLetter\" @complete=\"completeLetter\"> </letter>\n\t\t\t\t<slot v-if=\"(scripts.length > 0 && (showComponent || !item.content)) || (!scripts.length && !item.isChating)\" name=\"msg\" :item=\"item\" :index=\"index\">\n\t\t\t\t\t<component :is=\"componentName\" :index=\"index\" :item=\"item\" @start=\"startCompentent\" @complete=\"completeCompentent\" @toggle-sidebar=\"toggleSidebarClick\"></component>\n\t\t\t\t</slot>\n\n\t\t\t\t<!-- 新增加载状态区域 -->\n\t\t\t\t<div v-if=\"item.isChating\" class=\"touchchat-ai-loading\">\n\t\t\t\t\t<div class=\"touchchat-ai-loading-icon\"></div>\n\t\t\t\t\t<span class=\"touchchat-ai-loading-text\">加载中...</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\">\n\t\t\t\t<MessageActions v-show=\"(showFn && scripts.length > 0) || (!scripts.length && !item.isChating)\" :item=\"item\" message-type=\"ai\" :index=\"index\" :has-retry=\"hasRetry\" :show-copy=\"true\" @copy=\"onCopy\" @retry=\"onRetry\" @like=\"onLike\" @dislike=\"onDislike\" @quote=\"onQuote\">\n\t\t\t\t\t<!-- <slot name=\"extendsFn\" :item=\"item\" :index=\"index\"></slot> -->\n\t\t\t\t\t<template #extendsFn>\n\t\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\n\t\t\t\t\t</template>\n\t\t\t\t</MessageActions>\n\t\t\t</slot>\n\t\t\t<div v-if=\"showFn && item.likeList && item.likeList.length && !item.isChating\" class=\"touchchat-ai-may-like\">\n\t\t\t\t<slot name=\"mayLike\" :item=\"item\" :index=\"index\">\n\t\t\t\t\t<div v-for=\"likeItem in item.likeList\" :key=\"likeItem.id\">\n\t\t\t\t\t\t<span class=\"touchchat-ai-may-like-item\" @click=\"handleSend(likeItem.name)\">\n\t\t\t\t\t\t\t<span class=\"touchchat-ai-may-like-item-title\">{{ likeItem.name }}</span>\n\t\t\t\t\t\t\t<div class=\"touchchat-action-item value-right-arrow\"></div>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t</slot>\n\t\t\t</div>\n\t\t\t<!-- && !scripts.length -->\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\" setup>\n// useSlots, Comment, watch\nimport { ref, computed, inject, onMounted, watch } from 'vue'\nimport type { ChatMessage, ChatMsgList } from './Chat/types'\nimport aiAvatarBase from '../../img/aiAvatar.png'\nimport markdown from '../../utils/markdown.ts'\nimport FileView from '../../component/FileView.vue'\nimport ImageView from '../../component/ImageView.vue'\nimport LinkView from '../../component/LinkView.vue'\nimport CardView from '../../component/CardView.vue'\nimport MessageActions from './MessageActions.vue'\nimport Face from '../../component/AiRobot/face.vue'\nimport MeterialPrepare from '../../component/AiRobot/meterialPrepare.vue'\nimport Letter from '../../component/AiRobot/letter.vue'\nimport ThoughtChain from '../../component/ThoughtChain.vue'\nimport { TouchA2ui } from '@touchvue/a2ui'\n// 为组件映射表定义接口\ninterface ComponentMap {\n\t[key: string]: any // 允许任何字符串键\n\tFileView: typeof FileView\n\tImageView: typeof ImageView\n\tLinkView: typeof LinkView\n\tCardView: typeof CardView\n}\n\n// 创建组件映射表\nconst componentMap: ComponentMap = {\n\tFileView,\n\tImageView,\n\tLinkView,\n\tCardView,\n\tFace,\n\tMeterialPrepare\n}\n\nconst props = withDefaults(\n\tdefineProps<{\n\t\titem: ChatMessage & ChatMsgList\n\t\tindex: number\n\t\thasRetry: boolean\n\t}>(),\n\t{\n\t\thasRetry: true\n\t}\n)\n\nwatch(\n\t() => props.item,\n\tval => {\n\t\tlet arr = []\n\t\tif (val.msgList) {\n\t\t\tarr = val.msgList?.filter(item => (item.type === 'component' && (item.displayMode === 'drawer' || item.displayMode === 'tip')) || (item.type === 'iframe' && item.url))\n\t\t}\n\t\tif (arr.length) {\n\t\t\temits('openSideBar', arr[0], props.index)\n\t\t}\n\t},\n\t{\n\t\tdeep: true\n\t}\n)\n\nconst emits = defineEmits<{\n\t(e: 'copy', index: number): void\n\t(e: 'retry', index: number): void\n\t(e: 'like', index: number): void\n\t(e: 'dislike', index: number): void\n\t(e: 'quote', item: any, index: number): void\n\t(e: 'contentRendered', element: HTMLElement): void\n\t(e: 'completeRendered', chatId: string): void\n\t(e: 'toggle-sidebar', item: any, index: number): void\n\t(e: 'openSideBar', item: any, index: number): void\n\t(e: 'send', sendVal: string): void\n}>()\n\nconst collapse = ref(true)\nconst isShowAvatar = ref(true)\nconst aiAvatarPath = ref(aiAvatarBase)\nconst components = inject<Record<string, any>>('components', {}) // 指定类型并提供默认值 {}\nconst a2uiProps = inject<Record<string, any>>('a2uiProps', {}) // 指定类型并提供默认值 {}\nconst avatar = inject<boolean>('avatar', true)\nconst scripts = inject<any[]>('scripts', [])\nconst layout = inject<string>('layout', 'side, think, upload, chain')\nconst chainAble = layout.includes('chain')\nconst showComponent = ref(false)\nconst showFn = ref(false)\n\nconst init = () => {\n\tisShowAvatar.value = avatar\n}\n\nconst componentName = computed(() => {\n\tconst slotMap = components\n\n\t// 明确newMap的类型,允许字符串索引\n\tconst newMap: Record<string, any> = {\n\t\t...slotMap,\n\t\t...componentMap\n\t}\n\treturn newMap[props.item.componentName as string] || null\n})\n\nconst thinkContentShow = computed(() => {\n\treturn props.item.thinkContent\n\t// && !props.item.componentName;\n})\n\nconst reasoningContentShow = computed(() => {\n\treturn props.item.reasoningContent\n})\n\nconst processedContent = computed(() => {\n\treturn props.item.content ? markdown?.render(props.item.content, { isReasoning: false }) || '' : ''\n})\n\nconst getProcessedContent = (node: any) => {\n\treturn node.content ? markdown?.render(node.content, { isReasoning: false }) || '' : ''\n}\n\nconst processedThinkContent = computed(() => {\n\treturn props.item.thinkContent ? markdown?.render(props.item.thinkContent, { isReasoning: true }) || '' : ''\n})\n\nconst processedReasoningContent = computed(() => {\n\treturn props.item.reasoningContent ? markdown?.render(props.item.reasoningContent, { isReasoning: true }) || '' : ''\n})\n\nconst contentShow = computed(() => {\n\treturn props.item.content || props.item.msgList?.length\n})\n\nconst handleSend = (sendVal: string) => {\n\temits('send', sendVal)\n}\n\nconst toggleSidebarClick = (item: ChatMessage, index: number) => {\n\temits('toggle-sidebar', item, index)\n}\n\nonMounted(() => {\n\tinit()\n})\n\nconst completeCompentent = () => {\n\temits('completeRendered', props.item?.chatId || '')\n\tshowFn.value = true\n}\nconst completeLetter = () => {\n\tshowComponent.value = true\n\tif (!props.item.componentName) {\n\t\temits('completeRendered', props.item?.chatId || '')\n\t\tshowFn.value = true\n\t}\n}\n\nconst startCompentent = () => {\n\tconsole.log('startCompentent')\n}\nconst startLetter = () => {\n\tshowComponent.value = false\n\tshowFn.value = false\n}\n\nconst onCopy = () => emits('copy', props.index)\nconst onRetry = () => emits('retry', props.index)\nconst onLike = () => emits('like', props.index)\nconst onDislike = () => emits('dislike', props.index)\nconst onQuote = () => emits('quote', props.item, props.index)\n</script>\n"],"names":["aiAvatarBase","_createElementBlock","item","_createCommentVNode","_createElementVNode","_renderSlot","_normalizeClass","_Fragment","_createTextVNode","_createVNode","_Transition","_vShow","_unref","index","_openBlock","_createBlock","_resolveDynamicComponent","_mergeProps","TouchA2ui","hasRetry","_toDisplayString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AiMessage.vue2.mjs","sources":["../../../../../../../packages/components/touchchat/src/AiChat/AiMessage.vue"],"sourcesContent":["<template>\r\n\t<div class=\"touchchat-ai touchchat-item\" :data-chat-id=\"item.chatId\">\r\n\t\t<!-- 头像区域 -->\r\n\t\t<div class=\"touchchat-ai-avatar\">\r\n\t\t\t<slot name=\"aiAvatar\">\r\n\t\t\t\t<img v-if=\"isShowAvatar\" :src=\"aiAvatarPath\" class=\"touchchat-ai-avatar-pic\" />\r\n\t\t\t</slot>\r\n\t\t</div>\r\n\r\n\t\t<!-- 内容区域 -->\r\n\t\t<div class=\"touchchat-ai-content\" :class=\"{ 'is-full': !item.isChating && item.componentName }\">\r\n\t\t\t<!-- 气泡 -->\r\n\t\t\t<div class=\"touchchat-ai-bubble\">\r\n\t\t\t\t<!-- 思考内容 -->\r\n\t\t\t\t<div v-if=\"thinkContentShow\" class=\"touchchat-ai-think\" v-html=\"processedThinkContent\"></div>\r\n\r\n\t\t\t\t<!-- 推理内容 -->\r\n\t\t\t\t<div v-if=\"reasoningContentShow\" class=\"touchchat-ai-think\">\r\n\t\t\t\t\t<div class=\"touchchat-ai-think-header\">\r\n\t\t\t\t\t\t<div class=\"touchchat-ai-think-state\">\r\n\t\t\t\t\t\t\t{{ item.thinkStatus === 'thinking' ? '深度思考中...' : item.thinkStatus === 'completed' ? '已深度思考' : '思考已停止' }}\r\n\t\t\t\t\t\t\t<template v-if=\"item.thinkStatus === 'completed'\">(用时{{ (item.thinkTime || 0) / 1000 }}秒)</template>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"touchchat-ai-think-toggle\" :class=\"collapse ? '' : 'is-expand'\" @click=\"collapse = !collapse\">\r\n\t\t\t\t\t\t\t<span class=\"touchchat-ai-think-toggle-icon\"></span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<transition name=\"touchchat-ai-think-collpase\">\r\n\t\t\t\t\t\t<div v-show=\"collapse && !chainAble\" class=\"touchchat-ai-think-content\" v-html=\"processedReasoningContent\"></div>\r\n\t\t\t\t\t</transition>\r\n\t\t\t\t\t<transition name=\"touchchat-ai-think-collpase\">\r\n\t\t\t\t\t\t<thought-chain v-show=\"collapse && chainAble\"></thought-chain>\r\n\t\t\t\t\t</transition>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<!-- 主内容 -->\r\n\t\t\t\t<slot name=\"aimsg\" :item=\"item\" :index=\"index\">\r\n\t\t\t\t\t<div v-if=\"contentShow && scripts && scripts.length === 0 && item.msgList && item.msgList.length\" class=\"touchchat-ai-bubble-text touchchat-markdown\">\r\n\t\t\t\t\t\t<template v-for=\"node in item.msgList\" :key=\"node.id\">\r\n\t\t\t\t\t\t\t<div v-if=\"node.type === 'markdown' && node.content\" v-html=\"getProcessedContent(node)\" />\r\n\t\t\t\t\t\t\t<component :is=\"components[node.componentName]\" v-if=\"node.type === 'component' && node.displayMode === 'inline'\" v-bind=\"item.props\" />\r\n\t\t\t\t\t\t\t<TouchA2ui v-if=\"node.type === 'a2ui'\" :messages=\"node.msgs\" :components=\"a2uiProps.components\" :surface-id=\"node.surfaceId\" />\r\n\t\t\t\t\t\t</template>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div v-if=\"contentShow && scripts && scripts.length === 0 && !(item.msgList && item.msgList.length)\" class=\"touchchat-ai-bubble-text touchchat-markdown\" v-html=\"processedContent\"></div>\r\n\t\t\t\t</slot>\r\n\r\n\t\t\t\t<!-- && !item.componentName -->\r\n\t\t\t\t<letter v-if=\"scripts && scripts.length > 0\" auto-start :data=\"item.content\" @start=\"startLetter\" @complete=\"completeLetter\"> </letter>\r\n\t\t\t\t<slot v-if=\"(scripts.length > 0 && (showComponent || !item.content)) || (!scripts.length && !item.isChating)\" name=\"msg\" :item=\"item\" :index=\"index\">\r\n\t\t\t\t\t<component :is=\"componentName\" :index=\"index\" :item=\"item\" @start=\"startCompentent\" @complete=\"completeCompentent\" @toggle-sidebar=\"toggleSidebarClick\"></component>\r\n\t\t\t\t</slot>\r\n\r\n\t\t\t\t<!-- 新增加载状态区域 -->\r\n\t\t\t\t<div v-if=\"item.isChating\" class=\"touchchat-ai-loading\">\r\n\t\t\t\t\t<div class=\"touchchat-ai-loading-icon\"></div>\r\n\t\t\t\t\t<span class=\"touchchat-ai-loading-text\">加载中...</span>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<slot name=\"fn\" :item=\"item\" :index=\"index\">\r\n\t\t\t\t<MessageActions v-show=\"(showFn && scripts.length > 0) || (!scripts.length && !item.isChating)\" :item=\"item\" message-type=\"ai\" :index=\"index\" :has-retry=\"hasRetry\" :show-copy=\"true\" @copy=\"onCopy\" @retry=\"onRetry\" @like=\"onLike\" @dislike=\"onDislike\" @quote=\"onQuote\">\r\n\t\t\t\t\t<!-- <slot name=\"extendsFn\" :item=\"item\" :index=\"index\"></slot> -->\r\n\t\t\t\t\t<template #extendsFn>\r\n\t\t\t\t\t\t<slot name=\"extendsFn\" :item=\"item\" :index=\"index\" />\r\n\t\t\t\t\t</template>\r\n\t\t\t\t</MessageActions>\r\n\t\t\t</slot>\r\n\t\t\t<div v-if=\"showFn && item.likeList && item.likeList.length && !item.isChating\" class=\"touchchat-ai-may-like\">\r\n\t\t\t\t<slot name=\"mayLike\" :item=\"item\" :index=\"index\">\r\n\t\t\t\t\t<div v-for=\"likeItem in item.likeList\" :key=\"likeItem.id\">\r\n\t\t\t\t\t\t<span class=\"touchchat-ai-may-like-item\" @click=\"handleSend(likeItem.name)\">\r\n\t\t\t\t\t\t\t<span class=\"touchchat-ai-may-like-item-title\">{{ likeItem.name }}</span>\r\n\t\t\t\t\t\t\t<div class=\"touchchat-action-item value-right-arrow\"></div>\r\n\t\t\t\t\t\t</span>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</slot>\r\n\t\t\t</div>\r\n\t\t\t<!-- && !scripts.length -->\r\n\t\t</div>\r\n\t</div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\n// useSlots, Comment, watch\r\nimport { ref, computed, inject, onMounted, watch } from 'vue'\r\nimport type { ChatMessage, ChatMsgList } from './Chat/types'\r\nimport aiAvatarBase from '../../img/aiAvatar.png'\r\nimport markdown from '../../utils/markdown.ts'\r\nimport FileView from '../../component/FileView.vue'\r\nimport ImageView from '../../component/ImageView.vue'\r\nimport LinkView from '../../component/LinkView.vue'\r\nimport CardView from '../../component/CardView.vue'\r\nimport MessageActions from './MessageActions.vue'\r\nimport Face from '../../component/AiRobot/face.vue'\r\nimport MeterialPrepare from '../../component/AiRobot/meterialPrepare.vue'\r\nimport Letter from '../../component/AiRobot/letter.vue'\r\nimport ThoughtChain from '../../component/ThoughtChain.vue'\r\nimport { TouchA2ui } from '@touchvue/a2ui'\r\n// 为组件映射表定义接口\r\ninterface ComponentMap {\r\n\t[key: string]: any // 允许任何字符串键\r\n\tFileView: typeof FileView\r\n\tImageView: typeof ImageView\r\n\tLinkView: typeof LinkView\r\n\tCardView: typeof CardView\r\n}\r\n\r\n// 创建组件映射表\r\nconst componentMap: ComponentMap = {\r\n\tFileView,\r\n\tImageView,\r\n\tLinkView,\r\n\tCardView,\r\n\tFace,\r\n\tMeterialPrepare\r\n}\r\n\r\nconst props = withDefaults(\r\n\tdefineProps<{\r\n\t\titem: ChatMessage & ChatMsgList\r\n\t\tindex: number\r\n\t\thasRetry: boolean\r\n\t}>(),\r\n\t{\r\n\t\thasRetry: true\r\n\t}\r\n)\r\n\r\nwatch(\r\n\t() => props.item,\r\n\tval => {\r\n\t\tlet arr = []\r\n\t\tif (val.msgList) {\r\n\t\t\tarr = val.msgList?.filter(item => (item.type === 'component' && (item.displayMode === 'drawer' || item.displayMode === 'tip')) || (item.type === 'iframe' && item.url))\r\n\t\t}\r\n\t\tif (arr.length) {\r\n\t\t\temits('openSideBar', arr[0], props.index)\r\n\t\t}\r\n\t},\r\n\t{\r\n\t\tdeep: true\r\n\t}\r\n)\r\n\r\nconst emits = defineEmits<{\r\n\t(e: 'copy', index: number): void\r\n\t(e: 'retry', index: number): void\r\n\t(e: 'like', index: number): void\r\n\t(e: 'dislike', index: number): void\r\n\t(e: 'quote', item: any, index: number): void\r\n\t(e: 'contentRendered', element: HTMLElement): void\r\n\t(e: 'completeRendered', chatId: string): void\r\n\t(e: 'toggle-sidebar', item: any, index: number): void\r\n\t(e: 'openSideBar', item: any, index: number): void\r\n\t(e: 'send', sendVal: string): void\r\n}>()\r\n\r\nconst collapse = ref(true)\r\nconst isShowAvatar = ref(true)\r\nconst aiAvatarPath = ref(aiAvatarBase)\r\nconst components = inject<Record<string, any>>('components', {}) // 指定类型并提供默认值 {}\r\nconst a2uiProps = inject<Record<string, any>>('a2uiProps', {}) // 指定类型并提供默认值 {}\r\nconst avatar = inject<boolean>('avatar', true)\r\nconst scripts = inject<any[]>('scripts', [])\r\nconst layout = inject<string>('layout', 'side, think, upload, chain')\r\nconst chainAble = layout.includes('chain')\r\nconst showComponent = ref(false)\r\nconst showFn = ref(false)\r\n\r\nconst init = () => {\r\n\tisShowAvatar.value = avatar\r\n}\r\n\r\nconst componentName = computed(() => {\r\n\tconst slotMap = components\r\n\r\n\t// 明确newMap的类型,允许字符串索引\r\n\tconst newMap: Record<string, any> = {\r\n\t\t...slotMap,\r\n\t\t...componentMap\r\n\t}\r\n\treturn newMap[props.item.componentName as string] || null\r\n})\r\n\r\nconst thinkContentShow = computed(() => {\r\n\treturn props.item.thinkContent\r\n\t// && !props.item.componentName;\r\n})\r\n\r\nconst reasoningContentShow = computed(() => {\r\n\treturn props.item.reasoningContent\r\n})\r\n\r\nconst processedContent = computed(() => {\r\n\treturn props.item.content ? markdown?.render(props.item.content, { isReasoning: false }) || '' : ''\r\n})\r\n\r\nconst getProcessedContent = (node: any) => {\r\n\treturn node.content ? markdown?.render(node.content, { isReasoning: false }) || '' : ''\r\n}\r\n\r\nconst processedThinkContent = computed(() => {\r\n\treturn props.item.thinkContent ? markdown?.render(props.item.thinkContent, { isReasoning: true }) || '' : ''\r\n})\r\n\r\nconst processedReasoningContent = computed(() => {\r\n\treturn props.item.reasoningContent ? markdown?.render(props.item.reasoningContent, { isReasoning: true }) || '' : ''\r\n})\r\n\r\nconst contentShow = computed(() => {\r\n\treturn props.item.content || props.item.msgList?.length\r\n})\r\n\r\nconst handleSend = (sendVal: string) => {\r\n\temits('send', sendVal)\r\n}\r\n\r\nconst toggleSidebarClick = (item: ChatMessage, index: number) => {\r\n\temits('toggle-sidebar', item, index)\r\n}\r\n\r\nonMounted(() => {\r\n\tinit()\r\n})\r\n\r\nconst completeCompentent = () => {\r\n\temits('completeRendered', props.item?.chatId || '')\r\n\tshowFn.value = true\r\n}\r\nconst completeLetter = () => {\r\n\tshowComponent.value = true\r\n\tif (!props.item.componentName) {\r\n\t\temits('completeRendered', props.item?.chatId || '')\r\n\t\tshowFn.value = true\r\n\t}\r\n}\r\n\r\nconst startCompentent = () => {\r\n\tconsole.log('startCompentent')\r\n}\r\nconst startLetter = () => {\r\n\tshowComponent.value = false\r\n\tshowFn.value = false\r\n}\r\n\r\nconst onCopy = () => emits('copy', props.index)\r\nconst onRetry = () => emits('retry', props.index)\r\nconst onLike = () => emits('like', props.index)\r\nconst onDislike = () => emits('dislike', props.index)\r\nconst onQuote = () => emits('quote', props.item, props.index)\r\n</script>\r\n"],"names":["aiAvatarBase","_createElementBlock","_createCommentVNode","_createElementVNode","_renderSlot","_normalizeClass","_createTextVNode","_toDisplayString","_Fragment","_createVNode","_Transition","_vShow","_unref","_openBlock","_renderList","_createBlock","_resolveDynamicComponent","_mergeProps","TouchA2ui"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scriptMatcher.mjs","sources":["../../../../../../../../packages/components/touchchat/src/AiChat/Chat/scriptMatcher.ts"],"sourcesContent":["/**\n * 脚本匹配逻辑\n */\n\nimport { ref, type Ref } from 'vue'\nimport type { Script, FileItem, ScriptMatchResult } from './types'\n\nexport interface ScriptMatcherOptions {\n\tscripts: Ref<any[]>\n\tactiveAgentsName: Ref<string>\n\tfileData: Ref<FileItem[]>\n\tunmatchText: string\n}\n\nexport function createScriptMatcher({ scripts, activeAgentsName, fileData }: ScriptMatcherOptions) {\n\tconst activeScript = ref<Script | null>(null)\n\n\t// 在脚本中搜索匹配内容\n\tconst searchInScript = (script: Script, userInput: string): ScriptMatchResult | null => {\n\t\tfor (let i = 0; i < script.content.length; i++) {\n\t\t\tconst item = script.content[i]\n\t\t\tif (item.user === 'i') {\n\t\t\t\t// 检查 data 是否匹配\n\t\t\t\tconst isDataMatch = item.data && userInput.includes(item.data)\n\t\t\t\t// 检查 alias 是否匹配\n\t\t\t\tlet isSubDataMatch = false\n\t\t\t\tif (item.alias) {\n\t\t\t\t\tif (Array.isArray(item.alias)) {\n\t\t\t\t\t\tisSubDataMatch = item.alias.some((subItem: string) => subItem === userInput)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (isDataMatch || isSubDataMatch) {\n\t\t\t\t\t// 收集 AI 回复\n\t\t\t\t\tconst responses: any[] = []\n\t\t\t\t\t// 从匹配位置的下一个元素开始遍历\n\t\t\t\t\tfor (let j = i + 1; j < script.content.length; j++) {\n\t\t\t\t\t\tconst nextItem = script.content[j]\n\t\t\t\t\t\tif (nextItem.user === 'i') {\n\t\t\t\t\t\t\tbreak // 遇到下一个用户消息,停止收集\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (nextItem.user === 'ai') {\n\t\t\t\t\t\t\tif (nextItem.data && nextItem.type) {\n\t\t\t\t\t\t\t\t// 合并 data 和 type 到一条响应中\n\t\t\t\t\t\t\t\tresponses.push({\n\t\t\t\t\t\t\t\t\t...nextItem,\n\t\t\t\t\t\t\t\t\t// 标记需要先流式输出文字,再调用组件\n\t\t\t\t\t\t\t\t\tneedSequenceProcessing: true\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tresponses.push(nextItem)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// 查找下一个用户消息的索引\n\t\t\t\t\tconst nextIndex = script.content.findIndex((contentItem: any, index: number) => index > i && contentItem.user === 'i')\n\t\t\t\t\treturn { responses, nextIndex: nextIndex === -1 ? script.content.length : nextIndex }\n\t\t\t\t}\n\t\t\t} else if (item.user === 'ai') {\n\t\t\t\tscripts.value.forEach((script: any) => {\n\t\t\t\t\tif (script.content.length) {\n\t\t\t\t\t\tconst contents = script.content\n\t\t\t\t\t\tcontents.forEach((item: any) => {\n\t\t\t\t\t\t\tif (item.agents) {\n\t\t\t\t\t\t\t\tif (item.agents === activeAgentsName.value) {\n\t\t\t\t\t\t\t\t\tactiveScript.value = script\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\treturn null\n\t}\n\n\t// 查找匹配的脚本内容\n\tconst findMatchingScriptContent = (userInput: string): ScriptMatchResult | null => {\n\t\tif (!scripts.value || scripts.value.length === 0) return null\n\n\t\tconst agentName = activeAgentsName.value ? activeAgentsName.value : localStorage.getItem('activeAgentsName') || ''\n\t\tif (agentName) {\n\t\t\tconst agentMatchedScripts = scripts.value.filter((script: any) => {\n\t\t\t\treturn script.content.some((item: any) => item.agents === agentName)\n\t\t\t})\n\t\t\tif (agentMatchedScripts.length > 0) {\n\t\t\t\tconst fileTypeItems = agentMatchedScripts.flatMap((script: any) => script.content.filter((item: any) => item.file))\n\t\t\t\tconst fileTypes = fileTypeItems.map((item: any) => item.file)\n\t\t\t\tconst isFileTypeMatched = fileData.value.some((file: any) => {\n\t\t\t\t\tconst nameArr = file.name.split('.')\n\t\t\t\t\tconst name = nameArr[nameArr.length - 1]\n\t\t\t\t\tconst isMatched = fileTypes.includes(name)\n\t\t\t\t\treturn isMatched\n\t\t\t\t})\n\t\t\t\t// 存储匹配的脚本内容下标\n\t\t\t\tlet matchedScriptContentIndex = -1\n\t\t\t\tif (!activeScript.value && isFileTypeMatched) {\n\t\t\t\t\tactiveScript.value = agentMatchedScripts[0]\n\t\t\t\t}\n\t\t\t\t// 智能体匹配成功,检查用户消息中是否有 file 字段\n\t\t\t\tif (isFileTypeMatched) {\n\t\t\t\t\t// 遍历所有匹配的脚本\n\t\t\t\t\tfor (const script of agentMatchedScripts) {\n\t\t\t\t\t\tfor (let i = 0; i < script.content.length; i++) {\n\t\t\t\t\t\t\tconst item = script.content[i]\n\t\t\t\t\t\t\tif (item.file) {\n\t\t\t\t\t\t\t\tconst nameArr = fileData.value.map((file: any) => {\n\t\t\t\t\t\t\t\t\tconst fileExtArr = file.name.split('.')\n\t\t\t\t\t\t\t\t\treturn fileExtArr[fileExtArr.length - 1]\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\tif (nameArr.includes(item.file)) {\n\t\t\t\t\t\t\t\t\tmatchedScriptContentIndex = i\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (matchedScriptContentIndex !== -1) {\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst responses: any[] = []\n\t\t\t\t\tconst matchContent = agentMatchedScripts[0].content\n\t\t\t\t\tfor (let j = matchedScriptContentIndex + 1; j < matchContent.length; j++) {\n\t\t\t\t\t\tconst nextItem = matchContent[j]\n\t\t\t\t\t\tif (nextItem.user === 'i') {\n\t\t\t\t\t\t\tbreak // 遇到下一个用户消息,停止收集\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (nextItem.user === 'ai') {\n\t\t\t\t\t\t\tif (nextItem.data && nextItem.type) {\n\t\t\t\t\t\t\t\t// 合并 data 和 type 到一条响应中\n\t\t\t\t\t\t\t\tresponses.push({\n\t\t\t\t\t\t\t\t\t...nextItem,\n\t\t\t\t\t\t\t\t\t// 标记需要先流式输出文字,再调用组件\n\t\t\t\t\t\t\t\t\tneedSequenceProcessing: true\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tresponses.push(nextItem)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tconst nextIndex = matchContent.findIndex((contentItem: any, index: number) => index > matchedScriptContentIndex && contentItem.user === 'i')\n\t\t\t\t\treturn {\n\t\t\t\t\t\tresponses,\n\t\t\t\t\t\tnextIndex: nextIndex === -1 ? matchContent.length : nextIndex\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// agentName 有值但不存在带 agents 的剧本时,不拦截,继续下方通用剧本匹配\n\t\t}\n\n\t\t// 先尝试从当前激活的脚本中查找\n\t\tif (activeScript.value) {\n\t\t\tconst result = searchInScript(activeScript.value, userInput)\n\t\t\tif (result) {\n\t\t\t\treturn result\n\t\t\t}\n\t\t}\n\n\t\t// 若当前激活脚本未匹配,遍历所有脚本查找\n\t\tfor (const script of scripts.value) {\n\t\t\tconst result = searchInScript(script, userInput)\n\t\t\tif (result) {\n\t\t\t\tactiveScript.value = script\n\t\t\t\treturn result\n\t\t\t}\n\t\t}\n\n\t\treturn null\n\t}\n\n\treturn {\n\t\tactiveScript,\n\t\tfindMatchingScriptContent,\n\t\tsearchInScript\n\t}\n}\n"],"names":["script","item"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scriptMatcher.mjs","sources":["../../../../../../../../packages/components/touchchat/src/AiChat/Chat/scriptMatcher.ts"],"sourcesContent":["/**\r\n * 脚本匹配逻辑\r\n */\r\n\r\nimport { ref, type Ref } from 'vue'\r\nimport type { Script, FileItem, ScriptMatchResult } from './types'\r\n\r\nexport interface ScriptMatcherOptions {\r\n\tscripts: Ref<any[]>\r\n\tactiveAgentsName: Ref<string>\r\n\tfileData: Ref<FileItem[]>\r\n\tunmatchText: string\r\n}\r\n\r\nexport function createScriptMatcher({ scripts, activeAgentsName, fileData }: ScriptMatcherOptions) {\r\n\tconst activeScript = ref<Script | null>(null)\r\n\r\n\t// 在脚本中搜索匹配内容\r\n\tconst searchInScript = (script: Script, userInput: string): ScriptMatchResult | null => {\r\n\t\tfor (let i = 0; i < script.content.length; i++) {\r\n\t\t\tconst item = script.content[i]\r\n\t\t\tif (item.user === 'i') {\r\n\t\t\t\t// 检查 data 是否匹配\r\n\t\t\t\tconst isDataMatch = item.data && userInput.includes(item.data)\r\n\t\t\t\t// 检查 alias 是否匹配\r\n\t\t\t\tlet isSubDataMatch = false\r\n\t\t\t\tif (item.alias) {\r\n\t\t\t\t\tif (Array.isArray(item.alias)) {\r\n\t\t\t\t\t\tisSubDataMatch = item.alias.some((subItem: string) => subItem === userInput)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isDataMatch || isSubDataMatch) {\r\n\t\t\t\t\t// 收集 AI 回复\r\n\t\t\t\t\tconst responses: any[] = []\r\n\t\t\t\t\t// 从匹配位置的下一个元素开始遍历\r\n\t\t\t\t\tfor (let j = i + 1; j < script.content.length; j++) {\r\n\t\t\t\t\t\tconst nextItem = script.content[j]\r\n\t\t\t\t\t\tif (nextItem.user === 'i') {\r\n\t\t\t\t\t\t\tbreak // 遇到下一个用户消息,停止收集\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (nextItem.user === 'ai') {\r\n\t\t\t\t\t\t\tif (nextItem.data && nextItem.type) {\r\n\t\t\t\t\t\t\t\t// 合并 data 和 type 到一条响应中\r\n\t\t\t\t\t\t\t\tresponses.push({\r\n\t\t\t\t\t\t\t\t\t...nextItem,\r\n\t\t\t\t\t\t\t\t\t// 标记需要先流式输出文字,再调用组件\r\n\t\t\t\t\t\t\t\t\tneedSequenceProcessing: true\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tresponses.push(nextItem)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// 查找下一个用户消息的索引\r\n\t\t\t\t\tconst nextIndex = script.content.findIndex((contentItem: any, index: number) => index > i && contentItem.user === 'i')\r\n\t\t\t\t\treturn { responses, nextIndex: nextIndex === -1 ? script.content.length : nextIndex }\r\n\t\t\t\t}\r\n\t\t\t} else if (item.user === 'ai') {\r\n\t\t\t\tscripts.value.forEach((script: any) => {\r\n\t\t\t\t\tif (script.content.length) {\r\n\t\t\t\t\t\tconst contents = script.content\r\n\t\t\t\t\t\tcontents.forEach((item: any) => {\r\n\t\t\t\t\t\t\tif (item.agents) {\r\n\t\t\t\t\t\t\t\tif (item.agents === activeAgentsName.value) {\r\n\t\t\t\t\t\t\t\t\tactiveScript.value = script\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn null\r\n\t}\r\n\r\n\t// 查找匹配的脚本内容\r\n\tconst findMatchingScriptContent = (userInput: string): ScriptMatchResult | null => {\r\n\t\tif (!scripts.value || scripts.value.length === 0) return null\r\n\r\n\t\tconst agentName = activeAgentsName.value ? activeAgentsName.value : localStorage.getItem('activeAgentsName') || ''\r\n\t\tif (agentName) {\r\n\t\t\tconst agentMatchedScripts = scripts.value.filter((script: any) => {\r\n\t\t\t\treturn script.content.some((item: any) => item.agents === agentName)\r\n\t\t\t})\r\n\t\t\tif (agentMatchedScripts.length > 0) {\r\n\t\t\t\tconst fileTypeItems = agentMatchedScripts.flatMap((script: any) => script.content.filter((item: any) => item.file))\r\n\t\t\t\tconst fileTypes = fileTypeItems.map((item: any) => item.file)\r\n\t\t\t\tconst isFileTypeMatched = fileData.value.some((file: any) => {\r\n\t\t\t\t\tconst nameArr = file.name.split('.')\r\n\t\t\t\t\tconst name = nameArr[nameArr.length - 1]\r\n\t\t\t\t\tconst isMatched = fileTypes.includes(name)\r\n\t\t\t\t\treturn isMatched\r\n\t\t\t\t})\r\n\t\t\t\t// 存储匹配的脚本内容下标\r\n\t\t\t\tlet matchedScriptContentIndex = -1\r\n\t\t\t\tif (!activeScript.value && isFileTypeMatched) {\r\n\t\t\t\t\tactiveScript.value = agentMatchedScripts[0]\r\n\t\t\t\t}\r\n\t\t\t\t// 智能体匹配成功,检查用户消息中是否有 file 字段\r\n\t\t\t\tif (isFileTypeMatched) {\r\n\t\t\t\t\t// 遍历所有匹配的脚本\r\n\t\t\t\t\tfor (const script of agentMatchedScripts) {\r\n\t\t\t\t\t\tfor (let i = 0; i < script.content.length; i++) {\r\n\t\t\t\t\t\t\tconst item = script.content[i]\r\n\t\t\t\t\t\t\tif (item.file) {\r\n\t\t\t\t\t\t\t\tconst nameArr = fileData.value.map((file: any) => {\r\n\t\t\t\t\t\t\t\t\tconst fileExtArr = file.name.split('.')\r\n\t\t\t\t\t\t\t\t\treturn fileExtArr[fileExtArr.length - 1]\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\tif (nameArr.includes(item.file)) {\r\n\t\t\t\t\t\t\t\t\tmatchedScriptContentIndex = i\r\n\t\t\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (matchedScriptContentIndex !== -1) {\r\n\t\t\t\t\t\t\tbreak\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst responses: any[] = []\r\n\t\t\t\t\tconst matchContent = agentMatchedScripts[0].content\r\n\t\t\t\t\tfor (let j = matchedScriptContentIndex + 1; j < matchContent.length; j++) {\r\n\t\t\t\t\t\tconst nextItem = matchContent[j]\r\n\t\t\t\t\t\tif (nextItem.user === 'i') {\r\n\t\t\t\t\t\t\tbreak // 遇到下一个用户消息,停止收集\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (nextItem.user === 'ai') {\r\n\t\t\t\t\t\t\tif (nextItem.data && nextItem.type) {\r\n\t\t\t\t\t\t\t\t// 合并 data 和 type 到一条响应中\r\n\t\t\t\t\t\t\t\tresponses.push({\r\n\t\t\t\t\t\t\t\t\t...nextItem,\r\n\t\t\t\t\t\t\t\t\t// 标记需要先流式输出文字,再调用组件\r\n\t\t\t\t\t\t\t\t\tneedSequenceProcessing: true\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tresponses.push(nextItem)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst nextIndex = matchContent.findIndex((contentItem: any, index: number) => index > matchedScriptContentIndex && contentItem.user === 'i')\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tresponses,\r\n\t\t\t\t\t\tnextIndex: nextIndex === -1 ? matchContent.length : nextIndex\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// agentName 有值但不存在带 agents 的剧本时,不拦截,继续下方通用剧本匹配\r\n\t\t}\r\n\r\n\t\t// 先尝试从当前激活的脚本中查找\r\n\t\tif (activeScript.value) {\r\n\t\t\tconst result = searchInScript(activeScript.value, userInput)\r\n\t\t\tif (result) {\r\n\t\t\t\treturn result\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// 若当前激活脚本未匹配,遍历所有脚本查找\r\n\t\tfor (const script of scripts.value) {\r\n\t\t\tconst result = searchInScript(script, userInput)\r\n\t\t\tif (result) {\r\n\t\t\t\tactiveScript.value = script\r\n\t\t\t\treturn result\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn null\r\n\t}\r\n\r\n\treturn {\r\n\t\tactiveScript,\r\n\t\tfindMatchingScriptContent,\r\n\t\tsearchInScript\r\n\t}\r\n}\r\n"],"names":["script","item"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","sources":["../../../../../../../../packages/components/touchchat/src/AiChat/Chat/types.ts"],"sourcesContent":["/**\n * TouchChat 类型定义\n */\n\nexport enum ThinkStatus {\n\tTHINKING = 'thinking',\n\tCOMPLETED = 'completed',\n\tSTOPPED = 'stopped'\n}\n\nexport interface ChatMessage {\n\tchatId?: string\n\tuser: 'u' | 'ai' | string\n\ttype: string\n\tcontent: string\n\tisChating?: boolean\n\tthinkContent?: string\n\treasoningContent?: string\n\tisLiked?: boolean\n\tisDisliked?: boolean\n\tisEditing?: boolean\n\teditContent?: string\n\tthinkStatus?: ThinkStatus\n\tthinkStartTime?: number\n\tthinkTime?: number\n\tthinkEndTime?: number\n\tisShowLike?: boolean\n\tisShowCopy?: boolean\n\tisWithDraw?: boolean\n\tcomponentName?: string\n\ttypeFlag?: string\n\tfiles?: FileItem[]\n\thtml?: string\n\tisError?: boolean\n\tauto?: boolean\n\tneedSequenceProcessing?: boolean\n\tneedSequenceType?: string\n\tstop?: boolean\n\tmsgList: any[]\n\tdataObj?: any\n\tlikeList?: any[]\n\tselecting?: boolean\n}\n\nexport interface ChatMsgList {\n\t[key: string]: any\n}\n\nexport interface AgentsItem {\n\tname: string\n\tintro: string\n\t[key: string]: any\n}\n\nexport interface ScriptContentItem {\n\tuser: 'i' | 'ai'\n\tdata?: string\n\ttype?: string\n\tagents?: string\n\tfile?: string\n\talias?: string | string[]\n\t[key: string]: any\n}\n\nexport interface Script {\n\tcontent: ScriptContentItem[]\n\t[key: string]: any\n}\n\nexport interface ModuleConfig {\n\taction?: () => string\n\theaders?: () => Record<string, string>\n\tbody?: () => Record<string, any>\n\trespoKey?: () => RespoKeyConfig\n\tname?: string\n}\n\nexport interface RespoKeyConfig {\n\tcontent: string\n\tcategory: string\n\tcontentCategory?: string\n\tall?: string\n\tallCategory?: string\n}\n\nexport interface ModuleItem {\n\tname?: string\n\tconfig?: ModuleConfig\n\t[key: string]: any\n}\n\nexport interface FileItem {\n\tid?: string\n\tfile?: File\n\tname: string\n\tfileType: string\n\tfileSize: string\n\tlastModified: number\n\tpreview?: string\n\tbase64?: string\n\t// 文件上传相关字段\n\tisUploading?: boolean\n\tuploadProgress?: number\n\tuploadSuccess?: boolean\n\tuploadError?: boolean\n\t// 上传成功后服务端返回的文件地址\n\turl?: string\n\t[key: string]: any\n}\n\nexport interface RenderData {\n\tmainContent: string\n\tthinkContent: string\n\treasoningContent: string\n}\n\nexport enum MessageAction {\n\tCOPY = 'copy',\n\tEDIT = 'edit',\n\tDELETE = 'delete',\n\tRETRY = 'retry',\n\tLIKE = 'like',\n\tDISLIKE = 'dislike',\n\tWITHDRAW = 'withDraw'\n}\n\nexport interface ResultItem {\n\tallAiContent?: string\n\t[key: string]: any\n}\n\nexport interface MessageProcessor {\n\tmessageQueue: ChatMessage[]\n\tisProcessing: boolean\n\tcurrentMessage: ChatMessage | null\n\tprocessNextMessage: () => void\n\thandleMessageComplete: (chatId: string) => void\n}\n\nexport interface ScriptMatchResult {\n\tresponses: any[]\n\tnextIndex: number\n}\n\nexport interface MessageActions {\n\tuser: string[]\n\tai: string[]\n}\n"],"names":["ThinkStatus","MessageAction"],"mappings":"AAIY,IAAA,WAAA,qBAAAA,YAAL,KAAA;AACN,EAAAA,aAAA,UAAW,CAAA,GAAA,UAAA,CAAA;AACX,EAAAA,aAAA,WAAY,CAAA,GAAA,WAAA,CAAA;AACZ,EAAAA,aAAA,SAAU,CAAA,GAAA,SAAA,CAAA;AAHC,EAAAA,OAAAA,YAAAA,CAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA,EAAA;AAgHA,IAAA,aAAA,qBAAAC,cAAL,KAAA;AACN,EAAAA,eAAA,MAAO,CAAA,GAAA,MAAA,CAAA;AACP,EAAAA,eAAA,MAAO,CAAA,GAAA,MAAA,CAAA;AACP,EAAAA,eAAA,QAAS,CAAA,GAAA,QAAA,CAAA;AACT,EAAAA,eAAA,OAAQ,CAAA,GAAA,OAAA,CAAA;AACR,EAAAA,eAAA,MAAO,CAAA,GAAA,MAAA,CAAA;AACP,EAAAA,eAAA,SAAU,CAAA,GAAA,SAAA,CAAA;AACV,EAAAA,eAAA,UAAW,CAAA,GAAA,UAAA,CAAA;AAPA,EAAAA,OAAAA,cAAAA,CAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"types.mjs","sources":["../../../../../../../../packages/components/touchchat/src/AiChat/Chat/types.ts"],"sourcesContent":["/**\r\n * TouchChat 类型定义\r\n */\r\n\r\nexport enum ThinkStatus {\r\n\tTHINKING = 'thinking',\r\n\tCOMPLETED = 'completed',\r\n\tSTOPPED = 'stopped'\r\n}\r\n\r\nexport interface ChatMessage {\r\n\tchatId?: string\r\n\tuser: 'u' | 'ai' | string\r\n\ttype: string\r\n\tcontent: string\r\n\tisChating?: boolean\r\n\tthinkContent?: string\r\n\treasoningContent?: string\r\n\tisLiked?: boolean\r\n\tisDisliked?: boolean\r\n\tisEditing?: boolean\r\n\teditContent?: string\r\n\tthinkStatus?: ThinkStatus\r\n\tthinkStartTime?: number\r\n\tthinkTime?: number\r\n\tthinkEndTime?: number\r\n\tisShowLike?: boolean\r\n\tisShowCopy?: boolean\r\n\tisWithDraw?: boolean\r\n\tcomponentName?: string\r\n\ttypeFlag?: string\r\n\tfiles?: FileItem[]\r\n\thtml?: string\r\n\tisError?: boolean\r\n\tauto?: boolean\r\n\tneedSequenceProcessing?: boolean\r\n\tneedSequenceType?: string\r\n\tstop?: boolean\r\n\tmsgList: any[]\r\n\tdataObj?: any\r\n\tlikeList?: any[]\r\n\tselecting?: boolean\r\n}\r\n\r\nexport interface ChatMsgList {\r\n\t[key: string]: any\r\n}\r\n\r\nexport interface AgentsItem {\r\n\tname: string\r\n\tintro: string\r\n\t[key: string]: any\r\n}\r\n\r\nexport interface ScriptContentItem {\r\n\tuser: 'i' | 'ai'\r\n\tdata?: string\r\n\ttype?: string\r\n\tagents?: string\r\n\tfile?: string\r\n\talias?: string | string[]\r\n\t[key: string]: any\r\n}\r\n\r\nexport interface Script {\r\n\tcontent: ScriptContentItem[]\r\n\t[key: string]: any\r\n}\r\n\r\nexport interface ModuleConfig {\r\n\taction?: () => string\r\n\theaders?: () => Record<string, string>\r\n\tbody?: () => Record<string, any>\r\n\trespoKey?: () => RespoKeyConfig\r\n\tname?: string\r\n}\r\n\r\nexport interface RespoKeyConfig {\r\n\tcontent: string\r\n\tcategory: string\r\n\tcontentCategory?: string\r\n\tall?: string\r\n\tallCategory?: string\r\n}\r\n\r\nexport interface ModuleItem {\r\n\tname?: string\r\n\tconfig?: ModuleConfig\r\n\t[key: string]: any\r\n}\r\n\r\nexport interface FileItem {\r\n\tid?: string\r\n\tfile?: File\r\n\tname: string\r\n\tfileType: string\r\n\tfileSize: string\r\n\tlastModified: number\r\n\tpreview?: string\r\n\tbase64?: string\r\n\t// 文件上传相关字段\r\n\tisUploading?: boolean\r\n\tuploadProgress?: number\r\n\tuploadSuccess?: boolean\r\n\tuploadError?: boolean\r\n\t// 上传成功后服务端返回的文件地址\r\n\turl?: string\r\n\t[key: string]: any\r\n}\r\n\r\nexport interface RenderData {\r\n\tmainContent: string\r\n\tthinkContent: string\r\n\treasoningContent: string\r\n}\r\n\r\nexport enum MessageAction {\r\n\tCOPY = 'copy',\r\n\tEDIT = 'edit',\r\n\tDELETE = 'delete',\r\n\tRETRY = 'retry',\r\n\tLIKE = 'like',\r\n\tDISLIKE = 'dislike',\r\n\tWITHDRAW = 'withDraw'\r\n}\r\n\r\nexport interface ResultItem {\r\n\tallAiContent?: string\r\n\t[key: string]: any\r\n}\r\n\r\nexport interface MessageProcessor {\r\n\tmessageQueue: ChatMessage[]\r\n\tisProcessing: boolean\r\n\tcurrentMessage: ChatMessage | null\r\n\tprocessNextMessage: () => void\r\n\thandleMessageComplete: (chatId: string) => void\r\n}\r\n\r\nexport interface ScriptMatchResult {\r\n\tresponses: any[]\r\n\tnextIndex: number\r\n}\r\n\r\nexport interface MessageActions {\r\n\tuser: string[]\r\n\tai: string[]\r\n}\r\n"],"names":["ThinkStatus","MessageAction"],"mappings":"AAIY,IAAA,WAAA,qBAAAA,YAAL,KAAA;AACN,EAAAA,aAAA,UAAW,CAAA,GAAA,UAAA,CAAA;AACX,EAAAA,aAAA,WAAY,CAAA,GAAA,WAAA,CAAA;AACZ,EAAAA,aAAA,SAAU,CAAA,GAAA,SAAA,CAAA;AAHC,EAAAA,OAAAA,YAAAA,CAAAA;AAAA,CAAA,EAAA,WAAA,IAAA,EAAA,EAAA;AAgHA,IAAA,aAAA,qBAAAC,cAAL,KAAA;AACN,EAAAA,eAAA,MAAO,CAAA,GAAA,MAAA,CAAA;AACP,EAAAA,eAAA,MAAO,CAAA,GAAA,MAAA,CAAA;AACP,EAAAA,eAAA,QAAS,CAAA,GAAA,QAAA,CAAA;AACT,EAAAA,eAAA,OAAQ,CAAA,GAAA,OAAA,CAAA;AACR,EAAAA,eAAA,MAAO,CAAA,GAAA,MAAA,CAAA;AACP,EAAAA,eAAA,SAAU,CAAA,GAAA,SAAA,CAAA;AACV,EAAAA,eAAA,UAAW,CAAA,GAAA,UAAA,CAAA;AAPA,EAAAA,OAAAA,cAAAA,CAAAA;AAAA,CAAA,EAAA,aAAA,IAAA,EAAA;;;;"}
|