Commit fee1ec1

2026-09-07 18:05:26
feat: add exe/elelem-ratatui and bin/run for standalone use
exe/elelem-ratatui requires elelem/ratatui (registering its Output/ Input factories) then hands off to the shared Elelem::CLI, so `gem install elelem-ratatui` gives a real executable without touching core's Gemfile or fighting elelem-builtins/elelem-server for the default renderer slot. bin/run wraps `bundle exec ./exe/elelem-ratatui` for local development without installing the gem first, matching core's bin/run. Added elelem-llama/elelem-ollama to the Gemfile so bin/run has providers to test against. Claude-Session: https://claude.ai/code/session_01DUuj4amvRrPxDnHPHBkvz5
1 parent 5035086
bin/run
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+set -e
+[ -n "$DEBUG" ] && set -x
+
+cd "$(dirname "$0")/.."
+
+bundle exec ./exe/elelem-ratatui $@
exe/elelem-ratatui
@@ -0,0 +1,9 @@
+#!/usr/bin/env ruby
+# frozen_string_literal: true
+
+require "elelem/ratatui"
+require "elelem/cli"
+
+Signal.trap("INT") { exit 1 }
+
+Elelem::CLI.new(ARGV).run
elelem-ratatui.gemspec
@@ -25,6 +25,8 @@ Gem::Specification.new do |spec|
     end
   end
   spec.extensions = ["ext/elelem/ratatui/extconf.rb"]
+  spec.bindir = "exe"
+  spec.executables = ["elelem-ratatui"]
   spec.require_paths = ["lib"]
 
   spec.add_dependency "elelem", "~> 0.12"
Gemfile
@@ -4,6 +4,8 @@ source "https://rubygems.org"
 
 gemspec name: "elelem-ratatui"
 
+gem "elelem-llama"
+gem "elelem-ollama"
 gem "irb"
 gem "rake", "~> 13.0"
 gem "rspec", "~> 3.0"
Gemfile.lock
@@ -24,7 +24,17 @@ GEM
       reline (~> 0.7)
       shellwords (~> 0.2)
       uri (~> 1.0)
+    elelem-llama (0.1.0)
+      elelem (~> 0.10)
+      fiddle (~> 1.1)
+      json (~> 2.21)
+    elelem-ollama (0.1.0)
+      elelem (~> 0.10)
+      json (~> 2.21)
+      net-http (~> 0.9)
+      uri (~> 1.1)
     erb (6.0.7)
+    fiddle (1.1.8)
     fileutils (1.8.0)
     hana (1.3.7)
     io-console (0.9.2)
@@ -40,6 +50,8 @@ GEM
       regexp_parser (~> 2.0)
       simpleidn (~> 0.2)
     logger (1.7.0)
+    net-http (0.9.1)
+      uri (>= 0.11.1)
     open3 (0.2.1)
     optparse (0.8.1)
     pathname (0.5.0)
@@ -83,6 +95,8 @@ PLATFORMS
   x86_64-linux
 
 DEPENDENCIES
+  elelem-llama
+  elelem-ollama
   elelem-ratatui!
   irb
   rake (~> 13.0)
@@ -93,8 +107,11 @@ CHECKSUMS
   bundler (4.0.20) sha256=7978a8ac648767f5e635bc522445b79e80a52b907a39a36c2d8085ed6bc762ae
   diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
   elelem (0.12.0)
+  elelem-llama (0.1.0) sha256=818fb6b42162604a6c17b6657854bcf5a5d08720ee2f3c16fad5b2962e22f345
+  elelem-ollama (0.1.0) sha256=24a5f64eb57c193d721c550cc984807631c5eed71eb9d93cc6e35133df83ad03
   elelem-ratatui (0.1.0)
   erb (6.0.7) sha256=c5ca6dc25b0ef974a44dc8f59fe847577122483b1968a38dec305c60bf91ee92
+  fiddle (1.1.8) sha256=7fa8ee3627271497f3add5503acdbc3f40b32f610fc1cf49634f083ef3f32eee
   fileutils (1.8.0) sha256=8c6b1df54e2540bdb2f39258f08af78853aa70bad52b4d394bbc6424593c6e02
   hana (1.3.7) sha256=5425db42d651fea08859811c29d20446f16af196308162894db208cac5ce9b0d
   io-console (0.9.2) sha256=efa74f891dd03c0939a931dfc6e74c2813d904763d456ea9762b0525e748db08
@@ -102,6 +119,7 @@ CHECKSUMS
   json (2.21.2) sha256=1f1d3b7cf2b3ba1a69beca0bb6db13d5438b80bff3cd54cdaaa620b9b07c1c6a
   json_schemer (2.5.0) sha256=2f01fb4cce721a4e08dd068fc2030cffd0702a7f333f1ea2be6e8991f00ae396
   logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
+  net-http (0.9.1) sha256=25ba0b67c63e89df626ed8fac771d0ad24ad151a858af2cc8e6a716ca4336996
   open3 (0.2.1) sha256=8e2d7d2113526351201438c1aa35c8139f0141c9e8913baa007c898973bf3952
   optparse (0.8.1) sha256=42bea10d53907ccff4f080a69991441d611fbf8733b60ed1ce9ee365ce03bd1a
   pathname (0.5.0) sha256=d5a331784f6e1f2fefb31c2ff0b8855aabfb661d807284ead9fa47b883d81623