package com.easyagents.skill.codec; import com.easyagents.skill.model.SkillPackageLimits; /** * Skill 包读取选项。 */ public final class SkillPackageReadOptions { private final SkillPackageLimits limits; private final SkillPackageReadMode mode; /** * 使用指定安全限额创建读取选项。 * * @param limits 安全限额 */ public SkillPackageReadOptions(SkillPackageLimits limits) { this(limits, SkillPackageReadMode.COMMIT_ON_VALID); } /** * 使用指定安全限额和内容处理模式创建读取选项。 * * @param limits 安全限额 * @param mode 内容处理模式 */ public SkillPackageReadOptions(SkillPackageLimits limits, SkillPackageReadMode mode) { this.limits = limits == null ? SkillPackageLimits.defaults() : limits; this.mode = mode == null ? SkillPackageReadMode.COMMIT_ON_VALID : mode; } /** * 创建默认读取选项。 * * @return 默认读取选项 */ public static SkillPackageReadOptions defaults() { return new SkillPackageReadOptions(SkillPackageLimits.defaults()); } /** * 创建只返回校验报告且不提交内容的读取选项。 * 二进制资源的 contentRef 仅表示内容哈希身份,不承诺可通过内容存储打开。 * * @return 只读预检选项 */ public static SkillPackageReadOptions reportOnly() { return new SkillPackageReadOptions(SkillPackageLimits.defaults(), SkillPackageReadMode.REPORT_ONLY); } /** * 获取安全限额。 * * @return 安全限额 */ public SkillPackageLimits getLimits() { return limits; } /** * 获取内容处理模式。 * * @return 内容处理模式 */ public SkillPackageReadMode getMode() { return mode; } }