estimateMessageTokens function

int estimateMessageTokens(
  1. List<CompactMessage> messages
)

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();
}