liter_llm 1.5.1-aarch64-linux → 1.6.4-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: 508afba9d95205825598576432cb8a8445297463be1d0af5ef850b7bd5823945
4
- data.tar.gz: 778a2e11d1da65a56d9b55fafd676af619d7ec687d1f4e8c1af0cdc359237af3
3
+ metadata.gz: 42b31a025478e42ac516bb0c32be4e87bffaf6c7967fca2d8761914c416e21c9
4
+ data.tar.gz: 7e3b75759f5c473b023ecb8d873fea6734d9dfe6b2f0e9f979fc46faafa2fe4e
5
5
  SHA512:
6
- metadata.gz: 47afff60253e0ad74e8599daace049c16417a6b1ed9fbe2f8339b9431d6c78ad22e95b77fe1bb0d5dea1ef37efbedc08bf20a35261f1c46cb53f926e0db70988
7
- data.tar.gz: 1f2cdb012449c287ecda7eb224a2151d5070f2dca8140890b9d80267aeab7d89aa8fa96078b122e3fa2323275ca19745a7aa86a5a68b33e7bfce78f5ed2fb4bb
6
+ metadata.gz: c56756a9180a076c537fc40a9fba2ce3c13eb21b89a42a8e4e1a7ef74b5de1af14c66ad79808ff75f6e444f6e8022d424b3d1533dadab1e1a0a875799b0fe8e5
7
+ data.tar.gz: f740664abaec8e30b5240d5f1195765da0b9987633507effcea8660ab653b2dda746601584838c3a6322ad73e36ae3cc0a5aa9716e52b566f44c1febf0953c01
data/README.md CHANGED
@@ -1,136 +1,110 @@
1
1
  # Ruby
2
2
 
3
- <div
4
- align="center"
5
- style="display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 20px 0"
6
- >
7
- <!-- Built with -->
8
- <a href="https://github.com/kreuzberg-dev/alef">
9
- <img
10
- src="https://img.shields.io/badge/built%20with-alef%20%D7%90-007ec6"
11
- alt="Built with alef"
12
- />
13
- </a>
14
- <!-- Language Bindings -->
15
- <a href="https://crates.io/crates/liter-llm">
16
- <img src="https://img.shields.io/crates/v/liter-llm?label=Rust&color=007ec6" alt="Rust" />
17
- </a>
18
- <a href="https://pypi.org/project/liter-llm/">
19
- <img src="https://img.shields.io/pypi/v/liter-llm?label=Python&color=007ec6" alt="Python" />
20
- </a>
21
- <a href="https://www.npmjs.com/package/@kreuzberg/liter-llm">
22
- <img
23
- src="https://img.shields.io/npm/v/@kreuzberg/liter-llm?label=Node.js&color=007ec6"
24
- alt="Node.js"
25
- />
26
- </a>
27
- <a href="https://www.npmjs.com/package/@kreuzberg/liter-llm-wasm">
28
- <img
29
- src="https://img.shields.io/npm/v/@kreuzberg/liter-llm-wasm?label=WASM&color=007ec6"
30
- alt="WASM"
31
- />
32
- </a>
33
- <a href="https://central.sonatype.com/artifact/dev.kreuzberg/liter-llm">
34
- <img
35
- src="https://img.shields.io/maven-central/v/dev.kreuzberg/liter-llm?label=Java&color=007ec6"
36
- alt="Java"
37
- />
38
- </a>
39
- <a href="https://github.com/kreuzberg-dev/liter-llm/tree/main/packages/go">
40
- <img
41
- src="https://img.shields.io/github/v/tag/kreuzberg-dev/liter-llm?label=Go&color=007ec6"
42
- alt="Go"
43
- />
44
- </a>
45
- <a href="https://www.nuget.org/packages/LiterLlm">
46
- <img src="https://img.shields.io/nuget/v/LiterLlm?label=C%23&color=007ec6" alt="C#" />
47
- </a>
48
- <a href="https://packagist.org/packages/kreuzberg/liter-llm">
49
- <img
50
- src="https://img.shields.io/packagist/v/kreuzberg/liter-llm?label=PHP&color=007ec6"
51
- alt="PHP"
52
- />
53
- </a>
54
- <a href="https://rubygems.org/gems/liter_llm">
55
- <img src="https://img.shields.io/gem/v/liter_llm?label=Ruby&color=007ec6" alt="Ruby" />
56
- </a>
57
- <a href="https://hex.pm/packages/liter_llm">
58
- <img src="https://img.shields.io/hexpm/v/liter_llm?label=Elixir&color=007ec6" alt="Elixir" />
59
- </a>
60
- <a href="https://github.com/kreuzberg-dev/liter-llm/pkgs/container/liter-llm">
61
- <img
62
- src="https://img.shields.io/badge/Docker-007ec6?logo=docker&logoColor=white"
63
- alt="Docker"
64
- />
65
- </a>
66
- <a href="https://github.com/kreuzberg-dev/homebrew-tap/blob/main/Formula/liter-llm.rb">
67
- <img
68
- src="https://img.shields.io/badge/Homebrew-007ec6?logo=homebrew&logoColor=white"
69
- alt="Homebrew"
70
- />
71
- </a>
72
- <a href="https://github.com/kreuzberg-dev/liter-llm/tree/main/crates/liter-llm-ffi">
73
- <img src="https://img.shields.io/badge/C-FFI-007ec6" alt="C FFI" />
74
- </a>
75
-
76
- <!-- Project Info -->
77
- <a href="https://github.com/kreuzberg-dev/liter-llm/blob/main/LICENSE">
78
- <img src="https://img.shields.io/badge/License-MIT-007ec6" alt="License" />
79
- </a>
80
- <a href="https://docs.liter-llm.kreuzberg.dev">
81
- <img src="https://img.shields.io/badge/docs-kreuzberg.dev-007ec6" alt="Docs" />
82
- </a>
3
+ <div align="center" style="display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 20px 0">
4
+ <!-- Built with -->
5
+ <a href="https://github.com/kreuzberg-dev/alef">
6
+ <img src="https://img.shields.io/badge/Bindings-alef%20%D7%90-007ec6" alt="Bindings" />
7
+ </a>
8
+ <!-- Language Bindings -->
9
+ <a href="https://crates.io/crates/liter-llm">
10
+ <img src="https://img.shields.io/crates/v/liter-llm?label=Rust&color=007ec6" alt="Rust" />
11
+ </a>
12
+ <a href="https://pypi.org/project/liter-llm/">
13
+ <img src="https://img.shields.io/pypi/v/liter-llm?label=Python&color=007ec6" alt="Python" />
14
+ </a>
15
+ <a href="https://www.npmjs.com/package/@kreuzberg/liter-llm-node">
16
+ <img src="https://img.shields.io/npm/v/@kreuzberg/liter-llm-node?label=Node.js&color=007ec6" alt="Node.js" />
17
+ </a>
18
+ <a href="https://www.npmjs.com/package/@kreuzberg/liter-llm-wasm">
19
+ <img src="https://img.shields.io/npm/v/@kreuzberg/liter-llm-wasm?label=WASM&color=007ec6" alt="WASM" />
20
+ </a>
21
+ <a href="https://central.sonatype.com/artifact/dev.kreuzberg.literllm/liter-llm">
22
+ <img src="https://img.shields.io/maven-central/v/dev.kreuzberg.literllm/liter-llm?label=Java&color=007ec6" alt="Java" />
23
+ </a>
24
+ <a href="https://github.com/kreuzberg-dev/liter-llm/tree/main/packages/go">
25
+ <img src="https://img.shields.io/github/v/tag/kreuzberg-dev/liter-llm?label=Go&color=007ec6" alt="Go" />
26
+ </a>
27
+ <a href="https://www.nuget.org/packages/LiterLlm">
28
+ <img src="https://img.shields.io/nuget/v/LiterLlm?label=C%23&color=007ec6" alt="C#" />
29
+ </a>
30
+ <a href="https://packagist.org/packages/kreuzberg-dev/liter-llm">
31
+ <img src="https://img.shields.io/packagist/v/kreuzberg-dev/liter-llm?label=PHP&color=007ec6" alt="PHP" />
32
+ </a>
33
+ <a href="https://rubygems.org/gems/liter_llm">
34
+ <img src="https://img.shields.io/gem/v/liter_llm?label=Ruby&color=007ec6" alt="Ruby" />
35
+ </a>
36
+ <a href="https://hex.pm/packages/liter_llm">
37
+ <img src="https://img.shields.io/hexpm/v/liter_llm?label=Elixir&color=007ec6" alt="Elixir" />
38
+ </a>
39
+ <a href="https://github.com/kreuzberg-dev/liter-llm/pkgs/container/liter-llm">
40
+ <img src="https://img.shields.io/badge/Docker-007ec6?logo=docker&logoColor=white" alt="Docker" />
41
+ </a>
42
+ <a href="https://github.com/kreuzberg-dev/homebrew-tap/blob/main/Formula/liter-llm.rb">
43
+ <img src="https://img.shields.io/badge/Homebrew-007ec6?logo=homebrew&logoColor=white" alt="Homebrew" />
44
+ </a>
45
+ <a href="https://github.com/kreuzberg-dev/liter-llm/tree/main/crates/liter-llm-ffi">
46
+ <img src="https://img.shields.io/badge/C-FFI-007ec6" alt="C FFI" />
47
+ </a>
48
+
49
+ <!-- Project Info -->
50
+ <a href="https://github.com/kreuzberg-dev/liter-llm/blob/main/LICENSE">
51
+ <img src="https://img.shields.io/badge/License-MIT-007ec6" alt="License" />
52
+ </a>
53
+ <a href="https://docs.liter-llm.kreuzberg.dev">
54
+ <img src="https://img.shields.io/badge/Docs-liter--llm-007ec6" alt="Docs" />
55
+ </a>
83
56
  </div>
84
- <div align="center" style="margin: 20px 0">
85
- <picture>
86
- <img
87
- width="100%"
88
- alt="kreuzberg.dev"
89
- src="https://github.com/user-attachments/assets/1b6c6ad7-3b6d-4171-b1c9-f2026cc9deb8"
90
- />
91
- </picture>
57
+ <div align="center" style="margin: 24px 0 0">
58
+ <a href="https://kreuzberg.dev">
59
+ <img
60
+ alt="kreuzberg.dev"
61
+ src="https://github.com/user-attachments/assets/1b6c6ad7-3b6d-4171-b1c9-f2026cc9deb8"
62
+ />
63
+ </a>
92
64
  </div>
93
- <div align="center" style="margin-bottom: 20px">
94
- <a href="https://discord.gg/xt9WY3GnKR">
95
- <img
96
- height="22"
97
- src="https://img.shields.io/badge/Discord-Join%20our%20community-7289da?logo=discord&logoColor=white"
98
- alt="Discord"
99
- />
100
- </a>
65
+ <div align="center" style="display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin: 28px 0 24px">
66
+ <a href="https://discord.gg/xt9WY3GnKR">
67
+ <img
68
+ height="22"
69
+ src="https://img.shields.io/badge/Discord-Chat-007ec6?logo=discord&logoColor=white"
70
+ alt="Join Discord"
71
+ />
72
+ </a>
101
73
  </div>
102
74
 
103
- Universal LLM API client for Ruby. Access 143+ LLM providers through a single interface with idiomatic Ruby API and native performance.
75
+ Universal LLM API client for Ruby. Access 143 LLM providers through a single interface with idiomatic Ruby API and native performance.
76
+
77
+ ## What This Package Provides
78
+
79
+ - **One provider surface** — chat, streaming, embeddings, images, audio, search, OCR, tools, and structured output across the provider registry.
80
+ - **Provider/model routing** — call models with the `provider/model` convention and keep provider-specific request code out of application paths.
81
+ - **Production controls** — retries, fallback, rate limits, cache layers, budgets, health checks, OpenTelemetry spans, and redacted secrets.
82
+ - **Same core as every binding** — Rust, Python, Node.js, Go, Java, PHP, Ruby, .NET, Elixir, WASM, Kotlin Android, Swift, Dart, Zig, and C FFI use the same Rust implementation.
83
+ - **Ruby package** — native extension with idiomatic Ruby request and response objects.
104
84
 
105
85
  ## Installation
106
86
 
107
87
  ### Package Installation
108
88
 
109
-
110
89
  Install via one of the supported package managers:
111
90
 
112
-
113
91
  **gem:**
114
92
 
115
93
  ```bash
116
94
  gem install liter_llm
117
95
  ```
118
96
 
119
-
120
97
  **Bundler:**
121
98
 
122
99
  ```ruby
123
100
  gem 'liter_llm'
124
101
  ```
125
102
 
126
-
127
103
  ### System Requirements
128
104
 
129
-
130
105
  - **Ruby 3.2+** required
131
106
  - API keys via environment variables (e.g. `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`)
132
107
 
133
-
134
108
  ## Quick Start
135
109
 
136
110
  ### Basic Chat
@@ -156,7 +130,6 @@ puts result.choices[0].message.content
156
130
 
157
131
  ### Common Use Cases
158
132
 
159
-
160
133
  #### Streaming Responses
161
134
 
162
135
  Stream tokens in real time:
@@ -181,16 +154,14 @@ end
181
154
  puts
182
155
  ```
183
156
 
184
-
185
157
  ### Next Steps
186
158
 
187
159
  - **[Provider Registry](https://github.com/kreuzberg-dev/liter-llm/blob/main/schemas/providers.json)** - Full list of supported providers
188
160
  - **[GitHub Repository](https://github.com/kreuzberg-dev/liter-llm)** - Source, issues, and discussions
189
161
 
190
-
191
162
  ## Features
192
163
 
193
- ### Supported Providers (143+)
164
+ ### Supported Providers (143)
194
165
 
195
166
  Route to any provider using the `provider/model` prefix convention:
196
167
 
@@ -210,15 +181,11 @@ Route to any provider using the `provider/model` prefix convention:
210
181
 
211
182
  ### Key Capabilities
212
183
 
213
- - **Provider Routing** -- Single client for 143+ LLM providers via `provider/model` prefix
184
+ - **Provider Routing** -- Single client for 143 LLM providers via `provider/model` prefix
214
185
  - **Local LLMs** — Connect to locally-hosted models via Ollama, LM Studio, vLLM, llama.cpp, and other local inference servers
215
186
  - **Unified API** -- Consistent `chat`, `chat_stream`, `embeddings`, `list_models` interface
216
-
217
187
  - **Streaming** -- Real-time token streaming via `chat_stream`
218
-
219
-
220
188
  - **Tool Calling** -- Function calling and tool use across all supporting providers
221
-
222
189
  - **Type Safe** -- Schema-driven types compiled from JSON schemas
223
190
  - **Secure** -- API keys never logged or serialized, managed via environment variables
224
191
  - **Observability** -- Built-in [OpenTelemetry](https://opentelemetry.io/docs/specs/semconv/gen-ai/) with GenAI semantic conventions
@@ -233,10 +200,9 @@ Built on a compiled Rust core for speed and safety:
233
200
  - **Zero-copy streaming** with SSE and AWS EventStream support
234
201
  - **API keys** wrapped in secure memory, zeroed on drop
235
202
 
236
-
237
203
  ## Provider Routing
238
204
 
239
- Route to 143+ providers using the `provider/model` prefix convention:
205
+ Route to 143 providers using the `provider/model` prefix convention:
240
206
 
241
207
  ```text
242
208
  openai/gpt-4o
@@ -247,7 +213,6 @@ mistral/mistral-large-latest
247
213
 
248
214
  See the [provider registry](https://github.com/kreuzberg-dev/liter-llm/blob/main/schemas/providers.json) for the full list.
249
215
 
250
-
251
216
  ## Proxy Server
252
217
 
253
218
  liter-llm also ships as an OpenAI-compatible proxy server with Docker support:
@@ -256,7 +221,7 @@ liter-llm also ships as an OpenAI-compatible proxy server with Docker support:
256
221
  docker run -p 4000:4000 -e LITER_LLM_MASTER_KEY=sk-your-key ghcr.io/kreuzberg-dev/liter-llm
257
222
  ```
258
223
 
259
- See the [proxy server documentation](https://docs.liter-llm.kreuzberg.dev/server/proxy/) for configuration, CLI usage, and MCP integration.
224
+ See the [proxy server documentation](https://docs.liter-llm.kreuzberg.dev/server/proxy-server/) for configuration, CLI usage, and MCP integration.
260
225
 
261
226
  ## Documentation
262
227
 
@@ -270,8 +235,9 @@ See the [proxy server documentation](https://docs.liter-llm.kreuzberg.dev/server
270
235
  - [Kreuzberg Cloud](https://github.com/kreuzberg-dev/kreuzberg-cloud) — managed extraction API with SDKs, dashboards, and observability.
271
236
  - [kreuzcrawl](https://github.com/kreuzberg-dev/kreuzcrawl) — web crawling and scraping with HTML→Markdown and headless-Chrome fallback.
272
237
  - [html-to-markdown](https://github.com/kreuzberg-dev/html-to-markdown) — fast, lossless HTML→Markdown engine.
238
+ - [liter-llm](https://github.com/kreuzberg-dev/liter-llm) — universal LLM API client with native bindings for 14 languages and 143 providers.
273
239
  - [tree-sitter-language-pack](https://github.com/kreuzberg-dev/tree-sitter-language-pack) — tree-sitter grammars and code-intelligence primitives.
274
- - [alef](https://github.com/kreuzberg-dev/alef) — the polyglot binding generator that produces this README and all per-language bindings.
240
+ - [alef](https://github.com/kreuzberg-dev/alef) — the polyglot binding generator that produces every per-language binding across the 5 polyglot repos.
275
241
  - [Discord](https://discord.gg/xt9WY3GnKR) — community, roadmap, announcements.
276
242
 
277
243
  ## Contributing
@@ -1,5 +1,5 @@
1
1
  # This file is auto-generated by alef — DO NOT EDIT.
2
- # alef:hash:fe64a8a06beeb01b5344005fa07dcdfdf3e244d772ace0f89dbba84b0541ca2d
2
+ # alef:hash:52effca2513e1c5f8a9a5b90a372d645388de4b92e4f822acc38d97502c322b6
3
3
  # To regenerate: alef generate
4
4
  # To verify freshness: alef verify --exit-code
5
5
  # frozen_string_literal: true
@@ -1,10 +1,10 @@
1
1
  # This file is auto-generated by alef — DO NOT EDIT.
2
- # alef:hash:fe64a8a06beeb01b5344005fa07dcdfdf3e244d772ace0f89dbba84b0541ca2d
2
+ # alef:hash:52effca2513e1c5f8a9a5b90a372d645388de4b92e4f822acc38d97502c322b6
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.5.1"
9
+ VERSION = "1.6.4"
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:fe64a8a06beeb01b5344005fa07dcdfdf3e244d772ace0f89dbba84b0541ca2d
2
+ # alef:hash:52effca2513e1c5f8a9a5b90a372d645388de4b92e4f822acc38d97502c322b6
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
data/sig/types.rbs CHANGED
@@ -1,5 +1,5 @@
1
1
  # This file is auto-generated by alef — DO NOT EDIT.
2
- # alef:hash:fe64a8a06beeb01b5344005fa07dcdfdf3e244d772ace0f89dbba84b0541ca2d
2
+ # alef:hash:52effca2513e1c5f8a9a5b90a372d645388de4b92e4f822acc38d97502c322b6
3
3
  # To regenerate: alef generate
4
4
  # To verify freshness: alef verify --exit-code
5
5
 
@@ -651,6 +651,16 @@ module LiterLlm
651
651
  def initialize: (?input_tokens: Integer, ?output_tokens: Integer, ?total_tokens: Integer) -> void
652
652
  end
653
653
 
654
+ class WaitForBatchConfig
655
+ attr_accessor initial_interval_secs: Float?
656
+ attr_accessor max_interval_secs: Float?
657
+ attr_accessor backoff_multiplier: Float?
658
+ attr_accessor timeout_secs: Float?
659
+
660
+ def initialize: (?initial_interval_secs: Float, ?max_interval_secs: Float, ?backoff_multiplier: Float, ?timeout_secs: Float) -> void
661
+ def self.default: () -> WaitForBatchConfig
662
+ end
663
+
654
664
  class DefaultClient
655
665
  def chat: (ChatCompletionRequest req) -> ChatCompletionResponse
656
666
  def chat_stream: (ChatCompletionRequest req) -> Enumerator[ChatStreamIterator]
@@ -672,6 +682,8 @@ module LiterLlm
672
682
  def retrieve_batch: (String batch_id) -> BatchObject
673
683
  def list_batches: (?BatchListQuery query) -> BatchListResponse
674
684
  def cancel_batch: (String batch_id) -> BatchObject
685
+ def fetch_batch_for_polling: (String batch_id) -> BatchObject
686
+ def wait_for_batch: (String batch_id, WaitForBatchConfig config) -> BatchObject
675
687
  def create_response: (CreateResponseRequest req) -> ResponseObject
676
688
  def retrieve_response: (String response_id) -> ResponseObject
677
689
  def cancel_response: (String response_id) -> ResponseObject
@@ -686,6 +698,18 @@ module LiterLlm
686
698
  def initialize: (name: String, base_url: String, auth_header: AuthHeaderFormat, model_prefixes: Array[String]) -> void
687
699
  end
688
700
 
701
+ class ProviderCapabilities
702
+ attr_accessor vision: bool?
703
+ attr_accessor reasoning: bool?
704
+ attr_accessor structured_output: bool?
705
+ attr_accessor function_calling: bool?
706
+ attr_accessor audio_in: bool?
707
+ attr_accessor audio_out: bool?
708
+ attr_accessor video_in: bool?
709
+
710
+ def initialize: (?vision: bool, ?reasoning: bool, ?structured_output: bool, ?function_calling: bool, ?audio_in: bool, ?audio_out: bool, ?video_in: bool) -> void
711
+ end
712
+
689
713
  class ProviderConfig
690
714
  attr_reader name: String
691
715
  attr_reader display_name: String
@@ -723,6 +747,9 @@ module LiterLlm
723
747
  def self.default: () -> CacheConfig
724
748
  end
725
749
 
750
+ class SingleflightResult
751
+ end
752
+
726
753
  class RateLimitConfig
727
754
  attr_accessor rpm: Integer?
728
755
  attr_accessor tpm: Integer?
@@ -732,6 +759,14 @@ module LiterLlm
732
759
  def self.default: () -> RateLimitConfig
733
760
  end
734
761
 
762
+ class IntentPrototype
763
+ attr_reader name: String
764
+ attr_reader embedding: Array[Float]
765
+ attr_reader model: String
766
+
767
+ def initialize: (name: String, embedding: Array[Float], model: String) -> void
768
+ end
769
+
735
770
  class Message
736
771
  end
737
772
 
@@ -797,6 +832,10 @@ module LiterLlm
797
832
  class AuthHeaderFormat
798
833
  end
799
834
 
835
+ class StreamFormat
836
+ type value = :sse | :aws_event_stream
837
+ end
838
+
800
839
  class AuthType
801
840
  type value = :bearer | :api_key | :none | :unknown
802
841
  end
@@ -808,6 +847,14 @@ module LiterLlm
808
847
  class CacheBackend
809
848
  end
810
849
 
850
+ class CircuitState
851
+ type value = :closed | :open | :half_open
852
+ end
853
+
854
+ class HealthStatus
855
+ type value = :healthy | :unhealthy
856
+ end
857
+
811
858
  def self.create_client: (String api_key, ?String base_url, ?Integer timeout_secs, ?Integer max_retries, ?String model_hint) -> DefaultClient
812
859
 
813
860
  def self.create_client_from_json: (String json) -> DefaultClient
@@ -816,6 +863,8 @@ module LiterLlm
816
863
 
817
864
  def self.unregister_custom_provider: (String name) -> bool
818
865
 
866
+ def self.capabilities: (String provider_name) -> ProviderCapabilities
867
+
819
868
  def self.all_providers: () -> Array[ProviderConfig]
820
869
 
821
870
  def self.complex_provider_names: () -> Array[String]
@@ -824,10 +873,14 @@ module LiterLlm
824
873
 
825
874
  def self.completion_cost_with_cache: (String model, Integer prompt_tokens, Integer cached_tokens, Integer completion_tokens) -> Float?
826
875
 
876
+ def self.clear: () -> void
877
+
827
878
  def self.count_tokens: (String model, String text) -> Integer
828
879
 
829
880
  def self.count_request_tokens: (String model, ChatCompletionRequest req) -> Integer
830
881
 
882
+ def self.check_bound: (String context, Integer current_len, Integer incoming, Integer limit) -> void
883
+
831
884
  def self.ensure_crypto_provider: () -> void
832
885
 
833
886
  class LiterLlmErrorInfo
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: liter_llm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.6.4
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Na'aman Hirschfeld
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-06-13 00:00:00.000000000 Z
11
+ date: 2026-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sorbet-runtime