estimateMessageTokens function
Estimate token count for messages — pads by 4/3 to be conservative.
Implementation
int estimateMessageTokens(List<CompactMessage> messages) {
int totalTokens = 0;
for (final message in messages) {
if (message.type != MessageRole.user &&
message.type != MessageRole.assistant) {
continue;
}
for (final block in message.contentBlocks) {
totalTokens += _estimateBlockTokens(block);
}
}
return (totalTokens * 4 / 3).ceil();
}