mirror of
https://github.com/tiennm99/ccs.git
synced 2026-07-15 20:20:09 +00:00
68 lines
2.1 KiB
Bash
68 lines
2.1 KiB
Bash
#!/usr/bin/env bash
|
|
# CCS Error Codes
|
|
# Documentation: https://docs.ccs.kaitran.ca/reference/error-codes
|
|
|
|
readonly ERROR_CODE_DOCS_BASE_URL="https://docs.ccs.kaitran.ca/reference/error-codes"
|
|
|
|
# Configuration Errors (E100-E199)
|
|
readonly E_CONFIG_MISSING="E101"
|
|
readonly E_CONFIG_INVALID_JSON="E102"
|
|
readonly E_CONFIG_INVALID_PROFILE="E103"
|
|
|
|
# Profile Management Errors (E104-E107)
|
|
readonly E_PROFILE_NOT_FOUND="E104"
|
|
readonly E_PROFILE_ALREADY_EXISTS="E105"
|
|
readonly E_PROFILE_CANNOT_DELETE_DEFAULT="E106"
|
|
readonly E_PROFILE_INVALID_NAME="E107"
|
|
|
|
# Claude CLI Detection Errors (E300-E399)
|
|
readonly E_CLAUDE_NOT_FOUND="E301"
|
|
readonly E_CLAUDE_VERSION_INCOMPATIBLE="E302"
|
|
readonly E_CLAUDE_EXECUTION_FAILED="E303"
|
|
|
|
# Network/API Errors (E400-E499)
|
|
readonly E_GLMT_PROXY_TIMEOUT="E401"
|
|
readonly E_API_KEY_MISSING="E402"
|
|
readonly E_API_AUTH_FAILED="E403"
|
|
readonly E_API_RATE_LIMIT="E404"
|
|
|
|
# File System Errors (E500-E599)
|
|
readonly E_FS_CANNOT_CREATE_DIR="E501"
|
|
readonly E_FS_CANNOT_WRITE_FILE="E502"
|
|
readonly E_FS_CANNOT_READ_FILE="E503"
|
|
readonly E_FS_INSTANCE_NOT_FOUND="E504"
|
|
|
|
# Internal Errors (E900-E999)
|
|
readonly E_INTERNAL_ERROR="E900"
|
|
readonly E_INVALID_STATE="E901"
|
|
|
|
# Get error documentation URL
|
|
get_error_doc_url() {
|
|
local error_code="$1"
|
|
local lowercase_code
|
|
lowercase_code="$(printf '%s' "$error_code" | tr '[:upper:]' '[:lower:]')"
|
|
echo "${ERROR_CODE_DOCS_BASE_URL}#${lowercase_code}"
|
|
}
|
|
|
|
# Get error category from code
|
|
get_error_category() {
|
|
local error_code="$1"
|
|
local code="${error_code#E}"
|
|
|
|
if [[ "$error_code" == "$E_PROFILE_NOT_FOUND" || "$error_code" == "$E_PROFILE_ALREADY_EXISTS" || "$error_code" == "$E_PROFILE_CANNOT_DELETE_DEFAULT" || "$error_code" == "$E_PROFILE_INVALID_NAME" ]]; then
|
|
echo "Profile Management"
|
|
elif [[ $code -ge 100 && $code -lt 200 ]]; then
|
|
echo "Configuration"
|
|
elif [[ $code -ge 300 && $code -lt 400 ]]; then
|
|
echo "Claude CLI Detection"
|
|
elif [[ $code -ge 400 && $code -lt 500 ]]; then
|
|
echo "Network/API"
|
|
elif [[ $code -ge 500 && $code -lt 600 ]]; then
|
|
echo "File System"
|
|
elif [[ $code -ge 900 && $code -lt 1000 ]]; then
|
|
echo "Internal"
|
|
else
|
|
echo "Unknown"
|
|
fi
|
|
}
|