MCPcopy Create free account
hub / github.com/Noumena-Network/code / roughTokenCountEstimationForMessage

Function roughTokenCountEstimationForMessage

src/services/tokenEstimation.ts:348–376  ·  view source on GitHub ↗
(message: {
  type: string
  message?: { content?: unknown }
  attachment?: Attachment
})

Source from the content-addressed store, hash-verified

346}
347
348export function roughTokenCountEstimationForMessage(message: {
349 type: string
350 message?: { content?: unknown }
351 attachment?: Attachment
352}): number {
353 if (
354 (message.type === 'assistant' || message.type === 'user') &&
355 message.message?.content
356 ) {
357 return roughTokenCountEstimationForContent(
358 message.message?.content as
359 | string
360 | Array<Anthropic.ContentBlock>
361 | Array<Anthropic.ContentBlockParam>
362 | undefined,
363 )
364 }
365
366 if (message.type === 'attachment' && message.attachment) {
367 const userMessages = normalizeAttachmentForAPI(message.attachment)
368 let total = 0
369 for (const userMsg of userMessages) {
370 total += roughTokenCountEstimationForContent(userMsg.message.content)
371 }
372 return total
373 }
374
375 return 0
376}
377
378function roughTokenCountEstimationForContent(
379 content:

Callers 1

Tested by

no test coverage detected