turnkit 0.2.0 → 0.2.1

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +33 -2
  3. data/lib/turnkit/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4a7dcc3aa1a8456411f915c927657756e2c879919d3d4f931b93674a305baa91
4
- data.tar.gz: 3ae8bdbc9e66f6c966e6d8cf0b9790a0e432b6f0be93e2b02c71e72b5035c9c0
3
+ metadata.gz: 5eaf1e8d25237f97b607cf5a1c80fced59e8e737cd4cdbf3a9d6dca61227b19b
4
+ data.tar.gz: da3cc66e95e3ce0ec5df6fbc8b051fc0f6750a0c2175d0cdc09f8eb4dc4ef96e
5
5
  SHA512:
6
- metadata.gz: 8ab51bd650b36b7dd6b0ff8e423e64ae53cf98a7c89ce9a789f86cc2bbfa5421019f9860597bfe3a1169cb17d23a58b7d32f7c12cc15a7aaa7b2257a02718bd9
7
- data.tar.gz: 300c9c80847bcc9022fc2b4339ae12e6bb12953c55f0229e92cb0870cb0431c9939f74af9f68eef1341fada31afeedfd766dc706115f71420bf2eef2616e88b0
6
+ metadata.gz: 9c50e9bd40a36392496a88f202bb5dbda51883c4ae686d8089849c6cb2fef903102efcb2a868617cca80891860849b65140888bc3bf250f620ac8bf9ea61a8e8
7
+ data.tar.gz: a054d0de8955d20f4d9ac60351507f56e98bf8137828d599ac5681ff593b5039f4d672dc16323f30a700a4f25aef3360fb6f97c64d75ce08f10eedf3fde692c0
data/README.md CHANGED
@@ -26,6 +26,30 @@ Set a provider key:
26
26
 
27
27
  ```sh
28
28
  export ANTHROPIC_API_KEY=...
29
+ # or OPENAI_API_KEY=..., GEMINI_API_KEY=..., OPENROUTER_API_KEY=...
30
+ ```
31
+
32
+ TurnKit uses RubyLLM by default. Choose the provider by choosing a RubyLLM model name:
33
+
34
+ ```ruby
35
+ TurnKit.default_model = "claude-sonnet-4-5" # Anthropic
36
+ # TurnKit.default_model = "gpt-4.1-mini" # OpenAI
37
+ # TurnKit.default_model = "gemini-2.5-flash" # Gemini
38
+ ```
39
+
40
+ You can also override the model per agent or per run.
41
+
42
+ To use a different model SDK, provide a client object that responds to `chat`:
43
+
44
+ ```ruby
45
+ class MyClient < TurnKit::Client
46
+ def chat(model:, messages:, tools:, instructions:, temperature: nil, metadata: nil)
47
+ # Call your provider here.
48
+ TurnKit::Result.new(text: "provider response", model: model)
49
+ end
50
+ end
51
+
52
+ TurnKit.client = MyClient.new
29
53
  ```
30
54
 
31
55
  Ask an agent:
@@ -212,10 +236,17 @@ agent = TurnKit::Agent.new(
212
236
  )
213
237
  ```
214
238
 
239
+ Override the model for a single conversation or turn:
240
+
241
+ ```ruby
242
+ conversation = agent.conversation(model: "claude-opus-4-1")
243
+ turn = conversation.run!(model: "gpt-4.1-mini")
244
+ ```
245
+
215
246
  | Option | Description |
216
247
  | --- | --- |
217
- | `default_model` | Set the default model. |
218
- | `client` | Set the model client. |
248
+ | `default_model` | Set the default RubyLLM model. The model name determines the provider. |
249
+ | `client` | Set the model client. Defaults to `TurnKit::Adapters::RubyLLM.new`. |
219
250
  | `store` | Set the conversation store. |
220
251
  | `max_iterations` | Limit model calls per turn. |
221
252
  | `timeout` | Limit seconds per root turn. |
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TurnKit
4
- VERSION = "0.2.0"
4
+ VERSION = "0.2.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turnkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Couch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-06-04 00:00:00.000000000 Z
11
+ date: 2026-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby_llm