@opensumi/ide-ai-native 3.8.1-next-1740735952.0 → 3.8.1-next-1740965430.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/ai-core.contribution.d.ts +4 -1
- package/lib/browser/ai-core.contribution.d.ts.map +1 -1
- package/lib/browser/ai-core.contribution.js +20 -1
- package/lib/browser/ai-core.contribution.js.map +1 -1
- package/lib/browser/chat/chat-agent.service.d.ts +8 -0
- package/lib/browser/chat/chat-agent.service.d.ts.map +1 -1
- package/lib/browser/chat/chat-agent.service.js +34 -0
- package/lib/browser/chat/chat-agent.service.js.map +1 -1
- package/lib/browser/chat/chat-manager.service.d.ts +1 -0
- package/lib/browser/chat/chat-manager.service.d.ts.map +1 -1
- package/lib/browser/chat/chat-manager.service.js +13 -0
- package/lib/browser/chat/chat-manager.service.js.map +1 -1
- package/lib/browser/chat/chat-model.d.ts.map +1 -1
- package/lib/browser/chat/chat-model.js +3 -2
- package/lib/browser/chat/chat-model.js.map +1 -1
- package/lib/browser/chat/chat-proxy.service.d.ts.map +1 -1
- package/lib/browser/chat/chat-proxy.service.js +1 -1
- package/lib/browser/chat/chat-proxy.service.js.map +1 -1
- package/lib/browser/chat/chat.internal.service.d.ts +1 -0
- package/lib/browser/chat/chat.internal.service.d.ts.map +1 -1
- package/lib/browser/chat/chat.internal.service.js +3 -0
- package/lib/browser/chat/chat.internal.service.js.map +1 -1
- package/lib/browser/chat/chat.module.less +1 -2
- package/lib/browser/chat/chat.view.d.ts.map +1 -1
- package/lib/browser/chat/chat.view.js +6 -38
- package/lib/browser/chat/chat.view.js.map +1 -1
- package/lib/browser/components/ChatContext/index.js +2 -2
- package/lib/browser/components/ChatContext/index.js.map +1 -1
- package/lib/browser/components/ChatHistory.d.ts +0 -1
- package/lib/browser/components/ChatHistory.d.ts.map +1 -1
- package/lib/browser/components/ChatHistory.js +14 -14
- package/lib/browser/components/ChatHistory.js.map +1 -1
- package/lib/browser/components/ChatInput.d.ts.map +1 -1
- package/lib/browser/components/ChatInput.js +25 -1
- package/lib/browser/components/ChatInput.js.map +1 -1
- package/lib/browser/components/ChatToolRender.d.ts.map +1 -1
- package/lib/browser/components/ChatToolRender.js +2 -3
- package/lib/browser/components/ChatToolRender.js.map +1 -1
- package/lib/browser/components/{chat-history.css → chat-history.module.less} +1 -1
- package/lib/browser/components/components.module.less +20 -0
- package/lib/browser/context/llm-context.service.d.ts +18 -5
- package/lib/browser/context/llm-context.service.d.ts.map +1 -1
- package/lib/browser/context/llm-context.service.js +80 -47
- package/lib/browser/context/llm-context.service.js.map +1 -1
- package/lib/browser/layout/layout.module.less +4 -4
- package/lib/browser/mcp/base-apply.service.d.ts +31 -40
- package/lib/browser/mcp/base-apply.service.d.ts.map +1 -1
- package/lib/browser/mcp/base-apply.service.js +233 -167
- package/lib/browser/mcp/base-apply.service.js.map +1 -1
- package/lib/browser/mcp/tools/components/EditFile.d.ts.map +1 -1
- package/lib/browser/mcp/tools/components/EditFile.js +55 -41
- package/lib/browser/mcp/tools/components/EditFile.js.map +1 -1
- package/lib/browser/mcp/tools/components/index.module.less +23 -3
- package/lib/browser/mcp/tools/createNewFileWithText.d.ts.map +1 -1
- package/lib/browser/mcp/tools/createNewFileWithText.js +1 -0
- package/lib/browser/mcp/tools/createNewFileWithText.js.map +1 -1
- package/lib/browser/mcp/tools/editFile.js +1 -1
- package/lib/browser/mcp/tools/editFile.js.map +1 -1
- package/lib/browser/mcp/tools/getDiagnosticsByPath.d.ts.map +1 -1
- package/lib/browser/mcp/tools/getDiagnosticsByPath.js +1 -0
- package/lib/browser/mcp/tools/getDiagnosticsByPath.js.map +1 -1
- package/lib/browser/mcp/tools/handlers/EditFile.d.ts +5 -1
- package/lib/browser/mcp/tools/handlers/EditFile.d.ts.map +1 -1
- package/lib/browser/mcp/tools/handlers/EditFile.js +4 -4
- package/lib/browser/mcp/tools/handlers/EditFile.js.map +1 -1
- package/lib/browser/mcp/tools/handlers/RunCommand.d.ts.map +1 -1
- package/lib/browser/mcp/tools/handlers/RunCommand.js +2 -0
- package/lib/browser/mcp/tools/handlers/RunCommand.js.map +1 -1
- package/lib/browser/mcp/tools/runTerminalCmd.d.ts.map +1 -1
- package/lib/browser/mcp/tools/runTerminalCmd.js +1 -0
- package/lib/browser/mcp/tools/runTerminalCmd.js.map +1 -1
- package/lib/browser/model/msg-history-manager.d.ts +1 -0
- package/lib/browser/model/msg-history-manager.d.ts.map +1 -1
- package/lib/browser/model/msg-history-manager.js +12 -2
- package/lib/browser/model/msg-history-manager.js.map +1 -1
- package/lib/browser/preferences/schema.d.ts.map +1 -1
- package/lib/browser/preferences/schema.js +0 -1
- package/lib/browser/preferences/schema.js.map +1 -1
- package/lib/browser/types.d.ts +1 -1
- package/lib/browser/types.d.ts.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff-manager.d.ts +6 -0
- package/lib/browser/widget/inline-diff/inline-diff-manager.d.ts.map +1 -0
- package/lib/browser/widget/inline-diff/inline-diff-manager.js +27 -0
- package/lib/browser/widget/inline-diff/inline-diff-manager.js.map +1 -0
- package/lib/browser/widget/inline-diff/inline-diff-widget.module.less +12 -0
- package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.d.ts +2 -0
- package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.d.ts.map +1 -1
- package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.js +11 -4
- package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.js.map +1 -1
- package/lib/common/llm-context.d.ts +13 -9
- package/lib/common/llm-context.d.ts.map +1 -1
- package/lib/common/llm-context.js.map +1 -1
- package/lib/common/prompts/context-prompt-provider.d.ts +4 -3
- package/lib/common/prompts/context-prompt-provider.d.ts.map +1 -1
- package/lib/common/prompts/context-prompt-provider.js +33 -22
- package/lib/common/prompts/context-prompt-provider.js.map +1 -1
- package/lib/common/types.d.ts +17 -0
- package/lib/common/types.d.ts.map +1 -1
- package/lib/common/types.js.map +1 -1
- package/lib/node/base-language-model.d.ts +1 -1
- package/lib/node/base-language-model.d.ts.map +1 -1
- package/lib/node/base-language-model.js +54 -3
- package/lib/node/base-language-model.js.map +1 -1
- package/package.json +23 -23
- package/src/browser/ai-core.contribution.ts +25 -1
- package/src/browser/chat/chat-agent.service.ts +42 -3
- package/src/browser/chat/chat-manager.service.ts +12 -0
- package/src/browser/chat/chat-model.ts +11 -6
- package/src/browser/chat/chat-proxy.service.ts +2 -1
- package/src/browser/chat/chat.internal.service.ts +4 -0
- package/src/browser/chat/chat.module.less +1 -2
- package/src/browser/chat/chat.view.tsx +7 -70
- package/src/browser/components/ChatContext/index.tsx +2 -2
- package/src/browser/components/ChatHistory.tsx +21 -15
- package/src/browser/components/ChatInput.tsx +67 -4
- package/src/browser/components/ChatToolRender.tsx +1 -2
- package/src/browser/components/{chat-history.css → chat-history.module.less} +1 -1
- package/src/browser/components/components.module.less +20 -0
- package/src/browser/context/llm-context.service.ts +93 -54
- package/src/browser/layout/layout.module.less +4 -4
- package/src/browser/mcp/base-apply.service.ts +266 -213
- package/src/browser/mcp/tools/components/EditFile.tsx +82 -60
- package/src/browser/mcp/tools/components/index.module.less +23 -3
- package/src/browser/mcp/tools/createNewFileWithText.ts +1 -0
- package/src/browser/mcp/tools/editFile.ts +2 -2
- package/src/browser/mcp/tools/getDiagnosticsByPath.ts +1 -0
- package/src/browser/mcp/tools/handlers/EditFile.ts +4 -4
- package/src/browser/mcp/tools/handlers/RunCommand.ts +2 -0
- package/src/browser/mcp/tools/runTerminalCmd.ts +1 -0
- package/src/browser/model/msg-history-manager.ts +12 -2
- package/src/browser/preferences/schema.ts +0 -1
- package/src/browser/types.ts +1 -1
- package/src/browser/widget/inline-diff/inline-diff-manager.tsx +38 -0
- package/src/browser/widget/inline-diff/inline-diff-widget.module.less +12 -0
- package/src/browser/widget/inline-stream-diff/inline-stream-diff.handler.tsx +13 -4
- package/src/common/llm-context.ts +10 -4
- package/src/common/prompts/context-prompt-provider.ts +38 -29
- package/src/common/types.ts +20 -0
- package/src/node/base-language-model.ts +63 -1
|
@@ -60,6 +60,7 @@ export abstract class BaseLanguageModel {
|
|
|
60
60
|
options.topP,
|
|
61
61
|
options.topK,
|
|
62
62
|
options.providerOptions,
|
|
63
|
+
options.trimTexts,
|
|
63
64
|
cancellationToken,
|
|
64
65
|
);
|
|
65
66
|
}
|
|
@@ -87,6 +88,7 @@ export abstract class BaseLanguageModel {
|
|
|
87
88
|
topP?: number,
|
|
88
89
|
topK?: number,
|
|
89
90
|
providerOptions?: Record<string, any>,
|
|
91
|
+
trimTexts?: [string, string],
|
|
90
92
|
cancellationToken?: CancellationToken,
|
|
91
93
|
): Promise<any> {
|
|
92
94
|
try {
|
|
@@ -120,9 +122,42 @@ export abstract class BaseLanguageModel {
|
|
|
120
122
|
providerOptions,
|
|
121
123
|
});
|
|
122
124
|
|
|
125
|
+
// 状态跟踪变量
|
|
126
|
+
let isFirstChunk = true;
|
|
127
|
+
let bufferedText = '';
|
|
128
|
+
const pendingLines: string[] = [];
|
|
123
129
|
for await (const chunk of stream.fullStream) {
|
|
124
130
|
if (chunk.type === 'text-delta') {
|
|
125
|
-
|
|
131
|
+
if (trimTexts?.length) {
|
|
132
|
+
// 将收到的文本追加到缓冲区
|
|
133
|
+
bufferedText += chunk.textDelta;
|
|
134
|
+
|
|
135
|
+
// 处理第一个文本块的前缀(只处理一次)
|
|
136
|
+
if (isFirstChunk && bufferedText.includes(trimTexts[0])) {
|
|
137
|
+
bufferedText = bufferedText.substring(bufferedText.indexOf(trimTexts[0]) + trimTexts[0].length);
|
|
138
|
+
isFirstChunk = false;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// 检查是否有完整的行,并将它们添加到待发送行队列
|
|
142
|
+
const lines = bufferedText.split('\n');
|
|
143
|
+
|
|
144
|
+
// 最后一个元素可能是不完整的行,保留在缓冲区
|
|
145
|
+
bufferedText = lines.pop() || '';
|
|
146
|
+
|
|
147
|
+
// 将完整的行添加到待发送队列
|
|
148
|
+
if (lines.length > 0) {
|
|
149
|
+
pendingLines.push(...lines);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// 发送除最后几行外的所有行(保留足够的行以处理后缀)
|
|
153
|
+
while (pendingLines.length > 3) {
|
|
154
|
+
// 保留最后3行以确保能完整识别后缀
|
|
155
|
+
const lineToSend = pendingLines.shift() + '\n';
|
|
156
|
+
chatReadableStream.emitData({ kind: 'content', content: lineToSend });
|
|
157
|
+
}
|
|
158
|
+
} else {
|
|
159
|
+
chatReadableStream.emitData({ kind: 'content', content: chunk.textDelta });
|
|
160
|
+
}
|
|
126
161
|
} else if (chunk.type === 'tool-call') {
|
|
127
162
|
chatReadableStream.emitData({
|
|
128
163
|
kind: 'toolCall',
|
|
@@ -169,6 +204,33 @@ export abstract class BaseLanguageModel {
|
|
|
169
204
|
}
|
|
170
205
|
}
|
|
171
206
|
|
|
207
|
+
if (trimTexts?.[1]) {
|
|
208
|
+
// 完成处理所有块后,检查并发送剩余文本
|
|
209
|
+
|
|
210
|
+
// 将剩余缓冲区加入待发送行
|
|
211
|
+
if (bufferedText) {
|
|
212
|
+
pendingLines.push(bufferedText);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// 处理最后一行可能存在的后缀
|
|
216
|
+
if (pendingLines.length > 0) {
|
|
217
|
+
let lastLine = pendingLines[pendingLines.length - 1];
|
|
218
|
+
|
|
219
|
+
if (lastLine.endsWith(trimTexts[1])) {
|
|
220
|
+
// 移除后缀
|
|
221
|
+
lastLine = lastLine.substring(0, lastLine.length - trimTexts[1].length);
|
|
222
|
+
pendingLines[pendingLines.length - 1] = lastLine;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// 发送所有剩余的行
|
|
227
|
+
for (let i = 0; i < pendingLines.length; i++) {
|
|
228
|
+
const isLastLine = i === pendingLines.length - 1;
|
|
229
|
+
const lineToSend = pendingLines[i] + (isLastLine ? '' : '\n');
|
|
230
|
+
chatReadableStream.emitData({ kind: 'content', content: lineToSend });
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
172
234
|
chatReadableStream.end();
|
|
173
235
|
} catch (error) {
|
|
174
236
|
// Use a logger service in production instead of console
|