/** Stable ClawHub install error codes used by plugin install policy and diagnostics. */
export const CLAWHUB_INSTALL_ERROR_CODE = {
  INVALID_SPEC: "invalid_spec",
  PACKAGE_NOT_FOUND: "package_not_found",
  VERSION_NOT_FOUND: "version_not_found",
  NO_INSTALLABLE_VERSION: "no_installable_version",
  SKILL_PACKAGE: "skill_package",
  UNSUPPORTED_FAMILY: "unsupported_family",
  PRIVATE_PACKAGE: "private_package",
  INCOMPATIBLE_PLUGIN_API: "incompatible_plugin_api",
  INCOMPATIBLE_GATEWAY: "incompatible_gateway",
  ARTIFACT_UNAVAILABLE: "artifact_unavailable",
  MISSING_ARCHIVE_INTEGRITY: "missing_archive_integrity",
  ARTIFACT_DOWNLOAD_UNAVAILABLE: "artifact_download_unavailable",
  ARCHIVE_INTEGRITY_MISMATCH: "archive_integrity_mismatch",
  CLAWHUB_SECURITY_UNAVAILABLE: "clawhub_security_unavailable",
  CLAWHUB_RISK_ACKNOWLEDGEMENT_REQUIRED: "clawhub_risk_acknowledgement_required",
  CLAWHUB_DOWNLOAD_BLOCKED: "clawhub_download_blocked",
} as const;

/** Union of stable ClawHub install error code values. */
export type ClawHubInstallErrorCode =
  (typeof CLAWHUB_INSTALL_ERROR_CODE)[keyof typeof CLAWHUB_INSTALL_ERROR_CODE];
