{
  "unknownCommand": "알 수 없는 명령: {{command}}\n`{{cli}} 도움말`을 실행하세요.",
  "usagePrefix": "용법:",
  "security": {
    "help": "사용법: ysk-server 보안 상태\n       ysk-server 보안 세션 목록|revoke|revoke-others [--user U]\n       ysk-server 보안 API 키 목록|생성|삭제 …",
    "sessionsHelp": "사용법: ysk-server 보안 세션 목록 [--user U]\n       ysk-server 보안 세션은 --id PREFIX [--user U]를 취소합니다.\n       ysk-server 보안 세션 revoke-others [--user U] [--keep-token T]",
    "apiKeysHelp": "사용법: ysk-server 보안 API 키 목록\n       ysk-server security api-keys create --name N [--user U] [--scope full|read]\n       ysk-server 보안 API-키 삭제 --id KEY_ID",
    "noUser": "사용자를 찾을 수 없습니다. 먼저 관리자를 생성하거나 --user <name|id>를 전달하세요.",
    "tokenOnce": "한 번 표시된 토큰 — 안전하게 보관",
    "sessionRevokeUsage": "사용법: ysk-server 보안 세션은 --id <sessionIdPrefix> [--user U]를 취소합니다.",
    "apiKeyDeleteUsage": "사용법: ysk-server security api-keys delete --id KEY_ID"
  },
  "help": {
    "blurb": "제어 플레인 CLI - AI 에이전트의 경우 --json을 선호합니다.\n문서: docs/agent/README.md · docs/cli/reference.md · docs/agent/commands.json",
    "main": "{{product}} ({{cli}}) v{{version}}\n\n제어 플레인 CLI - AI 에이전트의 경우 --json을 선호합니다.\n문서: docs/agent/README.md · docs/cli/reference.md · docs/agent/commands.json\n\n사용법:\n  {{cli}} <명령어> [옵션]\n\n명령:\n  초기화 dataDir + 관리자 설정\n  업데이트 자체 업데이트 확인/적용\n  HTTP API + 웹 UI 제공\n  시스템 장치 설치 ysk-server.service 설치 [--enable]\n  도구 목록 도구; tools run --tool <이름> [--dry-run]\n  NL에게 물어보기 → AI 계획 [--execute]\n  프로젝트 목록|가져오기|생성|배포|중지|상태|백업|템플릿\n  모두 백업|목록|상태|복원|삭제|일정|제어판|설정|restic\n  템플릿 앱 템플릿\n  nginx|dns|db|방화벽 도우미 호스팅\n  dns zone|zones (AI 별칭 → 호스팅 dns-*)\n  로그 소스|쿼리|저널|개요\n  호스트 개요|메트릭(읽기 전용)\n  nginx 상태|목록|테스트|동기화\n  SSL 목록|가져오기(인증서)\n  db-cluster list|get|create|plan(HA 계획 우선)\n  ssh-key list|create|import|public|export|install|delete(SSH ID 저장소)\n  ssh-2fa list|enroll|confirm|install|pam|retire (SSH 로그인 TOTP ≠ 패널 2FA)\n  서비스 호스트 서비스 매트릭스(systemctl 프로브)\n  방어 | 보호 상태|금지|금지 해제|허용 목록\n  보안 상태|세션|api-keys(2FA 플래그 · 세션 취소 · API 키)\n  CDN 노드|사이트|렌더링|적용|퍼지|프로브|대시보드|상태 루프|프로젝트에서\n  에이전트 런타임|플릿 목록|명령|등록(패널 + 에지)\n  에이전트 실행 아웃바운드 플릿 폴러(실험적)\n  저장소 상태|내보내기|가져오기|마이그레이션 (json|sqlite|postgres 문서 백엔드)\n  파일 목록|읽기|쓰기|mkdir|rm|stat|이름 바꾸기|복사|이동|chmod|trash|공유(샌드박스)\n  cron 목록|생성|삭제|활성화|비활성화|실행|설치|상태\n  이메일 도메인|사서함|배달성|부트스트랩|dns(패널 패리티)\n  health 로컬 모드 스냅샷 또는 --url http://host:port/health\n  준비 | 의사 생산 준비 상태 (솔직함)\n  마이그레이션 인벤토리|호스트|게시|상태|이력서(전체 호스트 마이그레이션)\n  버전 | 도움\n\n글로벌:\n  --json JSON 표준 출력(AI)\n  --data-dir 경로\n  --config 경로\n  --도움말 | --버전\n\n종료: 0 확인 · 오류 1개 · 유효성 검사 2개 · 차단 3개 · 찾을 수 없음 4개 · 호스트 오류 5개\n\n안전:\n  위험한 작업은 기본적으로 시험 실행됩니다(계획에만 해당).\n  호스트를 변경하려면 --execute(별칭 --apply) + env YSK_EXECUTE=1을 전달합니다.\n\n예:\n  {{cli}} 준비 상태 --json\n  {{cli}} 호스트 --json\n  {{cli}} nginx 상태 --json\n  {{cli}} SSL 목록 --json\n  {{cli}} 프로젝트는 --id UUID --json을 얻습니다.\n  {{cli}} 방어 금지 --ip 1.2.3.4 --json # 테스트 실행 계획\n  {{cli}} 프로젝트 목록 --json\n  {{cli}} 로그 쿼리 --source 저널: --lines 100 --json\n  {{cli}} 도구 --json"
  },
  "usage": {
    "tools": {
      "run": {
        "--tool": {
          "name": {
            "--arg": {
              "cd327c": "사용법: ysk-server tools run --tool <name> [--arg key=val] [--dry-run]"
            }
          }
        }
      }
    },
    "email": {
      "domains": {
        "list": {
          "create": {
            "get": {
              "b94a62": "사용법: ysk-server 이메일 도메인 목록|생성|get …"
            }
          }
        },
        "create": {
          "--domain": {
            "example": {
              "bd4036": "사용법: ysk-server 이메일 도메인 create --domain example.com --ip A.B.C.D"
            }
          }
        }
      },
      "mailboxes": {
        "list": {
          "create": {
            "42b26c": "사용법: ysk-server 이메일 사서함 목록|생성 …"
          }
        },
        "create": {
          "--domain": {
            "example": {
              "7227f3": "사용법: ysk-server 이메일 사서함 create --domain example.com --local user [--password P]"
            }
          }
        }
      },
      "dns": {
        "--domain": {
          "example": {
            "com": {
              "26b806": "사용법: ysk-server 이메일 dns --domain example.com"
            }
          }
        }
      },
      "sub": {
        "--data-dir": {
          "path": {
            "--json": {
              "73dad0": "사용법: ysk-server 이메일 <sub> [--data-dir PATH] [--json]\n  도메인 목록|생성|가져오기 [--q TEXT]\n    --domain example.com --ip A.B.C.D 만들기\n    --domain example.com 받기 | --id UUID\n  사서함 목록|생성 [--도메인 D | --id 도메인 ID]\n    create --domain D --local user [--password P]\n  배달 가능성 --도메인 D | --id UUID\n  배달 가능성 개요\n  bootstrap --domain D --ip A.B.C.D [--install]\n  dns --도메인 D | --id UUID # 패널용 DNS 번들\n또한: 호스팅 email-apply|email-mailbox|email-deliverability(별칭)"
            }
          }
        }
      },
      "deliverability": {
        "--domain": {
          "example": {
            "com": {
              "b0dff0": "사용법: ysk-server 이메일 전달 가능성 --domain example.com"
            }
          }
        }
      },
      "bootstrap": {
        "--domain": {
          "example": {
            "com": {
              "affc8d": "사용법: ysk-server 이메일 부트스트랩 --domain example.com --ip 1.2.3.4 [--install]"
            }
          }
        }
      }
    },
    "cron": {
      "delete": {
        "--id": {
          "job": {
            "id": {
              "f6aafe": "사용법: ysk-server cron delete --id JOB_ID"
            }
          }
        }
      },
      "sub": {
        "--id": {
          "job": {
            "id": {
              "99cfdf": "사용법: ysk-server cron {{sub}} --id JOB_ID"
            }
          }
        },
        "--data-dir": {
          "path": {
            "--json": {
              "0349e6": "사용법: ysk-server cron <sub> [--data-dir PATH] [--json]\n  list [--project-id ID] [--q TEXT]\n  create --schedule \"0 3 * * *\" --command CMD [--project-id ID] [--user USER]\n  update --id JOB_ID [--schedule S] [--command CMD] [--user USER] [--project-id ID] [--enable|--disable]\n  delete --id JOB_ID\n  enable|disable --id JOB_ID\n  run --id JOB_ID              # run-now (needs YSK_EXECUTE=1)\n  install                     # load managed crontab (needs EXECUTE)\n  status                      # probe managed file vs host crontab\n  host [list] [--user USER] [--jobs-only]\n  host edit --user USER --old-schedule S --old-command C --schedule S --command C --execute\n  host disable|enable|delete|adopt --user USER --old-schedule S --old-command C --execute\n  host run --user USER --command C --execute\nHonesty: install / host write blocked without YSK_EXECUTE=1.\n"
            }
          }
        }
      },
      "run": {
        "--id": {
          "job": {
            "id": {
              "a0a97f": "사용법: ysk-server cron run --id JOB_ID"
            }
          }
        }
      },
      "create": {
        "--schedule": {
          "0": {
            "3": {
              "9a8328": "사용법: ysk-server cron create --schedule \"0 3 * * *\" --command CMD [--project-id ID] [--user USER]"
            }
          }
        }
      }
    },
    "files": {
      "stat": {
        "--path": {
          "rel": {
            "17c8f2": "사용법: ysk-server 파일 stat --path REL"
          }
        }
      },
      "read": {
        "--path": {
          "rel": {
            "e35f8d": "사용법: ysk-server 파일 읽기 --path REL"
          }
        }
      },
      "mkdir": {
        "--path": {
          "rel": {
            "ae0438": "사용법: ysk-server 파일 mkdir --path REL"
          }
        }
      },
      "rm": {
        "--path": {
          "rel": {
            "--permanent": {
              "fe2051": "사용법: ysk-server 파일 rm --path REL [--permanent]"
            }
          }
        }
      },
      "rename": {
        "--from": {
          "rel": {
            "--to": {
              "35a260": "사용법: ysk-server 파일 이름 바꾸기 --REL에서 --REL로"
            }
          }
        }
      },
      "copy": {
        "--from": {
          "rel": {
            "--to": {
              "5337f4": "사용법: ysk-server 파일 복사 --REL에서 --REL로"
            }
          }
        }
      },
      "move": {
        "--from": {
          "rel": {
            "--to": {
              "75cf5d": "사용법: ysk-server 파일 이동 --REL에서 --REL로"
            }
          }
        }
      },
      "chmod": {
        "--path": {
          "rel": {
            "--mode": {
              "39f983": "사용법: ysk-server 파일 chmod --path REL --mode 644"
            }
          }
        }
      },
      "trash": {
        "restore": {
          "--id": {
            "trash": {
              "c89ce9": "사용법: ysk-server 파일 휴지통 복원 --id TRASH_ID"
            }
          }
        },
        "list": {
          "restore": {
            "purge": {
              "ef063d": "사용법: ysk-server 파일 휴지통 목록|복원|제거"
            }
          }
        }
      },
      "shares": {
        "list": {
          "ac342c": "사용법: ysk-server 파일 공유 목록"
        }
      },
      "webdav": {
        "status": {
          "token": {
            "disable": {
              "f8e94b": "사용법: ysk-server files webdav status|token|disable"
            }
          }
        }
      },
      "sub": {
        "--root": {
          "public": {
            "project": {
              "42ebd4": "사용법: ysk-server 파일 <sub> [--root public|project:ID] [--data-dir PATH] [--json]\n  목록 [--path DIR] [--q TEXT] [--정렬 이름|크기|mtime] [--order asc|desc]\n  통계 --경로 REL\n  읽기 --path REL\n  --path REL --content TEXT 쓰기 | --파일 로컬\n  mkdir --path REL\n  rm --path REL [--영구]\n  이름 바꾸기 --REL에서 --REL로\n  복사 --REL에서 --REL로\n  이동 --REL에서 --REL로\n  chmod --path REL --mode 644\n  휴지통 목록|복원|삭제 [--id TRASH_ID]\n  공유 목록\n  즐겨찾기 목록\n  업로드 --dir REL --file LOCAL [--file LOCAL2…]\n  webdav 상태|토큰|비활성화\n샌드박스: 공개 파일 루트 또는 프로젝트 홈만(경로 제한)"
            }
          }
        }
      },
      "write": {
        "--path": {
          "rel": {
            "--content": {
              "0addb1": "사용법: ysk-server 파일 쓰기 --path REL --content TEXT | --파일 로컬"
            }
          }
        }
      },
      "upload": {
        "--dir": {
          "rel": {
            "--file": {
              "f8c3bf": "사용법: ysk-server 파일 업로드 --dir REL --file LOCAL [--file LOCAL2…]"
            }
          }
        }
      }
    },
    "store": {
      "import": {
        "--in": {
          "file": {
            "json": {
              "5b6fdd": "사용법: ysk-server store import --in FILE.json"
            }
          }
        }
      },
      "sub": {
        "--data-dir": {
          "path": {
            "--json": {
              "d580e4": "사용법: ysk-server store <sub> [--data-dir PATH] [--json]\n  상태 백엔드 종류 + 개수 표시\n  내보내기 --out FILE.json 덤프 문서 스냅샷\n  import --in FILE.json 파일의 스냅샷 덮어쓰기\n  마이그레이션 --to sqlite|json [--out PATH]\n    현재 저장소를 다른 백엔드 파일에 복사\nEnv: YSK_STORE=json|sqlite|postgres YSK_DATABASE_URL=postgres://…\n정직: 문서-BLOB 백엔드(아직 완전한 관계형 스키마는 아님)."
            }
          }
        }
      },
      "migrate": {
        "--to": {
          "json": {
            "sqlite": {
              "1c52a3": "사용법: ysk-server store migration --to json|sqlite [--out PATH]\n  (postgres: JSON을 내보낸 후 YSK_DATABASE_URL로 가져오기)"
            }
          }
        }
      }
    },
    "cdn": {
      "nodes": {
        "delete": {
          "--id": {
            "node": {
              "0c6a1e": "사용법: ysk-server cdn 노드 삭제 --id NODE_ID"
            }
          }
        },
        "drain": {
          "--id": {
            "node": {
              "a8aa81": "사용법: ysk-server cdn 노드 배수 --id NODE_ID [--off]"
            }
          }
        },
        "list": {
          "upsert": {
            "delete": {
              "52549e": "사용법: ysk-server cdn 노드 목록|upsert|삭제|프로브|드레인 …"
            }
          }
        },
        "upsert": {
          "--name": {
            "name": {
              "8f6f39": "사용법: ysk-server cdn 노드 upsert --name NAME [--id ID] [--base-url U] [--fleet-agent-id S] [--ssh-host H] [--region R]"
            }
          }
        }
      },
      "sites": {
        "get": {
          "--id": {
            "site": {
              "3c3c35": "사용법: ysk-server cdn 사이트는 --id SITE_ID를 얻습니다."
            }
          }
        },
        "delete": {
          "--id": {
            "site": {
              "51ef8f": "사용법: ysk-server cdn 사이트 삭제 --id SITE_ID"
            }
          }
        },
        "list": {
          "get": {
            "upsert": {
              "609da6": "사용법: ysk-server CDN 사이트 목록|get|upsert|삭제 …"
            }
          }
        },
        "upsert": {
          "--name": {
            "n": {
              "6ebb75": "사용법: ysk-server cdn 사이트 upsert --name N --domains a.com,b.com [--edge-id ID]… [--origin-url U] [--origin-project ID]"
            }
          }
        }
      },
      "render": {
        "--site-id": {
          "id": {
            "--dry-run": {
              "2149eb": "사용법: ysk-server cdn render --site-id ID [--dry-run]"
            }
          }
        }
      },
      "apply": {
        "--site-id": {
          "id": {
            "--edge-id": {
              "a527b3": "사용법: ysk-server cdn apply --site-id ID [--edge-id EDGE]"
            }
          }
        }
      },
      "purge": {
        "--site-id": {
          "id": {
            "--edge-id": {
              "bc08ec": "사용법: ysk-server cdn purge --site-id ID [--edge-id EDGE]"
            }
          }
        }
      },
      "dns-sync": {
        "--site-id": {
          "id": {
            "--apply-zone": {
              "343068": "사용법: ysk-server cdn dns-sync --site-id ID [--apply-zone]"
            }
          }
        }
      },
      "sub": {
        "--data-dir": {
          "path": {
            "--json": {
              "092842": "사용법: ysk-server cdn <sub> [--data-dir PATH] [--json]\n  노드 목록|upsert|삭제|프로브|드레인\n  사이트 목록|업서트|삭제|가져오기\n  렌더링 --site-id ID [--dry-run]\n  --site-id ID 적용 [--edge-id ID] # 팬아웃(EXECUTE 없이 플릿 대기열 확인)\n  purge --site-id ID [--edge-id ID]\n  dns-sync --site-id ID [--apply-zone]\n  프로브 | 대시보드 | 건강 루프 [--적용 영역]\n  from-project --project-id ID [--edge-id ID…]\n정직성: Apply_status 작성/대기 중 ≠ 에이전트 승인/EXECUTE 다시 로드까지 Edge nginx가 적용됩니다."
            }
          }
        }
      },
      "from-project": {
        "--project-id": {
          "id": {
            "--edge-id": {
              "a96f42": "사용법: ysk-server cdn from-project --project-id ID [--edge-id ID]..."
            }
          }
        }
      }
    },
    "agents": {
      "fleet": {
        "remove": {
          "--session": {
            "session": {
              "1827fe": "사용법: ysk-server 에이전트 플릿 제거 --session SESSION_ID"
            }
          }
        },
        "register": {
          "--id": {
            "agent": {
              "209b2d": "사용법: ysk-server 에이전트 플릿 레지스터 --id AGENT_ID [--group g] [--edge]"
            }
          }
        },
        "commands": {
          "--session": {
            "session": {
              "f8067c": "사용법: ysk-server 에이전트 함대 명령 --session SESSION_ID"
            }
          }
        }
      },
      "register": {
        "--id": {
          "agent": {
            "id": {
              "3c4477": "사용법: ysk-server 에이전트는 --id AGENT_ID [--group g]를 등록합니다."
            }
          }
        }
      },
      "commands": {
        "--session": {
          "session": {
            "id": {
              "e620d2": "사용법: ysk-server 에이전트 명령 --session SESSION_ID"
            }
          }
        }
      },
      "runtimes": {
        "probe": {
          "fleet": {
            "list": {
              "261fa4": "사용법: ysk-server 에이전트 [런타임|프로브|플릿 목록|플릿 등록|플릿 명령|등록|명령]"
            }
          }
        }
      }
    },
    "agent": {
      "run": {
        "--control-plane": {
          "url": {
            "--id": {
              "cfefbe": "사용법: ysk-server 에이전트 실행 --control-plane URL --id AGENT_ID [--group g]"
            }
          }
        }
      }
    },
    "ask": {
      "check": {
        "system": {
          "info": {
            "b0c781": "사용법: ysk-server에서 \"시스템 정보 확인\"을 요청합니다."
          }
        }
      }
    },
    "backup": {
      "delete": {
        "--project-id": {
          "id": {
            "--name": {
              "d66c29": "사용법: ysk-server 백업 삭제 --project-id ID --name ARCHIVE"
            }
          }
        }
      },
      "restic": {
        "list": {
          "run": {
            "restore": {
              "10402b": "사용법: ysk-server 백업 나머지 목록|실행|복원 …"
            }
          }
        },
        "restore": {
          "--project-id": {
            "id": {
              "a8f133": "사용법: ysk-server 백업 복원 복원 --project-id ID --snapshot SNAP [--dry-run] [--overwrite-home --confirm PHRASE]"
            }
          }
        }
      },
      "sub": {
        "--data-dir": {
          "path": {
            "--json": {
              "777243": "사용법: ysk-server 백업 <sub> [--data-dir PATH] [--json]\n  all 모든 프로젝트 홈 백업(+ 구성 시 원격/휴지 측)\n  목록 [--프로젝트-id ID] [--q TEXT]\n  상태 마지막 실행 + 예약 프로브\n  복원 --project-id ID --name ARCHIVE [--mode full|web|dry-run]\n  삭제 --프로젝트 ID ID --name ARCHIVE\n  일정 [--cron \"0 3 * * *\"] [--install]\n  제어 평면 스냅샷 ysk.json + config.json\n  control-plane-restore --name ARCHIVE [--mode dry-run|full] [--확인 RESTORE-CONTROL-PLANE]\n  설정 [get|set] 원격 / 제외 / 나머지\n    set --remote-kind local|sftp|s3 --remote-path P [--remote-host H] …\n    설정 --exclude a,b,c | --제외 파일 FILE\n    set --restic-enable --restic-password P [--restic-repo PATH]\n    set --from-json FILE # 전체 패치 {remote?,exclusions?,restic?}\n  Restic list|run|restore 증분 Restic 도우미"
            }
          }
        }
      },
      "control-plane-restore": {
        "--name": {
          "archive": {
            "--mode": {
              "316a76": "사용법: ysk-server backup control-plane-restore --name ARCHIVE [--mode dry-run|full] [--confirm RESTORE-CONTROL-PLANE]"
            }
          }
        }
      },
      "restore": {
        "--project-id": {
          "id": {
            "--name": {
              "bc7041": "사용법: ysk-server 백업 복원 --project-id ID --name ARCHIVE [--mode full|web|dry-run]"
            }
          }
        }
      }
    },
    "packages": {
      "list": {
        "--q": {
          "text": {
            "b8e16b": "사용법: ysk-server 패키지 목록 [--q text]"
          }
        }
      }
    },
    "projects": {
      "stop": {
        "--id": {
          "projectid": {
            "b15409": "사용법: ysk-server projects stop --id <projectId>"
          }
        }
      },
      "backup": {
        "--id": {
          "projectid": {
            "e62846": "사용법: ysk-server projects backup --id <projectId>"
          }
        }
      },
      "health": {
        "--id": {
          "projectid": {
            "e816ec": "사용법: ysk-server projects health --id <projectId>"
          }
        }
      },
      "isolation": {
        "provision": {
          "--id": {
            "projectid": {
              "5aff44": "사용법: ysk-server 프로젝트 격리 프로비저닝 --id <projectId>\n       ysk-server 프로젝트 격리 프로비저닝-all [--limit 20]"
            }
          }
        },
        "backfill-owners": {
          "--owner-user-id": {
            "id": {
              "8691da": "사용법: ysk-server 프로젝트 격리 backfill-owners --owner-user-id <id>"
            }
          }
        },
        "list": {
          "provision": {
            "provision-all": {
              "8e9da3": "사용법: ysk-server 프로젝트 격리 목록|provision|provision-all|backfill-owners"
            }
          }
        }
      },
      "get": {
        "--id": {
          "projectid": {
            "name": {
              "b0d532": "사용법: ysk-server 프로젝트 get --id <projectId|name> [--json]"
            }
          }
        }
      },
      "create": {
        "--name": {
          "name": {
            "--domain": {
              "66e857": "사용법: ysk-server 프로젝트 create --name <name> [--domain d] [--runtime node|php|static|python|go|rust] [--template id]"
            }
          }
        }
      },
      "deploy": {
        "--id": {
          "projectid": {
            "--entry": {
              "339111": "사용법: ysk-server 프로젝트 배포 --id <projectId> [--entry f] [--port N] [--fpm|--builtin] [--reload]"
            }
          }
        }
      },
      "git-deploy": {
        "--id": {
          "id": {
            "--git-url": {
              "a513f5": "사용법: ysk-server 프로젝트 git-deploy --id ID [--git-url URL] [--branch main] [--no-redeploy] [--깊이 1] [--entry f]"
            }
          }
        }
      },
      "template": {
        "--id": {
          "projectid": {
            "--template": {
              "591ce4": "사용법: ysk-server 프로젝트 템플릿 --id <projectId> --template <id> [--force]"
            }
          }
        }
      },
      "list": {
        "get": {
          "create": {
            "deploy": {
              "253b48": "사용법: ysk-server 프로젝트 목록|get|create|deploy|git-deploy|stop|backup|template|health [옵션]\n  배포 --id UUID [--entry f] [--port N] [--fpm|--builtin] [--reload]\n  git-deploy --id UUID [--git-url URL] [--branch B] [--no-redeploy]"
            }
          }
        }
      }
    },
    "cli": {
      "name": {
        "db-cluster": {
          "get": {
            "--id": {
              "00f803": "사용법: {{CLI_NAME}} db-cluster get --id UUID [--json]"
            }
          },
          "plan": {
            "--id": {
              "483f52": "사용법: {{CLI_NAME}} db-cluster plan --id UUID [--json]"
            }
          },
          "artifacts": {
            "--id": {
              "6b33c4": "사용법: {{CLI_NAME}} db-cluster 아티팩트 --id UUID [--json]"
            }
          },
          "bundle": {
            "--id": {
              "94ed27": "사용법: {{CLI_NAME}} db-cluster Bundle --id UUID [--json]"
            }
          },
          "delete": {
            "--id": {
              "3de0e4": "사용법: {{CLI_NAME}} db-cluster delete --id UUID [--json]"
            }
          },
          "create": {
            "--name": {
              "e3b733": "사용법: {{CLI_NAME}} db-cluster create --name N --engine mariadb --kind mariadb-galera --member HOST=role[:access] ..."
            }
          },
          "apply": {
            "--id": {
              "4cddb8": "사용법: {{CLI_NAME}} db-cluster apply --id UUID [--execute] [--bootstrap] [--json]"
            }
          },
          "probe": {
            "--id": {
              "22870c": "사용법: {{CLI_NAME}} db-cluster 프로브 --id UUID [--peers] [--json]"
            }
          },
          "install-peers": {
            "--id": {
              "600b02": "사용법: {{CLI_NAME}} db-cluster install-peers --id UUID [--execute] [--no-restart] [--identity ID] [--json]"
            }
          },
          "push": {
            "--id": {
              "697080": "사용법: {{CLI_NAME}} db-cluster push --id UUID [--member ID] [--identity ID] [--execute] [--json]"
            }
          },
          "fleet": {
            "--id": {
              "239462": "사용법: {{CLI_NAME}} db-cluster 함대 --id UUID [--op apply|probe|plan] [--execute] [--edge-execute] [--json]"
            }
          },
          "list": {
            "get": {
              "3b9cfa": "사용법: {{CLI_NAME}} db-cluster list|get|create|plan|apply|probe|install-peers|artifacts|bundle|push|fleet|overview|delete [--peers] [--execute] [--json]"
            }
          }
        },
        "ssh-key": {
          "get": {
            "--id": {
              "292716": "사용법: {{CLI_NAME}} ssh-key get --id UUID [--json]"
            }
          },
          "public": {
            "--id": {
              "525d7d": "사용법: {{CLI_NAME}} ssh-key public --id UUID"
            }
          },
          "export": {
            "--id": {
              "0a6d81": "사용법: {{CLI_NAME}} ssh-key 내보내기 --id UUID [--out PATH] [--json]"
            }
          },
          "delete": {
            "--id": {
              "a6e2f2": "사용법: {{CLI_NAME}} ssh-key delete --id UUID [--json]"
            }
          },
          "create": {
            "--name": {
              "8b1d79": "사용법: {{CLI_NAME}} ssh-key create --name N [--algo ed25519|rsa-4096] [--목적 사용자|패널|unbound] [--프로젝트 ID] [--user U] [--home PATH] [--reveal] [--json]"
            }
          },
          "import": {
            "--name": {
              "6eb800": "사용법: {{CLI_NAME}} ssh-key import --name N --file PATH [--목적 패널|사용자] [--json]"
            }
          },
          "install": {
            "--id": {
              "b99c56": "사용법: {{CLI_NAME}} ssh-key install --id UUID [--execute] [--json]"
            }
          },
          "test": {
            "--id": {
              "e1aed3": "사용법: {{CLI_NAME}} ssh-key test --id UUID --target user@host[:port] [--execute] [--json]"
            }
          },
          "rotate": {
            "--id": {
              "9c3224": "사용법: {{CLI_NAME}} ssh-key 회전 --id UUID [--reveal] [--json]"
            }
          },
          "authorize-self": {
            "--id": {
              "b7ea2e": "사용법: {{CLI_NAME}} ssh-key Authorize-self --id UUID [--json]"
            }
          },
          "uninstall": {
            "--id": {
              "afcba0": "사용법: {{CLI_NAME}} ssh-key uninstall --id UUID [--execute] [--json]"
            }
          },
          "list": {
            "get": {
              "2c92c6": "사용법: {{CLI_NAME}} ssh-key list|get|create|import|public|export|install|test|rotate|authorize-self|uninstall|delete [--json]"
            }
          }
        },
        "ssh-2fa": {
          "reveal": {
            "--id": {
              "a6c27f": "사용법: {{CLI_NAME}} ssh-2fa 공개 --id UUID [--json]"
            }
          },
          "retire": {
            "--id": {
              "6e1fa3": "사용법: {{CLI_NAME}} ssh-2fa 은퇴 --id UUID [--json]"
            }
          },
          "enroll": {
            "--user": {
              "081432": "사용법: {{CLI_NAME}} ssh-2faregister --user LINUX|--프로젝트 ID [--home PATH] [--from-panel] [--json]"
            }
          },
          "confirm": {
            "--id": {
              "9ee8a2": "사용법: {{CLI_NAME}} ssh-2fa verify --id UUID --code 123456 [--json]"
            }
          },
          "install": {
            "--id": {
              "dace06": "사용법: {{CLI_NAME}} ssh-2fa install --id UUID [--execute] [--json]"
            }
          },
          "uninstall": {
            "--id": {
              "0bb464": "사용법: {{CLI_NAME}} ssh-2fa uninstall --id UUID [--execute] [--json]"
            }
          },
          "list": {
            "enroll": {
              "802ed0": "사용법: {{CLI_NAME}} ssh-2fa list|enroll|confirm|install|uninstall|pam|reveal|retire [--json]"
            }
          }
        },
        "ssl": {
          "list": {
            "get": {
              "79c232": "사용법: {{CLI_NAME}} ssl list|get --domain X [--json]"
            }
          },
          "get": {
            "--domain": {
              "91c444": "사용법: {{CLI_NAME}} ssl get --domain example.com [--json]"
            }
          }
        },
        "dns": {
          "zone": {
            "--zone": {
              "ad30fa": "사용법: {{CLI_NAME}} dns zone --zone example.com --ip A.B.C.D [--ipv6 X:X::X] [--validate] [--reload]"
            }
          },
          "zones": {
            "zone": {
              "5b8bda": "사용법: {{CLI_NAME}} dns zones|zone --zone X --ip A.B.C.D [--ipv6 …] [--json]"
            }
          }
        },
        "nginx": {
          "status": {
            "list": {
              "d67a16": "사용법: {{CLI_NAME}} nginx status|list|test|sync [--execute] [--json]"
            }
          }
        },
        "host": {
          "overview": {
            "metrics": {
              "93c828": "사용법: {{CLI_NAME}} 호스트 개요|메트릭|네트워크 [--path /] [--json]"
            }
          }
        },
        "logs": {
          "sources": {
            "overview": {
              "79058c": "사용법: {{CLI_NAME}} 로그 소스|개요|단위|저널|쿼리 [--소스 ID] [--json]"
            }
          }
        },
        "services": {
          "sub": {
            "--unit": {
              "4fe3fa": "사용법: {{CLI_NAME}} 서비스 {{sub}} --unit <systemd-unit> [--execute] [--json]"
            }
          },
          "matrix": {
            "start": {
              "4f3a35": "사용법: {{CLI_NAME}} 서비스 매트릭스|start|stop|restart|reload --unit NAME [--execute] [--json]"
            }
          }
        },
        "defense": {
          "ban": {
            "--ip": {
              "cc22de": "사용법: {{CLI_NAME}} 방어 금지 --ip <ip> [--method 실패2ban|ufw|둘 다] [--reason t] [--execute]"
            }
          },
          "unban": {
            "--ip": {
              "46aa23": "사용법: {{CLI_NAME}} defence unban --ip <ip> [--method 실패2ban|ufw|둘 다] [--execute]"
            }
          },
          "whitelist": {
            "--action": {
              "c1cbdf": "사용법: {{CLI_NAME}} 방어 화이트리스트 --action list|추가|제거 [--ip IP]"
            }
          },
          "status": {
            "bans": {
              "a8d96b": "사용법: {{CLI_NAME}} 방어 상태|bans|suspects|ban|unban|whitelist|stack-apply|fail2ban|firewall|timeline|presets [--json]\n 금지 [--q 텍스트] [--source 실패2ban|패널|ufw|자동]\n 용의자 [--q 텍스트]\n stack-apply [--execute] # UFW + fail2ban + 현재 프리셋\n 실패2반 | 방화벽 # 심층 조사(정직)\n 타임라인 [--limit N] [--q 텍스트]\n 사전 설정 # 목록 + activePreset"
            }
          }
        }
      }
    },
    "system": {
      "unit-install": {
        "--enable": {
          "--data-dir": {
            "path": {
              "33daa1": "사용법: ysk-server 시스템 장치-설치 [--enable] [--data-dir PATH]"
            }
          }
        }
      }
    },
    "users": {
      "create": {
        "--username": {
          "u": {
            "--password": {
              "7145c7": "사용법: ysk-server 사용자는 --username <u> --password <p> [--role Operator|viewer|admin] [--package-id id]를 만듭니다."
            }
          }
        }
      },
      "list": {
        "--q": {
          "text": {
            "--role": {
              "544685": "사용법: ysk-server 사용자 목록 [--q text] [--role admin|operator|viewer]\n       ysk-server 사용자는 --username u --password p [--role 연산자]를 생성합니다."
            }
          }
        }
      }
    },
    "rbac": {
      "list": {
        "policies": {
          "330ade": "사용법: ysk-server rbac list|policies\n       ysk-server rbac show --role 연산자\n       ysk-server rbac audit # 경로 → 캡 샘플 매트릭스"
        }
      }
    },
    "hosting": {
      "postgres-provision": {
        "--db": {
          "name": {
            "--user": {
              "2c8889": "사용법: postgres-provision --db NAME --user U --password P(min8) [--execute]를 호스팅하는 ysk-server\n  기본 테스트 실행(호스트 변경 없음) --execute + YSK_EXECUTE=1을 전달하여 적용합니다."
            }
          }
        }
      },
      "mysql-provision": {
        "--db": {
          "name": {
            "--user": {
              "fc25aa": "사용법: mysql-provision --db NAME --user U --password P(min8) [--execute]를 호스팅하는 ysk-server\n  기본 테스트 실행(호스트 변경 없음) --execute + YSK_EXECUTE=1을 전달하여 적용합니다."
            }
          }
        }
      },
      "dns-zone": {
        "--zone": {
          "example": {
            "com": {
              "bdaa0d": "사용법: dns-zone --zone example.com --ip A.B.C.D [--ipv6 X:X::X] [--validate] [--reload]를 호스팅하는 ysk-server"
            }
          }
        }
      },
      "powerdns-load": {
        "--zone": {
          "example": {
            "com": {
              "dba49c": "사용법: ysk-server 호스팅 powerdns-load --zone example.com --ip A.B.C.D [--ipv6 X:X::X] [--load|--execute]"
            }
          }
        }
      },
      "email-apply": {
        "--domain": {
          "example": {
            "com": {
              "37d350": "사용법: ysk-server 호스팅 email-apply --domain example.com [--install|--execute]"
            }
          }
        }
      },
      "email-mailbox": {
        "--domain": {
          "x": {
            "--local": {
              "3d9be3": "사용법: ysk-server 호스팅 email-mailbox --domain X --local user [--password P] [--ip A.B.C.D]"
            }
          }
        }
      },
      "ftps-apply": {
        "--domain": {
          "files": {
            "example": {
              "284a7c": "사용법: ftps-apply --domain files.example.com을 호스팅하는 ysk-server [--install|--execute]"
            }
          }
        }
      },
      "webmail-apply": {
        "--domain": {
          "webmail": {
            "example": {
              "2ad5b5": "사용법: ysk-server 호스팅 webmail-apply --domain webmail.example.com [--download]"
            }
          }
        }
      },
      "public-files": {
        "--domain": {
          "files": {
            "example": {
              "0e9013": "사용법: 공개 파일을 호스팅하는 ysk-server --domain files.example.com [--reload]"
            }
          }
        }
      },
      "email-deliverability": {
        "--domain": {
          "example": {
            "com": {
              "8774a4": "사용법: ysk-server 호스팅 email-deliverability --domain example.com\n       ysk-server 호스팅 email-deliverability --id <domainId>"
            }
          }
        }
      },
      "email-bootstrap": {
        "--domain": {
          "example": {
            "com": {
              "796da5": "사용법: ysk-server 호스팅 email-bootstrap --domain example.com --ip 1.2.3.4 [--admin postmaster] [--password P] [--install]"
            }
          }
        }
      }
    },
    "migrate": {
      "post": {
        "--job": {
          "id": {
            "--data-dir": {
              "6a73cd": "사용법: ysk-server migration post --job <id> --data-dir PATH --execute"
            }
          }
        }
      },
      "host": {
        "--target": {
          "root": {
            "new": {
              "3e94a2": "사용법: ysk-server 마이그레이션 호스트 --target root@NEW_IP [--identity-file PATH|--identity-id ID] [--password] --execute --data-dir PATH"
            }
          }
        }
      }
    },
    "x": {
      "972912": "사용법:\n  ysk-server 인벤토리 마이그레이션 [--data-dir PATH] --json\n  ysk-server 마이그레이션 호스트 --target root@IP [--identity-file PATH|--identity-id ID|--password PW] --execute [--maintenance] [--force-wipe-target]\n  ysk-server 마이그레이션 post --job ID --data-dir PATH --execute # 대상에서\n  ysk-server 마이그레이션 상태 [--작업 ID]\n  ysk-server 마이그레이션 이력서 --작업 ID --execute\n  ysk-server migrate orphan-homes [--data-dir PATH] --json\n  ysk-server migrate orphan-homes --path /home/ysk-server-UUID --confirm PATH --execute\n"
    },
    "hostingHelp": "사용법: ysk-server 호스팅 <sub>\n  위험한 작전의 기본 테스트 실행; 적용하려면 --execute(+ YSK_EXECUTE=1)를 추가하세요.\n  엔진엑스 | nginx-sync [--실행]\n  redis 제공 | postgres 제공 | mysql-provision [--실행]\n  dns-zone --zone X --ip A.B.C.D [--ipv6 X:X::X] [--validate] [--reload]\n  DNS 영역 | powerdns 상태 | powerdns-install [--install|--실행]\n  powerdns-load --zone X --ip A.B.C.D [--load|--execute]\n  이메일 적용 --domain X [--install|--execute]\n  email-mailbox --domain X --local user [--password P] [--ip A.B.C.D] [--system]\n  ftps-apply --domain X [--install|--execute]\n  런타임 | 런타임 설치 --kind node|php|python|go|rust --version V [--install|--execute]\n  dovecot-passdb --domain X | --모두\n  webmail-apply --domain webmail.example.com [--다운로드]\n  공개 파일 --domain files.example.com [--reload]\n  email-bootstrap --domain example.com --ip A.B.C.D [--install|--execute]\n  email-deliverability --domain example.com # PTR/DNSBL/웜업 팩(정직)\n  방화벽 적용 [--smtp] [--실행]",
    "logsQuery": "사용법: {{CLI_NAME}} 로그 쿼리 --source <id> [--lines N] [--grep G] [--since 1h] [--priority err]\n  소스 예: 저널: 저널:nginx.service 파일:syslog 프로젝트:<uuid>\n  {{CLI_NAME}} 로그 소스 --json\n  {{CLI_NAME}} 로그 저널 [--unit nginx.service] --json"
  },
  "msg": {
    "domain": {
      "missing": {
        "pass": {
          "5be09b": "도메인 누락 - 먼저 도메인을 생성하려면 --ip를 전달하세요."
        }
      }
    },
    "--root": {
      "must": {
        "be": {
          "a84834": "--root는 공개이거나 project:<id>여야 합니다."
        }
      }
    },
    "need": {
      "--content": {
        "or": {
          "4d7001": "--content 또는 --file 필요"
        }
      },
      "at": {
        "least": {
          "7d311a": "최소한 하나의 --member HOST[=role][:access]가 필요합니다."
        }
      }
    },
    "action": {
      "must": {
        "be": {
          "ba14c1": "작업은 목록|추가|제거여야 합니다."
        }
      }
    },
    "use": {
      "ysk-server": {
        "backup": {
          "ca67f4": "사용: ysk-server backup control-plane-restore --name ARCHIVE(restore --project-id control-plane 아님)"
        }
      }
    },
    "new": {
      "domain": {
        "requires": {
          "986b78": "새 도메인에는 --ip A.B.C.D가 필요합니다(자리 표시자 기본값 없음)."
        }
      }
    },
    "import-sync": {
      "prefers": {
        "fleet": {
          "4d7590": "import-sync는 Fleet ClusterSync 페이로드를 선호합니다. 또는 --file snapshot.json"
        }
      }
    },
    "security": {
      "control": {
        "plane": {
          "f59a63": "보안: 공개적으로 바인딩된 제어 평면(0.0.0.0/::). 127.0.0.1 + 역방향 프록시/UFW를 선호합니다."
        }
      }
    }
  },
  "err": {
    "unknown": {
      "email": {
        "sub": {
          "sub": {
            "e37257": "알 수 없는 이메일 하위: {{sub}}\n실행: ysk-server 이메일 도움말"
          }
        }
      },
      "cron": {
        "sub": {
          "sub": {
            "e1a9ed": "알 수 없는 크론 하위: {{sub}}\n실행: ysk-server cron help"
          }
        }
      },
      "files": {
        "sub": {
          "sub": {
            "07ad7e": "알 수 없는 파일 하위: {{sub}}\n실행: ysk-server 파일 도움말"
          }
        }
      },
      "store": {
        "sub": {
          "sub": {
            "b7a083": "알 수 없는 매장 하위: {{sub}}\n실행: ysk-server store help"
          }
        }
      },
      "cdn": {
        "subcommand": {
          "sub": {
            "76664f": "알 수 없는 cdn 하위 명령: {{sub}}\n실행: ysk-server cdn help"
          }
        }
      },
      "backup": {
        "subcommand": {
          "sub": {
            "4092ad": "알 수 없는 백업 하위 명령: {{sub}}\n실행: ysk-server 백업 도움말"
          }
        }
      }
    }
  },
  "setup": {
    "dryRunOk": "{{product}} 설정 테스트 실행 OK",
    "dryRunNext": "구성을 작성하고 데이터베이스를 초기화하려면 --dry-run 없이 다시 실행하세요.",
    "weakPassword": "관리자 비밀번호가 취약하거나 기본값입니다. 강력한 --admin-password(최소 8, \"admin\"/공통 기본값 아님)를 전달하거나 로컬 개발자에 대해서만 YSK_ALLOW_INSECURE_DEFAULTS=1을 설정하세요.",
    "weakPasswordShort": "취약하거나 기본 관리자 비밀번호가 거부됨",
    "nextStart": "시작(API + 웹 UI): {{cli}} 서브 --config {{configPath}}",
    "nextOpen": "http://{{host}}:{{port}}/을 열고 {{user}}로 로그인하세요.",
    "nextUnit": "시스템 단위 템플릿: {{unitPath}}",
    "nextInstall": "설치 단위(루트 + YSK_EXECUTE): {{cli}} system unit-install --enable --data-dir {{dataDir}}",
    "nextExecute": "프로덕션 호스트 돌연변이에는 YSK_EXECUTE=1 및 루트가 필요합니다.",
    "nextGolive": "라이브 시작: docs/deploy/go-live.md + ysk-server 준비 --json",
    "secPassword": "보안: 즉시 관리자 비밀번호 변경(부트스트랩이 취약한/기본 비밀번호를 사용함)",
    "sec2fa": "보안: 보안 → 계정에서 관리자 2FA를 활성화하세요.",
    "secListen": "보안: 모든 인터페이스에서 수신 대기 - 방화벽/역방향 프록시 뒤에 배치됩니다. 관리자용 127.0.0.1 + SSH 터널 선호",
    "ok": "{{product}} 설정 완료(데이터베이스 초기화)",
    "okInsecure": "{{product}} 설정 완료(데이터베이스 초기화) [INSECURE BOOTSTRAP — 비밀번호 변경]"
  }
}
