| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import java.io.File;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * Launcher for UDD context-probe validation on the real engine code path.
- *
- * Preferred (runs production planner/analyzer via JUnit):
- * mvn -pl fs-service test -Dtest=ContextProbeScenarioTest,DeepDialogueReplyPlannerTest
- *
- * This script tries to invoke Maven when {@code --run} is passed; otherwise prints guidance.
- *
- * HTTP end-to-end (requires running backend):
- * POST /workflow/simulate → expect mode=engine, uddUsed=true
- */
- public class SimulateDialogueProbeMain {
- public static void main(String[] args) throws Exception {
- System.out.println("=== UDD Context Probe (engine path) ===\n");
- System.out.println("Unit tests (ConversationContextAnalyzer + ConversationProbePlanner):");
- System.out.println(" mvn -pl fs-service test -Dtest=ContextProbeScenarioTest,DeepDialogueReplyPlannerTest");
- System.out.println();
- System.out.println("HTTP simulate (same evolve() path as real chat):");
- System.out.println(" POST /workflow/simulate expect mode=engine uddUsed=true");
- System.out.println(" response: reply + followUpMessages + followUpDelayMs");
- System.out.println();
- System.out.println("Deploy: restart fs-service + run sql/lobster_engine_prompt_udd_context_probe.sql");
- System.out.println(" + sql/lobster_engine_prompt_human_like.sql");
- System.out.println();
- if (args.length > 0 && "--run".equals(args[0])) {
- int exit = runMavenTests();
- System.exit(exit);
- } else {
- System.out.println("Tip: pass --run to auto-invoke Maven tests when mvn is on PATH.");
- }
- }
- private static int runMavenTests() throws Exception {
- File repoRoot = locateRepoRoot();
- if (repoRoot == null) {
- System.err.println("[FAIL] Cannot locate repo root (expected java/fs-service/pom.xml)");
- return 1;
- }
- List<String> cmd = new ArrayList<>();
- String mvn = System.getenv("MAVEN_HOME") != null
- ? System.getenv("MAVEN_HOME") + File.separator + "bin" + File.separator + "mvn"
- : "mvn";
- cmd.add(mvn);
- cmd.add("-pl");
- cmd.add("fs-service");
- cmd.add("test");
- cmd.add("-Dtest=ContextProbeScenarioTest,DeepDialogueReplyPlannerTest");
- ProcessBuilder pb = new ProcessBuilder(cmd);
- pb.directory(repoRoot);
- pb.redirectErrorStream(true);
- Process p = pb.start();
- p.getInputStream().transferTo(System.out);
- int code = p.waitFor();
- System.out.println("\nMaven exit code: " + code);
- return code;
- }
- private static File locateRepoRoot() {
- File dir = new File(System.getProperty("user.dir"));
- for (int i = 0; i < 6 && dir != null; i++) {
- File pom = new File(dir, "java" + File.separator + "fs-service" + File.separator + "pom.xml");
- if (pom.isFile()) {
- return dir;
- }
- dir = dir.getParentFile();
- }
- return null;
- }
- }
|