Skip to content

Commit 00775d3

Browse files
committed
refactor: remove llm-client dependency in favor of Koog and refresh models
1 parent 0eaf6f8 commit 00775d3

File tree

241 files changed

+7932
-9975
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

241 files changed

+7932
-9975
lines changed

build.gradle.kts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ dependencies {
6464
bundledPlugin("com.intellij.java")
6565
bundledPlugin("org.jetbrains.kotlin")
6666
bundledPlugin("Git4Idea")
67-
plugin("PythonCore:251.25410.109")
6867

6968
testFramework(TestFrameworkType.Platform)
7069
testFramework(TestFrameworkType.JUnit5)
@@ -73,22 +72,25 @@ dependencies {
7372
implementation(project(":proxyai-telemetry"))
7473
implementation(project(":proxyai-treesitter"))
7574

76-
implementation(platform(libs.okhttp.bom))
7775
implementation(platform(libs.slf4j.bom))
7876
implementation(platform(libs.jackson.bom))
7977
implementation(platform(libs.mcp.sdk.bom))
8078

8179
implementation(libs.jackson.datatype.jdk8)
8280
implementation(libs.jackson.datatype.jsr310)
8381
implementation(libs.jackson.module.kotlin)
82+
implementation(libs.kotlin.stdlib)
8483

8584
implementation(libs.flexmark.all) {
8685
// vulnerable transitive dependency
8786
exclude(group = "org.jsoup", module = "jsoup")
8887
}
89-
implementation(libs.kotlin.stdlib)
90-
implementation(libs.kotlin.reflect)
9188
implementation(libs.koog.agents) {
89+
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib")
90+
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-common")
91+
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-jdk7")
92+
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-jdk8")
93+
exclude(group = "org.jetbrains.kotlin", module = "kotlin-reflect")
9294
exclude(group = "org.jetbrains.kotlinx", module = "kotlinx-coroutines-core")
9395
exclude(group = "org.jetbrains.kotlinx", module = "kotlinx-coroutines-jdk8")
9496
}

buildSrc/src/main/kotlin/proxyai.java-conventions.gradle.kts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import org.jetbrains.intellij.platform.gradle.TestFrameworkType
22
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
3+
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
34
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
45

56
val libs = versionCatalogs.named("libs")
@@ -34,13 +35,7 @@ dependencies {
3435
}
3536
}
3637

37-
implementation(lib("llm.client"))
3838
implementation(lib("kotlinx.serialization.json"))
39-
constraints {
40-
implementation(lib("okio")) {
41-
because("llm-client 0.7.0 uses okio 3.2.0: https://avd.aquasec.com/nvd/cve-2023-3635")
42-
}
43-
}
4439

4540
testImplementation("junit:junit:4.13.2")
4641
testImplementation(platform(lib("junit.bom")))
@@ -53,12 +48,21 @@ dependencies {
5348

5449
tasks {
5550
properties("javaVersion").let {
51+
java {
52+
toolchain {
53+
languageVersion.set(JavaLanguageVersion.of(it.toInt()))
54+
}
55+
}
56+
extensions.configure<KotlinJvmProjectExtension>("kotlin") {
57+
jvmToolchain(it.toInt())
58+
}
5659
withType<JavaCompile> {
5760
sourceCompatibility = it
5861
targetCompatibility = it
5962
}
6063
withType<KotlinCompile> {
6164
compilerOptions.jvmTarget.set(JvmTarget.fromTarget(it))
65+
compilerOptions.freeCompilerArgs.add("-opt-in=kotlin.time.ExperimentalTime")
6266
}
6367
}
6468
}

gradle.properties

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ platformVersion = 2025.1.1
1818
# Example: platformPlugins = com.intellij.java, com.jetbrains.php:203.4449.22
1919
platformPlugins =
2020

21-
javaVersion = 17
21+
javaVersion = 21
2222

2323
# Gradle Releases -> https://github.com/gradle/gradle/releases
24-
gradleVersion = 8.7
24+
gradleVersion = 8.13
2525

2626
# Opt-out flag for bundling Kotlin standard library -> https://jb.gg/intellij-platform-kotlin-stdlib
2727
kotlin.stdlib.default.dependency = false
@@ -42,3 +42,6 @@ org.gradle.caching = true
4242

4343
# Enable Gradle Kotlin DSL Lazy Property Assignment -> https://docs.gradle.org/current/userguide/kotlin_dsl.html#kotdsl:assignment
4444
systemProp.org.gradle.unsafe.kotlin.assignment = true
45+
46+
# Allow Gradle toolchains to auto-provision JDKs (needed for Java 21 on newer IntelliJ platform)
47+
org.gradle.java.installations.auto-download = true

gradle/libs.versions.toml

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,16 @@ changelog = "2.2.1"
55
checkstyle = "10.15.0"
66
commons-text = "1.13.1"
77
flexmark = "0.64.8"
8-
gradle-intellij-plugin-version = "2.6.0"
8+
gradle-intellij-plugin-version = "2.10.4"
99
gson = "2.13.1"
1010
jackson = "2.18.3"
1111
mcp = "0.8.0"
1212
jsoup = "1.21.2"
1313
jtokkit = "1.1.0"
1414
junit = "5.13.4"
15-
kotlin = "2.2.10"
15+
kotlin = "2.2.20"
1616
kotlinx-serialization = "1.6.3"
17-
llm-client = "0.8.58"
18-
koog = "0.6.2"
19-
okhttp = "4.12.0"
20-
okio = "3.15.0"
17+
koog = "0.6.3"
2118
slf4j = "2.0.17"
2219
tree-sitter = "0.24.5"
2320
grpc = "1.73.0"
@@ -46,9 +43,6 @@ kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref =
4643
koog-agents = { module = "ai.koog:koog-agents", version.ref = "koog" }
4744
kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
4845
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
49-
llm-client = { module = "ee.carlrobert:llm-client", version.ref = "llm-client" }
50-
okhttp-bom = { module = "com.squareup.okhttp3:okhttp-bom", version.ref = "okhttp" }
51-
okio = { module = "com.squareup.okio:okio", version.ref = "okio" }
5246
slf4j-bom = { module = "org.slf4j:slf4j-bom", version.ref = "slf4j" }
5347
tree-sitter = { module = "io.github.bonede:tree-sitter", version.ref = "tree-sitter" }
5448
grpc-protobuf = { module = "io.grpc:grpc-protobuf", version.ref = "grpc" }

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

src/main/java/ee/carlrobert/codegpt/CodeGPTKeys.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import ee.carlrobert.codegpt.inlineedit.InlineEditSession;
55
import ee.carlrobert.codegpt.nextedit.NextEditDiffViewer;
66
import ee.carlrobert.codegpt.inlineedit.InlineEditInlayRenderer;
7+
import ee.carlrobert.codegpt.settings.service.codegpt.CodeGPTUserDetails;
78
import ee.carlrobert.codegpt.toolwindow.chat.editor.ToolWindowEditorFileDetails;
8-
import ee.carlrobert.llm.client.codegpt.CodeGPTUserDetails;
99
import ee.carlrobert.service.NextEditResponse;
1010
import com.intellij.openapi.util.TextRange;
1111
import ee.carlrobert.service.PartialCodeCompletionResponse;

src/main/java/ee/carlrobert/codegpt/EncodingManager.java

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,7 @@
1010
import com.knuddels.jtokkit.api.IntArrayList;
1111
import ee.carlrobert.codegpt.conversations.Conversation;
1212
import ee.carlrobert.codegpt.conversations.message.Message;
13-
import ee.carlrobert.llm.client.openai.completion.request.OpenAIChatCompletionDetailedMessage;
14-
import ee.carlrobert.llm.client.openai.completion.request.OpenAIChatCompletionMessage;
15-
import ee.carlrobert.llm.client.openai.completion.request.OpenAIChatCompletionStandardMessage;
16-
import ee.carlrobert.llm.client.openai.completion.request.OpenAIMessageTextContent;
17-
import ee.carlrobert.llm.client.openai.completion.response.ToolCall;
13+
import ee.carlrobert.codegpt.completions.ChatToolCall;
1814
import java.util.List;
1915
import java.util.Map;
2016
import java.util.stream.Stream;
@@ -55,9 +51,9 @@ public McpToolTokens countMcpToolTokens(Conversation conversation) {
5551
int inputTokens = 0;
5652
int outputTokens = 0;
5753

58-
List<ToolCall> toolCalls = message.getToolCalls();
54+
List<ChatToolCall> toolCalls = message.getToolCalls();
5955
if (toolCalls != null) {
60-
for (ToolCall toolCall : toolCalls) {
56+
for (ChatToolCall toolCall : toolCalls) {
6157
if (toolCall.getFunction() != null && toolCall.getFunction().getArguments() != null) {
6258
inputTokens += countTokens(toolCall.getFunction().getArguments());
6359
}
@@ -103,19 +99,6 @@ public int getOutputTokens() {
10399
}
104100
}
105101

106-
public int countMessageTokens(OpenAIChatCompletionMessage message) {
107-
if (message instanceof OpenAIChatCompletionStandardMessage standardMessage) {
108-
return countMessageTokens(standardMessage.getRole(), standardMessage.getContent());
109-
}
110-
111-
return ((OpenAIChatCompletionDetailedMessage) message).getContent().stream()
112-
.filter(OpenAIMessageTextContent.class::isInstance)
113-
.mapToInt(it -> countMessageTokens(
114-
((OpenAIChatCompletionDetailedMessage) message).getRole(),
115-
((OpenAIMessageTextContent) it).getText()))
116-
.sum();
117-
}
118-
119102
public int countMessageTokens(String role, String content) {
120103
var tokensPerMessage = 4; // every message follows <|start|>{role/name}\n{content}<|end|>\n
121104
return countTokens(role + content) + tokensPerMessage;

src/main/java/ee/carlrobert/codegpt/Icons.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ public final class Icons {
2525
public static final Icon Meta = IconLoader.getIcon("/icons/meta.svg", Icons.class);
2626
public static final Icon Mistral = IconLoader.getIcon("/icons/mistral.svg", Icons.class);
2727
public static final Icon Moonshot = IconLoader.getIcon("/icons/moonshot.svg", Icons.class);
28-
public static final Icon Morph = IconLoader.getIcon("/icons/morph.svg", Icons.class);
29-
public static final Icon Relace = IconLoader.getIcon("/icons/relace.svg", Icons.class);
3028
public static final Icon Inception = IconLoader.getIcon("/icons/inception.svg", Icons.class);
3129
public static final Icon Send = IconLoader.getIcon("/icons/send.svg", Icons.class);
3230
public static final Icon Sparkle = IconLoader.getIcon("/icons/sparkle.svg", Icons.class);

src/main/java/ee/carlrobert/codegpt/completions/ChatCompletionEventListener.java

Lines changed: 0 additions & 92 deletions
This file was deleted.

0 commit comments

Comments
 (0)