Skip to content

Commit 441aa06

Browse files
committed
1.2.21
1 parent 8e3afff commit 441aa06

37 files changed

+372
-281
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Gradle Releases -> https://github.com/gradle/gradle/releases
22
libraryGroup=com.simiacryptus.skyenet
3-
libraryVersion=1.2.20
3+
libraryVersion=1.2.21
44
gradleVersion=7.6.1
55
kotlin.daemon.jvmargs=-Xmx4g

webui/src/main/kotlin/com/simiacryptus/skyenet/apps/general/AutoPlanChatApp.kt

Lines changed: 126 additions & 44 deletions
Large diffs are not rendered by default.

webui/src/main/kotlin/com/simiacryptus/skyenet/apps/general/CmdPatchApp.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ package com.simiacryptus.skyenet.apps.general
44
import com.simiacryptus.diff.FileValidationUtils
55
import com.simiacryptus.jopenai.ChatClient
66
import com.simiacryptus.jopenai.models.ChatModel
7-
import com.simiacryptus.jopenai.models.TextModel
87
import com.simiacryptus.skyenet.core.platform.Session
98
import com.simiacryptus.skyenet.set
109
import com.simiacryptus.skyenet.webui.session.SessionTask
@@ -98,8 +97,7 @@ class CmdPatchApp(
9897
}
9998

10099
override fun output(task: SessionTask): OutputResult = run {
101-
val command =
102-
listOf(settings.executable.absolutePath) + settings.arguments.split(" ").filter(String::isNotBlank)
100+
val command = listOf(settings.executable.absolutePath) + settings.arguments.split(" ").filter(String::isNotBlank)
103101
val processBuilder = ProcessBuilder(command).directory(settings.workingDirectory)
104102
// Pass the current environment to the subprocess
105103
processBuilder.environment().putAll(System.getenv())

webui/src/main/kotlin/com/simiacryptus/skyenet/apps/general/PatchApp.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,19 @@ abstract class PatchApp(
5757
val socketManager = super.newSession(user, session)
5858
val ui = (socketManager as ApplicationSocketManager).applicationInterface
5959
val task = ui.newTask()
60-
Retryable(
60+
lateinit var retry : Retryable
61+
var retries = 3
62+
retry = Retryable(
6163
ui = ui,
6264
task = task,
6365
process = { content ->
6466
val newTask = ui.newTask(false)
6567
newTask.add("Running Command")
6668
Thread {
67-
run(ui, newTask)
69+
val result = run(ui, newTask)
70+
if (result.exitCode != 0 && retries-- > 0) {
71+
retry.retry()
72+
}
6873
}.start()
6974
newTask.placeholder
7075
}

webui/src/main/kotlin/com/simiacryptus/skyenet/apps/general/PlanChatApp.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@ import com.simiacryptus.jopenai.API
44
import com.simiacryptus.jopenai.ChatClient
55
import com.simiacryptus.jopenai.OpenAIClient
66
import com.simiacryptus.jopenai.models.ChatModel
7-
import com.simiacryptus.jopenai.models.TextModel
87
import com.simiacryptus.skyenet.apps.plan.*
9-
import com.simiacryptus.skyenet.apps.plan.file.InquiryTask.InquiryTaskData
8+
import com.simiacryptus.skyenet.apps.plan.file.InquiryTask.InquiryTaskConfigData
109
import com.simiacryptus.skyenet.core.platform.Session
1110
import com.simiacryptus.skyenet.core.platform.model.User
1211
import com.simiacryptus.skyenet.util.MarkdownUtil
@@ -143,11 +142,11 @@ open class PlanChatApp(
143142

144143
}
145144

146-
protected open fun addRespondToChatTask(plan: Map<String, PlanTaskBase>): Map<String, PlanTaskBase> {
145+
protected open fun addRespondToChatTask(plan: Map<String, TaskConfigBase>): Map<String, TaskConfigBase> {
147146
val tasksByID = plan?.toMutableMap() ?: mutableMapOf()
148147
val respondTaskId = "respond_to_chat"
149148

150-
tasksByID[respondTaskId] = InquiryTaskData(
149+
tasksByID[respondTaskId] = InquiryTaskConfigData(
151150
task_description = "Respond to the user's chat message based on the executed plan",
152151
task_dependencies = tasksByID.keys.toList()
153152
)

webui/src/main/kotlin/com/simiacryptus/skyenet/apps/plan/AbstractTask.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import java.io.File
99
import java.nio.file.Path
1010

1111

12-
abstract class AbstractTask<T : PlanTaskBase>(
12+
abstract class AbstractTask<T : TaskConfigBase>(
1313
val planSettings: PlanSettings,
1414
val planTask: T?
1515
) {

webui/src/main/kotlin/com/simiacryptus/skyenet/apps/plan/CommandAutoFixTask.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import com.simiacryptus.jopenai.describe.Description
66
import com.simiacryptus.skyenet.Retryable
77
import com.simiacryptus.skyenet.apps.general.CmdPatchApp
88
import com.simiacryptus.skyenet.apps.general.PatchApp
9-
import com.simiacryptus.skyenet.apps.plan.CommandAutoFixTask.CommandAutoFixTaskData
9+
import com.simiacryptus.skyenet.apps.plan.CommandAutoFixTask.CommandAutoFixTaskConfigData
1010
import com.simiacryptus.skyenet.util.MarkdownUtil
1111
import com.simiacryptus.skyenet.webui.session.SessionTask
1212
import org.slf4j.LoggerFactory
@@ -16,16 +16,16 @@ import java.util.concurrent.atomic.AtomicBoolean
1616

1717
class CommandAutoFixTask(
1818
planSettings: PlanSettings,
19-
planTask: CommandAutoFixTaskData?
20-
) : AbstractTask<CommandAutoFixTaskData>(planSettings, planTask) {
19+
planTask: CommandAutoFixTaskConfigData?
20+
) : AbstractTask<CommandAutoFixTaskConfigData>(planSettings, planTask) {
2121

22-
class CommandAutoFixTaskData(
22+
class CommandAutoFixTaskConfigData(
2323
@Description("The commands to be executed with their respective working directories")
2424
val commands: List<CommandWithWorkingDir>? = null,
2525
task_description: String? = null,
2626
task_dependencies: List<String>? = null,
2727
state: TaskState? = null
28-
) : PlanTaskBase(
28+
) : TaskConfigBase(
2929
task_type = TaskType.CommandAutoFix.name,
3030
task_description = task_description,
3131
task_dependencies = task_dependencies,
@@ -64,7 +64,7 @@ ${planSettings.commandAutoFixCommands?.joinToString("\n") { " * ${File(it).na
6464
val semaphore = Semaphore(0)
6565
val hasError = AtomicBoolean(false)
6666
val onComplete = { semaphore.release() }
67-
lateinit var retryable: Retryable
67+
var retryable: Retryable? = null
6868
retryable = Retryable(agent.ui, task = task) {
6969
val task = agent.ui.newTask(false).apply { it.append(placeholder) }
7070
this.planTask?.commands?.forEachIndexed { index, commandWithDir ->
@@ -137,7 +137,7 @@ ${planSettings.commandAutoFixCommands?.joinToString("\n") { " * ${File(it).na
137137
) {
138138
onComplete()
139139
}
140-
if(autoRetries-- > 0) retryable.retry()
140+
if(autoRetries-- > 0) retryable?.retry()
141141
s
142142
})
143143
task.placeholder

webui/src/main/kotlin/com/simiacryptus/skyenet/apps/plan/CommandSessionTask.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package com.simiacryptus.skyenet.apps.plan
33
import com.simiacryptus.jopenai.ChatClient
44
import com.simiacryptus.jopenai.OpenAIClient
55
import com.simiacryptus.jopenai.describe.Description
6-
import com.simiacryptus.skyenet.core.platform.ApplicationServices
76
import com.simiacryptus.skyenet.webui.session.SessionTask
87
import org.slf4j.LoggerFactory
98
import java.io.BufferedReader
@@ -14,8 +13,8 @@ import java.util.concurrent.TimeUnit
1413

1514
class CommandSessionTask(
1615
planSettings: PlanSettings,
17-
planTask: CommandSessionTaskData?
18-
) : AbstractTask<CommandSessionTask.CommandSessionTaskData>(planSettings, planTask) {
16+
planTask: CommandSessionTaskConfigData?
17+
) : AbstractTask<CommandSessionTask.CommandSessionTaskConfigData>(planSettings, planTask) {
1918
companion object {
2019
private val log = LoggerFactory.getLogger(CommandSessionTask::class.java)
2120
private val activeSessions = ConcurrentHashMap<String, Process>()
@@ -68,7 +67,7 @@ class CommandSessionTask(
6867
fun getActiveSessionCount(): Int = activeSessions.size
6968
}
7069

71-
class CommandSessionTaskData(
70+
class CommandSessionTaskConfigData(
7271
@Description("The command to start the interactive session")
7372
val command: List<String>,
7473
@Description("Commands to send to the interactive session")
@@ -82,7 +81,7 @@ class CommandSessionTask(
8281
task_description: String? = null,
8382
task_dependencies: List<String>? = null,
8483
state: TaskState? = null,
85-
) : PlanTaskBase(
84+
) : TaskConfigBase(
8685
task_type = TaskType.CommandSession.name,
8786
task_description = task_description,
8887
task_dependencies = task_dependencies,
@@ -175,7 +174,7 @@ class CommandSessionTask(
175174
}
176175

177176
private fun formatResults(
178-
planTask: CommandSessionTaskData,
177+
planTask: CommandSessionTaskConfigData,
179178
results: List<String>
180179
): String = buildString {
181180
appendLine("## Command Session Results")

webui/src/main/kotlin/com/simiacryptus/skyenet/apps/plan/ForeachTask.kt

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,26 @@ package com.simiacryptus.skyenet.apps.plan
33
import com.simiacryptus.jopenai.ChatClient
44
import com.simiacryptus.jopenai.OpenAIClient
55
import com.simiacryptus.jopenai.describe.Description
6-
import com.simiacryptus.skyenet.apps.plan.ForeachTask.ForeachTaskData
6+
import com.simiacryptus.skyenet.apps.plan.ForeachTask.ForeachTaskConfigData
77
import com.simiacryptus.skyenet.apps.plan.PlanUtil.diagram
88
import com.simiacryptus.skyenet.apps.plan.PlanUtil.executionOrder
99
import com.simiacryptus.skyenet.webui.session.SessionTask
1010
import org.slf4j.LoggerFactory
1111

1212
class ForeachTask(
1313
planSettings: PlanSettings,
14-
planTask: ForeachTaskData?
15-
) : AbstractTask<ForeachTaskData>(planSettings, planTask) {
14+
planTask: ForeachTaskConfigData?
15+
) : AbstractTask<ForeachTaskConfigData>(planSettings, planTask) {
1616

17-
class ForeachTaskData(
18-
@Description("A list of items over which the ForEach task will iterate. (Only applicable for ForeachTask tasks) Can be used to process outputs from previous tasks.")
17+
class ForeachTaskConfigData(
18+
@Description("A list of items over which the ForEach task will iterate. (Only applicable for ForeachTask tasks) Can be used to process outputs from previous tasks.")
1919
val foreach_items: List<String>? = null,
20-
@Description("A map of sub-task IDs to PlanTask objects to be executed for each item. (Only applicable for ForeachTask tasks) Allows for complex task dependencies and information flow within iterations.")
21-
val foreach_subplan: Map<String, PlanTaskBase>? = null,
22-
task_description: String? = null,
23-
task_dependencies: List<String>? = null,
24-
state: TaskState? = null,
25-
) : PlanTaskBase(
20+
@Description("A map of sub-task IDs to PlanTask objects to be executed for each item. (Only applicable for ForeachTask tasks) Allows for complex task dependencies and information flow within iterations.")
21+
val foreach_subplan: Map<String, TaskConfigBase>? = null,
22+
task_description: String? = null,
23+
task_dependencies: List<String>? = null,
24+
state: TaskState? = null,
25+
) : TaskConfigBase(
2626
task_type = TaskType.ForeachTask.name,
2727
task_description = task_description,
2828
task_dependencies = task_dependencies,

webui/src/main/kotlin/com/simiacryptus/skyenet/apps/plan/GitHubSearchTask.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ import java.net.http.HttpResponse
1515

1616
class GitHubSearchTask(
1717
planSettings: PlanSettings,
18-
planTask: GitHubSearchTaskData?
19-
) : AbstractTask<GitHubSearchTask.GitHubSearchTaskData>(planSettings, planTask) {
20-
class GitHubSearchTaskData(
18+
planTask: GitHubSearchTaskConfigData?
19+
) : AbstractTask<GitHubSearchTask.GitHubSearchTaskConfigData>(planSettings, planTask) {
20+
class GitHubSearchTaskConfigData(
2121
@Description("The search query to use for GitHub search")
2222
val search_query: String,
2323
@Description("The type of GitHub search to perform (code, commits, issues, repositories, topics, users)")
@@ -31,7 +31,7 @@ class GitHubSearchTask(
3131
task_description: String? = null,
3232
task_dependencies: List<String>? = null,
3333
state: TaskState? = null,
34-
) : PlanTaskBase(
34+
) : TaskConfigBase(
3535
task_type = TaskType.GitHubSearch.name,
3636
task_description = task_description,
3737
task_dependencies = task_dependencies,

0 commit comments

Comments
 (0)