@opensumi/ide-ai-native 3.7.2-next-1740450374.0 → 3.8.1-next-1740452092.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/lib/browser/ai-core.contribution.d.ts.map +1 -1
- package/lib/browser/ai-core.contribution.js +4 -0
- package/lib/browser/ai-core.contribution.js.map +1 -1
- package/lib/browser/chat/chat.module.less +2 -2
- package/lib/browser/chat/chat.view.d.ts.map +1 -1
- package/lib/browser/chat/chat.view.js +14 -19
- package/lib/browser/chat/chat.view.js.map +1 -1
- package/lib/browser/components/chat-history.css +1 -1
- package/lib/browser/components/components.module.less +2 -2
- package/lib/browser/contrib/intelligent-completions/index.d.ts +12 -7
- package/lib/browser/contrib/intelligent-completions/index.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/index.js +13 -2
- package/lib/browser/contrib/intelligent-completions/index.js.map +1 -1
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.d.ts +2 -7
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.js +6 -106
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.js.map +1 -1
- package/lib/browser/contrib/intelligent-completions/view/base.d.ts +18 -0
- package/lib/browser/contrib/intelligent-completions/view/base.d.ts.map +1 -0
- package/lib/browser/contrib/intelligent-completions/view/base.js +18 -0
- package/lib/browser/contrib/intelligent-completions/view/base.js.map +1 -0
- package/lib/browser/contrib/intelligent-completions/view/code-edits-previewer.d.ts +19 -0
- package/lib/browser/contrib/intelligent-completions/view/code-edits-previewer.d.ts.map +1 -0
- package/lib/browser/contrib/intelligent-completions/view/code-edits-previewer.js +67 -0
- package/lib/browser/contrib/intelligent-completions/view/code-edits-previewer.js.map +1 -0
- package/lib/browser/contrib/intelligent-completions/view/default.d.ts +11 -0
- package/lib/browser/contrib/intelligent-completions/view/default.d.ts.map +1 -0
- package/lib/browser/contrib/intelligent-completions/view/default.js +104 -0
- package/lib/browser/contrib/intelligent-completions/view/default.js.map +1 -0
- package/lib/browser/contrib/intelligent-completions/view/legacy.d.ts +16 -0
- package/lib/browser/contrib/intelligent-completions/view/legacy.d.ts.map +1 -0
- package/lib/browser/contrib/intelligent-completions/view/legacy.js +126 -0
- package/lib/browser/contrib/intelligent-completions/view/legacy.js.map +1 -0
- package/lib/browser/layout/layout.module.less +1 -1
- package/lib/browser/mcp/tools/components/index.module.less +4 -0
- package/lib/browser/preferences/schema.d.ts.map +1 -1
- package/lib/browser/preferences/schema.js +7 -0
- package/lib/browser/preferences/schema.js.map +1 -1
- package/lib/browser/widget/inline-hint/inline-hint.controller.d.ts.map +1 -1
- package/lib/browser/widget/inline-hint/inline-hint.controller.js +4 -2
- package/lib/browser/widget/inline-hint/inline-hint.controller.js.map +1 -1
- package/package.json +23 -23
- package/src/browser/ai-core.contribution.ts +4 -0
- package/src/browser/chat/chat.module.less +2 -2
- package/src/browser/chat/chat.view.tsx +29 -30
- package/src/browser/components/chat-history.css +1 -1
- package/src/browser/components/components.module.less +2 -2
- package/src/browser/contrib/intelligent-completions/index.ts +27 -8
- package/src/browser/contrib/intelligent-completions/intelligent-completions.controller.ts +10 -165
- package/src/browser/contrib/intelligent-completions/view/base.ts +31 -0
- package/src/browser/contrib/intelligent-completions/view/code-edits-previewer.ts +69 -0
- package/src/browser/contrib/intelligent-completions/view/default.ts +146 -0
- package/src/browser/contrib/intelligent-completions/view/legacy.ts +182 -0
- package/src/browser/layout/layout.module.less +1 -1
- package/src/browser/mcp/tools/components/index.module.less +4 -0
- package/src/browser/preferences/schema.ts +8 -0
- package/src/browser/widget/inline-hint/inline-hint.controller.ts +5 -1
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LegacyCodeEditsView = void 0;
|
|
4
|
+
const ide_monaco_1 = require("@opensumi/ide-monaco");
|
|
5
|
+
const ide_utils_1 = require("@opensumi/ide-utils");
|
|
6
|
+
const strings_1 = require("@opensumi/ide-utils/lib/strings");
|
|
7
|
+
const rewrite_widget_1 = require("../../../widget/rewrite/rewrite-widget");
|
|
8
|
+
const additions_deletions_decoration_1 = require("../decoration/additions-deletions.decoration");
|
|
9
|
+
const multi_line_decoration_1 = require("../decoration/multi-line.decoration");
|
|
10
|
+
const diff_computer_1 = require("../diff-computer");
|
|
11
|
+
const base_1 = require("./base");
|
|
12
|
+
class LegacyCodeEditsView extends base_1.BaseCodeEditsView {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
this.multiLineDecorationModel = new multi_line_decoration_1.MultiLineDecorationModel(this.monacoEditor);
|
|
16
|
+
this.additionsDeletionsDecorationModel = new additions_deletions_decoration_1.AdditionsDeletionsDecorationModel(this.monacoEditor);
|
|
17
|
+
}
|
|
18
|
+
get model() {
|
|
19
|
+
return this.monacoEditor.getModel();
|
|
20
|
+
}
|
|
21
|
+
mount() {
|
|
22
|
+
this.addDispose(ide_utils_1.Event.any(this.monacoEditor.onDidChangeCursorPosition, this.monacoEditor.onDidChangeModelContent, this.monacoEditor.onDidBlurEditorWidget)(() => {
|
|
23
|
+
this.additionsDeletionsDecorationModel.clearAdditionsDecorations();
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
destroyRewriteWidget() {
|
|
27
|
+
if (this.rewriteWidget) {
|
|
28
|
+
this.rewriteWidget.dispose();
|
|
29
|
+
this.rewriteWidget = null;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async renderRewriteWidget(wordChanges, model, range, insertTextString) {
|
|
33
|
+
this.destroyRewriteWidget();
|
|
34
|
+
const cursorPosition = this.monacoEditor.getPosition();
|
|
35
|
+
if (!cursorPosition) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
this.rewriteWidget = this.injector.get(rewrite_widget_1.RewriteWidget, [this.monacoEditor]);
|
|
39
|
+
const startOffset = this.model.getOffsetAt({ lineNumber: range.startLineNumber, column: range.startColumn });
|
|
40
|
+
const endOffset = this.model.getOffsetAt({ lineNumber: range.endLineNumber, column: range.endColumn });
|
|
41
|
+
const allText = this.model.getValue();
|
|
42
|
+
// 这里是为了能在 rewrite widget 的 editor 当中完整的复用代码高亮与语法检测的能力
|
|
43
|
+
const newVirtualContent = allText.substring(0, startOffset) + insertTextString + allText.substring(endOffset);
|
|
44
|
+
const lineChangesMap = (0, diff_computer_1.wordChangesToLineChangesMap)(wordChanges, range, model);
|
|
45
|
+
await this.rewriteWidget.defered.promise;
|
|
46
|
+
const allLineChanges = Object.values(lineChangesMap).map((lineChanges) => ({
|
|
47
|
+
changes: lineChanges
|
|
48
|
+
.map((change) => change.filter((item) => item.value.trim() !== strings_1.empty))
|
|
49
|
+
.filter((change) => change.length > 0),
|
|
50
|
+
}));
|
|
51
|
+
this.rewriteWidget.setInsertText(insertTextString);
|
|
52
|
+
this.rewriteWidget.show({ position: cursorPosition });
|
|
53
|
+
this.rewriteWidget.setEditArea(range);
|
|
54
|
+
if (allLineChanges.every(({ changes }) => changes.every((change) => change.every(({ removed }) => removed)))) {
|
|
55
|
+
// 处理全是删除的情况
|
|
56
|
+
this.rewriteWidget.renderTextLineThrough(allLineChanges);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
this.rewriteWidget.renderVirtualEditor(newVirtualContent, wordChanges);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
render(completionModel) {
|
|
63
|
+
const { items } = completionModel;
|
|
64
|
+
const { range, insertText } = items[0];
|
|
65
|
+
// code edits 必须提供 range
|
|
66
|
+
if (!range) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const position = this.monacoEditor.getPosition();
|
|
70
|
+
const model = this.monacoEditor.getModel();
|
|
71
|
+
const insertTextString = insertText.toString();
|
|
72
|
+
const originalContent = model === null || model === void 0 ? void 0 : model.getValueInRange(range);
|
|
73
|
+
const eol = this.model.getEOL();
|
|
74
|
+
const changes = (0, diff_computer_1.computeMultiLineDiffChanges)(originalContent, insertTextString, this.monacoEditor, range.startLineNumber, eol);
|
|
75
|
+
if (!changes) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const { singleLineCharChanges, charChanges, wordChanges, isOnlyAddingToEachWord } = changes;
|
|
79
|
+
// 限制 changes 数量,超过这个数量直接显示智能重写
|
|
80
|
+
const maxCharChanges = 20;
|
|
81
|
+
const maxWordChanges = 20;
|
|
82
|
+
if (range &&
|
|
83
|
+
isOnlyAddingToEachWord &&
|
|
84
|
+
charChanges.length <= maxCharChanges &&
|
|
85
|
+
wordChanges.length <= maxWordChanges) {
|
|
86
|
+
const modificationsResult = this.multiLineDecorationModel.applyInlineDecorations(this.monacoEditor, (0, diff_computer_1.mergeMultiLineDiffChanges)(singleLineCharChanges, eol), range.startLineNumber, position);
|
|
87
|
+
this.multiLineDecorationModel.clearDecorations();
|
|
88
|
+
if (!modificationsResult) {
|
|
89
|
+
this.renderRewriteWidget(wordChanges, model, range, insertTextString);
|
|
90
|
+
}
|
|
91
|
+
else if (modificationsResult && modificationsResult.inlineMods) {
|
|
92
|
+
this.multiLineDecorationModel.updateLineModificationDecorations(modificationsResult.inlineMods);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
this.additionsDeletionsDecorationModel.updateDeletionsDecoration(wordChanges, range, eol);
|
|
97
|
+
this.renderRewriteWidget(wordChanges, model, range, insertTextString);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
accept() {
|
|
101
|
+
this.multiLineDecorationModel.accept();
|
|
102
|
+
if (this.rewriteWidget) {
|
|
103
|
+
this.rewriteWidget.accept();
|
|
104
|
+
const virtualEditor = this.rewriteWidget.getVirtualEditor();
|
|
105
|
+
// 采纳完之后将 virtualEditor 的 decorations 重新映射在 editor 上
|
|
106
|
+
if (virtualEditor) {
|
|
107
|
+
const editArea = this.rewriteWidget.getEditArea();
|
|
108
|
+
const decorations = virtualEditor.getDecorationsInRange(ide_monaco_1.Range.lift(editArea));
|
|
109
|
+
const preAddedDecorations = decorations === null || decorations === void 0 ? void 0 : decorations.filter((decoration) => decoration.options.description === rewrite_widget_1.REWRITE_DECORATION_INLINE_ADD);
|
|
110
|
+
if (preAddedDecorations) {
|
|
111
|
+
this.additionsDeletionsDecorationModel.updateAdditionsDecoration(preAddedDecorations.map((decoration) => decoration.range));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
discard() {
|
|
117
|
+
this.hide();
|
|
118
|
+
}
|
|
119
|
+
hide() {
|
|
120
|
+
this.multiLineDecorationModel.clearDecorations();
|
|
121
|
+
this.additionsDeletionsDecorationModel.clearDeletionsDecorations();
|
|
122
|
+
this.destroyRewriteWidget();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
exports.LegacyCodeEditsView = LegacyCodeEditsView;
|
|
126
|
+
//# sourceMappingURL=legacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../../../../src/browser/contrib/intelligent-completions/view/legacy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/browser/preferences/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/browser/preferences/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAKzF,oBAAY,sBAAsB;IAChC,UAAU,eAAe;IACzB,UAAU,eAAe;CAC1B;AAED,eAAO,MAAM,wBAAwB,EAAE,gBAgItC,CAAC"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.aiNativePreferenceSchema = exports.EInlineDiffPreviewMode = void 0;
|
|
4
4
|
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
5
5
|
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
6
|
+
const intelligent_completions_1 = require("../contrib/intelligent-completions");
|
|
6
7
|
var EInlineDiffPreviewMode;
|
|
7
8
|
(function (EInlineDiffPreviewMode) {
|
|
8
9
|
EInlineDiffPreviewMode["inlineLive"] = "inlineLive";
|
|
@@ -60,6 +61,12 @@ exports.aiNativePreferenceSchema = {
|
|
|
60
61
|
type: 'boolean',
|
|
61
62
|
default: false,
|
|
62
63
|
},
|
|
64
|
+
[ide_core_browser_1.AINativeSettingSectionsId.CodeEditsRenderType]: {
|
|
65
|
+
type: 'string',
|
|
66
|
+
default: intelligent_completions_1.CodeEditsRenderType.Default,
|
|
67
|
+
enum: [intelligent_completions_1.CodeEditsRenderType.Legacy, intelligent_completions_1.CodeEditsRenderType.Default],
|
|
68
|
+
description: (0, ide_core_common_1.localize)('preference.ai.native.codeEdits.renderType'),
|
|
69
|
+
},
|
|
63
70
|
[ide_core_browser_1.AINativeSettingSectionsId.LLMModelSelection]: {
|
|
64
71
|
type: 'string',
|
|
65
72
|
default: 'deepseek',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/browser/preferences/schema.ts"],"names":[],"mappings":";;;AAAA,iEAAyF;AACzF,+DAAqD;AAErD,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,mDAAyB,CAAA;IACzB,mDAAyB,CAAA;AAC3B,CAAC,EAHW,sBAAsB,sCAAtB,sBAAsB,QAGjC;AAEY,QAAA,wBAAwB,GAAqB;IACxD,UAAU,EAAE;QACV,CAAC,4CAAyB,CAAC,qBAAqB,CAAC,EAAE;YACjD,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,sBAAsB,CAAC,UAAU,EAAE,sBAAsB,CAAC,UAAU,CAAC;YAC5E,gBAAgB,EAAE;gBAChB,IAAA,0BAAQ,EAAC,yDAAyD,CAAC;gBACnE,IAAA,0BAAQ,EAAC,yDAAyD,CAAC;aACpE;YACD,OAAO,EAAE,sBAAsB,CAAC,UAAU;SAC3C;QACD,CAAC,4CAAyB,CAAC,qBAAqB,CAAC,EAAE;YACjD,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SACd;QACD,CAAC,4CAAyB,CAAC,2BAA2B,CAAC,EAAE;YACvD,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SACd;QACD,CAAC,4CAAyB,CAAC,+BAA+B,CAAC,EAAE;YAC3D,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SACd;QACD,CAAC,4CAAyB,CAAC,eAAe,CAAC,EAAE;YAC3C,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;YACpC,OAAO,EAAE,SAAS;SACnB;QACD,CAAC,4CAAyB,CAAC,8CAA8C,CAAC,EAAE;YAC1E,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SACd;QACD,CAAC,4CAAyB,CAAC,kCAAkC,CAAC,EAAE;YAC9D,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,GAAG;SACb;QACD,CAAC,4CAAyB,CAAC,kCAAkC,CAAC,EAAE;YAC9D,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SACd;QACD,CAAC,4CAAyB,CAAC,mCAAmC,CAAC,EAAE;YAC/D,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;QACD,CAAC,4CAAyB,CAAC,mBAAmB,CAAC,EAAE;YAC/C,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;QACD,CAAC,4CAAyB,CAAC,mBAAmB,CAAC,EAAE;YAC/C,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;QACD,CAAC,4CAAyB,CAAC,iBAAiB,CAAC,EAAE;YAC7C,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC;YACzC,WAAW,EAAE,IAAA,0BAAQ,EAAC,sDAAsD,CAAC;SAC9E;QACD,CAAC,4CAAyB,CAAC,cAAc,CAAC,EAAE;YAC1C,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,IAAA,0BAAQ,EAAC,kDAAkD,CAAC;SAC1E;QACD,CAAC,4CAAyB,CAAC,eAAe,CAAC,EAAE;YAC3C,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,IAAA,0BAAQ,EAAC,mDAAmD,CAAC;SAC3E;QACD,CAAC,4CAAyB,CAAC,YAAY,CAAC,EAAE;YACxC,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,IAAA,0BAAQ,EAAC,gDAAgD,CAAC;SACxE;QACD,CAAC,4CAAyB,CAAC,aAAa,CAAC,EAAE;YACzC,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,IAAA,0BAAQ,EAAC,iDAAiD,CAAC;SACzE;QACD,CAAC,4CAAyB,CAAC,UAAU,CAAC,EAAE;YACtC,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,IAAA,0BAAQ,EAAC,8CAA8C,CAAC;YACrE,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC;gBACrC,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,IAAA,0BAAQ,EAAC,mDAAmD,CAAC;qBAC3E;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,IAAA,0BAAQ,EAAC,sDAAsD,CAAC;qBAC9E;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;yBACf;wBACD,WAAW,EAAE,IAAA,0BAAQ,EAAC,mDAAmD,CAAC;qBAC3E;oBACD,GAAG,EAAE;wBACH,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE;4BACpB,IAAI,EAAE,QAAQ;yBACf;wBACD,WAAW,EAAE,IAAA,0BAAQ,EAAC,kDAAkD,CAAC;wBACzE,OAAO,EAAE,EAAE;qBACZ;iBACF;aACF;SACF;QACD,CAAC,4CAAyB,CAAC,eAAe,CAAC,EAAE;YAC3C,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;QACD,CAAC,4CAAyB,CAAC,YAAY,CAAC,EAAE;YACxC,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,IAAA,0BAAQ,EAAC,qDAAqD,CAAC;SAC7E;KACF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/browser/preferences/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-hint.controller.d.ts","sourceRoot":"","sources":["../../../../src/browser/widget/inline-hint/inline-hint.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAMlE,qBAAa,oBAAqB,SAAQ,4BAA4B;IACpE,gBAAuB,EAAE,mCAAmC;WAE9C,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,oBAAoB,GAAG,IAAI;IAInE,OAAO,KAAK,wBAAwB,GAEnC;IAED,KAAK,IAAI,WAAW;IAIpB,OAAO,CAAC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"inline-hint.controller.d.ts","sourceRoot":"","sources":["../../../../src/browser/widget/inline-hint/inline-hint.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAMlE,qBAAa,oBAAqB,SAAQ,4BAA4B;IACpE,gBAAuB,EAAE,mCAAmC;WAE9C,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,oBAAoB,GAAG,IAAI;IAInE,OAAO,KAAK,wBAAwB,GAEnC;IAED,KAAK,IAAI,WAAW;IAIpB,OAAO,CAAC,uBAAuB;CA6FhC"}
|
|
@@ -27,11 +27,13 @@ class InlineHintController extends base_1.BaseAIMonacoEditorController {
|
|
|
27
27
|
hintDisposable.dispose();
|
|
28
28
|
};
|
|
29
29
|
const showHint = (position) => {
|
|
30
|
-
var _a;
|
|
31
30
|
const model = monacoEditor.getModel();
|
|
32
31
|
if (!model) {
|
|
33
32
|
return;
|
|
34
33
|
}
|
|
34
|
+
if (position.lineNumber > model.getLineCount()) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
35
37
|
if (this.inlineCompletionsService.isVisibleCompletion) {
|
|
36
38
|
return;
|
|
37
39
|
}
|
|
@@ -39,7 +41,7 @@ class InlineHintController extends base_1.BaseAIMonacoEditorController {
|
|
|
39
41
|
const hasPreviewDecoration = decorations.some((dec) => dec.options.description === internal_type_1.InlineInputPreviewDecorationID);
|
|
40
42
|
if (!hasPreviewDecoration) {
|
|
41
43
|
const inlineHintLineDecoration = this.injector.get(inline_hint_line_widget_1.InlineHintLineDecoration, [monacoEditor]);
|
|
42
|
-
const lineContent =
|
|
44
|
+
const lineContent = model.getLineContent(position.lineNumber);
|
|
43
45
|
if (!(lineContent === null || lineContent === void 0 ? void 0 : lineContent.trim())) {
|
|
44
46
|
inlineHintLineDecoration.show(position);
|
|
45
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-hint.controller.js","sourceRoot":"","sources":["../../../../src/browser/widget/inline-hint/inline-hint.controller.ts"],"names":[],"mappings":";;;;AAAA,uEAAuC;AAEvC,+DAAoE;AACpE,qEAA+C;AAG/C,mEAA+D;AAC/D,6CAAkE;AAClE,4GAAuG;AACvG,oDAAkE;AAElE,uEAAqE;AAErE,MAAa,oBAAqB,SAAQ,mCAA4B;IAG7D,MAAM,CAAC,GAAG,CAAC,MAAmB;QACnC,OAAO,MAAM,CAAC,eAAe,CAAuB,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,IAAY,wBAAwB;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,6CAAoB,CAAC,CAAC;IACjD,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzD,CAAC;IAEO,uBAAuB,CAAC,YAAgC;QAC9D,MAAM,cAAc,GAAG,IAAI,4BAAU,EAAE,CAAC;QACxC,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,wCAAkB,EAAE,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAEnG,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,cAAc,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAG,CAAC,QAAyB,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"inline-hint.controller.js","sourceRoot":"","sources":["../../../../src/browser/widget/inline-hint/inline-hint.controller.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensumi/ide-ai-native",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.8.1-next-1740452092.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"lib",
|
|
6
6
|
"src"
|
|
@@ -23,26 +23,26 @@
|
|
|
23
23
|
"@ai-sdk/deepseek": "^0.1.8",
|
|
24
24
|
"@ai-sdk/openai": "^1.1.9",
|
|
25
25
|
"@modelcontextprotocol/sdk": "^1.3.1",
|
|
26
|
-
"@opensumi/ide-addons": "3.
|
|
27
|
-
"@opensumi/ide-components": "3.
|
|
28
|
-
"@opensumi/ide-connection": "3.
|
|
29
|
-
"@opensumi/ide-core-common": "3.
|
|
30
|
-
"@opensumi/ide-core-node": "3.
|
|
31
|
-
"@opensumi/ide-debug": "3.
|
|
32
|
-
"@opensumi/ide-design": "3.
|
|
33
|
-
"@opensumi/ide-editor": "3.
|
|
34
|
-
"@opensumi/ide-file-search": "3.
|
|
35
|
-
"@opensumi/ide-file-service": "3.
|
|
36
|
-
"@opensumi/ide-main-layout": "3.
|
|
37
|
-
"@opensumi/ide-markers": "3.
|
|
38
|
-
"@opensumi/ide-monaco": "3.
|
|
39
|
-
"@opensumi/ide-overlay": "3.
|
|
40
|
-
"@opensumi/ide-preferences": "3.
|
|
41
|
-
"@opensumi/ide-search": "3.
|
|
42
|
-
"@opensumi/ide-terminal-next": "3.
|
|
43
|
-
"@opensumi/ide-theme": "3.
|
|
44
|
-
"@opensumi/ide-utils": "3.
|
|
45
|
-
"@opensumi/ide-workspace": "3.
|
|
26
|
+
"@opensumi/ide-addons": "3.8.1-next-1740452092.0",
|
|
27
|
+
"@opensumi/ide-components": "3.8.1-next-1740452092.0",
|
|
28
|
+
"@opensumi/ide-connection": "3.8.1-next-1740452092.0",
|
|
29
|
+
"@opensumi/ide-core-common": "3.8.1-next-1740452092.0",
|
|
30
|
+
"@opensumi/ide-core-node": "3.8.1-next-1740452092.0",
|
|
31
|
+
"@opensumi/ide-debug": "3.8.1-next-1740452092.0",
|
|
32
|
+
"@opensumi/ide-design": "3.8.1-next-1740452092.0",
|
|
33
|
+
"@opensumi/ide-editor": "3.8.1-next-1740452092.0",
|
|
34
|
+
"@opensumi/ide-file-search": "3.8.1-next-1740452092.0",
|
|
35
|
+
"@opensumi/ide-file-service": "3.8.1-next-1740452092.0",
|
|
36
|
+
"@opensumi/ide-main-layout": "3.8.1-next-1740452092.0",
|
|
37
|
+
"@opensumi/ide-markers": "3.8.1-next-1740452092.0",
|
|
38
|
+
"@opensumi/ide-monaco": "3.8.1-next-1740452092.0",
|
|
39
|
+
"@opensumi/ide-overlay": "3.8.1-next-1740452092.0",
|
|
40
|
+
"@opensumi/ide-preferences": "3.8.1-next-1740452092.0",
|
|
41
|
+
"@opensumi/ide-search": "3.8.1-next-1740452092.0",
|
|
42
|
+
"@opensumi/ide-terminal-next": "3.8.1-next-1740452092.0",
|
|
43
|
+
"@opensumi/ide-theme": "3.8.1-next-1740452092.0",
|
|
44
|
+
"@opensumi/ide-utils": "3.8.1-next-1740452092.0",
|
|
45
|
+
"@opensumi/ide-workspace": "3.8.1-next-1740452092.0",
|
|
46
46
|
"@xterm/xterm": "5.5.0",
|
|
47
47
|
"ai": "^4.1.21",
|
|
48
48
|
"ansi-regex": "^2.0.0",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"zod-to-json-schema": "^3.24.1"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@opensumi/ide-core-browser": "3.
|
|
60
|
+
"@opensumi/ide-core-browser": "3.8.1-next-1740452092.0"
|
|
61
61
|
},
|
|
62
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "7141eb9be9489c0442a31e595cfff5d2e420e0de"
|
|
63
63
|
}
|
|
@@ -424,6 +424,10 @@ export class AINativeBrowserContribution
|
|
|
424
424
|
id: AINativeSettingSectionsId.CodeEditsTyping,
|
|
425
425
|
localized: 'preference.ai.native.codeEdits.typing',
|
|
426
426
|
},
|
|
427
|
+
{
|
|
428
|
+
id: AINativeSettingSectionsId.CodeEditsRenderType,
|
|
429
|
+
localized: 'preference.ai.native.codeEdits.renderType',
|
|
430
|
+
},
|
|
427
431
|
{
|
|
428
432
|
id: AINativeSettingSectionsId.SystemPrompt,
|
|
429
433
|
localized: 'preference.ai.native.chat.system.prompt',
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
height: 100%;
|
|
5
5
|
border-radius: 12px;
|
|
6
6
|
overflow: hidden;
|
|
7
|
-
font-size:
|
|
7
|
+
font-size: 12px;
|
|
8
8
|
user-select: text;
|
|
9
9
|
|
|
10
10
|
border-top-left-radius: 12px;
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
|
|
76
76
|
.header_container {
|
|
77
77
|
height: 36px;
|
|
78
|
-
padding: 8px
|
|
78
|
+
padding: 8px 8px 8px 16px;
|
|
79
79
|
box-sizing: border-box;
|
|
80
80
|
background-color: var(--editorGroupHeader-tabsBackground);
|
|
81
81
|
user-select: none;
|
|
@@ -83,12 +83,9 @@ export const AIChatView = () => {
|
|
|
83
83
|
const promptProvider = useInjectable<ChatAgentPromptProvider>(ChatAgentPromptProvider);
|
|
84
84
|
|
|
85
85
|
const layoutService = useInjectable<IMainLayoutService>(IMainLayoutService);
|
|
86
|
-
const mcpServerProxyService = useInjectable<MCPServerProxyService>(TokenMCPServerProxyService);
|
|
87
86
|
const msgHistoryManager = aiChatService.sessionModel.history;
|
|
88
87
|
const containerRef = React.useRef<HTMLDivElement>(null);
|
|
89
88
|
const chatInputRef = React.useRef<{ setInputValue: (v: string) => void } | null>(null);
|
|
90
|
-
const dialogService = useInjectable<IDialogService>(IDialogService);
|
|
91
|
-
const aiNativeConfigService = useInjectable<AINativeConfigService>(AINativeConfigService);
|
|
92
89
|
|
|
93
90
|
const [shortcutCommands, setShortcutCommands] = React.useState<ChatSlashCommandItemModel[]>([]);
|
|
94
91
|
|
|
@@ -110,7 +107,6 @@ export const AIChatView = () => {
|
|
|
110
107
|
const [defaultAgentId, setDefaultAgentId] = React.useState<string>('');
|
|
111
108
|
const [command, setCommand] = React.useState('');
|
|
112
109
|
const [theme, setTheme] = React.useState<string | null>(null);
|
|
113
|
-
const [mcpToolsCount, setMcpToolsCount] = React.useState<number>(0);
|
|
114
110
|
|
|
115
111
|
React.useEffect(() => {
|
|
116
112
|
const featureSlashCommands = chatFeatureRegistry.getAllShortcutSlashCommand();
|
|
@@ -662,25 +658,6 @@ export const AIChatView = () => {
|
|
|
662
658
|
};
|
|
663
659
|
}, [aiChatService.sessionModel]);
|
|
664
660
|
|
|
665
|
-
useEventEffect(
|
|
666
|
-
mcpServerProxyService.onChangeMCPServers,
|
|
667
|
-
() => {
|
|
668
|
-
mcpServerProxyService.getAllMCPTools().then((tools) => {
|
|
669
|
-
setMcpToolsCount(tools.length);
|
|
670
|
-
});
|
|
671
|
-
},
|
|
672
|
-
[mcpServerProxyService],
|
|
673
|
-
);
|
|
674
|
-
|
|
675
|
-
const handleShowMCPTools = React.useCallback(async () => {
|
|
676
|
-
const tools = await mcpServerProxyService.getAllMCPTools();
|
|
677
|
-
dialogService.open({
|
|
678
|
-
message: <MCPToolsDialog tools={tools} />,
|
|
679
|
-
type: MessageType.Empty,
|
|
680
|
-
buttons: ['关闭'],
|
|
681
|
-
});
|
|
682
|
-
}, [mcpServerProxyService, dialogService]);
|
|
683
|
-
|
|
684
661
|
return (
|
|
685
662
|
<div id={styles.ai_chat_view}>
|
|
686
663
|
<div className={styles.header_container}>
|
|
@@ -720,13 +697,6 @@ export const AIChatView = () => {
|
|
|
720
697
|
</Popover>
|
|
721
698
|
))}
|
|
722
699
|
</div>
|
|
723
|
-
<div className={styles.header_operate_right}>
|
|
724
|
-
{aiNativeConfigService.capabilities.supportsMCP && (
|
|
725
|
-
<div className={styles.tag} onClick={handleShowMCPTools}>
|
|
726
|
-
{`MCP Tools: ${mcpToolsCount}`}
|
|
727
|
-
</div>
|
|
728
|
-
)}
|
|
729
|
-
</div>
|
|
730
700
|
</div>
|
|
731
701
|
<ChatInputWrapperRender
|
|
732
702
|
onSend={(value, agentId, command) =>
|
|
@@ -765,6 +735,9 @@ export function DefaultChatViewHeader({
|
|
|
765
735
|
handleClear: () => any;
|
|
766
736
|
handleCloseChatView: () => any;
|
|
767
737
|
}) {
|
|
738
|
+
const dialogService = useInjectable<IDialogService>(IDialogService);
|
|
739
|
+
const aiNativeConfigService = useInjectable<AINativeConfigService>(AINativeConfigService);
|
|
740
|
+
const mcpServerProxyService = useInjectable<MCPServerProxyService>(TokenMCPServerProxyService);
|
|
768
741
|
const aiChatService = useInjectable<ChatInternalService>(IChatInternalService);
|
|
769
742
|
const [historyList, setHistoryList] = React.useState<IChatHistoryItem[]>([]);
|
|
770
743
|
const [currentTitle, setCurrentTitle] = React.useState<string>('');
|
|
@@ -786,6 +759,15 @@ export function DefaultChatViewHeader({
|
|
|
786
759
|
[aiChatService],
|
|
787
760
|
);
|
|
788
761
|
|
|
762
|
+
const handleShowMCPTools = React.useCallback(async () => {
|
|
763
|
+
const tools = await mcpServerProxyService.getAllMCPTools();
|
|
764
|
+
dialogService.open({
|
|
765
|
+
message: <MCPToolsDialog tools={tools} />,
|
|
766
|
+
type: MessageType.Empty,
|
|
767
|
+
buttons: ['关闭'],
|
|
768
|
+
});
|
|
769
|
+
}, [mcpServerProxyService, dialogService]);
|
|
770
|
+
|
|
789
771
|
React.useEffect(() => {
|
|
790
772
|
const getHistoryList = () => {
|
|
791
773
|
const currentMessages = aiChatService.sessionModel.history.getMessages();
|
|
@@ -865,6 +847,23 @@ export function DefaultChatViewHeader({
|
|
|
865
847
|
ariaLabel={localize('aiNative.operate.clear.title')}
|
|
866
848
|
/>
|
|
867
849
|
</Popover>
|
|
850
|
+
{aiNativeConfigService.capabilities.supportsMCP && (
|
|
851
|
+
<Popover
|
|
852
|
+
overlayClassName={styles.popover_icon}
|
|
853
|
+
id={'ai-chat-header-tools'}
|
|
854
|
+
position={PopoverPosition.left}
|
|
855
|
+
title={localize('aiNative.operate.tools.title')}
|
|
856
|
+
>
|
|
857
|
+
<EnhanceIcon
|
|
858
|
+
wrapperClassName={styles.action_btn}
|
|
859
|
+
className={getIcon('menubar-tool')}
|
|
860
|
+
onClick={handleShowMCPTools}
|
|
861
|
+
tabIndex={0}
|
|
862
|
+
role='button'
|
|
863
|
+
ariaLabel={localize('aiNative.operate.tools.title')}
|
|
864
|
+
/>
|
|
865
|
+
</Popover>
|
|
866
|
+
)}
|
|
868
867
|
<Popover
|
|
869
868
|
overlayClassName={styles.popover_icon}
|
|
870
869
|
id={'ai-chat-header-close'}
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
.thinking_text {
|
|
38
|
-
font-size:
|
|
38
|
+
font-size: 12px;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
.bottom_container {
|
|
@@ -480,7 +480,7 @@
|
|
|
480
480
|
* welcome
|
|
481
481
|
*/
|
|
482
482
|
.chat_welcome_head {
|
|
483
|
-
font-size:
|
|
483
|
+
font-size: 12px;
|
|
484
484
|
line-height: 22px;
|
|
485
485
|
a {
|
|
486
486
|
color: #3c8dff;
|
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
import { Disposable, ECodeEditsSourceTyping } from '@opensumi/ide-core-common';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
IModelContentChangedEvent,
|
|
4
|
+
IPosition,
|
|
5
|
+
IRange,
|
|
6
|
+
InlineCompletion,
|
|
7
|
+
InlineCompletions,
|
|
8
|
+
} from '@opensumi/ide-monaco';
|
|
3
9
|
|
|
4
10
|
import { ITriggerData } from './source/trigger.source';
|
|
5
11
|
|
|
6
12
|
import type { ILineChangeData } from './source/line-change.source';
|
|
7
13
|
import type { ILinterErrorData } from './source/lint-error.source';
|
|
8
14
|
|
|
15
|
+
export enum CodeEditsRenderType {
|
|
16
|
+
Legacy = 'legacy',
|
|
17
|
+
Default = 'default',
|
|
18
|
+
}
|
|
19
|
+
|
|
9
20
|
/**
|
|
10
21
|
* 有效弃用时间(毫秒)
|
|
11
22
|
* 在可见的情况下超过 750ms 弃用才算有效数据,否则视为无效数据
|
|
@@ -31,7 +42,7 @@ export interface ICodeEditsContextBean {
|
|
|
31
42
|
};
|
|
32
43
|
}
|
|
33
44
|
|
|
34
|
-
export interface ICodeEdit {
|
|
45
|
+
export interface ICodeEdit extends InlineCompletion {
|
|
35
46
|
/**
|
|
36
47
|
* 插入的文本
|
|
37
48
|
*/
|
|
@@ -41,16 +52,24 @@ export interface ICodeEdit {
|
|
|
41
52
|
*/
|
|
42
53
|
readonly range: IRange;
|
|
43
54
|
}
|
|
44
|
-
|
|
45
|
-
|
|
55
|
+
|
|
56
|
+
export interface ICodeEditsResult<T extends ICodeEdit = ICodeEdit> extends InlineCompletions<T> {
|
|
57
|
+
readonly items: readonly T[];
|
|
46
58
|
}
|
|
47
59
|
|
|
48
|
-
export class CodeEditsResultValue extends Disposable {
|
|
49
|
-
constructor(private readonly raw: ICodeEditsResult) {
|
|
60
|
+
export class CodeEditsResultValue<T extends ICodeEdit = ICodeEdit> extends Disposable {
|
|
61
|
+
constructor(private readonly raw: ICodeEditsResult<T>) {
|
|
50
62
|
super();
|
|
51
63
|
}
|
|
52
64
|
|
|
53
|
-
public get items():
|
|
54
|
-
return this.raw.items
|
|
65
|
+
public get items(): T[] {
|
|
66
|
+
return this.raw.items.map((item) => ({
|
|
67
|
+
...item,
|
|
68
|
+
isInlineEdit: true,
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
public get range(): IRange {
|
|
73
|
+
return this.raw.items[0].range;
|
|
55
74
|
}
|
|
56
75
|
}
|