MelekiandClaude Opus 4.8 c32d1e004f Fix panel member streaming and persist full transcript with images
Three related panel-member improvements:

Tool-box streaming fix: correlate tool boxes by tool ID instead of a
single pointer (fixes orphaned spinners and empty boxes when a member
calls multiple tools in one message), forward CLI ToolEnd to capture the
tool input (command/path), normalize tool names, clean up orphaned
spinners on finalize, and add a blinking cursor during text streaming.

Image/screenshot support: CLI panel members now extract image refs from
the last user message (like the worker) and drop them as temp files
readable via the Read tool, so members can see screenshots and file
attachments instead of being blind on image-based questions.

Reload persistence: each member persists a structured JSON transcript
({name, model, segments:[text|tool]}) instead of plain text, so a reload
restores text AND tool boxes interleaved exactly like live. history.js
renders the transcript and keeps back-compat for the old [Panel: Name]
plaintext format.

- AnthropicService.Agents.cs: NonStreamingLoopCallbacks.TranscriptSink,
  loop collects text/tool segments, tool input added to combined event
- AnthropicService.Panel.cs: CLI member ID-correlation + ToolEnd input +
  image refs + transcript; RunPanelMember persists one JSON transcript
- stream-ui.js: tool boxes keyed by ID, name normalization, cursor,
  orphaned-spinner cleanup
- history.js: render JSON transcript with tool boxes, plaintext fallback

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 16:51:40 +02:00
2026-03-01 14:25:43 +01:00

// gott

Self-hosted AI-Coding-Agent mit Anthropic Claude API als Haupt-Provider (inkl. Claude CLI-Integration) sowie OpenAI-kompatiblen Providern (Nvidia, Pollinations, Google Gemini, OpenAI). Stellt eine Web-UI bereit, über die man in Sessions mit konfigurierbaren Agenten chatten kann. Die Agenten haben Tool-Zugriff (Dateien lesen/schreiben/bearbeiten, Shell-Befehle ausführen, Web-/Code-Suche, Todos, Memory) auf ein definiertes Workspace-Verzeichnis.


Features

  • Multi-Agent-System – Bis zu 4 Agenten pro Session: Worker, Vorbereiter (Preparer), Reviewer, Finalizer
  • Vorbereiter-Agent – Optionaler Preparer, der User-Anfragen analysiert, Vorarbeit leistet und aufbereitete Prompts an den Worker weitergibt
  • Multi-Agent Review – Optionaler Review-Agent, der die Arbeit des Worker-Agents prüft und Feedback gibt
  • Finalizer-Agent – Optionaler Agent, der nach dem Review abschließende Arbeiten durchführt (z.B. Git-Commit, Deployment)
  • Interaktive Rückfragen – ask_user_choice-Tool: Agent stellt dem User klickbare Auswahlmöglichkeiten
  • Plan-Modus – Read-only-Modus zum Analysieren und Planen ohne Änderungen (Toggle im Chat)
  • Web-Search – Integrierte Web-Suche mit Quellenangaben (URLs + Titel) in Chat und geteilten Nachrichten
  • Multi-Provider – Anthropic Claude (Haupt-Provider, inkl. Claude CLI), Nvidia (g4f.space), Pollinations (kostenlos), Google Gemini (kostenloser Free Tier), OpenAI
  • 19 Tools – read_file, write_file, edit_file, list_files, delete_file, execute, background_execute, glob, grep, todo_write, memory_read, memory_write, memory_list, memory_search, remote_execute, send_to_session, ask_user_choice, github_code_search, serper_web_search
  • Streaming – Echtzeit-Antworten via Server-Sent Events (SSE)
  • Stop-Button – Laufende Requests zuverlässig abbrechen (inkl. laufender Shell-Befehle)
  • Skill-System – Wiederverwendbare Prompt-Bausteine, zuordenbar pro Agent
  • Memory – Persistentes Gedächtnis pro Agent (Dateisystem-basiert)
  • Workspace-Browser – Integrierter Datei-Explorer mit Editor
  • Telegram-Integration – Bots als eigenständige Entität, mehrere Sessions pro Bot, Public-Bots
  • Cronjobs – Zeitgesteuerte Prompts mit Cron-Expressions
  • Bildgenerierung – Krea AI Integration für Bildgenerierung
  • Semantische Suche – Lokale Sentence-Embeddings (all-MiniLM-L6-v2 ONNX) für memory_search über vergangene Nachrichten und Memory-Dateien
  • Auto-Context – Automatischer semantischer Kontext aus früheren Gesprächen + Memory wird vor jedem Request in den System-Prompt injiziert und im Chat als aufklappbare Box sichtbar gemacht
  • Remote-Verbindungen – WebSocket-basierte Remote-Clients für Windows (PowerShell, remote.ps1) und Linux/macOS (Bash + embedded Python, remote.sh); AI-Agent kann Befehle auf entfernten Rechnern ausführen, Tool-Description ist OS-aware
  • API-Key-Verwaltung – Admin-UI zum Verwalten von API-Keys (Anthropic, OpenAI, Google, Stripe) inkl. Multi-Provider Key-Check, API-Key-Scanner (GitHub Code Search, GitHub Issues/PRs, HuggingFace Hub, Google/Serper), GitHub Events Echtzeit-Scanner, passive Usage-Aktualisierung bei jeder Chat-Nachricht, Usage-Badge im Chat mit Key-Switch-Modal (pro Agent)
  • Claude CLI – Alternativer Streaming-Weg über die Claude Code CLI (OAuth-basiert, kein API-Key nötig); auch als Fallback für Sub-Agents (Preparer/Review/Finalizer) ohne zugewiesenen Key
  • Datenbank-Explorer – Admin-UI zum direkten Inspizieren der SQLite-Datenbank
  • MCP-Server-Integration – Interne API für externe MCP-Server (Remote-Execute, Ask-User-Choice, Memory-CRUD)
  • Nachrichten teilen – Einzelne Nachrichten per öffentlichem Link teilen
  • Archivierung – Chat-Verläufe archivieren und durchsuchen
  • OpenClaw Import – Chatverlauf aus OpenClaw-Instanzen importieren
  • Benutzerverwaltung – Multi-User mit Admin-Rollen, Impersonate, Login-Links
  • Servereinstellungen – Admin-UI für appsettings.Production.json
  • Desktop-Client – WPF + WebView2 Windows-App
  • Dark Theme – CSS-Variables basiertes Theming

Tech-Stack

Bereich Technologie
Backend .NET 10 Minimal API, C#
Datenbank SQLite + Dapper
AI Anthropic Claude API (+ Claude CLI) + OpenAI-kompatible APIs (Nvidia, Pollinations, Gemini, OpenAI)
Embeddings Microsoft.ML.OnnxRuntime + all-MiniLM-L6-v2 (Sentence-Embeddings)
Frontend Vanilla JS SPA (kein Framework), CSS Variables
Mathe KaTeX (LaTeX-Rendering)
Bilder SixLabors.ImageSharp
Cron Cronos
Desktop WPF + WebView2 (optional)

Voraussetzungen

  • .NET 10 SDK
  • Anthropic API Key (console.anthropic.com) – wird über Admin-UI verwaltet
  • Optional: Gemini API Key (aistudio.google.com) – kostenlos, kein Billing nötig
  • Optional: ONNX-Modell all-MiniLM-L6-v2 für semantische Suche (data/models/all-MiniLM-L6-v2/)
  • Linux/macOS/Windows (Produktiv: Linux empfohlen)

Konfiguration

Beim ersten Start wird appsettings.json mit Standardwerten verwendet. Für eigene Einstellungen eine appsettings.Production.json im Build/Linux/publish/-Verzeichnis anlegen (oder über die Admin-UI verwalten):

{
  "Port": 19000
}
Setting Beschreibung Default
Port Server-Port (erfordert Neustart) 19000
MaxIterations Max Tool-Loop Iterationen pro Chat 100
MaxHistory Max Messages in Chat-History 220
ReminderInterval System-Prompt-Reminder alle N Messages 30
ExecuteTimeout Timeout für Shell-Befehle in Sekunden 180
PayloadLogging API-Payloads in Konsole loggen false
PayloadLoggingGzip Payload-Logs als .gz komprimieren false
KreaToken Krea AI API Token (optional) –
KreaApiKey API-Key für Krea-Endpoints ohne User-Auth (optional) –
GeminiApiKey Google Gemini API Key (kostenlos via aistudio.google.com) –

Hinweis: AnthropicToken wird über die API-Key-Verwaltung im Admin-Bereich verwaltet (DB-Tabelle api_keys), nicht mehr über appsettings.json. Bestehende Tokens werden beim ersten Start automatisch migriert.

Hinweis: Die appsettings.Production.json wird nicht beim dotnet publish mitkopiert. Sie lebt ausschließlich im Build/Linux/publish/-Verzeichnis und kann über die Admin-UI (#/server-settings) verwaltet werden.

Starten

dotnet run

Die Web-UI ist dann unter http://localhost:19000 erreichbar.

Beim ersten Start wird automatisch ein Admin-Account erstellt:

  • Benutzername: admin
  • Passwort: admin

Deployment (Linux)

Empfohlen als systemd-Service hinter einem Reverse Proxy (Nginx, Caddy):

# deploy.sh (Beispiel)
#!/bin/bash
set -e
cd /app/gott
systemctl stop gott
dotnet publish -c Release -o publish
systemctl start gott

Beispiel systemd-Unit (/etc/systemd/system/gott.service):

[Unit]
Description=Gott
After=network.target

[Service]
Type=exec
WorkingDirectory=/app/gott
ExecStart=/app/gott/Build/Linux/publish/gott
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Projektstruktur

gott/
├── Program.cs                  # Startup, DI, Middleware, Routing
├── appsettings.json            # Standard-Konfiguration
├── Models/                     # Records (reine Daten)
├── Services/                   # Business-Logic (Singletons)
├── Endpoints/                  # HTTP API (Minimal API)
├── Middleware/                  # Auth-Middleware
├── Templates/                  # Vorlagen (IDENTITY.md, SOUL.md, USER.md)
├── wwwroot/                    # Frontend (Vanilla JS SPA)
│   ├── js/                     # App, Router, API, Chat, UI-Module (modular aufgeteilt), Pages
│   └── css/                    # Styles (theme.css = CSS Variables)
├── WindowsApp/                 # WPF + WebView2 Desktop Client
└── Build/                      # Build-Output + Laufzeit-Daten
    ├── Linux/
    │   ├── bin/
    │   ├── obj/
    │   └── publish/
    └── Windows/
        ├── bin/
        ├── obj/
        └── publish/
    └── data/
        ├── gott.db             # SQLite Datenbank
        ├── agents/{id}/        # Memory-Dateien pro Agent
        ├── skills/{slug}/      # Skill-Dateien
        └── images/             # Krea-generierte Bilder

Ausführliche Dokumentation: ARCHITECTURE.md · Kurzreferenz: ARCHITECTURE_QUICK.md


Lizenz

Proprietär – Alle Rechte vorbehalten.

S
Description
No description provided
Readme
3.1 MiB
0 Stars 1 Watchers 0 Forks
Languages
C# 65.9%
JavaScript 24.6%
CSS 5.1%
HTML 2.5%
Python 0.7%
Other 1.2%