using System.Diagnostics; namespace Toak.Core.Skills; public class TerminalSkill : ISkill { public string Name => "Terminal"; public string Description => "Translates an intent into a bash command and runs it in the background."; public string[] Hotwords => new[] { "System terminal", "System command" }; public bool HandlesExecution => false; public string GetSystemPrompt(string rawTranscript) { return @"You are a command-line assistant. The user will ask you to perform a task. Translate the request into a single bash command. Output ONLY the raw bash command to achieve this task. Do not include markdown formatting, backticks, or explanations."; } public void Execute(string llmResult) { // HandlesExecution is false because we are not retarded enough // to let the LLM execute commands directly try { Console.WriteLine($"[TerminalSkill] Executing: {llmResult}"); var escapedCmd = llmResult.Replace("\"", "\\\""); var pInfo = new ProcessStartInfo { FileName = "bash", Arguments = $"-c \"{escapedCmd}\"", UseShellExecute = false, CreateNoWindow = true }; Process.Start(pInfo); IO.Notifications.Notify("Toak Terminal Executed", llmResult); } catch (Exception ex) { Console.WriteLine($"[TerminalSkill Error] {ex.Message}"); } } }