mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 02:59:33 +07:00
[AIA] Tool progress reporting from the tools
(cherry picked from commit d0a19938a67427ef3540f35b203b3082d8139b1d) GitOrigin-RevId: 471d4faf12d929986050bb0fc729b8254ee981df
This commit is contained in:
committed by
intellij-monorepo-bot
parent
786d591b05
commit
2c814de7d8
@@ -1,6 +1,7 @@
|
||||
package com.intellij.mcpserver
|
||||
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.util.application
|
||||
import com.intellij.util.messages.Topic
|
||||
|
||||
interface ToolCallListener {
|
||||
@@ -12,6 +13,8 @@ interface ToolCallListener {
|
||||
fun beforeMcpToolCall(mcpToolDescriptor: McpToolDescriptor) {}
|
||||
|
||||
fun afterMcpToolCall(mcpToolDescriptor: McpToolDescriptor, events: List<McpToolSideEffectEvent>) {}
|
||||
|
||||
fun toolActivity(toolDescription: String) {}
|
||||
}
|
||||
|
||||
sealed interface McpToolSideEffectEvent
|
||||
@@ -22,3 +25,7 @@ class FileCreatedEvent(val file: VirtualFile, val content: String) : FileEvent
|
||||
class FileDeletedEvent(val file: VirtualFile, val content: String?) : FileEvent
|
||||
class FileMovedEvent(val file: VirtualFile, val oldParent: VirtualFile, val newParent: VirtualFile) : FileEvent
|
||||
class FileContentChangeEvent(val file: VirtualFile, val oldContent: String?, val newContent: String) : FileEvent
|
||||
|
||||
fun reportToolActivity(toolDescription: String) {
|
||||
application.messageBus.syncPublisher(ToolCallListener.TOPIC).toolActivity(toolDescription)
|
||||
}
|
||||
@@ -7,12 +7,9 @@ import com.intellij.analysis.problemsView.ProblemsCollector
|
||||
import com.intellij.codeInsight.daemon.impl.DaemonCodeAnalyzerEx
|
||||
import com.intellij.codeInsight.daemon.impl.HighlightInfo
|
||||
import com.intellij.lang.annotation.HighlightSeverity
|
||||
import com.intellij.mcpserver.McpServerBundle
|
||||
import com.intellij.mcpserver.McpToolset
|
||||
import com.intellij.mcpserver.*
|
||||
import com.intellij.mcpserver.annotations.McpDescription
|
||||
import com.intellij.mcpserver.annotations.McpTool
|
||||
import com.intellij.mcpserver.mcpFail
|
||||
import com.intellij.mcpserver.project
|
||||
import com.intellij.mcpserver.toolsets.Constants
|
||||
import com.intellij.mcpserver.util.projectDirectory
|
||||
import com.intellij.mcpserver.util.resolveInProject
|
||||
@@ -54,6 +51,7 @@ class AnalysisToolset : McpToolset {
|
||||
@McpDescription(Constants.TIMEOUT_MILLISECONDS_DESCRIPTION)
|
||||
timeout: Int = Constants.MEDIUM_TIMEOUT_MILLISECONDS_VALUE,
|
||||
): FileProblemsResult {
|
||||
reportToolActivity("Collecting problems in file $filePath")
|
||||
val project = currentCoroutineContext().project
|
||||
val projectDir = project.projectDirectory
|
||||
|
||||
|
||||
Reference in New Issue
Block a user