opencode-account-manager 0.6.4 → 0.6.5

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 (86) hide show
  1. package/README.md +235 -216
  2. package/README_VI.md +235 -216
  3. package/dist/cli.js +83 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/core/config-store.d.ts +12 -0
  6. package/dist/core/config-store.d.ts.map +1 -1
  7. package/dist/core/config-store.js +98 -0
  8. package/dist/core/config-store.js.map +1 -1
  9. package/dist/core/health-log.d.ts +9 -0
  10. package/dist/core/health-log.d.ts.map +1 -0
  11. package/dist/core/health-log.js +154 -0
  12. package/dist/core/health-log.js.map +1 -0
  13. package/dist/core/health-oauth.d.ts +5 -0
  14. package/dist/core/health-oauth.d.ts.map +1 -0
  15. package/dist/core/health-oauth.js +147 -0
  16. package/dist/core/health-oauth.js.map +1 -0
  17. package/dist/core/health-orchestrator.d.ts +32 -0
  18. package/dist/core/health-orchestrator.d.ts.map +1 -0
  19. package/dist/core/health-orchestrator.js +148 -0
  20. package/dist/core/health-orchestrator.js.map +1 -0
  21. package/dist/core/health-utils.d.ts +15 -0
  22. package/dist/core/health-utils.d.ts.map +1 -0
  23. package/dist/core/health-utils.js +60 -0
  24. package/dist/core/health-utils.js.map +1 -0
  25. package/dist/core/paths.d.ts +1 -0
  26. package/dist/core/paths.d.ts.map +1 -1
  27. package/dist/core/paths.js +4 -0
  28. package/dist/core/paths.js.map +1 -1
  29. package/dist/core/types.d.ts +26 -0
  30. package/dist/core/types.d.ts.map +1 -1
  31. package/dist/tui/Dashboard.d.ts.map +1 -1
  32. package/dist/tui/Dashboard.js +69 -2
  33. package/dist/tui/Dashboard.js.map +1 -1
  34. package/dist/tui/components/AccountList.d.ts +5 -3
  35. package/dist/tui/components/AccountList.d.ts.map +1 -1
  36. package/dist/tui/components/AccountList.js +9 -3
  37. package/dist/tui/components/AccountList.js.map +1 -1
  38. package/dist/tui/components/DashboardView.d.ts +3 -2
  39. package/dist/tui/components/DashboardView.d.ts.map +1 -1
  40. package/dist/tui/components/DashboardView.js +50 -4
  41. package/dist/tui/components/DashboardView.js.map +1 -1
  42. package/dist/tui/components/HealthBadge.d.ts +9 -0
  43. package/dist/tui/components/HealthBadge.d.ts.map +1 -0
  44. package/dist/tui/components/HealthBadge.js +56 -0
  45. package/dist/tui/components/HealthBadge.js.map +1 -0
  46. package/dist/tui/components/StatusBadge.d.ts +2 -1
  47. package/dist/tui/components/StatusBadge.d.ts.map +1 -1
  48. package/dist/tui/components/StatusBadge.js +30 -2
  49. package/dist/tui/components/StatusBadge.js.map +1 -1
  50. package/dist/tui/components/index.d.ts +1 -0
  51. package/dist/tui/components/index.d.ts.map +1 -1
  52. package/dist/tui/components/index.js +3 -1
  53. package/dist/tui/components/index.js.map +1 -1
  54. package/docs/BLUEPRINT.md +476 -476
  55. package/docs/ROADMAP.md +125 -107
  56. package/package.json +36 -36
  57. package/src/cli.ts +139 -38
  58. package/src/core/config-store.ts +278 -171
  59. package/src/core/crypto.ts +162 -162
  60. package/src/core/health-log.ts +173 -0
  61. package/src/core/health-oauth.ts +190 -0
  62. package/src/core/health-orchestrator.ts +224 -0
  63. package/src/core/importers/amExport.ts +177 -177
  64. package/src/core/opencode-config.ts +217 -217
  65. package/src/core/paths.ts +10 -6
  66. package/src/core/types.ts +193 -147
  67. package/src/tui/Dashboard.tsx +557 -478
  68. package/src/tui/components/AccountList.tsx +122 -104
  69. package/src/tui/components/ActionPalette.tsx +117 -117
  70. package/src/tui/components/Box.tsx +7 -7
  71. package/src/tui/components/DashboardView.tsx +285 -230
  72. package/src/tui/components/ExportModal.tsx +255 -255
  73. package/src/tui/components/FileBrowser.tsx +393 -393
  74. package/src/tui/components/Header.tsx +26 -26
  75. package/src/tui/components/HealthBadge.tsx +64 -0
  76. package/src/tui/components/ImportModal.tsx +334 -334
  77. package/src/tui/components/McpServerList.tsx +67 -67
  78. package/src/tui/components/Menu.tsx +61 -61
  79. package/src/tui/components/PasswordInput.tsx +159 -159
  80. package/src/tui/components/ProviderList.tsx +59 -59
  81. package/src/tui/components/SectionBox.tsx +35 -35
  82. package/src/tui/components/StatsRow.tsx +33 -33
  83. package/src/tui/components/StatusBadge.tsx +36 -3
  84. package/src/tui/components/index.ts +15 -14
  85. package/test-minimal.js +26 -26
  86. package/test-with-accounts.js +58 -58
package/README_VI.md CHANGED
@@ -1,232 +1,251 @@
1
- # OpenCode Account Manager (OCAM)
2
-
3
- <div align="center">
4
- <h3>TUI Dashboard quản lý tài khoản OpenCode</h3>
5
- <p>Quản lý providers, MCP servers, và plugin accounts trong một giao diện.</p>
6
-
7
- <p>
8
- <a href="https://www.npmjs.com/package/opencode-account-manager">
9
- <img src="https://img.shields.io/npm/v/opencode-account-manager.svg" alt="npm version">
10
- </a>
11
- <a href="https://www.npmjs.com/package/opencode-account-manager">
12
- <img src="https://img.shields.io/npm/dw/opencode-account-manager.svg" alt="npm downloads">
13
- </a>
14
- <a href="https://github.com/d-init-d/opencode-account-manager/blob/main/LICENSE">
15
- <img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License">
16
- </a>
17
- </p>
18
-
19
- <p>
20
- <a href="./README.md">English</a> |
21
- <strong>Tiếng Việt</strong>
22
- </p>
23
- </div>
24
-
25
- ---
26
-
27
- ## Tính năng
28
-
29
- - **Xem Providers**: Hiển thị tất cả AI providers (Google, Ollama, Anthropic, etc.) với số lượng models
1
+ # OpenCode Account Manager (OCAM)
2
+
3
+ <div align="center">
4
+ <h3>TUI Dashboard quản lý tài khoản OpenCode</h3>
5
+ <p>Quản lý providers, MCP servers, và plugin accounts trong một giao diện.</p>
6
+
7
+ <p>
8
+ <a href="https://www.npmjs.com/package/opencode-account-manager">
9
+ <img src="https://img.shields.io/npm/v/opencode-account-manager.svg" alt="npm version">
10
+ </a>
11
+ <a href="https://www.npmjs.com/package/opencode-account-manager">
12
+ <img src="https://img.shields.io/npm/dw/opencode-account-manager.svg" alt="npm downloads">
13
+ </a>
14
+ <a href="https://github.com/d-init-d/opencode-account-manager/blob/main/LICENSE">
15
+ <img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License">
16
+ </a>
17
+ </p>
18
+
19
+ <p>
20
+ <a href="./README.md">English</a> |
21
+ <strong>Tiếng Việt</strong>
22
+ </p>
23
+ </div>
24
+
25
+ ---
26
+
27
+ ## Tính năng
28
+
29
+ - **Xem Providers**: Hiển thị tất cả AI providers (Google, Ollama, Anthropic, etc.) với số lượng models
30
30
  - **MCP Servers**: Xem trạng thái bật/tắt của các MCP servers
31
31
  - **Quản lý Accounts**: Quản lý các tài khoản Google đang kết nối với OpenCode
32
32
  - Trạng thái rate limit theo từng model (claude, gemini)
33
33
  - Bật/Tắt/Xóa accounts
34
+ - **Health Check**: Kiểm tra refresh token và báo tài khoản cần xác minh
34
35
  - **Export mã hóa**: Mã hóa AES-256-GCM với mật khẩu bảo vệ
35
36
  - **Import đa định dạng**: Hỗ trợ file `.ocam` mã hóa, JSON thuần, và file export từ Antigravity Manager
36
-
37
- ---
38
-
39
- ## Cài đặt
40
-
41
- ### Cách A: Nhờ AI cài giúp
42
-
43
- Paste đoạn này vào bất kỳ AI agent nào (Claude Code, OpenCode, Cursor, etc.):
44
-
45
- ```
46
- Cài đặt opencode-account-manager từ npm, sau đó chạy "ocam" để kiểm tra.
47
- Repository: https://github.com/d-init-d/opencode-account-manager
48
- ```
49
-
50
- ### Cách B: Cài từ npm
51
-
52
- ```bash
53
- npm install -g opencode-account-manager
54
- ```
55
-
56
- ### Cách C: Cài từ GitHub
57
-
58
- ```bash
59
- npm install -g github:d-init-d/opencode-account-manager
60
- ```
61
-
62
- ### Kiểm tra cài đặt
63
-
64
- ```bash
65
- ocam --version
66
- ```
67
-
68
- ---
69
-
70
- ## Dành cho AI Agents
71
-
72
- ### Hướng dẫn từng bước
73
-
74
- 1. Chạy `npm install -g opencode-account-manager` để cài global
75
- 2. Chạy `ocam` để mở TUI dashboard
76
- 3. Dashboard sẽ tự động đọc config OpenCode tại `~/.config/opencode/opencode.json`
77
-
78
- ### Xác minh
79
-
80
- ```bash
81
- ocam --version
82
- # Kết quả mong đợi: 0.4.2
83
- ```
84
-
85
- ---
86
-
87
- ## Sử dụng
88
-
89
- ### Mở Dashboard
90
-
91
- ```bash
92
- ocam
93
- # hoặc
94
- opencode-account-manager
95
- ```
96
-
97
- ### Các lệnh CLI
98
-
99
- ```bash
100
- # Liệt kê accounts
101
- ocam list
102
-
103
- # Export accounts
104
- ocam export -o backup.json
105
-
106
- # Import accounts
107
- ocam import backup.json
108
-
37
+
38
+ ---
39
+
40
+ ## Cài đặt
41
+
42
+ ### Cách A: Nhờ AI cài giúp
43
+
44
+ Paste đoạn này vào bất kỳ AI agent nào (Claude Code, OpenCode, Cursor, etc.):
45
+
46
+ ```
47
+ Cài đặt opencode-account-manager từ npm, sau đó chạy "ocam" để kiểm tra.
48
+ Repository: https://github.com/d-init-d/opencode-account-manager
49
+ ```
50
+
51
+ ### Cách B: Cài từ npm
52
+
53
+ ```bash
54
+ npm install -g opencode-account-manager
55
+ ```
56
+
57
+ ### Cách C: Cài từ GitHub
58
+
59
+ ```bash
60
+ npm install -g github:d-init-d/opencode-account-manager
61
+ ```
62
+
63
+ ### Kiểm tra cài đặt
64
+
65
+ ```bash
66
+ ocam --version
67
+ ```
68
+
69
+ ---
70
+
71
+ ## Dành cho AI Agents
72
+
73
+ ### Hướng dẫn từng bước
74
+
75
+ 1. Chạy `npm install -g opencode-account-manager` để cài global
76
+ 2. Chạy `ocam` để mở TUI dashboard
77
+ 3. Dashboard sẽ tự động đọc config OpenCode tại `~/.config/opencode/opencode.json`
78
+
79
+ ### Xác minh
80
+
81
+ ```bash
82
+ ocam --version
83
+ # Kết quả mong đợi: 0.4.2
84
+ ```
85
+
86
+ ---
87
+
88
+ ## Sử dụng
89
+
90
+ ### Mở Dashboard
91
+
92
+ ```bash
93
+ ocam
94
+ # hoặc
95
+ opencode-account-manager
96
+ ```
97
+
98
+ ### Các lệnh CLI
99
+
100
+ ```bash
101
+ # Liệt kê accounts
102
+ ocam list
103
+
104
+ # Export accounts
105
+ ocam export -o backup.json
106
+
107
+ # Import accounts
108
+ ocam import backup.json
109
+
109
110
  # Import từ thư mục Antigravity Manager
110
111
  ocam import-am
111
112
 
112
- # Trợ giúp
113
- ocam --help
114
- ```
115
-
116
- ---
117
-
118
- ## Phím tắt
119
-
120
- ### Dashboard chính
121
-
122
- | Phím | Chức năng |
123
- |------|-----------|
124
- | `Tab` | Chuyển section (Providers → Accounts → MCP) |
125
- | `R` | Làm mới dữ liệu |
126
- | `E` | Export accounts |
127
- | `I` | Import accounts |
128
- | `A` | Import từ Antigravity Manager |
129
- | `S` | Vào chế độ chọn |
130
- | `Q` | Thoát |
131
-
132
- ### Chế độ chọn (Accounts)
133
-
134
- | Phím | Chức năng |
135
- |------|-----------|
136
- | `↑/↓` | Di chuyển |
137
- | `Space` | Chọn/bỏ chọn |
138
- | `A` | Chọn tất cả |
139
- | `N` | Bỏ chọn tất cả |
140
- | `E` | Bật các account đã chọn |
141
- | `D` | Tắt các account đã chọn |
142
- | `X` | Export các account đã chọn |
143
- | `DEL` | Xóa các account đã chọn |
144
- | `Esc` | Thoát chế độ chọn |
145
-
146
- ---
147
-
148
- ## Định dạng Import được hỗ trợ
149
-
150
- | Định dạng | Đuôi file | Mô tả |
151
- |-----------|-----------|-------|
152
- | Mã hóa | `.ocam` | Mã hóa AES-256-GCM, cần mật khẩu |
153
- | Portable | `.json` | Export thuần từ OpenCode Account Manager |
154
- | AM Export | `.json` | Export từ app Antigravity Manager `[{email, refresh_token}]` |
155
- | Plugin Native | `.json` | Định dạng `antigravity-accounts.json` |
156
-
157
- ---
158
-
159
- ## Đường dẫn cấu hình
160
-
161
- | File | Windows | Linux/Mac |
162
- |------|---------|-----------|
163
- | Config OpenCode | `~/.config/opencode/opencode.json` | `~/.config/opencode/opencode.json` |
164
- | Plugin accounts | `%APPDATA%/opencode/antigravity-accounts.json` | `~/.config/opencode/antigravity-accounts.json` |
165
- | Cài đặt OCAM | `%APPDATA%/opencode/ocam-config.json` | `~/.config/opencode/ocam-config.json` |
166
-
167
- > **Lưu ý**: `~` trên Windows là thư mục home của user (ví dụ: `C:\Users\TenBan`)
168
-
169
- ---
170
-
171
- ## Yêu cầu hệ thống
172
-
173
- - **Node.js**: >= 16.x
174
- - **OpenCode**: Đã cài đặt và cấu hình
175
- - **Terminal**: Hỗ trợ Unicode và 256 màu (Windows Terminal, iTerm2, etc.)
176
-
177
- ---
113
+ # Health check
114
+ ocam check
178
115
 
179
- ## Xử lỗi
116
+ # Health check (chỉ định email)
117
+ ocam check --emails user1@example.com,user2@example.com
180
118
 
181
- ### "command not found: ocam"
182
-
183
- ```bash
184
- npm install -g opencode-account-manager
119
+ # Health check (bỏ qua cache)
120
+ ocam check --force
121
+
122
+ # Trợ giúp
123
+ ocam --help
185
124
  ```
186
125
 
187
- ### "Plugin accounts file not found"
126
+ **Cấu hình OAuth cho Health Check**
127
+ Thiết lập credentials qua biến môi trường:
188
128
 
189
- Đăng nhập ít nhất một tài khoản trước:
190
-
191
- ```bash
192
- opencode auth login
193
129
  ```
194
-
195
- ### "Cannot find module"
196
-
197
- Cài lại package:
198
-
199
- ```bash
200
- npm uninstall -g opencode-account-manager
201
- npm install -g opencode-account-manager
130
+ OCAM_OAUTH_CLIENT_ID=...
131
+ OCAM_OAUTH_CLIENT_SECRET=...
132
+ OCAM_OAUTH_TOKEN_ENDPOINT=https://oauth2.googleapis.com/token
202
133
  ```
203
-
204
- ---
205
-
206
- ## Tài liệu
207
-
208
- - [ROADMAP.md](./docs/ROADMAP.md) - Lịch sử phiên bản và kế hoạch
209
- - [BLUEPRINT.md](./docs/BLUEPRINT.md) - Kiến trúc kỹ thuật
210
-
211
- ---
212
-
213
- ## Đóng góp
214
-
215
- 1. Fork repo
216
- 2. Tạo branch: `git checkout -b feature/ten-tinh-nang`
217
- 3. Commit: `git commit -m "feat: mo-ta"`
218
- 4. Push: `git push origin feature/ten-tinh-nang`
219
- 5. Tạo Pull Request
220
-
221
- ---
222
-
223
- ## Giấy phép
224
-
225
- MIT License. Xem [LICENSE](./LICENSE) để biết chi tiết.
226
-
227
- ---
228
-
229
- ## Credits
230
-
231
- - [OpenCode](https://opencode.ai) - AI coding assistant công cụ này được xây dựng cho
232
- - [opencode-antigravity-auth](https://github.com/NoeFabris/opencode-antigravity-auth) - Plugin tùy chọn để xác thực Google OAuth
134
+
135
+ ---
136
+
137
+ ## Phím tắt
138
+
139
+ ### Dashboard chính
140
+
141
+ | Phím | Chức năng |
142
+ |------|-----------|
143
+ | `Tab` | Chuyển section (Providers → Accounts → MCP) |
144
+ | `R` | Làm mới dữ liệu |
145
+ | `E` | Export accounts |
146
+ | `I` | Import accounts |
147
+ | `A` | Import từ Antigravity Manager |
148
+ | `S` | Vào chế độ chọn |
149
+ | `Q` | Thoát |
150
+
151
+ ### Chế độ chọn (Accounts)
152
+
153
+ | Phím | Chức năng |
154
+ |------|-----------|
155
+ | `↑/↓` | Di chuyển |
156
+ | `Space` | Chọn/bỏ chọn |
157
+ | `A` | Chọn tất cả |
158
+ | `N` | Bỏ chọn tất cả |
159
+ | `E` | Bật các account đã chọn |
160
+ | `D` | Tắt các account đã chọn |
161
+ | `X` | Export các account đã chọn |
162
+ | `DEL` | Xóa các account đã chọn |
163
+ | `Esc` | Thoát chế độ chọn |
164
+
165
+ ---
166
+
167
+ ## Định dạng Import được hỗ trợ
168
+
169
+ | Định dạng | Đuôi file | Mô tả |
170
+ |-----------|-----------|-------|
171
+ | Mã hóa | `.ocam` | Mã hóa AES-256-GCM, cần mật khẩu |
172
+ | Portable | `.json` | Export thuần từ OpenCode Account Manager |
173
+ | AM Export | `.json` | Export từ app Antigravity Manager `[{email, refresh_token}]` |
174
+ | Plugin Native | `.json` | Định dạng `antigravity-accounts.json` |
175
+
176
+ ---
177
+
178
+ ## Đường dẫn cấu hình
179
+
180
+ | File | Windows | Linux/Mac |
181
+ |------|---------|-----------|
182
+ | Config OpenCode | `~/.config/opencode/opencode.json` | `~/.config/opencode/opencode.json` |
183
+ | Plugin accounts | `%APPDATA%/opencode/antigravity-accounts.json` | `~/.config/opencode/antigravity-accounts.json` |
184
+ | Cài đặt OCAM | `%APPDATA%/opencode/ocam-config.json` | `~/.config/opencode/ocam-config.json` |
185
+
186
+ > **Lưu ý**: `~` trên Windows là thư mục home của user (ví dụ: `C:\Users\TenBan`)
187
+
188
+ ---
189
+
190
+ ## Yêu cầu hệ thống
191
+
192
+ - **Node.js**: >= 16.x
193
+ - **OpenCode**: Đã cài đặt và cấu hình
194
+ - **Terminal**: Hỗ trợ Unicode và 256 màu (Windows Terminal, iTerm2, etc.)
195
+
196
+ ---
197
+
198
+ ## Xử lý lỗi
199
+
200
+ ### "command not found: ocam"
201
+
202
+ ```bash
203
+ npm install -g opencode-account-manager
204
+ ```
205
+
206
+ ### "Plugin accounts file not found"
207
+
208
+ Đăng nhập ít nhất một tài khoản trước:
209
+
210
+ ```bash
211
+ opencode auth login
212
+ ```
213
+
214
+ ### "Cannot find module"
215
+
216
+ Cài lại package:
217
+
218
+ ```bash
219
+ npm uninstall -g opencode-account-manager
220
+ npm install -g opencode-account-manager
221
+ ```
222
+
223
+ ---
224
+
225
+ ## Tài liệu
226
+
227
+ - [ROADMAP.md](./docs/ROADMAP.md) - Lịch sử phiên bản và kế hoạch
228
+ - [BLUEPRINT.md](./docs/BLUEPRINT.md) - Kiến trúc kỹ thuật
229
+
230
+ ---
231
+
232
+ ## Đóng góp
233
+
234
+ 1. Fork repo
235
+ 2. Tạo branch: `git checkout -b feature/ten-tinh-nang`
236
+ 3. Commit: `git commit -m "feat: mo-ta"`
237
+ 4. Push: `git push origin feature/ten-tinh-nang`
238
+ 5. Tạo Pull Request
239
+
240
+ ---
241
+
242
+ ## Giấy phép
243
+
244
+ MIT License. Xem [LICENSE](./LICENSE) để biết chi tiết.
245
+
246
+ ---
247
+
248
+ ## Credits
249
+
250
+ - [OpenCode](https://opencode.ai) - AI coding assistant mà công cụ này được xây dựng cho
251
+ - [opencode-antigravity-auth](https://github.com/NoeFabris/opencode-antigravity-auth) - Plugin tùy chọn để xác thực Google OAuth
package/dist/cli.js CHANGED
@@ -12,11 +12,58 @@ const paths_1 = require("./core/paths");
12
12
  const amJson_1 = require("./core/importers/amJson");
13
13
  const utils_1 = require("./core/utils");
14
14
  const tui_1 = require("./tui");
15
+ const health_orchestrator_1 = require("./core/health-orchestrator");
15
16
  function formatTimestamp(timestamp) {
16
17
  if (!timestamp)
17
18
  return "-";
18
19
  return new Date(timestamp).toLocaleString();
19
20
  }
21
+ function getStatusLabel(status) {
22
+ switch (status) {
23
+ case "verification_required":
24
+ return chalk_1.default.bgYellow.black(" VERIFY ");
25
+ case "revoked":
26
+ return chalk_1.default.bgRed.white(" REVOKED ");
27
+ case "disabled":
28
+ return chalk_1.default.bgRed.white(" DISABLED ");
29
+ case "deleted":
30
+ return chalk_1.default.bgRed.white(" DELETED ");
31
+ case "password_changed":
32
+ return chalk_1.default.bgYellow.black(" PASSWD ");
33
+ case "network_error":
34
+ return chalk_1.default.bgBlue.white(" NETWORK ");
35
+ case "unknown_error":
36
+ return chalk_1.default.bgRed.white(" ERROR ");
37
+ case "not_configured":
38
+ return chalk_1.default.bgGray.white(" CONFIG ");
39
+ default:
40
+ return chalk_1.default.bgGray.white(` ${status.toUpperCase()} `);
41
+ }
42
+ }
43
+ function printHealthCheckResult(result) {
44
+ const { counts, timing, items } = result;
45
+ const issues = counts.total -
46
+ counts.byStatus.ok -
47
+ (counts.byStatus.not_checked || 0);
48
+ console.log(chalk_1.default.bold("\n=== Health Check Summary ==="));
49
+ console.log(`Total: ${counts.total} | ` +
50
+ `${chalk_1.default.green("OK: " + counts.byStatus.ok)} | ` +
51
+ `${issues > 0 ? chalk_1.default.red("Issues: " + issues) : chalk_1.default.gray("Issues: 0")} | ` +
52
+ `Time: ${(timing.durationMs / 1000).toFixed(1)}s\n`);
53
+ const warnings = items.filter((item) => item.result.status !== "ok" && item.result.status !== "not_checked");
54
+ if (warnings.length > 0) {
55
+ console.log(chalk_1.default.bold("Warnings:"));
56
+ for (const item of warnings) {
57
+ const label = getStatusLabel(item.result.status);
58
+ const msg = item.result.message || item.result.status;
59
+ console.log(`${label} ${item.email} ${chalk_1.default.gray(`(${msg})`)}`);
60
+ }
61
+ console.log("");
62
+ }
63
+ else if (counts.total > 0) {
64
+ console.log(chalk_1.default.green("All accounts are healthy.\n"));
65
+ }
66
+ }
20
67
  function isLimited(rateLimitResetTimes) {
21
68
  if (!rateLimitResetTimes)
22
69
  return false;
@@ -31,6 +78,15 @@ function safeReadPluginFile(pluginPath) {
31
78
  return (0, accounts_1.createEmptyPluginAccountsFile)();
32
79
  }
33
80
  }
81
+ function parseEmailList(input) {
82
+ if (!input)
83
+ return undefined;
84
+ const items = input
85
+ .split(",")
86
+ .map((value) => value.trim())
87
+ .filter((value) => value.length > 0);
88
+ return items.length > 0 ? items : undefined;
89
+ }
34
90
  const program = new commander_1.Command();
35
91
  program
36
92
  .name("ocam")
@@ -71,6 +127,33 @@ program
71
127
  }
72
128
  }
73
129
  });
130
+ program
131
+ .command("check")
132
+ .description("Check account health status")
133
+ .option("--plugin-path <path>", "Path to plugin accounts file")
134
+ .option("--emails <emails>", "Comma-separated list of emails to check")
135
+ .option("--force", "Bypass cache and cooldown checks", false)
136
+ .action(async (options) => {
137
+ const pluginPath = (0, paths_1.getPluginAccountsPath)(options.pluginPath);
138
+ const file = safeReadPluginFile(pluginPath);
139
+ const emails = parseEmailList(options.emails);
140
+ if (file.accounts.length === 0) {
141
+ console.log(chalk_1.default.yellow("No accounts to check."));
142
+ return;
143
+ }
144
+ const result = await (0, health_orchestrator_1.checkAccountsHealth)(file.accounts, {
145
+ emails,
146
+ force: options.force === true,
147
+ includeLogs: true,
148
+ onProgress: (current, total, message) => {
149
+ if (total > 0) {
150
+ process.stdout.write(`\r${chalk_1.default.gray(`[${current}/${total}]`)} ${message} `);
151
+ }
152
+ },
153
+ });
154
+ process.stdout.write("\n");
155
+ printHealthCheckResult(result);
156
+ });
74
157
  program
75
158
  .command("export")
76
159
  .description("Export accounts to a portable JSON file")
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
+ import { AccountHealthResult, HealthConfig, HealthOAuthConfig, HealthSettings } from "./types";
1
2
  export interface AppConfig {
2
3
  lastExportFolder?: string;
3
4
  lastImportFolder?: string;
4
5
  defaultExportFormat?: "encrypted" | "plain";
5
6
  recentFolders?: string[];
7
+ health?: HealthConfig;
6
8
  }
7
9
  /**
8
10
  * Get the full path to config file
@@ -36,6 +38,16 @@ export declare function getLastExportFolder(): string;
36
38
  * Get last import folder or default
37
39
  */
38
40
  export declare function getLastImportFolder(): string;
41
+ export declare function normalizeHealthKey(email: string): string;
42
+ export declare function getHealthSettings(): Required<HealthSettings>;
43
+ export declare function updateHealthSettings(partial: HealthSettings): void;
44
+ export declare function getHealthOAuthConfig(): HealthOAuthConfig | undefined;
45
+ export declare function updateHealthOAuthConfig(partial: HealthOAuthConfig): void;
46
+ export declare function getHealthCache(): Record<string, AccountHealthResult>;
47
+ export declare function getCachedHealth(email: string, ttlMs?: number): AccountHealthResult | undefined;
48
+ export declare function setHealthCacheEntry(email: string, result: AccountHealthResult): void;
49
+ export declare function removeHealthCacheEntry(email: string): void;
50
+ export declare function clearHealthCache(): void;
39
51
  export interface QuickLocation {
40
52
  label: string;
41
53
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../../src/core/config-store.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,SAAS;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAwBD;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAMD;;GAEG;AACH,wBAAgB,UAAU,IAAI,SAAS,CAatC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAWnD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAK3D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAK3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAG3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AA2BD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CAmDnD"}
1
+ {"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../../src/core/config-store.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACf,MAAM,SAAS,CAAC;AAOjB,MAAM,WAAW,SAAS;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AA2BD;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAMD;;GAEG;AACH,wBAAgB,UAAU,IAAI,SAAS,CAatC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAWnD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAK3D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAK3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAG3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAMD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,iBAAiB,IAAI,QAAQ,CAAC,cAAc,CAAC,CAQ5D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAQlE;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,GAAG,SAAS,CAGpE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAQxE;AAED,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAGpE;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,mBAAmB,GAAG,SAAS,CAQjC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAUpF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAY1D;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAOvC;AA2BD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,aAAa,EAAE,CAmDnD"}