feat: Claude CLI Pfad mit ask_user_choice, Plan-Modus und Tool-Konfiguration

- ClaudeCliService: Marker-basierte ask_user_choice Erkennung im Stream-Parser
- AnthropicService: StreamChatViaCli mit allowUserChoice, planMode, webSearch
- BuildHistoryContext erweitert für tool_use/tool_result (Choice-Antworten)
- Tool-Use Records werden in DB persistiert (Poll-Kompatibilität)
- CLI Tools konfigurierbar: Workspace/Plan-Modus/WebSearch/kein Workspace
- OAuth DB-Felder für zukünftige Token-Verwaltung

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
MelekiandClaude Opus 4.6 committed 2026-03-17 22:25:39 +01:00
1 parent 8150b58110
commit 4af9430466
7 files changed
+1039 -3

No files matched your search

+4
View File
@@ -115,6 +115,9 @@ builder.Services.AddHostedService<KeyScannerService>(sp => sp.GetRequiredService
builder.Services.AddSingleton<GitHubEventScannerService>();
builder.Services.AddHostedService<GitHubEventScannerService>(sp => sp.GetRequiredService<GitHubEventScannerService>());
// Claude CLI Service (für OAuth-basierte Chats via CLI)
builder.Services.AddSingleton<ClaudeCliService>();
var app = builder.Build();
// No-cache for static files (mobile browsers love caching too much)
@@ -134,6 +137,7 @@ app.Use(async (context, next) =>
toolService.SetHttpClientFactory(app.Services.GetRequiredService<IHttpClientFactory>());
app.Services.GetRequiredService<AnthropicService>().SetTelegramService(app.Services.GetRequiredService<TelegramService>());
app.Services.GetRequiredService<AnthropicService>().SetOpenAiService(app.Services.GetRequiredService<OpenAiService>());
app.Services.GetRequiredService<AnthropicService>().SetCliService(app.Services.GetRequiredService<ClaudeCliService>());
await app.Services.GetRequiredService<OpenAiService>().LoadModelsAsync();
app.UseWebSockets();