using System.IO; using System.Text.Json; namespace AxCopilot.Services.Agent; public sealed class EnterPlanModeTool : IAgentTool { public string Name => "enter_plan_mode"; public string Description => "Enable plan mode marker for current workspace."; public ToolParameterSchema Parameters => new() { Properties = new(), Required = [] }; public Task ExecuteAsync(JsonElement args, AgentContext context, CancellationToken ct = default) { if (string.IsNullOrWhiteSpace(context.WorkFolder) || !Directory.Exists(context.WorkFolder)) return Task.FromResult(ToolResult.Fail("valid WorkFolder is required.")); var path = Path.Combine(context.WorkFolder, ".ax", "plan_mode.state"); var dir = Path.GetDirectoryName(path); if (!string.IsNullOrWhiteSpace(dir) && !Directory.Exists(dir)) Directory.CreateDirectory(dir); File.WriteAllText(path, "on", TextFileCodec.Utf8NoBom); return Task.FromResult(ToolResult.Ok("Plan mode enabled.")); } }