PSUnifiedAgents.psm1

$ErrorActionPreference = 'Stop'
Set-StrictMode -Version Latest

function Start-AgentSession {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory, Position = 0, ValueFromPipeline = $true)]
        [string]$Prompt,
        [string]$TargetDirectory = (Get-Location).Path,
        [string]$Runner,
        [string]$Name
    )

    process {
        throw 'Start-AgentSession is not implemented yet. This public skeleton reserves the module and command surface.'
    }
}

function Get-AgentSession {
    [CmdletBinding()]
    param(
        [string]$Id,
        [string]$Name,
        [string]$TargetDirectory = (Get-Location).Path,
        [string]$Runner
    )

    throw 'Get-AgentSession is not implemented yet. This public skeleton reserves the module and command surface.'
}

function Wait-AgentSession {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory, ValueFromPipeline = $true)]
        $InputObject,
        [switch]$Any,
        [int]$TimeoutSec = 0
    )

    process {
        throw 'Wait-AgentSession is not implemented yet. This public skeleton reserves the module and command surface.'
    }
}

function Receive-AgentSession {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory, ValueFromPipeline = $true)]
        $InputObject
    )

    process {
        throw 'Receive-AgentSession is not implemented yet. This public skeleton reserves the module and command surface.'
    }
}

function Remove-AgentSession {
    [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'Medium')]
    param(
        [Parameter(Mandatory, ValueFromPipeline = $true)]
        $InputObject
    )

    process {
        throw 'Remove-AgentSession is not implemented yet. This public skeleton reserves the module and command surface.'
    }
}

Export-ModuleMember -Function @(
    'Start-AgentSession'
    'Get-AgentSession'
    'Wait-AgentSession'
    'Receive-AgentSession'
    'Remove-AgentSession'
)