MCPcopy Create free account
hub / github.com/WJX20/claude-code / processAssistantMessage

Function processAssistantMessage

src/utils/analyzeContext.ts:784–806  ·  view source on GitHub ↗
(
  msg: AssistantMessage | NormalizedAssistantMessage,
  breakdown: MessageBreakdown,
)

Source from the content-addressed store, hash-verified

782}
783
784function processAssistantMessage(
785 msg: AssistantMessage | NormalizedAssistantMessage,
786 breakdown: MessageBreakdown,
787): void {
788 // Process each content block individually
789 const contentBlocks = Array.isArray(msg.message.content) ? msg.message.content : []
790 for (const block of contentBlocks) {
791 const blockStr = jsonStringify(block)
792 const blockTokens = roughTokenCountEstimation(blockStr)
793
794 if (typeof block !== 'string' && 'type' in block && block.type === 'tool_use') {
795 breakdown.toolCallTokens += blockTokens
796 const toolName = ('name' in block ? block.name : undefined) || 'unknown'
797 breakdown.toolCallsByType.set(
798 toolName,
799 (breakdown.toolCallsByType.get(toolName) || 0) + blockTokens,
800 )
801 } else {
802 // Text blocks or other non-tool content
803 breakdown.assistantMessageTokens += blockTokens
804 }
805 }
806}
807
808function processUserMessage(
809 msg: UserMessage | NormalizedUserMessage,

Callers 1

approximateMessageTokensFunction · 0.85

Calls 4

jsonStringifyFunction · 0.85
setMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected