legion-llm 0.4.6 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: af70d89a4b5d52be8bb70f96a242afdaf9c9bddd324367c9dd9e21b6b10c16eb
4
- data.tar.gz: 4a2d3171deee300fbfc22bcde3723e459ce8c8681163774f03adba7bbdbc626e
3
+ metadata.gz: 5aa74c584bdfa93c5203fd45c3d6b08050dcba02764c318b835cf77676544220
4
+ data.tar.gz: 20d99377a3e05d8f91718cfce83f76cf7f42244358047268765b22d486f4f073
5
5
  SHA512:
6
- metadata.gz: bf3d451a7240dcb2089158805153b4dc2c021d0e1766b92e2b037fd38abe662ba9b0f578702432c8f8ea5dfa3c87467b875658eb4cdae431701ce960ec2a5755
7
- data.tar.gz: a7dc500bf983a8445ffb74ce49643bbfcd8af887a2e6ba6fbec9118d7c86bbd1cf2bf9141023602329042ea150fb085f2807f1a8b04faf3ad8a70f0e9272378f
6
+ metadata.gz: e84f1a8069c65895aa130a4083add77e9c0441bc0bbc6843730e277cfb33a178393ad826f7667e4ca179fa8ab2902f0ce875841bfb3fc4a66f7da2e19f660649
7
+ data.tar.gz: 0f4f615bbc3238726ff922bb8890db4cd67c7171210a1be35d71853d88dd6b59617ababb26cf1b86f023f96ea799386cb95a02941e3940cf107b415e7c20b4a6
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Legion LLM Changelog
2
2
 
3
+ ## [0.4.7] - 2026-03-23
4
+
5
+ ### Fixed
6
+ - `Legion::LLM.chat(message:) { |chunk| chunk.content }` now streams when `pipeline_enabled: false`; block is forwarded through `chat_single` to `session.ask` rather than silently ignored
7
+
8
+ ### Added
9
+ - Integration specs verifying pipeline streaming yields chunks with `.content`, `caller:` flows through to `response.caller`, and non-pipeline streaming works
10
+
3
11
  ## [0.4.6] - 2026-03-23
4
12
 
5
13
  ### Changed
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Legion
4
4
  module LLM
5
- VERSION = '0.4.6'
5
+ VERSION = '0.4.7'
6
6
  end
7
7
  end
data/lib/legion/llm.rb CHANGED
@@ -219,6 +219,11 @@ module Legion
219
219
  quality_check: quality_check, **kwargs, &)
220
220
  end
221
221
 
222
+ if block_given? && message
223
+ return chat_single(model: model, provider: provider, intent: intent, tier: tier,
224
+ message: message, **kwargs, &)
225
+ end
226
+
222
227
  messages = message.is_a?(Array) ? message : [{ role: 'user', content: message.to_s }]
223
228
  resolved_model = model || settings[:default_model]
224
229
 
@@ -277,7 +282,7 @@ module Legion
277
282
  }
278
283
  end
279
284
 
280
- def chat_single(model:, provider:, intent:, tier:, message: nil, **kwargs) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
285
+ def chat_single(model:, provider:, intent:, tier:, message: nil, **kwargs, &block) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
281
286
  explicit_tools = kwargs.delete(:tools)
282
287
  tools = explicit_tools || ToolRegistry.tools
283
288
  tools = nil if tools.empty?
@@ -313,7 +318,7 @@ module Legion
313
318
  return session unless message
314
319
 
315
320
  Legion::Logging.debug '[LLM] chat_single calling session.ask' if defined?(Legion::Logging)
316
- response = session.ask(message)
321
+ response = block ? session.ask(message, &block) : session.ask(message)
317
322
  Legion::Logging.debug "[LLM] chat_single response_class=#{response.class} response_nil=#{response.nil?}" if defined?(Legion::Logging)
318
323
  response
319
324
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legion-llm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity