Simulated HumanDecision required the LLM's "CHOICE:" line to be exactly a configured option name. But the simulate prompt lists options as "- name: Label", so models - including strong instruct ones (qwen2.5:14b, etc.), not just gemma:7b - routinely echo the whole "name: Label" line, e.g. "red: Red light" or "existing: Existing position". That was rejected with HUMAN_DECISION_INVALID_CHOICE, breaking simulated runs of any flow with human decisions. resolveSimulatedChoice() now accepts, in order: an exact option name, the token before the first ':' (the echoed "name: Label" case), or the option label. Only ':' is treated as a separator - never '-' - so hyphenated option names like "not-red"/"assessment-not-required" are never truncated. Unknown choices still return null and raise the same error. Added a direct unit test (HumanDecisionSimulatedChoiceTest) covering exact name, echoed name:label, hyphenated names, label text and rejection. Also narrowed the flat-flow Jensen smoke test to exclude the new container-grouped variant (different top-level shape). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| .mvn/wrapper | ||
| src | ||
| .gitattributes | ||
| .gitignore | ||
| Dockerfile | ||
| mvnw | ||
| mvnw.cmd | ||
| ollama-preloaded-docker | ||
| pom.xml | ||