Skip to content
Closed

Yn test #6918

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
703203f
Merge master into feature/agentic-chat
aws-toolkit-automation Mar 19, 2025
aa2b582
Merge master into feature/agentic-chat
aws-toolkit-automation Mar 19, 2025
586f69a
Merge master into feature/agentic-chat
aws-toolkit-automation Mar 19, 2025
77643cf
Added chat history storage to the Q chat for agentic chat
ashishrp-aws Mar 19, 2025
731e940
Revert for model changes in "Added chat history storage to the Q chat…
ashishrp-aws Mar 19, 2025
db0a0d4
Adding model changes for Q Agentic Chat
ashishrp-aws Mar 19, 2025
74e8f8a
Removing origin IDE from converter
ashishrp-aws Mar 19, 2025
9c97159
Merge pull request #6815 from ashishrp-aws/feature/agentic-chat
mr-lee Mar 20, 2025
8e906b2
Merge pull request #6818 from ashishrp-aws/feature/model
mr-lee Mar 20, 2025
5a51146
feat(chat): Add fsRead tool for Amazon Q Agentic Chat (#6829)
tsmithsz Mar 24, 2025
ffd9d7c
feat(chat): Add validate method to fsRead tool
tsmithsz Mar 24, 2025
3fb3d0b
Merge pull request #6840 from tsmithsz/feature/agentic-chat
mr-lee Mar 24, 2025
5015e24
feat(chat): add fsWrite tool create command
ctlai95 Mar 24, 2025
8d6467b
Modifying Agentic chat UX for view code diff and accept/reject files
laileni-aws Mar 25, 2025
567a954
Merge pull request #6842 from ctlai95/fs-write
mr-lee Mar 25, 2025
a27a3e8
feat(chat): add fsWrite tool commands
ctlai95 Mar 25, 2025
2dbe485
feat(chat): Initial Agentic Chat loop Setup (#6844)
ashishrp-aws Mar 25, 2025
20b166e
Addressing comments
laileni-aws Mar 25, 2025
f2d1467
Minor edits
laileni-aws Mar 25, 2025
8822a39
Merge branch 'feature/agentic-chat' into part1
laileni-aws Mar 25, 2025
1fc3fdc
Merge pull request #6847 from ctlai95/fs-write-commands
mr-lee Mar 25, 2025
02478e3
Minor text change
laileni-aws Mar 25, 2025
8392a4c
Merge pull request #6846 from laileni-aws/part1
mr-lee Mar 25, 2025
ef7da20
feat(chat): Add executeBash tool for Amazon Q Agentic Chat
tsmithsz Mar 25, 2025
6269bce
Merge pull request #6848 from tsmithsz/feature/agentic-chat
mr-lee Mar 25, 2025
072c554
Fix for Agentic loop follopwup
ashishrp-aws Mar 26, 2025
3c316e5
Removed console log
ashishrp-aws Mar 26, 2025
49687a7
Merge pull request #6851 from ashishrp-aws/feature/agentic-chat
mr-lee Mar 26, 2025
4dac86b
FolowUp PR to reuse file-click function to who the diff view
laileni-aws Mar 26, 2025
b734c71
Merge branch 'aws:feature/agentic-chat' into feature/agentic-chat
laileni-aws Mar 26, 2025
c5a1466
Minor text changes
laileni-aws Mar 26, 2025
cec844c
Addressing comments
laileni-aws Mar 26, 2025
65112e6
feat(chat): add fsWrite tool to agentic loop
ctlai95 Mar 26, 2025
735de4e
feat(chat): pass workspace folders to IDE context
ctlai95 Mar 26, 2025
34d5ae7
Merge pull request #6852 from laileni-aws/feature/agentic-chat
mr-lee Mar 26, 2025
abd074f
Merge pull request #6853 from ctlai95/fs-write-integrate
mr-lee Mar 26, 2025
00257c4
Merge pull request #6854 from ctlai95/workspace-folders
mr-lee Mar 26, 2025
be6fab5
Merge remote-tracking branch 'aws/master' into HEAD
ctlai95 Mar 26, 2025
1b39420
Merge branch 'feature/agentic-chat' into autoMerge/feature/agentic-chat
ctlai95 Mar 26, 2025
ef4e872
Merge pull request #6824 from aws/autoMerge/feature/agentic-chat
mr-lee Mar 26, 2025
c28123a
Adding execute bash tool setup to the Q Agentic chat
ashishrp-aws Mar 26, 2025
8a75883
Merge pull request #6856 from ashishrp-aws/feature/agentic-chat
mr-lee Mar 26, 2025
9aef910
feat(chat): add tool utils to delegate execution
ctlai95 Mar 26, 2025
4e77958
Merge branch 'feature/agentic-chat' into tool-utils
ctlai95 Mar 26, 2025
d2992c0
revert package.json
ctlai95 Mar 26, 2025
d694803
fix import
ctlai95 Mar 26, 2025
1f3154a
package.json
ctlai95 Mar 26, 2025
62cf377
Merge remote-tracking branch 'aws/master' into HEAD
ctlai95 Mar 26, 2025
82f62df
package.json
ctlai95 Mar 26, 2025
63d5ab5
Merge pull request #6860 from aws/autoMerge/feature/agentic-chat
mr-lee Mar 26, 2025
c52d57c
sync icons
ctlai95 Mar 26, 2025
9a58ab8
Merge branch 'feature/agentic-chat' into tool-utils
ctlai95 Mar 26, 2025
3b2740c
revert package changes
ctlai95 Mar 27, 2025
811869b
feat(chat): Stream executeBash output to chat
tsmithsz Mar 26, 2025
d3cf1a1
fix circular import
ctlai95 Mar 27, 2025
32fa49d
move toolUtils to a separate file
ctlai95 Mar 27, 2025
e3c34ff
revert package changes
ctlai95 Mar 27, 2025
cdbc045
Merge pull request #6864 from tsmithsz/feature/agentic-chat
mr-lee Mar 27, 2025
7fdbd07
Merge branch 'feature/agentic-chat' into tool-utils
ctlai95 Mar 27, 2025
8749cd7
Merge pull request #6863 from ctlai95/tool-utils
mr-lee Mar 27, 2025
70e56bd
feat(chat): use ChatStream to show tool description
ctlai95 Mar 27, 2025
7ece541
Merge pull request #6873 from ctlai95/generic-chat-stream
mr-lee Mar 27, 2025
e3ea894
feat(chat): add confirmation buttons and tool descriptions
ctlai95 Mar 28, 2025
aa76262
Merge pull request #6875 from ctlai95/tool-confirmation
mr-lee Mar 28, 2025
d9620cf
Merge master into feature/agentic-chat
justinmk3 Mar 28, 2025
9caf22d
push local changes
yueny2020 Apr 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -522,7 +522,7 @@
"@aws-sdk/s3-request-presigner": "<3.696.0",
"@aws-sdk/smithy-client": "<3.696.0",
"@aws-sdk/util-arn-parser": "<3.696.0",
"@aws/mynah-ui": "^4.26.1",
"@aws/mynah-ui": "^4.27.0",
"@gerhobbelt/gitignore-parser": "^0.2.0-9",
"@iarna/toml": "^2.2.5",
"@smithy/fetch-http-handler": "^3.0.0",
Expand Down
73 changes: 66 additions & 7 deletions packages/core/src/amazonq/webview/ui/apps/cwChatConnector.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,14 @@
* SPDX-License-Identifier: Apache-2.0
*/

import { ChatItemButton, ChatItemFormItem, ChatItemType, MynahUIDataModel, QuickActionCommand } from '@aws/mynah-ui'
import {
ChatItem,
ChatItemButton,
ChatItemFormItem,
ChatItemType,
MynahUIDataModel,
QuickActionCommand,
} from '@aws/mynah-ui'
import { TabType } from '../storages/tabsStorage'
import { CWCChatItem } from '../connector'
import { BaseConnector, BaseConnectorProps } from './baseConnector'
Expand All @@ -18,12 +25,14 @@ export interface ConnectorProps extends BaseConnectorProps {
title?: string,
description?: string
) => void
onChatAnswerUpdated?: (tabID: string, message: ChatItem) => void
}

export class Connector extends BaseConnector {
private readonly onCWCContextCommandMessage
private readonly onContextCommandDataReceived
private readonly onShowCustomForm
private readonly onChatAnswerUpdated

override getTabType(): TabType {
return 'cwc'
Expand All @@ -34,6 +43,7 @@ export class Connector extends BaseConnector {
this.onCWCContextCommandMessage = props.onCWCContextCommandMessage
this.onContextCommandDataReceived = props.onContextCommandDataReceived
this.onShowCustomForm = props.onShowCustomForm
this.onChatAnswerUpdated = props.onChatAnswerUpdated
}

onSourceLinkClick = (tabID: string, messageId: string, link: string): void => {
Expand Down Expand Up @@ -91,17 +101,24 @@ export class Connector extends BaseConnector {
messageId: messageData.messageID ?? messageData.triggerID,
body: messageData.message,
followUp: followUps,
canBeVoted: true,
canBeVoted: messageData.canBeVoted ?? false,
codeReference: messageData.codeReference,
userIntent: messageData.userIntent,
codeBlockLanguage: messageData.codeBlockLanguage,
contextList: messageData.contextList,
title: messageData.title,
buttons: messageData.buttons ?? undefined,
fileList: messageData.fileList ?? undefined,
header: messageData.header ?? undefined,
padding: messageData.padding ?? false,
fullWidth: messageData.fullWidth ?? undefined,
codeBlockActions: messageData.codeBlockActions ?? undefined,
}

// If it is not there we will not set it
if (messageData.messageType === 'answer-part' || messageData.messageType === 'answer') {
answer.canBeVoted = true
}
// eslint-disable-next-line aws-toolkits/no-console-log
console.log('messageData', messageData)
// eslint-disable-next-line aws-toolkits/no-console-log
console.log('answer', answer)

if (messageData.relatedSuggestions !== undefined) {
answer.relatedContent = {
Expand Down Expand Up @@ -137,6 +154,8 @@ export class Connector extends BaseConnector {
options: messageData.followUps,
}
: undefined,
buttons: messageData.buttons ?? undefined,
canBeVoted: messageData.canBeVoted ?? false,
}
this.onChatAnswerReceived(messageData.tabID, answer, messageData)

Expand Down Expand Up @@ -204,7 +223,7 @@ export class Connector extends BaseConnector {
}

if (messageData.type === 'customFormActionMessage') {
this.onCustomFormAction(messageData.tabID, messageData.action)
this.onCustomFormAction(messageData.tabID, messageData.messageId, messageData.action)
return
}
// For other message types, call the base class handleMessageReceive
Expand Down Expand Up @@ -235,6 +254,7 @@ export class Connector extends BaseConnector {

onCustomFormAction(
tabId: string,
messageId: string,
action: {
id: string
text?: string | undefined
Expand All @@ -248,9 +268,48 @@ export class Connector extends BaseConnector {
this.sendMessageToExtension({
command: 'form-action-click',
action: action,
formSelectedValues: action.formItemValues,
tabType: this.getTabType(),
tabID: tabId,
})

if (!this.onChatAnswerUpdated || !['accept-code-diff', 'reject-code-diff'].includes(action.id)) {
return
}
const answer: ChatItem = {
type: ChatItemType.ANSWER,
messageId: messageId,
buttons: [],
}
switch (action.id) {
case 'accept-code-diff':
answer.buttons = [
{
keepCardAfterClick: true,
text: 'Accepted code',
id: 'accepted-code-diff',
status: 'success',
position: 'outside',
disabled: true,
},
]
break
case 'reject-code-diff':
answer.buttons = [
{
keepCardAfterClick: true,
text: 'Rejected code',
id: 'rejected-code-diff',
status: 'error',
position: 'outside',
disabled: true,
},
]
break
default:
break
}
this.onChatAnswerUpdated(tabId, answer)
}

onFileClick = (tabID: string, filePath: string, messageId?: string) => {
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/amazonq/webview/ui/connector.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ export interface CWCChatItem extends ChatItem {
userIntent?: UserIntent
codeBlockLanguage?: string
contextList?: Context[]
title?: string
}

export interface Context {
Expand Down Expand Up @@ -711,7 +712,7 @@ export class Connector {
tabType: 'cwc',
})
} else {
this.cwChatConnector.onCustomFormAction(tabId, action)
this.cwChatConnector.onCustomFormAction(tabId, messageId ?? '', action)
}
break
case 'agentWalkthrough': {
Expand Down
8 changes: 7 additions & 1 deletion packages/core/src/amazonq/webview/ui/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,12 @@ export const createMynahUI = (
...(item.followUp !== undefined ? { followUp: item.followUp } : {}),
...(item.fileList !== undefined ? { fileList: item.fileList } : {}),
...(item.header !== undefined ? { header: item.header } : { header: undefined }),
...(item.buttons !== undefined ? { buttons: item.buttons } : { buttons: undefined }),
...(item.fullWidth !== undefined ? { fullWidth: item.fullWidth } : { fullWidth: undefined }),
...(item.padding !== undefined ? { padding: item.padding } : { padding: undefined }),
...(item.codeBlockActions !== undefined
? { codeBlockActions: item.codeBlockActions }
: { codeBlockActions: undefined }),
})
if (
item.messageId !== undefined &&
Expand All @@ -374,7 +380,7 @@ export const createMynahUI = (
fileList: {
fileTreeTitle: '',
filePaths: item.contextList.map((file) => file.relativeFilePath),
rootFolderTitle: 'Context',
rootFolderTitle: item.title,
flatList: true,
collapsed: true,
hideFileCount: true,
Expand Down
4 changes: 2 additions & 2 deletions packages/core/src/codewhisperer/client/codewhisperer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ export interface CodeWhispererConfig {
}

export const defaultServiceConfig: CodeWhispererConfig = {
region: 'us-east-1',
endpoint: 'https://codewhisperer.us-east-1.amazonaws.com/',
region: 'us-west-2',
endpoint: 'https://rts.alpha-us-west-2.codewhisperer.ai.aws.dev/',
}

export function getCodewhispererConfig(): CodeWhispererConfig {
Expand Down
Loading