Skip to content

Commit 744da73

Browse files
authored
1.5.2 (#163)
* 1.5.2 * Update .gitignore * Update settings.gradle.kts
1 parent e4b9411 commit 744da73

File tree

4 files changed

+30
-67
lines changed

4 files changed

+30
-67
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ api.*
1515
settings.gradle.kts
1616
tokens
1717

18+
html-games.iml

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ repositories {
2525
val kotlin_version = "2.0.0-Beta5"
2626
val jetty_version = "11.0.18"
2727
val slf4j_version = "2.0.9"
28-
val skyenet_version = "1.0.67"
28+
val skyenet_version = "1.0.68"
2929
val remoterobot_version = "0.11.21"
3030
val jackson_version = "2.17.0"
3131

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
pluginName=intellij-aicoder
22
pluginRepositoryUrl=https://github.com/SimiaCryptus/intellij-aicoder
3-
pluginVersion=1.5.1
3+
pluginVersion=1.5.2
44

55
jvmArgs=-Xmx8g
66
org.gradle.jvmargs=-Xmx8g

src/main/kotlin/com/github/simiacryptus/aicoder/actions/generic/MultiDiffChatAction.kt

Lines changed: 27 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,25 @@
33
import com.github.simiacryptus.aicoder.AppServer
44
import com.github.simiacryptus.aicoder.actions.BaseAction
55
import com.github.simiacryptus.aicoder.actions.generic.MultiStepPatchAction.AutoDevApp.Settings
6+
import com.github.simiacryptus.aicoder.config.AppSettingsState
67
import com.github.simiacryptus.aicoder.util.UITools
7-
import com.simiacryptus.diff.addApplyFileDiffLinks
8-
import com.simiacryptus.diff.addSaveLinks
98
import com.intellij.openapi.actionSystem.ActionUpdateThread
109
import com.intellij.openapi.actionSystem.AnActionEvent
1110
import com.intellij.openapi.actionSystem.PlatformDataKeys
1211
import com.intellij.openapi.vfs.VirtualFile
12+
import com.simiacryptus.diff.addApplyFileDiffLinks
13+
import com.simiacryptus.diff.addSaveLinks
1314
import com.simiacryptus.jopenai.API
1415
import com.simiacryptus.jopenai.ApiModel
1516
import com.simiacryptus.jopenai.ApiModel.Role
16-
import com.simiacryptus.jopenai.models.ChatModels
17+
import com.simiacryptus.jopenai.GPT4Tokenizer
1718
import com.simiacryptus.jopenai.util.ClientUtil.toContentList
1819
import com.simiacryptus.skyenet.Discussable
19-
import com.simiacryptus.skyenet.core.actors.ActorSystem
20-
import com.simiacryptus.skyenet.core.actors.BaseActor
2120
import com.simiacryptus.skyenet.core.actors.SimpleActor
22-
import com.simiacryptus.skyenet.core.platform.*
21+
import com.simiacryptus.skyenet.core.platform.ClientManager
22+
import com.simiacryptus.skyenet.core.platform.Session
23+
import com.simiacryptus.skyenet.core.platform.StorageInterface
24+
import com.simiacryptus.skyenet.core.platform.User
2325
import com.simiacryptus.skyenet.webui.application.ApplicationInterface
2426
import com.simiacryptus.skyenet.webui.application.ApplicationServer
2527
import com.simiacryptus.skyenet.webui.chat.ChatServer
@@ -37,7 +39,6 @@ class MultiDiffChatAction : BaseAction() {
3739
val path = "/multiDiffChat"
3840

3941
override fun handle(event: AnActionEvent) {
40-
4142
var root: Path? = null
4243
val codeFiles: MutableSet<Path> = mutableSetOf()
4344
fun codeSummary() = codeFiles.filter {
@@ -64,11 +65,8 @@ class MultiDiffChatAction : BaseAction() {
6465

6566
val files = getFiles(virtualFiles, root!!)
6667
codeFiles.addAll(files)
67-
6868
val session = StorageInterface.newGlobalID()
69-
7069
agents[session] = PatchApp(event, root!!.toFile(), { codeSummary() }, codeFiles)
71-
7270
val server = AppServer.getServer(event.project)
7371
val app = initApp(server, path)
7472
app.sessions[session] = app.newSession(null, session)
@@ -95,48 +93,8 @@ class MultiDiffChatAction : BaseAction() {
9593
) {
9694
override val singleInput = false
9795
override val stickyInput = true
98-
99-
override fun userMessage(
100-
session: Session,
101-
user: User?,
102-
userMessage: String,
103-
ui: ApplicationInterface,
104-
api: API
105-
) {
106-
val settings = getSettings(session, user) ?: Settings()
107-
if (api is ClientManager.MonitoredClient) api.budget = settings.budget ?: 2.00
108-
PatchAgent(
109-
api = api,
110-
dataStorage = dataStorage,
111-
session = session,
112-
user = user,
113-
ui = ui,
114-
model = settings.model!!,
115-
event = event,
116-
root = root,
117-
codeSummary = { codeSummary() },
118-
codeFiles = { codeFiles },
119-
).start(
120-
userMessage = userMessage,
121-
)
122-
}
123-
}
124-
125-
enum class ActorTypes {
126-
MainActor,
127-
}
128-
129-
inner class PatchAgent(
130-
val api: API,
131-
dataStorage: StorageInterface,
132-
session: Session,
133-
user: User?,
134-
val ui: ApplicationInterface,
135-
val model: ChatModels,
136-
val codeSummary: () -> String,
137-
val codeFiles: () -> Set<Path>,
138-
actorMap: Map<ActorTypes, BaseActor<*, *>> = mapOf(
139-
ActorTypes.MainActor to SimpleActor(
96+
private val mainActor: SimpleActor
97+
get() = SimpleActor(
14098
prompt = """
14199
|You are a helpful AI that helps people with coding.
142100
|
@@ -179,31 +137,34 @@ class MultiDiffChatAction : BaseAction() {
179137
|
180138
|If needed, new files can be created by using code blocks labeled with the filename in the same manner.
181139
""".trimMargin(),
182-
model = model
183-
),
184-
),
185-
val event: AnActionEvent,
186-
val root: File,
187-
) : ActorSystem<ActorTypes>(
188-
actorMap.map { it.key.name to it.value }.toMap(), dataStorage, user, session
189-
) {
190-
191-
private val mainActor by lazy { getActor(ActorTypes.MainActor) as SimpleActor }
140+
model = AppSettingsState.instance.defaultSmartModel()
141+
)
192142

193-
fun start(
143+
override fun userMessage(
144+
session: Session,
145+
user: User?,
194146
userMessage: String,
147+
ui: ApplicationInterface,
148+
api: API
195149
) {
150+
val settings = getSettings(session, user) ?: Settings()
151+
if (api is ClientManager.MonitoredClient) api.budget = settings.budget ?: 2.00
152+
196153
val task = ui.newTask()
154+
val codex = GPT4Tokenizer()
155+
task.header(renderMarkdown(codeFiles.joinToString("\n") { path ->
156+
"* $path - ${codex.estimateTokenCount(root.resolve(path.toFile()).readText())} tokens"
157+
}))
197158
val toInput = { it: String -> listOf(codeSummary(), it) }
198159
Discussable(
199160
task = task,
200161
userMessage = { userMessage },
201-
heading = userMessage,
162+
heading = renderMarkdown(userMessage),
202163
initialResponse = { it: String -> mainActor.answer(toInput(it), api = api) },
203164
outputFn = { design: String ->
204165
var markdown = ui.socketManager.addApplyFileDiffLinks(
205166
root = root.toPath(),
206-
code = { codeFiles().associateWith { root.resolve(it.toFile()).readText(Charsets.UTF_8) } },
167+
code = { codeFiles.associateWith { root.resolve(it.toFile()).readText(Charsets.UTF_8) } },
207168
response = design,
208169
handle = { newCodeMap ->
209170
newCodeMap.forEach { (path, newCode) ->
@@ -237,6 +198,7 @@ class MultiDiffChatAction : BaseAction() {
237198
}
238199
}
239200

201+
240202
private fun getFiles(
241203
virtualFiles: Array<out VirtualFile>?,
242204
root: Path

0 commit comments

Comments
 (0)