Normandy.LLM.Json.SchemaTranslator (normandy v1.3.0)

View Source

Translates a Normandy schema specification (__schema__(:specification)) into a JSON Schema suitable for Anthropic structured outputs (constrained decoding): string keys, recursive additionalProperties: false, only the supported keywords. Returns {:incompatible, reason} for schemas constrained decoding cannot express (open :map objects, runaway nesting), so the caller can fall back to the legacy path.

Summary

Functions

translate(spec)

@spec translate(map()) :: {:ok, map()} | {:incompatible, term()}