Commit 67bceef

mo khan <mo@mokhan.ca>
2026-09-06 13:58:01
refactor: reorganize gems
1 parent 8ef45b7
Changed files (3)
exe/elelem-llama
@@ -0,0 +1,8 @@
+#!/usr/bin/env ruby
+# frozen_string_literal: true
+
+require "elelem/cli"
+
+Signal.trap("INT") { exit 1 }
+
+Elelem::CLI.new(["chat", "--provider", "llama", *ARGV]).run
lib/elelem/llama/plugin.rb → lib/elelem/llama/plugins/provider.rb
@@ -1,7 +1,7 @@
 # frozen_string_literal: true
 
-require "elelem"
-require_relative "../llama"
+require "elelem/plugins"
+require_relative "../../llama"
 
 Elelem::Providers.register(:llama) do
   gpu = %w[vulkan cuda metal].include?(Elelem::Llama::Client.backend)
elelem-llama.gemspec
@@ -23,7 +23,8 @@ Gem::Specification.new do |spec|
     "lib/elelem/llama.rb",
     "lib/elelem/llama/version.rb",
     "lib/elelem/llama/client.rb",
-    "lib/elelem/llama/plugin.rb",
+    "lib/elelem/llama/plugins/provider.rb",
+    "exe/elelem-llama",
     "ext/elelem/llama/elelem.cpp",
     "ext/elelem/llama/extconf.rb",
   ]
@@ -31,9 +32,12 @@ Gem::Specification.new do |spec|
   # extension below, so it must ship in the gem.
   spec.files += Dir["vendor/llama.cpp/**/*"].select { |path| File.file?(path) }
   spec.extensions = ["ext/elelem/llama/extconf.rb"]
+  spec.bindir = "exe"
+  spec.executables = ["elelem-llama"]
   spec.require_paths = ["lib"]
 
-  spec.add_dependency "elelem", "~> 0.1"
+  spec.add_dependency "elelem-plugins", "~> 0.1"
+  spec.add_dependency "elelem-cli", "~> 0.1"
   spec.add_dependency "fiddle", "~> 1.1"
   spec.add_dependency "json", "~> 2.21"
 end