Skip to content

Commit f198255

Browse files
committed
fix
1 parent 168a865 commit f198255

File tree

3 files changed

+50
-20
lines changed

3 files changed

+50
-20
lines changed

packages/core/src/codewhispererChat/controllers/chat/telemetryHelper.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ import { AdditionalContextPrompt } from '../../../amazonq/lsp/types'
4848
import { getUserPromptsDirectory, promptFileExtension } from '../../constants'
4949
import { isInDirectory } from '../../../shared/filesystemUtilities'
5050
import { CustomFormActionMessage } from '../../view/connector/connector'
51+
import { Database } from '../../../shared/db/chatDb/chatDb'
52+
import { Message } from '../../../shared/db/chatDb/util'
5153

5254
export function logSendTelemetryEventFailure(error: any) {
5355
let requestId: string | undefined
@@ -217,6 +219,26 @@ export class CWCTelemetryHelper {
217219
telemetry.feedback_result.emit({ result: feedbackResult })
218220
}
219221

222+
public record_TODO(tabId: string, conversationId: string, message: Message) {
223+
try {
224+
telemetry.amazonq_addMessageHistory.run((span) => {
225+
span.record({
226+
result: 'Succeeded',
227+
cwsprChatConversationId: conversationId,
228+
cwsprChatConversationType: 'todo',
229+
cwsprChatHistoryMessageCharacterCount: message.characterCount,
230+
cwsprChatMessageId: message.messageId,
231+
cwsprToolName: 'todo',
232+
cwsprToolUseId: 'todo',
233+
// message.userInputMessageContext?.toolResults
234+
// message.toolUses
235+
})
236+
})
237+
} catch (e: any) {
238+
getLogger().error('Unable to record ______ telemetry')
239+
}
240+
}
241+
220242
public recordToolUseSuggested(toolUse: ToolUse, messageId: string) {
221243
try {
222244
telemetry.amazonq_toolUseSuggested.run((span) => {

packages/core/src/shared/db/chatDb/chatDb.ts

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import path from 'path'
2121
import { fs } from '../../fs/fs'
2222
import { getLogger } from '../../logger/logger'
2323
import { ChatMessage, ToolResultStatus } from '@amzn/codewhisperer-streaming'
24+
import { CWCTelemetryHelper } from '../../../codewhispererChat/controllers/chat/telemetryHelper'
2425

2526
// Maximum number of characters to keep in history
2627
const MaxConversationHistoryCharacters = 600_000
@@ -275,6 +276,7 @@ export class Database {
275276
? message.body
276277
: tabData?.title || 'Amazon Q Chat'
277278
message = this.formatChatHistoryMessage(message)
279+
message.characterCount = this.calculateMessageCharacterCount(message)
278280
if (tabData) {
279281
this.logger.info(`Found existing tab data, updating conversations`)
280282
tabData.conversations = updateOrCreateConversation(tabData.conversations, conversationId, message)
@@ -292,6 +294,7 @@ export class Database {
292294
conversations: [{ conversationId, clientType: ClientType.VSCode, messages: [message] }],
293295
})
294296
}
297+
CWCTelemetryHelper.instance.record_TODO(tabId, conversationId, message)
295298
}
296299
}
297300

@@ -419,31 +422,35 @@ export class Database {
419422
private calculateCharacterCount(allMessages: Message[]): number {
420423
let count = 0
421424
for (const message of allMessages) {
422-
// Count characters of all message text
423-
count += message.body.length
424-
425-
// Count characters in tool uses
426-
if (message.toolUses) {
427-
try {
428-
for (const toolUse of message.toolUses) {
429-
count += JSON.stringify(toolUse).length
430-
}
431-
} catch (e) {
432-
this.logger.error(`Error counting toolUses: ${String(e)}`)
425+
count += message.characterCount ?? 0
426+
}
427+
this.logger.debug(`Current history characters: ${count}`)
428+
return count
429+
}
430+
431+
private calculateMessageCharacterCount(message: Message): number {
432+
let count = message.body.length
433+
434+
// Count characters in tool uses
435+
if (message.toolUses) {
436+
try {
437+
for (const toolUse of message.toolUses) {
438+
count += JSON.stringify(toolUse).length
433439
}
440+
} catch (e) {
441+
this.logger.error(`Error counting toolUses: ${String(e)}`)
434442
}
435-
// Count characters in tool results
436-
if (message.userInputMessageContext?.toolResults) {
437-
try {
438-
for (const toolResul of message.userInputMessageContext.toolResults) {
439-
count += JSON.stringify(toolResul).length
440-
}
441-
} catch (e) {
442-
this.logger.error(`Error counting toolResults: ${String(e)}`)
443+
}
444+
// Count characters in tool results
445+
if (message.userInputMessageContext?.toolResults) {
446+
try {
447+
for (const toolResul of message.userInputMessageContext.toolResults) {
448+
count += JSON.stringify(toolResul).length
443449
}
450+
} catch (e) {
451+
this.logger.error(`Error counting toolResults: ${String(e)}`)
444452
}
445453
}
446-
this.logger.debug(`Current history characters: ${count}`)
447454
return count
448455
}
449456

packages/core/src/shared/db/chatDb/util.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ export type Message = {
5757
userInputMessageContext?: UserInputMessageContext
5858
toolUses?: ToolUse[]
5959
shouldDisplayMessage?: boolean
60+
characterCount?: number
6061
}
6162

6263
/**

0 commit comments

Comments
 (0)