sema-core 2.0.3 → 2.0.5
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/dist/core/Conversation.d.ts.map +1 -1
- package/dist/core/Conversation.js +6 -3
- package/dist/core/Conversation.js.map +1 -1
- package/dist/core/SemaEngine.d.ts.map +1 -1
- package/dist/core/SemaEngine.js +9 -1
- package/dist/core/SemaEngine.js.map +1 -1
- package/dist/events/types.d.ts +2 -0
- package/dist/events/types.d.ts.map +1 -1
- package/dist/manager/PermissionManager.d.ts.map +1 -1
- package/dist/manager/PermissionManager.js +24 -9
- package/dist/manager/PermissionManager.js.map +1 -1
- package/dist/manager/StateManager.d.ts +5 -0
- package/dist/manager/StateManager.d.ts.map +1 -1
- package/dist/manager/StateManager.js +11 -1
- package/dist/manager/StateManager.js.map +1 -1
- package/dist/prompt/system.d.ts +1 -1
- package/dist/prompt/system.d.ts.map +1 -1
- package/dist/prompt/system.js +2 -0
- package/dist/prompt/system.js.map +1 -1
- package/dist/prompt/tools/subAgent.d.ts.map +1 -1
- package/dist/prompt/tools/subAgent.js +8 -1
- package/dist/prompt/tools/subAgent.js.map +1 -1
- package/dist/services/commands/runCommand.js +23 -11
- package/dist/services/commands/runCommand.js.map +1 -1
- package/dist/tools/FetchUrl.js +2 -2
- package/dist/tools/FetchUrl.js.map +1 -1
- package/dist/tools/RunShell.d.ts +17 -12
- package/dist/tools/RunShell.d.ts.map +1 -1
- package/dist/tools/RunShell.js +5 -5
- package/dist/tools/RunShell.js.map +1 -1
- package/dist/tools/ViewFile.d.ts +1 -0
- package/dist/tools/ViewFile.d.ts.map +1 -1
- package/dist/tools/ViewFile.js +9 -1
- package/dist/tools/ViewFile.js.map +1 -1
- package/dist/util/compact.d.ts +40 -6
- package/dist/util/compact.d.ts.map +1 -1
- package/dist/util/compact.js +152 -63
- package/dist/util/compact.js.map +1 -1
- package/dist/util/fileReference.js +3 -3
- package/dist/util/fileReference.js.map +1 -1
- package/dist/util/history.d.ts +11 -1
- package/dist/util/history.d.ts.map +1 -1
- package/dist/util/history.js +19 -4
- package/dist/util/history.js.map +1 -1
- package/dist/util/savePath.d.ts +3 -1
- package/dist/util/savePath.d.ts.map +1 -1
- package/dist/util/savePath.js +4 -3
- package/dist/util/savePath.js.map +1 -1
- package/dist/util/snapshotStore.d.ts.map +1 -1
- package/dist/util/snapshotStore.js +9 -4
- package/dist/util/snapshotStore.js.map +1 -1
- package/package.json +1 -1
package/dist/util/compact.d.ts
CHANGED
|
@@ -1,9 +1,40 @@
|
|
|
1
1
|
import { Message } from '../types/message';
|
|
2
|
+
import { queryLLM } from '../services/api/queryLLM';
|
|
2
3
|
import { Tool } from '../tools/base/Tool';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
declare const defaultCompactDependencies: {
|
|
5
|
+
queryLLM: typeof queryLLM;
|
|
6
|
+
getModelManager: () => import("../manager/ModelManager").ModelManager;
|
|
7
|
+
getEventBus: () => import("../events/EventSystem").EventBus;
|
|
8
|
+
};
|
|
9
|
+
export declare const __compactTestHooks: {
|
|
10
|
+
setDependencies(dependencies: Partial<typeof defaultCompactDependencies>): void;
|
|
11
|
+
resetDependencies(): void;
|
|
12
|
+
};
|
|
13
|
+
export type CompactTruncatedReason = 'EMPTY_SUMMARY' | 'INVALID_COMPACT_RESPONSE' | 'COMPACT_ERROR';
|
|
14
|
+
export type CompactResult = {
|
|
15
|
+
kind: 'unchanged';
|
|
16
|
+
messages: Message[];
|
|
17
|
+
} | {
|
|
18
|
+
kind: 'summary';
|
|
19
|
+
messages: Message[];
|
|
20
|
+
summary: string;
|
|
21
|
+
} | {
|
|
22
|
+
kind: 'truncated';
|
|
23
|
+
messages: Message[];
|
|
24
|
+
reason: CompactTruncatedReason;
|
|
25
|
+
} | {
|
|
26
|
+
kind: 'failed';
|
|
27
|
+
error: unknown;
|
|
28
|
+
};
|
|
29
|
+
export type AutoCompactResult = {
|
|
30
|
+
changed: true;
|
|
31
|
+
messages: Message[];
|
|
32
|
+
mode: 'summary' | 'truncated';
|
|
33
|
+
} | {
|
|
34
|
+
changed: false;
|
|
35
|
+
messages: Message[];
|
|
36
|
+
error?: unknown;
|
|
37
|
+
};
|
|
7
38
|
/**
|
|
8
39
|
* 根据令牌使用量判断是否应触发自动压缩
|
|
9
40
|
* 只计算输入token数,因为API调用时主要关心的是输入token限制
|
|
@@ -21,7 +52,9 @@ export declare function needsAutoCompact(messages: Message[]): boolean;
|
|
|
21
52
|
* - 确保系统在各种异常情况下都能保持功能正常
|
|
22
53
|
* - 提供多层降级方案以避免完全失败
|
|
23
54
|
*/
|
|
24
|
-
export declare function compactMessages(messages: Message[], abortController: AbortController, sessionId?: string
|
|
55
|
+
export declare function compactMessages(messages: Message[], abortController: AbortController, sessionId?: string, options?: {
|
|
56
|
+
allowTruncationFallback?: boolean;
|
|
57
|
+
}): Promise<CompactResult>;
|
|
25
58
|
/**
|
|
26
59
|
* 自动上下文压缩的主要入口函数
|
|
27
60
|
*
|
|
@@ -34,11 +67,12 @@ export declare function compactMessages(messages: Message[], abortController: Ab
|
|
|
34
67
|
*
|
|
35
68
|
* 执行自动压缩(调用前应先通过 needsAutoCompact 判断是否需要压缩)
|
|
36
69
|
*/
|
|
37
|
-
export declare function autoCompact(messages: Message[], abortController: AbortController, sessionId?: string): Promise<
|
|
70
|
+
export declare function autoCompact(messages: Message[], abortController: AbortController, sessionId?: string): Promise<AutoCompactResult>;
|
|
38
71
|
/**
|
|
39
72
|
* Null Tool - 用于占位避免工具调用
|
|
40
73
|
* 在某些场景下(如压缩),模型必须提供 tools 参数,但我们不希望模型调用任何工具
|
|
41
74
|
* 此工具作为占位符,确保 API 调用合法但不会被实际使用
|
|
42
75
|
*/
|
|
43
76
|
export declare const NULL_TOOL: Tool;
|
|
77
|
+
export {};
|
|
44
78
|
//# sourceMappingURL=compact.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/util/compact.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/util/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAKnD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAKzC,QAAA,MAAM,0BAA0B;;;;CAI/B,CAAA;AAID,eAAO,MAAM,kBAAkB;kCACC,OAAO,CAAC,OAAO,0BAA0B,CAAC,GAAG,IAAI;yBAG1D,IAAI;CAG1B,CAAA;AASD,MAAM,MAAM,sBAAsB,GAC9B,eAAe,GACf,0BAA0B,GAC1B,eAAe,CAAA;AAEnB,MAAM,MAAM,aAAa,GACrB;IACE,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB,GACD;IACE,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAChB,GACD;IACE,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,MAAM,EAAE,sBAAsB,CAAA;CAC/B,GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAEL,MAAM,MAAM,iBAAiB,GACzB;IACE,OAAO,EAAE,IAAI,CAAA;IACb,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,IAAI,EAAE,SAAS,GAAG,WAAW,CAAA;CAC9B,GACD;IACE,OAAO,EAAE,KAAK,CAAA;IACd,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AA+LL;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAO7D;AAGD;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,OAAO,EAAE,EACnB,eAAe,EAAE,eAAe,EAChC,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAO,GAClD,OAAO,CAAC,aAAa,CAAC,CAsExB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,OAAO,EAAE,EACnB,eAAe,EAAE,eAAe,EAChC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,CAAC,CAwD5B;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,IASvB,CAAA"}
|
package/dist/util/compact.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NULL_TOOL = void 0;
|
|
3
|
+
exports.NULL_TOOL = exports.__compactTestHooks = void 0;
|
|
4
4
|
exports.needsAutoCompact = needsAutoCompact;
|
|
5
5
|
exports.compactMessages = compactMessages;
|
|
6
6
|
exports.autoCompact = autoCompact;
|
|
@@ -13,6 +13,20 @@ const EventSystem_1 = require("../events/EventSystem");
|
|
|
13
13
|
const zod_1 = require("zod");
|
|
14
14
|
const tokens_2 = require("./tokens");
|
|
15
15
|
const compact_1 = require("../prompt/compact");
|
|
16
|
+
const defaultCompactDependencies = {
|
|
17
|
+
queryLLM: queryLLM_1.queryLLM,
|
|
18
|
+
getModelManager: ModelManager_1.getModelManager,
|
|
19
|
+
getEventBus: EventSystem_1.getEventBus,
|
|
20
|
+
};
|
|
21
|
+
const compactDependencies = { ...defaultCompactDependencies };
|
|
22
|
+
exports.__compactTestHooks = {
|
|
23
|
+
setDependencies(dependencies) {
|
|
24
|
+
Object.assign(compactDependencies, dependencies);
|
|
25
|
+
},
|
|
26
|
+
resetDependencies() {
|
|
27
|
+
Object.assign(compactDependencies, defaultCompactDependencies);
|
|
28
|
+
},
|
|
29
|
+
};
|
|
16
30
|
/**
|
|
17
31
|
* 触发自动上下文压缩的阈值比例
|
|
18
32
|
* 当上下文使用量超过模型限制的75%时,将自动激活紧凑化处理
|
|
@@ -21,7 +35,7 @@ const compact_1 = require("../prompt/compact");
|
|
|
21
35
|
const AUTO_COMPACT_THRESHOLD_RATIO = 0.75;
|
|
22
36
|
function getContextLimit() {
|
|
23
37
|
try {
|
|
24
|
-
return
|
|
38
|
+
return compactDependencies.getModelManager().getModel('main')?.contextLength ?? 128_000;
|
|
25
39
|
}
|
|
26
40
|
catch {
|
|
27
41
|
return 128_000;
|
|
@@ -113,10 +127,59 @@ function truncateMessages(messages, targetTokenLimit) {
|
|
|
113
127
|
function calculateCompactRate(tokenBefore, tokenAfter) {
|
|
114
128
|
return tokenAfter / tokenBefore;
|
|
115
129
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
130
|
+
function isInvalidCompactResponse(response) {
|
|
131
|
+
const usage = response.message.usage;
|
|
132
|
+
if (!usage || typeof usage !== 'object')
|
|
133
|
+
return true;
|
|
134
|
+
const inputTokens = usage.input_tokens ?? usage.prompt_tokens ?? 0;
|
|
135
|
+
const outputTokens = usage.output_tokens ?? usage.completion_tokens ?? 0;
|
|
136
|
+
if (response.message.stop_reason == null)
|
|
137
|
+
return true;
|
|
138
|
+
if (inputTokens === 0 && outputTokens === 0)
|
|
139
|
+
return true;
|
|
140
|
+
const content = response.message.content;
|
|
141
|
+
if (typeof content === 'string')
|
|
142
|
+
return content.length === 0;
|
|
143
|
+
return !Array.isArray(content) || content.length === 0;
|
|
144
|
+
}
|
|
145
|
+
function extractSummaryText(response) {
|
|
146
|
+
const content = response.message.content;
|
|
147
|
+
if (typeof content === 'string') {
|
|
148
|
+
return content;
|
|
149
|
+
}
|
|
150
|
+
if (Array.isArray(content)) {
|
|
151
|
+
const textBlock = content.find((block) => block.type === 'text');
|
|
152
|
+
return textBlock?.type === 'text' ? textBlock.text : '';
|
|
153
|
+
}
|
|
154
|
+
return '';
|
|
155
|
+
}
|
|
156
|
+
function emitCompactUsage(messagesBefore, messagesAfter, sessionId, mode, reason, error) {
|
|
157
|
+
try {
|
|
158
|
+
// `compact:exec` means a compacted transcript was actually committed.
|
|
159
|
+
// Failed compact attempts must not emit it, otherwise clients may hide the
|
|
160
|
+
// visible transcript even though persisted history remains unchanged.
|
|
161
|
+
if (mode === 'failed' || !messagesAfter) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
const tokensBeforeInfo = (0, tokens_1.countTokens)(messagesBefore);
|
|
165
|
+
const tokenBefore = tokensBeforeInfo.inputTokens + tokensBeforeInfo.outputTokens;
|
|
166
|
+
const usage = (0, tokens_2.getTokens)(messagesAfter);
|
|
167
|
+
const eventBus = compactDependencies.getEventBus();
|
|
168
|
+
const compactExecData = {
|
|
169
|
+
tokenBefore,
|
|
170
|
+
tokenCompact: usage.useTokens,
|
|
171
|
+
compactRate: calculateCompactRate(tokenBefore, usage.useTokens),
|
|
172
|
+
mode,
|
|
173
|
+
reason,
|
|
174
|
+
errMsg: error instanceof Error ? error.message : error ? String(error) : undefined,
|
|
175
|
+
};
|
|
176
|
+
eventBus.emit('compact:exec', compactExecData, sessionId);
|
|
177
|
+
eventBus.emit('conversation:usage', { usage }, sessionId);
|
|
178
|
+
}
|
|
179
|
+
catch (usageError) {
|
|
180
|
+
(0, log_1.logError)(`Failed to emit compact usage: ${usageError}`);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
120
183
|
/**
|
|
121
184
|
* 根据令牌使用量判断是否应触发自动压缩
|
|
122
185
|
* 只计算输入token数,因为API调用时主要关心的是输入token限制
|
|
@@ -140,45 +203,66 @@ function needsAutoCompact(messages) {
|
|
|
140
203
|
* - 确保系统在各种异常情况下都能保持功能正常
|
|
141
204
|
* - 提供多层降级方案以避免完全失败
|
|
142
205
|
*/
|
|
143
|
-
async function compactMessages(messages, abortController, sessionId) {
|
|
206
|
+
async function compactMessages(messages, abortController, sessionId, options = {}) {
|
|
207
|
+
const allowTruncationFallback = options.allowTruncationFallback ?? true;
|
|
144
208
|
if (messages.length < 2) {
|
|
145
|
-
return messages;
|
|
209
|
+
return { kind: 'unchanged', messages };
|
|
146
210
|
}
|
|
147
|
-
// 计算压缩前的输入token数
|
|
148
|
-
const tokensBeforeInfo = (0, tokens_1.countTokens)(messages);
|
|
149
|
-
const tokenBefore = tokensBeforeInfo.inputTokens + tokensBeforeInfo.outputTokens;
|
|
150
|
-
let compactedMessages;
|
|
151
211
|
try {
|
|
152
|
-
|
|
212
|
+
const summaryResult = await executeAutoCompact(messages, abortController);
|
|
213
|
+
if (summaryResult.kind === 'summary') {
|
|
214
|
+
emitCompactUsage(messages, summaryResult.messages, sessionId, 'summary');
|
|
215
|
+
return summaryResult;
|
|
216
|
+
}
|
|
217
|
+
if (!allowTruncationFallback) {
|
|
218
|
+
emitCompactUsage(messages, null, sessionId, 'failed', summaryResult.reason);
|
|
219
|
+
return {
|
|
220
|
+
kind: 'failed',
|
|
221
|
+
error: new Error(`Compact did not produce a valid summary: ${summaryResult.reason}`),
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
const contextLimit = getContextLimit();
|
|
225
|
+
const targetLimit = contextLimit * 0.5; // 截断到50%容量
|
|
226
|
+
const truncatedMessages = truncateMessages(messages, targetLimit);
|
|
227
|
+
emitCompactUsage(messages, truncatedMessages, sessionId, 'truncated', summaryResult.reason);
|
|
228
|
+
return {
|
|
229
|
+
kind: 'truncated',
|
|
230
|
+
messages: truncatedMessages,
|
|
231
|
+
reason: summaryResult.reason,
|
|
232
|
+
};
|
|
153
233
|
}
|
|
154
234
|
catch (error) {
|
|
235
|
+
if (!allowTruncationFallback) {
|
|
236
|
+
emitCompactUsage(messages, null, sessionId, 'failed', 'COMPACT_ERROR', error);
|
|
237
|
+
return {
|
|
238
|
+
kind: 'failed',
|
|
239
|
+
error,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
155
242
|
// 压缩完全失败时的备用策略:使用截断方式
|
|
156
243
|
(0, log_1.logError)(`Compact failed, attempting truncation fallback: ${error}`);
|
|
157
244
|
try {
|
|
158
245
|
const contextLimit = getContextLimit();
|
|
159
246
|
const targetLimit = contextLimit * 0.5; // 截断到50%容量
|
|
160
|
-
|
|
161
|
-
(0, log_1.logError)(`Successfully applied truncation fallback, reduced from ${messages.length} to ${
|
|
247
|
+
const truncatedMessages = truncateMessages(messages, targetLimit);
|
|
248
|
+
(0, log_1.logError)(`Successfully applied truncation fallback, reduced from ${messages.length} to ${truncatedMessages.length} messages`);
|
|
249
|
+
emitCompactUsage(messages, truncatedMessages, sessionId, 'truncated', 'COMPACT_ERROR', error);
|
|
250
|
+
return {
|
|
251
|
+
kind: 'truncated',
|
|
252
|
+
messages: truncatedMessages,
|
|
253
|
+
reason: 'COMPACT_ERROR',
|
|
254
|
+
};
|
|
162
255
|
}
|
|
163
256
|
catch (truncationError) {
|
|
164
|
-
//
|
|
257
|
+
// 如果连截断都失败,返回失败结果
|
|
165
258
|
(0, log_1.logError)(`Truncation fallback also failed: ${truncationError}`);
|
|
166
|
-
|
|
259
|
+
emitCompactUsage(messages, null, sessionId, 'failed', 'COMPACT_ERROR', truncationError);
|
|
260
|
+
return {
|
|
261
|
+
kind: 'failed',
|
|
262
|
+
error: truncationError,
|
|
263
|
+
};
|
|
167
264
|
}
|
|
168
265
|
}
|
|
169
|
-
// 计算压缩后的输入token数并触发事件
|
|
170
|
-
const usage = (0, tokens_2.getTokens)(compactedMessages);
|
|
171
|
-
// 触发压缩执行事件
|
|
172
|
-
const eventBus = (0, EventSystem_1.getEventBus)();
|
|
173
|
-
const compactExecData = {
|
|
174
|
-
tokenBefore: tokenBefore,
|
|
175
|
-
tokenCompact: usage.useTokens,
|
|
176
|
-
compactRate: calculateCompactRate(tokenBefore, usage.useTokens)
|
|
177
|
-
};
|
|
178
|
-
eventBus.emit('compact:exec', compactExecData, sessionId);
|
|
179
|
-
// 自动压缩后发送更新的 usage 事件
|
|
180
|
-
eventBus.emit('conversation:usage', { usage }, sessionId);
|
|
181
|
-
return compactedMessages;
|
|
182
266
|
}
|
|
183
267
|
/**
|
|
184
268
|
* 自动上下文压缩的主要入口函数
|
|
@@ -209,7 +293,7 @@ async function autoCompact(messages, abortController, sessionId) {
|
|
|
209
293
|
}
|
|
210
294
|
if (lastRealUserIdx === -1) {
|
|
211
295
|
// 没有找到真实用户消息,跳过压缩
|
|
212
|
-
return messages;
|
|
296
|
+
return { changed: false, messages };
|
|
213
297
|
}
|
|
214
298
|
// 只压缩最后一条真实用户消息之前的历史
|
|
215
299
|
const messagesToCompact = messages.slice(0, lastRealUserIdx);
|
|
@@ -217,23 +301,28 @@ async function autoCompact(messages, abortController, sessionId) {
|
|
|
217
301
|
const messagesToKeep = messages.slice(lastRealUserIdx);
|
|
218
302
|
if (messagesToCompact.length < 2) {
|
|
219
303
|
// 历史消息太少,不值得压缩
|
|
220
|
-
return messages;
|
|
304
|
+
return { changed: false, messages };
|
|
221
305
|
}
|
|
222
|
-
|
|
223
|
-
|
|
306
|
+
const compactResult = await compactMessages(messagesToCompact, abortController, sessionId);
|
|
307
|
+
if (compactResult.kind === 'summary' || compactResult.kind === 'truncated') {
|
|
224
308
|
// 组合结果示例(工具调用场景):
|
|
225
309
|
// [compactNotice(user), summaryMsg(assistant), lastRealUserMsg(user), assistantMsg(assistant), toolResult(user)]
|
|
226
310
|
// 组合结果示例(新查询场景):
|
|
227
311
|
// [compactNotice(user), summaryMsg(assistant), newUserQuery(user)]
|
|
228
312
|
// 两种场景均以 user 消息结尾,API 调用合法
|
|
229
|
-
const finalMessages = [...
|
|
313
|
+
const finalMessages = [...compactResult.messages, ...messagesToKeep];
|
|
230
314
|
(0, log_1.logDebug)(`[Compact] Final messages count: ${finalMessages.length}, kept current turn: ${messagesToKeep.length} messages`);
|
|
231
|
-
return
|
|
315
|
+
return {
|
|
316
|
+
changed: true,
|
|
317
|
+
messages: finalMessages,
|
|
318
|
+
mode: compactResult.kind,
|
|
319
|
+
};
|
|
232
320
|
}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
return messages;
|
|
321
|
+
if (compactResult.kind === 'unchanged') {
|
|
322
|
+
return { changed: false, messages };
|
|
236
323
|
}
|
|
324
|
+
(0, log_1.logError)(`Auto-compact failed completely: ${compactResult.error}. Continuing with original messages`);
|
|
325
|
+
return { changed: false, messages, error: compactResult.error };
|
|
237
326
|
}
|
|
238
327
|
/**
|
|
239
328
|
* Null Tool - 用于占位避免工具调用
|
|
@@ -259,7 +348,7 @@ exports.NULL_TOOL = {
|
|
|
259
348
|
* 1. 压缩传入的历史对话消息
|
|
260
349
|
* 2. 返回结构:[压缩指令(user), 压缩摘要(assistant+usage)]
|
|
261
350
|
*
|
|
262
|
-
* 注意:新用户消息的分离和添加由
|
|
351
|
+
* 注意:新用户消息的分离和添加由 autoCompact 统一处理
|
|
263
352
|
*/
|
|
264
353
|
async function executeAutoCompact(messages, abortController) {
|
|
265
354
|
// 使用 null tool 作为占位,避免模型调用任何工具
|
|
@@ -269,30 +358,24 @@ async function executeAutoCompact(messages, abortController) {
|
|
|
269
358
|
...(0, message_1.prepareMessagesForApi)([...messages]),
|
|
270
359
|
(0, message_1.buildUserMsg)(compact_1.COMPRESSION_PROMPT)
|
|
271
360
|
];
|
|
272
|
-
const summaryResponse = await
|
|
361
|
+
const summaryResponse = await compactDependencies.queryLLM(messagesWithPrompt, [
|
|
273
362
|
{
|
|
274
363
|
type: 'text',
|
|
275
364
|
text: 'An AI assistant that helps summarize coding conversations.'
|
|
276
365
|
}
|
|
277
366
|
], abortController.signal, tools, { modelPointer: 'main', disableChunkEvents: true });
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
summary = content;
|
|
367
|
+
if (isInvalidCompactResponse(summaryResponse)) {
|
|
368
|
+
return {
|
|
369
|
+
kind: 'invalid',
|
|
370
|
+
reason: 'INVALID_COMPACT_RESPONSE',
|
|
371
|
+
};
|
|
284
372
|
}
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
// 压缩失败时的备用策略:尝试简单截断而不是完全失败
|
|
292
|
-
const contextLimit = getContextLimit();
|
|
293
|
-
const targetLimit = contextLimit * 0.5; // 截断到50%容量
|
|
294
|
-
(0, log_1.logError)('压缩生成摘要失败,使用截断策略作为备用方案');
|
|
295
|
-
return truncateMessages(messages, targetLimit);
|
|
373
|
+
const summary = extractSummaryText(summaryResponse);
|
|
374
|
+
if (summary.trim().length === 0) {
|
|
375
|
+
return {
|
|
376
|
+
kind: 'invalid',
|
|
377
|
+
reason: 'EMPTY_SUMMARY',
|
|
378
|
+
};
|
|
296
379
|
}
|
|
297
380
|
// 压缩后的消息结构:
|
|
298
381
|
// 1. User: 压缩通知
|
|
@@ -308,6 +391,9 @@ The conversation has been automatically compressed due to token limit. Below is
|
|
|
308
391
|
const originalUsage = summaryResponse.message.usage;
|
|
309
392
|
const estimatedNoticeTokens = 30;
|
|
310
393
|
const summaryTokens = originalUsage.completion_tokens || originalUsage.output_tokens || 0;
|
|
394
|
+
const correctedInputTokens = estimatedNoticeTokens + summaryTokens;
|
|
395
|
+
const originalInputTokens = originalUsage.input_tokens ?? originalUsage.prompt_tokens ?? 0;
|
|
396
|
+
const originalOutputTokens = originalUsage.output_tokens ?? originalUsage.completion_tokens ?? 0;
|
|
311
397
|
// 创建修正后的 summary message
|
|
312
398
|
const correctedSummaryMessage = {
|
|
313
399
|
...summaryResponse,
|
|
@@ -316,19 +402,22 @@ The conversation has been automatically compressed due to token limit. Below is
|
|
|
316
402
|
usage: {
|
|
317
403
|
...originalUsage,
|
|
318
404
|
// 修正 input_tokens:压缩通知 + 摘要内容
|
|
319
|
-
input_tokens:
|
|
405
|
+
input_tokens: correctedInputTokens,
|
|
320
406
|
// 修正 output_tokens:摘要内容
|
|
321
407
|
output_tokens: summaryTokens,
|
|
322
408
|
// 如果是 OpenAI 格式,也要修正
|
|
323
|
-
prompt_tokens:
|
|
409
|
+
prompt_tokens: correctedInputTokens,
|
|
324
410
|
completion_tokens: summaryTokens,
|
|
325
411
|
}
|
|
326
412
|
}
|
|
327
413
|
};
|
|
328
|
-
|
|
329
|
-
// logDebug(`[Compact] Corrected usage: input=${estimatedNoticeTokens + summaryTokens}, output=${summaryTokens}`)
|
|
414
|
+
(0, log_1.logDebug)(`[Compact] Corrected summary usage: originalInput=${originalInputTokens}, originalOutput=${originalOutputTokens}, correctedInput=${correctedInputTokens}, correctedOutput=${summaryTokens}`);
|
|
330
415
|
// 构建压缩后的消息列表(只包含压缩通知和摘要,不包含新用户消息)
|
|
331
416
|
const compactedMessages = [compactNoticeMessage, correctedSummaryMessage];
|
|
332
|
-
return
|
|
417
|
+
return {
|
|
418
|
+
kind: 'summary',
|
|
419
|
+
messages: compactedMessages,
|
|
420
|
+
summary,
|
|
421
|
+
};
|
|
333
422
|
}
|
|
334
423
|
//# sourceMappingURL=compact.js.map
|
package/dist/util/compact.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/util/compact.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/util/compact.ts"],"names":[],"mappings":";;;AA2QA,4CAOC;AAeD,0CA2EC;AAcD,kCA4DC;AArbD,qCAAsC;AACtC,uCAA+D;AAC/D,uDAAmD;AACnD,0DAAyD;AACzD,+BAA0C;AAC1C,uDAAmD;AAGnD,6BAAuB;AACvB,qCAAoC;AACpC,+CAAsD;AAEtD,MAAM,0BAA0B,GAAG;IACjC,QAAQ,EAAR,mBAAQ;IACR,eAAe,EAAf,8BAAe;IACf,WAAW,EAAX,yBAAW;CACZ,CAAA;AAED,MAAM,mBAAmB,GAAG,EAAE,GAAG,0BAA0B,EAAE,CAAA;AAEhD,QAAA,kBAAkB,GAAG;IAChC,eAAe,CAAC,YAAwD;QACtE,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAA;IAClD,CAAC;IACD,iBAAiB;QACf,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAA;IAChE,CAAC;CACF,CAAA;AAED;;;;GAIG;AACH,MAAM,4BAA4B,GAAG,IAAI,CAAA;AAkDzC,SAAS,eAAe;IACtB,IAAI,CAAC;QACH,OAAO,mBAAmB,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,IAAI,OAAO,CAAA;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAA;IAChB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAC,KAAU;IACzC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,CAAC,CAAA;IACV,CAAC;IACD,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;QAC5B,eAAe;QACf,OAAO,KAAK,CAAC,YAAY;YACvB,CAAC,KAAK,CAAC,2BAA2B,IAAI,CAAC,CAAC;YACxC,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC,CAAA;IACxC,CAAC;SAAM,IAAI,eAAe,IAAI,KAAK,EAAE,CAAC;QACpC,YAAY;QACZ,OAAO,KAAK,CAAC,aAAa,CAAA;IAC5B,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,QAAmB,EAAE,gBAAwB;IACrE,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,4CAA4C;IAC5C,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,QAAQ,CAAC,CAAA;IACzC,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,CAAA;IAEhD,yBAAyB;IACzB,IAAI,gBAAgB,IAAI,gBAAgB,EAAE,CAAC;QACzC,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,gBAAgB;IAChB,MAAM,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,CAAA;IAE1D,IAAA,cAAQ,EAAC,+BAA+B,gBAAgB,YAAY,gBAAgB,cAAc,cAAc,EAAE,CAAC,CAAA;IAEnH,mDAAmD;IACnD,iDAAiD;IACjD,kDAAkD;IAClD,IAAI,QAAQ,GAAG,CAAC,CAAA;IAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAE3B,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC/D,MAAM,WAAW,GAAG,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAElE,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC;gBAClC,aAAa;gBACb,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;gBAChB,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAChC,QAAQ,GAAG,CAAC,CAAA;gBACZ,MAAK;YACP,CAAC;QACH,CAAC;QACD,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAEvC,aAAa;IACb,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,cAAc;IACd,IAAI,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,gBAAgB,GAAG,IAAA,sBAAY,EACnC,yCAAyC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,2DAA2D,CACpI,CAAA;QACD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAClC,CAAC;IAED,IAAA,cAAQ,EAAC,qCAAqC,MAAM,CAAC,MAAM,OAAO,QAAQ,CAAC,MAAM,WAAW,CAAC,CAAA;IAE7F,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,WAAmB,EAAE,UAAkB;IACnE,OAAO,UAAU,GAAG,WAAW,CAAC;AAClC,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAmB;IACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAY,CAAA;IAC3C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAEpD,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,CAAA;IAClE,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAA;IAExE,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI;QAAE,OAAO,IAAI,CAAA;IACrD,IAAI,WAAW,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAExD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAc,CAAA;IAC/C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAA;IAC5D,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAA;AACxD,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAmB;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAc,CAAA;IAE/C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;QACrE,OAAO,SAAS,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IACzD,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAS,gBAAgB,CACvB,cAAyB,EACzB,aAA+B,EAC/B,SAA6B,EAC7B,IAAwC,EACxC,MAAe,EACf,KAAe;IAEf,IAAI,CAAC;QACH,sEAAsE;QACtE,2EAA2E;QAC3E,sEAAsE;QACtE,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,OAAM;QACR,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAA,oBAAW,EAAC,cAAc,CAAC,CAAA;QACpD,MAAM,WAAW,GAAG,gBAAgB,CAAC,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAA;QAChF,MAAM,KAAK,GAAG,IAAA,kBAAS,EAAC,aAAa,CAAC,CAAA;QACtC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,WAAW,EAAE,CAAA;QAClD,MAAM,eAAe,GAAoB;YACvC,WAAW;YACX,YAAY,EAAE,KAAK,CAAC,SAAS;YAC7B,WAAW,EAAE,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;YAC/D,IAAI;YACJ,MAAM;YACN,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;SACnF,CAAA;QAED,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,EAAE,SAAS,CAAC,CAAA;QACzD,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC,CAAA;IAC3D,CAAC;IAAC,OAAO,UAAU,EAAE,CAAC;QACpB,IAAA,cAAQ,EAAC,iCAAiC,UAAU,EAAE,CAAC,CAAA;IACzD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,QAAmB;IAClD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IAErC,MAAM,eAAe,GAAG,IAAA,oBAAW,EAAC,QAAQ,CAAC,CAAC,WAAW,CAAA;IACzD,MAAM,oBAAoB,GAAG,eAAe,EAAE,GAAG,4BAA4B,CAAA;IAE7E,OAAO,eAAe,IAAI,oBAAoB,CAAA;AAChD,CAAC;AAGD;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,eAAe,CACnC,QAAmB,EACnB,eAAgC,EAChC,SAAkB,EAClB,UAAiD,EAAE;IAEnD,MAAM,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,IAAI,IAAI,CAAA;IAEvE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAA;IACxC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAA;QAEzE,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACrC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;YACxE,OAAO,aAAa,CAAA;QACtB,CAAC;QAED,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7B,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;YAC3E,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,IAAI,KAAK,CAAC,4CAA4C,aAAa,CAAC,MAAM,EAAE,CAAC;aACrF,CAAA;QACH,CAAC;QAED,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;QACtC,MAAM,WAAW,GAAG,YAAY,GAAG,GAAG,CAAA,CAAC,WAAW;QAClD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;QACjE,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QAE3F,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,iBAAiB;YAC3B,MAAM,EAAE,aAAa,CAAC,MAAM;SAC7B,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7B,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,CAAA;YAC7E,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK;aACN,CAAA;QACH,CAAC;QAED,sBAAsB;QACtB,IAAA,cAAQ,EAAC,mDAAmD,KAAK,EAAE,CAAC,CAAA;QAEpE,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,eAAe,EAAE,CAAA;YACtC,MAAM,WAAW,GAAG,YAAY,GAAG,GAAG,CAAA,CAAC,WAAW;YAElD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;YAEjE,IAAA,cAAQ,EAAC,0DAA0D,QAAQ,CAAC,MAAM,OAAO,iBAAiB,CAAC,MAAM,WAAW,CAAC,CAAA;YAC7H,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,CAAC,CAAA;YAE7F,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,iBAAiB;gBAC3B,MAAM,EAAE,eAAe;aACxB,CAAA;QACH,CAAC;QAAC,OAAO,eAAe,EAAE,CAAC;YACzB,kBAAkB;YAClB,IAAA,cAAQ,EAAC,oCAAoC,eAAe,EAAE,CAAC,CAAA;YAC/D,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,CAAC,CAAA;YAEvF,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,eAAe;aACvB,CAAA;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,WAAW,CAC/B,QAAmB,EACnB,eAAgC,EAChC,SAAkB;IAElB,oCAAoC;IACpC,IAAI,eAAe,GAAG,CAAC,CAAC,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAA;YAC3C,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBACzC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAClB,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,aAAa,CAAA;YACpC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,eAAe,GAAG,CAAC,CAAA;gBACnB,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3B,kBAAkB;QAClB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;IACrC,CAAC;IAED,qBAAqB;IACrB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;IAC5D,+BAA+B;IAC/B,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAEtD,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,eAAe;QACf,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;IACrC,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,iBAAiB,EAAE,eAAe,EAAE,SAAS,CAAC,CAAA;IAE1F,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,IAAI,aAAa,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC3E,kBAAkB;QAClB,mHAAmH;QACnH,iBAAiB;QACjB,qEAAqE;QACrE,4BAA4B;QAC5B,MAAM,aAAa,GAAG,CAAC,GAAG,aAAa,CAAC,QAAQ,EAAE,GAAG,cAAc,CAAC,CAAA;QAEpE,IAAA,cAAQ,EAAC,mCAAmC,aAAa,CAAC,MAAM,wBAAwB,cAAc,CAAC,MAAM,WAAW,CAAC,CAAA;QAEzH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,aAAa;YACvB,IAAI,EAAE,aAAa,CAAC,IAAI;SACzB,CAAA;IACH,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACvC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;IACrC,CAAC;IAED,IAAA,cAAQ,EAAC,mCAAmC,aAAa,CAAC,KAAK,qCAAqC,CAAC,CAAA;IACrG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAA;AACjE,CAAC;AAED;;;;GAIG;AACU,QAAA,SAAS,GAAS;IAC7B,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,uCAAuC;IACpD,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI;IAClB,qBAAqB,EAAE,GAAG,EAAE,CAAC,EAAE;IAC/B,IAAI,EAAE,KAAK,SAAS,CAAC;QACnB,MAAM,EAAE,IAAI,EAAE,QAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAC/C,CAAC;CACF,CAAA;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,kBAAkB,CAC/B,QAAmB,EACnB,eAAgC;IAEhC,+BAA+B;IAC/B,MAAM,KAAK,GAAG,CAAC,iBAAS,CAAC,CAAA;IAEzB,oCAAoC;IACpC,MAAM,kBAAkB,GAAG;QACzB,GAAG,IAAA,+BAAqB,EAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QACvC,IAAA,sBAAY,EAAC,4BAAkB,CAAC;KACjC,CAAA;IAED,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CACxD,kBAAkB,EAClB;QACE;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,4DAA4D;SACnE;KACF,EACD,eAAe,CAAC,MAAM,EACtB,KAAK,EACL,EAAE,YAAY,EAAE,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,CACnD,CAAA;IAED,IAAI,wBAAwB,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9C,OAAO;YACL,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,0BAA0B;SACnC,CAAA;IACH,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAA;IAEnD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO;YACL,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,eAAe;SACxB,CAAA;IACH,CAAC;IAED,YAAY;IACZ,gBAAgB;IAChB,kDAAkD;IAClD,EAAE;IACF,6CAA6C;IAC7C,6DAA6D;IAC7D,mCAAmC;IACnC,MAAM,oBAAoB,GAAG,IAAA,sBAAY,EACvC;yGACqG,CACtG,CAAA;IAED,wCAAwC;IACxC,4CAA4C;IAC5C,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,KAAY,CAAA;IAC1D,MAAM,qBAAqB,GAAG,EAAE,CAAA;IAChC,MAAM,aAAa,GAAG,aAAa,CAAC,iBAAiB,IAAI,aAAa,CAAC,aAAa,IAAI,CAAC,CAAA;IACzF,MAAM,oBAAoB,GAAG,qBAAqB,GAAG,aAAa,CAAA;IAClE,MAAM,mBAAmB,GAAG,aAAa,CAAC,YAAY,IAAI,aAAa,CAAC,aAAa,IAAI,CAAC,CAAA;IAC1F,MAAM,oBAAoB,GAAG,aAAa,CAAC,aAAa,IAAI,aAAa,CAAC,iBAAiB,IAAI,CAAC,CAAA;IAEhG,yBAAyB;IACzB,MAAM,uBAAuB,GAA2B;QACtD,GAAG,eAAe;QAClB,OAAO,EAAE;YACP,GAAG,eAAe,CAAC,OAAO;YAC1B,KAAK,EAAE;gBACL,GAAG,aAAa;gBAChB,8BAA8B;gBAC9B,YAAY,EAAE,oBAAoB;gBAClC,wBAAwB;gBACxB,aAAa,EAAE,aAAa;gBAC5B,qBAAqB;gBACrB,aAAa,EAAE,oBAAoB;gBACnC,iBAAiB,EAAE,aAAa;aACjC;SACF;KACF,CAAA;IAED,IAAA,cAAQ,EACN,oDAAoD,mBAAmB,oBAAoB,oBAAoB,oBAAoB,oBAAoB,qBAAqB,aAAa,EAAE,CAC5L,CAAA;IAED,kCAAkC;IAClC,MAAM,iBAAiB,GAAc,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,CAAA;IAEpF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,iBAAiB;QAC3B,OAAO;KACR,CAAA;AACH,CAAC"}
|
|
@@ -159,7 +159,7 @@ async function processSingleReference(match, agentContext, fileReadTool) {
|
|
|
159
159
|
const fullReference = match[0]; // 完整的引用字符串,如 @index.js:13-17
|
|
160
160
|
const referenceText = match[1]; // 去掉@的部分,如 index.js:13-17
|
|
161
161
|
// 解析文件引用
|
|
162
|
-
const parsed = parseFileReference(referenceText);
|
|
162
|
+
const parsed = parseFileReference((referenceText ?? match[2]));
|
|
163
163
|
const fullPath = (0, file_1.canonicalizeFilePath)(parsed.fileName);
|
|
164
164
|
(0, log_1.logInfo)(`Processing file reference: ${fullReference} -> ${fullPath}${parsed.startLine ? `:${parsed.startLine}${parsed.endLine !== parsed.startLine ? `-${parsed.endLine}` : ''}` : ''}`);
|
|
165
165
|
try {
|
|
@@ -339,7 +339,7 @@ async function processFileReferences(userInput, agentContext) {
|
|
|
339
339
|
// 不含 . : / \ 等路径合法字符,避免截断文件名/路径
|
|
340
340
|
// 左边界:@ 必须位于行首或边界字符之后(避免误匹配 email@example.com 等)
|
|
341
341
|
// 右边界:遇到边界字符则停止
|
|
342
|
-
const fileReferenceRegex = /(?:^|(?<=[\s。,、;:!?""''「」『』()《》〈〉【】,;!?]))@([^\s。,、;:!?""''「」『』()《》〈〉【】,;!?]+)/g;
|
|
342
|
+
const fileReferenceRegex = /(?:^|(?<=[\s。,、;:!?""''「」『』()《》〈〉【】,;!?]))@(?:"([^"]+)"|([^\s。,、;:!?""''「」『』()《》〈〉【】,;!?]+))/g;
|
|
343
343
|
const allMatches = [...userInput.matchAll(fileReferenceRegex)];
|
|
344
344
|
// 如果没有找到文件引用,直接返回
|
|
345
345
|
if (allMatches.length === 0) {
|
|
@@ -348,7 +348,7 @@ async function processFileReferences(userInput, agentContext) {
|
|
|
348
348
|
// 对文件引用进行去重,保持首次出现的顺序
|
|
349
349
|
const seen = new Set();
|
|
350
350
|
const matches = allMatches.filter(match => {
|
|
351
|
-
const ref = match[1];
|
|
351
|
+
const ref = (match[1] ?? match[2]);
|
|
352
352
|
if (seen.has(ref)) {
|
|
353
353
|
return false;
|
|
354
354
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileReference.js","sourceRoot":"","sources":["../../src/util/fileReference.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fileReference.js","sourceRoot":"","sources":["../../src/util/fileReference.ts"],"names":[],"mappings":"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"}
|
package/dist/util/history.d.ts
CHANGED
|
@@ -7,6 +7,16 @@ interface HistoryData {
|
|
|
7
7
|
todoTasks?: TodoTask[];
|
|
8
8
|
readFileTimestamps?: Record<string, number>;
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* 解析会话当前应使用的历史文件路径与命名格式。
|
|
12
|
+
* 优先级:无日期 会话id.json > 当天带日期 日期_会话id.json。
|
|
13
|
+
* 都不存在时返回当天带日期路径,exists=false(由调用方决定新会话的命名格式)。
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveHistoryFile(sessionId: string, projectPath?: string): {
|
|
16
|
+
path: string;
|
|
17
|
+
noDate: boolean;
|
|
18
|
+
exists: boolean;
|
|
19
|
+
};
|
|
10
20
|
/**
|
|
11
21
|
* 加载历史消息和todos
|
|
12
22
|
*/
|
|
@@ -18,6 +28,6 @@ export declare function cleanupOldHistoryFiles(projectPath?: string): Promise<vo
|
|
|
18
28
|
/**
|
|
19
29
|
* 保存历史消息和todos
|
|
20
30
|
*/
|
|
21
|
-
export declare function saveHistory(sessionId: string, messages: Message[], todos?: TodoItem[], projectPath?: string, readFileTimestamps?: Record<string, number>, todoTasks?: TodoTask[]): Promise<void>;
|
|
31
|
+
export declare function saveHistory(sessionId: string, messages: Message[], todos?: TodoItem[], projectPath?: string, readFileTimestamps?: Record<string, number>, todoTasks?: TodoTask[], noDate?: boolean): Promise<void>;
|
|
22
32
|
export type { HistoryData };
|
|
23
33
|
//# sourceMappingURL=history.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/util/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAiB7C,UAAU,WAAW;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAsBhG;AAwHD;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/util/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAiB7C,UAAU,WAAW;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAQ9H;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAsBhG;AAwHD;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCxN;AAGD,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/util/history.js
CHANGED
|
@@ -33,6 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.resolveHistoryFile = resolveHistoryFile;
|
|
36
37
|
exports.loadHistory = loadHistory;
|
|
37
38
|
exports.cleanupOldHistoryFiles = cleanupOldHistoryFiles;
|
|
38
39
|
exports.saveHistory = saveHistory;
|
|
@@ -45,15 +46,29 @@ const config_1 = require("../conf/config");
|
|
|
45
46
|
const time_1 = require("./time");
|
|
46
47
|
// 清理历史文件的时间间隔(毫秒)
|
|
47
48
|
let lastHistoryCleanupTime = 0;
|
|
49
|
+
/**
|
|
50
|
+
* 解析会话当前应使用的历史文件路径与命名格式。
|
|
51
|
+
* 优先级:无日期 会话id.json > 当天带日期 日期_会话id.json。
|
|
52
|
+
* 都不存在时返回当天带日期路径,exists=false(由调用方决定新会话的命名格式)。
|
|
53
|
+
*/
|
|
54
|
+
function resolveHistoryFile(sessionId, projectPath) {
|
|
55
|
+
const noDatePath = (0, savePath_1.getHistoryFilePath)(sessionId, projectPath, true);
|
|
56
|
+
if (fs.existsSync(noDatePath))
|
|
57
|
+
return { path: noDatePath, noDate: true, exists: true };
|
|
58
|
+
const datedPath = (0, savePath_1.getHistoryFilePath)(sessionId, projectPath, false);
|
|
59
|
+
if (fs.existsSync(datedPath))
|
|
60
|
+
return { path: datedPath, noDate: false, exists: true };
|
|
61
|
+
return { path: datedPath, noDate: false, exists: false };
|
|
62
|
+
}
|
|
48
63
|
/**
|
|
49
64
|
* 加载历史消息和todos
|
|
50
65
|
*/
|
|
51
66
|
async function loadHistory(sessionId, projectPath) {
|
|
52
67
|
if (!sessionId)
|
|
53
68
|
return { messages: [], todos: [] };
|
|
54
|
-
const historyPath = (
|
|
69
|
+
const { path: historyPath, exists } = resolveHistoryFile(sessionId, projectPath);
|
|
55
70
|
try {
|
|
56
|
-
if (
|
|
71
|
+
if (exists) {
|
|
57
72
|
const historyData = JSON.parse(fs.readFileSync(historyPath, 'utf-8'));
|
|
58
73
|
const messages = historyData.messages || [];
|
|
59
74
|
const todos = historyData.todos || [];
|
|
@@ -188,9 +203,9 @@ async function cleanupOldHistoryFiles(projectPath) {
|
|
|
188
203
|
/**
|
|
189
204
|
* 保存历史消息和todos
|
|
190
205
|
*/
|
|
191
|
-
async function saveHistory(sessionId, messages, todos, projectPath, readFileTimestamps, todoTasks) {
|
|
206
|
+
async function saveHistory(sessionId, messages, todos, projectPath, readFileTimestamps, todoTasks, noDate) {
|
|
192
207
|
const historyDir = projectPath ? (0, savePath_1.getProjectHistoryDir)(projectPath) : (0, savePath_1.getHistoryDir)();
|
|
193
|
-
const historyPath = (0, savePath_1.getHistoryFilePath)(sessionId, projectPath);
|
|
208
|
+
const historyPath = (0, savePath_1.getHistoryFilePath)(sessionId, projectPath, noDate);
|
|
194
209
|
try {
|
|
195
210
|
// 确保目录存在
|
|
196
211
|
if (!fs.existsSync(historyDir)) {
|