llm.rb 14.0.0 → 15.0.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 (92) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +396 -1826
  3. data/README.md +596 -490
  4. data/bin/llm.rb +148 -72
  5. data/data/alibaba.json +1999 -0
  6. data/data/anthropic.json +205 -205
  7. data/data/bedrock.json +2171 -2114
  8. data/data/deepinfra.json +1143 -938
  9. data/data/deepseek.json +4 -5
  10. data/data/google.json +691 -779
  11. data/data/mistral.json +450 -450
  12. data/data/moonshot.json +100 -100
  13. data/data/openai.json +976 -976
  14. data/data/xai.json +193 -116
  15. data/data/zai.json +187 -187
  16. data/{resources → docs}/deepdive/advanced/cancellation.md +2 -2
  17. data/{resources → docs}/deepdive/advanced/compaction.md +5 -3
  18. data/{resources → docs}/deepdive/advanced/context.md +13 -0
  19. data/{resources → docs}/deepdive/advanced/guard.md +1 -1
  20. data/{resources/deepdive/fundamentals → docs/deepdive/features}/concurrency.md +6 -0
  21. data/{resources/deepdive/fundamentals → docs/deepdive/features}/repl.md +56 -2
  22. data/{resources → docs}/deepdive/fundamentals/agents.md +52 -1
  23. data/docs/deepdive/fundamentals/providers.md +159 -0
  24. data/{resources → docs}/deepdive/fundamentals/skills.md +5 -0
  25. data/{resources → docs}/deepdive/fundamentals/stream.md +36 -3
  26. data/{resources → docs}/deepdive/fundamentals/tools.md +87 -23
  27. data/{resources/deepdive/everything_else → docs/deepdive/reference}/cost.md +20 -10
  28. data/docs/deepdive/reference/model_registry.md +271 -0
  29. data/{resources/deepdive/advanced → docs/deepdive/reference}/tracer.md +7 -0
  30. data/{resources → docs}/deepdive.md +35 -27
  31. data/lib/llm/a2a/transport/http.rb +1 -1
  32. data/lib/llm/active_record/acts_as_llm.rb +19 -5
  33. data/lib/llm/agent.rb +62 -5
  34. data/lib/llm/context.rb +93 -46
  35. data/lib/llm/cost.rb +110 -51
  36. data/lib/llm/error.rb +7 -0
  37. data/lib/llm/function/array.rb +1 -1
  38. data/lib/llm/function/fork/task.rb +14 -1
  39. data/lib/llm/function/sequential/group.rb +20 -13
  40. data/lib/llm/function/sequential/task.rb +1 -8
  41. data/lib/llm/function.rb +5 -4
  42. data/lib/llm/message.rb +5 -4
  43. data/lib/llm/provider.rb +7 -0
  44. data/lib/llm/providers/alibaba/error_handler.rb +34 -0
  45. data/lib/llm/providers/alibaba/request_adapter.rb +13 -0
  46. data/lib/llm/providers/alibaba.rb +93 -0
  47. data/lib/llm/providers/anthropic.rb +0 -1
  48. data/lib/llm/providers/bedrock.rb +8 -1
  49. data/lib/llm/providers/deepseek/request_adapter.rb +2 -33
  50. data/lib/llm/providers/google.rb +0 -1
  51. data/lib/llm/providers/ollama.rb +0 -1
  52. data/lib/llm/providers/openai/responses.rb +0 -1
  53. data/lib/llm/providers/openai/schema.rb +37 -0
  54. data/lib/llm/providers/openai.rb +1 -2
  55. data/lib/llm/registry/model.rb +186 -0
  56. data/lib/llm/registry.rb +45 -14
  57. data/lib/llm/repl/bar.rb +11 -13
  58. data/lib/llm/repl/buffer.rb +1 -1
  59. data/lib/llm/repl/color.rb +8 -1
  60. data/lib/llm/repl/command.rb +12 -0
  61. data/lib/llm/repl/commands/model.rb +39 -0
  62. data/lib/llm/repl/input/cache.rb +45 -0
  63. data/lib/llm/repl/input/char.rb +2 -2
  64. data/lib/llm/repl/input.rb +86 -23
  65. data/lib/llm/repl/markdown.rb +25 -1
  66. data/lib/llm/repl/node.rb +7 -0
  67. data/lib/llm/repl/status.rb +17 -3
  68. data/lib/llm/repl/window.rb +91 -11
  69. data/lib/llm/repl.rb +18 -8
  70. data/lib/llm/sequel/plugin.rb +19 -5
  71. data/lib/llm/skill.rb +21 -8
  72. data/lib/llm/stream.rb +27 -0
  73. data/lib/llm/tool.rb +3 -5
  74. data/lib/llm/tools/rg.rb +2 -1
  75. data/lib/llm/transport/curb.rb +23 -3
  76. data/lib/llm/usage.rb +155 -9
  77. data/lib/llm/version.rb +1 -1
  78. data/lib/llm.rb +111 -29
  79. data/llm.gemspec +16 -11
  80. metadata +89 -35
  81. /data/{resources → docs}/deepdive/advanced/transformer.md +0 -0
  82. /data/{resources → docs}/deepdive/advanced/transports.md +0 -0
  83. /data/{resources/deepdive/fundamentals → docs/deepdive/features}/builtin_tools.md +0 -0
  84. /data/{resources/deepdive/fundamentals → docs/deepdive/features}/database.md +0 -0
  85. /data/{resources/deepdive/fundamentals → docs/deepdive/features}/embeddings.md +0 -0
  86. /data/{resources → docs}/deepdive/fundamentals/schema.md +0 -0
  87. /data/{resources/deepdive/everything_else → docs/deepdive/media}/audio.md +0 -0
  88. /data/{resources/deepdive/everything_else → docs/deepdive/media}/images.md +0 -0
  89. /data/{resources/deepdive/everything_else → docs/deepdive/media}/ocr.md +0 -0
  90. /data/{resources → docs}/deepdive/protocols/a2a.md +0 -0
  91. /data/{resources → docs}/deepdive/protocols/mcp.md +0 -0
  92. /data/{resources/deepdive/everything_else → docs/deepdive/reference}/object.md +0 -0
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: llm.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 14.0.0
4
+ version: 15.0.0
5
5
  platform: ruby
6
6
  authors:
7
- - robert
7
+ - Robert Gleeson
8
8
  - Antar Azri
9
9
  - Rodrigo Serrano
10
10
  bindir: bin
@@ -277,11 +277,55 @@ dependencies:
277
277
  - - "~>"
278
278
  - !ruby/object:Gem::Version
279
279
  version: '1.18'
280
+ - !ruby/object:Gem::Dependency
281
+ name: curb
282
+ requirement: !ruby/object:Gem::Requirement
283
+ requirements:
284
+ - - "~>"
285
+ - !ruby/object:Gem::Version
286
+ version: '1.3'
287
+ type: :development
288
+ prerelease: false
289
+ version_requirements: !ruby/object:Gem::Requirement
290
+ requirements:
291
+ - - "~>"
292
+ - !ruby/object:Gem::Version
293
+ version: '1.3'
294
+ - !ruby/object:Gem::Dependency
295
+ name: curses
296
+ requirement: !ruby/object:Gem::Requirement
297
+ requirements:
298
+ - - "~>"
299
+ - !ruby/object:Gem::Version
300
+ version: '1.6'
301
+ type: :development
302
+ prerelease: false
303
+ version_requirements: !ruby/object:Gem::Requirement
304
+ requirements:
305
+ - - "~>"
306
+ - !ruby/object:Gem::Version
307
+ version: '1.6'
308
+ - !ruby/object:Gem::Dependency
309
+ name: kramdown
310
+ requirement: !ruby/object:Gem::Requirement
311
+ requirements:
312
+ - - "~>"
313
+ - !ruby/object:Gem::Version
314
+ version: '2.5'
315
+ type: :development
316
+ prerelease: false
317
+ version_requirements: !ruby/object:Gem::Requirement
318
+ requirements:
319
+ - - "~>"
320
+ - !ruby/object:Gem::Version
321
+ version: '2.5'
280
322
  description: |
281
- llm.rb is an advanced runtime for building capable AI applications
282
- on CRuby. By default it has zero runtime dependencies although certain
283
- functionality (such as ActiveRecord support) require
284
- optional dependencies that are opt-in.
323
+ llm.rb is an advanced runtime for building agentic AI applications on CRuby.
324
+ It has zero runtime dependencies by default, it supports concurrent and parallel
325
+ tool execution and has a single coherent API that spans 13+ providers. Streaming,
326
+ tools, guards, compaction, the REPL, builtin MCP/A2A support and the database
327
+ integrations all build on the same three concepts: providers, contexts, and
328
+ agents.
285
329
  email:
286
330
  - robert@r.uby.dev
287
331
  executables:
@@ -293,6 +337,7 @@ files:
293
337
  - LICENSE
294
338
  - README.md
295
339
  - bin/llm.rb
340
+ - data/alibaba.json
296
341
  - data/anthropic.json
297
342
  - data/bedrock.json
298
343
  - data/deepinfra.json
@@ -303,6 +348,33 @@ files:
303
348
  - data/openai.json
304
349
  - data/xai.json
305
350
  - data/zai.json
351
+ - docs/deepdive.md
352
+ - docs/deepdive/advanced/cancellation.md
353
+ - docs/deepdive/advanced/compaction.md
354
+ - docs/deepdive/advanced/context.md
355
+ - docs/deepdive/advanced/guard.md
356
+ - docs/deepdive/advanced/transformer.md
357
+ - docs/deepdive/advanced/transports.md
358
+ - docs/deepdive/features/builtin_tools.md
359
+ - docs/deepdive/features/concurrency.md
360
+ - docs/deepdive/features/database.md
361
+ - docs/deepdive/features/embeddings.md
362
+ - docs/deepdive/features/repl.md
363
+ - docs/deepdive/fundamentals/agents.md
364
+ - docs/deepdive/fundamentals/providers.md
365
+ - docs/deepdive/fundamentals/schema.md
366
+ - docs/deepdive/fundamentals/skills.md
367
+ - docs/deepdive/fundamentals/stream.md
368
+ - docs/deepdive/fundamentals/tools.md
369
+ - docs/deepdive/media/audio.md
370
+ - docs/deepdive/media/images.md
371
+ - docs/deepdive/media/ocr.md
372
+ - docs/deepdive/protocols/a2a.md
373
+ - docs/deepdive/protocols/mcp.md
374
+ - docs/deepdive/reference/cost.md
375
+ - docs/deepdive/reference/model_registry.md
376
+ - docs/deepdive/reference/object.md
377
+ - docs/deepdive/reference/tracer.md
306
378
  - lib/llm.rb
307
379
  - lib/llm/a2a.rb
308
380
  - lib/llm/a2a/card.rb
@@ -381,6 +453,9 @@ files:
381
453
  - lib/llm/pipe.rb
382
454
  - lib/llm/prompt.rb
383
455
  - lib/llm/provider.rb
456
+ - lib/llm/providers/alibaba.rb
457
+ - lib/llm/providers/alibaba/error_handler.rb
458
+ - lib/llm/providers/alibaba/request_adapter.rb
384
459
  - lib/llm/providers/anthropic.rb
385
460
  - lib/llm/providers/anthropic/error_handler.rb
386
461
  - lib/llm/providers/anthropic/files.rb
@@ -473,12 +548,14 @@ files:
473
548
  - lib/llm/providers/openai/response_adapter/web_search.rb
474
549
  - lib/llm/providers/openai/responses.rb
475
550
  - lib/llm/providers/openai/responses/stream_parser.rb
551
+ - lib/llm/providers/openai/schema.rb
476
552
  - lib/llm/providers/openai/stream_parser.rb
477
553
  - lib/llm/providers/openai/vector_stores.rb
478
554
  - lib/llm/providers/xai.rb
479
555
  - lib/llm/providers/xai/images.rb
480
556
  - lib/llm/providers/zai.rb
481
557
  - lib/llm/registry.rb
558
+ - lib/llm/registry/model.rb
482
559
  - lib/llm/repl.rb
483
560
  - lib/llm/repl/bar.rb
484
561
  - lib/llm/repl/buffer.rb
@@ -487,7 +564,9 @@ files:
487
564
  - lib/llm/repl/commands/compact.rb
488
565
  - lib/llm/repl/commands/exit.rb
489
566
  - lib/llm/repl/commands/help.rb
567
+ - lib/llm/repl/commands/model.rb
490
568
  - lib/llm/repl/input.rb
569
+ - lib/llm/repl/input/cache.rb
491
570
  - lib/llm/repl/input/char.rb
492
571
  - lib/llm/repl/input/row.rb
493
572
  - lib/llm/repl/markdown.rb
@@ -565,43 +644,18 @@ files:
565
644
  - lib/sequel/plugins/agent.rb
566
645
  - lib/sequel/plugins/llm.rb
567
646
  - llm.gemspec
568
- - resources/deepdive.md
569
- - resources/deepdive/advanced/cancellation.md
570
- - resources/deepdive/advanced/compaction.md
571
- - resources/deepdive/advanced/context.md
572
- - resources/deepdive/advanced/guard.md
573
- - resources/deepdive/advanced/tracer.md
574
- - resources/deepdive/advanced/transformer.md
575
- - resources/deepdive/advanced/transports.md
576
- - resources/deepdive/everything_else/audio.md
577
- - resources/deepdive/everything_else/cost.md
578
- - resources/deepdive/everything_else/images.md
579
- - resources/deepdive/everything_else/object.md
580
- - resources/deepdive/everything_else/ocr.md
581
- - resources/deepdive/fundamentals/agents.md
582
- - resources/deepdive/fundamentals/builtin_tools.md
583
- - resources/deepdive/fundamentals/concurrency.md
584
- - resources/deepdive/fundamentals/database.md
585
- - resources/deepdive/fundamentals/embeddings.md
586
- - resources/deepdive/fundamentals/repl.md
587
- - resources/deepdive/fundamentals/schema.md
588
- - resources/deepdive/fundamentals/skills.md
589
- - resources/deepdive/fundamentals/stream.md
590
- - resources/deepdive/fundamentals/tools.md
591
- - resources/deepdive/protocols/a2a.md
592
- - resources/deepdive/protocols/mcp.md
593
647
  homepage: https://r.uby.dev/llm/
594
648
  licenses:
595
649
  - MIT
596
650
  metadata:
597
651
  homepage_uri: https://r.uby.dev/llm/
598
- source_code_uri: https://github.com/r-uby-dev/llm.rb
652
+ source_code_uri: https://github.com/r-uby-dev/llm
599
653
  documentation_uri: https://r.uby.dev/llm/
600
- changelog_uri: https://r.uby.dev/api-docs/llm.rb/file.CHANGELOG.html
654
+ changelog_uri: https://github.com/r-uby-dev/llm/blob/main/CHANGELOG.md
601
655
  post_install_message: |2+
602
656
 
603
- Learn more about llm.rb by reading the deepdive:
604
- https://r.uby.dev/llm/deepdive
657
+ Learn more about llm.rb on GitHub:
658
+ https://github.com/r-uby-dev/llm#readme
605
659
 
606
660
  rdoc_options: []
607
661
  require_paths:
File without changes
File without changes