From b62a692a0528559e6abb8b554e64320df10f945e Mon Sep 17 00:00:00 2001 From: Dmitry Zhuravlev Date: Mon, 29 Jun 2026 13:46:05 +0200 Subject: [PATCH] [agent-workbench][ai-review]: use AI review providers constants (FUS-8202) Use the shared provider list as an inline FUS allow-list instead of registering a custom validation rule with the broad values. GitOrigin-RevId: dd5b3a66ab9cde859317369df1700c8216f7583a --- .../intellij.agent.workbench.ai.review.xml | 2 -- .../review/AIReviewAgentSessionProviders.kt | 25 +++++++++++++++++++ .../workbench/ai/review/AIReviewCollector.kt | 17 ++----------- 3 files changed, 27 insertions(+), 17 deletions(-) create mode 100644 plugins/agent-workbench/ai-review/src/com/intellij/agent/workbench/ai/review/AIReviewAgentSessionProviders.kt diff --git a/plugins/agent-workbench/ai-review/resources/intellij.agent.workbench.ai.review.xml b/plugins/agent-workbench/ai-review/resources/intellij.agent.workbench.ai.review.xml index 3b0363a4bab0..7ead90210e1e 100644 --- a/plugins/agent-workbench/ai-review/resources/intellij.agent.workbench.ai.review.xml +++ b/plugins/agent-workbench/ai-review/resources/intellij.agent.workbench.ai.review.xml @@ -15,8 +15,6 @@ - = listOf( + CLAUDE_AGENT_SESSION_PROVIDER, + CODEX_AGENT_SESSION_PROVIDER, + JUNIE_AGENT_SESSION_PROVIDER, + OPENCODE_AGENT_SESSION_PROVIDER, +) diff --git a/plugins/agent-workbench/ai-review/src/com/intellij/agent/workbench/ai/review/AIReviewCollector.kt b/plugins/agent-workbench/ai-review/src/com/intellij/agent/workbench/ai/review/AIReviewCollector.kt index f7ae4ba48497..035dd780b239 100644 --- a/plugins/agent-workbench/ai-review/src/com/intellij/agent/workbench/ai/review/AIReviewCollector.kt +++ b/plugins/agent-workbench/ai-review/src/com/intellij/agent/workbench/ai/review/AIReviewCollector.kt @@ -7,7 +7,6 @@ import com.intellij.agent.workbench.ai.review.model.ReviewRating import com.intellij.internal.statistic.StructuredIdeActivity import com.intellij.internal.statistic.eventLog.EventLogGroup import com.intellij.internal.statistic.eventLog.events.EventFields -import com.intellij.internal.statistic.eventLog.validator.rules.impl.CustomValidationRule import com.intellij.internal.statistic.service.fus.collectors.CounterUsagesCollector import com.intellij.lang.LanguageUtil import com.intellij.openapi.diagnostic.fileLogger @@ -15,12 +14,9 @@ import com.intellij.openapi.diagnostic.logger import com.intellij.openapi.project.Project import com.intellij.openapi.vcs.VcsException import com.intellij.openapi.vcs.changes.Change -import com.intellij.platform.ai.agent.core.session.AgentSessionProvider -import com.jetbrains.fus.reporting.api.IEventContext -import com.jetbrains.fus.reporting.api.ValidationResultType internal object AIReviewCollector : CounterUsagesCollector() { - private val group = EventLogGroup("agent.workbench.ai.review", 5) + private val group = EventLogGroup("agent.workbench.ai.review", 6) private val REQUEST_ID = EventFields.Long("request_id", "ID of the review request.") private val RATING = EventFields.Enum("rating", ReviewRating::class.java) @@ -49,7 +45,7 @@ internal object AIReviewCollector : CounterUsagesCollector() { private val SUCCESS = EventFields.Boolean("success") - private val AGENT = EventFields.StringValidatedByCustomRule("agent") + private val AGENT = EventFields.String("agent", AVAILABLE_AI_REVIEW_AGENT_PROVIDERS.map { it.value }) private val YOLO = EventFields.Boolean("yolo", "Whether the agent was launched in YOLO (skip-permissions / full-auto) mode.") private data class ChangeMetrics( @@ -239,13 +235,4 @@ internal object AIReviewCollector : CounterUsagesCollector() { charsRemoved = charsRemoved, ) } - -} - -internal class AIReviewAgentProviderValidationRule : CustomValidationRule() { - override fun doValidate(data: String, context: IEventContext): ValidationResultType { - return if (AgentSessionProvider.fromOrNull(data) != null) ValidationResultType.ACCEPTED else ValidationResultType.REJECTED - } - - override fun getRuleId(): String = "agent_workbench_ai_review_provider" } \ No newline at end of file