scripts/internal/continuous-co-review/review-runtime-factory.ps1

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

function New-ReviewUnavailableProductionRuntimePort {
    param([string]$Reason = 'production-runtime-unsupported-platform')
    $preflight = { param($invocation) [pscustomobject]@{ ok = $false; reason = $Reason } }.GetNewClosure()
    $invoke = { param($harness, $invocation, $onStarted, $environment) throw $Reason }.GetNewClosure()
    $recover = { param($receipt) [pscustomobject]@{ termination_verified = $false; containment = 'unknown'; process_tree_live = $null; failure_reason = $Reason } }.GetNewClosure()
    return [pscustomobject]@{ id = 'unavailable-runtime'; platform = 'unknown'; containment = 'unknown'; preflight = $preflight; invoke = $invoke; recover = $recover }
}

function New-ReviewProductionRuntimePort {
    [CmdletBinding()]
    param([ValidateRange(1, 7200)][int]$TimeoutSeconds = 900)
    if ($IsWindows) { return New-ReviewWindowsRuntimePort -TimeoutSeconds $TimeoutSeconds }
    if ($IsLinux) { return New-ReviewLinuxRuntimePort -TimeoutSeconds $TimeoutSeconds }
    if ($IsMacOS) { return New-ReviewMacOSRuntimePort -TimeoutSeconds $TimeoutSeconds }
    return New-ReviewUnavailableProductionRuntimePort
}