@opensumi/ide-ai-native 2.26.9-rc-1695091570.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/LICENSE +21 -0
- package/lib/browser/ai-chat.contribution.d.ts +26 -0
- package/lib/browser/ai-chat.contribution.d.ts.map +1 -0
- package/lib/browser/ai-chat.contribution.js +227 -0
- package/lib/browser/ai-chat.contribution.js.map +1 -0
- package/lib/browser/ai-chat.module.less +174 -0
- package/lib/browser/ai-chat.service.d.ts +30 -0
- package/lib/browser/ai-chat.service.d.ts.map +1 -0
- package/lib/browser/ai-chat.service.js +134 -0
- package/lib/browser/ai-chat.service.js.map +1 -0
- package/lib/browser/ai-chat.view.d.ts +4 -0
- package/lib/browser/ai-chat.view.d.ts.map +1 -0
- package/lib/browser/ai-chat.view.js +305 -0
- package/lib/browser/ai-chat.view.js.map +1 -0
- package/lib/browser/ai-editor.contribution.d.ts +24 -0
- package/lib/browser/ai-editor.contribution.d.ts.map +1 -0
- package/lib/browser/ai-editor.contribution.js +419 -0
- package/lib/browser/ai-editor.contribution.js.map +1 -0
- package/lib/browser/ai-project/generate.service.d.ts +31 -0
- package/lib/browser/ai-project/generate.service.d.ts.map +1 -0
- package/lib/browser/ai-project/generate.service.js +453 -0
- package/lib/browser/ai-project/generate.service.js.map +1 -0
- package/lib/browser/ai-sumi/sumi.service.d.ts +11 -0
- package/lib/browser/ai-sumi/sumi.service.d.ts.map +1 -0
- package/lib/browser/ai-sumi/sumi.service.js +64 -0
- package/lib/browser/ai-sumi/sumi.service.js.map +1 -0
- package/lib/browser/code-widget/ai-code-document.provider.d.ts +10 -0
- package/lib/browser/code-widget/ai-code-document.provider.d.ts.map +1 -0
- package/lib/browser/code-widget/ai-code-document.provider.js +26 -0
- package/lib/browser/code-widget/ai-code-document.provider.js.map +1 -0
- package/lib/browser/code-widget/ai-code-widget.d.ts +20 -0
- package/lib/browser/code-widget/ai-code-widget.d.ts.map +1 -0
- package/lib/browser/code-widget/ai-code-widget.js +164 -0
- package/lib/browser/code-widget/ai-code-widget.js.map +1 -0
- package/lib/browser/components/AIImprove.d.ts +9 -0
- package/lib/browser/components/AIImprove.d.ts.map +1 -0
- package/lib/browser/components/AIImprove.js +34 -0
- package/lib/browser/components/AIImprove.js.map +1 -0
- package/lib/browser/components/AIInput.d.ts +5 -0
- package/lib/browser/components/AIInput.d.ts.map +1 -0
- package/lib/browser/components/AIInput.js +21 -0
- package/lib/browser/components/AIInput.js.map +1 -0
- package/lib/browser/components/ChatEditor.d.ts +5 -0
- package/lib/browser/components/ChatEditor.d.ts.map +1 -0
- package/lib/browser/components/ChatEditor.js +85 -0
- package/lib/browser/components/ChatEditor.js.map +1 -0
- package/lib/browser/components/ChatInput.d.ts +6 -0
- package/lib/browser/components/ChatInput.d.ts.map +1 -0
- package/lib/browser/components/ChatInput.js +127 -0
- package/lib/browser/components/ChatInput.js.map +1 -0
- package/lib/browser/components/ChatMoreActions.d.ts +5 -0
- package/lib/browser/components/ChatMoreActions.d.ts.map +1 -0
- package/lib/browser/components/ChatMoreActions.js +26 -0
- package/lib/browser/components/ChatMoreActions.js.map +1 -0
- package/lib/browser/components/Thinking.d.ts +3 -0
- package/lib/browser/components/Thinking.d.ts.map +1 -0
- package/lib/browser/components/Thinking.js +19 -0
- package/lib/browser/components/Thinking.js.map +1 -0
- package/lib/browser/components/components.module.less +259 -0
- package/lib/browser/components/lineVertical.d.ts +4 -0
- package/lib/browser/components/lineVertical.d.ts.map +1 -0
- package/lib/browser/components/lineVertical.js +22 -0
- package/lib/browser/components/lineVertical.js.map +1 -0
- package/lib/browser/content-widget/ai-content-widget.d.ts +38 -0
- package/lib/browser/content-widget/ai-content-widget.d.ts.map +1 -0
- package/lib/browser/content-widget/ai-content-widget.js +97 -0
- package/lib/browser/content-widget/ai-content-widget.js.map +1 -0
- package/lib/browser/content-widget/ai-inline-chat-panel.d.ts +6 -0
- package/lib/browser/content-widget/ai-inline-chat-panel.d.ts.map +1 -0
- package/lib/browser/content-widget/ai-inline-chat-panel.js +108 -0
- package/lib/browser/content-widget/ai-inline-chat-panel.js.map +1 -0
- package/lib/browser/content-widget/ai-inline-chat.module.less +74 -0
- package/lib/browser/content-widget/ai-inline-chat.service.d.ts +23 -0
- package/lib/browser/content-widget/ai-inline-chat.service.d.ts.map +1 -0
- package/lib/browser/content-widget/ai-inline-chat.service.js +47 -0
- package/lib/browser/content-widget/ai-inline-chat.service.js.map +1 -0
- package/lib/browser/diff-widget/ai-diff-document.provider.d.ts +10 -0
- package/lib/browser/diff-widget/ai-diff-document.provider.d.ts.map +1 -0
- package/lib/browser/diff-widget/ai-diff-document.provider.js +26 -0
- package/lib/browser/diff-widget/ai-diff-document.provider.js.map +1 -0
- package/lib/browser/diff-widget/ai-diff-widget.d.ts +20 -0
- package/lib/browser/diff-widget/ai-diff-widget.d.ts.map +1 -0
- package/lib/browser/diff-widget/ai-diff-widget.js +158 -0
- package/lib/browser/diff-widget/ai-diff-widget.js.map +1 -0
- package/lib/browser/index.d.ts +12 -0
- package/lib/browser/index.d.ts.map +1 -0
- package/lib/browser/index.js +84 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/browser/inline-completions/constants.d.ts +62 -0
- package/lib/browser/inline-completions/constants.d.ts.map +1 -0
- package/lib/browser/inline-completions/constants.js +69 -0
- package/lib/browser/inline-completions/constants.js.map +1 -0
- package/lib/browser/inline-completions/provider.d.ts +27 -0
- package/lib/browser/inline-completions/provider.d.ts.map +1 -0
- package/lib/browser/inline-completions/provider.js +63 -0
- package/lib/browser/inline-completions/provider.js.map +1 -0
- package/lib/browser/override/ai-editor-tab.service.d.ts +6 -0
- package/lib/browser/override/ai-editor-tab.service.d.ts.map +1 -0
- package/lib/browser/override/ai-editor-tab.service.js +22 -0
- package/lib/browser/override/ai-editor-tab.service.js.map +1 -0
- package/lib/browser/override/ai-marker.service.d.ts +11 -0
- package/lib/browser/override/ai-marker.service.d.ts.map +1 -0
- package/lib/browser/override/ai-marker.service.js +55 -0
- package/lib/browser/override/ai-marker.service.js.map +1 -0
- package/lib/browser/override/global.styles.less +268 -0
- package/lib/browser/override/layout/layout-config.d.ts +6 -0
- package/lib/browser/override/layout/layout-config.d.ts.map +1 -0
- package/lib/browser/override/layout/layout-config.js +17 -0
- package/lib/browser/override/layout/layout-config.js.map +1 -0
- package/lib/browser/override/layout/layout.module.less +7 -0
- package/lib/browser/override/layout/main-slot-renderer.d.ts +4 -0
- package/lib/browser/override/layout/main-slot-renderer.d.ts.map +1 -0
- package/lib/browser/override/layout/main-slot-renderer.js +22 -0
- package/lib/browser/override/layout/main-slot-renderer.js.map +1 -0
- package/lib/browser/override/layout/menu-bar/menu-bar.contribution.d.ts +8 -0
- package/lib/browser/override/layout/menu-bar/menu-bar.contribution.d.ts.map +1 -0
- package/lib/browser/override/layout/menu-bar/menu-bar.contribution.js +32 -0
- package/lib/browser/override/layout/menu-bar/menu-bar.contribution.js.map +1 -0
- package/lib/browser/override/layout/menu-bar/menu-bar.module.less +41 -0
- package/lib/browser/override/layout/menu-bar/menu-bar.view.d.ts +3 -0
- package/lib/browser/override/layout/menu-bar/menu-bar.view.d.ts.map +1 -0
- package/lib/browser/override/layout/menu-bar/menu-bar.view.js +62 -0
- package/lib/browser/override/layout/menu-bar/menu-bar.view.js.map +1 -0
- package/lib/browser/override/layout/tabbar.view.d.ts +17 -0
- package/lib/browser/override/layout/tabbar.view.d.ts.map +1 -0
- package/lib/browser/override/layout/tabbar.view.js +38 -0
- package/lib/browser/override/layout/tabbar.view.js.map +1 -0
- package/lib/browser/override/override.module.less +32 -0
- package/lib/browser/override/theme/default-theme.d.ts +315 -0
- package/lib/browser/override/theme/default-theme.d.ts.map +1 -0
- package/lib/browser/override/theme/default-theme.js +821 -0
- package/lib/browser/override/theme/default-theme.js.map +1 -0
- package/lib/browser/run/run.service.d.ts +52 -0
- package/lib/browser/run/run.service.d.ts.map +1 -0
- package/lib/browser/run/run.service.js +176 -0
- package/lib/browser/run/run.service.js.map +1 -0
- package/lib/common/command.d.ts +17 -0
- package/lib/common/command.d.ts.map +1 -0
- package/lib/common/command.js +21 -0
- package/lib/common/command.js.map +1 -0
- package/lib/common/index.d.ts +37 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +22 -0
- package/lib/common/index.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -0
- package/lib/node/index.d.ts +10 -0
- package/lib/node/index.d.ts.map +1 -0
- package/lib/node/index.js +32 -0
- package/lib/node/index.js.map +1 -0
- package/package.json +38 -0
- package/src/browser/ai-chat.contribution.ts +294 -0
- package/src/browser/ai-chat.module.less +174 -0
- package/src/browser/ai-chat.service.ts +152 -0
- package/src/browser/ai-chat.view.tsx +421 -0
- package/src/browser/ai-editor.contribution.ts +521 -0
- package/src/browser/ai-project/generate.service.ts +505 -0
- package/src/browser/ai-sumi/sumi.service.ts +65 -0
- package/src/browser/code-widget/ai-code-document.provider.ts +22 -0
- package/src/browser/code-widget/ai-code-widget.tsx +202 -0
- package/src/browser/components/AIImprove.tsx +45 -0
- package/src/browser/components/AIInput.tsx +30 -0
- package/src/browser/components/ChatEditor.tsx +129 -0
- package/src/browser/components/ChatInput.tsx +197 -0
- package/src/browser/components/ChatMoreActions.tsx +33 -0
- package/src/browser/components/Thinking.tsx +23 -0
- package/src/browser/components/components.module.less +259 -0
- package/src/browser/components/lineVertical.tsx +19 -0
- package/src/browser/content-widget/ai-content-widget.tsx +132 -0
- package/src/browser/content-widget/ai-inline-chat-panel.tsx +154 -0
- package/src/browser/content-widget/ai-inline-chat.module.less +74 -0
- package/src/browser/content-widget/ai-inline-chat.service.ts +46 -0
- package/src/browser/diff-widget/ai-diff-document.provider.ts +22 -0
- package/src/browser/diff-widget/ai-diff-widget.tsx +196 -0
- package/src/browser/index.ts +91 -0
- package/src/browser/inline-completions/constants.ts +108 -0
- package/src/browser/inline-completions/provider.ts +55 -0
- package/src/browser/override/ai-editor-tab.service.tsx +22 -0
- package/src/browser/override/ai-marker.service.tsx +55 -0
- package/src/browser/override/global.styles.less +268 -0
- package/src/browser/override/layout/layout-config.ts +21 -0
- package/src/browser/override/layout/layout.module.less +7 -0
- package/src/browser/override/layout/main-slot-renderer.tsx +62 -0
- package/src/browser/override/layout/menu-bar/menu-bar.contribution.tsx +28 -0
- package/src/browser/override/layout/menu-bar/menu-bar.module.less +41 -0
- package/src/browser/override/layout/menu-bar/menu-bar.view.tsx +92 -0
- package/src/browser/override/layout/tabbar.view.tsx +99 -0
- package/src/browser/override/override.module.less +32 -0
- package/src/browser/override/theme/default-theme.ts +818 -0
- package/src/browser/run/run.service.ts +183 -0
- package/src/common/command.ts +21 -0
- package/src/common/index.ts +39 -0
- package/src/index.ts +1 -0
- package/src/node/index.ts +24 -0
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AiChatView = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
/* eslint-disable no-console */
|
|
6
|
+
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
7
|
+
const React = tslib_1.__importStar(require("react"));
|
|
8
|
+
// @ts-ignore
|
|
9
|
+
const react_chat_elements_1 = require("react-chat-elements");
|
|
10
|
+
const index_1 = require("@opensumi/ide-components/lib/markdown/index");
|
|
11
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
12
|
+
const components_1 = require("@opensumi/ide-core-browser/lib/components");
|
|
13
|
+
const constants_1 = require("@opensumi/ide-core-browser/lib/layout/constants");
|
|
14
|
+
const command_opener_1 = require("@opensumi/ide-core-browser/lib/opener/command-opener");
|
|
15
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
16
|
+
require("react-chat-elements/dist/main.css");
|
|
17
|
+
const common_1 = require("../common");
|
|
18
|
+
const styles = tslib_1.__importStar(require("./ai-chat.module.less"));
|
|
19
|
+
const ai_chat_service_1 = require("./ai-chat.service");
|
|
20
|
+
const generate_service_1 = require("./ai-project/generate.service");
|
|
21
|
+
const sumi_service_1 = require("./ai-sumi/sumi.service");
|
|
22
|
+
const ChatEditor_1 = require("./components/ChatEditor");
|
|
23
|
+
const ChatInput_1 = require("./components/ChatInput");
|
|
24
|
+
const ChatMoreActions_1 = require("./components/ChatMoreActions");
|
|
25
|
+
const lineVertical_1 = require("./components/lineVertical");
|
|
26
|
+
const Thinking_1 = require("./components/Thinking");
|
|
27
|
+
const run_service_1 = require("./run/run.service");
|
|
28
|
+
const AI_AVATAR = 'https://mdn.alipayobjects.com/huamei_htww6h/afts/img/A*wv3HTok2c58AAAAAAAAAAAAADhl8AQ/original';
|
|
29
|
+
const createMessage = (position, title, text) => ({
|
|
30
|
+
position,
|
|
31
|
+
type: 'text',
|
|
32
|
+
title,
|
|
33
|
+
text,
|
|
34
|
+
className: position === 'left' ? 'rce-ai-msg' : 'rce-user-msg',
|
|
35
|
+
});
|
|
36
|
+
const createMessageByAI = (text) => createMessage('left', '', text);
|
|
37
|
+
const AI_NAME = 'AI 研发助手';
|
|
38
|
+
const ME_NAME = '';
|
|
39
|
+
const AiChatView = () => {
|
|
40
|
+
const aiChatService = (0, ide_core_browser_1.useInjectable)(ai_chat_service_1.AiChatService);
|
|
41
|
+
const aiProjectGenerateService = (0, ide_core_browser_1.useInjectable)(generate_service_1.AiProjectGenerateService);
|
|
42
|
+
const aiSumiService = (0, ide_core_browser_1.useInjectable)(sumi_service_1.AiSumiService);
|
|
43
|
+
const aiGPTBackService = (0, ide_core_browser_1.useInjectable)(common_1.AiGPTBackSerivcePath);
|
|
44
|
+
const aiRunService = (0, ide_core_browser_1.useInjectable)(run_service_1.AiRunService);
|
|
45
|
+
const opener = (0, ide_core_browser_1.useInjectable)(command_opener_1.CommandOpener);
|
|
46
|
+
const appConfig = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.AppConfig);
|
|
47
|
+
const containerRef = React.useRef(null);
|
|
48
|
+
const [messageListData, setMessageListData] = React.useState([]);
|
|
49
|
+
const [loading, setLoading] = React.useState(false);
|
|
50
|
+
const [, updateState] = React.useState();
|
|
51
|
+
const aiGenerateInfo = localStorage.getItem('ai-generate') && JSON.parse(localStorage.getItem('ai-generate'));
|
|
52
|
+
const generateProject = React.useCallback(async (messageList) => {
|
|
53
|
+
await aiProjectGenerateService.clearWorkspace();
|
|
54
|
+
const languageReply = `项目语言为:${aiGenerateInfo.language}\n使用框架:${aiGenerateInfo.framework}`;
|
|
55
|
+
messageList.unshift(createMessageByAI(React.createElement(AiReply, { text: languageReply, immediately: true })));
|
|
56
|
+
setMessageListData([...messageList]);
|
|
57
|
+
const filePathList = await aiProjectGenerateService.generateProjectStructure(aiGenerateInfo);
|
|
58
|
+
messageList.splice(-1, 0, createMessageByAI(React.createElement(AiReply, { text: `项目结构为:\n${filePathList.join('\n')}`, immediately: true })));
|
|
59
|
+
setMessageListData([...messageList]);
|
|
60
|
+
await aiProjectGenerateService.generateFile(filePathList, aiGenerateInfo, (file) => {
|
|
61
|
+
messageList.splice(-1, 0, createMessageByAI(React.createElement(AiReply, { text: `正在生成文件:${file}` })));
|
|
62
|
+
setMessageListData([...messageList]);
|
|
63
|
+
});
|
|
64
|
+
messageList.pop();
|
|
65
|
+
setMessageListData([...messageList]);
|
|
66
|
+
localStorage.removeItem('ai-generate');
|
|
67
|
+
}, []);
|
|
68
|
+
const InitMsgComponent = () => {
|
|
69
|
+
const lists = [
|
|
70
|
+
// { icon: getIcon('plus'), text: '生成 Java 快排算法' },
|
|
71
|
+
// { icon: getIcon('branches'), text: '提交代码' },
|
|
72
|
+
// { icon: getIcon('open-changes'), text: '创建合并请求' },
|
|
73
|
+
// { icon: getIcon('scm'), text: '触发流水线' },
|
|
74
|
+
];
|
|
75
|
+
if (aiGenerateInfo) {
|
|
76
|
+
return (React.createElement("div", null,
|
|
77
|
+
React.createElement("span", { style: { display: 'block' } }, "\u9879\u76EE\u751F\u6210\u4E2D\uFF0C\u8BF7\u7A0D\u540E....")));
|
|
78
|
+
}
|
|
79
|
+
return (React.createElement("div", null,
|
|
80
|
+
React.createElement("span", { style: { display: 'block' } }, "\u55E8\uFF0C\u6211\u662F\u60A8\u7684\u4E13\u5C5E AI \u5C0F\u52A9\u624B\uFF0C\u6211\u5728\u8FD9\u91CC\u56DE\u7B54\u6709\u5173\u4EE3\u7801\u7684\u95EE\u9898\uFF0C\u5E76\u5E2E\u52A9\u60A8\u601D\u8003\uFF01"),
|
|
81
|
+
React.createElement("br", null),
|
|
82
|
+
React.createElement("span", { style: { display: 'block' } }, "\u60A8\u53EF\u4EE5\u63D0\u95EE\u6211\u4E00\u4E9B\u5173\u4E8E\u4EE3\u7801\u7684\u95EE\u9898"),
|
|
83
|
+
React.createElement("br", null),
|
|
84
|
+
React.createElement("div", { style: { display: 'flex', flexDirection: 'column' } }, lists.map((data) => (React.createElement("a", { href: 'javascript:void(0)', style: { marginBottom: '8px' }, onClick: () => {
|
|
85
|
+
aiChatService.launchChatMessage({ message: data.text });
|
|
86
|
+
} },
|
|
87
|
+
React.createElement(components_1.Icon, { className: data.icon, style: { color: 'inherit', marginRight: '4px' } }),
|
|
88
|
+
React.createElement("span", null, data.text)))))));
|
|
89
|
+
};
|
|
90
|
+
const firstMsg = React.useMemo(() => createMessageByAI(React.createElement(InitMsgComponent, null)), [InitMsgComponent]);
|
|
91
|
+
React.useEffect(() => {
|
|
92
|
+
if (aiGenerateInfo) {
|
|
93
|
+
generateProject([firstMsg]);
|
|
94
|
+
}
|
|
95
|
+
else if (messageListData && messageListData.length === 0) {
|
|
96
|
+
setMessageListData([firstMsg]);
|
|
97
|
+
}
|
|
98
|
+
const dispose = aiChatService.onChatMessageLaunch(async (message) => {
|
|
99
|
+
await handleSend(message);
|
|
100
|
+
});
|
|
101
|
+
// aiChatService.removeOldExtension();
|
|
102
|
+
return () => dispose.dispose();
|
|
103
|
+
}, []);
|
|
104
|
+
const handleSend = React.useCallback(async (value) => {
|
|
105
|
+
const { message, prompt } = value;
|
|
106
|
+
const preMessagelist = messageListData;
|
|
107
|
+
const preInputValue = message;
|
|
108
|
+
if (containerRef && containerRef.current) {
|
|
109
|
+
containerRef.current.scrollTop = Number.MAX_SAFE_INTEGER;
|
|
110
|
+
}
|
|
111
|
+
setLoading(true);
|
|
112
|
+
preMessagelist.push(createMessage('right', ME_NAME, preInputValue));
|
|
113
|
+
setMessageListData(preMessagelist);
|
|
114
|
+
// 检查前缀 aiSearchKey
|
|
115
|
+
if (typeof preInputValue === 'string') {
|
|
116
|
+
let aiMessage;
|
|
117
|
+
const userInput = await aiChatService.switchAIService(preInputValue, prompt);
|
|
118
|
+
if (userInput.type === common_1.AISerivceType.Search || userInput.type === common_1.AISerivceType.SearchCode) {
|
|
119
|
+
aiMessage = await AISearch(userInput, aiGPTBackService);
|
|
120
|
+
}
|
|
121
|
+
else if (userInput.type === common_1.AISerivceType.Sumi) {
|
|
122
|
+
aiMessage = await aiSumiService.message(userInput.message);
|
|
123
|
+
aiMessage = await AIWithCommandReply(aiMessage, opener);
|
|
124
|
+
}
|
|
125
|
+
else if (userInput.type === common_1.AISerivceType.GPT) {
|
|
126
|
+
aiMessage = await aiChatService.messageWithGPT(userInput.message);
|
|
127
|
+
aiMessage = await AIChatGPTReply(aiMessage);
|
|
128
|
+
}
|
|
129
|
+
else if (userInput.type === common_1.AISerivceType.Explain) {
|
|
130
|
+
aiMessage = await aiChatService.messageWithGPT(userInput.message);
|
|
131
|
+
aiMessage = await AIChatGPTReply(aiMessage);
|
|
132
|
+
}
|
|
133
|
+
else if (userInput.type === common_1.AISerivceType.Run) {
|
|
134
|
+
aiMessage = await aiChatService.aiBackService.aiAntGlm(userInput.message);
|
|
135
|
+
aiMessage = await AIChatRunReply(aiMessage.data, aiRunService);
|
|
136
|
+
}
|
|
137
|
+
if (aiMessage) {
|
|
138
|
+
preMessagelist.push(aiMessage);
|
|
139
|
+
setMessageListData(preMessagelist);
|
|
140
|
+
updateState({});
|
|
141
|
+
if (containerRef && containerRef.current) {
|
|
142
|
+
containerRef.current.scrollTop = Number.MAX_SAFE_INTEGER;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
setLoading(false);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
}, [messageListData, containerRef]);
|
|
149
|
+
const layoutViewSize = React.useMemo(() => {
|
|
150
|
+
return appConfig.layoutViewSize || constants_1.LAYOUT_VIEW_SIZE;
|
|
151
|
+
}, [appConfig]);
|
|
152
|
+
const viewHeight = React.useMemo(() => `calc(100vh - ${layoutViewSize.MENUBAR_HEIGHT + layoutViewSize.STATUSBAR_HEIGHT}px)`, []);
|
|
153
|
+
return (React.createElement("div", { className: styles.ai_chat_view, style: { height: viewHeight } },
|
|
154
|
+
React.createElement("div", { className: styles.header_container },
|
|
155
|
+
React.createElement("div", { className: styles.left },
|
|
156
|
+
React.createElement("div", { className: styles.ai_avatar_icon },
|
|
157
|
+
React.createElement(react_chat_elements_1.Avatar, { src: AI_AVATAR, className: styles.ai_chat_avatar_icon })),
|
|
158
|
+
React.createElement("span", { className: styles.title }, AI_NAME),
|
|
159
|
+
React.createElement(lineVertical_1.LineVertical, null),
|
|
160
|
+
React.createElement("span", { className: styles.des }, "Chat")),
|
|
161
|
+
React.createElement("div", { className: styles.right },
|
|
162
|
+
React.createElement(components_1.Popover, { id: 'ai-chat-header-clear', title: '\u6E05\u7A7A' },
|
|
163
|
+
React.createElement(components_1.Icon, { className: (0, ide_core_browser_1.getIcon)('clear') })),
|
|
164
|
+
React.createElement(components_1.Popover, { id: 'ai-chat-header-close', title: '\u5173\u95ED' },
|
|
165
|
+
React.createElement(components_1.Icon, { className: (0, ide_core_browser_1.getIcon)('close') })))),
|
|
166
|
+
React.createElement("div", { className: styles.body_container },
|
|
167
|
+
React.createElement("div", { className: styles.left_bar },
|
|
168
|
+
React.createElement("div", { className: styles.chat_container, ref: containerRef },
|
|
169
|
+
React.createElement(react_chat_elements_1.MessageList, { className: styles.message_list, lockable: true, toBottomHeight: '100%',
|
|
170
|
+
// @ts-ignore
|
|
171
|
+
dataSource: messageListData }),
|
|
172
|
+
loading && (React.createElement("div", { className: styles.chat_loading_msg_box },
|
|
173
|
+
React.createElement(react_chat_elements_1.SystemMessage, { title: AI_NAME, className: styles.smsg,
|
|
174
|
+
// @ts-ignore
|
|
175
|
+
text: React.createElement(Thinking_1.Thinking, null) })))),
|
|
176
|
+
React.createElement(ChatInput_1.ChatInput, { onSend: (value) => handleSend({ message: value }) })),
|
|
177
|
+
React.createElement("div", { className: styles.right_bar },
|
|
178
|
+
React.createElement("ul", { className: styles.chat_list },
|
|
179
|
+
React.createElement("li", { className: styles.active_chat_bar },
|
|
180
|
+
React.createElement(react_chat_elements_1.Avatar, { src: 'https://mdn.alipayobjects.com/huamei_htww6h/afts/img/A*CfffRK50dpQAAAAAAAAAAAAADhl8AQ/original', className: styles.ai_chat_avatar_icon })))))));
|
|
181
|
+
};
|
|
182
|
+
exports.AiChatView = AiChatView;
|
|
183
|
+
// AI 回复组件,就是能一个字一个出现的那种效果
|
|
184
|
+
const AiReply = ({ text, endNode = React.createElement(React.Fragment, null), immediately = false }) => {
|
|
185
|
+
const [currentIndex, setCurrentIndex] = React.useState(0);
|
|
186
|
+
const [currentText, setCurrentText] = React.useState('');
|
|
187
|
+
React.useEffect(() => {
|
|
188
|
+
if (currentIndex < text.length) {
|
|
189
|
+
if (immediately) {
|
|
190
|
+
setCurrentText(text);
|
|
191
|
+
setCurrentIndex(text.length);
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
const timeoutId = setTimeout(() => {
|
|
195
|
+
if (timeoutId) {
|
|
196
|
+
clearTimeout(timeoutId);
|
|
197
|
+
}
|
|
198
|
+
setCurrentText(text.slice(0, currentIndex + 1));
|
|
199
|
+
setCurrentIndex(currentIndex + 1);
|
|
200
|
+
}, Math.floor(Math.random() * 41) + 10);
|
|
201
|
+
return () => clearTimeout(timeoutId);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}, [currentIndex, text]);
|
|
205
|
+
return (React.createElement("div", { style: { whiteSpace: 'break-spaces' } }, currentIndex === text.length ? (React.createElement(React.Fragment, null,
|
|
206
|
+
currentText,
|
|
207
|
+
endNode)) : (currentText)));
|
|
208
|
+
};
|
|
209
|
+
const AISearch = async (input, aiGPTBackService) => {
|
|
210
|
+
try {
|
|
211
|
+
const result = await aiGPTBackService.aiSearchRequest(input.message, input.type === common_1.AISerivceType.SearchCode ? 'code' : 'overall');
|
|
212
|
+
const { responseText, urlMessage } = result;
|
|
213
|
+
console.log('ai search: >>>> ', result);
|
|
214
|
+
const aiMessage = createMessageByAI(React.createElement(ChatMoreActions_1.ChatMoreActions, null,
|
|
215
|
+
React.createElement("div", { style: { display: 'flex', flexDirection: 'column' } },
|
|
216
|
+
React.createElement("div", null,
|
|
217
|
+
React.createElement(ChatEditor_1.CodeBlockWrapper, { text: responseText })),
|
|
218
|
+
React.createElement("div", { style: { whiteSpace: 'pre-wrap' } },
|
|
219
|
+
React.createElement(index_1.Markdown, { value: urlMessage })))));
|
|
220
|
+
return aiMessage;
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
console.log('/search: error >>>>>', error);
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
// 带有代码的 AI 回复组件
|
|
227
|
+
const AIChatGPTReply = async (input) => {
|
|
228
|
+
try {
|
|
229
|
+
console.log('ai chat gpt reply: >>>> ', input);
|
|
230
|
+
const aiMessage = createMessageByAI(React.createElement(ChatMoreActions_1.ChatMoreActions, null,
|
|
231
|
+
React.createElement(ChatEditor_1.CodeBlockWrapper, { text: input })));
|
|
232
|
+
return aiMessage;
|
|
233
|
+
}
|
|
234
|
+
catch (error) {
|
|
235
|
+
console.log('/chat gpt reply: error >>>>>', error);
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
// run 的 AI 回复组件
|
|
239
|
+
const AIChatRunReply = async (input, aiRunService) => {
|
|
240
|
+
try {
|
|
241
|
+
console.log('ai chat run reply: >>>> ', input);
|
|
242
|
+
const regex = /"(\S+)"/s;
|
|
243
|
+
const value = regex.exec(input);
|
|
244
|
+
if (!value) {
|
|
245
|
+
return createMessageByAI('未找到合适的启动命令,请重试');
|
|
246
|
+
}
|
|
247
|
+
;
|
|
248
|
+
const [, command] = value;
|
|
249
|
+
const configuration = {
|
|
250
|
+
name: `Run Tnpm ${command}`,
|
|
251
|
+
type: 'node',
|
|
252
|
+
request: 'launch',
|
|
253
|
+
runtimeExecutable: 'tnpm',
|
|
254
|
+
runtimeArgs: [
|
|
255
|
+
'run',
|
|
256
|
+
`${command}`,
|
|
257
|
+
],
|
|
258
|
+
cwd: '\${workspaceFolder}',
|
|
259
|
+
console: 'integratedTerminal',
|
|
260
|
+
};
|
|
261
|
+
const launchContent = `
|
|
262
|
+
根据您的项目类型,已为您找到合适的项目启动运行命令
|
|
263
|
+
以下是 launch.json 的运行命令配置
|
|
264
|
+
\`\`\`json
|
|
265
|
+
${JSON.stringify(configuration, undefined, 2)}
|
|
266
|
+
\`\`\``;
|
|
267
|
+
const aiMessage = createMessageByAI(React.createElement(ChatMoreActions_1.ChatMoreActions, null,
|
|
268
|
+
React.createElement(ChatEditor_1.CodeBlockWrapper, { text: launchContent }),
|
|
269
|
+
React.createElement(components_1.Button, { onClick: () => aiRunService.addRunConfiguration(configuration) }, "\u6DFB\u52A0\u8BE5\u914D\u7F6E\u5E76\u518D\u6B21\u6267\u884C run")));
|
|
270
|
+
return aiMessage;
|
|
271
|
+
}
|
|
272
|
+
catch (error) {
|
|
273
|
+
console.log('/chat run reply: error >>>>>', error);
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
// 带有命令按钮的 AI 回复
|
|
277
|
+
const AIWithCommandReply = async (command, opener) => {
|
|
278
|
+
try {
|
|
279
|
+
console.log('ai command reply: >>>> ', command);
|
|
280
|
+
if (!command) {
|
|
281
|
+
return createMessageByAI('未找到合适的功能');
|
|
282
|
+
}
|
|
283
|
+
const { labelLocalized, label, delegate, id } = command;
|
|
284
|
+
const aiMessage = createMessageByAI(React.createElement(ChatMoreActions_1.ChatMoreActions, null,
|
|
285
|
+
React.createElement("div", { style: { display: 'flex', flexDirection: 'column', width: '100%' } },
|
|
286
|
+
React.createElement("div", null,
|
|
287
|
+
"\u5DF2\u5728\u7CFB\u7EDF\u5185\u627E\u5230\u9002\u5408\u529F\u80FD: ",
|
|
288
|
+
(labelLocalized === null || labelLocalized === void 0 ? void 0 : labelLocalized.localized) || label,
|
|
289
|
+
"\uFF0C\u53EF\u4EE5\u6309\u4EE5\u4E0B\u6B65\u9AA4\u5C1D\u8BD5\uFF1A"),
|
|
290
|
+
React.createElement("ol", { style: { margin: '8px 0' } },
|
|
291
|
+
React.createElement("li", { style: { listStyle: 'inherit' } },
|
|
292
|
+
"\u6253\u5F00\u547D\u4EE4\u9762\u677F\uFF1A(",
|
|
293
|
+
ide_core_common_1.isMacintosh ? 'cmd' : 'ctrl',
|
|
294
|
+
" + shift + p)"),
|
|
295
|
+
React.createElement("li", { style: { listStyle: 'inherit' } },
|
|
296
|
+
"\u8F93\u5165\uFF1A",
|
|
297
|
+
(labelLocalized === null || labelLocalized === void 0 ? void 0 : labelLocalized.localized) || label)),
|
|
298
|
+
React.createElement(components_1.Button, { onClick: () => opener.open(ide_core_common_1.URI.parse(`command:${delegate || id}`)) }, "\u70B9\u51FB\u6267\u884C\u547D\u4EE4"))));
|
|
299
|
+
return aiMessage;
|
|
300
|
+
}
|
|
301
|
+
catch (error) {
|
|
302
|
+
console.log('/ai command reply: error >>>>>', error);
|
|
303
|
+
}
|
|
304
|
+
};
|
|
305
|
+
//# sourceMappingURL=ai-chat.view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-chat.view.js","sourceRoot":"","sources":["../../src/browser/ai-chat.view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IDisposable, URI, MaybePromise, Disposable, CommandService } from '@opensumi/ide-core-common';
|
|
2
|
+
import { IEditor, IEditorFeatureContribution } from '@opensumi/ide-editor/lib/browser';
|
|
3
|
+
import { editor as MonacoEditor } from '@opensumi/monaco-editor-core';
|
|
4
|
+
import { AiChatService } from './ai-chat.service';
|
|
5
|
+
export declare class AiEditorContribution extends Disposable implements IEditorFeatureContribution {
|
|
6
|
+
private readonly injector;
|
|
7
|
+
private readonly aiGPTBackService;
|
|
8
|
+
private readonly aiInlineChatService;
|
|
9
|
+
private documentSymbolStore;
|
|
10
|
+
protected readonly commandService: CommandService;
|
|
11
|
+
protected readonly aiChatService: AiChatService;
|
|
12
|
+
private readonly fileTreeAPI;
|
|
13
|
+
contribute(editor: IEditor): IDisposable;
|
|
14
|
+
provideEditorOptionsForUri?(uri: URI): MaybePromise<Partial<MonacoEditor.IEditorOptions>>;
|
|
15
|
+
/**
|
|
16
|
+
* java doc
|
|
17
|
+
*/
|
|
18
|
+
private registerSuggestJavaDoc;
|
|
19
|
+
/**
|
|
20
|
+
* 代码补全
|
|
21
|
+
*/
|
|
22
|
+
private registerCompletion;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=ai-editor.contribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-editor.contribution.d.ts","sourceRoot":"","sources":["../../src/browser/ai-editor.contribution.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAe,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACpH,OAAO,EAAE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAIvF,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAMtE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAOlD,qBACa,oBAAqB,SAAQ,UAAW,YAAW,0BAA0B;IAExF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IAGpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAM;IAGvC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAG1D,OAAO,CAAC,mBAAmB,CAAsB;IAGjD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAGhD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAe;IAE3C,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW;IAqQxC,0BAA0B,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAIzF;;OAEG;YACW,sBAAsB;IAkFpC;;OAEG;YACW,kBAAkB;CA4HjC"}
|