From c38c8b9532ce2a1cd84fdd5ec0b3c809ad85dff2 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Tue, 30 Jun 2026 18:36:50 +0200 Subject: [PATCH] IJPL-248623 Move Agent Workbench plugin to Ultimate Drop the obsolete standalone Gradle scaffold IJ-MR-184958 IJ-MR-184993 IJ-MR-179029 IJ-MR-184126 IJ-MR-181153 IJ-MR-146078 IJ-MR-175479 IJ-MR-186058 IJ-MR-193195 IJ-MR-196957 IJ-MR-199124 IJ-MR-197441 IJ-MR-204135 IJ-MR-204674 IJ-MR-205883 IJ-MR-208539 GitOrigin-RevId: 18a13029becf6885a2de0ae22ac3d5e3acbf883e --- .idea/modules.xml | 2 - BUILD.bazel | 2 - build/bazel-generated-file-list.txt | 1 - intellij.idea.community.main.tests.iml | 1 - .../impl/plugins/nonBundledPluginBuilder.kt | 2 +- ...ntellij.platform.problemsView.frontend.iml | 57 ---- plugins/agent-workbench/.gitignore | 9 - plugins/agent-workbench/AGENTS.md | 6 +- plugins/agent-workbench/README.md | 2 +- .../ai-review-agents/build.gradle.kts | 86 ----- .../ai-review-space/build.gradle.kts | 90 ------ .../ai-review/build.gradle.kts | 76 ----- plugins/agent-workbench/build.gradle.kts | 160 ---------- .../claude/awb/build.gradle.kts | 67 ---- .../codex/ide/build.gradle.kts | 59 ---- .../codex/prompt-suggestions/build.gradle.kts | 65 ---- .../codex/thread-view/build.gradle.kts | 63 ---- plugins/agent-workbench/gradle.properties | 1 - plugins/agent-workbench/gradlew | 248 --------------- plugins/agent-workbench/gradlew.bat | 93 ------ .../lib-agent/common/build.gradle.kts | 60 ---- .../lib-agent/core/build.gradle.kts | 58 ---- .../lib-agent/filewatch/build.gradle.kts | 60 ---- .../lib-agent/json/build.gradle.kts | 60 ---- .../providers/claude/common/build.gradle.kts | 60 ---- .../claude/sessions/build.gradle.kts | 67 ---- .../providers/codex/common/build.gradle.kts | 61 ---- .../providers/codex/sessions/build.gradle.kts | 67 ---- .../providers/junie/common/build.gradle.kts | 58 ---- .../providers/junie/sessions/build.gradle.kts | 64 ---- .../opencode/sessions/build.gradle.kts | 63 ---- .../pi/sessions-filewatch/build.gradle.kts | 63 ---- .../providers/pi/sessions/build.gradle.kts | 65 ---- .../terminal/sessions/build.gradle.kts | 65 ---- .../lib-agent/sessions-core/build.gradle.kts | 62 ---- .../agent-workbench/pi/awb/build.gradle.kts | 64 ---- plugins/agent-workbench/plugin-content.yaml | 16 +- plugins/agent-workbench/plugin/BUILD.bazel | 300 ------------------ .../intellij.agent.workbench.plugin.iml | 64 ---- .../intellij.agent.workbench.plugin.tests.iml | 101 ------ .../plugin/plugin-content.yaml | 158 --------- .../plugin/resources/META-INF/plugin.xml | 83 ----- .../plugin/resources/META-INF/pluginIcon.svg | 13 - ...AddToAgentContextActionRegistrationTest.kt | 48 --- .../testSrc/AgentWorkbenchAllTestsSuite.kt | 23 -- ...gentWorkbenchProviderDescriptorKeysTest.kt | 72 ----- .../AgentWorkbenchProviderRegistrationTest.kt | 43 --- .../AgentWorkbenchProviderStructureTest.kt | 54 ---- .../prompt/context/build.gradle.kts | 59 ---- .../prompt/core/build.gradle.kts | 61 ---- .../prompt/testrunner/build.gradle.kts | 61 ---- .../prompt/ui/build.gradle.kts | 74 ----- .../prompt/vcs/build.gradle.kts | 77 ----- .../sessions-actions/build.gradle.kts | 68 ---- .../sessions-cost/build.gradle.kts | 62 ---- .../sessions-jbcentral/build.gradle.kts | 65 ---- .../backend/build.gradle.kts | 66 ---- .../sessions-toolwindow/build.gradle.kts | 70 ---- .../agent-workbench/sessions/build.gradle.kts | 67 ---- plugins/agent-workbench/settings.gradle.kts | 95 ------ .../agent-workbench/settings/build.gradle.kts | 64 ---- .../spec/actions/add-to-agent-context.spec.md | 2 +- .../engine-structured-agent-thread.spec.md | 16 +- .../core/engine-thread-view-rendering-plan.md | 6 +- ...acp-agent-launch-profile-migration.spec.md | 10 +- .../agent-launch-surface-switching.spec.md | 8 +- .../launch/engine-acp-launch-profiles.spec.md | 14 +- .../spec/review/ai-review.spec.md | 4 +- .../spec/sessions/agent-sessions-pi.spec.md | 2 +- .../agent-workbench/thread-view/BUILD.bazel | 2 - .../thread-view/build.gradle.kts | 74 ----- ...llij.agent.workbench.thread.view.tests.iml | 1 - plugins/agent-workbench/ui/build.gradle.kts | 63 ---- .../vcs-merge/build.gradle.kts | 80 ----- 74 files changed, 44 insertions(+), 4189 deletions(-) delete mode 100644 platform/problemsView/frontend/intellij.platform.problemsView.frontend.iml delete mode 100644 plugins/agent-workbench/.gitignore delete mode 100644 plugins/agent-workbench/ai-review-agents/build.gradle.kts delete mode 100644 plugins/agent-workbench/ai-review-space/build.gradle.kts delete mode 100644 plugins/agent-workbench/ai-review/build.gradle.kts delete mode 100644 plugins/agent-workbench/build.gradle.kts delete mode 100644 plugins/agent-workbench/claude/awb/build.gradle.kts delete mode 100644 plugins/agent-workbench/codex/ide/build.gradle.kts delete mode 100644 plugins/agent-workbench/codex/prompt-suggestions/build.gradle.kts delete mode 100644 plugins/agent-workbench/codex/thread-view/build.gradle.kts delete mode 100644 plugins/agent-workbench/gradle.properties delete mode 100755 plugins/agent-workbench/gradlew delete mode 100644 plugins/agent-workbench/gradlew.bat delete mode 100644 plugins/agent-workbench/lib-agent/common/build.gradle.kts delete mode 100644 plugins/agent-workbench/lib-agent/core/build.gradle.kts delete mode 100644 plugins/agent-workbench/lib-agent/filewatch/build.gradle.kts delete mode 100644 plugins/agent-workbench/lib-agent/json/build.gradle.kts delete mode 100644 plugins/agent-workbench/lib-agent/providers/claude/common/build.gradle.kts delete mode 100644 plugins/agent-workbench/lib-agent/providers/claude/sessions/build.gradle.kts delete mode 100644 plugins/agent-workbench/lib-agent/providers/codex/common/build.gradle.kts delete mode 100644 plugins/agent-workbench/lib-agent/providers/codex/sessions/build.gradle.kts delete mode 100644 plugins/agent-workbench/lib-agent/providers/junie/common/build.gradle.kts delete mode 100644 plugins/agent-workbench/lib-agent/providers/junie/sessions/build.gradle.kts delete mode 100644 plugins/agent-workbench/lib-agent/providers/opencode/sessions/build.gradle.kts delete mode 100644 plugins/agent-workbench/lib-agent/providers/pi/sessions-filewatch/build.gradle.kts delete mode 100644 plugins/agent-workbench/lib-agent/providers/pi/sessions/build.gradle.kts delete mode 100644 plugins/agent-workbench/lib-agent/providers/terminal/sessions/build.gradle.kts delete mode 100644 plugins/agent-workbench/lib-agent/sessions-core/build.gradle.kts delete mode 100644 plugins/agent-workbench/pi/awb/build.gradle.kts delete mode 100644 plugins/agent-workbench/plugin/BUILD.bazel delete mode 100644 plugins/agent-workbench/plugin/intellij.agent.workbench.plugin.iml delete mode 100644 plugins/agent-workbench/plugin/intellij.agent.workbench.plugin.tests.iml delete mode 100644 plugins/agent-workbench/plugin/plugin-content.yaml delete mode 100644 plugins/agent-workbench/plugin/resources/META-INF/plugin.xml delete mode 100644 plugins/agent-workbench/plugin/resources/META-INF/pluginIcon.svg delete mode 100644 plugins/agent-workbench/plugin/testSrc/AgentWorkbenchAddToAgentContextActionRegistrationTest.kt delete mode 100644 plugins/agent-workbench/plugin/testSrc/AgentWorkbenchAllTestsSuite.kt delete mode 100644 plugins/agent-workbench/plugin/testSrc/AgentWorkbenchProviderDescriptorKeysTest.kt delete mode 100644 plugins/agent-workbench/plugin/testSrc/AgentWorkbenchProviderRegistrationTest.kt delete mode 100644 plugins/agent-workbench/plugin/testSrc/AgentWorkbenchProviderStructureTest.kt delete mode 100644 plugins/agent-workbench/prompt/context/build.gradle.kts delete mode 100644 plugins/agent-workbench/prompt/core/build.gradle.kts delete mode 100644 plugins/agent-workbench/prompt/testrunner/build.gradle.kts delete mode 100644 plugins/agent-workbench/prompt/ui/build.gradle.kts delete mode 100644 plugins/agent-workbench/prompt/vcs/build.gradle.kts delete mode 100644 plugins/agent-workbench/sessions-actions/build.gradle.kts delete mode 100644 plugins/agent-workbench/sessions-cost/build.gradle.kts delete mode 100644 plugins/agent-workbench/sessions-jbcentral/build.gradle.kts delete mode 100644 plugins/agent-workbench/sessions-launch-config/backend/build.gradle.kts delete mode 100644 plugins/agent-workbench/sessions-toolwindow/build.gradle.kts delete mode 100644 plugins/agent-workbench/sessions/build.gradle.kts delete mode 100644 plugins/agent-workbench/settings.gradle.kts delete mode 100644 plugins/agent-workbench/settings/build.gradle.kts delete mode 100644 plugins/agent-workbench/thread-view/build.gradle.kts delete mode 100644 plugins/agent-workbench/ui/build.gradle.kts delete mode 100644 plugins/agent-workbench/vcs-merge/build.gradle.kts diff --git a/.idea/modules.xml b/.idea/modules.xml index a3a349b7b2ed..e8d80a2acb41 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -60,8 +60,6 @@ - - diff --git a/BUILD.bazel b/BUILD.bazel index a171c6a78530..d65629ee59e8 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -778,8 +778,6 @@ jvm_library( "//plugins/git4idea/terminal:terminal_test_lib", "//platform/instanceContainer:instanceContainer-tests", "//platform/instanceContainer:instanceContainer-tests_test_lib", - "//plugins/agent-workbench/plugin:agent-workbench-plugin-tests", - "//plugins/agent-workbench/plugin:agent-workbench-plugin-tests_test_lib", "//platform/polySymbols:polySymbols-tests", "//platform/polySymbols:polySymbols-tests_test_lib", "//plugins/gradle/native/tooling:gradle-native-tooling-tests", diff --git a/build/bazel-generated-file-list.txt b/build/bazel-generated-file-list.txt index f24800ed6009..4a5599745419 100644 --- a/build/bazel-generated-file-list.txt +++ b/build/bazel-generated-file-list.txt @@ -1002,7 +1002,6 @@ plugins/agent-workbench/lib-agent/providers/pi/sessions-filewatch plugins/agent-workbench/lib-agent/providers/terminal/sessions plugins/agent-workbench/lib-agent/sessions-core plugins/agent-workbench/pi/awb -plugins/agent-workbench/plugin plugins/agent-workbench/prompt/context plugins/agent-workbench/prompt/core plugins/agent-workbench/prompt/testrunner diff --git a/intellij.idea.community.main.tests.iml b/intellij.idea.community.main.tests.iml index 9f856d989a26..f920eb85166b 100644 --- a/intellij.idea.community.main.tests.iml +++ b/intellij.idea.community.main.tests.iml @@ -89,7 +89,6 @@ - diff --git a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/plugins/nonBundledPluginBuilder.kt b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/plugins/nonBundledPluginBuilder.kt index 9e670938260e..e5df57574662 100644 --- a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/plugins/nonBundledPluginBuilder.kt +++ b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/plugins/nonBundledPluginBuilder.kt @@ -197,7 +197,7 @@ private suspend fun buildNonBundledPlugins( json = json, ) - if (isPluginValidationEnabled && plugin.mainModule != "intellij.agent.workbench.plugin") { + if (isPluginValidationEnabled && plugin.mainModule != "intellij.air.plugin") { spanBuilder("plugin validation").use { span -> if (Files.notExists(destFile)) { span.addEvent("doesn't exist, skipped", Attributes.of(AttributeKey.stringKey("path"), destFile.invariantSeparatorsPathString)) diff --git a/platform/problemsView/frontend/intellij.platform.problemsView.frontend.iml b/platform/problemsView/frontend/intellij.platform.problemsView.frontend.iml deleted file mode 100644 index 26559955af65..000000000000 --- a/platform/problemsView/frontend/intellij.platform.problemsView.frontend.iml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - $KOTLIN_BUNDLED$/lib/kotlinx-serialization-compiler-plugin.jar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/plugins/agent-workbench/.gitignore b/plugins/agent-workbench/.gitignore deleted file mode 100644 index 0030ae9b51ae..000000000000 --- a/plugins/agent-workbench/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -*~ -.DS_Store -.idea -.intellijPlatform -.kotlin -.gradle -gradle -build -local.properties diff --git a/plugins/agent-workbench/AGENTS.md b/plugins/agent-workbench/AGENTS.md index 6a5f25fb5f5e..389bdb1f974f 100644 --- a/plugins/agent-workbench/AGENTS.md +++ b/plugins/agent-workbench/AGENTS.md @@ -5,7 +5,7 @@ This file captures development references only. Product/design decisions live in - `pluginId`: `com.intellij.agent.workbench` - Tool window ID: `agent.workbench.sessions` - Tool window title: "Agent Threads" -- Main module: `intellij.agent.workbench.plugin` (plugin.xml) +- Main module: `intellij.air.plugin` (plugin.xml) - Content module: `intellij.agent.workbench.sessions` - Spec format (single source): `../../.ai/spec/SPEC_GUIDE.md` (specs live under `spec/`). - Issue tracker: https://github.com/JetBrains/agent-workbench @@ -34,11 +34,11 @@ Always pass fully-qualified test names (FQN). Simple class names do not match. - Single test class: `./tests.cmd --module intellij.agent.workbench.sessions.tests --test com.intellij.agent.workbench.sessions.AgentSessionCliTest` - Plugin-wired editor/action test: - `./tests.cmd --module intellij.agent.workbench.plugin.tests --test com.intellij.agent.workbench.thread.view.AgentThreadViewEditorServiceTest` + `./tests.cmd --module intellij.air.plugin.tests --test com.intellij.agent.workbench.thread.view.AgentThreadViewEditorServiceTest` - Whole sessions package: `./tests.cmd --module intellij.agent.workbench.sessions.tests --test 'com.intellij.agent.workbench.sessions.*'` - Whole Agent Workbench test suite: - `./tests.cmd --module intellij.agent.workbench.plugin.tests --test com.intellij.agent.workbench.plugin.AgentWorkbenchAllTestsSuite` + `./tests.cmd --module intellij.air.plugin.tests --test com.intellij.air.plugin.AgentWorkbenchAllTestsSuite` Important: keep the `--test` argument quoted (single quotes) so shells like `zsh` do not expand `*` before `tests.cmd` receives it. diff --git a/plugins/agent-workbench/README.md b/plugins/agent-workbench/README.md index 3fb0ae9b815c..caef50a83c57 100644 --- a/plugins/agent-workbench/README.md +++ b/plugins/agent-workbench/README.md @@ -83,7 +83,7 @@ Primary sources of truth: ```text com.intellij.agent.workbench -`- intellij.agent.workbench.plugin plugin wrapper; owns plugin.xml +`- intellij.air.plugin plugin wrapper; owns plugin.xml `- runtime content modules |- lib-agent/* provider/runtime contracts and implementations |- sessions, thread-view, prompt/* app services and user workflows diff --git a/plugins/agent-workbench/ai-review-agents/build.gradle.kts b/plugins/agent-workbench/ai-review-agents/build.gradle.kts deleted file mode 100644 index d5585c65cb48..000000000000 --- a/plugins/agent-workbench/ai-review-agents/build.gradle.kts +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -val ultimateModuleDir = rootProject.file("../../../plugins/agent-workbench/ai-review-agents") - -sourceSets { - main { - java { setSrcDirs(listOf(ultimateModuleDir.resolve("src"))) } - resources { setSrcDirs(listOf(ultimateModuleDir.resolve("resources"))) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -val llmPluginDir: File? = rootProject.findProperty("llmPluginPath")?.toString()?.let { rootProject.file(it) } - ?: rootProject.file("../../../out/deploy/temp/non-bundled-plugins-IU/ml-llm").takeIf { it.isDirectory } - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - bundledModules( - "intellij.platform.vcs", - "intellij.platform.vcs.impl", - ) - bundledPlugins( - "Git4Idea", - ) - } - jetbrainsRuntime() - } - - if (platformLocalPath != null) { - val ideDir = rootProject.file(platformLocalPath) - compileOnly(fileTree(ideDir.resolve("lib")) { - include("intellij.platform.vcs*.jar") - }) - compileOnly(fileTree(ideDir.resolve("plugins/vcs-git/lib")) { include("**/*.jar") }) - } - - if (llmPluginDir != null) { - compileOnly(fileTree(llmPluginDir.resolve("lib")) { include("**/*.jar") }) - } - - implementation(project(":ai-review")) - implementation(project(":prompt-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/ai-review-space/build.gradle.kts b/plugins/agent-workbench/ai-review-space/build.gradle.kts deleted file mode 100644 index 7194514bb3bf..000000000000 --- a/plugins/agent-workbench/ai-review-space/build.gradle.kts +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -val ultimateModuleDir = rootProject.file("../../../plugins/agent-workbench/ai-review-space") - -sourceSets { - main { - java { setSrcDirs(listOf(ultimateModuleDir.resolve("src"))) } - resources { setSrcDirs(listOf(ultimateModuleDir.resolve("resources"))) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -val spacePluginDir: File? = rootProject.findProperty("spacePluginPath")?.toString()?.let { rootProject.file(it) } - ?: platformLocalPath?.let { rootProject.file(it).resolve("plugins/space") }?.takeIf { it.isDirectory } - ?: rootProject.file("../../../out/deploy/dist/plugins/space").takeIf { it.isDirectory } - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - bundledModules( - "intellij.platform.vcs", - "intellij.platform.vcs.impl", - "intellij.platform.collaborationTools", - "intellij.platform.diff", - ) - bundledPlugins( - "Git4Idea", - ) - } - jetbrainsRuntime() - } - - if (platformLocalPath != null) { - val ideDir = rootProject.file(platformLocalPath) - compileOnly(fileTree(ideDir.resolve("lib")) { - include("intellij.platform.vcs*.jar") - include("intellij.platform.collaborationTools*.jar") - include("intellij.platform.diff*.jar") - }) - compileOnly(fileTree(ideDir.resolve("plugins/vcs-git/lib")) { include("**/*.jar") }) - } - - if (spacePluginDir != null) { - compileOnly(fileTree(spacePluginDir.resolve("lib")) { include("**/*.jar") }) - } - - implementation(project(":ai-review")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/ai-review/build.gradle.kts b/plugins/agent-workbench/ai-review/build.gradle.kts deleted file mode 100644 index 731cb652f1e1..000000000000 --- a/plugins/agent-workbench/ai-review/build.gradle.kts +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - if (platformLocalPath == null) { - bundledModules( - "intellij.platform.vcs", - ) - bundledPlugins( - "org.intellij.plugins.markdown", - ) - } - } - - if (platformLocalPath != null) { - val ideDir = rootProject.file(platformLocalPath) - compileOnly(fileTree(ideDir.resolve("lib")) { - include("intellij.platform.vcs*.jar") - }) - compileOnly(fileTree(ideDir.resolve("plugins/markdown/lib")) { include("**/*.jar") }) - } - - implementation(project(":prompt-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/build.gradle.kts b/plugins/agent-workbench/build.gradle.kts deleted file mode 100644 index 6e40858815c7..000000000000 --- a/plugins/agent-workbench/build.gradle.kts +++ /dev/null @@ -1,160 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.intellij.platform.gradle.TestFrameworkType -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion -import java.io.File -import java.util.Properties - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform") - kotlin("plugin.serialization") -} - -// Module JARs must be named after their IntelliJ module ID so that the IDE can resolve content module descriptors -// from lib/modules/.jar. The composedJar task defaults to ..jar which doesn't match. -subprojects { - plugins.withId("org.jetbrains.intellij.platform.module") { - tasks.named("composedJar") { - archiveBaseName.set("intellij.agent.workbench.${project.name.replace('-', '.')}") - } - } -} - -val localProperties = Properties().also { props -> - File(rootDir, "local.properties").takeIf { it.exists() }?.inputStream()?.use(props::load) -} - -fun localProperty(name: String): String? = localProperties.getProperty(name) - -val platformLocalPath: String? = localProperty("platformLocalPath") -val platformVersion = localProperty("platformVersion") ?: "262-SNAPSHOT" - -// Export for subprojects -extra["platformLocalPath"] = platformLocalPath -extra["platformVersion"] = platformVersion - -// Space plugin is required by ai-review-space at runtime. It's not in the Gradle-transformed IDE, -// so resolve it manually and add via localPlugin() to include it in the sandbox. -val spacePluginDir: File? = localProperty("spacePluginPath")?.let { file(it) } - ?: platformLocalPath?.let { file(it).resolve("plugins/space") }?.takeIf { it.isDirectory } - ?: file("../../../out/deploy/dist/plugins/space").takeIf { it.isDirectory } - -extra["spacePluginDir"] = spacePluginDir - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - pluginConfiguration { - name = "Agent Workbench" - version = localProperty("pluginVersion") ?: "0.1.0" - ideaVersion { - sinceBuild = localProperty("pluginSinceBuild") - untilBuild = localProperty("pluginUntilBuild") - } - } - // Disable bytecode instrumentation when using a local IDE build (262.x compiler tools aren't published yet) - instrumentCode = false -} - -sourceSets { - main { - java { - setSrcDirs(emptyList()) - } - resources { - setSrcDirs(listOf("plugin/resources")) - } - } -} - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } - else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - bundledPlugins( - "org.jetbrains.plugins.terminal", - "org.intellij.plugins.markdown", - ) - testFramework(TestFrameworkType.Platform) - testFramework(TestFrameworkType.Bundled) - } - jetbrainsRuntime() - - if (spacePluginDir != null) { - localPlugin(spacePluginDir) - } - - pluginModule(implementation(project(":core"))) - pluginModule(implementation(project(":common"))) - pluginModule(implementation(project(":json"))) - pluginModule(implementation(project(":filewatch"))) - pluginModule(implementation(project(":thread-view"))) - pluginModule(implementation(project(":container"))) - pluginModule(implementation(project(":prompt-core"))) - pluginModule(implementation(project(":prompt-context"))) - pluginModule(implementation(project(":prompt-ui"))) - pluginModule(implementation(project(":prompt-vcs"))) - pluginModule(implementation(project(":prompt-testrunner"))) - pluginModule(implementation(project(":sessions"))) - pluginModule(implementation(project(":sessions-jbcentral"))) - pluginModule(implementation(project(":settings"))) - pluginModule(implementation(project(":sessions-core"))) - pluginModule(implementation(project(":ui"))) - pluginModule(implementation(project(":sessions-actions"))) - pluginModule(implementation(project(":sessions-toolwindow"))) - pluginModule(implementation(project(":sessions-launch-config-backend"))) - pluginModule(implementation(project(":claude-common"))) - pluginModule(implementation(project(":claude-sessions"))) - pluginModule(implementation(project(":codex-common"))) - pluginModule(implementation(project(":codex-thread-view"))) - pluginModule(implementation(project(":codex-ide"))) - pluginModule(implementation(project(":codex-prompt-suggestions"))) - pluginModule(implementation(project(":codex-sessions"))) - pluginModule(implementation(project(":junie-sessions"))) - pluginModule(implementation(project(":opencode-sessions"))) - pluginModule(implementation(project(":terminal-sessions"))) - pluginModule(implementation(project(":ai-review"))) - pluginModule(implementation(project(":ai-review-agents"))) - pluginModule(implementation(project(":ai-review-space"))) - pluginModule(implementation(project(":vcs-merge"))) - } - - // When using local IDE, add bundled plugin JARs directly (bundledPlugins() has a bug with local builds) - if (platformLocalPath != null) { - val ideDir = file(platformLocalPath) - compileOnly(fileTree(ideDir.resolve("plugins/terminal/lib")) { include("**/*.jar") }) - compileOnly(fileTree(ideDir.resolve("plugins/markdown/lib")) { include("**/*.jar") }) - } -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -tasks { - java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 - } - wrapper { - gradleVersion = "8.14.3" - } -} diff --git a/plugins/agent-workbench/claude/awb/build.gradle.kts b/plugins/agent-workbench/claude/awb/build.gradle.kts deleted file mode 100644 index 925cbe7e3fc8..000000000000 --- a/plugins/agent-workbench/claude/awb/build.gradle.kts +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":json")) - implementation(project(":sessions-core")) - implementation(project(":settings")) - implementation(project(":ui")) - runtimeOnly(project(":sessions-actions")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/codex/ide/build.gradle.kts b/plugins/agent-workbench/codex/ide/build.gradle.kts deleted file mode 100644 index 07a6ec3185f1..000000000000 --- a/plugins/agent-workbench/codex/ide/build.gradle.kts +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/codex/prompt-suggestions/build.gradle.kts b/plugins/agent-workbench/codex/prompt-suggestions/build.gradle.kts deleted file mode 100644 index 39c09f323235..000000000000 --- a/plugins/agent-workbench/codex/prompt-suggestions/build.gradle.kts +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } - else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":json")) - implementation(project(":codex-common")) - implementation(project(":prompt-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/codex/thread-view/build.gradle.kts b/plugins/agent-workbench/codex/thread-view/build.gradle.kts deleted file mode 100644 index 227a09757d8b..000000000000 --- a/plugins/agent-workbench/codex/thread-view/build.gradle.kts +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":thread-view")) - implementation(project(":sessions-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/gradle.properties b/plugins/agent-workbench/gradle.properties deleted file mode 100644 index 6ca05740940e..000000000000 --- a/plugins/agent-workbench/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -org.gradle.jvmargs=-Xmx1g \ No newline at end of file diff --git a/plugins/agent-workbench/gradlew b/plugins/agent-workbench/gradlew deleted file mode 100755 index 0262dcbd52b4..000000000000 --- a/plugins/agent-workbench/gradlew +++ /dev/null @@ -1,248 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/b631911858264c0b6e4d6603d677ff5218766cee/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -# This is normally unused -# shellcheck disable=SC2034 -APP_BASE_NAME=${0##*/} -# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - if ! command -v java >/dev/null 2>&1 - then - die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC2039,SC3045 - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, -# and any embedded shellness will be escaped. -# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be -# treated as '${Hostname}' itself on the command line. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/plugins/agent-workbench/gradlew.bat b/plugins/agent-workbench/gradlew.bat deleted file mode 100644 index c4bdd3ab8e3c..000000000000 --- a/plugins/agent-workbench/gradlew.bat +++ /dev/null @@ -1,93 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem -@rem SPDX-License-Identifier: Apache-2.0 -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -@rem This is normally unused -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. 1>&2 -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 -echo. 1>&2 -echo Please set the JAVA_HOME variable in your environment to match the 1>&2 -echo location of your Java installation. 1>&2 - -goto fail - -:execute -@rem Setup the command line - - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/plugins/agent-workbench/lib-agent/common/build.gradle.kts b/plugins/agent-workbench/lib-agent/common/build.gradle.kts deleted file mode 100644 index 682d2af449b4..000000000000 --- a/plugins/agent-workbench/lib-agent/common/build.gradle.kts +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/lib-agent/core/build.gradle.kts b/plugins/agent-workbench/lib-agent/core/build.gradle.kts deleted file mode 100644 index 8ced6ed3d4a4..000000000000 --- a/plugins/agent-workbench/lib-agent/core/build.gradle.kts +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/lib-agent/filewatch/build.gradle.kts b/plugins/agent-workbench/lib-agent/filewatch/build.gradle.kts deleted file mode 100644 index 4ce3f150d8aa..000000000000 --- a/plugins/agent-workbench/lib-agent/filewatch/build.gradle.kts +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation("io.methvin:directory-watcher:0.19.1") -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/lib-agent/json/build.gradle.kts b/plugins/agent-workbench/lib-agent/json/build.gradle.kts deleted file mode 100644 index e70e438ec877..000000000000 --- a/plugins/agent-workbench/lib-agent/json/build.gradle.kts +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":filewatch")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/lib-agent/providers/claude/common/build.gradle.kts b/plugins/agent-workbench/lib-agent/providers/claude/common/build.gradle.kts deleted file mode 100644 index 4de7786bf294..000000000000 --- a/plugins/agent-workbench/lib-agent/providers/claude/common/build.gradle.kts +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":json")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/lib-agent/providers/claude/sessions/build.gradle.kts b/plugins/agent-workbench/lib-agent/providers/claude/sessions/build.gradle.kts deleted file mode 100644 index 40c3749f972f..000000000000 --- a/plugins/agent-workbench/lib-agent/providers/claude/sessions/build.gradle.kts +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":json")) - implementation(project(":filewatch")) - implementation(project(":claude-common")) - implementation(project(":prompt-core")) - implementation(project(":sessions-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/lib-agent/providers/codex/common/build.gradle.kts b/plugins/agent-workbench/lib-agent/providers/codex/common/build.gradle.kts deleted file mode 100644 index 36acb3617ce0..000000000000 --- a/plugins/agent-workbench/lib-agent/providers/codex/common/build.gradle.kts +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") -} - -repositories { - mavenCentral() - google() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":json")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/lib-agent/providers/codex/sessions/build.gradle.kts b/plugins/agent-workbench/lib-agent/providers/codex/sessions/build.gradle.kts deleted file mode 100644 index 5afcfe8e6a51..000000000000 --- a/plugins/agent-workbench/lib-agent/providers/codex/sessions/build.gradle.kts +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":json")) - implementation(project(":filewatch")) - implementation(project(":codex-common")) - implementation(project(":prompt-core")) - implementation(project(":sessions-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/lib-agent/providers/junie/common/build.gradle.kts b/plugins/agent-workbench/lib-agent/providers/junie/common/build.gradle.kts deleted file mode 100644 index 8ced6ed3d4a4..000000000000 --- a/plugins/agent-workbench/lib-agent/providers/junie/common/build.gradle.kts +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/lib-agent/providers/junie/sessions/build.gradle.kts b/plugins/agent-workbench/lib-agent/providers/junie/sessions/build.gradle.kts deleted file mode 100644 index a7879e8e3a5c..000000000000 --- a/plugins/agent-workbench/lib-agent/providers/junie/sessions/build.gradle.kts +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":junie-common")) - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":prompt-core")) - implementation(project(":sessions-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/lib-agent/providers/opencode/sessions/build.gradle.kts b/plugins/agent-workbench/lib-agent/providers/opencode/sessions/build.gradle.kts deleted file mode 100644 index 099987c526f6..000000000000 --- a/plugins/agent-workbench/lib-agent/providers/opencode/sessions/build.gradle.kts +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } - else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":prompt-core")) - implementation(project(":sessions-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/lib-agent/providers/pi/sessions-filewatch/build.gradle.kts b/plugins/agent-workbench/lib-agent/providers/pi/sessions-filewatch/build.gradle.kts deleted file mode 100644 index a731186642ea..000000000000 --- a/plugins/agent-workbench/lib-agent/providers/pi/sessions-filewatch/build.gradle.kts +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } - else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":filewatch")) - implementation(project(":pi-sessions")) - implementation(project(":sessions-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/lib-agent/providers/pi/sessions/build.gradle.kts b/plugins/agent-workbench/lib-agent/providers/pi/sessions/build.gradle.kts deleted file mode 100644 index c6f42155ce92..000000000000 --- a/plugins/agent-workbench/lib-agent/providers/pi/sessions/build.gradle.kts +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } - else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":json")) - implementation(project(":prompt-core")) - implementation(project(":sessions-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/lib-agent/providers/terminal/sessions/build.gradle.kts b/plugins/agent-workbench/lib-agent/providers/terminal/sessions/build.gradle.kts deleted file mode 100644 index 5b6138ca105c..000000000000 --- a/plugins/agent-workbench/lib-agent/providers/terminal/sessions/build.gradle.kts +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } - else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":prompt-core")) - implementation(project(":sessions-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/lib-agent/sessions-core/build.gradle.kts b/plugins/agent-workbench/lib-agent/sessions-core/build.gradle.kts deleted file mode 100644 index 66a7545f99f8..000000000000 --- a/plugins/agent-workbench/lib-agent/sessions-core/build.gradle.kts +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":core")) - implementation(project(":prompt-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/pi/awb/build.gradle.kts b/plugins/agent-workbench/pi/awb/build.gradle.kts deleted file mode 100644 index 9012551f5333..000000000000 --- a/plugins/agent-workbench/pi/awb/build.gradle.kts +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } - else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":core")) - implementation(project(":pi-sessions")) - implementation(project(":sessions")) - implementation(project(":settings")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/plugin-content.yaml b/plugins/agent-workbench/plugin-content.yaml index c56cf4be6c9e..b50cee7ac4d6 100644 --- a/plugins/agent-workbench/plugin-content.yaml +++ b/plugins/agent-workbench/plugin-content.yaml @@ -1,6 +1,6 @@ - name: lib/agent-workbench-sessions.jar modules: - - name: intellij.agent.workbench.plugin + - name: intellij.air.plugin contentModules: - name: intellij.platform.ai.agent.cli - name: intellij.platform.ai.agent.core @@ -10,7 +10,7 @@ - name: intellij.platform.ai.agent.claude.sessions - name: intellij.platform.ai.agent.codex.common - name: intellij.agent.workbench.codex.ide - - name: intellij.agent.workbench.container + - name: intellij.air.container - name: intellij.platform.ai.agent.filewatch - name: intellij.platform.ai.agent.codex.sessions - name: intellij.platform.ai.agent.junie.sessions @@ -32,12 +32,12 @@ - name: intellij.agent.workbench.sessions.actions - name: intellij.agent.workbench.sessions.toolwindow - name: intellij.agent.workbench.engine - - name: intellij.agent.workbench.acp - - name: intellij.agent.workbench.acp.runtime + - name: intellij.air.acp + - name: intellij.air.acp.runtime - name: intellij.agent.workbench -- name: lib/modules/intellij.agent.workbench.container.mcp.jar +- name: lib/modules/intellij.air.container.mcp.jar contentModules: - - name: intellij.agent.workbench.container.mcp -- name: lib/modules/intellij.agent.workbench.container.eel.jar + - name: intellij.air.container.mcp +- name: lib/modules/intellij.air.container.eel.jar contentModules: - - name: intellij.agent.workbench.container.eel + - name: intellij.air.container.eel diff --git a/plugins/agent-workbench/plugin/BUILD.bazel b/plugins/agent-workbench/plugin/BUILD.bazel deleted file mode 100644 index 7aa8f3e54d29..000000000000 --- a/plugins/agent-workbench/plugin/BUILD.bazel +++ /dev/null @@ -1,300 +0,0 @@ -load("@community//build:tests-options.bzl", "jps_test") -load("@rules_jvm//:jvm.bzl", "jvm_library") - -### auto-generated section `build intellij.agent.workbench.plugin` start - -jvm_library( - name = "plugin", - srcs = glob( - [], - allow_empty = True, - ), - module_name = "intellij.agent.workbench.plugin", - resource_strip_prefix = "resources", - resources = glob( - ["resources/**/*"], - ), - visibility = ["//visibility:public"], - runtime_deps = [ - # do not sort, - "//plugins/agent-workbench/lib-agent/cli", - "//plugins/agent-workbench/lib-agent/core", - "//plugins/agent-workbench/lib-agent/common", - "//plugins/agent-workbench/thread-view:agent-workbench-thread-view", - "//plugins/agent-workbench/lib-agent/providers/claude/common", - "//plugins/agent-workbench/lib-agent/providers/codex/common", - "//plugins/agent-workbench/codex/thread-view:agent-workbench-codex-thread-view", - "//plugins/agent-workbench/codex/ide", - "//plugins/agent-workbench/lib-agent/providers/junie/common", - "//plugins/agent-workbench/lib-agent/sessions-core:ai-agent-sessions-core", - "//plugins/agent-workbench/prompt/core", - "//plugins/agent-workbench/prompt/context", - "//plugins/agent-workbench/prompt/ui", - "//plugins/agent-workbench/prompt/vcs", - "//plugins/agent-workbench/prompt/vcs-ui:agent-workbench-prompt-vcs-ui", - "//plugins/agent-workbench/vcs-merge:agent-workbench-vcs-merge", - "//plugins/agent-workbench/prompt/testrunner", - "//plugins/agent-workbench/sessions", - "//plugins/agent-workbench/sessions-actions:agent-workbench-sessions-actions", - "//plugins/agent-workbench/sessions-toolwindow:agent-workbench-sessions-toolwindow", - "//plugins/agent-workbench/lib-agent/providers/codex/sessions", - "//plugins/agent-workbench/lib-agent/providers/claude/sessions", - "//plugins/agent-workbench/claude/awb", - "//plugins/agent-workbench/lib-agent/providers/junie/sessions", - "//plugins/agent-workbench/lib-agent/providers/opencode/sessions", - "//plugins/agent-workbench/lib-agent/providers/pi/sessions", - "//plugins/agent-workbench/pi/awb", - "//plugins/agent-workbench/lib-agent/providers/terminal/sessions", - "//plugins/agent-workbench/sessions-launch-config/backend", - ], -) - -jvm_library( - name = "plugin_test_lib", - testonly = True, - srcs = glob( - [], - allow_empty = True, - ), - module_name = "intellij.agent.workbench.plugin", - visibility = ["//visibility:public"], - runtime_deps = [ - # do not sort, - ":plugin", - "@lib//:kotlin-stdlib", - "//plugins/agent-workbench/lib-agent/cli:cli_test_lib", - "//plugins/agent-workbench/lib-agent/core:core_test_lib", - "//plugins/agent-workbench/lib-agent/common:common_test_lib", - "//plugins/agent-workbench/thread-view:agent-workbench-thread-view_test_lib", - "//plugins/agent-workbench/lib-agent/providers/claude/common:common_test_lib", - "//plugins/agent-workbench/lib-agent/providers/codex/common:common_test_lib", - "//plugins/agent-workbench/codex/thread-view:agent-workbench-codex-thread-view_test_lib", - "//plugins/agent-workbench/codex/ide:ide_test_lib", - "//plugins/agent-workbench/lib-agent/providers/junie/common:common_test_lib", - "//plugins/agent-workbench/lib-agent/sessions-core:ai-agent-sessions-core_test_lib", - "//plugins/agent-workbench/prompt/core:core_test_lib", - "//plugins/agent-workbench/prompt/context:context_test_lib", - "//plugins/agent-workbench/prompt/ui:ui_test_lib", - "//plugins/agent-workbench/prompt/vcs:vcs_test_lib", - "//plugins/agent-workbench/prompt/vcs-ui:agent-workbench-prompt-vcs-ui_test_lib", - "//plugins/agent-workbench/vcs-merge:agent-workbench-vcs-merge_test_lib", - "//plugins/agent-workbench/prompt/testrunner:testrunner_test_lib", - "//plugins/agent-workbench/sessions:sessions_test_lib", - "//plugins/agent-workbench/sessions-actions:agent-workbench-sessions-actions_test_lib", - "//plugins/agent-workbench/sessions-toolwindow:agent-workbench-sessions-toolwindow_test_lib", - "//plugins/agent-workbench/lib-agent/providers/codex/sessions:sessions_test_lib", - "//plugins/agent-workbench/lib-agent/providers/claude/sessions:sessions_test_lib", - "//plugins/agent-workbench/claude/awb:awb_test_lib", - "//plugins/agent-workbench/lib-agent/providers/junie/sessions:sessions_test_lib", - "//plugins/agent-workbench/lib-agent/providers/opencode/sessions:sessions_test_lib", - "//plugins/agent-workbench/lib-agent/providers/pi/sessions:sessions_test_lib", - "//plugins/agent-workbench/pi/awb:awb_test_lib", - "//plugins/agent-workbench/lib-agent/providers/terminal/sessions:sessions_test_lib", - "//plugins/agent-workbench/sessions-launch-config/backend:backend_test_lib", - "//libraries/junit5", - "//libraries/junit5:junit5_test_lib", - "//libraries/junit5-suites", - "//libraries/junit5-suites:junit5-suites_test_lib", - ], -) -### auto-generated section `build intellij.agent.workbench.plugin` end - -### auto-generated section `iml intellij.agent.workbench.plugin` start -exports_files( - [ - "intellij.agent.workbench.plugin.iml", - ], - visibility = ["//visibility:public"], -) -### auto-generated section `iml intellij.agent.workbench.plugin` end - -### auto-generated section `build intellij.agent.workbench.plugin.tests` start - -jvm_library( - name = "agent-workbench-plugin-tests", - srcs = glob( - [], - allow_empty = True, - ), - module_name = "intellij.agent.workbench.plugin.tests", - visibility = ["//visibility:public"], - runtime_deps = [ - # do not sort, - "//plugins/agent-workbench/lib-agent/cli", - "//plugins/agent-workbench/thread-view:agent-workbench-thread-view", - "//plugins/agent-workbench/lib-agent/providers/claude/common", - "//plugins/agent-workbench/lib-agent/providers/codex/common", - "//plugins/agent-workbench/codex/thread-view:agent-workbench-codex-thread-view", - "//plugins/agent-workbench/codex/ide", - "//plugins/agent-workbench/lib-agent/providers/junie/common", - "//plugins/agent-workbench/prompt/core", - "//plugins/agent-workbench/prompt/ui", - "//plugins/agent-workbench/prompt/vcs", - "//plugins/agent-workbench/prompt/vcs-ui:agent-workbench-prompt-vcs-ui", - "//plugins/agent-workbench/prompt/testrunner", - "//plugins/agent-workbench/sessions", - "//plugins/agent-workbench/vcs-merge:agent-workbench-vcs-merge", - "//plugins/agent-workbench/sessions-actions:agent-workbench-sessions-actions", - "//plugins/agent-workbench/sessions-toolwindow:agent-workbench-sessions-toolwindow", - "//plugins/agent-workbench/lib-agent/providers/codex/sessions", - "//plugins/agent-workbench/lib-agent/providers/claude/sessions", - "//plugins/agent-workbench/claude/awb", - "//plugins/agent-workbench/lib-agent/providers/junie/sessions", - "//plugins/agent-workbench/lib-agent/providers/opencode/sessions", - "//plugins/agent-workbench/lib-agent/providers/pi/sessions", - "//plugins/agent-workbench/pi/awb", - "//plugins/agent-workbench/lib-agent/providers/terminal/sessions", - "//plugins/agent-workbench/sessions-launch-config/backend", - ], -) - -jvm_library( - name = "agent-workbench-plugin-tests_test_lib", - testonly = True, - srcs = glob( - [ - "testSrc/**/*.kt", - "testSrc/**/*.java", - "testSrc/**/*.form", - ], - allow_empty = True, - ), - associates = [ - "//plugins/agent-workbench/plugin", - "//plugins/agent-workbench/plugin:plugin_test_lib", - ], - visibility = ["//visibility:public"], - runtime_deps = [ - # do not sort, - ":agent-workbench-plugin-tests", - "//plugins/agent-workbench/lib-agent/cli:cli_test_lib", - "//plugins/agent-workbench/thread-view:agent-workbench-thread-view_test_lib", - "//plugins/agent-workbench/lib-agent/providers/claude/common:common_test_lib", - "//plugins/agent-workbench/lib-agent/providers/codex/common:common_test_lib", - "//plugins/agent-workbench/codex/thread-view:agent-workbench-codex-thread-view_test_lib", - "//plugins/agent-workbench/codex/ide:ide_test_lib", - "//plugins/agent-workbench/lib-agent/providers/junie/common:common_test_lib", - "//plugins/agent-workbench/prompt/core:core_test_lib", - "//plugins/agent-workbench/prompt/ui:ui_test_lib", - "//plugins/agent-workbench/prompt/vcs:vcs_test_lib", - "//plugins/agent-workbench/prompt/vcs-ui:agent-workbench-prompt-vcs-ui_test_lib", - "//plugins/agent-workbench/prompt/testrunner:testrunner_test_lib", - "//plugins/agent-workbench/sessions:sessions_test_lib", - "//plugins/agent-workbench/vcs-merge:agent-workbench-vcs-merge_test_lib", - "//plugins/agent-workbench/sessions-actions:agent-workbench-sessions-actions_test_lib", - "//plugins/agent-workbench/sessions-toolwindow:agent-workbench-sessions-toolwindow_test_lib", - "//plugins/agent-workbench/lib-agent/providers/codex/sessions:sessions_test_lib", - "//plugins/agent-workbench/lib-agent/providers/claude/sessions:sessions_test_lib", - "//plugins/agent-workbench/claude/awb:awb_test_lib", - "//plugins/agent-workbench/lib-agent/providers/junie/sessions:sessions_test_lib", - "//plugins/agent-workbench/lib-agent/providers/opencode/sessions:sessions_test_lib", - "//plugins/agent-workbench/lib-agent/providers/pi/sessions:sessions_test_lib", - "//plugins/agent-workbench/pi/awb:awb_test_lib", - "//plugins/agent-workbench/lib-agent/providers/terminal/sessions:sessions_test_lib", - "//plugins/agent-workbench/sessions-launch-config/backend:backend_test_lib", - ], - deps = [ - # do not sort, - "@lib//:kotlin-stdlib", - "//plugins/agent-workbench/lib-agent/common", - "//plugins/agent-workbench/lib-agent/common:common_test_lib", - "//plugins/agent-workbench/lib-agent/core", - "//plugins/agent-workbench/lib-agent/core:core_test_lib", - "//plugins/agent-workbench/lib-agent/sessions-core:ai-agent-sessions-core", - "//plugins/agent-workbench/lib-agent/sessions-core:ai-agent-sessions-core_test_lib", - "//libraries/assertj-core", - "//libraries/assertj-core:assertj-core_test_lib", - "//libraries/junit5", - "//libraries/junit5:junit5_test_lib", - "//libraries/junit5-suites", - "//libraries/junit5-suites:junit5-suites_test_lib", - "//platform/core-api:core", - "//platform/core-api:core_test_lib", - "//platform/editor-ui-api:editor-ui", - "//platform/editor-ui-api:editor-ui_test_lib", - "//platform/testFramework", - "//platform/testFramework:testFramework_test_lib", - "//platform/testFramework/junit5", - "//platform/testFramework/junit5:junit5_test_lib", - "//plugins/agent-workbench/lib-agent/common:ai-agent-common-tests", - "//plugins/agent-workbench/lib-agent/common:ai-agent-common-tests_test_lib", - "//plugins/agent-workbench/thread-view:agent-workbench-thread-view-tests", - "//plugins/agent-workbench/thread-view:agent-workbench-thread-view-tests_test_lib", - "//plugins/agent-workbench/codex/thread-view:agent-workbench-codex-thread-view-tests", - "//plugins/agent-workbench/codex/thread-view:agent-workbench-codex-thread-view-tests_test_lib", - "//plugins/agent-workbench/lib-agent/providers/claude/sessions:ai-agent-claude-sessions-tests", - "//plugins/agent-workbench/lib-agent/providers/claude/sessions:ai-agent-claude-sessions-tests_test_lib", - "//plugins/agent-workbench/claude/awb:agent-workbench-claude-awb-tests", - "//plugins/agent-workbench/claude/awb:agent-workbench-claude-awb-tests_test_lib", - "//plugins/agent-workbench/codex/ide:agent-workbench-codex-ide-tests", - "//plugins/agent-workbench/codex/ide:agent-workbench-codex-ide-tests_test_lib", - "//plugins/agent-workbench/lib-agent/providers/codex/sessions:ai-agent-codex-sessions-tests", - "//plugins/agent-workbench/lib-agent/providers/codex/sessions:ai-agent-codex-sessions-tests_test_lib", - "//plugins/agent-workbench/lib-agent/providers/junie/sessions:ai-agent-junie-sessions-tests", - "//plugins/agent-workbench/lib-agent/providers/junie/sessions:ai-agent-junie-sessions-tests_test_lib", - "//plugins/agent-workbench/lib-agent/providers/opencode/sessions:ai-agent-opencode-sessions-tests", - "//plugins/agent-workbench/lib-agent/providers/opencode/sessions:ai-agent-opencode-sessions-tests_test_lib", - "//plugins/agent-workbench/lib-agent/providers/pi/sessions:ai-agent-pi-sessions-tests", - "//plugins/agent-workbench/lib-agent/providers/pi/sessions:ai-agent-pi-sessions-tests_test_lib", - "//plugins/agent-workbench/lib-agent/providers/pi/sessions-filewatch:ai-agent-pi-sessions-filewatch-tests", - "//plugins/agent-workbench/lib-agent/providers/pi/sessions-filewatch:ai-agent-pi-sessions-filewatch-tests_test_lib", - "//plugins/agent-workbench/lib-agent/providers/terminal/sessions:ai-agent-terminal-sessions-tests", - "//plugins/agent-workbench/lib-agent/providers/terminal/sessions:ai-agent-terminal-sessions-tests_test_lib", - "//plugins/agent-workbench/prompt/core:agent-workbench-prompt-core-tests", - "//plugins/agent-workbench/prompt/core:agent-workbench-prompt-core-tests_test_lib", - "//plugins/agent-workbench/prompt/ui:agent-workbench-prompt-ui-tests", - "//plugins/agent-workbench/prompt/ui:agent-workbench-prompt-ui-tests_test_lib", - "//plugins/agent-workbench/prompt/vcs:agent-workbench-prompt-vcs-tests", - "//plugins/agent-workbench/prompt/vcs:agent-workbench-prompt-vcs-tests_test_lib", - "//plugins/agent-workbench/prompt/testrunner:agent-workbench-prompt-testrunner-tests", - "//plugins/agent-workbench/prompt/testrunner:agent-workbench-prompt-testrunner-tests_test_lib", - "//plugins/agent-workbench/sessions:agent-workbench-sessions-tests", - "//plugins/agent-workbench/sessions:agent-workbench-sessions-tests_test_lib", - "//plugins/agent-workbench/vcs-merge:agent-workbench-vcs-merge-tests", - "//plugins/agent-workbench/vcs-merge:agent-workbench-vcs-merge-tests_test_lib", - "//plugins/agent-workbench/sessions-actions:agent-workbench-sessions-actions-tests", - "//plugins/agent-workbench/sessions-actions:agent-workbench-sessions-actions-tests_test_lib", - "//plugins/agent-workbench/sessions-toolwindow:agent-workbench-sessions-toolwindow-tests", - "//plugins/agent-workbench/sessions-toolwindow:agent-workbench-sessions-toolwindow-tests_test_lib", - "//plugins/agent-workbench/lib-agent/filewatch:ai-agent-filewatch-tests", - "//plugins/agent-workbench/lib-agent/filewatch:ai-agent-filewatch-tests_test_lib", - "//plugins/agent-workbench/ui:agent-workbench-ui-tests", - "//plugins/agent-workbench/ui:agent-workbench-ui-tests_test_lib", - "//plugins/agent-workbench/lib-agent/cli:ai-agent-cli-tests", - "//plugins/agent-workbench/lib-agent/cli:ai-agent-cli-tests_test_lib", - "//plugins/agent-workbench/codex/prompt-suggestions:agent-workbench-codex-prompt-suggestions-tests", - "//plugins/agent-workbench/codex/prompt-suggestions:agent-workbench-codex-prompt-suggestions-tests_test_lib", - "//plugins/agent-workbench/lib-agent/core:ai-agent-core-tests", - "//plugins/agent-workbench/lib-agent/core:ai-agent-core-tests_test_lib", - "//plugins/agent-workbench/settings:agent-workbench-settings-tests", - "//plugins/agent-workbench/settings:agent-workbench-settings-tests_test_lib", - "//plugins/agent-workbench/sessions-cost:agent-workbench-sessions-cost-tests", - "//plugins/agent-workbench/sessions-cost:agent-workbench-sessions-cost-tests_test_lib", - "//plugins/agent-workbench/lib-agent/providers/codex/common:ai-agent-codex-common-tests", - "//plugins/agent-workbench/lib-agent/providers/codex/common:ai-agent-codex-common-tests_test_lib", - "//plugins/agent-workbench/sessions-launch-config/backend:agent-workbench-sessions-launch-config-backend-tests", - "//plugins/agent-workbench/sessions-launch-config/backend:agent-workbench-sessions-launch-config-backend-tests_test_lib", - "//plugins/agent-workbench/sessions-task-folders:agent-workbench-sessions-task-folders-tests", - "//plugins/agent-workbench/sessions-task-folders:agent-workbench-sessions-task-folders-tests_test_lib", - "//plugins/agent-workbench/engine:agent-workbench-engine-tests", - "//plugins/agent-workbench/engine:agent-workbench-engine-tests_test_lib", - ], -) -### auto-generated section `build intellij.agent.workbench.plugin.tests` end - -### auto-generated section `iml intellij.agent.workbench.plugin.tests` start -exports_files( - [ - "intellij.agent.workbench.plugin.tests.iml", - ], - visibility = ["//visibility:public"], -) -### auto-generated section `iml intellij.agent.workbench.plugin.tests` end - -### auto-generated section `test intellij.agent.workbench.plugin.tests` start - -jps_test( - name = "agent-workbench-plugin-tests_test", - runtime_deps = [":agent-workbench-plugin-tests_test_lib"], -) -### auto-generated section `test intellij.agent.workbench.plugin.tests` end diff --git a/plugins/agent-workbench/plugin/intellij.agent.workbench.plugin.iml b/plugins/agent-workbench/plugin/intellij.agent.workbench.plugin.iml deleted file mode 100644 index 98e64a8e067b..000000000000 --- a/plugins/agent-workbench/plugin/intellij.agent.workbench.plugin.iml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - $KOTLIN_BUNDLED$/lib/kotlinx-serialization-compiler-plugin.jar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/plugins/agent-workbench/plugin/intellij.agent.workbench.plugin.tests.iml b/plugins/agent-workbench/plugin/intellij.agent.workbench.plugin.tests.iml deleted file mode 100644 index 3a705a523ef8..000000000000 --- a/plugins/agent-workbench/plugin/intellij.agent.workbench.plugin.tests.iml +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - $KOTLIN_BUNDLED$/lib/kotlinx-serialization-compiler-plugin.jar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/plugins/agent-workbench/plugin/plugin-content.yaml b/plugins/agent-workbench/plugin/plugin-content.yaml deleted file mode 100644 index afadc91f2bf1..000000000000 --- a/plugins/agent-workbench/plugin/plugin-content.yaml +++ /dev/null @@ -1,158 +0,0 @@ -- name: lib/agent-workbench-plugin.jar - modules: - - name: intellij.agent.workbench.plugin -- name: lib/modules/intellij.agent.workbench.acp.jar - contentModules: - - name: intellij.agent.workbench.acp -- name: lib/modules/intellij.agent.workbench.acp.runtime.jar - contentModules: - - name: intellij.agent.workbench.acp.runtime -- name: lib/modules/intellij.agent.workbench.ai.code.review.integration.jar - contentModules: - - name: intellij.agent.workbench.ai.code.review.integration -- name: lib/modules/intellij.agent.workbench.ai.review.agents.jar - contentModules: - - name: intellij.agent.workbench.ai.review.agents -- name: lib/modules/intellij.agent.workbench.ai.review.jar - contentModules: - - name: intellij.agent.workbench.ai.review -- name: lib/modules/intellij.agent.workbench.ai.review.llm.plugin.integration.jar - contentModules: - - name: intellij.agent.workbench.ai.review.llm.plugin.integration -- name: lib/modules/intellij.agent.workbench.ai.review.space.jar - contentModules: - - name: intellij.agent.workbench.ai.review.space -- name: lib/modules/intellij.agent.workbench.claude.awb.jar - contentModules: - - name: intellij.agent.workbench.claude.awb -- name: lib/modules/intellij.agent.workbench.codex.ide.jar - contentModules: - - name: intellij.agent.workbench.codex.ide -- name: lib/modules/intellij.agent.workbench.codex.prompt.suggestions.jar - contentModules: - - name: intellij.agent.workbench.codex.prompt.suggestions -- name: lib/modules/intellij.agent.workbench.codex.thread.view.jar - contentModules: - - name: intellij.agent.workbench.codex.thread.view -- name: lib/modules/intellij.agent.workbench.container.eel.jar - contentModules: - - name: intellij.agent.workbench.container.eel -- name: lib/modules/intellij.agent.workbench.container.jar - contentModules: - - name: intellij.agent.workbench.container -- name: lib/modules/intellij.agent.workbench.container.mcp.jar - contentModules: - - name: intellij.agent.workbench.container.mcp - library: io.modelcontextprotocol.kotlin.sdk - files: - - name: $MAVEN_REPOSITORY$/io/modelcontextprotocol/kotlin-sdk-jvm/0/kotlin-sdk-jvm-0.jar - - name: $MAVEN_REPOSITORY$/io/modelcontextprotocol/kotlin-sdk-client-jvm/0/kotlin-sdk-client-jvm-0.jar - - name: $MAVEN_REPOSITORY$/io/modelcontextprotocol/kotlin-sdk-server-jvm/0/kotlin-sdk-server-jvm-0.jar - - name: $MAVEN_REPOSITORY$/io/modelcontextprotocol/kotlin-sdk-core-jvm/0/kotlin-sdk-core-jvm-0.jar - reason: <- intellij.agent.workbench.container.mcp -- name: lib/modules/intellij.agent.workbench.engine.jar - contentModules: - - name: intellij.agent.workbench.engine -- name: lib/modules/intellij.agent.workbench.pi.awb.jar - contentModules: - - name: intellij.agent.workbench.pi.awb -- name: lib/modules/intellij.agent.workbench.prompt.context.jar - contentModules: - - name: intellij.agent.workbench.prompt.context -- name: lib/modules/intellij.agent.workbench.prompt.core.jar - contentModules: - - name: intellij.agent.workbench.prompt.core -- name: lib/modules/intellij.agent.workbench.prompt.testrunner.jar - contentModules: - - name: intellij.agent.workbench.prompt.testrunner -- name: lib/modules/intellij.agent.workbench.prompt.ui.jar - contentModules: - - name: intellij.agent.workbench.prompt.ui -- name: lib/modules/intellij.agent.workbench.prompt.vcs.jar - contentModules: - - name: intellij.agent.workbench.prompt.vcs -- name: lib/modules/intellij.agent.workbench.prompt.vcs.ui.jar - contentModules: - - name: intellij.agent.workbench.prompt.vcs.ui -- name: lib/modules/intellij.agent.workbench.sessions.actions.jar - contentModules: - - name: intellij.agent.workbench.sessions.actions -- name: lib/modules/intellij.agent.workbench.sessions.cost.jar - contentModules: - - name: intellij.agent.workbench.sessions.cost -- name: lib/modules/intellij.agent.workbench.sessions.jar - contentModules: - - name: intellij.agent.workbench.sessions -- name: lib/modules/intellij.agent.workbench.sessions.jbcentral.jar - contentModules: - - name: intellij.agent.workbench.sessions.jbcentral -- name: lib/modules/intellij.agent.workbench.sessions.launch.config.backend.jar - contentModules: - - name: intellij.agent.workbench.sessions.launch.config.backend -- name: lib/modules/intellij.agent.workbench.sessions.toolwindow.jar - contentModules: - - name: intellij.agent.workbench.sessions.toolwindow -- name: lib/modules/intellij.agent.workbench.settings.jar - contentModules: - - name: intellij.agent.workbench.settings -- name: lib/modules/intellij.agent.workbench.thread.view.jar - contentModules: - - name: intellij.agent.workbench.thread.view -- name: lib/modules/intellij.agent.workbench.ui.jar - contentModules: - - name: intellij.agent.workbench.ui -- name: lib/modules/intellij.agent.workbench.vcs.merge.jar - contentModules: - - name: intellij.agent.workbench.vcs.merge -- name: lib/modules/intellij.platform.ai.agent.claude.common.jar - contentModules: - - name: intellij.platform.ai.agent.claude.common -- name: lib/modules/intellij.platform.ai.agent.claude.sessions.jar - contentModules: - - name: intellij.platform.ai.agent.claude.sessions -- name: lib/modules/intellij.platform.ai.agent.cli.jar - contentModules: - - name: intellij.platform.ai.agent.cli -- name: lib/modules/intellij.platform.ai.agent.codex.common.jar - contentModules: - - name: intellij.platform.ai.agent.codex.common -- name: lib/modules/intellij.platform.ai.agent.codex.sessions.jar - contentModules: - - name: intellij.platform.ai.agent.codex.sessions - libraries: - night-config-toml: - - name: $MAVEN_REPOSITORY$/com/electronwill/night-config/toml/3/toml-3.jar - - name: $MAVEN_REPOSITORY$/com/electronwill/night-config/core/3/core-3.jar -- name: lib/modules/intellij.platform.ai.agent.common.jar - contentModules: - - name: intellij.platform.ai.agent.common -- name: lib/modules/intellij.platform.ai.agent.core.jar - contentModules: - - name: intellij.platform.ai.agent.core -- name: lib/modules/intellij.platform.ai.agent.filewatch.jar - contentModules: - - name: intellij.platform.ai.agent.filewatch -- name: lib/modules/intellij.platform.ai.agent.json.jar - contentModules: - - name: intellij.platform.ai.agent.json -- name: lib/modules/intellij.platform.ai.agent.junie.common.jar - contentModules: - - name: intellij.platform.ai.agent.junie.common -- name: lib/modules/intellij.platform.ai.agent.junie.sessions.jar - contentModules: - - name: intellij.platform.ai.agent.junie.sessions -- name: lib/modules/intellij.platform.ai.agent.opencode.sessions.jar - contentModules: - - name: intellij.platform.ai.agent.opencode.sessions -- name: lib/modules/intellij.platform.ai.agent.pi.sessions.filewatch.jar - contentModules: - - name: intellij.platform.ai.agent.pi.sessions.filewatch -- name: lib/modules/intellij.platform.ai.agent.pi.sessions.jar - contentModules: - - name: intellij.platform.ai.agent.pi.sessions -- name: lib/modules/intellij.platform.ai.agent.sessions.core.jar - contentModules: - - name: intellij.platform.ai.agent.sessions.core -- name: lib/modules/intellij.platform.ai.agent.terminal.sessions.jar - contentModules: - - name: intellij.platform.ai.agent.terminal.sessions \ No newline at end of file diff --git a/plugins/agent-workbench/plugin/resources/META-INF/plugin.xml b/plugins/agent-workbench/plugin/resources/META-INF/plugin.xml deleted file mode 100644 index ea86f2d39b02..000000000000 --- a/plugins/agent-workbench/plugin/resources/META-INF/plugin.xml +++ /dev/null @@ -1,83 +0,0 @@ - - com.intellij.agent.workbench - Agent Workbench - -
  • Quick Launch — press Ctrl Ctrl from anywhere to start a new task or continue an existing one. Your current selection, file, and symbol are attached automatically.
  • -
  • Launch Profiles — bundle provider, model, reasoning effort, and launch mode into reusable presets (Standard, Full Auto, Brave Mode, or your own) and pick a cheaper, faster, or more careful setup per task without changing your default.
  • -
  • AI Review — hold Alt/Option and press Ctrl twice to review local changes or commits with AI and catch bugs, security issues, and style problems before they reach the main branch.
  • -
  • All Sessions in One Place — browse, reopen, and resume AI sessions across providers, grouped by project.
  • -
  • Terminal Sessions — open regular terminal shells from the same launcher and track them alongside your agent threads; reopen, rename, and archive them just like agent sessions.
  • -
  • Persistent Agent Thread Views — each session opens in its own editor view and survives IDE restarts.
  • -
  • Separate Window Mode — run Agent Thread View in a dedicated frame so you can work on code and manage tasks side by side.
  • -
  • Automatic Context — editor selections, VCS changes, project-view selections, and test results are collected and sent with your prompt so the agent has the context it needs.
  • -
  • Context from UI — click any IDE component (tool window, editor, panel) to screenshot it and attach the image as visual context for the agent.
  • -
  • Context from Screen — drag to select any screen area and capture it as a screenshot to share with the agent, even outside the IDE.
  • - - ]]>
    - - Vladimir Krivosheev - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    diff --git a/plugins/agent-workbench/plugin/resources/META-INF/pluginIcon.svg b/plugins/agent-workbench/plugin/resources/META-INF/pluginIcon.svg deleted file mode 100644 index 8099cd914f84..000000000000 --- a/plugins/agent-workbench/plugin/resources/META-INF/pluginIcon.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/plugins/agent-workbench/plugin/testSrc/AgentWorkbenchAddToAgentContextActionRegistrationTest.kt b/plugins/agent-workbench/plugin/testSrc/AgentWorkbenchAddToAgentContextActionRegistrationTest.kt deleted file mode 100644 index 135374e22802..000000000000 --- a/plugins/agent-workbench/plugin/testSrc/AgentWorkbenchAddToAgentContextActionRegistrationTest.kt +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.agent.workbench.plugin - -import com.intellij.openapi.actionSystem.ActionGroup -import com.intellij.openapi.actionSystem.ActionManager -import com.intellij.testFramework.TestActionEvent -import com.intellij.testFramework.junit5.TestApplication -import org.junit.jupiter.api.Assertions.assertNotNull -import org.junit.jupiter.api.Assertions.assertTrue -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.Timeout -import java.util.concurrent.TimeUnit - -@TestApplication -@Timeout(value = 2, unit = TimeUnit.MINUTES) -class AgentWorkbenchAddToAgentContextActionRegistrationTest { - @Test - fun registersAddToAgentContextActionInSupportedPopupGroups() { - val actionManager = ActionManager.getInstance() - - assertNotNull(actionManager.getAction(ADD_TO_AGENT_CONTEXT_ACTION_ID)) - assertActionGroupContains(actionManager, "EditorPopupMenu") - assertActionGroupContains(actionManager, "ProjectViewPopupMenu") - assertActionGroupContains(actionManager, "EditorTabPopupMenu") - assertActionGroupContains(actionManager, "ConsoleEditorPopupMenu") - assertActionGroupContains(actionManager, "TestTreePopupMenu") - assertActionGroupContains(actionManager, "ChangesViewPopupMenu") - assertActionGroupContains(actionManager, "Vcs.Log.ContextMenu") - assertActionGroupContains(actionManager, "Vcs.Log.ChangesBrowser.Popup") - } - - private fun assertActionGroupContains(actionManager: ActionManager, groupId: String) { - val group = actionManager.getAction(groupId) - assertTrue(group is ActionGroup, "Action group '$groupId' is not registered") - - val childIds = (group as ActionGroup) - .getChildren(TestActionEvent.createTestEvent()) - .mapNotNull { action -> actionManager.getId(action) } - assertTrue( - ADD_TO_AGENT_CONTEXT_ACTION_ID in childIds, - "Action group '$groupId' does not contain '$ADD_TO_AGENT_CONTEXT_ACTION_ID': $childIds", - ) - } - - private companion object { - private const val ADD_TO_AGENT_CONTEXT_ACTION_ID = "AgentWorkbenchPrompt.AddToAgentContext" - } -} diff --git a/plugins/agent-workbench/plugin/testSrc/AgentWorkbenchAllTestsSuite.kt b/plugins/agent-workbench/plugin/testSrc/AgentWorkbenchAllTestsSuite.kt deleted file mode 100644 index edeef2330a0b..000000000000 --- a/plugins/agent-workbench/plugin/testSrc/AgentWorkbenchAllTestsSuite.kt +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.agent.workbench.plugin - -import org.junit.platform.suite.api.SelectPackages -import org.junit.platform.suite.api.Suite - -@Suite -@SelectPackages( - "com.intellij.platform.ai.agent.common", - "com.intellij.agent.workbench.thread.view", - "com.intellij.platform.ai.agent.claude.sessions", - "com.intellij.agent.workbench.codex.ide", - "com.intellij.platform.ai.agent.codex.sessions", - "com.intellij.platform.ai.agent.junie.sessions", - "com.intellij.agent.workbench.prompt.core", - "com.intellij.agent.workbench.prompt.ui", - "com.intellij.agent.workbench.prompt.vcs", - "com.intellij.agent.workbench.prompt.testrunner", - "com.intellij.agent.workbench.sessions", - "com.intellij.agent.workbench.sessions.launch.config.backend", - "com.intellij.agent.workbench.vcs.merge", -) -class AgentWorkbenchAllTestsSuite diff --git a/plugins/agent-workbench/plugin/testSrc/AgentWorkbenchProviderDescriptorKeysTest.kt b/plugins/agent-workbench/plugin/testSrc/AgentWorkbenchProviderDescriptorKeysTest.kt deleted file mode 100644 index d4a7d6564247..000000000000 --- a/plugins/agent-workbench/plugin/testSrc/AgentWorkbenchProviderDescriptorKeysTest.kt +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.agent.workbench.plugin - -import com.intellij.platform.ai.agent.core.session.AgentSessionProvider -import com.intellij.platform.ai.agent.sessions.core.providers.AgentSessionProviderDescriptor -import com.intellij.platform.ai.agent.sessions.core.providers.AgentSessionProviders -import com.intellij.testFramework.junit5.TestApplication -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertNotNull -import org.junit.jupiter.api.Assertions.assertNull -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.Timeout -import java.util.concurrent.TimeUnit - -/** - * Pins the bundle keys that built-in providers expose for the New Thread UI. - * Catches silent regressions where a future descriptor edit changes which key is referenced. - * Only descriptor-level constants are pinned here; resolved bundle messages are exercised by the - * sessions-actions tests that already build action presentations from the same keys. - */ -@TestApplication -@Timeout(value = 2, unit = TimeUnit.MINUTES) -class AgentWorkbenchProviderDescriptorKeysTest { - @Test - fun codexExposesGenericQuickStartKeys() { - val descriptor = descriptorFor(AgentSessionProvider.from("codex")) - assertEquals("toolwindow.action.new.session.codex", descriptor.newSessionLabelKey) - assertEquals("toolwindow.action.new.session.codex", descriptor.quickStartLabelKey) - assertEquals("action.AgentWorkbenchSessions.NewThreadQuick.text", descriptor.quickStartActionTextKey) - assertEquals("action.AgentWorkbenchSessions.NewThreadQuick.description", descriptor.quickStartActionDescriptionKey) - assertNull(descriptor.quickStartActionTargetDescriptionKey) - assertEquals("toolwindow.action.new.thread", descriptor.newSessionTitleKey) - } - - @Test - fun claudeExposesGenericQuickStartKeys() { - val descriptor = descriptorFor(AgentSessionProvider.from("claude")) - assertEquals("toolwindow.action.new.session.claude", descriptor.newSessionLabelKey) - assertEquals("toolwindow.action.new.session.claude", descriptor.quickStartLabelKey) - assertEquals("action.AgentWorkbenchSessions.NewThreadQuick.text", descriptor.quickStartActionTextKey) - assertEquals("action.AgentWorkbenchSessions.NewThreadQuick.description", descriptor.quickStartActionDescriptionKey) - assertNull(descriptor.quickStartActionTargetDescriptionKey) - assertEquals("toolwindow.action.new.thread", descriptor.newSessionTitleKey) - } - - @Test - fun junieExposesGenericQuickStartKeys() { - val descriptor = descriptorFor(AgentSessionProvider.from("junie")) - assertEquals("toolwindow.action.new.session.junie", descriptor.newSessionLabelKey) - assertEquals("toolwindow.action.new.session.junie", descriptor.quickStartLabelKey) - assertEquals("action.AgentWorkbenchSessions.NewThreadQuick.text", descriptor.quickStartActionTextKey) - assertEquals("action.AgentWorkbenchSessions.NewThreadQuick.description", descriptor.quickStartActionDescriptionKey) - assertNull(descriptor.quickStartActionTargetDescriptionKey) - assertEquals("toolwindow.action.new.thread", descriptor.newSessionTitleKey) - } - - @Test - fun terminalExposesTerminalSpecificQuickStartKeys() { - val descriptor = descriptorFor(AgentSessionProvider.from("terminal")) - assertEquals("toolwindow.action.new.session.terminal", descriptor.newSessionLabelKey) - assertEquals("action.AgentWorkbenchSessions.NewTerminalSessionQuick.text", descriptor.quickStartActionTextKey) - assertEquals("action.AgentWorkbenchSessions.NewTerminalSessionQuick.description", descriptor.quickStartActionDescriptionKey) - assertEquals("action.AgentWorkbenchSessions.NewTerminalSessionQuick.target.description", descriptor.quickStartActionTargetDescriptionKey) - assertEquals("toolwindow.action.new.session.terminal.title", descriptor.newSessionTitleKey) - } - - private fun descriptorFor(provider: AgentSessionProvider): AgentSessionProviderDescriptor { - val descriptor = AgentSessionProviders.find(provider) - assertNotNull(descriptor) { "Provider ${provider.value} not registered" } - return descriptor!! - } -} diff --git a/plugins/agent-workbench/plugin/testSrc/AgentWorkbenchProviderRegistrationTest.kt b/plugins/agent-workbench/plugin/testSrc/AgentWorkbenchProviderRegistrationTest.kt deleted file mode 100644 index 7232f6f295cd..000000000000 --- a/plugins/agent-workbench/plugin/testSrc/AgentWorkbenchProviderRegistrationTest.kt +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.agent.workbench.plugin - -import com.intellij.platform.ai.agent.core.session.AgentSessionProvider -import com.intellij.platform.ai.agent.sessions.core.providers.AgentSessionProviders -import com.intellij.platform.ai.agent.sessions.core.providers.buildAgentSessionProviderMenuModel -import com.intellij.testFramework.junit5.TestApplication -import org.junit.jupiter.api.Assertions.assertFalse -import org.junit.jupiter.api.Assertions.assertTrue -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.Timeout -import java.util.concurrent.TimeUnit - -@TestApplication -@Timeout(value = 2, unit = TimeUnit.MINUTES) -class AgentWorkbenchProviderRegistrationTest { - @Test - fun builtInProvidersAreRegisteredForProviderMenus() { - val providers = AgentSessionProviders.allProviders() - val registeredProviderIds = providers.map { it.provider } - - assertTrue(AgentSessionProvider.from("codex") in registeredProviderIds) - assertTrue(AgentSessionProvider.from("claude") in registeredProviderIds) - assertTrue(AgentSessionProvider.from("junie") in registeredProviderIds) - assertTrue(AgentSessionProvider.from("opencode") in registeredProviderIds) - assertTrue(AgentSessionProvider.from("pi") in registeredProviderIds) - assertTrue(AgentSessionProvider.from("terminal") in registeredProviderIds) - - val standardMenuProviders = buildAgentSessionProviderMenuModel( - providers, - providers.associate { it.provider to true }, - ).standardItems.map { it.bridge.provider } - assertTrue(AgentSessionProvider.from("junie") in standardMenuProviders) - assertTrue(AgentSessionProvider.from("opencode") in standardMenuProviders) - assertTrue(AgentSessionProvider.from("pi") in standardMenuProviders) - - val yoloMenuProviders = buildAgentSessionProviderMenuModel( - providers, - providers.associate { it.provider to true }, - ).yoloItems.map { it.bridge.provider } - assertFalse(AgentSessionProvider.from("opencode") in yoloMenuProviders) - } -} diff --git a/plugins/agent-workbench/plugin/testSrc/AgentWorkbenchProviderStructureTest.kt b/plugins/agent-workbench/plugin/testSrc/AgentWorkbenchProviderStructureTest.kt deleted file mode 100644 index 3dd2569c49f4..000000000000 --- a/plugins/agent-workbench/plugin/testSrc/AgentWorkbenchProviderStructureTest.kt +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -package com.intellij.agent.workbench.plugin - -import com.intellij.openapi.extensions.ExtensionPointName -import com.intellij.platform.ai.agent.sessions.core.providers.AgentSessionProviderDescriptor -import com.intellij.testFramework.junit5.TestApplication -import org.assertj.core.api.Assertions.assertThat -import org.junit.jupiter.api.Assertions.assertNotNull -import org.junit.jupiter.api.Assertions.assertTrue -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.Timeout -import java.util.concurrent.TimeUnit - -@TestApplication -@Timeout(value = 2, unit = TimeUnit.MINUTES) -class AgentWorkbenchProviderStructureTest { - @Test - fun sessionProviderExtensionIdsMatchDescriptorProviderIds() { - val registeredIds = LinkedHashSet() - - SESSION_PROVIDER_EP.filterableLazySequence().forEach { extension -> - val extensionId = extension.id - assertNotNull(extensionId) { - "sessionProvider registration ${extension.implementationClassName} must declare an XML id" - } - - val descriptor = extension.instance - assertNotNull(descriptor) { - "sessionProvider registration $extensionId (${extension.implementationClassName}) did not instantiate" - } - - registeredIds += extensionId!! - assertThat(extensionId) - .describedAs("sessionProvider XML id must match descriptor.provider for ${extension.implementationClassName}") - .isEqualTo(descriptor!!.provider.value) - } - - for (providerId in BUILT_IN_PROVIDER_IDS) { - assertTrue(providerId in registeredIds, "Built-in session provider '$providerId' is not registered") - } - } -} - -private val SESSION_PROVIDER_EP: ExtensionPointName = - ExtensionPointName("com.intellij.agent.workbench.sessionProvider") - -private val BUILT_IN_PROVIDER_IDS = setOf( - "codex", - "claude", - "junie", - "opencode", - "pi", - "terminal", -) diff --git a/plugins/agent-workbench/prompt/context/build.gradle.kts b/plugins/agent-workbench/prompt/context/build.gradle.kts deleted file mode 100644 index 07a6ec3185f1..000000000000 --- a/plugins/agent-workbench/prompt/context/build.gradle.kts +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/prompt/core/build.gradle.kts b/plugins/agent-workbench/prompt/core/build.gradle.kts deleted file mode 100644 index 524b513a254d..000000000000 --- a/plugins/agent-workbench/prompt/core/build.gradle.kts +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/prompt/testrunner/build.gradle.kts b/plugins/agent-workbench/prompt/testrunner/build.gradle.kts deleted file mode 100644 index 46b44da88ed9..000000000000 --- a/plugins/agent-workbench/prompt/testrunner/build.gradle.kts +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":prompt-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/prompt/ui/build.gradle.kts b/plugins/agent-workbench/prompt/ui/build.gradle.kts deleted file mode 100644 index e123f3bca776..000000000000 --- a/plugins/agent-workbench/prompt/ui/build.gradle.kts +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - if (platformLocalPath == null) { - bundledPlugins("org.intellij.plugins.markdown") - } - } - - if (platformLocalPath != null) { - val ideDir = rootProject.file(platformLocalPath) - compileOnly(fileTree(ideDir.resolve("plugins/markdown/lib")) { include("**/*.jar") }) - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":prompt-core")) - implementation(project(":settings")) - implementation(project(":sessions-core")) - implementation(project(":ui")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/prompt/vcs/build.gradle.kts b/plugins/agent-workbench/prompt/vcs/build.gradle.kts deleted file mode 100644 index da63fd8d703f..000000000000 --- a/plugins/agent-workbench/prompt/vcs/build.gradle.kts +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - if (platformLocalPath == null) { - bundledModules( - "intellij.platform.vcs", - "intellij.platform.vcs.impl.shared", - "intellij.platform.vcs.log", - "intellij.platform.vcs.log.impl", - "intellij.platform.vcs.log.graph", - ) - } - } - - if (platformLocalPath != null) { - val ideDir = rootProject.file(platformLocalPath) - compileOnly(fileTree(ideDir.resolve("lib")) { - include("intellij.platform.vcs*.jar", "intellij.platform.lvcs*.jar") - }) - } - - implementation(project(":prompt-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/sessions-actions/build.gradle.kts b/plugins/agent-workbench/sessions-actions/build.gradle.kts deleted file mode 100644 index 346f2ad8523d..000000000000 --- a/plugins/agent-workbench/sessions-actions/build.gradle.kts +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":prompt-core")) - implementation(project(":settings")) - implementation(project(":sessions-core")) - implementation(project(":ui")) - implementation(project(":thread-view")) - implementation(project(":sessions")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/sessions-cost/build.gradle.kts b/plugins/agent-workbench/sessions-cost/build.gradle.kts deleted file mode 100644 index 9e936507e204..000000000000 --- a/plugins/agent-workbench/sessions-cost/build.gradle.kts +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":sessions-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/sessions-jbcentral/build.gradle.kts b/plugins/agent-workbench/sessions-jbcentral/build.gradle.kts deleted file mode 100644 index da8ac83bfa29..000000000000 --- a/plugins/agent-workbench/sessions-jbcentral/build.gradle.kts +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":sessions")) - implementation(project(":settings")) - implementation(project(":sessions-core")) - implementation(project(":ui")) - runtimeOnly(project(":sessions-actions")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/sessions-launch-config/backend/build.gradle.kts b/plugins/agent-workbench/sessions-launch-config/backend/build.gradle.kts deleted file mode 100644 index 3b3756a93d41..000000000000 --- a/plugins/agent-workbench/sessions-launch-config/backend/build.gradle.kts +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - if (platformLocalPath == null) { - bundledModules("intellij.platform.backend") - } - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":sessions-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/sessions-toolwindow/build.gradle.kts b/plugins/agent-workbench/sessions-toolwindow/build.gradle.kts deleted file mode 100644 index fa8d885d3d58..000000000000 --- a/plugins/agent-workbench/sessions-toolwindow/build.gradle.kts +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":prompt-core")) - implementation(project(":sessions-core")) - implementation(project(":ui")) - implementation(project(":thread-view")) - implementation(project(":sessions")) - implementation(project(":sessions-jbcentral")) - implementation(project(":sessions-actions")) - implementation(project(":settings")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/sessions/build.gradle.kts b/plugins/agent-workbench/sessions/build.gradle.kts deleted file mode 100644 index 5ce04bc1eb15..000000000000 --- a/plugins/agent-workbench/sessions/build.gradle.kts +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":prompt-core")) - implementation(project(":settings")) - implementation(project(":sessions-core")) - implementation(project(":ui")) - implementation(project(":thread-view")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/settings.gradle.kts b/plugins/agent-workbench/settings.gradle.kts deleted file mode 100644 index ae1a84ca2773..000000000000 --- a/plugins/agent-workbench/settings.gradle.kts +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. - -buildscript { - repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - gradlePluginPortal() - } - - pluginManagement { - repositories { - maven("https://oss.sonatype.org/content/repositories/snapshots/") - gradlePluginPortal() - } - plugins { - id("java") - id("org.jetbrains.kotlin.jvm") version "2.2.20" - kotlin("plugin.serialization") version "2.2.20" - id("org.jetbrains.intellij.platform") version "2.9.0" - id("org.jetbrains.intellij.platform.settings") version "2.9.0" - id("org.jetbrains.intellij.platform.module") version "2.9.0" - } - } -} - -rootProject.name = "agent-workbench" - -include(":common") -include(":core") -include(":json") -include(":filewatch") -include(":cli") -include(":thread-view") -include(":container") -include(":prompt-core") -include(":prompt-context") -include(":prompt-ui") -include(":prompt-vcs") -include(":prompt-testrunner") -include(":sessions") -include(":sessions-jbcentral") -include(":settings") -include(":sessions-core") -include(":sessions-cost") -include(":ui") -include(":sessions-actions") -include(":sessions-toolwindow") -include(":sessions-launch-config-backend") -include(":claude-common") -include(":claude-awb") -include(":claude-sessions") -include(":codex-common") -include(":codex-thread-view") -include(":codex-ide") -include(":codex-prompt-suggestions") -include(":codex-sessions") -include(":junie-common") -include(":junie-sessions") -include(":opencode-sessions") -include(":pi-awb") -include(":pi-sessions") -include(":pi-sessions-filewatch") -include(":terminal-sessions") -include(":ai-review") -include(":ai-review-agents") -include(":ai-review-space") -include(":vcs-merge") - -project(":prompt-core").projectDir = file("prompt/core") -project(":prompt-context").projectDir = file("prompt/context") -project(":prompt-ui").projectDir = file("prompt/ui") -project(":prompt-vcs").projectDir = file("prompt/vcs") -project(":prompt-testrunner").projectDir = file("prompt/testrunner") -project(":common").projectDir = file("lib-agent/common") -project(":core").projectDir = file("lib-agent/core") -project(":json").projectDir = file("lib-agent/json") -project(":filewatch").projectDir = file("lib-agent/filewatch") -project(":cli").projectDir = file("lib-agent/cli") -project(":sessions-core").projectDir = file("lib-agent/sessions-core") -project(":sessions-launch-config-backend").projectDir = file("sessions-launch-config/backend") -project(":claude-common").projectDir = file("lib-agent/providers/claude/common") -project(":claude-awb").projectDir = file("claude/awb") -project(":claude-sessions").projectDir = file("lib-agent/providers/claude/sessions") -project(":codex-common").projectDir = file("lib-agent/providers/codex/common") -project(":codex-thread-view").projectDir = file("codex/thread-view") -project(":codex-ide").projectDir = file("codex/ide") -project(":codex-prompt-suggestions").projectDir = file("codex/prompt-suggestions") -project(":codex-sessions").projectDir = file("lib-agent/providers/codex/sessions") -project(":junie-common").projectDir = file("lib-agent/providers/junie/common") -project(":junie-sessions").projectDir = file("lib-agent/providers/junie/sessions") -project(":opencode-sessions").projectDir = file("lib-agent/providers/opencode/sessions") -project(":pi-awb").projectDir = file("pi/awb") -project(":pi-sessions").projectDir = file("lib-agent/providers/pi/sessions") -project(":pi-sessions-filewatch").projectDir = file("lib-agent/providers/pi/sessions-filewatch") -project(":terminal-sessions").projectDir = file("lib-agent/providers/terminal/sessions") diff --git a/plugins/agent-workbench/settings/build.gradle.kts b/plugins/agent-workbench/settings/build.gradle.kts deleted file mode 100644 index f2dfaf14c1a0..000000000000 --- a/plugins/agent-workbench/settings/build.gradle.kts +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } - else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":sessions-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/spec/actions/add-to-agent-context.spec.md b/plugins/agent-workbench/spec/actions/add-to-agent-context.spec.md index 13ff96b7f46e..ad236a54994d 100644 --- a/plugins/agent-workbench/spec/actions/add-to-agent-context.spec.md +++ b/plugins/agent-workbench/spec/actions/add-to-agent-context.spec.md @@ -57,7 +57,7 @@ Date: 2026-05-09 - `./tests.cmd --module intellij.agent.workbench.prompt.ui.tests --test "com.intellij.agent.workbench.prompt.ui.actions.*"` - `./tests.cmd --module intellij.agent.workbench.prompt.ui.tests --test "com.intellij.agent.workbench.prompt.ui.AgentPromptContext*Test"` - `./tests.cmd --module intellij.agent.workbench.prompt.core.tests --test com.intellij.agent.workbench.prompt.core.AgentPromptContextEnvelopeFormatterTest` -- `./tests.cmd --module intellij.agent.workbench.plugin.tests --test com.intellij.agent.workbench.plugin.AgentWorkbenchAddToAgentContextActionRegistrationTest` +- `./tests.cmd --module intellij.air.plugin.tests --test com.intellij.air.plugin.AgentWorkbenchAddToAgentContextActionRegistrationTest` - `./tests.cmd --module intellij.agent.workbench.thread.view.tests --test com.intellij.agent.workbench.thread.view.AgentThreadViewOpenTopLevelDispatchTest` ## References diff --git a/plugins/agent-workbench/spec/core/engine-structured-agent-thread.spec.md b/plugins/agent-workbench/spec/core/engine-structured-agent-thread.spec.md index 07aea10d2f4f..14030b6dc2c5 100644 --- a/plugins/agent-workbench/spec/core/engine-structured-agent-thread.spec.md +++ b/plugins/agent-workbench/spec/core/engine-structured-agent-thread.spec.md @@ -8,8 +8,8 @@ targets: - ../../engine/resources/intellij.agent.workbench.engine.xml - ../../thread-view/src/AgentThreadViewCustomContent.kt - ../../thread-view/src/AgentThreadViewFileEditor.kt - - ../../../../../plugins/agent-workbench/acp/src/*.kt - - ../../../../../plugins/agent-workbench/acp/resources/intellij.agent.workbench.acp.xml + - ../../../../../plugins/ij-air/acp/src/*.kt + - ../../../../../plugins/ij-air/acp/resources/intellij.air.acp.xml --- # Engine Structured Agent Thread @@ -103,7 +103,7 @@ history format, and not a contract that terminal-backed providers must implement attach `requested` approval state by `toolCallId`, and later replace it with `approved`, `rejected`, or `expired` resolution state without reordering the tool-call transcript entry. [@test] ../../engine/testSrc/EngineEventStoreTest.kt - [@test] ../../../../../plugins/agent-workbench/acp/testSrc/AcpThreadEventMapperTest.kt + [@test] ../../../../../plugins/ij-air/acp/testSrc/AcpThreadEventMapperTest.kt - Terminal command content inside structured threads is modeled as structured tool/command content, not as a separate Agent Thread View terminal tab. Output received before the corresponding terminal/tool entry is @@ -123,10 +123,10 @@ history format, and not a contract that terminal-backed providers must implement [@test] ../../sessions/testSrc/AgentSessionLoadAggregationTest.kt [@test] ../../engine/testSrc/EngineEventStoreTest.kt -- ACP support lives in the `plugins/agent-workbench/acp` adapter. It launches/prepares ACP sessions, +- ACP support lives in the `plugins/ij-air/acp` adapter. It launches/prepares ACP sessions, receives `SessionUpdate`s and ACP client callbacks, and records canonical Engine events. It must not directly construct Swing rows or AUI events for Agent Workbench structured thread UI. - [@test] ../../../../../plugins/agent-workbench/acp/testSrc/AcpThreadEventMapperTest.kt + [@test] ../../../../../plugins/ij-air/acp/testSrc/AcpThreadEventMapperTest.kt - `Acp2ToAUIConverter` and related AUI converters may be used as references for protocol edge cases (streaming chunks, tool-call merging, permissions, diffs, MCP output, terminal metadata), but they must @@ -311,10 +311,10 @@ and `RuntimeSessionBound` carries the *server-issued* `agentSessionId` once a se - ACP continuation-decision tests verify that a stored `agentSessionId` with `loadSession` support resumes via `loadSession`, that missing `loadSession` support refuses (no fallback to `resumeSession` or `newSession`), and that no stored session id creates a fresh session (brand-new thread view, or legacy restored thread view continued by the user). - [@test] ../../../../../plugins/agent-workbench/acp/testSrc/AcpContinuationTest.kt + [@test] ../../../../../plugins/ij-air/acp/testSrc/AcpContinuationTest.kt - ACP recovery tests verify `shouldRecoverDisconnectedAcpThread`: a `Disconnected` ACP thread (by thread or binding `runtimeKind`) is a recovery target, while connected or non-ACP threads are not. - [@test] ../../../../../plugins/agent-workbench/acp/testSrc/AcpSessionManagerTest.kt + [@test] ../../../../../plugins/ij-air/acp/testSrc/AcpSessionManagerTest.kt - Integration follow-ups (require a project + ACP catalog fixture, not yet implemented): the connector rehydrates ownership from persisted binding data so `handles(threadId)` flips true and input re-enables (incl. catalog warm-up), `sendPrompt(...)` records `ThreadDisconnected` instead of an undeliverable user message, and a @@ -383,7 +383,7 @@ and `RuntimeSessionBound` carries the *server-issued* `agentSessionId` once a se ## Testing / Local Run - `./tests.cmd --module intellij.agent.workbench.engine.tests --test com.intellij.agent.workbench.engine.platform.EngineEventStoreTest` -- `./tests.cmd --module intellij.agent.workbench.acp.tests --test com.intellij.agent.workbench.acp.AcpThreadEventMapperTest` +- `./tests.cmd --module intellij.air.acp.tests --test com.intellij.air.acp.AcpThreadEventMapperTest` - `./tests.cmd --module intellij.agent.workbench.thread.view.tests --test com.intellij.agent.workbench.thread.view.AgentThreadViewFileEditorLifecycleTest` - `./tests.cmd --module intellij.agent.workbench.sessions.tests --test com.intellij.agent.workbench.sessions.AgentSessionLaunchServiceTest` diff --git a/plugins/agent-workbench/spec/core/engine-thread-view-rendering-plan.md b/plugins/agent-workbench/spec/core/engine-thread-view-rendering-plan.md index 57a5f6e7d687..c8be6b016a4b 100644 --- a/plugins/agent-workbench/spec/core/engine-thread-view-rendering-plan.md +++ b/plugins/agent-workbench/spec/core/engine-thread-view-rendering-plan.md @@ -4,8 +4,8 @@ description: Implementation plan for the minimal readable Engine/ACP thread view targets: - ../../engine/src/ui/AgentAcpThreadScreen.kt - ../../engine/resources/messages/EngineBundle.properties - - ../../../../../plugins/agent-workbench/acp/src/AcpThreadEventMapper.kt - - ../../../../../plugins/agent-workbench/acp/testSrc/AcpThreadEventMapperTest.kt + - ../../../../../plugins/ij-air/acp/src/AcpThreadEventMapper.kt + - ../../../../../plugins/ij-air/acp/testSrc/AcpThreadEventMapperTest.kt --- # Engine Thread View Rendering Plan @@ -235,7 +235,7 @@ Add localized keys to `EngineBundle.properties` for any new visible text, for ex Run after implementation: ```bash -./tests.cmd --module intellij.agent.workbench.acp.tests --test com.intellij.agent.workbench.acp.AcpThreadEventMapperTest +./tests.cmd --module intellij.air.acp.tests --test com.intellij.air.acp.AcpThreadEventMapperTest ``` Run Engine tests if reducer/projection code changes; this plan should avoid that: diff --git a/plugins/agent-workbench/spec/launch/acp-agent-launch-profile-migration.spec.md b/plugins/agent-workbench/spec/launch/acp-agent-launch-profile-migration.spec.md index 037b12e805df..6ec5d1c3e88d 100644 --- a/plugins/agent-workbench/spec/launch/acp-agent-launch-profile-migration.spec.md +++ b/plugins/agent-workbench/spec/launch/acp-agent-launch-profile-migration.spec.md @@ -17,9 +17,9 @@ targets: - ../../thread-view/src/AgentThreadViewFileEditorState.kt - ../../engine/src/ui/EngineSessionProviderDescriptor.kt - ../../engine/src/platform/EngineLaunchAgents.kt - - ../../../../../plugins/agent-workbench/acp/src/AcpEngineLaunchAgentProvider.kt - - ../../../../../plugins/agent-workbench/acp/src/AcpOutOfBandLaunch.kt - - ../../../../../plugins/agent-workbench/acp/testSrc/**/*.kt + - ../../../../../plugins/ij-air/acp/src/AcpEngineLaunchAgentProvider.kt + - ../../../../../plugins/ij-air/acp/src/AcpOutOfBandLaunch.kt + - ../../../../../plugins/ij-air/acp/testSrc/**/*.kt --- # ACP Agent Launch Profile Migration @@ -93,7 +93,7 @@ switch later. - Built-in launch-profile generation must include launchable ACP registry/local catalog entries next to the provider-derived terminal built-ins. ACP entries that are not installed or cannot resolve their binary must be omitted from the built-in profile list. - [@test] ../../../../../plugins/agent-workbench/acp/testSrc/AcpLaunchableAgentsTest.kt + [@test] ../../../../../plugins/ij-air/acp/testSrc/AcpLaunchableAgentsTest.kt - Built-in profile generation must be centralized. Palette UI, Manage Profiles, New Thread menu actions, scratch prompt actions, and `AgentSessionLaunchProfileResolverImpl` must all use the same effective built-in profile source; adding ACP target profiles in only one UI path is not acceptable. @@ -207,7 +207,7 @@ would preserve the original modeling error. - Add launch-context coverage to session launch tests: `./tests.cmd --module intellij.agent.workbench.sessions.tests --test com.intellij.agent.workbench.sessions.AgentSessionLaunchServiceTest` - Keep ACP availability coverage in: - `./tests.cmd --module intellij.agent.workbench.acp.tests --test com.intellij.agent.workbench.acp.AcpLaunchableAgentsTest` + `./tests.cmd --module intellij.air.acp.tests --test com.intellij.air.acp.AcpLaunchableAgentsTest` - Add an integration-style test or manual run configuration that verifies the New Task picker shows terminal profiles and installed ACP registry profiles side by side. diff --git a/plugins/agent-workbench/spec/launch/agent-launch-surface-switching.spec.md b/plugins/agent-workbench/spec/launch/agent-launch-surface-switching.spec.md index 6e908d01dc16..87c96265880f 100644 --- a/plugins/agent-workbench/spec/launch/agent-launch-surface-switching.spec.md +++ b/plugins/agent-workbench/spec/launch/agent-launch-surface-switching.spec.md @@ -18,10 +18,10 @@ targets: - ../../thread-view/src/AgentThreadViewVirtualFile.kt - ../../thread-view/src/AgentThreadViewTabsStateService.kt - ../../engine/src/ui/EngineSessionProviderDescriptor.kt - - ../../../../../plugins/agent-workbench/acp/src/AcpOutOfBandLaunch.kt - - ../../../../../plugins/agent-workbench/acp/src/AcpLaunchProfileContributor.kt - - ../../../../../plugins/agent-workbench/acp/src/AcpLauncherService.kt - - ../../../../../plugins/agent-workbench/acp/src/AcpSessionManager.kt + - ../../../../../plugins/ij-air/acp/src/AcpOutOfBandLaunch.kt + - ../../../../../plugins/ij-air/acp/src/AcpLaunchProfileContributor.kt + - ../../../../../plugins/ij-air/acp/src/AcpLauncherService.kt + - ../../../../../plugins/ij-air/acp/src/AcpSessionManager.kt --- # Agent Launch Surface Switching diff --git a/plugins/agent-workbench/spec/launch/engine-acp-launch-profiles.spec.md b/plugins/agent-workbench/spec/launch/engine-acp-launch-profiles.spec.md index 87395731213c..ed2402f81291 100644 --- a/plugins/agent-workbench/spec/launch/engine-acp-launch-profiles.spec.md +++ b/plugins/agent-workbench/spec/launch/engine-acp-launch-profiles.spec.md @@ -7,9 +7,9 @@ targets: - ../../sessions/src/service/AgentSessionLaunchService.kt - ../../engine/src/ui/EngineSessionProviderDescriptor.kt - ../../engine/src/platform/EngineLaunchAgents.kt - - ../../../../../plugins/agent-workbench/acp/src/AcpOutOfBandLaunch.kt - - ../../../../../plugins/agent-workbench/acp/src/AcpEngineLaunchAgentProvider.kt - - ../../../../../plugins/agent-workbench/acp/resources/intellij.agent.workbench.acp.xml + - ../../../../../plugins/ij-air/acp/src/AcpOutOfBandLaunch.kt + - ../../../../../plugins/ij-air/acp/src/AcpEngineLaunchAgentProvider.kt + - ../../../../../plugins/ij-air/acp/resources/intellij.air.acp.xml --- # Engine ACP Out-of-Band Launch Profiles @@ -70,7 +70,7 @@ a launch through its own runtime, with ACP being the first consumer. - `AcpOutOfBandLaunch.handles` matches only the `acp` provider; `launch` resolves the catalog entry whose display name equals the selected `modelId`, prepares the ACP session for the thread id, and sends the prompt only when it is non-blank. An unresolved `modelId` is a no-op. - [@test] ../../../../../plugins/agent-workbench/acp/testSrc/AcpThreadEventMapperTest.kt + [@test] ../../../../../plugins/ij-air/acp/testSrc/AcpThreadEventMapperTest.kt ## User Experience - ACP agents appear in the New-Task launch-profile generation-model picker under the Engine provider, @@ -93,13 +93,13 @@ a launch through its own runtime, with ACP being the first consumer. - `acp` module absent (e.g. a product build without AI Assistant): neither EP has extensions, so the Engine provider lists no generation models and registers no out-of-band launcher; the shared pipeline falls back to its default (terminal) behavior. -- `intellij.ml.llm.*` absent: Workbench ACP behavior must still work when `intellij.agent.workbench.acp` - and `intellij.agent.workbench.acp.runtime` are loaded. The LLM/AIA plugin must not be required for ACP +- `intellij.ml.llm.*` absent: Workbench ACP behavior must still work when `intellij.air.acp` + and `intellij.air.acp.runtime` are loaded. The LLM/AIA plugin must not be required for ACP actions, catalog population, launch-profile visibility, or process launch. ## Testing / Local Run - `./tests.cmd --module intellij.agent.workbench.engine.tests --test com.intellij.agent.workbench.engine.platform.EngineEventStoreTest` -- `./tests.cmd --module intellij.agent.workbench.acp.tests --test com.intellij.agent.workbench.acp.AcpThreadEventMapperTest` +- `./tests.cmd --module intellij.air.acp.tests --test com.intellij.air.acp.AcpThreadEventMapperTest` - End-to-end launch verification uses the AIA-less `IDEA (agent workbench)` run configuration. ACP catalog population and launch must come from AWB modules, not from `intellij.ml.llm.agents.acp`. diff --git a/plugins/agent-workbench/spec/review/ai-review.spec.md b/plugins/agent-workbench/spec/review/ai-review.spec.md index 955c9697ab76..81ad346bbfb5 100644 --- a/plugins/agent-workbench/spec/review/ai-review.spec.md +++ b/plugins/agent-workbench/spec/review/ai-review.spec.md @@ -40,8 +40,8 @@ AI Review creates independent review sessions shown as Problems toolwindow tabs. - `./tests.cmd --module intellij.agent.workbench.ai.review.tests --test com.intellij.agent.workbench.ai.review.prompt.AIReviewPaletteExtensionTest` - `./tests.cmd --module intellij.agent.workbench.ai.review.tests --test com.intellij.agent.workbench.ai.review.model.AIReviewViewModelTest` - `./bazel.cmd build @community//plugins/agent-workbench/ai-review:agent-workbench-ai-review` -- `./bazel.cmd build //plugins/agent-workbench/ai-review-agents:agent-workbench-ai-review-agents` -- `./bazel.cmd build //plugins/agent-workbench/ai-review-space:agent-workbench-ai-review-space` +- `./bazel.cmd build //plugins/ij-air/ai-review-agents:agent-workbench-ai-review-agents` +- `./bazel.cmd build //plugins/ij-air/ai-review-space:agent-workbench-ai-review-space` ## References - `../actions/global-prompt-entry.spec.md` diff --git a/plugins/agent-workbench/spec/sessions/agent-sessions-pi.spec.md b/plugins/agent-workbench/spec/sessions/agent-sessions-pi.spec.md index f75d2bf69217..1f3a2b4cec3d 100644 --- a/plugins/agent-workbench/spec/sessions/agent-sessions-pi.spec.md +++ b/plugins/agent-workbench/spec/sessions/agent-sessions-pi.spec.md @@ -123,7 +123,7 @@ Agent Workbench treats Pi as a first-class terminal-backed provider. Pi sessions ## Testing / Local Run - `./tests.cmd --module intellij.platform.ai.agent.pi.sessions.tests --test 'com.intellij.platform.ai.agent.pi.sessions.*Test'` - `./tests.cmd --module intellij.platform.ai.agent.pi.sessions.filewatch.tests --test 'com.intellij.platform.ai.agent.pi.sessions.*Test'` -- `./tests.cmd --module intellij.agent.workbench.plugin.tests --test com.intellij.agent.workbench.plugin.AgentWorkbenchProviderRegistrationTest` +- `./tests.cmd --module intellij.air.plugin.tests --test com.intellij.air.plugin.AgentWorkbenchProviderRegistrationTest` ## References - `agent-sessions.spec.md` diff --git a/plugins/agent-workbench/thread-view/BUILD.bazel b/plugins/agent-workbench/thread-view/BUILD.bazel index 6de84611524f..fb499b349a4c 100644 --- a/plugins/agent-workbench/thread-view/BUILD.bazel +++ b/plugins/agent-workbench/thread-view/BUILD.bazel @@ -212,8 +212,6 @@ jvm_library( "//libraries/assertj-core:assertj-core_test_lib", "//plugins/terminal", "//plugins/terminal:terminal_test_lib", - "//plugins/agent-workbench/plugin", - "//plugins/agent-workbench/plugin:plugin_test_lib", ], ) ### auto-generated section `build intellij.agent.workbench.thread.view.tests` end diff --git a/plugins/agent-workbench/thread-view/build.gradle.kts b/plugins/agent-workbench/thread-view/build.gradle.kts deleted file mode 100644 index 47dc5a3d3556..000000000000 --- a/plugins/agent-workbench/thread-view/build.gradle.kts +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - if (platformLocalPath == null) { - bundledPlugins("org.jetbrains.plugins.terminal") - } - } - - if (platformLocalPath != null) { - val ideDir = rootProject.file(platformLocalPath) - compileOnly(fileTree(ideDir.resolve("plugins/terminal/lib")) { include("**/*.jar") }) - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":prompt-core")) - implementation(project(":settings")) - implementation(project(":sessions-core")) - implementation(project(":ui")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/thread-view/intellij.agent.workbench.thread.view.tests.iml b/plugins/agent-workbench/thread-view/intellij.agent.workbench.thread.view.tests.iml index 5f0ad048e94f..7542f0ce205a 100644 --- a/plugins/agent-workbench/thread-view/intellij.agent.workbench.thread.view.tests.iml +++ b/plugins/agent-workbench/thread-view/intellij.agent.workbench.thread.view.tests.iml @@ -59,7 +59,6 @@ -
    \ No newline at end of file diff --git a/plugins/agent-workbench/ui/build.gradle.kts b/plugins/agent-workbench/ui/build.gradle.kts deleted file mode 100644 index 5b3bd67b859c..000000000000 --- a/plugins/agent-workbench/ui/build.gradle.kts +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - } - jetbrainsRuntime() - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":sessions-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -} diff --git a/plugins/agent-workbench/vcs-merge/build.gradle.kts b/plugins/agent-workbench/vcs-merge/build.gradle.kts deleted file mode 100644 index 8dfdf1052b04..000000000000 --- a/plugins/agent-workbench/vcs-merge/build.gradle.kts +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion - -plugins { - id("java") - id("org.jetbrains.kotlin.jvm") - id("org.jetbrains.intellij.platform.module") - kotlin("plugin.serialization") -} - -repositories { - mavenCentral() - maven("https://oss.sonatype.org/content/repositories/snapshots/") - intellijPlatform { - defaultRepositories() - snapshots() - nightly() - } -} - -intellijPlatform { - instrumentCode = false -} - -sourceSets { - main { - java { setSrcDirs(listOf("src")) } - resources { setSrcDirs(listOf("resources")) } - } -} - -val platformLocalPath = rootProject.extra["platformLocalPath"] as? String -val platformVersion = rootProject.extra["platformVersion"] as String - -dependencies { - intellijPlatform { - if (platformLocalPath != null) { - local(platformLocalPath) - } else { - intellijIdeaUltimate(platformVersion) { useInstaller = false } - bundledModules( - "intellij.platform.vcs", - "intellij.platform.vcs.impl.shared", - "intellij.platform.vcs.impl", - "intellij.platform.diff", - "intellij.platform.diff.impl", - ) - } - jetbrainsRuntime() - } - - if (platformLocalPath != null) { - val ideDir = rootProject.file(platformLocalPath) - compileOnly(fileTree(ideDir.resolve("lib")) { - include("intellij.platform.vcs*.jar", "intellij.platform.diff*.jar") - }) - } - - implementation(project(":common")) - implementation(project(":core")) - implementation(project(":thread-view")) - implementation(project(":prompt-core")) - implementation(project(":sessions")) - implementation(project(":sessions-core")) -} - -kotlin { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_21) - freeCompilerArgs.addAll("-Xjvm-default=all") - apiVersion.set(KotlinVersion.KOTLIN_2_3) - languageVersion.set(KotlinVersion.KOTLIN_2_3) - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 -}