Commit dd8d713

mo khan <mo@mokhan.ca>
2026-09-06 23:39:35
chore: reoranize files
1 parent ed6162f
lib/elelem/llama/plugins/provider.rb
@@ -1,31 +0,0 @@
-# frozen_string_literal: true
-
-require "elelem/plugins"
-require_relative "../../llama"
-
-Elelem::Providers.register(:llama) do
-  gpu = %w[vulkan cuda metal].include?(Elelem::Llama::Client.backend)
-
-  default_model = -> {
-    dir = File.expand_path("~/.agents/models")
-    link = File.join(dir, "default.gguf")
-    return link if File.symlink?(link) || File.exist?(link)
-
-    models = Dir[File.join(dir, "*.gguf")].sort
-    case models.length
-    when 1 then models.first
-    when 0 then raise "no .gguf model found in #{dir}. Set ELELEM_GGUF_MODEL=/path/to/model.gguf"
-    else raise "multiple .gguf models found in #{dir}. Set ELELEM_GGUF_MODEL=/path/to/model.gguf or symlink #{link} to the one to use by default"
-    end
-  }
-
-  Elelem::Llama::Client.new(
-    model: ENV.fetch("ELELEM_GGUF_MODEL") { default_model.call },
-    n_ctx: 0,
-    n_threads: 0,
-    n_gpu_layers: gpu ? 999 : 0,
-    max_tokens: Integer(ENV.fetch("ELELEM_GGUF_MAX_TOKENS", "0")),
-    temp: Float(ENV.fetch("ELELEM_GGUF_TEMP", "0.7")),
-    seed: Integer(ENV.fetch("ELELEM_GGUF_SEED", "-1"))
-  )
-end
lib/elelem/llama/client.rb
@@ -1,8 +1,5 @@
 # frozen_string_literal: true
 
-require "fiddle"
-require "json"
-
 module Elelem
   module Llama
     class Client
lib/elelem/llama.rb
@@ -1,4 +1,35 @@
 # frozen_string_literal: true
 
+require "fiddle"
+require "json"
+require "elelem"
+
 require_relative "llama/version"
 require_relative "llama/client"
+
+Elelem::Providers.register(:llama) do
+  gpu = %w[vulkan cuda metal].include?(Elelem::Llama::Client.backend)
+
+  default_model = -> {
+    dir = File.expand_path("~/.agents/models")
+    link = File.join(dir, "default.gguf")
+    return link if File.symlink?(link) || File.exist?(link)
+
+    models = Dir[File.join(dir, "*.gguf")].sort
+    case models.length
+    when 1 then models.first
+    when 0 then raise "no .gguf model found in #{dir}. Set ELELEM_GGUF_MODEL=/path/to/model.gguf"
+    else raise "multiple .gguf models found in #{dir}. Set ELELEM_GGUF_MODEL=/path/to/model.gguf or symlink #{link} to the one to use by default"
+    end
+  }
+
+  Elelem::Llama::Client.new(
+    model: ENV.fetch("ELELEM_GGUF_MODEL") { default_model.call },
+    n_ctx: 0,
+    n_threads: 0,
+    n_gpu_layers: gpu ? 999 : 0,
+    max_tokens: Integer(ENV.fetch("ELELEM_GGUF_MAX_TOKENS", "0")),
+    temp: Float(ENV.fetch("ELELEM_GGUF_TEMP", "0.7")),
+    seed: Integer(ENV.fetch("ELELEM_GGUF_SEED", "-1"))
+  )
+end
elelem-llama.gemspec
@@ -33,8 +33,7 @@ Gem::Specification.new do |spec|
   spec.executables = ["elelem-llama"]
   spec.require_paths = ["lib"]
 
-  spec.add_dependency "elelem-plugins", "~> 0.1"
-  spec.add_dependency "elelem-cli", "~> 0.1"
+  spec.add_dependency "elelem", "~> 0.10"
   spec.add_dependency "fiddle", "~> 1.1"
   spec.add_dependency "json", "~> 2.21"
 end
Gemfile.lock
@@ -0,0 +1,150 @@
+PATH
+  remote: .
+  specs:
+    elelem-llama (0.1.0)
+      elelem (~> 0.10)
+      fiddle (~> 1.1)
+      json (~> 2.21)
+
+GEM
+  remote: https://rubygems.org/
+  specs:
+    base64 (0.3.0)
+    bigdecimal (4.1.2)
+    date (3.5.1)
+    digest (3.2.1)
+    elelem (0.10.0)
+      base64 (~> 0.1)
+      date (~> 3.0)
+      digest (~> 3.0)
+      erb (~> 6.0)
+      fileutils (~> 1.0)
+      json (~> 2.0)
+      json_schemer (~> 2.0)
+      logger (~> 1.0)
+      net-hippie (~> 1.0)
+      open3 (~> 0.1)
+      optparse (~> 0.1)
+      pathname (~> 0.1)
+      reline (~> 0.6)
+      securerandom (~> 0.1)
+      shellwords (~> 0.2)
+      stringio (~> 3.0)
+      tempfile (~> 0.3)
+      uri (~> 1.0)
+      webrick (~> 1.9)
+    erb (6.0.7)
+    fiddle (1.1.8)
+    fileutils (1.8.0)
+    hana (1.3.7)
+    io-console (0.9.2)
+    irb (1.18.0)
+      pp (>= 0.6.0)
+      prism (>= 1.3.0)
+      rdoc (>= 4.0.0)
+      reline (>= 0.4.2)
+    json (2.21.2)
+    json_schemer (2.5.0)
+      bigdecimal
+      hana (~> 1.3)
+      regexp_parser (~> 2.0)
+      simpleidn (~> 0.2)
+    logger (1.7.0)
+    monitor (0.2.0)
+    net-hippie (1.5.1)
+      base64 (~> 0.1)
+      json (~> 2.0)
+      logger (~> 1.0)
+      monitor (~> 0.1)
+      net-http (~> 0.1)
+      openssl (~> 4.0)
+      resolv (~> 0.1)
+      timeout (~> 0.1)
+    net-http (0.9.1)
+      uri (>= 0.11.1)
+    open3 (0.2.1)
+    openssl (4.0.2)
+    optparse (0.8.1)
+    pathname (0.5.0)
+    pp (0.6.4)
+      prettyprint
+    prettyprint (0.2.0)
+    prism (1.9.0)
+    rake (13.4.2)
+    rbs (4.2.0)
+      logger
+      prism (>= 1.6.0)
+      tsort
+    rdoc (8.0.0)
+      erb
+      prism (>= 1.6.0)
+      rbs (>= 4.0.0)
+      tsort
+    regexp_parser (2.12.0)
+    reline (0.7.0)
+      io-console (~> 0.5)
+    resolv (0.7.2)
+    securerandom (0.4.1)
+    shellwords (0.2.2)
+    simpleidn (0.3.0)
+    stringio (3.2.0)
+    tempfile (0.3.1)
+    timeout (0.6.1)
+    tsort (0.2.0)
+    uri (1.1.1)
+    webrick (1.9.2)
+
+PLATFORMS
+  ruby
+  x86_64-linux
+
+DEPENDENCIES
+  elelem-llama!
+  irb
+  rake (~> 13.0)
+
+CHECKSUMS
+  base64 (0.3.0)
+  bigdecimal (4.1.2)
+  bundler (4.0.20) sha256=7978a8ac648767f5e635bc522445b79e80a52b907a39a36c2d8085ed6bc762ae
+  date (3.5.1)
+  digest (3.2.1)
+  elelem (0.10.0)
+  elelem-llama (0.1.0)
+  erb (6.0.7)
+  fiddle (1.1.8)
+  fileutils (1.8.0)
+  hana (1.3.7)
+  io-console (0.9.2)
+  irb (1.18.0)
+  json (2.21.2)
+  json_schemer (2.5.0)
+  logger (1.7.0)
+  monitor (0.2.0)
+  net-hippie (1.5.1)
+  net-http (0.9.1)
+  open3 (0.2.1)
+  openssl (4.0.2)
+  optparse (0.8.1)
+  pathname (0.5.0)
+  pp (0.6.4)
+  prettyprint (0.2.0)
+  prism (1.9.0)
+  rake (13.4.2)
+  rbs (4.2.0)
+  rdoc (8.0.0)
+  regexp_parser (2.12.0)
+  reline (0.7.0)
+  resolv (0.7.2)
+  securerandom (0.4.1)
+  shellwords (0.2.2)
+  simpleidn (0.3.0)
+  stringio (3.2.0)
+  tempfile (0.3.1)
+  timeout (0.6.1)
+  tsort (0.2.0)
+  uri (1.1.1)
+  webrick (1.9.2)
+
+BUNDLED WITH
+  4.0.20