@kenkaiiii/gg-agent 5.44.1 → 5.44.3

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/index.cjs CHANGED
@@ -890,6 +890,7 @@ async function* agentLoop(messages, options) {
890
890
  continue;
891
891
  }
892
892
  }
893
+ const emptyExhausted = !hasActionableContent;
893
894
  emptyResponseRetries = 0;
894
895
  useNonStreamingFallback = false;
895
896
  totalUsage.inputTokens += response.usage.inputTokens;
@@ -903,9 +904,11 @@ async function* agentLoop(messages, options) {
903
904
  if (response.usage.cacheWrite) {
904
905
  totalUsage.cacheWrite = (totalUsage.cacheWrite ?? 0) + response.usage.cacheWrite;
905
906
  }
906
- messages.push(response.message);
907
- latestProviderUsage = response.usage;
908
- usageAnchorIndex = messages.length - 1;
907
+ if (!emptyExhausted) {
908
+ messages.push(response.message);
909
+ latestProviderUsage = response.usage;
910
+ usageAnchorIndex = messages.length - 1;
911
+ }
909
912
  const completedAt = Date.now();
910
913
  const outputTokensPerSecond = providerDurationMs > 0 && response.usage.outputTokens > 0 ? response.usage.outputTokens / (providerDurationMs / 1e3) : void 0;
911
914
  const timing = {
@@ -937,8 +940,15 @@ async function* agentLoop(messages, options) {
937
940
  }
938
941
  consecutivePauses = 0;
939
942
  const allToolCalls = extractToolCalls(response.message.content);
940
- if (response.stopReason !== "tool_use" && allToolCalls.length === 0) {
941
- if (response.stopReason === "max_tokens") {
943
+ if (emptyExhausted || response.stopReason !== "tool_use" && allToolCalls.length === 0) {
944
+ if (emptyExhausted) {
945
+ diag("empty_response_exhausted", {
946
+ provider: options.provider,
947
+ model: options.model,
948
+ stopReason: response.stopReason
949
+ });
950
+ yield { type: "truncated", reason: "empty_response", continued: false };
951
+ } else if (response.stopReason === "max_tokens") {
942
952
  if (maxTokensContinuations < MAX_OUTPUT_CONTINUATIONS) {
943
953
  maxTokensContinuations++;
944
954
  diag("max_tokens_continuation", {