@ai-group/chat-sdk 2.0.3 → 2.1.0
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/dist/cjs/client/base.d.ts +2 -2
- package/dist/cjs/client/base.js.map +1 -1
- package/dist/cjs/components/DislikeFeedback.js +16 -1
- package/dist/cjs/components/DislikeFeedback.js.map +2 -2
- package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.d.ts +6 -0
- package/dist/cjs/components/{XAiWebSDKWrapper.js → XAdkChatbot/XAdkChatbot.stories.js} +29 -40
- package/dist/cjs/components/XAdkChatbot/XAdkChatbot.stories.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +9 -0
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js +158 -0
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/index.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +40 -0
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js +59 -0
- package/dist/cjs/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.d.ts +6 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js +95 -0
- package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.d.ts +8 -0
- package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.js +49 -0
- package/dist/cjs/components/XAdkChatbot/components/ThinkRender/index.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/index.d.ts +4 -0
- package/dist/cjs/components/XAdkChatbot/index.js +232 -0
- package/dist/cjs/components/XAdkChatbot/index.js.map +7 -0
- package/dist/cjs/components/XAdkChatbot/styles.d.ts +51 -0
- package/dist/cjs/components/XAdkChatbot/styles.js +160 -0
- package/dist/cjs/components/XAdkChatbot/styles.js.map +7 -0
- package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +7 -0
- package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js +144 -0
- package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +7 -0
- package/dist/cjs/components/XAdkWebProvider/index.d.ts +4 -0
- package/dist/cjs/components/XAdkWebProvider/index.js +349 -0
- package/dist/cjs/components/XAdkWebProvider/index.js.map +7 -0
- package/dist/cjs/components/XAdkWebProvider/styles.d.ts +37 -0
- package/dist/cjs/components/XAdkWebProvider/styles.js +44 -0
- package/dist/cjs/components/XAdkWebProvider/styles.js.map +7 -0
- package/dist/cjs/components/XAiChatbot/index.js +27 -7
- package/dist/cjs/components/XAiChatbot/index.js.map +2 -2
- package/dist/cjs/components/XAiChatbot/styles.js +31 -0
- package/dist/cjs/components/XAiChatbot/styles.js.map +2 -2
- package/dist/cjs/components/XAiConversations/XAiConversations.stories.js +1 -0
- package/dist/cjs/components/XAiConversations/XAiConversations.stories.js.map +2 -2
- package/dist/cjs/components/XAiJsonView/index.d.ts +8 -0
- package/dist/cjs/components/XAiJsonView/index.js +81 -0
- package/dist/cjs/components/XAiJsonView/index.js.map +7 -0
- package/dist/cjs/components/XAiJsonView/styles.d.ts +39 -0
- package/dist/cjs/components/XAiJsonView/styles.js +58 -0
- package/dist/cjs/components/XAiJsonView/styles.js.map +7 -0
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +1 -1
- package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +1 -1
- package/dist/cjs/components/XAiSender/index.js +23 -17
- package/dist/cjs/components/XAiSender/index.js.map +2 -2
- package/dist/cjs/components/XAiSender/styles.js +0 -1
- package/dist/cjs/components/XAiSender/styles.js.map +2 -2
- package/dist/cjs/context/AiProviderContext.d.ts +3 -2
- package/dist/cjs/context/AiProviderContext.js.map +1 -1
- package/dist/cjs/hooks/useADKChat.d.ts +38 -0
- package/dist/cjs/hooks/useADKChat.js +595 -0
- package/dist/cjs/hooks/useADKChat.js.map +7 -0
- package/dist/cjs/hooks/useAgentGenerator.js +6 -6
- package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
- package/dist/cjs/hooks/useEventStreamRequest.js +6 -3
- package/dist/cjs/hooks/useEventStreamRequest.js.map +2 -2
- package/dist/cjs/index.d.ts +1 -2
- package/dist/cjs/index.js +0 -3
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/services/api.d.ts +36 -19
- package/dist/cjs/services/api.js +7 -7
- package/dist/cjs/services/api.js.map +2 -2
- package/dist/cjs/types/XAdkChatbot.d.ts +197 -0
- package/dist/cjs/types/XAdkChatbot.js +18 -0
- package/dist/cjs/types/XAdkChatbot.js.map +7 -0
- package/dist/cjs/types/XAdkProvider.d.ts +117 -0
- package/dist/cjs/types/XAdkProvider.js +18 -0
- package/dist/cjs/types/XAdkProvider.js.map +7 -0
- package/dist/cjs/types/XAiChatbot.d.ts +2 -2
- package/dist/cjs/types/XAiChatbot.js.map +1 -1
- package/dist/cjs/types/XAiConversations.d.ts +2 -2
- package/dist/cjs/types/XAiConversations.js.map +1 -1
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.js +3 -1
- package/dist/cjs/types/index.js.map +2 -2
- package/dist/cjs/utils/providerManager.d.ts +7 -6
- package/dist/cjs/utils/providerManager.js.map +2 -2
- package/dist/cjs/utils/umdEntry.d.ts +6 -8
- package/dist/cjs/utils/umdEntry.js +4 -18
- package/dist/cjs/utils/umdEntry.js.map +3 -3
- package/dist/esm/client/base.d.ts +2 -2
- package/dist/esm/client/base.js.map +1 -1
- package/dist/esm/components/DislikeFeedback.js +18 -5
- package/dist/esm/components/DislikeFeedback.js.map +1 -1
- package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.d.ts +6 -0
- package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js +21 -0
- package/dist/esm/components/XAdkChatbot/XAdkChatbot.stories.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.d.ts +9 -0
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js +183 -0
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/index.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.d.ts +40 -0
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js +14 -0
- package/dist/esm/components/XAdkChatbot/components/FunctionCallRender/styles.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.d.ts +6 -0
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js +70 -0
- package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.d.ts +8 -0
- package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.js +32 -0
- package/dist/esm/components/XAdkChatbot/components/ThinkRender/index.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/index.d.ts +4 -0
- package/dist/esm/components/XAdkChatbot/index.js +280 -0
- package/dist/esm/components/XAdkChatbot/index.js.map +1 -0
- package/dist/esm/components/XAdkChatbot/styles.d.ts +51 -0
- package/dist/esm/components/XAdkChatbot/styles.js +25 -0
- package/dist/esm/components/XAdkChatbot/styles.js.map +1 -0
- package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.d.ts +7 -0
- package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js +148 -0
- package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +1 -0
- package/dist/esm/components/XAdkWebProvider/index.d.ts +4 -0
- package/dist/esm/components/XAdkWebProvider/index.js +447 -0
- package/dist/esm/components/XAdkWebProvider/index.js.map +1 -0
- package/dist/esm/components/XAdkWebProvider/styles.d.ts +37 -0
- package/dist/esm/components/XAdkWebProvider/styles.js +11 -0
- package/dist/esm/components/XAdkWebProvider/styles.js.map +1 -0
- package/dist/esm/components/XAiChatbot/index.js +39 -21
- package/dist/esm/components/XAiChatbot/index.js.map +1 -1
- package/dist/esm/components/XAiChatbot/styles.js +1 -1
- package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
- package/dist/esm/components/XAiConversations/XAiConversations.stories.js +3 -3
- package/dist/esm/components/XAiConversations/XAiConversations.stories.js.map +1 -1
- package/dist/esm/components/XAiJsonView/index.d.ts +8 -0
- package/dist/esm/components/XAiJsonView/index.js +44 -0
- package/dist/esm/components/XAiJsonView/index.js.map +1 -0
- package/dist/esm/components/XAiJsonView/styles.d.ts +39 -0
- package/dist/esm/components/XAiJsonView/styles.js +19 -0
- package/dist/esm/components/XAiJsonView/styles.js.map +1 -0
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js +1 -1
- package/dist/esm/components/XAiProvider/XAiProvider.stories.js.map +1 -1
- package/dist/esm/components/XAiSender/index.js +2 -2
- package/dist/esm/components/XAiSender/index.js.map +1 -1
- package/dist/esm/components/XAiSender/styles.js +1 -1
- package/dist/esm/components/XAiSender/styles.js.map +1 -1
- package/dist/esm/context/AiProviderContext.d.ts +3 -2
- package/dist/esm/context/AiProviderContext.js.map +1 -1
- package/dist/esm/hooks/useADKChat.d.ts +38 -0
- package/dist/esm/hooks/useADKChat.js +855 -0
- package/dist/esm/hooks/useADKChat.js.map +1 -0
- package/dist/esm/hooks/useAgentGenerator.js +11 -10
- package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
- package/dist/esm/hooks/useEventStreamRequest.js +5 -2
- package/dist/esm/hooks/useEventStreamRequest.js.map +1 -1
- package/dist/esm/index.d.ts +1 -2
- package/dist/esm/index.js +1 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/services/api.d.ts +36 -19
- package/dist/esm/services/api.js +8 -8
- package/dist/esm/services/api.js.map +1 -1
- package/dist/esm/types/XAdkChatbot.d.ts +197 -0
- package/dist/esm/types/XAdkChatbot.js +2 -0
- package/dist/esm/types/XAdkChatbot.js.map +1 -0
- package/dist/esm/types/XAdkProvider.d.ts +117 -0
- package/dist/esm/types/XAdkProvider.js +2 -0
- package/dist/esm/types/XAdkProvider.js.map +1 -0
- package/dist/esm/types/XAiChatbot.d.ts +2 -2
- package/dist/esm/types/XAiChatbot.js.map +1 -1
- package/dist/esm/types/XAiConversations.d.ts +2 -2
- package/dist/esm/types/XAiConversations.js.map +1 -1
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/providerManager.d.ts +7 -6
- package/dist/esm/utils/providerManager.js.map +1 -1
- package/dist/esm/utils/umdEntry.d.ts +6 -8
- package/dist/esm/utils/umdEntry.js +8 -37
- package/dist/esm/utils/umdEntry.js.map +1 -1
- package/dist/umd/chat-sdk.min.css +1 -0
- package/dist/umd/chat-sdk.min.js +1 -1
- package/dist/umd/static/KaTeX_AMS-Regular.1608a09b.woff +0 -0
- package/dist/umd/static/KaTeX_AMS-Regular.4aafdb68.ttf +0 -0
- package/dist/umd/static/KaTeX_AMS-Regular.a79f1c31.woff2 +0 -0
- package/dist/umd/static/KaTeX_Caligraphic-Bold.b6770918.woff +0 -0
- package/dist/umd/static/KaTeX_Caligraphic-Bold.cce5b8ec.ttf +0 -0
- package/dist/umd/static/KaTeX_Caligraphic-Bold.ec17d132.woff2 +0 -0
- package/dist/umd/static/KaTeX_Caligraphic-Regular.07ef19e7.ttf +0 -0
- package/dist/umd/static/KaTeX_Caligraphic-Regular.55fac258.woff2 +0 -0
- package/dist/umd/static/KaTeX_Caligraphic-Regular.dad44a7f.woff +0 -0
- package/dist/umd/static/KaTeX_Fraktur-Bold.9f256b85.woff +0 -0
- package/dist/umd/static/KaTeX_Fraktur-Bold.b18f59e1.ttf +0 -0
- package/dist/umd/static/KaTeX_Fraktur-Bold.d42a5579.woff2 +0 -0
- package/dist/umd/static/KaTeX_Fraktur-Regular.7c187121.woff +0 -0
- package/dist/umd/static/KaTeX_Fraktur-Regular.d3c882a6.woff2 +0 -0
- package/dist/umd/static/KaTeX_Fraktur-Regular.ed38e79f.ttf +0 -0
- package/dist/umd/static/KaTeX_Main-Bold.b74a1a8b.ttf +0 -0
- package/dist/umd/static/KaTeX_Main-Bold.c3fb5ac2.woff2 +0 -0
- package/dist/umd/static/KaTeX_Main-Bold.d181c465.woff +0 -0
- package/dist/umd/static/KaTeX_Main-BoldItalic.6f2bb1df.woff2 +0 -0
- package/dist/umd/static/KaTeX_Main-BoldItalic.70d8b0a5.ttf +0 -0
- package/dist/umd/static/KaTeX_Main-BoldItalic.e3f82f9d.woff +0 -0
- package/dist/umd/static/KaTeX_Main-Italic.47373d1e.ttf +0 -0
- package/dist/umd/static/KaTeX_Main-Italic.8916142b.woff2 +0 -0
- package/dist/umd/static/KaTeX_Main-Italic.9024d815.woff +0 -0
- package/dist/umd/static/KaTeX_Main-Regular.0462f03b.woff2 +0 -0
- package/dist/umd/static/KaTeX_Main-Regular.7f51fe03.woff +0 -0
- package/dist/umd/static/KaTeX_Main-Regular.b7f8fe9b.ttf +0 -0
- package/dist/umd/static/KaTeX_Math-BoldItalic.572d331f.woff2 +0 -0
- package/dist/umd/static/KaTeX_Math-BoldItalic.a879cf83.ttf +0 -0
- package/dist/umd/static/KaTeX_Math-BoldItalic.f1035d8d.woff +0 -0
- package/dist/umd/static/KaTeX_Math-Italic.5295ba48.woff +0 -0
- package/dist/umd/static/KaTeX_Math-Italic.939bc644.ttf +0 -0
- package/dist/umd/static/KaTeX_Math-Italic.f28c23ac.woff2 +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Bold.8c5b5494.woff2 +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Bold.94e1e8dc.ttf +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Bold.bf59d231.woff +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Italic.3b1e59b3.woff2 +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Italic.7c9bc82b.woff +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Italic.b4c20c84.ttf +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Regular.74048478.woff +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Regular.ba21ed5f.woff2 +0 -0
- package/dist/umd/static/KaTeX_SansSerif-Regular.d4d7ba48.ttf +0 -0
- package/dist/umd/static/KaTeX_Script-Regular.03e9641d.woff2 +0 -0
- package/dist/umd/static/KaTeX_Script-Regular.07505710.woff +0 -0
- package/dist/umd/static/KaTeX_Script-Regular.fe9cbbe1.ttf +0 -0
- package/dist/umd/static/KaTeX_Size1-Regular.e1e279cb.woff +0 -0
- package/dist/umd/static/KaTeX_Size1-Regular.eae34984.woff2 +0 -0
- package/dist/umd/static/KaTeX_Size1-Regular.fabc004a.ttf +0 -0
- package/dist/umd/static/KaTeX_Size2-Regular.57727022.woff +0 -0
- package/dist/umd/static/KaTeX_Size2-Regular.5916a24f.woff2 +0 -0
- package/dist/umd/static/KaTeX_Size2-Regular.d6b476ec.ttf +0 -0
- package/dist/umd/static/KaTeX_Size3-Regular.9acaf01c.woff +0 -0
- package/dist/umd/static/KaTeX_Size3-Regular.a144ef58.ttf +0 -0
- package/dist/umd/static/KaTeX_Size3-Regular.b4230e7e.woff2 +0 -0
- package/dist/umd/static/KaTeX_Size4-Regular.10d95fd3.woff2 +0 -0
- package/dist/umd/static/KaTeX_Size4-Regular.7a996c9d.woff +0 -0
- package/dist/umd/static/KaTeX_Size4-Regular.fbccdabe.ttf +0 -0
- package/dist/umd/static/KaTeX_Typewriter-Regular.6258592b.woff +0 -0
- package/dist/umd/static/KaTeX_Typewriter-Regular.a8709e36.woff2 +0 -0
- package/dist/umd/static/KaTeX_Typewriter-Regular.d97aaf4a.ttf +0 -0
- package/package.json +26 -19
- package/dist/cjs/components/XAiWebSDKWrapper.d.ts +0 -9
- package/dist/cjs/components/XAiWebSDKWrapper.js.map +0 -7
- package/dist/esm/components/XAiWebSDKWrapper.d.ts +0 -9
- package/dist/esm/components/XAiWebSDKWrapper.js +0 -45
- package/dist/esm/components/XAiWebSDKWrapper.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BubbleDataType from "@ant-design/x/es/bubble/BubbleList";
|
|
2
2
|
export interface AiClient {
|
|
3
3
|
appName: string;
|
|
4
4
|
icon: string;
|
|
@@ -6,4 +6,4 @@ export interface AiClient {
|
|
|
6
6
|
stream?(message: string, onMessage: (msg: any) => void): void;
|
|
7
7
|
close?(): void;
|
|
8
8
|
}
|
|
9
|
-
export type MessageType = BubbleDataType;
|
|
9
|
+
export type MessageType = typeof BubbleDataType;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/client/base.ts"],
|
|
4
|
-
"sourcesContent": ["// baseClient.ts\nimport
|
|
4
|
+
"sourcesContent": ["// baseClient.ts\nimport BubbleDataType from \"@ant-design/x/es/bubble/BubbleList\"\n\nexport interface AiClient {\n appName: string;\n icon: string;\n send(message: string): Promise<any>;\n stream?(message: string, onMessage: (msg: any) => void): void;\n close?(): void;\n}\n\nexport type MessageType = typeof BubbleDataType;\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -39,6 +39,7 @@ var import_icons = require("@ant-design/icons");
|
|
|
39
39
|
var import_FeedbackTags = __toESM(require("./FeedbackTags"));
|
|
40
40
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
41
41
|
var DislikeFeedback = ({ msg, activeColor, onSubmit }) => {
|
|
42
|
+
var _a;
|
|
42
43
|
const [form] = import_antd.Form.useForm();
|
|
43
44
|
const [showFeedback, setShowFeedback] = (0, import_react.useState)(false);
|
|
44
45
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -86,7 +87,21 @@ var DislikeFeedback = ({ msg, activeColor, onSubmit }) => {
|
|
|
86
87
|
);
|
|
87
88
|
} })
|
|
88
89
|
] }) }),
|
|
89
|
-
children: msg.
|
|
90
|
+
children: (((_a = msg.raw) == null ? void 0 : _a.isLike) || msg.isLike) === -1 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
91
|
+
import_antd.Button,
|
|
92
|
+
{
|
|
93
|
+
type: "text",
|
|
94
|
+
size: "small",
|
|
95
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.DislikeFilled, { style: { color: activeColor } })
|
|
96
|
+
}
|
|
97
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
98
|
+
import_antd.Button,
|
|
99
|
+
{
|
|
100
|
+
type: "text",
|
|
101
|
+
size: "small",
|
|
102
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.DislikeOutlined, { style: { color: "#949494" } })
|
|
103
|
+
}
|
|
104
|
+
)
|
|
90
105
|
}
|
|
91
106
|
);
|
|
92
107
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/DislikeFeedback.tsx"],
|
|
4
|
-
"sourcesContent": ["import { Button, Form, Input, message, Popover } from 'antd';\nimport React, { useState } from 'react';\nimport { DislikeFilled, DislikeOutlined } from '@ant-design/icons';\nimport FeedbackTags from './FeedbackTags';\n\nexport interface DislikeFeedbackProps {\n msg: any;\n activeColor: string;\n onSubmit: (v: any) => Promise<boolean>;\n}\n\nexport const DislikeFeedback: React.FC<DislikeFeedbackProps> = ({ msg, activeColor, onSubmit }) => {\n const [form] = Form.useForm();\n const [showFeedback, setShowFeedback] = useState(false);\n return (\n <Popover\n trigger={['click']}\n open={showFeedback}\n onOpenChange={(v) => {\n const isLike = msg.isLike ?? 0;\n if (v && isLike !== 0) {\n message.warning('已收到您的反馈,无需重复提交');\n return;\n }\n if (v) {\n form.resetFields();\n }\n setShowFeedback(v);\n }}\n title={(\n <div>\n <div>抱歉,未能满足您的需求</div>\n <div style={{ color: '#999', fontWeight: 'normal', marginBottom: 12 }}>\n 为提升您的使用体验,请告诉我们不足的方向\n </div>\n </div>\n )}\n content={(\n <div>\n <Form form={form}>\n <Form.Item name=\"feedbackTags\" style={{ marginBottom: 12 }}>\n <FeedbackTags />\n </Form.Item>\n <Form.Item name=\"feedbackDescription\" style={{ marginBottom: 12 }}>\n <Input.TextArea rows={4} placeholder=\"欢迎说说你的想法\" />\n </Form.Item>\n <Form.Item dependencies={['feedbackTags', 'feedbackDescription']} noStyle>\n {({ getFieldValue }) => {\n const feedbackTags = getFieldValue('feedbackTags') || [];\n const feedbackDescription = getFieldValue('feedbackDescription');\n const disabled = !feedbackTags.length && !feedbackDescription;\n return (\n <Button\n type=\"primary\"\n block\n disabled={disabled}\n onClick={async () => {\n const formData = await form.validateFields();\n const res = await onSubmit(formData);\n if (res) {\n setShowFeedback(false);\n }\n }}\n >\n 提交反馈\n </Button>\n );\n }}\n </Form.Item>\n </Form>\n </div>\n )}\n >\n {msg.isLike === -1\n ? (\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAsD;AACtD,mBAAgC;AAChC,mBAA+C;AAC/C,0BAAyB;AA2BjB;AAnBD,IAAM,kBAAkD,CAAC,EAAE,KAAK,aAAa,SAAS,MAAM;
|
|
4
|
+
"sourcesContent": ["import { Button, Form, Input, message, Popover } from 'antd';\nimport React, { useState } from 'react';\nimport { DislikeFilled, DislikeOutlined } from '@ant-design/icons';\nimport FeedbackTags from './FeedbackTags';\n\nexport interface DislikeFeedbackProps {\n msg: any;\n activeColor: string;\n onSubmit: (v: any) => Promise<boolean>;\n}\n\nexport const DislikeFeedback: React.FC<DislikeFeedbackProps> = ({ msg, activeColor, onSubmit }) => {\n const [form] = Form.useForm();\n const [showFeedback, setShowFeedback] = useState(false);\n return (\n <Popover\n trigger={['click']}\n open={showFeedback}\n onOpenChange={(v) => {\n const isLike = msg.isLike ?? 0;\n if (v && isLike !== 0) {\n message.warning('已收到您的反馈,无需重复提交');\n return;\n }\n if (v) {\n form.resetFields();\n }\n setShowFeedback(v);\n }}\n title={(\n <div>\n <div>抱歉,未能满足您的需求</div>\n <div style={{ color: '#999', fontWeight: 'normal', marginBottom: 12 }}>\n 为提升您的使用体验,请告诉我们不足的方向\n </div>\n </div>\n )}\n content={(\n <div>\n <Form form={form}>\n <Form.Item name=\"feedbackTags\" style={{ marginBottom: 12 }}>\n <FeedbackTags />\n </Form.Item>\n <Form.Item name=\"feedbackDescription\" style={{ marginBottom: 12 }}>\n <Input.TextArea rows={4} placeholder=\"欢迎说说你的想法\" />\n </Form.Item>\n <Form.Item dependencies={['feedbackTags', 'feedbackDescription']} noStyle>\n {({ getFieldValue }) => {\n const feedbackTags = getFieldValue('feedbackTags') || [];\n const feedbackDescription = getFieldValue('feedbackDescription');\n const disabled = !feedbackTags.length && !feedbackDescription;\n return (\n <Button\n type=\"primary\"\n block\n disabled={disabled}\n onClick={async () => {\n const formData = await form.validateFields();\n const res = await onSubmit(formData);\n if (res) {\n setShowFeedback(false);\n }\n }}\n >\n 提交反馈\n </Button>\n );\n }}\n </Form.Item>\n </Form>\n </div>\n )}\n >\n {(msg.raw?.isLike || msg.isLike) === -1\n ? (\n <Button\n type=\"text\"\n size=\"small\"\n icon={<DislikeFilled style={{ color: activeColor }} />}\n />\n )\n : (\n <Button\n type=\"text\"\n size=\"small\"\n icon={<DislikeOutlined style={{ color: '#949494' }} />}\n />\n )}\n </Popover>\n );\n};\n\nexport default DislikeFeedback;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAsD;AACtD,mBAAgC;AAChC,mBAA+C;AAC/C,0BAAyB;AA2BjB;AAnBD,IAAM,kBAAkD,CAAC,EAAE,KAAK,aAAa,SAAS,MAAM;AAXnG;AAYE,QAAM,CAAC,IAAI,IAAI,iBAAK,QAAQ;AAC5B,QAAM,CAAC,cAAc,eAAe,QAAI,uBAAS,KAAK;AACtD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,CAAC,OAAO;AAAA,MACjB,MAAM;AAAA,MACN,cAAc,CAAC,MAAM;AACnB,cAAM,SAAS,IAAI,UAAU;AAC7B,YAAI,KAAK,WAAW,GAAG;AACrB,8BAAQ,QAAQ,gBAAgB;AAChC;AAAA,QACF;AACA,YAAI,GAAG;AACL,eAAK,YAAY;AAAA,QACnB;AACA,wBAAgB,CAAC;AAAA,MACnB;AAAA,MACA,OACE,6CAAC,SACC;AAAA,oDAAC,SAAI,yBAAW;AAAA,QAChB,4CAAC,SAAI,OAAO,EAAE,OAAO,QAAQ,YAAY,UAAU,cAAc,GAAG,GAAG,kCAEvE;AAAA,SACF;AAAA,MAEF,SACE,4CAAC,SACC,uDAAC,oBAAK,MACJ;AAAA,oDAAC,iBAAK,MAAL,EAAU,MAAK,gBAAe,OAAO,EAAE,cAAc,GAAG,GACvD,sDAAC,oBAAAA,SAAA,EAAa,GAChB;AAAA,QACA,4CAAC,iBAAK,MAAL,EAAU,MAAK,uBAAsB,OAAO,EAAE,cAAc,GAAG,GAC9D,sDAAC,kBAAM,UAAN,EAAe,MAAM,GAAG,aAAY,YAAW,GAClD;AAAA,QACA,4CAAC,iBAAK,MAAL,EAAU,cAAc,CAAC,gBAAgB,qBAAqB,GAAG,SAAO,MACtE,WAAC,EAAE,cAAc,MAAM;AACtB,gBAAM,eAAe,cAAc,cAAc,KAAK,CAAC;AACvD,gBAAM,sBAAsB,cAAc,qBAAqB;AAC/D,gBAAM,WAAW,CAAC,aAAa,UAAU,CAAC;AAC1C,iBACE;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,OAAK;AAAA,cACL;AAAA,cACA,SAAS,YAAY;AACnB,sBAAM,WAAW,MAAM,KAAK,eAAe;AAC3C,sBAAM,MAAM,MAAM,SAAS,QAAQ;AACnC,oBAAI,KAAK;AACP,kCAAgB,KAAK;AAAA,gBACvB;AAAA,cACF;AAAA,cACD;AAAA;AAAA,UAED;AAAA,QAEJ,GACF;AAAA,SACF,GACF;AAAA,MAGA,sBAAI,QAAJ,mBAAS,WAAU,IAAI,YAAY,KAE/B;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,MAAK;AAAA,UACL,MAAM,4CAAC,8BAAc,OAAO,EAAE,OAAO,YAAY,GAAG;AAAA;AAAA,MACtD,IAGA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,MAAK;AAAA,UACL,MAAM,4CAAC,gCAAgB,OAAO,EAAE,OAAO,UAAU,GAAG;AAAA;AAAA,MACtD;AAAA;AAAA,EAER;AAEJ;AAEA,IAAO,0BAAQ;",
|
|
6
6
|
"names": ["FeedbackTags"]
|
|
7
7
|
}
|
|
@@ -26,46 +26,35 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
));
|
|
27
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
28
|
|
|
29
|
-
// src/components/
|
|
30
|
-
var
|
|
31
|
-
__export(
|
|
32
|
-
default: () =>
|
|
29
|
+
// src/components/XAdkChatbot/XAdkChatbot.stories.tsx
|
|
30
|
+
var XAdkChatbot_stories_exports = {};
|
|
31
|
+
__export(XAdkChatbot_stories_exports, {
|
|
32
|
+
default: () => XAdkChatbot_stories_default,
|
|
33
|
+
基础用法: () => 基础用法
|
|
33
34
|
});
|
|
34
|
-
module.exports = __toCommonJS(
|
|
35
|
-
var
|
|
36
|
-
var
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (containerRef.current && !sdkRef.current) {
|
|
47
|
-
sdkRef.current = import_umdEntry.default.initChatbot({
|
|
48
|
-
...sdkProps,
|
|
49
|
-
componentProps: {
|
|
50
|
-
...sdkProps.componentProps || {}
|
|
51
|
-
// 保证容器 id 唯一或传递其它样式
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
if (onInit && sdkRef.current) {
|
|
55
|
-
onInit(sdkRef.current);
|
|
56
|
-
}
|
|
35
|
+
module.exports = __toCommonJS(XAdkChatbot_stories_exports);
|
|
36
|
+
var import__ = __toESM(require("."));
|
|
37
|
+
var meta = {
|
|
38
|
+
title: "AI组件/XAdkChatbot 聊天框",
|
|
39
|
+
component: import__.default,
|
|
40
|
+
parameters: {
|
|
41
|
+
layout: "centered"
|
|
42
|
+
},
|
|
43
|
+
tags: ["autodocs"],
|
|
44
|
+
argTypes: {
|
|
45
|
+
messages: {
|
|
46
|
+
description: "消息列表"
|
|
57
47
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
}, []);
|
|
68
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ref: containerRef });
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
var XAdkChatbot_stories_default = meta;
|
|
51
|
+
var 基础用法 = {
|
|
52
|
+
args: {
|
|
53
|
+
messages: []
|
|
54
|
+
}
|
|
69
55
|
};
|
|
70
|
-
|
|
71
|
-
|
|
56
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
57
|
+
0 && (module.exports = {
|
|
58
|
+
基础用法
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=XAdkChatbot.stories.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/components/XAdkChatbot/XAdkChatbot.stories.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, { useEffect, useState } from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport { Divider } from 'antd';\nimport { MessageRole, MessageStatus } from '@/types/XAiMessage';\nimport type { Messages } from '@/types/XAiMessage';\nimport documentIcon from '@/assets/document.svg';\nimport XAiProvider from '../XAiProvider';\nimport XAdkChatbot from '.';\nimport { useProviderContext, useProviderMethods } from '@/hooks/useProviderContext';\n\nconst meta: Meta<typeof XAdkChatbot> = {\n title: 'AI组件/XAdkChatbot 聊天框',\n component: XAdkChatbot,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n argTypes: {\n messages: {\n description: '消息列表',\n },\n },\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\nexport const 基础用法: Story = {\n args: {\n messages: [],\n },\n};"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,eAAwB;AAGxB,IAAM,OAAiC;AAAA,EACrC,OAAO;AAAA,EACP,WAAW,SAAAA;AAAA,EACX,YAAY;AAAA,IACV,QAAQ;AAAA,EACV;AAAA,EACA,MAAM,CAAC,UAAU;AAAA,EACjB,UAAU;AAAA,IACR,UAAU;AAAA,MACR,aAAa;AAAA,IACf;AAAA,EACF;AACF;AAEA,IAAO,8BAAQ;AAGR,IAAM,OAAc;AAAA,EACzB,MAAM;AAAA,IACJ,UAAU,CAAC;AAAA,EACb;AACF;",
|
|
6
|
+
"names": ["XAdkChatbot"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { IMessage } from "../../../../types";
|
|
3
|
+
export interface FunctionCallRenderProps {
|
|
4
|
+
msg: IMessage;
|
|
5
|
+
showDetail?: boolean;
|
|
6
|
+
onConfirm?: (confirmed: boolean) => void;
|
|
7
|
+
}
|
|
8
|
+
declare const FunctionCallRender: React.FC<FunctionCallRenderProps>;
|
|
9
|
+
export default FunctionCallRender;
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/components/XAdkChatbot/components/FunctionCallRender/index.tsx
|
|
30
|
+
var FunctionCallRender_exports = {};
|
|
31
|
+
__export(FunctionCallRender_exports, {
|
|
32
|
+
default: () => FunctionCallRender_default
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(FunctionCallRender_exports);
|
|
35
|
+
var import_antd = require("antd");
|
|
36
|
+
var import_icons = require("@ant-design/icons");
|
|
37
|
+
var import_styles = require("./styles");
|
|
38
|
+
var import_XAiJsonView = __toESM(require("../../../XAiJsonView"));
|
|
39
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
40
|
+
var FunctionCallRender = ({ msg, showDetail, onConfirm }) => {
|
|
41
|
+
var _a, _b, _c, _d, _e;
|
|
42
|
+
const styles = (0, import_styles.useStyles)();
|
|
43
|
+
const fnCall = msg.functionCall;
|
|
44
|
+
const fnRes = msg.functionResponse;
|
|
45
|
+
const name = (fnCall == null ? void 0 : fnCall.name) || (fnRes == null ? void 0 : fnRes.name);
|
|
46
|
+
if (name === "adk_request_confirmation") {
|
|
47
|
+
if (fnRes) {
|
|
48
|
+
if (msg.role === "bot")
|
|
49
|
+
return null;
|
|
50
|
+
const confirmed = (_a = fnRes.response) == null ? void 0 : _a.confirmed;
|
|
51
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: styles.wrapper, children: confirmed ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Alert, { message: "已确认", type: "success", showIcon: true, className: styles.alert }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Alert, { message: "已取消", type: "error", showIcon: true, className: styles.alert }) }, msg.id);
|
|
52
|
+
}
|
|
53
|
+
const originalFn = (_c = (_b = msg == null ? void 0 : msg.functionCall) == null ? void 0 : _b.args) == null ? void 0 : _c.originalFunctionCall;
|
|
54
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: styles.wrapper, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: styles.confirm, children: [
|
|
55
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mb-4", children: [
|
|
56
|
+
"请确认是否执行工具:",
|
|
57
|
+
originalFn == null ? void 0 : originalFn.name,
|
|
58
|
+
"?"
|
|
59
|
+
] }),
|
|
60
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_antd.Flex, { justify: "end", gap: 8, children: [
|
|
61
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Button, { type: "default", onClick: () => onConfirm == null ? void 0 : onConfirm(false), children: "取消" }),
|
|
62
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Button, { type: "primary", onClick: () => onConfirm == null ? void 0 : onConfirm(true), children: "确认" })
|
|
63
|
+
] })
|
|
64
|
+
] }) }, msg.id);
|
|
65
|
+
}
|
|
66
|
+
if (name === "transferToAgent") {
|
|
67
|
+
const agentName = (_d = fnCall.args) == null ? void 0 : _d.agentName;
|
|
68
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: styles.wrapper, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: styles.fnCall, children: [
|
|
69
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.UserSwitchOutlined, { style: { color: "#888" } }),
|
|
70
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
71
|
+
import_antd.Typography.Text,
|
|
72
|
+
{
|
|
73
|
+
ellipsis: { tooltip: agentName },
|
|
74
|
+
style: { maxWidth: 300, lineHeight: "16px" },
|
|
75
|
+
children: [
|
|
76
|
+
"任务转交:",
|
|
77
|
+
agentName
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
),
|
|
81
|
+
msg.functionResponse ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.CheckCircleTwoTone, { twoToneColor: "#52c41a" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.LoadingOutlined, {})
|
|
82
|
+
] }) }, msg.id);
|
|
83
|
+
}
|
|
84
|
+
const renderItem = (obj, text) => {
|
|
85
|
+
const str = JSON.stringify(obj, null, 2);
|
|
86
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
87
|
+
import_antd.Form.Item,
|
|
88
|
+
{
|
|
89
|
+
label: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_antd.Flex, { align: "center", children: [
|
|
90
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "mr-2", children: text }),
|
|
91
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
92
|
+
import_antd.Typography.Text,
|
|
93
|
+
{
|
|
94
|
+
copyable: {
|
|
95
|
+
text: str,
|
|
96
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.CopyOutlined, {})
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
)
|
|
100
|
+
] }),
|
|
101
|
+
style: { marginBottom: 12 },
|
|
102
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_XAiJsonView.default, { value: str })
|
|
103
|
+
}
|
|
104
|
+
);
|
|
105
|
+
};
|
|
106
|
+
const renderResponse = () => {
|
|
107
|
+
var _a2;
|
|
108
|
+
const res = msg.functionResponse;
|
|
109
|
+
if (res) {
|
|
110
|
+
if ((_a2 = res.response) == null ? void 0 : _a2.error) {
|
|
111
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Tooltip, { title: res.response.error, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.InfoCircleOutlined, { style: { color: "#faad14" } }) });
|
|
112
|
+
}
|
|
113
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.CheckCircleTwoTone, { twoToneColor: "#52c41a" });
|
|
114
|
+
}
|
|
115
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.LoadingOutlined, {});
|
|
116
|
+
};
|
|
117
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: styles.wrapper, children: showDetail ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
118
|
+
import_antd.Popover,
|
|
119
|
+
{
|
|
120
|
+
placement: "left",
|
|
121
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_antd.Form, { style: { width: 400 }, layout: "vertical", children: [
|
|
122
|
+
renderItem(fnCall.args, "工具参数"),
|
|
123
|
+
renderItem((_e = msg.functionResponse) == null ? void 0 : _e.response, "工具响应")
|
|
124
|
+
] }),
|
|
125
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: styles.fnCall, children: [
|
|
126
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.ToolOutlined, { style: { color: "#888" } }),
|
|
127
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
128
|
+
import_antd.Typography.Text,
|
|
129
|
+
{
|
|
130
|
+
ellipsis: { tooltip: name },
|
|
131
|
+
style: { maxWidth: 300, lineHeight: "16px" },
|
|
132
|
+
children: [
|
|
133
|
+
"调用工具:",
|
|
134
|
+
name
|
|
135
|
+
]
|
|
136
|
+
}
|
|
137
|
+
),
|
|
138
|
+
renderResponse()
|
|
139
|
+
] })
|
|
140
|
+
}
|
|
141
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: styles.fnCall, children: [
|
|
142
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.ToolOutlined, { style: { color: "#888" } }),
|
|
143
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
144
|
+
import_antd.Typography.Text,
|
|
145
|
+
{
|
|
146
|
+
ellipsis: { tooltip: name },
|
|
147
|
+
style: { maxWidth: 300, lineHeight: "16px" },
|
|
148
|
+
children: [
|
|
149
|
+
"调用工具:",
|
|
150
|
+
name
|
|
151
|
+
]
|
|
152
|
+
}
|
|
153
|
+
),
|
|
154
|
+
renderResponse()
|
|
155
|
+
] }) }, msg.id);
|
|
156
|
+
};
|
|
157
|
+
var FunctionCallRender_default = FunctionCallRender;
|
|
158
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/components/XAdkChatbot/components/FunctionCallRender/index.tsx"],
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { Alert, Button, Flex, Form, Popover, Tooltip, Typography } from 'antd';\nimport { CopyOutlined, ToolOutlined, CheckCircleTwoTone, LoadingOutlined, UserSwitchOutlined, InfoCircleOutlined } from '@ant-design/icons';\nimport type { IMessage, FunctionCall } from '@/types';\nimport { useStyles } from './styles';\nimport JsonView from '@/components/XAiJsonView';\n\nexport interface FunctionCallRenderProps {\n msg: IMessage;\n showDetail?: boolean;\n onConfirm?: (confirmed: boolean) => void;\n}\n\nconst FunctionCallRender: React.FC<FunctionCallRenderProps> = ({ msg, showDetail, onConfirm }) => {\n const styles = useStyles();\n const fnCall = msg.functionCall as FunctionCall;\n const fnRes = msg.functionResponse;\n const name = fnCall?.name || fnRes?.name;\n if (name === 'adk_request_confirmation') {\n if (fnRes) {\n if (msg.role === 'bot') return null;\n const confirmed = fnRes.response?.confirmed;\n return (\n <div key={msg.id} className={styles.wrapper}>\n {confirmed\n ? <Alert message=\"已确认\" type=\"success\" showIcon className={styles.alert} />\n : <Alert message=\"已取消\" type=\"error\" showIcon className={styles.alert} />}\n </div>\n );\n }\n const originalFn = msg?.functionCall?.args?.originalFunctionCall;\n return (\n <div key={msg.id} className={styles.wrapper}>\n <div className={styles.confirm}>\n <div className=\"mb-4\">请确认是否执行工具:{originalFn?.name}?</div>\n <Flex justify=\"end\" gap={8}>\n <Button type=\"default\" onClick={() => onConfirm?.(false)}>取消</Button>\n <Button type=\"primary\" onClick={() => onConfirm?.(true)}>\n 确认\n </Button>\n </Flex>\n </div>\n </div>\n );\n }\n if (name === 'transferToAgent') {\n const agentName = fnCall.args?.agentName;\n return (\n <div key={msg.id} className={styles.wrapper}>\n <div className={styles.fnCall}>\n <UserSwitchOutlined style={{ color: '#888' }} />\n <Typography.Text\n ellipsis={{ tooltip: agentName }}\n style={{ maxWidth: 300, lineHeight: '16px' }}\n >\n 任务转交:{agentName}\n </Typography.Text>\n {msg.functionResponse\n ? <CheckCircleTwoTone twoToneColor=\"#52c41a\" />\n : <LoadingOutlined />}\n </div>\n </div>\n );\n }\n const renderItem = (obj: any, text: string) => {\n const str = JSON.stringify(obj, null, 2);\n return (\n <Form.Item\n label={(\n <Flex align=\"center\">\n <span className=\"mr-2\">{text}</span>\n <Typography.Text\n copyable={{\n text: str,\n icon: <CopyOutlined />,\n }}\n />\n </Flex>\n )}\n style={{ marginBottom: 12 }}\n >\n <JsonView value={str} />\n </Form.Item>\n );\n };\n const renderResponse = () => {\n const res = msg.functionResponse;\n if (res) {\n if (res.response?.error) {\n return (\n <Tooltip title={res.response.error}>\n <InfoCircleOutlined style={{ color: '#faad14' }} />\n </Tooltip>\n );\n }\n return <CheckCircleTwoTone twoToneColor=\"#52c41a\" />;\n }\n return <LoadingOutlined />;\n };\n return (\n <div key={msg.id} className={styles.wrapper}>\n {showDetail ? (\n <Popover\n placement=\"left\"\n content={(\n <Form style={{ width: 400 }} layout=\"vertical\">\n {renderItem(fnCall.args, '工具参数')}\n {renderItem(msg.functionResponse?.response, '工具响应')}\n </Form>\n )}\n >\n <div className={styles.fnCall}>\n <ToolOutlined style={{ color: '#888' }} />\n <Typography.Text\n ellipsis={{ tooltip: name }}\n style={{ maxWidth: 300, lineHeight: '16px' }}\n >\n 调用工具:{name}\n </Typography.Text>\n {renderResponse()}\n </div>\n </Popover>\n ) : (\n <div className={styles.fnCall}>\n <ToolOutlined style={{ color: '#888' }} />\n <Typography.Text\n ellipsis={{ tooltip: name }}\n style={{ maxWidth: 300, lineHeight: '16px' }}\n >\n 调用工具:{name}\n </Typography.Text>\n {renderResponse()}\n </div>\n )}\n </div>\n );\n};\n\nexport default FunctionCallRender;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kBAAwE;AACxE,mBAAwH;AAExH,oBAA0B;AAC1B,yBAAqB;AAoBP;AAZd,IAAM,qBAAwD,CAAC,EAAE,KAAK,YAAY,UAAU,MAAM;AAblG;AAcE,QAAM,aAAS,yBAAU;AACzB,QAAM,SAAS,IAAI;AACnB,QAAM,QAAQ,IAAI;AAClB,QAAM,QAAO,iCAAQ,UAAQ,+BAAO;AACpC,MAAI,SAAS,4BAA4B;AACvC,QAAI,OAAO;AACT,UAAI,IAAI,SAAS;AAAO,eAAO;AAC/B,YAAM,aAAY,WAAM,aAAN,mBAAgB;AAClC,aACE,4CAAC,SAAiB,WAAW,OAAO,SACjC,sBACG,4CAAC,qBAAM,SAAQ,OAAM,MAAK,WAAU,UAAQ,MAAC,WAAW,OAAO,OAAO,IACtE,4CAAC,qBAAM,SAAQ,OAAM,MAAK,SAAQ,UAAQ,MAAC,WAAW,OAAO,OAAO,KAHhE,IAAI,EAId;AAAA,IAEJ;AACA,UAAM,cAAa,sCAAK,iBAAL,mBAAmB,SAAnB,mBAAyB;AAC5C,WACE,4CAAC,SAAiB,WAAW,OAAO,SAClC,uDAAC,SAAI,WAAW,OAAO,SACrB;AAAA,mDAAC,SAAI,WAAU,QAAO;AAAA;AAAA,QAAW,yCAAY;AAAA,QAAK;AAAA,SAAC;AAAA,MACnD,6CAAC,oBAAK,SAAQ,OAAM,KAAK,GACvB;AAAA,oDAAC,sBAAO,MAAK,WAAU,SAAS,MAAM,uCAAY,QAAQ,gBAAE;AAAA,QAC5D,4CAAC,sBAAO,MAAK,WAAU,SAAS,MAAM,uCAAY,OAAO,gBAEzD;AAAA,SACF;AAAA,OACF,KATQ,IAAI,EAUd;AAAA,EAEJ;AACA,MAAI,SAAS,mBAAmB;AAC9B,UAAM,aAAY,YAAO,SAAP,mBAAa;AAC/B,WACE,4CAAC,SAAiB,WAAW,OAAO,SAClC,uDAAC,SAAI,WAAW,OAAO,QACrB;AAAA,kDAAC,mCAAmB,OAAO,EAAE,OAAO,OAAO,GAAG;AAAA,MAC9C;AAAA,QAAC,uBAAW;AAAA,QAAX;AAAA,UACC,UAAU,EAAE,SAAS,UAAU;AAAA,UAC/B,OAAO,EAAE,UAAU,KAAK,YAAY,OAAO;AAAA,UAC5C;AAAA;AAAA,YACO;AAAA;AAAA;AAAA,MACR;AAAA,MACC,IAAI,mBACD,4CAAC,mCAAmB,cAAa,WAAU,IAC3C,4CAAC,gCAAgB;AAAA,OACvB,KAZQ,IAAI,EAad;AAAA,EAEJ;AACA,QAAM,aAAa,CAAC,KAAU,SAAiB;AAC7C,UAAM,MAAM,KAAK,UAAU,KAAK,MAAM,CAAC;AACvC,WACE;AAAA,MAAC,iBAAK;AAAA,MAAL;AAAA,QACC,OACE,6CAAC,oBAAK,OAAM,UACV;AAAA,sDAAC,UAAK,WAAU,QAAQ,gBAAK;AAAA,UAC7B;AAAA,YAAC,uBAAW;AAAA,YAAX;AAAA,cACC,UAAU;AAAA,gBACR,MAAM;AAAA,gBACN,MAAM,4CAAC,6BAAa;AAAA,cACtB;AAAA;AAAA,UACF;AAAA,WACF;AAAA,QAEF,OAAO,EAAE,cAAc,GAAG;AAAA,QAE1B,sDAAC,mBAAAA,SAAA,EAAS,OAAO,KAAK;AAAA;AAAA,IACxB;AAAA,EAEJ;AACA,QAAM,iBAAiB,MAAM;AArF/B,QAAAC;AAsFI,UAAM,MAAM,IAAI;AAChB,QAAI,KAAK;AACP,WAAIA,MAAA,IAAI,aAAJ,gBAAAA,IAAc,OAAO;AACvB,eACE,4CAAC,uBAAQ,OAAO,IAAI,SAAS,OAC3B,sDAAC,mCAAmB,OAAO,EAAE,OAAO,UAAU,GAAG,GACnD;AAAA,MAEJ;AACA,aAAO,4CAAC,mCAAmB,cAAa,WAAU;AAAA,IACpD;AACA,WAAO,4CAAC,gCAAgB;AAAA,EAC1B;AACA,SACE,4CAAC,SAAiB,WAAW,OAAO,SACjC,uBACC;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,SACE,6CAAC,oBAAK,OAAO,EAAE,OAAO,IAAI,GAAG,QAAO,YACjC;AAAA,mBAAW,OAAO,MAAM,MAAM;AAAA,QAC9B,YAAW,SAAI,qBAAJ,mBAAsB,UAAU,MAAM;AAAA,SACpD;AAAA,MAGF,uDAAC,SAAI,WAAW,OAAO,QACrB;AAAA,oDAAC,6BAAa,OAAO,EAAE,OAAO,OAAO,GAAG;AAAA,QACxC;AAAA,UAAC,uBAAW;AAAA,UAAX;AAAA,YACC,UAAU,EAAE,SAAS,KAAK;AAAA,YAC1B,OAAO,EAAE,UAAU,KAAK,YAAY,OAAO;AAAA,YAC5C;AAAA;AAAA,cACO;AAAA;AAAA;AAAA,QACR;AAAA,QACC,eAAe;AAAA,SAClB;AAAA;AAAA,EACF,IAEA,6CAAC,SAAI,WAAW,OAAO,QACrB;AAAA,gDAAC,6BAAa,OAAO,EAAE,OAAO,OAAO,GAAG;AAAA,IACxC;AAAA,MAAC,uBAAW;AAAA,MAAX;AAAA,QACC,UAAU,EAAE,SAAS,KAAK;AAAA,QAC1B,OAAO,EAAE,UAAU,KAAK,YAAY,OAAO;AAAA,QAC5C;AAAA;AAAA,UACO;AAAA;AAAA;AAAA,IACR;AAAA,IACC,eAAe;AAAA,KAClB,KAhCM,IAAI,EAkCd;AAEJ;AAEA,IAAO,6BAAQ;",
|
|
6
|
+
"names": ["JsonView", "_a"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export declare const useStyles: () => {
|
|
2
|
+
wrapper: string;
|
|
3
|
+
fnCall: string;
|
|
4
|
+
confirm: string;
|
|
5
|
+
alert: string;
|
|
6
|
+
} & {
|
|
7
|
+
w: (width: string | number) => string;
|
|
8
|
+
h: (height: string | number) => string;
|
|
9
|
+
p: (padding: string) => string;
|
|
10
|
+
pb: (padding: string | number) => string;
|
|
11
|
+
pt: (padding: string | number) => string;
|
|
12
|
+
pl: (padding: string | number) => string;
|
|
13
|
+
pr: (padding: string | number) => string;
|
|
14
|
+
m: (margin: string) => string;
|
|
15
|
+
mb: (margin: string | number) => string;
|
|
16
|
+
mt: (margin: string | number) => string;
|
|
17
|
+
ml: (margin: string | number) => string;
|
|
18
|
+
mr: (margin: string | number) => string;
|
|
19
|
+
text: (size: string | number) => string;
|
|
20
|
+
weight: (size: number) => string;
|
|
21
|
+
textColor: (c: string) => string;
|
|
22
|
+
bg: (c: string) => string;
|
|
23
|
+
rs: (radius: string | number) => string;
|
|
24
|
+
gap: (g: string | number) => string;
|
|
25
|
+
flex: string;
|
|
26
|
+
flexCenter: string;
|
|
27
|
+
flexBetween: string;
|
|
28
|
+
flexColumn: string;
|
|
29
|
+
flex1: string;
|
|
30
|
+
cursor: (type: string) => string;
|
|
31
|
+
border: (color: string, width?: string) => string;
|
|
32
|
+
boxShadow: (shadow: string) => string;
|
|
33
|
+
transition: (property?: string, duration?: string) => string;
|
|
34
|
+
overflow: (type: string) => string;
|
|
35
|
+
position: (type: string) => string;
|
|
36
|
+
zIndex: (index: number) => string;
|
|
37
|
+
flexCenterGap2: string;
|
|
38
|
+
flexCenterGap4: string;
|
|
39
|
+
};
|
|
40
|
+
export default useStyles;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/components/XAdkChatbot/components/FunctionCallRender/styles.tsx
|
|
20
|
+
var styles_exports = {};
|
|
21
|
+
__export(styles_exports, {
|
|
22
|
+
default: () => styles_default,
|
|
23
|
+
useStyles: () => useStyles
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(styles_exports);
|
|
26
|
+
var import_css = require("@emotion/css");
|
|
27
|
+
var import_common = require("../../../../styles/common");
|
|
28
|
+
var useStyles = (0, import_common.withBasicStyles)(() => ({
|
|
29
|
+
wrapper: import_css.css`
|
|
30
|
+
display: flex;
|
|
31
|
+
justify-content: flex-start;
|
|
32
|
+
margin-bottom: 12px;
|
|
33
|
+
`,
|
|
34
|
+
fnCall: import_css.css`
|
|
35
|
+
display: flex;
|
|
36
|
+
align-items: center;
|
|
37
|
+
gap: 8px;
|
|
38
|
+
padding: 7px 12px;
|
|
39
|
+
border-radius: 24px;
|
|
40
|
+
line-height: 16px;
|
|
41
|
+
border: 1px solid #e7e7e7;
|
|
42
|
+
cursor: pointer;
|
|
43
|
+
`,
|
|
44
|
+
confirm: import_css.css`
|
|
45
|
+
padding: 12px;
|
|
46
|
+
border-radius: 12px;
|
|
47
|
+
border: 1px solid #e7e7e7;
|
|
48
|
+
`,
|
|
49
|
+
alert: import_css.css`
|
|
50
|
+
line-height: 1;
|
|
51
|
+
border-radius: 24px;
|
|
52
|
+
`
|
|
53
|
+
}));
|
|
54
|
+
var styles_default = useStyles;
|
|
55
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
56
|
+
0 && (module.exports = {
|
|
57
|
+
useStyles
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/components/XAdkChatbot/components/FunctionCallRender/styles.tsx"],
|
|
4
|
+
"sourcesContent": ["import { css } from '@emotion/css';\nimport { withBasicStyles } from '@/styles/common';\n\nexport const useStyles = withBasicStyles(() => ({\n wrapper: css`\n display: flex;\n justify-content: flex-start;\n margin-bottom: 12px;\n `,\n\n fnCall: css`\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 7px 12px;\n border-radius: 24px;\n line-height: 16px;\n border: 1px solid #e7e7e7;\n cursor: pointer;\n `,\n\n confirm: css`\n padding: 12px;\n border-radius: 12px;\n border: 1px solid #e7e7e7;\n `,\n\n alert: css`\n line-height: 1;\n border-radius: 24px;\n `,\n}));\n\nexport default useStyles;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAoB;AACpB,oBAAgC;AAEzB,IAAM,gBAAY,+BAAgB,OAAO;AAAA,EAC9C,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWR,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,OAAO;AAAA;AAAA;AAAA;AAIT,EAAE;AAEF,IAAO,iBAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/components/XAdkChatbot/components/MarkdownRender/index.tsx
|
|
30
|
+
var MarkdownRender_exports = {};
|
|
31
|
+
__export(MarkdownRender_exports, {
|
|
32
|
+
default: () => MarkdownRender_default
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(MarkdownRender_exports);
|
|
35
|
+
var import_react = __toESM(require("react"));
|
|
36
|
+
var import_x_markdown = __toESM(require("@ant-design/x-markdown"));
|
|
37
|
+
var import_HighlightCode = __toESM(require("@ant-design/x-markdown/plugins/HighlightCode"));
|
|
38
|
+
var import_Latex = __toESM(require("@ant-design/x-markdown/plugins/Latex"));
|
|
39
|
+
var import_antd = require("antd");
|
|
40
|
+
var import_icons = require("@ant-design/icons");
|
|
41
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
42
|
+
var CodeComponent = (props) => {
|
|
43
|
+
var _a;
|
|
44
|
+
const { className, children } = props;
|
|
45
|
+
const lang = ((_a = className == null ? void 0 : className.match(/language-(\w+)/)) == null ? void 0 : _a[1]) || "";
|
|
46
|
+
if (typeof children !== "string")
|
|
47
|
+
return null;
|
|
48
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_HighlightCode.default, { lang, children });
|
|
49
|
+
};
|
|
50
|
+
var ThinkComponent = import_react.default.memo((props) => {
|
|
51
|
+
const type = props.type || "";
|
|
52
|
+
const titleMap = {
|
|
53
|
+
planning: "规划",
|
|
54
|
+
replanning: "重新规划",
|
|
55
|
+
reasoning: "推理",
|
|
56
|
+
action: "行动",
|
|
57
|
+
final_answer: "最终答案"
|
|
58
|
+
};
|
|
59
|
+
const iconMap = {
|
|
60
|
+
planning: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.BarsOutlined, {}),
|
|
61
|
+
replanning: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.BarsOutlined, {}),
|
|
62
|
+
reasoning: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.BulbOutlined, {}),
|
|
63
|
+
action: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.ThunderboltOutlined, {}),
|
|
64
|
+
final_answer: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.CheckCircleOutlined, {})
|
|
65
|
+
};
|
|
66
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_antd.Flex, { align: "center", gap: 8, style: { color: "#888", margin: "4px 0" }, children: [
|
|
67
|
+
type in titleMap && iconMap[type],
|
|
68
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: titleMap[type] })
|
|
69
|
+
] });
|
|
70
|
+
});
|
|
71
|
+
var MarkdownRender = ({ text }) => {
|
|
72
|
+
const markdown = text.replaceAll(/\/\*\s*PLANNING\s*\*\//g, '<tag type="planning"></tag>').replaceAll(/\/\*\s*REPLANNING\s*\*\//g, '<tag type="replanning"></tag>').replaceAll(/\/\*\s*REASONING\s*\*\//g, '<tag type="reasoning"></tag>').replaceAll(/\/\*\s*ACTION\s*\*\//g, '<tag type="action"></tag>').replaceAll(/\/\*\s*FINAL_ANSWER\s*\*\//g, '<tag type="final_answer"></tag>');
|
|
73
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
74
|
+
import_x_markdown.default,
|
|
75
|
+
{
|
|
76
|
+
content: markdown,
|
|
77
|
+
paragraphTag: "div",
|
|
78
|
+
config: {
|
|
79
|
+
extensions: (0, import_Latex.default)()
|
|
80
|
+
},
|
|
81
|
+
components: {
|
|
82
|
+
tag: ThinkComponent,
|
|
83
|
+
code: CodeComponent
|
|
84
|
+
},
|
|
85
|
+
streaming: {
|
|
86
|
+
enableAnimation: true,
|
|
87
|
+
animationConfig: {
|
|
88
|
+
fadeDuration: 400
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
);
|
|
93
|
+
};
|
|
94
|
+
var MarkdownRender_default = MarkdownRender;
|
|
95
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../src/components/XAdkChatbot/components/MarkdownRender/index.tsx"],
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport XMarkdown, { type ComponentProps } from '@ant-design/x-markdown';\nimport HighlightCode from '@ant-design/x-markdown/plugins/HighlightCode';\nimport Latex from '@ant-design/x-markdown/plugins/Latex';\nimport { Flex } from 'antd';\nimport { BarsOutlined, BulbOutlined, ThunderboltOutlined, CheckCircleOutlined } from '@ant-design/icons';\n\nconst CodeComponent: React.FC<ComponentProps> = (props) => {\n const { className, children } = props;\n const lang = className?.match(/language-(\\w+)/)?.[1] || '';\n\n if (typeof children !== 'string') return null;\n return <HighlightCode lang={lang}>{children}</HighlightCode>;\n};\n\nexport interface MarkdownRenderProps {\n text: string;\n}\n\nconst ThinkComponent = React.memo((props: ComponentProps) => {\n const type = (props.type || '') as string;\n const titleMap: Record<string, string> = {\n planning: '规划',\n replanning: '重新规划',\n reasoning: '推理',\n action: '行动',\n final_answer: '最终答案',\n };\n const iconMap = {\n planning: <BarsOutlined />,\n replanning: <BarsOutlined />,\n reasoning: <BulbOutlined />,\n action: <ThunderboltOutlined />,\n final_answer: <CheckCircleOutlined />,\n };\n\n return (\n <Flex align=\"center\" gap={8} style={{ color: '#888', margin: '4px 0' }}>\n {type in titleMap && iconMap[type as keyof typeof iconMap]}\n <span>{titleMap[type]}</span>\n </Flex>\n );\n});\n\nconst MarkdownRender: React.FC<MarkdownRenderProps> = ({ text }) => {\n const markdown = text\n .replaceAll(/\\/\\*\\s*PLANNING\\s*\\*\\//g, '<tag type=\"planning\"></tag>')\n .replaceAll(/\\/\\*\\s*REPLANNING\\s*\\*\\//g, '<tag type=\"replanning\"></tag>')\n .replaceAll(/\\/\\*\\s*REASONING\\s*\\*\\//g, '<tag type=\"reasoning\"></tag>')\n .replaceAll(/\\/\\*\\s*ACTION\\s*\\*\\//g, '<tag type=\"action\"></tag>')\n .replaceAll(/\\/\\*\\s*FINAL_ANSWER\\s*\\*\\//g, '<tag type=\"final_answer\"></tag>');\n return (\n <XMarkdown\n content={markdown}\n paragraphTag=\"div\"\n config={{\n extensions: Latex(),\n }}\n components={{\n tag: ThinkComponent,\n code: CodeComponent,\n }}\n streaming={{\n enableAnimation: true,\n animationConfig: {\n fadeDuration: 400,\n },\n }}\n />\n );\n};\n\nexport default MarkdownRender;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,wBAA+C;AAC/C,2BAA0B;AAC1B,mBAAkB;AAClB,kBAAqB;AACrB,mBAAqF;AAO5E;AALT,IAAM,gBAA0C,CAAC,UAAU;AAP3D;AAQE,QAAM,EAAE,WAAW,SAAS,IAAI;AAChC,QAAM,SAAO,4CAAW,MAAM,sBAAjB,mBAAqC,OAAM;AAExD,MAAI,OAAO,aAAa;AAAU,WAAO;AACzC,SAAO,4CAAC,qBAAAA,SAAA,EAAc,MAAa,UAAS;AAC9C;AAMA,IAAM,iBAAiB,aAAAC,QAAM,KAAK,CAAC,UAA0B;AAC3D,QAAM,OAAQ,MAAM,QAAQ;AAC5B,QAAM,WAAmC;AAAA,IACvC,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,cAAc;AAAA,EAChB;AACA,QAAM,UAAU;AAAA,IACd,UAAU,4CAAC,6BAAa;AAAA,IACxB,YAAY,4CAAC,6BAAa;AAAA,IAC1B,WAAW,4CAAC,6BAAa;AAAA,IACzB,QAAQ,4CAAC,oCAAoB;AAAA,IAC7B,cAAc,4CAAC,oCAAoB;AAAA,EACrC;AAEA,SACE,6CAAC,oBAAK,OAAM,UAAS,KAAK,GAAG,OAAO,EAAE,OAAO,QAAQ,QAAQ,QAAQ,GAClE;AAAA,YAAQ,YAAY,QAAQ,IAA4B;AAAA,IACzD,4CAAC,UAAM,mBAAS,IAAI,GAAE;AAAA,KACxB;AAEJ,CAAC;AAED,IAAM,iBAAgD,CAAC,EAAE,KAAK,MAAM;AAClE,QAAM,WAAW,KACd,WAAW,2BAA2B,6BAA6B,EACnE,WAAW,6BAA6B,+BAA+B,EACvE,WAAW,4BAA4B,8BAA8B,EACrE,WAAW,yBAAyB,2BAA2B,EAC/D,WAAW,+BAA+B,iCAAiC;AAC9E,SACE;AAAA,IAAC,kBAAAC;AAAA,IAAA;AAAA,MACC,SAAS;AAAA,MACT,cAAa;AAAA,MACb,QAAQ;AAAA,QACN,gBAAY,aAAAC,SAAM;AAAA,MACpB;AAAA,MACA,YAAY;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,MACR;AAAA,MACA,WAAW;AAAA,QACT,iBAAiB;AAAA,QACjB,iBAAiB;AAAA,UACf,cAAc;AAAA,QAChB;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,yBAAQ;",
|
|
6
|
+
"names": ["HighlightCode", "React", "XMarkdown", "Latex"]
|
|
7
|
+
}
|