@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.
Files changed (57) hide show
  1. package/lib/browser/ai-core.contribution.d.ts.map +1 -1
  2. package/lib/browser/ai-core.contribution.js +4 -0
  3. package/lib/browser/ai-core.contribution.js.map +1 -1
  4. package/lib/browser/chat/chat.module.less +2 -2
  5. package/lib/browser/chat/chat.view.d.ts.map +1 -1
  6. package/lib/browser/chat/chat.view.js +14 -19
  7. package/lib/browser/chat/chat.view.js.map +1 -1
  8. package/lib/browser/components/chat-history.css +1 -1
  9. package/lib/browser/components/components.module.less +2 -2
  10. package/lib/browser/contrib/intelligent-completions/index.d.ts +12 -7
  11. package/lib/browser/contrib/intelligent-completions/index.d.ts.map +1 -1
  12. package/lib/browser/contrib/intelligent-completions/index.js +13 -2
  13. package/lib/browser/contrib/intelligent-completions/index.js.map +1 -1
  14. package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.d.ts +2 -7
  15. package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.d.ts.map +1 -1
  16. package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.js +6 -106
  17. package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.js.map +1 -1
  18. package/lib/browser/contrib/intelligent-completions/view/base.d.ts +18 -0
  19. package/lib/browser/contrib/intelligent-completions/view/base.d.ts.map +1 -0
  20. package/lib/browser/contrib/intelligent-completions/view/base.js +18 -0
  21. package/lib/browser/contrib/intelligent-completions/view/base.js.map +1 -0
  22. package/lib/browser/contrib/intelligent-completions/view/code-edits-previewer.d.ts +19 -0
  23. package/lib/browser/contrib/intelligent-completions/view/code-edits-previewer.d.ts.map +1 -0
  24. package/lib/browser/contrib/intelligent-completions/view/code-edits-previewer.js +67 -0
  25. package/lib/browser/contrib/intelligent-completions/view/code-edits-previewer.js.map +1 -0
  26. package/lib/browser/contrib/intelligent-completions/view/default.d.ts +11 -0
  27. package/lib/browser/contrib/intelligent-completions/view/default.d.ts.map +1 -0
  28. package/lib/browser/contrib/intelligent-completions/view/default.js +104 -0
  29. package/lib/browser/contrib/intelligent-completions/view/default.js.map +1 -0
  30. package/lib/browser/contrib/intelligent-completions/view/legacy.d.ts +16 -0
  31. package/lib/browser/contrib/intelligent-completions/view/legacy.d.ts.map +1 -0
  32. package/lib/browser/contrib/intelligent-completions/view/legacy.js +126 -0
  33. package/lib/browser/contrib/intelligent-completions/view/legacy.js.map +1 -0
  34. package/lib/browser/layout/layout.module.less +1 -1
  35. package/lib/browser/mcp/tools/components/index.module.less +4 -0
  36. package/lib/browser/preferences/schema.d.ts.map +1 -1
  37. package/lib/browser/preferences/schema.js +7 -0
  38. package/lib/browser/preferences/schema.js.map +1 -1
  39. package/lib/browser/widget/inline-hint/inline-hint.controller.d.ts.map +1 -1
  40. package/lib/browser/widget/inline-hint/inline-hint.controller.js +4 -2
  41. package/lib/browser/widget/inline-hint/inline-hint.controller.js.map +1 -1
  42. package/package.json +23 -23
  43. package/src/browser/ai-core.contribution.ts +4 -0
  44. package/src/browser/chat/chat.module.less +2 -2
  45. package/src/browser/chat/chat.view.tsx +29 -30
  46. package/src/browser/components/chat-history.css +1 -1
  47. package/src/browser/components/components.module.less +2 -2
  48. package/src/browser/contrib/intelligent-completions/index.ts +27 -8
  49. package/src/browser/contrib/intelligent-completions/intelligent-completions.controller.ts +10 -165
  50. package/src/browser/contrib/intelligent-completions/view/base.ts +31 -0
  51. package/src/browser/contrib/intelligent-completions/view/code-edits-previewer.ts +69 -0
  52. package/src/browser/contrib/intelligent-completions/view/default.ts +146 -0
  53. package/src/browser/contrib/intelligent-completions/view/legacy.ts +182 -0
  54. package/src/browser/layout/layout.module.less +1 -1
  55. package/src/browser/mcp/tools/components/index.module.less +4 -0
  56. package/src/browser/preferences/schema.ts +8 -0
  57. 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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"}
@@ -23,7 +23,7 @@
23
23
  .rce-mbox-text {
24
24
  line-height: 18px;
25
25
  width: inherit;
26
- font-size: 14px;
26
+ font-size: 12px;
27
27
  }
28
28
 
29
29
  .rce-smsg {
@@ -132,6 +132,10 @@
132
132
  }
133
133
 
134
134
  .run_cmd_tool {
135
+ background-color: var(--design-chatInput-background);
136
+ padding: 10px;
137
+ border-radius: 4px;
138
+
135
139
  .command_title {
136
140
  display: flex;
137
141
  align-items: center;
@@ -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;AAGzF,oBAAY,sBAAsB;IAChC,UAAU,eAAe;IACzB,UAAU,eAAe;CAC1B;AAED,eAAO,MAAM,wBAAwB,EAAE,gBA0HtC,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":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/browser/preferences/schema.ts"],"names":[],"mappings":";;;AAAA,iEAAyF;AACzF,+DAAqD;AAErD,gFAAyE;AAEzE,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,mBAAmB,CAAC,EAAE;YAC/C,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,6CAAmB,CAAC,OAAO;YACpC,IAAI,EAAE,CAAC,6CAAmB,CAAC,MAAM,EAAE,6CAAmB,CAAC,OAAO,CAAC;YAC/D,WAAW,EAAE,IAAA,0BAAQ,EAAC,2CAA2C,CAAC;SACnE;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 +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;CAyFhC"}
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 = (_a = monacoEditor.getModel()) === null || _a === void 0 ? void 0 : _a.getLineContent(position.lineNumber);
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":"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"}
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;YAC7C,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YAED,IAAI,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC;gBAC/C,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,EAAE,CAAC;gBACtD,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAG,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAClE,MAAM,oBAAoB,GAAG,WAAW,CAAC,IAAI,CAC3C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,8CAA8B,CACpE,CAAC;YACF,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1B,MAAM,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kDAAwB,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC7F,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC9D,IAAI,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,EAAE,CAAA,EAAE,CAAC;oBACzB,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1C,CAAC;gBAED,kBAAkB,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAEvD,cAAc,CAAC,UAAU,CACvB,wBAAwB,CAAC,SAAS,CAAC,GAAG,EAAE;oBACtC,qBAAqB;oBACrB,wBAAwB;oBACxB,kBAAkB,CAAC,yBAAyB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1D,CAAC,CAAC,CACH,CAAC;gBAEF,cAAc,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,gBAAgB,GAAG,IAAA,kBAAQ,EAAC,KAAK,EAAE,QAAyB,EAAE,EAAE;YACpE,QAAQ,EAAE,CAAC;YACX,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAC/B,YAAY,CAAC,yBAAyB,CAAC,CAAC,CAA4C,EAAE,EAAE;YACtF,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAC/B,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAA0C,EAAE,EAAE;;YAClF,gBAAgB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC,aAAa,EAAE,MAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1G,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAC/B,YAAY,CAAC,sBAAsB,CAAC,GAAG,EAAE;YACvC,MAAM,eAAe,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;YAEnD,IAAI,eAAe,EAAE,CAAC;gBACpB,QAAQ,EAAE,CAAC;gBACX,QAAQ,CAAC,eAAe,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAC/B,YAAY,CAAC,qBAAqB,CAAC,GAAG,EAAE;YACtC,QAAQ,EAAE,CAAC;QACb,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAC/B,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE;YACtD,IAAI,CAAC,EAAE,CAAC;gBACN,QAAQ,EAAE,CAAC;YACb,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAElD,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;;AA3GH,oDA4GC;AA3GwB,uBAAE,GAAG,+BAA+B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensumi/ide-ai-native",
3
- "version": "3.7.2-next-1740450374.0",
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.7.2-next-1740450374.0",
27
- "@opensumi/ide-components": "3.7.2-next-1740450374.0",
28
- "@opensumi/ide-connection": "3.7.2-next-1740450374.0",
29
- "@opensumi/ide-core-common": "3.7.2-next-1740450374.0",
30
- "@opensumi/ide-core-node": "3.7.2-next-1740450374.0",
31
- "@opensumi/ide-debug": "3.7.2-next-1740450374.0",
32
- "@opensumi/ide-design": "3.7.2-next-1740450374.0",
33
- "@opensumi/ide-editor": "3.7.2-next-1740450374.0",
34
- "@opensumi/ide-file-search": "3.7.2-next-1740450374.0",
35
- "@opensumi/ide-file-service": "3.7.2-next-1740450374.0",
36
- "@opensumi/ide-main-layout": "3.7.2-next-1740450374.0",
37
- "@opensumi/ide-markers": "3.7.2-next-1740450374.0",
38
- "@opensumi/ide-monaco": "3.7.2-next-1740450374.0",
39
- "@opensumi/ide-overlay": "3.7.2-next-1740450374.0",
40
- "@opensumi/ide-preferences": "3.7.2-next-1740450374.0",
41
- "@opensumi/ide-search": "3.7.2-next-1740450374.0",
42
- "@opensumi/ide-terminal-next": "3.7.2-next-1740450374.0",
43
- "@opensumi/ide-theme": "3.7.2-next-1740450374.0",
44
- "@opensumi/ide-utils": "3.7.2-next-1740450374.0",
45
- "@opensumi/ide-workspace": "3.7.2-next-1740450374.0",
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.7.2-next-1740450374.0"
60
+ "@opensumi/ide-core-browser": "3.8.1-next-1740452092.0"
61
61
  },
62
- "gitHead": "12458460da12fc6e96c4942034c7012b2381990c"
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: 14px;
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 0 8px 16px;
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'}
@@ -25,7 +25,7 @@
25
25
  .dm-chat-history-header-actions {
26
26
  display: flex;
27
27
  align-items: center;
28
- font-size: 14px;
28
+ font-size: 12px;
29
29
 
30
30
  .dm-chat-history-header-actions-history {
31
31
  cursor: pointer;
@@ -35,7 +35,7 @@
35
35
  }
36
36
 
37
37
  .thinking_text {
38
- font-size: 14px;
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: 14px;
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 { IModelContentChangedEvent, IPosition, IRange, InlineCompletion } from '@opensumi/ide-monaco';
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
- export interface ICodeEditsResult {
45
- readonly items: ICodeEdit[];
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(): ICodeEdit[] {
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
  }