public async generateAssistantResponse()

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.'
            )
        }
    }