From f851df6dbf01acc867dc49b741624889df10c640 Mon Sep 17 00:00:00 2001 From: KoalaTrapLord <265133236+KoalaTrapLord@users.noreply.github.com> Date: Tue, 24 Mar 2026 22:46:45 -0400 Subject: [PATCH] fix: add getBaseUrl(), PolicyDecision record, and decide(String,int) to PolicyClient GameSession.java references these APIs which were missing from PolicyClient, causing 3 compilation errors. Added: - getBaseUrl() getter - PolicyDecision record (action, confidence) - decide(String, int) overload that delegates to decide(JsonObject) --- .../java/commanderailab/ai/PolicyClient.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/commanderailab/ai/PolicyClient.java b/src/main/java/commanderailab/ai/PolicyClient.java index 9d1d685..735f54f 100644 --- a/src/main/java/commanderailab/ai/PolicyClient.java +++ b/src/main/java/commanderailab/ai/PolicyClient.java @@ -276,6 +276,22 @@ public class PolicyClient { public String getLastError() { return lastError; } public int getTotalDecisions() { return totalDecisions; } public int getPolicyDecisions() { return policyDecisions; } + public String getBaseUrl() { return baseUrl; } + + /** Decision result record for GameSession integration. */ + public record PolicyDecision(String action, double confidence) {} + + /** + * Decide from a JSON string + seat index. Used by GameSession. + * Converts to JsonObject and delegates to decide(JsonObject). + */ + public PolicyDecision decide(String stateJson, int seat) { + JsonObject state = GSON.fromJson(stateJson, JsonObject.class); + state.addProperty("seat", seat); + String action = decide(state); + return new PolicyDecision(action, 1.0); + } + public int getFallbackDecisions() { return fallbackDecisions; } public int getPendingTuples() { return tupleBuffer.size(); }