@go-hare/claude-code 2.6.10 → 2.6.11

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 (3) hide show
  1. package/cli-wrapper.cjs +55 -55
  2. package/install.cjs +94 -94
  3. package/package.json +240 -240
package/cli-wrapper.cjs CHANGED
@@ -5,99 +5,99 @@
5
5
  // so this file is never invoked. It exists for environments where postinstall
6
6
  // doesn't run (--ignore-scripts).
7
7
 
8
- const { spawnSync } = require("child_process");
9
- const { arch, constants } = require("os");
10
- const path = require("path");
8
+ const { spawnSync } = require('child_process')
9
+ const { arch, constants } = require('os')
10
+ const path = require('path')
11
11
 
12
- const PACKAGE_PREFIX = "@go-hare/claude-code";
13
- const BINARY_NAME = "claude";
14
- const WRAPPER_NAME = require("./package.json").name;
12
+ const PACKAGE_PREFIX = '@go-hare/claude-code'
13
+ const BINARY_NAME = 'claude'
14
+ const WRAPPER_NAME = require('./package.json').name
15
15
 
16
16
  const PLATFORMS = {
17
- "darwin-arm64": { pkg: PACKAGE_PREFIX + "-darwin-arm64", bin: BINARY_NAME },
18
- "darwin-x64": { pkg: PACKAGE_PREFIX + "-darwin-x64", bin: BINARY_NAME },
19
- "linux-x64": { pkg: PACKAGE_PREFIX + "-linux-x64", bin: BINARY_NAME },
20
- "linux-arm64": { pkg: PACKAGE_PREFIX + "-linux-arm64", bin: BINARY_NAME },
21
- "linux-x64-musl": {
22
- pkg: PACKAGE_PREFIX + "-linux-x64-musl",
17
+ 'darwin-arm64': { pkg: PACKAGE_PREFIX + '-darwin-arm64', bin: BINARY_NAME },
18
+ 'darwin-x64': { pkg: PACKAGE_PREFIX + '-darwin-x64', bin: BINARY_NAME },
19
+ 'linux-x64': { pkg: PACKAGE_PREFIX + '-linux-x64', bin: BINARY_NAME },
20
+ 'linux-arm64': { pkg: PACKAGE_PREFIX + '-linux-arm64', bin: BINARY_NAME },
21
+ 'linux-x64-musl': {
22
+ pkg: PACKAGE_PREFIX + '-linux-x64-musl',
23
23
  bin: BINARY_NAME,
24
24
  },
25
- "linux-arm64-musl": {
26
- pkg: PACKAGE_PREFIX + "-linux-arm64-musl",
25
+ 'linux-arm64-musl': {
26
+ pkg: PACKAGE_PREFIX + '-linux-arm64-musl',
27
27
  bin: BINARY_NAME,
28
28
  },
29
- "win32-x64": {
30
- pkg: PACKAGE_PREFIX + "-win32-x64",
31
- bin: BINARY_NAME + ".exe",
29
+ 'win32-x64': {
30
+ pkg: PACKAGE_PREFIX + '-win32-x64',
31
+ bin: BINARY_NAME + '.exe',
32
32
  },
33
- "win32-arm64": {
34
- pkg: PACKAGE_PREFIX + "-win32-arm64",
35
- bin: BINARY_NAME + ".exe",
33
+ 'win32-arm64': {
34
+ pkg: PACKAGE_PREFIX + '-win32-arm64',
35
+ bin: BINARY_NAME + '.exe',
36
36
  },
37
- };
37
+ }
38
38
 
39
39
  function detectMusl() {
40
- if (process.platform !== "linux") return false;
40
+ if (process.platform !== 'linux') return false
41
41
  const report =
42
- typeof process.report?.getReport === "function"
42
+ typeof process.report?.getReport === 'function'
43
43
  ? process.report.getReport()
44
- : null;
45
- return report != null && report.header?.glibcVersionRuntime === undefined;
44
+ : null
45
+ return report != null && report.header?.glibcVersionRuntime === undefined
46
46
  }
47
47
  function getPlatformKey() {
48
- const platform = process.platform;
49
- let cpu = arch();
50
- if (platform === "linux") return "linux-" + cpu + (detectMusl() ? "-musl" : "");
51
- if (platform === "darwin" && cpu === "x64") {
52
- const r = spawnSync("sysctl", ["-n", "sysctl.proc_translated"], {
53
- encoding: "utf8",
54
- });
55
- if (r.stdout?.trim() === "1") cpu = "arm64";
48
+ const platform = process.platform
49
+ let cpu = arch()
50
+ if (platform === 'linux')
51
+ return 'linux-' + cpu + (detectMusl() ? '-musl' : '')
52
+ if (platform === 'darwin' && cpu === 'x64') {
53
+ const r = spawnSync('sysctl', ['-n', 'sysctl.proc_translated'], {
54
+ encoding: 'utf8',
55
+ })
56
+ if (r.stdout?.trim() === '1') cpu = 'arm64'
56
57
  }
57
- return platform + "-" + cpu;
58
+ return platform + '-' + cpu
58
59
  }
59
60
 
60
61
  function getBinaryPath() {
61
- const platformKey = getPlatformKey();
62
- const info = PLATFORMS[platformKey];
62
+ const platformKey = getPlatformKey()
63
+ const info = PLATFORMS[platformKey]
63
64
  if (!info) {
64
65
  console.error(
65
66
  `[${WRAPPER_NAME}] Unsupported platform: ${process.platform} ${arch()}`,
66
- );
67
- process.exit(1);
67
+ )
68
+ process.exit(1)
68
69
  }
69
70
  try {
70
- const pkgDir = path.dirname(require.resolve(info.pkg + "/package.json"));
71
- return path.join(pkgDir, info.bin);
71
+ const pkgDir = path.dirname(require.resolve(info.pkg + '/package.json'))
72
+ return path.join(pkgDir, info.bin)
72
73
  } catch {
73
74
  console.error(
74
75
  `[${WRAPPER_NAME}] Could not find native binary package "${info.pkg}".`,
75
- );
76
- console.error(" Try reinstalling with: npm install");
77
- process.exit(1);
76
+ )
77
+ console.error(' Try reinstalling with: npm install')
78
+ process.exit(1)
78
79
  }
79
80
  }
80
81
 
81
82
  function main() {
82
- const binaryPath = getBinaryPath();
83
+ const binaryPath = getBinaryPath()
83
84
  const result = spawnSync(binaryPath, process.argv.slice(2), {
84
- stdio: "inherit",
85
- env: { ...process.env, CLAUDE_CODE_INSTALLED_VIA_NPM_WRAPPER: "1" },
86
- });
85
+ stdio: 'inherit',
86
+ env: { ...process.env, CLAUDE_CODE_INSTALLED_VIA_NPM_WRAPPER: '1' },
87
+ })
87
88
  if (result.error) {
88
89
  console.error(
89
90
  `[${WRAPPER_NAME}] Failed to execute native binary at ` + binaryPath,
90
- );
91
- console.error(" " + result.error.message);
92
- process.exit(1);
91
+ )
92
+ console.error(' ' + result.error.message)
93
+ process.exit(1)
93
94
  }
94
95
  if (result.signal) {
95
- const signum = constants.signals[result.signal] ?? 0;
96
- process.exit(128 + signum);
96
+ const signum = constants.signals[result.signal] ?? 0
97
+ process.exit(128 + signum)
97
98
  } else {
98
- process.exit(result.status ?? 1);
99
+ process.exit(result.status ?? 1)
99
100
  }
100
101
  }
101
102
 
102
- main();
103
-
103
+ main()
package/install.cjs CHANGED
@@ -7,7 +7,7 @@
7
7
  //
8
8
  // Platform detection + PLATFORMS map is duplicated in cli-wrapper.cjs — keep in sync.
9
9
 
10
- const { spawnSync } = require("child_process");
10
+ const { spawnSync } = require('child_process')
11
11
  const {
12
12
  copyFileSync,
13
13
  existsSync,
@@ -17,171 +17,171 @@ const {
17
17
  readFileSync,
18
18
  writeFileSync,
19
19
  statSync,
20
- } = require("fs");
21
- const { arch } = require("os");
22
- const path = require("path");
20
+ } = require('fs')
21
+ const { arch } = require('os')
22
+ const path = require('path')
23
23
 
24
24
  // Dev environment detection: if .git exists at package root, we're in the monorepo
25
- if (existsSync(path.join(__dirname, ".git"))) {
25
+ if (existsSync(path.join(__dirname, '.git'))) {
26
26
  const r = spawnSync(
27
- "node",
27
+ 'node',
28
28
  [
29
- "scripts/run-parallel.mjs",
30
- "scripts/postinstall.cjs",
31
- "scripts/setup-chrome-mcp.mjs",
29
+ 'scripts/run-parallel.mjs',
30
+ 'scripts/postinstall.cjs',
31
+ 'scripts/setup-chrome-mcp.mjs',
32
32
  ],
33
- { cwd: __dirname, stdio: "inherit" },
34
- );
35
- process.exit(r.status ?? 0);
33
+ { cwd: __dirname, stdio: 'inherit' },
34
+ )
35
+ process.exit(r.status ?? 0)
36
36
  }
37
37
 
38
- const PACKAGE_PREFIX = "@go-hare/claude-code";
39
- const BINARY_NAME = "claude";
40
- const WRAPPER_NAME = require("./package.json").name;
38
+ const PACKAGE_PREFIX = '@go-hare/claude-code'
39
+ const BINARY_NAME = 'claude'
40
+ const WRAPPER_NAME = require('./package.json').name
41
41
 
42
42
  const PLATFORMS = {
43
- "darwin-arm64": { pkg: PACKAGE_PREFIX + "-darwin-arm64", bin: BINARY_NAME },
44
- "darwin-x64": { pkg: PACKAGE_PREFIX + "-darwin-x64", bin: BINARY_NAME },
45
- "linux-x64": { pkg: PACKAGE_PREFIX + "-linux-x64", bin: BINARY_NAME },
46
- "linux-arm64": { pkg: PACKAGE_PREFIX + "-linux-arm64", bin: BINARY_NAME },
47
- "linux-x64-musl": {
48
- pkg: PACKAGE_PREFIX + "-linux-x64-musl",
43
+ 'darwin-arm64': { pkg: PACKAGE_PREFIX + '-darwin-arm64', bin: BINARY_NAME },
44
+ 'darwin-x64': { pkg: PACKAGE_PREFIX + '-darwin-x64', bin: BINARY_NAME },
45
+ 'linux-x64': { pkg: PACKAGE_PREFIX + '-linux-x64', bin: BINARY_NAME },
46
+ 'linux-arm64': { pkg: PACKAGE_PREFIX + '-linux-arm64', bin: BINARY_NAME },
47
+ 'linux-x64-musl': {
48
+ pkg: PACKAGE_PREFIX + '-linux-x64-musl',
49
49
  bin: BINARY_NAME,
50
50
  },
51
- "linux-arm64-musl": {
52
- pkg: PACKAGE_PREFIX + "-linux-arm64-musl",
51
+ 'linux-arm64-musl': {
52
+ pkg: PACKAGE_PREFIX + '-linux-arm64-musl',
53
53
  bin: BINARY_NAME,
54
54
  },
55
- "linux-arm64-android": {
56
- pkg: PACKAGE_PREFIX + "-linux-arm64-android",
55
+ 'linux-arm64-android': {
56
+ pkg: PACKAGE_PREFIX + '-linux-arm64-android',
57
57
  bin: BINARY_NAME,
58
58
  },
59
- "linux-x64-android": {
60
- pkg: PACKAGE_PREFIX + "-linux-x64-android",
59
+ 'linux-x64-android': {
60
+ pkg: PACKAGE_PREFIX + '-linux-x64-android',
61
61
  bin: BINARY_NAME,
62
62
  },
63
- "freebsd-x64": { pkg: PACKAGE_PREFIX + "-freebsd-x64", bin: BINARY_NAME },
64
- "freebsd-arm64": {
65
- pkg: PACKAGE_PREFIX + "-freebsd-arm64",
63
+ 'freebsd-x64': { pkg: PACKAGE_PREFIX + '-freebsd-x64', bin: BINARY_NAME },
64
+ 'freebsd-arm64': {
65
+ pkg: PACKAGE_PREFIX + '-freebsd-arm64',
66
66
  bin: BINARY_NAME,
67
67
  },
68
- "win32-x64": {
69
- pkg: PACKAGE_PREFIX + "-win32-x64",
70
- bin: BINARY_NAME + ".exe",
68
+ 'win32-x64': {
69
+ pkg: PACKAGE_PREFIX + '-win32-x64',
70
+ bin: BINARY_NAME + '.exe',
71
71
  },
72
- "win32-arm64": {
73
- pkg: PACKAGE_PREFIX + "-win32-arm64",
74
- bin: BINARY_NAME + ".exe",
72
+ 'win32-arm64': {
73
+ pkg: PACKAGE_PREFIX + '-win32-arm64',
74
+ bin: BINARY_NAME + '.exe',
75
75
  },
76
- };
76
+ }
77
77
 
78
78
  function detectMusl() {
79
- if (process.platform !== "linux") return false;
79
+ if (process.platform !== 'linux') return false
80
80
  const report =
81
- typeof process.report?.getReport === "function"
81
+ typeof process.report?.getReport === 'function'
82
82
  ? process.report.getReport()
83
- : null;
84
- return report != null && report.header?.glibcVersionRuntime === undefined;
83
+ : null
84
+ return report != null && report.header?.glibcVersionRuntime === undefined
85
85
  }
86
86
 
87
87
  function getPlatformKey() {
88
- const platform = process.platform;
89
- let cpu = arch();
90
- if (platform === "android") return "linux-" + cpu + "-android";
91
- if (platform === "linux") return "linux-" + cpu + (detectMusl() ? "-musl" : "");
92
- if (platform === "darwin" && cpu === "x64") {
93
- const r = spawnSync("sysctl", ["-n", "sysctl.proc_translated"], {
94
- encoding: "utf8",
95
- });
96
- if (r.stdout?.trim() === "1") cpu = "arm64";
88
+ const platform = process.platform
89
+ let cpu = arch()
90
+ if (platform === 'android') return 'linux-' + cpu + '-android'
91
+ if (platform === 'linux')
92
+ return 'linux-' + cpu + (detectMusl() ? '-musl' : '')
93
+ if (platform === 'darwin' && cpu === 'x64') {
94
+ const r = spawnSync('sysctl', ['-n', 'sysctl.proc_translated'], {
95
+ encoding: 'utf8',
96
+ })
97
+ if (r.stdout?.trim() === '1') cpu = 'arm64'
97
98
  }
98
- return platform + "-" + cpu;
99
+ return platform + '-' + cpu
99
100
  }
100
101
 
101
102
  function placeBinary(src, dest) {
102
103
  try {
103
- linkSync(src, dest);
104
+ linkSync(src, dest)
104
105
  } catch (err) {
105
- if (err.code === "EEXIST") {
106
- const stub = statSync(dest).size < 4096 ? readFileSync(dest) : null;
107
- unlinkSync(dest);
106
+ if (err.code === 'EEXIST') {
107
+ const stub = statSync(dest).size < 4096 ? readFileSync(dest) : null
108
+ unlinkSync(dest)
108
109
  try {
109
- linkSync(src, dest);
110
+ linkSync(src, dest)
110
111
  } catch {
111
112
  try {
112
- copyFileSync(src, dest);
113
+ copyFileSync(src, dest)
113
114
  } catch (copyErr) {
114
115
  if (stub) {
115
- try { writeFileSync(dest, stub, { mode: 0o755 }); } catch {}
116
+ try {
117
+ writeFileSync(dest, stub, { mode: 0o755 })
118
+ } catch {}
116
119
  }
117
- throw copyErr;
120
+ throw copyErr
118
121
  }
119
122
  }
120
- } else if (err.code === "EXDEV" || err.code === "EPERM") {
121
- copyFileSync(src, dest);
123
+ } else if (err.code === 'EXDEV' || err.code === 'EPERM') {
124
+ copyFileSync(src, dest)
122
125
  } else {
123
- throw err;
126
+ throw err
124
127
  }
125
128
  }
126
- if (process.platform !== "win32") chmodSync(dest, 0o755);
129
+ if (process.platform !== 'win32') chmodSync(dest, 0o755)
127
130
  }
128
131
  function main() {
129
- const platformKey = getPlatformKey();
130
- const info = PLATFORMS[platformKey];
132
+ const platformKey = getPlatformKey()
133
+ const info = PLATFORMS[platformKey]
131
134
 
132
135
  if (!info) {
133
136
  console.error(
134
137
  `[${WRAPPER_NAME} postinstall] Unsupported platform: ${process.platform} ${arch()}`,
135
- );
136
- console.error(` Supported: ${Object.keys(PLATFORMS).join(", ")}`);
137
- return;
138
+ )
139
+ console.error(` Supported: ${Object.keys(PLATFORMS).join(', ')}`)
140
+ return
138
141
  }
139
142
 
140
- const optionalDeps = require("./package.json").optionalDependencies || {};
143
+ const optionalDeps = require('./package.json').optionalDependencies || {}
141
144
  if (!optionalDeps[info.pkg]) {
142
145
  console.error(
143
146
  `[${WRAPPER_NAME} postinstall] Native binaries for ${platformKey} are not available on this release channel.`,
144
- );
147
+ )
145
148
  console.error(
146
- ` Available: ${Object.keys(optionalDeps).map((p) => p.replace(PACKAGE_PREFIX + "-", "")).join(", ")}`,
147
- );
148
- return;
149
+ ` Available: ${Object.keys(optionalDeps)
150
+ .map(p => p.replace(PACKAGE_PREFIX + '-', ''))
151
+ .join(', ')}`,
152
+ )
153
+ return
149
154
  }
150
155
 
151
- let src;
156
+ let src
152
157
  try {
153
- const pkgDir = path.dirname(require.resolve(info.pkg + "/package.json"));
154
- src = path.join(pkgDir, info.bin);
158
+ const pkgDir = path.dirname(require.resolve(info.pkg + '/package.json'))
159
+ src = path.join(pkgDir, info.bin)
155
160
  } catch {
156
161
  console.error(
157
162
  `[${WRAPPER_NAME} postinstall] Native package "${info.pkg}" not found.`,
158
- );
159
- console.error(
160
- " This happens with --omit=optional or when the download failed.",
161
- );
163
+ )
162
164
  console.error(
163
- " The `claude` command will print instructions when invoked.",
164
- );
165
+ ' This happens with --omit=optional or when the download failed.',
166
+ )
165
167
  console.error(
166
- " Fallback: node " + path.join(__dirname, "cli-wrapper.cjs"),
167
- );
168
- return;
168
+ ' The `claude` command will print instructions when invoked.',
169
+ )
170
+ console.error(' Fallback: node ' + path.join(__dirname, 'cli-wrapper.cjs'))
171
+ return
169
172
  }
170
173
 
171
- const dest = path.join(__dirname, "bin", "claude.exe");
174
+ const dest = path.join(__dirname, 'bin', 'claude.exe')
172
175
 
173
176
  try {
174
- placeBinary(src, dest);
177
+ placeBinary(src, dest)
175
178
  } catch (err) {
176
179
  console.error(
177
180
  `[${WRAPPER_NAME} postinstall] Failed to place binary: ${err.message}`,
178
- );
179
- console.error(
180
- " Fallback: node " + path.join(__dirname, "cli-wrapper.cjs"),
181
- );
182
- process.exitCode = 1;
181
+ )
182
+ console.error(' Fallback: node ' + path.join(__dirname, 'cli-wrapper.cjs'))
183
+ process.exitCode = 1
183
184
  }
184
185
  }
185
186
 
186
- main();
187
-
187
+ main()
package/package.json CHANGED
@@ -1,240 +1,240 @@
1
- {
2
- "name": "@go-hare/claude-code",
3
- "version": "2.6.10",
4
- "description": "Reverse-engineered Anthropic Claude Code CLI — interactive AI coding assistant in the terminal",
5
- "type": "module",
6
- "author": "DeQiang",
7
- "repository": {
8
- "type": "git",
9
- "url": "git+https://github.com/go-hare/claude-code-1.git"
10
- },
11
- "homepage": "https://github.com/go-hare/claude-code-1#readme",
12
- "bugs": {
13
- "url": "https://github.com/go-hare/claude-code-1/issues"
14
- },
15
- "keywords": [
16
- "claude",
17
- "anthropic",
18
- "cli",
19
- "ai",
20
- "coding-assistant",
21
- "terminal",
22
- "repl"
23
- ],
24
- "engines": {
25
- "node": ">=18.0.0"
26
- },
27
- "bin": {
28
- "claude": "bin/claude.exe"
29
- },
30
- "workspaces": [
31
- "packages/*",
32
- "packages/@ant/*",
33
- "packages/@anthropic-ai/*",
34
- "packages/@go-hare/*"
35
- ],
36
- "files": [
37
- "bin/claude.exe",
38
- "install.cjs",
39
- "cli-wrapper.cjs"
40
- ],
41
- "optionalDependencies": {
42
- "@go-hare/claude-code-darwin-arm64": "2.6.9",
43
- "@go-hare/claude-code-darwin-x64": "2.6.9",
44
- "@go-hare/claude-code-linux-x64": "2.6.9",
45
- "@go-hare/claude-code-linux-arm64": "2.6.9",
46
- "@go-hare/claude-code-linux-x64-musl": "2.6.9",
47
- "@go-hare/claude-code-linux-arm64-musl": "2.6.9",
48
- "@go-hare/claude-code-win32-x64": "2.6.9",
49
- "@go-hare/claude-code-win32-arm64": "2.6.9",
50
- "doubaoime-asr": "^0.1.0"
51
- },
52
- "scripts": {
53
- "build": "bun run build.ts",
54
- "build:vite": "vite build && bun run scripts/post-build.ts",
55
- "build:vite:only": "vite build",
56
- "build:bun": "bun run build.ts",
57
- "build:compile": "bun run scripts/publish.ts --build-only",
58
- "dev": "bun run scripts/dev.ts",
59
- "dev:inspect": "bun run scripts/dev-debug.ts",
60
- "prepublishOnly": "echo 'Use: bun run scripts/publish.ts'",
61
- "lint": "biome lint .",
62
- "lint:fix": "biome lint --fix .",
63
- "format": "biome format --write .",
64
- "check": "biome check .",
65
- "check:fix": "biome check --fix .",
66
- "prepare": "husky",
67
- "test": "bun test",
68
- "test:production": "bun run scripts/production-test.ts",
69
- "test:production:offline": "bun run scripts/production-test.ts --offline",
70
- "test:production:verbose": "bun run scripts/production-test.ts --verbose",
71
- "test:production:bun": "bun run scripts/production-test.ts --bun",
72
- "check:bundle": "bun run scripts/check-bundle-integrity.ts",
73
- "check:unused": "knip-bun",
74
- "health": "bun run scripts/health-check.ts",
75
- "postinstall": "node install.cjs",
76
- "docs:dev": "npx mintlify dev",
77
- "typecheck": "tsc --noEmit",
78
- "precheck": "bun run typecheck && bun run check:fix && bun test",
79
- "rcs": "bun run scripts/rcs.ts"
80
- },
81
- "dependencies": {
82
- "@agentclientprotocol/sdk": "^0.19.0",
83
- "@claude-code-best/mcp-chrome-bridge": "^3.0.1",
84
- "highlight.js": "^11.11.1",
85
- "ws": "^8.20.0"
86
- },
87
- "devDependencies": {
88
- "@alcalzone/ansi-tokenize": "^0.3.0",
89
- "@ant/claude-for-chrome-mcp": "workspace:*",
90
- "@ant/computer-use-input": "workspace:*",
91
- "@ant/computer-use-mcp": "workspace:*",
92
- "@ant/computer-use-swift": "workspace:*",
93
- "@ant/model-provider": "workspace:*",
94
- "@anthropic-ai/bedrock-sdk": "^0.29.0",
95
- "@anthropic-ai/claude-agent-sdk": "^0.2.114",
96
- "@anthropic-ai/foundry-sdk": "^0.2.3",
97
- "@anthropic-ai/mcpb": "^2.1.2",
98
- "@anthropic-ai/sandbox-runtime": "^0.0.44",
99
- "@anthropic-ai/sdk": "^0.81.0",
100
- "@anthropic-ai/vertex-sdk": "^0.16.0",
101
- "@anthropic/ink": "workspace:*",
102
- "@aws-sdk/client-bedrock": "^3.1037.0",
103
- "@aws-sdk/client-bedrock-runtime": "^3.1037.0",
104
- "@aws-sdk/client-sts": "^3.1037.0",
105
- "@aws-sdk/credential-provider-node": "^3.972.36",
106
- "@aws-sdk/credential-providers": "^3.1037.0",
107
- "@azure/identity": "^4.13.1",
108
- "@biomejs/biome": "^2.4.12",
109
- "@claude-code/agent-tools": "workspace:*",
110
- "@claude-code/builtin-tools": "workspace:*",
111
- "@claude-code/mcp-client": "workspace:*",
112
- "@claude-code/weixin": "workspace:*",
113
- "@commander-js/extra-typings": "^14.0.0",
114
- "@growthbook/growthbook": "^1.6.5",
115
- "@langfuse/otel": "^5.1.0",
116
- "@langfuse/tracing": "^5.1.0",
117
- "@modelcontextprotocol/sdk": "^1.29.0",
118
- "@opentelemetry/api": "^1.9.1",
119
- "@opentelemetry/api-logs": "^0.215.0",
120
- "@opentelemetry/core": "^2.7.0",
121
- "@opentelemetry/exporter-logs-otlp-grpc": "^0.215.0",
122
- "@opentelemetry/exporter-logs-otlp-http": "^0.215.0",
123
- "@opentelemetry/exporter-logs-otlp-proto": "^0.215.0",
124
- "@opentelemetry/exporter-metrics-otlp-grpc": "^0.215.0",
125
- "@opentelemetry/exporter-metrics-otlp-http": "^0.215.0",
126
- "@opentelemetry/exporter-metrics-otlp-proto": "^0.215.0",
127
- "@opentelemetry/exporter-prometheus": "^0.215.0",
128
- "@opentelemetry/exporter-trace-otlp-grpc": "^0.215.0",
129
- "@opentelemetry/exporter-trace-otlp-http": "^0.215.0",
130
- "@opentelemetry/exporter-trace-otlp-proto": "^0.215.0",
131
- "@opentelemetry/resources": "^2.7.0",
132
- "@opentelemetry/sdk-logs": "^0.215.0",
133
- "@opentelemetry/sdk-metrics": "^2.7.0",
134
- "@opentelemetry/sdk-trace-base": "^2.7.0",
135
- "@opentelemetry/semantic-conventions": "^1.40.0",
136
- "@sentry/node": "^10.49.0",
137
- "@smithy/core": "^3.23.15",
138
- "@smithy/node-http-handler": "^4.5.3",
139
- "@types/bun": "^1.3.12",
140
- "@types/cacache": "^20.0.1",
141
- "@types/he": "^1.2.3",
142
- "@types/lodash-es": "^4.17.12",
143
- "@types/node": "^25.6.0",
144
- "@types/picomatch": "^4.0.3",
145
- "@types/plist": "^3.0.5",
146
- "@types/proper-lockfile": "^4.1.4",
147
- "@types/qrcode": "^1.5.6",
148
- "@types/react": "^19.2.14",
149
- "@types/react-reconciler": "^0.33.0",
150
- "@types/semver": "^7.7.1",
151
- "@types/sharp": "^0.32.0",
152
- "@types/shell-quote": "^1.7.5",
153
- "@types/stack-utils": "^2.0.3",
154
- "@types/turndown": "^5.0.6",
155
- "@types/ws": "^8.18.1",
156
- "ajv": "^8.18.0",
157
- "asciichart": "^1.5.25",
158
- "audio-capture-napi": "workspace:*",
159
- "auto-bind": "^5.0.1",
160
- "axios": "^1.15.2",
161
- "bidi-js": "^1.0.3",
162
- "cacache": "^20.0.4",
163
- "chalk": "^5.6.2",
164
- "chokidar": "^5.0.0",
165
- "cli-boxes": "^4.0.1",
166
- "cli-highlight": "^2.1.11",
167
- "code-excerpt": "^4.0.0",
168
- "color-diff-napi": "workspace:*",
169
- "diff": "^8.0.4",
170
- "emoji-regex": "^10.6.0",
171
- "env-paths": "^4.0.0",
172
- "execa": "^9.6.1",
173
- "fflate": "^0.8.2",
174
- "figures": "^6.1.0",
175
- "fuse.js": "^7.3.0",
176
- "get-east-asian-width": "^1.5.0",
177
- "google-auth-library": "^10.6.2",
178
- "he": "^1.2.0",
179
- "https-proxy-agent": "^8.0.0",
180
- "husky": "^9.1.7",
181
- "ignore": "^7.0.5",
182
- "image-processor-napi": "workspace:*",
183
- "indent-string": "^5.0.0",
184
- "jsonc-parser": "^3.3.1",
185
- "knip": "^6.4.1",
186
- "lint-staged": "^16.4.0",
187
- "lodash-es": "^4.18.1",
188
- "lru-cache": "^11.3.5",
189
- "marked": "^17.0.6",
190
- "modifiers-napi": "workspace:*",
191
- "openai": "^6.34.0",
192
- "p-map": "^7.0.4",
193
- "picomatch": "^4.0.4",
194
- "plist": "^3.1.0",
195
- "proper-lockfile": "^4.1.2",
196
- "qrcode": "^1.5.4",
197
- "react": "^19.2.5",
198
- "react-compiler-runtime": "^1.0.0",
199
- "react-reconciler": "^0.33.0",
200
- "rollup": "^4.60.2",
201
- "semver": "^7.7.4",
202
- "sharp": "^0.34.5",
203
- "shell-quote": "^1.8.3",
204
- "signal-exit": "^4.1.0",
205
- "stack-utils": "^2.0.6",
206
- "strip-ansi": "^7.2.0",
207
- "supports-hyperlinks": "^4.4.0",
208
- "tree-kill": "^1.2.2",
209
- "turndown": "^7.2.4",
210
- "type-fest": "^5.6.0",
211
- "typescript": "^6.0.3",
212
- "undici": "^7.25.0",
213
- "url-handler-napi": "workspace:*",
214
- "usehooks-ts": "^3.1.1",
215
- "vite": "^8.0.8",
216
- "vscode-jsonrpc": "^8.2.1",
217
- "vscode-languageserver-protocol": "^3.17.5",
218
- "vscode-languageserver-types": "^3.17.5",
219
- "wrap-ansi": "^10.0.0",
220
- "xss": "^1.0.15",
221
- "yaml": "^2.8.3",
222
- "zod": "^4.3.6"
223
- },
224
- "overrides": {
225
- "@inquirer/prompts": "8.4.2",
226
- "@xmldom/xmldom": "0.8.13",
227
- "follow-redirects": "1.16.0",
228
- "hono": "4.12.15",
229
- "postcss": "8.5.10",
230
- "uuid": "14.0.0"
231
- },
232
- "lint-staged": {
233
- "*.{ts,tsx,js,mjs,jsx}": [
234
- "biome check --fix --no-errors-on-unmatched"
235
- ],
236
- "*.{json,jsonc}": [
237
- "biome format --write --no-errors-on-unmatched"
238
- ]
239
- }
240
- }
1
+ {
2
+ "name": "@go-hare/claude-code",
3
+ "version": "2.6.11",
4
+ "description": "Reverse-engineered Anthropic Claude Code CLI — interactive AI coding assistant in the terminal",
5
+ "type": "module",
6
+ "author": "DeQiang",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/go-hare/claude-code-1.git"
10
+ },
11
+ "homepage": "https://github.com/go-hare/claude-code-1#readme",
12
+ "bugs": {
13
+ "url": "https://github.com/go-hare/claude-code-1/issues"
14
+ },
15
+ "keywords": [
16
+ "claude",
17
+ "anthropic",
18
+ "cli",
19
+ "ai",
20
+ "coding-assistant",
21
+ "terminal",
22
+ "repl"
23
+ ],
24
+ "engines": {
25
+ "node": ">=18.0.0"
26
+ },
27
+ "bin": {
28
+ "claude": "bin/claude.exe"
29
+ },
30
+ "workspaces": [
31
+ "packages/*",
32
+ "packages/@ant/*",
33
+ "packages/@anthropic-ai/*",
34
+ "packages/@go-hare/*"
35
+ ],
36
+ "files": [
37
+ "bin/claude.exe",
38
+ "install.cjs",
39
+ "cli-wrapper.cjs"
40
+ ],
41
+ "optionalDependencies": {
42
+ "@go-hare/claude-code-darwin-arm64": "2.6.11",
43
+ "@go-hare/claude-code-darwin-x64": "2.6.11",
44
+ "@go-hare/claude-code-linux-x64": "2.6.11",
45
+ "@go-hare/claude-code-linux-arm64": "2.6.11",
46
+ "@go-hare/claude-code-linux-x64-musl": "2.6.11",
47
+ "@go-hare/claude-code-linux-arm64-musl": "2.6.11",
48
+ "@go-hare/claude-code-win32-x64": "2.6.11",
49
+ "@go-hare/claude-code-win32-arm64": "2.6.11",
50
+ "doubaoime-asr": "^0.1.0"
51
+ },
52
+ "scripts": {
53
+ "build": "bun run build.ts",
54
+ "build:vite": "vite build && bun run scripts/post-build.ts",
55
+ "build:vite:only": "vite build",
56
+ "build:bun": "bun run build.ts",
57
+ "build:compile": "bun run scripts/publish.ts --build-only",
58
+ "dev": "bun run scripts/dev.ts",
59
+ "dev:inspect": "bun run scripts/dev-debug.ts",
60
+ "prepublishOnly": "echo 'Use: bun run scripts/publish.ts'",
61
+ "lint": "biome lint .",
62
+ "lint:fix": "biome lint --fix .",
63
+ "format": "biome format --write .",
64
+ "check": "biome check .",
65
+ "check:fix": "biome check --fix .",
66
+ "prepare": "husky",
67
+ "test": "bun test",
68
+ "test:production": "bun run scripts/production-test.ts",
69
+ "test:production:offline": "bun run scripts/production-test.ts --offline",
70
+ "test:production:verbose": "bun run scripts/production-test.ts --verbose",
71
+ "test:production:bun": "bun run scripts/production-test.ts --bun",
72
+ "check:bundle": "bun run scripts/check-bundle-integrity.ts",
73
+ "check:unused": "knip-bun",
74
+ "health": "bun run scripts/health-check.ts",
75
+ "postinstall": "node install.cjs",
76
+ "docs:dev": "npx mintlify dev",
77
+ "typecheck": "tsc --noEmit",
78
+ "precheck": "bun run typecheck && bun run check:fix && bun test",
79
+ "rcs": "bun run scripts/rcs.ts"
80
+ },
81
+ "dependencies": {
82
+ "@agentclientprotocol/sdk": "^0.19.0",
83
+ "@claude-code-best/mcp-chrome-bridge": "^3.0.1",
84
+ "highlight.js": "^11.11.1",
85
+ "ws": "^8.20.0"
86
+ },
87
+ "devDependencies": {
88
+ "@alcalzone/ansi-tokenize": "^0.3.0",
89
+ "@ant/claude-for-chrome-mcp": "workspace:*",
90
+ "@ant/computer-use-input": "workspace:*",
91
+ "@ant/computer-use-mcp": "workspace:*",
92
+ "@ant/computer-use-swift": "workspace:*",
93
+ "@ant/model-provider": "workspace:*",
94
+ "@anthropic-ai/bedrock-sdk": "^0.29.0",
95
+ "@anthropic-ai/claude-agent-sdk": "^0.2.114",
96
+ "@anthropic-ai/foundry-sdk": "^0.2.3",
97
+ "@anthropic-ai/mcpb": "^2.1.2",
98
+ "@anthropic-ai/sandbox-runtime": "^0.0.44",
99
+ "@anthropic-ai/sdk": "^0.81.0",
100
+ "@anthropic-ai/vertex-sdk": "^0.16.0",
101
+ "@anthropic/ink": "workspace:*",
102
+ "@aws-sdk/client-bedrock": "^3.1037.0",
103
+ "@aws-sdk/client-bedrock-runtime": "^3.1037.0",
104
+ "@aws-sdk/client-sts": "^3.1037.0",
105
+ "@aws-sdk/credential-provider-node": "^3.972.36",
106
+ "@aws-sdk/credential-providers": "^3.1037.0",
107
+ "@azure/identity": "^4.13.1",
108
+ "@biomejs/biome": "^2.4.12",
109
+ "@claude-code/agent-tools": "workspace:*",
110
+ "@claude-code/builtin-tools": "workspace:*",
111
+ "@claude-code/mcp-client": "workspace:*",
112
+ "@claude-code/weixin": "workspace:*",
113
+ "@commander-js/extra-typings": "^14.0.0",
114
+ "@growthbook/growthbook": "^1.6.5",
115
+ "@langfuse/otel": "^5.1.0",
116
+ "@langfuse/tracing": "^5.1.0",
117
+ "@modelcontextprotocol/sdk": "^1.29.0",
118
+ "@opentelemetry/api": "^1.9.1",
119
+ "@opentelemetry/api-logs": "^0.215.0",
120
+ "@opentelemetry/core": "^2.7.0",
121
+ "@opentelemetry/exporter-logs-otlp-grpc": "^0.215.0",
122
+ "@opentelemetry/exporter-logs-otlp-http": "^0.215.0",
123
+ "@opentelemetry/exporter-logs-otlp-proto": "^0.215.0",
124
+ "@opentelemetry/exporter-metrics-otlp-grpc": "^0.215.0",
125
+ "@opentelemetry/exporter-metrics-otlp-http": "^0.215.0",
126
+ "@opentelemetry/exporter-metrics-otlp-proto": "^0.215.0",
127
+ "@opentelemetry/exporter-prometheus": "^0.215.0",
128
+ "@opentelemetry/exporter-trace-otlp-grpc": "^0.215.0",
129
+ "@opentelemetry/exporter-trace-otlp-http": "^0.215.0",
130
+ "@opentelemetry/exporter-trace-otlp-proto": "^0.215.0",
131
+ "@opentelemetry/resources": "^2.7.0",
132
+ "@opentelemetry/sdk-logs": "^0.215.0",
133
+ "@opentelemetry/sdk-metrics": "^2.7.0",
134
+ "@opentelemetry/sdk-trace-base": "^2.7.0",
135
+ "@opentelemetry/semantic-conventions": "^1.40.0",
136
+ "@sentry/node": "^10.49.0",
137
+ "@smithy/core": "^3.23.15",
138
+ "@smithy/node-http-handler": "^4.5.3",
139
+ "@types/bun": "^1.3.12",
140
+ "@types/cacache": "^20.0.1",
141
+ "@types/he": "^1.2.3",
142
+ "@types/lodash-es": "^4.17.12",
143
+ "@types/node": "^25.6.0",
144
+ "@types/picomatch": "^4.0.3",
145
+ "@types/plist": "^3.0.5",
146
+ "@types/proper-lockfile": "^4.1.4",
147
+ "@types/qrcode": "^1.5.6",
148
+ "@types/react": "^19.2.14",
149
+ "@types/react-reconciler": "^0.33.0",
150
+ "@types/semver": "^7.7.1",
151
+ "@types/sharp": "^0.32.0",
152
+ "@types/shell-quote": "^1.7.5",
153
+ "@types/stack-utils": "^2.0.3",
154
+ "@types/turndown": "^5.0.6",
155
+ "@types/ws": "^8.18.1",
156
+ "ajv": "^8.18.0",
157
+ "asciichart": "^1.5.25",
158
+ "audio-capture-napi": "workspace:*",
159
+ "auto-bind": "^5.0.1",
160
+ "axios": "^1.15.2",
161
+ "bidi-js": "^1.0.3",
162
+ "cacache": "^20.0.4",
163
+ "chalk": "^5.6.2",
164
+ "chokidar": "^5.0.0",
165
+ "cli-boxes": "^4.0.1",
166
+ "cli-highlight": "^2.1.11",
167
+ "code-excerpt": "^4.0.0",
168
+ "color-diff-napi": "workspace:*",
169
+ "diff": "^8.0.4",
170
+ "emoji-regex": "^10.6.0",
171
+ "env-paths": "^4.0.0",
172
+ "execa": "^9.6.1",
173
+ "fflate": "^0.8.2",
174
+ "figures": "^6.1.0",
175
+ "fuse.js": "^7.3.0",
176
+ "get-east-asian-width": "^1.5.0",
177
+ "google-auth-library": "^10.6.2",
178
+ "he": "^1.2.0",
179
+ "https-proxy-agent": "^8.0.0",
180
+ "husky": "^9.1.7",
181
+ "ignore": "^7.0.5",
182
+ "image-processor-napi": "workspace:*",
183
+ "indent-string": "^5.0.0",
184
+ "jsonc-parser": "^3.3.1",
185
+ "knip": "^6.4.1",
186
+ "lint-staged": "^16.4.0",
187
+ "lodash-es": "^4.18.1",
188
+ "lru-cache": "^11.3.5",
189
+ "marked": "^17.0.6",
190
+ "modifiers-napi": "workspace:*",
191
+ "openai": "^6.34.0",
192
+ "p-map": "^7.0.4",
193
+ "picomatch": "^4.0.4",
194
+ "plist": "^3.1.0",
195
+ "proper-lockfile": "^4.1.2",
196
+ "qrcode": "^1.5.4",
197
+ "react": "^19.2.5",
198
+ "react-compiler-runtime": "^1.0.0",
199
+ "react-reconciler": "^0.33.0",
200
+ "rollup": "^4.60.2",
201
+ "semver": "^7.7.4",
202
+ "sharp": "^0.34.5",
203
+ "shell-quote": "^1.8.3",
204
+ "signal-exit": "^4.1.0",
205
+ "stack-utils": "^2.0.6",
206
+ "strip-ansi": "^7.2.0",
207
+ "supports-hyperlinks": "^4.4.0",
208
+ "tree-kill": "^1.2.2",
209
+ "turndown": "^7.2.4",
210
+ "type-fest": "^5.6.0",
211
+ "typescript": "^6.0.3",
212
+ "undici": "^7.25.0",
213
+ "url-handler-napi": "workspace:*",
214
+ "usehooks-ts": "^3.1.1",
215
+ "vite": "^8.0.8",
216
+ "vscode-jsonrpc": "^8.2.1",
217
+ "vscode-languageserver-protocol": "^3.17.5",
218
+ "vscode-languageserver-types": "^3.17.5",
219
+ "wrap-ansi": "^10.0.0",
220
+ "xss": "^1.0.15",
221
+ "yaml": "^2.8.3",
222
+ "zod": "^4.3.6"
223
+ },
224
+ "overrides": {
225
+ "@inquirer/prompts": "8.4.2",
226
+ "@xmldom/xmldom": "0.8.13",
227
+ "follow-redirects": "1.16.0",
228
+ "hono": "4.12.15",
229
+ "postcss": "8.5.10",
230
+ "uuid": "14.0.0"
231
+ },
232
+ "lint-staged": {
233
+ "*.{ts,tsx,js,mjs,jsx}": [
234
+ "biome check --fix --no-errors-on-unmatched"
235
+ ],
236
+ "*.{json,jsonc}": [
237
+ "biome format --write --no-errors-on-unmatched"
238
+ ]
239
+ }
240
+ }