Files
gott/Models/ChatContext.cs
T
MelekiandClaude Opus 4.8 268f11fa6d Add multi-model panel with Fusion mode
Panel agents answer the user prompt in parallel (read-only, non-streaming);
their responses are merged into the worker's last user message as a
<panel_responses> block, and the session agent synthesizes one final
streamed answer. The RunPanel engine is built layer-ready for future MoA.

- New session fields: multi_model_mode (off/fusion), panel_agent_ids (CSV)
  with idempotent column migration
- New partial Services/AnthropicService.Panel.cs holding the RunPanel engine
- Provider-agnostic members: Anthropic RunNonStreamingToolLoop / OpenAI
  CompleteText / CLI plan-mode; all forced read-only, persisted with Tag=panel
- SSE events: panel_start, panel_member_start, panel_member_done, panel_done
- Frontend: multi-agent picker, live panel bubbles, history rendering
- Graceful degradation: panel errors fall back to worker-only

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 12:55:06 +02:00

61 lines
2.1 KiB
C#

using System.Collections.Generic;
using Gott.Services;
namespace Gott.Models;
public class ChatContext
{
public string ChainId { get; set; }
public string SessionId { get; set; }
public string ModelId { get; set; }
public string Provider { get; set; } // "" = Anthropic, "nvidia" = OpenAI-kompatibler Provider
public string Workspace { get; set; }
public string AgentId { get; set; }
public string SystemPromptText { get; set; }
public List<object> SystemPrompt { get; set; }
public List<PromptBlock> PromptBlocks { get; set; }
public string ToolChoice { get; set; }
public bool UseMemory { get; set; }
public string WebSearchVersion { get; set; }
public string Effort { get; set; }
public int MaxIterations { get; set; }
public AgentRecord Agent { get; set; }
public SessionRecord Session { get; set; }
public bool PlanMode { get; set; }
public string ApiToken { get; set; }
// Preparer-Agent (vor dem Worker)
public SubAgentContext Preparer { get; set; }
// Review-Agent
public SubAgentContext Review { get; set; }
// Finalizer-Agent
public SubAgentContext Finalizer { get; set; }
// Multi-Modell-Panel (Fusion): mehrere Agenten antworten parallel,
// der Worker synthetisiert. "off" / "fusion" (später "moa").
public string MultiModelMode { get; set; }
public List<SubAgentContext> PanelAgents { get; set; }
}
public class SubAgentContext
{
public string ModelId { get; set; }
public string Provider { get; set; } // "" = Anthropic, "nvidia"/"openai"/etc. = OpenAI-kompatibel
public List<object> SystemPrompt { get; set; }
public string AgentId { get; set; }
public string Workspace { get; set; }
public bool UseMemory { get; set; }
public string WebSearchVersion { get; set; }
public string ToolChoice { get; set; }
public string Effort { get; set; }
public AgentRecord Agent { get; set; }
// Preparer-spezifisch
public bool AllowUserChoice { get; set; }
// Review-spezifisch
public int MaxReviewIterations { get; set; }
}