feat: add fullscreen TUI and project updates

- New TUI screens: Main Menu, Compile, Run, REPL, AI Generator, AI Settings, Help
- AI configuration persisted in ~/.config/cljnim/config.json
- Added illwill dependency for terminal UI
- Updated experiments, examples, docs, and core modules
This commit is contained in:
2026-05-09 01:53:23 +03:00
parent 2bc64eca22
commit ba0b300917
42 changed files with 3042 additions and 153 deletions
+26 -1
View File
@@ -1,4 +1,4 @@
import unittest
import unittest, strutils
import ../src/types
import ../src/eval
@@ -580,3 +580,28 @@ suite "Eval - Channels":
discard eval("(def ch (chan))", env)
let r = eval("(close! ch)", env)
check r.ok
suite "Eval - AI Functions (test doesn't require API keys)":
setup:
let env = newTopLevelEnv()
test "ai/generate returns string or error":
let r = eval("(ai/generate \"reverse a list\")", env)
if r.ok:
check r.value.kind == ckString
else:
check("API key" in r.error or "AI request failed" in r.error or "SSL" in r.error)
test "ai/optimize returns string or error":
let r = eval("(ai/optimize \"(reduce + nums)\")", env)
if r.ok:
check r.value.kind == ckString
else:
check("API key" in r.error or "AI request failed" in r.error or "SSL" in r.error)
test "ai/debug returns string or error":
let r = eval("(ai/debug (+ 1 2))", env)
if r.ok:
check r.value.kind == ckString
else:
check("API key" in r.error or "AI request failed" in r.error or "SSL" in r.error)