#!/usr/bin/env nu # Generate agent configuration JSON files from Nickel definitions # Requires: nickel CLI installed def main [] { let script_dir = (get-env PWD | path split | drop 1 | path join) let config_dir = $script_dir / config / agents let output_dir = $config_dir / generated print $"Generating agent configurations from Nickel definitions..." print $"Input: ($config_dir)" print $"Output: ($output_dir)" # Create output directory mkdir -p $output_dir # List all agent definition files let agents = ( ls ($config_dir | path join "*.ncl") | filter { |it| $it.name != "schema.ncl" } | each { |it| $it.name | str replace ".ncl" "" } ) print $"\nFound ($agents | length) agent definitions:" # Generate JSON for each agent for agent in $agents { print $" Generating ($agent)..." let input_file = $config_dir | path join $"($agent).ncl" let output_file = $output_dir | path join $"($agent).json" # Use nickel to export to JSON if (which nickel | is-empty) { print $" ⚠ nickel command not found - skipping" } else { nickel export $input_file | save -f $output_file print $" ✓ Generated ($output_file)" } } print "\nAgent configuration generation complete!" } main