Skip to content

Commit 9d5671c

Browse files
ahusseinalihayemaxi
authored andcommitted
Disable /transform & /dev commands for sagemaker users
1 parent f36101a commit 9d5671c

File tree

8 files changed

+28
-8
lines changed

8 files changed

+28
-8
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type": "Bug Fix",
3+
"description": "Disable /transform and /dev commands for sagemaker users as they're not supported"
4+
}

packages/core/src/amazonq/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,12 @@ import { FeatureContext } from '../shared'
4242
export function createMynahUI(
4343
ideApi: any,
4444
amazonQEnabled: boolean,
45-
featureConfigsSerialized: [string, FeatureContext][]
45+
featureConfigsSerialized: [string, FeatureContext][],
46+
disabledCommands?: string[]
4647
) {
4748
if (typeof window !== 'undefined') {
4849
const mynahUI = require('./webview/ui/main')
49-
return mynahUI.createMynahUI(ideApi, amazonQEnabled, featureConfigsSerialized)
50+
return mynahUI.createMynahUI(ideApi, amazonQEnabled, featureConfigsSerialized, disabledCommands)
5051
}
5152
throw new Error('Not implemented for node')
5253
}

packages/core/src/amazonq/webview/generators/webViewContent.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import path from 'path'
77
import { Uri, Webview } from 'vscode'
88
import { AuthUtil } from '../../../codewhisperer/util/authUtil'
9-
import { FeatureConfigProvider, FeatureContext, globals } from '../../../shared'
9+
import { FeatureConfigProvider, FeatureContext, globals, isSageMaker } from '../../../shared'
1010

1111
export class WebViewContentGenerator {
1212
private async generateFeatureConfigsData(): Promise<string> {
@@ -77,14 +77,16 @@ export class WebViewContentGenerator {
7777
// Fetch featureConfigs and use it within the script
7878
const featureConfigsString = await this.generateFeatureConfigsData()
7979

80+
const disabledCommandsString = isSageMaker() ? `['/dev', '/transform']` : '[]'
81+
8082
return `
8183
<script type="text/javascript" src="${javascriptEntrypoint.toString()}" defer onload="init()"></script>
8284
${cssLinks}
8385
<script type="text/javascript">
8486
const init = () => {
8587
createMynahUI(acquireVsCodeApi(), ${
8688
(await AuthUtil.instance.getChatAuthState()).amazonQ === 'connected'
87-
},${featureConfigsString});
89+
},${featureConfigsString},${disabledCommandsString});
8890
}
8991
</script>
9092
`

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ import { tryNewMap } from '../../util/functionUtils'
3131
export const createMynahUI = (
3232
ideApi: any,
3333
amazonQEnabled: boolean,
34-
featureConfigsSerialized: [string, FeatureContext][]
34+
featureConfigsSerialized: [string, FeatureContext][],
35+
disabledCommands?: string[]
3536
) => {
3637
// eslint-disable-next-line prefer-const
3738
let mynahUI: MynahUI
@@ -77,6 +78,7 @@ export const createMynahUI = (
7778
let tabDataGenerator = new TabDataGenerator({
7879
isFeatureDevEnabled,
7980
isGumbyEnabled,
81+
disabledCommands,
8082
})
8183

8284
// eslint-disable-next-line prefer-const
@@ -118,11 +120,13 @@ export const createMynahUI = (
118120
tabsStorage,
119121
isFeatureDevEnabled,
120122
isGumbyEnabled,
123+
disabledCommands,
121124
})
122125

123126
tabDataGenerator = new TabDataGenerator({
124127
isFeatureDevEnabled,
125128
isGumbyEnabled,
129+
disabledCommands,
126130
})
127131

128132
featureConfigs = tryNewMap(featureConfigsSerialized)

packages/core/src/amazonq/webview/ui/messages/controller.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export interface MessageControllerProps {
1515
tabsStorage: TabsStorage
1616
isFeatureDevEnabled: boolean
1717
isGumbyEnabled: boolean
18+
disabledCommands?: string[]
1819
}
1920

2021
export class MessageController {
@@ -30,6 +31,7 @@ export class MessageController {
3031
this.tabDataGenerator = new TabDataGenerator({
3132
isFeatureDevEnabled: props.isFeatureDevEnabled,
3233
isGumbyEnabled: props.isGumbyEnabled,
34+
disabledCommands: props.disabledCommands,
3335
})
3436
}
3537

packages/core/src/amazonq/webview/ui/quickActions/generator.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,25 @@ import { TabType } from '../storages/tabsStorage'
99
export interface QuickActionGeneratorProps {
1010
isFeatureDevEnabled: boolean
1111
isGumbyEnabled: boolean
12+
disableCommands?: string[]
1213
}
1314

1415
export class QuickActionGenerator {
1516
public isFeatureDevEnabled: boolean
1617
private isGumbyEnabled: boolean
18+
private disabledCommands: string[]
1719

1820
constructor(props: QuickActionGeneratorProps) {
1921
this.isFeatureDevEnabled = props.isFeatureDevEnabled
2022
this.isGumbyEnabled = props.isGumbyEnabled
23+
this.disabledCommands = props.disableCommands ?? []
2124
}
2225

2326
public generateForTab(tabType: TabType): QuickActionCommandGroup[] {
2427
const quickActionCommands = [
2528
{
2629
commands: [
27-
...(this.isFeatureDevEnabled
30+
...(this.isFeatureDevEnabled && !this.disabledCommands.includes('/dev')
2831
? [
2932
{
3033
command: '/dev',
@@ -33,7 +36,7 @@ export class QuickActionGenerator {
3336
},
3437
]
3538
: []),
36-
...(this.isGumbyEnabled
39+
...(this.isGumbyEnabled && !this.disabledCommands.includes('/transform')
3740
? [
3841
{
3942
command: '/transform',
@@ -55,7 +58,7 @@ export class QuickActionGenerator {
5558
},
5659
],
5760
},
58-
]
61+
].filter((section) => section.commands.length > 0)
5962

6063
const commandUnavailability: Record<
6164
TabType,

packages/core/src/amazonq/webview/ui/quickActions/handler.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export interface QuickActionsHandlerProps {
1515
tabsStorage: TabsStorage
1616
isFeatureDevEnabled: boolean
1717
isGumbyEnabled: boolean
18+
disabledCommands?: string[]
1819
}
1920

2021
export class QuickActionHandler {
@@ -32,6 +33,7 @@ export class QuickActionHandler {
3233
this.tabDataGenerator = new TabDataGenerator({
3334
isFeatureDevEnabled: props.isFeatureDevEnabled,
3435
isGumbyEnabled: props.isGumbyEnabled,
36+
disabledCommands: props.disabledCommands,
3537
})
3638
this.isFeatureDevEnabled = props.isFeatureDevEnabled
3739
this.isGumbyEnabled = props.isGumbyEnabled

packages/core/src/amazonq/webview/ui/tabs/generator.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { TabTypeDataMap } from './constants'
1212
export interface TabDataGeneratorProps {
1313
isFeatureDevEnabled: boolean
1414
isGumbyEnabled: boolean
15+
disabledCommands?: string[]
1516
}
1617

1718
export class TabDataGenerator {
@@ -23,6 +24,7 @@ export class TabDataGenerator {
2324
this.quickActionsGenerator = new QuickActionGenerator({
2425
isFeatureDevEnabled: props.isFeatureDevEnabled,
2526
isGumbyEnabled: props.isGumbyEnabled,
27+
disableCommands: props.disabledCommands,
2628
})
2729
}
2830

0 commit comments

Comments
 (0)