@kodus/cli 0.2.4 → 0.3.0

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 (261) hide show
  1. package/README.md +78 -27
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +20 -3
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/auth/index.d.ts.map +1 -1
  6. package/dist/commands/auth/index.js +1 -2
  7. package/dist/commands/auth/index.js.map +1 -1
  8. package/dist/commands/auth/login.d.ts.map +1 -1
  9. package/dist/commands/auth/login.js +44 -45
  10. package/dist/commands/auth/login.js.map +1 -1
  11. package/dist/commands/auth/logout.d.ts.map +1 -1
  12. package/dist/commands/auth/logout.js +5 -3
  13. package/dist/commands/auth/logout.js.map +1 -1
  14. package/dist/commands/auth/status.d.ts.map +1 -1
  15. package/dist/commands/auth/status.js +28 -25
  16. package/dist/commands/auth/status.js.map +1 -1
  17. package/dist/commands/auth/team-key.d.ts.map +1 -1
  18. package/dist/commands/auth/team-key.js +49 -29
  19. package/dist/commands/auth/team-key.js.map +1 -1
  20. package/dist/commands/auth/token.d.ts.map +1 -1
  21. package/dist/commands/auth/token.js +12 -10
  22. package/dist/commands/auth/token.js.map +1 -1
  23. package/dist/commands/hook/index.d.ts.map +1 -1
  24. package/dist/commands/hook/index.js +1 -2
  25. package/dist/commands/hook/index.js.map +1 -1
  26. package/dist/commands/hook/install.d.ts.map +1 -1
  27. package/dist/commands/hook/install.js +21 -22
  28. package/dist/commands/hook/install.js.map +1 -1
  29. package/dist/commands/hook/status.d.ts.map +1 -1
  30. package/dist/commands/hook/status.js +10 -8
  31. package/dist/commands/hook/status.js.map +1 -1
  32. package/dist/commands/hook/uninstall.d.ts.map +1 -1
  33. package/dist/commands/hook/uninstall.js +7 -5
  34. package/dist/commands/hook/uninstall.js.map +1 -1
  35. package/dist/commands/memory/capture.d.ts.map +1 -1
  36. package/dist/commands/memory/capture.js +28 -14
  37. package/dist/commands/memory/capture.js.map +1 -1
  38. package/dist/commands/memory/disable.d.ts.map +1 -1
  39. package/dist/commands/memory/disable.js +9 -7
  40. package/dist/commands/memory/disable.js.map +1 -1
  41. package/dist/commands/memory/enable.d.ts.map +1 -1
  42. package/dist/commands/memory/enable.js +18 -14
  43. package/dist/commands/memory/enable.js.map +1 -1
  44. package/dist/commands/memory/hooks.d.ts.map +1 -1
  45. package/dist/commands/memory/hooks.js +37 -17
  46. package/dist/commands/memory/hooks.js.map +1 -1
  47. package/dist/commands/memory/index.d.ts.map +1 -1
  48. package/dist/commands/memory/index.js +1 -2
  49. package/dist/commands/memory/index.js.map +1 -1
  50. package/dist/commands/memory/promote.d.ts.map +1 -1
  51. package/dist/commands/memory/promote.js +14 -10
  52. package/dist/commands/memory/promote.js.map +1 -1
  53. package/dist/commands/memory/show.d.ts.map +1 -1
  54. package/dist/commands/memory/show.js +11 -10
  55. package/dist/commands/memory/show.js.map +1 -1
  56. package/dist/commands/memory/status.d.ts.map +1 -1
  57. package/dist/commands/memory/status.js +22 -20
  58. package/dist/commands/memory/status.js.map +1 -1
  59. package/dist/commands/pr.d.ts.map +1 -1
  60. package/dist/commands/pr.js +131 -13
  61. package/dist/commands/pr.js.map +1 -1
  62. package/dist/commands/review.d.ts.map +1 -1
  63. package/dist/commands/review.js +57 -38
  64. package/dist/commands/review.js.map +1 -1
  65. package/dist/commands/status.d.ts +3 -0
  66. package/dist/commands/status.d.ts.map +1 -0
  67. package/dist/commands/status.js +119 -0
  68. package/dist/commands/status.js.map +1 -0
  69. package/dist/commands/subscribe.d.ts +4 -0
  70. package/dist/commands/subscribe.d.ts.map +1 -0
  71. package/dist/commands/subscribe.js +25 -0
  72. package/dist/commands/subscribe.js.map +1 -0
  73. package/dist/commands/update.d.ts +9 -0
  74. package/dist/commands/update.d.ts.map +1 -0
  75. package/dist/commands/update.js +74 -0
  76. package/dist/commands/update.js.map +1 -0
  77. package/dist/formatters/json.d.ts.map +1 -1
  78. package/dist/formatters/json.js.map +1 -1
  79. package/dist/formatters/markdown.d.ts.map +1 -1
  80. package/dist/formatters/markdown.js.map +1 -1
  81. package/dist/formatters/prompt.d.ts.map +1 -1
  82. package/dist/formatters/prompt.js +6 -6
  83. package/dist/formatters/prompt.js.map +1 -1
  84. package/dist/formatters/terminal.d.ts.map +1 -1
  85. package/dist/formatters/terminal.js +7 -4
  86. package/dist/formatters/terminal.js.map +1 -1
  87. package/dist/index.js +28 -5
  88. package/dist/index.js.map +1 -1
  89. package/dist/services/api/api.interface.d.ts +10 -1
  90. package/dist/services/api/api.interface.d.ts.map +1 -1
  91. package/dist/services/api/api.real.d.ts +14 -0
  92. package/dist/services/api/api.real.d.ts.map +1 -1
  93. package/dist/services/api/api.real.js +163 -58
  94. package/dist/services/api/api.real.js.map +1 -1
  95. package/dist/services/api/index.d.ts +2 -2
  96. package/dist/services/api/index.js +1 -1
  97. package/dist/services/auth.service.d.ts +1 -0
  98. package/dist/services/auth.service.d.ts.map +1 -1
  99. package/dist/services/auth.service.js +21 -2
  100. package/dist/services/auth.service.js.map +1 -1
  101. package/dist/services/context.service.d.ts +4 -1
  102. package/dist/services/context.service.d.ts.map +1 -1
  103. package/dist/services/context.service.js +30 -19
  104. package/dist/services/context.service.js.map +1 -1
  105. package/dist/services/fix.service.d.ts.map +1 -1
  106. package/dist/services/fix.service.js +3 -2
  107. package/dist/services/fix.service.js.map +1 -1
  108. package/dist/services/git.service.d.ts +1 -0
  109. package/dist/services/git.service.d.ts.map +1 -1
  110. package/dist/services/git.service.js +123 -48
  111. package/dist/services/git.service.js.map +1 -1
  112. package/dist/services/memory.service.d.ts.map +1 -1
  113. package/dist/services/memory.service.js +93 -35
  114. package/dist/services/memory.service.js.map +1 -1
  115. package/dist/services/review.service.d.ts +12 -1
  116. package/dist/services/review.service.d.ts.map +1 -1
  117. package/dist/services/review.service.js +88 -65
  118. package/dist/services/review.service.js.map +1 -1
  119. package/dist/services/transcript-parser.service.d.ts.map +1 -1
  120. package/dist/services/transcript-parser.service.js +46 -15
  121. package/dist/services/transcript-parser.service.js.map +1 -1
  122. package/dist/types/index.d.ts +12 -1
  123. package/dist/types/index.d.ts.map +1 -1
  124. package/dist/types/index.js.map +1 -1
  125. package/dist/types/memory.d.ts.map +1 -1
  126. package/dist/ui/interactive.d.ts.map +1 -1
  127. package/dist/ui/interactive.js +86 -92
  128. package/dist/ui/interactive.js.map +1 -1
  129. package/dist/utils/banner.d.ts +2 -0
  130. package/dist/utils/banner.d.ts.map +1 -0
  131. package/dist/utils/banner.js +190 -0
  132. package/dist/utils/banner.js.map +1 -0
  133. package/dist/utils/cli-exit.d.ts +13 -0
  134. package/dist/utils/cli-exit.d.ts.map +1 -0
  135. package/dist/utils/cli-exit.js +29 -0
  136. package/dist/utils/cli-exit.js.map +1 -0
  137. package/dist/utils/clipboard.d.ts +2 -0
  138. package/dist/utils/clipboard.d.ts.map +1 -0
  139. package/dist/utils/clipboard.js +11 -0
  140. package/dist/utils/clipboard.js.map +1 -0
  141. package/dist/utils/config.d.ts +3 -0
  142. package/dist/utils/config.d.ts.map +1 -1
  143. package/dist/utils/config.js.map +1 -1
  144. package/dist/utils/credentials.d.ts.map +1 -1
  145. package/dist/utils/credentials.js.map +1 -1
  146. package/dist/utils/device.d.ts.map +1 -1
  147. package/dist/utils/device.js +17 -6
  148. package/dist/utils/device.js.map +1 -1
  149. package/dist/utils/logger.d.ts +13 -0
  150. package/dist/utils/logger.d.ts.map +1 -0
  151. package/dist/utils/logger.js +48 -0
  152. package/dist/utils/logger.js.map +1 -0
  153. package/dist/utils/module-matcher.d.ts.map +1 -1
  154. package/dist/utils/module-matcher.js +12 -7
  155. package/dist/utils/module-matcher.js.map +1 -1
  156. package/dist/utils/rate-limit.d.ts.map +1 -1
  157. package/dist/utils/rate-limit.js +12 -3
  158. package/dist/utils/rate-limit.js.map +1 -1
  159. package/dist/utils/recent-activity.d.ts +9 -0
  160. package/dist/utils/recent-activity.d.ts.map +1 -0
  161. package/dist/utils/recent-activity.js +139 -0
  162. package/dist/utils/recent-activity.js.map +1 -0
  163. package/dist/utils/skills.d.ts +2 -0
  164. package/dist/utils/skills.d.ts.map +1 -0
  165. package/dist/utils/skills.js +40 -0
  166. package/dist/utils/skills.js.map +1 -0
  167. package/dist/utils/update-check.d.ts +1 -2
  168. package/dist/utils/update-check.d.ts.map +1 -1
  169. package/dist/utils/update-check.js +21 -97
  170. package/dist/utils/update-check.js.map +1 -1
  171. package/package.json +83 -59
  172. package/skills/README.md +49 -0
  173. package/skills/business-rules-validation/SKILL.md +43 -0
  174. package/skills/kodus-pr-suggestions-resolver/SKILL.md +61 -0
  175. package/skills/kodus-review/SKILL.md +40 -0
  176. package/skills/kodus-review-dev/SKILL.md +41 -0
  177. package/skills/kodus-review-dev/scripts/run-local-cli.sh +49 -0
  178. package/dist/commands/__tests__/auth.login-logout.test.d.ts +0 -2
  179. package/dist/commands/__tests__/auth.login-logout.test.d.ts.map +0 -1
  180. package/dist/commands/__tests__/auth.login-logout.test.js +0 -125
  181. package/dist/commands/__tests__/auth.login-logout.test.js.map +0 -1
  182. package/dist/commands/__tests__/auth.team-key.test.d.ts +0 -2
  183. package/dist/commands/__tests__/auth.team-key.test.d.ts.map +0 -1
  184. package/dist/commands/__tests__/auth.team-key.test.js +0 -145
  185. package/dist/commands/__tests__/auth.team-key.test.js.map +0 -1
  186. package/dist/commands/__tests__/capture-api.test.d.ts +0 -2
  187. package/dist/commands/__tests__/capture-api.test.d.ts.map +0 -1
  188. package/dist/commands/__tests__/capture-api.test.js +0 -88
  189. package/dist/commands/__tests__/capture-api.test.js.map +0 -1
  190. package/dist/commands/__tests__/disable.test.d.ts +0 -2
  191. package/dist/commands/__tests__/disable.test.d.ts.map +0 -1
  192. package/dist/commands/__tests__/disable.test.js +0 -103
  193. package/dist/commands/__tests__/disable.test.js.map +0 -1
  194. package/dist/commands/__tests__/enable.test.d.ts +0 -2
  195. package/dist/commands/__tests__/enable.test.d.ts.map +0 -1
  196. package/dist/commands/__tests__/enable.test.js +0 -103
  197. package/dist/commands/__tests__/enable.test.js.map +0 -1
  198. package/dist/commands/__tests__/hook.test.d.ts +0 -2
  199. package/dist/commands/__tests__/hook.test.d.ts.map +0 -1
  200. package/dist/commands/__tests__/hook.test.js +0 -105
  201. package/dist/commands/__tests__/hook.test.js.map +0 -1
  202. package/dist/commands/__tests__/install-merge-hook.test.d.ts +0 -2
  203. package/dist/commands/__tests__/install-merge-hook.test.d.ts.map +0 -1
  204. package/dist/commands/__tests__/install-merge-hook.test.js +0 -54
  205. package/dist/commands/__tests__/install-merge-hook.test.js.map +0 -1
  206. package/dist/commands/upgrade.d.ts +0 -3
  207. package/dist/commands/upgrade.d.ts.map +0 -1
  208. package/dist/commands/upgrade.js +0 -35
  209. package/dist/commands/upgrade.js.map +0 -1
  210. package/dist/services/__tests__/auth.service.test.d.ts +0 -2
  211. package/dist/services/__tests__/auth.service.test.d.ts.map +0 -1
  212. package/dist/services/__tests__/auth.service.test.js +0 -201
  213. package/dist/services/__tests__/auth.service.test.js.map +0 -1
  214. package/dist/services/__tests__/git.service.test.d.ts +0 -2
  215. package/dist/services/__tests__/git.service.test.d.ts.map +0 -1
  216. package/dist/services/__tests__/git.service.test.js +0 -61
  217. package/dist/services/__tests__/git.service.test.js.map +0 -1
  218. package/dist/services/__tests__/memory.service.test.d.ts +0 -2
  219. package/dist/services/__tests__/memory.service.test.d.ts.map +0 -1
  220. package/dist/services/__tests__/memory.service.test.js +0 -279
  221. package/dist/services/__tests__/memory.service.test.js.map +0 -1
  222. package/dist/services/__tests__/review.service.auth-fallback.test.d.ts +0 -2
  223. package/dist/services/__tests__/review.service.auth-fallback.test.d.ts.map +0 -1
  224. package/dist/services/__tests__/review.service.auth-fallback.test.js +0 -63
  225. package/dist/services/__tests__/review.service.auth-fallback.test.js.map +0 -1
  226. package/dist/services/__tests__/review.service.test.d.ts +0 -2
  227. package/dist/services/__tests__/review.service.test.d.ts.map +0 -1
  228. package/dist/services/__tests__/review.service.test.js +0 -132
  229. package/dist/services/__tests__/review.service.test.js.map +0 -1
  230. package/dist/services/__tests__/review.suggestions-auth.test.d.ts +0 -2
  231. package/dist/services/__tests__/review.suggestions-auth.test.d.ts.map +0 -1
  232. package/dist/services/__tests__/review.suggestions-auth.test.js +0 -81
  233. package/dist/services/__tests__/review.suggestions-auth.test.js.map +0 -1
  234. package/dist/services/__tests__/transcript-parser.service.test.d.ts +0 -2
  235. package/dist/services/__tests__/transcript-parser.service.test.d.ts.map +0 -1
  236. package/dist/services/__tests__/transcript-parser.service.test.js +0 -134
  237. package/dist/services/__tests__/transcript-parser.service.test.js.map +0 -1
  238. package/dist/services/api/__tests__/api.real.test.d.ts +0 -2
  239. package/dist/services/api/__tests__/api.real.test.d.ts.map +0 -1
  240. package/dist/services/api/__tests__/api.real.test.js +0 -182
  241. package/dist/services/api/__tests__/api.real.test.js.map +0 -1
  242. package/dist/utils/__tests__/config.test.d.ts +0 -2
  243. package/dist/utils/__tests__/config.test.d.ts.map +0 -1
  244. package/dist/utils/__tests__/config.test.js +0 -79
  245. package/dist/utils/__tests__/config.test.js.map +0 -1
  246. package/dist/utils/__tests__/credentials.test.d.ts +0 -2
  247. package/dist/utils/__tests__/credentials.test.d.ts.map +0 -1
  248. package/dist/utils/__tests__/credentials.test.js +0 -89
  249. package/dist/utils/__tests__/credentials.test.js.map +0 -1
  250. package/dist/utils/__tests__/device.test.d.ts +0 -2
  251. package/dist/utils/__tests__/device.test.d.ts.map +0 -1
  252. package/dist/utils/__tests__/device.test.js +0 -108
  253. package/dist/utils/__tests__/device.test.js.map +0 -1
  254. package/dist/utils/__tests__/module-matcher.test.d.ts +0 -2
  255. package/dist/utils/__tests__/module-matcher.test.d.ts.map +0 -1
  256. package/dist/utils/__tests__/module-matcher.test.js +0 -164
  257. package/dist/utils/__tests__/module-matcher.test.js.map +0 -1
  258. package/dist/utils/__tests__/update-check.test.d.ts +0 -2
  259. package/dist/utils/__tests__/update-check.test.d.ts.map +0 -1
  260. package/dist/utils/__tests__/update-check.test.js +0 -26
  261. package/dist/utils/__tests__/update-check.test.js.map +0 -1
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  <a href="https://www.npmjs.com/package/@kodus/cli"><img src="https://img.shields.io/npm/dm/@kodus/cli.svg" alt="npm downloads"></a>
12
12
  <a href="https://github.com/kodustech/cli/blob/main/LICENSE"><img src="https://img.shields.io/github/license/kodustech/cli" alt="license"></a>
13
13
  <a href="https://github.com/kodustech/cli"><img src="https://img.shields.io/github/stars/kodustech/cli" alt="stars"></a>
14
- <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="node version"></a>
14
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20-brightgreen" alt="node version"></a>
15
15
  </p>
16
16
 
17
17
  <p align="center">
@@ -23,7 +23,7 @@
23
23
  ---
24
24
 
25
25
  ```bash
26
- npm install -g @kodus/cli
26
+ yarn global add @kodus/cli
27
27
  ```
28
28
 
29
29
  ---
@@ -32,7 +32,7 @@ npm install -g @kodus/cli
32
32
 
33
33
  ```bash
34
34
  # 1. Install
35
- npm install -g @kodus/cli
35
+ yarn global add @kodus/cli
36
36
 
37
37
  # 2. Authenticate (or skip for trial mode — no account needed)
38
38
  kodus auth login
@@ -72,6 +72,22 @@ kodus pr suggestions --pr-number 42 --repo-id <id>
72
72
 
73
73
  Filter by severity, export as JSON or Markdown, or pipe into an AI agent with `--prompt-only` for automated fixes.
74
74
 
75
+ ### Business Validation (Local Diff vs Task)
76
+
77
+ Run Kodus business-rules validation directly from your local diff with optional task reference.
78
+
79
+ ```bash
80
+ # Working tree diff (default)
81
+ kodus pr business-validation
82
+
83
+ # Staged-only with explicit task reference
84
+ kodus pr business-validation --staged --task-id KC-1441
85
+
86
+ # Branch or files scope
87
+ kodus pr business-validation --branch main --task-id KC-1441
88
+ kodus pr business-validation src/service.ts src/use-case.ts --task-id KC-1441
89
+ ```
90
+
75
91
  ### Decision Memory
76
92
 
77
93
  AI agents make dozens of decisions per session — architecture choices, trade-offs, why approach X was picked over Y. Without a record, that reasoning vanishes when the session ends.
@@ -125,6 +141,7 @@ Add to your project's `CLAUDE.md`:
125
141
 
126
142
  ```markdown
127
143
  ## Code Review
144
+
128
145
  After implementing changes, run `kodus review --prompt-only` to check for issues.
129
146
  If issues are found, fix them and re-run until clean.
130
147
  ```
@@ -176,14 +193,33 @@ curl -fsSL https://review-skill.com/install | bash
176
193
 
177
194
  Installs the CLI and deploys the review skill to all detected agents in one step.
178
195
 
196
+ ### Keep everything updated
197
+
198
+ `kodus update` updates the CLI package only.
199
+
200
+ To sync/refresh skills and commands in supported agents (Claude Code, Cursor, Codex, etc.), run:
201
+
202
+ ```bash
203
+ curl -fsSL https://review-skill.com/install | bash
204
+ ```
205
+
206
+ If you want to inspect the script before execution:
207
+
208
+ ```bash
209
+ curl -fsSL https://review-skill.com/install -o /tmp/kodus-install.sh
210
+ less /tmp/kodus-install.sh
211
+ bash /tmp/kodus-install.sh
212
+ ```
213
+
179
214
  ### CLI only
180
215
 
181
216
  <details>
182
- <summary><strong>npm</strong></summary>
217
+ <summary><strong>yarn</strong></summary>
183
218
 
184
219
  ```bash
185
- npm install -g @kodus/cli
220
+ yarn global add @kodus/cli
186
221
  ```
222
+
187
223
  </details>
188
224
 
189
225
  <details>
@@ -192,6 +228,7 @@ npm install -g @kodus/cli
192
228
  ```bash
193
229
  npx @kodus/cli review
194
230
  ```
231
+
195
232
  </details>
196
233
 
197
234
  <details>
@@ -200,6 +237,7 @@ npx @kodus/cli review
200
237
  ```bash
201
238
  curl -fsSL https://raw.githubusercontent.com/kodustech/cli/main/install.sh | bash
202
239
  ```
240
+
203
241
  </details>
204
242
 
205
243
  <details>
@@ -208,6 +246,7 @@ curl -fsSL https://raw.githubusercontent.com/kodustech/cli/main/install.sh | bas
208
246
  ```bash
209
247
  brew install kodus/tap/kodus
210
248
  ```
249
+
211
250
  </details>
212
251
 
213
252
  ## Review Modes
@@ -249,6 +288,18 @@ kodus review --prompt-only # AI agent output
249
288
  kodus review --format markdown -o report.md # Save to file
250
289
  ```
251
290
 
291
+ #### Output Streams
292
+
293
+ - `stdout`: command result/payload (for example JSON/Markdown reports)
294
+ - `stderr`: debug traces (`--verbose`), spinner/progress messages, and errors
295
+
296
+ This keeps machine-readable output clean for piping:
297
+
298
+ ```bash
299
+ kodus review --format json > review.json
300
+ kodus review --format json --verbose 1>review.json 2>review.debug.log
301
+ ```
302
+
252
303
  #### Diff Targets
253
304
 
254
305
  ```bash
@@ -261,20 +312,20 @@ kodus review src/index.ts src/utils.ts # Specific files
261
312
 
262
313
  #### All Flags
263
314
 
264
- | Flag | Description |
265
- |------|-------------|
266
- | `--staged` | Analyze only staged files |
267
- | `--commit <sha>` | Analyze a specific commit |
268
- | `--branch <name>` | Compare against a branch |
269
- | `--rules-only` | Only check configured rules |
270
- | `--fast` | Faster analysis for large diffs |
271
- | `--fix` | Auto-apply all fixable issues |
272
- | `--prompt-only` | AI agent optimized output |
273
- | `--context <file>` | Include custom context file |
274
- | `--format <fmt>` | Output format: `terminal`, `json`, `markdown` |
275
- | `--output <file>` | Save output to file |
315
+ | Flag | Description |
316
+ | ---------------------- | --------------------------------------------- |
317
+ | `--staged` | Analyze only staged files |
318
+ | `--commit <sha>` | Analyze a specific commit |
319
+ | `--branch <name>` | Compare against a branch |
320
+ | `--rules-only` | Only check configured rules |
321
+ | `--fast` | Faster analysis for large diffs |
322
+ | `--fix` | Auto-apply all fixable issues |
323
+ | `--prompt-only` | AI agent optimized output |
324
+ | `--context <file>` | Include custom context file |
325
+ | `--format <fmt>` | Output format: `terminal`, `json`, `markdown` |
326
+ | `--output <file>` | Save output to file |
276
327
  | `--fail-on <severity>` | Exit code 1 if issues meet or exceed severity |
277
- | `-i, --interactive` | Explicitly enable interactive mode |
328
+ | `-i, --interactive` | Explicitly enable interactive mode |
278
329
 
279
330
  </details>
280
331
 
@@ -387,11 +438,11 @@ kodus review --format json --fail-on error
387
438
  <details>
388
439
  <summary><strong>Environment variables</strong></summary>
389
440
 
390
- | Variable | Description |
391
- |----------|-------------|
392
- | `KODUS_API_URL` | API endpoint (default: `https://api.kodus.io`). HTTPS only (except localhost). |
393
- | `KODUS_TOKEN` | CI/CD token for automated pipelines (generated via `kodus auth token`) |
394
- | `KODUS_TEAM_KEY` | Team key for shared team access and AI coding agents |
441
+ | Variable | Description |
442
+ | ---------------- | ------------------------------------------------------------------------------ |
443
+ | `KODUS_API_URL` | API endpoint (default: `https://api.kodus.io`). HTTPS only (except localhost). |
444
+ | `KODUS_TOKEN` | CI/CD token for automated pipelines (generated via `kodus auth token`) |
445
+ | `KODUS_TEAM_KEY` | Team key for shared team access and AI coding agents |
395
446
 
396
447
  </details>
397
448
 
@@ -409,10 +460,10 @@ Kodus sends your code diffs to the Kodus API for analysis. We take this seriousl
409
460
  We welcome contributions! Please see our [issues page](https://github.com/kodustech/cli/issues) to get started.
410
461
 
411
462
  ```bash
412
- npm install # Install dependencies
413
- npm run build # Build
414
- npm run dev # Watch mode
415
- npm test # Run tests
463
+ yarn install # Install dependencies
464
+ yarn build # Build
465
+ yarn dev # Watch mode
466
+ yarn test # Run tests
416
467
  ```
417
468
 
418
469
  ## License
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,QAAA,MAAM,OAAO,SAAgB,CAAC;AAuB9B,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,QAAA,MAAM,OAAO,SAAgB,CAAC;AA2C9B,OAAO,EAAE,OAAO,EAAE,CAAC"}
package/dist/cli.js CHANGED
@@ -2,14 +2,19 @@ import { createRequire } from 'node:module';
2
2
  import { Command } from 'commander';
3
3
  import { reviewCommand } from './commands/review.js';
4
4
  import { authCommand } from './commands/auth/index.js';
5
- import { upgradeCommand } from './commands/upgrade.js';
5
+ import { subscribeCommand } from './commands/subscribe.js';
6
+ import { updateCommand } from './commands/update.js';
6
7
  import { prCommand } from './commands/pr.js';
7
8
  import { hookCommand } from './commands/hook/index.js';
8
9
  import { decisionsCommand } from './commands/memory/index.js';
10
+ import { statusCommand } from './commands/status.js';
9
11
  import { checkForUpdates } from './utils/update-check.js';
12
+ import { setCliOutputMode } from './utils/logger.js';
13
+ import { recordRecentActivity } from './utils/recent-activity.js';
10
14
  const require = createRequire(import.meta.url);
11
15
  const pkg = require('../package.json');
12
16
  const program = new Command();
17
+ program.exitOverride();
13
18
  program
14
19
  .name('kodus')
15
20
  .description('Kodus CLI - AI-powered code review from your terminal')
@@ -20,12 +25,24 @@ program
20
25
  .option('-q, --quiet', 'Quiet mode (errors only)', false);
21
26
  program.addCommand(reviewCommand);
22
27
  program.addCommand(authCommand);
23
- program.addCommand(upgradeCommand);
28
+ program.addCommand(subscribeCommand);
29
+ program.addCommand(updateCommand);
24
30
  program.addCommand(prCommand);
25
31
  program.addCommand(hookCommand);
26
32
  program.addCommand(decisionsCommand);
33
+ program.addCommand(statusCommand);
34
+ program.hook('preAction', (_thisCommand, actionCommand) => {
35
+ const opts = actionCommand.optsWithGlobals();
36
+ setCliOutputMode({
37
+ quiet: !!opts.quiet,
38
+ verbose: !!opts.verbose,
39
+ });
40
+ });
27
41
  program.hook('postAction', async () => {
28
- await checkForUpdates(pkg.version);
42
+ await Promise.all([
43
+ checkForUpdates(),
44
+ recordRecentActivity(process.argv.slice(2)).catch(() => { }),
45
+ ]);
29
46
  });
30
47
  export { program };
31
48
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE9D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,uDAAuD,CAAC;KACpE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,uBAAuB,EAAE,yCAAyC,EAAE,UAAU,CAAC;KACtF,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,CAAC;KAChE,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAAC;KAChD,MAAM,CAAC,aAAa,EAAE,0BAA0B,EAAE,KAAK,CAAC,CACxD;AAEH,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC9B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAErC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;IACpC,MAAM,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAE9D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,OAAO,CAAC,YAAY,EAAE,CAAC;AAEvB,OAAO;KACF,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,uDAAuD,CAAC;KACpE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CACH,uBAAuB,EACvB,yCAAyC,EACzC,UAAU,CACb;KACA,MAAM,CAAC,qBAAqB,EAAE,iCAAiC,CAAC;KAChE,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,CAAC;KAChD,MAAM,CAAC,aAAa,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;AAE9D,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC9B,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE;IACtD,MAAM,IAAI,GAAG,aAAa,CAAC,eAAe,EAGzC,CAAC;IACF,gBAAgB,CAAC;QACb,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;QACnB,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO;KAC1B,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;IAClC,MAAM,OAAO,CAAC,GAAG,CAAC;QACd,eAAe,EAAE;QACjB,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;KAC9D,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,WAAW,SACiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,WAAW,SAEvB,CAAC"}
@@ -4,8 +4,7 @@ import { logoutAction } from './logout.js';
4
4
  import { statusAction } from './status.js';
5
5
  import { tokenAction } from './token.js';
6
6
  import { teamKeyAction, teamStatusAction } from './team-key.js';
7
- export const authCommand = new Command('auth')
8
- .description('Authentication commands');
7
+ export const authCommand = new Command('auth').description('Authentication commands');
9
8
  authCommand
10
9
  .command('login')
11
10
  .description('Login with email and password')
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,yBAAyB,CAAC,CAAC;AAE1C,WAAW;KACR,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,qBAAqB,EAAE,eAAe,CAAC;KAC9C,MAAM,CAAC,2BAA2B,EAAE,UAAU,CAAC;KAC/C,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,WAAW;KACR,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,WAAW;KACR,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,WAAW;KACR,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,WAAW;KACR,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,cAAc,CAAC,aAAa,EAAE,mCAAmC,CAAC;KAClE,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,WAAW;KACR,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CACtD,yBAAyB,CAC5B,CAAC;AAEF,WAAW;KACN,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,qBAAqB,EAAE,eAAe,CAAC;KAC9C,MAAM,CAAC,2BAA2B,EAAE,UAAU,CAAC;KAC/C,MAAM,CAAC,WAAW,CAAC,CAAC;AAEzB,WAAW;KACN,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,YAAY,CAAC,CAAC;AAE1B,WAAW;KACN,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,YAAY,CAAC,CAAC;AAE1B,WAAW;KACN,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,WAAW,CAAC,CAAC;AAEzB,WAAW;KACN,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,cAAc,CAAC,aAAa,EAAE,mCAAmC,CAAC;KAClE,MAAM,CAAC,aAAa,CAAC,CAAC;AAE3B,WAAW;KACN,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,gBAAgB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"AAKA,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA6EtE"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"AAOA,UAAU,YAAY;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4EtE"}
@@ -1,7 +1,9 @@
1
- import inquirer from 'inquirer';
1
+ import { input, password, confirm } from '@inquirer/prompts';
2
2
  import chalk from 'chalk';
3
3
  import ora from 'ora';
4
4
  import { authService } from '../../services/auth.service.js';
5
+ import { exitWithCode } from '../../utils/cli-exit.js';
6
+ import { cliError, cliInfo } from '../../utils/logger.js';
5
7
  export async function loginAction(options) {
6
8
  const spinner = ora();
7
9
  try {
@@ -9,62 +11,59 @@ export async function loginAction(options) {
9
11
  if (isAuthenticated && !options.email) {
10
12
  const credentials = await authService.getCredentials();
11
13
  const email = credentials?.user?.email;
12
- console.log(chalk.yellow(email ? `\nAlready logged in as ${email}` : '\nAlready authenticated with team key'));
13
- const { confirm } = await inquirer.prompt([
14
- {
15
- type: 'confirm',
16
- name: 'confirm',
17
- message: email
18
- ? 'Do you want to login with a different account?'
19
- : 'Do you want to login with an account instead?',
20
- default: false,
21
- },
22
- ]);
23
- if (!confirm) {
14
+ cliInfo(chalk.yellow(email
15
+ ? `\nAlready logged in as ${email}`
16
+ : '\nAlready authenticated with team key'));
17
+ const shouldRelogin = await confirm({
18
+ message: email
19
+ ? 'Do you want to login with a different account?'
20
+ : 'Do you want to login with an account instead?',
21
+ default: false,
22
+ });
23
+ if (!shouldRelogin) {
24
24
  return;
25
25
  }
26
26
  }
27
27
  let email = options.email;
28
- let password = options.password;
29
- if (!email || !password) {
30
- const answers = await inquirer.prompt([
31
- ...(!email ? [{
32
- type: 'input',
33
- name: 'email',
34
- message: 'Email:',
35
- validate: (input) => {
36
- if (!input || !input.includes('@')) {
37
- return 'Please enter a valid email';
38
- }
39
- return true;
40
- },
41
- }] : []),
42
- ...(!password ? [{
43
- type: 'password',
44
- name: 'password',
45
- message: 'Password:',
46
- mask: '*',
47
- validate: (input) => {
48
- if (!input || input.length < 6) {
49
- return 'Password must be at least 6 characters';
50
- }
51
- return true;
52
- },
53
- }] : []),
54
- ]);
55
- email = email || answers.email;
56
- password = password || answers.password;
28
+ let pwd = options.password;
29
+ if (!email) {
30
+ email = await input({
31
+ message: 'Email:',
32
+ validate: (value) => {
33
+ if (!value || !value.includes('@')) {
34
+ return 'Please enter a valid email';
35
+ }
36
+ return true;
37
+ },
38
+ });
39
+ }
40
+ if (!pwd) {
41
+ pwd = await password({
42
+ message: 'Password:',
43
+ mask: '*',
44
+ validate: (value) => {
45
+ if (!value || value.length < 6) {
46
+ return 'Password must be at least 6 characters';
47
+ }
48
+ return true;
49
+ },
50
+ });
57
51
  }
58
52
  spinner.start(chalk.blue('Logging in...'));
59
- await authService.login(email, password);
53
+ await authService.login(email, pwd);
60
54
  spinner.succeed(chalk.green(`Logged in as ${email}`));
61
55
  }
62
56
  catch (error) {
57
+ // Check if user cancelled prompt (Ctrl+C throws Error)
58
+ if (error instanceof Error && error.message.includes('force closed')) {
59
+ cliInfo(chalk.yellow('\nOperation cancelled'));
60
+ return;
61
+ }
63
62
  spinner.fail(chalk.red('Login failed'));
64
63
  if (error instanceof Error) {
65
- console.error(chalk.red(error.message));
64
+ cliError(chalk.red(error.message));
66
65
  }
67
- process.exit(1);
66
+ exitWithCode(1);
68
67
  }
69
68
  }
70
69
  //# sourceMappingURL=login.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/auth/login.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/logout.ts"],"names":[],"mappings":"AAIA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAwBlD"}
1
+ {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/logout.ts"],"names":[],"mappings":"AAMA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBlD"}
@@ -1,12 +1,14 @@
1
1
  import chalk from 'chalk';
2
2
  import ora from 'ora';
3
3
  import { authService } from '../../services/auth.service.js';
4
+ import { exitWithCode } from '../../utils/cli-exit.js';
5
+ import { cliError, cliInfo } from '../../utils/logger.js';
4
6
  export async function logoutAction() {
5
7
  const spinner = ora();
6
8
  try {
7
9
  const isAuthenticated = await authService.isAuthenticated();
8
10
  if (!isAuthenticated) {
9
- console.log(chalk.yellow('\nNot authenticated.'));
11
+ cliInfo(chalk.yellow('\nNot authenticated.'));
10
12
  return;
11
13
  }
12
14
  spinner.start(chalk.blue('Logging out...'));
@@ -16,9 +18,9 @@ export async function logoutAction() {
16
18
  catch (error) {
17
19
  spinner.fail(chalk.red('Logout failed'));
18
20
  if (error instanceof Error) {
19
- console.error(chalk.red(error.message));
21
+ cliError(chalk.red(error.message));
20
22
  }
21
- process.exit(1);
23
+ exitWithCode(1);
22
24
  }
23
25
  }
24
26
  //# sourceMappingURL=logout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/commands/auth/logout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;IAEtB,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,eAAe,EAAE,CAAC;QAE5D,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAE5C,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAE3B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAE1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QACzC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/commands/auth/logout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,YAAY;IAC9B,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;IAEtB,IAAI,CAAC;QACD,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,eAAe,EAAE,CAAC;QAE5D,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC9C,OAAO;QACX,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAE5C,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAE3B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QACzC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YACzB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,YAAY,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/status.ts"],"names":[],"mappings":"AAMA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAmFlD"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/status.ts"],"names":[],"mappings":"AAQA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA4GlD"}
@@ -3,6 +3,8 @@ import ora from 'ora';
3
3
  import { authService } from '../../services/auth.service.js';
4
4
  import { loadConfig } from '../../utils/config.js';
5
5
  import { checkTrialStatus } from '../../utils/rate-limit.js';
6
+ import { exitWithCode } from '../../utils/cli-exit.js';
7
+ import { cliError, cliInfo } from '../../utils/logger.js';
6
8
  export async function statusAction() {
7
9
  const spinner = ora();
8
10
  try {
@@ -13,43 +15,43 @@ export async function statusAction() {
13
15
  const hasTeamKey = !!teamConfig?.teamKey;
14
16
  const hasUserEmail = !!credentials?.user?.email;
15
17
  if (!hasUserEmail && hasTeamKey) {
16
- console.log(chalk.bold('\nAuthentication Status\n'));
17
- console.log(`${chalk.dim('Mode:')} ${chalk.green('Team Key')}`);
18
- console.log(`${chalk.dim('Organization:')} ${teamConfig?.organizationName ?? '(unknown)'}`);
19
- console.log(`${chalk.dim('Team:')} ${teamConfig?.teamName ?? '(unknown)'}`);
20
- console.log(`${chalk.dim('Token:')} ${chalk.green('Configured')}`);
18
+ cliInfo(chalk.bold('\nAuthentication Status\n'));
19
+ cliInfo(`${chalk.dim('Mode:')} ${chalk.green('Team Key')}`);
20
+ cliInfo(`${chalk.dim('Organization:')} ${teamConfig?.organizationName ?? '(unknown)'}`);
21
+ cliInfo(`${chalk.dim('Team:')} ${teamConfig?.teamName ?? '(unknown)'}`);
22
+ cliInfo(`${chalk.dim('Token:')} ${chalk.green('Configured')}`);
21
23
  return;
22
24
  }
23
25
  if (!credentials) {
24
- console.log(chalk.yellow('\nNo credentials found.'));
26
+ cliInfo(chalk.yellow('\nNo credentials found.'));
25
27
  return;
26
28
  }
27
- console.log(chalk.bold('\nAuthentication Status\n'));
28
- console.log(`${chalk.dim('Mode:')} ${chalk.green('Logged In')}`);
29
- console.log(`${chalk.dim('Email:')} ${credentials.user?.email ?? '(unknown)'}`);
29
+ cliInfo(chalk.bold('\nAuthentication Status\n'));
30
+ cliInfo(`${chalk.dim('Mode:')} ${chalk.green('Logged In')}`);
31
+ cliInfo(`${chalk.dim('Email:')} ${credentials.user?.email ?? '(unknown)'}`);
30
32
  const expiresAt = new Date(credentials.expiresAt);
31
33
  const timeUntilExpiry = expiresAt.getTime() - Date.now();
32
34
  const hoursUntilExpiry = Math.floor(timeUntilExpiry / (1000 * 60 * 60));
33
35
  if (timeUntilExpiry > 0) {
34
36
  if (hoursUntilExpiry < 1) {
35
- console.log(`${chalk.dim('Token:')} ${chalk.yellow('Expires in < 1 hour')}`);
37
+ cliInfo(`${chalk.dim('Token:')} ${chalk.yellow('Expires in < 1 hour')}`);
36
38
  }
37
39
  else if (hoursUntilExpiry < 24) {
38
- console.log(`${chalk.dim('Token:')} ${chalk.yellow(`Expires in ${hoursUntilExpiry} hours`)}`);
40
+ cliInfo(`${chalk.dim('Token:')} ${chalk.yellow(`Expires in ${hoursUntilExpiry} hours`)}`);
39
41
  }
40
42
  else {
41
- console.log(`${chalk.dim('Token:')} ${chalk.green('Valid')}`);
43
+ cliInfo(`${chalk.dim('Token:')} ${chalk.green('Valid')}`);
42
44
  }
43
45
  }
44
46
  else {
45
- console.log(`${chalk.dim('Token:')} ${chalk.red('Expired')}`);
46
- console.log(chalk.yellow('\nYour session has expired. Run `kodus auth login` to refresh.'));
47
+ cliInfo(`${chalk.dim('Token:')} ${chalk.red('Expired')}`);
48
+ cliInfo(chalk.yellow('\nYour session has expired. Run `kodus auth login` to refresh.'));
47
49
  return;
48
50
  }
49
51
  if (credentials.user?.orgs && credentials.user.orgs.length > 0) {
50
- console.log(`${chalk.dim('Organizations:')}`);
52
+ cliInfo(`${chalk.dim('Organizations:')}`);
51
53
  credentials.user.orgs.forEach((org) => {
52
- console.log(` ${chalk.dim('•')} ${org}`);
54
+ cliInfo(` ${chalk.dim('•')} ${org}`);
53
55
  });
54
56
  }
55
57
  }
@@ -57,23 +59,24 @@ export async function statusAction() {
57
59
  spinner.start(chalk.blue('Checking trial status...'));
58
60
  const trialStatus = await checkTrialStatus();
59
61
  spinner.stop();
60
- console.log(chalk.bold('\nAuthentication Status\n'));
61
- console.log(`${chalk.dim('Mode:')} ${chalk.yellow('Trial')}`);
62
- console.log(`${chalk.dim('Reviews today:')} ${trialStatus.reviewsUsed}/${trialStatus.reviewsLimit}`);
63
- console.log(`${chalk.dim('Files limit:')} ${trialStatus.filesLimit} per review`);
64
- console.log(`${chalk.dim('Resets at:')} ${new Date(trialStatus.resetsAt).toLocaleString()}`);
62
+ cliInfo(chalk.bold('\nAuthentication Status\n'));
63
+ cliInfo(`${chalk.dim('Mode:')} ${chalk.yellow('Trial')}`);
64
+ cliInfo(`${chalk.dim('Reviews today:')} ${trialStatus.reviewsUsed}/${trialStatus.reviewsLimit}`);
65
+ cliInfo(`${chalk.dim('Files limit:')} ${trialStatus.filesLimit} per review`);
66
+ cliInfo(`${chalk.dim('Resets at:')} ${new Date(trialStatus.resetsAt).toLocaleString()}`);
65
67
  if (trialStatus.isLimited) {
66
- console.log(chalk.yellow('\n⚡ Daily limit reached!'));
68
+ cliInfo(chalk.yellow('\n⚡ Daily limit reached!'));
67
69
  }
68
- console.log(chalk.dim('\nSign up to remove limits: ') + chalk.cyan('kodus auth login'));
70
+ cliInfo(chalk.dim('\nSign up to remove limits: ') +
71
+ chalk.cyan('kodus auth login'));
69
72
  }
70
73
  }
71
74
  catch (error) {
72
75
  spinner.fail(chalk.red('Failed to get status'));
73
76
  if (error instanceof Error) {
74
- console.error(chalk.red(error.message));
77
+ cliError(chalk.red(error.message));
75
78
  }
76
- process.exit(1);
79
+ exitWithCode(1);
77
80
  }
78
81
  }
79
82
  //# sourceMappingURL=status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/auth/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/auth/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"team-key.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/team-key.ts"],"names":[],"mappings":"AA6BA,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuE5E;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAatD"}
1
+ {"version":3,"file":"team-key.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/team-key.ts"],"names":[],"mappings":"AAmCA,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyG5E;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAetD"}