llm.rb 7.0.0 → 8.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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +151 -1
  3. data/README.md +45 -25
  4. data/data/bedrock.json +2948 -0
  5. data/data/deepseek.json +8 -8
  6. data/data/openai.json +39 -2
  7. data/data/xai.json +35 -0
  8. data/data/zai.json +1 -1
  9. data/lib/llm/active_record/acts_as_agent.rb +2 -6
  10. data/lib/llm/active_record/acts_as_llm.rb +4 -82
  11. data/lib/llm/active_record.rb +80 -2
  12. data/lib/llm/agent.rb +9 -4
  13. data/lib/llm/error.rb +4 -0
  14. data/lib/llm/function/array.rb +7 -3
  15. data/lib/llm/function/fiber_group.rb +9 -3
  16. data/lib/llm/function/fork/job.rb +67 -0
  17. data/lib/llm/function/fork/task.rb +76 -0
  18. data/lib/llm/function/fork.rb +8 -0
  19. data/lib/llm/function/fork_group.rb +36 -0
  20. data/lib/llm/function/ractor/task.rb +13 -3
  21. data/lib/llm/function/task.rb +10 -2
  22. data/lib/llm/function.rb +24 -11
  23. data/lib/llm/mcp/command.rb +1 -1
  24. data/lib/llm/mcp/transport/http.rb +2 -2
  25. data/lib/llm/mcp.rb +7 -4
  26. data/lib/llm/object/kernel.rb +8 -2
  27. data/lib/llm/object.rb +75 -21
  28. data/lib/llm/{mcp/pipe.rb → pipe.rb} +9 -8
  29. data/lib/llm/provider/transport/http/execution.rb +1 -1
  30. data/lib/llm/provider/transport/http.rb +1 -1
  31. data/lib/llm/provider.rb +7 -0
  32. data/lib/llm/providers/bedrock/error_handler.rb +80 -0
  33. data/lib/llm/providers/bedrock/models.rb +109 -0
  34. data/lib/llm/providers/bedrock/request_adapter/completion.rb +153 -0
  35. data/lib/llm/providers/bedrock/request_adapter.rb +95 -0
  36. data/lib/llm/providers/bedrock/response_adapter/completion.rb +143 -0
  37. data/lib/llm/providers/bedrock/response_adapter/models.rb +34 -0
  38. data/lib/llm/providers/bedrock/response_adapter.rb +40 -0
  39. data/lib/llm/providers/bedrock/signature.rb +166 -0
  40. data/lib/llm/providers/bedrock/stream_decoder.rb +140 -0
  41. data/lib/llm/providers/bedrock/stream_parser.rb +201 -0
  42. data/lib/llm/providers/bedrock.rb +272 -0
  43. data/lib/llm/stream/queue.rb +1 -1
  44. data/lib/llm/version.rb +1 -1
  45. data/lib/llm.rb +27 -1
  46. data/llm.gemspec +2 -1
  47. metadata +33 -3
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: llm.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.0
4
+ version: 8.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Antar Azri
@@ -236,6 +236,20 @@ dependencies:
236
236
  - - "~>"
237
237
  - !ruby/object:Gem::Version
238
238
  version: '2.0'
239
+ - !ruby/object:Gem::Dependency
240
+ name: xchan.rb
241
+ requirement: !ruby/object:Gem::Requirement
242
+ requirements:
243
+ - - "~>"
244
+ - !ruby/object:Gem::Version
245
+ version: '0.20'
246
+ type: :development
247
+ prerelease: false
248
+ version_requirements: !ruby/object:Gem::Requirement
249
+ requirements:
250
+ - - "~>"
251
+ - !ruby/object:Gem::Version
252
+ version: '0.20'
239
253
  - !ruby/object:Gem::Dependency
240
254
  name: pg
241
255
  requirement: !ruby/object:Gem::Requirement
@@ -273,6 +287,7 @@ files:
273
287
  - LICENSE
274
288
  - README.md
275
289
  - data/anthropic.json
290
+ - data/bedrock.json
276
291
  - data/deepseek.json
277
292
  - data/google.json
278
293
  - data/openai.json
@@ -301,6 +316,10 @@ files:
301
316
  - lib/llm/function.rb
302
317
  - lib/llm/function/array.rb
303
318
  - lib/llm/function/fiber_group.rb
319
+ - lib/llm/function/fork.rb
320
+ - lib/llm/function/fork/job.rb
321
+ - lib/llm/function/fork/task.rb
322
+ - lib/llm/function/fork_group.rb
304
323
  - lib/llm/function/ractor.rb
305
324
  - lib/llm/function/ractor/job.rb
306
325
  - lib/llm/function/ractor/mailbox.rb
@@ -317,7 +336,6 @@ files:
317
336
  - lib/llm/mcp/command.rb
318
337
  - lib/llm/mcp/error.rb
319
338
  - lib/llm/mcp/mailbox.rb
320
- - lib/llm/mcp/pipe.rb
321
339
  - lib/llm/mcp/router.rb
322
340
  - lib/llm/mcp/rpc.rb
323
341
  - lib/llm/mcp/transport/http.rb
@@ -331,6 +349,7 @@ files:
331
349
  - lib/llm/object.rb
332
350
  - lib/llm/object/builder.rb
333
351
  - lib/llm/object/kernel.rb
352
+ - lib/llm/pipe.rb
334
353
  - lib/llm/prompt.rb
335
354
  - lib/llm/provider.rb
336
355
  - lib/llm/provider/transport/http.rb
@@ -351,6 +370,17 @@ files:
351
370
  - lib/llm/providers/anthropic/response_adapter/web_search.rb
352
371
  - lib/llm/providers/anthropic/stream_parser.rb
353
372
  - lib/llm/providers/anthropic/utils.rb
373
+ - lib/llm/providers/bedrock.rb
374
+ - lib/llm/providers/bedrock/error_handler.rb
375
+ - lib/llm/providers/bedrock/models.rb
376
+ - lib/llm/providers/bedrock/request_adapter.rb
377
+ - lib/llm/providers/bedrock/request_adapter/completion.rb
378
+ - lib/llm/providers/bedrock/response_adapter.rb
379
+ - lib/llm/providers/bedrock/response_adapter/completion.rb
380
+ - lib/llm/providers/bedrock/response_adapter/models.rb
381
+ - lib/llm/providers/bedrock/signature.rb
382
+ - lib/llm/providers/bedrock/stream_decoder.rb
383
+ - lib/llm/providers/bedrock/stream_parser.rb
354
384
  - lib/llm/providers/deepseek.rb
355
385
  - lib/llm/providers/deepseek/request_adapter.rb
356
386
  - lib/llm/providers/deepseek/request_adapter/completion.rb
@@ -464,7 +494,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
464
494
  requirements:
465
495
  - - ">="
466
496
  - !ruby/object:Gem::Version
467
- version: 3.2.0
497
+ version: 3.3.0
468
498
  required_rubygems_version: !ruby/object:Gem::Requirement
469
499
  requirements:
470
500
  - - ">="