wpl_ai

Hex.pmCILicense

Reference Elixir compiler for WPL-AI, the human and AI-friendly authoring language for wellness plans. Parses WPL-AI DSL source into canonical WPL JSON.

Installation

def deps do
  [
    {:wpl_ai, "~> 1.0"}
  ]
end

Usage

source = """
PLAN "Upper Body Beginner"
TYPE workout
DIFFICULTY beginner

PHASES
  PHASE "Foundation" (4 weeks):
    WEEK 1:
      DAY Monday training 45m:
        main straight_sets:
          push_up 3x8..12 target 10 rpe 7
"""

{:ok, json} = WplAi.compile(source)
# json["plan"]["name"]  => "Upper Body Beginner"
# json["version"]       => "1.0.0"

You can also access the pipeline steps individually:

{:ok, ast}  = WplAi.parse(source)     # WPL-AI text → AST
{:ok, json} = WplAi.compile(ast)      # AST → WPL JSON map
{:ok, text} = WplAi.decompile(json)   # WPL JSON → WPL-AI text (round-trip)

Status

Version 1.0.0 — initial extract from gymbile_backend. The compiler emits WPL schema 1.0.0. Phase 2 will bring it to 1.6.0 parity with @gymbile/wpl-ai.

License

Apache-2.0.

"WPL" and "Wellness Plan Language" are trademarks of Gymbile.