Web-Suche (Agent-Toggle mit Versionswahl), Admin-only Backup, Haiku 4.5

- Agent: Web-Suche als Dropdown (Deaktiviert / 2025 / 2026) statt bool
- AnthropicService: web_search Tool dynamisch nach Version einfügen
- Stream: server_tool_use + web_search_tool_result Events verarbeiten
- Chat-Frontend: web_search_start/end Events mit Suchindikator
- Dashboard: Badge zeigt Web-Suche mit Jahresversion
- UserRecord: IsAdmin Feld, DB-Migration is_admin Spalte
- AuthMiddleware: IsAdmin aus DB laden und in Context setzen
- BackupEndpoint: Admin-Check (403 für Nicht-Admins)
- AuthEndpoint: isAdmin in Login/Me Response
- Frontend: Backup-Section nur für Admins sichtbar
- Haiku 4.5 als Model-Option (Agent-Dropdown + ChatEndpoint)
- TODO: Cronjobs, Haiku ergänzt
This commit is contained in:
Meleki committed 2026-03-02 14:05:59 +01:00
1 parent 485f47b29a
commit 8039b47dec
19 files changed
+155 -20

No files matched your search

+8 -1
View File
@@ -62,7 +62,9 @@ public static class AgentEndpoint
UseSoul = !body.TryGetProperty("useSoul", out var us) || us.GetBoolean(),
UseIdentity = !body.TryGetProperty("useIdentity", out var ui) || ui.GetBoolean(),
UseUserInfo = !body.TryGetProperty("useUserInfo", out var uu) || uu.GetBoolean(),
UseMemory = !body.TryGetProperty("useMemory", out var um) || um.GetBoolean()
UseMemory = !body.TryGetProperty("useMemory", out var um) || um.GetBoolean(),
UseWebSearch = body.TryGetProperty("webSearchVersion", out var wsv) && !string.IsNullOrEmpty(wsv.GetString()),
WebSearchVersion = body.TryGetProperty("webSearchVersion", out var wsv2) ? wsv2.GetString() ?? "" : ""
};
agent = await db.CreateAgent(agent);
@@ -93,6 +95,11 @@ public static class AgentEndpoint
if (body.TryGetProperty("useIdentity", out var ui)) agent.UseIdentity = ui.GetBoolean();
if (body.TryGetProperty("useUserInfo", out var uu)) agent.UseUserInfo = uu.GetBoolean();
if (body.TryGetProperty("useMemory", out var um)) agent.UseMemory = um.GetBoolean();
if (body.TryGetProperty("webSearchVersion", out var wsv))
{
agent.WebSearchVersion = wsv.GetString() ?? "";
agent.UseWebSearch = !string.IsNullOrEmpty(agent.WebSearchVersion);
}
await db.UpdateAgent(agent);
memoryService.InitializeAgentFiles(agentId, agent.Name);