内部/工具函数.ps1

# 工具函数
# API 字段名(mime_type/inline_data 等)保持英文

function Get-Mime类型 {
    param([string]$路径)
    switch ([System.IO.Path]::GetExtension($路径).ToLowerInvariant()) {
        '.png'  { 'image/png' }
        '.jpg'  { 'image/jpeg' }
        '.jpeg' { 'image/jpeg' }
        '.gif'  { 'image/gif' }
        '.webp' { 'image/webp' }
        default { 'application/octet-stream' }
    }
}

function Read-提示文件 {
    param([string]$路径)
    if (-not (Test-Path -LiteralPath $路径 -PathType Leaf)) {
        throw "提示文件不存在:$路径"
    }
    $内容 = [System.IO.File]::ReadAllText(
        $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($路径),
        [System.Text.Encoding]::UTF8).Trim()
    if ([string]::IsNullOrWhiteSpace($内容)) {
        throw "提示文件内容为空:$路径"
    }
    return $内容
}

function Resolve-输出路径 {
    param([string]$输出路径)
    $解析后 = $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($输出路径)
    $目录 = Split-Path -Parent $解析后
    if ($目录 -and -not (Test-Path $目录)) {
        New-Item -ItemType Directory -Path $目录 -Force | Out-Null
    }
    return $解析后
}