@yeaft/webchat-agent 1.0.339 → 1.0.340
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/local-runtime/version.json +1 -1
- package/package.json +1 -1
- package/yeaft/engine.js +21 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"1.0.
|
|
1
|
+
{"version":"1.0.340"}
|
package/package.json
CHANGED
package/yeaft/engine.js
CHANGED
|
@@ -3437,24 +3437,28 @@ export class Engine {
|
|
|
3437
3437
|
|
|
3438
3438
|
// If new user input was appended while this loop was streaming and
|
|
3439
3439
|
// there are no tools to force another loop, splice it now and continue
|
|
3440
|
-
// instead of ending the thread.
|
|
3441
|
-
//
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
|
|
3445
|
-
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3440
|
+
// instead of ending the thread. A tool response must execute first: an
|
|
3441
|
+
// append between assistant(toolCalls) and its tool results would break
|
|
3442
|
+
// the provider protocol and discard the entire tool batch. The regular
|
|
3443
|
+
// pre-stream drain on the next iteration appends input after those results.
|
|
3444
|
+
if (toolCalls.length === 0) {
|
|
3445
|
+
const appendedAfterAssistant = this.#drainPendingUserMessages(drainPendingUserMessages);
|
|
3446
|
+
if (appendedAfterAssistant.length > 0) {
|
|
3447
|
+
for (const item of appendedAfterAssistant) {
|
|
3448
|
+
this.#persistAppendedUserMessage(item, runtimeSessionId);
|
|
3449
|
+
conversationMessages.push({ role: 'user', content: item.content });
|
|
3450
|
+
yield {
|
|
3451
|
+
type: 'user_append',
|
|
3452
|
+
turnId: queryTurnId,
|
|
3453
|
+
loopNumber: turnNumber,
|
|
3454
|
+
threadId,
|
|
3455
|
+
preview: String(item.preview || '').slice(0, 200),
|
|
3456
|
+
internal: Boolean(item.internal),
|
|
3457
|
+
};
|
|
3458
|
+
}
|
|
3459
|
+
yield { type: 'turn_end', turnNumber, stopReason: 'user_append_continue', threadId };
|
|
3460
|
+
continue;
|
|
3455
3461
|
}
|
|
3456
|
-
yield { type: 'turn_end', turnNumber, stopReason: 'user_append_continue', threadId };
|
|
3457
|
-
continue;
|
|
3458
3462
|
}
|
|
3459
3463
|
|
|
3460
3464
|
// If no tool calls, we're done — UNLESS we still own a pending
|