sorbet-baml 0.1.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/CLAUDE.md +94 -0
- data/README.md +315 -122
- 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 +49 -0
- data/lib/sorbet_baml/comment_extractor.rb +51 -54
- data/lib/sorbet_baml/converter.rb +69 -35
- data/lib/sorbet_baml/dependency_resolver.rb +11 -11
- data/lib/sorbet_baml/description_extension.rb +34 -0
- data/lib/sorbet_baml/description_extractor.rb +34 -0
- 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 -10
- 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 +67 -7
- data/docs/README.md +0 -117
- data/docs/advanced-usage.md +0 -427
- data/docs/getting-started.md +0 -91
- data/docs/troubleshooting.md +0 -291
- data/docs/type-mapping.md +0 -192
data/lib/sorbet_baml.rb
CHANGED
|
@@ -1,32 +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
|
|
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
|
|
11
24
|
|
|
12
25
|
module SorbetBaml
|
|
13
26
|
class Error < StandardError; end
|
|
14
|
-
|
|
27
|
+
|
|
15
28
|
extend T::Sig
|
|
16
|
-
|
|
29
|
+
|
|
17
30
|
# Convert a single T::Struct to BAML definition
|
|
18
31
|
sig { params(klass: T.class_of(T::Struct), options: T::Hash[Symbol, T.untyped]).returns(String) }
|
|
19
32
|
def self.from_struct(klass, options = {})
|
|
20
33
|
Converter.from_struct(klass, options)
|
|
21
34
|
end
|
|
22
|
-
|
|
35
|
+
|
|
23
36
|
# Convert multiple T::Structs to BAML definitions
|
|
24
37
|
sig { params(klasses: T::Array[T.class_of(T::Struct)], options: T::Hash[Symbol, T.untyped]).returns(String) }
|
|
25
38
|
def self.from_structs(klasses, options = {})
|
|
26
39
|
Converter.from_structs(klasses, options)
|
|
27
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
|
|
28
55
|
end
|
|
29
56
|
|
|
30
57
|
# Extend T::Struct and T::Enum with BAML conversion methods
|
|
31
58
|
T::Struct.extend(SorbetBaml::StructExtensions)
|
|
59
|
+
T::Struct.extend(SorbetBaml::ToolExtensions)
|
|
32
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)
|