// src/features/security-policy/domain/policy.ts
var DEFAULT_SECURITY_POLICY_MODE = "prompt-with-resources";
var SECURITY_POLICY_OPTIONS = [
  {
    description: "\uBCF4\uC548 \uAC80\uC0AC\uB97C \uC644\uC804\uD788 \uBE44\uD65C\uC131\uD654\uD569\uB2C8\uB2E4. \uBBFC\uAC10\uC815\uBCF4\uAC00 \uD3EC\uD568\uB418\uC5B4\uB3C4 \uCC28\uB2E8\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
    label: "\uBCF4\uC548 \uAC80\uC0AC \uC0AC\uC6A9 \uC548 \uD568",
    mode: "disabled",
    summary: "\uBCF4\uC548 \uAC80\uC0AC \uBE44\uD65C\uC131\uD654"
  },
  {
    description: "\uC0AC\uC6A9\uC790 \uC785\uB825\uACFC \uBA85\uB839 \uC778\uC790\uB9CC \uAC80\uC0AC\uD569\uB2C8\uB2E4. \uD504\uB86C\uD504\uD2B8 \uBCF8\uBB38\uACFC \uCC38\uC870 \uB9AC\uC18C\uC2A4\uB294 \uC77D\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
    label: "\uC785\uB825/\uBA85\uB839\uB9CC \uAC80\uC0AC",
    mode: "input-only",
    summary: "\uC785\uB825/\uBA85\uB839 \uBB38\uC790\uC5F4\uB9CC \uAC80\uC0AC"
  },
  {
    description: "\uC785\uB825\uACFC AI \uD504\uB86C\uD504\uD2B8 \uBB38\uC790\uC5F4\uAE4C\uC9C0 \uAC80\uC0AC\uD569\uB2C8\uB2E4. \uACBD\uB85C/URL\uC774 \uAC00\uB9AC\uD0A4\uB294 \uB0B4\uC6A9\uC740 \uC77D\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.",
    label: "\uD504\uB86C\uD504\uD2B8 \uD14D\uC2A4\uD2B8\uAE4C\uC9C0 \uAC80\uC0AC",
    mode: "prompt-only",
    summary: "\uD504\uB86C\uD504\uD2B8 \uBB38\uC790\uC5F4\uAE4C\uC9C0 \uAC80\uC0AC"
  },
  {
    description: "\uC785\uB825, \uD504\uB86C\uD504\uD2B8, \uACBD\uB85C/URL\uC774 \uAC00\uB9AC\uD0A4\uB294 \uCC38\uC870 \uB9AC\uC18C\uC2A4 \uB0B4\uC6A9\uAE4C\uC9C0 \uD568\uAED8 \uAC80\uC0AC\uD569\uB2C8\uB2E4.",
    label: "\uD504\uB86C\uD504\uD2B8\uC640 \uCC38\uC870 \uB9AC\uC18C\uC2A4\uAE4C\uC9C0 \uC2EC\uCE35 \uAC80\uC0AC",
    mode: "prompt-with-resources",
    summary: "\uD504\uB86C\uD504\uD2B8\uC640 \uCC38\uC870 \uB9AC\uC18C\uC2A4\uAE4C\uC9C0 \uC2EC\uCE35 \uAC80\uC0AC"
  }
];
function createDefaultSecurityPolicy() {
  return {
    mode: DEFAULT_SECURITY_POLICY_MODE
  };
}
function isSecurityPolicyMode(value) {
  return SECURITY_POLICY_OPTIONS.some((option) => option.mode === value);
}
function getSecurityPolicyOption(mode) {
  return SECURITY_POLICY_OPTIONS.find((option) => option.mode === mode) || SECURITY_POLICY_OPTIONS.at(-1);
}
function listSecurityPolicyOptions() {
  return [...SECURITY_POLICY_OPTIONS];
}
function describeSecurityPolicyMode(mode) {
  return getSecurityPolicyOption(mode).label;
}
function isSecurityPolicyEnabled(mode) {
  return mode !== "disabled";
}
function resolveSecurityValidationOptions(mode) {
  switch (mode) {
    case "disabled":
      return {
        inspectPrompt: false,
        inspectResources: false,
        mode
      };
    case "input-only":
      return {
        inspectPrompt: false,
        inspectResources: false,
        mode
      };
    case "prompt-only":
      return {
        inspectPrompt: true,
        inspectResources: false,
        mode
      };
    case "prompt-with-resources":
    default:
      return {
        inspectPrompt: true,
        inspectResources: true,
        mode
      };
  }
}

export { createDefaultSecurityPolicy, describeSecurityPolicyMode, getSecurityPolicyOption, isSecurityPolicyEnabled, isSecurityPolicyMode, listSecurityPolicyOptions, resolveSecurityValidationOptions };
