Skip to content

Commit 9ba6e6a

Browse files
committed
feat(observer): enable AddDependencyAgentObserver and refactor message processing #259
- Enable AddDependencyAgentObserver in autodev-core.xml. - Rename `preprocessMessages` to `processMessages` in AgentStateService. - Add `dispose` method to AddDependencyAgentObserver for cleanup. - Remove unused `resetMessages` method and add placeholder for `resolveIssue`.
1 parent 6bad2c2 commit 9ba6e6a

File tree

6 files changed

+34
-13
lines changed

6 files changed

+34
-13
lines changed

core/src/233/main/resources/META-INF/autodev-core.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@
278278

279279
<agentObserver implementation="cc.unitmesh.devti.observer.TestAgentObserver" />
280280
<agentObserver implementation="cc.unitmesh.devti.observer.BuiltTaskAgentObserver" />
281-
<!-- <agentObserver implementation="cc.unitmesh.devti.observer.AddDependencyAgentObserver" />-->
281+
<agentObserver implementation="cc.unitmesh.devti.observer.AddDependencyAgentObserver" />
282282
<!-- <agentObserver implementation="cc.unitmesh.devti.observer.ChangeListObserver" />-->
283283
</extensions>
284284

core/src/main/kotlin/cc/unitmesh/devti/llms/custom/CustomLLMProvider.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ class CustomLLMProvider(val project: Project, var llmConfig: LlmConfig = LlmConf
8484
}
8585

8686
messages += Message("user", prompt)
87-
val finalMsgs = agentService.preprocessMessages(messages)
87+
val finalMsgs = agentService.processMessages(messages)
8888

8989
val customRequest = CustomRequest(finalMsgs)
9090
val requestContent = customRequest.updateCustomFormat(requestFormat)
Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,32 @@
11
package cc.unitmesh.devti.observer
22

33
import cc.unitmesh.devti.provider.observer.AgentObserver
4+
import com.intellij.openapi.Disposable
5+
import com.intellij.openapi.externalSystem.service.project.manage.ProjectDataImportListener
46
import com.intellij.openapi.project.Project
7+
import com.intellij.util.messages.MessageBusConnection
58

6-
class AddDependencyAgentObserver : AgentObserver {
9+
/**
10+
* When test can use an unknown dependency, it will trigger the observer to store the error.
11+
*/
12+
class AddDependencyAgentObserver : AgentObserver, Disposable {
13+
private var connection: MessageBusConnection? = null
714
override fun onRegister(project: Project) {
15+
connection = project.messageBus.connect()
16+
connection?.subscribe(ProjectDataImportListener.TOPIC, object : ProjectDataImportListener {
17+
override fun onImportFailed(projectPath: String?, t: Throwable) {
18+
val prompt = """Help me fix follow dependency issue:
19+
|## ErrorMessage:
20+
|```
21+
|${t.message}
22+
|""".trimMargin()
23+
24+
sendErrorNotification(project, prompt)
25+
}
26+
})
27+
}
28+
29+
override fun dispose() {
30+
connection?.disconnect()
831
}
9-
}
32+
}

core/src/main/kotlin/cc/unitmesh/devti/observer/TestAgentObserver.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,6 @@ class TestAgentObserver : AgentObserver, Disposable {
135135
}
136136
}
137137

138-
139138
private fun getConsoleView(executionConsole: ExecutionConsole): ConsoleViewImpl? {
140139
when (executionConsole) {
141140
is ConsoleViewImpl -> {
@@ -170,8 +169,6 @@ class TestAgentObserver : AgentObserver, Disposable {
170169
}
171170
}
172171

173-
// ToolWindowManager.getInstance(project).getToolWindow(ToolWindowId.DEBUG)
174-
175172
override fun dispose() {
176173
connection?.disconnect()
177174
}

core/src/main/kotlin/cc/unitmesh/devti/observer/agent/AgentStateService.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,16 @@ class AgentStateService {
2626
// todo changeList.add()
2727
}
2828

29-
fun resetMessages() {
30-
state.messages = emptyList()
31-
}
32-
3329
/**
3430
* Call some LLM to compress it or use some other method to compress the history
3531
*/
36-
fun preprocessMessages(messages: List<Message>): List<Message> {
32+
fun processMessages(messages: List<Message>): List<Message> {
3733
state.messages = messages
34+
/// todo compress message in here
3835
return messages
3936
}
37+
38+
fun resolveIssue() {
39+
// todo resolve issue
40+
}
4041
}

core/src/main/resources/icons/ai-copilot.svg

Lines changed: 1 addition & 1 deletion
Loading

0 commit comments

Comments
 (0)