@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,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AiCodeWidget = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
const react_dom_1 = tslib_1.__importDefault(require("react-dom"));
|
|
7
|
+
const di_1 = require("@opensumi/di");
|
|
8
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
9
|
+
const ide_core_browser_2 = require("@opensumi/ide-core-browser");
|
|
10
|
+
const ide_editor_1 = require("@opensumi/ide-editor");
|
|
11
|
+
const ide_editor_2 = require("@opensumi/ide-editor");
|
|
12
|
+
const index_1 = require("@opensumi/ide-editor/lib/browser/index");
|
|
13
|
+
const monaco_api_1 = require("@opensumi/ide-monaco/lib/browser/monaco-api");
|
|
14
|
+
const zoneWidget_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/contrib/zoneWidget/browser/zoneWidget");
|
|
15
|
+
const diffEditorOptions = {
|
|
16
|
+
scrollBeyondLastLine: false,
|
|
17
|
+
scrollbar: {
|
|
18
|
+
verticalScrollbarSize: 14,
|
|
19
|
+
horizontal: 'auto',
|
|
20
|
+
useShadows: true,
|
|
21
|
+
verticalHasArrows: false,
|
|
22
|
+
horizontalHasArrows: false,
|
|
23
|
+
alwaysConsumeMouseWheel: false,
|
|
24
|
+
},
|
|
25
|
+
fixedOverflowWidgets: true,
|
|
26
|
+
readOnly: true,
|
|
27
|
+
minimap: {
|
|
28
|
+
enabled: false,
|
|
29
|
+
},
|
|
30
|
+
enableSplitViewResizing: true,
|
|
31
|
+
renderOverviewRuler: true,
|
|
32
|
+
ignoreTrimWhitespace: false,
|
|
33
|
+
renderSideBySide: true,
|
|
34
|
+
lineNumbers: 'on',
|
|
35
|
+
glyphMargin: false,
|
|
36
|
+
};
|
|
37
|
+
const CodeContentProvider = react_1.default.memo(((props) => {
|
|
38
|
+
const { dto, onMaxLincCount } = props;
|
|
39
|
+
const documentModelService = (0, ide_core_browser_1.useInjectable)(index_1.IEditorDocumentModelService);
|
|
40
|
+
const editorCollectionService = (0, ide_core_browser_1.useInjectable)(ide_editor_1.EditorCollectionService);
|
|
41
|
+
const editorRef = (0, react_1.useRef)(null);
|
|
42
|
+
(0, react_1.useEffect)(() => {
|
|
43
|
+
if (!dto) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
let codeEditor;
|
|
47
|
+
const random = Math.random() * 10;
|
|
48
|
+
const originUri = ide_core_browser_1.URI.parse(`AI://origin${random}`);
|
|
49
|
+
Promise.all([
|
|
50
|
+
documentModelService.createModelReference(originUri),
|
|
51
|
+
]).then((data) => {
|
|
52
|
+
const [original] = data;
|
|
53
|
+
if (!original) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const { answerValue } = dto;
|
|
57
|
+
codeEditor = editorCollectionService.createCodeEditor(editorRef.current, Object.assign(Object.assign({}, (0, ide_editor_2.getSimpleEditorOptions)()), diffEditorOptions));
|
|
58
|
+
const originalModel = original.instance.getMonacoModel();
|
|
59
|
+
originalModel.setMode('java');
|
|
60
|
+
originalModel.setValue(answerValue);
|
|
61
|
+
codeEditor.monacoEditor.setModel(originalModel);
|
|
62
|
+
codeEditor.monacoEditor.updateOptions({ readOnly: true });
|
|
63
|
+
if (onMaxLincCount) {
|
|
64
|
+
const { monacoEditor } = codeEditor;
|
|
65
|
+
const contentHeight = monacoEditor.getContentHeight();
|
|
66
|
+
const lineCount = contentHeight / monacoEditor.getOption(monaco_api_1.monaco.editor.EditorOption.lineHeight);
|
|
67
|
+
onMaxLincCount(lineCount);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
return () => {
|
|
71
|
+
if (codeEditor) {
|
|
72
|
+
codeEditor.dispose();
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}, [dto]);
|
|
76
|
+
return react_1.default.createElement("div", { ref: editorRef, style: { height: 'inherit', width: '100%', border: '1px solid #6666' } });
|
|
77
|
+
}));
|
|
78
|
+
const styles = {
|
|
79
|
+
height: '100%',
|
|
80
|
+
display: 'flex',
|
|
81
|
+
alignItems: 'center',
|
|
82
|
+
flexDirection: 'column',
|
|
83
|
+
backgroundColor: 'rgba(38, 79, 120, 0.25)',
|
|
84
|
+
};
|
|
85
|
+
let AiCodeWidget = class AiCodeWidget extends zoneWidget_1.ZoneWidget {
|
|
86
|
+
applyClass() { }
|
|
87
|
+
applyStyle() { }
|
|
88
|
+
_fillContainer(container) {
|
|
89
|
+
this.setCssClass('ai_code-widget');
|
|
90
|
+
react_dom_1.default.render(react_1.default.createElement(ide_core_browser_2.ConfigProvider, { value: this.configContext },
|
|
91
|
+
react_1.default.createElement("div", { style: styles },
|
|
92
|
+
this.headUri &&
|
|
93
|
+
react_1.default.createElement("div", { className: 'ai_code_head', style: {
|
|
94
|
+
display: 'flex',
|
|
95
|
+
alignItems: 'center',
|
|
96
|
+
width: '100%',
|
|
97
|
+
whiteSpace: 'nowrap',
|
|
98
|
+
padding: '3px 16px',
|
|
99
|
+
} },
|
|
100
|
+
react_1.default.createElement("span", { style: {
|
|
101
|
+
color: 'white',
|
|
102
|
+
marginRight: '10px',
|
|
103
|
+
} }, this.headUri.displayName),
|
|
104
|
+
react_1.default.createElement("span", null, this.headUri.codeUri.fsPath.replace(this.configContext.workspaceDir, ''))),
|
|
105
|
+
react_1.default.createElement(CodeContentProvider, { dto: { answerValue: this.answerValue }, onMaxLincCount: (n) => {
|
|
106
|
+
if (n) {
|
|
107
|
+
this._relayout(n);
|
|
108
|
+
}
|
|
109
|
+
} }))), container);
|
|
110
|
+
}
|
|
111
|
+
constructor(editor, answerValue, headUri) {
|
|
112
|
+
// @ts-ignore
|
|
113
|
+
super(editor, {
|
|
114
|
+
showArrow: false,
|
|
115
|
+
showFrame: false,
|
|
116
|
+
arrowColor: undefined,
|
|
117
|
+
frameColor: undefined,
|
|
118
|
+
// 这里有个小坑,如果不开启这个配置,那么在调用 show 函数的时候会自动对焦并滚动到对应 range,导致在编辑 result 视图中代码时光标总是滚动在最后一个 widget 上
|
|
119
|
+
keepEditorSelection: true,
|
|
120
|
+
});
|
|
121
|
+
this.answerValue = answerValue;
|
|
122
|
+
this.headUri = ide_core_browser_1.URI.parse(headUri);
|
|
123
|
+
}
|
|
124
|
+
// 覆写 revealLine 函数,使其在 show 的时候编辑器不会定位到对应位置
|
|
125
|
+
revealLine(lineNumber, isLastLine) {
|
|
126
|
+
// not implement
|
|
127
|
+
}
|
|
128
|
+
getRecordLine() {
|
|
129
|
+
return this.recordLine;
|
|
130
|
+
}
|
|
131
|
+
setContainerStyle(style) {
|
|
132
|
+
var _a;
|
|
133
|
+
const keys = Object.keys(style);
|
|
134
|
+
for (const key of keys) {
|
|
135
|
+
if (Object.prototype.hasOwnProperty.call((_a = this.container) === null || _a === void 0 ? void 0 : _a.style, key)) {
|
|
136
|
+
this.container.style[key] = style[key];
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
addClassName(type) {
|
|
141
|
+
this.setCssClass(type);
|
|
142
|
+
return this;
|
|
143
|
+
}
|
|
144
|
+
showByLine(line, lineNumber = 20) {
|
|
145
|
+
this.recordLine = line;
|
|
146
|
+
super.hide();
|
|
147
|
+
super.show({
|
|
148
|
+
startLineNumber: line,
|
|
149
|
+
startColumn: 0,
|
|
150
|
+
endLineNumber: line,
|
|
151
|
+
endColumn: Number.MAX_SAFE_INTEGER,
|
|
152
|
+
}, lineNumber);
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
tslib_1.__decorate([
|
|
156
|
+
(0, di_1.Autowired)(ide_core_browser_1.AppConfig),
|
|
157
|
+
tslib_1.__metadata("design:type", Object)
|
|
158
|
+
], AiCodeWidget.prototype, "configContext", void 0);
|
|
159
|
+
AiCodeWidget = tslib_1.__decorate([
|
|
160
|
+
(0, di_1.Injectable)({ multiple: true }),
|
|
161
|
+
tslib_1.__metadata("design:paramtypes", [Object, String, String])
|
|
162
|
+
], AiCodeWidget);
|
|
163
|
+
exports.AiCodeWidget = AiCodeWidget;
|
|
164
|
+
//# sourceMappingURL=ai-code-widget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-code-widget.js","sourceRoot":"","sources":["../../../src/browser/code-widget/ai-code-widget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIImprove.d.ts","sourceRoot":"","sources":["../../../src/browser/components/AIImprove.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAKpD,eAAO,MAAM,SAAS;uBAA+B,MAAM,KAAK,IAAI;;eAAmB,MAAM;mBAAa,MAAM;;uBAuC/G,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AIImprove = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
7
|
+
const index_1 = require("@opensumi/ide-core-browser/lib/components/index");
|
|
8
|
+
const AIImprove = (props) => {
|
|
9
|
+
const { onClick, lists } = props;
|
|
10
|
+
const handleClick = (0, react_1.useCallback)((title) => {
|
|
11
|
+
if (onClick) {
|
|
12
|
+
onClick(title);
|
|
13
|
+
}
|
|
14
|
+
}, [onClick]);
|
|
15
|
+
const useLists = (0, react_1.useMemo)(() => {
|
|
16
|
+
if (lists && lists.length > 0) {
|
|
17
|
+
return lists;
|
|
18
|
+
}
|
|
19
|
+
return [
|
|
20
|
+
{ title: '采纳', iconClass: (0, ide_core_browser_1.getExternalIcon)('git-pull-request') },
|
|
21
|
+
{ title: '|', iconClass: '' },
|
|
22
|
+
{ title: '丢弃', iconClass: (0, ide_core_browser_1.getExternalIcon)('clear-all') },
|
|
23
|
+
{ title: '|', iconClass: '' },
|
|
24
|
+
{ title: '优化', iconClass: (0, ide_core_browser_1.getExternalIcon)('wand') },
|
|
25
|
+
{ title: '|', iconClass: '' },
|
|
26
|
+
{ title: '更多指令', iconClass: (0, ide_core_browser_1.getIcon)('more') },
|
|
27
|
+
];
|
|
28
|
+
}, [lists]);
|
|
29
|
+
return (react_1.default.createElement("ul", { style: { display: 'flex', alignItems: 'center', paddingLeft: '0', margin: '6px 0 6px 0' } }, useLists.map(({ title, iconClass }) => (react_1.default.createElement("li", { style: { marginRight: '6px', display: 'flex', alignItems: 'center', cursor: 'pointer' } },
|
|
30
|
+
iconClass && react_1.default.createElement(index_1.Icon, { className: iconClass, style: { marginRight: '6px' } }),
|
|
31
|
+
react_1.default.createElement("span", { onClick: () => handleClick(title) }, title))))));
|
|
32
|
+
};
|
|
33
|
+
exports.AIImprove = AIImprove;
|
|
34
|
+
//# sourceMappingURL=AIImprove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIImprove.js","sourceRoot":"","sources":["../../../src/browser/components/AIImprove.tsx"],"names":[],"mappings":";;;;AAAA,uDAAoD;AAEpD,iEAAsE;AACtE,2EAAuE;AAEhE,MAAM,SAAS,GAAG,CAAC,KAA4F,EAAE,EAAE;IACxH,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAEjC,MAAM,WAAW,GAAG,IAAA,mBAAW,EAC7B,CAAC,KAAK,EAAE,EAAE;QACR,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,CAAC;SAChB;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,MAAM,QAAQ,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC5B,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,OAAO,KAAK,CAAC;SACd;QACD,OAAO;YACL,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,kCAAe,EAAC,kBAAkB,CAAC,EAAE;YAC/D,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAC;YAC5B,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAG,IAAA,kCAAe,EAAC,WAAW,CAAC,EAAC;YACxD,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAC;YAC5B,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,kCAAe,EAAC,MAAM,CAAC,EAAC;YAClD,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAC;YAC5B,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAA,0BAAO,EAAC,MAAM,CAAC,EAAC;SAC7C,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACL,sCAAI,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,IAC1F,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACtC,sCAAI,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;QACxF,SAAS,IAAI,8BAAC,YAAI,IAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,EAAC,WAAW,EAAE,KAAK,EAAC,GAAS;QAC9E,wCAAM,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IACpC,KAAK,CACD,CACJ,CACN,CAAC,CACC,CACN,CAAC;AACJ,CAAC,CAAC;AAvCW,QAAA,SAAS,aAuCpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIInput.d.ts","sourceRoot":"","sources":["../../../src/browser/components/AIInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAKrD,eAAO,MAAM,OAAO;;uBAwBnB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AiInput = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
7
|
+
const index_1 = require("@opensumi/ide-core-browser/lib/components/index");
|
|
8
|
+
const AiInput = ({ onValueChange }) => {
|
|
9
|
+
const [value, setValue] = (0, react_1.useState)();
|
|
10
|
+
const handleChange = (newValue) => {
|
|
11
|
+
setValue(newValue);
|
|
12
|
+
};
|
|
13
|
+
const emitterValueChange = (0, react_1.useCallback)(() => {
|
|
14
|
+
if (onValueChange) {
|
|
15
|
+
onValueChange(value);
|
|
16
|
+
}
|
|
17
|
+
}, [value]);
|
|
18
|
+
return (react_1.default.createElement(index_1.Input, { className: 'ai_native_input_container', placeholder: '可以问我任何问题,或键入主题 "/"', value: value, onValueChange: handleChange, addonAfter: react_1.default.createElement(index_1.Icon, { className: (0, ide_core_browser_1.getIcon)('right'), onClick: () => emitterValueChange() }) }));
|
|
19
|
+
};
|
|
20
|
+
exports.AiInput = AiInput;
|
|
21
|
+
//# sourceMappingURL=AIInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIInput.js","sourceRoot":"","sources":["../../../src/browser/components/AIInput.tsx"],"names":[],"mappings":";;;;AAAA,uDAAqD;AAErD,iEAAqD;AACrD,2EAA8E;AAEvE,MAAM,OAAO,GAAG,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE;IAC3C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,GAAU,CAAC;IAE7C,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,EAAE;QACxC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAC1C,IAAI,aAAa,EAAE;YACjB,aAAa,CAAC,KAAK,CAAC,CAAC;SACtB;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACL,8BAAC,aAAK,IACJ,SAAS,EAAE,2BAA2B,EACtC,WAAW,EAAE,oBAAoB,EACjC,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,YAAY,EAC3B,UAAU,EACR,8BAAC,YAAI,IAAC,SAAS,EAAE,IAAA,0BAAO,EAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,EAAE,GAAI,GAE5E,CACH,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,OAAO,WAwBlB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatEditor.d.ts","sourceRoot":"","sources":["../../../src/browser/components/ChatEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAqFvC,eAAO,MAAM,gBAAgB;UAAsB,MAAM;uBA2CxD,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CodeBlockWrapper = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
7
|
+
const components_1 = require("@opensumi/ide-core-browser/lib/components");
|
|
8
|
+
const ide_editor_1 = require("@opensumi/ide-editor");
|
|
9
|
+
const ide_editor_2 = require("@opensumi/ide-editor");
|
|
10
|
+
const index_1 = require("@opensumi/ide-editor/lib/browser/index");
|
|
11
|
+
const textmate_service_1 = require("@opensumi/ide-editor/lib/browser/monaco-contrib/tokenizer/textmate.service");
|
|
12
|
+
const styles = tslib_1.__importStar(require("./components.module.less"));
|
|
13
|
+
const ChatEditor = ({ input, language }) => {
|
|
14
|
+
const ref = react_1.default.useRef(null);
|
|
15
|
+
const editorCollectionService = (0, ide_core_browser_1.useInjectable)(ide_editor_2.EditorCollectionService);
|
|
16
|
+
const documentService = (0, ide_core_browser_1.useInjectable)(index_1.IEditorDocumentModelService);
|
|
17
|
+
const textmateTokenizer = (0, ide_core_browser_1.useInjectable)(textmate_service_1.TextmateService);
|
|
18
|
+
const useUUID = (0, react_1.useMemo)(() => (0, ide_core_browser_1.uuid)(12), [ref, ref.current]);
|
|
19
|
+
const createEditor = async (container) => {
|
|
20
|
+
var _a;
|
|
21
|
+
const codeEditor = await editorCollectionService.createCodeEditor(container, Object.assign(Object.assign({}, (0, ide_editor_1.getSimpleEditorOptions)()), { readOnly: true, lineNumbers: 'off', selectOnLineNumbers: true, scrollBeyondLastLine: false, lineDecorationsWidth: 8, dragAndDrop: false, padding: { top: 8, bottom: 8 }, mouseWheelZoom: false, scrollbar: {
|
|
22
|
+
alwaysConsumeMouseWheel: false,
|
|
23
|
+
}, wordWrap: 'off', ariaLabel: 'Code block', automaticLayout: true }));
|
|
24
|
+
const docModel = await documentService.createModelReference(new ide_core_browser_1.URI(`ai/chat/editor/${useUUID}`).withScheme(ide_core_browser_1.Schemes.walkThroughSnippet));
|
|
25
|
+
const model = docModel.instance.getMonacoModel();
|
|
26
|
+
model.updateOptions({ tabSize: 2 });
|
|
27
|
+
codeEditor.monacoEditor.setModel(model);
|
|
28
|
+
(_a = codeEditor.monacoEditor.getModel()) === null || _a === void 0 ? void 0 : _a.setMode(language);
|
|
29
|
+
return codeEditor;
|
|
30
|
+
};
|
|
31
|
+
react_1.default.useEffect(() => {
|
|
32
|
+
if (ref && ref.current) {
|
|
33
|
+
textmateTokenizer.activateLanguage(language).then(async () => {
|
|
34
|
+
const codeEditor = await createEditor(ref.current);
|
|
35
|
+
if (codeEditor) {
|
|
36
|
+
codeEditor.monacoEditor.setValue(input);
|
|
37
|
+
requestAnimationFrame(() => {
|
|
38
|
+
ref.current.style.height = codeEditor.monacoEditor.getContentHeight() + 2 + 'px';
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}, [ref.current]);
|
|
44
|
+
return (react_1.default.createElement("div", { className: styles.monaco_wrapper },
|
|
45
|
+
react_1.default.createElement("div", { className: styles.action_toolbar },
|
|
46
|
+
react_1.default.createElement(components_1.Popover, { id: `ai-chat-inser-${useUUID}`, title: '\u63D2\u5165\u4EE3\u7801' },
|
|
47
|
+
react_1.default.createElement(components_1.Icon, { className: (0, ide_core_browser_1.getIcon)('openfile') })),
|
|
48
|
+
react_1.default.createElement(components_1.Popover, { id: `ai-chat-copy-${useUUID}`, title: '\u590D\u5236\u4EE3\u7801' },
|
|
49
|
+
react_1.default.createElement(components_1.Icon, { className: (0, ide_core_browser_1.getIcon)('file-copy') }))),
|
|
50
|
+
react_1.default.createElement("div", { ref: ref, className: styles.editor })));
|
|
51
|
+
};
|
|
52
|
+
const CodeBlockWrapper = ({ text }) => {
|
|
53
|
+
const renderText = (content) => {
|
|
54
|
+
const regexInlineCode = /`([^`]+)`/g;
|
|
55
|
+
const regexBlockCode = /```([^`]+)```/g;
|
|
56
|
+
return content.split(regexBlockCode).map((block, index) => {
|
|
57
|
+
if (index % 2 === 0) {
|
|
58
|
+
// 文本内容
|
|
59
|
+
return block.split(regexInlineCode).map((inline, index) => {
|
|
60
|
+
if (index % 2 === 0) {
|
|
61
|
+
// 非代码内容
|
|
62
|
+
return inline;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
// 用 <span> 包裹代码行
|
|
66
|
+
return (react_1.default.createElement("span", { className: styles.code_inline, key: index }, inline));
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
// 通常第一个换行前的字符就是 language,比如 ```typescript
|
|
72
|
+
const language = block.split('\n')[0] || 'plaintext';
|
|
73
|
+
// 并去掉第一个 \n 前面的字符
|
|
74
|
+
block = block.replace(/.*?\n/, '');
|
|
75
|
+
block = block.trim();
|
|
76
|
+
return (react_1.default.createElement("div", { className: styles.code_block },
|
|
77
|
+
react_1.default.createElement(ChatEditor, { input: block, language: language })));
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
return (react_1.default.createElement("div", { className: styles.ai_chat_code_wrapper },
|
|
82
|
+
react_1.default.createElement("div", { className: styles.render_text }, renderText(text))));
|
|
83
|
+
};
|
|
84
|
+
exports.CodeBlockWrapper = CodeBlockWrapper;
|
|
85
|
+
//# sourceMappingURL=ChatEditor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatEditor.js","sourceRoot":"","sources":["../../../src/browser/components/ChatEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../src/browser/components/ChatInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAwFjF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAGD,eAAO,MAAM,SAAS,eAAgB,eAAe,sBAsGpD,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChatInput = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const classnames_1 = tslib_1.__importDefault(require("classnames"));
|
|
6
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
7
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
8
|
+
const components_1 = require("@opensumi/ide-core-browser/lib/components");
|
|
9
|
+
const styles = tslib_1.__importStar(require("./components.module.less"));
|
|
10
|
+
const Block = ({ icon, name }) => (react_1.default.createElement("div", { className: styles.block },
|
|
11
|
+
react_1.default.createElement(components_1.Icon, { className: icon }),
|
|
12
|
+
name && react_1.default.createElement("span", { className: styles.name }, name)));
|
|
13
|
+
// 指令列表
|
|
14
|
+
const optionsList = [
|
|
15
|
+
{
|
|
16
|
+
icon: (0, components_1.getIcon)('search'),
|
|
17
|
+
name: '/search ',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
icon: (0, ide_core_browser_1.getExternalIcon)('code'),
|
|
21
|
+
name: '/searchCode ',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
icon: (0, components_1.getIcon)('edit'),
|
|
25
|
+
name: '/explain ',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
icon: (0, components_1.getIcon)('smile'),
|
|
29
|
+
name: '/sumi ',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
// 指令命令激活组件
|
|
33
|
+
const InstructionOptions = ({ onClick, bottom }) => {
|
|
34
|
+
const [commonlyUsed, setCommonlyUsed] = (0, react_1.useState)([]);
|
|
35
|
+
const [options, setOptions] = (0, react_1.useState)([]);
|
|
36
|
+
(0, react_1.useEffect)(() => {
|
|
37
|
+
setOptions(optionsList);
|
|
38
|
+
setCommonlyUsed([
|
|
39
|
+
{
|
|
40
|
+
icon: (0, components_1.getIcon)('delete'),
|
|
41
|
+
name: '聊天',
|
|
42
|
+
},
|
|
43
|
+
]);
|
|
44
|
+
}, []);
|
|
45
|
+
const handleClick = (0, react_1.useCallback)((name) => {
|
|
46
|
+
if (onClick) {
|
|
47
|
+
onClick(name || '');
|
|
48
|
+
}
|
|
49
|
+
}, [onClick]);
|
|
50
|
+
return (react_1.default.createElement("div", { className: styles.instruction_options_container, style: { bottom: bottom + 'px' } },
|
|
51
|
+
react_1.default.createElement("div", { className: styles.options },
|
|
52
|
+
react_1.default.createElement("ul", null, options.map(({ icon, name }) => (react_1.default.createElement("li", { key: name, onClick: () => handleClick(name) },
|
|
53
|
+
react_1.default.createElement(Block, { icon: icon }),
|
|
54
|
+
react_1.default.createElement("span", null, name)))))),
|
|
55
|
+
commonlyUsed.length > 0 && (react_1.default.createElement("div", { className: styles.commonly_used },
|
|
56
|
+
react_1.default.createElement("span", null, "\u5E38\u7528\u6307\u4EE4\uFF1A"),
|
|
57
|
+
commonlyUsed.map(({ icon, name }, i) => (react_1.default.createElement(Block, { key: i, icon: icon, name: name })))))));
|
|
58
|
+
};
|
|
59
|
+
// 指令命令激活组件
|
|
60
|
+
const ChatInput = ({ onSend }) => {
|
|
61
|
+
const [value, setValue] = (0, react_1.useState)('');
|
|
62
|
+
const [isShowOptions, setIsShowOptions] = (0, react_1.useState)(false);
|
|
63
|
+
const [wrapperHeight, setWrapperHeight] = (0, react_1.useState)(40);
|
|
64
|
+
const [slashWidget, setSlashWidget] = (0, react_1.useState)('');
|
|
65
|
+
const inputRef = (0, react_1.useRef)(null);
|
|
66
|
+
(0, react_1.useEffect)(() => {
|
|
67
|
+
if (value.length === 1 && value.startsWith('/')) {
|
|
68
|
+
setIsShowOptions(true);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
setIsShowOptions(false);
|
|
72
|
+
}
|
|
73
|
+
// 自适应高度
|
|
74
|
+
if (inputRef && inputRef.current) {
|
|
75
|
+
inputRef.current.style.height = 0 + 'px';
|
|
76
|
+
const scrollHeight = inputRef.current.scrollHeight;
|
|
77
|
+
inputRef.current.style.height = Math.min(scrollHeight, 140) + 'px';
|
|
78
|
+
setWrapperHeight(scrollHeight + 20);
|
|
79
|
+
}
|
|
80
|
+
// 设置 slash widget 块
|
|
81
|
+
const regex = /\/(\w+)\s/;
|
|
82
|
+
const match = value.match(regex);
|
|
83
|
+
if (match) {
|
|
84
|
+
const keyword = match[0];
|
|
85
|
+
if (optionsList.find(({ name }) => name === keyword)) {
|
|
86
|
+
setSlashWidget(keyword);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
setSlashWidget('');
|
|
91
|
+
}
|
|
92
|
+
}, [inputRef, value]);
|
|
93
|
+
const handleInputChange = (0, react_1.useCallback)((value) => setValue(value), []);
|
|
94
|
+
const handleSend = (0, react_1.useCallback)(() => {
|
|
95
|
+
if (onSend) {
|
|
96
|
+
onSend(value);
|
|
97
|
+
setValue('');
|
|
98
|
+
}
|
|
99
|
+
}, [onSend, value]);
|
|
100
|
+
const acquireOptionsCheck = (0, react_1.useCallback)((value) => {
|
|
101
|
+
if (value) {
|
|
102
|
+
setValue(value);
|
|
103
|
+
setIsShowOptions(false);
|
|
104
|
+
if (inputRef && inputRef.current) {
|
|
105
|
+
inputRef.current.focus();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}, [inputRef]);
|
|
109
|
+
const optionsBottomPosition = (0, react_1.useMemo)(() => Math.min(181, Math.max(61, 21 + wrapperHeight)), [wrapperHeight]);
|
|
110
|
+
const handleKeyDown = (event) => {
|
|
111
|
+
if (event.key === 'Enter' && !event.nativeEvent.isComposing) {
|
|
112
|
+
if (!event.shiftKey) {
|
|
113
|
+
event.preventDefault();
|
|
114
|
+
handleSend();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
return (react_1.default.createElement("div", { className: styles.chat_input_container },
|
|
119
|
+
isShowOptions && react_1.default.createElement(InstructionOptions, { onClick: acquireOptionsCheck, bottom: optionsBottomPosition }),
|
|
120
|
+
react_1.default.createElement("div", { className: styles.header_operate },
|
|
121
|
+
react_1.default.createElement(Block, { icon: (0, components_1.getIcon)('add-comments'), name: '新对话' })),
|
|
122
|
+
react_1.default.createElement(components_1.Input, { ref: inputRef, placeholder: '可以问我任何问题,或键入主题 "/"', wrapperStyle: { height: wrapperHeight + 'px' }, value: value, type: 'textarea', onKeyDown: handleKeyDown, onValueChange: handleInputChange, className: styles.input_wrapper, addonBefore: slashWidget && (react_1.default.createElement("div", { className: styles.slash_widget_block },
|
|
123
|
+
react_1.default.createElement("span", null, slashWidget))), addonAfter: react_1.default.createElement("div", { className: (0, classnames_1.default)(styles.send_chat_btn, value.length && styles.active), onClick: () => handleSend() },
|
|
124
|
+
react_1.default.createElement(components_1.Icon, { className: (0, components_1.getIcon)('right') })) })));
|
|
125
|
+
};
|
|
126
|
+
exports.ChatInput = ChatInput;
|
|
127
|
+
//# sourceMappingURL=ChatInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatInput.js","sourceRoot":"","sources":["../../../src/browser/components/ChatInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatMoreActions.d.ts","sourceRoot":"","sources":["../../../src/browser/components/ChatMoreActions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAQvC,eAAO,MAAM,eAAe;;uBAwB3B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChatMoreActions = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
7
|
+
const components_1 = require("@opensumi/ide-core-browser/lib/components");
|
|
8
|
+
const styles = tslib_1.__importStar(require("./components.module.less"));
|
|
9
|
+
const lineVertical_1 = require("./lineVertical");
|
|
10
|
+
const ChatMoreActions = ({ children }) => {
|
|
11
|
+
const useUUID = (0, react_1.useMemo)(() => (0, ide_core_browser_1.uuid)(12), []);
|
|
12
|
+
return (react_1.default.createElement("div", { className: styles.ai_chat_more_actions_container },
|
|
13
|
+
react_1.default.createElement("div", { className: styles.ai_chat_message }, children),
|
|
14
|
+
react_1.default.createElement("div", { className: styles.more_actions },
|
|
15
|
+
react_1.default.createElement("div", { className: styles.side },
|
|
16
|
+
react_1.default.createElement(components_1.Icon, { className: (0, ide_core_browser_1.getExternalIcon)('history') }),
|
|
17
|
+
react_1.default.createElement("span", null, "\u91CD\u65B0\u751F\u6210")),
|
|
18
|
+
react_1.default.createElement("div", { className: styles.side },
|
|
19
|
+
react_1.default.createElement(components_1.Popover, { id: `ai-chat-thumbsup-${useUUID}`, title: '\u8D5E' },
|
|
20
|
+
react_1.default.createElement(components_1.Icon, { className: (0, ide_core_browser_1.getExternalIcon)('thumbsup') })),
|
|
21
|
+
react_1.default.createElement(lineVertical_1.LineVertical, null),
|
|
22
|
+
react_1.default.createElement(components_1.Popover, { id: `ai-chat-thumbsdown-${useUUID}`, title: '\u8E29' },
|
|
23
|
+
react_1.default.createElement(components_1.Icon, { className: (0, ide_core_browser_1.getExternalIcon)('thumbsdown') }))))));
|
|
24
|
+
};
|
|
25
|
+
exports.ChatMoreActions = ChatMoreActions;
|
|
26
|
+
//# sourceMappingURL=ChatMoreActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatMoreActions.js","sourceRoot":"","sources":["../../../src/browser/components/ChatMoreActions.tsx"],"names":[],"mappings":";;;;AAAA,uDAAuC;AAEvC,iEAAmE;AACnE,0EAA0E;AAE1E,yEAAmD;AACnD,iDAA8C;AAEvC,MAAM,eAAe,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAE9C,MAAM,OAAO,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,IAAA,uBAAI,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAE5C,OAAO,CACL,uCAAK,SAAS,EAAE,MAAM,CAAC,8BAA8B;QACnD,uCAAK,SAAS,EAAE,MAAM,CAAC,eAAe,IAAG,QAAQ,CAAO;QACxD,uCAAK,SAAS,EAAE,MAAM,CAAC,YAAY;YACjC,uCAAK,SAAS,EAAE,MAAM,CAAC,IAAI;gBACzB,8BAAC,iBAAI,IAAC,SAAS,EAAE,IAAA,kCAAe,EAAC,SAAS,CAAC,GAAI;gBAC/C,uEAAiB,CACb;YACN,uCAAK,SAAS,EAAE,MAAM,CAAC,IAAI;gBACzB,8BAAC,oBAAO,IAAC,EAAE,EAAE,oBAAoB,OAAO,EAAE,EAAE,KAAK,EAAC,QAAG;oBACnD,8BAAC,iBAAI,IAAC,SAAS,EAAE,IAAA,kCAAe,EAAC,UAAU,CAAC,GAAI,CACxC;gBACV,8BAAC,2BAAY,OAAG;gBAChB,8BAAC,oBAAO,IAAC,EAAE,EAAE,sBAAsB,OAAO,EAAE,EAAE,KAAK,EAAC,QAAG;oBACrD,8BAAC,iBAAI,IAAC,SAAS,EAAE,IAAA,kCAAe,EAAC,YAAY,CAAC,GAAI,CAC1C,CACN,CACF,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,eAAe,mBAwB1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Thinking.d.ts","sourceRoot":"","sources":["../../../src/browser/components/Thinking.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,eAAO,MAAM,QAAQ,yBAepB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Thinking = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
const components_1 = require("@opensumi/ide-core-browser/lib/components");
|
|
7
|
+
const progress_bar_1 = require("@opensumi/ide-core-browser/lib/progress/progress-bar");
|
|
8
|
+
const styles = tslib_1.__importStar(require("./components.module.less"));
|
|
9
|
+
const Thinking = () => (react_1.default.createElement("div", { className: styles.thinking_container },
|
|
10
|
+
react_1.default.createElement("div", { className: styles.content },
|
|
11
|
+
react_1.default.createElement("span", null, "Thinking...")),
|
|
12
|
+
react_1.default.createElement("div", { className: styles.stop },
|
|
13
|
+
react_1.default.createElement("span", { className: styles.progress_bar },
|
|
14
|
+
react_1.default.createElement(progress_bar_1.Progress, { loading: true })),
|
|
15
|
+
react_1.default.createElement("div", { className: styles.block },
|
|
16
|
+
react_1.default.createElement(components_1.Icon, { className: (0, components_1.getIcon)('pause') }),
|
|
17
|
+
react_1.default.createElement("span", null, "\u505C\u6B62")))));
|
|
18
|
+
exports.Thinking = Thinking;
|
|
19
|
+
//# sourceMappingURL=Thinking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Thinking.js","sourceRoot":"","sources":["../../../src/browser/components/Thinking.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAE1B,0EAA0E;AAC1E,uFAAgF;AAEhF,yEAAmD;AAE5C,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAC5B,uCAAK,SAAS,EAAE,MAAM,CAAC,kBAAkB;IACvC,uCAAK,SAAS,EAAE,MAAM,CAAC,OAAO;QAC5B,0DAAwB,CACpB;IACN,uCAAK,SAAS,EAAE,MAAM,CAAC,IAAI;QACzB,wCAAM,SAAS,EAAE,MAAM,CAAC,YAAY;YAClC,8BAAC,uBAAQ,IAAC,OAAO,EAAE,IAAI,GAAI,CACtB;QACP,uCAAK,SAAS,EAAE,MAAM,CAAC,KAAK;YAC1B,8BAAC,iBAAI,IAAC,SAAS,EAAE,IAAA,oBAAO,EAAC,OAAO,CAAC,GAAS;YAC1C,2DAAe,CACX,CACF,CACF,CACP,CAAC;AAfW,QAAA,QAAQ,YAenB"}
|