Skip to content

Commit 072c554

Browse files
committed
Fix for Agentic loop follopwup
1 parent 2dbe485 commit 072c554

File tree

4 files changed

+44
-38
lines changed

4 files changed

+44
-38
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ export class ChatSession {
7373
async chatSso(chatRequest: GenerateAssistantResponseRequest): Promise<GenerateAssistantResponseCommandOutput> {
7474
const client = await createCodeWhispererChatStreamingClient()
7575

76+
// eslint-disable-next-line aws-toolkits/no-console-log
77+
console.log(chatRequest)
7678
const response = await client.generateAssistantResponse(chatRequest)
7779
if (!response.generateAssistantResponseResponse) {
7880
throw new ToolkitError(

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

Lines changed: 16 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ import {
7878
aditionalContentNameLimit,
7979
additionalContentInnerContextLimit,
8080
contextMaxLength,
81+
tools,
8182
} from '../../constants'
8283
import { ChatSession } from '../../clients/chat/v0/chat'
8384
import { ChatHistoryManager } from '../../storages/chatHistory'
@@ -722,13 +723,6 @@ export class ChatController {
722723
command,
723724
})
724725

725-
this.chatHistoryManager.appendUserMessage({
726-
userInputMessage: {
727-
content: prompt,
728-
userIntent: this.userIntentRecognizer.getFromContextMenuCommand(command),
729-
},
730-
})
731-
732726
return this.generateResponse(
733727
{
734728
message: prompt,
@@ -808,13 +802,6 @@ export class ChatController {
808802
context: lastTriggerEvent.context,
809803
})
810804

811-
this.chatHistoryManager.appendUserMessage({
812-
userInputMessage: {
813-
content: message.message,
814-
userIntent: message.userIntent,
815-
},
816-
})
817-
818805
return this.generateResponse(
819806
{
820807
message: message.message,
@@ -870,7 +857,7 @@ export class ChatController {
870857
// result = await executeBash.invoke(process.stdout)
871858
// break
872859
// }
873-
case 'fs_read': {
860+
case 'fsRead': {
874861
const fsRead = new FsRead(toolUse.input as unknown as FsReadParams)
875862
await fsRead.validate()
876863
result = await fsRead.invoke()
@@ -902,17 +889,9 @@ export class ChatController {
902889
toolResults.push({ content: [{ text: e.message }], toolUseId: toolUse.toolUseId, status: 'error' })
903890
}
904891

905-
this.chatHistoryManager.appendUserMessage({
906-
userInputMessage: {
907-
content: 'Tool Results',
908-
userIntent: undefined,
909-
origin: Origin.IDE,
910-
},
911-
})
912-
913892
await this.generateResponse(
914893
{
915-
message: 'Tool Results',
894+
message: '',
916895
trigger: ChatTriggerType.ChatMessage,
917896
query: undefined,
918897
codeSelection: context?.focusAreaContext?.selectionInsideExtendedCodeBlock,
@@ -926,6 +905,7 @@ export class ChatController {
926905
context: undefined,
927906
toolResults: toolResults,
928907
origin: Origin.IDE,
908+
chatHistory: this.chatHistoryManager.getHistory(),
929909
},
930910
triggerID
931911
)
@@ -947,13 +927,6 @@ export class ChatController {
947927
type: 'chat_message',
948928
context,
949929
})
950-
this.chatHistoryManager.appendUserMessage({
951-
userInputMessage: {
952-
content: message.message,
953-
userIntent: message.userIntent,
954-
origin: Origin.IDE,
955-
},
956-
})
957930
await this.generateResponse(
958931
{
959932
message: message.message,
@@ -1293,6 +1266,18 @@ export class ChatController {
12931266
this.telemetryHelper.recordEnterFocusConversation(triggerEvent.tabID)
12941267
this.telemetryHelper.recordStartConversation(triggerEvent, triggerPayload)
12951268

1269+
this.chatHistoryManager.appendUserMessage({
1270+
userInputMessage: {
1271+
content: triggerPayload.message,
1272+
userIntent: triggerPayload.userIntent,
1273+
...(triggerPayload.origin && { origin: triggerPayload.origin }),
1274+
userInputMessageContext: {
1275+
tools: tools,
1276+
...(triggerPayload.toolResults && { toolResults: triggerPayload.toolResults }),
1277+
},
1278+
},
1279+
})
1280+
12961281
getLogger().info(
12971282
`response to tab: ${tabID} conversationID: ${session.sessionIdentifier} requestID: ${
12981283
response.$metadata.requestId

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

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
AuthNeededException,
1010
CodeReference,
1111
ContextCommandData,
12+
CustomFormActionMessage,
1213
EditorContextCommandMessage,
1314
OpenSettingsMessage,
1415
QuickActionMessage,
@@ -228,13 +229,14 @@ export class Messenger {
228229
tabID
229230
)
230231
)
232+
233+
this.dispatcher.sendCustomFormActionMessage(
234+
new CustomFormActionMessage(tabID, {
235+
id: 'confirm-tool-use',
236+
})
237+
)
231238
// TODO: setup permission action
232239
// if (!isConfirmationRequired) {
233-
// this.dispatcher.sendCustomFormActionMessage(
234-
// new CustomFormActionMessage(tabID, {
235-
// id: 'confirm-tool-use',
236-
// })
237-
// )
238240
// }
239241
}
240242

@@ -388,7 +390,9 @@ export class Messenger {
388390
messageId: messageID,
389391
content: message,
390392
references: codeReference,
391-
toolUses: [{ ...toolUse }],
393+
...(toolUse &&
394+
toolUse.input !== undefined &&
395+
toolUse.input !== '' && { toolUses: [{ ...toolUse }] }),
392396
},
393397
})
394398

packages/core/src/codewhispererChat/storages/chatHistory.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ export class ChatHistoryManager {
6969
if (!newMessage.userInputMessage?.content || newMessage.userInputMessage?.content.trim() === '') {
7070
this.logger.warn('input must not be empty when adding new messages')
7171
}
72-
this.history.push(this.lastUserMessage)
72+
this.history.push(this.formatChatHistoryMessage(this.lastUserMessage))
7373
}
7474

7575
/**
@@ -196,4 +196,19 @@ export class ChatHistoryManager {
196196
this.lastUserMessage.userInputMessage = msg
197197
}
198198
}
199+
200+
private formatChatHistoryMessage(message: ChatMessage): ChatMessage {
201+
if (message.userInputMessage !== undefined) {
202+
return {
203+
userInputMessage: {
204+
...message.userInputMessage,
205+
userInputMessageContext: {
206+
...message.userInputMessage.userInputMessageContext,
207+
tools: undefined,
208+
},
209+
},
210+
}
211+
}
212+
return message
213+
}
199214
}

0 commit comments

Comments
 (0)