private/Get-DepsCacheInfo.ps1

function Get-DepsCacheInfo {
    <#
    .SYNOPSIS
        Get dependency cache metadata for a PHP build.
    .PARAMETER PhpVersion
        PHP version (e.g., 8.4.18 or master).
    .PARAMETER Arch
        Target architecture: x86 or x64.
    .PARAMETER LibsBuildRuns
        Optional comma-separated workflow run IDs used for library overrides.
    .PARAMETER IncludeDefaultRunsKey
        Append "default" to the cache key when no workflow run IDs are provided.
    #>

    [CmdletBinding()]
    [OutputType([PSCustomObject])]
    param(
        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [string] $PhpVersion,
        [Parameter(Mandatory=$true)]
        [ValidateSet('x86','x64')]
        [string] $Arch,
        [Parameter(Mandatory=$false)]
        [string] $LibsBuildRuns = '',
        [Parameter(Mandatory=$false)]
        [switch] $IncludeDefaultRunsKey
    )

    process {
        $depsPhpVersion = $PhpVersion
        if ($PhpVersion -ne 'master') {
            $versionParts = $PhpVersion.Split('.')
            if ($versionParts.Count -ge 2) {
                $depsPhpVersion = $versionParts[0..1] -join '.'
            }
        }

        $runsKey = ''
        $normalizedRuns = @($LibsBuildRuns -split ',' | ForEach-Object { $_.Trim() } | Where-Object { $_ -ne '' }) -join ','
        if ($normalizedRuns) {
            $runsKey = [System.Convert]::ToHexString(
                [System.Security.Cryptography.SHA256]::HashData(
                    [System.Text.Encoding]::UTF8.GetBytes($normalizedRuns)
                )
            ).ToLowerInvariant().Substring(0, 16)
        } elseif ($IncludeDefaultRunsKey) {
            $runsKey = 'default'
        }

        $vsVersion = (Get-VsVersion -PhpVersion $PhpVersion).vs
        $packageData = Get-PhpDepsPackages -PhpVersion $PhpVersion -VsVersion $vsVersion -Arch $Arch

        $cacheKey = "deps-$depsPhpVersion-$Arch"
        if ($runsKey) {
            $cacheKey += "-$runsKey"
        }

        return [PSCustomObject]@{
            PhpVersion = $PhpVersion
            DepsPhpVersion = $depsPhpVersion
            VsVersion = $vsVersion
            CacheKey = $cacheKey
            CacheDir = "C:\deps-$depsPhpVersion-$Arch"
            Packages = @($packageData.Packages)
            OverrideLibraries = @($packageData.OverrideLibraries)
        }
    }
}