donobu 5.60.6 → 5.60.7
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/esm/utils/MiscUtils.js +11 -15
- package/dist/utils/MiscUtils.js +11 -15
- package/package.json +1 -1
|
@@ -204,25 +204,21 @@ class MiscUtils {
|
|
|
204
204
|
* Merges adjacent user messages (some LLMs like Gemini's or Anthropic's require this).
|
|
205
205
|
*/
|
|
206
206
|
static mergeAdjacentUserMessages(messages) {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
const
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
const mergedMessage = {
|
|
207
|
+
const updatedMessages = [];
|
|
208
|
+
// Fold each user message into the previously emitted one when that is also
|
|
209
|
+
// a user message. Folding into the accumulated result (rather than
|
|
210
|
+
// consuming pairs) collapses runs of any length — pair-consuming would
|
|
211
|
+
// leave the 3rd, 5th, ... message in a run un-merged.
|
|
212
|
+
for (const message of messages) {
|
|
213
|
+
const last = updatedMessages[updatedMessages.length - 1];
|
|
214
|
+
if (message.type === 'user' && last?.type === 'user') {
|
|
215
|
+
updatedMessages[updatedMessages.length - 1] = {
|
|
217
216
|
type: 'user',
|
|
218
|
-
items: [...
|
|
217
|
+
items: [...last.items, ...message.items],
|
|
219
218
|
};
|
|
220
|
-
updatedMessages.push(mergedMessage);
|
|
221
|
-
// Skip the next message.
|
|
222
|
-
++i;
|
|
223
219
|
}
|
|
224
220
|
else {
|
|
225
|
-
updatedMessages.push(
|
|
221
|
+
updatedMessages.push(message);
|
|
226
222
|
}
|
|
227
223
|
}
|
|
228
224
|
return updatedMessages;
|
package/dist/utils/MiscUtils.js
CHANGED
|
@@ -204,25 +204,21 @@ class MiscUtils {
|
|
|
204
204
|
* Merges adjacent user messages (some LLMs like Gemini's or Anthropic's require this).
|
|
205
205
|
*/
|
|
206
206
|
static mergeAdjacentUserMessages(messages) {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
const
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
const mergedMessage = {
|
|
207
|
+
const updatedMessages = [];
|
|
208
|
+
// Fold each user message into the previously emitted one when that is also
|
|
209
|
+
// a user message. Folding into the accumulated result (rather than
|
|
210
|
+
// consuming pairs) collapses runs of any length — pair-consuming would
|
|
211
|
+
// leave the 3rd, 5th, ... message in a run un-merged.
|
|
212
|
+
for (const message of messages) {
|
|
213
|
+
const last = updatedMessages[updatedMessages.length - 1];
|
|
214
|
+
if (message.type === 'user' && last?.type === 'user') {
|
|
215
|
+
updatedMessages[updatedMessages.length - 1] = {
|
|
217
216
|
type: 'user',
|
|
218
|
-
items: [...
|
|
217
|
+
items: [...last.items, ...message.items],
|
|
219
218
|
};
|
|
220
|
-
updatedMessages.push(mergedMessage);
|
|
221
|
-
// Skip the next message.
|
|
222
|
-
++i;
|
|
223
219
|
}
|
|
224
220
|
else {
|
|
225
|
-
updatedMessages.push(
|
|
221
|
+
updatedMessages.push(message);
|
|
226
222
|
}
|
|
227
223
|
}
|
|
228
224
|
return updatedMessages;
|