@opensumi/ide-ai-native 3.8.3-next-1745568063.0 → 3.8.3-next-1745805174.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/lib/browser/components/ChatToolRender.d.ts.map +1 -1
- package/lib/browser/components/ChatToolRender.js +2 -1
- package/lib/browser/components/ChatToolRender.js.map +1 -1
- package/lib/browser/components/ChatToolResult.d.ts +8 -0
- package/lib/browser/components/ChatToolResult.d.ts.map +1 -0
- package/lib/browser/components/ChatToolResult.js +38 -0
- package/lib/browser/components/ChatToolResult.js.map +1 -0
- package/lib/browser/components/ChatToolResult.module.less +26 -0
- package/package.json +24 -24
- package/src/browser/components/ChatToolRender.tsx +3 -1
- package/src/browser/components/ChatToolResult.module.less +26 -0
- package/src/browser/components/ChatToolResult.tsx +64 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatToolRender.d.ts","sourceRoot":"","sources":["../../../src/browser/components/ChatToolRender.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,OAAO,EAAE,gBAAgB,EAAQ,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatToolRender.d.ts","sourceRoot":"","sources":["../../../src/browser/components/ChatToolRender.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,OAAO,EAAE,gBAAgB,EAAQ,MAAM,2BAA2B,CAAC;AASnE,eAAO,MAAM,cAAc,UAAW;IAAE,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,6BAmF/F,CAAC"}
|
|
@@ -12,6 +12,7 @@ const localize_1 = require("@opensumi/ide-core-common/lib/localize");
|
|
|
12
12
|
const types_1 = require("../types");
|
|
13
13
|
const ChatEditor_1 = require("./ChatEditor");
|
|
14
14
|
const ChatToolRender_module_less_1 = tslib_1.__importDefault(require("./ChatToolRender.module.less"));
|
|
15
|
+
const ChatToolResult_1 = require("./ChatToolResult");
|
|
15
16
|
const ChatToolRender = (props) => {
|
|
16
17
|
var _a, _b, _c;
|
|
17
18
|
const { value, messageId } = props;
|
|
@@ -70,7 +71,7 @@ const ChatToolRender = (props) => {
|
|
|
70
71
|
react_1.default.createElement("div", { className: ChatToolRender_module_less_1.default.section_label },
|
|
71
72
|
(0, localize_1.localize)('ai.native.mcp.tool.results'),
|
|
72
73
|
":"),
|
|
73
|
-
react_1.default.createElement(
|
|
74
|
+
react_1.default.createElement(ChatToolResult_1.ChatToolResult, { result: value.result, relationId: (0, ide_core_common_1.uuid)(4) }))))));
|
|
74
75
|
};
|
|
75
76
|
exports.ChatToolRender = ChatToolRender;
|
|
76
77
|
//# sourceMappingURL=ChatToolRender.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatToolRender.js","sourceRoot":"","sources":["../../../src/browser/components/ChatToolRender.tsx"],"names":[],"mappings":";;;;AAAA,oEAA6B;AAC7B,uDAAwC;AAExC,iEAA2D;AAC3D,0EAAiE;AACjE,mFAA8E;AAC9E,+DAAmE;AACnE,qEAAkE;AAElE,oCAAsE;AAEtE,6CAAuD;AACvD,sGAAkD;AAE3C,MAAM,cAAc,GAAG,CAAC,KAAiE,EAAE,EAAE;;IAClG,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACnC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IACpD,MAAM,wBAAwB,GAAG,IAAA,gCAAa,EAAqB,8BAAsB,CAAC,CAAC;IAE3F,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,CAAA,MAAA,wBAAwB,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,0CAAE,KAAK,KAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;IAErG,MAAM,aAAa,GAAG,wBAAwB,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAErF,MAAM,YAAY,GAAG,CAAC,KAAc,EAA4C,EAAE;QAChF,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,iBAAiB,CAAC;YACvB,KAAK,WAAW;gBACd,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,8BAAC,mBAAO,OAAG,EAAE,CAAC;YACpD,KAAK,UAAU;gBACb,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,8BAAC,iBAAI,IAAC,SAAS,EAAC,uBAAuB,GAAG,EAAE,CAAC;YACjF,KAAK,QAAQ;gBACX,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,8BAAC,iBAAI,IAAC,SAAS,EAAC,2BAA2B,GAAG,EAAE,CAAC;YACzF;gBACE,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,IAAI,EAAE,8BAAC,iBAAI,IAAC,SAAS,EAAC,0BAA0B,GAAG,EAAE,CAAC;QAC9F,CAAC;IACH,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatToolRender.js","sourceRoot":"","sources":["../../../src/browser/components/ChatToolRender.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatToolResult.d.ts","sourceRoot":"","sources":["../../../src/browser/components/ChatToolResult.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,UAAU,mBAAmB;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA4CxD,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChatToolResult = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
const localize_1 = require("@opensumi/ide-core-common/lib/localize");
|
|
7
|
+
const ChatEditor_1 = require("./ChatEditor");
|
|
8
|
+
const ChatToolResult_module_less_1 = tslib_1.__importDefault(require("./ChatToolResult.module.less"));
|
|
9
|
+
const ChatToolResult = ({ result, relationId }) => {
|
|
10
|
+
const parseResult = react_1.default.useCallback((resultStr) => {
|
|
11
|
+
try {
|
|
12
|
+
const parsed = JSON.parse(resultStr);
|
|
13
|
+
return parsed.content || [];
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
return [{ type: 'text', text: resultStr }];
|
|
17
|
+
}
|
|
18
|
+
}, []);
|
|
19
|
+
const renderContent = react_1.default.useCallback((content, index) => {
|
|
20
|
+
switch (content.type) {
|
|
21
|
+
case 'text':
|
|
22
|
+
return content.text ? (react_1.default.createElement("div", { key: `text-${index}`, className: ChatToolResult_module_less_1.default.text_content },
|
|
23
|
+
react_1.default.createElement(ChatEditor_1.CodeEditorWithHighlight, { input: content.text, language: 'text', relationId: relationId || '' }))) : null;
|
|
24
|
+
case 'image':
|
|
25
|
+
return content.data ? (react_1.default.createElement("div", { key: `image-${index}`, className: ChatToolResult_module_less_1.default.image_content },
|
|
26
|
+
react_1.default.createElement("img", { src: `data:${content.mimeType || 'image/png'};base64,${content.data}`, alt: (0, localize_1.localize)('aiNative.chat.result.image') }))) : null;
|
|
27
|
+
default:
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
}, [relationId]);
|
|
31
|
+
const contents = react_1.default.useMemo(() => parseResult(result), [result, parseResult]);
|
|
32
|
+
if (!contents.length) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
return (react_1.default.createElement("div", { className: ChatToolResult_module_less_1.default.result_container }, contents.map((content, index) => renderContent(content, index))));
|
|
36
|
+
};
|
|
37
|
+
exports.ChatToolResult = ChatToolResult;
|
|
38
|
+
//# sourceMappingURL=ChatToolResult.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatToolResult.js","sourceRoot":"","sources":["../../../src/browser/components/ChatToolResult.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAE1B,qEAAkE;AAElE,6CAAuD;AACvD,sGAAkD;AAc3C,MAAM,cAAc,GAAkC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;IACtF,MAAM,WAAW,GAAG,eAAK,CAAC,WAAW,CAAC,CAAC,SAAiB,EAAmB,EAAE;QAC3E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACrC,OAAO,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,aAAa,GAAG,eAAK,CAAC,WAAW,CACrC,CAAC,OAAsB,EAAE,KAAa,EAAE,EAAE;QACxC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,MAAM;gBACT,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CACpB,uCAAK,GAAG,EAAE,QAAQ,KAAK,EAAE,EAAE,SAAS,EAAE,oCAAM,CAAC,YAAY;oBACvD,8BAAC,oCAAuB,IAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,IAAI,EAAE,GAAI,CAC5F,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;YACX,KAAK,OAAO;gBACV,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CACpB,uCAAK,GAAG,EAAE,SAAS,KAAK,EAAE,EAAE,SAAS,EAAE,oCAAM,CAAC,aAAa;oBACzD,uCACE,GAAG,EAAE,QAAQ,OAAO,CAAC,QAAQ,IAAI,WAAW,WAAW,OAAO,CAAC,IAAI,EAAE,EACrE,GAAG,EAAE,IAAA,mBAAQ,EAAC,4BAA4B,CAAC,GAC3C,CACE,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;YACX;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,MAAM,QAAQ,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjF,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,uCAAK,SAAS,EAAE,oCAAM,CAAC,gBAAgB,IAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAO,CACjH,CAAC;AACJ,CAAC,CAAC;AA5CW,QAAA,cAAc,kBA4CzB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
.result_container {
|
|
2
|
+
width: 100%;
|
|
3
|
+
margin: 8px 0;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.text_content {
|
|
7
|
+
margin: 8px 0;
|
|
8
|
+
width: 100%;
|
|
9
|
+
padding: 5px;
|
|
10
|
+
background-color: var(--editor-background);
|
|
11
|
+
color: var(--editor-foreground);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.image_content {
|
|
15
|
+
margin: 8px 0;
|
|
16
|
+
width: 100%;
|
|
17
|
+
display: flex;
|
|
18
|
+
justify-content: center;
|
|
19
|
+
align-items: center;
|
|
20
|
+
|
|
21
|
+
img {
|
|
22
|
+
max-width: 100%;
|
|
23
|
+
border-radius: 4px;
|
|
24
|
+
box-shadow: 0 2px 8px var(--widget-shadow);
|
|
25
|
+
}
|
|
26
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensumi/ide-ai-native",
|
|
3
|
-
"version": "3.8.3-next-
|
|
3
|
+
"version": "3.8.3-next-1745805174.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"lib",
|
|
6
6
|
"src"
|
|
@@ -24,27 +24,27 @@
|
|
|
24
24
|
"@ai-sdk/openai": "^1.1.9",
|
|
25
25
|
"@ai-sdk/openai-compatible": "^0.1.11",
|
|
26
26
|
"@modelcontextprotocol/sdk": "^1.3.1",
|
|
27
|
-
"@opensumi/ide-addons": "3.8.3-next-
|
|
28
|
-
"@opensumi/ide-components": "3.8.3-next-
|
|
29
|
-
"@opensumi/ide-connection": "3.8.3-next-
|
|
30
|
-
"@opensumi/ide-core-common": "3.8.3-next-
|
|
31
|
-
"@opensumi/ide-core-node": "3.8.3-next-
|
|
32
|
-
"@opensumi/ide-debug": "3.8.3-next-
|
|
33
|
-
"@opensumi/ide-design": "3.8.3-next-
|
|
34
|
-
"@opensumi/ide-editor": "3.8.3-next-
|
|
35
|
-
"@opensumi/ide-file-search": "3.8.3-next-
|
|
36
|
-
"@opensumi/ide-file-service": "3.8.3-next-
|
|
37
|
-
"@opensumi/ide-main-layout": "3.8.3-next-
|
|
38
|
-
"@opensumi/ide-markers": "3.8.3-next-
|
|
39
|
-
"@opensumi/ide-monaco": "3.8.3-next-
|
|
40
|
-
"@opensumi/ide-outline": "3.8.3-next-
|
|
41
|
-
"@opensumi/ide-overlay": "3.8.3-next-
|
|
42
|
-
"@opensumi/ide-preferences": "3.8.3-next-
|
|
43
|
-
"@opensumi/ide-search": "3.8.3-next-
|
|
44
|
-
"@opensumi/ide-terminal-next": "3.8.3-next-
|
|
45
|
-
"@opensumi/ide-theme": "3.8.3-next-
|
|
46
|
-
"@opensumi/ide-utils": "3.8.3-next-
|
|
47
|
-
"@opensumi/ide-workspace": "3.8.3-next-
|
|
27
|
+
"@opensumi/ide-addons": "3.8.3-next-1745805174.0",
|
|
28
|
+
"@opensumi/ide-components": "3.8.3-next-1745805174.0",
|
|
29
|
+
"@opensumi/ide-connection": "3.8.3-next-1745805174.0",
|
|
30
|
+
"@opensumi/ide-core-common": "3.8.3-next-1745805174.0",
|
|
31
|
+
"@opensumi/ide-core-node": "3.8.3-next-1745805174.0",
|
|
32
|
+
"@opensumi/ide-debug": "3.8.3-next-1745805174.0",
|
|
33
|
+
"@opensumi/ide-design": "3.8.3-next-1745805174.0",
|
|
34
|
+
"@opensumi/ide-editor": "3.8.3-next-1745805174.0",
|
|
35
|
+
"@opensumi/ide-file-search": "3.8.3-next-1745805174.0",
|
|
36
|
+
"@opensumi/ide-file-service": "3.8.3-next-1745805174.0",
|
|
37
|
+
"@opensumi/ide-main-layout": "3.8.3-next-1745805174.0",
|
|
38
|
+
"@opensumi/ide-markers": "3.8.3-next-1745805174.0",
|
|
39
|
+
"@opensumi/ide-monaco": "3.8.3-next-1745805174.0",
|
|
40
|
+
"@opensumi/ide-outline": "3.8.3-next-1745805174.0",
|
|
41
|
+
"@opensumi/ide-overlay": "3.8.3-next-1745805174.0",
|
|
42
|
+
"@opensumi/ide-preferences": "3.8.3-next-1745805174.0",
|
|
43
|
+
"@opensumi/ide-search": "3.8.3-next-1745805174.0",
|
|
44
|
+
"@opensumi/ide-terminal-next": "3.8.3-next-1745805174.0",
|
|
45
|
+
"@opensumi/ide-theme": "3.8.3-next-1745805174.0",
|
|
46
|
+
"@opensumi/ide-utils": "3.8.3-next-1745805174.0",
|
|
47
|
+
"@opensumi/ide-workspace": "3.8.3-next-1745805174.0",
|
|
48
48
|
"@xterm/xterm": "5.5.0",
|
|
49
49
|
"ai": "^4.1.45",
|
|
50
50
|
"ansi-regex": "^2.0.0",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"zod-to-json-schema": "^3.24.1"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
|
-
"@opensumi/ide-core-browser": "3.8.3-next-
|
|
64
|
+
"@opensumi/ide-core-browser": "3.8.3-next-1745805174.0"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "877aa8409727e39b0f8e992766b9bca893ba769c"
|
|
67
67
|
}
|
|
@@ -11,6 +11,7 @@ import { IMCPServerRegistry, TokenMCPServerRegistry } from '../types';
|
|
|
11
11
|
|
|
12
12
|
import { CodeEditorWithHighlight } from './ChatEditor';
|
|
13
13
|
import styles from './ChatToolRender.module.less';
|
|
14
|
+
import { ChatToolResult } from './ChatToolResult';
|
|
14
15
|
|
|
15
16
|
export const ChatToolRender = (props: { value: IChatToolContent['content']; messageId?: string }) => {
|
|
16
17
|
const { value, messageId } = props;
|
|
@@ -37,6 +38,7 @@ export const ChatToolRender = (props: { value: IChatToolContent['content']; mess
|
|
|
37
38
|
return { label: state || 'Unknown', icon: <Icon iconClass='codicon codicon-question' /> };
|
|
38
39
|
}
|
|
39
40
|
};
|
|
41
|
+
|
|
40
42
|
const getParsedArgs = () => {
|
|
41
43
|
try {
|
|
42
44
|
// TODO: 流式输出中function_call的参数还不完整,需要等待complete状态
|
|
@@ -88,7 +90,7 @@ export const ChatToolRender = (props: { value: IChatToolContent['content']; mess
|
|
|
88
90
|
{value?.result && (
|
|
89
91
|
<div className={styles.tool_result}>
|
|
90
92
|
<div className={styles.section_label}>{localize('ai.native.mcp.tool.results')}:</div>
|
|
91
|
-
<
|
|
93
|
+
<ChatToolResult result={value.result} relationId={uuid(4)} />
|
|
92
94
|
</div>
|
|
93
95
|
)}
|
|
94
96
|
</div>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
.result_container {
|
|
2
|
+
width: 100%;
|
|
3
|
+
margin: 8px 0;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.text_content {
|
|
7
|
+
margin: 8px 0;
|
|
8
|
+
width: 100%;
|
|
9
|
+
padding: 5px;
|
|
10
|
+
background-color: var(--editor-background);
|
|
11
|
+
color: var(--editor-foreground);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.image_content {
|
|
15
|
+
margin: 8px 0;
|
|
16
|
+
width: 100%;
|
|
17
|
+
display: flex;
|
|
18
|
+
justify-content: center;
|
|
19
|
+
align-items: center;
|
|
20
|
+
|
|
21
|
+
img {
|
|
22
|
+
max-width: 100%;
|
|
23
|
+
border-radius: 4px;
|
|
24
|
+
box-shadow: 0 2px 8px var(--widget-shadow);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import { localize } from '@opensumi/ide-core-common/lib/localize';
|
|
4
|
+
|
|
5
|
+
import { CodeEditorWithHighlight } from './ChatEditor';
|
|
6
|
+
import styles from './ChatToolResult.module.less';
|
|
7
|
+
|
|
8
|
+
interface ResultContent {
|
|
9
|
+
type: 'text' | 'image';
|
|
10
|
+
text?: string;
|
|
11
|
+
data?: string;
|
|
12
|
+
mimeType?: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface ChatToolResultProps {
|
|
16
|
+
result: string;
|
|
17
|
+
relationId?: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export const ChatToolResult: React.FC<ChatToolResultProps> = ({ result, relationId }) => {
|
|
21
|
+
const parseResult = React.useCallback((resultStr: string): ResultContent[] => {
|
|
22
|
+
try {
|
|
23
|
+
const parsed = JSON.parse(resultStr);
|
|
24
|
+
return parsed.content || [];
|
|
25
|
+
} catch (error) {
|
|
26
|
+
return [{ type: 'text', text: resultStr }];
|
|
27
|
+
}
|
|
28
|
+
}, []);
|
|
29
|
+
|
|
30
|
+
const renderContent = React.useCallback(
|
|
31
|
+
(content: ResultContent, index: number) => {
|
|
32
|
+
switch (content.type) {
|
|
33
|
+
case 'text':
|
|
34
|
+
return content.text ? (
|
|
35
|
+
<div key={`text-${index}`} className={styles.text_content}>
|
|
36
|
+
<CodeEditorWithHighlight input={content.text} language={'text'} relationId={relationId || ''} />
|
|
37
|
+
</div>
|
|
38
|
+
) : null;
|
|
39
|
+
case 'image':
|
|
40
|
+
return content.data ? (
|
|
41
|
+
<div key={`image-${index}`} className={styles.image_content}>
|
|
42
|
+
<img
|
|
43
|
+
src={`data:${content.mimeType || 'image/png'};base64,${content.data}`}
|
|
44
|
+
alt={localize('aiNative.chat.result.image')}
|
|
45
|
+
/>
|
|
46
|
+
</div>
|
|
47
|
+
) : null;
|
|
48
|
+
default:
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
[relationId],
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
const contents = React.useMemo(() => parseResult(result), [result, parseResult]);
|
|
56
|
+
|
|
57
|
+
if (!contents.length) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return (
|
|
62
|
+
<div className={styles.result_container}>{contents.map((content, index) => renderContent(content, index))}</div>
|
|
63
|
+
);
|
|
64
|
+
};
|