Skip to content

Commit 7280d34

Browse files
committed
patch
1 parent b40218c commit 7280d34

File tree

2 files changed

+43
-43
lines changed

2 files changed

+43
-43
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
package software.aws.toolkits.jetbrains.services.amazonq.project
5+
6+
sealed interface LspApi {
7+
val command: String
8+
9+
10+
}

plugins/amazonq/shared/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/project/ProjectContextProvider.kt

Lines changed: 33 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -181,27 +181,29 @@ class ProjectContextProvider(val project: Project, private val encoderServer: En
181181
}
182182
}
183183

184-
fun queryChat(prompt: String): List<RelevantDocument> {
185-
logger.info { "project context: querying ${project.name} on port ${encoderServer.port}" }
186-
val url = URL("http://localhost:${encoderServer.port}/query")
187-
val payload = QueryRequestPayload(prompt)
188-
val payloadJson = mapper.writeValueAsString(payload)
189-
val encrypted = encoderServer.encrypt(payloadJson)
184+
fun updateIndex(filePaths: List<String>, mode: String) {
185+
if (!isIndexComplete.get()) return
190186

191-
val response = with(url.openConnection() as HttpURLConnection) {
187+
val url = URL("http://localhost:${encoderServer.port}/updateIndexV2")
188+
val payload = UpdateIndexRequestV2(filePaths, mode)
189+
val encrypted = encoderServer.encrypt(mapper.writeValueAsString(payload))
190+
191+
with(url.openConnection() as HttpURLConnection) {
192192
setConnectionProperties(this)
193193
setConnectionTimeout(this)
194194
setConnectionRequest(this, encrypted)
195-
val responseCode = this.responseCode
195+
val responseCode = responseCode
196+
logger.debug { "project context update index response code: $responseCode" }
197+
return
198+
}
199+
}
196200

197-
logger.info { "project context query response code: $responseCode for $prompt" }
201+
fun queryChat(prompt: String): List<RelevantDocument> {
202+
val payload = QueryRequestPayload(prompt)
203+
val payloadJson = mapper.writeValueAsString(payload)
204+
val encrypted = encoderServer.encrypt(payloadJson)
198205

199-
if (responseCode == 200) {
200-
this.inputStream.bufferedReader().use { reader -> reader.readText() }
201-
} else {
202-
""
203-
}
204-
}
206+
val response = sendMsgToLsp("query", encrypted)
205207

206208
return try {
207209
val parsedResponse = mapper.readValue<List<Chunk>>(response)
@@ -213,27 +215,11 @@ class ProjectContextProvider(val project: Project, private val encoderServer: En
213215
}
214216

215217
fun queryInline(prompt: String, filePath: String): List<BM25Chunk> {
216-
logger.info { "project context: querying ${project.name} on port ${encoderServer.port}" }
217-
val url = URL("http://localhost:${encoderServer.port}/queryInlineProjectContext")
218218
val payload = QueryRequestV2(prompt, filePath)
219219
val payloadJson = mapper.writeValueAsString(payload)
220220
val encrypted = encoderServer.encrypt(payloadJson)
221221

222-
val response = with(url.openConnection() as HttpURLConnection) {
223-
setConnectionProperties(this)
224-
setConnectionTimeout(this)
225-
setConnectionRequest(this, encrypted)
226-
val responseCode = this.responseCode
227-
logger.info { "project context query response code: $responseCode for $prompt" }
228-
229-
val responseBody = if (responseCode == 200) {
230-
this.inputStream.bufferedReader().use { reader -> reader.readText() }
231-
} else {
232-
""
233-
}
234-
235-
responseBody
236-
}
222+
val response = sendMsgToLsp("queryInlineProjectContext", encrypted)
237223

238224
return try {
239225
mapper.readValue<List<BM25Chunk>>(response)
@@ -287,20 +273,24 @@ class ProjectContextProvider(val project: Project, private val encoderServer: En
287273
}
288274
}
289275

290-
fun updateIndex(filePaths: List<String>, mode: String) {
291-
if (!isIndexComplete.get()) return
292-
293-
val url = URL("http://localhost:${encoderServer.port}/updateIndexV2")
294-
val payload = UpdateIndexRequestV2(filePaths, mode)
295-
val encrypted = encoderServer.encrypt(mapper.writeValueAsString(payload))
276+
fun sendMsgToLsp(msgType: String, request: String): String {
277+
logger.info { "sending message: ${msgType} to lsp on port ${encoderServer.port}" }
278+
val url = URL("http://localhost:${encoderServer.port}/$msgType")
296279

297-
with(url.openConnection() as HttpURLConnection) {
280+
return with(url.openConnection() as HttpURLConnection) {
298281
setConnectionProperties(this)
299282
setConnectionTimeout(this)
300-
setConnectionRequest(this, encrypted)
301-
val responseCode = responseCode
302-
logger.debug { "project context update index response code: $responseCode" }
303-
return
283+
setConnectionRequest(this, request)
284+
val responseCode = this.responseCode
285+
logger.info { "receiving response for $msgType with responseCode $responseCode" }
286+
287+
val responseBody = if (responseCode == 200) {
288+
this.inputStream.bufferedReader().use { reader -> reader.readText() }
289+
} else {
290+
""
291+
}
292+
293+
responseBody
304294
}
305295
}
306296

0 commit comments

Comments
 (0)