Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
acharneski committed Dec 10, 2024
1 parent 53cf216 commit 22c9179
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.simiacryptus.skyenet.apps.plan
import com.simiacryptus.jopenai.ChatClient
import com.simiacryptus.jopenai.OpenAIClient
import com.simiacryptus.jopenai.describe.Description
import com.simiacryptus.jopenai.models.ChatModel
import com.simiacryptus.skyenet.Retryable
import com.simiacryptus.skyenet.apps.general.CmdPatchApp
import com.simiacryptus.skyenet.apps.general.PatchApp
Expand All @@ -18,6 +19,14 @@ class CommandAutoFixTask(
planSettings: PlanSettings,
planTask: CommandAutoFixTaskConfigData?
) : AbstractTask<CommandAutoFixTaskConfigData>(planSettings, planTask) {
class CommandAutoFixTaskSettings(
task_type: String,
enabled: Boolean = false,
model: ChatModel? = null,
@Description("List of command executables that can be used for auto-fixing")
var commandAutoFixCommands: List<String>? = listOf()
) : TaskSettingsBase(task_type, enabled, model)


class CommandAutoFixTaskConfigData(
@Description("The commands to be executed with their respective working directories")
Expand All @@ -40,14 +49,15 @@ class CommandAutoFixTask(
)

override fun promptSegment(): String {
val settings = planSettings.getTaskSettings(TaskType.CommandAutoFix) as CommandAutoFixTaskSettings
return """
CommandAutoFix - Run a command and automatically fix any issues that arise
** Specify the commands to be executed along with their working directories
** Each command's working directory should be specified relative to the root directory
** Provide the commands and their arguments in the 'commands' field
** Each command should be a list of strings
** Available commands:
${planSettings.commandAutoFixCommands?.joinToString("\n") { " * ${File(it).name}" }}
${settings.commandAutoFixCommands?.joinToString("\n") { " * ${File(it).name}" }}
""".trim()
}

Expand All @@ -69,7 +79,7 @@ ${planSettings.commandAutoFixCommands?.joinToString("\n") { " * ${File(it).na
val task = agent.ui.newTask(false).apply { it.append(placeholder) }
this.taskConfig?.commands?.forEachIndexed { index, commandWithDir ->
val alias = commandWithDir.command.firstOrNull()
val commandAutoFixCommands = agent.planSettings.commandAutoFixCommands
val commandAutoFixCommands = taskConfig.commands.map { it.command.firstOrNull() }
val cmds = commandAutoFixCommands
?.map { File(it) }?.associateBy { it.name }
?.filterKeys { it.startsWith(alias ?: "") }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ open class PlanSettings(
}.mapKeys { it.key.name }.toMutableMap(),
var autoFix: Boolean = false,
var allowBlocking: Boolean = true,
var commandAutoFixCommands: List<String>? = listOf(),
val env: Map<String, String>? = mapOf(),
val workingDir: String? = ".",
val language: String? = if (isWindows) "powershell" else "bash",
Expand All @@ -54,7 +53,6 @@ open class PlanSettings(
taskSettings: MutableMap<String, TaskSettingsBase> = this.taskSettings,
autoFix: Boolean = this.autoFix,
allowBlocking: Boolean = this.allowBlocking,
commandAutoFixCommands: List<String>? = this.commandAutoFixCommands,
env: Map<String, String>? = this.env,
workingDir: String? = this.workingDir,
language: String? = this.language,
Expand All @@ -67,7 +65,6 @@ open class PlanSettings(
taskSettings = taskSettings,
autoFix = autoFix,
allowBlocking = allowBlocking,
commandAutoFixCommands = commandAutoFixCommands,
env = env,
workingDir = workingDir,
language = language,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class TaskType<out T : TaskConfigBase, out U : TaskSettingsBase>(
val PerformanceAnalysis = TaskType("PerformanceAnalysis", PerformanceAnalysisTaskConfigData::class.java, TaskSettingsBase::class.java)
val RefactorTask = TaskType("RefactorTask", RefactorTaskConfigData::class.java, TaskSettingsBase::class.java)
val RunShellCommand = TaskType("RunShellCommand", RunShellCommandTaskConfigData::class.java, TaskSettingsBase::class.java)
val CommandAutoFix = TaskType("CommandAutoFix", CommandAutoFixTaskConfigData::class.java, TaskSettingsBase::class.java)
val CommandAutoFix = TaskType("CommandAutoFix", CommandAutoFixTaskConfigData::class.java, CommandAutoFixTask.CommandAutoFixTaskSettings::class.java)
val ForeachTask = TaskType("ForeachTask", ForeachTaskConfigData::class.java, TaskSettingsBase::class.java)
val GitHubSearch = TaskType("GitHubSearch", GitHubSearchTask.GitHubSearchTaskConfigData::class.java, TaskSettingsBase::class.java)
val GoogleSearch = TaskType("GoogleSearch", GoogleSearchTaskConfigData::class.java, TaskSettingsBase::class.java)
Expand Down

0 comments on commit 22c9179

Please sign in to comment.