// Let through payloads with audioAsVoice flag even if empty (need to track it). if (!isRenderablePayload(taggedPayload) && !payload.audioAsVoice) { return;
}
// Skip empty payloads unless they have audioAsVoice flag (need to track it). if (!blockPayload.text && !blockHasMedia && !blockPayload.audioAsVoice) { return;
} if (normalized.isSilent && !blockHasMedia) { return;
}
if (blockPayload.text) { void params.typingSignals.signalTextDelta(blockPayload.text).catch((err) => {
logVerbose(`block reply typing signal failed: ${String(err)}`);
});
}
// Use pipeline if available (block streaming enabled), otherwise send directly. if (params.blockStreamingEnabled && params.blockReplyPipeline) {
params.blockReplyPipeline.enqueue(blockPayload);
} elseif (params.blockStreamingEnabled) { // Send directly when flushing before tool execution (no pipeline but streaming enabled). // Track sent key to avoid duplicate in final payloads.
await sendDirectBlockReply({
onBlockReply: params.onBlockReply,
directlySentBlockKeys: params.directlySentBlockKeys,
trackingPayload: blockPayload,
payload: blockPayload,
});
} elseif (blockHasMedia && !blockPayload.text) { // Media-only block replies (for example orphaned tool attachments) are not reconstructible // from the assistant's final text, so they still need a direct fallback when streaming is off.
await sendDirectBlockReply({
onBlockReply: params.onBlockReply,
directlySentBlockKeys: params.directlySentBlockKeys,
trackingPayload: blockPayload,
payload: blockPayload,
});
} // When streaming is disabled entirely, text-only blocks are accumulated in final text.
};
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.