feat: add typed_struct_to_schema for converting Ash TypedStructs to NimbleOptions schema#3
Merged
pcharbon70 merged 2 commits intoagentjido:mainfrom Mar 18, 2026
Conversation
Ash.Type.Atom fields with one_of constraints are now converted to
{:in, string_values} directly by ash_type_to_nimble_options, so all
callers benefit from enum constraint handling automatically.
…imbleOptions schema Converts Ash TypedStruct modules (used for structured LLM output) to NimbleOptions keyword list schemas that Jido actions accept directly. This enables using Ash TypedStructs as the single source of truth for both Elixir type validation and LLM structured output schemas. Features: - typed_struct_to_schema/1 converts a TypedStruct module to keyword schema - Preserves field descriptions, required status, and defaults
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Converts Ash TypedStruct modules (used for structured LLM output) to
NimbleOptions keyword list schemas that Jido actions accept directly.
This enables using Ash TypedStructs as the single source of truth for both
Elixir type validation and LLM structured output schemas.
Features:
Depends on #2