sorbet-baml 0.2.0 → 0.3.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 +123 -2
- data/Rakefile +2 -2
- data/docs-site/.gitignore +48 -0
- data/docs-site/Gemfile +5 -0
- data/docs-site/Gemfile.lock +140 -0
- data/docs-site/Rakefile +3 -0
- data/docs-site/bridgetown.config.yml +15 -0
- data/docs-site/config/initializers.rb +9 -0
- data/docs-site/config/puma.rb +9 -0
- data/docs-site/config.ru +5 -0
- data/docs-site/esbuild.config.js +11 -0
- data/docs-site/frontend/javascript/index.js +22 -0
- data/docs-site/frontend/styles/index.css +61 -0
- data/docs-site/package.json +18 -0
- data/docs-site/postcss.config.js +6 -0
- data/docs-site/server/roda_app.rb +9 -0
- data/docs-site/src/_components/head.liquid +26 -0
- data/docs-site/src/_components/nav.liquid +68 -0
- data/docs-site/src/_layouts/default.liquid +27 -0
- data/docs-site/src/_layouts/doc.liquid +39 -0
- data/docs-site/src/advanced-usage.md +598 -0
- data/docs-site/src/getting-started.md +170 -0
- data/docs-site/src/index.md +183 -0
- data/docs-site/src/troubleshooting.md +317 -0
- data/docs-site/src/type-mapping.md +236 -0
- data/docs-site/tailwind.config.js +85 -0
- data/examples/description_parameters.rb +16 -16
- data/lib/sorbet_baml/comment_extractor.rb +31 -39
- data/lib/sorbet_baml/converter.rb +66 -32
- data/lib/sorbet_baml/dependency_resolver.rb +11 -11
- data/lib/sorbet_baml/description_extension.rb +5 -5
- data/lib/sorbet_baml/description_extractor.rb +8 -10
- data/lib/sorbet_baml/dspy_tool_converter.rb +97 -0
- data/lib/sorbet_baml/dspy_tool_extensions.rb +23 -0
- data/lib/sorbet_baml/enum_extensions.rb +2 -2
- data/lib/sorbet_baml/struct_extensions.rb +2 -2
- data/lib/sorbet_baml/tool_extensions.rb +23 -0
- data/lib/sorbet_baml/type_mapper.rb +35 -37
- data/lib/sorbet_baml/version.rb +1 -1
- data/lib/sorbet_baml.rb +41 -13
- data/sorbet/config +2 -0
- data/sorbet/rbi/gems/anthropic@1.5.0.rbi +21252 -0
- data/sorbet/rbi/gems/async@2.27.3.rbi +9 -0
- data/sorbet/rbi/gems/bigdecimal@3.2.2.rbi +9 -0
- data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +424 -0
- data/sorbet/rbi/gems/connection_pool@2.5.3.rbi +9 -0
- data/sorbet/rbi/gems/console@1.33.0.rbi +9 -0
- data/sorbet/rbi/gems/dry-configurable@1.3.0.rbi +672 -0
- data/sorbet/rbi/gems/dry-core@1.1.0.rbi +1729 -0
- data/sorbet/rbi/gems/dry-logger@1.1.0.rbi +1317 -0
- data/sorbet/rbi/gems/dspy@0.19.1.rbi +6677 -0
- data/sorbet/rbi/gems/ffi@1.17.2.rbi +2174 -0
- data/sorbet/rbi/gems/fiber-annotation@0.2.0.rbi +9 -0
- data/sorbet/rbi/gems/fiber-local@1.1.0.rbi +9 -0
- data/sorbet/rbi/gems/fiber-storage@1.0.1.rbi +9 -0
- data/sorbet/rbi/gems/google-protobuf@4.32.0.rbi +9 -0
- data/sorbet/rbi/gems/googleapis-common-protos-types@1.20.0.rbi +9 -0
- data/sorbet/rbi/gems/informers@1.2.1.rbi +1875 -0
- data/sorbet/rbi/gems/io-event@1.12.1.rbi +9 -0
- data/sorbet/rbi/gems/metrics@0.13.0.rbi +9 -0
- data/sorbet/rbi/gems/onnxruntime@0.10.0.rbi +304 -0
- data/sorbet/rbi/gems/openai@0.16.0.rbi +68055 -0
- data/sorbet/rbi/gems/opentelemetry-api@1.6.0.rbi +9 -0
- data/sorbet/rbi/gems/opentelemetry-common@0.22.0.rbi +9 -0
- data/sorbet/rbi/gems/opentelemetry-exporter-otlp@0.30.0.rbi +9 -0
- data/sorbet/rbi/gems/opentelemetry-registry@0.4.0.rbi +9 -0
- data/sorbet/rbi/gems/opentelemetry-sdk@1.8.1.rbi +9 -0
- data/sorbet/rbi/gems/opentelemetry-semantic_conventions@1.11.0.rbi +9 -0
- data/sorbet/rbi/gems/polars-df@0.20.0.rbi +9 -0
- data/sorbet/rbi/gems/sorbet-result@1.4.0.rbi +242 -0
- data/sorbet/rbi/gems/sorbet-schema@0.9.2.rbi +743 -0
- data/sorbet/rbi/gems/sorbet-struct-comparable@1.3.0.rbi +48 -0
- data/sorbet/rbi/gems/tokenizers@0.5.5.rbi +754 -0
- data/sorbet/rbi/gems/traces@0.17.0.rbi +9 -0
- data/sorbet/rbi/gems/zeitwerk@2.7.3.rbi +1429 -0
- metadata +63 -2
data/lib/sorbet_baml.rb
CHANGED
|
@@ -1,35 +1,63 @@
|
|
|
1
1
|
# typed: strict
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
require
|
|
5
|
-
require_relative
|
|
6
|
-
require_relative
|
|
7
|
-
require_relative
|
|
8
|
-
require_relative
|
|
9
|
-
require_relative
|
|
10
|
-
require_relative
|
|
11
|
-
require_relative
|
|
12
|
-
require_relative
|
|
13
|
-
require_relative
|
|
4
|
+
require 'sorbet-runtime'
|
|
5
|
+
require_relative 'sorbet_baml/version'
|
|
6
|
+
require_relative 'sorbet_baml/converter'
|
|
7
|
+
require_relative 'sorbet_baml/type_mapper'
|
|
8
|
+
require_relative 'sorbet_baml/dependency_resolver'
|
|
9
|
+
require_relative 'sorbet_baml/comment_extractor'
|
|
10
|
+
require_relative 'sorbet_baml/description_extractor'
|
|
11
|
+
require_relative 'sorbet_baml/description_extension'
|
|
12
|
+
require_relative 'sorbet_baml/struct_extensions'
|
|
13
|
+
require_relative 'sorbet_baml/enum_extensions'
|
|
14
|
+
require_relative 'sorbet_baml/tool_extensions'
|
|
15
|
+
|
|
16
|
+
# Optional DSPy support
|
|
17
|
+
begin
|
|
18
|
+
require 'dspy'
|
|
19
|
+
require_relative 'sorbet_baml/dspy_tool_converter'
|
|
20
|
+
require_relative 'sorbet_baml/dspy_tool_extensions'
|
|
21
|
+
rescue LoadError
|
|
22
|
+
# DSPy not available, skip DSPy tool support
|
|
23
|
+
end
|
|
14
24
|
|
|
15
25
|
module SorbetBaml
|
|
16
26
|
class Error < StandardError; end
|
|
17
|
-
|
|
27
|
+
|
|
18
28
|
extend T::Sig
|
|
19
|
-
|
|
29
|
+
|
|
20
30
|
# Convert a single T::Struct to BAML definition
|
|
21
31
|
sig { params(klass: T.class_of(T::Struct), options: T::Hash[Symbol, T.untyped]).returns(String) }
|
|
22
32
|
def self.from_struct(klass, options = {})
|
|
23
33
|
Converter.from_struct(klass, options)
|
|
24
34
|
end
|
|
25
|
-
|
|
35
|
+
|
|
26
36
|
# Convert multiple T::Structs to BAML definitions
|
|
27
37
|
sig { params(klasses: T::Array[T.class_of(T::Struct)], options: T::Hash[Symbol, T.untyped]).returns(String) }
|
|
28
38
|
def self.from_structs(klasses, options = {})
|
|
29
39
|
Converter.from_structs(klasses, options)
|
|
30
40
|
end
|
|
41
|
+
|
|
42
|
+
# Convert a single T::Struct to BAML tool definition
|
|
43
|
+
sig { params(klass: T.class_of(T::Struct), options: T::Hash[Symbol, T.untyped]).returns(String) }
|
|
44
|
+
def self.from_tool(klass, options = {})
|
|
45
|
+
Converter.from_tool(klass, options)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Convert a DSPy tool to BAML tool definition (only if DSPy is available)
|
|
49
|
+
if defined?(DSPy::Tools::Base)
|
|
50
|
+
sig { params(klass: T.class_of(DSPy::Tools::Base), options: T::Hash[Symbol, T.untyped]).returns(String) }
|
|
51
|
+
def self.from_dspy_tool(klass, options = {})
|
|
52
|
+
DSPyToolConverter.from_dspy_tool(klass, options)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
31
55
|
end
|
|
32
56
|
|
|
33
57
|
# Extend T::Struct and T::Enum with BAML conversion methods
|
|
34
58
|
T::Struct.extend(SorbetBaml::StructExtensions)
|
|
59
|
+
T::Struct.extend(SorbetBaml::ToolExtensions)
|
|
35
60
|
T::Enum.extend(SorbetBaml::EnumExtensions)
|
|
61
|
+
|
|
62
|
+
# Extend DSPy::Tools::Base with BAML conversion methods if DSPy is available
|
|
63
|
+
DSPy::Tools::Base.extend(SorbetBaml::DSPyToolExtensions) if defined?(DSPy::Tools::Base)
|