// src/features/security-policy/domain/policy.ts
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 getSecurityPolicyOption(mode) {
  return SECURITY_POLICY_OPTIONS.find((option) => option.mode === mode) || SECURITY_POLICY_OPTIONS.at(-1);
}
function listSecurityPolicyOptions() {
  return [...SECURITY_POLICY_OPTIONS];
}

// src/features/security-policy/domain/presentation.ts
function createSecurityPolicySelectOptions() {
  return listSecurityPolicyOptions().map((option) => ({
    description: option.description,
    label: option.label,
    value: option.mode
  }));
}
function formatSecurityPolicyOutput(previousMode, nextMode) {
  const previousOption = getSecurityPolicyOption(previousMode);
  const nextOption = getSecurityPolicyOption(nextMode);
  return [
    previousMode === nextMode ? "\uBCF4\uC548 \uC815\uCC45\uC744 \uC720\uC9C0\uD588\uC2B5\uB2C8\uB2E4." : "\uBCF4\uC548 \uC815\uCC45\uC744 \uBCC0\uACBD\uD588\uC2B5\uB2C8\uB2E4.",
    `\uC774\uC804 \uC815\uCC45: ${previousOption.label}`,
    `\uD604\uC7AC \uC815\uCC45: ${nextOption.label}`,
    "",
    nextOption.description
  ].join("\n");
}
function buildSecurityPolicySummary(previousMode, nextMode) {
  const nextOption = getSecurityPolicyOption(nextMode);
  return previousMode === nextMode ? `\uBCF4\uC548 \uC815\uCC45 \uC720\uC9C0: ${nextOption.summary}` : `\uBCF4\uC548 \uC815\uCC45 \uBCC0\uACBD: ${nextOption.summary}`;
}
function buildSecurityPolicyHistoryMarkdown(previousMode, nextMode) {
  return [
    `- previous: \`${getSecurityPolicyOption(previousMode).summary}\``,
    `- current: \`${getSecurityPolicyOption(nextMode).summary}\``
  ].join("\n");
}

export { buildSecurityPolicyHistoryMarkdown, buildSecurityPolicySummary, createSecurityPolicySelectOptions, formatSecurityPolicyOutput };
