@go-hare/claude-code 2.6.30 → 2.6.32
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.
- package/install.cjs +224 -224
- package/package.json +9 -9
package/install.cjs
CHANGED
|
@@ -1,224 +1,224 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// Postinstall for the claude wrapper package.
|
|
3
|
-
//
|
|
4
|
-
// In development (monorepo with .git), delegates to the dev postinstall scripts.
|
|
5
|
-
// In production (npm install from registry), copies the native binary from the
|
|
6
|
-
// platform-specific optionalDependency into bin/claude.exe.
|
|
7
|
-
//
|
|
8
|
-
// Platform detection + PLATFORMS map is duplicated in cli-wrapper.cjs — keep in sync.
|
|
9
|
-
|
|
10
|
-
const { spawnSync } = require('child_process')
|
|
11
|
-
const {
|
|
12
|
-
copyFileSync,
|
|
13
|
-
existsSync,
|
|
14
|
-
linkSync,
|
|
15
|
-
unlinkSync,
|
|
16
|
-
chmodSync,
|
|
17
|
-
readFileSync,
|
|
18
|
-
writeFileSync,
|
|
19
|
-
statSync,
|
|
20
|
-
readdirSync,
|
|
21
|
-
} = require('fs')
|
|
22
|
-
const { arch } = require('os')
|
|
23
|
-
const path = require('path')
|
|
24
|
-
|
|
25
|
-
// Dev environment detection: if .git exists at package root, we're in the monorepo
|
|
26
|
-
if (existsSync(path.join(__dirname, '.git'))) {
|
|
27
|
-
const r = spawnSync(
|
|
28
|
-
'node',
|
|
29
|
-
[
|
|
30
|
-
'scripts/run-parallel.mjs',
|
|
31
|
-
'scripts/postinstall.cjs',
|
|
32
|
-
'scripts/setup-chrome-mcp.mjs',
|
|
33
|
-
],
|
|
34
|
-
{ cwd: __dirname, stdio: 'inherit' },
|
|
35
|
-
)
|
|
36
|
-
process.exit(r.status ?? 0)
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const PACKAGE_PREFIX = '@go-hare/claude-code'
|
|
40
|
-
const BINARY_NAME = 'claude'
|
|
41
|
-
const WRAPPER_NAME = require('./package.json').name
|
|
42
|
-
|
|
43
|
-
const PLATFORMS = {
|
|
44
|
-
'darwin-arm64': { pkg: PACKAGE_PREFIX + '-darwin-arm64', bin: BINARY_NAME },
|
|
45
|
-
'darwin-x64': { pkg: PACKAGE_PREFIX + '-darwin-x64', bin: BINARY_NAME },
|
|
46
|
-
'linux-x64': { pkg: PACKAGE_PREFIX + '-linux-x64', bin: BINARY_NAME },
|
|
47
|
-
'linux-arm64': { pkg: PACKAGE_PREFIX + '-linux-arm64', bin: BINARY_NAME },
|
|
48
|
-
'linux-x64-musl': {
|
|
49
|
-
pkg: PACKAGE_PREFIX + '-linux-x64-musl',
|
|
50
|
-
bin: BINARY_NAME,
|
|
51
|
-
},
|
|
52
|
-
'linux-arm64-musl': {
|
|
53
|
-
pkg: PACKAGE_PREFIX + '-linux-arm64-musl',
|
|
54
|
-
bin: BINARY_NAME,
|
|
55
|
-
},
|
|
56
|
-
'linux-arm64-android': {
|
|
57
|
-
pkg: PACKAGE_PREFIX + '-linux-arm64-android',
|
|
58
|
-
bin: BINARY_NAME,
|
|
59
|
-
},
|
|
60
|
-
'linux-x64-android': {
|
|
61
|
-
pkg: PACKAGE_PREFIX + '-linux-x64-android',
|
|
62
|
-
bin: BINARY_NAME,
|
|
63
|
-
},
|
|
64
|
-
'freebsd-x64': { pkg: PACKAGE_PREFIX + '-freebsd-x64', bin: BINARY_NAME },
|
|
65
|
-
'freebsd-arm64': {
|
|
66
|
-
pkg: PACKAGE_PREFIX + '-freebsd-arm64',
|
|
67
|
-
bin: BINARY_NAME,
|
|
68
|
-
},
|
|
69
|
-
'win32-x64': {
|
|
70
|
-
pkg: PACKAGE_PREFIX + '-win32-x64',
|
|
71
|
-
bin: BINARY_NAME + '.exe',
|
|
72
|
-
},
|
|
73
|
-
'win32-arm64': {
|
|
74
|
-
pkg: PACKAGE_PREFIX + '-win32-arm64',
|
|
75
|
-
bin: BINARY_NAME + '.exe',
|
|
76
|
-
},
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
function detectMusl() {
|
|
80
|
-
if (process.platform !== 'linux') return false
|
|
81
|
-
const report =
|
|
82
|
-
typeof process.report?.getReport === 'function'
|
|
83
|
-
? process.report.getReport()
|
|
84
|
-
: null
|
|
85
|
-
return report != null && report.header?.glibcVersionRuntime === undefined
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
function getPlatformKey() {
|
|
89
|
-
const platform = process.platform
|
|
90
|
-
let cpu = arch()
|
|
91
|
-
if (platform === 'android') return 'linux-' + cpu + '-android'
|
|
92
|
-
if (platform === 'linux')
|
|
93
|
-
return 'linux-' + cpu + (detectMusl() ? '-musl' : '')
|
|
94
|
-
if (platform === 'darwin' && cpu === 'x64') {
|
|
95
|
-
const r = spawnSync('sysctl', ['-n', 'sysctl.proc_translated'], {
|
|
96
|
-
encoding: 'utf8',
|
|
97
|
-
})
|
|
98
|
-
if (r.stdout?.trim() === '1') cpu = 'arm64'
|
|
99
|
-
}
|
|
100
|
-
return platform + '-' + cpu
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
function placeBinary(src, dest) {
|
|
104
|
-
try {
|
|
105
|
-
linkSync(src, dest)
|
|
106
|
-
} catch (err) {
|
|
107
|
-
if (err.code === 'EEXIST') {
|
|
108
|
-
const stub = statSync(dest).size < 4096 ? readFileSync(dest) : null
|
|
109
|
-
unlinkSync(dest)
|
|
110
|
-
try {
|
|
111
|
-
linkSync(src, dest)
|
|
112
|
-
} catch {
|
|
113
|
-
try {
|
|
114
|
-
copyFileSync(src, dest)
|
|
115
|
-
} catch (copyErr) {
|
|
116
|
-
if (stub) {
|
|
117
|
-
try {
|
|
118
|
-
writeFileSync(dest, stub, { mode: 0o755 })
|
|
119
|
-
} catch {}
|
|
120
|
-
}
|
|
121
|
-
throw copyErr
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
} else if (err.code === 'EXDEV' || err.code === 'EPERM') {
|
|
125
|
-
copyFileSync(src, dest)
|
|
126
|
-
} else {
|
|
127
|
-
throw err
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
if (process.platform !== 'win32') chmodSync(dest, 0o755)
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
// npm install may drop the executable bit on vendored helpers (clipboard-image,
|
|
134
|
-
// ripgrep). Only the main binary was chmod'd before — restore +x under vendor/.
|
|
135
|
-
function ensureVendorBinariesExecutable(pkgDir) {
|
|
136
|
-
if (process.platform === 'win32') return
|
|
137
|
-
|
|
138
|
-
const vendorDir = path.join(pkgDir, 'vendor')
|
|
139
|
-
if (!existsSync(vendorDir)) return
|
|
140
|
-
|
|
141
|
-
const stack = [vendorDir]
|
|
142
|
-
while (stack.length > 0) {
|
|
143
|
-
const dir = stack.pop()
|
|
144
|
-
let entries
|
|
145
|
-
try {
|
|
146
|
-
entries = readdirSync(dir, { withFileTypes: true })
|
|
147
|
-
} catch {
|
|
148
|
-
continue
|
|
149
|
-
}
|
|
150
|
-
for (const entry of entries) {
|
|
151
|
-
const full = path.join(dir, entry.name)
|
|
152
|
-
if (entry.isDirectory()) {
|
|
153
|
-
stack.push(full)
|
|
154
|
-
continue
|
|
155
|
-
}
|
|
156
|
-
if (!entry.isFile()) continue
|
|
157
|
-
try {
|
|
158
|
-
chmodSync(full, 0o755)
|
|
159
|
-
} catch {
|
|
160
|
-
// Best-effort: missing write permission shouldn't fail install.
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
function main() {
|
|
167
|
-
const platformKey = getPlatformKey()
|
|
168
|
-
const info = PLATFORMS[platformKey]
|
|
169
|
-
|
|
170
|
-
if (!info) {
|
|
171
|
-
console.error(
|
|
172
|
-
`[${WRAPPER_NAME} postinstall] Unsupported platform: ${process.platform} ${arch()}`,
|
|
173
|
-
)
|
|
174
|
-
console.error(` Supported: ${Object.keys(PLATFORMS).join(', ')}`)
|
|
175
|
-
return
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
const optionalDeps = require('./package.json').optionalDependencies || {}
|
|
179
|
-
if (!optionalDeps[info.pkg]) {
|
|
180
|
-
console.error(
|
|
181
|
-
`[${WRAPPER_NAME} postinstall] Native binaries for ${platformKey} are not available on this release channel.`,
|
|
182
|
-
)
|
|
183
|
-
console.error(
|
|
184
|
-
` Available: ${Object.keys(optionalDeps)
|
|
185
|
-
.map(p => p.replace(PACKAGE_PREFIX + '-', ''))
|
|
186
|
-
.join(', ')}`,
|
|
187
|
-
)
|
|
188
|
-
return
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
let pkgDir
|
|
192
|
-
let src
|
|
193
|
-
try {
|
|
194
|
-
pkgDir = path.dirname(require.resolve(info.pkg + '/package.json'))
|
|
195
|
-
src = path.join(pkgDir, info.bin)
|
|
196
|
-
} catch {
|
|
197
|
-
console.error(
|
|
198
|
-
`[${WRAPPER_NAME} postinstall] Native package "${info.pkg}" not found.`,
|
|
199
|
-
)
|
|
200
|
-
console.error(
|
|
201
|
-
' This happens with --omit=optional or when the download failed.',
|
|
202
|
-
)
|
|
203
|
-
console.error(
|
|
204
|
-
' The `claude` command will print instructions when invoked.',
|
|
205
|
-
)
|
|
206
|
-
console.error(' Fallback: node ' + path.join(__dirname, 'cli-wrapper.cjs'))
|
|
207
|
-
return
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
const dest = path.join(__dirname, 'bin', 'claude.exe')
|
|
211
|
-
|
|
212
|
-
try {
|
|
213
|
-
placeBinary(src, dest)
|
|
214
|
-
ensureVendorBinariesExecutable(pkgDir)
|
|
215
|
-
} catch (err) {
|
|
216
|
-
console.error(
|
|
217
|
-
`[${WRAPPER_NAME} postinstall] Failed to place binary: ${err.message}`,
|
|
218
|
-
)
|
|
219
|
-
console.error(' Fallback: node ' + path.join(__dirname, 'cli-wrapper.cjs'))
|
|
220
|
-
process.exitCode = 1
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
main()
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Postinstall for the claude wrapper package.
|
|
3
|
+
//
|
|
4
|
+
// In development (monorepo with .git), delegates to the dev postinstall scripts.
|
|
5
|
+
// In production (npm install from registry), copies the native binary from the
|
|
6
|
+
// platform-specific optionalDependency into bin/claude.exe.
|
|
7
|
+
//
|
|
8
|
+
// Platform detection + PLATFORMS map is duplicated in cli-wrapper.cjs — keep in sync.
|
|
9
|
+
|
|
10
|
+
const { spawnSync } = require('child_process')
|
|
11
|
+
const {
|
|
12
|
+
copyFileSync,
|
|
13
|
+
existsSync,
|
|
14
|
+
linkSync,
|
|
15
|
+
unlinkSync,
|
|
16
|
+
chmodSync,
|
|
17
|
+
readFileSync,
|
|
18
|
+
writeFileSync,
|
|
19
|
+
statSync,
|
|
20
|
+
readdirSync,
|
|
21
|
+
} = require('fs')
|
|
22
|
+
const { arch } = require('os')
|
|
23
|
+
const path = require('path')
|
|
24
|
+
|
|
25
|
+
// Dev environment detection: if .git exists at package root, we're in the monorepo
|
|
26
|
+
if (existsSync(path.join(__dirname, '.git'))) {
|
|
27
|
+
const r = spawnSync(
|
|
28
|
+
'node',
|
|
29
|
+
[
|
|
30
|
+
'scripts/run-parallel.mjs',
|
|
31
|
+
'scripts/postinstall.cjs',
|
|
32
|
+
'scripts/setup-chrome-mcp.mjs',
|
|
33
|
+
],
|
|
34
|
+
{ cwd: __dirname, stdio: 'inherit' },
|
|
35
|
+
)
|
|
36
|
+
process.exit(r.status ?? 0)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const PACKAGE_PREFIX = '@go-hare/claude-code'
|
|
40
|
+
const BINARY_NAME = 'claude'
|
|
41
|
+
const WRAPPER_NAME = require('./package.json').name
|
|
42
|
+
|
|
43
|
+
const PLATFORMS = {
|
|
44
|
+
'darwin-arm64': { pkg: PACKAGE_PREFIX + '-darwin-arm64', bin: BINARY_NAME },
|
|
45
|
+
'darwin-x64': { pkg: PACKAGE_PREFIX + '-darwin-x64', bin: BINARY_NAME },
|
|
46
|
+
'linux-x64': { pkg: PACKAGE_PREFIX + '-linux-x64', bin: BINARY_NAME },
|
|
47
|
+
'linux-arm64': { pkg: PACKAGE_PREFIX + '-linux-arm64', bin: BINARY_NAME },
|
|
48
|
+
'linux-x64-musl': {
|
|
49
|
+
pkg: PACKAGE_PREFIX + '-linux-x64-musl',
|
|
50
|
+
bin: BINARY_NAME,
|
|
51
|
+
},
|
|
52
|
+
'linux-arm64-musl': {
|
|
53
|
+
pkg: PACKAGE_PREFIX + '-linux-arm64-musl',
|
|
54
|
+
bin: BINARY_NAME,
|
|
55
|
+
},
|
|
56
|
+
'linux-arm64-android': {
|
|
57
|
+
pkg: PACKAGE_PREFIX + '-linux-arm64-android',
|
|
58
|
+
bin: BINARY_NAME,
|
|
59
|
+
},
|
|
60
|
+
'linux-x64-android': {
|
|
61
|
+
pkg: PACKAGE_PREFIX + '-linux-x64-android',
|
|
62
|
+
bin: BINARY_NAME,
|
|
63
|
+
},
|
|
64
|
+
'freebsd-x64': { pkg: PACKAGE_PREFIX + '-freebsd-x64', bin: BINARY_NAME },
|
|
65
|
+
'freebsd-arm64': {
|
|
66
|
+
pkg: PACKAGE_PREFIX + '-freebsd-arm64',
|
|
67
|
+
bin: BINARY_NAME,
|
|
68
|
+
},
|
|
69
|
+
'win32-x64': {
|
|
70
|
+
pkg: PACKAGE_PREFIX + '-win32-x64',
|
|
71
|
+
bin: BINARY_NAME + '.exe',
|
|
72
|
+
},
|
|
73
|
+
'win32-arm64': {
|
|
74
|
+
pkg: PACKAGE_PREFIX + '-win32-arm64',
|
|
75
|
+
bin: BINARY_NAME + '.exe',
|
|
76
|
+
},
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function detectMusl() {
|
|
80
|
+
if (process.platform !== 'linux') return false
|
|
81
|
+
const report =
|
|
82
|
+
typeof process.report?.getReport === 'function'
|
|
83
|
+
? process.report.getReport()
|
|
84
|
+
: null
|
|
85
|
+
return report != null && report.header?.glibcVersionRuntime === undefined
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function getPlatformKey() {
|
|
89
|
+
const platform = process.platform
|
|
90
|
+
let cpu = arch()
|
|
91
|
+
if (platform === 'android') return 'linux-' + cpu + '-android'
|
|
92
|
+
if (platform === 'linux')
|
|
93
|
+
return 'linux-' + cpu + (detectMusl() ? '-musl' : '')
|
|
94
|
+
if (platform === 'darwin' && cpu === 'x64') {
|
|
95
|
+
const r = spawnSync('sysctl', ['-n', 'sysctl.proc_translated'], {
|
|
96
|
+
encoding: 'utf8',
|
|
97
|
+
})
|
|
98
|
+
if (r.stdout?.trim() === '1') cpu = 'arm64'
|
|
99
|
+
}
|
|
100
|
+
return platform + '-' + cpu
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function placeBinary(src, dest) {
|
|
104
|
+
try {
|
|
105
|
+
linkSync(src, dest)
|
|
106
|
+
} catch (err) {
|
|
107
|
+
if (err.code === 'EEXIST') {
|
|
108
|
+
const stub = statSync(dest).size < 4096 ? readFileSync(dest) : null
|
|
109
|
+
unlinkSync(dest)
|
|
110
|
+
try {
|
|
111
|
+
linkSync(src, dest)
|
|
112
|
+
} catch {
|
|
113
|
+
try {
|
|
114
|
+
copyFileSync(src, dest)
|
|
115
|
+
} catch (copyErr) {
|
|
116
|
+
if (stub) {
|
|
117
|
+
try {
|
|
118
|
+
writeFileSync(dest, stub, { mode: 0o755 })
|
|
119
|
+
} catch {}
|
|
120
|
+
}
|
|
121
|
+
throw copyErr
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
} else if (err.code === 'EXDEV' || err.code === 'EPERM') {
|
|
125
|
+
copyFileSync(src, dest)
|
|
126
|
+
} else {
|
|
127
|
+
throw err
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (process.platform !== 'win32') chmodSync(dest, 0o755)
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// npm install may drop the executable bit on vendored helpers (clipboard-image,
|
|
134
|
+
// ripgrep). Only the main binary was chmod'd before — restore +x under vendor/.
|
|
135
|
+
function ensureVendorBinariesExecutable(pkgDir) {
|
|
136
|
+
if (process.platform === 'win32') return
|
|
137
|
+
|
|
138
|
+
const vendorDir = path.join(pkgDir, 'vendor')
|
|
139
|
+
if (!existsSync(vendorDir)) return
|
|
140
|
+
|
|
141
|
+
const stack = [vendorDir]
|
|
142
|
+
while (stack.length > 0) {
|
|
143
|
+
const dir = stack.pop()
|
|
144
|
+
let entries
|
|
145
|
+
try {
|
|
146
|
+
entries = readdirSync(dir, { withFileTypes: true })
|
|
147
|
+
} catch {
|
|
148
|
+
continue
|
|
149
|
+
}
|
|
150
|
+
for (const entry of entries) {
|
|
151
|
+
const full = path.join(dir, entry.name)
|
|
152
|
+
if (entry.isDirectory()) {
|
|
153
|
+
stack.push(full)
|
|
154
|
+
continue
|
|
155
|
+
}
|
|
156
|
+
if (!entry.isFile()) continue
|
|
157
|
+
try {
|
|
158
|
+
chmodSync(full, 0o755)
|
|
159
|
+
} catch {
|
|
160
|
+
// Best-effort: missing write permission shouldn't fail install.
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
function main() {
|
|
167
|
+
const platformKey = getPlatformKey()
|
|
168
|
+
const info = PLATFORMS[platformKey]
|
|
169
|
+
|
|
170
|
+
if (!info) {
|
|
171
|
+
console.error(
|
|
172
|
+
`[${WRAPPER_NAME} postinstall] Unsupported platform: ${process.platform} ${arch()}`,
|
|
173
|
+
)
|
|
174
|
+
console.error(` Supported: ${Object.keys(PLATFORMS).join(', ')}`)
|
|
175
|
+
return
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
const optionalDeps = require('./package.json').optionalDependencies || {}
|
|
179
|
+
if (!optionalDeps[info.pkg]) {
|
|
180
|
+
console.error(
|
|
181
|
+
`[${WRAPPER_NAME} postinstall] Native binaries for ${platformKey} are not available on this release channel.`,
|
|
182
|
+
)
|
|
183
|
+
console.error(
|
|
184
|
+
` Available: ${Object.keys(optionalDeps)
|
|
185
|
+
.map(p => p.replace(PACKAGE_PREFIX + '-', ''))
|
|
186
|
+
.join(', ')}`,
|
|
187
|
+
)
|
|
188
|
+
return
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
let pkgDir
|
|
192
|
+
let src
|
|
193
|
+
try {
|
|
194
|
+
pkgDir = path.dirname(require.resolve(info.pkg + '/package.json'))
|
|
195
|
+
src = path.join(pkgDir, info.bin)
|
|
196
|
+
} catch {
|
|
197
|
+
console.error(
|
|
198
|
+
`[${WRAPPER_NAME} postinstall] Native package "${info.pkg}" not found.`,
|
|
199
|
+
)
|
|
200
|
+
console.error(
|
|
201
|
+
' This happens with --omit=optional or when the download failed.',
|
|
202
|
+
)
|
|
203
|
+
console.error(
|
|
204
|
+
' The `claude` command will print instructions when invoked.',
|
|
205
|
+
)
|
|
206
|
+
console.error(' Fallback: node ' + path.join(__dirname, 'cli-wrapper.cjs'))
|
|
207
|
+
return
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
const dest = path.join(__dirname, 'bin', 'claude.exe')
|
|
211
|
+
|
|
212
|
+
try {
|
|
213
|
+
placeBinary(src, dest)
|
|
214
|
+
ensureVendorBinariesExecutable(pkgDir)
|
|
215
|
+
} catch (err) {
|
|
216
|
+
console.error(
|
|
217
|
+
`[${WRAPPER_NAME} postinstall] Failed to place binary: ${err.message}`,
|
|
218
|
+
)
|
|
219
|
+
console.error(' Fallback: node ' + path.join(__dirname, 'cli-wrapper.cjs'))
|
|
220
|
+
process.exitCode = 1
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
main()
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@go-hare/claude-code",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.32",
|
|
4
4
|
"description": "Reverse-engineered Anthropic Claude Code CLI — interactive AI coding assistant in the terminal",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "DeQiang",
|
|
@@ -39,14 +39,14 @@
|
|
|
39
39
|
"cli-wrapper.cjs"
|
|
40
40
|
],
|
|
41
41
|
"optionalDependencies": {
|
|
42
|
-
"@go-hare/claude-code-darwin-arm64": ">=2.6.
|
|
43
|
-
"@go-hare/claude-code-darwin-x64": ">=2.6.
|
|
44
|
-
"@go-hare/claude-code-linux-x64": ">=2.6.
|
|
45
|
-
"@go-hare/claude-code-linux-arm64": ">=2.6.
|
|
46
|
-
"@go-hare/claude-code-linux-x64-musl": ">=2.6.
|
|
47
|
-
"@go-hare/claude-code-linux-arm64-musl": ">=2.6.
|
|
48
|
-
"@go-hare/claude-code-win32-x64": ">=2.6.
|
|
49
|
-
"@go-hare/claude-code-win32-arm64": ">=2.6.
|
|
42
|
+
"@go-hare/claude-code-darwin-arm64": ">=2.6.32",
|
|
43
|
+
"@go-hare/claude-code-darwin-x64": ">=2.6.32",
|
|
44
|
+
"@go-hare/claude-code-linux-x64": ">=2.6.32",
|
|
45
|
+
"@go-hare/claude-code-linux-arm64": ">=2.6.32",
|
|
46
|
+
"@go-hare/claude-code-linux-x64-musl": ">=2.6.32",
|
|
47
|
+
"@go-hare/claude-code-linux-arm64-musl": ">=2.6.32",
|
|
48
|
+
"@go-hare/claude-code-win32-x64": ">=2.6.32",
|
|
49
|
+
"@go-hare/claude-code-win32-arm64": ">=2.6.32",
|
|
50
50
|
"doubaoime-asr": "^0.1.0"
|
|
51
51
|
},
|
|
52
52
|
"scripts": {
|