Commit 129c0da

mo khan <mo@mokhan.ca>
2026-01-15 19:14:29
refactor: tty-markdown keeps crashing
1 parent 9355013
lib/elelem/terminal.rb
@@ -7,6 +7,7 @@ module Elelem
       @providers = providers
       @env_vars = env_vars
       @spinner_thread = nil
+      @glow_available = system("which glow > /dev/null 2>&1")
       setup_completion
     end
 
@@ -16,17 +17,13 @@ module Elelem
 
     def say(message, markdown: false)
       stop_spinner
-      if markdown
-        $stdout.puts TTY::Markdown.parse(message, width: terminal_width)
+      if markdown && @glow_available
+        IO.popen("glow -", "w") { |io| io.puts message }
       else
         $stdout.puts message
       end
     end
 
-    def terminal_width
-      IO.console&.winsize&.last || 80
-    end
-
     def write(message)
       stop_spinner
       $stdout.print message
lib/elelem.rb
@@ -15,7 +15,6 @@ require "reline"
 require "set"
 require "thor"
 require "timeout"
-require "tty/markdown"
 
 require_relative "elelem/agent"
 require_relative "elelem/application"
elelem.gemspec
@@ -54,5 +54,4 @@ Gem::Specification.new do |spec|
   spec.add_dependency "set", "~> 1.0"
   spec.add_dependency "thor", "~> 1.0"
   spec.add_dependency "timeout", "~> 0.1"
-  spec.add_dependency "tty-markdown", "~> 0.7"
 end
Gemfile.lock
@@ -17,7 +17,6 @@ PATH
       set (~> 1.0)
       thor (~> 1.0)
       timeout (~> 0.1)
-      tty-markdown (~> 0.7)
 
 GEM
   remote: https://rubygems.org/
@@ -41,8 +40,6 @@ GEM
     json-schema (6.1.0)
       addressable (~> 2.8)
       bigdecimal (>= 3.1, < 5)
-    kramdown (2.5.1)
-      rexml (>= 3.3.9)
     logger (1.7.0)
     net-hippie (1.4.0)
       base64 (~> 0.1)
@@ -58,8 +55,6 @@ GEM
       uri (~> 1.0)
     open3 (0.2.1)
     openssl (3.3.2)
-    pastel (0.8.0)
-      tty-color (~> 0.5)
     pathname (0.4.0)
     pp (0.6.3)
       prettyprint
@@ -75,8 +70,6 @@ GEM
       tsort
     reline (0.6.3)
       io-console (~> 0.5)
-    rexml (3.4.4)
-    rouge (4.7.0)
     rspec (3.13.2)
       rspec-core (~> 3.13.0)
       rspec-expectations (~> 3.13.0)
@@ -92,25 +85,9 @@ GEM
     rspec-support (3.13.6)
     set (1.1.2)
     stringio (3.2.0)
-    strings (0.2.1)
-      strings-ansi (~> 0.2)
-      unicode-display_width (>= 1.5, < 3.0)
-      unicode_utils (~> 1.4)
-    strings-ansi (0.2.0)
     thor (1.5.0)
     timeout (0.6.0)
     tsort (0.2.0)
-    tty-color (0.6.0)
-    tty-markdown (0.7.2)
-      kramdown (>= 1.16.2, < 3.0)
-      pastel (~> 0.8)
-      rouge (>= 3.14, < 5.0)
-      strings (~> 0.2.0)
-      tty-color (~> 0.5)
-      tty-screen (~> 0.8)
-    tty-screen (0.8.2)
-    unicode-display_width (2.6.0)
-    unicode_utils (1.4.0)
     uri (1.1.1)
 
 PLATFORMS