cb99a8bcee151be7466adb6841f1bbd2245988de
Lyra was hallucinating poker facts — phantom flushes, missed straights, wrong equity, only correcting when spoon-fed. Board reading + equity are combinatorial facts an LLM can't do reliably; this is exactly the "math via deterministic tools, never the LLM" principle. - lyra/equity.py: treys-backed analyze(hero, villain, board) -> made hands, who's ahead, EXACT equity (enumerated), and outs (one to come). Handles 'Jx' unknown suits (assigned rainbow to avoid phantom flushes); rejects 'x'/dupes. - analyze_spot tool wired into chat; persona MANDATES it for any equity/board/ who's-ahead/outs question — never eyeballed. - tests on the real JJ-vs-65 hand: flop 78.7%, turn villain straight + hero 6.8% with outs "9s 9h 9c" (correctly excludes 9d, which makes villain a flush). Verified live: she now calls the tool and reports exact numbers, no hallucinated flush. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Lyra
A persistent, autonomous AI assistant. From-scratch rewrite of an earlier attempt.
The design thinking that survives the rewrite lives in docs/ — start with docs/ARCH_v0-6-1.md. The previous implementation is preserved on the archive branch.
Status
Pre-MVP. Building toward the smallest useful version: chat with persistent memory across sessions.
Setup
uv sync
cp .env.example .env
# fill in ANTHROPIC_API_KEY and point LOCAL_BASE_URL at your Ollama
Architecture
The long-term target is the cognitive split in docs/ARCH_v0-6-1.md — Inner Self as the seat of consciousness, Executive for hard reasoning, Cortex Chat for drafting, Persona for voice. The MVP implements only the chat + memory baseline. Cognitive layers come back one at a time.
Description
Releases
1
Languages
Python
60.4%
HTML
32.9%
CSS
6.7%