@adhdev/daemon-core 0.9.59 → 0.9.60
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/package.json
CHANGED
|
@@ -243,6 +243,8 @@ export function collapseReplayDuplicatesFromReadChat(messages: ChatMessage[]): C
|
|
|
243
243
|
const collapsed: ChatMessage[] = [];
|
|
244
244
|
const replaySignaturesInCurrentTurn = new Set<string>();
|
|
245
245
|
let stableAssistantAnswerContentInCurrentTurn = '';
|
|
246
|
+
let stableAssistantAnswerCollapsedIndex = -1;
|
|
247
|
+
let stableAssistantAnswerHadInterveningActivity = false;
|
|
246
248
|
let previousReplaySignature = '';
|
|
247
249
|
|
|
248
250
|
for (const message of messages) {
|
|
@@ -250,13 +252,31 @@ export function collapseReplayDuplicatesFromReadChat(messages: ChatMessage[]): C
|
|
|
250
252
|
if (info?.role === 'user') {
|
|
251
253
|
replaySignaturesInCurrentTurn.clear();
|
|
252
254
|
stableAssistantAnswerContentInCurrentTurn = '';
|
|
255
|
+
stableAssistantAnswerCollapsedIndex = -1;
|
|
256
|
+
stableAssistantAnswerHadInterveningActivity = false;
|
|
253
257
|
previousReplaySignature = '';
|
|
254
258
|
}
|
|
255
259
|
|
|
256
260
|
if (info?.collapsible && info.signature) {
|
|
257
261
|
if (previousReplaySignature === info.signature) continue;
|
|
258
262
|
if (replaySignaturesInCurrentTurn.has(info.signature)) continue;
|
|
259
|
-
if (isReplayedAssistantAnswerAfterStableAnswerInfo(info, stableAssistantAnswerContentInCurrentTurn))
|
|
263
|
+
if (isReplayedAssistantAnswerAfterStableAnswerInfo(info, stableAssistantAnswerContentInCurrentTurn)) {
|
|
264
|
+
const isAdjacentFullerAssistantAnswer =
|
|
265
|
+
info.role === 'assistant'
|
|
266
|
+
&& (!info.kind || info.kind === 'standard')
|
|
267
|
+
&& stableAssistantAnswerCollapsedIndex >= 0
|
|
268
|
+
&& stableAssistantAnswerCollapsedIndex === collapsed.length - 1
|
|
269
|
+
&& !stableAssistantAnswerHadInterveningActivity
|
|
270
|
+
&& info.content.length > stableAssistantAnswerContentInCurrentTurn.length
|
|
271
|
+
&& info.content.startsWith(stableAssistantAnswerContentInCurrentTurn);
|
|
272
|
+
if (isAdjacentFullerAssistantAnswer) {
|
|
273
|
+
collapsed[stableAssistantAnswerCollapsedIndex] = message;
|
|
274
|
+
replaySignaturesInCurrentTurn.add(info.signature);
|
|
275
|
+
stableAssistantAnswerContentInCurrentTurn = info.content;
|
|
276
|
+
previousReplaySignature = info.signature;
|
|
277
|
+
}
|
|
278
|
+
continue;
|
|
279
|
+
}
|
|
260
280
|
}
|
|
261
281
|
|
|
262
282
|
collapsed.push(message);
|
|
@@ -266,6 +286,14 @@ export function collapseReplayDuplicatesFromReadChat(messages: ChatMessage[]): C
|
|
|
266
286
|
}
|
|
267
287
|
if (isStableReadChatAssistantAnswerInfo(info)) {
|
|
268
288
|
stableAssistantAnswerContentInCurrentTurn = info?.content || '';
|
|
289
|
+
stableAssistantAnswerCollapsedIndex = collapsed.length - 1;
|
|
290
|
+
stableAssistantAnswerHadInterveningActivity = false;
|
|
291
|
+
} else if (
|
|
292
|
+
stableAssistantAnswerContentInCurrentTurn
|
|
293
|
+
&& info?.role === 'assistant'
|
|
294
|
+
&& (!info.kind || info.kind !== 'standard')
|
|
295
|
+
) {
|
|
296
|
+
stableAssistantAnswerHadInterveningActivity = true;
|
|
269
297
|
}
|
|
270
298
|
}
|
|
271
299
|
|