@opensumi/ide-ai-native 3.9.1-next-1749007675.0 → 3.9.1-next-1749008258.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 (146) hide show
  1. package/lib/browser/chat/chat-manager.service.d.ts +0 -1
  2. package/lib/browser/chat/chat-manager.service.d.ts.map +1 -1
  3. package/lib/browser/chat/chat-manager.service.js +3 -8
  4. package/lib/browser/chat/chat-manager.service.js.map +1 -1
  5. package/lib/browser/chat/chat-model.d.ts +1 -3
  6. package/lib/browser/chat/chat-model.d.ts.map +1 -1
  7. package/lib/browser/chat/chat-model.js +17 -48
  8. package/lib/browser/chat/chat-model.js.map +1 -1
  9. package/lib/browser/chat/chat-proxy.service.d.ts +0 -2
  10. package/lib/browser/chat/chat-proxy.service.d.ts.map +1 -1
  11. package/lib/browser/chat/chat-proxy.service.js +50 -57
  12. package/lib/browser/chat/chat-proxy.service.js.map +1 -1
  13. package/lib/browser/chat/chat.feature.registry.d.ts +1 -4
  14. package/lib/browser/chat/chat.feature.registry.d.ts.map +1 -1
  15. package/lib/browser/chat/chat.feature.registry.js +0 -6
  16. package/lib/browser/chat/chat.feature.registry.js.map +1 -1
  17. package/lib/browser/chat/chat.view.d.ts.map +1 -1
  18. package/lib/browser/chat/chat.view.js +12 -29
  19. package/lib/browser/chat/chat.view.js.map +1 -1
  20. package/lib/browser/components/ChatMentionInput.d.ts.map +1 -1
  21. package/lib/browser/components/ChatMentionInput.js +141 -30
  22. package/lib/browser/components/ChatMentionInput.js.map +1 -1
  23. package/lib/browser/components/ChatToolRender.module.less +1 -0
  24. package/lib/browser/components/components.module.less +9 -8
  25. package/lib/browser/components/mention-input/mention-input.d.ts.map +1 -1
  26. package/lib/browser/components/mention-input/mention-input.js +161 -14
  27. package/lib/browser/components/mention-input/mention-input.js.map +1 -1
  28. package/lib/browser/components/mention-input/mention-input.module.less +165 -1
  29. package/lib/browser/components/mention-input/mention-select.d.ts +28 -0
  30. package/lib/browser/components/mention-input/mention-select.d.ts.map +1 -0
  31. package/lib/browser/components/mention-input/mention-select.js +136 -0
  32. package/lib/browser/components/mention-input/mention-select.js.map +1 -0
  33. package/lib/browser/components/mention-input/mention-select.module.less +297 -0
  34. package/lib/browser/components/mention-input/types.d.ts +16 -1
  35. package/lib/browser/components/mention-input/types.d.ts.map +1 -1
  36. package/lib/browser/components/mention-input/types.js +1 -0
  37. package/lib/browser/components/mention-input/types.js.map +1 -1
  38. package/lib/browser/components/utils.d.ts +2 -2
  39. package/lib/browser/context/llm-context.service.d.ts +21 -2
  40. package/lib/browser/context/llm-context.service.d.ts.map +1 -1
  41. package/lib/browser/context/llm-context.service.js +162 -20
  42. package/lib/browser/context/llm-context.service.js.map +1 -1
  43. package/lib/browser/contrib/intelligent-completions/decoration/additions-deletions.decoration.d.ts.map +1 -1
  44. package/lib/browser/contrib/intelligent-completions/decoration/additions-deletions.decoration.js.map +1 -1
  45. package/lib/browser/contrib/intelligent-completions/diff-computer.js +1 -1
  46. package/lib/browser/contrib/intelligent-completions/diff-computer.js.map +1 -1
  47. package/lib/browser/contrib/terminal/terminal.feature.registry.js.map +1 -1
  48. package/lib/browser/index.d.ts.map +1 -1
  49. package/lib/browser/index.js +7 -0
  50. package/lib/browser/index.js.map +1 -1
  51. package/lib/browser/mcp/base-apply.service.d.ts +2 -2
  52. package/lib/browser/mcp/base-apply.service.d.ts.map +1 -1
  53. package/lib/browser/mcp/base-apply.service.js.map +1 -1
  54. package/lib/browser/mcp/tools/getDiagnosticsByPath.js.map +1 -1
  55. package/lib/browser/mcp/tools/getOpenEditorFileDiagnostics.js.map +1 -1
  56. package/lib/browser/mcp/tools/handlers/ListDir.js.map +1 -1
  57. package/lib/browser/mcp/tools/runTerminalCmd.js.map +1 -1
  58. package/lib/browser/model/msg-history-manager.d.ts +1 -39
  59. package/lib/browser/model/msg-history-manager.d.ts.map +1 -1
  60. package/lib/browser/model/msg-history-manager.js +3 -170
  61. package/lib/browser/model/msg-history-manager.js.map +1 -1
  62. package/lib/browser/preferences/schema.d.ts.map +1 -1
  63. package/lib/browser/preferences/schema.js +5 -0
  64. package/lib/browser/preferences/schema.js.map +1 -1
  65. package/lib/browser/rules/rules.contribution.d.ts +29 -0
  66. package/lib/browser/rules/rules.contribution.d.ts.map +1 -0
  67. package/lib/browser/rules/rules.contribution.js +94 -0
  68. package/lib/browser/rules/rules.contribution.js.map +1 -0
  69. package/lib/browser/rules/rules.module.less +175 -0
  70. package/lib/browser/rules/rules.service.d.ts +25 -0
  71. package/lib/browser/rules/rules.service.d.ts.map +1 -0
  72. package/lib/browser/rules/rules.service.js +180 -0
  73. package/lib/browser/rules/rules.service.js.map +1 -0
  74. package/lib/browser/rules/rules.view.d.ts +3 -0
  75. package/lib/browser/rules/rules.view.d.ts.map +1 -0
  76. package/lib/browser/rules/rules.view.js +76 -0
  77. package/lib/browser/rules/rules.view.js.map +1 -0
  78. package/lib/browser/types.d.ts +1 -8
  79. package/lib/browser/types.d.ts.map +1 -1
  80. package/lib/browser/types.js.map +1 -1
  81. package/lib/browser/widget/inline-stream-diff/live-preview.component.d.ts.map +1 -1
  82. package/lib/browser/widget/inline-stream-diff/live-preview.component.js.map +1 -1
  83. package/lib/common/MDC_PARSER_README.md +171 -0
  84. package/lib/common/index.d.ts +2 -0
  85. package/lib/common/index.d.ts.map +1 -1
  86. package/lib/common/index.js +2 -0
  87. package/lib/common/index.js.map +1 -1
  88. package/lib/common/llm-context.d.ts +19 -0
  89. package/lib/common/llm-context.d.ts.map +1 -1
  90. package/lib/common/llm-context.js.map +1 -1
  91. package/lib/common/mdc-parser.d.ts +60 -0
  92. package/lib/common/mdc-parser.d.ts.map +1 -0
  93. package/lib/common/mdc-parser.js +246 -0
  94. package/lib/common/mdc-parser.js.map +1 -0
  95. package/lib/common/prompts/context-prompt-provider.d.ts +0 -2
  96. package/lib/common/prompts/context-prompt-provider.d.ts.map +1 -1
  97. package/lib/common/prompts/context-prompt-provider.js +35 -29
  98. package/lib/common/prompts/context-prompt-provider.js.map +1 -1
  99. package/lib/common/prompts/system-prompt.d.ts +2 -0
  100. package/lib/common/prompts/system-prompt.d.ts.map +1 -0
  101. package/lib/common/prompts/system-prompt.js +5 -0
  102. package/lib/common/prompts/system-prompt.js.map +1 -0
  103. package/lib/common/types.d.ts +7 -0
  104. package/lib/common/types.d.ts.map +1 -1
  105. package/lib/node/base-language-model.d.ts.map +1 -1
  106. package/lib/node/base-language-model.js.map +1 -1
  107. package/package.json +25 -24
  108. package/src/browser/chat/chat-manager.service.ts +6 -15
  109. package/src/browser/chat/chat-model.ts +19 -56
  110. package/src/browser/chat/chat-proxy.service.ts +68 -81
  111. package/src/browser/chat/chat.feature.registry.ts +1 -17
  112. package/src/browser/chat/chat.view.tsx +22 -28
  113. package/src/browser/components/ChatMentionInput.tsx +169 -35
  114. package/src/browser/components/ChatToolRender.module.less +1 -0
  115. package/src/browser/components/components.module.less +9 -8
  116. package/src/browser/components/mention-input/mention-input.module.less +165 -1
  117. package/src/browser/components/mention-input/mention-input.tsx +257 -32
  118. package/src/browser/components/mention-input/mention-select.module.less +297 -0
  119. package/src/browser/components/mention-input/mention-select.tsx +256 -0
  120. package/src/browser/components/mention-input/types.ts +16 -0
  121. package/src/browser/context/llm-context.service.ts +182 -21
  122. package/src/browser/contrib/intelligent-completions/decoration/additions-deletions.decoration.ts +1 -1
  123. package/src/browser/contrib/intelligent-completions/diff-computer.ts +1 -1
  124. package/src/browser/contrib/terminal/terminal.feature.registry.ts +1 -1
  125. package/src/browser/index.ts +8 -0
  126. package/src/browser/mcp/base-apply.service.ts +0 -1
  127. package/src/browser/mcp/tools/getDiagnosticsByPath.ts +1 -1
  128. package/src/browser/mcp/tools/getOpenEditorFileDiagnostics.ts +1 -1
  129. package/src/browser/mcp/tools/handlers/ListDir.ts +1 -1
  130. package/src/browser/mcp/tools/runTerminalCmd.ts +1 -1
  131. package/src/browser/model/msg-history-manager.ts +3 -230
  132. package/src/browser/preferences/schema.ts +5 -0
  133. package/src/browser/rules/rules.contribution.ts +105 -0
  134. package/src/browser/rules/rules.module.less +175 -0
  135. package/src/browser/rules/rules.service.ts +189 -0
  136. package/src/browser/rules/rules.view.tsx +127 -0
  137. package/src/browser/types.ts +0 -12
  138. package/src/browser/widget/inline-stream-diff/live-preview.component.tsx +0 -1
  139. package/src/common/MDC_PARSER_README.md +171 -0
  140. package/src/common/index.ts +3 -0
  141. package/src/common/llm-context.ts +23 -0
  142. package/src/common/mdc-parser.ts +295 -0
  143. package/src/common/prompts/context-prompt-provider.ts +55 -40
  144. package/src/common/prompts/system-prompt.ts +2 -0
  145. package/src/common/types.ts +8 -0
  146. package/src/node/base-language-model.ts +0 -1
@@ -0,0 +1,297 @@
1
+ .mention_select {
2
+ position: relative;
3
+ display: inline-block;
4
+
5
+ &.size_small {
6
+ .select_trigger {
7
+ height: 20px;
8
+ padding: 0 6px;
9
+ font-size: 12px;
10
+ }
11
+ }
12
+
13
+ &.size_medium {
14
+ .select_trigger {
15
+ height: 32px;
16
+ padding: 0 12px;
17
+ font-size: 14px;
18
+ }
19
+ }
20
+
21
+ &.size_large {
22
+ .select_trigger {
23
+ height: 40px;
24
+ padding: 0 16px;
25
+ font-size: 16px;
26
+ }
27
+ }
28
+
29
+ &.disabled {
30
+ opacity: 0.6;
31
+ cursor: not-allowed;
32
+
33
+ .select_trigger {
34
+ cursor: not-allowed;
35
+ background-color: var(--input-background-disabled);
36
+ }
37
+ }
38
+
39
+ .select_trigger {
40
+ display: flex;
41
+ align-items: center;
42
+ justify-content: space-between;
43
+ background-color: var(--input-background);
44
+ border: 1px solid var(--input-border);
45
+ border-radius: 4px;
46
+ cursor: pointer;
47
+ transition: all 0.2s;
48
+ opacity: 0.7;
49
+
50
+ &:hover:not(.disabled) {
51
+ opacity: 1;
52
+ }
53
+ }
54
+
55
+ .select_content {
56
+ flex: 1;
57
+ overflow: hidden;
58
+ }
59
+
60
+ .selected_option {
61
+ display: flex;
62
+ align-items: center;
63
+ gap: 6px;
64
+ }
65
+
66
+ .option_icon {
67
+ flex-shrink: 0;
68
+ font-size: 14px;
69
+ }
70
+
71
+ .option_label {
72
+ flex: 1;
73
+ white-space: nowrap;
74
+ overflow: hidden;
75
+ text-overflow: ellipsis;
76
+ }
77
+
78
+ .option_badge {
79
+ display: inline-block;
80
+ padding: 2px 6px;
81
+ border-radius: 10px;
82
+ font-size: 10px;
83
+ color: white;
84
+ background-color: var(--badge-background);
85
+ white-space: nowrap;
86
+ }
87
+
88
+ .placeholder {
89
+ color: var(--input-placeholder-foreground);
90
+ }
91
+
92
+ .dropdown_arrow {
93
+ margin-left: 8px;
94
+ transition: transform 0.2s;
95
+ color: var(--icon-foreground);
96
+
97
+ &.open {
98
+ transform: rotate(180deg);
99
+ }
100
+ }
101
+
102
+ .dropdown {
103
+ position: absolute;
104
+ left: 0;
105
+ right: 0;
106
+ z-index: 1000;
107
+ background-color: var(--editor-background);
108
+ border: 1px solid var(--dropdown-border);
109
+ border-radius: 6px;
110
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.05);
111
+ max-height: 400px;
112
+ min-width: 300px;
113
+ overflow-y: auto;
114
+ padding: 4px;
115
+ animation: dropdownFadeIn 0.15s ease-out;
116
+
117
+ // 滚动条样式
118
+ &::-webkit-scrollbar {
119
+ width: 6px;
120
+ }
121
+
122
+ &::-webkit-scrollbar-track {
123
+ background: transparent;
124
+ }
125
+
126
+ &::-webkit-scrollbar-thumb {
127
+ background: var(--scrollbar-thumb);
128
+ border-radius: 3px;
129
+ transition: background-color 0.2s;
130
+ }
131
+
132
+ &::-webkit-scrollbar-thumb:hover {
133
+ background: var(--scrollbar-thumb-hover);
134
+ }
135
+ }
136
+
137
+ @keyframes dropdownFadeIn {
138
+ from {
139
+ opacity: 0;
140
+ transform: translateY(-4px);
141
+ }
142
+
143
+ to {
144
+ opacity: 1;
145
+ transform: translateY(0);
146
+ }
147
+ }
148
+
149
+ .thinking_section {
150
+ padding: 8px 12px 4px;
151
+ }
152
+
153
+ .thinking_toggle {
154
+ display: flex;
155
+ align-items: center;
156
+ gap: 8px;
157
+ padding: 6px 0;
158
+ cursor: pointer;
159
+ border-radius: 4px;
160
+
161
+ &:hover {
162
+ background-color: var(--list-hover-background);
163
+ }
164
+ }
165
+
166
+ .thinking_icon {
167
+ flex-shrink: 0;
168
+ color: var(--icon-foreground);
169
+
170
+ &.enabled {
171
+ color: var(--list-active-selection-foreground);
172
+ }
173
+ }
174
+
175
+ .thinking_label {
176
+ font-size: 13px;
177
+ color: var(--foreground);
178
+ font-weight: 500;
179
+ }
180
+
181
+ .divider {
182
+ height: 1px;
183
+ background-color: var(--separator-border);
184
+ margin: 8px 0 4px;
185
+ }
186
+
187
+ // 向上展开(默认)
188
+ &.dropdown_up .dropdown {
189
+ bottom: 100%;
190
+ margin-bottom: 4px;
191
+ }
192
+
193
+ // 向下展开
194
+ &.dropdown_down .dropdown {
195
+ top: 100%;
196
+ margin-top: 4px;
197
+ }
198
+
199
+ .option {
200
+ padding: 8px 12px;
201
+ border-radius: 4px;
202
+ cursor: pointer;
203
+ transition: all 0.2s;
204
+ position: relative;
205
+ border: 1px solid transparent;
206
+ box-sizing: content-box;
207
+ margin-bottom: 4px;
208
+ &:last-child {
209
+ margin-bottom: 0;
210
+ }
211
+ &:hover:not(.disabled) {
212
+ border-color: var(--dropdown-border);
213
+ }
214
+
215
+ &.active {
216
+ border-color: var(--dropdown-border);
217
+ }
218
+
219
+ &.selected {
220
+ background-color: var(--dropdown-background);
221
+
222
+ &::after {
223
+ content: '✓';
224
+ position: absolute;
225
+ top: 50%;
226
+ right: 12px;
227
+ transform: translateY(-50%);
228
+ color: var(--list-active-selection-foreground);
229
+ font-weight: bold;
230
+ font-size: 14px;
231
+ z-index: 1;
232
+ }
233
+ }
234
+
235
+ &.disabled {
236
+ opacity: 0.5;
237
+ cursor: not-allowed;
238
+
239
+ &:hover {
240
+ transform: none;
241
+ box-shadow: none;
242
+ border-color: transparent;
243
+ }
244
+ }
245
+ }
246
+
247
+ .option_main {
248
+ display: flex;
249
+ flex-direction: column;
250
+ gap: 6px;
251
+ padding-right: 24px;
252
+ }
253
+
254
+ .option_header {
255
+ display: flex;
256
+ align-items: center;
257
+ justify-content: space-between;
258
+ }
259
+
260
+ .option_title {
261
+ display: flex;
262
+ align-items: center;
263
+ gap: 8px;
264
+ flex: 1;
265
+ }
266
+
267
+ .option_description {
268
+ font-size: 12px;
269
+ color: var(--descriptionForeground);
270
+ line-height: 1.4;
271
+ margin-top: 4px;
272
+ }
273
+
274
+ .option_tags {
275
+ display: flex;
276
+ flex-wrap: wrap;
277
+ gap: 4px;
278
+ margin-top: 6px;
279
+ }
280
+
281
+ .tag {
282
+ display: inline-block;
283
+ padding: 2px 6px;
284
+ border-radius: 10px;
285
+ font-size: 10px;
286
+ background-color: var(--badge-background);
287
+ color: var(--badge-foreground);
288
+ white-space: nowrap;
289
+ }
290
+
291
+ .status_indicator {
292
+ width: 8px;
293
+ height: 8px;
294
+ border-radius: 50%;
295
+ flex-shrink: 0;
296
+ }
297
+ }
@@ -39,6 +39,16 @@ export interface MentionState {
39
39
  interface ModelOption {
40
40
  label: string;
41
41
  value: string;
42
+ icon?: string;
43
+ iconClass?: string;
44
+ tags?: string[];
45
+ description?: string;
46
+ badge?: string;
47
+ badgeColor?: string;
48
+ }
49
+ export interface ExtendedModelOption extends ModelOption {
50
+ disabled?: boolean;
51
+ selected?: boolean;
42
52
  }
43
53
  export declare enum FooterButtonPosition {
44
54
  LEFT = "left",
@@ -47,7 +57,8 @@ export declare enum FooterButtonPosition {
47
57
  export declare enum MentionType {
48
58
  FILE = "file",
49
59
  FOLDER = "folder",
50
- CODE = "code"
60
+ CODE = "code",
61
+ RULE = "rule"
51
62
  }
52
63
  interface FooterButton {
53
64
  id: string;
@@ -59,10 +70,14 @@ interface FooterButton {
59
70
  }
60
71
  export interface FooterConfig {
61
72
  modelOptions?: ModelOption[];
73
+ extendedModelOptions?: ExtendedModelOption[];
62
74
  defaultModel?: string;
63
75
  buttons?: FooterButton[];
64
76
  showModelSelector?: boolean;
65
77
  disableModelSelector?: boolean;
78
+ showThinking?: boolean;
79
+ thinkingEnabled?: boolean;
80
+ onThinkingChange?: (enabled: boolean) => void;
66
81
  }
67
82
  export interface MentionInputProps {
68
83
  mentionItems?: MentionItem[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/browser/components/mention-input/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/browser/components/mention-input/types.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ var MentionType;
11
11
  MentionType["FILE"] = "file";
12
12
  MentionType["FOLDER"] = "folder";
13
13
  MentionType["CODE"] = "code";
14
+ MentionType["RULE"] = "rule";
14
15
  })(MentionType || (exports.MentionType = MentionType = {}));
15
16
  exports.MENTION_KEYWORD = '@';
16
17
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/browser/components/mention-input/types.ts"],"names":[],"mappings":";;;AAkDA,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,qCAAa,CAAA;IACb,uCAAe,CAAA;AACjB,CAAC,EAHW,oBAAoB,oCAApB,oBAAoB,QAG/B;AAED,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,gCAAiB,CAAA;IACjB,4BAAa,CAAA;AACf,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAkCY,QAAA,eAAe,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/browser/components/mention-input/types.ts"],"names":[],"mappings":";;;AA6DA,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,qCAAa,CAAA;IACb,uCAAe,CAAA;AACjB,CAAC,EAHW,oBAAoB,oCAApB,oBAAoB,QAG/B;AAED,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,4BAAa,CAAA;AACf,CAAC,EALW,WAAW,2BAAX,WAAW,QAKtB;AAsCY,QAAA,eAAe,GAAG,GAAG,CAAC"}
@@ -16,8 +16,8 @@ export declare const createMessageByUser: (message: UserMessageData, className?:
16
16
  relationId: string;
17
17
  text: string | React.ReactNode;
18
18
  title: string;
19
- position: string;
20
19
  id: string | number;
20
+ position: string;
21
21
  };
22
22
  export declare const createMessageByAI: (message: AIMessageData, className?: string) => {
23
23
  type: string;
@@ -26,8 +26,8 @@ export declare const createMessageByAI: (message: AIMessageData, className?: str
26
26
  relationId: string;
27
27
  text: string | React.ReactNode;
28
28
  title: string;
29
- position: string;
30
29
  id: string | number;
30
+ position: string;
31
31
  };
32
32
  export declare const extractIcon: (question: ISampleQuestions) => ISampleQuestions;
33
33
  export {};
@@ -1,15 +1,24 @@
1
+ import { PreferenceService } from '@opensumi/ide-core-browser';
1
2
  import { AppConfig } from '@opensumi/ide-core-browser/lib/react-providers/config-provider';
3
+ import { IApplicationService } from '@opensumi/ide-core-common';
2
4
  import { WithEventBus } from '@opensumi/ide-core-common/lib/event-bus/event-decorator';
3
5
  import { URI } from '@opensumi/ide-core-common/lib/utils';
4
6
  import { IEditorDocumentModelService } from '@opensumi/ide-editor/lib/browser/doc-model/types';
5
7
  import { IFileServiceClient } from '@opensumi/ide-file-service';
6
8
  import { IMarkerService } from '@opensumi/ide-markers/lib/common/types';
9
+ import { ITerminalApiService } from '@opensumi/ide-terminal-next';
7
10
  import { FileContext, LLMContextService, SerializedContext } from '../../common/llm-context';
11
+ import { ProjectRule } from '../../common/types';
12
+ import { RulesService } from '../rules/rules.service';
8
13
  export declare class LLMContextServiceImpl extends WithEventBus implements LLMContextService {
9
14
  protected readonly appConfig: AppConfig;
10
15
  protected readonly docModelManager: IEditorDocumentModelService;
11
16
  protected readonly markerService: IMarkerService;
12
17
  protected readonly fileService: IFileServiceClient;
18
+ protected readonly rulesService: RulesService;
19
+ protected readonly preferenceService: PreferenceService;
20
+ protected readonly terminalService: ITerminalApiService;
21
+ protected readonly applicationService: IApplicationService;
13
22
  private isAutoCollecting;
14
23
  private contextVersion;
15
24
  private readonly maxAttachFilesLimit;
@@ -17,32 +26,42 @@ export declare class LLMContextServiceImpl extends WithEventBus implements LLMCo
17
26
  private readonly maxViewFilesLimit;
18
27
  private attachedFiles;
19
28
  private attachedFolders;
29
+ private attachedRules;
20
30
  private readonly recentlyViewFiles;
21
31
  private readonly onDidContextFilesChangeEmitter;
22
32
  private hasUserManualReference;
23
- onDidContextFilesChangeEvent: import("@opensumi/ide-utils/lib/event").Event<{
33
+ onDidContextFilesChangeEvent: import("@opensumi/ide-core-browser").Event<{
24
34
  viewed: FileContext[];
25
35
  attached: FileContext[];
26
36
  attachedFolders: FileContext[];
37
+ attachedRules: ProjectRule[];
27
38
  version: number;
28
39
  }>;
29
40
  private addFileToList;
30
41
  private addFolderToList;
42
+ addRuleToContext(uri: URI): void;
31
43
  addFileToContext(uri: URI, selection?: [number, number], isManual?: boolean): void;
32
44
  addFolderToContext(uri: URI): void;
33
45
  private notifyContextChange;
34
46
  cleanFileContext(): void;
35
47
  private getAllContextFiles;
36
48
  removeFileFromContext(uri: URI, isManual?: boolean): void;
49
+ removeFolderFromContext(uri: URI): void;
50
+ removeRuleFromContext(uri: URI): void;
37
51
  startAutoCollection(): void;
38
52
  private startAutoCollectionInternal;
39
53
  stopAutoCollection(): void;
40
54
  serialize(): Promise<SerializedContext>;
41
55
  private serializeAttachedFolders;
42
- private getPartiaFolderStructure;
56
+ private getFormattedFolderStructure;
43
57
  private serializeRecentlyViewFiles;
44
58
  private serializeAttachedFiles;
45
59
  private serializeAttachedFile;
46
60
  private getFileErrors;
61
+ private serializeGlobalRules;
62
+ private findApplicableRules;
63
+ private findFileMatchingRules;
64
+ private normalizeGlobs;
65
+ private serializeAttachedRules;
47
66
  }
48
67
  //# sourceMappingURL=llm-context.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm-context.service.d.ts","sourceRoot":"","sources":["../../../src/browser/context/llm-context.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,gEAAgE,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAC;AAEvF,OAAO,EAAW,GAAG,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAIL,2BAA2B,EAC5B,MAAM,kDAAkD,CAAC;AAE1D,OAAO,EAAY,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAGxE,OAAO,EAAqB,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEhH,qBACa,qBAAsB,SAAQ,YAAa,YAAW,iBAAiB;IAElF,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAGxC,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,2BAA2B,CAAC;IAGhE,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IAGjD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAEnD,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,cAAc,CAAK;IAE3B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAM;IAC1C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAM;IAC5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAM;IACxC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IACvD,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAK1C;IACL,OAAO,CAAC,sBAAsB,CAAS;IACvC,4BAA4B;gBANlB,WAAW,EAAE;kBACX,WAAW,EAAE;yBACN,WAAW,EAAE;iBACrB,MAAM;OAGwD;IAEzE,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,eAAe;IAYvB,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,UAAQ,GAAG,IAAI;IAkBhF,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAWlC,OAAO,CAAC,mBAAmB;IAI3B,gBAAgB;IAOhB,OAAO,CAAC,kBAAkB;IAS1B,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,UAAQ,GAAG,IAAI;IAcvD,mBAAmB,IAAI,IAAI;IAS3B,OAAO,CAAC,2BAA2B;IAsDnC,kBAAkB,IAAI,IAAI;IAIpB,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;YAW/B,wBAAwB;YAcxB,wBAAwB;IAoCtC,OAAO,CAAC,0BAA0B;IAMlC,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,aAAa;CAStB"}
1
+ {"version":3,"file":"llm-context.service.d.ts","sourceRoot":"","sources":["../../../src/browser/context/llm-context.service.ts"],"names":[],"mappings":"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"}