@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,183 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import * as jsoncparser from 'jsonc-parser';
|
|
3
|
+
|
|
4
|
+
import { Injectable, Autowired } from '@opensumi/di';
|
|
5
|
+
import { PreferenceConfigurations } from '@opensumi/ide-core-browser';
|
|
6
|
+
import { CommandService, URI, FileType } from '@opensumi/ide-core-common';
|
|
7
|
+
import { DEBUG_COMMANDS, DebugConfiguration } from '@opensumi/ide-debug';
|
|
8
|
+
import { DebugConfigurationManager } from '@opensumi/ide-debug/lib/browser/debug-configuration-manager';
|
|
9
|
+
import { WorkbenchEditorService } from '@opensumi/ide-editor';
|
|
10
|
+
import { IFileServiceClient } from '@opensumi/ide-file-service';
|
|
11
|
+
import { WorkspaceVariableContribution } from '@opensumi/ide-workspace/lib/browser/workspace-variable-contribution';
|
|
12
|
+
|
|
13
|
+
import { AiGPTBackSerivcePath } from '../../common';
|
|
14
|
+
import { AiChatService } from '../ai-chat.service';
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
// 暂定的技术栈集合
|
|
18
|
+
enum EStackName {
|
|
19
|
+
NODEJS = 'node.js',
|
|
20
|
+
JAVA = 'java',
|
|
21
|
+
MINI_PROGRAM = 'mini program',
|
|
22
|
+
PYTHON = 'python',
|
|
23
|
+
C_CPP = 'c/c++',
|
|
24
|
+
GO = 'go',
|
|
25
|
+
rust = 'rust',
|
|
26
|
+
FRONT_END = 'front end',
|
|
27
|
+
EXTENSION = 'ide extension',
|
|
28
|
+
EMPTY = 'empty'
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const EStackNameValues = Object.values(EStackName);
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* 智能运行的逻辑规则如下
|
|
35
|
+
* 以 launch.json 配置为主
|
|
36
|
+
* a. 如果没有该文件,则智能生成该文件(走 AI)
|
|
37
|
+
* b. 如果有该文件,则默认运行第一条(后续可以配置)
|
|
38
|
+
*/
|
|
39
|
+
@Injectable()
|
|
40
|
+
export class AiRunService {
|
|
41
|
+
@Autowired(AiGPTBackSerivcePath)
|
|
42
|
+
aiBackService: any;
|
|
43
|
+
|
|
44
|
+
@Autowired(CommandService)
|
|
45
|
+
protected readonly commandService: CommandService;
|
|
46
|
+
|
|
47
|
+
@Autowired(WorkspaceVariableContribution)
|
|
48
|
+
protected readonly workspaceVariables: WorkspaceVariableContribution;
|
|
49
|
+
|
|
50
|
+
@Autowired(PreferenceConfigurations)
|
|
51
|
+
protected readonly preferenceConfigurations: PreferenceConfigurations;
|
|
52
|
+
|
|
53
|
+
@Autowired(DebugConfigurationManager)
|
|
54
|
+
protected readonly debugConfigurationManager: DebugConfigurationManager;
|
|
55
|
+
|
|
56
|
+
@Autowired(WorkbenchEditorService)
|
|
57
|
+
protected readonly workbenchEditorService: WorkbenchEditorService;
|
|
58
|
+
|
|
59
|
+
@Autowired(IFileServiceClient)
|
|
60
|
+
private readonly fileSystem: IFileServiceClient;
|
|
61
|
+
|
|
62
|
+
@Autowired(AiChatService)
|
|
63
|
+
protected readonly aiChatService: AiChatService;
|
|
64
|
+
|
|
65
|
+
private async readResourceContent(resource: URI): Promise<string> {
|
|
66
|
+
try {
|
|
67
|
+
const { content } = await this.fileSystem.readFile(resource.toString());
|
|
68
|
+
return content.toString();
|
|
69
|
+
} catch (error) {
|
|
70
|
+
return '';
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
private getLaunchUri(): URI {
|
|
75
|
+
const workspaceFolderUri = this.workspaceVariables.getWorkspaceRootUri();
|
|
76
|
+
const uri = new URI(workspaceFolderUri!.toString()).resolve(`${this.preferenceConfigurations.getPaths()[0]}/launch.json`);
|
|
77
|
+
return uri;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
public getStackName(): EStackName {
|
|
81
|
+
// 测试
|
|
82
|
+
return EStackName.NODEJS;
|
|
83
|
+
// 测试
|
|
84
|
+
// @ts-ignore
|
|
85
|
+
const stackName = window.ideRuntimeConfig?.stackName?.toLowerCase();
|
|
86
|
+
|
|
87
|
+
if (!stackName) {
|
|
88
|
+
return EStackName.EMPTY;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
for (let i = 0; i < EStackNameValues.length; i++) {
|
|
92
|
+
const name = EStackNameValues[i];
|
|
93
|
+
if (stackName.includs(name)) {
|
|
94
|
+
return EStackName[name];
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return EStackName.EMPTY;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* 根据技术栈判断
|
|
103
|
+
*
|
|
104
|
+
* 1. 有 package.json 文件存在的话,则提取 script、name、version、description、egg、bin 这些字段去构造 prompt
|
|
105
|
+
* 2. 如果是 minifish 技术栈,则直接调用命令 "minidev.startDev"
|
|
106
|
+
* 3. java 技术栈通常都会有 launch.json (java debug 插件生成的)。直接调用第一个命令即可
|
|
107
|
+
*/
|
|
108
|
+
public async run() {
|
|
109
|
+
|
|
110
|
+
// current 就是当前选中的 launch 里的某个配置,如果有值代表就是存在 launch.json 文件,且存在某项配置,直接执行就行
|
|
111
|
+
const isDebugConf = this.debugConfigurationManager.current;
|
|
112
|
+
if (isDebugConf) {
|
|
113
|
+
this.commandService.executeCommand(DEBUG_COMMANDS.START.id);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
const workspaceFolderUri = this.workspaceVariables.getWorkspaceRootUri();
|
|
118
|
+
if (!workspaceFolderUri) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const stackName = this.getStackName();
|
|
123
|
+
|
|
124
|
+
if (stackName === EStackName.MINI_PROGRAM) {
|
|
125
|
+
this.commandService.executeCommand('minidev.startDev');
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
if (stackName === EStackName.NODEJS || stackName === EStackName.FRONT_END) {
|
|
130
|
+
const pkgUri = workspaceFolderUri.resolve('package.json');
|
|
131
|
+
const stat = await this.fileSystem.getFileStat(pkgUri.toString());
|
|
132
|
+
|
|
133
|
+
if (stat && stat.type === FileType.File) {
|
|
134
|
+
const fileContent = await this.readResourceContent(pkgUri);
|
|
135
|
+
|
|
136
|
+
const parseJson = jsoncparser.parse(fileContent);
|
|
137
|
+
|
|
138
|
+
const jsonContent = JSON.stringify({
|
|
139
|
+
name: parseJson.name || '',
|
|
140
|
+
version: parseJson.version || '',
|
|
141
|
+
description: parseJson.description || '',
|
|
142
|
+
egg: parseJson.egg || '',
|
|
143
|
+
bin: parseJson.bin || '',
|
|
144
|
+
scripts: parseJson.scripts,
|
|
145
|
+
}, undefined, 1);
|
|
146
|
+
|
|
147
|
+
const prompt = `我会给你一个项目类型和 package.json 文件内容。你需要通过分析里面的 scripts 内容,找到合适的运行命令来启动项目。如果找到合适的命令后直接返回,不需要解释。请参照下面的示例问答的格式返回。
|
|
148
|
+
提问: 这是一个 node.js 项目,package.json 的文件内容是 \`\`\`\n${{ scripts: { dev: 'npm run dev', test: 'npm run test' } }}\n\`\`\`
|
|
149
|
+
回答: "dev"
|
|
150
|
+
提问: 这是一个 front-end 项目,package.json 的文件内容是 \`\`\`\n${{ scripts: { start: 'npm run start', build: 'npm run build' } }}\n\`\`\`
|
|
151
|
+
回答: "start"
|
|
152
|
+
提问: 这是一个 ${stackName} 项目,package.json 的文件内容是 \`\`\`\n${jsonContent}\n\`\`\`
|
|
153
|
+
`;
|
|
154
|
+
this.aiChatService.launchChatMessage({
|
|
155
|
+
message: '/run 运行项目',
|
|
156
|
+
prompt,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* 添加运行配置
|
|
165
|
+
*/
|
|
166
|
+
public async addRunConfiguration(configuration: DebugConfiguration) {
|
|
167
|
+
const uri = this.getLaunchUri();
|
|
168
|
+
|
|
169
|
+
if (this.debugConfigurationManager.all.length === 0) {
|
|
170
|
+
await this.debugConfigurationManager.cretaInitialConfig(uri, [configuration]);
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
if (!this.debugConfigurationManager.all.some((item) => item.configuration.name === configuration.name)) {
|
|
175
|
+
await this.debugConfigurationManager.insertConfiguration(uri, configuration);
|
|
176
|
+
await this.workbenchEditorService.open(uri, {
|
|
177
|
+
disableNavigate: true,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
this.run();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { TERMINAL_COMMANDS } from '@opensumi/ide-core-browser';
|
|
2
|
+
|
|
3
|
+
export const AI_EXPLAIN_TERMINAL_COMMANDS = {
|
|
4
|
+
id: 'ai.explain.terminal',
|
|
5
|
+
label: 'AI 助手: 对此进行解释',
|
|
6
|
+
category: TERMINAL_COMMANDS.CATEGORY,
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export const AI_EXPLAIN_DEBUG_COMMANDS = {
|
|
10
|
+
id: 'ai.explain.debug',
|
|
11
|
+
label: 'AI 助手: 对此进行解释',
|
|
12
|
+
category: 'debug',
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const AI_RUN_DEBUG_COMMANDS = {
|
|
16
|
+
id: 'ai.run.debug',
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export const AI_CHAT_PANEL_TOGGLE_VISIBLE = {
|
|
20
|
+
id: 'ai.chat.panel.toggle.visible',
|
|
21
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export const AiGPTBackSerivceToken = Symbol('AiGPTBackSerivceToken');
|
|
2
|
+
export const AiGPTBackSerivcePath = 'AiGPTBackSerivcePath';
|
|
3
|
+
|
|
4
|
+
export const Ai_CHAT_CONTAINER_VIEW_ID = 'ai_chat';
|
|
5
|
+
|
|
6
|
+
export enum ChatCompletionRequestMessageRoleEnum {
|
|
7
|
+
System = 'system',
|
|
8
|
+
User = 'user',
|
|
9
|
+
Assistant = 'assistant',
|
|
10
|
+
}
|
|
11
|
+
export interface ChatCompletionRequestMessage {
|
|
12
|
+
/**
|
|
13
|
+
* The role of the author of this message.
|
|
14
|
+
* @type {string}
|
|
15
|
+
* @memberof ChatCompletionRequestMessage
|
|
16
|
+
*/
|
|
17
|
+
role: ChatCompletionRequestMessageRoleEnum;
|
|
18
|
+
/**
|
|
19
|
+
* The contents of the message
|
|
20
|
+
* @type {string}
|
|
21
|
+
* @memberof ChatCompletionRequestMessage
|
|
22
|
+
*/
|
|
23
|
+
content: string;
|
|
24
|
+
/**
|
|
25
|
+
* The name of the user in a multi-user chat
|
|
26
|
+
* @type {string}
|
|
27
|
+
* @memberof ChatCompletionRequestMessage
|
|
28
|
+
*/
|
|
29
|
+
name?: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export enum AISerivceType {
|
|
33
|
+
Search,
|
|
34
|
+
SearchCode,
|
|
35
|
+
Sumi,
|
|
36
|
+
GPT,
|
|
37
|
+
Explain,
|
|
38
|
+
Run,
|
|
39
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './common';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Provider, Injectable } from '@opensumi/di';
|
|
2
|
+
import { NodeModule } from '@opensumi/ide-core-node';
|
|
3
|
+
|
|
4
|
+
import { AiGPTBackSerivcePath, AiGPTBackSerivceToken } from '../common';
|
|
5
|
+
|
|
6
|
+
// import { AiGPTBackService } from './ai-gpt.back.service';
|
|
7
|
+
|
|
8
|
+
@Injectable()
|
|
9
|
+
export class AiNativeModule extends NodeModule {
|
|
10
|
+
providers: Provider[] = [
|
|
11
|
+
{
|
|
12
|
+
token: AiGPTBackSerivceToken,
|
|
13
|
+
// useClass: AiGPTBackService,
|
|
14
|
+
useClass: class {},
|
|
15
|
+
},
|
|
16
|
+
];
|
|
17
|
+
|
|
18
|
+
backServices = [
|
|
19
|
+
{
|
|
20
|
+
servicePath: AiGPTBackSerivcePath,
|
|
21
|
+
token: AiGPTBackSerivceToken,
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
}
|