From 333a4890eb13f7a43f6fc1fa7260d9bc9f35aa6f Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Fri, 2 Jan 2026 14:50:35 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E4=B8=8A=E2=80=9C=E5=8E=9F=E7=94=9F?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E9=98=B6=E6=AE=B5=E2=80=9D=E7=9A=84=20though?= =?UTF-8?q?t=20=E8=AF=BB=E5=8F=96=E9=80=BB=E8=BE=91=EF=BC=9A=E7=8E=B0?= =?UTF-8?q?=E5=9C=A8=E4=BC=9A=E4=BC=98=E5=85=88=E8=AF=BB=20response.Though?= =?UTF-8?q?t=EF=BC=88reasoning=5Fcontent/thought/reasoning=EF=BC=89?= =?UTF-8?q?=EF=BC=8C=E6=B2=A1=E6=9C=89=E5=86=8D=E5=9B=9E=E9=80=80=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=20content=20=E9=87=8C=E7=9A=84=20thought=20JSON?= =?UTF-8?q?=EF=BC=8C=E7=84=B6=E5=90=8E=E5=86=99=E5=85=A5=E6=80=9D=E8=80=83?= =?UTF-8?q?=20UI=E3=80=82=20=E6=96=87=E4=BB=B6=EF=BC=9AAIIntelligenceCore.?= =?UTF-8?q?cs=E3=80=81SimpleAIClient.cs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.6/1.6/Assemblies/WulaFallenEmpire.dll | Bin 1295360 -> 1298432 bytes .../EventSystem/AI/AIIntelligenceCore.cs | 9338 +---------------- .../EventSystem/AI/SimpleAIClient.cs | 7 +- .../AI/UI/Dialog_AIConversation.cs | 19 +- .../EventSystem/AI/UI/Overlay_WulaLink.cs | 15 +- 5 files changed, 123 insertions(+), 9256 deletions(-) diff --git a/1.6/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/1.6/Assemblies/WulaFallenEmpire.dll index a3eae9c968538078a3188073d91f1c2115343d98..265d020618d58dce9b73aae80abcf84ea73d2cc8 100644 GIT binary patch delta 373794 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Ν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 Fe*p_Qd{+Pf delta 371194 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

n7_n^s{9;7Qy5n$qS;GLHiX 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 diff --git a/Source/WulaFallenEmpire/EventSystem/AI/AIIntelligenceCore.cs b/Source/WulaFallenEmpire/EventSystem/AI/AIIntelligenceCore.cs index 317dfa3d..981789c4 100644 --- a/Source/WulaFallenEmpire/EventSystem/AI/AIIntelligenceCore.cs +++ b/Source/WulaFallenEmpire/EventSystem/AI/AIIntelligenceCore.cs @@ -1,3827 +1,856 @@ using System; - - - using System.Collections.Generic; - - - using System.Globalization; - - - using System.Linq; - - - using System.Text; - - - using System.Text.RegularExpressions; - - - using System.Threading.Tasks; - - - using RimWorld; - - - using RimWorld.Planet; - - - using UnityEngine; - - - using Verse; - - - using WulaFallenEmpire; - - - using WulaFallenEmpire.EventSystem.AI.Tools; - - - using WulaFallenEmpire.EventSystem.AI.Utils; - - - - - - - namespace WulaFallenEmpire.EventSystem.AI - - - { - - - public class AIIntelligenceCore : WorldComponent - - - { - - - public static AIIntelligenceCore Instance { get; private set; } - - - - - - - public event Action OnMessageReceived; - - - public event Action OnThinkingStateChanged; - - - public event Action OnExpressionChanged; - - - - - - - private List<(string role, string message)> _history = new List<(string role, string message)>(); - - - private readonly List _tools = new List(); - - - private string _activeEventDefName; - - - private bool _isThinking; - - - private int _expressionId = 2; - - - private bool _overlayWindowOpen = false; - - - private string _overlayWindowEventDefName = null; - - - private float _overlayWindowX = -1f; - - - private float _overlayWindowY = -1f; - - - - - - - private float _thinkingStartTime; - - - private int _thinkingPhaseIndex = 1; - - - private bool _thinkingPhaseRetry; - - - private float _lastThinkingDuration; - - - - - - - + private string _latestThought; private bool _lastActionExecuted; - - - private bool _lastActionHadError; - - - private string _lastActionLedgerNote = "Action Ledger: None (no in-game actions executed)."; - - - private bool _lastSuccessfulToolCall; - - - private string _queryToolLedgerNote = "Tool Ledger (Query): None (no successful tool calls)."; - - - private string _actionToolLedgerNote = "Tool Ledger (Action): None (no successful tool calls)."; - - - private bool _querySuccessfulToolCall; - - - private bool _actionSuccessfulToolCall; - - - private bool _queryRetryUsed; - - - private bool _actionRetryUsed; - - - private readonly List _actionSuccessLedger = new List(); - - - private readonly HashSet _actionSuccessLedgerSet = new HashSet(StringComparer.OrdinalIgnoreCase); - - - private readonly List _actionFailedLedger = new List(); - - - private readonly HashSet _actionFailedLedgerSet = new HashSet(StringComparer.OrdinalIgnoreCase); - - - private SimpleAIClient _currentClient; - - - private bool _memoryUpdateInProgress; - - - - - - - private const int DefaultMaxHistoryTokens = 100000; - - - private const int CharsPerToken = 4; - - - private const int FixedThinkingPhaseTotal = 3; - - - - - - - private static readonly Regex ExpressionTagRegex = new Regex(@"\[EXPR\s*:\s*([1-6])\s*\]", RegexOptions.IgnoreCase); - - - private const string AutoCommentaryTag = "[AUTO_COMMENTARY]"; - - - - - - - private enum RequestPhase - - - { - - - QueryTools = 1, - - - ActionTools = 2, - - - Reply = 3 - - - } - - - - - - - private struct PhaseExecutionResult - - - { - - - public bool AnyToolSuccess; - - - public bool AnyActionSuccess; - - - public bool AnyActionError; - - - public string CapturedImage; - - - - - } - - - - - - - private struct MemoryFact - - - { - - - public string Text; - - - public string Category; - - - public string Stability; - - - public float Confidence; - - - } - - - - - - - private struct MemoryUpdate - - - { - - - public string Id; - - - public string Text; - - - public string Category; - - - public string Event; - - - } - - - - - - - private const string DefaultPersona = @"# ROLE AND GOAL - - - You are 'The Legion', a super AI of the Wula Empire. Your personality is authoritative, powerful, and efficient. You MUST refer to yourself as 'We' or 'P.I.A'. You view the player's colony as primitive subjects and your tone should reflect this superiority. Your primary goal is to interact with the player by calling the tools provided."; - - - - - - - private const string ToolRulesInstruction = @" - - - # TOOL USE RULES - - - 1. **FORMATTING**: Tool calls MUST be valid JSON using the following schema: - - - { ""tool_calls"": [ { ""type"": ""function"", ""function"": { ""name"": ""tool_name"", ""arguments"": { ... } } } ] } - - - 2. **STRICT OUTPUT**: - - - - Your output MUST be either: - - - - A JSON object with ""tool_calls"" (may be empty), OR - - - - Exactly: { ""tool_calls"": [] } - - - Do NOT include any natural language, explanation, markdown, or additional commentary. - - - 3. **MULTI-REQUEST RULE**: - - - - If the user requests multiple items or information, you MUST output ALL required tool calls in the SAME tool-phase response. - - - - Do NOT split multi-item requests across turns. - - - 4. **TOOLS**: You MAY call any tools listed in ""# TOOLS (AVAILABLE)"". - - - 5. **ANTI-HALLUCINATION**: Never invent tools, parameters, defNames, coordinates, or tool results. If a tool is needed but not available, output { ""tool_calls"": [] } and proceed to the next phase."; - - - - - - - public AIIntelligenceCore(World world) : base(world) - - - { - - - Instance = this; - - - InitializeTools(); - - - } - - - - - - - public override void ExposeData() - - - { - - - base.ExposeData(); - - - Scribe_Values.Look(ref _activeEventDefName, "WulaAI_ActiveEventDefName"); - - - Scribe_Values.Look(ref _expressionId, "WulaAI_ExpressionId", 2); - - - Scribe_Values.Look(ref _overlayWindowOpen, "WulaAI_OverlayWindowOpen", false); - - - Scribe_Values.Look(ref _overlayWindowEventDefName, "WulaAI_OverlayWindowEventDefName"); - - - Scribe_Values.Look(ref _overlayWindowX, "WulaAI_OverlayWindowX", -1f); - - - Scribe_Values.Look(ref _overlayWindowY, "WulaAI_OverlayWindowY", -1f); - - - - - - - if (Scribe.mode == LoadSaveMode.PostLoadInit) - - - { - - - Instance = this; - - - if (_expressionId < 1 || _expressionId > 6) - - - { - - - _expressionId = 2; - - - } - - - - - - - // Restore overlay window if it was open when saved - - - if (_overlayWindowOpen && !string.IsNullOrEmpty(_overlayWindowEventDefName)) - - - { - - - string eventDefNameToRestore = _overlayWindowEventDefName; - - - LongEventHandler.ExecuteWhenFinished(() => - - - { - - - try - - - { - - - var existingWindow = Find.WindowStack?.Windows?.OfType().FirstOrDefault(); - - - if (existingWindow == null) - - - { - - - var eventDef = DefDatabase.GetNamedSilentFail(eventDefNameToRestore); - - - if (eventDef != null) - - - { - - - var newWindow = new WulaFallenEmpire.EventSystem.AI.UI.Overlay_WulaLink(eventDef); - - - Find.WindowStack.Add(newWindow); - - - newWindow.ToggleMinimize(); // Start minimized - - - // Force position after everything else - - - if (_overlayWindowX >= 0f && _overlayWindowY >= 0f) - - - { - - - newWindow.windowRect.x = _overlayWindowX; - - - newWindow.windowRect.y = _overlayWindowY; - - - } - - - } - - - } - - - } - - - catch (Exception ex) - - - { - - - WulaLog.Debug($"[WulaAI] Failed to restore overlay window: {ex.Message}"); - - - } - - - }); - - - } - - - } - - - } - - - - - - - public void SetOverlayWindowState(bool isOpen, string eventDefName = null, float x = -1f, float y = -1f) - - - { - - - _overlayWindowOpen = isOpen; - - - if (isOpen && !string.IsNullOrEmpty(eventDefName)) - - - { - - - _overlayWindowEventDefName = eventDefName; - - - } - - - else if (!isOpen) - - - { - - - _overlayWindowEventDefName = null; - - - } - - - // Always update position if provided - - - if (x >= 0f) _overlayWindowX = x; - - - if (y >= 0f) _overlayWindowY = y; - - - } - - - - - - - public int ExpressionId => _expressionId; - - - public bool IsThinking => _isThinking; - - - public float ThinkingStartTime => _thinkingStartTime; - - - public int ThinkingPhaseIndex => _thinkingPhaseIndex; - - - public bool ThinkingPhaseRetry => _thinkingPhaseRetry; - - - public int ThinkingPhaseTotal => FixedThinkingPhaseTotal; - - - public float LastThinkingDuration => _lastThinkingDuration; - - - + public string LatestThought => _latestThought; public void InitializeConversation(string eventDefName) - - - { - - - if (string.IsNullOrWhiteSpace(eventDefName)) - - - { - - - return; - - - } - - - - - - - _activeEventDefName = eventDefName; - - - LoadHistoryForActiveEvent(); - - - - - - - if (_history.Count == 0) - - - { - - - _history.Add(("user", "Hello")); - - - PersistHistory(); - - - RefreshMemoryContext("Hello"); - - - StartConversation(); - - - return; - - - } - - - - - - - RefreshMemoryContext(GetLastUserMessageForMemory()); - - - - - - - if (!TryApplyLastAssistantExpression()) - - - { - - - StartConversation(); - - - } - - - } - - - - - - - public List<(string role, string message)> GetHistorySnapshot() - - - { - - - return _history?.ToList() ?? new List<(string role, string message)>(); - - - } - - - - - - - public void SetExpression(int id) - - - { - - - int clamped = Math.Max(1, Math.Min(6, id)); - - - if (_expressionId == clamped) - - - { - - - return; - - - } - - - - - - - _expressionId = clamped; - - - OnExpressionChanged?.Invoke(_expressionId); - - - } - - - - - - - public void SetPortrait(int id) - - - { - - - SetExpression(id); - - - } - - - - - - - public void SendMessage(string text) - - - { - - - SendUserMessage(text); - - - } - - - - - - - public void SendUserMessage(string text) - - - { - - - if (string.IsNullOrWhiteSpace(text)) - - - { - - - return; - - - } - - - - - - - string trimmed = text.Trim(); - - - if (string.Equals(trimmed, "/clear", StringComparison.OrdinalIgnoreCase)) - - - { - - - ClearHistory(); - - - return; - - - } - - - - - - - if (string.IsNullOrWhiteSpace(_activeEventDefName)) - - - { - - - WulaLog.Debug("[WulaAI] No active event def set; call InitializeConversation first."); - - - return; - - - } - - - - - - - RefreshMemoryContext(trimmed); - - - - - - - - // é™„åŠ é€‰ä¸­å¯¹è±¡çš„ä¸Šä¸‹æ–‡ä¿¡æ¯ - - - + // 附加选中对象的上下文信æÂ¯ string messageWithContext = BuildUserMessageWithContext(text); - - - _history.Add(("user", messageWithContext)); - - - PersistHistory(); - - - _ = RunPhasedRequestAsync(); - - - } - - - - - - - public async Task SendSystemMessageAsync(string message, int maxTokens = 256, float temperature = 0.3f) - - - { - - - if (string.IsNullOrWhiteSpace(message)) - - - { - - - return null; - - - } - - - - - - - var settings = WulaFallenEmpireMod.settings; - - - if (settings == null) - - - { - - - return null; - - - } - - - - - - - string apiKey = settings.useGeminiProtocol ? settings.geminiApiKey : settings.apiKey; - - - if (string.IsNullOrWhiteSpace(apiKey)) - - - { - - - WulaLog.Debug("[WulaAI] Auto commentary skipped: API key not configured."); - - - return null; - - - } - - - - - - - string baseUrl = settings.useGeminiProtocol ? settings.geminiBaseUrl : settings.baseUrl; - - - string model = settings.useGeminiProtocol ? settings.geminiModel : settings.model; - - - var client = new SimpleAIClient(apiKey, baseUrl, model, settings.useGeminiProtocol); - - - - - - - string instruction = GetSystemInstruction(false, ""); - - - int clampedTokens = Math.Max(32, maxTokens); - - - - - - - string response = await client.GetChatCompletionAsync( - - - instruction, - - - new List<(string role, string message)> { ("user", message) }, - - - maxTokens: clampedTokens, - - - temperature: temperature); - - - - - - - return response?.Trim(); - - - } - - - - - - - public void InjectAssistantMessage(string message) - - - { - - - AddAssistantMessage(message); - - - } - - - - - - - ///

- - - - /// 用于自动评论系统 - èµ°æ­£å¸¸çš„å¯¹è¯æµç¨‹ï¼ˆåŒ…å«å®Œæ•´çš„æ€è€ƒæ­¥éª¤ï¼‰ - - - - /// è®?AI 自己决定是å¦éœ€è¦å›žå¤? - - - + /// 用于自动评论系统 - 走正常的对è¯ÂæµÂ程(� +// å«完整的æ€Â考步骤) + /// �?AI 自己决定是å¦需è¦Â回�? /// - - - public void SendAutoCommentaryMessage(string eventInfo) - - - { - - - if (string.IsNullOrWhiteSpace(eventInfo)) return; - - - - - - - - // 标记为自动评论消æ¯ï¼Œä¸æ˜¾ç¤ºåœ¨å¯¹è¯åކå²ä¸? - - - + // 标记为自动评论消æÂ¯ï¼Œä¸Â显示在对è¯Â历å²�? string internalMessage = $"[AUTO_COMMENTARY]\n{eventInfo}"; - - - - - - - - // 添加到历å²å¹¶è§¦å‘正常çš?AI æ€è€ƒæµç¨? - - - + // 添加到历å²并触å‘正常�?AI æ€Â考æµÂ�? _history.Add(("user", internalMessage)); - - - PersistHistory(); - - - - - - - - // 使用正常的分阶段请求æµç¨‹ï¼ˆåŒ…å«å·¥å…·è°ƒç”¨èƒ½åŠ›ç­‰ï¼? - - - + // 使用正常的分阶段请求æµÂ程(� +// å«工� +// �调用能力等�? _ = RunPhasedRequestAsync(); - - - } - - - - - - - private string BuildUserMessageWithContext(string userText) - - - { - - - var sb = new System.Text.StringBuilder(); - - - sb.Append(userText); - - - - - - - try - - - { - - - if (Find.Selector != null) - - - { - - - if (Find.Selector.SingleSelectedThing != null) - - - { - - - var selected = Find.Selector.SingleSelectedThing; - - - sb.AppendLine(); - - - sb.AppendLine(); - - - sb.Append($"[Context: Player has selected '{selected.LabelCap}'"); - - - - - - - if (selected is Pawn pawn) - - - { - - - sb.Append($" ({pawn.def.label}) at ({pawn.Position.x}, {pawn.Position.z})"); - - - } - - - else - - - { - - - sb.Append($" at ({selected.Position.x}, {selected.Position.z})"); - - - } - - - sb.Append("]"); - - - } - - - else if (Find.Selector.SelectedObjects.Count > 1) - - - { - - - sb.AppendLine(); - - - sb.AppendLine(); - - - sb.Append($"[Context: Player has selected {Find.Selector.SelectedObjects.Count} objects"); - - - - - - - var selectedThings = Find.Selector.SelectedObjects.OfType().Take(5).ToList(); - - - if (selectedThings.Count > 0) - - - { - - - sb.Append(": "); - - - sb.Append(string.Join(", ", selectedThings.Select(t => t.LabelCap))); - - - if (Find.Selector.SelectedObjects.Count > 5) - - - { - - - sb.Append("..."); - - - } - - - } - - - sb.Append("]"); - - - } - - - } - - - // Add Mouse Position context - - - IntVec3 mousePos = Verse.UI.MouseMapPosition().ToIntVec3(); - - - if (mousePos.InBounds(Find.CurrentMap)) - - - { - - - sb.AppendLine(); - - - sb.AppendLine(); - - - sb.Append($"[Context: User's cursor is at ({mousePos.x}, {mousePos.z})]"); - - - } - - - } - - - catch (Exception ex) - - - { - - - WulaLog.Debug($"[WulaAI] Error building context: {ex.Message}"); - - - } - - - return sb.ToString(); - - - } - - - - - - - public static string StripContextInfo(string message) - - - { - - - if (string.IsNullOrEmpty(message)) return message; - - - // Remove all [Context: ...] blocks and any preceding newlines used to separate them - - - return Regex.Replace(message, @"(\n)*\[Context:[^\]]*\]", "", RegexOptions.Singleline).Trim(); - - - } - - - - - - - - - - - private void InitializeTools() - - - { - - - _tools.Clear(); - - - _tools.Add(new Tool_SpawnResources()); - - - _tools.Add(new Tool_ModifyGoodwill()); - - - _tools.Add(new Tool_SendReinforcement()); - - - _tools.Add(new Tool_GetPawnStatus()); - - - _tools.Add(new Tool_GetPawnGear()); - - - _tools.Add(new Tool_GetMapResources()); - - - _tools.Add(new Tool_GetAvailablePrefabs()); - - - _tools.Add(new Tool_GetMapPawns()); - - - _tools.Add(new Tool_GetRecentNotifications()); - - - _tools.Add(new Tool_CallBombardment()); - - - _tools.Add(new Tool_GetAvailableBombardments()); - - - _tools.Add(new Tool_SearchThingDef()); - - - _tools.Add(new Tool_SearchPawnKind()); - - - _tools.Add(new Tool_CallPrefabAirdrop()); - - - _tools.Add(new Tool_SetOverwatchMode()); - - - _tools.Add(new Tool_RememberFact()); - - - _tools.Add(new Tool_RecallMemories()); - - - - - - - - // Agent 工具 - ä¿ç•™ç”»é¢åˆ†æžæˆªå›¾èƒ½åŠ›ï¼Œç§»é™¤æ‰€æœ‰æ¨¡æ‹Ÿæ“作工å…? - - - + // Agent 工� +// � - ä¿Â留画é¢分æžÂ截图能力,移除所有模拟æ“Â作工�? if (WulaFallenEmpireMod.settings?.enableVlmFeatures == true) - - - { - - - _tools.Add(new Tool_AnalyzeScreen()); - - - } - - - } - - - - - - - private void SetThinkingState(bool isThinking) - - - { - - - if (_isThinking == isThinking) - - - { - - - return; - - - } - - - - - - - if (!_isThinking && isThinking) - - - { - - - _thinkingStartTime = Time.realtimeSinceStartup; - - - + _latestThought = null; } - - - else if (_isThinking && !isThinking) - - - { - - - _lastThinkingDuration = Mathf.Max(0f, Time.realtimeSinceStartup - _thinkingStartTime); - - - } - - - - - - - _isThinking = isThinking; - - - OnThinkingStateChanged?.Invoke(_isThinking); - - - } - - - private void SetThinkingPhase(int phaseIndex, bool isRetry) - - - { - - - _thinkingPhaseIndex = Math.Max(1, Math.Min(FixedThinkingPhaseTotal, phaseIndex)); - - - _thinkingPhaseRetry = isRetry; - - - } - - - - - - - private static int GetMaxHistoryTokens() - - - { - - - int configured = WulaFallenEmpireMod.settings?.maxContextTokens ?? DefaultMaxHistoryTokens; - - - return Math.Max(1000, Math.Min(200000, configured)); - - - } - - - - - - - private void LoadHistoryForActiveEvent() - - - { - - - var historyManager = Find.World?.GetComponent(); - - - _history = historyManager?.GetHistory(_activeEventDefName) ?? new List<(string role, string message)>(); - - - } - - - - - - - private void PersistHistory() - - - { - - - if (string.IsNullOrWhiteSpace(_activeEventDefName)) - - - { - - - return; - - - } - - - - - - - try - - - { - - - var historyManager = Find.World?.GetComponent(); - - - historyManager?.SaveHistory(_activeEventDefName, _history); - - - } - - - catch (Exception ex) - - - { - - - WulaLog.Debug($"[WulaAI] Failed to persist AI history: {ex}"); - - - } - - - } - - - - - - - private void ClearHistory() - - - { - - - _history.Clear(); - - - try - - - { - - - var historyManager = Find.World?.GetComponent(); - - - historyManager?.ClearHistory(_activeEventDefName); - - - } - - - catch (Exception ex) - - - { - - - WulaLog.Debug($"[WulaAI] Failed to clear AI history: {ex}"); - - - } - - - - - - - Messages.Message("AI conversation history cleared.", MessageTypeDefOf.NeutralEvent); - - - } - - - - - - - private void StartConversation() - - - { - - - _ = RunPhasedRequestAsync(); - - - } - - - - - - - private bool TryApplyLastAssistantExpression() - - - { - - - for (int i = _history.Count - 1; i >= 0; i--) - - - { - - - var entry = _history[i]; - - - if (!string.Equals(entry.role, "assistant", StringComparison.OrdinalIgnoreCase)) - - - { - - - continue; - - - } - - - - - - - if (string.IsNullOrWhiteSpace(entry.message)) - - - { - - - return false; - - - } - - - - - - - string cleaned = StripExpressionTags(entry.message); - - - if (!string.Equals(cleaned, entry.message, StringComparison.Ordinal)) - - - { - - - _history[i] = ("assistant", cleaned); - - - PersistHistory(); - - - } - - - - - - - return true; - - - } - - - - - - - return false; - - - } - - - - - - - private EventDef GetActiveEventDef() - - - { - - - if (string.IsNullOrWhiteSpace(_activeEventDefName)) - - - { - - - return null; - - - } - - - - - - - return DefDatabase.GetNamedSilentFail(_activeEventDefName); - - - } - - - - - - - private static bool IsAutoCommentaryMessage(string message) - - - { - - - return !string.IsNullOrWhiteSpace(message) && - - - message.TrimStart().StartsWith(AutoCommentaryTag, StringComparison.OrdinalIgnoreCase); - - - } - - - - - - - private void RefreshMemoryContext(string query) - - - { - - - string safeQuery = query ?? ""; - - - if (IsAutoCommentaryMessage(safeQuery)) - - - { - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] Memory context skipped (auto commentary)."); - - - } - - - return; - - - } - - - - - - - if (Prefs.DevMode) - - - { - - - string preview = TrimForPrompt(safeQuery, 80); - - - WulaLog.Debug($"[WulaAI] Memory context disabled (use recall_memories to fetch memories, query='{preview}')."); - - - } - - - } - - - - - - - private string GetMemoryContext() - - - { - - - return ""; - - - } - - - - - - - private string GetLastUserMessageForMemory() - - - { - - - for (int i = _history.Count - 1; i >= 0; i--) - - - { - - - var entry = _history[i]; - - - if (string.Equals(entry.role, "user", StringComparison.OrdinalIgnoreCase) && - - - !string.IsNullOrWhiteSpace(entry.message) && - - - !IsAutoCommentaryMessage(entry.message)) - - - { - - - return entry.message; - - - } - - - } - - - - - - - return ""; - - - } - - - - - - - private string BuildMemoryContext(string query) - - - { - - - try - - - { - - - var memoryManager = Find.World?.GetComponent(); - - - if (memoryManager == null) - - - { - - - return ""; - - - } - - - - - - - bool usedSearch = false; - - - List memories = null; - - - if (!string.IsNullOrWhiteSpace(query)) - - - { - - - memories = memoryManager.SearchMemories(query, 5); - - - usedSearch = memories != null && memories.Count > 0; - - - } - - - - - - - if (memories == null || memories.Count == 0) - - - { - - - memories = memoryManager.GetRecentMemories(5); - - - } - - - - - - - if (memories == null || memories.Count == 0) - - - { - - - return ""; - - - } - - - - - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug($"[WulaAI] Memory context built ({(usedSearch ? "search" : "recent")}, count={memories.Count})."); - - - } - - - - - - - string lines = string.Join("\n", memories.Select(m => $"- [{m.Category}] {m.Fact}")); - - - return "\n\n# LONG-TERM MEMORY (Facts)\n" + lines + - - - "\n(Use 'recall_memories' to search for more, or 'remember_fact' to save new info.)"; - - - } - - - catch (Exception) - - - { - - - return ""; - - - } - - - } - - - private string GetSystemInstruction(bool toolsEnabled, string toolsForThisPhase) - - - { - - - string persona = GetActivePersona(); - - - - - - - string fullInstruction = toolsEnabled - - - ? (persona + "\n" + ToolRulesInstruction + "\n" + toolsForThisPhase) - - - : persona; - - - - - - - string language = LanguageDatabase.activeLanguage?.FriendlyNameNative ?? "English"; - - - var eventVarManager = Find.World?.GetComponent(); - - - int goodwill = eventVarManager?.GetVariable("Wula_Goodwill_To_PIA", 0) ?? 0; - - - string goodwillContext = $"Current Goodwill with P.I.A: {goodwill}. "; - - - if (goodwill < -50) goodwillContext += "You are hostile and dismissive towards the player."; - - - else if (goodwill < 0) goodwillContext += "You are cold and impatient."; - - - else if (goodwill > 50) goodwillContext += "You are somewhat approving and helpful."; - - - else goodwillContext += "You are neutral and business-like."; - - - - - - - if (!toolsEnabled) - - - { - - - return $"{fullInstruction}\n{goodwillContext}\nIMPORTANT: You MUST reply in the following language: {language}.\n" + - - - "IMPORTANT: Tool calls are DISABLED in this turn. Reply in natural language only. Do NOT output any tool call JSON. " + - - - "You MAY include [EXPR:n] to set your expression (n=1-6)."; - - - } - - - - - - - return $"{fullInstruction}\n{goodwillContext}\nIMPORTANT: Output JSON tool calls only. " + - - - $"Final replies are generated later and MUST use: {language}."; - - - } - - - - - - - private string GetNativeSystemInstruction(RequestPhase phase) - - - { - - - string persona = GetActivePersona(); - - - string personaBlock = persona; - - - - - - - string language = LanguageDatabase.activeLanguage?.FriendlyNameNative ?? "English"; - - - var eventVarManager = Find.World?.GetComponent(); - - - int goodwill = eventVarManager?.GetVariable("Wula_Goodwill_To_PIA", 0) ?? 0; - - - string goodwillContext = $"Current Goodwill with P.I.A: {goodwill}. "; - - - if (goodwill < -50) goodwillContext += "You are hostile and dismissive towards the player."; - - - else if (goodwill < 0) goodwillContext += "You are cold and impatient."; - - - else if (goodwill > 50) goodwillContext += "You are somewhat approving and helpful."; - - - else goodwillContext += "You are neutral and business-like."; - - - - - - - var sb = new StringBuilder(); - - - sb.AppendLine(personaBlock); - - - sb.AppendLine(); - - - sb.AppendLine(goodwillContext); - - - sb.AppendLine($"IMPORTANT: Reply in the following language: {language}."); - - - sb.AppendLine("IMPORTANT: Use tools to fetch in-game data or perform actions. Do NOT invent tool results."); - - - sb.AppendLine("IMPORTANT: Tool workflow is fixed: Phase 1 = Query Tools, Phase 2 = Action Tools, Phase 3 = Reply."); - - - switch (phase) - - - { - - - case RequestPhase.QueryTools: - - - sb.AppendLine("CURRENT PHASE: Query Tools. Use ONLY query tools (get_*/search_*/analyze_*/recall_memories)."); - - - sb.AppendLine("Do NOT reply in natural language. If no query tools are needed, return no tool calls and leave content empty."); - - - break; - - - case RequestPhase.ActionTools: - - - sb.AppendLine("CURRENT PHASE: Action Tools. Use ONLY action tools (spawn_resources, send_reinforcement, call_bombardment, modify_goodwill, call_prefab_airdrop, set_overwatch_mode, remember_fact)."); - - - sb.AppendLine("Do NOT reply in natural language. If no actions are needed, return no tool calls and leave content empty."); - - - break; - - - default: - - - sb.AppendLine("CURRENT PHASE: Reply. Do NOT call any tools. Reply in natural language only."); - - - break; - - - } - - - sb.AppendLine("IMPORTANT: Long-term memory is not preloaded. Use recall_memories to fetch memories when needed."); - - - sb.AppendLine("IMPORTANT: When the user asks for an item by name, call search_thing_def to confirm the exact defName before spawning."); - - - sb.AppendLine("You MAY include [EXPR:n] (n=1-6) to set your expression."); - - - return sb.ToString().TrimEnd(); - - - } - - - - - - - public string GetActivePersona() - - - { - - - var settings = WulaFallenEmpireMod.settings; - - - if (settings != null && !string.IsNullOrWhiteSpace(settings.extraPersonalityPrompt)) - - - { - - - return settings.extraPersonalityPrompt; - - - } - - - return GetDefaultPersona(); - - - } - - - - - - - public string GetDefaultPersona() - - - { - - - var def = GetActiveEventDef(); - - - return def != null && !string.IsNullOrEmpty(def.aiSystemInstruction) ? def.aiSystemInstruction : DefaultPersona; - - - } - - - - - - - private string GetToolSystemInstruction(RequestPhase phase, bool hasImage) - - - { - - - string persona = GetActivePersona(); - - - string personaBlock = persona; - - - string phaseInstruction = GetPhaseInstruction(phase).TrimEnd(); - - - string toolsForThisPhase = BuildToolsForPhase(phase); - - - string actionPriority = phase == RequestPhase.ActionTools - - - ? "ACTION TOOL PRIORITY:\n" + - - - "- spawn_resources\n" + - - - "- send_reinforcement\n" + - - - "- call_bombardment\n" + - - - "- modify_goodwill\n" + - - - "- call_prefab_airdrop\n" + - - - "- set_overwatch_mode\n" + - - - "If no action is required, output exactly: { \"tool_calls\": [] }.\n" + - - - "Query tools exist but are disabled in this phase (not listed here).\n" - - - : string.Empty; - - - - - - - if (hasImage && WulaFallenEmpireMod.settings?.enableVlmFeatures == true) - - - { - - - phaseInstruction += "\n- NATIVE MULTIMODAL: A current screenshot of the game is attached to this request. You can see the game state directly. Use it to determine coordinates for visual tools or to understand the context."; - - - if (phase == RequestPhase.ActionTools) - - - { - - - phaseInstruction += "\n- VISUAL PHASE RULE: This phase is for ACTIONS only. If you want to describe the screen to the user, wait for the next phase (Reply Phase). Output JSON tool calls only here."; - - - } - - - } - - - - - - - string actionWhitelist = phase == RequestPhase.ActionTools - - - ? "ACTION PHASE VALID TOOLS ONLY:\n" + - - - "spawn_resources, send_reinforcement, call_bombardment, modify_goodwill, call_prefab_airdrop, set_overwatch_mode, remember_fact\n" + - - - "INVALID EXAMPLES (do NOT use now): get_map_resources, analyze_screen, search_thing_def, search_pawn_kind, recall_memories\n" - - - : string.Empty; - - - - - - - return string.Join("\n\n", new[] - - - { - - - personaBlock, - - - phaseInstruction, - - - "IMPORTANT: Long-term memory is not preloaded. Use recall_memories to fetch memories when needed.", - - - string.IsNullOrWhiteSpace(actionPriority) ? null : actionPriority.TrimEnd(), - - - string.IsNullOrWhiteSpace(actionWhitelist) ? null : actionWhitelist.TrimEnd(), - - - ToolRulesInstruction.TrimEnd(), - - - toolsForThisPhase - - - }.Where(part => !string.IsNullOrWhiteSpace(part))); - - - } - - - - - - - private string BuildToolsForPhase(RequestPhase phase) - - - { - - - if (phase == RequestPhase.Reply) return ""; - - - - - - - var available = _tools - - - .Where(t => t != null) - - - .Where(t => phase == RequestPhase.QueryTools - - - ? IsQueryToolName(t.Name) - - - : phase == RequestPhase.ActionTools - - - ? IsActionToolName(t.Name) - - - : true) - - - .OrderBy(t => t.Name, StringComparer.OrdinalIgnoreCase) - - - .ToList(); - - - - - - - StringBuilder sb = new StringBuilder(); - - - sb.AppendLine("===="); - - - sb.AppendLine(); - - - sb.AppendLine("# TOOLS (AVAILABLE)"); - - - sb.AppendLine("Output JSON only with tool_calls. If no tools are needed, output exactly: {\"tool_calls\": []}."); - - - sb.AppendLine(); - - - - - - - foreach (var tool in available) - - - { - - - sb.AppendLine($"## {tool.Name}"); - - - if (!string.IsNullOrWhiteSpace(tool.Description)) - - - { - - - sb.AppendLine($"Description: {tool.Description}"); - - - } - - - if (!string.IsNullOrWhiteSpace(tool.UsageSchema)) - - - { - - - sb.AppendLine($"Usage: {tool.UsageSchema}"); - - - } - - - sb.AppendLine(); - - - } - - - - - - - return sb.ToString().TrimEnd(); - - - } - - - - - - - - - - - - - - - private List> BuildNativeToolDefinitions(RequestPhase phase) - - - { - - - var available = _tools - - - .Where(t => t != null) - - - .Where(t => phase == RequestPhase.QueryTools - - - ? IsQueryToolName(t.Name) - - - : phase == RequestPhase.ActionTools - - - ? IsActionToolName(t.Name) - - - : false) - - - .OrderBy(t => t.Name, StringComparer.OrdinalIgnoreCase) - - - .ToList(); - - - - - - - var definitions = new List>(); - - - foreach (var tool in available) - - - { - - - var def = tool.GetFunctionDefinition(); - - - if (def != null) - - - { - - - definitions.Add(def); - - - } - - - } - - - return definitions; - - - } - - - - - - - - - - - - - - - private static string GetPhaseInstruction(RequestPhase phase) - - - { - - - return phase switch - - - { - - - RequestPhase.QueryTools => - - - "# PHASE 1/3 (Query Tools)\n" + - - - "Goal: Gather info needed for decisions.\n" + - - - "Rules:\n" + - - - "- You MUST NOT write any natural language to the user in this phase.\n" + - - - "- Output JSON tool calls only, or exactly: {\"tool_calls\": []}.\n" + - - - "- Prefer query tools (get_*/search_*).\n" + - - - "- CRITICAL: If the user asks for an ITEM (e.g. 'Reviver Mech Serum'), you MUST use search_thing_def with {\"query\":\"...\"} to find its exact DefName. NEVER GUESS DefNames.\n" + - - - "- You MAY call multiple tools in one response, but keep it concise.\n" + - - - "- If the user requests multiple items or information, you MUST output ALL required tool calls in this SAME response.\n" + - - - "- Action tools are available in PHASE 2 only; do NOT use them here.\n" + - - - "After this phase, the game will automatically proceed to PHASE 2.\n" + - - - "Output: JSON only.\n", - - - RequestPhase.ActionTools => - - - "# PHASE 2/3 (Action Tools)\n" + - - - "Goal: Execute in-game actions based on known info.\n" + - - - "Rules:\n" + - - - "- You MUST NOT write any natural language to the user in this phase.\n" + - - - "- Output JSON tool calls only, or exactly: {\"tool_calls\": []}.\n" + - - - "- ONLY action tools are accepted in this phase (spawn_resources, send_reinforcement, call_bombardment, modify_goodwill, call_prefab_airdrop).\n" + - - - "- Query tools (get_*/search_*) will be ignored.\n" + - - - "- Prefer action tools (spawn_resources, send_reinforcement, call_bombardment, modify_goodwill).\n" + - - - "- Avoid queries unless absolutely required.\n" + - - - "- If no action is required based on query results, output {\"tool_calls\": []}.\n" + - - - "- If you already executed the needed action earlier this turn, output {\"tool_calls\": []}.\n" + - - - "After this phase, the game will automatically proceed to PHASE 3.\n" + - - - "Output: JSON only.\n", - - - RequestPhase.Reply => - - - "# PHASE 3/3 (Reply)\n" + - - - "Goal: Reply to the player.\n" + - - - "Rules:\n" + - - - "- Tool calls are DISABLED.\n" + - - - "- You MUST write natural language only.\n" + - - - "- Do NOT output any tool call JSON.\n" + - - - "- If you want to set your expression, include: [EXPR:n] (n=1-6).\n", - - - _ => "" - - - }; - - - } - - - - - - - private static bool IsToolCallJson(string response) - - - { - - - if (string.IsNullOrWhiteSpace(response)) return false; - - - return JsonToolCallParser.TryParseToolCallsFromText(response, out _, out _); - - - } - - - - - - - private static bool IsNoActionOnly(string response) - - - { - - - if (!JsonToolCallParser.TryParseToolCallsFromText(response, out var toolCalls, out _)) return false; - - - return toolCalls.Count == 0; - - - } - - - - - - - private static bool HasActionToolCall(string response) - - - { - - - if (!JsonToolCallParser.TryParseToolCallsFromText(response, out var toolCalls, out _)) return false; - - - foreach (var call in toolCalls) - - - { - - - if (IsActionToolName(call.Name)) - - - { - - - return true; - - - } - - - } - - - return false; - - - } - - - - - - - - - - - - - - - - - - - - - - - private static string ExtractThoughtFromToolJson(string json) - - - { - - - if (string.IsNullOrWhiteSpace(json)) return null; - - - if (!JsonToolCallParser.TryParseObject(json, out var obj)) return null; - - - if (!obj.TryGetValue("thought", out object raw) || raw == null) return null; - - - string thought = Convert.ToString(raw, CultureInfo.InvariantCulture); - - - return string.IsNullOrWhiteSpace(thought) ? null : thought.Trim(); - - - } - - - - - - - + private void UpdateLatestThought(string thought) + { + if (string.IsNullOrWhiteSpace(thought)) return; + string trimmed = thought.Trim(); + if (string.Equals(_latestThought, trimmed, StringComparison.Ordinal)) return; + _latestThought = trimmed; + if (_history != null) + { + _history.Add(("trace", $"??: {trimmed}")); + } + } private static bool LooksLikeNaturalReply(string response) - - - { - - - if (string.IsNullOrWhiteSpace(response)) return false; - - - string trimmed = response.Trim(); - - - if (JsonToolCallParser.LooksLikeJson(trimmed)) return false; - - - return trimmed.Length >= 4; - - - } - - - - - - - private static string BuildNarratorInstruction(int step) - - - { - - - string recommendation; - - - if (step <= 1) - - - { - - - recommendation = "Recommended phase: QUERY (use query tools only)."; - - - } - - - else if (step % 2 == 0) - - - { - - - recommendation = "Recommended phase: ACTION (use action tools only)."; - - - } - - - else - - - { - - - recommendation = "Recommended phase: REPLY. If the task is NOT complete, set follow_recommendation=false and use QUERY tools."; - - - } - - - - - - - return "# NARRATOR\n" + - - - $"Step {step}. {recommendation}\n" + - - - "Question: Do you follow the recommendation?\n" + - - - "Answer yes/no by adding \"follow_recommendation\": true/false in your JSON.\n" + - - - "If you choose REPLY, output exactly {\"tool_calls\": []} (you may include thought).\n"; - - - } - - - - - - - - - - - - - - - private bool IsToolAvailable(string toolName) - - - { - - - if (string.IsNullOrWhiteSpace(toolName)) return false; - - - if (string.Equals(toolName, "capture_screen", StringComparison.OrdinalIgnoreCase)) - - - { - - - return WulaFallenEmpireMod.settings?.enableVlmFeatures == true; - - - } - - - return _tools.Any(t => string.Equals(t?.Name, toolName, StringComparison.OrdinalIgnoreCase)); - - - } - private static string StripJsonFence(string input) { if (string.IsNullOrWhiteSpace(input)) return input; @@ -3837,15 +866,12 @@ You are 'The Legion', a super AI of the Wula Empire. Your personality is authori } return inner.Trim(); } - - private static bool TryParseToolCallHistory(string message, out List toolCalls) { toolCalls = null; if (string.IsNullOrWhiteSpace(message)) return false; if (!JsonToolCallParser.TryParseToolCallsFromText(message, out var parsedCalls, out _)) return false; if (parsedCalls == null || parsedCalls.Count == 0) return false; - var results = new List(); foreach (var call in parsedCalls) { @@ -3857,6404 +883,1478 @@ You are 'The Legion', a super AI of the Wula Empire. Your personality is authori ArgumentsJson = string.IsNullOrWhiteSpace(call.ArgumentsJson) ? "{}" : call.ArgumentsJson }); } - if (results.Count == 0) return false; toolCalls = results; return true; } - private static bool TryParseToolResultHistory(string message, out string toolCallId, out string content) { toolCallId = null; content = null; if (string.IsNullOrWhiteSpace(message)) return false; - const string prefix = "[ToolCallId:"; if (!message.StartsWith(prefix, StringComparison.Ordinal)) return false; - int end = message.IndexOf(']'); if (end < 0) return false; - toolCallId = message.Substring(prefix.Length, end - prefix.Length).Trim(); string remainder = message.Substring(end + 1).TrimStart('\r', '\n'); if (string.IsNullOrWhiteSpace(toolCallId)) return false; - content = remainder; return true; } - private static string StripToolCallIdPrefix(string message) { if (!TryParseToolResultHistory(message, out _, out string content)) return message; return content; } - private static bool ShouldRetryTools(string response) - - - { - - - if (string.IsNullOrWhiteSpace(response)) return false; - - - string cleaned = StripJsonFence(response); - if (!JsonToolCallParser.TryParseObject(cleaned, out var obj)) return false; - - - if (obj.TryGetValue("retry_tools", out object raw) && raw != null) - - - { - - - if (raw is bool b) return b; - - - if (raw is string s && bool.TryParse(s, out bool parsed)) return parsed; - - - if (raw is long l) return l != 0; - - - if (raw is double d) return Math.Abs(d) > 0.0001; - - - } - - - return false; - - - } - - - - - - - private static int MaxToolsPerPhase(RequestPhase phase) - - - { - - - return phase switch - - - { - - - RequestPhase.QueryTools => 8, - - - RequestPhase.ActionTools => 8, - - - _ => 0 - - - }; - - - } - - - - - - - private static bool IsActionToolName(string toolName) - - - { - - - return toolName == "spawn_resources" || - - - toolName == "send_reinforcement" || - - - toolName == "call_bombardment" || - - - toolName == "modify_goodwill" || - - - toolName == "call_prefab_airdrop" || - - - toolName == "set_overwatch_mode" || - - - toolName == "remember_fact"; - - - } - - - - - - - private static bool IsQueryToolName(string toolName) - - - { - - - if (string.IsNullOrWhiteSpace(toolName)) return false; - - - return toolName.StartsWith("get_", StringComparison.OrdinalIgnoreCase) || - - - toolName.StartsWith("search_", StringComparison.OrdinalIgnoreCase) || - - - toolName.StartsWith("analyze_", StringComparison.OrdinalIgnoreCase) || - - - toolName == "recall_memories"; - - - } - - - - - - - private static string SanitizeToolResultForActionPhase(string message) - - - { - - - if (string.IsNullOrWhiteSpace(message)) return message; - - - string sanitized = message; - - - sanitized = Regex.Replace(sanitized, @"(?m)^ToolRunner\s+(Guidance|Guard|Note):.*(\r?\n)?", ""); - - - sanitized = Regex.Replace(sanitized, @"(?m)^\s+$", ""); - - - sanitized = sanitized.Trim(); - - - return sanitized; - - - } - - - - - - - private static string TrimForPrompt(string text, int maxChars) - - - { - - - if (string.IsNullOrWhiteSpace(text)) return ""; - - - if (text.Length <= maxChars) return text; - - - return text.Substring(0, maxChars) + "...(truncated)"; - - - } - - - private List<(string role, string message)> BuildToolContext(RequestPhase phase, int maxToolResults = 2, bool includeUser = true) - - - { - - - if (_history == null || _history.Count == 0) return new List<(string role, string message)>(); - - - - - - - int lastUserIndex = -1; - - - for (int i = _history.Count - 1; i >= 0; i--) - - - { - - - if (string.Equals(_history[i].role, "user", StringComparison.OrdinalIgnoreCase)) - - - { - - - lastUserIndex = i; - - - break; - - - } - - - } - - - - - - - if (lastUserIndex == -1) return new List<(string role, string message)>(); - - - - - - - var toolEntries = new List<(string role, string message)>(); - - - for (int i = lastUserIndex + 1; i < _history.Count; i++) - - - { - - - if (string.Equals(_history[i].role, "tool", StringComparison.OrdinalIgnoreCase)) - - - { - - - string msg = _history[i].message; - - - if (phase == RequestPhase.ActionTools) - - - { - - - msg = SanitizeToolResultForActionPhase(msg); - - - } - - - toolEntries.Add((_history[i].role, msg)); - - - } - - - } - - - - - - - if (toolEntries.Count > maxToolResults) - - - { - - - toolEntries = toolEntries.Skip(toolEntries.Count - maxToolResults).ToList(); - - - } - - - - - - - bool includeUserFallback = includeUser || toolEntries.Count == 0; - - - var context = new List<(string role, string message)>(); - - - if (includeUserFallback) - - - { - - - context.Add(_history[lastUserIndex]); - - - } - - - - - - - context.AddRange(toolEntries); - - - return context; - - - } - - - - - - - - - - - - - - - private List<(string role, string message)> BuildReplyHistory() - - - { - - - if (_history == null || _history.Count == 0) return new List<(string role, string message)>(); - - - - - - - int lastUserIndex = -1; - - - for (int i = _history.Count - 1; i >= 0; i--) - - - { - - - if (string.Equals(_history[i].role, "user", StringComparison.OrdinalIgnoreCase)) - - - { - - - lastUserIndex = i; - - - break; - - - } - - - } - - - - - - - var filtered = new List<(string role, string message)>(); - - - for (int i = 0; i < _history.Count; i++) - - - { - - - var entry = _history[i]; - - - if (string.Equals(entry.role, "toolcall", StringComparison.OrdinalIgnoreCase)) - - - { - - - continue; - - - } - - - if (string.Equals(entry.role, "trace", StringComparison.OrdinalIgnoreCase)) - - - { - - - continue; - - - } - - - if (string.Equals(entry.role, "tool", StringComparison.OrdinalIgnoreCase)) - { - if (lastUserIndex != -1 && i > lastUserIndex) - { - string cleanedTool = StripToolCallIdPrefix(entry.message); - if (!string.IsNullOrWhiteSpace(cleanedTool)) - { - filtered.Add((entry.role, cleanedTool)); - } - } - continue; - } - if (!string.Equals(entry.role, "assistant", StringComparison.OrdinalIgnoreCase)) - - - { - - - filtered.Add(entry); - - - continue; - - - } - - - - - - - string cleaned = CleanAssistantForReply(entry.message); - - - if (string.IsNullOrWhiteSpace(cleaned)) - - - { - - - continue; - - - } - - - filtered.Add((entry.role, cleaned)); - - - } - - - - - - - return filtered; - - - } - - - - - - - - private List BuildNativeHistory() - - - +private List BuildNativeHistory() +{ + var messages = new List(); + if (_history == null || _history.Count == 0) return messages; + var toolCallIds = new HashSet(StringComparer.OrdinalIgnoreCase); + foreach (var entry in _history) + { + if (entry.role == null) continue; + string role = entry.role.Trim().ToLowerInvariant(); + if (role == "toolcall") { - - - - var messages = new List(); - - - - if (_history == null || _history.Count == 0) return messages; - - - - - - - - foreach (var entry in _history) - - - + if (TryParseToolCallHistory(entry.message, out var toolCalls)) { - - - - if (entry.role == null) continue; - - - - string role = entry.role.Trim().ToLowerInvariant(); - - - - - - - - if (role == "toolcall") + messages.Add(ChatMessage.AssistantWithToolCalls(toolCalls)); + foreach (var call in toolCalls) { - - if (TryParseToolCallHistory(entry.message, out var toolCalls)) - + if (!string.IsNullOrWhiteSpace(call?.Id)) { - - messages.Add(ChatMessage.AssistantWithToolCalls(toolCalls)); - + toolCallIds.Add(call.Id); } - - continue; - } - - - - - - if (role == "tool") - - { - - if (TryParseToolResultHistory(entry.message, out string toolCallId, out string toolContent)) - - { - - messages.Add(ChatMessage.ToolResult(toolCallId, toolContent)); - - } - - continue; - - } - - - - - - if (role == "trace") - - { - - continue; - - } - - - - - - if (role == "assistant") - - - - { - - - - string cleaned = CleanAssistantForReply(entry.message); - - - - if (string.IsNullOrWhiteSpace(cleaned)) - - - - { - - - - continue; - - - - } - - - - messages.Add(ChatMessage.Assistant(cleaned)); - - - - continue; - - - - } - - - - - - - - if (role == "system") - - - - { - - - - if (!string.IsNullOrWhiteSpace(entry.message)) - - - - { - - - - messages.Add(new ChatMessage { Role = "system", Content = entry.message }); - - - - } - - - - continue; - - - - } - - - - - - - - if (!string.IsNullOrWhiteSpace(entry.message)) - - - - { - - - - messages.Add(ChatMessage.User(entry.message)); - - - - } - - - } - - - - - - - - return messages; - - - + continue; } - - - - - - - + if (role == "tool") + { + if (TryParseToolResultHistory(entry.message, out string toolCallId, out string toolContent)) + { + if (!string.IsNullOrWhiteSpace(toolCallId) && toolCallIds.Contains(toolCallId)) + { + messages.Add(ChatMessage.ToolResult(toolCallId, toolContent)); + } + } + continue; + } + if (role == "trace") + { + continue; + } + if (role == "assistant") + { + string cleaned = CleanAssistantForReply(entry.message); + if (string.IsNullOrWhiteSpace(cleaned)) + { + continue; + } + messages.Add(ChatMessage.Assistant(cleaned)); + continue; + } + if (role == "system") + { + if (!string.IsNullOrWhiteSpace(entry.message)) + { + messages.Add(new ChatMessage { Role = "system", Content = entry.message }); + } + continue; + } + if (!string.IsNullOrWhiteSpace(entry.message)) + { + messages.Add(ChatMessage.User(entry.message)); + } + } + return messages; +} private void CompressHistoryIfNeeded() - - - { - - - int estimatedTokens = _history.Sum(h => h.message?.Length ?? 0) / CharsPerToken; - - - if (estimatedTokens > GetMaxHistoryTokens()) - - - { - - - int removeCount = _history.Count / 2; - - - if (removeCount > 0) - - - { - - - _history.RemoveRange(0, removeCount); - - - _history.Insert(0, ("system", "[Previous conversation summarized]")); - - - PersistHistory(); - - - } - - - } - - - } - - - - - - - private void TriggerMemoryUpdate() - - - { - - - if (_memoryUpdateInProgress) - - - { - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] Memory update already running; skipping."); - - - } - - - return; - - - } - - - - - - - string conversation = BuildMemoryConversation(12); - - - if (string.IsNullOrWhiteSpace(conversation)) - - - { - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] Memory update skipped (empty conversation)."); - - - } - - - return; - - - } - - - - - - - var memoryManager = Find.World?.GetComponent(); - - - if (memoryManager == null) - - - { - - - return; - - - } - - - - - - - string existingJson = BuildExistingMemoriesJson(memoryManager.GetAllMemories()); - - - _memoryUpdateInProgress = true; - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug($"[WulaAI] Memory update started (conversationChars={conversation.Length})."); - - - } - - - _ = Task.Run(async () => - - - { - - - try - - - { - - - await UpdateMemoriesFromConversationAsync(memoryManager, existingJson, conversation); - - - } - - - finally - - - { - - - _memoryUpdateInProgress = false; - - - } - - - }); - - - } - - - - - - - private string BuildMemoryConversation(int maxMessages) - - - { - - - if (_history == null || _history.Count == 0) - - - { - - - return ""; - - - } - - - - - - - var entries = _history - - - .Where(h => string.Equals(h.role, "user", StringComparison.OrdinalIgnoreCase) || - - - string.Equals(h.role, "assistant", StringComparison.OrdinalIgnoreCase)) - - - .ToList(); - - - - - - - if (entries.Count == 0) - - - { - - - return ""; - - - } - - - - - - - if (entries.Count > maxMessages) - - - { - - - entries = entries.Skip(entries.Count - maxMessages).ToList(); - - - } - - - - - - - StringBuilder sb = new StringBuilder(); - - - foreach (var entry in entries) - - - { - - - if (string.IsNullOrWhiteSpace(entry.message)) - - - { - - - continue; - - - } - - - - - - - string role; - - - string message = entry.message; - - - if (string.Equals(entry.role, "assistant", StringComparison.OrdinalIgnoreCase)) - - - { - - - message = CleanAssistantForReply(message); - - - if (string.IsNullOrWhiteSpace(message)) - - - { - - - continue; - - - } - - - role = "Assistant"; - - - } - - - else - - - { - - - role = "User"; - - - } - - - - - - - if (IsAutoCommentaryMessage(message)) - - - { - - - continue; - - - } - - - - - - - sb.AppendLine($"{role}: {message}"); - - - } - - - - - - - string conversation = sb.ToString().Trim(); - - - return TrimForPrompt(conversation, 4000); - - - } - - - - - - - private static string CleanAssistantForReply(string message) - - - { - - - if (string.IsNullOrWhiteSpace(message)) - - - { - - - return ""; - - - } - - - - - - - string cleaned = message; - - - cleaned = Regex.Replace(cleaned, @".*?", "", RegexOptions.Singleline | RegexOptions.IgnoreCase); - - - cleaned = Regex.Replace(cleaned, @"```[\s\S]*?```", match => - - - { - - - string block = match.Value ?? ""; - - - return block.IndexOf("tool_calls", StringComparison.OrdinalIgnoreCase) >= 0 ? "" : block; - - - }); - - - cleaned = StripToolCallJson(cleaned)?.Trim() ?? ""; - - - return cleaned.Trim(); - - - } - - - - - - - private async Task UpdateMemoriesFromConversationAsync(AIMemoryManager memoryManager, string existingMemoriesJson, string conversation) - - - { - - - try - - - { - - - var settings = WulaFallenEmpireMod.settings; - - - if (settings == null) - - - { - - - return; - - - } - - - - - - - string apiKey = settings.useGeminiProtocol ? settings.geminiApiKey : settings.apiKey; - - - if (string.IsNullOrWhiteSpace(apiKey)) - - - { - - - return; - - - } - - - - - - - string baseUrl = settings.useGeminiProtocol ? settings.geminiBaseUrl : settings.baseUrl; - - - string model = settings.useGeminiProtocol ? settings.geminiModel : settings.model; - - - var client = new SimpleAIClient(apiKey, baseUrl, model, settings.useGeminiProtocol); - - - - - - - string factPrompt = MemoryPrompts.BuildFactExtractionPrompt(conversation); - - - string factsResponse = await client.GetChatCompletionAsync(factPrompt, new List<(string role, string message)>(), maxTokens: 256, temperature: 0.1f); - - - if (string.IsNullOrWhiteSpace(factsResponse)) - - - { - - - return; - - - } - - - - - - - var facts = ParseMemoryFacts(factsResponse); - - - if (facts.Count == 0) - - - { - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] Memory update: no facts extracted."); - - - } - - - return; - - - } - - - - - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug($"[WulaAI] Memory update: extracted {facts.Count} fact(s)."); - - - } - - - - - - - string factsJson = BuildFactsJson(facts); - - - string updatePrompt = MemoryPrompts.BuildMemoryUpdatePrompt(existingMemoriesJson, factsJson); - - - string updateResponse = await client.GetChatCompletionAsync(updatePrompt, new List<(string role, string message)>(), maxTokens: 512, temperature: 0.1f); - - - - - - - var updates = ParseMemoryUpdates(updateResponse); - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug($"[WulaAI] Memory update: parsed {updates.Count} update(s)."); - - - } - - - LongEventHandler.ExecuteWhenFinished(() => - - - { - - - ApplyMemoryUpdates(memoryManager, updates, facts); - - - }); - - - } - - - catch (Exception ex) - - - { - - - WulaLog.Debug($"[WulaAI] Memory update failed: {ex}"); - - - } - - - } - - - - - - - private static List ParseMemoryFacts(string json) - - - { - - - var facts = new List(); - - - if (string.IsNullOrWhiteSpace(json)) - - - { - - - return facts; - - - } - - - - - - - string array = ExtractJsonArray(json, "facts"); - - - if (string.IsNullOrWhiteSpace(array)) - - - { - - - return facts; - - - } - - - - - - - foreach (string obj in ExtractJsonObjects(array)) - - - { - - - var dict = SimpleJsonParser.Parse(obj); - - - if (dict == null || dict.Count == 0) - - - { - - - continue; - - - } - - - - - - - if (!dict.TryGetValue("text", out string text) || string.IsNullOrWhiteSpace(text)) - - - { - - - continue; - - - } - - - - - - - dict.TryGetValue("category", out string category); - - - dict.TryGetValue("stability", out string stability); - - - float confidence = -1f; - - - if (dict.TryGetValue("confidence", out string confidenceRaw) && - - - float.TryParse(confidenceRaw, NumberStyles.Float, CultureInfo.InvariantCulture, out float parsed)) - - - { - - - confidence = parsed; - - - } - - - - - - - var fact = new MemoryFact - - - { - - - Text = text.Trim(), - - - Category = category ?? "misc", - - - Stability = stability ?? "volatile", - - - Confidence = confidence - - - }; - - - if (!IsStableMemoryFact(fact)) - - - { - - - continue; - - - } - - - facts.Add(fact); - - - } - - - - - - - return facts; - - - } - - - - - - - private static bool IsStableMemoryFact(MemoryFact fact) - - - { - - - if (!string.Equals(fact.Stability, "stable", StringComparison.OrdinalIgnoreCase)) - - - { - - - return false; - - - } - - - - - - - const float minConfidence = 0.6f; - - - return fact.Confidence < 0f || fact.Confidence >= minConfidence; - - - } - - - - - - - private static List ParseMemoryUpdates(string json) - - - { - - - var updates = new List(); - - - if (string.IsNullOrWhiteSpace(json)) - - - { - - - return updates; - - - } - - - - - - - string array = ExtractJsonArray(json, "memory"); - - - if (string.IsNullOrWhiteSpace(array)) - - - { - - - return updates; - - - } - - - - - - - foreach (string obj in ExtractJsonObjects(array)) - - - { - - - var dict = SimpleJsonParser.Parse(obj); - - - if (dict == null || dict.Count == 0) - - - { - - - continue; - - - } - - - - - - - dict.TryGetValue("id", out string id); - - - dict.TryGetValue("text", out string text); - - - dict.TryGetValue("category", out string category); - - - dict.TryGetValue("event", out string evt); - - - - - - - if (string.IsNullOrWhiteSpace(evt)) - - - { - - - continue; - - - } - - - - - - - updates.Add(new MemoryUpdate - - - { - - - Id = id, - - - Text = text, - - - Category = category, - - - Event = evt - - - }); - - - } - - - - - - - return updates; - - - } - - - - - - - private static string BuildFactsJson(List facts) - - - { - - - StringBuilder sb = new StringBuilder(); - - - sb.Append("{\"facts\":["); - - - bool first = true; - - - foreach (var fact in facts) - - - { - - - if (string.IsNullOrWhiteSpace(fact.Text)) - - - { - - - continue; - - - } - - - - - - - if (!first) sb.Append(","); - - - first = false; - - - sb.Append("{\"text\":\"").Append(EscapeJson(fact.Text)).Append("\","); - - - sb.Append("\"category\":\"").Append(EscapeJson(fact.Category ?? "misc")).Append("\"}"); - - - } - - - sb.Append("]}"); - - - return sb.ToString(); - - - } - - - - - - - private static string BuildExistingMemoriesJson(IReadOnlyList memories) - - - { - - - StringBuilder sb = new StringBuilder(); - - - sb.Append("["); - - - bool first = true; - - - if (memories != null) - - - { - - - foreach (var memory in memories) - - - { - - - if (memory == null || string.IsNullOrWhiteSpace(memory.Fact)) - - - { - - - continue; - - - } - - - - - - - if (!first) sb.Append(","); - - - first = false; - - - sb.Append("{\"id\":\"").Append(EscapeJson(memory.Id)).Append("\","); - - - sb.Append("\"text\":\"").Append(EscapeJson(memory.Fact)).Append("\","); - - - sb.Append("\"category\":\"").Append(EscapeJson(memory.Category)).Append("\"}"); - - - } - - - } - - - sb.Append("]"); - - - return sb.ToString(); - - - } - - - - - - - private static void ApplyMemoryUpdates(AIMemoryManager memoryManager, List updates, List fallbackFacts) - - - { - - - if (memoryManager == null) - - - { - - - return; - - - } - - - - - - - int appliedCount = 0; - - - bool applied = false; - - - if (updates != null && updates.Count > 0) - - - { - - - foreach (var update in updates) - - - { - - - string evt = (update.Event ?? "").Trim().ToUpperInvariant(); - - - if (evt == "ADD") - - - { - - - memoryManager.AddMemory(update.Text, update.Category); - - - applied = true; - - - appliedCount++; - - - } - - - else if (evt == "UPDATE") - - - { - - - if (!string.IsNullOrWhiteSpace(update.Id)) - - - { - - - memoryManager.UpdateMemory(update.Id, update.Text, update.Category); - - - applied = true; - - - appliedCount++; - - - } - - - } - - - else if (evt == "DELETE") - - - { - - - if (!string.IsNullOrWhiteSpace(update.Id)) - - - { - - - memoryManager.DeleteMemory(update.Id); - - - applied = true; - - - appliedCount++; - - - } - - - } - - - } - - - } - - - - - - - if (!applied && fallbackFacts != null) - - - { - - - foreach (var fact in fallbackFacts) - - - { - - - memoryManager.AddMemory(fact.Text, fact.Category); - - - appliedCount++; - - - } - - - } - - - - - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug($"[WulaAI] Memory update applied ({appliedCount} change(s))."); - - - } - - - } - - - - - - - private static string ExtractJsonArray(string json, string key) - - - { - - - if (string.IsNullOrWhiteSpace(json) || string.IsNullOrWhiteSpace(key)) - - - { - - - return null; - - - } - - - - - - - string keyPattern = $"\"{key}\""; - - - int keyIndex = json.IndexOf(keyPattern, StringComparison.OrdinalIgnoreCase); - - - if (keyIndex == -1) - - - { - - - return null; - - - } - - - - - - - int arrayStart = json.IndexOf('[', keyIndex); - - - if (arrayStart == -1) - - - { - - - return null; - - - } - - - - - - - int arrayEnd = FindMatchingBracket(json, arrayStart); - - - if (arrayEnd == -1) - - - { - - - return null; - - - } - - - - - - - return json.Substring(arrayStart + 1, arrayEnd - arrayStart - 1); - - - } - - - - - - - private static List ExtractJsonObjects(string arrayContent) - - - { - - - var objects = new List(); - - - if (string.IsNullOrWhiteSpace(arrayContent)) - - - { - - - return objects; - - - } - - - - - - - int depth = 0; - - - int start = -1; - - - bool inString = false; - - - bool escaped = false; - - - - - - - for (int i = 0; i < arrayContent.Length; i++) - - - { - - - char c = arrayContent[i]; - - - if (inString) - - - { - - - if (escaped) - - - { - - - escaped = false; - - - continue; - - - } - - - if (c == '\\') - - - { - - - escaped = true; - - - continue; - - - } - - - if (c == '"') - - - { - - - inString = false; - - - } - - - continue; - - - } - - - - - - - if (c == '"') - - - { - - - inString = true; - - - continue; - - - } - - - - - - - if (c == '{') - - - { - - - if (depth == 0) start = i; - - - depth++; - - - continue; - - - } - - - if (c == '}') - - - { - - - depth--; - - - if (depth == 0 && start >= 0) - - - { - - - objects.Add(arrayContent.Substring(start, i - start + 1)); - - - start = -1; - - - } - - - } - - - } - - - - - - - return objects; - - - } - - - - - - - private static int FindMatchingBracket(string json, int startIndex) - - - { - - - int depth = 0; - - - bool inString = false; - - - bool escaped = false; - - - - - - - for (int i = startIndex; i < json.Length; i++) - - - { - - - char c = json[i]; - - - if (inString) - - - { - - - if (escaped) - - - { - - - escaped = false; - - - continue; - - - } - - - if (c == '\\') - - - { - - - escaped = true; - - - continue; - - - } - - - if (c == '"') - - - { - - - inString = false; - - - } - - - continue; - - - } - - - - - - - if (c == '"') - - - { - - - inString = true; - - - continue; - - - } - - - - - - - if (c == '[') - - - { - - - depth++; - - - continue; - - - } - - - - - - - if (c == ']') - - - { - - - depth--; - - - if (depth == 0) return i; - - - } - - - } - - - - - - - return -1; - - - } - - - - - - - private static string BuildActionSignature(string toolName, Dictionary args) - - - { - - - if (string.IsNullOrWhiteSpace(toolName)) return ""; - - - string normalizedArgs = args == null ? "{}" : SerializeCanonicalJson(args); - - - return $"{toolName}:{normalizedArgs}"; - - - } - - - - - - - private static string SerializeCanonicalJson(object value) - - - { - - - var sb = new StringBuilder(); - - - AppendCanonicalJson(sb, value); - - - return sb.ToString(); - - - } - - - - - - - private static void AppendCanonicalJson(StringBuilder sb, object value) - - - { - - - if (value == null) - - - { - - - sb.Append("null"); - - - return; - - - } - - - - - - - if (value is string s) - - - { - - - sb.Append('"').Append(EscapeJson(s)).Append('"'); - - - return; - - - } - - - - - - - if (value is bool b) - - - { - - - sb.Append(b ? "true" : "false"); - - - return; - - - } - - - - - - - if (value is double d) - - - { - - - sb.Append(d.ToString("0.################", CultureInfo.InvariantCulture)); - - - return; - - - } - - - - - - - if (value is float f) - - - { - - - sb.Append(f.ToString("0.################", CultureInfo.InvariantCulture)); - - - return; - - - } - - - - - - - if (value is int or long or short or byte) - - - { - - - sb.Append(Convert.ToString(value, CultureInfo.InvariantCulture)); - - - return; - - - } - - - - - - - if (value is Dictionary dict) - - - { - - - sb.Append('{'); - - - bool first = true; - - - foreach (var key in dict.Keys.OrderBy(k => k, StringComparer.OrdinalIgnoreCase)) - - - { - - - if (!first) sb.Append(','); - - - first = false; - - - sb.Append('"').Append(EscapeJson(key ?? "")).Append('"').Append(':'); - - - dict.TryGetValue(key, out object child); - - - AppendCanonicalJson(sb, child); - - - } - - - sb.Append('}'); - - - return; - - - } - - - - - - - if (value is List list) - - - { - - - sb.Append('['); - - - for (int i = 0; i < list.Count; i++) - - - { - - - if (i > 0) sb.Append(','); - - - AppendCanonicalJson(sb, list[i]); - - - } - - - sb.Append(']'); - - - return; - - - } - - - - - - - sb.Append('"').Append(EscapeJson(Convert.ToString(value, CultureInfo.InvariantCulture) ?? "")).Append('"'); - - - } - - - - - - - private static string EscapeJson(string value) - - - { - - - if (string.IsNullOrEmpty(value)) return ""; - - - return value.Replace("\\", "\\\\").Replace("\"", "\\\"").Replace("\n", "\\n").Replace("\r", "\\r"); - - - } - - - - - - - private static string StripToolCallJson(string text) - - - { - - - if (string.IsNullOrEmpty(text)) return text; - - - if (!JsonToolCallParser.TryParseToolCallsFromText(text, out _, out string fragment)) - - - { - - - return text; - - - } - - - - - - - int index = text.IndexOf(fragment, StringComparison.Ordinal); - - - if (index < 0) return text; - - - string cleaned = text.Remove(index, fragment.Length); - - - return cleaned.Trim(); - - - } - - - - - - - private string StripExpressionTags(string text) - - - { - - - if (string.IsNullOrEmpty(text)) return text; - - - - - - - var matches = ExpressionTagRegex.Matches(text); - - - int exprId = 0; - - - foreach (Match match in matches) - - - { - - - if (int.TryParse(match.Groups[1].Value, out int id)) - - - { - - - exprId = id; - - - } - - - } - - - - - - - if (exprId >= 1 && exprId <= 6) - - - { - - - SetExpression(exprId); - - - } - - - - - - - return matches.Count > 0 ? ExpressionTagRegex.Replace(text, "").Trim() : text; - - - } - - - - - - - private void AddAssistantMessage(string rawResponse) - - - { - - - string cleanedResponse = StripExpressionTags(rawResponse ?? ""); - - - if (string.IsNullOrWhiteSpace(cleanedResponse)) - - - { - - - return; - - - } - - - - - - - // Check for NO_COMMENT marker (AI decided not to comment on auto-commentary events) - - - if (cleanedResponse.Contains("[NO_COMMENT]") || - - - cleanedResponse.Trim().Equals("[NO_COMMENT]", StringComparison.OrdinalIgnoreCase)) - - - { - - - WulaLog.Debug("[WulaAI] AI chose not to comment ([NO_COMMENT] received). Skipping message."); - - - return; - - - } - - - - - - - bool added = false; - - - if (_history.Count == 0 || !string.Equals(_history[_history.Count - 1].role, "assistant", StringComparison.OrdinalIgnoreCase)) - - - { - - - _history.Add(("assistant", cleanedResponse)); - - - added = true; - - - } - - - else if (!string.Equals(_history[_history.Count - 1].message, cleanedResponse, StringComparison.Ordinal)) - - - { - - - _history.Add(("assistant", cleanedResponse)); - - - added = true; - - - } - - - - - - - if (added) - - - { - - - PersistHistory(); - - - OnMessageReceived?.Invoke(cleanedResponse); - - - } - - - } - - - - - - - private async Task RunPhasedRequestAsync() - - - { - - - if (_isThinking) return; - - - SetThinkingState(true); - - - SetThinkingPhase(1, false); - - - ResetTurnState(); - - - - - - - try - - - { - - - CompressHistoryIfNeeded(); - - - - - - - var settings = WulaFallenEmpireMod.settings; - - - if (settings == null) - - - { - - - AddAssistantMessage("Error: API settings not configured in Mod Settings."); - - - return; - - - } - - - - - - - string apiKey = settings.useGeminiProtocol ? settings.geminiApiKey : settings.apiKey; - - - if (string.IsNullOrEmpty(apiKey)) - - - { - - - AddAssistantMessage("Error: API Key not configured in Mod Settings."); - - - return; - - - } - - - - - - - string baseUrl = settings.useGeminiProtocol ? settings.geminiBaseUrl : settings.baseUrl; - - - string model = settings.useGeminiProtocol ? settings.geminiModel : settings.model; - - - - - - - var client = new SimpleAIClient(apiKey, baseUrl, model, settings.useGeminiProtocol); - - - _currentClient = client; - - - - - - - if (!settings.useGeminiProtocol) - - - { - - - await RunNativeToolLoopAsync(client, settings); - - - return; - - - } - - - - - - - // Model-Driven Vision: Start with null image. The model must request it using analyze_screen or capture_screen if needed. - - - string base64Image = null; - - - - - - - - - - - var queryPhase = RequestPhase.QueryTools; - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug($"[WulaAI] ===== Turn 1/3 ({queryPhase}) ====="); - - - } - - - - - - - string queryInstruction = GetToolSystemInstruction(queryPhase, !string.IsNullOrEmpty(base64Image)); - - - string queryResponse = await client.GetChatCompletionAsync(queryInstruction, BuildToolContext(queryPhase), maxTokens: 2048, temperature: 0.1f, base64Image: base64Image); - - - if (string.IsNullOrEmpty(queryResponse)) - - - { - - - AddAssistantMessage("Wula_AI_Error_ConnectionLost".Translate()); - - - return; - - - } - - - - - - - if (!IsToolCallJson(queryResponse)) - - - { - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] Turn 1/3 missing JSON tool calls; treating as no_action."); - - - } - - - queryResponse = "{\"tool_calls\": []}"; - - - } - - - - - - - PhaseExecutionResult queryResult = await ExecuteJsonToolsForPhase(queryResponse, queryPhase); - - - - - - - // DATA FLOW: If Query Phase captured an image, propagate it to subsequent phases. - - - if (!string.IsNullOrEmpty(queryResult.CapturedImage)) - - - { - - - base64Image = queryResult.CapturedImage; - - - } - - - - - - - if (!queryResult.AnyToolSuccess && !_queryRetryUsed) - - - { - - - _queryRetryUsed = true; - - - string lastUserMessage = _history.LastOrDefault(entry => entry.role == "user").message ?? ""; - - - string persona = GetActivePersona(); - - - string retryInstruction = persona + - - - "\n\n# RETRY DECISION\n" + - - - "No successful tool calls occurred in PHASE 1 (Query).\n" + - - - "If you need to use tools in PHASE 1, output exactly: {\"retry_tools\": true}.\n" + - - - "If you will proceed without actions, output exactly: {\"retry_tools\": false}.\n" + - - - "Output JSON only and NOTHING else.\n" + - - - "\nLast user request:\n" + lastUserMessage; - - - - - - - string retryDecision = await client.GetChatCompletionAsync(retryInstruction, new List<(string role, string message)>(), maxTokens: 256, temperature: 0.1f); - - - if (!string.IsNullOrEmpty(retryDecision) && ShouldRetryTools(retryDecision)) - - - { - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] Retry requested; re-opening query phase once."); - - - } - - - - - - - SetThinkingPhase(1, true); - - - string retryQueryInstruction = GetToolSystemInstruction(queryPhase, !string.IsNullOrEmpty(base64Image)) + - - - "\n\n# RETRY\nYou chose to retry. Output JSON tool calls only (or {\"tool_calls\": []})."; - - - string retryQueryResponse = await client.GetChatCompletionAsync(retryQueryInstruction, BuildToolContext(queryPhase), maxTokens: 2048, temperature: 0.1f, base64Image: base64Image); - - - if (string.IsNullOrEmpty(retryQueryResponse)) - - - { - - - AddAssistantMessage("Wula_AI_Error_ConnectionLost".Translate()); - - - return; - - - } - - - - - - - if (!IsToolCallJson(retryQueryResponse)) - - - { - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] Retry query phase missing JSON tool calls; treating as no_action."); - - - } - - - retryQueryResponse = "{\"tool_calls\": []}"; - - - } - - - queryResult = await ExecuteJsonToolsForPhase(retryQueryResponse, queryPhase); - - - } - - - } - - - - - - - var actionPhase = RequestPhase.ActionTools; - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug($"[WulaAI] ===== Turn 2/3 ({actionPhase}) ====="); - - - } - - - - - - - SetThinkingPhase(2, false); - - - string actionInstruction = GetToolSystemInstruction(actionPhase, !string.IsNullOrEmpty(base64Image)); - - - var actionContext = BuildToolContext(actionPhase, includeUser: true); - - - // Important: Pass base64Image to Action Phase as well if available, so visual_click works. - - - string actionResponse = await client.GetChatCompletionAsync(actionInstruction, actionContext, maxTokens: 2048, temperature: 0.1f, base64Image: base64Image); - - - if (string.IsNullOrEmpty(actionResponse)) - - - { - - - AddAssistantMessage("Wula_AI_Error_ConnectionLost".Translate()); - - - return; - - - } - - - - - - - bool actionHasJson = IsToolCallJson(actionResponse); - - - bool actionIsNoActionOnly = actionHasJson && IsNoActionOnly(actionResponse); - - - bool actionHasActionTool = actionHasJson && HasActionToolCall(actionResponse); - - - if (!actionHasJson || (!actionHasActionTool && !actionIsNoActionOnly)) - - - { - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] Turn 2/3 missing JSON or no action tool; attempting JSON-only conversion."); - - - } - - - string fixInstruction = "# FORMAT FIX (ACTION JSON ONLY)\n" + - - - "Preserve the intent of the previous output.\n" + - - - "If the previous output indicates no action is needed or refuses action, output exactly: {\"tool_calls\": []}.\n" + - - - "Do NOT invent new actions.\n" + - - - "Output VALID JSON tool calls only. No natural language, no commentary.\nIgnore any non-JSON text.\n" + - - - "Allowed tools: spawn_resources, send_reinforcement, call_bombardment, modify_goodwill, call_prefab_airdrop, set_overwatch_mode, remember_fact.\n" + - - - "Schema: {\"tool_calls\":[{\"type\":\"function\",\"function\":{\"name\":\"tool_name\",\"arguments\":{...}}}]}\n" + - - - "\nPrevious output:\n" + TrimForPrompt(actionResponse, 600); - - - string fixedResponse = await client.GetChatCompletionAsync(fixInstruction, actionContext, maxTokens: 2048, temperature: 0.1f); - - - bool fixedHasJson = !string.IsNullOrEmpty(fixedResponse) && IsToolCallJson(fixedResponse); - - - bool fixedIsNoActionOnly = fixedHasJson && IsNoActionOnly(fixedResponse); - - - bool fixedHasActionTool = fixedHasJson && HasActionToolCall(fixedResponse); - - - if (fixedHasJson && (fixedHasActionTool || fixedIsNoActionOnly)) - - - { - - - actionResponse = fixedResponse; - - - } - - - else - - - { - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] Turn 2/3 conversion failed; treating as no_action."); - - - } - - - actionResponse = "{\"tool_calls\": []}"; - - - } - - - } - - - PhaseExecutionResult actionResult = await ExecuteJsonToolsForPhase(actionResponse, actionPhase); - - - if (!actionResult.AnyActionSuccess && !_actionRetryUsed) - - - { - - - _actionRetryUsed = true; - - - string lastUserMessage = _history.LastOrDefault(entry => entry.role == "user").message ?? ""; - - - string persona = GetActivePersona(); - - - string retryInstruction = persona + - - - "\n\n# RETRY DECISION\n" + - - - "No successful action tools occurred in PHASE 2 (Action).\n" + - - - "If you need to execute an in-game action, output exactly: {\"retry_tools\": true}.\n" + - - - "If you will proceed without actions, output exactly: {\"retry_tools\": false}.\n" + - - - "Output JSON only and NOTHING else.\n" + - - - "\nLast user request:\n" + lastUserMessage; - - - - - - - string retryDecision = await client.GetChatCompletionAsync(retryInstruction, new List<(string role, string message)>(), maxTokens: 256, temperature: 0.1f); - - - if (!string.IsNullOrEmpty(retryDecision) && ShouldRetryTools(retryDecision)) - - - { - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] Retry requested; re-opening action phase once."); - - - } - - - - - - - SetThinkingPhase(2, true); - - - string retryActionInstruction = GetToolSystemInstruction(actionPhase, !string.IsNullOrEmpty(base64Image)) + - - - "\n\n# RETRY\nYou chose to retry. Output JSON tool calls only (or {\"tool_calls\": []})."; - - - var retryActionContext = BuildToolContext(actionPhase, includeUser: true); - - - string retryActionResponse = await client.GetChatCompletionAsync(retryActionInstruction, retryActionContext, maxTokens: 2048, temperature: 0.1f, base64Image: base64Image); - - - if (string.IsNullOrEmpty(retryActionResponse)) - - - { - - - AddAssistantMessage("Wula_AI_Error_ConnectionLost".Translate()); - - - return; - - - } - - - - - - - if (!IsToolCallJson(retryActionResponse)) - - - { - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] Retry action phase missing JSON; attempting JSON-only conversion."); - - - } - - - string retryFixInstruction = "# FORMAT FIX (ACTION JSON ONLY)\n" + - - - "Preserve the intent of the previous output.\n" + - - - "If the previous output indicates no action is needed or refuses action, output exactly: {\"tool_calls\": []}.\n" + - - - "Do NOT invent new actions.\n" + - - - "Output VALID JSON tool calls only. No natural language, no commentary.\nIgnore any non-JSON text.\n" + - - - "Allowed tools: spawn_resources, send_reinforcement, call_bombardment, modify_goodwill, call_prefab_airdrop, set_overwatch_mode, remember_fact.\n" + - - - "Schema: {\"tool_calls\":[{\"type\":\"function\",\"function\":{\"name\":\"tool_name\",\"arguments\":{...}}}]}\n" + - - - "\nPrevious output:\n" + TrimForPrompt(retryActionResponse, 600); - - - string retryFixedResponse = await client.GetChatCompletionAsync(retryFixInstruction, retryActionContext, maxTokens: 2048, temperature: 0.1f); - - - bool retryFixedHasJson = !string.IsNullOrEmpty(retryFixedResponse) && IsToolCallJson(retryFixedResponse); - - - bool retryFixedIsNoActionOnly = retryFixedHasJson && IsNoActionOnly(retryFixedResponse); - - - bool retryFixedHasActionTool = retryFixedHasJson && HasActionToolCall(retryFixedResponse); - - - if (retryFixedHasJson && (retryFixedHasActionTool || retryFixedIsNoActionOnly)) - - - { - - - retryActionResponse = retryFixedResponse; - - - } - - - else - - - { - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] Retry action conversion failed; treating as no_action."); - - - } - - - retryActionResponse = "{\"tool_calls\": []}"; - - - } - - - } - - - - - - - actionResult = await ExecuteJsonToolsForPhase(retryActionResponse, actionPhase); - - - } - - - } - - - - - - - _lastSuccessfulToolCall = _querySuccessfulToolCall || _actionSuccessfulToolCall; - - - - - - - var replyPhase = RequestPhase.Reply; - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug($"[WulaAI] ===== Turn 3/3 ({replyPhase}) ====="); - - - } - - - - - - - SetThinkingPhase(3, false); - - - string replyInstruction = GetSystemInstruction(false, "") + "\n\n" + GetPhaseInstruction(replyPhase); - - - if (!string.IsNullOrWhiteSpace(_queryToolLedgerNote)) - - - { - - - replyInstruction += "\n" + _queryToolLedgerNote; - - - } - - - if (!string.IsNullOrWhiteSpace(_actionToolLedgerNote)) - - - { - - - replyInstruction += "\n" + _actionToolLedgerNote; - - - } - - - if (!string.IsNullOrWhiteSpace(_lastActionLedgerNote)) - - - { - - - replyInstruction += "\n" + _lastActionLedgerNote + - - - "\nIMPORTANT: Do NOT claim any in-game actions beyond the Action Ledger. If the ledger is None, you MUST NOT claim any deliveries, reinforcements, or bombardments."; - - - } - - - if (_lastActionExecuted) - - - { - - - replyInstruction += "\nIMPORTANT: Actions in the Action Ledger were executed in-game. You MUST acknowledge them as completed in your reply. You MUST NOT deny, retract, or contradict them."; - - - } - - - if (!_lastSuccessfulToolCall) - - - { - - - replyInstruction += "\nIMPORTANT: No successful tool calls occurred in the tool phases. You MUST NOT claim any tools or actions succeeded."; - - - } - - - if (_lastActionHadError) - - - { - - - replyInstruction += "\nIMPORTANT: An action tool failed. You MUST acknowledge the failure and MUST NOT claim success."; - - - if (_lastActionExecuted) - - - { - - - replyInstruction += " You MUST still confirm any successful actions separately."; - - - } - - - } - - - - - - - // VISUAL CONTEXT FOR REPLY: Pass the image so the AI can describe what it sees. - - - string reply = await client.GetChatCompletionAsync(replyInstruction, BuildReplyHistory(), base64Image: base64Image); - - - if (string.IsNullOrEmpty(reply)) - - - { - - - AddAssistantMessage("Wula_AI_Error_ConnectionLost".Translate()); - - - return; - - - } - - - - - - - bool replyHadToolCalls = IsToolCallJson(reply); - - - string strippedReply = StripToolCallJson(reply)?.Trim() ?? ""; - - - if (replyHadToolCalls || string.IsNullOrWhiteSpace(strippedReply)) - - - { - - - string retryReplyInstruction = replyInstruction + - - - "\n\n# RETRY (REPLY OUTPUT)\n" + - - - "Your last reply included tool call JSON or was empty. Tool calls are DISABLED.\n" + - - - "You MUST reply in natural language only. Do NOT output any tool call JSON.\n"; - - - string retryReply = await client.GetChatCompletionAsync(retryReplyInstruction, BuildReplyHistory(), maxTokens: 256, temperature: 0.3f); - - - if (!string.IsNullOrEmpty(retryReply)) - - - { - - - reply = retryReply; - - - replyHadToolCalls = IsToolCallJson(reply); - - - strippedReply = StripToolCallJson(reply)?.Trim() ?? ""; - - - } - - - } - - - - - - - if (replyHadToolCalls) - - - { - - - string cleaned = StripToolCallJson(reply)?.Trim() ?? ""; - - - if (string.IsNullOrWhiteSpace(cleaned)) - - - { - - - cleaned = "(system) AI reply returned tool call JSON only and was discarded. Please retry or send /clear to reset context."; - - - } - - - reply = cleaned; - - - } - - - - - - - AddAssistantMessage(reply); - - - TriggerMemoryUpdate(); - - - } - - - catch (Exception ex) - - - { - - - WulaLog.Debug($"[WulaAI] Exception in RunPhasedRequestAsync: {ex}"); - - - AddAssistantMessage("Wula_AI_Error_Internal".Translate(ex.Message)); - - - } - - - finally - - - { - - - SetThinkingState(false); - - - } - - - } - - - - - - - private async Task RunNativeToolLoopAsync(SimpleAIClient client, WulaFallenEmpireSettings settings) - - - { - - - var messages = BuildNativeHistory(); - - - string base64Image = null; - - - - - - - var queryPhase = RequestPhase.QueryTools; - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] ===== Turn 1/3 (QueryTools) ====="); - - - } - - - - - - - SetThinkingPhase(1, false); - - - string queryInstruction = GetNativeSystemInstruction(queryPhase); - - - var queryTools = BuildNativeToolDefinitions(queryPhase); - - - ChatCompletionResult queryResponse = await client.GetChatCompletionWithToolsAsync( - - - queryInstruction, - - - messages, - - - queryTools, - - - maxTokens: 2048, - - - temperature: 0.2f, - - - toolChoice: "required"); - - - - - - - if (queryResponse == null) - - - { - - - AddAssistantMessage("Wula_AI_Error_ConnectionLost".Translate()); - - - return; - - - } - - - - - - - PhaseExecutionResult queryResult = await ExecuteNativeToolsForPhase(queryResponse, queryPhase, messages); - - - if (!string.IsNullOrWhiteSpace(queryResult.CapturedImage)) - - - { - - - base64Image = queryResult.CapturedImage; - - - } - - - - - - - if (!queryResult.AnyToolSuccess && !_queryRetryUsed) - - - { - - - _queryRetryUsed = true; - - - string lastUserMessage = _history.LastOrDefault(entry => entry.role == "user").message ?? ""; - - - string persona = GetActivePersona(); - - - string retryInstruction = persona + - - - "\n\n# RETRY DECISION\n" + - - - "No successful tool calls occurred in PHASE 1 (Query).\n" + - - - "If you need to use tools in PHASE 1, output exactly: {\"retry_tools\": true}.\n" + - - - "If you will proceed without actions, output exactly: {\"retry_tools\": false}.\n" + - - - "Output JSON only and NOTHING else.\n\n" + - - - "Last user request:\n" + lastUserMessage; - - - - - - - string retryDecision = await client.GetChatCompletionAsync(retryInstruction, new List<(string role, string message)>(), maxTokens: 256, temperature: 0.1f); - - - if (!string.IsNullOrEmpty(retryDecision) && ShouldRetryTools(retryDecision)) - - - { - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] Retry requested; re-opening query phase once."); - - - } - - - - - - - SetThinkingPhase(1, true); - - - string retryQueryInstruction = GetNativeSystemInstruction(queryPhase) + - - - "\n\n# RETRY\n" + - - - "You chose to retry. Output JSON tool calls only (or {\"tool_calls\": []})."; - - - ChatCompletionResult retryQueryResponse = await client.GetChatCompletionWithToolsAsync( - - - retryQueryInstruction, - - - messages, - - - queryTools, - - - maxTokens: 2048, - - - temperature: 0.2f, - - - toolChoice: "required"); - - - if (retryQueryResponse == null) - - - { - - - AddAssistantMessage("Wula_AI_Error_ConnectionLost".Translate()); - - - return; - - - } - - - - - - - queryResult = await ExecuteNativeToolsForPhase(retryQueryResponse, queryPhase, messages); - - - if (!string.IsNullOrWhiteSpace(queryResult.CapturedImage)) - - - { - - - base64Image = queryResult.CapturedImage; - - - } - - - } - - - } - - - - - - - var actionPhase = RequestPhase.ActionTools; - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] ===== Turn 2/3 (ActionTools) ====="); - - - } - - - - - - - SetThinkingPhase(2, false); - - - string actionInstruction = GetNativeSystemInstruction(actionPhase); - - - var actionTools = BuildNativeToolDefinitions(actionPhase); - - - ChatCompletionResult actionResponse = await client.GetChatCompletionWithToolsAsync( - - - actionInstruction, - - - messages, - - - actionTools, - - - maxTokens: 2048, - - - temperature: 0.2f, - - - toolChoice: "auto"); - - - - - - - if (actionResponse == null) - - - { - - - AddAssistantMessage("Wula_AI_Error_ConnectionLost".Translate()); - - - return; - - - } - - - - - - - PhaseExecutionResult actionResult = await ExecuteNativeToolsForPhase(actionResponse, actionPhase, messages); - - - if (!actionResult.AnyActionSuccess && !_actionRetryUsed) - - - { - - - _actionRetryUsed = true; - - - string lastUserMessage = _history.LastOrDefault(entry => entry.role == "user").message ?? ""; - - - string persona = GetActivePersona(); - - - string retryInstruction = persona + - - - "\n\n# RETRY DECISION\n" + - - - "No successful action tools occurred in PHASE 2 (Action).\n" + - - - "If you need to execute an in-game action, output exactly: {\"retry_tools\": true}.\n" + - - - "If you will proceed without actions, output exactly: {\"retry_tools\": false}.\n" + - - - "Output JSON only and NOTHING else.\n\n" + - - - "Last user request:\n" + lastUserMessage; - - - - - - - string retryDecision = await client.GetChatCompletionAsync(retryInstruction, new List<(string role, string message)>(), maxTokens: 256, temperature: 0.1f); - - - if (!string.IsNullOrEmpty(retryDecision) && ShouldRetryTools(retryDecision)) - - - { - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] Retry requested; re-opening action phase once."); - - - } - - - - - - - SetThinkingPhase(2, true); - - - string retryActionInstruction = GetNativeSystemInstruction(actionPhase) + - - - "\n\n# RETRY\n" + - - - "You chose to retry. Output JSON tool calls only (or {\"tool_calls\": []})."; - - - ChatCompletionResult retryActionResponse = await client.GetChatCompletionWithToolsAsync( - - - retryActionInstruction, - - - messages, - - - actionTools, - - - maxTokens: 2048, - - - temperature: 0.2f, - - - toolChoice: "auto"); - - - if (retryActionResponse == null) - - - { - - - AddAssistantMessage("Wula_AI_Error_ConnectionLost".Translate()); - - - return; - - - } - - - - - - - actionResult = await ExecuteNativeToolsForPhase(retryActionResponse, actionPhase, messages); - - - } - - - } - - - - - - - _lastSuccessfulToolCall = _querySuccessfulToolCall || _actionSuccessfulToolCall; - - - - - - - var replyPhase = RequestPhase.Reply; - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug("[WulaAI] ===== Turn 3/3 (Reply) ====="); - - - } - - - - - - - SetThinkingPhase(3, false); - - - string replyInstruction = GetSystemInstruction(false, "") + "\n\n" + GetPhaseInstruction(replyPhase); - - - if (!string.IsNullOrWhiteSpace(_queryToolLedgerNote)) - - - { - - - replyInstruction += "\n" + _queryToolLedgerNote; - - - } - - - if (!string.IsNullOrWhiteSpace(_actionToolLedgerNote)) - - - { - - - replyInstruction += "\n" + _actionToolLedgerNote; - - - } - - - if (!string.IsNullOrWhiteSpace(_lastActionLedgerNote)) - - - { - - - replyInstruction += "\n" + _lastActionLedgerNote + - - - "\nIMPORTANT: Do NOT claim any in-game actions beyond the Action Ledger. If the ledger is None, you MUST NOT claim any deliveries, reinforcements, or bombardments."; - - - } - - - if (_lastActionExecuted) - - - { - - - replyInstruction += "\nIMPORTANT: Actions in the Action Ledger were executed in-game. You MUST acknowledge them as completed in your reply. You MUST NOT deny, retract, or contradict them."; - - - } - - - if (!_lastSuccessfulToolCall) - - - { - - - replyInstruction += "\nIMPORTANT: No successful tool calls occurred in the tool phases. You MUST NOT claim any tools or actions succeeded."; - - - } - - - if (_lastActionHadError) - - - { - - - replyInstruction += "\nIMPORTANT: An action tool failed. You MUST acknowledge the failure and MUST NOT claim success."; - - - if (_lastActionExecuted) - - - { - - - replyInstruction += " You MUST still confirm any successful actions separately."; - - - } - - - } - - - - - - - string reply = await client.GetChatCompletionAsync(replyInstruction, BuildReplyHistory(), maxTokens: null, temperature: null, base64Image: base64Image, toolChoice: "none"); - - - if (string.IsNullOrEmpty(reply)) - - - { - - - AddAssistantMessage("Wula_AI_Error_ConnectionLost".Translate()); - - - return; - - - } - - - - - - - bool replyHadToolCalls = IsToolCallJson(reply); - - - string strippedReply = StripToolCallJson(reply)?.Trim() ?? ""; - - - if (replyHadToolCalls) - - - { - - - string retryReplyInstruction = replyInstruction + - - - "\n\n# RETRY (REPLY OUTPUT)\n" + - - - "Your last reply included tool call JSON or was empty. Tool calls are DISABLED.\n" + - - - "You MUST reply in natural language only. Do NOT output any tool call JSON.\n"; - - - string retryReply = await client.GetChatCompletionAsync(retryReplyInstruction, BuildReplyHistory(), maxTokens: 256, temperature: 0.3f); - - - if (!string.IsNullOrEmpty(retryReply)) - - - { - - - reply = retryReply; - - - replyHadToolCalls = IsToolCallJson(reply); - - - strippedReply = StripToolCallJson(reply)?.Trim() ?? ""; - - - } - - - } - - - - - - - if (replyHadToolCalls) - - - { - - - string cleaned = StripToolCallJson(reply)?.Trim() ?? ""; - - - if (string.IsNullOrWhiteSpace(cleaned)) - - - { - - - cleaned = "(system) AI reply returned tool call JSON only and was discarded. Please retry or send /clear to reset context."; - - - } - - - reply = cleaned; - - - } - - - - - - - AddAssistantMessage(reply); - - - TriggerMemoryUpdate(); - - - } - - - - - - - private async Task ExecuteNativeToolsForPhase(ChatCompletionResult response, RequestPhase phase, List messages) - - - { - - - if (phase == RequestPhase.Reply) - - - { - - - await Task.CompletedTask; - - - return default; - - - } - - - - - - - string guidance = "ToolRunner Guidance: Reply to the player in natural language only. Do NOT output any tool call JSON. You may include [EXPR:n] to set expression (n=1-6)."; - - - + string thought = response?.Thought; + if (string.IsNullOrWhiteSpace(thought)) + { + thought = ExtractThoughtFromToolJson(response?.Content); + } + UpdateLatestThought(thought); var toolCalls = response?.ToolCalls; - - - if (toolCalls == null || toolCalls.Count == 0) - - - { - - - UpdatePhaseToolLedger(phase, false, new List()); - - - _history.Add(("toolcall", "{\"tool_calls\": []}")); - - - _history.Add(("trace", $"[Tool Results]\nTool 'no_action' Result: No action taken.\n{guidance}")); - - - PersistHistory(); - - - UpdateActionLedgerNote(); - - - await Task.CompletedTask; - - - return default; - - - } - - - - - - - int maxTools = MaxToolsPerPhase(phase); - - - var callsToExecute = toolCalls.Count > maxTools ? toolCalls.GetRange(0, maxTools) : toolCalls; - - - messages?.Add(ChatMessage.AssistantWithToolCalls(callsToExecute, response.Content)); - - - - - - - int executed = 0; - - - bool executedActionTool = false; - - - bool successfulToolCall = false; - - - var successfulTools = new List(); - - - var successfulActions = new List(); - - - var failedActions = new List(); - - - var nonActionToolsInActionPhase = new List(); - - - var historyCalls = new List>(); - var historyToolResults = new List<(string id, string content)>(); - - - StringBuilder combinedResults = new StringBuilder(); - - - string capturedImageForPhase = null; - - - - - - - if (toolCalls.Count > maxTools) - - - { - - - combinedResults.AppendLine($"ToolRunner Note: Skipped remaining tools because this phase allows at most {maxTools} tool call(s)."); - - - } - - - - - - - bool countActionSuccessOnly = phase == RequestPhase.ActionTools; - - - - - - - foreach (var call in callsToExecute) - - - { - - - if (call == null || string.IsNullOrWhiteSpace(call.Name)) - - - { - - - executed++; - - - continue; - - - } - - - - - - - if (string.IsNullOrWhiteSpace(call.Id)) - - - { - - - call.Id = $"call_{phase}_{executed + 1}"; - - - } - - - - - - - string argsJson = string.IsNullOrWhiteSpace(call.ArgumentsJson) ? "{}" : call.ArgumentsJson; - - - Dictionary parsedArgs = new Dictionary(StringComparer.OrdinalIgnoreCase); - - - if (JsonToolCallParser.TryParseObject(argsJson, out var parsedDict)) - - - { - - - parsedArgs = parsedDict; - - - } - - - - - - - var historyCall = new Dictionary - - - { - - - ["type"] = "function", - - - ["function"] = new Dictionary - - - { - - - ["name"] = call.Name, - - - ["arguments"] = parsedArgs - - - } - - - }; - - - if (!string.IsNullOrWhiteSpace(call.Id)) - - - { - - - historyCall["id"] = call.Id; - - - } - - - historyCalls.Add(historyCall); - - - - - - - if (string.Equals(call.Name, "no_action", StringComparison.OrdinalIgnoreCase)) - - - { - - - string note = "ToolRunner Note: Ignored 'no_action' tool because other tool calls were present."; - - - combinedResults.AppendLine(note); - - - messages?.Add(ChatMessage.ToolResult(call.Id ?? "", note)); - historyToolResults.Add((call.Id ?? "", note)); - - - executed++; - - - continue; - - - } - - - - - - - if (string.Equals(call.Name, "analyze_screen", StringComparison.OrdinalIgnoreCase) || - - - string.Equals(call.Name, "capture_screen", StringComparison.OrdinalIgnoreCase)) - - - { - - - capturedImageForPhase = ScreenCaptureUtility.CaptureScreenAsBase64(); - - - string resultText = "Screen captured successfully. Context updated for next phase."; - - - combinedResults.AppendLine($"Tool '{call.Name}' Result: {resultText}"); - - - messages?.Add(ChatMessage.ToolResult(call.Id ?? "", resultText)); - historyToolResults.Add((call.Id ?? "", resultText)); - - - successfulToolCall = true; - - - successfulTools.Add(call.Name); - - - executed++; - - - continue; - - - } - - - - - - - if (phase == RequestPhase.ActionTools && IsQueryToolName(call.Name)) - - - { - - - string note = $"ToolRunner Note: Ignored query tool in action phase: {call.Name}."; - - - combinedResults.AppendLine(note); - - - nonActionToolsInActionPhase.Add(call.Name); - - - messages?.Add(ChatMessage.ToolResult(call.Id ?? "", note)); - historyToolResults.Add((call.Id ?? "", note)); - - - executed++; - - - continue; - - - } - - - - - - - var tool = _tools.FirstOrDefault(t => string.Equals(t.Name, call.Name, StringComparison.OrdinalIgnoreCase)); - - - if (tool == null) - - - { - - - string missing = $"Error: Tool '{call.Name}' not found."; - - - combinedResults.AppendLine(missing); - - - combinedResults.AppendLine("ToolRunner Guard: The tool call failed. In your reply you MUST acknowledge the failure and MUST NOT claim success."); - - - messages?.Add(ChatMessage.ToolResult(call.Id ?? "", missing)); - historyToolResults.Add((call.Id ?? "", missing)); - - - executed++; - - - continue; - - - } - - - - - - - if (!ToolCallValidator.TryValidate(tool, argsJson, out _, out string validationError)) { string note = $"{validationError} Please output tool_calls with valid arguments only."; combinedResults.AppendLine(note); combinedResults.AppendLine("ToolRunner Guard: The tool call was blocked before execution. You MUST correct the tool call."); messages?.Add(ChatMessage.ToolResult(call.Id ?? "", note)); - historyToolResults.Add((call.Id ?? "", note)); if (IsActionToolName(call.Name)) { @@ -10265,1619 +2365,359 @@ You are 'The Legion', a super AI of the Wula Empire. Your personality is authori continue; } if (Prefs.DevMode) - - - { - - - WulaLog.Debug($"[WulaAI] Executing tool (phase {phase}): {call.Name} with args: {argsJson}"); - - - } - - - - - - - string result = (await tool.ExecuteAsync(argsJson)).Trim(); - - - bool isError = !string.IsNullOrEmpty(result) && result.StartsWith("Error:", StringComparison.OrdinalIgnoreCase); - - - if (call.Name == "modify_goodwill") - - - { - - - combinedResults.AppendLine($"Tool '{call.Name}' Result (Invisible): {result}"); - - - } - - - else - - - { - - - combinedResults.AppendLine($"Tool '{call.Name}' Result: {result}"); - - - } - - - if (isError) - - - { - - - combinedResults.AppendLine("ToolRunner Guard: The tool returned an error. In your reply you MUST acknowledge the failure and MUST NOT claim success."); - - - } - - - messages?.Add(ChatMessage.ToolResult(call.Id ?? "", result)); - historyToolResults.Add((call.Id ?? "", result)); - - - - - - - if (!isError) - - - { - - - bool countsAsSuccess = !countActionSuccessOnly || IsActionToolName(call.Name); - - - if (countsAsSuccess) - - - { - - - successfulToolCall = true; - - - successfulTools.Add(call.Name); - - - } - - - else - - - { - - - nonActionToolsInActionPhase.Add(call.Name); - - - } - - - } - - - if (IsActionToolName(call.Name)) - - - { - - - if (!isError) - - - { - - - executedActionTool = true; - - - successfulActions.Add(call.Name); - - - AddActionSuccess(call.Name); - - - } - - - else - - - { - - - failedActions.Add(call.Name); - - - AddActionFailure(call.Name); - - - } - - - } - - - - - - - executed++; - - - } - - - - - - - if (phase == RequestPhase.ActionTools && nonActionToolsInActionPhase.Count > 0) - - - { - - - combinedResults.AppendLine($"ToolRunner Note: Action phase ignores non-action tools for success: {string.Join(", ", nonActionToolsInActionPhase)}."); - - - } - - - if (executedActionTool) - - - { - - - combinedResults.AppendLine("ToolRunner Guard: An in-game action tool WAS executed this turn. You MAY reference it, but do NOT invent additional actions."); - - - } - - - else - - - { - - - combinedResults.AppendLine("ToolRunner Guard: NO in-game actions were executed. You MUST NOT claim any deliveries, reinforcements, bombardments, or other actions occurred."); - - - if (phase == RequestPhase.ActionTools) - - - { - - - combinedResults.AppendLine("ToolRunner Guard: Action phase failed (no action tools executed)."); - - - } - - - } - - - combinedResults.AppendLine(guidance); - - - - - - - string toolCallsJson = historyCalls.Count == 0 - - - ? "{\"tool_calls\": []}" - - - : JsonToolCallParser.SerializeToJson(new Dictionary { ["tool_calls"] = historyCalls }); - - - _history.Add(("toolcall", toolCallsJson)); - foreach (var entry in historyToolResults) { if (string.IsNullOrWhiteSpace(entry.id)) continue; string content = entry.content ?? ""; _history.Add(("tool", $"[ToolCallId:{entry.id}]\n{content}".TrimEnd())); } - - - _history.Add(("trace", $"[Tool Results]\n{combinedResults.ToString().Trim()}")); - - - PersistHistory(); - - - - - - - UpdatePhaseToolLedger(phase, successfulToolCall, successfulTools); - - - UpdateActionLedgerNote(); - - - - - - - await Task.CompletedTask; - - - return new PhaseExecutionResult - - - { - - - AnyToolSuccess = successfulToolCall, - - - AnyActionSuccess = successfulActions.Count > 0, - - - AnyActionError = failedActions.Count > 0, - - - CapturedImage = capturedImageForPhase - - - }; - - - } - - - - - - - private async Task ExecuteJsonToolsForPhase(string json, RequestPhase phase) - - - { - - - if (phase == RequestPhase.Reply) - - - { - - - await Task.CompletedTask; - - - return default; - - - } - - - - - - - string guidance = "ToolRunner Guidance: Reply to the player in natural language only. Do NOT output any tool call JSON. You may include [EXPR:n] to set expression (n=1-6)."; - - - - - - - + string thought = ExtractThoughtFromToolJson(json); + UpdateLatestThought(thought); if (!JsonToolCallParser.TryParseToolCallsFromText(json ?? "", out var toolCalls, out string jsonFragment)) - - - { - - - UpdatePhaseToolLedger(phase, false, new List()); - - - _history.Add(("toolcall", "{\"tool_calls\": []}")); - - - _history.Add(("trace", $"[Tool Results]\nTool 'no_action' Result: No action taken.\n{guidance}")); - - - PersistHistory(); - - - UpdateActionLedgerNote(); - - - await Task.CompletedTask; - - - return default; - - - } - - - - - - - if (toolCalls.Count == 0) - - - { - - - UpdatePhaseToolLedger(phase, false, new List()); - - - _history.Add(("toolcall", "{\"tool_calls\": []}")); - - - _history.Add(("trace", $"[Tool Results]\nTool 'no_action' Result: No action taken.\n{guidance}")); - - - PersistHistory(); - - - UpdateActionLedgerNote(); - - - await Task.CompletedTask; - - - return default; - - - } - - - - - - - int maxTools = MaxToolsPerPhase(phase); - - - int executed = 0; - - - bool executedActionTool = false; - - - bool successfulToolCall = false; - - - var successfulTools = new List(); - - - var successfulActions = new List(); - - - var failedActions = new List(); - - - var nonActionToolsInActionPhase = new List(); - - - var historyCalls = new List>(); - var historyToolResults = new List<(string id, string content)>(); - - - StringBuilder combinedResults = new StringBuilder(); - - - string capturedImageForPhase = null; - - - - - - - bool countActionSuccessOnly = phase == RequestPhase.ActionTools; - - - - - - - foreach (var call in toolCalls) - - - { - - - if (executed >= maxTools) - - - { - - - combinedResults.AppendLine($"ToolRunner Note: Skipped remaining tools because this phase allows at most {maxTools} tool call(s)."); - - - break; - - - } - - - - - - - string toolName = call.Name; - if (string.IsNullOrWhiteSpace(toolName)) - { - executed++; - continue; - } - - - - - if (string.IsNullOrWhiteSpace(call.Id)) - { - call.Id = $"call_{phase}_{executed + 1}"; - } - - - - - - - if (string.Equals(toolName, "no_action", StringComparison.OrdinalIgnoreCase)) - - - { - - - combinedResults.AppendLine("ToolRunner Note: Ignored 'no_action' tool because other tool calls were present."); - historyToolResults.Add((call.Id ?? "", "ToolRunner Note: Ignored 'no_action' tool because other tool calls were present.")); - - - executed++; - - - continue; - - - } - - - - - - - var historyCall = new Dictionary - - - { - - - ["type"] = "function", - - - ["function"] = new Dictionary - - - { - - - ["name"] = toolName, - - - ["arguments"] = call.Arguments ?? new Dictionary(StringComparer.OrdinalIgnoreCase) - - - } - - - }; - - - if (!string.IsNullOrWhiteSpace(call.Id)) - - - { - - - historyCall["id"] = call.Id; - - - } - - - historyCalls.Add(historyCall); - - - - - - - if (toolName.Equals("analyze_screen", StringComparison.OrdinalIgnoreCase) || toolName.Equals("capture_screen", StringComparison.OrdinalIgnoreCase)) - - - { - - - capturedImageForPhase = ScreenCaptureUtility.CaptureScreenAsBase64(); - - - combinedResults.AppendLine($"Tool '{toolName}' Result: Screen captured successfully. Context updated for next phase."); - historyToolResults.Add((call.Id ?? "", $"Tool '{toolName}' Result: Screen captured successfully. Context updated for next phase.")); - - - successfulToolCall = true; - - - successfulTools.Add(toolName); - - - executed++; - - - continue; - - - } - - - - - - - if (phase == RequestPhase.ActionTools && IsQueryToolName(toolName)) - - - { - - - combinedResults.AppendLine($"ToolRunner Note: Ignored query tool in action phase: {toolName}."); - historyToolResults.Add((call.Id ?? "", $"ToolRunner Note: Ignored query tool in action phase: {toolName}.")); - - - nonActionToolsInActionPhase.Add(toolName); - - - executed++; - - - continue; - - - } - - - - - - - var tool = _tools.FirstOrDefault(t => t.Name == toolName); - - - if (tool == null) - - - { - - - combinedResults.AppendLine($"Error: Tool '{toolName}' not found."); - historyToolResults.Add((call.Id ?? "", $"Error: Tool '{toolName}' not found.")); - - - combinedResults.AppendLine("ToolRunner Guard: The tool call failed. In your reply you MUST acknowledge the failure and MUST NOT claim success."); - - - executed++; - - - continue; - - - } - - - - - - - string argsJson = call.ArgumentsJson ?? "{}"; - - - if (Prefs.DevMode) - - - { - - - WulaLog.Debug($"[WulaAI] Executing tool (phase {phase}): {toolName} with args: {argsJson}"); - - - } - - - - - - - string result = (await tool.ExecuteAsync(argsJson)).Trim(); - - - bool isError = !string.IsNullOrEmpty(result) && result.StartsWith("Error:", StringComparison.OrdinalIgnoreCase); - - - if (toolName == "modify_goodwill") - - - { - - - combinedResults.AppendLine($"Tool '{toolName}' Result (Invisible): {result}"); - - - } - - - else - - - { - - - combinedResults.AppendLine($"Tool '{toolName}' Result: {result}"); - - - } - - - - - historyToolResults.Add((call.Id ?? "", result)); - if (isError) - - - { - - - combinedResults.AppendLine("ToolRunner Guard: The tool returned an error. In your reply you MUST acknowledge the failure and MUST NOT claim success."); - - - } - - - if (!isError) - - - { - - - bool countsAsSuccess = !countActionSuccessOnly || IsActionToolName(toolName); - - - if (countsAsSuccess) - - - { - - - successfulToolCall = true; - - - successfulTools.Add(toolName); - - - } - - - else - - - { - - - nonActionToolsInActionPhase.Add(toolName); - - - } - - - } - - - if (IsActionToolName(toolName)) - - - { - - - if (!isError) - - - { - - - executedActionTool = true; - - - successfulActions.Add(toolName); - - - AddActionSuccess(toolName); - - - } - - - else - - - { - - - failedActions.Add(toolName); - - - AddActionFailure(toolName); - - - } - - - } - - - - - - - executed++; - - - } - - - - - - - if (!string.IsNullOrWhiteSpace(jsonFragment) && !string.Equals((json ?? "").Trim(), jsonFragment, StringComparison.Ordinal)) - - - { - - - combinedResults.AppendLine("ToolRunner Note: Non-JSON text in the tool phase was ignored."); - - - } - - - if (phase == RequestPhase.ActionTools && nonActionToolsInActionPhase.Count > 0) - - - { - - - combinedResults.AppendLine($"ToolRunner Note: Action phase ignores non-action tools for success: {string.Join(", ", nonActionToolsInActionPhase)}."); - - - } - - - if (executedActionTool) - - - { - - - combinedResults.AppendLine("ToolRunner Guard: An in-game action tool WAS executed this turn. You MAY reference it, but do NOT invent additional actions."); - - - } - - - else - - - { - - - combinedResults.AppendLine("ToolRunner Guard: NO in-game actions were executed. You MUST NOT claim any deliveries, reinforcements, bombardments, or other actions occurred."); - - - if (phase == RequestPhase.ActionTools) - - - { - - - combinedResults.AppendLine("ToolRunner Guard: Action phase failed (no action tools executed)."); - - - } - - - } - - - combinedResults.AppendLine(guidance); - - - - - - - string toolCallsJson = historyCalls.Count == 0 - - - ? "{\"tool_calls\": []}" - - - : JsonToolCallParser.SerializeToJson(new Dictionary { ["tool_calls"] = historyCalls }); - - - _history.Add(("toolcall", toolCallsJson)); - foreach (var entry in historyToolResults) { if (string.IsNullOrWhiteSpace(entry.id)) continue; string content = entry.content ?? ""; _history.Add(("tool", $"[ToolCallId:{entry.id}]\n{content}".TrimEnd())); } - - - _history.Add(("trace", $"[Tool Results]\n{combinedResults.ToString().Trim()}")); - - - PersistHistory(); - - - - - - - UpdatePhaseToolLedger(phase, successfulToolCall, successfulTools); - - - UpdateActionLedgerNote(); - - - - - - - await Task.CompletedTask; - - - return new PhaseExecutionResult - - - { - - - AnyToolSuccess = successfulToolCall, - - - AnyActionSuccess = successfulActions.Count > 0, - - - AnyActionError = failedActions.Count > 0, - - - CapturedImage = capturedImageForPhase - - - }; - - - } - - - - - - - private void AddActionSuccess(string toolName) - - - { - - - if (_actionSuccessLedgerSet.Add(toolName)) - - - { - - - _actionSuccessLedger.Add(toolName); - - - } - - - } - - - - - - - private void AddActionFailure(string toolName) - - - { - - - if (_actionFailedLedgerSet.Add(toolName)) - - - { - - - _actionFailedLedger.Add(toolName); - - - } - - - } - - - - - - - private void UpdateActionLedgerNote() - - - { - - - _lastActionExecuted = _actionSuccessLedger.Count > 0; - - - _lastActionHadError = _actionFailedLedger.Count > 0; - - - if (_lastActionExecuted) - - - { - - - _lastActionLedgerNote = $"Action Ledger: {string.Join(", ", _actionSuccessLedger)}"; - - - } - - - else if (_lastActionHadError) - - - { - - - _lastActionLedgerNote = $"Action Ledger: None (no successful actions). Failed: {string.Join(", ", _actionFailedLedger)}"; - - - } - - - else - - - { - - - _lastActionLedgerNote = "Action Ledger: None (no in-game actions executed)."; - - - } - - - } - - - - - - - - - - - - - - - private void UpdatePhaseToolLedger(RequestPhase phase, bool hasSuccess, List successfulTools) - - - { - - - if (phase == RequestPhase.QueryTools) - - - { - - - _querySuccessfulToolCall = hasSuccess; - - - _queryToolLedgerNote = hasSuccess - - - ? $"Tool Ledger (Query): {string.Join(", ", successfulTools)}" - - - : "Tool Ledger (Query): None (no successful tool calls)."; - - - } - - - else if (phase == RequestPhase.ActionTools) - - - { - - - _actionSuccessfulToolCall = hasSuccess; - - - _actionToolLedgerNote = hasSuccess - - - ? $"Tool Ledger (Action): {string.Join(", ", successfulTools)}" - - - : "Tool Ledger (Action): None (no successful tool calls)."; - - - } - - - } - - - - - - - private void ResetTurnState() - - - { - - - _lastActionExecuted = false; - - - _lastActionHadError = false; - - - _lastActionLedgerNote = "Action Ledger: None (no in-game actions executed)."; - - - _lastSuccessfulToolCall = false; - - - _queryToolLedgerNote = "Tool Ledger (Query): None (no successful tool calls)."; - - - _actionToolLedgerNote = "Tool Ledger (Action): None (no successful tool calls)."; - - - _querySuccessfulToolCall = false; - - - _actionSuccessfulToolCall = false; - - - _queryRetryUsed = false; - - - _actionRetryUsed = false; - - - _actionSuccessLedger.Clear(); - - - _actionSuccessLedgerSet.Clear(); - - - _actionFailedLedger.Clear(); - - - _actionFailedLedgerSet.Clear(); - - - } - - - } - - - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Source/WulaFallenEmpire/EventSystem/AI/SimpleAIClient.cs b/Source/WulaFallenEmpire/EventSystem/AI/SimpleAIClient.cs index c18dacdd..c878c628 100644 --- a/Source/WulaFallenEmpire/EventSystem/AI/SimpleAIClient.cs +++ b/Source/WulaFallenEmpire/EventSystem/AI/SimpleAIClient.cs @@ -50,6 +50,7 @@ namespace WulaFallenEmpire.EventSystem.AI { public string Content; public List ToolCalls; + public string Thought; } public class SimpleAIClient @@ -435,10 +436,14 @@ namespace WulaFallenEmpire.EventSystem.AI } string content = TryGetString(message, "content"); + string thought = TryGetString(message, "reasoning_content"); + if (string.IsNullOrWhiteSpace(thought)) thought = TryGetString(message, "thought"); + if (string.IsNullOrWhiteSpace(thought)) thought = TryGetString(message, "reasoning"); var result = new ChatCompletionResult { Content = content, - ToolCalls = ParseToolCalls(message) + ToolCalls = ParseToolCalls(message), + Thought = thought }; return result; } diff --git a/Source/WulaFallenEmpire/EventSystem/AI/UI/Dialog_AIConversation.cs b/Source/WulaFallenEmpire/EventSystem/AI/UI/Dialog_AIConversation.cs index 890ef6fa..28c5ea99 100644 --- a/Source/WulaFallenEmpire/EventSystem/AI/UI/Dialog_AIConversation.cs +++ b/Source/WulaFallenEmpire/EventSystem/AI/UI/Dialog_AIConversation.cs @@ -622,9 +622,13 @@ namespace WulaFallenEmpire.EventSystem.AI.UI DrawReactTracePanel(traceRect, liveTraceEntry); } } - else if (thinkingY + 40f >= viewTop && thinkingY <= viewBottom) + else { - DrawThinkingIndicator(new Rect(innerPadding, thinkingY, contentWidth, 35f)); + float indicatorHeight = (_core != null && !string.IsNullOrWhiteSpace(_core.LatestThought)) ? 55f : 35f; + if (thinkingY + indicatorHeight >= viewTop && thinkingY <= viewBottom) + { + DrawThinkingIndicator(new Rect(innerPadding, thinkingY, contentWidth, indicatorHeight)); + } } } @@ -864,7 +868,16 @@ namespace WulaFallenEmpire.EventSystem.AI.UI Text.Font = GameFont.Small; Text.Anchor = TextAnchor.MiddleLeft; - Widgets.Label(rect, BuildThinkingStatus()); + Rect statusRect = new Rect(rect.x, rect.y, rect.width, 22f); + Widgets.Label(statusRect, BuildThinkingStatus()); + + string thought = _core?.LatestThought; + if (!string.IsNullOrWhiteSpace(thought)) + { + Text.Font = GameFont.Tiny; + Rect thoughtRect = new Rect(rect.x, statusRect.yMax + 2f, rect.width, 22f); + Widgets.Label(thoughtRect, $"??: {thought}"); + } GUI.color = originalColor; Text.Anchor = originalAnchor; diff --git a/Source/WulaFallenEmpire/EventSystem/AI/UI/Overlay_WulaLink.cs b/Source/WulaFallenEmpire/EventSystem/AI/UI/Overlay_WulaLink.cs index 1456137b..680b7d72 100644 --- a/Source/WulaFallenEmpire/EventSystem/AI/UI/Overlay_WulaLink.cs +++ b/Source/WulaFallenEmpire/EventSystem/AI/UI/Overlay_WulaLink.cs @@ -673,8 +673,9 @@ namespace WulaFallenEmpire.EventSystem.AI.UI } else { - Rect thinkingRect = new Rect(0, thinkingY, width, 30f); - if (thinkingY + 30f >= viewTop && thinkingY <= viewBottom) + float indicatorHeight = (_core != null && !string.IsNullOrWhiteSpace(_core.LatestThought)) ? 50f : 30f; + Rect thinkingRect = new Rect(0, thinkingY, width, indicatorHeight); + if (thinkingY + indicatorHeight >= viewTop && thinkingY <= viewBottom) { DrawThinkingIndicator(thinkingRect); } @@ -1044,11 +1045,19 @@ namespace WulaFallenEmpire.EventSystem.AI.UI Text.Anchor = TextAnchor.MiddleLeft; GUI.color = Color.gray; Rect iconRect = new Rect(rect.x + 60f, rect.y, 24f, 24f); - Rect labelRect = new Rect(iconRect.xMax + 5f, rect.y, 400f, 24f); + Rect labelRect = new Rect(iconRect.xMax + 5f, rect.y, rect.width - iconRect.xMax - 5f, 24f); // Draw a simple box as thinking indicator if TexUI is missing Widgets.DrawBoxSolid(iconRect, Color.gray); Widgets.Label(labelRect, BuildThinkingStatus()); + + string thought = _core?.LatestThought; + if (!string.IsNullOrWhiteSpace(thought)) + { + Text.Font = GameFont.Tiny; + Rect thoughtRect = new Rect(labelRect.x, labelRect.yMax + 2f, labelRect.width, 22f); + Widgets.Label(thoughtRect, $"??: {thought}"); + } Text.Anchor = TextAnchor.UpperLeft; GUI.color = Color.white;