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.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +123 -2
  3. data/Rakefile +2 -2
  4. data/docs-site/.gitignore +48 -0
  5. data/docs-site/Gemfile +5 -0
  6. data/docs-site/Gemfile.lock +140 -0
  7. data/docs-site/Rakefile +3 -0
  8. data/docs-site/bridgetown.config.yml +15 -0
  9. data/docs-site/config/initializers.rb +9 -0
  10. data/docs-site/config/puma.rb +9 -0
  11. data/docs-site/config.ru +5 -0
  12. data/docs-site/esbuild.config.js +11 -0
  13. data/docs-site/frontend/javascript/index.js +22 -0
  14. data/docs-site/frontend/styles/index.css +61 -0
  15. data/docs-site/package.json +18 -0
  16. data/docs-site/postcss.config.js +6 -0
  17. data/docs-site/server/roda_app.rb +9 -0
  18. data/docs-site/src/_components/head.liquid +26 -0
  19. data/docs-site/src/_components/nav.liquid +68 -0
  20. data/docs-site/src/_layouts/default.liquid +27 -0
  21. data/docs-site/src/_layouts/doc.liquid +39 -0
  22. data/docs-site/src/advanced-usage.md +598 -0
  23. data/docs-site/src/getting-started.md +170 -0
  24. data/docs-site/src/index.md +183 -0
  25. data/docs-site/src/troubleshooting.md +317 -0
  26. data/docs-site/src/type-mapping.md +236 -0
  27. data/docs-site/tailwind.config.js +85 -0
  28. data/examples/description_parameters.rb +16 -16
  29. data/lib/sorbet_baml/comment_extractor.rb +31 -39
  30. data/lib/sorbet_baml/converter.rb +66 -32
  31. data/lib/sorbet_baml/dependency_resolver.rb +11 -11
  32. data/lib/sorbet_baml/description_extension.rb +5 -5
  33. data/lib/sorbet_baml/description_extractor.rb +8 -10
  34. data/lib/sorbet_baml/dspy_tool_converter.rb +97 -0
  35. data/lib/sorbet_baml/dspy_tool_extensions.rb +23 -0
  36. data/lib/sorbet_baml/enum_extensions.rb +2 -2
  37. data/lib/sorbet_baml/struct_extensions.rb +2 -2
  38. data/lib/sorbet_baml/tool_extensions.rb +23 -0
  39. data/lib/sorbet_baml/type_mapper.rb +35 -37
  40. data/lib/sorbet_baml/version.rb +1 -1
  41. data/lib/sorbet_baml.rb +41 -13
  42. data/sorbet/config +2 -0
  43. data/sorbet/rbi/gems/anthropic@1.5.0.rbi +21252 -0
  44. data/sorbet/rbi/gems/async@2.27.3.rbi +9 -0
  45. data/sorbet/rbi/gems/bigdecimal@3.2.2.rbi +9 -0
  46. data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +424 -0
  47. data/sorbet/rbi/gems/connection_pool@2.5.3.rbi +9 -0
  48. data/sorbet/rbi/gems/console@1.33.0.rbi +9 -0
  49. data/sorbet/rbi/gems/dry-configurable@1.3.0.rbi +672 -0
  50. data/sorbet/rbi/gems/dry-core@1.1.0.rbi +1729 -0
  51. data/sorbet/rbi/gems/dry-logger@1.1.0.rbi +1317 -0
  52. data/sorbet/rbi/gems/dspy@0.19.1.rbi +6677 -0
  53. data/sorbet/rbi/gems/ffi@1.17.2.rbi +2174 -0
  54. data/sorbet/rbi/gems/fiber-annotation@0.2.0.rbi +9 -0
  55. data/sorbet/rbi/gems/fiber-local@1.1.0.rbi +9 -0
  56. data/sorbet/rbi/gems/fiber-storage@1.0.1.rbi +9 -0
  57. data/sorbet/rbi/gems/google-protobuf@4.32.0.rbi +9 -0
  58. data/sorbet/rbi/gems/googleapis-common-protos-types@1.20.0.rbi +9 -0
  59. data/sorbet/rbi/gems/informers@1.2.1.rbi +1875 -0
  60. data/sorbet/rbi/gems/io-event@1.12.1.rbi +9 -0
  61. data/sorbet/rbi/gems/metrics@0.13.0.rbi +9 -0
  62. data/sorbet/rbi/gems/onnxruntime@0.10.0.rbi +304 -0
  63. data/sorbet/rbi/gems/openai@0.16.0.rbi +68055 -0
  64. data/sorbet/rbi/gems/opentelemetry-api@1.6.0.rbi +9 -0
  65. data/sorbet/rbi/gems/opentelemetry-common@0.22.0.rbi +9 -0
  66. data/sorbet/rbi/gems/opentelemetry-exporter-otlp@0.30.0.rbi +9 -0
  67. data/sorbet/rbi/gems/opentelemetry-registry@0.4.0.rbi +9 -0
  68. data/sorbet/rbi/gems/opentelemetry-sdk@1.8.1.rbi +9 -0
  69. data/sorbet/rbi/gems/opentelemetry-semantic_conventions@1.11.0.rbi +9 -0
  70. data/sorbet/rbi/gems/polars-df@0.20.0.rbi +9 -0
  71. data/sorbet/rbi/gems/sorbet-result@1.4.0.rbi +242 -0
  72. data/sorbet/rbi/gems/sorbet-schema@0.9.2.rbi +743 -0
  73. data/sorbet/rbi/gems/sorbet-struct-comparable@1.3.0.rbi +48 -0
  74. data/sorbet/rbi/gems/tokenizers@0.5.5.rbi +754 -0
  75. data/sorbet/rbi/gems/traces@0.17.0.rbi +9 -0
  76. data/sorbet/rbi/gems/zeitwerk@2.7.3.rbi +1429 -0
  77. metadata +63 -2
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `opentelemetry-api` gem.
5
+ # Please instead update this file by running `bin/tapioca gem opentelemetry-api`.
6
+
7
+
8
+ # THIS IS AN EMPTY RBI FILE.
9
+ # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `opentelemetry-common` gem.
5
+ # Please instead update this file by running `bin/tapioca gem opentelemetry-common`.
6
+
7
+
8
+ # THIS IS AN EMPTY RBI FILE.
9
+ # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `opentelemetry-exporter-otlp` gem.
5
+ # Please instead update this file by running `bin/tapioca gem opentelemetry-exporter-otlp`.
6
+
7
+
8
+ # THIS IS AN EMPTY RBI FILE.
9
+ # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `opentelemetry-registry` gem.
5
+ # Please instead update this file by running `bin/tapioca gem opentelemetry-registry`.
6
+
7
+
8
+ # THIS IS AN EMPTY RBI FILE.
9
+ # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `opentelemetry-sdk` gem.
5
+ # Please instead update this file by running `bin/tapioca gem opentelemetry-sdk`.
6
+
7
+
8
+ # THIS IS AN EMPTY RBI FILE.
9
+ # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `opentelemetry-semantic_conventions` gem.
5
+ # Please instead update this file by running `bin/tapioca gem opentelemetry-semantic_conventions`.
6
+
7
+
8
+ # THIS IS AN EMPTY RBI FILE.
9
+ # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem
@@ -0,0 +1,9 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `polars-df` gem.
5
+ # Please instead update this file by running `bin/tapioca gem polars-df`.
6
+
7
+
8
+ # THIS IS AN EMPTY RBI FILE.
9
+ # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem
@@ -0,0 +1,242 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `sorbet-result` gem.
5
+ # Please instead update this file by running `bin/tapioca gem sorbet-result`.
6
+
7
+
8
+ # source://sorbet-result//lib/typed/no_error_on_success_error.rb#4
9
+ module Typed
10
+ class << self
11
+ # source://sorbet-result//lib/typed/result.rb#159
12
+ sig { type_parameters(:T).params(error: T.type_parameter(:T)).returns(Typed::Failure[T.type_parameter(:T)]) }
13
+ def Failure(error); end
14
+
15
+ # source://sorbet-result//lib/typed/result.rb#150
16
+ sig { type_parameters(:T).params(payload: T.type_parameter(:T)).returns(Typed::Success[T.type_parameter(:T)]) }
17
+ def Success(payload); end
18
+ end
19
+ end
20
+
21
+ # source://sorbet-result//lib/typed/result.rb#163
22
+ class Typed::Failure < ::Typed::Result
23
+ extend T::Generic
24
+
25
+ Payload = type_member { { fixed: T.noreturn } }
26
+ Error = type_member
27
+
28
+ # source://sorbet-result//lib/typed/result.rb#188
29
+ sig { params(error: Error).void }
30
+ def initialize(error); end
31
+
32
+ # source://sorbet-result//lib/typed/result.rb#239
33
+ sig { params(other: T.untyped).returns(T::Boolean) }
34
+ def ==(other); end
35
+
36
+ # source://sorbet-result//lib/typed/result.rb#214
37
+ sig do
38
+ override
39
+ .type_parameters(:U, :T)
40
+ .params(
41
+ _block: T.proc.params(arg0: Payload).returns(Typed::Result[T.type_parameter(:U), T.type_parameter(:T)])
42
+ ).returns(Typed::Result[T.type_parameter(:U), Error])
43
+ end
44
+ def and_then(&_block); end
45
+
46
+ # source://sorbet-result//lib/typed/result.rb#171
47
+ sig { override.returns(Error) }
48
+ def error; end
49
+
50
+ # source://sorbet-result//lib/typed/result.rb#199
51
+ sig { override.returns(T::Boolean) }
52
+ def failure?; end
53
+
54
+ # source://sorbet-result//lib/typed/result.rb#223
55
+ sig { override.params(block: T.proc.params(arg0: Error).void).returns(T.self_type) }
56
+ def on_error(&block); end
57
+
58
+ # @raise [NoPayloadOnFailureError]
59
+ #
60
+ # source://sorbet-result//lib/typed/result.rb#204
61
+ sig { override.returns(T.noreturn) }
62
+ def payload; end
63
+
64
+ # source://sorbet-result//lib/typed/result.rb#234
65
+ sig do
66
+ override
67
+ .type_parameters(:Fallback)
68
+ .params(
69
+ value: T.type_parameter(:Fallback)
70
+ ).returns(T.any(Payload, T.type_parameter(:Fallback)))
71
+ end
72
+ def payload_or(value); end
73
+
74
+ # source://sorbet-result//lib/typed/result.rb#194
75
+ sig { override.returns(T::Boolean) }
76
+ def success?; end
77
+
78
+ class << self
79
+ # source://sorbet-result//lib/typed/result.rb#183
80
+ sig { returns(Typed::Failure[::NilClass]) }
81
+ def blank; end
82
+
83
+ # source://sorbet-result//lib/typed/result.rb#178
84
+ sig { type_parameters(:T).params(error: T.type_parameter(:T)).returns(Typed::Failure[T.type_parameter(:T)]) }
85
+ def new(error); end
86
+ end
87
+ end
88
+
89
+ # Error when user attempts to access payload from a Failure Result.
90
+ #
91
+ # source://sorbet-result//lib/typed/no_error_on_success_error.rb#6
92
+ class Typed::NoErrorOnSuccessError < ::StandardError
93
+ # source://sorbet-result//lib/typed/no_error_on_success_error.rb#10
94
+ sig { void }
95
+ def initialize; end
96
+ end
97
+
98
+ # Error when user attempts to access payload from a Failure Result.
99
+ #
100
+ # source://sorbet-result//lib/typed/no_payload_on_failure_error.rb#6
101
+ class Typed::NoPayloadOnFailureError < ::StandardError
102
+ # source://sorbet-result//lib/typed/no_payload_on_failure_error.rb#10
103
+ sig { params(failure: Typed::Failure[T.untyped]).void }
104
+ def initialize(failure); end
105
+ end
106
+
107
+ # A monad representing either a success or a failure. Contains payload and error information as well.
108
+ #
109
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
110
+ #
111
+ # source://sorbet-result//lib/typed/result.rb#11
112
+ class Typed::Result
113
+ extend T::Generic
114
+
115
+ abstract!
116
+ sealed!
117
+
118
+ Payload = type_member(:out)
119
+ Error = type_member(:out)
120
+
121
+ # @abstract
122
+ #
123
+ # source://sorbet-result//lib/typed/result.rb#44
124
+ sig do
125
+ abstract
126
+ .type_parameters(:U, :T)
127
+ .params(
128
+ _block: T.proc.params(arg0: Payload).returns(Typed::Result[T.type_parameter(:U), T.type_parameter(:T)])
129
+ ).returns(T.any(Typed::Result[T.type_parameter(:U), Error], Typed::Result[T.type_parameter(:U), T.type_parameter(:T)]))
130
+ end
131
+ def and_then(&_block); end
132
+
133
+ # @abstract
134
+ #
135
+ # source://sorbet-result//lib/typed/result.rb#35
136
+ sig { abstract.returns(Error) }
137
+ def error; end
138
+
139
+ # @abstract
140
+ #
141
+ # source://sorbet-result//lib/typed/result.rb#27
142
+ sig { abstract.returns(T::Boolean) }
143
+ def failure?; end
144
+
145
+ # @abstract
146
+ #
147
+ # source://sorbet-result//lib/typed/result.rb#52
148
+ sig { abstract.params(block: T.proc.params(arg0: Error).void).returns(T.self_type) }
149
+ def on_error(&block); end
150
+
151
+ # @abstract
152
+ #
153
+ # source://sorbet-result//lib/typed/result.rb#31
154
+ sig { abstract.returns(Payload) }
155
+ def payload; end
156
+
157
+ # @abstract
158
+ #
159
+ # source://sorbet-result//lib/typed/result.rb#61
160
+ sig do
161
+ abstract
162
+ .type_parameters(:Fallback)
163
+ .params(
164
+ value: T.type_parameter(:Fallback)
165
+ ).returns(T.any(Payload, T.type_parameter(:Fallback)))
166
+ end
167
+ def payload_or(value); end
168
+
169
+ # @abstract
170
+ #
171
+ # source://sorbet-result//lib/typed/result.rb#23
172
+ sig { abstract.returns(T::Boolean) }
173
+ def success?; end
174
+ end
175
+
176
+ # source://sorbet-result//lib/typed/result.rb#65
177
+ class Typed::Success < ::Typed::Result
178
+ extend T::Generic
179
+
180
+ Payload = type_member
181
+ Error = type_member { { fixed: T.noreturn } }
182
+
183
+ # source://sorbet-result//lib/typed/result.rb#90
184
+ sig { params(payload: Payload).void }
185
+ def initialize(payload); end
186
+
187
+ # source://sorbet-result//lib/typed/result.rb#140
188
+ sig { params(other: T.untyped).returns(T::Boolean) }
189
+ def ==(other); end
190
+
191
+ # source://sorbet-result//lib/typed/result.rb#116
192
+ sig do
193
+ override
194
+ .type_parameters(:U, :T)
195
+ .params(
196
+ block: T.proc.params(arg0: Payload).returns(Typed::Result[T.type_parameter(:U), T.type_parameter(:T)])
197
+ ).returns(Typed::Result[T.type_parameter(:U), T.type_parameter(:T)])
198
+ end
199
+ def and_then(&block); end
200
+
201
+ # @raise [NoErrorOnSuccessError]
202
+ #
203
+ # source://sorbet-result//lib/typed/result.rb#106
204
+ sig { override.returns(T.noreturn) }
205
+ def error; end
206
+
207
+ # source://sorbet-result//lib/typed/result.rb#101
208
+ sig { override.returns(T::Boolean) }
209
+ def failure?; end
210
+
211
+ # source://sorbet-result//lib/typed/result.rb#125
212
+ sig { override.params(_block: T.proc.params(arg0: Error).void).returns(T.self_type) }
213
+ def on_error(&_block); end
214
+
215
+ # source://sorbet-result//lib/typed/result.rb#73
216
+ sig { override.returns(Payload) }
217
+ def payload; end
218
+
219
+ # source://sorbet-result//lib/typed/result.rb#135
220
+ sig do
221
+ override
222
+ .type_parameters(:Fallback)
223
+ .params(
224
+ _value: T.type_parameter(:Fallback)
225
+ ).returns(T.any(Payload, T.type_parameter(:Fallback)))
226
+ end
227
+ def payload_or(_value); end
228
+
229
+ # source://sorbet-result//lib/typed/result.rb#96
230
+ sig { override.returns(T::Boolean) }
231
+ def success?; end
232
+
233
+ class << self
234
+ # source://sorbet-result//lib/typed/result.rb#85
235
+ sig { returns(Typed::Success[::NilClass]) }
236
+ def blank; end
237
+
238
+ # source://sorbet-result//lib/typed/result.rb#80
239
+ sig { type_parameters(:T).params(payload: T.type_parameter(:T)).returns(Typed::Success[T.type_parameter(:T)]) }
240
+ def new(payload); end
241
+ end
242
+ end