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>
51 lines
1.8 KiB
C#
51 lines
1.8 KiB
C#
namespace Gott.Models;
|
|
|
|
public class SessionRecord
|
|
{
|
|
public long Id { get; set; }
|
|
public string SessionId { get; set; }
|
|
public string Name { get; set; }
|
|
public string Description { get; set; }
|
|
public string Image { get; set; }
|
|
public string ImageSmall { get; set; } // 256px Thumbnail für Listen
|
|
public string AgentId { get; set; }
|
|
public string Workspace { get; set; }
|
|
public string Context { get; set; }
|
|
public string CustomCommands { get; set; }
|
|
public string UserId { get; set; }
|
|
public bool IsDeleted { get; set; }
|
|
public string TelegramBotId { get; set; }
|
|
public string TelegramChatId { get; set; }
|
|
public double AvatarScale { get; set; } = 1.0;
|
|
public double AvatarOffsetX { get; set; }
|
|
public double AvatarOffsetY { get; set; }
|
|
public string ReviewAgentId { get; set; }
|
|
public int MaxReviewIterations { get; set; } = 3;
|
|
public string FinalizerAgentId { get; set; }
|
|
public string PreparerAgentId { get; set; }
|
|
public string MultiModelMode { get; set; } // "off" / "fusion" (später "moa")
|
|
public string PanelAgentIds { get; set; } // CSV der Panel-Agenten (Proposer)
|
|
public string UnityMcpUrl { get; set; }
|
|
public string UnityMcpToken { get; set; }
|
|
public string CreatedAt { get; set; }
|
|
public string UpdatedAt { get; set; }
|
|
}
|
|
|
|
public class SessionWithStats
|
|
{
|
|
public SessionRecord Session { get; set; }
|
|
public int MessageCount { get; set; }
|
|
public int ArchiveMessageCount { get; set; }
|
|
public int TotalMessageCount { get; set; }
|
|
public bool TelegramConfigured { get; set; }
|
|
public bool TelegramLinked { get; set; }
|
|
}
|
|
|
|
public class GitStatusSummary
|
|
{
|
|
public int Add { get; set; }
|
|
public int Edit { get; set; }
|
|
public int Delete { get; set; }
|
|
public int Outgoing { get; set; }
|
|
}
|