@opensumi/ide-ai-native 2.26.9-rc-1695091570.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/LICENSE +21 -0
  2. package/lib/browser/ai-chat.contribution.d.ts +26 -0
  3. package/lib/browser/ai-chat.contribution.d.ts.map +1 -0
  4. package/lib/browser/ai-chat.contribution.js +227 -0
  5. package/lib/browser/ai-chat.contribution.js.map +1 -0
  6. package/lib/browser/ai-chat.module.less +174 -0
  7. package/lib/browser/ai-chat.service.d.ts +30 -0
  8. package/lib/browser/ai-chat.service.d.ts.map +1 -0
  9. package/lib/browser/ai-chat.service.js +134 -0
  10. package/lib/browser/ai-chat.service.js.map +1 -0
  11. package/lib/browser/ai-chat.view.d.ts +4 -0
  12. package/lib/browser/ai-chat.view.d.ts.map +1 -0
  13. package/lib/browser/ai-chat.view.js +305 -0
  14. package/lib/browser/ai-chat.view.js.map +1 -0
  15. package/lib/browser/ai-editor.contribution.d.ts +24 -0
  16. package/lib/browser/ai-editor.contribution.d.ts.map +1 -0
  17. package/lib/browser/ai-editor.contribution.js +419 -0
  18. package/lib/browser/ai-editor.contribution.js.map +1 -0
  19. package/lib/browser/ai-project/generate.service.d.ts +31 -0
  20. package/lib/browser/ai-project/generate.service.d.ts.map +1 -0
  21. package/lib/browser/ai-project/generate.service.js +453 -0
  22. package/lib/browser/ai-project/generate.service.js.map +1 -0
  23. package/lib/browser/ai-sumi/sumi.service.d.ts +11 -0
  24. package/lib/browser/ai-sumi/sumi.service.d.ts.map +1 -0
  25. package/lib/browser/ai-sumi/sumi.service.js +64 -0
  26. package/lib/browser/ai-sumi/sumi.service.js.map +1 -0
  27. package/lib/browser/code-widget/ai-code-document.provider.d.ts +10 -0
  28. package/lib/browser/code-widget/ai-code-document.provider.d.ts.map +1 -0
  29. package/lib/browser/code-widget/ai-code-document.provider.js +26 -0
  30. package/lib/browser/code-widget/ai-code-document.provider.js.map +1 -0
  31. package/lib/browser/code-widget/ai-code-widget.d.ts +20 -0
  32. package/lib/browser/code-widget/ai-code-widget.d.ts.map +1 -0
  33. package/lib/browser/code-widget/ai-code-widget.js +164 -0
  34. package/lib/browser/code-widget/ai-code-widget.js.map +1 -0
  35. package/lib/browser/components/AIImprove.d.ts +9 -0
  36. package/lib/browser/components/AIImprove.d.ts.map +1 -0
  37. package/lib/browser/components/AIImprove.js +34 -0
  38. package/lib/browser/components/AIImprove.js.map +1 -0
  39. package/lib/browser/components/AIInput.d.ts +5 -0
  40. package/lib/browser/components/AIInput.d.ts.map +1 -0
  41. package/lib/browser/components/AIInput.js +21 -0
  42. package/lib/browser/components/AIInput.js.map +1 -0
  43. package/lib/browser/components/ChatEditor.d.ts +5 -0
  44. package/lib/browser/components/ChatEditor.d.ts.map +1 -0
  45. package/lib/browser/components/ChatEditor.js +85 -0
  46. package/lib/browser/components/ChatEditor.js.map +1 -0
  47. package/lib/browser/components/ChatInput.d.ts +6 -0
  48. package/lib/browser/components/ChatInput.d.ts.map +1 -0
  49. package/lib/browser/components/ChatInput.js +127 -0
  50. package/lib/browser/components/ChatInput.js.map +1 -0
  51. package/lib/browser/components/ChatMoreActions.d.ts +5 -0
  52. package/lib/browser/components/ChatMoreActions.d.ts.map +1 -0
  53. package/lib/browser/components/ChatMoreActions.js +26 -0
  54. package/lib/browser/components/ChatMoreActions.js.map +1 -0
  55. package/lib/browser/components/Thinking.d.ts +3 -0
  56. package/lib/browser/components/Thinking.d.ts.map +1 -0
  57. package/lib/browser/components/Thinking.js +19 -0
  58. package/lib/browser/components/Thinking.js.map +1 -0
  59. package/lib/browser/components/components.module.less +259 -0
  60. package/lib/browser/components/lineVertical.d.ts +4 -0
  61. package/lib/browser/components/lineVertical.d.ts.map +1 -0
  62. package/lib/browser/components/lineVertical.js +22 -0
  63. package/lib/browser/components/lineVertical.js.map +1 -0
  64. package/lib/browser/content-widget/ai-content-widget.d.ts +38 -0
  65. package/lib/browser/content-widget/ai-content-widget.d.ts.map +1 -0
  66. package/lib/browser/content-widget/ai-content-widget.js +97 -0
  67. package/lib/browser/content-widget/ai-content-widget.js.map +1 -0
  68. package/lib/browser/content-widget/ai-inline-chat-panel.d.ts +6 -0
  69. package/lib/browser/content-widget/ai-inline-chat-panel.d.ts.map +1 -0
  70. package/lib/browser/content-widget/ai-inline-chat-panel.js +108 -0
  71. package/lib/browser/content-widget/ai-inline-chat-panel.js.map +1 -0
  72. package/lib/browser/content-widget/ai-inline-chat.module.less +74 -0
  73. package/lib/browser/content-widget/ai-inline-chat.service.d.ts +23 -0
  74. package/lib/browser/content-widget/ai-inline-chat.service.d.ts.map +1 -0
  75. package/lib/browser/content-widget/ai-inline-chat.service.js +47 -0
  76. package/lib/browser/content-widget/ai-inline-chat.service.js.map +1 -0
  77. package/lib/browser/diff-widget/ai-diff-document.provider.d.ts +10 -0
  78. package/lib/browser/diff-widget/ai-diff-document.provider.d.ts.map +1 -0
  79. package/lib/browser/diff-widget/ai-diff-document.provider.js +26 -0
  80. package/lib/browser/diff-widget/ai-diff-document.provider.js.map +1 -0
  81. package/lib/browser/diff-widget/ai-diff-widget.d.ts +20 -0
  82. package/lib/browser/diff-widget/ai-diff-widget.d.ts.map +1 -0
  83. package/lib/browser/diff-widget/ai-diff-widget.js +158 -0
  84. package/lib/browser/diff-widget/ai-diff-widget.js.map +1 -0
  85. package/lib/browser/index.d.ts +12 -0
  86. package/lib/browser/index.d.ts.map +1 -0
  87. package/lib/browser/index.js +84 -0
  88. package/lib/browser/index.js.map +1 -0
  89. package/lib/browser/inline-completions/constants.d.ts +62 -0
  90. package/lib/browser/inline-completions/constants.d.ts.map +1 -0
  91. package/lib/browser/inline-completions/constants.js +69 -0
  92. package/lib/browser/inline-completions/constants.js.map +1 -0
  93. package/lib/browser/inline-completions/provider.d.ts +27 -0
  94. package/lib/browser/inline-completions/provider.d.ts.map +1 -0
  95. package/lib/browser/inline-completions/provider.js +63 -0
  96. package/lib/browser/inline-completions/provider.js.map +1 -0
  97. package/lib/browser/override/ai-editor-tab.service.d.ts +6 -0
  98. package/lib/browser/override/ai-editor-tab.service.d.ts.map +1 -0
  99. package/lib/browser/override/ai-editor-tab.service.js +22 -0
  100. package/lib/browser/override/ai-editor-tab.service.js.map +1 -0
  101. package/lib/browser/override/ai-marker.service.d.ts +11 -0
  102. package/lib/browser/override/ai-marker.service.d.ts.map +1 -0
  103. package/lib/browser/override/ai-marker.service.js +55 -0
  104. package/lib/browser/override/ai-marker.service.js.map +1 -0
  105. package/lib/browser/override/global.styles.less +268 -0
  106. package/lib/browser/override/layout/layout-config.d.ts +6 -0
  107. package/lib/browser/override/layout/layout-config.d.ts.map +1 -0
  108. package/lib/browser/override/layout/layout-config.js +17 -0
  109. package/lib/browser/override/layout/layout-config.js.map +1 -0
  110. package/lib/browser/override/layout/layout.module.less +7 -0
  111. package/lib/browser/override/layout/main-slot-renderer.d.ts +4 -0
  112. package/lib/browser/override/layout/main-slot-renderer.d.ts.map +1 -0
  113. package/lib/browser/override/layout/main-slot-renderer.js +22 -0
  114. package/lib/browser/override/layout/main-slot-renderer.js.map +1 -0
  115. package/lib/browser/override/layout/menu-bar/menu-bar.contribution.d.ts +8 -0
  116. package/lib/browser/override/layout/menu-bar/menu-bar.contribution.d.ts.map +1 -0
  117. package/lib/browser/override/layout/menu-bar/menu-bar.contribution.js +32 -0
  118. package/lib/browser/override/layout/menu-bar/menu-bar.contribution.js.map +1 -0
  119. package/lib/browser/override/layout/menu-bar/menu-bar.module.less +41 -0
  120. package/lib/browser/override/layout/menu-bar/menu-bar.view.d.ts +3 -0
  121. package/lib/browser/override/layout/menu-bar/menu-bar.view.d.ts.map +1 -0
  122. package/lib/browser/override/layout/menu-bar/menu-bar.view.js +62 -0
  123. package/lib/browser/override/layout/menu-bar/menu-bar.view.js.map +1 -0
  124. package/lib/browser/override/layout/tabbar.view.d.ts +17 -0
  125. package/lib/browser/override/layout/tabbar.view.d.ts.map +1 -0
  126. package/lib/browser/override/layout/tabbar.view.js +38 -0
  127. package/lib/browser/override/layout/tabbar.view.js.map +1 -0
  128. package/lib/browser/override/override.module.less +32 -0
  129. package/lib/browser/override/theme/default-theme.d.ts +315 -0
  130. package/lib/browser/override/theme/default-theme.d.ts.map +1 -0
  131. package/lib/browser/override/theme/default-theme.js +821 -0
  132. package/lib/browser/override/theme/default-theme.js.map +1 -0
  133. package/lib/browser/run/run.service.d.ts +52 -0
  134. package/lib/browser/run/run.service.d.ts.map +1 -0
  135. package/lib/browser/run/run.service.js +176 -0
  136. package/lib/browser/run/run.service.js.map +1 -0
  137. package/lib/common/command.d.ts +17 -0
  138. package/lib/common/command.d.ts.map +1 -0
  139. package/lib/common/command.js +21 -0
  140. package/lib/common/command.js.map +1 -0
  141. package/lib/common/index.d.ts +37 -0
  142. package/lib/common/index.d.ts.map +1 -0
  143. package/lib/common/index.js +22 -0
  144. package/lib/common/index.js.map +1 -0
  145. package/lib/index.d.ts +2 -0
  146. package/lib/index.d.ts.map +1 -0
  147. package/lib/index.js +5 -0
  148. package/lib/index.js.map +1 -0
  149. package/lib/node/index.d.ts +10 -0
  150. package/lib/node/index.d.ts.map +1 -0
  151. package/lib/node/index.js +32 -0
  152. package/lib/node/index.js.map +1 -0
  153. package/package.json +38 -0
  154. package/src/browser/ai-chat.contribution.ts +294 -0
  155. package/src/browser/ai-chat.module.less +174 -0
  156. package/src/browser/ai-chat.service.ts +152 -0
  157. package/src/browser/ai-chat.view.tsx +421 -0
  158. package/src/browser/ai-editor.contribution.ts +521 -0
  159. package/src/browser/ai-project/generate.service.ts +505 -0
  160. package/src/browser/ai-sumi/sumi.service.ts +65 -0
  161. package/src/browser/code-widget/ai-code-document.provider.ts +22 -0
  162. package/src/browser/code-widget/ai-code-widget.tsx +202 -0
  163. package/src/browser/components/AIImprove.tsx +45 -0
  164. package/src/browser/components/AIInput.tsx +30 -0
  165. package/src/browser/components/ChatEditor.tsx +129 -0
  166. package/src/browser/components/ChatInput.tsx +197 -0
  167. package/src/browser/components/ChatMoreActions.tsx +33 -0
  168. package/src/browser/components/Thinking.tsx +23 -0
  169. package/src/browser/components/components.module.less +259 -0
  170. package/src/browser/components/lineVertical.tsx +19 -0
  171. package/src/browser/content-widget/ai-content-widget.tsx +132 -0
  172. package/src/browser/content-widget/ai-inline-chat-panel.tsx +154 -0
  173. package/src/browser/content-widget/ai-inline-chat.module.less +74 -0
  174. package/src/browser/content-widget/ai-inline-chat.service.ts +46 -0
  175. package/src/browser/diff-widget/ai-diff-document.provider.ts +22 -0
  176. package/src/browser/diff-widget/ai-diff-widget.tsx +196 -0
  177. package/src/browser/index.ts +91 -0
  178. package/src/browser/inline-completions/constants.ts +108 -0
  179. package/src/browser/inline-completions/provider.ts +55 -0
  180. package/src/browser/override/ai-editor-tab.service.tsx +22 -0
  181. package/src/browser/override/ai-marker.service.tsx +55 -0
  182. package/src/browser/override/global.styles.less +268 -0
  183. package/src/browser/override/layout/layout-config.ts +21 -0
  184. package/src/browser/override/layout/layout.module.less +7 -0
  185. package/src/browser/override/layout/main-slot-renderer.tsx +62 -0
  186. package/src/browser/override/layout/menu-bar/menu-bar.contribution.tsx +28 -0
  187. package/src/browser/override/layout/menu-bar/menu-bar.module.less +41 -0
  188. package/src/browser/override/layout/menu-bar/menu-bar.view.tsx +92 -0
  189. package/src/browser/override/layout/tabbar.view.tsx +99 -0
  190. package/src/browser/override/override.module.less +32 -0
  191. package/src/browser/override/theme/default-theme.ts +818 -0
  192. package/src/browser/run/run.service.ts +183 -0
  193. package/src/common/command.ts +21 -0
  194. package/src/common/index.ts +39 -0
  195. package/src/index.ts +1 -0
  196. package/src/node/index.ts +24 -0
@@ -0,0 +1,259 @@
1
+ // 进度条
2
+ .thinking_container {
3
+ position: relative;
4
+
5
+ .stop {
6
+ position: absolute;
7
+ bottom: -39px;
8
+ width: 100%;
9
+ padding-top: 12px;
10
+
11
+ .block {
12
+ display: flex;
13
+ align-items: center;
14
+ font-size: 12px;
15
+ color: rgba(255, 255, 255, 0.65);
16
+ cursor: pointer;
17
+ }
18
+ }
19
+ }
20
+
21
+ .chat_input_container {
22
+ padding: 16px;
23
+ display: flex;
24
+ flex-direction: column;
25
+ position: relative;
26
+ background-color: #1b232b;
27
+ box-shadow: 0 -1px 12px 0 rgba(0, 0, 0, 0.12), 0 -1px 3px 0 rgba(0, 0, 0, 0.12);
28
+ border-radius: 0 0 0 12px;
29
+
30
+ .block {
31
+ background-color: rgba(255, 255, 255, 0.08);
32
+ border-radius: 6px;
33
+ padding: 4px;
34
+ width: fit-content;
35
+ height: 24px;
36
+ display: flex;
37
+ align-items: center;
38
+ cursor: pointer;
39
+
40
+ .name {
41
+ margin-left: 4px;
42
+ }
43
+ }
44
+
45
+ .header_operate {
46
+ display: flex;
47
+ align-items: center;
48
+ margin-bottom: 12px;
49
+
50
+ .block {
51
+ margin-right: 8px;
52
+ }
53
+ }
54
+
55
+ .instruction_options_container {
56
+ position: absolute;
57
+ width: calc(100% - 32px);
58
+ background-color: #171c25;
59
+ border: 1px solid #363940;
60
+ box-shadow: 0 9px 28px 8px rgba(0, 0, 0, 0.15), 0 6px 16px 0 rgba(0, 0, 0, 0.24), 0 3px 6px -4px rgba(0, 0, 0, 0.36);
61
+ border-radius: 8px;
62
+ bottom: 61px;
63
+ z-index: 1000;
64
+
65
+ .options {
66
+ ul {
67
+ margin: 0;
68
+ padding: 0;
69
+ padding: 4px 0;
70
+
71
+ li {
72
+ display: flex;
73
+ align-items: center;
74
+ padding: 8px 16px;
75
+ font-size: 14px;
76
+ cursor: pointer;
77
+
78
+ &:hover {
79
+ background-color: rgba(255, 255, 255, 0.08);
80
+ }
81
+
82
+ .block {
83
+ margin-right: 8px;
84
+ }
85
+ }
86
+ }
87
+ }
88
+
89
+ .commonly_used {
90
+ border-top: 1px solid #363940;
91
+ padding: 12px 16px;
92
+ display: flex;
93
+ align-items: center;
94
+ }
95
+ }
96
+
97
+ .input_wrapper {
98
+ min-height: 40px;
99
+ max-height: 160px;
100
+ border-radius: 8px;
101
+ background-color: #ffffff14;
102
+ padding: 9px 12px;
103
+ font-size: 14px;
104
+ position: relative;
105
+
106
+ :global {
107
+ .kt-input-addon-after {
108
+ align-items: flex-end;
109
+ }
110
+
111
+ .kt-input-addon-before {
112
+ margin-right: 0;
113
+ }
114
+ }
115
+
116
+ textarea {
117
+ resize: none;
118
+ }
119
+
120
+ .slash_widget_block {
121
+ position: absolute;
122
+ background-color: #34414b;
123
+ color: #40a6ff;
124
+ border-radius: 3px;
125
+ padding: 1px 2px;
126
+ z-index: 1;
127
+ top: 9.5px;
128
+ }
129
+
130
+ .send_chat_btn {
131
+ border-radius: 2px;
132
+ background-color: rgba(95, 101, 107, 0.25);
133
+ width: 24px;
134
+ height: 22px;
135
+ display: flex;
136
+ align-items: center;
137
+ justify-content: center;
138
+ cursor: pointer;
139
+
140
+ &.active {
141
+ background-color: rgba(60, 141, 255, 1);
142
+
143
+ span {
144
+ color: #fff;
145
+ }
146
+ }
147
+
148
+ span {
149
+ color: rgba(95, 101, 107, 1);
150
+ }
151
+ }
152
+ }
153
+ }
154
+
155
+ // chat 面板的代码展示部分
156
+ .ai_chat_code_wrapper {
157
+ position: relative;
158
+ width: 100%;
159
+
160
+ .render_text {
161
+ white-space: pre-wrap;
162
+
163
+ span.code_inline {
164
+ display: inline;
165
+ color: #d7ba7d;
166
+
167
+ &::after {
168
+ content: none;
169
+ }
170
+ }
171
+
172
+ .code_block {
173
+ .monaco_wrapper {
174
+ position: relative;
175
+
176
+ &:hover {
177
+ .action_toolbar {
178
+ display: flex;
179
+ }
180
+ }
181
+
182
+ .editor {
183
+ border-radius: 8px;
184
+ border: 1px solid #ffffff1a;
185
+ overflow: hidden;
186
+ }
187
+
188
+ .action_toolbar {
189
+ display: none;
190
+ position: absolute;
191
+ right: 0;
192
+ top: 0;
193
+ background-color: #151b21;
194
+ border-radius: 6px 6px 0 6px;
195
+ z-index: 100;
196
+ top: -15px;
197
+ height: 30px;
198
+ border: 1px solid #ffffff1a;
199
+ align-items: center;
200
+ overflow: hidden;
201
+
202
+ :global {
203
+ .kt-popover {
204
+ height: inherit;
205
+ }
206
+ }
207
+
208
+ span {
209
+ width: 30px;
210
+ height: 100%;
211
+ display: flex;
212
+ align-items: center;
213
+ justify-content: center;
214
+
215
+ &:hover {
216
+ background-color: rgba(255, 255, 255, 0.08);
217
+ }
218
+ }
219
+ }
220
+ }
221
+ }
222
+ }
223
+
224
+ }
225
+
226
+ .ai_chat_more_actions_container {
227
+ position: relative;
228
+
229
+ .ai_chat_message {
230
+
231
+ }
232
+
233
+ .more_actions {
234
+ position: absolute;
235
+ z-index: 1000;
236
+ bottom: -36px;
237
+ display: flex;
238
+ align-items: center;
239
+ justify-content: space-between;
240
+ width: 100%;
241
+ height: 16px;
242
+
243
+ &::after {
244
+ content: initial;
245
+ }
246
+
247
+ .side {
248
+ display: flex;
249
+ align-items: center;
250
+ justify-items: right;
251
+ height: inherit;
252
+
253
+ span {
254
+ margin-right: 6px;
255
+ cursor: pointer;
256
+ }
257
+ }
258
+ }
259
+ }
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ export declare const LineVertical: () => React.JSX.Element;
3
+ export declare const HorizontalVertical: () => React.JSX.Element;
4
+ //# sourceMappingURL=lineVertical.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineVertical.d.ts","sourceRoot":"","sources":["../../../src/browser/components/lineVertical.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,eAAO,MAAM,YAAY,yBAAyC,CAAC;AAEnE,eAAO,MAAM,kBAAkB,yBAA+C,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HorizontalVertical = exports.LineVertical = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ const lineStyles = {
7
+ borderLeft: '1px solid #666',
8
+ height: '100%',
9
+ width: '1px',
10
+ display: 'block',
11
+ };
12
+ const horizontalStyles = {
13
+ borderLeft: '1px solid #666',
14
+ width: '100%',
15
+ height: '1px',
16
+ display: 'block',
17
+ };
18
+ const LineVertical = () => react_1.default.createElement("span", { style: lineStyles });
19
+ exports.LineVertical = LineVertical;
20
+ const HorizontalVertical = () => react_1.default.createElement("span", { style: horizontalStyles });
21
+ exports.HorizontalVertical = HorizontalVertical;
22
+ //# sourceMappingURL=lineVertical.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineVertical.js","sourceRoot":"","sources":["../../../src/browser/components/lineVertical.tsx"],"names":[],"mappings":";;;;AAAA,0DAA0B;AAE1B,MAAM,UAAU,GAAG;IACjB,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF,MAAM,gBAAgB,GAAG;IACvB,UAAU,EAAE,gBAAgB;IAC5B,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,OAAO;CACjB,CAAC;AAEK,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,wCAAM,KAAK,EAAE,UAAU,GAAS,CAAC;AAAtD,QAAA,YAAY,gBAA0C;AAE5D,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,wCAAM,KAAK,EAAE,gBAAgB,GAAS,CAAC;AAAlE,QAAA,kBAAkB,sBAAgD"}
@@ -0,0 +1,38 @@
1
+ import { Disposable, Event } from '@opensumi/ide-core-common';
2
+ import type { ICodeEditor as IMonacoCodeEditor } from '@opensumi/ide-monaco/lib/browser/monaco-api/types';
3
+ import * as monaco from '@opensumi/monaco-editor-core/esm/vs/editor/editor.api';
4
+ export interface IAiContentWidget extends monaco.editor.IContentWidget {
5
+ show: (options?: ShowAiContentOptions | undefined) => void;
6
+ hide: (options?: ShowAiContentOptions | undefined) => void;
7
+ }
8
+ export interface ShowAiContentOptions {
9
+ /**
10
+ * 选中区域
11
+ */
12
+ selection?: monaco.Range;
13
+ /**
14
+ * 行列
15
+ */
16
+ position?: monaco.IPosition;
17
+ }
18
+ export declare class AiContentWidget extends Disposable implements IAiContentWidget {
19
+ private readonly editor;
20
+ private configContext;
21
+ allowEditorOverflow?: boolean | undefined;
22
+ suppressMouseDown?: boolean | undefined;
23
+ private domNode;
24
+ protected options: ShowAiContentOptions | undefined;
25
+ private readonly _onSelectChange;
26
+ readonly onSelectChange: Event<string>;
27
+ constructor(editor: IMonacoCodeEditor);
28
+ dispose(): void;
29
+ private renderView;
30
+ show(options?: ShowAiContentOptions | undefined): Promise<void>;
31
+ setOptions(options: ShowAiContentOptions): void;
32
+ hide: (options?: ShowAiContentOptions | undefined) => void;
33
+ getId(): string;
34
+ layoutContentWidget(): void;
35
+ getDomNode(): HTMLElement;
36
+ getPosition(): monaco.editor.IContentWidgetPosition | null;
37
+ }
38
+ //# sourceMappingURL=ai-content-widget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-content-widget.d.ts","sourceRoot":"","sources":["../../../src/browser/content-widget/ai-content-widget.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAW,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AAC1G,OAAO,KAAK,MAAM,MAAM,uDAAuD,CAAC;AAIhF,MAAM,WAAW,gBAAiB,SAAQ,MAAM,CAAC,MAAM,CAAC,cAAc;IACpE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,KAAK,IAAI,CAAC;IAC3D,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,KAAK,IAAI,CAAC;CAC5D;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC;CAC7B;AAED,qBACa,eAAgB,SAAQ,UAAW,YAAW,gBAAgB;IAc7D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAXnC,OAAO,CAAC,aAAa,CAAY;IAEjC,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAQ;IACjD,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAS;IAEhD,OAAO,CAAC,OAAO,CAAc;IAC7B,SAAS,CAAC,OAAO,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAEpD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyB;IACzD,SAAgB,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAA8B;gBAE9C,MAAM,EAAE,iBAAiB;IAO7C,OAAO,IAAI,IAAI;IAKxB,OAAO,CAAC,UAAU;IAUZ,IAAI,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrE,UAAU,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAI/C,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,KAAK,IAAI,CAGxD;IAEF,KAAK,IAAI,MAAM;IAIf,mBAAmB,IAAI,IAAI;IAI3B,UAAU,IAAI,WAAW;IAQzB,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,sBAAsB,GAAG,IAAI;CA2B3D"}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AiContentWidget = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(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_common_1 = require("@opensumi/ide-core-common");
10
+ const monaco = tslib_1.__importStar(require("@opensumi/monaco-editor-core/esm/vs/editor/editor.api"));
11
+ const ai_inline_chat_panel_1 = require("./ai-inline-chat-panel");
12
+ let AiContentWidget = class AiContentWidget extends ide_core_common_1.Disposable {
13
+ constructor(editor) {
14
+ super();
15
+ this.editor = editor;
16
+ this.allowEditorOverflow = true;
17
+ this.suppressMouseDown = false;
18
+ this._onSelectChange = new ide_core_common_1.Emitter();
19
+ this.onSelectChange = this._onSelectChange.event;
20
+ this.hide = () => {
21
+ this.options = undefined;
22
+ this.editor.removeContentWidget(this);
23
+ };
24
+ this.hide();
25
+ this.renderView();
26
+ }
27
+ dispose() {
28
+ this.hide();
29
+ super.dispose();
30
+ }
31
+ renderView() {
32
+ react_dom_1.default.render(react_1.default.createElement(ide_core_browser_1.ConfigProvider, { value: this.configContext },
33
+ react_1.default.createElement(ai_inline_chat_panel_1.AIInlineChatPanel, { selectChangeFire: this._onSelectChange })), this.getDomNode());
34
+ this.layoutContentWidget();
35
+ }
36
+ async show(options) {
37
+ if (!options) {
38
+ return;
39
+ }
40
+ if (this.options && this.options.selection && this.options.selection.equalsRange(options.selection)) {
41
+ return;
42
+ }
43
+ this.options = options;
44
+ this.editor.addContentWidget(this);
45
+ }
46
+ setOptions(options) {
47
+ this.options = options;
48
+ }
49
+ getId() {
50
+ return 'AI-Content-Widget';
51
+ }
52
+ layoutContentWidget() {
53
+ this.editor.layoutContentWidget(this);
54
+ }
55
+ getDomNode() {
56
+ if (!this.domNode) {
57
+ this.domNode = document.createElement('div');
58
+ this.domNode.classList.add(this.getId());
59
+ }
60
+ return this.domNode;
61
+ }
62
+ getPosition() {
63
+ var _a;
64
+ if (!this.options) {
65
+ return null;
66
+ }
67
+ const { position, selection } = this.options;
68
+ if (position) {
69
+ return {
70
+ position,
71
+ preference: [
72
+ monaco.editor.ContentWidgetPositionPreference.BELOW,
73
+ ],
74
+ };
75
+ }
76
+ const endPosition = selection && selection.getEndPosition();
77
+ return endPosition
78
+ ? {
79
+ // @ts-ignore
80
+ position: new monaco.Position(endPosition.lineNumber, (_a = this.options) === null || _a === void 0 ? void 0 : _a.selection.startColumn),
81
+ preference: [
82
+ monaco.editor.ContentWidgetPositionPreference.BELOW,
83
+ ],
84
+ }
85
+ : null;
86
+ }
87
+ };
88
+ tslib_1.__decorate([
89
+ (0, di_1.Autowired)(ide_core_browser_1.AppConfig),
90
+ tslib_1.__metadata("design:type", Object)
91
+ ], AiContentWidget.prototype, "configContext", void 0);
92
+ AiContentWidget = tslib_1.__decorate([
93
+ (0, di_1.Injectable)({ multiple: true }),
94
+ tslib_1.__metadata("design:paramtypes", [Object])
95
+ ], AiContentWidget);
96
+ exports.AiContentWidget = AiContentWidget;
97
+ //# sourceMappingURL=ai-content-widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-content-widget.js","sourceRoot":"","sources":["../../../src/browser/content-widget/ai-content-widget.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { Emitter } from '@opensumi/ide-core-common';
3
+ export declare const AIInlineChatPanel: (props: {
4
+ selectChangeFire: Emitter<string>;
5
+ }) => React.JSX.Element;
6
+ //# sourceMappingURL=ai-inline-chat-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-inline-chat-panel.d.ts","sourceRoot":"","sources":["../../../src/browser/content-widget/ai-inline-chat-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAM5D,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAQpD,eAAO,MAAM,iBAAiB,UAAW;IAAE,gBAAgB,EAAE,QAAQ,MAAM,CAAC,CAAA;CAAE,sBA2I7E,CAAC"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AIInlineChatPanel = 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 ide_core_browser_2 = require("@opensumi/ide-core-browser");
8
+ const index_1 = require("@opensumi/ide-core-browser/lib/components/index");
9
+ const progress_bar_1 = require("@opensumi/ide-core-browser/lib/progress/progress-bar");
10
+ const AIImprove_1 = require("../components/AIImprove");
11
+ const AIInput_1 = require("../components/AIInput");
12
+ const styles = tslib_1.__importStar(require("./ai-inline-chat.module.less"));
13
+ const ai_inline_chat_service_1 = require("./ai-inline-chat.service");
14
+ const AIInlineChatPanel = (props) => {
15
+ const aiInlineChatService = (0, ide_core_browser_1.useInjectable)(ai_inline_chat_service_1.AiInlineChatService);
16
+ const [isLoading, setIsLoading] = (0, react_1.useState)(false);
17
+ const [isDone, setIsDone] = (0, react_1.useState)(false);
18
+ const [currentCheckText, setCurrentCheckText] = (0, react_1.useState)('优化代码');
19
+ (0, react_1.useEffect)(() => {
20
+ const dis = aiInlineChatService.onChatStatus((status) => {
21
+ if (status === 1 /* EChatStatus.THINKING */) {
22
+ setIsLoading(true);
23
+ setIsDone(false);
24
+ }
25
+ else {
26
+ setIsLoading(false);
27
+ }
28
+ if (status === 2 /* EChatStatus.DONE */) {
29
+ setIsDone(true);
30
+ }
31
+ else {
32
+ setIsDone(false);
33
+ }
34
+ if (status === 3 /* EChatStatus.ERROR */) {
35
+ setIsLoading(false);
36
+ setIsDone(false);
37
+ }
38
+ });
39
+ return () => {
40
+ dis.dispose();
41
+ };
42
+ }, []);
43
+ const improveList = (0, react_1.useMemo)(() => [
44
+ { title: '解释代码', iconClass: (0, ide_core_browser_2.getExternalIcon)('git-pull-request') },
45
+ { title: '|', iconClass: '' },
46
+ { title: '生成注释', iconClass: (0, ide_core_browser_2.getExternalIcon)('git-pull-request') },
47
+ { title: '|', iconClass: '' },
48
+ { title: '优化代码', iconClass: (0, ide_core_browser_2.getExternalIcon)('git-pull-request') },
49
+ { title: '|', iconClass: '' },
50
+ { title: '生成测试用例', iconClass: (0, ide_core_browser_2.getExternalIcon)('git-pull-request') },
51
+ ], []);
52
+ const renderHeader = (0, react_1.useMemo)(() => {
53
+ if (!isLoading && !isDone) {
54
+ return null;
55
+ }
56
+ return (react_1.default.createElement("div", { className: styles.panel_header },
57
+ react_1.default.createElement("div", { className: styles.header_container },
58
+ react_1.default.createElement("div", { className: styles.left_side },
59
+ react_1.default.createElement("span", null, "Chat")),
60
+ react_1.default.createElement("div", { className: styles.right_side },
61
+ react_1.default.createElement(index_1.Icon, { className: (0, ide_core_browser_1.getIcon)('clear'), style: { marginRight: '8px' } }),
62
+ react_1.default.createElement(index_1.Icon, { className: (0, ide_core_browser_1.getIcon)('close') }))),
63
+ react_1.default.createElement("span", { className: styles.progress_bar },
64
+ react_1.default.createElement(progress_bar_1.Progress, { loading: !isDone }))));
65
+ }, [isLoading, isDone]);
66
+ const renderResult = (0, react_1.useMemo)(() => {
67
+ if (!isLoading && !isDone) {
68
+ return null;
69
+ }
70
+ return (react_1.default.createElement("div", { className: styles.panel_result },
71
+ react_1.default.createElement("div", { className: styles.result_container },
72
+ react_1.default.createElement("div", { className: styles.title },
73
+ react_1.default.createElement(index_1.Icon, null),
74
+ react_1.default.createElement("span", null, currentCheckText)),
75
+ isDone && (react_1.default.createElement(react_1.default.Fragment, null,
76
+ react_1.default.createElement("span", { className: styles.v_line }),
77
+ react_1.default.createElement("div", { className: styles.operate },
78
+ react_1.default.createElement("div", { className: styles.left_side },
79
+ react_1.default.createElement(index_1.Button, { size: 'small', onClick: () => {
80
+ aiInlineChatService._onAccept.fire();
81
+ } }, "\u91C7\u7EB3"),
82
+ react_1.default.createElement(index_1.Button, { size: 'small', type: 'ghost', onClick: () => {
83
+ aiInlineChatService._onDiscard.fire();
84
+ } }, "\u4E22\u5F03")),
85
+ react_1.default.createElement("div", { className: styles.right_side },
86
+ react_1.default.createElement(index_1.Button, { size: 'small' },
87
+ react_1.default.createElement(index_1.Icon, { className: (0, ide_core_browser_1.getIcon)('layout') })),
88
+ react_1.default.createElement("span", null, "\uFF5C"),
89
+ react_1.default.createElement(index_1.Icon, { className: (0, ide_core_browser_2.getExternalIcon)('thumbsup') }),
90
+ react_1.default.createElement(index_1.Icon, { className: (0, ide_core_browser_2.getExternalIcon)('thumbsdown') }))))))));
91
+ }, [isLoading, isDone, aiInlineChatService]);
92
+ return (react_1.default.createElement("div", { className: styles.ai_inline_chat_panel },
93
+ renderHeader,
94
+ renderResult,
95
+ react_1.default.createElement("div", { className: styles.panel_chat },
96
+ react_1.default.createElement("div", { className: 'ai-shortcuts' },
97
+ react_1.default.createElement(AIImprove_1.AIImprove, { onClick: (title) => {
98
+ props.selectChangeFire.fire(title);
99
+ setCurrentCheckText(title);
100
+ }, lists: improveList })),
101
+ react_1.default.createElement("div", { className: styles.ai_content_widget_input },
102
+ react_1.default.createElement(AIInput_1.AiInput, { onValueChange: (value) => {
103
+ props.selectChangeFire.fire(value);
104
+ setCurrentCheckText(value);
105
+ } })))));
106
+ };
107
+ exports.AIInlineChatPanel = AIInlineChatPanel;
108
+ //# sourceMappingURL=ai-inline-chat-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-inline-chat-panel.js","sourceRoot":"","sources":["../../../src/browser/content-widget/ai-inline-chat-panel.tsx"],"names":[],"mappings":";;;;AAAA,uDAA4D;AAE5D,iEAAoE;AACpE,iEAA6D;AAC7D,2EAA+E;AAC/E,uFAAgF;AAGhF,uDAAoD;AACpD,mDAAgD;AAEhD,6EAAuD;AACvD,qEAA4E;AAErE,MAAM,iBAAiB,GAAG,CAAC,KAA4C,EAAE,EAAE;IAChF,MAAM,mBAAmB,GAAwB,IAAA,gCAAa,EAAC,4CAAmB,CAAC,CAAC;IACpF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IAC3D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IACrD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,IAAA,gBAAQ,EAAS,MAAM,CAAC,CAAC;IAEzE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,GAAG,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE;YACtD,IAAI,MAAM,iCAAyB,EAAE;gBACnC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACnB,SAAS,CAAC,KAAK,CAAC,CAAC;aAClB;iBAAM;gBACL,YAAY,CAAC,KAAK,CAAC,CAAC;aACrB;YAED,IAAI,MAAM,6BAAqB,EAAE;gBAC/B,SAAS,CAAC,IAAI,CAAC,CAAC;aACjB;iBAAM;gBACL,SAAS,CAAC,KAAK,CAAC,CAAC;aAClB;YAED,IAAI,MAAM,8BAAsB,EAAE;gBAChC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,SAAS,CAAC,KAAK,CAAC,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,WAAW,GAAG,IAAA,eAAO,EACzB,GAAG,EAAE,CAAC;QACJ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAA,kCAAe,EAAC,kBAAkB,CAAC,EAAE;QACjE,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;QAC7B,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAA,kCAAe,EAAC,kBAAkB,CAAC,EAAE;QACjE,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;QAC7B,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAA,kCAAe,EAAC,kBAAkB,CAAC,EAAE;QACjE,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;QAC7B,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAA,kCAAe,EAAC,kBAAkB,CAAC,EAAE;KACpE,EACD,EAAE,CACH,CAAC;IAEF,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAChC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE;YACzB,OAAO,IAAI,CAAC;SACb;QAED,OAAO,CACL,uCAAK,SAAS,EAAE,MAAM,CAAC,YAAY;YACjC,uCAAK,SAAS,EAAE,MAAM,CAAC,gBAAgB;gBACrC,uCAAK,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC9B,mDAAiB,CACb;gBACN,uCAAK,SAAS,EAAE,MAAM,CAAC,UAAU;oBAC/B,8BAAC,YAAI,IAAC,SAAS,EAAE,IAAA,0BAAO,EAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,GAAI;oBACpE,8BAAC,YAAI,IAAC,SAAS,EAAE,IAAA,0BAAO,EAAC,OAAO,CAAC,GAAI,CACjC,CACF;YAEN,wCAAM,SAAS,EAAE,MAAM,CAAC,YAAY;gBAClC,8BAAC,uBAAQ,IAAC,OAAO,EAAE,CAAC,MAAM,GAAI,CACzB,CACH,CACP,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAExB,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAChC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE;YACzB,OAAO,IAAI,CAAC;SACb;QAED,OAAO,CACL,uCAAK,SAAS,EAAE,MAAM,CAAC,YAAY;YACjC,uCAAK,SAAS,EAAE,MAAM,CAAC,gBAAgB;gBACrC,uCAAK,SAAS,EAAE,MAAM,CAAC,KAAK;oBAC1B,8BAAC,YAAI,OAAG;oBACR,4CAAO,gBAAgB,CAAQ,CAC3B;gBACL,MAAM,IAAI,CACT;oBACE,wCAAM,SAAS,EAAE,MAAM,CAAC,MAAM,GAAS;oBACvC,uCAAK,SAAS,EAAE,MAAM,CAAC,OAAO;wBAC5B,uCAAK,SAAS,EAAE,MAAM,CAAC,SAAS;4BAC9B,8BAAC,cAAM,IAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE;oCACnC,mBAAmB,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gCACvC,CAAC,mBAAa;4BACd,8BAAC,cAAM,IAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE;oCAClD,mBAAmB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gCACxC,CAAC,mBAEQ,CACL;wBACN,uCAAK,SAAS,EAAE,MAAM,CAAC,UAAU;4BAC/B,8BAAC,cAAM,IAAC,IAAI,EAAE,OAAO;gCACnB,8BAAC,YAAI,IAAC,SAAS,EAAE,IAAA,0BAAO,EAAC,QAAQ,CAAC,GAAI,CAC/B;4BACT,qDAAc;4BACd,8BAAC,YAAI,IAAC,SAAS,EAAE,IAAA,kCAAe,EAAC,UAAU,CAAC,GAAI;4BAChD,8BAAC,YAAI,IAAC,SAAS,EAAE,IAAA,kCAAe,EAAC,YAAY,CAAC,GAAI,CAC9C,CACF,CACL,CACJ,CACG,CACF,CACP,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAE7C,OAAO,CACL,uCAAK,SAAS,EAAE,MAAM,CAAC,oBAAoB;QAExC,YAAY;QAEZ,YAAY;QAEb,uCAAK,SAAS,EAAE,MAAM,CAAC,UAAU;YAC/B,uCAAK,SAAS,EAAE,cAAc;gBAC5B,8BAAC,qBAAS,IACR,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;wBACjB,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACnC,mBAAmB,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC,EACD,KAAK,EAAE,WAAW,GAClB,CACE;YACN,uCAAK,SAAS,EAAE,MAAM,CAAC,uBAAuB;gBAC5C,8BAAC,iBAAO,IACN,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;wBACvB,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACnC,mBAAmB,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC,GACD,CACE,CACF,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AA3IW,QAAA,iBAAiB,qBA2I5B"}
@@ -0,0 +1,74 @@
1
+ .ai_inline_chat_panel {
2
+
3
+ .panel_header {
4
+ border-bottom: 1px solid rgba(255,255,255,0.12);;
5
+ margin: 0 -16px 12px -16px;
6
+
7
+ .progress_bar {
8
+ position: relative;
9
+ height: 1px;
10
+ width: 100%;
11
+ display: inherit;
12
+
13
+ .bar {
14
+ background: linear-gradient(to right, rgba(22,119,255,1), rgba(22,238,255,1));
15
+ }
16
+
17
+ }
18
+
19
+ .header_container {
20
+ margin: 0 16px;
21
+ display: flex;
22
+ align-items: center;
23
+ justify-content: space-between;
24
+ margin-bottom: 10px;
25
+ }
26
+ }
27
+
28
+
29
+ .panel_result {
30
+ margin-bottom: 16px;
31
+
32
+ .result_container {
33
+ border-radius: 8px;
34
+ background-color: rgba(255,255,255,0.04);
35
+ padding: 12px;
36
+
37
+ button {
38
+ border-radius: 6px;
39
+ }
40
+
41
+ .v_line {
42
+ height: 1px;
43
+ display: block;
44
+ width: 100%;
45
+ background-color: rgba(233,233,233,0.08);
46
+ margin: 12px 0 12px 0;
47
+ }
48
+
49
+ .line {
50
+ width: 1px;
51
+ display: block;
52
+ height: 100%;
53
+ background-color: rgba(255,255,255,0.12);
54
+ }
55
+
56
+ .operate {
57
+ display: flex;
58
+ justify-content: space-between;
59
+ align-items: center;
60
+
61
+ .left_side {
62
+ button:first-child {
63
+ margin-right: 8px;
64
+ }
65
+ }
66
+
67
+ .right_side {
68
+ display: flex;
69
+ align-items: center;
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
@@ -0,0 +1,23 @@
1
+ import { PreferenceService } from '@opensumi/ide-core-browser';
2
+ import { Emitter, Event, CommandService } from '@opensumi/ide-core-common';
3
+ import { ExtensionManagementService } from '@opensumi/ide-extension/lib/browser/extension-management.service';
4
+ export declare const enum EChatStatus {
5
+ READY = 0,
6
+ THINKING = 1,
7
+ DONE = 2,
8
+ ERROR = 3
9
+ }
10
+ export declare class AiInlineChatService {
11
+ aiBackService: any;
12
+ protected readonly commandService: CommandService;
13
+ protected preferenceService: PreferenceService;
14
+ protected extensionManagementService: ExtensionManagementService;
15
+ private readonly _onChatStatus;
16
+ readonly onChatStatus: Event<EChatStatus>;
17
+ readonly _onAccept: Emitter<void>;
18
+ readonly onAccept: Event<void>;
19
+ readonly _onDiscard: Emitter<void>;
20
+ readonly onDiscard: Event<void>;
21
+ launchChatMessage(message: EChatStatus): void;
22
+ }
23
+ //# sourceMappingURL=ai-inline-chat.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-inline-chat.service.d.ts","sourceRoot":"","sources":["../../../src/browser/content-widget/ai-inline-chat.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAI9G,0BAAkB,WAAW;IAC3B,KAAK,IAAA;IACL,QAAQ,IAAA;IACR,IAAI,IAAA;IACJ,KAAK,IAAA;CACN;AAED,qBACa,mBAAmB;IAG9B,aAAa,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAGlD,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAG/C,SAAS,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;IAEjE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,SAAgB,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC,CAA4B;IAG5E,SAAgB,SAAS,gBAAuB;IAChD,SAAgB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAwB;IAG7D,SAAgB,UAAU,gBAAuB;IACjD,SAAgB,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAyB;IAExD,iBAAiB,CAAC,OAAO,EAAE,WAAW;CAK9C"}