KlippyCLI.psd1

@{
    # Script module file associated with this manifest
    RootModule = 'KlippyCLI.psm1'

    # Version number of this module
    ModuleVersion = '0.1.0'

    # Supported PSEditions
    CompatiblePSEditions = @('Core')

    # ID used to uniquely identify this module
    GUID = 'bc0df662-16ff-41e4-987b-541ddfd29dfc'

    # Author of this module
    Author = 'Carlos Perez'

    # Company or vendor of this module
    CompanyName = 'Dark Operator'

    # Copyright statement for this module
    Copyright = '(c) 2025 Carlos Perez. All rights reserved.'

    # Description of the functionality provided by this module
    Description = 'PowerShell module for managing Klipper 3D printers via the Moonraker API. Supports multi-printer configuration, print management, file operations, and real-time monitoring.'

    # Minimum version of the PowerShell engine required by this module
    PowerShellVersion = '7.0'

    # Functions to export from this module - updated as public functions are added
    FunctionsToExport = @(
        # Printer Registry (Epic A)
        'Add-KlippyPrinter',
        'Get-KlippyPrinter',
        'Remove-KlippyPrinter',
        'Set-KlippyPrinter',
        'Test-KlippyPrinterConnection',
        # Printer Management (Epic C)
        'Get-KlippyStatus',
        'Get-KlippyObject',
        'Invoke-KlippyHome',
        'Invoke-KlippyGcode',
        # Wait Commands (Epic D)
        'Wait-KlippyReady',
        'Wait-KlippyHomed',
        'Wait-KlippyHeaterTemperature',
        'Wait-KlippyPrintStarted',
        'Wait-KlippyPrintFinished',
        # Print Management (Epic E)
        'Start-KlippyPrint',
        'Suspend-KlippyPrint',
        'Resume-KlippyPrint',
        'Stop-KlippyPrint',
        'Get-KlippyPrintJob',
        # File Management (Epic F)
        'Get-KlippyGcodeItem',
        'New-KlippyGcodeFolder',
        'Remove-KlippyGcodeItem',
        'Move-KlippyGcodeItem',
        'Copy-KlippyGcodeItem',
        'Send-KlippyGcodeFile',
        'Save-KlippyGcodeFile',
        # Config & Logs (Epic G)
        'Get-KlippyConfigFile',
        'Save-KlippyConfigFile',
        'Get-KlippyLogFile',
        'Save-KlippyLogFile',
        'Save-KlippyKlippyLog',
        'Save-KlippyMoonrakerLog',
        # System Management (Epic H)
        'Get-KlippyServerInfo',
        'Get-KlippyMoonrakerInfo',
        'Get-KlippyMachineInfo',
        'Get-KlippyNetworkInfo',
        'Get-KlippyServiceStatus',
        'Get-KlippyUsbDevice',
        'Get-KlippySerialDevice',
        'Get-KlippyFile',
        'Restart-KlippyService',
        # Interactive Console (Epic J)
        'Enter-KlippyConsole',
        # Printer Objects (Epic K)
        'Get-KlippyFan',
        'Get-KlippyExtruder',
        'Get-KlippyStepper',
        'Get-KlippyToolhead',
        'Get-KlippyHeater',
        'Get-KlippyTemperatureSensor',
        'Get-KlippyBedMesh',
        'Get-KlippyFilamentSensor',
        'Get-KlippyOutputPin',
        'Get-KlippyMacro',
        # Emergency & System Control (Epic L)
        'Stop-KlippyEmergency',
        'Restart-KlippyFirmware',
        'Restart-KlippyHost',
        'Stop-KlippyHost',
        # Update Manager (Epic L)
        'Get-KlippyUpdate',
        'Update-KlippyComponent',
        # Print History (Epic M)
        'Get-KlippyPrintHistory',
        'Get-KlippyPrintHistoryTotals',
        'Remove-KlippyPrintHistory',
        # Job Queue (Epic M)
        'Get-KlippyJobQueue',
        'Add-KlippyJobQueue',
        'Remove-KlippyJobQueue',
        # Power Devices (Epic M)
        'Get-KlippyPowerDevice',
        'Set-KlippyPowerDevice',
        # Webcam (Epic M)
        'Get-KlippyWebcam',
        'Save-KlippyWebcamSnapshot',
        # Announcements (Epic M)
        'Get-KlippyAnnouncement'
    )

    # Cmdlets to export from this module
    CmdletsToExport = @()

    # Variables to export from this module
    VariablesToExport = @()

    # Aliases to export from this module
    AliasesToExport = @()

    # Private data to pass to the module specified in RootModule
    PrivateData = @{
        PSData = @{
            # Tags applied to this module for module discovery in online galleries
            Tags = @('Klipper', 'Moonraker', '3DPrinting', 'API', 'Automation')

            # A URL to the license for this module
            LicenseUri = 'https://github.com/darkoperator/KlippyCLI/blob/main/LICENSE'

            # A URL to the main website for this project
            ProjectUri = 'https://github.com/darkoperator/KlippyCLI'

            # A URL to an icon representing this module
            # IconUri = ''

            # ReleaseNotes of this module
            ReleaseNotes = 'Initial release - Printer registry management'

            # Prerelease string of this module
            # Prerelease = ''

            # Flag to indicate whether the module requires explicit user acceptance for install/update/save
            RequireLicenseAcceptance = $false
        }
    }
}