claude-all-config 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/LICENSE +21 -0
  2. package/LICENSE.md +70 -0
  3. package/README.md +133 -0
  4. package/VERSION +1 -0
  5. package/agents/accessibility-reviewer.md +96 -0
  6. package/agents/ai-prompt-optimizer.md +94 -0
  7. package/agents/api-tester.md +102 -0
  8. package/agents/code-generator.md +94 -0
  9. package/agents/code-reviewer.md +47 -0
  10. package/agents/component-generator.md +102 -0
  11. package/agents/doc-generator.md +91 -0
  12. package/agents/migration-generator.md +94 -0
  13. package/agents/performance-analyzer.md +90 -0
  14. package/agents/proactive-mode.md +91 -0
  15. package/agents/readme-generator.md +101 -0
  16. package/agents/security-auditor.md +86 -0
  17. package/agents/terraform-generator.md +94 -0
  18. package/agents/test-generator.md +76 -0
  19. package/bin/agentrouter.json +36 -0
  20. package/bin/ai-chat +20 -0
  21. package/bin/antigravity.json +76 -0
  22. package/bin/api-manager +340 -0
  23. package/bin/claude-launcher +19 -0
  24. package/bin/claude-master +15 -0
  25. package/bin/claude_master.py +295 -0
  26. package/bin/cohere.json +7 -0
  27. package/bin/deepseek.json +44 -0
  28. package/bin/gemini.json +56 -0
  29. package/bin/glm.json +21 -0
  30. package/bin/groq.json +41 -0
  31. package/bin/minimax.json +26 -0
  32. package/bin/mistral.json +7 -0
  33. package/bin/moonshot.json +7 -0
  34. package/bin/ollama.json +36 -0
  35. package/bin/openai.json +46 -0
  36. package/bin/openrouter.json +38 -0
  37. package/bin/perplexity.json +12 -0
  38. package/bin/qwen.json +7 -0
  39. package/bin/switch-provider +73 -0
  40. package/bin/test.json +7 -0
  41. package/bin/xai.json +41 -0
  42. package/claude-all +2707 -0
  43. package/claude-config.json +340 -0
  44. package/claude-suite/REFACTORING_SUMMARY.md +88 -0
  45. package/claude-suite/auth/.antigravity_proxy.py +78 -0
  46. package/claude-suite/auth/__pycache__/openai_auth.cpython-312.pyc +0 -0
  47. package/claude-suite/auth/gemini_auth.py +80 -0
  48. package/claude-suite/auth/openai_auth.py +138 -0
  49. package/claude-suite/backups/claude-all-before-refactor +1075 -0
  50. package/claude-suite/backups/claude-all.backup +840 -0
  51. package/claude-suite/backups/claude-all.original +840 -0
  52. package/claude-suite/models/add-model-manual.sh +588 -0
  53. package/claude-suite/models/add-model.sh +114 -0
  54. package/claude-suite/models/model-switcher.sh +69 -0
  55. package/claude-suite/providers/claude-glm +89 -0
  56. package/claude-suite/providers/claude-glm-wrapper.sh +55 -0
  57. package/claude-suite/providers/claude-minimax +12 -0
  58. package/claude-suite/providers/claude-smart +132 -0
  59. package/claude-suite/providers/xai_chat.sh +56 -0
  60. package/claude-suite/utils/__pycache__/claude_master.cpython-312.pyc +0 -0
  61. package/claude-suite/utils/antigravity_proxy_server.py +168 -0
  62. package/claude-suite/utils/claude-all-help.txt +83 -0
  63. package/claude-suite/utils/claude_master.py +408 -0
  64. package/commands/brainstorm.md +5 -0
  65. package/commands/execute-plan.md +5 -0
  66. package/commands/write-plan.md +5 -0
  67. package/docs/ANTIGRAVITY-SETUP.md +176 -0
  68. package/docs/AUTH_CREDENTIALS.md +54 -0
  69. package/docs/NPM-INSTALLATION.md +166 -0
  70. package/hooks/hooks.json +15 -0
  71. package/hooks/run-hook.cmd +19 -0
  72. package/hooks/session-start.sh +52 -0
  73. package/install.sh +155 -0
  74. package/mcp.json +34 -0
  75. package/model/perplexity.json +12 -0
  76. package/package.json +69 -0
  77. package/plugins/README.md +47 -0
  78. package/plugins/installed_plugins.json +317 -0
  79. package/plugins/known_marketplaces.json +10 -0
  80. package/plugins/marketplace-info/marketplace.json +517 -0
  81. package/postinstall.js +100 -0
  82. package/scripts/antigravity_proxy_server.py +168 -0
  83. package/scripts/get_gemini_api_key.py +96 -0
  84. package/scripts/setup_antigravity_auth.py +171 -0
  85. package/skills/api-development/SKILL.md +11 -0
  86. package/skills/api-development/openapi/api-documentation.yaml +108 -0
  87. package/skills/brainstorming/SKILL.md +54 -0
  88. package/skills/code-quality/SKILL.md +196 -0
  89. package/skills/condition-based-waiting/SKILL.md +120 -0
  90. package/skills/condition-based-waiting/example.ts +158 -0
  91. package/skills/database-development/SKILL.md +11 -0
  92. package/skills/database-development/migrations/migration.template.sql +49 -0
  93. package/skills/defense-in-depth/SKILL.md +127 -0
  94. package/skills/deployment/SKILL.md +11 -0
  95. package/skills/deployment/ci-cd/github-actions.yml +95 -0
  96. package/skills/deployment/docker/Dockerfile.template +39 -0
  97. package/skills/dispatching-parallel-agents/SKILL.md +180 -0
  98. package/skills/documentation-generation/SKILL.md +8 -0
  99. package/skills/documentation-generation/templates/README.template.md +60 -0
  100. package/skills/error-handling/SKILL.md +267 -0
  101. package/skills/executing-plans/SKILL.md +76 -0
  102. package/skills/finishing-a-development-branch/SKILL.md +200 -0
  103. package/skills/frontend-design/frontend-design/SKILL.md +42 -0
  104. package/skills/integration-testing/SKILL.md +13 -0
  105. package/skills/integration-testing/examples/contract-test.py +317 -0
  106. package/skills/integration-testing/examples/e2e-test.js +147 -0
  107. package/skills/integration-testing/examples/test-isolation.md +94 -0
  108. package/skills/logging-monitoring/SKILL.md +66 -0
  109. package/skills/mobile-development/SKILL.md +11 -0
  110. package/skills/mobile-development/responsive/responsive.css +80 -0
  111. package/skills/performance-optimization/SKILL.md +9 -0
  112. package/skills/performance-optimization/profiling/profile.template.js +21 -0
  113. package/skills/receiving-code-review/SKILL.md +209 -0
  114. package/skills/refactoring/SKILL.md +11 -0
  115. package/skills/refactoring/code-smells/common-smells.md +115 -0
  116. package/skills/requesting-code-review/SKILL.md +105 -0
  117. package/skills/requesting-code-review/code-reviewer.md +146 -0
  118. package/skills/root-cause-tracing/SKILL.md +174 -0
  119. package/skills/root-cause-tracing/find-polluter.sh +63 -0
  120. package/skills/security-review/SKILL.md +11 -0
  121. package/skills/security-review/checklists/owasp-checklist.md +31 -0
  122. package/skills/sharing-skills/SKILL.md +194 -0
  123. package/skills/subagent-driven-development/SKILL.md +240 -0
  124. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
  125. package/skills/subagent-driven-development/implementer-prompt.md +78 -0
  126. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  127. package/skills/systematic-debugging/CREATION-LOG.md +119 -0
  128. package/skills/systematic-debugging/SKILL.md +295 -0
  129. package/skills/systematic-debugging/test-academic.md +14 -0
  130. package/skills/systematic-debugging/test-pressure-1.md +58 -0
  131. package/skills/systematic-debugging/test-pressure-2.md +68 -0
  132. package/skills/systematic-debugging/test-pressure-3.md +69 -0
  133. package/skills/test-driven-development/SKILL.md +364 -0
  134. package/skills/testing-anti-patterns/SKILL.md +302 -0
  135. package/skills/testing-skills-with-subagents/SKILL.md +387 -0
  136. package/skills/testing-skills-with-subagents/examples/CLAUDE_MD_TESTING.md +189 -0
  137. package/skills/ui-ux-review/SKILL.md +13 -0
  138. package/skills/ui-ux-review/checklists/ux-heuristics.md +61 -0
  139. package/skills/using-git-worktrees/SKILL.md +213 -0
  140. package/skills/using-superpowers/SKILL.md +101 -0
  141. package/skills/verification-before-completion/SKILL.md +139 -0
  142. package/skills/writing-plans/SKILL.md +116 -0
  143. package/skills/writing-skills/SKILL.md +622 -0
  144. package/skills/writing-skills/anthropic-best-practices.md +1150 -0
  145. package/skills/writing-skills/graphviz-conventions.dot +172 -0
  146. package/skills/writing-skills/persuasion-principles.md +187 -0
  147. package/update.sh +36 -0
  148. package/utils/check-superpowers.sh +114 -0
  149. package/utils/claude-branding.md +166 -0
  150. package/utils/config.js +185 -0
  151. package/utils/custom-claude-config.sh +89 -0
  152. package/utils/custom-claude-hooks.md +129 -0
  153. package/utils/custom-claude-lib.js +222 -0
  154. package/utils/customize-claude-ui.sh +162 -0
  155. package/utils/fix-claude-integration.sh +133 -0
  156. package/utils/help.js +125 -0
  157. package/utils/install-curl.ps1 +135 -0
  158. package/utils/install-curl.sh +525 -0
  159. package/utils/install-superpowers.js +411 -0
  160. package/utils/install.js +298 -0
  161. package/utils/install.sh +182 -0
  162. package/utils/postinstall.js +63 -0
  163. package/utils/rename-claude.sh +96 -0
  164. package/utils/uninstall-superpowers.js +273 -0
  165. package/utils/uninstall.ps1 +136 -0
  166. package/utils/uninstall.sh +163 -0
  167. package/utils/update.sh +160 -0
@@ -0,0 +1,136 @@
1
+ # Claude-All-New Uninstaller for Windows PowerShell
2
+
3
+ $GREEN = "Green"
4
+ $BLUE = "Cyan"
5
+ $RED = "Red"
6
+ $YELLOW = "Yellow"
7
+ $WHITE = "White"
8
+
9
+ Write-Host ""
10
+ Write-Host "╔════════════════════════════════════════╗" -ForegroundColor $RED
11
+ Write-Host "║ Claude-All-New Uninstaller ║" -ForegroundColor $RED
12
+ Write-Host "╚════════════════════════════════════════╝" -ForegroundColor $RED
13
+ Write-Host ""
14
+
15
+ $installDir = "$env:USERPROFILE\.local\bin"
16
+
17
+ Write-Host "Platform: Windows" -ForegroundColor $YELLOW
18
+ Write-Host "Install Dir: $installDir" -ForegroundColor $YELLOW
19
+ Write-Host ""
20
+
21
+ # Check if installed
22
+ if (-not (Test-Path "$installDir\claude-all")) {
23
+ Write-Host "Claude-All-New is not installed in $installDir" -ForegroundColor $YELLOW
24
+ $checkOther = Read-Host "Check another location? (y/N)"
25
+ if ($checkOther -eq "y" -or $checkOther -eq "Y") {
26
+ $installDir = Read-Host "Enter install directory"
27
+ if (-not (Test-Path "$installDir\claude-all")) {
28
+ Write-Host "Not found in $installDir" -ForegroundColor $RED
29
+ exit 1
30
+ }
31
+ } else {
32
+ exit 0
33
+ }
34
+ }
35
+
36
+ Write-Host "Found Claude-All-New installation:" -ForegroundColor $BLUE
37
+ Write-Host ""
38
+
39
+ # Files to remove
40
+ $filesToRemove = @(
41
+ "$installDir\claude-all",
42
+ "$installDir\api-manager"
43
+ )
44
+
45
+ if (Test-Path "$installDir\model") {
46
+ $filesToRemove += "$installDir\model"
47
+ }
48
+
49
+ Write-Host "Files to remove:"
50
+ foreach ($file in $filesToRemove) {
51
+ if (Test-Path $file) {
52
+ Write-Host " X $file" -ForegroundColor $RED
53
+ }
54
+ }
55
+ Write-Host ""
56
+
57
+ # API Keys
58
+ $apiKeyFiles = @(
59
+ "$env:USERPROFILE\.glm_api_key",
60
+ "$env:USERPROFILE\.minimax_api_key",
61
+ "$env:USERPROFILE\.openai_api_key",
62
+ "$env:USERPROFILE\.gemini_api_key",
63
+ "$env:USERPROFILE\.xai_api_key",
64
+ "$env:USERPROFILE\.groq_api_key"
65
+ )
66
+
67
+ $foundKeys = @()
68
+ foreach ($keyfile in $apiKeyFiles) {
69
+ if (Test-Path $keyfile) {
70
+ $foundKeys += $keyfile
71
+ }
72
+ }
73
+
74
+ if ($foundKeys.Count -gt 0) {
75
+ Write-Host "Found API key files:" -ForegroundColor $YELLOW
76
+ foreach ($keyfile in $foundKeys) {
77
+ Write-Host " 🔑 $keyfile" -ForegroundColor $YELLOW
78
+ }
79
+ Write-Host ""
80
+ }
81
+
82
+ # Confirmation
83
+ Write-Host "⚠️ This action cannot be undone!" -ForegroundColor $RED
84
+ Write-Host ""
85
+ $confirm = Read-Host "Remove Claude-All-New? (y/N)"
86
+
87
+ if ($confirm -ne "y" -and $confirm -ne "Y") {
88
+ Write-Host "Cancelled."
89
+ exit 0
90
+ }
91
+
92
+ Write-Host ""
93
+
94
+ # Remove program files
95
+ Write-Host "Removing program files..." -ForegroundColor $BLUE
96
+ foreach ($file in $filesToRemove) {
97
+ if (Test-Path $file) {
98
+ try {
99
+ Remove-Item -Path $file -Recurse -Force
100
+ Write-Host " ✓ Removed: $file" -ForegroundColor $GREEN
101
+ } catch {
102
+ Write-Host " ✗ Failed: $file" -ForegroundColor $RED
103
+ }
104
+ }
105
+ }
106
+
107
+ # Ask about API keys
108
+ if ($foundKeys.Count -gt 0) {
109
+ Write-Host ""
110
+ $removeKeys = Read-Host "Also remove API key files? (y/N)"
111
+
112
+ if ($removeKeys -eq "y" -or $removeKeys -eq "Y") {
113
+ Write-Host "Removing API key files..." -ForegroundColor $BLUE
114
+ foreach ($keyfile in $foundKeys) {
115
+ try {
116
+ Remove-Item -Path $keyfile -Force
117
+ Write-Host " ✓ Removed: $keyfile" -ForegroundColor $GREEN
118
+ } catch {
119
+ Write-Host " ✗ Failed: $keyfile" -ForegroundColor $RED
120
+ }
121
+ }
122
+ } else {
123
+ Write-Host "✓ API keys preserved" -ForegroundColor $GREEN
124
+ }
125
+ }
126
+
127
+ Write-Host ""
128
+ Write-Host "╔════════════════════════════════════════╗" -ForegroundColor $GREEN
129
+ Write-Host "║ Uninstall Complete! ║" -ForegroundColor $GREEN
130
+ Write-Host "╚════════════════════════════════════════╝" -ForegroundColor $GREEN
131
+ Write-Host ""
132
+ Write-Host "Claude-All-New has been removed from your system."
133
+ Write-Host ""
134
+ Write-Host "To reinstall:" -ForegroundColor $BLUE
135
+ Write-Host " iwr -useb https://raw.githubusercontent.com/zesbe/Claude-All-New/main/install-curl.ps1 | iex"
136
+ Write-Host ""
@@ -0,0 +1,163 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Claude-All-New Uninstaller
4
+ # Cross-platform: Linux, Termux, macOS, Windows (Git Bash/WSL)
5
+
6
+ # Platform detection
7
+ detect_platform() {
8
+ case "$(uname -s)" in
9
+ Linux*) echo "Linux";;
10
+ Darwin*) echo "macOS";;
11
+ CYGWIN*|MINGW*|MSYS*) echo "Windows";;
12
+ *) echo "Linux";;
13
+ esac
14
+ }
15
+
16
+ PLATFORM=$(detect_platform)
17
+
18
+ # Colors
19
+ if [[ "$PLATFORM" == "Windows" ]]; then
20
+ if command -v tput &> /dev/null; then
21
+ GREEN=$(tput setaf 2 2>/dev/null || echo "")
22
+ BLUE=$(tput setaf 4 2>/dev/null || echo "")
23
+ RED=$(tput setaf 1 2>/dev/null || echo "")
24
+ YELLOW=$(tput setaf 3 2>/dev/null || echo "")
25
+ NC=$(tput sgr0 2>/dev/null || echo "")
26
+ else
27
+ GREEN='' BLUE='' RED='' YELLOW='' NC=''
28
+ fi
29
+ else
30
+ GREEN='\033[0;32m'
31
+ BLUE='\033[0;34m'
32
+ RED='\033[0;31m'
33
+ YELLOW='\033[1;33m'
34
+ NC='\033[0m'
35
+ fi
36
+
37
+ # Portable home directory
38
+ if [[ -n "$HOME" ]]; then
39
+ USER_HOME="$HOME"
40
+ elif [[ -n "$USERPROFILE" ]]; then
41
+ USER_HOME="$USERPROFILE"
42
+ else
43
+ USER_HOME="$HOME"
44
+ fi
45
+
46
+ INSTALL_DIR="$USER_HOME/.local/bin"
47
+
48
+ echo -e "${RED}╔════════════════════════════════════════╗${NC}"
49
+ echo -e "${RED}║ Claude-All-New Uninstaller ║${NC}"
50
+ echo -e "${RED}╚════════════════════════════════════════╝${NC}"
51
+ echo ""
52
+ echo -e "${YELLOW}Platform:${NC} $PLATFORM"
53
+ echo -e "${YELLOW}Install Dir:${NC} $INSTALL_DIR"
54
+ echo ""
55
+
56
+ # Check if installed
57
+ if [[ ! -f "$INSTALL_DIR/claude-all" ]]; then
58
+ echo -e "${YELLOW}Claude-All-New is not installed in $INSTALL_DIR${NC}"
59
+ echo ""
60
+ read -p "Check another location? (y/N): " check_other
61
+ if [[ "$check_other" =~ ^[Yy]$ ]]; then
62
+ read -p "Enter install directory: " INSTALL_DIR
63
+ if [[ ! -f "$INSTALL_DIR/claude-all" ]]; then
64
+ echo -e "${RED}Not found in $INSTALL_DIR${NC}"
65
+ exit 1
66
+ fi
67
+ else
68
+ exit 0
69
+ fi
70
+ fi
71
+
72
+ echo -e "${BLUE}Found Claude-All-New installation:${NC}"
73
+ echo ""
74
+
75
+ # List files to remove
76
+ FILES_TO_REMOVE=(
77
+ "$INSTALL_DIR/claude-all"
78
+ "$INSTALL_DIR/api-manager"
79
+ )
80
+
81
+ # Check for model directory
82
+ if [[ -d "$INSTALL_DIR/model" ]]; then
83
+ FILES_TO_REMOVE+=("$INSTALL_DIR/model")
84
+ fi
85
+
86
+ echo "Files to remove:"
87
+ for file in "${FILES_TO_REMOVE[@]}"; do
88
+ if [[ -e "$file" ]]; then
89
+ echo -e " ${RED}✗${NC} $file"
90
+ fi
91
+ done
92
+ echo ""
93
+
94
+ # API Keys
95
+ API_KEY_FILES=(
96
+ "$USER_HOME/.glm_api_key"
97
+ "$USER_HOME/.minimax_api_key"
98
+ "$USER_HOME/.openai_api_key"
99
+ "$USER_HOME/.gemini_api_key"
100
+ "$USER_HOME/.xai_api_key"
101
+ "$USER_HOME/.groq_api_key"
102
+ )
103
+
104
+ FOUND_KEYS=()
105
+ for keyfile in "${API_KEY_FILES[@]}"; do
106
+ if [[ -f "$keyfile" ]]; then
107
+ FOUND_KEYS+=("$keyfile")
108
+ fi
109
+ done
110
+
111
+ if [[ ${#FOUND_KEYS[@]} -gt 0 ]]; then
112
+ echo -e "${YELLOW}Found API key files:${NC}"
113
+ for keyfile in "${FOUND_KEYS[@]}"; do
114
+ echo -e " ${YELLOW}🔑${NC} $keyfile"
115
+ done
116
+ echo ""
117
+ fi
118
+
119
+ # Confirmation
120
+ echo -e "${RED}⚠️ This action cannot be undone!${NC}"
121
+ echo ""
122
+ read -p "Remove Claude-All-New? (y/N): " confirm
123
+
124
+ if [[ ! "$confirm" =~ ^[Yy]$ ]]; then
125
+ echo "Cancelled."
126
+ exit 0
127
+ fi
128
+
129
+ echo ""
130
+
131
+ # Remove program files
132
+ echo -e "${BLUE}Removing program files...${NC}"
133
+ for file in "${FILES_TO_REMOVE[@]}"; do
134
+ if [[ -e "$file" ]]; then
135
+ rm -rf "$file" 2>/dev/null && echo -e " ${GREEN}✓${NC} Removed: $file" || echo -e " ${RED}✗${NC} Failed: $file"
136
+ fi
137
+ done
138
+
139
+ # Ask about API keys
140
+ if [[ ${#FOUND_KEYS[@]} -gt 0 ]]; then
141
+ echo ""
142
+ read -p "Also remove API key files? (y/N): " remove_keys
143
+
144
+ if [[ "$remove_keys" =~ ^[Yy]$ ]]; then
145
+ echo -e "${BLUE}Removing API key files...${NC}"
146
+ for keyfile in "${FOUND_KEYS[@]}"; do
147
+ rm -f "$keyfile" 2>/dev/null && echo -e " ${GREEN}✓${NC} Removed: $keyfile" || echo -e " ${RED}✗${NC} Failed: $keyfile"
148
+ done
149
+ else
150
+ echo -e "${GREEN}✓${NC} API keys preserved"
151
+ fi
152
+ fi
153
+
154
+ echo ""
155
+ echo -e "${GREEN}╔════════════════════════════════════════╗${NC}"
156
+ echo -e "${GREEN}║ Uninstall Complete! ║${NC}"
157
+ echo -e "${GREEN}╚════════════════════════════════════════╝${NC}"
158
+ echo ""
159
+ echo "Claude-All-New has been removed from your system."
160
+ echo ""
161
+ echo -e "${BLUE}To reinstall:${NC}"
162
+ echo " curl -fsSL https://raw.githubusercontent.com/zesbe/Claude-All-New/main/install-curl.sh | bash"
163
+ echo ""
@@ -0,0 +1,160 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Claude-All-New Updater
4
+ # Safely updates all files while preserving user data
5
+
6
+ set -e
7
+
8
+ GREEN='\033[0;32m'
9
+ BLUE='\033[0;34m'
10
+ YELLOW='\033[1;33m'
11
+ RED='\033[0;31m'
12
+ NC='\033[0m'
13
+
14
+ # Get installation directory
15
+ INSTALL_DIR="$HOME/.local/bin"
16
+ if [[ ! -f "$INSTALL_DIR/claude-all" ]]; then
17
+ INSTALL_DIR="/usr/local/bin"
18
+ if [[ ! -f "$INSTALL_DIR/claude-all" ]]; then
19
+ echo -e "${RED}Error: Claude-All-New not found. Please install first.${NC}"
20
+ exit 1
21
+ fi
22
+ fi
23
+
24
+ echo -e "${BLUE}🔄 Claude-All-New Updater${NC}"
25
+ echo "=================================="
26
+ echo -e "${BLUE}Installation directory: $INSTALL_DIR${NC}"
27
+ echo
28
+
29
+ # Get current version
30
+ CURRENT_VERSION=""
31
+ if [[ -f "$INSTALL_DIR/VERSION" ]]; then
32
+ CURRENT_VERSION=$(cat "$INSTALL_DIR/VERSION" | grep VERSION | cut -d'"' -f2)
33
+ echo -e "${YELLOW}Current version: $CURRENT_VERSION${NC}"
34
+ else
35
+ echo -e "${YELLOW}Current version: Unknown${NC}"
36
+ fi
37
+
38
+ # Download latest version
39
+ echo -e "${BLUE}Downloading latest version...${NC}"
40
+ TEMP_DIR=$(mktemp -d)
41
+ cd "$TEMP_DIR"
42
+
43
+ # Download files
44
+ if command -v wget &> /dev/null; then
45
+ DOWNLOAD_CMD="wget -q"
46
+ elif command -v curl &> /dev/null; then
47
+ DOWNLOAD_CMD="curl -fsSL"
48
+ else
49
+ echo -e "${RED}Error: wget or curl required${NC}"
50
+ exit 1
51
+ fi
52
+
53
+ # Get repository files
54
+ REPO_URL="https://raw.githubusercontent.com/zesbe/Claude-All-New/main"
55
+
56
+ # Download main script
57
+ echo -e "${BLUE}Downloading main script...${NC}"
58
+ $DOWNLOAD_CMD "$REPO_URL/claude-all" -O claude-new || {
59
+ echo -e "${RED}Failed to download claude-all${NC}"
60
+ exit 1
61
+ }
62
+
63
+ # Download version file
64
+ $DOWNLOAD_CMD "$REPO_URL/VERSION" -O VERSION || {
65
+ echo -e "${RED}Failed to download VERSION${NC}"
66
+ exit 1
67
+ }
68
+
69
+ # Get latest version
70
+ LATEST_VERSION=$(cat VERSION | grep VERSION | cut -d'"' -f2)
71
+ echo -e "${GREEN}Latest version: $LATEST_VERSION${NC}"
72
+
73
+ # Check if update needed
74
+ if [[ "$CURRENT_VERSION" == "$LATEST_VERSION" ]]; then
75
+ echo -e "${GREEN}✓ Already up to date!${NC}"
76
+ cd /
77
+ rm -rf "$TEMP_DIR"
78
+ exit 0
79
+ fi
80
+
81
+ # Backup user data before update
82
+ echo -e "${BLUE}Creating backup...${NC}"
83
+ BACKUP_DIR="$HOME/.claude-all-backup-$(date +%Y%m%d_%H%M%S)"
84
+ mkdir -p "$BACKUP_DIR"
85
+
86
+ # Backup API keys and sensitive configs
87
+ if [[ -f "$HOME/.config/claude-all/api_keys.json" ]]; then
88
+ cp "$HOME/.config/claude-all/api_keys.json" "$BACKUP_DIR/" 2>/dev/null || true
89
+ fi
90
+
91
+ # Backup model configs with user modifications
92
+ if [[ -d "$INSTALL_DIR/model" ]]; then
93
+ mkdir -p "$BACKUP_DIR/model"
94
+ cp -r "$INSTALL_DIR/model/"* "$BACKUP_DIR/model/" 2>/dev/null || true
95
+ fi
96
+
97
+ # Download updated files
98
+ echo -e "${BLUE}Downloading updated files...${NC}"
99
+
100
+ # Download all JSON model configs
101
+ mkdir -p bin
102
+ for file in antigravity.json gemini.json openai.json glm.json minimax.json groq.json xai.json openrouter.json ollama.json cohere.json deepseek.json mistral.json moonshot.json perplexity.json qwen.json agentrouter.json test.json; do
103
+ echo -e "${YELLOW} Downloading $file...${NC}"
104
+ $DOWNLOAD_CMD "$REPO_URL/bin/$file" -O "bin/$file" || {
105
+ echo -e "${RED}Failed to download $file${NC}"
106
+ }
107
+ done
108
+
109
+ # Download utility scripts
110
+ $DOWNLOAD_CMD "$REPO_URL/bin/api-manager" -O bin/api-manager || {
111
+ echo -e "${RED}Failed to download api-manager${NC}"
112
+ }
113
+
114
+ # Install updated files
115
+ echo -e "${BLUE}Installing updates...${NC}"
116
+
117
+ # Backup current executable
118
+ if [[ -f "$INSTALL_DIR/claude-all" ]]; then
119
+ cp "$INSTALL_DIR/claude-all" "$INSTALL_DIR/claude-all.backup"
120
+ fi
121
+
122
+ # Install new files
123
+ chmod +x claude-new
124
+ mv claude-new "$INSTALL_DIR/claude-all"
125
+ chmod +x bin/api-manager
126
+ cp -r bin/* "$INSTALL_DIR/"
127
+ cp VERSION "$INSTALL_DIR/"
128
+
129
+ # Restore user customizations if they exist
130
+ echo -e "${BLUE}Restoring customizations...${NC}"
131
+
132
+ # Check if user had custom model files and merge them
133
+ if [[ -d "$BACKUP_DIR/model" ]]; then
134
+ for backup_file in "$BACKUP_DIR/model"/*.json; do
135
+ if [[ -f "$backup_file" ]]; then
136
+ filename=$(basename "$backup_file")
137
+ if [[ -f "$INSTALL_DIR/model/$filename" ]]; then
138
+ # Compare and ask user if they want to keep their version
139
+ echo -e "${YELLOW}Found customized model config: $filename${NC}"
140
+ echo -e "${YELLOW}Keeping your customized version${NC}"
141
+ # Could add more sophisticated merge logic here
142
+ fi
143
+ fi
144
+ done
145
+ fi
146
+
147
+ # Set permissions
148
+ chmod +x "$INSTALL_DIR"/* 2>/dev/null || true
149
+
150
+ # Cleanup
151
+ echo -e "${BLUE}Cleaning up...${NC}"
152
+ cd /
153
+ rm -rf "$TEMP_DIR"
154
+
155
+ echo
156
+ echo -e "${GREEN}✓ Update completed successfully!${NC}"
157
+ echo -e "${GREEN} Updated from $CURRENT_VERSION to $LATEST_VERSION${NC}"
158
+ echo -e "${YELLOW} Backup saved at: $BACKUP_DIR${NC}"
159
+ echo
160
+ echo -e "${BLUE}Run 'claude-all' to use the updated version${NC}"