okit-cli 2.1.0 → 2.1.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.
Files changed (78) hide show
  1. package/README.md +103 -139
  2. package/dist/commands/auth.d.ts +4 -0
  3. package/dist/commands/auth.d.ts.map +1 -0
  4. package/dist/commands/auth.js +134 -0
  5. package/dist/commands/auth.js.map +1 -0
  6. package/dist/commands/check.d.ts +2 -0
  7. package/dist/commands/check.d.ts.map +1 -1
  8. package/dist/commands/check.js +122 -29
  9. package/dist/commands/check.js.map +1 -1
  10. package/dist/commands/menu.d.ts.map +1 -1
  11. package/dist/commands/menu.js +5 -0
  12. package/dist/commands/menu.js.map +1 -1
  13. package/dist/commands/profile.d.ts +18 -0
  14. package/dist/commands/profile.d.ts.map +1 -0
  15. package/dist/commands/profile.js +409 -0
  16. package/dist/commands/profile.js.map +1 -0
  17. package/dist/commands/relay.d.ts +14 -0
  18. package/dist/commands/relay.d.ts.map +1 -0
  19. package/dist/commands/relay.js +263 -0
  20. package/dist/commands/relay.js.map +1 -0
  21. package/dist/commands/repo.js +0 -16
  22. package/dist/commands/repo.js.map +1 -1
  23. package/dist/commands/uninstall.d.ts.map +1 -1
  24. package/dist/commands/uninstall.js +21 -72
  25. package/dist/commands/uninstall.js.map +1 -1
  26. package/dist/commands/upgrade.d.ts +1 -3
  27. package/dist/commands/upgrade.d.ts.map +1 -1
  28. package/dist/commands/upgrade.js +45 -110
  29. package/dist/commands/upgrade.js.map +1 -1
  30. package/dist/commands/vault.d.ts +14 -0
  31. package/dist/commands/vault.d.ts.map +1 -0
  32. package/dist/commands/vault.js +255 -0
  33. package/dist/commands/vault.js.map +1 -0
  34. package/dist/config/i18n.d.ts +71 -0
  35. package/dist/config/i18n.d.ts.map +1 -1
  36. package/dist/config/i18n.js +150 -0
  37. package/dist/config/i18n.js.map +1 -1
  38. package/dist/config/registry.d.ts +14 -6
  39. package/dist/config/registry.d.ts.map +1 -1
  40. package/dist/config/registry.js +638 -68
  41. package/dist/config/registry.js.map +1 -1
  42. package/dist/config/user.d.ts +4 -0
  43. package/dist/config/user.d.ts.map +1 -1
  44. package/dist/config/user.js +1 -0
  45. package/dist/config/user.js.map +1 -1
  46. package/dist/executor/deps/BrewDependencyProvider.d.ts.map +1 -1
  47. package/dist/executor/deps/BrewDependencyProvider.js +4 -2
  48. package/dist/executor/deps/BrewDependencyProvider.js.map +1 -1
  49. package/dist/executor/deps/NpmDependencyProvider.d.ts.map +1 -1
  50. package/dist/executor/deps/NpmDependencyProvider.js +4 -2
  51. package/dist/executor/deps/NpmDependencyProvider.js.map +1 -1
  52. package/dist/executor/deps/PipxDependencyProvider.d.ts.map +1 -1
  53. package/dist/executor/deps/PipxDependencyProvider.js +4 -2
  54. package/dist/executor/deps/PipxDependencyProvider.js.map +1 -1
  55. package/dist/executor/deps/UvToolDependencyProvider.d.ts.map +1 -1
  56. package/dist/executor/deps/UvToolDependencyProvider.js +4 -2
  57. package/dist/executor/deps/UvToolDependencyProvider.js.map +1 -1
  58. package/dist/executor/plan/registryDeps.d.ts.map +1 -1
  59. package/dist/executor/plan/registryDeps.js +13 -5
  60. package/dist/executor/plan/registryDeps.js.map +1 -1
  61. package/dist/executor/runner.d.ts.map +1 -1
  62. package/dist/executor/runner.js +11 -9
  63. package/dist/executor/runner.js.map +1 -1
  64. package/dist/main.js +194 -4
  65. package/dist/main.js.map +1 -1
  66. package/dist/relay/client.d.ts +29 -0
  67. package/dist/relay/client.d.ts.map +1 -0
  68. package/dist/relay/client.js +209 -0
  69. package/dist/relay/client.js.map +1 -0
  70. package/dist/utils/semver.d.ts +12 -0
  71. package/dist/utils/semver.d.ts.map +1 -0
  72. package/dist/utils/semver.js +71 -0
  73. package/dist/utils/semver.js.map +1 -0
  74. package/dist/vault/store.d.ts +51 -0
  75. package/dist/vault/store.d.ts.map +1 -0
  76. package/dist/vault/store.js +260 -0
  77. package/dist/vault/store.js.map +1 -0
  78. package/package.json +11 -4
package/README.md CHANGED
@@ -1,218 +1,182 @@
1
1
  # OKIT
2
2
 
3
- macOS 开发工具管理器,提供一站式的安装、升级、卸载、依赖排序与常用配置能力。
3
+ Agent 基础设施运维工具,集中管理工具安装、授权、密钥与中继连接,消除 Agent 执行中断。
4
4
 
5
5
  适合场景:
6
- - 新机器快速初始化开发环境
7
- - 团队统一工具安装方式
8
- - 需要在命令行完成常规维护
6
+ - Agent 运行时自动安装缺失的 CLI 工具
7
+ - 统一管理 API Key,按项目注入环境变量
8
+ - 通过中继服务器让外部 Agent 访问本地服务
9
+ - 团队共享工具配置 Profile
9
10
 
10
11
  ---
11
12
 
12
- ## 快速安装(推荐)
13
+ ## 安装
14
+
15
+ **NPM(推荐)**:
13
16
 
14
17
  ```bash
15
- curl -fsSL https://raw.githubusercontent.com/dolphin-molt/okit/refs/heads/main/install.sh | bash
18
+ npm install -g okit-cli
16
19
  ```
17
20
 
18
- 安装完成后即可使用:
21
+ **脚本安装**:
19
22
 
20
23
  ```bash
21
- okit
24
+ curl -fsSL https://raw.githubusercontent.com/dolphin-molt/okit/refs/heads/main/install.sh | bash
22
25
  ```
23
26
 
24
- ---
25
-
26
- ## 重要说明
27
+ 安装完成后:
27
28
 
28
- - 仅支持 macOS。
29
- - 会安装到 `/usr/local/bin/okit`(必要时会提示 sudo)。
30
- - 配置文件目录为 `~/.okit`。
31
- - 默认使用 HTTPS 下载 Release 二进制。
29
+ ```bash
30
+ okit
31
+ ```
32
32
 
33
33
  ---
34
34
 
35
35
  ## 常用命令
36
36
 
37
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
38
+ okit # 交互式菜单
39
+ okit check # 检查所有工具安装状态
40
+ okit upgrade # 升级 OKIT 或工具
41
+ okit uninstall # 卸载 OKIT
42
+ okit profile # 工具分组管理
43
+ okit auth # 检查工具授权状态
44
+ okit auth --fix # 自动修复授权
45
+ okit vault # 密钥管理
46
+ okit relay # 中继服务器连接
47
+ okit repo # Git/GitHub 设置
48
+ okit claude # Claude 配置管理
49
+ okit -V # 查看版本
49
50
  ```
50
51
 
51
52
  ---
52
53
 
53
- ## 交互式菜单使用
54
+ ## Profile — 工具分组
54
55
 
55
- 进入 `okit` 后你可以进行:
56
+ 自定义工具组合,一键安装:
56
57
 
57
- - 安装工具
58
- - 升级工具
59
- - 卸载工具
60
- - Claude 配置管理
61
- - Repo 设置与创建
58
+ ```bash
59
+ okit profile create # 创建 Profile
60
+ okit profile apply # 安装 Profile 中的所有工具
61
+ okit profile list # 查看所有 Profile
62
+ okit profile export # 导出(分享给团队)
63
+ okit profile import # 导入
64
+ ```
62
65
 
63
- 菜单内支持的快捷键会在界面提示中显示。
66
+ Profile 存储在 `~/.okit/profiles/`。
64
67
 
65
68
  ---
66
69
 
67
- ## Repo 功能(GitHub)
68
-
69
- 目前仅支持 GitHub。
70
-
71
- 功能包括:
72
- - 一键设置 Git + GitHub 凭据
73
- - 创建远程仓库
74
- - 自动绑定 `origin`(HTTPS)
75
- - 可选首次推送
70
+ ## Auth — 授权管理
76
71
 
77
- 推荐流程:
72
+ 检查所有工具的登录/授权状态,一键修复:
78
73
 
79
- 1. 运行 `okit repo`
80
- 2. 选择 “一键设置(Git + GitHub)”
81
- 3. 回到菜单选择 “新建仓库”
74
+ ```bash
75
+ okit auth # 检查授权状态
76
+ okit auth --fix # 自动运行 gh auth login、docker login 等
77
+ ```
82
78
 
83
- 注意:
84
- - GitHub Token 会保存在 `~/.okit/user.json`。
85
- - 同时会写入系统 Keychain,以便 HTTPS 推送免输入。
79
+ 支持 15+ 工具的授权检测与修复(gh、docker、wrangler、vercel、aws、gcloud 等)。
86
80
 
87
81
  ---
88
82
 
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
- ```
83
+ ## Vault — 密钥管理
105
84
 
106
- 常用命令:
85
+ 加密存储 API Key,按项目注入环境变量:
107
86
 
108
87
  ```bash
109
- okit claude
88
+ okit vault set OPENROUTER_KEY # 保存密钥
89
+ okit vault list # 查看所有密钥
90
+ okit vault get OPENROUTER_KEY # 输出原始值
91
+ okit vault inject # 输出 export 语句
92
+ okit vault env # 生成 .env 文件
93
+ okit vault where OPENROUTER_KEY # 查看密钥被哪些项目使用
94
+ okit vault sync # 同步到所有绑定项目
110
95
  ```
111
96
 
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` → `队友显示模式`。
97
+ ### 密钥映射
117
98
 
118
- ---
99
+ 在项目根目录创建 `.okitenv` 文件,将 Vault 中的密钥映射为框架需要的环境变量名:
119
100
 
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
- }
101
+ ```
102
+ OPENAI_API_KEY: OPENROUTER_KEY
103
+ GITHUB_TOKEN: GITHUB_TOKEN/company
104
+ DATABASE_URL
138
105
  ```
139
106
 
140
- `~/.okit/registry.json` 保存可安装工具清单,可自定义:
141
- - 同名工具会覆盖默认配置
142
- - 新增工具会被追加
143
- - 默认新增工具不会丢失
144
-
145
- ---
146
-
147
- ## 安装脚本高级用法
107
+ 格式:`环境变量名: Vault密钥名`,支持 `KEY/alias` 多别名。
148
108
 
149
- 指定版本安装:
109
+ ### 使用方式
150
110
 
151
111
  ```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
- 设置下载超时(秒):
112
+ # 注入到当前 shell
113
+ eval "$(okit vault inject)"
156
114
 
157
- ```bash
158
- OKIT_DOWNLOAD_TIMEOUT=1200 curl -fsSL https://raw.githubusercontent.com/dolphin-molt/okit/refs/heads/main/install.sh | bash
115
+ # 生成 .env 文件
116
+ okit vault env
159
117
  ```
160
118
 
161
119
  ---
162
120
 
163
- ## 卸载说明
121
+ ## Relay — 中继服务器
164
122
 
165
- 执行:
123
+ 通过 Cloudflare Worker 中继,让外部 Agent 访问本地服务,无需开放端口:
166
124
 
167
125
  ```bash
168
- okit uninstall
126
+ okit relay config # 配置中继 URL 和 Token
127
+ okit relay connect # 建立连接
128
+ okit relay agents # 查看在线 Agent
129
+ okit relay status # 查看隧道状态
169
130
  ```
170
131
 
171
- 卸载时会:
172
- - 自动查找并删除多个可能的 `okit` 路径
173
- - 如需 sudo 会询问是否执行
174
- - 可选删除 `~/.okit` 配置目录
132
+ 工作原理:
175
133
 
176
- ---
134
+ ```
135
+ 本地服务 ──WebSocket出站──→ Cloudflare Worker ←──HTTP── 外部调用者
136
+ (不开端口) (公网入口)
137
+ ```
177
138
 
178
- ## 常见问题
139
+ 外部调用示例:
179
140
 
180
- Q: 下载 Release 二进制失败怎么办?
141
+ ```bash
142
+ curl https://<relay-url>/agent/<agent-name>/api/data \
143
+ -H "Authorization: Bearer <token>"
144
+ ```
181
145
 
182
- - 可重试执行安装脚本(默认带重试与超时)
183
- - 手动指定版本号再安装
146
+ ---
184
147
 
185
- Q: 为什么我卸载后 `okit` 还能用?
148
+ ## 工具注册表
186
149
 
187
- - 可能存在多个安装路径
188
- - 重新执行 `okit uninstall` 并允许 sudo 删除即可
150
+ 内置 54+ 常用工具,覆盖:
189
151
 
190
- Q: token 是否会写到环境变量?
152
+ - **基础开发**:Node.js、Python、Git、Docker
153
+ - **包管理**:Homebrew、pnpm、uv、pipx
154
+ - **云平台**:AWS CLI、gcloud、Azure CLI、Wrangler、Vercel、Netlify
155
+ - **部署**:Railway、Supabase、Firebase、Fly.io、Heroku
156
+ - **AI 工具**:Claude Code、Ollama
157
+ - **实用工具**:jq、httpie、bat、tree、ngrok、cloudflared
191
158
 
192
- - 不会
193
- - 仅保存在 `~/.okit/user.json` 与系统 Keychain
159
+ 自定义工具可通过 `~/.okit/registry.json` 添加。
194
160
 
195
161
  ---
196
162
 
197
- ## 开发者说明
163
+ ## 配置文件
198
164
 
199
- 本地开发:
165
+ | 文件 | 用途 |
166
+ |------|------|
167
+ | `~/.okit/user.json` | 用户偏好、凭据、中继配置 |
168
+ | `~/.okit/registry.json` | 自定义工具注册表 |
169
+ | `~/.okit/profiles/` | Profile 配置 |
170
+ | `~/.okit/vault/` | 加密密钥存储 |
171
+ | `.okitenv` | 项目级密钥映射 |
200
172
 
201
- ```bash
202
- npm run dev
203
- ```
204
-
205
- 本地构建:
206
-
207
- ```bash
208
- npm run build
209
- npm run pkg
210
- ```
173
+ ---
211
174
 
212
- 发布 Release(自动打包):
175
+ ## 开发
213
176
 
214
177
  ```bash
215
- scripts/publish-release.sh v0.0.1 --auto-notes
178
+ npm run dev # 本地开发
179
+ npm run build # 构建
216
180
  ```
217
181
 
218
182
  ---
@@ -0,0 +1,4 @@
1
+ export declare function runAuth(options?: {
2
+ fix?: boolean;
3
+ }): Promise<void>;
4
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAsEA,wBAAsB,OAAO,CAAC,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwExE"}
@@ -0,0 +1,134 @@
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.runAuth = runAuth;
7
+ const kleur_1 = __importDefault(require("kleur"));
8
+ const child_process_1 = require("child_process");
9
+ const registry_1 = require("../config/registry");
10
+ const i18n_1 = require("../config/i18n");
11
+ function checkAuth(step) {
12
+ const authCmd = (0, registry_1.resolveCmd)(step.authCheck);
13
+ if (!authCmd)
14
+ return "no_check";
15
+ try {
16
+ const output = (0, child_process_1.execSync)(authCmd, {
17
+ timeout: 15000,
18
+ stdio: ["pipe", "pipe", "pipe"],
19
+ }).toString();
20
+ // Common failure patterns
21
+ const failPatterns = [
22
+ /not logged in/i,
23
+ /not authenticated/i,
24
+ /no auth/i,
25
+ /login required/i,
26
+ /unauthorized/i,
27
+ /expired/i,
28
+ /invalid.*token/i,
29
+ /could not determine/i,
30
+ /error/i,
31
+ /EACCES/i,
32
+ ];
33
+ for (const pattern of failPatterns) {
34
+ if (pattern.test(output))
35
+ return "failed";
36
+ }
37
+ return "ok";
38
+ }
39
+ catch {
40
+ return "failed";
41
+ }
42
+ }
43
+ function isInstalled(step) {
44
+ const checkCmd = (0, registry_1.resolveCmd)(step.check);
45
+ if (!checkCmd)
46
+ return false;
47
+ try {
48
+ (0, child_process_1.execSync)(checkCmd, { stdio: "ignore", timeout: 5000 });
49
+ return true;
50
+ }
51
+ catch {
52
+ return false;
53
+ }
54
+ }
55
+ function tryFix(step) {
56
+ const fixCmd = (0, registry_1.resolveCmd)(step.authFix);
57
+ if (!fixCmd)
58
+ return false;
59
+ console.log(kleur_1.default.gray(` ${(0, i18n_1.t)("authFixing")} ${step.name}...`));
60
+ // Use spawnSync with inherit to allow interactive auth flows
61
+ const result = (0, child_process_1.spawnSync)("sh", ["-c", fixCmd], {
62
+ stdio: "inherit",
63
+ timeout: 120000,
64
+ });
65
+ return result.status === 0;
66
+ }
67
+ async function runAuth(options) {
68
+ const registry = await (0, registry_1.loadRegistry)();
69
+ const results = [];
70
+ // Find all tools with authCheck
71
+ const authTools = registry.steps.filter((s) => (0, registry_1.resolveCmd)(s.authCheck) !== undefined);
72
+ if (authTools.length === 0) {
73
+ console.log(kleur_1.default.yellow((0, i18n_1.t)("authNoTools")));
74
+ return;
75
+ }
76
+ console.log(kleur_1.default.cyan(`\n${(0, i18n_1.t)("authChecking")}\n`));
77
+ for (const step of authTools) {
78
+ if (!isInstalled(step)) {
79
+ results.push({ name: step.name, status: "skipped", message: (0, i18n_1.t)("checkNotInstalled") });
80
+ continue;
81
+ }
82
+ const status = checkAuth(step);
83
+ if (status === "no_check")
84
+ continue;
85
+ if (status === "ok") {
86
+ results.push({ name: step.name, status: "ok" });
87
+ console.log(` ${kleur_1.default.green("\u2713")} ${step.name} ${kleur_1.default.gray((0, i18n_1.t)("checkAuthOk"))}`);
88
+ continue;
89
+ }
90
+ // Auth failed
91
+ if (options?.fix) {
92
+ const fixCmd = (0, registry_1.resolveCmd)(step.authFix);
93
+ if (fixCmd) {
94
+ const fixed = tryFix(step);
95
+ if (fixed) {
96
+ // Verify after fix
97
+ const recheck = checkAuth(step);
98
+ if (recheck === "ok") {
99
+ results.push({ name: step.name, status: "fixed" });
100
+ console.log(` ${kleur_1.default.green("\u2713")} ${step.name} ${kleur_1.default.green((0, i18n_1.t)("authFixed"))}`);
101
+ continue;
102
+ }
103
+ }
104
+ results.push({ name: step.name, status: "fix_failed" });
105
+ console.log(` ${kleur_1.default.red("\u2717")} ${step.name} ${kleur_1.default.red((0, i18n_1.t)("authFixFailed"))}`);
106
+ }
107
+ else {
108
+ results.push({ name: step.name, status: "failed", message: (0, i18n_1.t)("authNoFixCmd") });
109
+ console.log(` ${kleur_1.default.red("\u2717")} ${step.name} ${kleur_1.default.yellow((0, i18n_1.t)("authNoFixCmd"))}`);
110
+ }
111
+ }
112
+ else {
113
+ results.push({ name: step.name, status: "failed" });
114
+ console.log(` ${kleur_1.default.red("\u2717")} ${step.name} ${kleur_1.default.red((0, i18n_1.t)("checkAuthFailed"))}`);
115
+ }
116
+ }
117
+ // Summary
118
+ const ok = results.filter((r) => r.status === "ok").length;
119
+ const fixed = results.filter((r) => r.status === "fixed").length;
120
+ const failed = results.filter((r) => r.status === "failed" || r.status === "fix_failed").length;
121
+ const skipped = results.filter((r) => r.status === "skipped").length;
122
+ console.log(kleur_1.default.cyan(`\n${(0, i18n_1.t)("authSummary")}`));
123
+ console.log(kleur_1.default.green(` ${(0, i18n_1.t)("checkAuthOk")}: ${ok}`));
124
+ if (fixed > 0)
125
+ console.log(kleur_1.default.green(` ${(0, i18n_1.t)("authFixed")}: ${fixed}`));
126
+ if (failed > 0)
127
+ console.log(kleur_1.default.red(` ${(0, i18n_1.t)("checkAuthFailed")}: ${failed}`));
128
+ if (skipped > 0)
129
+ console.log(kleur_1.default.gray(` ${(0, i18n_1.t)("skipped")}: ${skipped}`));
130
+ if (failed > 0 && !options?.fix) {
131
+ console.log(kleur_1.default.yellow(`\n ${(0, i18n_1.t)("authHintFix")}`));
132
+ }
133
+ }
134
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":";;;;;AAsEA,0BAwEC;AA9ID,kDAA0B;AAC1B,iDAAoD;AACpD,iDAAoE;AACpE,yCAAmC;AAQnC,SAAS,SAAS,CAAC,IAAU;IAC3B,MAAM,OAAO,GAAG,IAAA,qBAAU,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO,UAAU,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,OAAO,EAAE;YAC/B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEd,0BAA0B;QAC1B,MAAM,YAAY,GAAG;YACnB,gBAAgB;YAChB,oBAAoB;YACpB,UAAU;YACV,iBAAiB;YACjB,eAAe;YACf,UAAU;YACV,iBAAiB;YACjB,sBAAsB;YACtB,QAAQ;YACR,SAAS;SACV,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACnC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAO,QAAQ,CAAC;QAC5C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAAU;IAC7B,MAAM,QAAQ,GAAG,IAAA,qBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,IAAI,CAAC;QACH,IAAA,wBAAQ,EAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,IAAU;IACxB,MAAM,MAAM,GAAG,IAAA,qBAAU,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,IAAA,QAAC,EAAC,YAAY,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;IAEhE,6DAA6D;IAC7D,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;QAC7C,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,OAA2B;IACvD,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,GAAE,CAAC;IACtC,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,gCAAgC;IAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAU,EAAC,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS,CAC7C,CAAC;IAEF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,IAAA,QAAC,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,IAAA,QAAC,EAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAA,QAAC,EAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;YACtF,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,MAAM,KAAK,UAAU;YAAE,SAAS;QAEpC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,eAAK,CAAC,IAAI,CAAC,IAAA,QAAC,EAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;YACvF,SAAS;QACX,CAAC;QAED,cAAc;QACd,IAAI,OAAO,EAAE,GAAG,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,IAAA,qBAAU,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC3B,IAAI,KAAK,EAAE,CAAC;oBACV,mBAAmB;oBACnB,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;oBAChC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;wBACrB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;wBACnD,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,eAAK,CAAC,KAAK,CAAC,IAAA,QAAC,EAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;wBACtF,SAAS;oBACX,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,eAAK,CAAC,GAAG,CAAC,IAAA,QAAC,EAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;YACxF,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAA,QAAC,EAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBAChF,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,eAAK,CAAC,MAAM,CAAC,IAAA,QAAC,EAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,eAAK,CAAC,GAAG,CAAC,IAAA,QAAC,EAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,UAAU;IACV,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,MAAM,CAAC;IAChG,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAErE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,IAAA,QAAC,EAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,IAAA,QAAC,EAAC,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,IAAA,QAAC,EAAC,WAAW,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC;IACzE,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,IAAA,QAAC,EAAC,iBAAiB,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/E,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,IAAA,QAAC,EAAC,SAAS,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IAE1E,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,OAAO,IAAA,QAAC,EAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
@@ -1,9 +1,11 @@
1
+ import { UpgradeLevel } from "../utils/semver";
1
2
  export interface CheckResult {
2
3
  name: string;
3
4
  installed: boolean;
4
5
  version?: string;
5
6
  outdated?: boolean;
6
7
  availableVersion?: string;
8
+ upgradeLevel?: UpgradeLevel;
7
9
  authOk?: boolean;
8
10
  authMsg?: string;
9
11
  }
@@ -1 +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"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAQA,OAAO,EAKL,YAAY,EACb,MAAM,iBAAiB,CAAC;AAEzB,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,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA6GD,wBAAsB,QAAQ,CAAC,OAAO,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAgEvF"}