in server/aws-lsp-codewhisperer/src/language-server/chat/chatSessionService.ts [121:160]
public async generateAssistantResponse(
request: GenerateAssistantResponseCommandInput
): Promise<GenerateAssistantResponseCommandOutput> {
this.#abortController = new AbortController()
if (this.#conversationId && request.conversationState) {
request.conversationState.conversationId = this.#conversationId
}
if (!this.#serviceManager) {
throw new AgenticChatError('amazonQServiceManager is not initialized', 'AmazonQServiceManager')
}
const client = this.#serviceManager.getStreamingClient()
if (client instanceof StreamingClientServiceToken) {
try {
return await client.generateAssistantResponse(request, this.#abortController)
} catch (e) {
if (isInputTooLongError(e)) {
let requestId
if (e instanceof CodeWhispererStreamingServiceException) {
requestId = e.$metadata?.requestId
}
throw new AgenticChatError(
'Too much context loaded. Please start a new conversation or ask about specific files.',
'InputTooLong',
e instanceof Error ? e : undefined,
requestId
)
}
throw wrapErrorWithCode(e, 'QModelResponse')
}
} else {
// error
return Promise.reject(
'Client is not instance of StreamingClientServiceToken, generateAssistantResponse not available for IAM client.'
)
}
}