lex-llm 0.7.2 → 0.7.6

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.
@@ -76,4 +76,31 @@ RSpec.describe Legion::Extensions::Llm::Taxonomies do
76
76
  .to raise_error(Legion::Extensions::Llm::Inventory::Errors::ValidationError)
77
77
  end
78
78
  end
79
+
80
+ describe '.lane_type_for' do
81
+ let(:mapping) do
82
+ {
83
+ chat: :inference, stream_chat: :inference, embed: :embedding,
84
+ image: :image, transcribe: :audio, translate: :audio, speak: :audio,
85
+ moderate: :inference, count_tokens: :inference
86
+ }
87
+ end
88
+
89
+ it 'owns the complete frozen operation-to-lane-type mapping' do
90
+ expect(described_class::OPERATION_TO_LANE_TYPE).to eq(mapping)
91
+ expect(described_class::OPERATION_TO_LANE_TYPE).to be_frozen
92
+ expect(described_class::OPERATION_TO_LANE_TYPE.keys).to match_array(described_class::OPERATIONS)
93
+ expect(described_class::OPERATION_TO_LANE_TYPE.values.uniq)
94
+ .to match_array(described_class::TYPES)
95
+ end
96
+
97
+ it 'resolves every canonical operation and rejects unknown operations' do
98
+ mapping.each do |operation, lane_type|
99
+ expect(described_class.lane_type_for(operation: operation)).to eq(lane_type)
100
+ end
101
+
102
+ expect { described_class.lane_type_for(operation: :unknown) }
103
+ .to raise_error(Legion::Extensions::Llm::Inventory::Errors::ValidationError)
104
+ end
105
+ end
79
106
  end
@@ -50,14 +50,15 @@ module SsotRegistryHelpers
50
50
  end
51
51
  end
52
52
 
53
- def drafts(model: 'gemma4', native: 'gemma4', supported: %i[chat], tier: :local)
53
+ def drafts(model: 'gemma4', native: 'gemma4', supported: %i[chat], tier: :local, **weight_pair)
54
54
  [
55
55
  Legion::Extensions::Llm::Inventory::OfferingDraft.new(
56
56
  provider_native_key: native, model: model, tier: tier,
57
57
  operation_evidence: operation_evidence(supported: supported),
58
58
  context_evidence: unknown_value, max_output_evidence: unknown_value,
59
59
  embedding_dimensions_evidence: unknown_value, model_revision_evidence: unknown_value,
60
- tokenizer_evidence: unknown_value, publication_source: :provider_catalog
60
+ tokenizer_evidence: unknown_value, publication_source: :provider_catalog,
61
+ **weight_pair
61
62
  )
62
63
  ]
63
64
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lex-llm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.7.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - LegionIO
@@ -308,6 +308,8 @@ files:
308
308
  - lib/legion/extensions/llm/inventory/registry.rb
309
309
  - lib/legion/extensions/llm/inventory/scoped_refresher.rb
310
310
  - lib/legion/extensions/llm/inventory/snapshot.rb
311
+ - lib/legion/extensions/llm/inventory/weight_reconciler.rb
312
+ - lib/legion/extensions/llm/inventory/weight_schema.rb
311
313
  - lib/legion/extensions/llm/message.rb
312
314
  - lib/legion/extensions/llm/mime_type.rb
313
315
  - lib/legion/extensions/llm/model.rb
@@ -441,6 +443,8 @@ files:
441
443
  - spec/legion/extensions/llm/inventory/registry_replacement_spec.rb
442
444
  - spec/legion/extensions/llm/inventory/scoped_refresher_spec.rb
443
445
  - spec/legion/extensions/llm/inventory/snapshot_spec.rb
446
+ - spec/legion/extensions/llm/inventory/weight_reconciler_spec.rb
447
+ - spec/legion/extensions/llm/inventory/weight_schema_spec.rb
444
448
  - spec/legion/extensions/llm/message_spec.rb
445
449
  - spec/legion/extensions/llm/model/info_spec.rb
446
450
  - spec/legion/extensions/llm/models_spec.rb