diff --git a/branding/fonts/Exo2-Bold.ttf b/branding/fonts/Exo2-Bold.ttf new file mode 100644 index 0000000..c3d3ae5 Binary files /dev/null and b/branding/fonts/Exo2-Bold.ttf differ diff --git a/branding/fonts/Orbitron-Variable.ttf b/branding/fonts/Orbitron-Variable.ttf new file mode 100644 index 0000000..1fc54ce Binary files /dev/null and b/branding/fonts/Orbitron-Variable.ttf differ diff --git a/branding/fonts/Oxanium-Variable.ttf b/branding/fonts/Oxanium-Variable.ttf new file mode 100644 index 0000000..ead485c Binary files /dev/null and b/branding/fonts/Oxanium-Variable.ttf differ diff --git a/branding/fonts/Rajdhani-Bold.ttf b/branding/fonts/Rajdhani-Bold.ttf new file mode 100644 index 0000000..47af157 Binary files /dev/null and b/branding/fonts/Rajdhani-Bold.ttf differ diff --git a/branding/fonts/SpaceGrotesk-Variable.ttf b/branding/fonts/SpaceGrotesk-Variable.ttf new file mode 100644 index 0000000..a1b2e6c Binary files /dev/null and b/branding/fonts/SpaceGrotesk-Variable.ttf differ diff --git a/eval/bakeoff.py b/eval/bakeoff.py index 1b794d6..af0c0da 100644 --- a/eval/bakeoff.py +++ b/eval/bakeoff.py @@ -64,10 +64,24 @@ def ollama_chat(model: str, messages: list, ollama_url: str, def parse_response(content: str) -> dict: - """Parse LLM JSON response.""" + """Parse LLM JSON response, stripping think blocks.""" + # Strip think blocks + content = re.sub(r'[\s\S]*?\s*', '', content).strip() try: - return json.loads(content) + parsed = json.loads(content) + # Ensure commands is a list of strings + cmds = parsed.get("commands", []) + if isinstance(cmds, list): + parsed["commands"] = [c for c in cmds if isinstance(c, str)] + return parsed except json.JSONDecodeError: + # Try to extract JSON from markdown wrapper + match = re.search(r'\{[\s\S]*\}', content) + if match: + try: + return json.loads(match.group()) + except json.JSONDecodeError: + pass cmds = re.findall(r'"(/?\w[^"]*)"', content) return {"commands": cmds, "message": "", "reasoning": "parse_fallback"} @@ -239,8 +253,8 @@ def run_bakeoff(models: list, ollama_url: str, no_think: bool = False): if not scores["cmd_match"]: expected_cmds = ex["output"].get("commands", []) - print(f" Expected: {expected_cmds[:2]}") - print(f" Got: {actual_cmds[:2]}") + print(f" Expected: {expected_cmds[:2] if isinstance(expected_cmds, list) else expected_cmds}") + print(f" Got: {actual_cmds[:2] if isinstance(actual_cmds, list) else actual_cmds}") results.append({ "id": eid,