@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.
Files changed (196) hide show
  1. package/LICENSE +21 -0
  2. package/lib/browser/ai-chat.contribution.d.ts +26 -0
  3. package/lib/browser/ai-chat.contribution.d.ts.map +1 -0
  4. package/lib/browser/ai-chat.contribution.js +227 -0
  5. package/lib/browser/ai-chat.contribution.js.map +1 -0
  6. package/lib/browser/ai-chat.module.less +174 -0
  7. package/lib/browser/ai-chat.service.d.ts +30 -0
  8. package/lib/browser/ai-chat.service.d.ts.map +1 -0
  9. package/lib/browser/ai-chat.service.js +134 -0
  10. package/lib/browser/ai-chat.service.js.map +1 -0
  11. package/lib/browser/ai-chat.view.d.ts +4 -0
  12. package/lib/browser/ai-chat.view.d.ts.map +1 -0
  13. package/lib/browser/ai-chat.view.js +305 -0
  14. package/lib/browser/ai-chat.view.js.map +1 -0
  15. package/lib/browser/ai-editor.contribution.d.ts +24 -0
  16. package/lib/browser/ai-editor.contribution.d.ts.map +1 -0
  17. package/lib/browser/ai-editor.contribution.js +419 -0
  18. package/lib/browser/ai-editor.contribution.js.map +1 -0
  19. package/lib/browser/ai-project/generate.service.d.ts +31 -0
  20. package/lib/browser/ai-project/generate.service.d.ts.map +1 -0
  21. package/lib/browser/ai-project/generate.service.js +453 -0
  22. package/lib/browser/ai-project/generate.service.js.map +1 -0
  23. package/lib/browser/ai-sumi/sumi.service.d.ts +11 -0
  24. package/lib/browser/ai-sumi/sumi.service.d.ts.map +1 -0
  25. package/lib/browser/ai-sumi/sumi.service.js +64 -0
  26. package/lib/browser/ai-sumi/sumi.service.js.map +1 -0
  27. package/lib/browser/code-widget/ai-code-document.provider.d.ts +10 -0
  28. package/lib/browser/code-widget/ai-code-document.provider.d.ts.map +1 -0
  29. package/lib/browser/code-widget/ai-code-document.provider.js +26 -0
  30. package/lib/browser/code-widget/ai-code-document.provider.js.map +1 -0
  31. package/lib/browser/code-widget/ai-code-widget.d.ts +20 -0
  32. package/lib/browser/code-widget/ai-code-widget.d.ts.map +1 -0
  33. package/lib/browser/code-widget/ai-code-widget.js +164 -0
  34. package/lib/browser/code-widget/ai-code-widget.js.map +1 -0
  35. package/lib/browser/components/AIImprove.d.ts +9 -0
  36. package/lib/browser/components/AIImprove.d.ts.map +1 -0
  37. package/lib/browser/components/AIImprove.js +34 -0
  38. package/lib/browser/components/AIImprove.js.map +1 -0
  39. package/lib/browser/components/AIInput.d.ts +5 -0
  40. package/lib/browser/components/AIInput.d.ts.map +1 -0
  41. package/lib/browser/components/AIInput.js +21 -0
  42. package/lib/browser/components/AIInput.js.map +1 -0
  43. package/lib/browser/components/ChatEditor.d.ts +5 -0
  44. package/lib/browser/components/ChatEditor.d.ts.map +1 -0
  45. package/lib/browser/components/ChatEditor.js +85 -0
  46. package/lib/browser/components/ChatEditor.js.map +1 -0
  47. package/lib/browser/components/ChatInput.d.ts +6 -0
  48. package/lib/browser/components/ChatInput.d.ts.map +1 -0
  49. package/lib/browser/components/ChatInput.js +127 -0
  50. package/lib/browser/components/ChatInput.js.map +1 -0
  51. package/lib/browser/components/ChatMoreActions.d.ts +5 -0
  52. package/lib/browser/components/ChatMoreActions.d.ts.map +1 -0
  53. package/lib/browser/components/ChatMoreActions.js +26 -0
  54. package/lib/browser/components/ChatMoreActions.js.map +1 -0
  55. package/lib/browser/components/Thinking.d.ts +3 -0
  56. package/lib/browser/components/Thinking.d.ts.map +1 -0
  57. package/lib/browser/components/Thinking.js +19 -0
  58. package/lib/browser/components/Thinking.js.map +1 -0
  59. package/lib/browser/components/components.module.less +259 -0
  60. package/lib/browser/components/lineVertical.d.ts +4 -0
  61. package/lib/browser/components/lineVertical.d.ts.map +1 -0
  62. package/lib/browser/components/lineVertical.js +22 -0
  63. package/lib/browser/components/lineVertical.js.map +1 -0
  64. package/lib/browser/content-widget/ai-content-widget.d.ts +38 -0
  65. package/lib/browser/content-widget/ai-content-widget.d.ts.map +1 -0
  66. package/lib/browser/content-widget/ai-content-widget.js +97 -0
  67. package/lib/browser/content-widget/ai-content-widget.js.map +1 -0
  68. package/lib/browser/content-widget/ai-inline-chat-panel.d.ts +6 -0
  69. package/lib/browser/content-widget/ai-inline-chat-panel.d.ts.map +1 -0
  70. package/lib/browser/content-widget/ai-inline-chat-panel.js +108 -0
  71. package/lib/browser/content-widget/ai-inline-chat-panel.js.map +1 -0
  72. package/lib/browser/content-widget/ai-inline-chat.module.less +74 -0
  73. package/lib/browser/content-widget/ai-inline-chat.service.d.ts +23 -0
  74. package/lib/browser/content-widget/ai-inline-chat.service.d.ts.map +1 -0
  75. package/lib/browser/content-widget/ai-inline-chat.service.js +47 -0
  76. package/lib/browser/content-widget/ai-inline-chat.service.js.map +1 -0
  77. package/lib/browser/diff-widget/ai-diff-document.provider.d.ts +10 -0
  78. package/lib/browser/diff-widget/ai-diff-document.provider.d.ts.map +1 -0
  79. package/lib/browser/diff-widget/ai-diff-document.provider.js +26 -0
  80. package/lib/browser/diff-widget/ai-diff-document.provider.js.map +1 -0
  81. package/lib/browser/diff-widget/ai-diff-widget.d.ts +20 -0
  82. package/lib/browser/diff-widget/ai-diff-widget.d.ts.map +1 -0
  83. package/lib/browser/diff-widget/ai-diff-widget.js +158 -0
  84. package/lib/browser/diff-widget/ai-diff-widget.js.map +1 -0
  85. package/lib/browser/index.d.ts +12 -0
  86. package/lib/browser/index.d.ts.map +1 -0
  87. package/lib/browser/index.js +84 -0
  88. package/lib/browser/index.js.map +1 -0
  89. package/lib/browser/inline-completions/constants.d.ts +62 -0
  90. package/lib/browser/inline-completions/constants.d.ts.map +1 -0
  91. package/lib/browser/inline-completions/constants.js +69 -0
  92. package/lib/browser/inline-completions/constants.js.map +1 -0
  93. package/lib/browser/inline-completions/provider.d.ts +27 -0
  94. package/lib/browser/inline-completions/provider.d.ts.map +1 -0
  95. package/lib/browser/inline-completions/provider.js +63 -0
  96. package/lib/browser/inline-completions/provider.js.map +1 -0
  97. package/lib/browser/override/ai-editor-tab.service.d.ts +6 -0
  98. package/lib/browser/override/ai-editor-tab.service.d.ts.map +1 -0
  99. package/lib/browser/override/ai-editor-tab.service.js +22 -0
  100. package/lib/browser/override/ai-editor-tab.service.js.map +1 -0
  101. package/lib/browser/override/ai-marker.service.d.ts +11 -0
  102. package/lib/browser/override/ai-marker.service.d.ts.map +1 -0
  103. package/lib/browser/override/ai-marker.service.js +55 -0
  104. package/lib/browser/override/ai-marker.service.js.map +1 -0
  105. package/lib/browser/override/global.styles.less +268 -0
  106. package/lib/browser/override/layout/layout-config.d.ts +6 -0
  107. package/lib/browser/override/layout/layout-config.d.ts.map +1 -0
  108. package/lib/browser/override/layout/layout-config.js +17 -0
  109. package/lib/browser/override/layout/layout-config.js.map +1 -0
  110. package/lib/browser/override/layout/layout.module.less +7 -0
  111. package/lib/browser/override/layout/main-slot-renderer.d.ts +4 -0
  112. package/lib/browser/override/layout/main-slot-renderer.d.ts.map +1 -0
  113. package/lib/browser/override/layout/main-slot-renderer.js +22 -0
  114. package/lib/browser/override/layout/main-slot-renderer.js.map +1 -0
  115. package/lib/browser/override/layout/menu-bar/menu-bar.contribution.d.ts +8 -0
  116. package/lib/browser/override/layout/menu-bar/menu-bar.contribution.d.ts.map +1 -0
  117. package/lib/browser/override/layout/menu-bar/menu-bar.contribution.js +32 -0
  118. package/lib/browser/override/layout/menu-bar/menu-bar.contribution.js.map +1 -0
  119. package/lib/browser/override/layout/menu-bar/menu-bar.module.less +41 -0
  120. package/lib/browser/override/layout/menu-bar/menu-bar.view.d.ts +3 -0
  121. package/lib/browser/override/layout/menu-bar/menu-bar.view.d.ts.map +1 -0
  122. package/lib/browser/override/layout/menu-bar/menu-bar.view.js +62 -0
  123. package/lib/browser/override/layout/menu-bar/menu-bar.view.js.map +1 -0
  124. package/lib/browser/override/layout/tabbar.view.d.ts +17 -0
  125. package/lib/browser/override/layout/tabbar.view.d.ts.map +1 -0
  126. package/lib/browser/override/layout/tabbar.view.js +38 -0
  127. package/lib/browser/override/layout/tabbar.view.js.map +1 -0
  128. package/lib/browser/override/override.module.less +32 -0
  129. package/lib/browser/override/theme/default-theme.d.ts +315 -0
  130. package/lib/browser/override/theme/default-theme.d.ts.map +1 -0
  131. package/lib/browser/override/theme/default-theme.js +821 -0
  132. package/lib/browser/override/theme/default-theme.js.map +1 -0
  133. package/lib/browser/run/run.service.d.ts +52 -0
  134. package/lib/browser/run/run.service.d.ts.map +1 -0
  135. package/lib/browser/run/run.service.js +176 -0
  136. package/lib/browser/run/run.service.js.map +1 -0
  137. package/lib/common/command.d.ts +17 -0
  138. package/lib/common/command.d.ts.map +1 -0
  139. package/lib/common/command.js +21 -0
  140. package/lib/common/command.js.map +1 -0
  141. package/lib/common/index.d.ts +37 -0
  142. package/lib/common/index.d.ts.map +1 -0
  143. package/lib/common/index.js +22 -0
  144. package/lib/common/index.js.map +1 -0
  145. package/lib/index.d.ts +2 -0
  146. package/lib/index.d.ts.map +1 -0
  147. package/lib/index.js +5 -0
  148. package/lib/index.js.map +1 -0
  149. package/lib/node/index.d.ts +10 -0
  150. package/lib/node/index.d.ts.map +1 -0
  151. package/lib/node/index.js +32 -0
  152. package/lib/node/index.js.map +1 -0
  153. package/package.json +38 -0
  154. package/src/browser/ai-chat.contribution.ts +294 -0
  155. package/src/browser/ai-chat.module.less +174 -0
  156. package/src/browser/ai-chat.service.ts +152 -0
  157. package/src/browser/ai-chat.view.tsx +421 -0
  158. package/src/browser/ai-editor.contribution.ts +521 -0
  159. package/src/browser/ai-project/generate.service.ts +505 -0
  160. package/src/browser/ai-sumi/sumi.service.ts +65 -0
  161. package/src/browser/code-widget/ai-code-document.provider.ts +22 -0
  162. package/src/browser/code-widget/ai-code-widget.tsx +202 -0
  163. package/src/browser/components/AIImprove.tsx +45 -0
  164. package/src/browser/components/AIInput.tsx +30 -0
  165. package/src/browser/components/ChatEditor.tsx +129 -0
  166. package/src/browser/components/ChatInput.tsx +197 -0
  167. package/src/browser/components/ChatMoreActions.tsx +33 -0
  168. package/src/browser/components/Thinking.tsx +23 -0
  169. package/src/browser/components/components.module.less +259 -0
  170. package/src/browser/components/lineVertical.tsx +19 -0
  171. package/src/browser/content-widget/ai-content-widget.tsx +132 -0
  172. package/src/browser/content-widget/ai-inline-chat-panel.tsx +154 -0
  173. package/src/browser/content-widget/ai-inline-chat.module.less +74 -0
  174. package/src/browser/content-widget/ai-inline-chat.service.ts +46 -0
  175. package/src/browser/diff-widget/ai-diff-document.provider.ts +22 -0
  176. package/src/browser/diff-widget/ai-diff-widget.tsx +196 -0
  177. package/src/browser/index.ts +91 -0
  178. package/src/browser/inline-completions/constants.ts +108 -0
  179. package/src/browser/inline-completions/provider.ts +55 -0
  180. package/src/browser/override/ai-editor-tab.service.tsx +22 -0
  181. package/src/browser/override/ai-marker.service.tsx +55 -0
  182. package/src/browser/override/global.styles.less +268 -0
  183. package/src/browser/override/layout/layout-config.ts +21 -0
  184. package/src/browser/override/layout/layout.module.less +7 -0
  185. package/src/browser/override/layout/main-slot-renderer.tsx +62 -0
  186. package/src/browser/override/layout/menu-bar/menu-bar.contribution.tsx +28 -0
  187. package/src/browser/override/layout/menu-bar/menu-bar.module.less +41 -0
  188. package/src/browser/override/layout/menu-bar/menu-bar.view.tsx +92 -0
  189. package/src/browser/override/layout/tabbar.view.tsx +99 -0
  190. package/src/browser/override/override.module.less +32 -0
  191. package/src/browser/override/theme/default-theme.ts +818 -0
  192. package/src/browser/run/run.service.ts +183 -0
  193. package/src/common/command.ts +21 -0
  194. package/src/common/index.ts +39 -0
  195. package/src/index.ts +1 -0
  196. 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"}