import type { AssetPack } from "../schema.js"; /** 校验结果(§6.7.7)。validatePack 永远返结果对象,不抛异常。 */ export interface ValidationResult { /** Pack 名(来源 pack.name——manifest.name 或退化别名) */ pack: string; /** Pack 来源类型 */ source: AssetPack["source"]; /** v15.x §4.4.4(缺口 4):reserved pack 的位置别名(prj/pt),非 reserved 为 undefined。 * UI 显示层用——reserved 显位置别名,settings 显 pack 名。 */ reservedAlias?: "prj" | "pt"; /** 整体是否可用 */ ok: boolean; /** 致命问题(pack 不可用) */ errors: PackIssue[]; /** 非致命(pack 可用但有隐患——目前未使用,预留扩展) */ warnings: PackIssue[]; /** v15.x PR2(§6.7.6 展示用):pack version。 */ version: string; /** v15.x PR2(§6.7.6 展示用):pack description(可选)。 */ description?: string; /** v15.x PR2(§6.7.6 展示用):pack rootDir。 */ rootDir: string; /** issue pt-cold-start-warning-noise(§短期方案 2):manifest 警告搬运。 * parseManifest 收到的非致命警告(如未知字段 / 缺 schema-version)——以前在 * MdFilePack.create 内 `args.adapterCtx.notify(..., "warning")` 弹窗轰炸。 * 现挪到 /pt packs 主动展示:session_start 不再弹通知,user 跑 /pt packs 自助查看。 * 空数组 = 无 manifest 警告(健康状态)。 */ manifestWarnings: string[]; } /** 单条校验问题。code 机器可读,msg 人类可读,hint 修复建议。 */ export interface PackIssue { /** 机器可读错误码(如 "dir-not-found") */ code: string; /** 人类可读 */ msg: string; /** 修复建议(可选) */ hint?: string; } /** * 两层校验(§6.7.2): * 层 1 pack 结构:rootDir 存在 + 至少一个 asset 子目录 * 层 2 asset 解析:loadDomains/loadBlueprints/loadProfiles 不抛即过 * (parse 失败的文件已在 MdFilePack 内部 filter 掉,不阻断 pack 加载) * * 永远返结果对象,不抛异常(§6.7.7)——失败不阻断加载链。 */ export declare function validatePack(pack: AssetPack): Promise;