claude-multi 0.13.0 → 0.13.2
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 +27 -0
- package/README.md +6 -6
- package/build/cli.js +19 -13
- package/package.json +13 -4
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,32 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.13.2] - 2026-11-03
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- **Provider templates now map the Fable alias.** Claude Code resolves `fable` to `claude-fable-5-1` unless `ANTHROPIC_DEFAULT_FABLE_MODEL` is set, and third-party Anthropic-compatible endpoints reject that ID. Every template maps the alias to its primary model.
|
|
12
|
+
- **Effort now reaches custom model IDs.** GLM, MiniMax, DeepSeek, and Kimi set `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1` alongside `CLAUDE_CODE_EFFORT_LEVEL` so Claude Code sends the effort parameter for model names it does not recognize.
|
|
13
|
+
- **Provider documentation and examples now include the Fable slot.** The provider pages, docs tables, website examples, `llms.txt`, and the monthly review checklist match the shipped templates.
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- The monthly model-review workflow now links to the live Xiaomi MiMo Claude Code page and includes the Fable and effort checks.
|
|
17
|
+
- Environment-variable documentation now matches current Claude Code behavior for `API_TIMEOUT_MS`, `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`, `CLAUDE_CODE_MAX_CONTEXT_TOKENS`, `CLAUDE_CODE_SUBAGENT_MODEL`, and `ANTHROPIC_AUTH_TOKEN`. DeepSeek and Kimi notes no longer claim their fixed thinking budgets are provider-side limits.
|
|
18
|
+
- README now separates `doctor check` from `doctor fix` and shows the POSIX shell wrapper that claude-multi actually generates.
|
|
19
|
+
- The Xiaomi MiMo provider page links to the live `platform.xiaomimimo.com` signup page, and the MiniMax, GLM, Kimi, and DeepSeek source links use their canonical URLs.
|
|
20
|
+
|
|
21
|
+
## [0.13.1] - 2026-10-31
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
- Removed the remaining Deno code paths. Package-manager detection, version lookup, upgrade commands, Claude Code update commands, and the Windows wrapper path lookup now cover Bun, npm, and pnpm only. This is internal cleanup; the user-facing Deno removal shipped in 0.13.0.
|
|
25
|
+
- Sitemap `lastmod` values are now derived from git history at build time instead of a hardcoded date. Static pages use the last commit that touched their source files, and blog and provider pages keep using their frontmatter dates. The docs deploy checks out full history so the dates are accurate.
|
|
26
|
+
- Updated GitHub Actions to current Node 24 releases: `actions/checkout@v7`, `actions/setup-node@v7`, `oven-sh/setup-bun@v2`, `softprops/action-gh-release@v3`, `actions/github-script@v9`, `actions/upload-artifact@v7`, and `actions/download-artifact@v8`. This removes the Node 20 deprecation warnings from CI.
|
|
27
|
+
|
|
28
|
+
### Added
|
|
29
|
+
- Monthly provider model review workflow. On the first of each month it opens a GitHub issue with the current expected models, official vendor documentation links, and the verification commands. It does not create duplicates while an earlier review issue is open.
|
|
30
|
+
|
|
31
|
+
### Blog
|
|
32
|
+
- Blog post: [claude-multi drops Deno support](https://claude-multi.hmziq.xyz/blog/deno-support-removed/)
|
|
33
|
+
|
|
8
34
|
## [0.13.0] - 2026-10-31
|
|
9
35
|
|
|
10
36
|
### Changed
|
|
@@ -526,6 +552,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
526
552
|
- Support for custom config and binary paths
|
|
527
553
|
- Command-line interface built with Commander.js
|
|
528
554
|
|
|
555
|
+
[0.13.1]: https://github.com/hmziqrs/claude-multi/compare/v0.13.0...v0.13.1
|
|
529
556
|
[0.13.0]: https://github.com/hmziqrs/claude-multi/compare/v0.12.0...v0.13.0
|
|
530
557
|
[0.12.0]: https://github.com/hmziqrs/claude-multi/compare/v0.11.1...v0.12.0
|
|
531
558
|
[0.11.0]: https://github.com/hmziqrs/claude-multi/compare/v0.10.0...v0.11.0
|
package/README.md
CHANGED
|
@@ -67,7 +67,7 @@ That's the only command to remember. Everything else happens in the terminal UI:
|
|
|
67
67
|
Two things worth knowing:
|
|
68
68
|
|
|
69
69
|
- If the menu shows a `!` health hint, press `!` to see what's wrong and fix it.
|
|
70
|
-
- After upgrading claude-multi, run `claude-multi doctor check` to
|
|
70
|
+
- After upgrading claude-multi, run `claude-multi doctor check` to see pending provider template updates, then `claude-multi doctor fix` to apply them. `doctor fix` backs up `settings.json` first and keeps any values you changed yourself.
|
|
71
71
|
|
|
72
72
|
Full documentation: **https://claude-multi.hmziq.xyz**
|
|
73
73
|
|
|
@@ -86,7 +86,7 @@ Full documentation: **https://claude-multi.hmziq.xyz**
|
|
|
86
86
|
| Alibaba Qwen | `dashscope-intl.aliyuncs.com` | `qwen` |
|
|
87
87
|
| Alibaba Qwen Coding Plan | `coding-intl.dashscope.aliyuncs.com` | `qwen-coding` |
|
|
88
88
|
|
|
89
|
-
Templates write `ANTHROPIC_BASE_URL`, `ANTHROPIC_MODEL`, and related env vars into `~/.claude-<name>/settings.json`. Provider sync keeps values you changed yourself and restores model slots to the current template.
|
|
89
|
+
Templates write `ANTHROPIC_BASE_URL`, `ANTHROPIC_MODEL`, and related env vars into `~/.claude-<name>/settings.json`. Every template maps `ANTHROPIC_DEFAULT_FABLE_MODEL` to its primary model, and the templates that set an effort level also set `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT=1`. Provider sync keeps values you changed yourself and restores model slots to the current template.
|
|
90
90
|
|
|
91
91
|
---
|
|
92
92
|
|
|
@@ -94,10 +94,10 @@ Templates write `ANTHROPIC_BASE_URL`, `ANTHROPIC_MODEL`, and related env vars in
|
|
|
94
94
|
|
|
95
95
|
Each instance is a config dir at `~/.claude-<name>/` plus a wrapper script at `~/.local/bin/claude-<name>` that sets `CLAUDE_CONFIG_DIR` and runs the unmodified `claude` binary. No fork, no patch. The instance registry lives in `~/.claude-multi/config.json`.
|
|
96
96
|
|
|
97
|
-
```
|
|
98
|
-
#!/
|
|
99
|
-
|
|
100
|
-
|
|
97
|
+
```sh
|
|
98
|
+
#!/bin/sh
|
|
99
|
+
export CLAUDE_CONFIG_DIR="/Users/you/.claude-glm"
|
|
100
|
+
exec "/Users/you/.local/bin/claude" "$@"
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
Auto-sync symlinks `plugins/` and `skills/` back to `~/.claude/`, so a plugin you install once shows up in every instance that opted in. Skip it (or toggle it later in the menu) if you want an instance fully independent.
|
package/build/cli.js
CHANGED
|
@@ -7465,11 +7465,12 @@ function syncProviderEnvToSettings(configDir, options = {}) {
|
|
|
7465
7465
|
}
|
|
7466
7466
|
function needsProviderTemplateSync(configDir, options = {}) {
|
|
7467
7467
|
try {
|
|
7468
|
-
|
|
7468
|
+
const result = syncProviderEnvToSettings(configDir, {
|
|
7469
7469
|
...options,
|
|
7470
7470
|
tunablePolicy: options.tunablePolicy ?? "overwrite-legacy-defaults",
|
|
7471
7471
|
dryRun: true
|
|
7472
|
-
})
|
|
7472
|
+
});
|
|
7473
|
+
return result.status === "synced" || result.region !== null && result.providerName !== null && result.region !== options.providerRegion;
|
|
7473
7474
|
} catch {
|
|
7474
7475
|
return false;
|
|
7475
7476
|
}
|
|
@@ -7491,10 +7492,12 @@ var init_templates = __esm(() => {
|
|
|
7491
7492
|
ANTHROPIC_MODEL: "glm-5.3[1m]",
|
|
7492
7493
|
ANTHROPIC_DEFAULT_OPUS_MODEL: "glm-5.3[1m]",
|
|
7493
7494
|
ANTHROPIC_DEFAULT_SONNET_MODEL: "glm-5.3[1m]",
|
|
7495
|
+
ANTHROPIC_DEFAULT_FABLE_MODEL: "glm-5.3[1m]",
|
|
7494
7496
|
ANTHROPIC_DEFAULT_HAIKU_MODEL: "glm-5.3-flash[1m]",
|
|
7495
7497
|
CLAUDE_CODE_AUTO_COMPACT_WINDOW: "1000000",
|
|
7496
7498
|
CLAUDE_CODE_MAX_OUTPUT_TOKENS: "128000",
|
|
7497
7499
|
CLAUDE_CODE_EFFORT_LEVEL: "high",
|
|
7500
|
+
CLAUDE_CODE_ALWAYS_ENABLE_EFFORT: "1",
|
|
7498
7501
|
MAX_THINKING_TOKENS: "8000",
|
|
7499
7502
|
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "1"
|
|
7500
7503
|
},
|
|
@@ -7515,10 +7518,12 @@ var init_templates = __esm(() => {
|
|
|
7515
7518
|
ANTHROPIC_MODEL: "MiniMax-M3.1-Flash[1m]",
|
|
7516
7519
|
ANTHROPIC_DEFAULT_OPUS_MODEL: "MiniMax-M3.1-Flash[1m]",
|
|
7517
7520
|
ANTHROPIC_DEFAULT_SONNET_MODEL: "MiniMax-M3.1-Flash[1m]",
|
|
7521
|
+
ANTHROPIC_DEFAULT_FABLE_MODEL: "MiniMax-M3.1-Flash[1m]",
|
|
7518
7522
|
ANTHROPIC_DEFAULT_HAIKU_MODEL: "MiniMax-M3.1-Flash[1m]",
|
|
7519
7523
|
CLAUDE_CODE_SUBAGENT_MODEL: "MiniMax-M3.1-Flash[1m]",
|
|
7520
7524
|
CLAUDE_CODE_AUTO_COMPACT_WINDOW: "524288",
|
|
7521
7525
|
CLAUDE_CODE_EFFORT_LEVEL: "max",
|
|
7526
|
+
CLAUDE_CODE_ALWAYS_ENABLE_EFFORT: "1",
|
|
7522
7527
|
CLAUDE_CODE_MAX_OUTPUT_TOKENS: "128000"
|
|
7523
7528
|
},
|
|
7524
7529
|
includeCoAuthoredBy: false,
|
|
@@ -7537,11 +7542,13 @@ var init_templates = __esm(() => {
|
|
|
7537
7542
|
ANTHROPIC_MODEL: "deepseek-flash[1m]",
|
|
7538
7543
|
ANTHROPIC_DEFAULT_OPUS_MODEL: "deepseek-flash[1m]",
|
|
7539
7544
|
ANTHROPIC_DEFAULT_SONNET_MODEL: "deepseek-flash[1m]",
|
|
7545
|
+
ANTHROPIC_DEFAULT_FABLE_MODEL: "deepseek-flash[1m]",
|
|
7540
7546
|
ANTHROPIC_DEFAULT_HAIKU_MODEL: "deepseek-flash",
|
|
7541
7547
|
CLAUDE_CODE_SUBAGENT_MODEL: "deepseek-flash",
|
|
7542
7548
|
CLAUDE_CODE_AUTO_COMPACT_WINDOW: "786432",
|
|
7543
7549
|
CLAUDE_CODE_MAX_OUTPUT_TOKENS: "128000",
|
|
7544
7550
|
CLAUDE_CODE_EFFORT_LEVEL: "max",
|
|
7551
|
+
CLAUDE_CODE_ALWAYS_ENABLE_EFFORT: "1",
|
|
7545
7552
|
MAX_THINKING_TOKENS: "32000"
|
|
7546
7553
|
},
|
|
7547
7554
|
includeCoAuthoredBy: false,
|
|
@@ -7551,7 +7558,7 @@ var init_templates = __esm(() => {
|
|
|
7551
7558
|
mimo: {
|
|
7552
7559
|
name: "mimo",
|
|
7553
7560
|
displayName: "Xiaomi MiMo",
|
|
7554
|
-
description: "MiMo-V2.6-Pro and MiMo-V2.6-Flash via xiaomimimo.com, pay-per-token API",
|
|
7561
|
+
description: "MiMo-V2.6-Pro and MiMo-V2.6-Flash via platform.xiaomimimo.com, pay-per-token API",
|
|
7555
7562
|
settings: {
|
|
7556
7563
|
env: {
|
|
7557
7564
|
ANTHROPIC_AUTH_TOKEN: "",
|
|
@@ -7560,6 +7567,7 @@ var init_templates = __esm(() => {
|
|
|
7560
7567
|
ANTHROPIC_MODEL: "mimo-v2.6-pro[1m]",
|
|
7561
7568
|
ANTHROPIC_DEFAULT_OPUS_MODEL: "mimo-v2.6-pro[1m]",
|
|
7562
7569
|
ANTHROPIC_DEFAULT_SONNET_MODEL: "mimo-v2.6-pro[1m]",
|
|
7570
|
+
ANTHROPIC_DEFAULT_FABLE_MODEL: "mimo-v2.6-pro[1m]",
|
|
7563
7571
|
ANTHROPIC_DEFAULT_HAIKU_MODEL: "mimo-v2.6-flash[1m]",
|
|
7564
7572
|
CLAUDE_CODE_SUBAGENT_MODEL: "mimo-v2.6-flash[1m]",
|
|
7565
7573
|
CLAUDE_CODE_MAX_OUTPUT_TOKENS: "128000"
|
|
@@ -7580,6 +7588,7 @@ var init_templates = __esm(() => {
|
|
|
7580
7588
|
ANTHROPIC_MODEL: "mimo-v2.6-pro[1m]",
|
|
7581
7589
|
ANTHROPIC_DEFAULT_OPUS_MODEL: "mimo-v2.6-pro[1m]",
|
|
7582
7590
|
ANTHROPIC_DEFAULT_SONNET_MODEL: "mimo-v2.6-pro[1m]",
|
|
7591
|
+
ANTHROPIC_DEFAULT_FABLE_MODEL: "mimo-v2.6-pro[1m]",
|
|
7583
7592
|
ANTHROPIC_DEFAULT_HAIKU_MODEL: "mimo-v2.6-flash[1m]",
|
|
7584
7593
|
CLAUDE_CODE_SUBAGENT_MODEL: "mimo-v2.6-flash[1m]",
|
|
7585
7594
|
CLAUDE_CODE_MAX_OUTPUT_TOKENS: "128000"
|
|
@@ -7600,11 +7609,13 @@ var init_templates = __esm(() => {
|
|
|
7600
7609
|
ANTHROPIC_MODEL: "kimi-k3.1-pro[1m]",
|
|
7601
7610
|
ANTHROPIC_DEFAULT_OPUS_MODEL: "kimi-k3.1-pro[1m]",
|
|
7602
7611
|
ANTHROPIC_DEFAULT_SONNET_MODEL: "kimi-k3.1-pro[1m]",
|
|
7612
|
+
ANTHROPIC_DEFAULT_FABLE_MODEL: "kimi-k3.1-pro[1m]",
|
|
7603
7613
|
ANTHROPIC_DEFAULT_HAIKU_MODEL: "kimi-k3.1-pro[1m]",
|
|
7604
7614
|
CLAUDE_CODE_SUBAGENT_MODEL: "kimi-k3.1-pro[1m]",
|
|
7605
7615
|
CLAUDE_CODE_AUTO_COMPACT_WINDOW: "1000000",
|
|
7606
7616
|
CLAUDE_CODE_MAX_OUTPUT_TOKENS: "128000",
|
|
7607
7617
|
CLAUDE_CODE_EFFORT_LEVEL: "max",
|
|
7618
|
+
CLAUDE_CODE_ALWAYS_ENABLE_EFFORT: "1",
|
|
7608
7619
|
MAX_THINKING_TOKENS: "16000"
|
|
7609
7620
|
},
|
|
7610
7621
|
includeCoAuthoredBy: false,
|
|
@@ -7623,6 +7634,7 @@ var init_templates = __esm(() => {
|
|
|
7623
7634
|
ANTHROPIC_MODEL: "qwen3.8-max",
|
|
7624
7635
|
ANTHROPIC_DEFAULT_OPUS_MODEL: "qwen3.8-max",
|
|
7625
7636
|
ANTHROPIC_DEFAULT_SONNET_MODEL: "qwen3.7-plus",
|
|
7637
|
+
ANTHROPIC_DEFAULT_FABLE_MODEL: "qwen3.8-max",
|
|
7626
7638
|
ANTHROPIC_DEFAULT_HAIKU_MODEL: "qwen3.8-flash",
|
|
7627
7639
|
CLAUDE_CODE_SUBAGENT_MODEL: "qwen3.8-flash",
|
|
7628
7640
|
CLAUDE_CODE_MAX_CONTEXT_TOKENS: "983616",
|
|
@@ -7646,6 +7658,7 @@ var init_templates = __esm(() => {
|
|
|
7646
7658
|
ANTHROPIC_MODEL: "qwen3.7-plus",
|
|
7647
7659
|
ANTHROPIC_DEFAULT_OPUS_MODEL: "qwen3.7-plus",
|
|
7648
7660
|
ANTHROPIC_DEFAULT_SONNET_MODEL: "qwen3.7-plus",
|
|
7661
|
+
ANTHROPIC_DEFAULT_FABLE_MODEL: "qwen3.7-plus",
|
|
7649
7662
|
ANTHROPIC_DEFAULT_HAIKU_MODEL: "qwen3.7-plus",
|
|
7650
7663
|
CLAUDE_CODE_SUBAGENT_MODEL: "qwen3.7-plus",
|
|
7651
7664
|
CLAUDE_CODE_MAX_CONTEXT_TOKENS: "983616",
|
|
@@ -9693,8 +9706,6 @@ var init_paths = () => {};
|
|
|
9693
9706
|
function detectPackageManager() {
|
|
9694
9707
|
if (typeof Bun !== "undefined")
|
|
9695
9708
|
return "bun";
|
|
9696
|
-
if (typeof Deno !== "undefined")
|
|
9697
|
-
return "deno";
|
|
9698
9709
|
if ((process.argv[1] ?? "").includes("pnpm"))
|
|
9699
9710
|
return "pnpm";
|
|
9700
9711
|
return "npm";
|
|
@@ -9736,8 +9747,7 @@ function upgradeClaudeMulti() {
|
|
|
9736
9747
|
const commands = {
|
|
9737
9748
|
bun: "bun upgrade -g claude-multi",
|
|
9738
9749
|
npm: "npm update -g claude-multi",
|
|
9739
|
-
pnpm: "pnpm update -g claude-multi"
|
|
9740
|
-
deno: "deno install --reload -g npm:claude-multi"
|
|
9750
|
+
pnpm: "pnpm update -g claude-multi"
|
|
9741
9751
|
};
|
|
9742
9752
|
try {
|
|
9743
9753
|
execSync(commands[pm], { stdio: "inherit" });
|
|
@@ -9748,8 +9758,6 @@ function upgradeClaudeMulti() {
|
|
|
9748
9758
|
function getCurrentVersion() {
|
|
9749
9759
|
const pm = detectPackageManager();
|
|
9750
9760
|
try {
|
|
9751
|
-
if (pm === "deno")
|
|
9752
|
-
return null;
|
|
9753
9761
|
const commands = {
|
|
9754
9762
|
bun: "bun pm ls -g --json",
|
|
9755
9763
|
npm: "npm ls -g --json @anthropic-ai/claude-code",
|
|
@@ -9789,8 +9797,7 @@ function updateClaudeCode() {
|
|
|
9789
9797
|
const commands = {
|
|
9790
9798
|
bun: "bun install -g @anthropic-ai/claude-code@latest",
|
|
9791
9799
|
npm: "npm install -g @anthropic-ai/claude-code@latest",
|
|
9792
|
-
pnpm: "pnpm add -g @anthropic-ai/claude-code@latest"
|
|
9793
|
-
deno: "deno install --reload -g npm:@anthropic-ai/claude-code@latest"
|
|
9800
|
+
pnpm: "pnpm add -g @anthropic-ai/claude-code@latest"
|
|
9794
9801
|
};
|
|
9795
9802
|
try {
|
|
9796
9803
|
console.log("Updating @anthropic-ai/claude-code...");
|
|
@@ -9903,7 +9910,6 @@ function getDefaultBinaryPath(name) {
|
|
|
9903
9910
|
const appData = process.env.APPDATA || "";
|
|
9904
9911
|
const windowsBinDirs = {
|
|
9905
9912
|
bun: resolve(home, ".bun", "bin"),
|
|
9906
|
-
deno: resolve(home, ".deno", "bin"),
|
|
9907
9913
|
npm: resolve(appData, "npm"),
|
|
9908
9914
|
pnpm: resolve(appData, "npm")
|
|
9909
9915
|
};
|
|
@@ -10832,7 +10838,7 @@ async function syncProviderTemplateForInstance(instance) {
|
|
|
10832
10838
|
inst.providerTemplate = result.providerName;
|
|
10833
10839
|
needsSave = true;
|
|
10834
10840
|
}
|
|
10835
|
-
if (result.region &&
|
|
10841
|
+
if (result.region && inst.providerRegion !== result.region) {
|
|
10836
10842
|
inst.providerRegion = result.region;
|
|
10837
10843
|
needsSave = true;
|
|
10838
10844
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-multi",
|
|
3
|
-
"version": "0.13.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.13.2",
|
|
4
|
+
"description": "Run isolated Claude Code instances with separate providers, configs, plugins, MCP servers, and aliases",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"claude-multi": "bin/claude-multi.js"
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
"docs:build": "astro build",
|
|
24
24
|
"docs:preview": "astro preview",
|
|
25
25
|
"docs:typecheck": "astro check",
|
|
26
|
+
"indexnow": "bun run scripts/indexnow.ts",
|
|
26
27
|
"ci:docs:deploy": "gh workflow run deploy-docs.yml",
|
|
27
28
|
"ci:publish": "gh workflow run publish.yml -f version=$(node -p \"require('./package.json').version\")",
|
|
28
29
|
"ci:test-install": "gh workflow run test-install.yml",
|
|
@@ -37,9 +38,17 @@
|
|
|
37
38
|
"keywords": [
|
|
38
39
|
"claude",
|
|
39
40
|
"claude-code",
|
|
41
|
+
"claude-ai",
|
|
40
42
|
"cli",
|
|
41
43
|
"multi-instance",
|
|
42
|
-
"wrapper"
|
|
44
|
+
"wrapper",
|
|
45
|
+
"provider-templates",
|
|
46
|
+
"deepseek",
|
|
47
|
+
"glm",
|
|
48
|
+
"kimi",
|
|
49
|
+
"minimax",
|
|
50
|
+
"qwen",
|
|
51
|
+
"xiaomi-mimo"
|
|
43
52
|
],
|
|
44
53
|
"author": "hmziqrs",
|
|
45
54
|
"license": "MIT",
|
|
@@ -56,7 +65,7 @@
|
|
|
56
65
|
"@astrojs/starlight": "^0.41.9",
|
|
57
66
|
"@inkjs/ui": "^2.0.0",
|
|
58
67
|
"@tailwindcss/vite": "^4.3.0",
|
|
59
|
-
"@types/node": "^
|
|
68
|
+
"@types/node": "^22.0.0",
|
|
60
69
|
"@types/prompts": "^2.4.9",
|
|
61
70
|
"@types/react": "^19.2.14",
|
|
62
71
|
"@types/semver": "^7.7.1",
|