MCPcopy Index your code
hub / github.com/continuedev/continue / countTotalInputTokens

Function countTotalInputTokens

extensions/cli/src/util/tokenizer.ts:313–335  ·  view source on GitHub ↗
(params: TotalInputTokenParams)

Source from the content-addressed store, hash-verified

311 * @returns Total estimated input token count
312 */
313export function countTotalInputTokens(params: TotalInputTokenParams): number {
314 const { chatHistory, systemMessage, tools } = params;
315
316 let totalTokens = countChatHistoryTokens(chatHistory, params.model);
317
318 // Add system message tokens if provided and not already in history
319 if (systemMessage) {
320 const hasSystemInHistory = chatHistory.some(
321 (item) => item.message.role === "system",
322 );
323 if (!hasSystemInHistory) {
324 totalTokens += encode(systemMessage).length;
325 totalTokens += 4; // Message structure overhead (role + formatting)
326 }
327 }
328
329 // Add tool definition tokens
330 if (tools && tools.length > 0) {
331 totalTokens += countToolDefinitionTokens(tools);
332 }
333
334 return totalTokens;
335}
336
337/**
338 * Parameters for context length validation

Callers 2

shouldAutoCompactFunction · 0.85
validateContextLengthFunction · 0.85

Calls 3

countChatHistoryTokensFunction · 0.85
encodeFunction · 0.50

Tested by

no test coverage detected