liter_llm 1.9.3-aarch64-linux → 1.10.1-aarch64-linux

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: 14979506241e7b986a857219c354ffdb9355af9186e038521984cd4a8ce4e6fd
4
- data.tar.gz: 9e6b5f79a61fa03107c03562fbe88262087aacd9803cdd836383d06c84aa8a6a
3
+ metadata.gz: c320633716d83c24cb0aec9598f29f32ed440faf72fed13e274dac0bf12e8018
4
+ data.tar.gz: ca42c8b4ad009de05276e06c8240a2795ba466a119d6728a546d96a00385850f
5
5
  SHA512:
6
- metadata.gz: ff47981d72ad056ddf585f98fa482ae7a6b9a568c96a32a4b0cc533cc07f71a7612867b9c35da788796b02b3e20d087d29f4755b87f1e9d17ef5923f2bbfbb92
7
- data.tar.gz: 0cedbc04c44ebfd73ec6ecba41d1a784ac5e6d47379bd92867efda53a205892256dba024d90fdeff7e2c5d886a9cf4c6d07fc4a3631b73a0fe8447ff7b4b5dd4
6
+ metadata.gz: 4c138ff659c2f6114f3fbea9974c64afc072f8cda812bb5952cebb383e4a53b6b7e94d0aeb75359ff26b3c4a3ffa410d9d1aac29fe9d5922f93735af3284ba88
7
+ data.tar.gz: ea8f5ee048f301c3a3b7763ea770ad8d3d873a780a532ad7cdb34f5392389cfcd6a542c940fb18df770ebcf599e3706ecc8a9542132f7ae95fc1a2982e14e077
data/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
  <div align="center" style="display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 20px 0">
11
11
  <!-- Built with -->
12
12
  <a href="https://github.com/xberg-io/alef">
13
- <img src="https://img.shields.io/badge/Bindings-alef%20%D7%90-007ec6" alt="Bindings" />
13
+ <img src="https://img.shields.io/badge/built%20with-alef%20%D7%90-007ec6" alt="Built with alef" />
14
14
  </a>
15
15
  <!-- Language Bindings -->
16
16
  <a href="https://crates.io/crates/liter-llm">
@@ -79,7 +79,7 @@
79
79
  </a>
80
80
  </div>
81
81
 
82
- Universal LLM API client for Ruby. Access 143 LLM providers through a single interface with idiomatic Ruby API and native performance.
82
+ Universal LLM API client for Ruby. Access 163 LLM providers through a single interface with idiomatic Ruby API and native performance.
83
83
 
84
84
  ## What This Package Provides
85
85
 
@@ -168,7 +168,7 @@ puts
168
168
 
169
169
  ## Features
170
170
 
171
- ### Supported Providers (143)
171
+ ### Supported Providers (163)
172
172
 
173
173
  Route to any provider using the `provider/model` prefix convention:
174
174
 
@@ -188,7 +188,7 @@ Route to any provider using the `provider/model` prefix convention:
188
188
 
189
189
  ### Key Capabilities
190
190
 
191
- - **Provider Routing** -- Single client for 143 LLM providers via `provider/model` prefix
191
+ - **Provider Routing** -- Single client for 163 LLM providers via `provider/model` prefix
192
192
  - **Local LLMs** — Connect to locally-hosted models via Ollama, LM Studio, vLLM, llama.cpp, and other local inference servers
193
193
  - **Unified API** -- Consistent `chat`, `chat_stream`, `embeddings`, `list_models` interface
194
194
  - **Streaming** -- Real-time token streaming via `chat_stream`
@@ -209,7 +209,7 @@ Built on a compiled Rust core for speed and safety:
209
209
 
210
210
  ## Provider Routing
211
211
 
212
- Route to 143 providers using the `provider/model` prefix convention:
212
+ Route to 163 providers using the `provider/model` prefix convention:
213
213
 
214
214
  ```text
215
215
  openai/gpt-4o
@@ -244,7 +244,7 @@ To use the MCP server inside a coding agent, install the **liter-llm plugin** fr
244
244
 
245
245
  - **[Documentation](https://docs.liter-llm.xberg.io)** -- Full docs and API reference
246
246
  - **[GitHub Repository](https://github.com/xberg-io/liter-llm)** -- Source, issues, and discussions
247
- - **[Provider Registry](https://github.com/xberg-io/liter-llm/blob/main/schemas/providers.json)** -- 143 supported providers
247
+ - **[Provider Registry](https://github.com/xberg-io/liter-llm/blob/main/schemas/providers.json)** -- 163 supported providers
248
248
 
249
249
  ## Part of Xberg.io
250
250
 
@@ -252,7 +252,7 @@ To use the MCP server inside a coding agent, install the **liter-llm plugin** fr
252
252
  - [Xberg Enterprise](https://github.com/xberg-io/xberg-enterprise) — managed extraction API with SDKs, dashboards, and observability.
253
253
  - [crawlberg](https://github.com/xberg-io/crawlberg) — web crawling and scraping with HTML→Markdown and headless-Chrome fallback.
254
254
  - [html-to-markdown](https://github.com/xberg-io/html-to-markdown) — fast, lossless HTML→Markdown engine.
255
- - [liter-llm](https://github.com/xberg-io/liter-llm) — universal LLM API client with native bindings for 14 languages and 143 providers.
255
+ - [liter-llm](https://github.com/xberg-io/liter-llm) — universal LLM API client with native bindings for 14 languages and 163 providers.
256
256
  - [tree-sitter-language-pack](https://github.com/xberg-io/tree-sitter-language-pack) — tree-sitter grammars and code-intelligence primitives.
257
257
  - [alef](https://github.com/xberg-io/alef) — the polyglot binding generator that produces every per-language binding across the 5 polyglot repos.
258
258
  - [Discord](https://discord.gg/xt9WY3GnKR) — community, roadmap, announcements.
@@ -1,5 +1,5 @@
1
1
  # This file is auto-generated by alef — DO NOT EDIT.
2
- # alef:hash:b34f5dac0a6af082b71cab3b75e126050fd38402a73d6d3ff06130b6fe7d8875
2
+ # alef:hash:f2d02d39ed23b63568387f22c991c70fd7b0d5c8f2f92cc028dcbaff825ca583
3
3
  # To regenerate: alef generate
4
4
  # To verify freshness: alef verify --exit-code
5
5
  # frozen_string_literal: true
@@ -7,7 +7,6 @@
7
7
  require "json"
8
8
  require "sorbet-runtime"
9
9
  require "liter_llm_rb"
10
-
11
10
  module LiterLlm
12
11
  # A chat message in a conversation.
13
12
  module Message
@@ -23,20 +22,13 @@ module LiterLlm
23
22
  def self.from_hash(hash)
24
23
  discriminator = hash[:role] || hash["role"]
25
24
  case discriminator
26
- when "system"
27
- MessageSystem.from_hash(hash)
28
- when "user"
29
- MessageUser.from_hash(hash)
30
- when "assistant"
31
- MessageAssistant.from_hash(hash)
32
- when "tool"
33
- MessageTool.from_hash(hash)
34
- when "developer"
35
- MessageDeveloper.from_hash(hash)
36
- when "function"
37
- MessageFunction.from_hash(hash)
38
- else
39
- raise "Unknown discriminator: #{discriminator}"
25
+ when "system" then MessageSystem.from_hash(hash)
26
+ when "user" then MessageUser.from_hash(hash)
27
+ when "assistant" then MessageAssistant.from_hash(hash)
28
+ when "tool" then MessageTool.from_hash(hash)
29
+ when "developer" then MessageDeveloper.from_hash(hash)
30
+ when "function" then MessageFunction.from_hash(hash)
31
+ else raise "Unknown discriminator: #{discriminator}"
40
32
  end
41
33
  end
42
34
  end
@@ -47,8 +39,7 @@ module LiterLlm
47
39
 
48
40
  # @return [SystemMessage]
49
41
  sig { returns(SystemMessage) }
50
- # rubocop:disable Lint/UselessMethodDefinition
51
- def value = super
42
+ def value = super # rubocop:disable Lint/UselessMethodDefinition
52
43
  sig { returns(T::Boolean) }
53
44
  def system? = true
54
45
  sig { returns(T::Boolean) }
@@ -75,8 +66,7 @@ module LiterLlm
75
66
 
76
67
  # @return [UserMessage]
77
68
  sig { returns(UserMessage) }
78
- # rubocop:disable Lint/UselessMethodDefinition
79
- def value = super
69
+ def value = super # rubocop:disable Lint/UselessMethodDefinition
80
70
  sig { returns(T::Boolean) }
81
71
  def system? = false
82
72
  sig { returns(T::Boolean) }
@@ -103,8 +93,7 @@ module LiterLlm
103
93
 
104
94
  # @return [AssistantMessage]
105
95
  sig { returns(AssistantMessage) }
106
- # rubocop:disable Lint/UselessMethodDefinition
107
- def value = super
96
+ def value = super # rubocop:disable Lint/UselessMethodDefinition
108
97
  sig { returns(T::Boolean) }
109
98
  def system? = false
110
99
  sig { returns(T::Boolean) }
@@ -131,8 +120,7 @@ module LiterLlm
131
120
 
132
121
  # @return [ToolMessage]
133
122
  sig { returns(ToolMessage) }
134
- # rubocop:disable Lint/UselessMethodDefinition
135
- def value = super
123
+ def value = super # rubocop:disable Lint/UselessMethodDefinition
136
124
  sig { returns(T::Boolean) }
137
125
  def system? = false
138
126
  sig { returns(T::Boolean) }
@@ -159,8 +147,7 @@ module LiterLlm
159
147
 
160
148
  # @return [DeveloperMessage]
161
149
  sig { returns(DeveloperMessage) }
162
- # rubocop:disable Lint/UselessMethodDefinition
163
- def value = super
150
+ def value = super # rubocop:disable Lint/UselessMethodDefinition
164
151
  sig { returns(T::Boolean) }
165
152
  def system? = false
166
153
  sig { returns(T::Boolean) }
@@ -187,8 +174,7 @@ module LiterLlm
187
174
 
188
175
  # @return [FunctionMessage]
189
176
  sig { returns(FunctionMessage) }
190
- # rubocop:disable Lint/UselessMethodDefinition
191
- def value = super
177
+ def value = super # rubocop:disable Lint/UselessMethodDefinition
192
178
  sig { returns(T::Boolean) }
193
179
  def system? = false
194
180
  sig { returns(T::Boolean) }
@@ -225,16 +211,11 @@ module LiterLlm
225
211
  def self.from_hash(hash)
226
212
  discriminator = hash[:type] || hash["type"]
227
213
  case discriminator
228
- when "text"
229
- ContentPartText.from_hash(hash)
230
- when "image_url"
231
- ContentPartImageUrl.from_hash(hash)
232
- when "document"
233
- ContentPartDocument.from_hash(hash)
234
- when "input_audio"
235
- ContentPartInputAudio.from_hash(hash)
236
- else
237
- raise "Unknown discriminator: #{discriminator}"
214
+ when "text" then ContentPartText.from_hash(hash)
215
+ when "image_url" then ContentPartImageUrl.from_hash(hash)
216
+ when "document" then ContentPartDocument.from_hash(hash)
217
+ when "input_audio" then ContentPartInputAudio.from_hash(hash)
218
+ else raise "Unknown discriminator: #{discriminator}"
238
219
  end
239
220
  end
240
221
  end
@@ -245,8 +226,7 @@ module LiterLlm
245
226
 
246
227
  # @return [String]
247
228
  sig { returns(String) }
248
- # rubocop:disable Lint/UselessMethodDefinition
249
- def text = super
229
+ def text = super # rubocop:disable Lint/UselessMethodDefinition
250
230
  sig { returns(T::Boolean) }
251
231
  def text? = true
252
232
  sig { returns(T::Boolean) }
@@ -269,8 +249,7 @@ module LiterLlm
269
249
 
270
250
  # @return [ImageUrl]
271
251
  sig { returns(ImageUrl) }
272
- # rubocop:disable Lint/UselessMethodDefinition
273
- def image_url = super
252
+ def image_url = super # rubocop:disable Lint/UselessMethodDefinition
274
253
  sig { returns(T::Boolean) }
275
254
  def text? = false
276
255
  sig { returns(T::Boolean) }
@@ -293,8 +272,7 @@ module LiterLlm
293
272
 
294
273
  # @return [DocumentContent]
295
274
  sig { returns(DocumentContent) }
296
- # rubocop:disable Lint/UselessMethodDefinition
297
- def document = super
275
+ def document = super # rubocop:disable Lint/UselessMethodDefinition
298
276
  sig { returns(T::Boolean) }
299
277
  def text? = false
300
278
  sig { returns(T::Boolean) }
@@ -317,8 +295,7 @@ module LiterLlm
317
295
 
318
296
  # @return [AudioContent]
319
297
  sig { returns(AudioContent) }
320
- # rubocop:disable Lint/UselessMethodDefinition
321
- def input_audio = super
298
+ def input_audio = super # rubocop:disable Lint/UselessMethodDefinition
322
299
  sig { returns(T::Boolean) }
323
300
  def text? = false
324
301
  sig { returns(T::Boolean) }
@@ -354,16 +331,11 @@ module LiterLlm
354
331
  def self.from_hash(hash)
355
332
  discriminator = hash[:type] || hash["type"]
356
333
  case discriminator
357
- when "text"
358
- AssistantPartText.from_hash(hash)
359
- when "refusal"
360
- AssistantPartRefusal.from_hash(hash)
361
- when "output_image"
362
- AssistantPartOutputImage.from_hash(hash)
363
- when "output_audio"
364
- AssistantPartOutputAudio.from_hash(hash)
365
- else
366
- raise "Unknown discriminator: #{discriminator}"
334
+ when "text" then AssistantPartText.from_hash(hash)
335
+ when "refusal" then AssistantPartRefusal.from_hash(hash)
336
+ when "output_image" then AssistantPartOutputImage.from_hash(hash)
337
+ when "output_audio" then AssistantPartOutputAudio.from_hash(hash)
338
+ else raise "Unknown discriminator: #{discriminator}"
367
339
  end
368
340
  end
369
341
  end
@@ -374,8 +346,7 @@ module LiterLlm
374
346
 
375
347
  # The text content of this part.
376
348
  sig { returns(String) }
377
- # rubocop:disable Lint/UselessMethodDefinition
378
- def text = super
349
+ def text = super # rubocop:disable Lint/UselessMethodDefinition
379
350
  sig { returns(T::Boolean) }
380
351
  def text? = true
381
352
  sig { returns(T::Boolean) }
@@ -398,8 +369,7 @@ module LiterLlm
398
369
 
399
370
  # The refusal reason.
400
371
  sig { returns(String) }
401
- # rubocop:disable Lint/UselessMethodDefinition
402
- def refusal = super
372
+ def refusal = super # rubocop:disable Lint/UselessMethodDefinition
403
373
  sig { returns(T::Boolean) }
404
374
  def text? = false
405
375
  sig { returns(T::Boolean) }
@@ -422,8 +392,7 @@ module LiterLlm
422
392
 
423
393
  # Image URL or data URI referencing the generated image.
424
394
  sig { returns(ImageUrl) }
425
- # rubocop:disable Lint/UselessMethodDefinition
426
- def image_url = super
395
+ def image_url = super # rubocop:disable Lint/UselessMethodDefinition
427
396
  sig { returns(T::Boolean) }
428
397
  def text? = false
429
398
  sig { returns(T::Boolean) }
@@ -446,8 +415,7 @@ module LiterLlm
446
415
 
447
416
  # Base64-encoded audio data and its format.
448
417
  sig { returns(AudioContent) }
449
- # rubocop:disable Lint/UselessMethodDefinition
450
- def audio = super
418
+ def audio = super # rubocop:disable Lint/UselessMethodDefinition
451
419
  sig { returns(T::Boolean) }
452
420
  def text? = false
453
421
  sig { returns(T::Boolean) }
@@ -495,14 +463,10 @@ module LiterLlm
495
463
  def self.from_hash(hash)
496
464
  discriminator = hash[:type] || hash["type"]
497
465
  case discriminator
498
- when "text"
499
- ResponseFormatText.from_hash(hash)
500
- when "json_object"
501
- ResponseFormatJsonObject.from_hash(hash)
502
- when "json_schema"
503
- ResponseFormatJsonSchema.from_hash(hash)
504
- else
505
- raise "Unknown discriminator: #{discriminator}"
466
+ when "text" then ResponseFormatText.from_hash(hash)
467
+ when "json_object" then ResponseFormatJsonObject.from_hash(hash)
468
+ when "json_schema" then ResponseFormatJsonSchema.from_hash(hash)
469
+ else raise "Unknown discriminator: #{discriminator}"
506
470
  end
507
471
  end
508
472
  end
@@ -549,8 +513,7 @@ module LiterLlm
549
513
 
550
514
  # @return [JsonSchemaFormat]
551
515
  sig { returns(JsonSchemaFormat) }
552
- # rubocop:disable Lint/UselessMethodDefinition
553
- def json_schema = super
516
+ def json_schema = super # rubocop:disable Lint/UselessMethodDefinition
554
517
  sig { returns(T::Boolean) }
555
518
  def text? = false
556
519
  sig { returns(T::Boolean) }
@@ -581,12 +544,9 @@ module LiterLlm
581
544
  def self.from_hash(hash)
582
545
  discriminator = hash[:type] || hash["type"]
583
546
  case discriminator
584
- when "document_url"
585
- OcrDocumentUrl.from_hash(hash)
586
- when "base64"
587
- OcrDocumentBase64.from_hash(hash)
588
- else
589
- raise "Unknown discriminator: #{discriminator}"
547
+ when "document_url" then OcrDocumentUrl.from_hash(hash)
548
+ when "base64" then OcrDocumentBase64.from_hash(hash)
549
+ else raise "Unknown discriminator: #{discriminator}"
590
550
  end
591
551
  end
592
552
  end
@@ -597,8 +557,7 @@ module LiterLlm
597
557
 
598
558
  # The document URL (HTTP/HTTPS).
599
559
  sig { returns(String) }
600
- # rubocop:disable Lint/UselessMethodDefinition
601
- def url = super
560
+ def url = super # rubocop:disable Lint/UselessMethodDefinition
602
561
  sig { returns(T::Boolean) }
603
562
  def url? = true
604
563
  sig { returns(T::Boolean) }
@@ -617,12 +576,10 @@ module LiterLlm
617
576
 
618
577
  # Base64-encoded document content.
619
578
  sig { returns(String) }
620
- # rubocop:disable Lint/UselessMethodDefinition
621
- def data = super
579
+ def data = super # rubocop:disable Lint/UselessMethodDefinition
622
580
  # MIME type (e.g. `"application/pdf"`, `"image/png"`, `"image/jpeg"`).
623
581
  sig { returns(String) }
624
- # rubocop:disable Lint/UselessMethodDefinition
625
- def media_type = super
582
+ def media_type = super # rubocop:disable Lint/UselessMethodDefinition
626
583
  sig { returns(T::Boolean) }
627
584
  def url? = false
628
585
  sig { returns(T::Boolean) }
@@ -651,12 +608,9 @@ module LiterLlm
651
608
  def self.from_hash(hash)
652
609
  discriminator = hash[:type] || hash["type"]
653
610
  case discriminator
654
- when "memory"
655
- CacheBackendMemory.from_hash(hash)
656
- when "open_dal"
657
- CacheBackendOpenDal.from_hash(hash)
658
- else
659
- raise "Unknown discriminator: #{discriminator}"
611
+ when "memory" then CacheBackendMemory.from_hash(hash)
612
+ when "open_dal" then CacheBackendOpenDal.from_hash(hash)
613
+ else raise "Unknown discriminator: #{discriminator}"
660
614
  end
661
615
  end
662
616
  end
@@ -683,12 +637,10 @@ module LiterLlm
683
637
 
684
638
  # OpenDAL scheme name (e.g. "s3", "redis", "fs", "gcs", "azblob").
685
639
  sig { returns(String) }
686
- # rubocop:disable Lint/UselessMethodDefinition
687
- def scheme = super
640
+ def scheme = super # rubocop:disable Lint/UselessMethodDefinition
688
641
  # Backend-specific configuration as key-value pairs passed to OpenDAL.
689
642
  sig { returns(T::Hash[String, String]) }
690
- # rubocop:disable Lint/UselessMethodDefinition
691
- def config = super
643
+ def config = super # rubocop:disable Lint/UselessMethodDefinition
692
644
  sig { returns(T::Boolean) }
693
645
  def memory? = false
694
646
  sig { returns(T::Boolean) }
@@ -1,10 +1,10 @@
1
1
  # This file is auto-generated by alef — DO NOT EDIT.
2
- # alef:hash:b34f5dac0a6af082b71cab3b75e126050fd38402a73d6d3ff06130b6fe7d8875
2
+ # alef:hash:f2d02d39ed23b63568387f22c991c70fd7b0d5c8f2f92cc028dcbaff825ca583
3
3
  # To regenerate: alef generate
4
4
  # To verify freshness: alef verify --exit-code
5
5
  # frozen_string_literal: true
6
6
 
7
7
  module LiterLlm
8
8
  ## The version string for this package.
9
- VERSION = "1.9.3"
9
+ VERSION = "1.10.1"
10
10
  end
data/lib/liter_llm.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # This file is auto-generated by alef — DO NOT EDIT.
2
- # alef:hash:b34f5dac0a6af082b71cab3b75e126050fd38402a73d6d3ff06130b6fe7d8875
2
+ # alef:hash:f2d02d39ed23b63568387f22c991c70fd7b0d5c8f2f92cc028dcbaff825ca583
3
3
  # To regenerate: alef generate
4
4
  # To verify freshness: alef verify --exit-code
5
5
  # frozen_string_literal: true
data/lib/liter_llm_rb.so CHANGED
Binary file