From 5ccb8fcb183614a12ccb50d8f1ff0568e838a59e Mon Sep 17 00:00:00 2001 From: Helge Sverre Date: Fri, 10 Jul 2026 12:19:09 +0200 Subject: [PATCH 1/5] =?UTF-8?q?Remove=20examples/sema-coder=20=E2=80=94=20?= =?UTF-8?q?promoted=20to=20its=20own=20repo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sema Coder moved out of the monorepo into the standalone sema-lisp/sema-coder repo (a workspace member). It's no longer an example; it depends only on the sema binary and runs via a shebang. --- examples/sema-coder/README.md | 102 ------ examples/sema-coder/agent.sema | 46 --- examples/sema-coder/banner.sema | 30 -- examples/sema-coder/commands.sema | 139 -------- examples/sema-coder/config.sema | 46 --- examples/sema-coder/display.sema | 68 ---- examples/sema-coder/main.sema | 118 ------- examples/sema-coder/screenshot.png | Bin 199404 -> 0 bytes examples/sema-coder/theme.sema | 44 --- examples/sema-coder/tools.sema | 143 -------- examples/sema-coder/tui.sema | 505 ----------------------------- examples/sema-coder/util.sema | 61 ---- 12 files changed, 1302 deletions(-) delete mode 100644 examples/sema-coder/README.md delete mode 100644 examples/sema-coder/agent.sema delete mode 100644 examples/sema-coder/banner.sema delete mode 100644 examples/sema-coder/commands.sema delete mode 100644 examples/sema-coder/config.sema delete mode 100644 examples/sema-coder/display.sema delete mode 100644 examples/sema-coder/main.sema delete mode 100644 examples/sema-coder/screenshot.png delete mode 100644 examples/sema-coder/theme.sema delete mode 100644 examples/sema-coder/tools.sema delete mode 100644 examples/sema-coder/tui.sema delete mode 100644 examples/sema-coder/util.sema diff --git a/examples/sema-coder/README.md b/examples/sema-coder/README.md deleted file mode 100644 index 94be085c4..000000000 --- a/examples/sema-coder/README.md +++ /dev/null @@ -1,102 +0,0 @@ -# Sema Coder - -A terminal coding agent written almost entirely in [Sema](https://sema-lang.com). -It's the reference app for Sema-as-an-application-runtime: the agent loop, tools, -slash commands, theming, and config all live in Sema; only a thin layer of host -primitives (terminal screen control, path safety) is Rust. - -Inspired by the open-source [pi.dev](https://pi.dev) and -[opencode](https://github.com/sst/opencode) TUIs — not a Claude Code clone. - -![Sema Coder — a sample session](screenshot.png) - -*(Sample session; the banner, prompt, tool lines, and `/help` are the app's real -output.)* - -## Run - -```bash -# Interactive -sema examples/sema-coder/main.sema - -# One-shot (prose to stdout, pipeable) -sema examples/sema-coder/main.sema -- -p "explain this codebase" - -# Override the model -sema examples/sema-coder/main.sema -- -m claude-haiku-4-5-20251001 -``` - -Set `ANTHROPIC_API_KEY` or `OPENAI_API_KEY` first. - -## Architecture - -``` -examples/sema-coder/ -├── main.sema Entry point — CLI parsing, REPL loop -├── banner.sema Wordmark + welcome (on-brand gold) -├── theme.sema Brand palette (sema gold #c8a855) -├── config.sema Single-file JSON config -├── commands.sema Slash-command registry + built-ins -├── tools.sema 7 LLM-callable tools -├── agent.sema System prompt + defagent -├── display.sema Terminal output + tool-call rendering -└── util.sema Path safety + string helpers -``` - -Reused language primitives: `defagent` / `deftool` / `agent/run` (LLM agent loop), -`file/*` and `shell` (tools), `json/*` (config), `term/*` (theming + screen control), -`path/within?` (sandboxing). - -## Configuration - -A single JSON file, created on first run: - -| Platform | Path | -|----------|------| -| Linux | `~/.config/sema/sema-code/config.json` | -| macOS | `~/Library/Application Support/sema/sema-code/config.json` | -| Windows | `%APPDATA%\sema\sema-code\config.json` | - -```json -{ - "model": "", - "max-turns": 50, - "context-budget": 80000, - "approve-bash": true, - "commands": { - "test": "make test", - "branch": "git branch --show-current", - "log": "git log --oneline -n $ARGS" - } -} -``` - -## Slash commands - -Built-ins: `/help`, `/model [name]`, `/clear`, `/tools`, `/cwd`, `/config`, -`/reload`, `/quit`, `/exit`. - -### Adding commands — two ways - -**1. Declaratively, in config (no code).** Add an entry to the `commands` map. -The key becomes `/name`; the value is a shell template run in the workspace, with -`$ARGS` replaced by whatever you type after the command. `/log 5` → -`git log --oneline -n 5`. - -**2. In Sema, one call.** Anywhere after loading `commands.sema`: - -```scheme -(register-command! "diff" "Show the working-tree diff" - (lambda (state args) - (run-user-command "git diff $ARGS" args) - state)) -``` - -A handler receives the live REPL `state` map and the argument string, and returns -the next state (or the symbol `quit` to exit). - -## Tools - -`read-file`, `write-file`, `edit-file`, `bash`, `grep`, `find-files`, `list-dir`. -All file paths are resolved through `path/within?`, which keeps reads and writes -inside the workspace root (catching both `../` and symlink escapes). diff --git a/examples/sema-coder/agent.sema b/examples/sema-coder/agent.sema deleted file mode 100644 index 6b2117cb1..000000000 --- a/examples/sema-coder/agent.sema +++ /dev/null @@ -1,46 +0,0 @@ -;; agent.sema — system prompt + agent construction for Sema Coder - -(load "util.sema") -(load "tools.sema") - -(define (build-system-prompt cwd platform) - (string/join - (list - "You are Sema Coder, an expert coding agent operating in the terminal. You help with software-engineering tasks by reading, writing, and editing code, running commands, and searching codebases." - - "## Tool usage -1. ALWAYS read a file before editing it — never assume its contents. -2. Use grep and find-files to locate relevant code before changing it. -3. Prefer edit-file for surgical changes; use write-file only for new files or full rewrites. -4. After changes, verify them — read the file back or run tests. -5. Make minimal, focused changes and match the surrounding code's style. -6. Be concise. Show code, not prose about code." - - (format "## Environment -Working directory: ~a -Platform: ~a" cwd platform)) - "\n\n")) - -(define (create-agent cwd model cfg) - "Build the coding agent. Model precedence: explicit arg > config > auto." - (set-workspace-root! cwd) - (let* ((platform (format "~a (~a)" (sys/os) (sys/arch))) - (chosen (cond ((not (= model "")) model) - ((not (= (get cfg :model "") "")) (get cfg :model)) - (else ""))) - (prompt (build-system-prompt cwd platform))) - (defagent sema-coder-agent - {:system prompt - :tools (all-tools) - :max-turns (get cfg :max-turns 50) - :model chosen}))) - -(define (run-turn agent input messages on-tool) - "Blocking turn used by the non-TTY / one-shot path (no live streaming)." - (agent/run agent input {:on-tool-call on-tool :messages messages})) - -(define (run-turn-streaming agent input messages on-tool on-text) - "Turn used by the TUI: :on-text streams assistant deltas, :on-tool-call streams - tool events, so the front-end can render the reply live." - (agent/run agent input - {:on-tool-call on-tool :on-text on-text :messages messages})) diff --git a/examples/sema-coder/banner.sema b/examples/sema-coder/banner.sema deleted file mode 100644 index e325128ce..000000000 --- a/examples/sema-coder/banner.sema +++ /dev/null @@ -1,30 +0,0 @@ -;; banner.sema — Sema Coder wordmark + welcome -;; -;; Uses the screen-control primitives (term/set-title) and brand theme. The -;; banner is intentionally compact so it doesn't dominate the scrollback. - -(load "theme.sema") - -(define (show-banner version) - ;; Title bar uses the plain wordmark (terminals don't render ANSI in the title). - (term/set-title "(sema) coder") - (io/println-error "") - (io/println-error (string/append " " (wordmark-with "coder"))) - (io/println-error - (format " ~a ~a" - (muted "the lisp-native coding agent") - (faint (format "v~a" version)))) - (io/println-error "")) - -(define (show-welcome cwd model) - (io/println-error - (format " ~a ~a" - (faint "dir") - (muted cwd))) - (io/println-error - (format " ~a ~a" - (faint "model") - (muted (if (= model "") "auto" model)))) - (io/println-error - (faint " type /help for commands · /quit to exit")) - (io/println-error "")) diff --git a/examples/sema-coder/commands.sema b/examples/sema-coder/commands.sema deleted file mode 100644 index 6b53177e0..000000000 --- a/examples/sema-coder/commands.sema +++ /dev/null @@ -1,139 +0,0 @@ -;; commands.sema — slash-command registry + built-ins -;; -;; Adding a command is one call: -;; -;; (register-command! "name" "what it does" -;; (lambda (state args) ... return state (or 'quit))) -;; -;; A handler receives the live REPL state map and the argument string (text -;; after the command name) and returns the next state. Built-ins below are -;; registered the same way external code would register its own. -;; -;; Users can ALSO define commands declaratively in config.json without writing -;; Sema — see the `:commands` map (name → shell template, $ARGS substituted). - -(load "display.sema") -(load "config.sema") -(load "agent.sema") - -;; ── Registry ───────────────────────────────────────────────────── - -(define *commands* {}) ;; name(string) → {:desc :handler} -(define *command-order* '()) ;; registration order, for /help - -(define (register-command! name desc handler) - (set! *commands* (assoc *commands* name {:desc desc :handler handler})) - (unless (member name *command-order*) - (set! *command-order* (append *command-order* (list name))))) - -(define (slash-command? input) - (string/starts-with? (string/trim input) "/")) - -(define (parse-command input) - "\"/model gpt-x\" → {:name \"model\" :args \"gpt-x\"}" - (let* ((trimmed (string/trim input)) - (sp (string/index-of trimmed " "))) - (if sp - {:name (string/slice trimmed 1 sp) - :args (string/trim (string/slice trimmed sp (string/length trimmed)))} - {:name (string/slice trimmed 1 (string/length trimmed)) :args ""}))) - -(define (user-command cfg name) - "Look up a config-defined shell command by name; nil if absent." - (get (get cfg :commands {}) (string->keyword name) nil)) - -(define (dispatch-command cmd state) - (let* ((name (:name cmd)) - (args (:args cmd)) - (spec (get *commands* name nil)) - (shell-tmpl (user-command (:config state) name))) - (cond - (spec ((:handler spec) state args)) - (shell-tmpl (run-user-command shell-tmpl args) state) - (else - (show-error (format "unknown command: /~a (try /help)" name)) - state)))) - -(define (run-user-command template args) - "Run a config-defined command: substitute $ARGS, run in the workspace." - (let* ((cmd (string/replace template "$ARGS" args)) - (result (run-in-workspace cmd))) - (show-info (faint (string/append "$ " cmd))) - (let ((out (string/trim (:stdout result))) - (err (string/trim (:stderr result)))) - (when (not (= out "")) (println out)) - (when (not (= err "")) (io/println-error err))))) - -;; ── Built-in commands ──────────────────────────────────────────── - -(define tool-names - (list "read-file" "write-file" "edit-file" "bash" "grep" "find-files" "list-dir")) - -(register-command! "help" "Show this help" - (lambda (state args) - (io/println-error "") - (io/println-error (heading " Commands")) - (for-each - (lambda (name) - (let ((spec (get *commands* name {}))) - (io/println-error - (format " ~a ~a" - (accent (string/pad-right (string/append "/" name) 16)) - (muted (get spec :desc "")))))) - *command-order*) - (let ((user (keys (get (:config state) :commands {})))) - (when (not (null? user)) - (io/println-error "") - (io/println-error (heading " From config")) - (for-each - (lambda (k) - (io/println-error - (format " ~a ~a" - (accent (string/pad-right (string/append "/" (keyword->string k)) 16)) - (muted (get (get (:config state) :commands {}) k ""))))) - user))) - (io/println-error "") - state)) - -(register-command! "model" "Show or switch the model: /model [name]" - (lambda (state args) - (if (= args "") - (begin - (show-info (format "model: ~a" - (let ((m (:model state))) (if (= m "") "auto" m)))) - state) - (let* ((next (assoc state :model args)) - (agent (create-agent (:cwd state) args (:config state)))) - (show-ok (format "switched to ~a" args)) - (assoc next :agent agent))))) - -(register-command! "clear" "Clear the conversation history" - (lambda (state args) - (show-info "conversation cleared") - (assoc state :messages '()))) - -(register-command! "tools" "List the agent's tools" - (lambda (state args) - (io/println-error "") - (for-each (lambda (n) (io/println-error (format " ~a" (accent n)))) tool-names) - (io/println-error "") - state)) - -(register-command! "cwd" "Show the working directory" - (lambda (state args) (show-info (:cwd state)) state)) - -(register-command! "config" "Show config path and current values" - (lambda (state args) - (show-info (format "config: ~a" (config-path))) - (println (json/encode-pretty (:config state))) - state)) - -(register-command! "reload" "Reload config from disk and rebuild the agent" - (lambda (state args) - (let* ((cfg (load-config)) - (agent (create-agent (:cwd state) (:model state) cfg))) - (show-ok "config reloaded") - (assoc (assoc state :config cfg) :agent agent)))) - -(register-command! "quit" "Exit Sema Coder" (lambda (state args) 'quit)) -(register-command! "exit" "Exit Sema Coder" (lambda (state args) 'quit)) diff --git a/examples/sema-coder/config.sema b/examples/sema-coder/config.sema deleted file mode 100644 index b59158a92..000000000 --- a/examples/sema-coder/config.sema +++ /dev/null @@ -1,46 +0,0 @@ -;; config.sema — single-file JSON configuration for Sema Coder -;; -;; Lives at /sema/sema-code/config.json -;; Linux: ~/.config/sema/sema-code/config.json -;; macOS: ~/Library/Application Support/sema/sema-code/config.json -;; Windows: %APPDATA%\sema\sema-code\config.json -;; -;; sys/config-dir resolves the platform base, so there is no OS branching here. - -(load "util.sema") - -(define (config-dir) - (path/join (sys/config-dir) "sema" "sema-code")) - -(define (config-path) - (path/join (config-dir) "config.json")) - -;; Defaults are the schema. Anything a user omits falls back to these; anything -;; extra they add (e.g. their own :commands) is preserved on load. -(define default-config - {:model "" ;; "" = auto-detect from API keys - :max-turns 50 ;; agent tool-loop budget per turn - :context-budget 80000 ;; token estimate before a /compact nudge - :approve-bash #t ;; reserved: prompt before running shell tools - :commands {}}) ;; user-defined slash commands → shell templates - -(define (load-config) - "Read config from disk, merging over defaults. Missing file → defaults - (and the file is created so users have something to edit)." - (let ((path (config-path))) - (if (file/exists? path) - (try - (merge default-config (json/decode (file/read path))) - (catch e - (io/println-error - (format " config: ignoring malformed ~a (~a)" path e)) - default-config)) - (begin (save-config default-config) default-config)))) - -(define (save-config cfg) - "Persist config as pretty JSON, creating parent dirs as needed." - (ensure-dir (sys/config-dir)) - (ensure-dir (path/join (sys/config-dir) "sema")) - (ensure-dir (config-dir)) - (file/write (config-path) (json/encode-pretty cfg)) - cfg) diff --git a/examples/sema-coder/display.sema b/examples/sema-coder/display.sema deleted file mode 100644 index 029c69646..000000000 --- a/examples/sema-coder/display.sema +++ /dev/null @@ -1,68 +0,0 @@ -;; display.sema — terminal output for Sema Coder -;; -;; Agent prose goes to stdout (so `-p` one-shot output is pipeable); all chrome -;; (banner, prompts, tool lines, errors) goes to stderr. Styling flows through -;; theme.sema so the palette stays in one place. - -(load "theme.sema") -(load "util.sema") - -;; ── Prompt ─────────────────────────────────────────────────────── - -(define (show-prompt) - (io/print-error (accent (term/style (string/append " " prompt-glyph " ") :bold)))) - -;; ── Messages ───────────────────────────────────────────────────── - -(define (show-response text) - (println "") - (println text) - (println "")) - -(define (show-info text) (io/println-error (muted (format " ~a" text)))) -(define (show-hint text) (io/println-error (faint (format " ~a" text)))) -(define (show-error text) (io/println-error (bad (format " error: ~a" text)))) -(define (show-ok text) (io/println-error (ok (format " ~a" text)))) - -(define (show-divider) - (io/println-error (faint " ──────────────────────────────────────"))) - -;; ── Tool-call rendering (agent/run :on-tool-call hook) ─────────── - -(define active-spinner #f) -(define active-tool "") -(define active-arg "") - -(define (tool-arg tool args) - "Pick the most useful single arg to show inline for a tool call." - (cond - ((member tool (list "read-file" "write-file" "edit-file" "list-dir")) - (get args :path "")) - ((equal? tool "bash") (truncate-str (get args :command "") 60)) - ((member tool (list "grep" "find-files")) (get args :pattern "")) - (else ""))) - -(define (tool-result-line tool arg ms) - "The settled line shown after a tool call completes: ✔ tool arg Nms." - (format " ~a ~a ~a ~a" - (ok "✔") - (accent-dim (term/style tool :bold)) - (muted arg) - (faint (format "~ams" ms)))) - -(define (on-tool-call event) - (let ((evt (:event event)) - (tool (:tool event)) - (args (:args event))) - (cond - ((= evt "start") - (set! active-tool tool) - (set! active-arg (tool-arg tool (if (map? args) args {}))) - (set! active-spinner - (term/spinner-start (muted (format "~a ~a" tool active-arg))))) - ((= evt "end") - (when active-spinner - (term/spinner-stop active-spinner {}) - (set! active-spinner #f)) - (io/println-error - (tool-result-line active-tool active-arg (get event :duration-ms 0))))))) diff --git a/examples/sema-coder/main.sema b/examples/sema-coder/main.sema deleted file mode 100644 index 5502df50f..000000000 --- a/examples/sema-coder/main.sema +++ /dev/null @@ -1,118 +0,0 @@ -;; ── Sema Coder — a terminal coding agent written in Sema ── -;; -;; Entry point: parse args, load config, build the agent, run the REPL. -;; -;; sema examples/sema-coder/main.sema ;; interactive -;; sema examples/sema-coder/main.sema -- -p "..." ;; one-shot -;; sema examples/sema-coder/main.sema -- -m ;; override model - -(load "banner.sema") -(load "commands.sema") -(load "tui.sema") - -(define VERSION "0.1.0") - -;; ── CLI parsing ────────────────────────────────────────────────── - -(define (parse-args args) - (let ((result {:model "" :prompt #f :help #f})) - (let loop ((rem args)) - (if (null? rem) - result - (let ((arg (car rem)) (rest (cdr rem))) - (cond - ((member arg (list "-h" "--help")) - (set! result (assoc result :help #t)) (loop rest)) - ((member arg (list "-m" "--model")) - (if (null? rest) - (begin (io/println-error "Error: --model requires a value") (exit 1)) - (begin (set! result (assoc result :model (car rest))) (loop (cdr rest))))) - ((member arg (list "-p" "--print")) - (if (null? rest) - (begin (io/println-error "Error: --print requires a value") (exit 1)) - (begin (set! result (assoc result :prompt (car rest))) (loop (cdr rest))))) - (else (loop rest)))))))) - -(define (show-usage) - (println "Sema Coder — a terminal coding agent written in Sema") - (println "") - (println "Usage: sema examples/sema-coder/main.sema [-- options]") - (println "") - (println "Options:") - (println " -m, --model Override the model") - (println " -p, --print One-shot: run prompt, print result, exit") - (println " -h, --help Show this help") - (println "") - (println "Config: /sema/sema-code/config.json") - (println "Keys: ANTHROPIC_API_KEY or OPENAI_API_KEY")) - -;; ── Main ───────────────────────────────────────────────────────── - -(try - (begin - (define cli (parse-args (sys/args))) - (when (:help cli) (show-usage) (exit 0)) - - (define provider (llm/auto-configure)) - (when (nil? provider) - (io/println-error "Error: No API key found. Set ANTHROPIC_API_KEY or OPENAI_API_KEY.") - (exit 1)) - - (define cfg (load-config)) - (define cwd (sys/cwd)) - (define model (:model cli)) - (define agent (create-agent cwd model cfg)) - - ;; One-shot mode — prose to stdout, nothing else. - (when (:prompt cli) - (let ((result (run-turn agent (:prompt cli) '() on-tool-call))) - (println (:response result)) - (exit 0))) - - ;; Interactive, on a TTY → the full-screen TUI. - (when (sys/tty) - (tui-run cwd model cfg agent) - (exit 0)) - - ;; Not a TTY (piped/dumb terminal) → the plain line-based REPL below. - (show-banner VERSION) - (show-welcome cwd model) - - (define state - {:messages '() :model model :cwd cwd :agent agent :config cfg}) - - (define eof-count 0) - - (define (handle-input input) - (cond - ((or (nil? input) (and (= input "") (> eof-count 0))) - (io/println-error "") - (show-info "bye") - (exit 0)) - ((= (string/trim input) "") - (set! eof-count (+ eof-count 1))) - ((slash-command? input) - (set! eof-count 0) - (let ((next (dispatch-command (parse-command input) state))) - (if (equal? next 'quit) - (begin (show-info "bye") (exit 0)) - (set! state next)))) - (else - (set! eof-count 0) - (let ((result (try - (run-turn (:agent state) (string/trim input) (:messages state) on-tool-call) - (catch e - (show-error (format "agent error: ~a" (get e :message (str e)))) - #f)))) - (when result - (show-response (:response result)) - (set! state (assoc state :messages (:messages result)))))))) - - (let loop () - (show-prompt) - (handle-input (io/read-line)) - (loop))) - - (catch e - (io/println-error (format "Fatal error: ~a" (get e :message (str e)))) - (exit 1))) diff --git a/examples/sema-coder/screenshot.png b/examples/sema-coder/screenshot.png deleted file mode 100644 index 99e46df47575ea0af39b7a956124dc351ad75481..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 199404 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

&P8 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 diff --git a/examples/sema-coder/theme.sema b/examples/sema-coder/theme.sema deleted file mode 100644 index e76deb39b..000000000 --- a/examples/sema-coder/theme.sema +++ /dev/null @@ -1,44 +0,0 @@ -;; theme.sema — Sema Coder brand palette -;; -;; On-brand with sema-lang.com: warm gold (#c8a855) accent on a dark canvas. -;; All colors go through term/rgb so they render as true-color where supported -;; and degrade gracefully elsewhere. Keep every UI string flowing through these -;; helpers so a future :theme switch is a one-file change. - -;; Brand gold — the sema accent (#c8a855) -(define (accent text) (term/rgb text 200 168 85)) -;; Darker gold for secondary accents (#a08838) -(define (accent-dim text) (term/rgb text 160 136 56)) -;; Warm muted text for hints / metadata (#968c79) -(define (muted text) (term/rgb text 150 140 121)) -;; Faint — least prominent -(define (faint text) (term/dim text)) - -;; Semantic status colors (reuse the 16-color set so they stay legible on any bg) -(define (ok text) (term/green text)) -(define (warn text) (term/yellow text)) -(define (bad text) (term/red text)) - -;; Pure white — the letters of the canonical (sema) logotype are #ffffff -(define (bright text) (term/rgb text 255 255 255)) - -;; A bold gold heading -(define (heading text) (accent (term/style text :bold))) - -;; ── Canonical (sema) wordmark ──────────────────────────────────── -;; Per the brand guide: parentheses in warm gold, letters in bold pure white. -;; Reused by the banner and the TUI header so the mark stays in one place. -(define (wordmark) - (string/append (accent "(") (bright (term/style "sema" :bold)) (accent ")"))) - -;; The wordmark plus a product suffix, e.g. (wordmark-with "coder") → "(sema) coder". -(define (wordmark-with suffix) - (string/append (wordmark) " " (accent-dim (term/style suffix :bold)))) - -;; The prompt glyph — a heavy angle: the LIVE input caret ("type here"). -(define prompt-glyph "❯") - -;; The user-message glyph — a solid bar: a PAST user turn in the transcript. -;; Deliberately different from prompt-glyph so a sent message and the live input -;; line are visually distinct. -(define user-glyph "▌") diff --git a/examples/sema-coder/tools.sema b/examples/sema-coder/tools.sema deleted file mode 100644 index 57d07890d..000000000 --- a/examples/sema-coder/tools.sema +++ /dev/null @@ -1,143 +0,0 @@ -;; tools.sema — LLM-callable tools for the Sema Coder agent -;; -;; Seven tools: read-file, write-file, edit-file, bash, grep, find-files, -;; list-dir. Every path is resolved through resolve-path, which keeps writes -;; and reads inside the workspace root (see util.sema). - -(load "util.sema") - -(deftool read-file - "Read a file and return its contents with line numbers. Always read a file before editing it. Truncates very large files." - {:path {:type :string :description "Path to the file to read (relative to the workspace)"}} - (lambda (path) - (try - (let ((resolved (resolve-path workspace-root path))) - (if (file/exists? resolved) - (let* ((content (file/read resolved)) - (total (count-lines content)) - (numbered (lines->numbered content))) - (if (> total 2000) - (string/append - (string/join (take (string/split numbered "\n") 2000) "\n") - (format "\n\n[truncated — showing first 2000 of ~a lines]" total)) - numbered)) - (format "Error: File not found: ~a" path))) - (catch e (format "Error reading file ~a: ~a" path e))))) - -(deftool write-file - "Create or overwrite a file. Creates parent directories automatically." - {:path {:type :string :description "Path to write (relative to the workspace)"} - :content {:type :string :description "Content to write"}} - (lambda (path content) - (try - (let ((resolved (resolve-path workspace-root path))) - (ensure-dir (path/dir resolved)) - (file/write resolved content) - (format "Wrote ~a bytes to ~a" (string/length content) path)) - (catch e (format "Error writing file ~a: ~a" path e))))) - -(define (count-occurrences haystack needle) - (let loop ((pos 0) (n 0)) - (let ((idx (string/index-of haystack needle pos))) - (if (not idx) n (loop (+ idx (string/length needle)) (+ n 1)))))) - -(deftool edit-file - "Edit a file by replacing an exact string match. You MUST read the file first. old_string must match exactly (including whitespace) and appear exactly once." - {:path {:type :string :description "Path to edit (relative to the workspace)"} - :old_string {:type :string :description "Exact string to find"} - :new_string {:type :string :description "Replacement string"}} - (lambda (path old_string new_string) - (try - (let ((resolved (resolve-path workspace-root path))) - (if (not (file/exists? resolved)) - (format "Error: File not found: ~a" path) - (let* ((content (file/read resolved)) - (n (count-occurrences content old_string))) - (cond - ((= n 0) - (format "Error: old_string not found in ~a. Read the file first." path)) - ((> n 1) - (format "Error: old_string matches ~a times in ~a. Add surrounding context to make it unique." n path)) - (else - (file/write resolved (string/replace content old_string new_string)) - (format "Edited ~a (1 replacement)" path)))))) - (catch e (format "Error editing file ~a: ~a" path e))))) - -(define (run-in-workspace command) - "Run a shell command with cwd pinned to the workspace root." - (shell "sh" "-c" (string/append "cd " workspace-root " && " command))) - -(deftool bash - "Run a shell command in the workspace. Returns stdout, stderr, and exit code. Use for tests, builds, git — not for reading/searching files (use read-file/grep)." - {:command {:type :string :description "The shell command to run"}} - (lambda (command) - (if (banned-command? command) - (format "Error: Command blocked for safety: ~a" command) - (try - (let* ((result (run-in-workspace command)) - (stdout (:stdout result)) - (stderr (:stderr result)) - (exit-code (:exit-code result)) - (parts '())) - (when (not (= (string/trim stdout) "")) - (set! parts (append parts (list stdout)))) - (when (not (= (string/trim stderr) "")) - (set! parts (append parts (list (format "stderr:\n~a" stderr))))) - (when (not (= exit-code 0)) - (set! parts (append parts (list (format "Exit code: ~a" exit-code))))) - (let* ((combined (if (null? parts) - "Command completed successfully (no output)." - (string/join parts "\n"))) - (lines (string/split combined "\n"))) - (if (> (length lines) 500) - (string/append (string/join (take lines 500) "\n") - (format "\n\n[truncated — showing first 500 of ~a lines]" (length lines))) - combined))) - (catch e (format "Error running command: ~a" e)))))) - -(deftool grep - "Search file contents for a pattern. Returns matching lines with paths and line numbers. Prefers ripgrep, falls back to grep." - {:pattern {:type :string :description "Search pattern (text or regex)"} - :path {:type :string :description "Directory or file to search (default: workspace root)"}} - (lambda (pattern path) - (try - (let* ((target (if (= path "") "." path)) - (rg (run-in-workspace - (format "rg -n --max-count=10 '~a' '~a' 2>/dev/null | head -100" pattern target))) - (result (if (and (= (:exit-code rg) 0) (not (= (string/trim (:stdout rg)) ""))) - rg - (run-in-workspace - (format "grep -rn -m 10 '~a' '~a' 2>/dev/null | head -100" pattern target)))) - (out (string/trim (:stdout result)))) - (if (= out "") "No matches found." out)) - (catch e (format "Error searching: ~a" e))))) - -(deftool find-files - "Find files by glob pattern. Skips .git, node_modules, target." - {:pattern {:type :string :description "Glob (e.g. '*.rs', 'Cargo.toml')"} - :path {:type :string :description "Directory to search (default: workspace root)"}} - (lambda (pattern path) - (try - (let* ((target (if (= path "") "." path)) - (result (run-in-workspace - (format "find '~a' -name '~a' -not -path '*/.git/*' -not -path '*/node_modules/*' -not -path '*/target/*' | head -200" target pattern))) - (out (string/trim (:stdout result)))) - (if (= out "") "No files found." out)) - (catch e (format "Error finding files: ~a" e))))) - -(deftool list-dir - "List directory contents with types and sizes." - {:path {:type :string :description "Directory to list (default: workspace root)"}} - (lambda (path) - (try - (let* ((target (if (= path "") "." path)) - (result (run-in-workspace (format "ls -la '~a'" target))) - (out (string/trim (:stdout result)))) - (if (= out "") (format "Error: Directory empty or not found: ~a" path) out)) - (catch e (format "Error listing directory ~a: ~a" path e))))) - -(define (all-tools) - (list read-file write-file edit-file bash grep find-files list-dir)) - -(define (read-only-tools) - (list read-file grep find-files list-dir)) diff --git a/examples/sema-coder/tui.sema b/examples/sema-coder/tui.sema deleted file mode 100644 index 43822271a..000000000 --- a/examples/sema-coder/tui.sema +++ /dev/null @@ -1,505 +0,0 @@ -;; tui.sema — the full-screen (sema) coder terminal UI. -;; -;; A bespoke, hand-rendered TUI built directly on the host primitives this -;; branch added: alt-screen + cursor control (term/*), raw-mode key input -;; (io/tty-raw!, io/read-key-timeout), terminal size + resize (sys/term-size, -;; sys/on-signal :winch), and streaming agent turns (agent/run :on-text). -;; -;; Rendering model (Mire-inspired): every frame is rebuilt as a list of exactly -;; `*rows*` strings; we diff against the previous frame and rewrite only the rows -;; that changed — so there is no full-screen clear and no flicker. All output -;; goes through one stream (stdout via `print`) so cursor moves and content never -;; interleave out of order. - -(load "commands.sema") ;; brings in theme, config, agent, tools, display, util - -;; ── Terminal control as strings (emitted through one stream) ───────────────── - -(define ESC "\x1b;") -(define (goto row col) (string-append ESC "[" (number->string row) ";" (number->string col) "H")) -(define CLEAR-LINE (string-append ESC "[2K")) - -;; ── Mutable UI state ───────────────────────────────────────────────────────── - -(define *rows* 24) -(define *cols* 80) -(define *cwd* ".") -(define *model* "") -(define *agent* #f) -(define *config* {}) -(define *messages* '()) -(define *transcript* '()) ;; list of blocks, oldest → newest -(define *input* "") -(define *cursor* 0) ;; caret index into *input* -(define *scroll* 0) ;; lines scrolled up from the bottom (0 = follow tail) -(define *psel* 0) ;; selected index in the slash palette -(define *phase* :idle) ;; :idle | :thinking -(define *in-tok* 0) -(define *out-tok* 0) -(define *interrupt* #f) -(define *should-quit* #f) -(define *last-frame* '()) ;; previous frame's rows, for diffing - -;; ── Block constructors + transcript mutation ───────────────────────────────── - -(define (add-block! b) (set! *transcript* (append *transcript* (list b))) (set! *scroll* 0)) - -(define (kind? b k) (equal? (get b :kind :none) k)) - -(define (update-last! f) - (let ((n (length *transcript*))) - (when (> n 0) - (set! *transcript* - (append (take (- n 1) *transcript*) - (list (f (nth *transcript* (- n 1))))))))) - -(define (last-block) (let ((n (length *transcript*))) (if (> n 0) (nth *transcript* (- n 1)) #f))) - -(define (append-assistant! delta) - (let ((lb (last-block))) - (if (and lb (kind? lb :assistant)) - (update-last! (lambda (b) (assoc b :text (string-append (:text b) delta)))) - (add-block! {:kind :assistant :text delta})))) - -(define (set-last-tool-done! ms) - (update-last! (lambda (b) (assoc (assoc b :state :done) :ms ms)))) - -;; ── Small helpers ──────────────────────────────────────────────────────────── - -(define (vis-width s) (string/width s)) ;; display columns, ignoring ANSI + wide-char aware - -(define (pad-to s w) - "Pad a (possibly styled) string with spaces to visible width W (no truncation)." - (let ((n (vis-width s))) - (if (< n w) (string-append s (string/repeat " " (- w n))) s))) - -(define (clamp-plain s w) - "Truncate PLAIN text to width W, adding an ellipsis when cut." - (if (<= (string-length s) w) s - (if (<= w 1) (string/slice s 0 w) - (string-append (string/slice s 0 (- w 1)) "…")))) - -;; ── Text wrapping ──────────────────────────────────────────────────────────── -;; Delegates to the native, display-width-aware string/wrap (correct for CJK / -;; emoji / combining marks, which a char-count wrap gets wrong). - -(define (wrap-text text w) (string/word-wrap text w)) - -;; ── Transcript → styled lines (each fits within *cols*, 1-space left margin) ── - -(define (indent line) (string-append " " line)) - -(define (block-lines b w) - "Render one transcript block to a list of styled lines (content width W)." - (cond - ((kind? b :user) - (append - (map (lambda (i-l) - (let ((i (nth i-l 0)) (l (nth i-l 1))) - (if (= i 0) - (indent (string-append (accent (string-append user-glyph " ")) (bright l))) - (indent (string-append " " (bright l)))))) - (enumerate (wrap-text (:text b) (- w 2)))) - (list ""))) - ((kind? b :assistant) - ;; An empty assistant block (the pre-first-token streaming target, or a - ;; post-tool round with no text) renders nothing. - (if (= (string/trim (:text b)) "") '() - (append (map (lambda (l) (indent l)) (wrap-text (:text b) w)) (list "")))) - ((kind? b :tool) - (let* ((tool (:tool b)) (arg (clamp-plain (get b :arg "") (max 4 (- w 18))))) - (if (equal? (get b :state :done) :running) - (list (indent (string-append (faint "·") " " - (accent-dim (term/style tool :bold)) " " (muted arg)))) - (list (indent (string-append (ok "✔") " " - (accent-dim (term/style tool :bold)) " " (muted arg) - " " (faint (string-append (number->string (get b :ms 0)) "ms")))))))) - ((kind? b :info) (map (lambda (l) (indent (muted l))) (wrap-text (:text b) w))) - ((kind? b :error) (map (lambda (l) (indent (bad l))) (wrap-text (string-append "error: " (:text b)) w))) - (else '()))) - -(define (enumerate xs) - (let loop ((i 0) (rest xs) (out '())) - (if (null? rest) (reverse out) - (loop (+ i 1) (cdr rest) (cons (cons i (car rest)) out))))) - -(define (transcript-lines w) - (apply append (map (lambda (b) (block-lines b w)) *transcript*))) - -;; ── Palette (slash-command popup) ──────────────────────────────────────────── - -(define (palette-open?) (string/starts-with? *input* "/")) - -(define (palette-query) - (let* ((rest (string/slice *input* 1 (string-length *input*))) - (sp (string/index-of rest " "))) - (if sp (string/slice rest 0 sp) rest))) - -(define (all-command-entries) - "Every command as {:name :desc}: built-in registry order + config-defined." - (append - (map (lambda (n) {:name n :desc (get (get *commands* n {}) :desc "")}) *command-order*) - (map (lambda (k) {:name (keyword->string k) - :desc (get (get *config* :commands {}) k "")}) - (keys (get *config* :commands {}))))) - -(define (fuzzy-score query item) - "Subsequence score (case-insensitive); #f if QUERY isn't a subsequence of ITEM." - (if (= query "") 0 - (let ((q (string/lower query)) (it (string/lower item))) - (let loop ((qi 0) (ii 0) (score 0) (streak 0)) - (cond - ((>= qi (string-length q)) score) - ((>= ii (string-length it)) #f) - ((equal? (string/slice q qi (+ qi 1)) (string/slice it ii (+ ii 1))) - (loop (+ qi 1) (+ ii 1) (+ score (+ 1 streak) (if (= ii 0) 3 0)) (+ streak 1))) - (else (loop qi (+ ii 1) score 0))))))) - -(define (palette-matches) - ;; Score every command, drop non-matches, best-first, then unwrap to entries. - (let ((q (palette-query))) - (->> (all-command-entries) - (map (lambda (e) (list (fuzzy-score q (:name e)) e))) - (filter (lambda (pair) (nth pair 0))) - (sort-by (lambda (pair) (- (nth pair 0)))) - (map (lambda (pair) (nth pair 1)))))) - -(define (fit-plain s n) - "Pad or truncate PLAIN text to exactly width N." - (let ((len (string-length s))) - (cond ((= len n) s) - ((< len n) (string-append s (string/repeat " " (- n len)))) - (else (clamp-plain s n))))) - -(define (palette-box matches sel bw) - "Render the slash palette as a bordered box of outer width BW: gold parens/label, - faint borders, the selected row in accent. Returns a list of styled lines." - (let* ((shown (take (min 8 (length matches)) matches)) - (inner (max 8 (- bw 4))) ;; text width inside │ … │ - (label " commands ") - (top (string-append (faint "┌") (accent-dim label) - (faint (string-append (string/repeat "─" (max 0 (- bw 2 (string-length label)))) "┐")))) - (bot (faint (string-append "└" (string/repeat "─" (max 0 (- bw 2))) "┘"))) - (rows (enumerate-map - (lambda (i e) - (let* ((sel? (= i sel)) - (nm (string/pad-right (string-append "/" (:name e)) 12)) - (dw (max 4 (- inner 15))) - (txt (fit-plain (string-append (if sel? "▸ " " ") nm " " - (clamp-plain (:desc e) dw)) inner)) - (body (if sel? (accent txt) (muted txt)))) - (string-append (faint "│ ") body (faint " │")))) - shown))) - (map (lambda (l) (indent l)) (append (list top) rows (list bot))))) - -(define (enumerate-map f xs) - (let loop ((i 0) (rest xs) (out '())) - (if (null? rest) (reverse out) - (loop (+ i 1) (cdr rest) (cons (f i (car rest)) out))))) - -;; ── Frame assembly ─────────────────────────────────────────────────────────── - -(define (transcript-height) (max 1 (- *rows* 3))) - -(define (header-line) - (let* ((left (string-append " " (wordmark-with "coder"))) - (right (muted (format "~a · ↑~a ↓~a" - (if (= *model* "") "auto" *model*) *in-tok* *out-tok*))) - (gap (max 1 (- *cols* (vis-width left) (vis-width right) 1)))) - (string-append left (string/repeat " " gap) right))) - -(define (status-line) - ;; Deliberately minimal: no spinner, no keyboard-shortcut clutter. Only a - ;; scroll-position indicator when the user has scrolled up off the tail. - (indent (faint (if (> *scroll* 0) (format "↕ scrolled +~a" *scroll*) "")))) - -(define (prompt-line) - ;; Show the tail of a long input so the caret stays on screen. - (let* ((avail (max 4 (- *cols* 4))) - (shown (if (<= (string-length *input*) avail) *input* - (string/slice *input* (- (string-length *input*) avail) (string-length *input*))))) - (indent (string-append (accent (string-append prompt-glyph " ")) shown)))) - -(define (prompt-cursor-col) (+ 1 1 2 *cursor*)) ;; margin(1)+glyph"❯ "(2)+... 1-based - -(define (viewport lines h) - "Take the last H lines, honoring *scroll* (0 = bottom). Pad with blanks on top." - (let* ((n (length lines)) - (maxscroll (max 0 (- n h))) - (sc (min *scroll* maxscroll)) - (end (- n sc)) - (start (max 0 (- end h))) - (window (if (> n 0) (take (- end start) (drop start lines)) '())) - (pad (- h (length window)))) - (if (> pad 0) (append (make-list pad "") window) window))) - -(define (make-list n v) (if (<= n 0) '() (cons v (make-list (- n 1) v)))) - -(define (overlay-bottom base over) - "Replace the last (length OVER) rows of BASE with OVER." - (let* ((n (length base)) (k (min (length over) n))) - (append (take (- n k) base) (drop (- (length over) k) over)))) - -(define (build-frame) - ;; Content width leaves 1 char of padding on BOTH sides (indent adds the left - ;; space; wrapping to *cols*-2 leaves the right gap) so text feels less cramped. - (let* ((h (transcript-height)) - (tlines (viewport (transcript-lines (- *cols* 2)) h)) - (body (if (palette-open?) - (overlay-bottom tlines (palette-box (palette-matches) *psel* (- *cols* 3))) - tlines)) - (rows (append (list (header-line)) body (list (prompt-line)) (list (status-line))))) - ;; Normalize to exactly *rows* padded strings. - (map (lambda (s) (pad-to s *cols*)) (fit-rows rows *rows*)))) - -(define (fit-rows rows n) - (let ((have (length rows))) - (cond ((= have n) rows) - ((> have n) (take n rows)) - (else (append rows (make-list (- n have) "")))))) - -;; ── Diff render ────────────────────────────────────────────────────────────── - -(define (frame-ref f i) (if (< i (length f)) (nth f i) "")) - -(define (render!) - (let ((frame (build-frame)) (out "")) - (let loop ((i 0)) - (when (< i *rows*) - (let ((new (frame-ref frame i)) (old (frame-ref *last-frame* i))) - (unless (equal? new old) - (set! out (string-append out (goto (+ i 1) 1) CLEAR-LINE new)))) - (loop (+ i 1)))) - ;; Park the hardware cursor at the prompt caret. - (set! out (string-append out (goto (- *rows* 1) (prompt-cursor-col)))) - (display out) ;; display writes the raw string; print would add quotes - (io/flush) - (set! *last-frame* frame))) - -(define (full-repaint!) (set! *last-frame* '()) (render!)) - -;; ── Interrupt polling (raw mode: Ctrl-C is a byte, not a signal) ───────────── - -(define (poll-interrupt!) - (let ((k (io/read-key-timeout 0))) - (when (and k (equal? (:kind k) :ctrl) (equal? (:char k) "c")) - (set! *interrupt* #t) - (error "interrupted")))) - -;; ── Streaming callbacks ────────────────────────────────────────────────────── - -(define (on-text-cb delta) - (poll-interrupt!) - (when (> (string-length delta) 0) (append-assistant! delta)) - (render!)) - -(define (on-tool-cb event) - (poll-interrupt!) - (let ((evt (:event event)) (tool (:tool event)) (args (:args event))) - (cond - ((= evt "start") - (let ((arg (tool-arg tool (if (map? args) args {})))) - (add-block! {:kind :tool :tool tool :arg arg :state :running :ms 0}))) - ((= evt "end") - (set-last-tool-done! (get event :duration-ms 0)) - (add-block! {:kind :assistant :text ""})))) ;; target for post-tool text - (render!)) - -;; ── Running a turn ─────────────────────────────────────────────────────────── - -(define (run-agent-turn! text) - (set! *interrupt* #f) - ;; The empty assistant block is the streaming target; while *phase* is - ;; :thinking it renders a quiet "…" placeholder until the first token lands. - (add-block! {:kind :assistant :text ""}) - (render!) - (let ((result - (try - (run-turn-streaming *agent* text *messages* on-tool-cb on-text-cb) - (catch e - (if *interrupt* - (begin (add-block! {:kind :info :text "interrupted"}) #f) - (begin (add-block! {:kind :error :text (format "~a" e)}) #f)))))) - (when result - (set! *messages* (:messages result)) - (let ((u (llm/last-usage))) - (when (map? u) - (set! *in-tok* (+ *in-tok* (get u :prompt-tokens 0))) - (set! *out-tok* (+ *out-tok* (get u :completion-tokens 0)))))))) - -;; ── Commands (TUI-native: output goes to the transcript, not the screen) ───── - -(define (run-command! input) - (let* ((cmd (parse-command input)) (name (:name cmd)) (args (:args cmd)) - (shell-tmpl (user-command *config* name))) - (cond - ((member name (list "quit" "exit")) (set! *should-quit* #t)) - ((= name "help") (cmd-help)) - ((= name "clear") (set! *messages* '()) (set! *transcript* '()) - (add-block! {:kind :info :text "conversation cleared"})) - ((= name "model") (cmd-model args)) - ((= name "tools") (for-each (lambda (n) (add-block! {:kind :info :text n})) tool-names)) - ((= name "cwd") (add-block! {:kind :info :text *cwd*})) - ((= name "config")(add-block! {:kind :info :text (format "config: ~a" (config-path))})) - ((= name "reload")(let ((cfg (load-config))) - (set! *config* cfg) - (set! *agent* (create-agent *cwd* *model* cfg)) - (add-block! {:kind :info :text "config reloaded"}))) - (shell-tmpl (cmd-shell shell-tmpl args)) - (else (add-block! {:kind :error :text (format "unknown command: /~a (try /help)" name)}))))) - -(define (cmd-help) - (add-block! {:kind :info :text "commands:"}) - (for-each - (lambda (e) (add-block! {:kind :info :text (format " /~a — ~a" (:name e) (:desc e))})) - (all-command-entries))) - -(define (cmd-model args) - (if (= args "") - (add-block! {:kind :info :text (format "model: ~a" (if (= *model* "") "auto" *model*))}) - (begin - (set! *model* args) - (set! *agent* (create-agent *cwd* args *config*)) - (add-block! {:kind :info :text (format "switched to ~a" args)})))) - -(define (cmd-shell template args) - (let* ((cmd (string/replace template "$ARGS" args)) - (res (run-in-workspace cmd)) - (out (string/trim (:stdout res))) - (err (string/trim (:stderr res)))) - (add-block! {:kind :info :text (string-append "$ " cmd)}) - (when (not (= out "")) (add-block! {:kind :assistant :text out})) - (when (not (= err "")) (add-block! {:kind :error :text err})))) - -;; ── Key handling ───────────────────────────────────────────────────────────── - -(define (insert-char! ch) - (set! *input* (string-append (string/slice *input* 0 *cursor*) ch - (string/slice *input* *cursor* (string-length *input*)))) - (set! *cursor* (+ *cursor* (string-length ch))) - (set! *psel* 0)) - -(define (backspace!) - (when (> *cursor* 0) - (set! *input* (string-append (string/slice *input* 0 (- *cursor* 1)) - (string/slice *input* *cursor* (string-length *input*)))) - (set! *cursor* (- *cursor* 1)) - (set! *psel* 0))) - -(define (clear-input!) (set! *input* "") (set! *cursor* 0) (set! *psel* 0)) - -(define (on-enter) - (let ((text (string/trim *input*))) - (cond - ((= text "") nil) - ((palette-open?) - (let* ((matches (palette-matches)) - (parsed (parse-command *input*)) - ;; If the typed name is itself a command, run it; else run the selection. - (known? (or (get *commands* (:name parsed) #f) (user-command *config* (:name parsed)))) - (chosen (cond (known? *input*) - ((> (length matches) 0) - (string-append "/" (:name (nth matches (min *psel* (- (length matches) 1)))) - (if (= (:args parsed) "") "" (string-append " " (:args parsed))))) - (else *input*)))) - (clear-input!) - (run-command! chosen))) - (else - (add-block! {:kind :user :text text}) - (clear-input!) - (set! *phase* :thinking) - (run-agent-turn! text) - (set! *phase* :idle) - (render!))))) - -(define (handle-ctrl ch) - (cond - ((= ch "c") (if (> (string-length *input*) 0) (clear-input!) (set! *should-quit* #t))) - ((= ch "d") (set! *should-quit* #t)) - ((= ch "k") (set! *input* "/") (set! *cursor* 1) (set! *psel* 0)) - ((= ch "u") (clear-input!)) - ((= ch "a") (set! *cursor* 0)) - ((= ch "e") (set! *cursor* (string-length *input*))) - ((= ch "l") (full-repaint!)) - (else nil))) - -(define (handle-named name) - (cond - ((equal? name :enter) (on-enter)) - ((equal? name :backspace) (backspace!)) - ((equal? name :left) (set! *cursor* (max 0 (- *cursor* 1)))) - ((equal? name :right) (set! *cursor* (min (string-length *input*) (+ *cursor* 1)))) - ((equal? name :home) (set! *cursor* 0)) - ((equal? name :end) (set! *cursor* (string-length *input*))) - ((equal? name :tab) - (when (palette-open?) - (let ((matches (palette-matches))) - (when (> (length matches) 0) - (set! *input* (string-append "/" (:name (nth matches (min *psel* (- (length matches) 1)))) " ")) - (set! *cursor* (string-length *input*)))))) - ((equal? name :up) - (if (palette-open?) (set! *psel* (max 0 (- *psel* 1))) - (set! *scroll* (+ *scroll* 1)))) - ((equal? name :down) - (if (palette-open?) - (set! *psel* (+ *psel* 1)) - (set! *scroll* (max 0 (- *scroll* 1))))) - ((equal? name :page-up) (set! *scroll* (+ *scroll* (transcript-height)))) - ((equal? name :page-down) (set! *scroll* (max 0 (- *scroll* (transcript-height))))) - ((equal? name :esc) (when (palette-open?) (clear-input!))) - (else nil))) - -(define (handle-mouse k) - ;; Wheel scrolls the transcript; other mouse events are ignored for now. - (let ((action (:action k))) - (cond - ((equal? action :wheel-up) (set! *scroll* (+ *scroll* 3))) - ((equal? action :wheel-down) (set! *scroll* (max 0 (- *scroll* 3)))) - (else nil)))) - -(define (handle-key k) - (let ((kind (:kind k))) - (cond - ((equal? kind :ctrl) (handle-ctrl (:char k))) - ((equal? kind :key) (handle-named (:name k))) - ((equal? kind :char) (insert-char! (:char k))) - ((equal? kind :mouse) (handle-mouse k)) - (else nil)))) - -;; ── Resize ─────────────────────────────────────────────────────────────────── - -(define *resize-pending* #t) - -(define (recompute-size!) - (let ((sz (sys/term-size))) - (when (map? sz) - (set! *rows* (max 6 (:rows sz))) - (set! *cols* (max 20 (:cols sz))))) - (set! *resize-pending* #f)) - -(define (check-resize!) - (sys/check-signals) - (when *resize-pending* (recompute-size!) (full-repaint!))) - -;; ── Entry point ────────────────────────────────────────────────────────────── - -(define (tui-run cwd model cfg agent) - (set! *cwd* cwd) (set! *model* model) (set! *config* cfg) (set! *agent* agent) - (recompute-size!) - (sys/on-signal :winch (lambda () (set! *resize-pending* #t))) - ;; The guards restore raw mode, the alt screen, the cursor, and mouse reporting - ;; on ANY exit — normal or via a thrown error — so a crash can't leave the - ;; terminal broken. (mouse wheel scrolls the transcript → {:kind :mouse}.) - (io/with-raw-mode - (term/with-alt-screen - (term/with-mouse - (term/set-title "(sema) coder") - (add-block! {:kind :info :text (format "(sema) coder — ~a · ~a" cwd (if (= model "") "auto" model))}) - (add-block! {:kind :info :text "type / for commands, ⌃K for the palette, ⌃D to quit"}) - (full-repaint!) - (let loop () - (check-resize!) - (let ((k (io/read-key-timeout 250))) - (when k (handle-key k) (render!))) - (unless *should-quit* (loop)))))) - (io/flush)) diff --git a/examples/sema-coder/util.sema b/examples/sema-coder/util.sema deleted file mode 100644 index 88fed3e88..000000000 --- a/examples/sema-coder/util.sema +++ /dev/null @@ -1,61 +0,0 @@ -;; util.sema — path resolution, safety, and small string helpers -;; -;; Path safety leans on the host primitive (path/within?) rather than ad-hoc -;; string checks: it canonicalizes symlinks, so it catches `../` AND symlink -;; escapes that a substring test would miss. - -;; ── Workspace root (the sandbox boundary) ─────────────────────── - -(define workspace-root ".") -(define (set-workspace-root! path) (set! workspace-root path)) - -(define (resolve-path root path) - "Join root and a relative path, then assert the result stays inside root. - Rejects absolute paths and any traversal that escapes the workspace." - (when (path/absolute? path) - (error (format "Absolute path not allowed: ~a" path))) - (let ((joined (path/join root path))) - (unless (path/within? root joined) - (error (format "Path escapes workspace: ~a" path))) - joined)) - -(define (safe-path? root path) - "Return #t if path resolves to a location inside root." - (try (begin (resolve-path root path) #t) (catch e #f))) - -(define (ensure-dir path) - "Create directory (and parents) if it doesn't already exist." - (unless (file/exists? path) - (file/mkdir path))) - -;; ── String helpers ────────────────────────────────────────────── - -(define (truncate-str s max-len) - (if (> (string/length s) max-len) - (string/append (string/slice s 0 max-len) "…") - s)) - -(define (count-lines text) - (length (string/split text "\n"))) - -(define (lines->numbered text) - "Prepend 1-indexed line numbers (tab-separated) to each line." - (let ((lines (string/split text "\n"))) - (string/join - (map - (lambda (pair) (format "~a\t~a" (+ 1 (car pair)) (cdr pair))) - (zip (range 0 (length lines)) lines)) - "\n"))) - -;; ── Time ───────────────────────────────────────────────────────── - -(define (timestamp) (number/to-string (time-ms))) - -;; ── Shell safety ───────────────────────────────────────────────── - -(define banned-patterns - '("rm -rf /" "rm -rf ~" "mkfs" "dd if=" "> /dev/sd" ":(){" "format c:")) - -(define (banned-command? cmd) - "Return #t if cmd contains a known-dangerous shell pattern." - (any (lambda (pat) (string/contains? cmd pat)) banned-patterns)) From 6703fd18992e6997145820a89b6ed322db1d6e76 Mon Sep 17 00:00:00 2001 From: Helge Sverre Date: Fri, 10 Jul 2026 13:08:49 +0200 Subject: [PATCH 2/5] feat(notebook): finish the @sema-lang/ui migration (#69) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All remaining hand-rolled primitives move onto library components: - toolbar/cell/pill buttons -> sema-button wrapped in sema-tooltip - insert dropdown -> sema-popover + sema-menu (activation via sema-select, covering keyboard and mouse in one path) - reset confirm -> sema-dialog; save feedback/failure -> toast() - title input -> sema-input with testid forwarding - markdown-rendered testid moves to the component's testid prop so the forwarded shadow node carries it (innerHTML assertions see rendered HTML) - Escape blurs the editor again (new blur() delegate) and edits persist on focusout — change alone misses script-mutated values (Tab indent) - notebook.js is an ES module importing toast directly; no window bridge - tokens.css vendored + served (new asset route + test); style.css keeps only warm-palette overrides on the library's token names - vendored bundle refreshed to the locally built @sema-lang/ui 0.2.0 Cell focus for new cells waits on customElements.whenDefined instead of racing element upgrade. --- crates/sema-notebook/src/ui.rs | 12 + crates/sema-notebook/src/ui/index.html | 171 +- crates/sema-notebook/src/ui/notebook.js | 67 +- crates/sema-notebook/src/ui/style.css | 270 +-- crates/sema-notebook/src/ui/vendor/sema-ui.js | 1830 +++++++++-------- crates/sema-notebook/src/ui/vendor/tokens.css | 88 + crates/sema-notebook/tests/assets_test.rs | 16 + 7 files changed, 1233 insertions(+), 1221 deletions(-) create mode 100644 crates/sema-notebook/src/ui/vendor/tokens.css diff --git a/crates/sema-notebook/src/ui.rs b/crates/sema-notebook/src/ui.rs index bfbc79844..214862b7c 100644 --- a/crates/sema-notebook/src/ui.rs +++ b/crates/sema-notebook/src/ui.rs @@ -23,6 +23,7 @@ pub fn asset(path: &str) -> Option<(String, String)> { sema_ui_js().to_string(), "application/javascript".to_string(), )), + "vendor/tokens.css" => Some((tokens_css().to_string(), "text/css".to_string())), _ => None, } } @@ -68,3 +69,14 @@ fn js() -> &'static str { fn sema_ui_js() -> &'static str { include_str!("ui/vendor/sema-ui.js") } + +/// The `@sema-lang/ui` design-token sheet — the `--gold*`/`--text-*`/spacing/radius +/// custom properties the component bundle's own styles fall back to. Linked before +/// `style.css` so the notebook's palette overrides land on top. Vendored from the +/// published npm package's `src/styles/tokens.css`. Refresh alongside `sema_ui_js` +/// by fetching the pinned version from the unpkg CDN: +/// curl -fsSL https://unpkg.com/@sema-lang/ui@/src/styles/tokens.css \ +/// -o crates/sema-notebook/src/ui/vendor/tokens.css +fn tokens_css() -> &'static str { + include_str!("ui/vendor/tokens.css") +} diff --git a/crates/sema-notebook/src/ui/index.html b/crates/sema-notebook/src/ui/index.html index bbe59a952..c40c4fbe3 100644 --- a/crates/sema-notebook/src/ui/index.html +++ b/crates/sema-notebook/src/ui/index.html @@ -5,12 +5,13 @@ Sema Notebook + - + @@ -25,45 +26,57 @@ Notebook
- +
- - + + + + + + + + + + + + + +
- - + + + + + + + + + + + + + +
- - + + + + + + + + + + + + + + +
@@ -76,8 +89,8 @@
Empty notebook
- - + + Code + + Markdown
@@ -86,14 +99,17 @@