fix: Plan-Modus – execute-Tool als readonly erlauben + Plaintext-Endpoint planMode-Parameter

- ToolService: execute in ReadOnlyToolNames aufgenommen
- SystemPromptBuilder: Plan-Modus Tools-Text um execute ergänzt
- SessionEndpoint: HandleSystemPrompt liest planMode Query-Parameter
This commit is contained in:
Meleki committed 2026-03-07 12:29:16 +01:00
1 parent 8e0ae90dc6
commit 55cbf02ed2
3 files changed
+4 -3

No files matched your search

+2 -1
View File
@@ -177,7 +177,8 @@ public static class SessionEndpoint
var resolvedWorkspace = WorkspaceHelper.ResolveWorkspace(session, user);
if (string.IsNullOrEmpty(resolvedWorkspace) && agentSkills.Any())
resolvedWorkspace = "/tmp";
var systemPrompt = SystemPromptBuilder.Build(agent, session, markedMessages, memoryService, agentMemoryDir, agentSkills, skillService, userPersona: user?.GetEffectivePersona(), resolvedWorkspace: resolvedWorkspace);
var planMode = ctx.Request.Query.ContainsKey("planMode") && ctx.Request.Query["planMode"] == "true";
var systemPrompt = SystemPromptBuilder.Build(agent, session, markedMessages, memoryService, agentMemoryDir, agentSkills, skillService, userPersona: user?.GetEffectivePersona(), resolvedWorkspace: resolvedWorkspace, planMode: planMode);
ctx.Response.ContentType = "text/plain; charset=utf-8";
await ctx.Response.WriteAsync(systemPrompt);
+1 -1
View File
@@ -68,7 +68,7 @@ JEDE Datei-Operation und JEDER Shell-Befehl MUSS über einen Tool-Aufruf erfolge
Icon = "fa-wrench",
Label = "Session · Workspace (Plan-Modus)",
Content = @$"## Tools
Du hast Read-only-Tools zur Verfügung (read_file, list_files, glob, grep). Benutze sie um den Code zu analysieren und zu verstehen.
Du hast Read-only-Tools zur Verfügung (read_file, list_files, glob, grep, execute). Benutze sie um den Code zu analysieren und zu verstehen.
Der Workspace-Pfad ist: `{effectiveWorkspace}`
Alle Dateipfade in Tool-Aufrufen müssen relativ zu diesem Workspace sein oder absolute Pfade verwenden, die mit diesem Pfad beginnen."
+1 -1
View File
@@ -23,7 +23,7 @@ public class ToolService
/// </summary>
private static readonly HashSet<string> ReadOnlyToolNames = new HashSet<string>
{
"read_file", "list_files", "glob", "grep", "todo_write",
"read_file", "list_files", "glob", "grep", "execute", "todo_write",
"memory_read", "memory_write", "memory_list",
AskUserChoiceToolName
};