okit-cli 0.0.1
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/README.md +222 -0
- package/dist/commands/check.d.ts +13 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +259 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/claude.d.ts +10 -0
- package/dist/commands/claude.d.ts.map +1 -0
- package/dist/commands/claude.js +504 -0
- package/dist/commands/claude.js.map +1 -0
- package/dist/commands/menu.d.ts +3 -0
- package/dist/commands/menu.d.ts.map +1 -0
- package/dist/commands/menu.js +152 -0
- package/dist/commands/menu.js.map +1 -0
- package/dist/commands/repo.d.ts +3 -0
- package/dist/commands/repo.d.ts.map +1 -0
- package/dist/commands/repo.js +266 -0
- package/dist/commands/repo.js.map +1 -0
- package/dist/commands/uninstall.d.ts +2 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +125 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/commands/upgrade.d.ts +6 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +204 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/config/i18n.d.ts +141 -0
- package/dist/config/i18n.d.ts.map +1 -0
- package/dist/config/i18n.js +316 -0
- package/dist/config/i18n.js.map +1 -0
- package/dist/config/registry.d.ts +24 -0
- package/dist/config/registry.d.ts.map +1 -0
- package/dist/config/registry.js +388 -0
- package/dist/config/registry.js.map +1 -0
- package/dist/config/user.d.ts +32 -0
- package/dist/config/user.d.ts.map +1 -0
- package/dist/config/user.js +72 -0
- package/dist/config/user.js.map +1 -0
- package/dist/executor/deps/BrewDependencyProvider.d.ts +8 -0
- package/dist/executor/deps/BrewDependencyProvider.d.ts.map +1 -0
- package/dist/executor/deps/BrewDependencyProvider.js +52 -0
- package/dist/executor/deps/BrewDependencyProvider.js.map +1 -0
- package/dist/executor/deps/DependencyProvider.d.ts +11 -0
- package/dist/executor/deps/DependencyProvider.d.ts.map +1 -0
- package/dist/executor/deps/DependencyProvider.js +3 -0
- package/dist/executor/deps/DependencyProvider.js.map +1 -0
- package/dist/executor/deps/NpmDependencyProvider.d.ts +12 -0
- package/dist/executor/deps/NpmDependencyProvider.d.ts.map +1 -0
- package/dist/executor/deps/NpmDependencyProvider.js +78 -0
- package/dist/executor/deps/NpmDependencyProvider.js.map +1 -0
- package/dist/executor/deps/PipxDependencyProvider.d.ts +8 -0
- package/dist/executor/deps/PipxDependencyProvider.d.ts.map +1 -0
- package/dist/executor/deps/PipxDependencyProvider.js +32 -0
- package/dist/executor/deps/PipxDependencyProvider.js.map +1 -0
- package/dist/executor/deps/UvToolDependencyProvider.d.ts +8 -0
- package/dist/executor/deps/UvToolDependencyProvider.d.ts.map +1 -0
- package/dist/executor/deps/UvToolDependencyProvider.js +35 -0
- package/dist/executor/deps/UvToolDependencyProvider.js.map +1 -0
- package/dist/executor/plan/ExecutionPlanner.d.ts +13 -0
- package/dist/executor/plan/ExecutionPlanner.d.ts.map +1 -0
- package/dist/executor/plan/ExecutionPlanner.js +109 -0
- package/dist/executor/plan/ExecutionPlanner.js.map +1 -0
- package/dist/executor/plan/TopologicalSorter.d.ts +3 -0
- package/dist/executor/plan/TopologicalSorter.d.ts.map +1 -0
- package/dist/executor/plan/TopologicalSorter.js +49 -0
- package/dist/executor/plan/TopologicalSorter.js.map +1 -0
- package/dist/executor/plan/registryDeps.d.ts +3 -0
- package/dist/executor/plan/registryDeps.d.ts.map +1 -0
- package/dist/executor/plan/registryDeps.js +22 -0
- package/dist/executor/plan/registryDeps.js.map +1 -0
- package/dist/executor/runner.d.ts +13 -0
- package/dist/executor/runner.d.ts.map +1 -0
- package/dist/executor/runner.js +430 -0
- package/dist/executor/runner.js.map +1 -0
- package/dist/main.d.ts +3 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +244 -0
- package/dist/main.js.map +1 -0
- package/dist/utils/sound.d.ts +10 -0
- package/dist/utils/sound.d.ts.map +1 -0
- package/dist/utils/sound.js +36 -0
- package/dist/utils/sound.js.map +1 -0
- package/dist/web/api/config.js +73 -0
- package/dist/web/api/stats.js +130 -0
- package/dist/web/public/app.js +284 -0
- package/dist/web/public/index.html +367 -0
- package/dist/web/public/styles.css +1004 -0
- package/dist/web/server.js +41 -0
- package/package.json +61 -0
package/README.md
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
# OKIT
|
|
2
|
+
|
|
3
|
+
macOS 开发工具管理器,提供一站式的安装、升级、卸载、依赖排序与常用配置能力。
|
|
4
|
+
|
|
5
|
+
适合场景:
|
|
6
|
+
- 新机器快速初始化开发环境
|
|
7
|
+
- 团队统一工具安装方式
|
|
8
|
+
- 需要在命令行完成常规维护
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 快速安装(推荐)
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
curl -fsSL https://raw.githubusercontent.com/dolphin-molt/okit/refs/heads/main/install.sh | bash
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
安装完成后即可使用:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
okit
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 重要说明
|
|
27
|
+
|
|
28
|
+
- 仅支持 macOS。
|
|
29
|
+
- 会安装到 `/usr/local/bin/okit`(必要时会提示 sudo)。
|
|
30
|
+
- 配置文件目录为 `~/.okit`。
|
|
31
|
+
- 默认使用 HTTPS 下载 Release 二进制。
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 常用命令
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
okit # 进入交互式菜单
|
|
39
|
+
okit upgrade # 升级 OKIT 或工具
|
|
40
|
+
okit uninstall # 卸载 OKIT
|
|
41
|
+
okit repo # Repo 设置与创建
|
|
42
|
+
okit claude # Claude 配置与运行
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
查看版本:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
okit -V
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 交互式菜单使用
|
|
54
|
+
|
|
55
|
+
进入 `okit` 后你可以进行:
|
|
56
|
+
|
|
57
|
+
- 安装工具
|
|
58
|
+
- 升级工具
|
|
59
|
+
- 卸载工具
|
|
60
|
+
- Claude 配置管理
|
|
61
|
+
- Repo 设置与创建
|
|
62
|
+
|
|
63
|
+
菜单内支持的快捷键会在界面提示中显示。
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Repo 功能(GitHub)
|
|
68
|
+
|
|
69
|
+
目前仅支持 GitHub。
|
|
70
|
+
|
|
71
|
+
功能包括:
|
|
72
|
+
- 一键设置 Git + GitHub 凭据
|
|
73
|
+
- 创建远程仓库
|
|
74
|
+
- 自动绑定 `origin`(HTTPS)
|
|
75
|
+
- 可选首次推送
|
|
76
|
+
|
|
77
|
+
推荐流程:
|
|
78
|
+
|
|
79
|
+
1. 运行 `okit repo`
|
|
80
|
+
2. 选择 “一键设置(Git + GitHub)”
|
|
81
|
+
3. 回到菜单选择 “新建仓库”
|
|
82
|
+
|
|
83
|
+
注意:
|
|
84
|
+
- GitHub Token 会保存在 `~/.okit/user.json`。
|
|
85
|
+
- 同时会写入系统 Keychain,以便 HTTPS 推送免输入。
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Claude 配置
|
|
90
|
+
|
|
91
|
+
配置文件:`~/.okit/claude-profiles.json`
|
|
92
|
+
|
|
93
|
+
示例:
|
|
94
|
+
|
|
95
|
+
```json
|
|
96
|
+
[
|
|
97
|
+
{
|
|
98
|
+
"name": "Volcengine",
|
|
99
|
+
"baseUrl": "https://ark.cn-beijing.volces.com/api/coding",
|
|
100
|
+
"authToken": "YOUR_TOKEN",
|
|
101
|
+
"models": ["model-a", "model-b"]
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
常用命令:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
okit claude
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
说明:
|
|
113
|
+
- Agent Teams 实验开关使用配置项管理(默认开启)。
|
|
114
|
+
- 通过 TUI 配置:`okit claude` → `Agent Teams 开关`。
|
|
115
|
+
- `okit claude` 运行时会根据该配置注入(或移除)`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS`。
|
|
116
|
+
- 队友显示模式支持 `auto`(默认)/`in-process`/`tmux`,通过 TUI 配置:`okit claude` → `队友显示模式`。
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 配置文件说明
|
|
121
|
+
|
|
122
|
+
`~/.okit/user.json` 保存用户偏好与凭据(示例):
|
|
123
|
+
|
|
124
|
+
```json
|
|
125
|
+
{
|
|
126
|
+
"language": "zh",
|
|
127
|
+
"git": {
|
|
128
|
+
"name": "Your Name",
|
|
129
|
+
"email": "you@example.com"
|
|
130
|
+
},
|
|
131
|
+
"repo": {
|
|
132
|
+
"github": {
|
|
133
|
+
"username": "your-github",
|
|
134
|
+
"token": "ghp_xxx"
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
`~/.okit/registry.json` 保存可安装工具清单,可自定义:
|
|
141
|
+
- 同名工具会覆盖默认配置
|
|
142
|
+
- 新增工具会被追加
|
|
143
|
+
- 默认新增工具不会丢失
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 安装脚本高级用法
|
|
148
|
+
|
|
149
|
+
指定版本安装:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
OKIT_VERSION=v0.0.1 curl -fsSL https://raw.githubusercontent.com/dolphin-molt/okit/refs/heads/main/install.sh | bash
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
设置下载超时(秒):
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
OKIT_DOWNLOAD_TIMEOUT=1200 curl -fsSL https://raw.githubusercontent.com/dolphin-molt/okit/refs/heads/main/install.sh | bash
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## 卸载说明
|
|
164
|
+
|
|
165
|
+
执行:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
okit uninstall
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
卸载时会:
|
|
172
|
+
- 自动查找并删除多个可能的 `okit` 路径
|
|
173
|
+
- 如需 sudo 会询问是否执行
|
|
174
|
+
- 可选删除 `~/.okit` 配置目录
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 常见问题
|
|
179
|
+
|
|
180
|
+
Q: 下载 Release 二进制失败怎么办?
|
|
181
|
+
|
|
182
|
+
- 可重试执行安装脚本(默认带重试与超时)
|
|
183
|
+
- 手动指定版本号再安装
|
|
184
|
+
|
|
185
|
+
Q: 为什么我卸载后 `okit` 还能用?
|
|
186
|
+
|
|
187
|
+
- 可能存在多个安装路径
|
|
188
|
+
- 重新执行 `okit uninstall` 并允许 sudo 删除即可
|
|
189
|
+
|
|
190
|
+
Q: token 是否会写到环境变量?
|
|
191
|
+
|
|
192
|
+
- 不会
|
|
193
|
+
- 仅保存在 `~/.okit/user.json` 与系统 Keychain
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 开发者说明
|
|
198
|
+
|
|
199
|
+
本地开发:
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
npm run dev
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
本地构建:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
npm run build
|
|
209
|
+
npm run pkg
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
发布 Release(自动打包):
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
scripts/publish-release.sh v0.0.1 --auto-notes
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## 许可证
|
|
221
|
+
|
|
222
|
+
MIT
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface CheckResult {
|
|
2
|
+
name: string;
|
|
3
|
+
installed: boolean;
|
|
4
|
+
version?: string;
|
|
5
|
+
outdated?: boolean;
|
|
6
|
+
availableVersion?: string;
|
|
7
|
+
authOk?: boolean;
|
|
8
|
+
authMsg?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function runCheck(options?: {
|
|
11
|
+
json?: boolean;
|
|
12
|
+
}): Promise<CheckResult[]>;
|
|
13
|
+
//# sourceMappingURL=check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAsGD,wBAAsB,QAAQ,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAgEvF"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.runCheck = runCheck;
|
|
7
|
+
const execa_1 = __importDefault(require("execa"));
|
|
8
|
+
const kleur_1 = __importDefault(require("kleur"));
|
|
9
|
+
const ora_1 = __importDefault(require("ora"));
|
|
10
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const registry_1 = require("../config/registry");
|
|
13
|
+
const runner_1 = require("../executor/runner");
|
|
14
|
+
const i18n_1 = require("../config/i18n");
|
|
15
|
+
// 获取工具版本
|
|
16
|
+
async function getVersion(step) {
|
|
17
|
+
if (!step.versionCmd)
|
|
18
|
+
return undefined;
|
|
19
|
+
try {
|
|
20
|
+
const { stdout } = await execa_1.default.command(step.versionCmd, {
|
|
21
|
+
shell: true,
|
|
22
|
+
timeout: 10000,
|
|
23
|
+
});
|
|
24
|
+
return stdout.trim().replace(/\n.*/s, "");
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// 检查授权状态
|
|
31
|
+
async function checkAuth(step) {
|
|
32
|
+
if (!step.authCheck)
|
|
33
|
+
return undefined;
|
|
34
|
+
try {
|
|
35
|
+
const { stdout, stderr } = await execa_1.default.command(step.authCheck, {
|
|
36
|
+
shell: true,
|
|
37
|
+
timeout: 15000,
|
|
38
|
+
});
|
|
39
|
+
const output = (stdout + "\n" + stderr).trim();
|
|
40
|
+
// gh auth status 成功退出 = 已登录
|
|
41
|
+
// docker info 成功 = daemon 运行中
|
|
42
|
+
return { ok: true, msg: output.split("\n")[0] };
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
const output = ((error.stdout || "") + "\n" + (error.stderr || "")).trim();
|
|
46
|
+
return { ok: false, msg: output.split("\n")[0] || "auth check failed" };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// 获取 brew outdated 信息
|
|
50
|
+
async function getBrewOutdated() {
|
|
51
|
+
const outdated = new Map();
|
|
52
|
+
try {
|
|
53
|
+
const { stdout } = await execa_1.default.command("brew outdated --json=v2", {
|
|
54
|
+
shell: true,
|
|
55
|
+
timeout: 30000,
|
|
56
|
+
});
|
|
57
|
+
const data = JSON.parse(stdout);
|
|
58
|
+
// formulae
|
|
59
|
+
for (const pkg of data.formulae || []) {
|
|
60
|
+
const current = pkg.installed_versions?.[0] || "";
|
|
61
|
+
const latest = pkg.current_version || "";
|
|
62
|
+
if (latest && latest !== current) {
|
|
63
|
+
outdated.set(pkg.name, latest);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// casks
|
|
67
|
+
for (const pkg of data.casks || []) {
|
|
68
|
+
const latest = pkg.current_version || "";
|
|
69
|
+
if (latest) {
|
|
70
|
+
outdated.set(pkg.name, latest);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// brew outdated 失败不影响其他检查
|
|
76
|
+
}
|
|
77
|
+
return outdated;
|
|
78
|
+
}
|
|
79
|
+
// 从 install 命令中提取 brew 包名
|
|
80
|
+
function extractBrewName(step) {
|
|
81
|
+
const cmd = step.install;
|
|
82
|
+
// 匹配 brew install [--cask] <name>
|
|
83
|
+
const match = cmd.match(/brew install\s+(?:--cask\s+)?(\S+)/);
|
|
84
|
+
return match?.[1];
|
|
85
|
+
}
|
|
86
|
+
// 获取 npm -g outdated 信息
|
|
87
|
+
async function getNpmOutdated() {
|
|
88
|
+
const outdated = new Map();
|
|
89
|
+
try {
|
|
90
|
+
const { stdout } = await execa_1.default.command("npm outdated -g --json 2>/dev/null || true", {
|
|
91
|
+
shell: true,
|
|
92
|
+
timeout: 30000,
|
|
93
|
+
});
|
|
94
|
+
if (stdout.trim()) {
|
|
95
|
+
const data = JSON.parse(stdout);
|
|
96
|
+
for (const [name, info] of Object.entries(data)) {
|
|
97
|
+
if (info.latest) {
|
|
98
|
+
outdated.set(name, info.latest);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
// npm outdated 失败不影响其他检查
|
|
105
|
+
}
|
|
106
|
+
return outdated;
|
|
107
|
+
}
|
|
108
|
+
// 从 install 命令中提取 npm 包名
|
|
109
|
+
function extractNpmPackage(step) {
|
|
110
|
+
const cmd = step.install;
|
|
111
|
+
// 匹配 npm install -g <pkg> 或 sudo npm install -g <pkg>
|
|
112
|
+
const match = cmd.match(/npm install\s+-g\s+(\S+)/);
|
|
113
|
+
return match?.[1];
|
|
114
|
+
}
|
|
115
|
+
async function runCheck(options = {}) {
|
|
116
|
+
const spinner = (0, ora_1.default)((0, i18n_1.t)("checkScanning")).start();
|
|
117
|
+
const registry = await (0, registry_1.loadRegistry)();
|
|
118
|
+
const steps = registry.steps;
|
|
119
|
+
const results = [];
|
|
120
|
+
// 并行获取 brew 和 npm 的过期信息
|
|
121
|
+
const [brewOutdated, npmOutdated] = await Promise.all([
|
|
122
|
+
getBrewOutdated(),
|
|
123
|
+
getNpmOutdated(),
|
|
124
|
+
]);
|
|
125
|
+
spinner.text = (0, i18n_1.t)("checkRunning");
|
|
126
|
+
// 逐个检查工具
|
|
127
|
+
for (const step of steps) {
|
|
128
|
+
const installed = await (0, runner_1.checkStep)(step);
|
|
129
|
+
if (!installed) {
|
|
130
|
+
results.push({ name: step.name, installed: false });
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
const result = { name: step.name, installed: true };
|
|
134
|
+
// 版本
|
|
135
|
+
result.version = await getVersion(step);
|
|
136
|
+
// 是否有更新
|
|
137
|
+
const brewName = extractBrewName(step);
|
|
138
|
+
const npmPkg = extractNpmPackage(step);
|
|
139
|
+
if (brewName && brewOutdated.has(brewName)) {
|
|
140
|
+
result.outdated = true;
|
|
141
|
+
result.availableVersion = brewOutdated.get(brewName);
|
|
142
|
+
}
|
|
143
|
+
else if (npmPkg && npmOutdated.has(npmPkg)) {
|
|
144
|
+
result.outdated = true;
|
|
145
|
+
result.availableVersion = npmOutdated.get(npmPkg);
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
result.outdated = false;
|
|
149
|
+
}
|
|
150
|
+
// 授权检查
|
|
151
|
+
const auth = await checkAuth(step);
|
|
152
|
+
if (auth) {
|
|
153
|
+
result.authOk = auth.ok;
|
|
154
|
+
result.authMsg = auth.msg;
|
|
155
|
+
}
|
|
156
|
+
results.push(result);
|
|
157
|
+
}
|
|
158
|
+
spinner.stop();
|
|
159
|
+
if (options.json) {
|
|
160
|
+
console.log(JSON.stringify(results, null, 2));
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
printCheckReport(results);
|
|
164
|
+
}
|
|
165
|
+
// 保存检查结果日志
|
|
166
|
+
await saveCheckLog(results);
|
|
167
|
+
return results;
|
|
168
|
+
}
|
|
169
|
+
function printCheckReport(results) {
|
|
170
|
+
const installed = results.filter((r) => r.installed);
|
|
171
|
+
const notInstalled = results.filter((r) => !r.installed);
|
|
172
|
+
const outdated = results.filter((r) => r.outdated);
|
|
173
|
+
const authFailed = results.filter((r) => r.authOk === false);
|
|
174
|
+
console.log(kleur_1.default.cyan("\n" + "═".repeat(60)));
|
|
175
|
+
console.log(kleur_1.default.bold(kleur_1.default.cyan((0, i18n_1.t)("checkReportTitle"))));
|
|
176
|
+
console.log(kleur_1.default.cyan("═".repeat(60) + "\n"));
|
|
177
|
+
// 已安装的工具
|
|
178
|
+
if (installed.length > 0) {
|
|
179
|
+
console.log(kleur_1.default.bold(kleur_1.default.green(` ✓ ${(0, i18n_1.t)("checkInstalled")} (${installed.length})`)));
|
|
180
|
+
for (const r of installed) {
|
|
181
|
+
const version = r.version ? kleur_1.default.gray(` ${r.version}`) : "";
|
|
182
|
+
const update = r.outdated
|
|
183
|
+
? kleur_1.default.yellow(` → ${r.availableVersion}`)
|
|
184
|
+
: "";
|
|
185
|
+
const auth = r.authOk === false
|
|
186
|
+
? kleur_1.default.red(` [${(0, i18n_1.t)("checkAuthFailed")}]`)
|
|
187
|
+
: r.authOk === true
|
|
188
|
+
? kleur_1.default.green(` [${(0, i18n_1.t)("checkAuthOk")}]`)
|
|
189
|
+
: "";
|
|
190
|
+
console.log(` ${r.name}${version}${update}${auth}`);
|
|
191
|
+
}
|
|
192
|
+
console.log();
|
|
193
|
+
}
|
|
194
|
+
// 未安装的工具
|
|
195
|
+
if (notInstalled.length > 0) {
|
|
196
|
+
console.log(kleur_1.default.bold(kleur_1.default.gray(` ○ ${(0, i18n_1.t)("checkNotInstalled")} (${notInstalled.length})`)));
|
|
197
|
+
for (const r of notInstalled) {
|
|
198
|
+
console.log(kleur_1.default.gray(` ${r.name}`));
|
|
199
|
+
}
|
|
200
|
+
console.log();
|
|
201
|
+
}
|
|
202
|
+
// 需要升级的工具
|
|
203
|
+
if (outdated.length > 0) {
|
|
204
|
+
console.log(kleur_1.default.bold(kleur_1.default.yellow(` ⬆ ${(0, i18n_1.t)("checkOutdated")} (${outdated.length})`)));
|
|
205
|
+
for (const r of outdated) {
|
|
206
|
+
console.log(kleur_1.default.yellow(` ${r.name} ${r.version || "?"} → ${r.availableVersion}`));
|
|
207
|
+
}
|
|
208
|
+
console.log();
|
|
209
|
+
}
|
|
210
|
+
// 授权失败的工具
|
|
211
|
+
if (authFailed.length > 0) {
|
|
212
|
+
console.log(kleur_1.default.bold(kleur_1.default.red(` ⚠ ${(0, i18n_1.t)("checkAuthIssues")} (${authFailed.length})`)));
|
|
213
|
+
for (const r of authFailed) {
|
|
214
|
+
console.log(kleur_1.default.red(` ${r.name}: ${r.authMsg}`));
|
|
215
|
+
}
|
|
216
|
+
console.log();
|
|
217
|
+
}
|
|
218
|
+
// 总结
|
|
219
|
+
console.log(kleur_1.default.bold((0, i18n_1.t)("checkSummary")));
|
|
220
|
+
console.log(` ${kleur_1.default.green("●")} ${(0, i18n_1.t)("checkInstalled")}: ${installed.length}/${results.length}`);
|
|
221
|
+
if (outdated.length > 0) {
|
|
222
|
+
console.log(` ${kleur_1.default.yellow("●")} ${(0, i18n_1.t)("checkOutdated")}: ${outdated.length}`);
|
|
223
|
+
}
|
|
224
|
+
if (authFailed.length > 0) {
|
|
225
|
+
console.log(` ${kleur_1.default.red("●")} ${(0, i18n_1.t)("checkAuthIssues")}: ${authFailed.length}`);
|
|
226
|
+
}
|
|
227
|
+
// 健康评分
|
|
228
|
+
const score = Math.round(((installed.length / results.length) * 70) +
|
|
229
|
+
((1 - outdated.length / Math.max(installed.length, 1)) * 20) +
|
|
230
|
+
((1 - authFailed.length / Math.max(installed.length, 1)) * 10));
|
|
231
|
+
const scoreColor = score >= 80 ? kleur_1.default.green : score >= 60 ? kleur_1.default.yellow : kleur_1.default.red;
|
|
232
|
+
console.log(` ${scoreColor("●")} ${(0, i18n_1.t)("checkHealthScore")}: ${scoreColor(String(score) + "/100")}`);
|
|
233
|
+
console.log();
|
|
234
|
+
// 建议
|
|
235
|
+
if (outdated.length > 0) {
|
|
236
|
+
console.log(kleur_1.default.gray(` ${(0, i18n_1.t)("checkHintUpgrade")}`));
|
|
237
|
+
}
|
|
238
|
+
if (authFailed.length > 0) {
|
|
239
|
+
console.log(kleur_1.default.gray(` ${(0, i18n_1.t)("checkHintAuth")}`));
|
|
240
|
+
}
|
|
241
|
+
if (notInstalled.length > 0 && installed.length < results.length * 0.5) {
|
|
242
|
+
console.log(kleur_1.default.gray(` ${(0, i18n_1.t)("checkHintInstall")}`));
|
|
243
|
+
}
|
|
244
|
+
console.log();
|
|
245
|
+
}
|
|
246
|
+
async function saveCheckLog(results) {
|
|
247
|
+
try {
|
|
248
|
+
await fs_extra_1.default.ensureDir(registry_1.LOGS_DIR);
|
|
249
|
+
const payload = {
|
|
250
|
+
generatedAt: new Date().toISOString(),
|
|
251
|
+
results,
|
|
252
|
+
};
|
|
253
|
+
await fs_extra_1.default.writeFile(path_1.default.join(registry_1.LOGS_DIR, "check-latest.json"), JSON.stringify(payload, null, 2));
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
// 日志写入失败不影响主流程
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type ClaudeTeammateMode = "auto" | "in-process" | "tmux";
|
|
2
|
+
type ClaudeRunOptions = {
|
|
3
|
+
teammateModeOverride?: ClaudeTeammateMode;
|
|
4
|
+
};
|
|
5
|
+
export declare function runClaudeCommand(mode: "run" | "switch", options?: ClaudeRunOptions): Promise<void>;
|
|
6
|
+
export declare function configureClaudeAgentTeams(enabled?: boolean): Promise<void>;
|
|
7
|
+
export declare function configureClaudeTeammateMode(mode?: ClaudeTeammateMode): Promise<void>;
|
|
8
|
+
export declare function addClaudeProfile(): Promise<void>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=claude.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/commands/claude.ts"],"names":[],"mappings":"AAsBA,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC;AAEhE,KAAK,gBAAgB,GAAG;IACtB,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;CAC3C,CAAC;AAyCF,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,KAAK,GAAG,QAAQ,EACtB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,IAAI,CAAC,CA4Df;AAED,wBAAsB,yBAAyB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBhF;AAED,wBAAsB,2BAA2B,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB1F;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BtD"}
|