ruby_llm 2.0.0 → 2.1.0
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 +4 -4
- data/README.md +65 -8
- data/lib/generators/ruby_llm/generator_helpers.rb +68 -6
- data/lib/generators/ruby_llm/install/templates/create_messages_migration.rb.tt +1 -0
- data/lib/generators/ruby_llm/install/templates/create_ruby_llm_records_migration.rb.tt +36 -3
- data/lib/generators/ruby_llm/provider/scaffold.rb +32 -22
- data/lib/generators/ruby_llm/provider/templates/gem/ci.yml.erb +1 -5
- data/lib/generators/ruby_llm/provider/templates/gem/gemfile.erb +1 -1
- data/lib/generators/ruby_llm/provider/templates/gem/gemspec.erb +1 -1
- data/lib/generators/ruby_llm/provider/templates/gem/rubocop.yml.erb +1 -1
- data/lib/generators/ruby_llm/upgrade/templates/upgrade_ruby_llm_to_2_1.rb.tt +78 -0
- data/lib/generators/ruby_llm/upgrade/upgrade_generator.rb +6 -163
- data/lib/ruby_llm/accounting/usage.rb +86 -49
- data/lib/ruby_llm/active_record/acts_as.rb +3 -0
- data/lib/ruby_llm/active_record/attachment_helpers.rb +50 -25
- data/lib/ruby_llm/active_record/batch.rb +1 -1
- data/lib/ruby_llm/active_record/chat_methods.rb +136 -40
- data/lib/ruby_llm/active_record/mcp_credential.rb +41 -0
- data/lib/ruby_llm/active_record/message_methods.rb +32 -7
- data/lib/ruby_llm/active_record/model.rb +1 -1
- data/lib/ruby_llm/active_record/provider_file.rb +64 -0
- data/lib/ruby_llm/active_record/record.rb +19 -0
- data/lib/ruby_llm/active_record/tool_call.rb +1 -1
- data/lib/ruby_llm/active_record/usage.rb +53 -3
- data/lib/ruby_llm/agent.rb +198 -33
- data/lib/ruby_llm/aliases.json +66 -8
- data/lib/ruby_llm/attachment.rb +54 -10
- data/lib/ruby_llm/batch.rb +26 -3
- data/lib/ruby_llm/chat/tool_concurrency.rb +47 -23
- data/lib/ruby_llm/chat/tool_search.rb +26 -0
- data/lib/ruby_llm/chat.rb +488 -82
- data/lib/ruby_llm/choice.rb +38 -0
- data/lib/ruby_llm/configuration.rb +36 -11
- data/lib/ruby_llm/context.rb +45 -32
- data/lib/ruby_llm/cost.rb +42 -1
- data/lib/ruby_llm/embedding.rb +9 -2
- data/lib/ruby_llm/error.rb +34 -2
- data/lib/ruby_llm/evaluation/assertions.rb +40 -0
- data/lib/ruby_llm/evaluation/case.rb +52 -0
- data/lib/ruby_llm/evaluation/dataset.rb +65 -0
- data/lib/ruby_llm/evaluation/evaluator.rb +126 -0
- data/lib/ruby_llm/evaluation/evidence.rb +125 -0
- data/lib/ruby_llm/evaluation/minitest.rb +26 -0
- data/lib/ruby_llm/evaluation/report.rb +103 -0
- data/lib/ruby_llm/evaluation/result.rb +75 -0
- data/lib/ruby_llm/evaluation/reviewer.rb +20 -0
- data/lib/ruby_llm/evaluation/rspec.rb +23 -0
- data/lib/ruby_llm/evaluation/runner.rb +93 -0
- data/lib/ruby_llm/evaluation/trial.rb +101 -0
- data/lib/ruby_llm/evaluation.rb +289 -0
- data/lib/ruby_llm/image.rb +12 -4
- data/lib/ruby_llm/judge/builder.rb +51 -0
- data/lib/ruby_llm/judge/data.rb +43 -0
- data/lib/ruby_llm/judge/question.rb +101 -0
- data/lib/ruby_llm/judge.rb +179 -0
- data/lib/ruby_llm/judgment.rb +125 -0
- data/lib/ruby_llm/mcp/apps.rb +25 -0
- data/lib/ruby_llm/mcp/client.rb +213 -0
- data/lib/ruby_llm/mcp/collection.rb +56 -0
- data/lib/ruby_llm/mcp/content.rb +44 -0
- data/lib/ruby_llm/mcp/error.rb +27 -0
- data/lib/ruby_llm/mcp/http.rb +379 -0
- data/lib/ruby_llm/mcp/input_request.rb +118 -0
- data/lib/ruby_llm/mcp/input_required_error.rb +29 -0
- data/lib/ruby_llm/mcp/listener.rb +168 -0
- data/lib/ruby_llm/mcp/oauth/key.rb +78 -0
- data/lib/ruby_llm/mcp/oauth/memory_store.rb +28 -0
- data/lib/ruby_llm/mcp/oauth/proofs.rb +39 -0
- data/lib/ruby_llm/mcp/oauth.rb +653 -0
- data/lib/ruby_llm/mcp/param_headers.rb +83 -0
- data/lib/ruby_llm/mcp/prompt.rb +71 -0
- data/lib/ruby_llm/mcp/resource.rb +84 -0
- data/lib/ruby_llm/mcp/resource_template.rb +99 -0
- data/lib/ruby_llm/mcp/result.rb +76 -0
- data/lib/ruby_llm/mcp/session_expired.rb +10 -0
- data/lib/ruby_llm/mcp/stdio.rb +250 -0
- data/lib/ruby_llm/mcp/task.rb +151 -0
- data/lib/ruby_llm/mcp/tool.rb +130 -0
- data/lib/ruby_llm/mcp.rb +1101 -0
- data/lib/ruby_llm/message.rb +41 -6
- data/lib/ruby_llm/model.rb +2 -1
- data/lib/ruby_llm/models/aliases.rb +5 -2
- data/lib/ruby_llm/models/lookup.rb +80 -0
- data/lib/ruby_llm/models/registry.rb +2 -2
- data/lib/ruby_llm/models/schema.rb +1 -1
- data/lib/ruby_llm/models.json +23082 -10158
- data/lib/ruby_llm/models.rb +20 -69
- data/lib/ruby_llm/moderation.rb +7 -2
- data/lib/ruby_llm/ocr.rb +7 -2
- data/lib/ruby_llm/open_telemetry/attributes.rb +111 -0
- data/lib/ruby_llm/open_telemetry.rb +82 -0
- data/lib/ruby_llm/probability.rb +30 -0
- data/lib/ruby_llm/progress.rb +44 -0
- data/lib/ruby_llm/prompt/context.rb +55 -0
- data/lib/ruby_llm/prompt.rb +1 -1
- data/lib/ruby_llm/protocol/binary_streaming.rb +1 -1
- data/lib/ruby_llm/protocol/request_shapes/analysis.rb +190 -0
- data/lib/ruby_llm/protocol/request_shapes.rb +183 -0
- data/lib/ruby_llm/protocol/stored_uploads.rb +62 -0
- data/lib/ruby_llm/protocol/stream_accumulator.rb +9 -25
- data/lib/ruby_llm/protocol/streaming.rb +38 -31
- data/lib/ruby_llm/protocol.rb +192 -40
- data/lib/ruby_llm/protocols/anthropic/chat.rb +39 -32
- data/lib/ruby_llm/protocols/anthropic/media.rb +6 -2
- data/lib/ruby_llm/protocols/anthropic/models.rb +16 -1
- data/lib/ruby_llm/protocols/anthropic/request_shapes.rb +70 -0
- data/lib/ruby_llm/protocols/anthropic/streaming.rb +23 -9
- data/lib/ruby_llm/protocols/anthropic/tools.rb +43 -0
- data/lib/ruby_llm/protocols/anthropic.rb +20 -1
- data/lib/ruby_llm/protocols/bedrock/async_videos.rb +9 -17
- data/lib/ruby_llm/protocols/bedrock/guardrails.rb +8 -9
- data/lib/ruby_llm/protocols/bedrock/rerank.rb +1 -17
- data/lib/ruby_llm/protocols/chat_completions/chat.rb +5 -7
- data/lib/ruby_llm/protocols/chat_completions/media.rb +34 -8
- data/lib/ruby_llm/protocols/chat_completions/request_shapes.rb +121 -0
- data/lib/ruby_llm/protocols/chat_completions/streaming.rb +3 -0
- data/lib/ruby_llm/protocols/chat_completions.rb +1 -0
- data/lib/ruby_llm/protocols/cohere/batch_requests.rb +0 -5
- data/lib/ruby_llm/protocols/cohere/batches.rb +3 -7
- data/lib/ruby_llm/protocols/cohere/chat.rb +8 -0
- data/lib/ruby_llm/protocols/cohere/embeddings.rb +7 -4
- data/lib/ruby_llm/protocols/cohere/media.rb +6 -2
- data/lib/ruby_llm/protocols/cohere/ocr.rb +1 -1
- data/lib/ruby_llm/protocols/cohere/streaming.rb +1 -0
- data/lib/ruby_llm/protocols/cohere/tools.rb +5 -1
- data/lib/ruby_llm/protocols/cohere.rb +1 -0
- data/lib/ruby_llm/protocols/converse/chat.rb +22 -131
- data/lib/ruby_llm/protocols/converse/media.rb +16 -2
- data/lib/ruby_llm/protocols/converse/reasoning.rb +194 -0
- data/lib/ruby_llm/protocols/converse/request_shapes.rb +99 -0
- data/lib/ruby_llm/protocols/converse/streaming.rb +2 -2
- data/lib/ruby_llm/protocols/converse/thinking_stream.rb +2 -1
- data/lib/ruby_llm/protocols/converse.rb +3 -5
- data/lib/ruby_llm/protocols/deepseek/files.rb +2 -9
- data/lib/ruby_llm/protocols/elevenlabs/flows/images.rb +1 -7
- data/lib/ruby_llm/protocols/elevenlabs/flows/videos.rb +11 -17
- data/lib/ruby_llm/protocols/elevenlabs/streaming_transcription.rb +1 -4
- data/lib/ruby_llm/protocols/gemini/chat.rb +50 -21
- data/lib/ruby_llm/protocols/gemini/embeddings.rb +2 -2
- data/lib/ruby_llm/protocols/gemini/files.rb +1 -1
- data/lib/ruby_llm/protocols/gemini/images.rb +5 -1
- data/lib/ruby_llm/protocols/gemini/media.rb +15 -3
- data/lib/ruby_llm/protocols/gemini/request_shapes.rb +111 -0
- data/lib/ruby_llm/protocols/gemini/streaming.rb +2 -1
- data/lib/ruby_llm/protocols/gemini/tools.rb +17 -11
- data/lib/ruby_llm/protocols/gemini/transcription.rb +13 -0
- data/lib/ruby_llm/protocols/gemini/videos.rb +7 -2
- data/lib/ruby_llm/protocols/gemini.rb +1 -0
- data/lib/ruby_llm/protocols/gpustack/videos.rb +7 -9
- data/lib/ruby_llm/protocols/interactions/chat.rb +46 -18
- data/lib/ruby_llm/protocols/interactions/content.rb +9 -2
- data/lib/ruby_llm/protocols/interactions/request_shapes.rb +62 -0
- data/lib/ruby_llm/protocols/interactions/streaming.rb +15 -0
- data/lib/ruby_llm/protocols/interactions/tools.rb +28 -4
- data/lib/ruby_llm/protocols/interactions/transcription.rb +1 -11
- data/lib/ruby_llm/protocols/interactions.rb +1 -0
- data/lib/ruby_llm/protocols/invoke_model/cohere_embeddings.rb +2 -11
- data/lib/ruby_llm/protocols/invoke_model/embedding_batches.rb +2 -2
- data/lib/ruby_llm/protocols/invoke_model/stability_images.rb +2 -6
- data/lib/ruby_llm/protocols/invoke_model/titan_text_embeddings.rb +2 -8
- data/lib/ruby_llm/protocols/invoke_model.rb +1 -4
- data/lib/ruby_llm/protocols/mistral/content.rb +13 -0
- data/lib/ruby_llm/protocols/mistral/conversations/chat.rb +11 -1
- data/lib/ruby_llm/protocols/mistral/conversations/images.rb +5 -1
- data/lib/ruby_llm/protocols/mistral/conversations/request_shapes.rb +45 -0
- data/lib/ruby_llm/protocols/mistral/conversations.rb +1 -0
- data/lib/ruby_llm/protocols/mistral/multi_completion.rb +11 -1
- data/lib/ruby_llm/protocols/openai/decisions.rb +135 -0
- data/lib/ruby_llm/protocols/openai/files.rb +0 -7
- data/lib/ruby_llm/protocols/openrouter/batches.rb +13 -8
- data/lib/ruby_llm/protocols/openrouter/responses.rb +5 -1
- data/lib/ruby_llm/protocols/perplexity/agent.rb +116 -0
- data/lib/ruby_llm/protocols/perplexity/router.rb +2 -43
- data/lib/ruby_llm/protocols/responses/chat.rb +56 -22
- data/lib/ruby_llm/protocols/responses/media.rb +11 -7
- data/lib/ruby_llm/protocols/responses/request_shapes.rb +70 -0
- data/lib/ruby_llm/protocols/responses/streaming.rb +23 -7
- data/lib/ruby_llm/protocols/responses/token_counting.rb +2 -2
- data/lib/ruby_llm/protocols/responses/tools.rb +27 -0
- data/lib/ruby_llm/protocols/responses.rb +1 -0
- data/lib/ruby_llm/protocols/system_one/judgments.rb +42 -0
- data/lib/ruby_llm/protocols/system_one/models.rb +27 -0
- data/lib/ruby_llm/protocols/system_one/responses.rb +55 -0
- data/lib/ruby_llm/protocols/system_one.rb +27 -0
- data/lib/ruby_llm/protocols/vertexai/embedding_prediction/requests.rb +2 -2
- data/lib/ruby_llm/protocols/vertexai/files.rb +34 -6
- data/lib/ruby_llm/protocols/vertexai/ranking.rb +9 -30
- data/lib/ruby_llm/protocols/vertexai/research.rb +9 -41
- data/lib/ruby_llm/protocols/xai/streaming_transcription.rb +2 -5
- data/lib/ruby_llm/provider.rb +87 -15
- data/lib/ruby_llm/providers/anthropic.rb +23 -0
- data/lib/ruby_llm/providers/azure/chat.rb +4 -0
- data/lib/ruby_llm/providers/azure/images.rb +2 -2
- data/lib/ruby_llm/providers/azure/media.rb +8 -3
- data/lib/ruby_llm/providers/azure/videos.rb +7 -2
- data/lib/ruby_llm/providers/azure.rb +24 -4
- data/lib/ruby_llm/providers/bedrock/auth.rb +1 -1
- data/lib/ruby_llm/providers/bedrock/mantle/anthropic.rb +1 -1
- data/lib/ruby_llm/providers/bedrock/mantle/voxtral.rb +1 -3
- data/lib/ruby_llm/providers/bedrock/mantle.rb +5 -9
- data/lib/ruby_llm/providers/bedrock.rb +38 -6
- data/lib/ruby_llm/providers/deepseek/chat.rb +6 -1
- data/lib/ruby_llm/providers/deepseek/responses.rb +6 -0
- data/lib/ruby_llm/providers/deepseek.rb +4 -0
- data/lib/ruby_llm/providers/gemini.rb +4 -0
- data/lib/ruby_llm/providers/gpustack/media.rb +8 -5
- data/lib/ruby_llm/providers/hetzner/chat.rb +39 -0
- data/lib/ruby_llm/providers/hetzner.rb +41 -0
- data/lib/ruby_llm/providers/mistral/chat.rb +16 -12
- data/lib/ruby_llm/providers/mistral/media.rb +8 -4
- data/lib/ruby_llm/providers/mistral/ocr.rb +1 -5
- data/lib/ruby_llm/providers/ollama/judgments.rb +26 -0
- data/lib/ruby_llm/providers/ollama/media.rb +6 -2
- data/lib/ruby_llm/providers/ollama/models.rb +2 -0
- data/lib/ruby_llm/providers/ollama.rb +11 -0
- data/lib/ruby_llm/providers/openai/capabilities.rb +3 -1
- data/lib/ruby_llm/providers/openai.rb +14 -0
- data/lib/ruby_llm/providers/openrouter/chat.rb +20 -24
- data/lib/ruby_llm/providers/openrouter/embeddings.rb +2 -0
- data/lib/ruby_llm/providers/openrouter/media.rb +5 -1
- data/lib/ruby_llm/providers/openrouter/streaming.rb +4 -1
- data/lib/ruby_llm/providers/openrouter/videos.rb +10 -5
- data/lib/ruby_llm/providers/openrouter.rb +4 -0
- data/lib/ruby_llm/providers/perplexity/chat.rb +4 -0
- data/lib/ruby_llm/providers/perplexity/media.rb +5 -11
- data/lib/ruby_llm/providers/perplexity/models.rb +8 -4
- data/lib/ruby_llm/providers/perplexity.rb +11 -0
- data/lib/ruby_llm/providers/typesafe.rb +32 -0
- data/lib/ruby_llm/providers/vertexai/credentials.rb +63 -0
- data/lib/ruby_llm/providers/vertexai/gemini.rb +2 -2
- data/lib/ruby_llm/providers/vertexai/transcription.rb +1 -0
- data/lib/ruby_llm/providers/vertexai.rb +27 -28
- data/lib/ruby_llm/providers/xai/chat.rb +6 -0
- data/lib/ruby_llm/providers/xai/images.rb +9 -10
- data/lib/ruby_llm/providers/xai/responses.rb +10 -8
- data/lib/ruby_llm/providers/xai/videos.rb +11 -9
- data/lib/ruby_llm/providers/xai.rb +4 -0
- data/lib/ruby_llm/railtie.rb +11 -0
- data/lib/ruby_llm/request_shape/part.rb +117 -0
- data/lib/ruby_llm/request_shape/problem.rb +63 -0
- data/lib/ruby_llm/request_shape/tool_round.rb +64 -0
- data/lib/ruby_llm/request_shape/turn.rb +54 -0
- data/lib/ruby_llm/request_shape.rb +160 -0
- data/lib/ruby_llm/rerank.rb +9 -2
- data/lib/ruby_llm/research_job.rb +21 -5
- data/lib/ruby_llm/score.rb +42 -0
- data/lib/ruby_llm/search_results.rb +2 -2
- data/lib/ruby_llm/server_tool_call.rb +10 -2
- data/lib/ruby_llm/speech.rb +8 -1
- data/lib/ruby_llm/support/cancellation.rb +39 -0
- data/lib/ruby_llm/support/inspectable.rb +3 -2
- data/lib/ruby_llm/support/instrumentation.rb +38 -1
- data/lib/ruby_llm/support/process_cache.rb +60 -0
- data/lib/ruby_llm/support/progress_reporter.rb +33 -0
- data/lib/ruby_llm/thinking.rb +2 -1
- data/lib/ruby_llm/tokens.rb +57 -14
- data/lib/ruby_llm/tool.rb +50 -3
- data/lib/ruby_llm/tool_call.rb +17 -2
- data/lib/ruby_llm/transcription.rb +10 -3
- data/lib/ruby_llm/transport/connection.rb +127 -44
- data/lib/ruby_llm/transport/error_middleware.rb +90 -24
- data/lib/ruby_llm/transport/event_stream_parser.rb +121 -0
- data/lib/ruby_llm/transport/json_response.rb +33 -0
- data/lib/ruby_llm/transport/signing_middleware.rb +29 -0
- data/lib/ruby_llm/version.rb +1 -1
- data/lib/ruby_llm/video.rb +5 -3
- data/lib/ruby_llm/video_job.rb +48 -5
- data/lib/ruby_llm.rb +106 -5
- data/lib/tasks/ruby_llm/evaluations.rb +43 -0
- data/lib/tasks/ruby_llm.rake +6 -9
- data/skills/rubyllm/SKILL.md +33 -12
- metadata +95 -37
- data/lib/generators/ruby_llm/upgrade/legacy_content_sql.rb +0 -34
- data/lib/generators/ruby_llm/upgrade/online_copy_migration/data.rb +0 -341
- data/lib/generators/ruby_llm/upgrade/online_copy_migration/journal.rb +0 -171
- data/lib/generators/ruby_llm/upgrade/online_copy_migration/verification.rb +0 -197
- data/lib/generators/ruby_llm/upgrade/online_copy_migration.rb +0 -174
- data/lib/generators/ruby_llm/upgrade/templates/backfill_v2_data.rb.tt +0 -468
- data/lib/generators/ruby_llm/upgrade/templates/cleanup_v2_upgrade.rb.tt +0 -101
- data/lib/generators/ruby_llm/upgrade/templates/finish_v2_upgrade.rb.tt +0 -247
- data/lib/generators/ruby_llm/upgrade/templates/prepare_v2_upgrade.rb.tt +0 -662
- data/lib/generators/ruby_llm/upgrade/templates/ruby_llm_upgrade.rb.tt +0 -251
- data/lib/generators/ruby_llm/upgrade/templates/upgrade_initializer.rb.tt +0 -13
- data/lib/generators/ruby_llm/upgrade/upgrade_migration.rb +0 -359
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ruby_llm
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Carmine Paolino
|
|
@@ -23,20 +23,6 @@ dependencies:
|
|
|
23
23
|
- - ">="
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
25
|
version: '0'
|
|
26
|
-
- !ruby/object:Gem::Dependency
|
|
27
|
-
name: event_stream_parser
|
|
28
|
-
requirement: !ruby/object:Gem::Requirement
|
|
29
|
-
requirements:
|
|
30
|
-
- - "~>"
|
|
31
|
-
- !ruby/object:Gem::Version
|
|
32
|
-
version: '1'
|
|
33
|
-
type: :runtime
|
|
34
|
-
prerelease: false
|
|
35
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
-
requirements:
|
|
37
|
-
- - "~>"
|
|
38
|
-
- !ruby/object:Gem::Version
|
|
39
|
-
version: '1'
|
|
40
26
|
- !ruby/object:Gem::Dependency
|
|
41
27
|
name: faraday
|
|
42
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -99,14 +85,14 @@ dependencies:
|
|
|
99
85
|
requirements:
|
|
100
86
|
- - "<"
|
|
101
87
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: '
|
|
88
|
+
version: '4'
|
|
103
89
|
type: :runtime
|
|
104
90
|
prerelease: false
|
|
105
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
106
92
|
requirements:
|
|
107
93
|
- - "<"
|
|
108
94
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: '
|
|
95
|
+
version: '4'
|
|
110
96
|
- !ruby/object:Gem::Dependency
|
|
111
97
|
name: marcel
|
|
112
98
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -275,28 +261,20 @@ files:
|
|
|
275
261
|
- lib/generators/ruby_llm/tool/templates/tool_call.html.erb.tt
|
|
276
262
|
- lib/generators/ruby_llm/tool/templates/tool_result.html.erb.tt
|
|
277
263
|
- lib/generators/ruby_llm/tool/tool_generator.rb
|
|
278
|
-
- lib/generators/ruby_llm/upgrade/
|
|
279
|
-
- lib/generators/ruby_llm/upgrade/online_copy_migration.rb
|
|
280
|
-
- lib/generators/ruby_llm/upgrade/online_copy_migration/data.rb
|
|
281
|
-
- lib/generators/ruby_llm/upgrade/online_copy_migration/journal.rb
|
|
282
|
-
- lib/generators/ruby_llm/upgrade/online_copy_migration/verification.rb
|
|
283
|
-
- lib/generators/ruby_llm/upgrade/templates/backfill_v2_data.rb.tt
|
|
284
|
-
- lib/generators/ruby_llm/upgrade/templates/cleanup_v2_upgrade.rb.tt
|
|
285
|
-
- lib/generators/ruby_llm/upgrade/templates/finish_v2_upgrade.rb.tt
|
|
286
|
-
- lib/generators/ruby_llm/upgrade/templates/prepare_v2_upgrade.rb.tt
|
|
287
|
-
- lib/generators/ruby_llm/upgrade/templates/ruby_llm_upgrade.rb.tt
|
|
288
|
-
- lib/generators/ruby_llm/upgrade/templates/upgrade_initializer.rb.tt
|
|
264
|
+
- lib/generators/ruby_llm/upgrade/templates/upgrade_ruby_llm_to_2_1.rb.tt
|
|
289
265
|
- lib/generators/ruby_llm/upgrade/upgrade_generator.rb
|
|
290
|
-
- lib/generators/ruby_llm/upgrade/upgrade_migration.rb
|
|
291
266
|
- lib/ruby_llm.rb
|
|
292
267
|
- lib/ruby_llm/accounting/usage.rb
|
|
293
268
|
- lib/ruby_llm/active_record/acts_as.rb
|
|
294
269
|
- lib/ruby_llm/active_record/attachment_helpers.rb
|
|
295
270
|
- lib/ruby_llm/active_record/batch.rb
|
|
296
271
|
- lib/ruby_llm/active_record/chat_methods.rb
|
|
272
|
+
- lib/ruby_llm/active_record/mcp_credential.rb
|
|
297
273
|
- lib/ruby_llm/active_record/message_methods.rb
|
|
298
274
|
- lib/ruby_llm/active_record/model.rb
|
|
299
275
|
- lib/ruby_llm/active_record/payload_helpers.rb
|
|
276
|
+
- lib/ruby_llm/active_record/provider_file.rb
|
|
277
|
+
- lib/ruby_llm/active_record/record.rb
|
|
300
278
|
- lib/ruby_llm/active_record/tool_call.rb
|
|
301
279
|
- lib/ruby_llm/active_record/usage.rb
|
|
302
280
|
- lib/ruby_llm/agent.rb
|
|
@@ -306,6 +284,8 @@ files:
|
|
|
306
284
|
- lib/ruby_llm/cached_content.rb
|
|
307
285
|
- lib/ruby_llm/chat.rb
|
|
308
286
|
- lib/ruby_llm/chat/tool_concurrency.rb
|
|
287
|
+
- lib/ruby_llm/chat/tool_search.rb
|
|
288
|
+
- lib/ruby_llm/choice.rb
|
|
309
289
|
- lib/ruby_llm/chunk.rb
|
|
310
290
|
- lib/ruby_llm/citation.rb
|
|
311
291
|
- lib/ruby_llm/configuration.rb
|
|
@@ -315,9 +295,50 @@ files:
|
|
|
315
295
|
- lib/ruby_llm/embedding.rb
|
|
316
296
|
- lib/ruby_llm/embedding_request.rb
|
|
317
297
|
- lib/ruby_llm/error.rb
|
|
298
|
+
- lib/ruby_llm/evaluation.rb
|
|
299
|
+
- lib/ruby_llm/evaluation/assertions.rb
|
|
300
|
+
- lib/ruby_llm/evaluation/case.rb
|
|
301
|
+
- lib/ruby_llm/evaluation/dataset.rb
|
|
302
|
+
- lib/ruby_llm/evaluation/evaluator.rb
|
|
303
|
+
- lib/ruby_llm/evaluation/evidence.rb
|
|
304
|
+
- lib/ruby_llm/evaluation/minitest.rb
|
|
305
|
+
- lib/ruby_llm/evaluation/report.rb
|
|
306
|
+
- lib/ruby_llm/evaluation/result.rb
|
|
307
|
+
- lib/ruby_llm/evaluation/reviewer.rb
|
|
308
|
+
- lib/ruby_llm/evaluation/rspec.rb
|
|
309
|
+
- lib/ruby_llm/evaluation/runner.rb
|
|
310
|
+
- lib/ruby_llm/evaluation/trial.rb
|
|
318
311
|
- lib/ruby_llm/fallback.rb
|
|
319
312
|
- lib/ruby_llm/files/mime_type.rb
|
|
320
313
|
- lib/ruby_llm/image.rb
|
|
314
|
+
- lib/ruby_llm/judge.rb
|
|
315
|
+
- lib/ruby_llm/judge/builder.rb
|
|
316
|
+
- lib/ruby_llm/judge/data.rb
|
|
317
|
+
- lib/ruby_llm/judge/question.rb
|
|
318
|
+
- lib/ruby_llm/judgment.rb
|
|
319
|
+
- lib/ruby_llm/mcp.rb
|
|
320
|
+
- lib/ruby_llm/mcp/apps.rb
|
|
321
|
+
- lib/ruby_llm/mcp/client.rb
|
|
322
|
+
- lib/ruby_llm/mcp/collection.rb
|
|
323
|
+
- lib/ruby_llm/mcp/content.rb
|
|
324
|
+
- lib/ruby_llm/mcp/error.rb
|
|
325
|
+
- lib/ruby_llm/mcp/http.rb
|
|
326
|
+
- lib/ruby_llm/mcp/input_request.rb
|
|
327
|
+
- lib/ruby_llm/mcp/input_required_error.rb
|
|
328
|
+
- lib/ruby_llm/mcp/listener.rb
|
|
329
|
+
- lib/ruby_llm/mcp/oauth.rb
|
|
330
|
+
- lib/ruby_llm/mcp/oauth/key.rb
|
|
331
|
+
- lib/ruby_llm/mcp/oauth/memory_store.rb
|
|
332
|
+
- lib/ruby_llm/mcp/oauth/proofs.rb
|
|
333
|
+
- lib/ruby_llm/mcp/param_headers.rb
|
|
334
|
+
- lib/ruby_llm/mcp/prompt.rb
|
|
335
|
+
- lib/ruby_llm/mcp/resource.rb
|
|
336
|
+
- lib/ruby_llm/mcp/resource_template.rb
|
|
337
|
+
- lib/ruby_llm/mcp/result.rb
|
|
338
|
+
- lib/ruby_llm/mcp/session_expired.rb
|
|
339
|
+
- lib/ruby_llm/mcp/stdio.rb
|
|
340
|
+
- lib/ruby_llm/mcp/task.rb
|
|
341
|
+
- lib/ruby_llm/mcp/tool.rb
|
|
321
342
|
- lib/ruby_llm/message.rb
|
|
322
343
|
- lib/ruby_llm/model.rb
|
|
323
344
|
- lib/ruby_llm/model/modalities.rb
|
|
@@ -327,13 +348,22 @@ files:
|
|
|
327
348
|
- lib/ruby_llm/models.json
|
|
328
349
|
- lib/ruby_llm/models.rb
|
|
329
350
|
- lib/ruby_llm/models/aliases.rb
|
|
351
|
+
- lib/ruby_llm/models/lookup.rb
|
|
330
352
|
- lib/ruby_llm/models/registry.rb
|
|
331
353
|
- lib/ruby_llm/models/schema.rb
|
|
332
354
|
- lib/ruby_llm/moderation.rb
|
|
333
355
|
- lib/ruby_llm/ocr.rb
|
|
356
|
+
- lib/ruby_llm/open_telemetry.rb
|
|
357
|
+
- lib/ruby_llm/open_telemetry/attributes.rb
|
|
358
|
+
- lib/ruby_llm/probability.rb
|
|
359
|
+
- lib/ruby_llm/progress.rb
|
|
334
360
|
- lib/ruby_llm/prompt.rb
|
|
361
|
+
- lib/ruby_llm/prompt/context.rb
|
|
335
362
|
- lib/ruby_llm/protocol.rb
|
|
336
363
|
- lib/ruby_llm/protocol/binary_streaming.rb
|
|
364
|
+
- lib/ruby_llm/protocol/request_shapes.rb
|
|
365
|
+
- lib/ruby_llm/protocol/request_shapes/analysis.rb
|
|
366
|
+
- lib/ruby_llm/protocol/stored_uploads.rb
|
|
337
367
|
- lib/ruby_llm/protocol/stream_accumulator.rb
|
|
338
368
|
- lib/ruby_llm/protocol/streaming.rb
|
|
339
369
|
- lib/ruby_llm/protocols/anthropic.rb
|
|
@@ -343,6 +373,7 @@ files:
|
|
|
343
373
|
- lib/ruby_llm/protocols/anthropic/files.rb
|
|
344
374
|
- lib/ruby_llm/protocols/anthropic/media.rb
|
|
345
375
|
- lib/ruby_llm/protocols/anthropic/models.rb
|
|
376
|
+
- lib/ruby_llm/protocols/anthropic/request_shapes.rb
|
|
346
377
|
- lib/ruby_llm/protocols/anthropic/streaming.rb
|
|
347
378
|
- lib/ruby_llm/protocols/anthropic/tools.rb
|
|
348
379
|
- lib/ruby_llm/protocols/azure/files.rb
|
|
@@ -360,6 +391,7 @@ files:
|
|
|
360
391
|
- lib/ruby_llm/protocols/chat_completions/media.rb
|
|
361
392
|
- lib/ruby_llm/protocols/chat_completions/models.rb
|
|
362
393
|
- lib/ruby_llm/protocols/chat_completions/moderation.rb
|
|
394
|
+
- lib/ruby_llm/protocols/chat_completions/request_shapes.rb
|
|
363
395
|
- lib/ruby_llm/protocols/chat_completions/rerank.rb
|
|
364
396
|
- lib/ruby_llm/protocols/chat_completions/speech.rb
|
|
365
397
|
- lib/ruby_llm/protocols/chat_completions/streaming.rb
|
|
@@ -383,6 +415,8 @@ files:
|
|
|
383
415
|
- lib/ruby_llm/protocols/converse/batches.rb
|
|
384
416
|
- lib/ruby_llm/protocols/converse/chat.rb
|
|
385
417
|
- lib/ruby_llm/protocols/converse/media.rb
|
|
418
|
+
- lib/ruby_llm/protocols/converse/reasoning.rb
|
|
419
|
+
- lib/ruby_llm/protocols/converse/request_shapes.rb
|
|
386
420
|
- lib/ruby_llm/protocols/converse/streaming.rb
|
|
387
421
|
- lib/ruby_llm/protocols/converse/thinking_stream.rb
|
|
388
422
|
- lib/ruby_llm/protocols/deepgram.rb
|
|
@@ -414,6 +448,7 @@ files:
|
|
|
414
448
|
- lib/ruby_llm/protocols/gemini/live_transcription.rb
|
|
415
449
|
- lib/ruby_llm/protocols/gemini/media.rb
|
|
416
450
|
- lib/ruby_llm/protocols/gemini/models.rb
|
|
451
|
+
- lib/ruby_llm/protocols/gemini/request_shapes.rb
|
|
417
452
|
- lib/ruby_llm/protocols/gemini/speech.rb
|
|
418
453
|
- lib/ruby_llm/protocols/gemini/streaming.rb
|
|
419
454
|
- lib/ruby_llm/protocols/gemini/tools.rb
|
|
@@ -425,6 +460,7 @@ files:
|
|
|
425
460
|
- lib/ruby_llm/protocols/interactions.rb
|
|
426
461
|
- lib/ruby_llm/protocols/interactions/chat.rb
|
|
427
462
|
- lib/ruby_llm/protocols/interactions/content.rb
|
|
463
|
+
- lib/ruby_llm/protocols/interactions/request_shapes.rb
|
|
428
464
|
- lib/ruby_llm/protocols/interactions/streaming.rb
|
|
429
465
|
- lib/ruby_llm/protocols/interactions/tools.rb
|
|
430
466
|
- lib/ruby_llm/protocols/interactions/transcription.rb
|
|
@@ -439,15 +475,18 @@ files:
|
|
|
439
475
|
- lib/ruby_llm/protocols/mistral/conversations.rb
|
|
440
476
|
- lib/ruby_llm/protocols/mistral/conversations/chat.rb
|
|
441
477
|
- lib/ruby_llm/protocols/mistral/conversations/images.rb
|
|
478
|
+
- lib/ruby_llm/protocols/mistral/conversations/request_shapes.rb
|
|
442
479
|
- lib/ruby_llm/protocols/mistral/conversations/streaming.rb
|
|
443
480
|
- lib/ruby_llm/protocols/mistral/files.rb
|
|
444
481
|
- lib/ruby_llm/protocols/mistral/multi_completion.rb
|
|
445
482
|
- lib/ruby_llm/protocols/openai/batches.rb
|
|
483
|
+
- lib/ruby_llm/protocols/openai/decisions.rb
|
|
446
484
|
- lib/ruby_llm/protocols/openai/files.rb
|
|
447
485
|
- lib/ruby_llm/protocols/openrouter/batches.rb
|
|
448
486
|
- lib/ruby_llm/protocols/openrouter/files.rb
|
|
449
487
|
- lib/ruby_llm/protocols/openrouter/responses.rb
|
|
450
488
|
- lib/ruby_llm/protocols/openrouter/transcription.rb
|
|
489
|
+
- lib/ruby_llm/protocols/perplexity/agent.rb
|
|
451
490
|
- lib/ruby_llm/protocols/perplexity/files.rb
|
|
452
491
|
- lib/ruby_llm/protocols/perplexity/router.rb
|
|
453
492
|
- lib/ruby_llm/protocols/responses.rb
|
|
@@ -456,9 +495,14 @@ files:
|
|
|
456
495
|
- lib/ruby_llm/protocols/responses/chat.rb
|
|
457
496
|
- lib/ruby_llm/protocols/responses/compaction.rb
|
|
458
497
|
- lib/ruby_llm/protocols/responses/media.rb
|
|
498
|
+
- lib/ruby_llm/protocols/responses/request_shapes.rb
|
|
459
499
|
- lib/ruby_llm/protocols/responses/streaming.rb
|
|
460
500
|
- lib/ruby_llm/protocols/responses/token_counting.rb
|
|
461
501
|
- lib/ruby_llm/protocols/responses/tools.rb
|
|
502
|
+
- lib/ruby_llm/protocols/system_one.rb
|
|
503
|
+
- lib/ruby_llm/protocols/system_one/judgments.rb
|
|
504
|
+
- lib/ruby_llm/protocols/system_one/models.rb
|
|
505
|
+
- lib/ruby_llm/protocols/system_one/responses.rb
|
|
462
506
|
- lib/ruby_llm/protocols/vertexai/batch_prediction.rb
|
|
463
507
|
- lib/ruby_llm/protocols/vertexai/embedding_prediction.rb
|
|
464
508
|
- lib/ruby_llm/protocols/vertexai/embedding_prediction/requests.rb
|
|
@@ -510,6 +554,8 @@ files:
|
|
|
510
554
|
- lib/ruby_llm/providers/gpustack/models.rb
|
|
511
555
|
- lib/ruby_llm/providers/gpustack/speech.rb
|
|
512
556
|
- lib/ruby_llm/providers/gpustack/transcription.rb
|
|
557
|
+
- lib/ruby_llm/providers/hetzner.rb
|
|
558
|
+
- lib/ruby_llm/providers/hetzner/chat.rb
|
|
513
559
|
- lib/ruby_llm/providers/mistral.rb
|
|
514
560
|
- lib/ruby_llm/providers/mistral/capabilities.rb
|
|
515
561
|
- lib/ruby_llm/providers/mistral/chat.rb
|
|
@@ -524,6 +570,7 @@ files:
|
|
|
524
570
|
- lib/ruby_llm/providers/mistral/transcription.rb
|
|
525
571
|
- lib/ruby_llm/providers/ollama.rb
|
|
526
572
|
- lib/ruby_llm/providers/ollama/chat.rb
|
|
573
|
+
- lib/ruby_llm/providers/ollama/judgments.rb
|
|
527
574
|
- lib/ruby_llm/providers/ollama/media.rb
|
|
528
575
|
- lib/ruby_llm/providers/ollama/models.rb
|
|
529
576
|
- lib/ruby_llm/providers/ollama_cloud.rb
|
|
@@ -546,12 +593,14 @@ files:
|
|
|
546
593
|
- lib/ruby_llm/providers/perplexity/embeddings.rb
|
|
547
594
|
- lib/ruby_llm/providers/perplexity/media.rb
|
|
548
595
|
- lib/ruby_llm/providers/perplexity/models.rb
|
|
596
|
+
- lib/ruby_llm/providers/typesafe.rb
|
|
549
597
|
- lib/ruby_llm/providers/vertexai.rb
|
|
550
598
|
- lib/ruby_llm/providers/vertexai/anthropic.rb
|
|
551
599
|
- lib/ruby_llm/providers/vertexai/anthropic/batches.rb
|
|
552
600
|
- lib/ruby_llm/providers/vertexai/capabilities.rb
|
|
553
601
|
- lib/ruby_llm/providers/vertexai/chat_completions.rb
|
|
554
602
|
- lib/ruby_llm/providers/vertexai/chat_completions/batches.rb
|
|
603
|
+
- lib/ruby_llm/providers/vertexai/credentials.rb
|
|
555
604
|
- lib/ruby_llm/providers/vertexai/embed_content.rb
|
|
556
605
|
- lib/ruby_llm/providers/vertexai/embeddings.rb
|
|
557
606
|
- lib/ruby_llm/providers/vertexai/gemini.rb
|
|
@@ -574,15 +623,24 @@ files:
|
|
|
574
623
|
- lib/ruby_llm/providers/xai/transcription.rb
|
|
575
624
|
- lib/ruby_llm/providers/xai/videos.rb
|
|
576
625
|
- lib/ruby_llm/railtie.rb
|
|
626
|
+
- lib/ruby_llm/request_shape.rb
|
|
627
|
+
- lib/ruby_llm/request_shape/part.rb
|
|
628
|
+
- lib/ruby_llm/request_shape/problem.rb
|
|
629
|
+
- lib/ruby_llm/request_shape/tool_round.rb
|
|
630
|
+
- lib/ruby_llm/request_shape/turn.rb
|
|
577
631
|
- lib/ruby_llm/rerank.rb
|
|
578
632
|
- lib/ruby_llm/research_job.rb
|
|
633
|
+
- lib/ruby_llm/score.rb
|
|
579
634
|
- lib/ruby_llm/search_results.rb
|
|
580
635
|
- lib/ruby_llm/server_tool_call.rb
|
|
581
636
|
- lib/ruby_llm/speech.rb
|
|
582
637
|
- lib/ruby_llm/speech_chunk.rb
|
|
638
|
+
- lib/ruby_llm/support/cancellation.rb
|
|
583
639
|
- lib/ruby_llm/support/deprecator.rb
|
|
584
640
|
- lib/ruby_llm/support/inspectable.rb
|
|
585
641
|
- lib/ruby_llm/support/instrumentation.rb
|
|
642
|
+
- lib/ruby_llm/support/process_cache.rb
|
|
643
|
+
- lib/ruby_llm/support/progress_reporter.rb
|
|
586
644
|
- lib/ruby_llm/support/utils.rb
|
|
587
645
|
- lib/ruby_llm/thinking.rb
|
|
588
646
|
- lib/ruby_llm/tokenization.rb
|
|
@@ -595,6 +653,9 @@ files:
|
|
|
595
653
|
- lib/ruby_llm/transcription_chunk.rb
|
|
596
654
|
- lib/ruby_llm/transport/connection.rb
|
|
597
655
|
- lib/ruby_llm/transport/error_middleware.rb
|
|
656
|
+
- lib/ruby_llm/transport/event_stream_parser.rb
|
|
657
|
+
- lib/ruby_llm/transport/json_response.rb
|
|
658
|
+
- lib/ruby_llm/transport/signing_middleware.rb
|
|
598
659
|
- lib/ruby_llm/transport/usage_middleware.rb
|
|
599
660
|
- lib/ruby_llm/transport/websocket_connection.rb
|
|
600
661
|
- lib/ruby_llm/uploaded_file.rb
|
|
@@ -603,6 +664,7 @@ files:
|
|
|
603
664
|
- lib/ruby_llm/video_job.rb
|
|
604
665
|
- lib/ruby_llm/workflow.rb
|
|
605
666
|
- lib/tasks/ruby_llm.rake
|
|
667
|
+
- lib/tasks/ruby_llm/evaluations.rb
|
|
606
668
|
- skills/rubyllm/SKILL.md
|
|
607
669
|
- skills/rubyllm/agents/openai.yaml
|
|
608
670
|
homepage: https://rubyllm.com
|
|
@@ -617,17 +679,13 @@ metadata:
|
|
|
617
679
|
funding_uri: https://github.com/sponsors/crmne
|
|
618
680
|
rubygems_mfa_required: 'true'
|
|
619
681
|
post_install_message: |
|
|
620
|
-
RubyLLM 2.
|
|
682
|
+
RubyLLM 2.1.0
|
|
621
683
|
|
|
622
|
-
|
|
623
|
-
from 1.x? Read the upgrade guide before you boot:
|
|
684
|
+
Upgrading? Read the upgrade guide before you boot:
|
|
624
685
|
|
|
625
686
|
https://rubyllm.com/upgrading/
|
|
626
687
|
|
|
627
|
-
|
|
628
|
-
phases, with cleanup later. Rename mode is the default; optional copy
|
|
629
|
-
mode supports a controlled return to 1.16. Read its requirements in the
|
|
630
|
-
upgrade guide and rehearse on a recent production snapshot.
|
|
688
|
+
Coming from 1.x? Upgrade to 2.0 and finish its upgrade guide first.
|
|
631
689
|
|
|
632
690
|
Agent skill: https://rubyllm.com/ai-coding-assistants/
|
|
633
691
|
rdoc_options: []
|
|
@@ -637,7 +695,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
637
695
|
requirements:
|
|
638
696
|
- - ">="
|
|
639
697
|
- !ruby/object:Gem::Version
|
|
640
|
-
version: 3.
|
|
698
|
+
version: '3.2'
|
|
641
699
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
642
700
|
requirements:
|
|
643
701
|
- - ">="
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module RubyLLM
|
|
4
|
-
module Generators
|
|
5
|
-
class LegacyContentSQL # :nodoc: all
|
|
6
|
-
SPACE = [9, 10, 11, 12, 13, 32, 133, 160, 5760, *8192..8202, 8232, 8233, 8239, 8287, 12_288].pack('U*').freeze
|
|
7
|
-
|
|
8
|
-
def initialize(connection)
|
|
9
|
-
@connection = connection
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def render(content:, raw:)
|
|
13
|
-
normalized, rendered, nonblank = expressions(raw)
|
|
14
|
-
present = "#{normalized} NOT IN ('null', 'false', '[]', '{}') AND #{nonblank}"
|
|
15
|
-
"CASE WHEN #{present} THEN #{rendered} ELSE #{content} END"
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
private
|
|
19
|
-
|
|
20
|
-
def expressions(raw)
|
|
21
|
-
case @connection.adapter_name
|
|
22
|
-
when 'PostgreSQL'
|
|
23
|
-
["(#{raw}::jsonb)::text", "#{raw}::text",
|
|
24
|
-
"btrim(#{raw}::jsonb #>> '{}', #{@connection.quote(SPACE)}) <> ''"]
|
|
25
|
-
when 'Mysql2'
|
|
26
|
-
["CAST(#{raw} AS CHAR)", "CAST(#{raw} AS CHAR)",
|
|
27
|
-
"JSON_UNQUOTE(#{raw}) NOT REGEXP '^[[:space:]]*$'"]
|
|
28
|
-
else
|
|
29
|
-
["json(#{raw})", raw, "trim(json_extract(#{raw}, '$'), #{@connection.quote(SPACE)}) <> ''"]
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|