Skip to content

Commit 2a33b10

Browse files
authored
fix(chat): Reverting PR:6975 (aws#7000)
## Problem - Reverting PR: aws#6975 as this is causing regression in some cases. ## Solution --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent c3d087a commit 2a33b10

File tree

10 files changed

+59
-259
lines changed

10 files changed

+59
-259
lines changed

packages/core/src/amazonq/webview/ui/apps/cwChatConnector.ts

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -179,33 +179,6 @@ export class Connector extends BaseConnector {
179179
}
180180
}
181181

182-
private processToolMessage = async (messageData: any): Promise<void> => {
183-
if (this.onChatAnswerUpdated === undefined) {
184-
return
185-
}
186-
const answer: CWCChatItem = {
187-
type: messageData.messageType,
188-
messageId: messageData.messageID ?? messageData.triggerID,
189-
body: messageData.message,
190-
followUp: messageData.followUps,
191-
canBeVoted: messageData.canBeVoted ?? false,
192-
codeReference: messageData.codeReference,
193-
userIntent: messageData.contextList,
194-
codeBlockLanguage: messageData.codeBlockLanguage,
195-
contextList: messageData.contextList,
196-
title: messageData.title,
197-
buttons: messageData.buttons,
198-
fileList: messageData.fileList,
199-
header: messageData.header ?? undefined,
200-
padding: messageData.padding ?? undefined,
201-
fullWidth: messageData.fullWidth ?? undefined,
202-
codeBlockActions: messageData.codeBlockActions ?? undefined,
203-
rootFolderTitle: messageData.rootFolderTitle,
204-
}
205-
this.onChatAnswerUpdated(messageData.tabID, answer)
206-
return
207-
}
208-
209182
private storeChatItem(tabId: string, messageId: string, item: ChatItem): void {
210183
if (!this.chatItems.has(tabId)) {
211184
this.chatItems.set(tabId, new Map())
@@ -265,11 +238,6 @@ export class Connector extends BaseConnector {
265238
return
266239
}
267240

268-
if (messageData.type === 'toolMessage') {
269-
await this.processToolMessage(messageData)
270-
return
271-
}
272-
273241
if (messageData.type === 'editorContextCommandMessage') {
274242
await this.processEditorContextCommandMessage(messageData)
275243
return

packages/core/src/amazonq/webview/ui/connector.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ export interface ConnectorProps {
7878
sendMessageToExtension: (message: ExtensionMessage) => void
7979
onMessageReceived?: (tabID: string, messageData: any, needToShowAPIDocsTab: boolean) => void
8080
onRunTestMessageReceived?: (tabID: string, showRunTestMessage: boolean) => void
81-
onChatAnswerUpdated?: (tabID: string, message: CWCChatItem) => void
81+
onChatAnswerUpdated?: (tabID: string, message: ChatItem) => void
8282
onChatAnswerReceived?: (tabID: string, message: ChatItem, messageData: any) => void
8383
onWelcomeFollowUpClicked: (tabID: string, welcomeFollowUpType: WelcomeFollowupType) => void
8484
onAsyncEventProgress: (tabID: string, inProgress: boolean, message: string | undefined) => void

packages/core/src/amazonq/webview/ui/main.ts

Lines changed: 27 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -100,41 +100,6 @@ export const createMynahUI = (
100100
welcomeCount += 1
101101
}
102102

103-
/**
104-
* Creates a file list header from context list
105-
* @param contextList List of file contexts
106-
* @param rootFolderTitle Title for the root folder
107-
* @returns Header object with file list
108-
*/
109-
const createFileListHeader = (contextList: any[], rootFolderTitle?: string) => {
110-
return {
111-
fileList: {
112-
fileTreeTitle: '',
113-
filePaths: contextList.map((file) => file.relativeFilePath),
114-
rootFolderTitle: rootFolderTitle,
115-
flatList: true,
116-
collapsed: true,
117-
hideFileCount: true,
118-
details: Object.fromEntries(
119-
contextList.map((file) => [
120-
file.relativeFilePath,
121-
{
122-
label: file.lineRanges
123-
.map((range: { first: number; second: number }) =>
124-
range.first === -1 || range.second === -1
125-
? ''
126-
: `line ${range.first} - ${range.second}`
127-
)
128-
.join(', '),
129-
description: file.relativeFilePath,
130-
clickable: true,
131-
},
132-
])
133-
),
134-
},
135-
}
136-
}
137-
138103
// Adding the first tab as CWC tab
139104
tabsStorage.addTab({
140105
id: 'tab-1',
@@ -381,11 +346,8 @@ export const createMynahUI = (
381346
sendMessageToExtension: (message) => {
382347
ideApi.postMessage(message)
383348
},
384-
onChatAnswerUpdated: (tabID: string, item: CWCChatItem) => {
349+
onChatAnswerUpdated: (tabID: string, item: ChatItem) => {
385350
if (item.messageId !== undefined) {
386-
if (item.contextList !== undefined && item.contextList.length > 0) {
387-
item.header = createFileListHeader(item.contextList, item.rootFolderTitle)
388-
}
389351
mynahUI.updateChatAnswerWithMessageId(tabID, item.messageId, {
390352
...(item.body !== undefined ? { body: item.body } : {}),
391353
...(item.buttons !== undefined ? { buttons: item.buttons } : {}),
@@ -447,7 +409,32 @@ export const createMynahUI = (
447409
}
448410

449411
if (item.contextList !== undefined && item.contextList.length > 0) {
450-
item.header = createFileListHeader(item.contextList, item.rootFolderTitle)
412+
item.header = {
413+
fileList: {
414+
fileTreeTitle: '',
415+
filePaths: item.contextList.map((file) => file.relativeFilePath),
416+
rootFolderTitle: item.rootFolderTitle,
417+
flatList: true,
418+
collapsed: true,
419+
hideFileCount: true,
420+
details: Object.fromEntries(
421+
item.contextList.map((file) => [
422+
file.relativeFilePath,
423+
{
424+
label: file.lineRanges
425+
.map((range) =>
426+
range.first === -1 || range.second === -1
427+
? ''
428+
: `line ${range.first} - ${range.second}`
429+
)
430+
.join(', '),
431+
description: file.relativeFilePath,
432+
clickable: true,
433+
},
434+
])
435+
),
436+
},
437+
}
451438
}
452439

453440
if (

packages/core/src/codewhispererChat/clients/chat/v0/chat.ts

Lines changed: 4 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { ToolkitError } from '../../../../shared/errors'
1414
import { createCodeWhispererChatStreamingClient } from '../../../../shared/clients/codewhispererChatClient'
1515
import { createQDeveloperStreamingClient } from '../../../../shared/clients/qDeveloperChatClient'
1616
import { UserWrittenCodeTracker } from '../../../../codewhisperer/tracker/userWrittenCodeTracker'
17-
import { DocumentReference, PromptMessage } from '../../../controllers/chat/model'
17+
import { PromptMessage } from '../../../controllers/chat/model'
1818
import { FsWriteBackup } from '../../../../codewhispererChat/tools/fsWrite'
1919

2020
export type ToolUseWithError = {
@@ -30,10 +30,8 @@ export class ChatSession {
3030
* _readFiles = list of files read from the project to gather context before generating response.
3131
* _showDiffOnFileWrite = Controls whether to show diff view (true) or file context view (false) to the user
3232
* _context = Additional context to be passed to the LLM for generating the response
33-
* _messageIdToUpdate = messageId of a chat message to be updated, used for reducing consecutive tool messages
3433
*/
35-
private _readFiles: DocumentReference[] = []
36-
private _readFolders: DocumentReference[] = []
34+
private _readFiles: string[] = []
3735
private _toolUseWithError: ToolUseWithError | undefined
3836
private _showDiffOnFileWrite: boolean = false
3937
private _context: PromptMessage['context']
@@ -43,8 +41,6 @@ export class ChatSession {
4341
* True if messages from local history have been sent to session.
4442
*/
4543
localHistoryHydrated: boolean = false
46-
private _messageIdToUpdate: string | undefined
47-
private _messageIdToUpdateListDirectory: string | undefined
4844

4945
contexts: Map<string, { first: number; second: number }[]> = new Map()
5046
// TODO: doesn't handle the edge case when two files share the same relativePath string but from different root
@@ -53,21 +49,6 @@ export class ChatSession {
5349
public get sessionIdentifier(): string | undefined {
5450
return this.sessionId
5551
}
56-
public get messageIdToUpdate(): string | undefined {
57-
return this._messageIdToUpdate
58-
}
59-
60-
public setMessageIdToUpdate(messageId: string | undefined) {
61-
this._messageIdToUpdate = messageId
62-
}
63-
64-
public get messageIdToUpdateListDirectory(): string | undefined {
65-
return this._messageIdToUpdateListDirectory
66-
}
67-
68-
public setMessageIdToUpdateListDirectory(messageId: string | undefined) {
69-
this._messageIdToUpdateListDirectory = messageId
70-
}
7152

7253
public get pairProgrammingModeOn(): boolean {
7354
return this._pairProgrammingModeOn
@@ -114,30 +95,21 @@ export class ChatSession {
11495
public setSessionID(id?: string) {
11596
this.sessionId = id
11697
}
117-
public get readFiles(): DocumentReference[] {
98+
public get readFiles(): string[] {
11899
return this._readFiles
119100
}
120-
public get readFolders(): DocumentReference[] {
121-
return this._readFolders
122-
}
123101
public get showDiffOnFileWrite(): boolean {
124102
return this._showDiffOnFileWrite
125103
}
126104
public setShowDiffOnFileWrite(value: boolean) {
127105
this._showDiffOnFileWrite = value
128106
}
129-
public addToReadFiles(filePath: DocumentReference) {
107+
public addToReadFiles(filePath: string) {
130108
this._readFiles.push(filePath)
131109
}
132110
public clearListOfReadFiles() {
133111
this._readFiles = []
134112
}
135-
public setReadFolders(folder: DocumentReference) {
136-
this._readFolders.push(folder)
137-
}
138-
public clearListOfReadFolders() {
139-
this._readFolders = []
140-
}
141113
async chatIam(chatRequest: SendMessageRequest): Promise<SendMessageCommandOutput> {
142114
const client = await createQDeveloperStreamingClient()
143115

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

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -726,18 +726,9 @@ export class ChatController {
726726
try {
727727
await ToolUtils.validate(tool)
728728

729-
const chatStream = new ChatStream(
730-
this.messenger,
731-
tabID,
732-
triggerID,
733-
toolUse,
734-
session,
735-
undefined,
736-
false,
737-
{
738-
requiresAcceptance: false,
739-
}
740-
)
729+
const chatStream = new ChatStream(this.messenger, tabID, triggerID, toolUse, {
730+
requiresAcceptance: false,
731+
})
741732
if (tool.type === ToolType.FsWrite && toolUse.toolUseId) {
742733
const backup = await tool.tool.getBackup()
743734
session.setFsWriteBackup(toolUse.toolUseId, backup)
@@ -1205,7 +1196,6 @@ export class ChatController {
12051196
private async processPromptMessageAsNewThread(message: PromptMessage) {
12061197
const session = this.sessionStorage.getSession(message.tabID)
12071198
session.clearListOfReadFiles()
1208-
session.clearListOfReadFolders()
12091199
session.setShowDiffOnFileWrite(false)
12101200
this.editorContextExtractor
12111201
.extractContextForTrigger('ChatMessage')

0 commit comments

Comments
 (0)