@funnycode/myclaude 0.1.19 → 0.1.22

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/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.22] - 2026-06-17
4
+
5
+ ### Added
6
+ - `/feedback` command now submits issues to the myclaude GitHub repo (fixes #8)
7
+ - GitHub Issues URL redirected from `anthropics/claude-code` to `thomaslwq/myclaude`
8
+ - Claude Code config compatibility: myclaude now explicitly supports reading Claude Code's global configuration (`~/.claude/settings.json`, skills, MCPs, plugins) — both tools share the same config directory (fixes #7)
9
+ - Added `node-domexception` shim package to suppress npm deprecation warning during install (fixes #5)
10
+
11
+ ### Fixed
12
+ - Git Bash fork issue on Windows — semaphore-based spawn concurrency limit prevents MSYS2 pty pool exhaustion (#6, already deployed in v0.1.21)
13
+ - npm `node-domexception@1.0.0` deprecated warning eliminated via local shim override
14
+
15
+ ## [0.1.21] - 2026-06-17
16
+
17
+ ### Fixed
18
+ - Fixed `/achievements` command not working — missing `type` and `supportsNonInteractive` fields in command registration (fixes #3)
19
+ - Fixed `/mystats` command same missing fields issue for consistency
20
+ - Fixed Git Bash "Could not fork child process: There are no available terminals(-1)" error on Windows (fixes #2)
21
+ - Added MSYS2 environment variables (`MSYS2_ARG_CONV_EXCL`, `CHERE_INVOKING`) to reduce pty consumption per fork
22
+ - Added spawn concurrency semaphore limiting to 24 concurrent Git Bash processes to prevent pty pool exhaustion
23
+ - Propagated `MSYSTEM` environment to child processes
24
+
25
+ ## [0.1.20] - 2026-06-15
26
+
27
+ ### Added
28
+ - Created CLAUDE.md project instructions for AI assistant context (fixes #1)
29
+ - Added performance-optimized project settings in .claude/settings.json (fixes #4)
30
+
3
31
  ## [0.1.8] - 2026-06-12
4
32
 
5
33
  ### Changed
package/dist/myclaude.js CHANGED
@@ -4,8 +4,8 @@
4
4
  // MACRO - build-time constants (injected by build.ts)
5
5
  // MACRO injected by build script
6
6
  globalThis.MACRO = {
7
- VERSION: "0.1.19",
8
- BUILD_TIME: "2026-06-12T16:05:16.414Z",
7
+ VERSION: "0.1.22",
8
+ BUILD_TIME: "2026-06-16T12:51:32.359Z",
9
9
  PACKAGE_URL: "@funnycode/myclaude",
10
10
  NATIVE_PACKAGE_URL: "@funnycode/myclaude",
11
11
  VERSION_CHANGELOG: '',
@@ -347452,6 +347452,27 @@ import { access as access4 } from "fs/promises";
347452
347452
  import { tmpdir as osTmpdir } from "os";
347453
347453
  import { join as nativeJoin } from "path";
347454
347454
  import { join as posixJoin } from "path/posix";
347455
+ function createSpawnSemaphore(maxConcurrent) {
347456
+ let active = 0;
347457
+ const queue2 = [];
347458
+ return {
347459
+ async acquire() {
347460
+ if (active >= maxConcurrent) {
347461
+ await new Promise((resolve29) => queue2.push(resolve29));
347462
+ }
347463
+ active++;
347464
+ },
347465
+ release() {
347466
+ active--;
347467
+ const next = queue2.shift();
347468
+ if (next)
347469
+ next();
347470
+ }
347471
+ };
347472
+ }
347473
+ function getBashSpawnSemaphore() {
347474
+ return BASH_SPAWN_SEMAPHORE;
347475
+ }
347455
347476
  function getDisableExtglobCommand(shellPath) {
347456
347477
  if (process.env.CLAUDE_CODE_SHELL_PREFIX) {
347457
347478
  return "{ shopt -u extglob || setopt NO_EXTENDED_GLOB; } >/dev/null 2>&1 || true";
@@ -347545,6 +347566,15 @@ async function createBashShellProvider(shellPath, options) {
347545
347566
  env5.CLAUDE_CODE_TMPDIR = posixTmpDir;
347546
347567
  env5.TMPPREFIX = posixJoin(posixTmpDir, "zsh");
347547
347568
  }
347569
+ if (getPlatform() === "windows") {
347570
+ if (!env5.MSYS2_ARG_CONV_EXCL)
347571
+ env5.MSYS2_ARG_CONV_EXCL = "*";
347572
+ if (!env5.CHERE_INVOKING)
347573
+ env5.CHERE_INVOKING = "1";
347574
+ if (!env5.MSYSTEM && process.env.MSYSTEM) {
347575
+ env5.MSYSTEM = process.env.MSYSTEM;
347576
+ }
347577
+ }
347548
347578
  for (const [key2, value] of getSessionEnvVars()) {
347549
347579
  env5[key2] = value;
347550
347580
  }
@@ -347552,6 +347582,7 @@ async function createBashShellProvider(shellPath, options) {
347552
347582
  }
347553
347583
  };
347554
347584
  }
347585
+ var BASH_SPAWN_SEMAPHORE;
347555
347586
  var init_bashProvider = __esm(() => {
347556
347587
  init_bashPipeCommand();
347557
347588
  init_ShellSnapshot();
@@ -347564,6 +347595,7 @@ var init_bashProvider = __esm(() => {
347564
347595
  init_sessionEnvVars();
347565
347596
  init_tmuxSocket();
347566
347597
  init_windowsPaths();
347598
+ BASH_SPAWN_SEMAPHORE = createSpawnSemaphore(getPlatform() === "windows" ? 24 : Infinity);
347567
347599
  });
347568
347600
 
347569
347601
  // src/utils/shell/powershellDetection.ts
@@ -347790,6 +347822,10 @@ async function exec3(command, abortSignal, shellType, options) {
347790
347822
  const spawnBinary = isSandboxedPowerShell ? "/bin/sh" : binShell;
347791
347823
  const shellArgs = isSandboxedPowerShell ? ["-c", commandString] : provider.getSpawnArgs(commandString);
347792
347824
  const envOverrides = await provider.getEnvironmentOverrides(command);
347825
+ const isGitBash = shellType === "bash" && getPlatform() === "windows" && !isSandboxedPowerShell;
347826
+ if (isGitBash) {
347827
+ await getBashSpawnSemaphore().acquire();
347828
+ }
347793
347829
  const usePipeMode = !!onStdout;
347794
347830
  const taskId = generateTaskId("local_bash");
347795
347831
  const taskOutput = new TaskOutput(taskId, onProgress ?? null, !usePipeMode);
@@ -347816,6 +347852,9 @@ async function exec3(command, abortSignal, shellType, options) {
347816
347852
  detached: provider.detached,
347817
347853
  windowsHide: true
347818
347854
  });
347855
+ if (isGitBash) {
347856
+ childProcess.once("close", () => getBashSpawnSemaphore().release());
347857
+ }
347819
347858
  const shellCommand = wrapSpawn(childProcess, abortSignal, commandTimeout, taskOutput, shouldAutoBackground);
347820
347859
  if (outputHandle !== undefined) {
347821
347860
  try {
@@ -347855,6 +347894,9 @@ async function exec3(command, abortSignal, shellType, options) {
347855
347894
  });
347856
347895
  return shellCommand;
347857
347896
  } catch (error49) {
347897
+ if (isGitBash) {
347898
+ getBashSpawnSemaphore().release();
347899
+ }
347858
347900
  if (outputHandle !== undefined) {
347859
347901
  try {
347860
347902
  await outputHandle.close();
@@ -406291,7 +406333,7 @@ async function submitFeedback(data, signal) {
406291
406333
  };
406292
406334
  }
406293
406335
  }
406294
- var import_react95, jsx_dev_runtime159, GITHUB_URL_LIMIT = 7250, GITHUB_ISSUES_REPO_URL = "https://github.com/anthropics/claude-code/issues";
406336
+ var import_react95, jsx_dev_runtime159, GITHUB_URL_LIMIT = 7250, GITHUB_ISSUES_REPO_URL = "https://github.com/thomaslwq/myclaude/issues";
406295
406337
  var init_Feedback = __esm(() => {
406296
406338
  init_axios2();
406297
406339
  init_state();
@@ -475901,6 +475943,8 @@ var init_achievements2 = __esm(() => {
475901
475943
  name: "achievements",
475902
475944
  description: "View your unlocked achievements and progress",
475903
475945
  aliases: ["achieve", "ach"],
475946
+ supportsNonInteractive: false,
475947
+ type: "local",
475904
475948
  load: () => Promise.resolve().then(() => (init_achievements(), exports_achievements))
475905
475949
  };
475906
475950
  achievements_default = achievementsCmd;
@@ -476351,6 +476395,8 @@ var init_mystats2 = __esm(() => {
476351
476395
  name: "mystats",
476352
476396
  description: "View your coding statistics and usage dashboard",
476353
476397
  aliases: ["stats", "dashboard"],
476398
+ supportsNonInteractive: false,
476399
+ type: "local",
476354
476400
  load: () => Promise.resolve().then(() => (init_mystats(), exports_mystats))
476355
476401
  };
476356
476402
  mystats_default = mystatsCmd;
package/dist/myclaude.mjs CHANGED
@@ -4,8 +4,8 @@
4
4
  // MACRO - build-time constants (injected by build.ts)
5
5
  // MACRO injected by build script
6
6
  globalThis.MACRO = {
7
- VERSION: "0.1.19",
8
- BUILD_TIME: "2026-06-12T16:05:16.414Z",
7
+ VERSION: "0.1.22",
8
+ BUILD_TIME: "2026-06-16T12:51:32.359Z",
9
9
  PACKAGE_URL: "@funnycode/myclaude",
10
10
  NATIVE_PACKAGE_URL: "@funnycode/myclaude",
11
11
  VERSION_CHANGELOG: '',
@@ -347452,6 +347452,27 @@ import { access as access4 } from "fs/promises";
347452
347452
  import { tmpdir as osTmpdir } from "os";
347453
347453
  import { join as nativeJoin } from "path";
347454
347454
  import { join as posixJoin } from "path/posix";
347455
+ function createSpawnSemaphore(maxConcurrent) {
347456
+ let active = 0;
347457
+ const queue2 = [];
347458
+ return {
347459
+ async acquire() {
347460
+ if (active >= maxConcurrent) {
347461
+ await new Promise((resolve29) => queue2.push(resolve29));
347462
+ }
347463
+ active++;
347464
+ },
347465
+ release() {
347466
+ active--;
347467
+ const next = queue2.shift();
347468
+ if (next)
347469
+ next();
347470
+ }
347471
+ };
347472
+ }
347473
+ function getBashSpawnSemaphore() {
347474
+ return BASH_SPAWN_SEMAPHORE;
347475
+ }
347455
347476
  function getDisableExtglobCommand(shellPath) {
347456
347477
  if (process.env.CLAUDE_CODE_SHELL_PREFIX) {
347457
347478
  return "{ shopt -u extglob || setopt NO_EXTENDED_GLOB; } >/dev/null 2>&1 || true";
@@ -347545,6 +347566,15 @@ async function createBashShellProvider(shellPath, options) {
347545
347566
  env5.CLAUDE_CODE_TMPDIR = posixTmpDir;
347546
347567
  env5.TMPPREFIX = posixJoin(posixTmpDir, "zsh");
347547
347568
  }
347569
+ if (getPlatform() === "windows") {
347570
+ if (!env5.MSYS2_ARG_CONV_EXCL)
347571
+ env5.MSYS2_ARG_CONV_EXCL = "*";
347572
+ if (!env5.CHERE_INVOKING)
347573
+ env5.CHERE_INVOKING = "1";
347574
+ if (!env5.MSYSTEM && process.env.MSYSTEM) {
347575
+ env5.MSYSTEM = process.env.MSYSTEM;
347576
+ }
347577
+ }
347548
347578
  for (const [key2, value] of getSessionEnvVars()) {
347549
347579
  env5[key2] = value;
347550
347580
  }
@@ -347552,6 +347582,7 @@ async function createBashShellProvider(shellPath, options) {
347552
347582
  }
347553
347583
  };
347554
347584
  }
347585
+ var BASH_SPAWN_SEMAPHORE;
347555
347586
  var init_bashProvider = __esm(() => {
347556
347587
  init_bashPipeCommand();
347557
347588
  init_ShellSnapshot();
@@ -347564,6 +347595,7 @@ var init_bashProvider = __esm(() => {
347564
347595
  init_sessionEnvVars();
347565
347596
  init_tmuxSocket();
347566
347597
  init_windowsPaths();
347598
+ BASH_SPAWN_SEMAPHORE = createSpawnSemaphore(getPlatform() === "windows" ? 24 : Infinity);
347567
347599
  });
347568
347600
 
347569
347601
  // src/utils/shell/powershellDetection.ts
@@ -347790,6 +347822,10 @@ async function exec3(command, abortSignal, shellType, options) {
347790
347822
  const spawnBinary = isSandboxedPowerShell ? "/bin/sh" : binShell;
347791
347823
  const shellArgs = isSandboxedPowerShell ? ["-c", commandString] : provider.getSpawnArgs(commandString);
347792
347824
  const envOverrides = await provider.getEnvironmentOverrides(command);
347825
+ const isGitBash = shellType === "bash" && getPlatform() === "windows" && !isSandboxedPowerShell;
347826
+ if (isGitBash) {
347827
+ await getBashSpawnSemaphore().acquire();
347828
+ }
347793
347829
  const usePipeMode = !!onStdout;
347794
347830
  const taskId = generateTaskId("local_bash");
347795
347831
  const taskOutput = new TaskOutput(taskId, onProgress ?? null, !usePipeMode);
@@ -347816,6 +347852,9 @@ async function exec3(command, abortSignal, shellType, options) {
347816
347852
  detached: provider.detached,
347817
347853
  windowsHide: true
347818
347854
  });
347855
+ if (isGitBash) {
347856
+ childProcess.once("close", () => getBashSpawnSemaphore().release());
347857
+ }
347819
347858
  const shellCommand = wrapSpawn(childProcess, abortSignal, commandTimeout, taskOutput, shouldAutoBackground);
347820
347859
  if (outputHandle !== undefined) {
347821
347860
  try {
@@ -347855,6 +347894,9 @@ async function exec3(command, abortSignal, shellType, options) {
347855
347894
  });
347856
347895
  return shellCommand;
347857
347896
  } catch (error49) {
347897
+ if (isGitBash) {
347898
+ getBashSpawnSemaphore().release();
347899
+ }
347858
347900
  if (outputHandle !== undefined) {
347859
347901
  try {
347860
347902
  await outputHandle.close();
@@ -406291,7 +406333,7 @@ async function submitFeedback(data, signal) {
406291
406333
  };
406292
406334
  }
406293
406335
  }
406294
- var import_react95, jsx_dev_runtime159, GITHUB_URL_LIMIT = 7250, GITHUB_ISSUES_REPO_URL = "https://github.com/anthropics/claude-code/issues";
406336
+ var import_react95, jsx_dev_runtime159, GITHUB_URL_LIMIT = 7250, GITHUB_ISSUES_REPO_URL = "https://github.com/thomaslwq/myclaude/issues";
406295
406337
  var init_Feedback = __esm(() => {
406296
406338
  init_axios2();
406297
406339
  init_state();
@@ -475901,6 +475943,8 @@ var init_achievements2 = __esm(() => {
475901
475943
  name: "achievements",
475902
475944
  description: "View your unlocked achievements and progress",
475903
475945
  aliases: ["achieve", "ach"],
475946
+ supportsNonInteractive: false,
475947
+ type: "local",
475904
475948
  load: () => Promise.resolve().then(() => (init_achievements(), exports_achievements))
475905
475949
  };
475906
475950
  achievements_default = achievementsCmd;
@@ -476351,6 +476395,8 @@ var init_mystats2 = __esm(() => {
476351
476395
  name: "mystats",
476352
476396
  description: "View your coding statistics and usage dashboard",
476353
476397
  aliases: ["stats", "dashboard"],
476398
+ supportsNonInteractive: false,
476399
+ type: "local",
476354
476400
  load: () => Promise.resolve().then(() => (init_mystats(), exports_mystats))
476355
476401
  };
476356
476402
  mystats_default = mystatsCmd;
package/package.json CHANGED
@@ -1,121 +1,125 @@
1
- {
2
- "name": "@funnycode/myclaude",
3
- "version": "0.1.19",
4
- "private": false,
5
- "description": "An open-source AI coding assistant in your terminal - powered by Claude",
6
- "license": "MIT",
7
- "type": "module",
8
- "packageManager": "bun@1.3.5",
9
- "repository": {
10
- "type": "git",
11
- "url": "https://gitee.com/thomaslwq/myclaude.git"
12
- },
13
- "bugs": {
14
- "url": "https://gitee.com/thomaslwq/myclaude/issues"
15
- },
16
- "homepage": "https://gitee.com/thomaslwq/myclaude",
17
- "engines": {
18
- "bun": ">=1.3.5",
19
- "node": ">=18.0.0"
20
- },
21
- "scripts": {
22
- "dev": "bun run ./src/dev-entry.ts",
23
- "start": "bun run ./src/dev-entry.ts",
24
- "build": "bun run ./scripts/build.ts",
25
- "prepublishOnly": "bun run build",
26
- "version": "bun run ./src/dev-entry.ts --version"
27
- },
28
- "bin": {
29
- "myclaude": "./bin/myclaude.cjs"
30
- },
31
- "files": [
32
- "dist/",
33
- "bin/",
34
- "LICENSE",
35
- "README.md",
36
- "README.zh-CN.md",
37
- "CHANGELOG.md",
38
- "docs/funnycode.png"
39
- ],
40
- "publishConfig": {
41
- "access": "public"
42
- },
43
- "dependencies": {
44
- "@alcalzone/ansi-tokenize": "*",
45
- "@anthropic-ai/claude-agent-sdk": "*",
46
- "@anthropic-ai/mcpb": "*",
47
- "@anthropic-ai/sandbox-runtime": "*",
48
- "@anthropic-ai/sdk": "*",
49
- "@aws-sdk/client-bedrock-runtime": "*",
50
- "@commander-js/extra-typings": "*",
51
- "@growthbook/growthbook": "*",
52
- "@modelcontextprotocol/sdk": "*",
53
- "@opentelemetry/api": "*",
54
- "@opentelemetry/api-logs": "*",
55
- "@opentelemetry/core": "*",
56
- "@opentelemetry/resources": "*",
57
- "@opentelemetry/sdk-logs": "*",
58
- "@opentelemetry/sdk-metrics": "*",
59
- "@opentelemetry/sdk-trace-base": "*",
60
- "@opentelemetry/semantic-conventions": "*",
61
- "ajv": "*",
62
- "asciichart": "*",
63
- "auto-bind": "*",
64
- "axios": "*",
65
- "bidi-js": "*",
66
- "chalk": "*",
67
- "chokidar": "*",
68
- "cli-boxes": "*",
69
- "code-excerpt": "*",
70
- "diff": "*",
71
- "emoji-regex": "*",
72
- "env-paths": "*",
73
- "execa": "*",
74
- "figures": "*",
75
- "fuse.js": "*",
76
- "get-east-asian-width": "*",
77
- "google-auth-library": "*",
78
- "highlight.js": "*",
79
- "https-proxy-agent": "*",
80
- "ignore": "*",
81
- "indent-string": "*",
82
- "ink": "*",
83
- "jsonc-parser": "*",
84
- "lodash-es": "*",
85
- "lru-cache": "*",
86
- "marked": "*",
87
- "p-map": "*",
88
- "picomatch": "*",
89
- "proper-lockfile": "*",
90
- "qrcode": "*",
91
- "react": "*",
92
- "react-reconciler": "*",
93
- "semver": "*",
94
- "shell-quote": "*",
95
- "signal-exit": "*",
96
- "stack-utils": "*",
97
- "strip-ansi": "*",
98
- "supports-hyperlinks": "*",
99
- "tree-kill": "*",
100
- "type-fest": "*",
101
- "undici": "*",
102
- "usehooks-ts": "*",
103
- "vscode-jsonrpc": "*",
104
- "vscode-languageserver-protocol": "*",
105
- "vscode-languageserver-types": "*",
106
- "wrap-ansi": "*",
107
- "ws": "*",
108
- "xss": "*",
109
- "yaml": "*",
110
- "zod": "*"
111
- },
112
- "optionalDependencies": {
113
- "@ant/claude-for-chrome-mcp": "file:./shims/ant-claude-for-chrome-mcp",
114
- "@ant/computer-use-input": "file:./shims/ant-computer-use-input",
115
- "@ant/computer-use-mcp": "file:./shims/ant-computer-use-mcp",
116
- "@ant/computer-use-swift": "file:./shims/ant-computer-use-swift",
117
- "color-diff-napi": "file:./shims/color-diff-napi",
118
- "modifiers-napi": "file:./shims/modifiers-napi",
119
- "url-handler-napi": "file:./shims/url-handler-napi"
120
- }
121
- }
1
+ {
2
+ "name": "@funnycode/myclaude",
3
+ "version": "0.1.22",
4
+ "private": false,
5
+ "description": "An open-source AI coding assistant in your terminal - powered by Claude",
6
+ "license": "MIT",
7
+ "type": "module",
8
+ "packageManager": "bun@1.3.5",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://gitee.com/thomaslwq/myclaude.git"
12
+ },
13
+ "bugs": {
14
+ "url": "https://gitee.com/thomaslwq/myclaude/issues"
15
+ },
16
+ "homepage": "https://gitee.com/thomaslwq/myclaude",
17
+ "engines": {
18
+ "bun": ">=1.3.5",
19
+ "node": ">=18.0.0"
20
+ },
21
+ "scripts": {
22
+ "dev": "bun run ./src/dev-entry.ts",
23
+ "start": "bun run ./src/dev-entry.ts",
24
+ "build": "bun run ./scripts/build.ts",
25
+ "prepublishOnly": "bun run build",
26
+ "version": "bun run ./src/dev-entry.ts --version"
27
+ },
28
+ "bin": {
29
+ "myclaude": "bin/myclaude.cjs"
30
+ },
31
+ "files": [
32
+ "dist/",
33
+ "bin/",
34
+ "LICENSE",
35
+ "README.md",
36
+ "README.zh-CN.md",
37
+ "CHANGELOG.md",
38
+ "docs/funnycode.png"
39
+ ],
40
+ "publishConfig": {
41
+ "access": "public"
42
+ },
43
+ "dependencies": {
44
+ "@alcalzone/ansi-tokenize": "*",
45
+ "@anthropic-ai/claude-agent-sdk": "*",
46
+ "@anthropic-ai/mcpb": "*",
47
+ "@anthropic-ai/sandbox-runtime": "*",
48
+ "@anthropic-ai/sdk": "*",
49
+ "@aws-sdk/client-bedrock-runtime": "*",
50
+ "@commander-js/extra-typings": "*",
51
+ "@growthbook/growthbook": "*",
52
+ "@modelcontextprotocol/sdk": "*",
53
+ "@opentelemetry/api": "*",
54
+ "@opentelemetry/api-logs": "*",
55
+ "@opentelemetry/core": "*",
56
+ "@opentelemetry/resources": "*",
57
+ "@opentelemetry/sdk-logs": "*",
58
+ "@opentelemetry/sdk-metrics": "*",
59
+ "@opentelemetry/sdk-trace-base": "*",
60
+ "@opentelemetry/semantic-conventions": "*",
61
+ "ajv": "*",
62
+ "asciichart": "*",
63
+ "auto-bind": "*",
64
+ "axios": "*",
65
+ "bidi-js": "*",
66
+ "chalk": "*",
67
+ "chokidar": "*",
68
+ "cli-boxes": "*",
69
+ "code-excerpt": "*",
70
+ "diff": "*",
71
+ "emoji-regex": "*",
72
+ "env-paths": "*",
73
+ "execa": "*",
74
+ "figures": "*",
75
+ "fuse.js": "*",
76
+ "get-east-asian-width": "*",
77
+ "google-auth-library": "*",
78
+ "highlight.js": "*",
79
+ "https-proxy-agent": "*",
80
+ "ignore": "*",
81
+ "indent-string": "*",
82
+ "ink": "*",
83
+ "jsonc-parser": "*",
84
+ "lodash-es": "*",
85
+ "lru-cache": "*",
86
+ "marked": "*",
87
+ "p-map": "*",
88
+ "picomatch": "*",
89
+ "proper-lockfile": "*",
90
+ "qrcode": "*",
91
+ "react": "*",
92
+ "react-reconciler": "*",
93
+ "semver": "*",
94
+ "shell-quote": "*",
95
+ "signal-exit": "*",
96
+ "stack-utils": "*",
97
+ "strip-ansi": "*",
98
+ "supports-hyperlinks": "*",
99
+ "tree-kill": "*",
100
+ "type-fest": "*",
101
+ "undici": "*",
102
+ "usehooks-ts": "*",
103
+ "vscode-jsonrpc": "*",
104
+ "vscode-languageserver-protocol": "*",
105
+ "vscode-languageserver-types": "*",
106
+ "wrap-ansi": "*",
107
+ "ws": "*",
108
+ "xss": "*",
109
+ "yaml": "*",
110
+ "zod": "*"
111
+ },
112
+ "optionalDependencies": {
113
+ "@ant/claude-for-chrome-mcp": "file:./shims/ant-claude-for-chrome-mcp",
114
+ "@ant/computer-use-input": "file:./shims/ant-computer-use-input",
115
+ "@ant/computer-use-mcp": "file:./shims/ant-computer-use-mcp",
116
+ "@ant/computer-use-swift": "file:./shims/ant-computer-use-swift",
117
+ "color-diff-napi": "file:./shims/color-diff-napi",
118
+ "modifiers-napi": "file:./shims/modifiers-napi",
119
+ "node-domexception": "file:./shims/node-domexception",
120
+ "url-handler-napi": "file:./shims/url-handler-napi"
121
+ },
122
+ "overrides": {
123
+ "node-domexception": "file:./shims/node-domexception"
124
+ }
125
+ }