Skip to content

Commit b155f87

Browse files
committed
poc model routing
1 parent 01351dd commit b155f87

23 files changed

+419
-198
lines changed

packages/amazonq/test/unit/codewhisperer/commands/onAcceptance.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import * as sinon from 'sinon'
99
import {
1010
onAcceptance,
1111
AcceptedSuggestionEntry,
12-
session,
12+
CodeWhispererSessionState,
1313
CodeWhispererTracker,
1414
RecommendationHandler,
1515
AuthUtil,
@@ -18,6 +18,7 @@ import { resetCodeWhispererGlobalVariables, createMockTextEditor } from 'aws-cor
1818
import { assertTelemetryCurried } from 'aws-core-vscode/test'
1919

2020
describe('onAcceptance', function () {
21+
const session = CodeWhispererSessionState.instance.getSession()
2122
describe('onAcceptance', function () {
2223
beforeEach(async function () {
2324
await resetCodeWhispererGlobalVariables()

packages/amazonq/test/unit/codewhisperer/commands/onInlineAcceptance.test.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,17 @@ import * as vscode from 'vscode'
88
import * as sinon from 'sinon'
99
import { resetCodeWhispererGlobalVariables, createMockTextEditor } from 'aws-core-vscode/test'
1010
import { assertTelemetryCurried } from 'aws-core-vscode/test'
11-
import { onInlineAcceptance, RecommendationHandler, AuthUtil, session } from 'aws-core-vscode/codewhisperer'
11+
import {
12+
onInlineAcceptance,
13+
RecommendationHandler,
14+
AuthUtil,
15+
CodeWhispererSessionState,
16+
} from 'aws-core-vscode/codewhisperer'
1217
import { globals } from 'aws-core-vscode/shared'
1318
import { extensionVersion } from 'aws-core-vscode/shared'
1419

1520
describe('onInlineAcceptance', function () {
21+
const session = CodeWhispererSessionState.instance.getSession()
1622
describe('onInlineAcceptance', function () {
1723
beforeEach(async function () {
1824
await resetCodeWhispererGlobalVariables()

packages/amazonq/test/unit/codewhisperer/service/completionProvider.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@ import {
1212
getLabel,
1313
Recommendation,
1414
RecommendationHandler,
15-
session,
15+
CodeWhispererSessionState,
1616
} from 'aws-core-vscode/codewhisperer'
1717
import { createMockDocument, resetCodeWhispererGlobalVariables } from 'aws-core-vscode/test'
1818

1919
describe('completionProviderService', function () {
20+
const session = CodeWhispererSessionState.instance.getSession()
2021
beforeEach(async function () {
2122
await resetCodeWhispererGlobalVariables()
2223
})

packages/amazonq/test/unit/codewhisperer/service/inlineCompletionService.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,15 @@ import {
1414
CodeSuggestionsState,
1515
ConfigurationEntry,
1616
CWInlineCompletionItemProvider,
17-
session,
17+
CodeWhispererSessionState,
1818
AuthUtil,
1919
listCodeWhispererCommandsId,
2020
DefaultCodeWhispererClient,
2121
} from 'aws-core-vscode/codewhisperer'
2222
import { createMockTextEditor, resetCodeWhispererGlobalVariables, createMockDocument } from 'aws-core-vscode/test'
2323

2424
describe('inlineCompletionService', function () {
25+
const session = CodeWhispererSessionState.instance.getSession()
2526
beforeEach(async function () {
2627
await resetCodeWhispererGlobalVariables()
2728
})

packages/amazonq/test/unit/codewhisperer/service/recommendationHandler.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import * as vscode from 'vscode'
88
import * as sinon from 'sinon'
99
import {
1010
ReferenceInlineProvider,
11-
session,
11+
CodeWhispererSessionState,
1212
AuthUtil,
1313
DefaultCodeWhispererClient,
1414
RecommendationsList,
@@ -26,6 +26,7 @@ import {
2626
// import * as supplementalContextUtil from 'aws-core-vscode/codewhisperer'
2727

2828
describe('recommendationHandler', function () {
29+
const session = CodeWhispererSessionState.instance.getSession()
2930
const config: ConfigurationEntry = {
3031
isShowMethodsEnabled: true,
3132
isManualTriggerEnabled: true,

packages/amazonq/test/unit/codewhisperer/service/telemetry.test.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222
invokeRecommendation,
2323
ConfigurationEntry,
2424
RecommendationHandler,
25-
session,
25+
CodeWhispererSessionState,
2626
vsCodeCursorUpdateDelay,
2727
AuthUtil,
2828
} from 'aws-core-vscode/codewhisperer'
@@ -36,6 +36,7 @@ type CodeWhispererResponse = ListRecommendationsResponse & {
3636
let tempFolder: string
3737

3838
describe.skip('CodeWhisperer telemetry', async function () {
39+
const session = CodeWhispererSessionState.instance.getSession()
3940
let sandbox: sinon.SinonSandbox
4041
let client: DefaultCodeWhispererClient
4142

@@ -519,6 +520,7 @@ async function manualTrigger(
519520

520521
// Note: RecommendationHandler.isSuggestionVisible seems not to work well, hence not using it
521522
async function waitUntilSuggestionSeen(index: number = 0) {
523+
const session = CodeWhispererSessionState.instance.getSession()
522524
const state = await waitUntil(
523525
async () => {
524526
const r = session.getSuggestionState(index)

packages/amazonq/test/unit/codewhisperer/util/telemetryHelper.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import assert from 'assert'
77
import { assertTelemetryCurried, resetCodeWhispererGlobalVariables } from 'aws-core-vscode/test'
8-
import { TelemetryHelper, Completion, session } from 'aws-core-vscode/codewhisperer'
8+
import { TelemetryHelper, Completion, CodeWhispererSessionState } from 'aws-core-vscode/codewhisperer'
99
import {
1010
CodewhispererCompletionType,
1111
CodewhispererSuggestionState,
@@ -39,6 +39,7 @@ function aCompletion(): Completion {
3939
}
4040

4141
describe('telemetryHelper', function () {
42+
const session = CodeWhispererSessionState.instance.getSession()
4243
describe('clientComponentLatency', function () {
4344
let sut: TelemetryHelper
4445

packages/core/src/codewhisperer/client/codewhisperer.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { isSsoConnection } from '../../auth/connection'
1717
import { pageableToCollection } from '../../shared/utilities/collectionUtils'
1818
import apiConfig = require('./service-2.json')
1919
import userApiConfig = require('./user-service-2.json')
20-
import { session } from '../util/codeWhispererSession'
20+
import { CodeWhispererSessionState } from '../util/codeWhispererSession'
2121
import { getLogger } from '../../shared/logger'
2222
import { indent } from '../../shared/utilities/textUtilities'
2323
import { keepAliveHeader } from './agent'
@@ -133,6 +133,7 @@ export class DefaultCodeWhispererClient {
133133
}
134134

135135
async createUserSdkClient(maxRetries?: number): Promise<CodeWhispererUserClient> {
136+
const session = CodeWhispererSessionState.instance.getSession()
136137
const isOptedOut = CodeWhispererSettings.instance.isOptoutEnabled()
137138
session.setFetchCredentialStart()
138139
const bearerToken = await AuthUtil.instance.getBearerToken()

packages/core/src/codewhisperer/commands/invokeRecommendation.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { vsCodeState, ConfigurationEntry } from '../models/model'
88
import { resetIntelliSenseState } from '../util/globalStateUtil'
99
import { DefaultCodeWhispererClient } from '../client/codewhisperer'
1010
import { RecommendationHandler } from '../service/recommendationHandler'
11-
import { session } from '../util/codeWhispererSession'
11+
import { CodeWhispererSessionState } from '../util/codeWhispererSession'
1212
import { RecommendationService } from '../service/recommendationService'
1313

1414
/**
@@ -33,6 +33,7 @@ export async function invokeRecommendation(
3333
/**
3434
* When using intelliSense, if invocation position changed, reject previous active recommendations
3535
*/
36+
const session = CodeWhispererSessionState.instance.getSession()
3637
if (vsCodeState.isIntelliSenseActive && editor.selection.active !== session.startPos) {
3738
resetIntelliSenseState(
3839
config.isManualTriggerEnabled,

packages/core/src/codewhisperer/commands/onInlineAcceptance.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import {
2626
import { ReferenceLogViewProvider } from '../service/referenceLogViewProvider'
2727
import { ReferenceHoverProvider } from '../service/referenceHoverProvider'
2828
import { ImportAdderProvider } from '../service/importAdderProvider'
29-
import { session } from '../util/codeWhispererSession'
29+
import { CodeWhispererSessionState } from '../util/codeWhispererSession'
3030
import path from 'path'
3131
import { RecommendationService } from '../service/recommendationService'
3232
import { Container } from '../service/serviceContainer'
@@ -89,6 +89,7 @@ export async function onInlineAcceptance(acceptanceEntry: OnRecommendationAccept
8989
const end = acceptanceEntry.editor.selection.active
9090

9191
vsCodeState.isCodeWhispererEditing = true
92+
const session = CodeWhispererSessionState.instance.getSession()
9293
/**
9394
* Mitigation to right context handling mainly for auto closing bracket use case
9495
*/
@@ -142,5 +143,12 @@ export async function onInlineAcceptance(acceptanceEntry: OnRecommendationAccept
142143
}
143144

144145
RecommendationHandler.instance.reportUserDecisions(acceptanceEntry.acceptIndex)
146+
if (acceptanceEntry.acceptIndex == 0) {
147+
// TODO: gate behind A/B group if needed
148+
const nextSession = CodeWhispererSessionState.instance.getNextSession()
149+
nextSession.startPos = acceptanceEntry.editor.selection.active
150+
CodeWhispererSessionState.instance.setSession(nextSession)
151+
await RecommendationHandler.instance.showNextRecommendations()
152+
}
145153
}
146154
}

0 commit comments

Comments
 (0)