Skip to content

Add baml-cli generate and integ-tests#3315

Merged
imalsogreg merged 6 commits intocanaryfrom
greg/baml-cli-generate
Apr 2, 2026
Merged

Add baml-cli generate and integ-tests#3315
imalsogreg merged 6 commits intocanaryfrom
greg/baml-cli-generate

Conversation

@imalsogreg
Copy link
Copy Markdown
Contributor

@imalsogreg imalsogreg commented Mar 31, 2026

  • Connect baml-cli to PPIR and baml_python_codegen
  • Type-simplification for codegen
  • integ-tests for very simple case

Summary by CodeRabbit

Release Notes

  • New Features

    • Added baml generate CLI command to generate Python client code from BAML definitions
    • Generated Python clients now support both synchronous and asynchronous function calls
    • Added call options support for configurable collectors and abort controllers in function invocations
  • Integration Tests

    • Added end-to-end tests demonstrating client generation and LLM function execution

@vercel
Copy link
Copy Markdown

vercel bot commented Mar 31, 2026

Deployment failed with the following error:

You must set up Two-Factor Authentication before accessing this team.

View Documentation: https://vercel.com/docs/two-factor-authentication

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 31, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR introduces a new generate subcommand to the BAML CLI for generating Python client code from BAML definitions. It validates BAML files, discovers generator configurations with output options, and produces full Python client libraries with synchronous and asynchronous interfaces. Supporting infrastructure includes compiler HIR extensions to capture generator metadata, a new codegen type conversion layer, and enhanced Python runtime call handling via options and call managers.

Changes

Cohort / File(s) Summary
CLI Generate Subcommand
baml_cli/Cargo.toml, baml_cli/src/commands.rs, baml_cli/src/lib.rs
Adds baml_codegen_python workspace dependency and integrates new Generate command variant that dispatches to GenerateArgs::run().
Generate Implementation
baml_cli/src/generate.rs
New module implementing CLI argument parsing (--from, --output/-o), BAML file discovery/compilation, generator configuration discovery, and orchestration of Python code generation with file I/O and diagnostic handling.
Python Code Generation Backend
baml_codegen_python/src/lib.rs, baml_codegen_python/src/objects.rs, baml_codegen_python/src/objects/render/function.rs
Replaces stub file generation with full Python client source (sync_client.py, async_client.py). Adds BamlSyncClient/BamlAsyncClient classes with per-function method implementations using new call manager infrastructure.
Python Runtime Infrastructure
baml_codegen_python/src/_askama/runtime.py, baml_codegen_python/src/_askama/globals.py
New runtime.py module provides BamlCallOptions TypedDict and DoNotUseDirectlyCallManager for managing call options, collectors, and abort controllers. Removes eager environment copying from globals initialization.
Type Handling
baml_codegen_python/src/ty.rs
Updates type name derivation to strip trailing $stream suffix for stream types.
Compiler HIR Generator Support
baml_compiler2_hir/src/builder.rs, baml_compiler2_hir/src/item_tree.rs
Extends generator allocation to capture full AST definition and extract config_items (key-value pairs) into new GeneratorConfigItem struct stored in Generator.
Stream Expansion Logic
baml_compiler2_ppir/src/expand.rs
Modifies stream type expansion for classes to check @@stream.done attribute; when set, returns non-stream type with InProgress::NotAllowed instead of stream variant.
Object Pool Codegen Bridge
baml_project/Cargo.toml, baml_project/src/lib.rs, baml_project/src/client_codegen.rs
New client_codegen module provides build_object_pool() to convert compiler2 HIR/TIR data into language-codegen-ready types, handling classes, enums, type aliases, and declarative LLM functions with union simplification and optional desugaring.
Python Bridge Export
bridge_python/src/runtime.rs
Exports BamlRuntime.initialize to Python as from_files via #[pyo3(name = "from_files")].
Documentation & Test Fixtures
baml_type/src/simplify_sap.rs, integ_tests/baml_src/*
Updates Rustdoc example code fences from jsx to baml. Adds integration test BAML definitions (clients, generators, functions, types) for basic extraction, directory-scoped, and namespace tests.
Python Integration Tests
integ_tests/python/pyproject.toml, integ_tests/python/.gitignore, integ_tests/python/tests/*
New Python test project with pytest configuration, dependency setup (baml-py, pydantic, pytest-asyncio), and integration tests validating generated sync/async client invocations and type schemas. Includes gitignore for generated baml_client/ directory.
Integration Test Runner
integ_tests/run.sh
Bash script orchestrating build (baml-cli), Python client generation, bridge build via maturin, and pytest execution.

Sequence Diagram

sequenceDiagram
    actor User
    participant CLI as baml-cli generate
    participant Compiler as BAML Compiler
    participant Codegen as Python Codegen
    participant Codegen_Pool as ObjectPool Builder
    participant Files as File System

    User->>CLI: Run generate --from --output
    CLI->>Compiler: Load & compile .baml files
    Compiler->>Compiler: Validate, type-check
    Compiler->>CLI: Return diagnostics + HIR
    alt Errors present
        CLI->>Files: Write diagnostics to stderr
        CLI->>User: Exit with error
    end
    
    CLI->>Compiler: Discover generator blocks
    Compiler->>CLI: Return generators + config
    
    alt No generators found
        CLI->>Files: Print example config
        CLI->>User: Exit with error
    end
    
    CLI->>Codegen_Pool: Build ObjectPool from HIR
    Codegen_Pool->>Codegen_Pool: Convert classes/enums/functions
    Codegen_Pool->>CLI: Return ObjectPool
    
    loop For each generator
        CLI->>Codegen: Generate Python code (codegen_python)
        Codegen->>Codegen: Render sync_client.py, async_client.py, runtime.py
        Codegen->>CLI: Return file map
        CLI->>Files: Create output directory
        CLI->>Files: Write .py files
    end
    
    CLI->>User: Print summary, exit success
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • baml-cli --test in baml_language #3128: Concurrent CLI command addition that modifies the same baml_cli commands routing and Cargo.toml dependency surface, requiring coordination on command dispatch patterns.
  • baml-language: hir->ppir->hir in compiler2 #3227: Modifies the HIR generator allocation pathway (SemanticIndexBuilder::lower_generator and ItemTree::alloc_generator) that this PR also updates to pass full generator AST instead of just the name.
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately captures the primary changes: adding a generate subcommand to baml-cli and introducing integration tests.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch greg/baml-cli-generate

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq bot commented Mar 31, 2026

Merging this PR will not alter performance

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

✅ 15 untouched benchmarks
⏩ 98 skipped benchmarks1


Comparing greg/baml-cli-generate (6442550) with canary (98e109d)2

Open in CodSpeed

Footnotes

  1. 98 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

  2. No successful run was found on canary (9db2347) during the generation of this report, so 98e109d was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@imalsogreg imalsogreg force-pushed the greg/baml-cli-generate branch from 1091e84 to ebddba9 Compare March 31, 2026 20:41
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 31, 2026

Binary size checks passed

7 passed

Artifact Platform Gzip Baseline Delta Status
bridge_cffi Linux 5.4 MB 5.7 MB -255.5 KB (-4.5%) OK
bridge_cffi-stripped Linux 4.0 MB 4.3 MB -258.8 KB (-6.0%) OK
bridge_cffi macOS 4.5 MB 4.6 MB -160.5 KB (-3.5%) OK
bridge_cffi-stripped macOS 3.3 MB 3.5 MB -162.3 KB (-4.7%) OK
bridge_cffi Windows 4.4 MB 4.6 MB -187.3 KB (-4.1%) OK
bridge_cffi-stripped Windows 3.4 MB 3.5 MB -188.9 KB (-5.3%) OK
bridge_wasm WASM 2.9 MB 3.0 MB -43.0 KB (-1.4%) OK

Generated by cargo size-gate · workflow run

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 12


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 6ff6c72c-76e5-47d4-8d64-82a65a1d3820

📥 Commits

Reviewing files that changed from the base of the PR and between 7b5f543 and 1091e84.

⛔ Files ignored due to path filters (2)
  • baml_language/Cargo.lock is excluded by !**/*.lock
  • baml_language/integ_tests/python/uv.lock is excluded by !**/*.lock
📒 Files selected for processing (31)
  • baml_language/crates/baml_cli/Cargo.toml
  • baml_language/crates/baml_cli/src/commands.rs
  • baml_language/crates/baml_cli/src/generate.rs
  • baml_language/crates/baml_cli/src/lib.rs
  • baml_language/crates/baml_codegen_python/src/_askama/globals.py
  • baml_language/crates/baml_codegen_python/src/_askama/runtime.py
  • baml_language/crates/baml_codegen_python/src/lib.rs
  • baml_language/crates/baml_codegen_python/src/objects.rs
  • baml_language/crates/baml_codegen_python/src/objects/render/function.rs
  • baml_language/crates/baml_codegen_python/src/ty.rs
  • baml_language/crates/baml_codegen_types/Cargo.toml
  • baml_language/crates/baml_codegen_types/src/from_tir.rs
  • baml_language/crates/baml_codegen_types/src/lib.rs
  • baml_language/crates/baml_compiler2_hir/src/builder.rs
  • baml_language/crates/baml_compiler2_hir/src/item_tree.rs
  • baml_language/crates/baml_compiler2_ppir/src/expand.rs
  • baml_language/crates/baml_type/src/simplify_sap.rs
  • baml_language/crates/bridge_python/src/runtime.rs
  • baml_language/integ_tests/baml_src/clients.baml
  • baml_language/integ_tests/baml_src/generators.baml
  • baml_language/integ_tests/baml_src/test001_basic.baml
  • baml_language/integ_tests/python/.gitignore
  • baml_language/integ_tests/python/baml_integ_tests.egg-info/PKG-INFO
  • baml_language/integ_tests/python/baml_integ_tests.egg-info/SOURCES.txt
  • baml_language/integ_tests/python/baml_integ_tests.egg-info/dependency_links.txt
  • baml_language/integ_tests/python/baml_integ_tests.egg-info/requires.txt
  • baml_language/integ_tests/python/baml_integ_tests.egg-info/top_level.txt
  • baml_language/integ_tests/python/pyproject.toml
  • baml_language/integ_tests/python/tests/__init__.py
  • baml_language/integ_tests/python/tests/test_001_basic_happy_path.py
  • baml_language/integ_tests/run.sh
💤 Files with no reviewable changes (1)
  • baml_language/crates/baml_codegen_python/src/_askama/globals.py

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

♻️ Duplicate comments (1)
baml_language/crates/baml_cli/src/commands.rs (1)

59-60: 🛠️ Refactor suggestion | 🟠 Major

Add unit tests for Generate parsing and dispatch path.

This wiring still lacks unit coverage in the crate for (1) Clap parsing into Commands::Generate and (2) RuntimeCli::run() dispatching Generate(args) to args.run().

As per coding guidelines: "**/*.rs: Prefer writing Rust unit tests over integration tests where possible".

Also applies to: 117-117


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: dea752fc-57ed-4edd-b223-27858a17e5fa

📥 Commits

Reviewing files that changed from the base of the PR and between 1091e84 and ebddba9.

⛔ Files ignored due to path filters (2)
  • baml_language/Cargo.lock is excluded by !**/*.lock
  • baml_language/integ_tests/python/uv.lock is excluded by !**/*.lock
📒 Files selected for processing (31)
  • baml_language/crates/baml_cli/Cargo.toml
  • baml_language/crates/baml_cli/src/commands.rs
  • baml_language/crates/baml_cli/src/generate.rs
  • baml_language/crates/baml_cli/src/lib.rs
  • baml_language/crates/baml_codegen_python/src/_askama/globals.py
  • baml_language/crates/baml_codegen_python/src/_askama/runtime.py
  • baml_language/crates/baml_codegen_python/src/lib.rs
  • baml_language/crates/baml_codegen_python/src/objects.rs
  • baml_language/crates/baml_codegen_python/src/objects/render/function.rs
  • baml_language/crates/baml_codegen_python/src/ty.rs
  • baml_language/crates/baml_codegen_types/Cargo.toml
  • baml_language/crates/baml_codegen_types/src/from_tir.rs
  • baml_language/crates/baml_codegen_types/src/lib.rs
  • baml_language/crates/baml_compiler2_hir/src/builder.rs
  • baml_language/crates/baml_compiler2_hir/src/item_tree.rs
  • baml_language/crates/baml_compiler2_ppir/src/expand.rs
  • baml_language/crates/baml_type/src/simplify_sap.rs
  • baml_language/crates/bridge_python/src/runtime.rs
  • baml_language/integ_tests/baml_src/clients.baml
  • baml_language/integ_tests/baml_src/generators.baml
  • baml_language/integ_tests/baml_src/test001_basic.baml
  • baml_language/integ_tests/python/.gitignore
  • baml_language/integ_tests/python/baml_integ_tests.egg-info/PKG-INFO
  • baml_language/integ_tests/python/baml_integ_tests.egg-info/SOURCES.txt
  • baml_language/integ_tests/python/baml_integ_tests.egg-info/dependency_links.txt
  • baml_language/integ_tests/python/baml_integ_tests.egg-info/requires.txt
  • baml_language/integ_tests/python/baml_integ_tests.egg-info/top_level.txt
  • baml_language/integ_tests/python/pyproject.toml
  • baml_language/integ_tests/python/tests/__init__.py
  • baml_language/integ_tests/python/tests/test_001_basic_happy_path.py
  • baml_language/integ_tests/run.sh
💤 Files with no reviewable changes (1)
  • baml_language/crates/baml_codegen_python/src/_askama/globals.py

@imalsogreg imalsogreg force-pushed the greg/baml-cli-generate branch from ebddba9 to 02ff29b Compare April 1, 2026 18:10
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
baml_language/crates/baml_codegen_python/src/objects/render/function.rs (1)

9-96: 🛠️ Refactor suggestion | 🟠 Major

Add Rust unit tests for the new renderer/coercion paths.

This file currently validates print_signature, but not print_sync_impl, print_async_impl, render_args_dict, or coercion behavior (especially nested class/enum returns). Please add focused unit tests here and run cargo test --lib for this Rust change.

As per coding guidelines, **/*.rs: "Prefer writing Rust unit tests over integration tests where possible" and "Always run cargo test --lib if you changed any Rust code".

♻️ Duplicate comments (1)
baml_language/crates/baml_cli/src/commands.rs (1)

59-61: ⚠️ Potential issue | 🟡 Minor

Add unit tests for generate command parse + dispatch wiring.

This introduces a new CLI path but doesn’t add unit coverage in the same area for RuntimeCli parsing to Commands::Generate and run() routing, which makes future regressions easier to miss.

As per coding guidelines, **/*.rs: "Prefer writing Rust unit tests over integration tests where possible".

Also applies to: 117-117


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 894821d3-cf68-4421-8865-eb5e16d25096

📥 Commits

Reviewing files that changed from the base of the PR and between ebddba9 and 02ff29b.

⛔ Files ignored due to path filters (3)
  • baml_language/Cargo.lock is excluded by !**/*.lock
  • baml_language/crates/baml_tests/snapshots/attr_disambiguation/baml_tests__attr_disambiguation__04_tir.snap is excluded by !**/*.snap
  • baml_language/crates/baml_tests/snapshots/stream_types/baml_tests__stream_types__04_tir.snap is excluded by !**/*.snap
📒 Files selected for processing (16)
  • baml_language/crates/baml_cli/src/commands.rs
  • baml_language/crates/baml_cli/src/generate.rs
  • baml_language/crates/baml_cli/src/lib.rs
  • baml_language/crates/baml_codegen_python/src/objects/render/function.rs
  • baml_language/crates/baml_codegen_types/Cargo.toml
  • baml_language/crates/baml_codegen_types/src/from_tir.rs
  • baml_language/crates/baml_codegen_types/src/lib.rs
  • baml_language/integ_tests/baml_src/ns_test003/functions.baml
  • baml_language/integ_tests/baml_src/ns_test003/types.baml
  • baml_language/integ_tests/baml_src/test001_basic.baml
  • baml_language/integ_tests/baml_src/test002_directory/functions.baml
  • baml_language/integ_tests/baml_src/test002_directory/types.baml
  • baml_language/integ_tests/python/pyproject.toml
  • baml_language/integ_tests/python/tests/test_001_basic_happy_path.py
  • baml_language/integ_tests/python/tests/test_002_directory_happy_path.py
  • baml_language/integ_tests/python/tests/test_003_namespace_happy_path.py

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: b46ca0bb-b001-448f-ad92-754f36270cd0

📥 Commits

Reviewing files that changed from the base of the PR and between 02ff29b and 0f5d34c.

⛔ Files ignored due to path filters (1)
  • baml_language/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (9)
  • baml_language/crates/baml_cli/Cargo.toml
  • baml_language/crates/baml_cli/src/generate.rs
  • baml_language/crates/baml_codegen_python/src/lib.rs
  • baml_language/crates/baml_compiler2_hir/src/item_tree.rs
  • baml_language/crates/baml_compiler2_ppir/src/expand.rs
  • baml_language/crates/baml_project/Cargo.toml
  • baml_language/crates/baml_project/src/from_tir.rs
  • baml_language/crates/baml_project/src/lib.rs
  • baml_language/integ_tests/python/.gitignore

@imalsogreg imalsogreg force-pushed the greg/baml-cli-generate branch from 0f5d34c to a313e9d Compare April 1, 2026 19:27
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (4)
baml_language/crates/baml_project/src/client_codegen.rs (2)

41-44: ⚠️ Potential issue | 🟠 Major

Preserve the full BAML namespace in cg::Name.

These conversions keep only the leaf name plus {Types, StreamTypes}, so foo.User and bar.User collide in ObjectPool and the later insert wins. Thread pkg_info.namespace_path / the QualifiedTypeName segments through codegen names instead of inferring namespace only from the $stream suffix.

Based on learnings: "bare names resolve only within the declaring file's namespace (root files in root, ns_llm files in llm, etc.)."

Also applies to: 75-78, 107-110, 158-161, 181-187, 241-257


220-370: 🧹 Nitpick | 🔵 Trivial

Add Rust unit tests for the conversion/simplification helpers.

convert_tir_to_codegen_ty, simplify_union, and namespace_for are pure logic with edge cases that the new simple integration coverage will not pin down. A small table of unit tests here would catch regressions in nested unions, null ordering/dedup, and namespace routing.

As per coding guidelines: "Prefer writing Rust unit tests over integration tests where possible".

baml_language/crates/baml_cli/src/generate.rs (2)

86-89: ⚠️ Potential issue | 🟡 Minor

The sample output_dir resolves one level too deep.

Line 199 already appends baml_client, so the printed example output_dir "../baml_client" generates into <...>/baml_client/baml_client. Either show output_dir ".." in the help text or stop appending the suffix in discover_generators().

Also applies to: 193-200


261-267: ⚠️ Potential issue | 🟠 Major

Keep package-level b synchronous.

from baml_client import b is the sync import contract in the repo examples. Exporting async_b as the default turns existing sync call sites into coroutine-returning calls.

♻️ Suggested fix
 from .sync_client import b as sync_b
 from .async_client import b as async_b
 
-# Default client is async.
-b = async_b
+# Default client is sync.
+b = sync_b

Based on learnings: "In Python, import the autogenerated BAML client using 'from baml_client import b' for synchronous calls or 'from baml_client.async_client import b as async_b' for asynchronous calls".


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: fb1f5bf1-96c1-4691-8a08-ad72ef435ce9

📥 Commits

Reviewing files that changed from the base of the PR and between 0f5d34c and a313e9d.

⛔ Files ignored due to path filters (1)
  • baml_language/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (9)
  • baml_language/crates/baml_cli/Cargo.toml
  • baml_language/crates/baml_cli/src/generate.rs
  • baml_language/crates/baml_codegen_python/src/lib.rs
  • baml_language/crates/baml_compiler2_hir/src/item_tree.rs
  • baml_language/crates/baml_compiler2_ppir/src/expand.rs
  • baml_language/crates/baml_project/Cargo.toml
  • baml_language/crates/baml_project/src/client_codegen.rs
  • baml_language/crates/baml_project/src/lib.rs
  • baml_language/integ_tests/python/.gitignore

@imalsogreg imalsogreg force-pushed the greg/baml-cli-generate branch 4 times, most recently from 3369936 to 83408d6 Compare April 1, 2026 21:53
@imalsogreg imalsogreg force-pushed the greg/baml-cli-generate branch 3 times, most recently from 0772fc9 to 9c34cf6 Compare April 2, 2026 17:51
@imalsogreg imalsogreg force-pushed the greg/baml-cli-generate branch from 9c34cf6 to 6442550 Compare April 2, 2026 18:00
@imalsogreg imalsogreg enabled auto-merge April 2, 2026 18:28
@imalsogreg imalsogreg added this pull request to the merge queue Apr 2, 2026
Merged via the queue into canary with commit f749248 Apr 2, 2026
41 of 43 checks passed
@imalsogreg imalsogreg deleted the greg/baml-cli-generate branch April 2, 2026 19:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant