DotForge.psd1

@{
    ModuleVersion     = '0.6.0'
    GUID              = '160e0d4a-5e2d-4c49-9ec2-562fbdb72b71'
    Author            = 'Randy W. Sims'
    CompanyName       = ''
    Copyright         = '(c) Randy W. Sims. All rights reserved.'
    Description       = 'Framework for registering and configuring CLI tools in a PowerShell profile — XDG paths, PATH management, fzf pickers, and aliases.'
    PowerShellVersion    = '7.2'
    CompatiblePSEditions = @('Core')
    RootModule           = 'DotForge.psm1'
    FunctionsToExport = @(
        # Layer 1 — Core Primitives
        'Add-DFToPath',
        'New-DFDirectory',
        'Invoke-DFPicker',
        'Invoke-DFWithPager',
        # Layer 2 — Tool Registry
        'Get-DFTool',
        'Find-DFTool',
        'Register-DFTool',
        'Complete-DFToolSetup',
        # Layer 3 — Tool Operations
        'Initialize-DFEnvironment',
        'Install-DFTool',
        'New-DFShim',
        # General Helpers — Help & Discovery
        'Invoke-DFHelp',
        'Show-DFCliHelp',
        'Show-DFCliHelpPaged',
        'Select-DFCommand',
        'Select-DFVerb',
        'Select-DFModule',
        'Select-DFHelpTopic',
        # General Helpers — Navigation
        'Set-DFLocationUp',
        'New-DFDirectoryAndSet',
        'Select-DFLocation',
        # General Helpers — File System
        'New-DFFile',
        'Get-DFWhich',
        'Open-DFItem',
        # General Helpers — Process
        'Select-DFProcess',
        'Get-DFTopProcess',
        # General Helpers — Environment & Profile
        'Get-DFEnv',
        'Get-DFPath',
        'Select-DFEnvVar',
        'Edit-DFProfile',
        'Invoke-DFProfileReload',
        # General Helpers — Clipboard
        'Copy-DFToClipboard',
        'Get-DFFromClipboard',
        # General Helpers — Utility
        'New-DFUuid',
        # Catalog Info (trifle)
        'Find-DFPackage',
        'Update-DFPackageCache',
        'Select-DFPackage',
        'Get-DFCategoryList',
        'Update-DFCategoryDb',
        'Update-DFToolIdentityGuide',
        'Get-DFCommandConflict'
    )
    CmdletsToExport   = @()
    VariablesToExport = @()
    AliasesToExport   = @(
        'pg',
        'hm', 'clh', 'clhp', 'fcmd', 'fverb', 'fmod', 'fh',
        'up', 'mkcd', 'fcd',
        'touch', 'which', 'open',
        'fps', 'top',
        'env', 'path', 'fenv', 'ep', 'reload',
        'yank', 'paste',
        'uuidgen',
        'trifle', 'ftrifle', 'tcats'
    )
    PrivateData       = @{
        PSData = @{
            Tags         = @('CLI', 'Tools', 'Profile', 'XDG', 'fzf', 'Configuration', 'Windows', 'Shim', 'PSReadLine')
            LicenseUri   = 'https://github.com/simsrw73/DotForge/blob/main/LICENSE'
            ProjectUri   = 'https://github.com/simsrw73/DotForge'
            IconUri      = 'https://raw.githubusercontent.com/simsrw73/DotForge/main/assets/dotforge1.png'
            Prerelease   = 'preview'
            ReleaseNotes = 'Preview release. New in 0.6.0: a 2026-09-06 zsh-parity pass fixed eza''s ll/la aliases and fzf''s match mode/previews to mirror a reference zsh config, defaulted PSReadLine to Emacs edit mode with history relocated under XDG_STATE_HOME (size 10000), and added three tools -- rustup, vcpkg, and direnv (PowerShell hook via LocationChangedAction, needs PS 7.2+). Startup performance: command-output caching for carapace/zoxide/mdcat/scoop-search (~200ms), Test-DFToolAvailable memoization (~44% faster Register-DFTool -All), and background Import-Module pre-warming for module-type tools like PSFzf/Terminal-Icons/posh-git (~77% faster real import). New tool-setup-lifecycle primitive (Tools/<name>.setup.ps1) for one-time persistent setup -- first used to make delta''s catppuccin theme actually render (previously a silent no-op) via a git-config include line, and to stop mdv''s config from being silently rewritten after deletion. New vivid (LS_COLORS theming) and bat (BAT_THEME) plugins; $DFConfig.Defaults lets tools compete for a role (lsd added alongside eza for "listing"). New author-time tool-conformance harness verifies tools actually honor their configuration. Canonical path handling (ConvertTo-DFPath) fixes mixed \/ separators in XDG-derived env vars. New mdcat/mdv markdown viewers; glow''s XDG config now actually takes effect via a wrapper function. Theme resolution is now driven by a shared $DFConfig[''Theme''] key with per-tool overrides and per-tool themeMap translation. The copy alias is renamed to yank (collided with PowerShell''s builtin); all general-helper aliases are now genuinely module-owned. Also fixes a $DFConfig = $null crash across five code paths, real SQL parameter binding in the winget catalog search, New-DFShim resolving relative arguments against the wrong directory, and stale caching in Import-DFToolDb/Resolve-DFPackageManager. Carries forward: fuzzy fzf package-manager pickers (winget/scoop/choco), the completion stack (PSReadLine + Carapace + PSFzf + inshellisense), trifle/ftrifle multi-catalog package discovery, fnm per-directory Node switching, and dependency-ordered registration via dependsOn.'
        }
    }
}