Skip to content

Commit 208ceb4

Browse files
committed
fix
1 parent 168a865 commit 208ceb4

File tree

3 files changed

+43
-20
lines changed

3 files changed

+43
-20
lines changed

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

+15
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ 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'
5152

5253
export function logSendTelemetryEventFailure(error: any) {
5354
let requestId: string | undefined
@@ -217,6 +218,20 @@ export class CWCTelemetryHelper {
217218
telemetry.feedback_result.emit({ result: feedbackResult })
218219
}
219220

221+
public record_TODO() {
222+
try {
223+
// telemetry.TODO.run((span) => {
224+
// span.record({
225+
// // result: 'Succeeded',
226+
// })
227+
// })
228+
const chatHistoryDb = Database.getInstance()
229+
// const historyMessages = chatHistoryDb.getMessages(tabID)
230+
} catch (e: any) {
231+
getLogger().error('Unable to record ______ telemetry')
232+
}
233+
}
234+
220235
public recordToolUseSuggested(toolUse: ToolUse, messageId: string) {
221236
try {
222237
telemetry.amazonq_toolUseSuggested.run((span) => {

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

+27-20
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()
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

+1
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)