@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.
@@ -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;AAQnE,eAAO,MAAM,cAAc,UAAW;IAAE,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,6BAkF/F,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(ChatEditor_1.CodeEditorWithHighlight, { input: value.result, language: 'json', relationId: (0, ide_core_common_1.uuid)(4) }))))));
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":"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"}
1
+ {"version":3,"file":"ChatToolRender.js","sourceRoot":"","sources":["../../../src/browser/components/ChatToolRender.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface ChatToolResultProps {
3
+ result: string;
4
+ relationId?: string;
5
+ }
6
+ export declare const ChatToolResult: React.FC<ChatToolResultProps>;
7
+ export {};
8
+ //# sourceMappingURL=ChatToolResult.d.ts.map
@@ -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-1745568063.0",
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-1745568063.0",
28
- "@opensumi/ide-components": "3.8.3-next-1745568063.0",
29
- "@opensumi/ide-connection": "3.8.3-next-1745568063.0",
30
- "@opensumi/ide-core-common": "3.8.3-next-1745568063.0",
31
- "@opensumi/ide-core-node": "3.8.3-next-1745568063.0",
32
- "@opensumi/ide-debug": "3.8.3-next-1745568063.0",
33
- "@opensumi/ide-design": "3.8.3-next-1745568063.0",
34
- "@opensumi/ide-editor": "3.8.3-next-1745568063.0",
35
- "@opensumi/ide-file-search": "3.8.3-next-1745568063.0",
36
- "@opensumi/ide-file-service": "3.8.3-next-1745568063.0",
37
- "@opensumi/ide-main-layout": "3.8.3-next-1745568063.0",
38
- "@opensumi/ide-markers": "3.8.3-next-1745568063.0",
39
- "@opensumi/ide-monaco": "3.8.3-next-1745568063.0",
40
- "@opensumi/ide-outline": "3.8.3-next-1745568063.0",
41
- "@opensumi/ide-overlay": "3.8.3-next-1745568063.0",
42
- "@opensumi/ide-preferences": "3.8.3-next-1745568063.0",
43
- "@opensumi/ide-search": "3.8.3-next-1745568063.0",
44
- "@opensumi/ide-terminal-next": "3.8.3-next-1745568063.0",
45
- "@opensumi/ide-theme": "3.8.3-next-1745568063.0",
46
- "@opensumi/ide-utils": "3.8.3-next-1745568063.0",
47
- "@opensumi/ide-workspace": "3.8.3-next-1745568063.0",
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-1745568063.0"
64
+ "@opensumi/ide-core-browser": "3.8.3-next-1745805174.0"
65
65
  },
66
- "gitHead": "b35515eda0454d220b67c2a27e78f4d252dbc57b"
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
- <CodeEditorWithHighlight input={value.result} language={'json'} relationId={uuid(4)} />
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
+ };