from __future__ import annotations import argparse import json from pathlib import Path import sys ROOT = Path(__file__).resolve().parent sys.path.insert(0, str(ROOT)) from ts_bridge.reasoner_v10 import solve_trace CATEGORIES = [None, "arithmetic", "transitivity", "code_reasoning", "boolean_logic", "set_reasoning", "string_reasoning"] def main() -> None: ap = argparse.ArgumentParser() ap.add_argument("--prompt", required=True) ap.add_argument("--category", default=None, choices=CATEGORIES) ap.add_argument("--json", action="store_true") args = ap.parse_args() trace = solve_trace(args.prompt, args.category).to_dict() if args.json: print(json.dumps(trace, indent=2)) else: print(trace["display_answer"]) print(f"rule : {trace['rule']}") print(f"confidence : {trace['confidence']:.2f} ({trace['confidence_band']})") if trace["boundary_reason"]: print(f"boundary : {trace['boundary_reason']}") if trace["rationale"]: print(f"rationale : {trace['rationale']}") if __name__ == "__main__": main()