ARG-Kit.psm1

# Get the module root path
$ModuleRoot = $PSScriptRoot

# Load private functions
$PrivateFunctions = Get-ChildItem -Path "$ModuleRoot\Private\*.ps1" -Recurse -ErrorAction SilentlyContinue
foreach ($Function in $PrivateFunctions) {
    try {
        . $Function.FullName
        Write-Verbose "Loaded private function: $($Function.BaseName)"
    }
    catch {
        Write-Error "Failed to load private function $($Function.BaseName): $($_.Exception.Message)"
    }
}

# Load public functions
$PublicFunctions = Get-ChildItem -Path "$ModuleRoot\Public\*.ps1" -Recurse -ErrorAction SilentlyContinue
$ExportedFunctions = @()

foreach ($Function in $PublicFunctions) {
    try {
        . $Function.FullName
        $ExportedFunctions += $Function.BaseName
        Write-Verbose "Loaded public function: $($Function.BaseName)"
    }
    catch {
        Write-Error "Failed to load public function $($Function.BaseName): $($_.Exception.Message)"
    }
}

# Export public functions
if ($ExportedFunctions.Count -gt 0) {
    Export-ModuleMember -Function $ExportedFunctions
    Write-Verbose "Exported functions: $($ExportedFunctions -join ', ')"
} else {
    Write-Warning "No public functions found to export"
}