sorbet-baml 0.3.0 → 0.4.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/CHANGELOG.md +59 -0
- data/README.md +32 -11
- data/lib/sorbet_baml/dspy_tool_converter.rb +2 -2
- data/lib/sorbet_baml/dspy_tool_extensions.rb +1 -1
- data/lib/sorbet_baml/version.rb +1 -1
- data/lib/sorbet_baml.rb +4 -2
- metadata +3 -115
- data/.idea/.gitignore +0 -8
- data/.idea/inspectionProfiles/Project_Default.xml +0 -5
- data/.rspec +0 -3
- data/docs-site/.gitignore +0 -48
- data/docs-site/Gemfile +0 -5
- data/docs-site/Gemfile.lock +0 -140
- data/docs-site/Rakefile +0 -3
- data/docs-site/bridgetown.config.yml +0 -15
- data/docs-site/config/initializers.rb +0 -9
- data/docs-site/config/puma.rb +0 -9
- data/docs-site/config.ru +0 -5
- data/docs-site/esbuild.config.js +0 -11
- data/docs-site/frontend/javascript/index.js +0 -22
- data/docs-site/frontend/styles/index.css +0 -61
- data/docs-site/package.json +0 -18
- data/docs-site/postcss.config.js +0 -6
- data/docs-site/server/roda_app.rb +0 -9
- data/docs-site/src/_components/head.liquid +0 -26
- data/docs-site/src/_components/nav.liquid +0 -68
- data/docs-site/src/_layouts/default.liquid +0 -27
- data/docs-site/src/_layouts/doc.liquid +0 -39
- data/docs-site/src/advanced-usage.md +0 -598
- data/docs-site/src/getting-started.md +0 -170
- data/docs-site/src/index.md +0 -183
- data/docs-site/src/troubleshooting.md +0 -317
- data/docs-site/src/type-mapping.md +0 -236
- data/docs-site/tailwind.config.js +0 -85
- data/sorbet/config +0 -6
- data/sorbet/rbi/annotations/.gitattributes +0 -1
- data/sorbet/rbi/annotations/rainbow.rbi +0 -269
- data/sorbet/rbi/gems/.gitattributes +0 -1
- data/sorbet/rbi/gems/anthropic@1.5.0.rbi +0 -21252
- data/sorbet/rbi/gems/ast@2.4.3.rbi +0 -585
- data/sorbet/rbi/gems/async@2.27.3.rbi +0 -9
- data/sorbet/rbi/gems/benchmark@0.4.1.rbi +0 -619
- data/sorbet/rbi/gems/bigdecimal@3.2.2.rbi +0 -9
- data/sorbet/rbi/gems/byebug@11.1.3.rbi +0 -37
- data/sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi +0 -424
- data/sorbet/rbi/gems/connection_pool@2.5.3.rbi +0 -9
- data/sorbet/rbi/gems/console@1.33.0.rbi +0 -9
- data/sorbet/rbi/gems/date@3.4.1.rbi +0 -75
- data/sorbet/rbi/gems/diff-lcs@1.6.2.rbi +0 -1134
- data/sorbet/rbi/gems/dry-configurable@1.3.0.rbi +0 -672
- data/sorbet/rbi/gems/dry-core@1.1.0.rbi +0 -1729
- data/sorbet/rbi/gems/dry-logger@1.1.0.rbi +0 -1317
- data/sorbet/rbi/gems/dspy@0.19.1.rbi +0 -6677
- data/sorbet/rbi/gems/erb@5.0.2.rbi +0 -878
- data/sorbet/rbi/gems/erubi@1.13.1.rbi +0 -155
- data/sorbet/rbi/gems/ffi@1.17.2.rbi +0 -2174
- data/sorbet/rbi/gems/fiber-annotation@0.2.0.rbi +0 -9
- data/sorbet/rbi/gems/fiber-local@1.1.0.rbi +0 -9
- data/sorbet/rbi/gems/fiber-storage@1.0.1.rbi +0 -9
- data/sorbet/rbi/gems/google-protobuf@4.32.0.rbi +0 -9
- data/sorbet/rbi/gems/googleapis-common-protos-types@1.20.0.rbi +0 -9
- data/sorbet/rbi/gems/informers@1.2.1.rbi +0 -1875
- data/sorbet/rbi/gems/io-console@0.8.1.rbi +0 -9
- data/sorbet/rbi/gems/io-event@1.12.1.rbi +0 -9
- data/sorbet/rbi/gems/json@2.13.2.rbi +0 -2087
- data/sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi +0 -9
- data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +0 -240
- data/sorbet/rbi/gems/logger@1.7.0.rbi +0 -963
- data/sorbet/rbi/gems/metrics@0.13.0.rbi +0 -9
- data/sorbet/rbi/gems/netrc@0.11.0.rbi +0 -159
- data/sorbet/rbi/gems/onnxruntime@0.10.0.rbi +0 -304
- data/sorbet/rbi/gems/openai@0.16.0.rbi +0 -68055
- data/sorbet/rbi/gems/opentelemetry-api@1.6.0.rbi +0 -9
- data/sorbet/rbi/gems/opentelemetry-common@0.22.0.rbi +0 -9
- data/sorbet/rbi/gems/opentelemetry-exporter-otlp@0.30.0.rbi +0 -9
- data/sorbet/rbi/gems/opentelemetry-registry@0.4.0.rbi +0 -9
- data/sorbet/rbi/gems/opentelemetry-sdk@1.8.1.rbi +0 -9
- data/sorbet/rbi/gems/opentelemetry-semantic_conventions@1.11.0.rbi +0 -9
- data/sorbet/rbi/gems/parallel@1.27.0.rbi +0 -291
- data/sorbet/rbi/gems/parser@3.3.9.0.rbi +0 -5535
- data/sorbet/rbi/gems/polars-df@0.20.0.rbi +0 -9
- data/sorbet/rbi/gems/pp@0.6.2.rbi +0 -368
- data/sorbet/rbi/gems/prettyprint@0.2.0.rbi +0 -477
- data/sorbet/rbi/gems/prism@1.4.0.rbi +0 -41732
- data/sorbet/rbi/gems/psych@5.2.6.rbi +0 -2469
- data/sorbet/rbi/gems/racc@1.8.1.rbi +0 -164
- data/sorbet/rbi/gems/rainbow@3.1.1.rbi +0 -403
- data/sorbet/rbi/gems/rake@13.3.0.rbi +0 -3031
- data/sorbet/rbi/gems/rbi@0.3.6.rbi +0 -6893
- data/sorbet/rbi/gems/rbs@3.9.4.rbi +0 -6976
- data/sorbet/rbi/gems/rdoc@6.14.2.rbi +0 -12688
- data/sorbet/rbi/gems/regexp_parser@2.11.2.rbi +0 -3845
- data/sorbet/rbi/gems/reline@0.6.2.rbi +0 -2441
- data/sorbet/rbi/gems/rexml@3.4.1.rbi +0 -5240
- data/sorbet/rbi/gems/rspec-core@3.13.5.rbi +0 -11250
- data/sorbet/rbi/gems/rspec-expectations@3.13.5.rbi +0 -8189
- data/sorbet/rbi/gems/rspec-mocks@3.13.5.rbi +0 -5350
- data/sorbet/rbi/gems/rspec-support@3.13.4.rbi +0 -1630
- data/sorbet/rbi/gems/rspec@3.13.1.rbi +0 -83
- data/sorbet/rbi/gems/rubocop-ast@1.46.0.rbi +0 -7764
- data/sorbet/rbi/gems/rubocop-sorbet@0.10.5.rbi +0 -2386
- data/sorbet/rbi/gems/rubocop@1.79.2.rbi +0 -63321
- data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +0 -1318
- data/sorbet/rbi/gems/sorbet-result@1.4.0.rbi +0 -242
- data/sorbet/rbi/gems/sorbet-schema@0.9.2.rbi +0 -743
- data/sorbet/rbi/gems/sorbet-struct-comparable@1.3.0.rbi +0 -48
- data/sorbet/rbi/gems/spoom@1.6.3.rbi +0 -6985
- data/sorbet/rbi/gems/stringio@3.1.7.rbi +0 -9
- data/sorbet/rbi/gems/tapioca@0.16.11.rbi +0 -3628
- data/sorbet/rbi/gems/thor@1.4.0.rbi +0 -4399
- data/sorbet/rbi/gems/tokenizers@0.5.5.rbi +0 -754
- data/sorbet/rbi/gems/traces@0.17.0.rbi +0 -9
- data/sorbet/rbi/gems/unicode-display_width@3.1.5.rbi +0 -132
- data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +0 -251
- data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +0 -435
- data/sorbet/rbi/gems/yard@0.9.37.rbi +0 -18379
- data/sorbet/rbi/gems/zeitwerk@2.7.3.rbi +0 -1429
- data/sorbet/tapioca/config.yml +0 -13
- data/sorbet/tapioca/require.rb +0 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4de7b80da4ee748d5c22196c22f78ca92e855f9b4983437d4ea6ad02a5201fba
|
|
4
|
+
data.tar.gz: 22a81719e5d2021b52945d913e3134482ff999e917d655f67ec894a35fa2a40b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d64e1cef217666030c2f34cacd48333d6ce46d5fac40e2a2855c0f73fe43dadf39a620ad01b37df904ca5aa792a7d46cd3a1bdaf45ce797b34f3010ce4a2be12
|
|
7
|
+
data.tar.gz: 6131b255163a544f2ef7591f58e173ab0436c44426003513888b51ea4d3a35a5ff90d186b491d867035b9d0c86929b176c6ff8bfeb6de7106b87662546ea0c3e
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,64 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
+
## [0.4.0] - 2025-10-14
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- **Dramatically reduced gem size from 1.46MB to 20KB (98.6% reduction)**
|
|
8
|
+
- Excluded development-only Sorbet RBI files (`sorbet/` directory - 11MB)
|
|
9
|
+
- Excluded documentation site source (`docs-site/` directory - 43MB)
|
|
10
|
+
- Excluded IDE configuration files (`.idea/` directory)
|
|
11
|
+
- Excluded documentation output (`docs-output/` directory)
|
|
12
|
+
- Excluded RSpec configuration files (`.rspec`)
|
|
13
|
+
- **File count reduced from 134 to 22 essential files**
|
|
14
|
+
|
|
15
|
+
### Technical Details
|
|
16
|
+
|
|
17
|
+
The gem now only includes runtime-required files:
|
|
18
|
+
- Core library code (`lib/` directory)
|
|
19
|
+
- Documentation (README.md, LICENSE.txt, CHANGELOG.md)
|
|
20
|
+
- Examples (`examples/` directory)
|
|
21
|
+
|
|
22
|
+
All Sorbet type checking infrastructure and development tooling remains available in the repository for contributors but is no longer shipped to end users.
|
|
23
|
+
|
|
24
|
+
### Impact
|
|
25
|
+
|
|
26
|
+
- **Faster gem installation** - 92% less data to download
|
|
27
|
+
- **Smaller disk footprint** - More efficient for deployed applications
|
|
28
|
+
- **No functionality changes** - All features work exactly as before
|
|
29
|
+
- **Zero breaking changes** - Full backward compatibility maintained
|
|
30
|
+
|
|
31
|
+
## [0.3.0] - 2025-08-17
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
|
|
35
|
+
- Comprehensive BAML tool type definitions for agentic workflows
|
|
36
|
+
- `.to_baml_tool()` method for T::Struct classes
|
|
37
|
+
- Automatic DSPy tool conversion when `dspy.rb` is available
|
|
38
|
+
- Tool metadata extraction (`tool_name`, `tool_description`)
|
|
39
|
+
- Support for function calling APIs (OpenAI, Anthropic, etc.)
|
|
40
|
+
|
|
41
|
+
### Improved
|
|
42
|
+
|
|
43
|
+
- 80+ test cases with comprehensive coverage
|
|
44
|
+
- Full Sorbet type safety throughout
|
|
45
|
+
- Enhanced documentation with tool examples
|
|
46
|
+
|
|
47
|
+
## [0.2.0] - 2025-08-16
|
|
48
|
+
|
|
49
|
+
### Added
|
|
50
|
+
|
|
51
|
+
- Clean `description:` parameter for `const` and `prop` declarations
|
|
52
|
+
- Smart fallback chain: description parameter → Ruby comments → nil
|
|
53
|
+
- `DescriptionExtension` for T::Struct
|
|
54
|
+
- `DescriptionExtractor` for programmatic access
|
|
55
|
+
|
|
56
|
+
### Improved
|
|
57
|
+
|
|
58
|
+
- Better LLM context with rich field descriptions
|
|
59
|
+
- Zero breaking changes to existing APIs
|
|
60
|
+
- Full backward compatibility
|
|
61
|
+
|
|
3
62
|
## [0.1.0] - 2025-08-16
|
|
4
63
|
|
|
5
64
|
- Initial release
|
data/README.md
CHANGED
|
@@ -147,7 +147,29 @@ SorbetBaml.from_structs([ResearchSynthesis, ResearchFindings])
|
|
|
147
147
|
|
|
148
148
|
## 🎯 Field Descriptions for LLM Context
|
|
149
149
|
|
|
150
|
-
Add crucial context to your BAML types by documenting fields
|
|
150
|
+
Add crucial context to your BAML types by documenting fields - essential for autonomous agents and complex workflows. The gem supports **two ways** to provide field descriptions:
|
|
151
|
+
|
|
152
|
+
### Method 1: Comments (Traditional)
|
|
153
|
+
```ruby
|
|
154
|
+
class ResearchTask < T::Struct
|
|
155
|
+
# Clear description of the research objective
|
|
156
|
+
const :objective, String
|
|
157
|
+
# Strategic priority ranking (1-5 scale)
|
|
158
|
+
const :priority, Integer
|
|
159
|
+
end
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Method 2: Description Parameter (New in v0.2.0+)
|
|
163
|
+
```ruby
|
|
164
|
+
class ResearchTask < T::Struct
|
|
165
|
+
const :objective, String, description: "Clear description of the research objective"
|
|
166
|
+
const :priority, Integer, description: "Strategic priority ranking (1-5 scale)"
|
|
167
|
+
end
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Both methods produce identical BAML output with `@description` annotations. The `description:` parameter provides a more explicit, Sorbet-native way to document fields.
|
|
171
|
+
|
|
172
|
+
### Complete Example
|
|
151
173
|
|
|
152
174
|
```ruby
|
|
153
175
|
class TaskType < T::Enum
|
|
@@ -211,10 +233,9 @@ class ReplyTool < T::Struct
|
|
|
211
233
|
end
|
|
212
234
|
|
|
213
235
|
class SearchTool < T::Struct
|
|
214
|
-
#
|
|
215
|
-
const :query, String
|
|
216
|
-
|
|
217
|
-
const :limit, T.nilable(Integer)
|
|
236
|
+
# Using description: parameter (both methods work)
|
|
237
|
+
const :query, String, description: "The search query to execute"
|
|
238
|
+
const :limit, T.nilable(Integer), description: "Maximum number of results to return"
|
|
218
239
|
end
|
|
219
240
|
|
|
220
241
|
# Generate BAML tool definitions
|
|
@@ -301,7 +322,7 @@ SorbetBaml.from_dspy_tool(CalculatorTool)
|
|
|
301
322
|
- ✅ **DSPy integration**: Automatic extraction from DSPy::Tools::Base classes
|
|
302
323
|
- ✅ **Parameter types**: Full Sorbet type support (string, int, float, arrays, maps, etc.)
|
|
303
324
|
- ✅ **Optional parameters**: Automatically detect and mark with `?`
|
|
304
|
-
- ✅ **Descriptions**: Extract from comments (T::Struct) or automatic generation (DSPy)
|
|
325
|
+
- ✅ **Descriptions**: Extract from comments or `description:` parameter (T::Struct) or automatic generation (DSPy)
|
|
305
326
|
- ✅ **Tool metadata**: Names, descriptions, and parameter documentation
|
|
306
327
|
- ✅ **Ruby-idiomatic**: `.to_baml_tool()` and `.to_baml()` methods
|
|
307
328
|
|
|
@@ -337,7 +358,7 @@ SorbetBaml.from_dspy_tool(CalculatorTool)
|
|
|
337
358
|
- **Tool definitions**: Generate BAML tool specs for function calling and agentic workflows
|
|
338
359
|
- **DSPy integration**: Automatic tool conversion from DSPy::Tools::Base classes
|
|
339
360
|
- **Smart defaults**: Field descriptions and dependencies included automatically
|
|
340
|
-
- **Field descriptions**: Extracts comments
|
|
361
|
+
- **Field descriptions**: Extracts from comments or `description:` parameter for LLM context
|
|
341
362
|
- **Dependency management**: Automatically includes all referenced types
|
|
342
363
|
- **Proper ordering**: Dependencies are sorted topologically (no forward references needed)
|
|
343
364
|
- **Circular reference handling**: Won't get stuck in infinite loops
|
|
@@ -363,13 +384,13 @@ SorbetBaml.from_dspy_tool(CalculatorTool)
|
|
|
363
384
|
|
|
364
385
|
## 🏁 Production Ready
|
|
365
386
|
|
|
366
|
-
This gem has reached **feature completeness** for core BAML conversion needs. The Ruby-idiomatic API is stable and thoroughly tested with **80
|
|
387
|
+
This gem has reached **feature completeness** for core BAML conversion needs. The Ruby-idiomatic API is stable and thoroughly tested with **80 test cases** covering all type combinations, tool definitions, and edge cases.
|
|
367
388
|
|
|
368
389
|
### 📊 Quality Metrics
|
|
369
390
|
|
|
370
|
-
- ✅ **
|
|
391
|
+
- ✅ **Comprehensive Test Coverage** - All features thoroughly tested
|
|
371
392
|
- ✅ **Full Sorbet Type Safety** - Zero type errors throughout codebase
|
|
372
|
-
- ✅ **80
|
|
393
|
+
- ✅ **80 Test Cases** - Covering basic types, complex combinations, tool definitions, and edge cases
|
|
373
394
|
- ✅ **TDD Development** - All features built test-first
|
|
374
395
|
- ✅ **Field Descriptions** - Automatic comment extraction for LLM context
|
|
375
396
|
- ✅ **Tool Definitions** - BAML tool specifications for function calling and agentic workflows
|
|
@@ -383,7 +404,7 @@ This gem has reached **feature completeness** for core BAML conversion needs. Th
|
|
|
383
404
|
- ✅ **Tool definitions**: Generate BAML tool specifications from T::Struct classes
|
|
384
405
|
- ✅ **DSPy integration**: Automatic tool conversion from DSPy::Tools::Base classes
|
|
385
406
|
- ✅ **Smart defaults**: Field descriptions and dependencies included automatically
|
|
386
|
-
- ✅ **Field descriptions**: Extract documentation from comments for LLM context
|
|
407
|
+
- ✅ **Field descriptions**: Extract documentation from comments or `description:` parameter for LLM context
|
|
387
408
|
- ✅ **Dependency management**: Automatically includes all referenced types
|
|
388
409
|
- ✅ **Proper ordering**: Dependencies are sorted topologically
|
|
389
410
|
- ✅ **Type safety**: Full Sorbet type checking throughout
|
|
@@ -8,7 +8,7 @@ module SorbetBaml
|
|
|
8
8
|
class DSPyToolConverter
|
|
9
9
|
extend T::Sig
|
|
10
10
|
|
|
11
|
-
sig { params(klass: T.
|
|
11
|
+
sig { params(klass: T.untyped, options: T::Hash[Symbol, T.untyped]).returns(String) }
|
|
12
12
|
def self.from_dspy_tool(klass, options = {})
|
|
13
13
|
new(options).convert_dspy_tool(klass)
|
|
14
14
|
end
|
|
@@ -20,7 +20,7 @@ module SorbetBaml
|
|
|
20
20
|
@include_descriptions = T.let(options.fetch(:include_descriptions, true), T::Boolean)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
-
sig { params(klass: T.
|
|
23
|
+
sig { params(klass: T.untyped).returns(String) }
|
|
24
24
|
def convert_dspy_tool(klass)
|
|
25
25
|
# Extract tool metadata from DSPy tool
|
|
26
26
|
tool_name = klass.tool_name_value || klass.name&.split('::')&.last
|
|
@@ -17,7 +17,7 @@ module SorbetBaml
|
|
|
17
17
|
# Convert this DSPy tool to BAML tool definition with options
|
|
18
18
|
sig { params(options: T::Hash[Symbol, T.untyped]).returns(String) }
|
|
19
19
|
def baml_tool_definition(options = {})
|
|
20
|
-
SorbetBaml::DSPyToolConverter.from_dspy_tool(T.
|
|
20
|
+
SorbetBaml::DSPyToolConverter.from_dspy_tool(T.unsafe(self), options)
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
23
|
end
|
data/lib/sorbet_baml/version.rb
CHANGED
data/lib/sorbet_baml.rb
CHANGED
|
@@ -47,7 +47,7 @@ module SorbetBaml
|
|
|
47
47
|
|
|
48
48
|
# Convert a DSPy tool to BAML tool definition (only if DSPy is available)
|
|
49
49
|
if defined?(DSPy::Tools::Base)
|
|
50
|
-
sig { params(klass: T.
|
|
50
|
+
sig { params(klass: T.untyped, options: T::Hash[Symbol, T.untyped]).returns(String) }
|
|
51
51
|
def self.from_dspy_tool(klass, options = {})
|
|
52
52
|
DSPyToolConverter.from_dspy_tool(klass, options)
|
|
53
53
|
end
|
|
@@ -60,4 +60,6 @@ T::Struct.extend(SorbetBaml::ToolExtensions)
|
|
|
60
60
|
T::Enum.extend(SorbetBaml::EnumExtensions)
|
|
61
61
|
|
|
62
62
|
# Extend DSPy::Tools::Base with BAML conversion methods if DSPy is available
|
|
63
|
-
|
|
63
|
+
if defined?(DSPy::Tools::Base)
|
|
64
|
+
T.unsafe(eval('DSPy::Tools::Base')).extend(SorbetBaml::DSPyToolExtensions)
|
|
65
|
+
end
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sorbet-baml
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vicente Reig Rincon de Arellano
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2025-
|
|
10
|
+
date: 2025-10-14 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: sorbet-runtime
|
|
@@ -32,38 +32,11 @@ executables: []
|
|
|
32
32
|
extensions: []
|
|
33
33
|
extra_rdoc_files: []
|
|
34
34
|
files:
|
|
35
|
-
- ".idea/.gitignore"
|
|
36
|
-
- ".idea/inspectionProfiles/Project_Default.xml"
|
|
37
|
-
- ".rspec"
|
|
38
35
|
- CHANGELOG.md
|
|
39
36
|
- CLAUDE.md
|
|
40
37
|
- LICENSE.txt
|
|
41
38
|
- README.md
|
|
42
39
|
- Rakefile
|
|
43
|
-
- docs-site/.gitignore
|
|
44
|
-
- docs-site/Gemfile
|
|
45
|
-
- docs-site/Gemfile.lock
|
|
46
|
-
- docs-site/Rakefile
|
|
47
|
-
- docs-site/bridgetown.config.yml
|
|
48
|
-
- docs-site/config.ru
|
|
49
|
-
- docs-site/config/initializers.rb
|
|
50
|
-
- docs-site/config/puma.rb
|
|
51
|
-
- docs-site/esbuild.config.js
|
|
52
|
-
- docs-site/frontend/javascript/index.js
|
|
53
|
-
- docs-site/frontend/styles/index.css
|
|
54
|
-
- docs-site/package.json
|
|
55
|
-
- docs-site/postcss.config.js
|
|
56
|
-
- docs-site/server/roda_app.rb
|
|
57
|
-
- docs-site/src/_components/head.liquid
|
|
58
|
-
- docs-site/src/_components/nav.liquid
|
|
59
|
-
- docs-site/src/_layouts/default.liquid
|
|
60
|
-
- docs-site/src/_layouts/doc.liquid
|
|
61
|
-
- docs-site/src/advanced-usage.md
|
|
62
|
-
- docs-site/src/getting-started.md
|
|
63
|
-
- docs-site/src/index.md
|
|
64
|
-
- docs-site/src/troubleshooting.md
|
|
65
|
-
- docs-site/src/type-mapping.md
|
|
66
|
-
- docs-site/tailwind.config.js
|
|
67
40
|
- examples/description_parameters.rb
|
|
68
41
|
- lib/sorbet_baml.rb
|
|
69
42
|
- lib/sorbet_baml/comment_extractor.rb
|
|
@@ -79,91 +52,6 @@ files:
|
|
|
79
52
|
- lib/sorbet_baml/type_mapper.rb
|
|
80
53
|
- lib/sorbet_baml/version.rb
|
|
81
54
|
- sig/sorbet/baml.rbs
|
|
82
|
-
- sorbet/config
|
|
83
|
-
- sorbet/rbi/annotations/.gitattributes
|
|
84
|
-
- sorbet/rbi/annotations/rainbow.rbi
|
|
85
|
-
- sorbet/rbi/gems/.gitattributes
|
|
86
|
-
- sorbet/rbi/gems/anthropic@1.5.0.rbi
|
|
87
|
-
- sorbet/rbi/gems/ast@2.4.3.rbi
|
|
88
|
-
- sorbet/rbi/gems/async@2.27.3.rbi
|
|
89
|
-
- sorbet/rbi/gems/benchmark@0.4.1.rbi
|
|
90
|
-
- sorbet/rbi/gems/bigdecimal@3.2.2.rbi
|
|
91
|
-
- sorbet/rbi/gems/byebug@11.1.3.rbi
|
|
92
|
-
- sorbet/rbi/gems/concurrent-ruby@1.3.5.rbi
|
|
93
|
-
- sorbet/rbi/gems/connection_pool@2.5.3.rbi
|
|
94
|
-
- sorbet/rbi/gems/console@1.33.0.rbi
|
|
95
|
-
- sorbet/rbi/gems/date@3.4.1.rbi
|
|
96
|
-
- sorbet/rbi/gems/diff-lcs@1.6.2.rbi
|
|
97
|
-
- sorbet/rbi/gems/dry-configurable@1.3.0.rbi
|
|
98
|
-
- sorbet/rbi/gems/dry-core@1.1.0.rbi
|
|
99
|
-
- sorbet/rbi/gems/dry-logger@1.1.0.rbi
|
|
100
|
-
- sorbet/rbi/gems/dspy@0.19.1.rbi
|
|
101
|
-
- sorbet/rbi/gems/erb@5.0.2.rbi
|
|
102
|
-
- sorbet/rbi/gems/erubi@1.13.1.rbi
|
|
103
|
-
- sorbet/rbi/gems/ffi@1.17.2.rbi
|
|
104
|
-
- sorbet/rbi/gems/fiber-annotation@0.2.0.rbi
|
|
105
|
-
- sorbet/rbi/gems/fiber-local@1.1.0.rbi
|
|
106
|
-
- sorbet/rbi/gems/fiber-storage@1.0.1.rbi
|
|
107
|
-
- sorbet/rbi/gems/google-protobuf@4.32.0.rbi
|
|
108
|
-
- sorbet/rbi/gems/googleapis-common-protos-types@1.20.0.rbi
|
|
109
|
-
- sorbet/rbi/gems/informers@1.2.1.rbi
|
|
110
|
-
- sorbet/rbi/gems/io-console@0.8.1.rbi
|
|
111
|
-
- sorbet/rbi/gems/io-event@1.12.1.rbi
|
|
112
|
-
- sorbet/rbi/gems/json@2.13.2.rbi
|
|
113
|
-
- sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi
|
|
114
|
-
- sorbet/rbi/gems/lint_roller@1.1.0.rbi
|
|
115
|
-
- sorbet/rbi/gems/logger@1.7.0.rbi
|
|
116
|
-
- sorbet/rbi/gems/metrics@0.13.0.rbi
|
|
117
|
-
- sorbet/rbi/gems/netrc@0.11.0.rbi
|
|
118
|
-
- sorbet/rbi/gems/onnxruntime@0.10.0.rbi
|
|
119
|
-
- sorbet/rbi/gems/openai@0.16.0.rbi
|
|
120
|
-
- sorbet/rbi/gems/opentelemetry-api@1.6.0.rbi
|
|
121
|
-
- sorbet/rbi/gems/opentelemetry-common@0.22.0.rbi
|
|
122
|
-
- sorbet/rbi/gems/opentelemetry-exporter-otlp@0.30.0.rbi
|
|
123
|
-
- sorbet/rbi/gems/opentelemetry-registry@0.4.0.rbi
|
|
124
|
-
- sorbet/rbi/gems/opentelemetry-sdk@1.8.1.rbi
|
|
125
|
-
- sorbet/rbi/gems/opentelemetry-semantic_conventions@1.11.0.rbi
|
|
126
|
-
- sorbet/rbi/gems/parallel@1.27.0.rbi
|
|
127
|
-
- sorbet/rbi/gems/parser@3.3.9.0.rbi
|
|
128
|
-
- sorbet/rbi/gems/polars-df@0.20.0.rbi
|
|
129
|
-
- sorbet/rbi/gems/pp@0.6.2.rbi
|
|
130
|
-
- sorbet/rbi/gems/prettyprint@0.2.0.rbi
|
|
131
|
-
- sorbet/rbi/gems/prism@1.4.0.rbi
|
|
132
|
-
- sorbet/rbi/gems/psych@5.2.6.rbi
|
|
133
|
-
- sorbet/rbi/gems/racc@1.8.1.rbi
|
|
134
|
-
- sorbet/rbi/gems/rainbow@3.1.1.rbi
|
|
135
|
-
- sorbet/rbi/gems/rake@13.3.0.rbi
|
|
136
|
-
- sorbet/rbi/gems/rbi@0.3.6.rbi
|
|
137
|
-
- sorbet/rbi/gems/rbs@3.9.4.rbi
|
|
138
|
-
- sorbet/rbi/gems/rdoc@6.14.2.rbi
|
|
139
|
-
- sorbet/rbi/gems/regexp_parser@2.11.2.rbi
|
|
140
|
-
- sorbet/rbi/gems/reline@0.6.2.rbi
|
|
141
|
-
- sorbet/rbi/gems/rexml@3.4.1.rbi
|
|
142
|
-
- sorbet/rbi/gems/rspec-core@3.13.5.rbi
|
|
143
|
-
- sorbet/rbi/gems/rspec-expectations@3.13.5.rbi
|
|
144
|
-
- sorbet/rbi/gems/rspec-mocks@3.13.5.rbi
|
|
145
|
-
- sorbet/rbi/gems/rspec-support@3.13.4.rbi
|
|
146
|
-
- sorbet/rbi/gems/rspec@3.13.1.rbi
|
|
147
|
-
- sorbet/rbi/gems/rubocop-ast@1.46.0.rbi
|
|
148
|
-
- sorbet/rbi/gems/rubocop-sorbet@0.10.5.rbi
|
|
149
|
-
- sorbet/rbi/gems/rubocop@1.79.2.rbi
|
|
150
|
-
- sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi
|
|
151
|
-
- sorbet/rbi/gems/sorbet-result@1.4.0.rbi
|
|
152
|
-
- sorbet/rbi/gems/sorbet-schema@0.9.2.rbi
|
|
153
|
-
- sorbet/rbi/gems/sorbet-struct-comparable@1.3.0.rbi
|
|
154
|
-
- sorbet/rbi/gems/spoom@1.6.3.rbi
|
|
155
|
-
- sorbet/rbi/gems/stringio@3.1.7.rbi
|
|
156
|
-
- sorbet/rbi/gems/tapioca@0.16.11.rbi
|
|
157
|
-
- sorbet/rbi/gems/thor@1.4.0.rbi
|
|
158
|
-
- sorbet/rbi/gems/tokenizers@0.5.5.rbi
|
|
159
|
-
- sorbet/rbi/gems/traces@0.17.0.rbi
|
|
160
|
-
- sorbet/rbi/gems/unicode-display_width@3.1.5.rbi
|
|
161
|
-
- sorbet/rbi/gems/unicode-emoji@4.0.4.rbi
|
|
162
|
-
- sorbet/rbi/gems/yard-sorbet@0.9.0.rbi
|
|
163
|
-
- sorbet/rbi/gems/yard@0.9.37.rbi
|
|
164
|
-
- sorbet/rbi/gems/zeitwerk@2.7.3.rbi
|
|
165
|
-
- sorbet/tapioca/config.yml
|
|
166
|
-
- sorbet/tapioca/require.rb
|
|
167
55
|
homepage: https://github.com/vicentereig/sorbet-baml
|
|
168
56
|
licenses:
|
|
169
57
|
- MIT
|
|
@@ -178,7 +66,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
178
66
|
requirements:
|
|
179
67
|
- - ">="
|
|
180
68
|
- !ruby/object:Gem::Version
|
|
181
|
-
version: 3.
|
|
69
|
+
version: 3.3.0
|
|
182
70
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
71
|
requirements:
|
|
184
72
|
- - ">="
|
data/.idea/.gitignore
DELETED
data/.rspec
DELETED
data/docs-site/.gitignore
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# Dependencies
|
|
2
|
-
node_modules/
|
|
3
|
-
.pnp
|
|
4
|
-
.pnp.js
|
|
5
|
-
|
|
6
|
-
# Build outputs
|
|
7
|
-
output/
|
|
8
|
-
dist/
|
|
9
|
-
|
|
10
|
-
# Cache directories
|
|
11
|
-
.bridgetown-cache/
|
|
12
|
-
.tmp/
|
|
13
|
-
|
|
14
|
-
# Environment files
|
|
15
|
-
.env
|
|
16
|
-
.env.local
|
|
17
|
-
.env.development.local
|
|
18
|
-
.env.test.local
|
|
19
|
-
.env.production.local
|
|
20
|
-
|
|
21
|
-
# System files
|
|
22
|
-
.DS_Store
|
|
23
|
-
.DS_Store?
|
|
24
|
-
._*
|
|
25
|
-
.Spotlight-V100
|
|
26
|
-
.Trashes
|
|
27
|
-
ehthumbs.db
|
|
28
|
-
Thumbs.db
|
|
29
|
-
|
|
30
|
-
# Editor files
|
|
31
|
-
.vscode/
|
|
32
|
-
.idea/
|
|
33
|
-
*.swp
|
|
34
|
-
*.swo
|
|
35
|
-
*~
|
|
36
|
-
|
|
37
|
-
# Log files
|
|
38
|
-
npm-debug.log*
|
|
39
|
-
yarn-debug.log*
|
|
40
|
-
yarn-error.log*
|
|
41
|
-
lerna-debug.log*
|
|
42
|
-
|
|
43
|
-
# Package lock files (keep only one)
|
|
44
|
-
package-lock.json
|
|
45
|
-
|
|
46
|
-
# Ruby
|
|
47
|
-
.bundle/
|
|
48
|
-
vendor/bundle
|
data/docs-site/Gemfile
DELETED
data/docs-site/Gemfile.lock
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
GEM
|
|
2
|
-
remote: https://rubygems.org/
|
|
3
|
-
specs:
|
|
4
|
-
activemodel (7.2.2.2)
|
|
5
|
-
activesupport (= 7.2.2.2)
|
|
6
|
-
activesupport (7.2.2.2)
|
|
7
|
-
base64
|
|
8
|
-
benchmark (>= 0.3)
|
|
9
|
-
bigdecimal
|
|
10
|
-
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
11
|
-
connection_pool (>= 2.2.5)
|
|
12
|
-
drb
|
|
13
|
-
i18n (>= 1.6, < 2)
|
|
14
|
-
logger (>= 1.4.2)
|
|
15
|
-
minitest (>= 5.1)
|
|
16
|
-
securerandom (>= 0.3)
|
|
17
|
-
tzinfo (~> 2.0, >= 2.0.5)
|
|
18
|
-
addressable (2.8.7)
|
|
19
|
-
public_suffix (>= 2.0.2, < 7.0)
|
|
20
|
-
amazing_print (1.8.1)
|
|
21
|
-
base64 (0.3.0)
|
|
22
|
-
benchmark (0.4.1)
|
|
23
|
-
bigdecimal (3.2.2)
|
|
24
|
-
bridgetown (1.3.4)
|
|
25
|
-
bridgetown-builder (= 1.3.4)
|
|
26
|
-
bridgetown-core (= 1.3.4)
|
|
27
|
-
bridgetown-paginate (= 1.3.4)
|
|
28
|
-
bridgetown-builder (1.3.4)
|
|
29
|
-
bridgetown-core (= 1.3.4)
|
|
30
|
-
bridgetown-core (1.3.4)
|
|
31
|
-
activemodel (>= 6.0, < 8.0)
|
|
32
|
-
activesupport (>= 6.0, < 8.0)
|
|
33
|
-
addressable (~> 2.4)
|
|
34
|
-
amazing_print (~> 1.2)
|
|
35
|
-
colorator (~> 1.0)
|
|
36
|
-
csv (~> 3.2)
|
|
37
|
-
erubi (~> 1.9)
|
|
38
|
-
faraday (~> 2.0)
|
|
39
|
-
faraday-follow_redirects (~> 0.3)
|
|
40
|
-
hash_with_dot_access (~> 1.2)
|
|
41
|
-
i18n (~> 1.0)
|
|
42
|
-
kramdown (~> 2.1)
|
|
43
|
-
kramdown-parser-gfm (~> 1.0)
|
|
44
|
-
liquid (>= 5.0, < 5.5)
|
|
45
|
-
listen (~> 3.0)
|
|
46
|
-
rake (>= 13.0)
|
|
47
|
-
roda (~> 3.46)
|
|
48
|
-
rouge (>= 3.0, < 5.0)
|
|
49
|
-
serbea (~> 1.0)
|
|
50
|
-
thor (~> 1.1)
|
|
51
|
-
tilt (~> 2.0)
|
|
52
|
-
zeitwerk (~> 2.5)
|
|
53
|
-
bridgetown-paginate (1.3.4)
|
|
54
|
-
bridgetown-core (= 1.3.4)
|
|
55
|
-
colorator (1.1.0)
|
|
56
|
-
concurrent-ruby (1.3.5)
|
|
57
|
-
connection_pool (2.5.3)
|
|
58
|
-
csv (3.3.5)
|
|
59
|
-
drb (2.2.3)
|
|
60
|
-
erubi (1.13.1)
|
|
61
|
-
faraday (2.13.4)
|
|
62
|
-
faraday-net_http (>= 2.0, < 3.5)
|
|
63
|
-
json
|
|
64
|
-
logger
|
|
65
|
-
faraday-follow_redirects (0.3.0)
|
|
66
|
-
faraday (>= 1, < 3)
|
|
67
|
-
faraday-net_http (3.4.1)
|
|
68
|
-
net-http (>= 0.5.0)
|
|
69
|
-
ffi (1.17.2)
|
|
70
|
-
ffi (1.17.2-aarch64-linux-gnu)
|
|
71
|
-
ffi (1.17.2-aarch64-linux-musl)
|
|
72
|
-
ffi (1.17.2-arm-linux-gnu)
|
|
73
|
-
ffi (1.17.2-arm-linux-musl)
|
|
74
|
-
ffi (1.17.2-arm64-darwin)
|
|
75
|
-
ffi (1.17.2-x86-linux-gnu)
|
|
76
|
-
ffi (1.17.2-x86-linux-musl)
|
|
77
|
-
ffi (1.17.2-x86_64-darwin)
|
|
78
|
-
ffi (1.17.2-x86_64-linux-gnu)
|
|
79
|
-
ffi (1.17.2-x86_64-linux-musl)
|
|
80
|
-
hash_with_dot_access (1.2.0)
|
|
81
|
-
activesupport (>= 5.0.0, < 8.0)
|
|
82
|
-
i18n (1.14.7)
|
|
83
|
-
concurrent-ruby (~> 1.0)
|
|
84
|
-
json (2.13.2)
|
|
85
|
-
kramdown (2.5.1)
|
|
86
|
-
rexml (>= 3.3.9)
|
|
87
|
-
kramdown-parser-gfm (1.1.0)
|
|
88
|
-
kramdown (~> 2.0)
|
|
89
|
-
liquid (5.4.0)
|
|
90
|
-
listen (3.9.0)
|
|
91
|
-
rb-fsevent (~> 0.10, >= 0.10.3)
|
|
92
|
-
rb-inotify (~> 0.9, >= 0.9.10)
|
|
93
|
-
logger (1.7.0)
|
|
94
|
-
minitest (5.25.5)
|
|
95
|
-
net-http (0.6.0)
|
|
96
|
-
uri
|
|
97
|
-
nio4r (2.7.4)
|
|
98
|
-
public_suffix (6.0.2)
|
|
99
|
-
puma (6.6.1)
|
|
100
|
-
nio4r (~> 2.0)
|
|
101
|
-
rack (3.2.0)
|
|
102
|
-
rake (13.3.0)
|
|
103
|
-
rb-fsevent (0.11.2)
|
|
104
|
-
rb-inotify (0.11.1)
|
|
105
|
-
ffi (~> 1.0)
|
|
106
|
-
rexml (3.4.1)
|
|
107
|
-
roda (3.95.0)
|
|
108
|
-
rack
|
|
109
|
-
rouge (4.6.0)
|
|
110
|
-
securerandom (0.4.1)
|
|
111
|
-
serbea (1.0.1)
|
|
112
|
-
activesupport (>= 6.0)
|
|
113
|
-
erubi (>= 1.10)
|
|
114
|
-
tilt (~> 2.0)
|
|
115
|
-
thor (1.4.0)
|
|
116
|
-
tilt (2.6.1)
|
|
117
|
-
tzinfo (2.0.6)
|
|
118
|
-
concurrent-ruby (~> 1.0)
|
|
119
|
-
uri (1.0.3)
|
|
120
|
-
zeitwerk (2.7.3)
|
|
121
|
-
|
|
122
|
-
PLATFORMS
|
|
123
|
-
aarch64-linux-gnu
|
|
124
|
-
aarch64-linux-musl
|
|
125
|
-
arm-linux-gnu
|
|
126
|
-
arm-linux-musl
|
|
127
|
-
arm64-darwin
|
|
128
|
-
ruby
|
|
129
|
-
x86-linux-gnu
|
|
130
|
-
x86-linux-musl
|
|
131
|
-
x86_64-darwin
|
|
132
|
-
x86_64-linux-gnu
|
|
133
|
-
x86_64-linux-musl
|
|
134
|
-
|
|
135
|
-
DEPENDENCIES
|
|
136
|
-
bridgetown (~> 1.3.4)
|
|
137
|
-
puma (< 7)
|
|
138
|
-
|
|
139
|
-
BUNDLED WITH
|
|
140
|
-
2.6.9
|
data/docs-site/Rakefile
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# Welcome to Bridgetown!
|
|
2
|
-
#
|
|
3
|
-
# This config file is for settings that affect your whole site, values
|
|
4
|
-
# which you are expected to set up once and rarely edit after that.
|
|
5
|
-
|
|
6
|
-
url: "https://vicentereig.github.io"
|
|
7
|
-
base_path: "/sorbet-baml"
|
|
8
|
-
|
|
9
|
-
permalink: "/:title/"
|
|
10
|
-
template_engine: liquid
|
|
11
|
-
|
|
12
|
-
# Meta information
|
|
13
|
-
title: "sorbet-baml"
|
|
14
|
-
description: "Ruby-idiomatic conversion from Sorbet types to BAML for efficient LLM prompting"
|
|
15
|
-
author: "Vicente Reig"
|
data/docs-site/config/puma.rb
DELETED
data/docs-site/config.ru
DELETED
data/docs-site/esbuild.config.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
const esbuildOptions = {
|
|
2
|
-
target: "es2020",
|
|
3
|
-
minify: process.argv.includes("--minify"),
|
|
4
|
-
bundle: true,
|
|
5
|
-
entryPoints: ["frontend/javascript/index.js"],
|
|
6
|
-
outdir: "output/_bridgetown/static",
|
|
7
|
-
entryNames: "index.[hash]",
|
|
8
|
-
publicPath: "/sorbet-baml/_bridgetown/static",
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
module.exports = esbuildOptions
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import "../styles/index.css"
|
|
2
|
-
import Plausible from 'plausible-tracker'
|
|
3
|
-
|
|
4
|
-
// Initialize Plausible Analytics
|
|
5
|
-
const plausible = Plausible({
|
|
6
|
-
domain: 'vicentereig.github.io'
|
|
7
|
-
})
|
|
8
|
-
|
|
9
|
-
// Track page views automatically
|
|
10
|
-
plausible.trackPageview()
|
|
11
|
-
|
|
12
|
-
// Mobile menu toggle
|
|
13
|
-
document.addEventListener('DOMContentLoaded', function() {
|
|
14
|
-
const mobileMenuButton = document.getElementById('mobile-menu-button');
|
|
15
|
-
const mobileMenu = document.getElementById('mobile-menu');
|
|
16
|
-
|
|
17
|
-
if (mobileMenuButton && mobileMenu) {
|
|
18
|
-
mobileMenuButton.addEventListener('click', function() {
|
|
19
|
-
mobileMenu.classList.toggle('hidden');
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
});
|