@@ -39,10 +39,7 @@ export function getApiMetrics(messages: ClineMessage[]) {
3939
4040 // Calculate running totals
4141 messages . forEach ( ( message ) => {
42- if ( ! message . text || message . type !== "say" ) {
43- return
44- }
45- if ( message . say === "api_req_started" ) {
42+ if ( message . type === "say" && message . say === "api_req_started" && message . text ) {
4643 try {
4744 const parsedText : ParsedApiReqStartedTextType = JSON . parse ( message . text )
4845 const { tokensIn, tokensOut, cacheWrites, cacheReads, cost } = parsedText
@@ -65,7 +62,7 @@ export function getApiMetrics(messages: ClineMessage[]) {
6562 } catch ( error ) {
6663 console . error ( "Error parsing JSON:" , error )
6764 }
68- } else if ( message . say === "condense_context" ) {
65+ } else if ( message . type === "say" && message . say === "condense_context" ) {
6966 result . totalCost += message . contextCondense ?. cost ?? 0
7067 }
7168 } )
@@ -74,13 +71,11 @@ export function getApiMetrics(messages: ClineMessage[]) {
7471 result . contextTokens = 0
7572 for ( let i = messages . length - 1 ; i >= 0 ; i -- ) {
7673 const message = messages [ i ]
77- if ( ! message . text || message . type !== "say" ) {
78- continue
79- } else if ( message . say === "api_req_started" ) {
74+ if ( message . type === "say" && message . say === "api_req_started" && message . text ) {
8075 const parsedText : ParsedApiReqStartedTextType = JSON . parse ( message . text )
8176 const { tokensIn, tokensOut, cacheWrites, cacheReads } = parsedText
8277 result . contextTokens = ( tokensIn || 0 ) + ( tokensOut || 0 ) + ( cacheWrites || 0 ) + ( cacheReads || 0 )
83- } else if ( message . say === "condense_context" ) {
78+ } else if ( message . type === "say" && message . say === "condense_context" ) {
8479 result . contextTokens = message . contextCondense ?. newContextTokens ?? 0
8580 }
8681 if ( result . contextTokens ) {
0 commit comments