code-aide 1.18.1__tar.gz → 1.18.3__tar.gz

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 (65) hide show
  1. {code_aide-1.18.1 → code_aide-1.18.3}/PKG-INFO +1 -1
  2. {code_aide-1.18.1 → code_aide-1.18.3}/script-archive/amp-install.sh +7 -22
  3. {code_aide-1.18.1 → code_aide-1.18.3}/script-archive/claude-install.sh +62 -19
  4. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/__init__.py +1 -1
  5. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/data/tools.json +2 -2
  6. {code_aide-1.18.1 → code_aide-1.18.3}/.github/workflows/ci.yml +0 -0
  7. {code_aide-1.18.1 → code_aide-1.18.3}/.github/workflows/publish.yml +0 -0
  8. {code_aide-1.18.1 → code_aide-1.18.3}/.gitignore +0 -0
  9. {code_aide-1.18.1 → code_aide-1.18.3}/.gitlab-ci.yml +0 -0
  10. {code_aide-1.18.1 → code_aide-1.18.3}/.pre-commit-config.yaml +0 -0
  11. {code_aide-1.18.1 → code_aide-1.18.3}/AGENTS.md +0 -0
  12. {code_aide-1.18.1 → code_aide-1.18.3}/CLAUDE.md +0 -0
  13. {code_aide-1.18.1 → code_aide-1.18.3}/LICENSE +0 -0
  14. {code_aide-1.18.1 → code_aide-1.18.3}/Makefile +0 -0
  15. {code_aide-1.18.1 → code_aide-1.18.3}/README.md +0 -0
  16. {code_aide-1.18.1 → code_aide-1.18.3}/TODO.md +0 -0
  17. {code_aide-1.18.1 → code_aide-1.18.3}/pyproject.toml +0 -0
  18. {code_aide-1.18.1 → code_aide-1.18.3}/script-archive/README.md +0 -0
  19. {code_aide-1.18.1 → code_aide-1.18.3}/script-archive/antigravity-install.sh +0 -0
  20. {code_aide-1.18.1 → code_aide-1.18.3}/script-archive/cursor-install.sh +0 -0
  21. {code_aide-1.18.1 → code_aide-1.18.3}/specs/2026-05-03-qwen3.6-code-quality-analysis-original.md +0 -0
  22. {code_aide-1.18.1 → code_aide-1.18.3}/specs/2026-05-03-qwen3.6-code-quality-analysis.md +0 -0
  23. {code_aide-1.18.1 → code_aide-1.18.3}/specs/antigravity-cli-integration.md +0 -0
  24. {code_aide-1.18.1 → code_aide-1.18.3}/specs/auto-migrate-deprecated-installs.md +0 -0
  25. {code_aide-1.18.1 → code_aide-1.18.3}/specs/claude-native-installer-migration.md +0 -0
  26. {code_aide-1.18.1 → code_aide-1.18.3}/specs/missing-coding-llm-cli-tools.md +0 -0
  27. {code_aide-1.18.1 → code_aide-1.18.3}/specs/pre-commit-uv-setup.md +0 -0
  28. {code_aide-1.18.1 → code_aide-1.18.3}/specs/remove-bundled-version-baseline.md +0 -0
  29. {code_aide-1.18.1 → code_aide-1.18.3}/specs/unify-upgrade-eligibility-with-shared-evaluator.md +0 -0
  30. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/__main__.py +0 -0
  31. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/commands_actions.py +0 -0
  32. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/commands_tools.py +0 -0
  33. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/config.py +0 -0
  34. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/console.py +0 -0
  35. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/constants.py +0 -0
  36. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/detection.py +0 -0
  37. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/detection_types.py +0 -0
  38. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/entry.py +0 -0
  39. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/install.py +0 -0
  40. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/install_types.py +0 -0
  41. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/operation_handlers.py +0 -0
  42. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/operations.py +0 -0
  43. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/package_info.py +0 -0
  44. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/package_managers.py +0 -0
  45. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/prereqs.py +0 -0
  46. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/status.py +0 -0
  47. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/status_print.py +0 -0
  48. {code_aide-1.18.1 → code_aide-1.18.3}/src/code_aide/versions.py +0 -0
  49. {code_aide-1.18.1 → code_aide-1.18.3}/tests/test_commands_actions.py +0 -0
  50. {code_aide-1.18.1 → code_aide-1.18.3}/tests/test_commands_tools.py +0 -0
  51. {code_aide-1.18.1 → code_aide-1.18.3}/tests/test_config.py +0 -0
  52. {code_aide-1.18.1 → code_aide-1.18.3}/tests/test_console.py +0 -0
  53. {code_aide-1.18.1 → code_aide-1.18.3}/tests/test_constants.py +0 -0
  54. {code_aide-1.18.1 → code_aide-1.18.3}/tests/test_detection.py +0 -0
  55. {code_aide-1.18.1 → code_aide-1.18.3}/tests/test_entry.py +0 -0
  56. {code_aide-1.18.1 → code_aide-1.18.3}/tests/test_error_paths.py +0 -0
  57. {code_aide-1.18.1 → code_aide-1.18.3}/tests/test_install.py +0 -0
  58. {code_aide-1.18.1 → code_aide-1.18.3}/tests/test_install_types.py +0 -0
  59. {code_aide-1.18.1 → code_aide-1.18.3}/tests/test_operations.py +0 -0
  60. {code_aide-1.18.1 → code_aide-1.18.3}/tests/test_package_info.py +0 -0
  61. {code_aide-1.18.1 → code_aide-1.18.3}/tests/test_package_managers.py +0 -0
  62. {code_aide-1.18.1 → code_aide-1.18.3}/tests/test_prereqs.py +0 -0
  63. {code_aide-1.18.1 → code_aide-1.18.3}/tests/test_status.py +0 -0
  64. {code_aide-1.18.1 → code_aide-1.18.3}/tests/test_versions.py +0 -0
  65. {code_aide-1.18.1 → code_aide-1.18.3}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: code-aide
3
- Version: 1.18.1
3
+ Version: 1.18.3
4
4
  Summary: Manage AI coding CLI tools (Claude, Antigravity, Copilot, Cursor, Gemini, Amp, Codex)
5
5
  Project-URL: Homepage, https://github.com/dajobe/code-aide
6
6
  Project-URL: Repository, https://github.com/dajobe/code-aide
@@ -164,28 +164,13 @@ detect_platform() {
164
164
  ;;
165
165
  esac
166
166
 
167
- # Check for baseline builds on x64
168
- case "$target" in
169
- 'darwin-x64')
170
- # Check Rosetta 2
171
- if [[ $(sysctl -n sysctl.proc_translated 2>/dev/null) = 1 ]]; then
172
- target=darwin-arm64
173
- log "Your shell is running in Rosetta 2. Using $target instead"
174
- elif [[ $(sysctl -a 2>/dev/null | grep machdep.cpu | grep AVX2) == '' ]]; then
175
- target="darwin-x64-baseline"
176
- fi
177
- ;;
178
- 'linux-x64')
179
- # Check AVX2 support
180
- if [[ $(grep avx2 /proc/cpuinfo 2>/dev/null) = '' ]]; then
181
- target="linux-x64-baseline"
182
- fi
183
- ;;
184
- 'windows-x64')
185
- # For Windows, default to baseline for better compatibility
186
- target="windows-x64-baseline"
187
- ;;
188
- esac
167
+ # Each OS has one x64 build that also runs on CPUs without AVX2, so the CPU features do not
168
+ # affect the target. Releases still publish the old -baseline names as copies for older
169
+ # installers and clients.
170
+ if [[ "$target" == 'darwin-x64' && $(sysctl -n sysctl.proc_translated 2>/dev/null) = 1 ]]; then
171
+ target=darwin-arm64
172
+ log "Your shell is running in Rosetta 2. Using $target instead"
173
+ fi
189
174
 
190
175
  echo "$target"
191
176
  }
@@ -55,6 +55,11 @@ if command -v jq >/dev/null 2>&1; then
55
55
  HAS_JQ=true
56
56
  fi
57
57
 
58
+ HAS_ZSTD=false
59
+ if command -v zstd >/dev/null 2>&1; then
60
+ HAS_ZSTD=true
61
+ fi
62
+
58
63
  # Download function that works with both curl and wget
59
64
  download_file() {
60
65
  local url="$1"
@@ -85,8 +90,9 @@ get_checksum_from_manifest() {
85
90
  # Normalize JSON to single line and extract checksum
86
91
  json=$(echo "$json" | tr -d '\n\r\t' | sed 's/ \+/ /g')
87
92
 
88
- # Extract checksum for platform using bash regex
89
- if [[ $json =~ \"$platform\"[^}]*\"checksum\"[[:space:]]*:[[:space:]]*\"([a-f0-9]{64})\" ]]; then
93
+ # Extract checksum for platform using bash regex. [^{}] keeps the match
94
+ # inside the platform's own object (manifest.zst.json nests a darwin bundle).
95
+ if [[ $json =~ \"$platform\"[[:space:]]*:[[:space:]]*[{][^{}]*\"checksum\"[[:space:]]*:[[:space:]]*\"([a-f0-9]{64})\" ]]; then
90
96
  echo "${BASH_REMATCH[1]}"
91
97
  return 0
92
98
  fi
@@ -94,6 +100,17 @@ get_checksum_from_manifest() {
94
100
  return 1
95
101
  }
96
102
 
103
+ get_size_from_manifest() {
104
+ local json="$1"
105
+ local platform="$2"
106
+ json=$(echo "$json" | tr -d '\n\r\t' | sed 's/ \+/ /g')
107
+ if [[ $json =~ \"$platform\"[[:space:]]*:[[:space:]]*[{][^{}]*\"size\"[[:space:]]*:[[:space:]]*([0-9]+) ]]; then
108
+ echo "${BASH_REMATCH[1]}"
109
+ return 0
110
+ fi
111
+ return 1
112
+ }
113
+
97
114
  # Detect platform
98
115
  case "$(uname -s)" in
99
116
  Darwin) os="darwin" ;;
@@ -144,8 +161,10 @@ manifest_json=$(download_file "$DOWNLOAD_BASE_URL/$version/manifest.json")
144
161
  # Use jq if available, otherwise fall back to pure bash parsing
145
162
  if [ "$HAS_JQ" = true ]; then
146
163
  checksum=$(echo "$manifest_json" | jq -r ".platforms[\"$platform\"].checksum // empty")
164
+ size=$(echo "$manifest_json" | jq -r ".platforms[\"$platform\"].size // empty")
147
165
  else
148
- checksum=$(get_checksum_from_manifest "$manifest_json" "$platform")
166
+ checksum=$(get_checksum_from_manifest "$manifest_json" "$platform" || true)
167
+ size=$(get_size_from_manifest "$manifest_json" "$platform" || true)
149
168
  fi
150
169
 
151
170
  # Validate checksum format (SHA256 = 64 hex characters)
@@ -154,25 +173,49 @@ if [ -z "$checksum" ] || [[ ! "$checksum" =~ ^[a-f0-9]{64}$ ]]; then
154
173
  exit 1
155
174
  fi
156
175
 
157
- # Download and verify
158
- binary_path="$DOWNLOAD_DIR/claude-$version-$platform"
159
- if ! download_file "$DOWNLOAD_BASE_URL/$version/$platform/claude" "$binary_path"; then
160
- echo "Download failed" >&2
161
- rm -f "$binary_path"
162
- exit 1
163
- fi
176
+ checksum_matches() {
177
+ local actual
178
+ if [ "$os" = "darwin" ]; then
179
+ actual=$(shasum -a 256 "$1" | cut -d' ' -f1)
180
+ else
181
+ actual=$(sha256sum "$1" | cut -d' ' -f1)
182
+ fi
183
+ [ "$actual" = "$2" ]
184
+ }
164
185
 
165
- # Pick the right checksum tool
166
- if [ "$os" = "darwin" ]; then
167
- actual=$(shasum -a 256 "$binary_path" | cut -d' ' -f1)
168
- else
169
- actual=$(sha256sum "$binary_path" | cut -d' ' -f1)
186
+ zst_checksum=""
187
+ if [ "$HAS_ZSTD" = true ] && [[ "$size" =~ ^[1-9][0-9]*$ ]]; then
188
+ zst_manifest_json=$(download_file "$DOWNLOAD_BASE_URL/$version/manifest.zst.json" 2>/dev/null || true)
189
+ if [ "$HAS_JQ" = true ]; then
190
+ zst_checksum=$(echo "$zst_manifest_json" | jq -r ".platforms[\"$platform\"].checksum // empty" 2>/dev/null || true)
191
+ else
192
+ zst_checksum=$(get_checksum_from_manifest "$zst_manifest_json" "$platform" || true)
193
+ fi
170
194
  fi
171
195
 
172
- if [ "$actual" != "$checksum" ]; then
173
- echo "Checksum verification failed" >&2
174
- rm -f "$binary_path"
175
- exit 1
196
+ binary_path="$DOWNLOAD_DIR/claude-$version-$platform"
197
+ verified=false
198
+ if [[ "$zst_checksum" =~ ^[a-f0-9]{64}$ ]]; then
199
+ if download_file "$DOWNLOAD_BASE_URL/$version/$platform/claude.zst" "$binary_path.zst" \
200
+ && checksum_matches "$binary_path.zst" "$zst_checksum"; then
201
+ zstd -d -q -c "$binary_path.zst" 2>/dev/null | head -c "$size" > "$binary_path" || true
202
+ if checksum_matches "$binary_path" "$checksum"; then
203
+ verified=true
204
+ fi
205
+ fi
206
+ rm -f "$binary_path.zst"
207
+ fi
208
+ if [ "$verified" = false ]; then
209
+ if ! download_file "$DOWNLOAD_BASE_URL/$version/$platform/claude" "$binary_path"; then
210
+ echo "Download failed" >&2
211
+ rm -f "$binary_path"
212
+ exit 1
213
+ fi
214
+ if ! checksum_matches "$binary_path" "$checksum"; then
215
+ echo "Checksum verification failed" >&2
216
+ rm -f "$binary_path"
217
+ exit 1
218
+ fi
176
219
  fi
177
220
 
178
221
  chmod +x "$binary_path"
@@ -1,3 +1,3 @@
1
1
  """code-aide - Manage AI coding CLI tools."""
2
2
 
3
- __version__ = "1.18.1"
3
+ __version__ = "1.18.3"
@@ -33,7 +33,7 @@
33
33
  "command": "claude",
34
34
  "install_type": "script",
35
35
  "install_url": "https://claude.ai/install.sh",
36
- "install_sha256": "cde4f1702d3b1695f92b73d26888364e17bca476e17f0fd676484c951d36c125",
36
+ "install_sha256": "3a68d3406cf674e17bed1733a4dcf37805e2e47d87417700007d7e1aa766a944",
37
37
  "version_url": "https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases/latest",
38
38
  "prerequisites": [],
39
39
  "min_node_version": null,
@@ -89,7 +89,7 @@
89
89
  "command": "amp",
90
90
  "install_type": "script",
91
91
  "install_url": "https://ampcode.com/install.sh",
92
- "install_sha256": "07bea1669144a5191c873a61a3244266ca046557bff7123f0be41d0723592297",
92
+ "install_sha256": "70f9a234fdc1aee9bf88af73c38a80435556e5dd364d204bd0ff8b6a27f23f5f",
93
93
  "install_script_path_prepend": [
94
94
  "~/.local/bin"
95
95
  ],
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes