Commit fa7c5e9

mo khan <mo@mokhan.ca>
2026-09-13 04:46:00
feat: accept model: from provider_options, fall back to ENV
elelem 0.13.0 forwards provider_options: from Elelem.ask through to build_provider, so callers like elelem-daemon can pick a model per job without mutating ELELEM_GGUF_MODEL. ENV and the default-model symlink resolution still apply when model: isn't given.
1 parent 1025909
lib/elelem/llama.rb
@@ -8,7 +8,7 @@ require_relative "llama/version"
 require_relative "llama/provider"
 
 Elelem.configure do |config|
-  config.provider(:llama) do
+  config.provider(:llama) do |model: nil, **|
     gpu = %w[vulkan cuda metal].include?(Elelem::Llama::Provider.backend)
 
     default_model = lambda {
@@ -26,7 +26,7 @@ Elelem.configure do |config|
     }
 
     Elelem::Llama::Provider.new(
-      model: ENV.fetch("ELELEM_GGUF_MODEL") { default_model.call },
+      model: model || ENV.fetch("ELELEM_GGUF_MODEL") { default_model.call },
       n_ctx: 0,
       n_threads: 0,
       n_gpu_layers: gpu ? 999 : 0,
elelem-llama.gemspec
@@ -40,7 +40,7 @@ Gem::Specification.new do |spec|
   spec.executables = ["elelem-llama"]
   spec.require_paths = ["lib"]
 
-  spec.add_dependency "elelem", "~> 0.12"
+  spec.add_dependency "elelem", "~> 0.13"
   spec.add_dependency "fiddle", "~> 1.1"
   spec.add_dependency "json", "~> 3.0"
 end
Gemfile.lock
@@ -2,7 +2,7 @@ PATH
   remote: .
   specs:
     elelem-llama (0.3.0)
-      elelem (~> 0.12)
+      elelem (~> 0.13)
       fiddle (~> 1.1)
       json (~> 3.0)
 
@@ -12,7 +12,7 @@ GEM
     ast (2.4.3)
     bigdecimal (4.1.2)
     diff-lcs (1.6.2)
-    elelem (0.12.0)
+    elelem (0.13.0)
       erb (~> 6.0)
       forwardable (~> 1.4)
       io-console (~> 0.9)
@@ -122,7 +122,7 @@ CHECKSUMS
   bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd
   bundler (4.0.20) sha256=7978a8ac648767f5e635bc522445b79e80a52b907a39a36c2d8085ed6bc762ae
   diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
-  elelem (0.12.0) sha256=dd779834b48a127fac27e01b56ee8add14979ca738aa348b5f2e28fcb6857581
+  elelem (0.13.0)
   elelem-llama (0.3.0)
   erb (6.0.7) sha256=c5ca6dc25b0ef974a44dc8f59fe847577122483b1968a38dec305c60bf91ee92
   fiddle (1.1.8) sha256=7fa8ee3627271497f3add5503acdbc3f40b32f610fc1cf49634f083ef3f32eee