PSPredictor.psm1

#Requires -Version 7.0

<#
.SYNOPSIS
    PSPredictor - PowerShell Universal CLI Predictor

.DESCRIPTION
    Comprehensive auto-completion and intelligent prediction for popular command-line tools in PowerShell.
    Provides enhanced tab completion for Git, Docker, NPM, kubectl, Azure CLI, AWS CLI, and many more tools.
    
    This modular version is designed for PowerShell 7+ with cross-platform compatibility.

.AUTHOR
    Sarin Na Wangkanai

.VERSION
    1.3.0

.LINK
    https://github.com/wangkanai/PSPredictor
#>


#region Module Initialization

# Get the module root path
$ModuleRoot = $PSScriptRoot

# Import configuration and core functionality
Write-Verbose "Loading PSPredictor configuration..."
. (Join-Path $ModuleRoot 'Private' 'Config.ps1')

# Import all public functions
Write-Verbose "Loading public functions..."
$PublicFunctions = @()
Get-ChildItem -Path (Join-Path $ModuleRoot 'Public') -Filter '*.ps1' | ForEach-Object {
    Write-Verbose "Loading function: $($_.BaseName)"
    . $_.FullName
    $PublicFunctions += $_.BaseName
}

# Import all completion providers
Write-Verbose "Loading completion providers..."
Get-ChildItem -Path (Join-Path $ModuleRoot 'Completions') -Filter '*.ps1' | ForEach-Object {
    Write-Verbose "Loading completion provider: $($_.BaseName)"
    . $_.FullName
}

#endregion

#region Module Initialization

# Auto-install on import if enabled
if ($script:PSPredictorConfig.Enabled) {
    # Module loaded silently - use Install-PSPredictor to enable completions
}

#endregion

#region Export Module Members

# Set up aliases
Set-Alias -Name 'pspredict' -Value 'Install-PSPredictor'
Set-Alias -Name 'psp' -Value 'Get-PSPredictorTools'

# Export all public functions
Export-ModuleMember -Function $PublicFunctions

# Export aliases
Export-ModuleMember -Alias @('pspredict', 'psp')

#endregion

Write-Verbose "PSPredictor module loaded successfully (modular version)"