@kodus/cli 0.2.3 → 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
@@ -3,12 +3,30 @@ import path from 'path';
3
3
  import { loadConfig, matchFiles } from '../utils/module-matcher.js';
4
4
  const MAX_JSON_CHARS = 4000;
5
5
  const DECISION_KEYWORDS = [
6
- { pattern: /\b(?:decided to|decision to|chose to|choosing)\b/i, type: 'architectural_decision' },
7
- { pattern: /\b(?:business rule|business requirement|stakeholder)\b/i, type: 'business_rule' },
8
- { pattern: /\b(?:tradeoff|trade-off|trade off|compromise|at the cost of)\b/i, type: 'tradeoff' },
9
- { pattern: /\b(?:defer|deferred|postpone|later|TODO|tech debt|revisit)\b/i, type: 'deferral' },
10
- { pattern: /\b(?:task|todo|need to|should also|follow[- ]up)\b/i, type: 'task' },
11
- { pattern: /\b(?:convention|standard|always use|never use|prefer|pattern)\b/i, type: 'convention' },
6
+ {
7
+ pattern: /\b(?:decided to|decision to|chose to|choosing)\b/i,
8
+ type: 'architectural_decision',
9
+ },
10
+ {
11
+ pattern: /\b(?:business rule|business requirement|stakeholder)\b/i,
12
+ type: 'business_rule',
13
+ },
14
+ {
15
+ pattern: /\b(?:tradeoff|trade-off|trade off|compromise|at the cost of)\b/i,
16
+ type: 'tradeoff',
17
+ },
18
+ {
19
+ pattern: /\b(?:defer|deferred|postpone|later|TODO|tech debt|revisit)\b/i,
20
+ type: 'deferral',
21
+ },
22
+ {
23
+ pattern: /\b(?:task|todo|need to|should also|follow[- ]up)\b/i,
24
+ type: 'task',
25
+ },
26
+ {
27
+ pattern: /\b(?:convention|standard|always use|never use|prefer|pattern)\b/i,
28
+ type: 'convention',
29
+ },
12
30
  ];
13
31
  class MemoryService {
14
32
  // ─── Legacy per-SHA support ───────────────────────────────────────
@@ -90,19 +108,26 @@ class MemoryService {
90
108
  }
91
109
  classifyDecisions(signals, input) {
92
110
  const decisions = [];
93
- const text = [signals.prompt ?? '', signals.assistantMessage ?? ''].join(' ');
94
- if (!text.trim())
111
+ const text = [
112
+ signals.prompt ?? '',
113
+ signals.assistantMessage ?? '',
114
+ ].join(' ');
115
+ if (!text.trim()) {
95
116
  return decisions;
117
+ }
96
118
  // Extract sentences that contain decision signals
97
- const sentences = text.split(/[.!?\n]+/).filter((s) => s.trim().length > 10);
119
+ const sentences = text
120
+ .split(/[.!?\n]+/)
121
+ .filter((s) => s.trim().length > 10);
98
122
  for (const sentence of sentences) {
99
123
  for (const { pattern, type } of DECISION_KEYWORDS) {
100
124
  if (pattern.test(sentence)) {
101
125
  const title = sentence.trim().slice(0, 120);
102
126
  const id = this.generateDecisionId(type, title);
103
127
  // Avoid duplicates within same batch
104
- if (decisions.some((d) => d.id === id))
128
+ if (decisions.some((d) => d.id === id)) {
105
129
  continue;
130
+ }
106
131
  const config = { loadConfig };
107
132
  void config; // module matching happens at promote time
108
133
  decisions.push({
@@ -155,8 +180,9 @@ class MemoryService {
155
180
  let promoted = 0;
156
181
  for (const moduleId of targetModuleIds) {
157
182
  const mod = config.modules.find((m) => m.id === moduleId);
158
- if (!mod)
183
+ if (!mod) {
159
184
  continue;
185
+ }
160
186
  const memoryFilePath = path.join(repoRoot, mod.memoryFile);
161
187
  await fs.mkdir(path.dirname(memoryFilePath), { recursive: true });
162
188
  const header = await this.ensureModuleMemoryHeader(memoryFilePath, mod.name);
@@ -164,8 +190,9 @@ class MemoryService {
164
190
  for (const decision of decisions) {
165
191
  const decisionFiles = decision.files;
166
192
  const decisionModules = matchFiles(decisionFiles, config.modules);
167
- if (!decisionModules.includes(moduleId))
193
+ if (!decisionModules.includes(moduleId)) {
168
194
  continue;
195
+ }
169
196
  content += `\n### ${decision.title}\n`;
170
197
  content += `- **Type:** ${decision.type}\n`;
171
198
  content += `- **Rationale:** ${decision.rationale}\n`;
@@ -181,11 +208,13 @@ class MemoryService {
181
208
  }
182
209
  async readModuleMemory(repoRoot, moduleId) {
183
210
  const config = await loadConfig(repoRoot);
184
- if (!config)
211
+ if (!config) {
185
212
  return null;
213
+ }
186
214
  const mod = config.modules.find((m) => m.id === moduleId);
187
- if (!mod)
215
+ if (!mod) {
188
216
  return null;
217
+ }
189
218
  try {
190
219
  return await fs.readFile(path.join(repoRoot, mod.memoryFile), 'utf-8');
191
220
  }
@@ -195,31 +224,45 @@ class MemoryService {
195
224
  }
196
225
  // ─── Private helpers ──────────────────────────────────────────────
197
226
  sanitizeBranchName(branch) {
198
- return branch
227
+ return (branch
199
228
  .replace(/[^a-zA-Z0-9_\-./]/g, '-')
200
229
  .replace(/\/{2,}/g, '/')
201
230
  .replace(/\.{2,}/g, '.')
202
231
  .replace(/^[.\-/]+|[.\-/]+$/g, '')
203
- .slice(0, 200) || 'unknown-branch';
232
+ .slice(0, 200) || 'unknown-branch');
204
233
  }
205
234
  getSafeSha(headSha) {
206
- if (!headSha)
235
+ if (!headSha) {
207
236
  return 'no-head';
237
+ }
208
238
  const trimmed = headSha.trim();
209
- if (/^[a-f0-9]{7,40}$/i.test(trimmed))
239
+ if (/^[a-f0-9]{7,40}$/i.test(trimmed)) {
210
240
  return trimmed;
241
+ }
211
242
  return 'no-head';
212
243
  }
213
244
  normalizePayload(payload) {
214
- if (!payload || typeof payload !== 'object' || Array.isArray(payload))
245
+ if (!payload || typeof payload !== 'object' || Array.isArray(payload)) {
215
246
  return null;
247
+ }
216
248
  return payload;
217
249
  }
218
250
  extractLegacySignals(payload) {
219
- if (!payload)
251
+ if (!payload) {
220
252
  return {};
221
- const sessionId = this.pickString(payload, ['session_id', 'sessionId', 'thread-id', 'thread_id']);
222
- const turnId = this.pickString(payload, ['turn_id', 'turnId', 'call_id', 'callId']);
253
+ }
254
+ const sessionId = this.pickString(payload, [
255
+ 'session_id',
256
+ 'sessionId',
257
+ 'thread-id',
258
+ 'thread_id',
259
+ ]);
260
+ const turnId = this.pickString(payload, [
261
+ 'turn_id',
262
+ 'turnId',
263
+ 'call_id',
264
+ 'callId',
265
+ ]);
223
266
  const prompt = this.pickString(payload, ['prompt', 'user_message']);
224
267
  const assistantMessage = this.pickString(payload, [
225
268
  'last_assistant_message',
@@ -228,7 +271,10 @@ class MemoryService {
228
271
  'assistant-message',
229
272
  ]);
230
273
  let inputMessage;
231
- const inputMessages = this.pickStringArray(payload, ['input_messages', 'input-messages']);
274
+ const inputMessages = this.pickStringArray(payload, [
275
+ 'input_messages',
276
+ 'input-messages',
277
+ ]);
232
278
  if (inputMessages && inputMessages.length > 0) {
233
279
  inputMessage = inputMessages[0];
234
280
  }
@@ -239,8 +285,9 @@ class MemoryService {
239
285
  const value = payload[key];
240
286
  if (typeof value === 'string') {
241
287
  const trimmed = value.trim();
242
- if (trimmed)
288
+ if (trimmed) {
243
289
  return this.sanitizeLine(trimmed);
290
+ }
244
291
  }
245
292
  }
246
293
  return undefined;
@@ -253,8 +300,9 @@ class MemoryService {
253
300
  .filter((item) => typeof item === 'string')
254
301
  .map((item) => this.sanitizeLine(item))
255
302
  .filter((item) => item.length > 0);
256
- if (strings.length > 0)
303
+ if (strings.length > 0) {
257
304
  return strings;
305
+ }
258
306
  }
259
307
  }
260
308
  return undefined;
@@ -269,22 +317,29 @@ class MemoryService {
269
317
  lines.push('');
270
318
  lines.push(`- agent: \`${input.agent}\``);
271
319
  lines.push(`- event: \`${input.event}\``);
272
- if (input.headSha)
320
+ if (input.headSha) {
273
321
  lines.push(`- head_sha: \`${input.headSha}\``);
274
- if (signals.sessionId)
322
+ }
323
+ if (signals.sessionId) {
275
324
  lines.push(`- session_id: \`${signals.sessionId}\``);
276
- if (signals.turnId)
325
+ }
326
+ if (signals.turnId) {
277
327
  lines.push(`- turn_id: \`${signals.turnId}\``);
328
+ }
278
329
  lines.push('');
279
330
  const signalsLines = [];
280
- if (input.summary)
331
+ if (input.summary) {
281
332
  signalsLines.push(`- summary: ${this.sanitizeLine(input.summary)}`);
282
- if (signals.prompt)
333
+ }
334
+ if (signals.prompt) {
283
335
  signalsLines.push(`- prompt: ${signals.prompt}`);
284
- if (signals.inputMessage)
336
+ }
337
+ if (signals.inputMessage) {
285
338
  signalsLines.push(`- input_message: ${signals.inputMessage}`);
286
- if (signals.assistantMessage)
339
+ }
340
+ if (signals.assistantMessage) {
287
341
  signalsLines.push(`- assistant_message: ${signals.assistantMessage}`);
342
+ }
288
343
  if (signalsLines.length > 0) {
289
344
  lines.push('### Signals');
290
345
  lines.push('');
@@ -303,8 +358,9 @@ class MemoryService {
303
358
  }
304
359
  formatJson(payload) {
305
360
  const json = JSON.stringify(payload, null, 2);
306
- if (json.length <= MAX_JSON_CHARS)
361
+ if (json.length <= MAX_JSON_CHARS) {
307
362
  return json;
363
+ }
308
364
  return `${json.slice(0, MAX_JSON_CHARS)}\n... (truncated)`;
309
365
  }
310
366
  buildNewBranchFile(meta) {
@@ -340,14 +396,16 @@ class MemoryService {
340
396
  }
341
397
  parseFrontmatter(content) {
342
398
  const match = content.match(/^---\n([\s\S]*?)\n---/);
343
- if (!match)
399
+ if (!match) {
344
400
  return null;
401
+ }
345
402
  const lines = match[1].split('\n');
346
403
  const data = {};
347
404
  for (const line of lines) {
348
405
  const colonIdx = line.indexOf(':');
349
- if (colonIdx === -1)
406
+ if (colonIdx === -1) {
350
407
  continue;
408
+ }
351
409
  const key = line.slice(0, colonIdx).trim();
352
410
  const value = line.slice(colonIdx + 1).trim();
353
411
  data[key] = value;
@@ -1 +1 @@
1
- {"version":3,"file":"memory.service.js","sourceRoot":"","sources":["../../src/services/memory.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.service.js","sourceRoot":"","sources":["../../src/services/memory.service.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
- import type { ReviewResult, TrialReviewResult, PullRequestSuggestionsResponse, ReviewIssue, ApiFileSuggestion, ApiPrLevelSuggestion, Severity } from '../types/index.js';
1
+ import type { ReviewResult, TrialReviewResult, PullRequestSuggestionsResponse, BusinessValidationResponse, ReviewIssue, ApiFileSuggestion, ApiPrLevelSuggestion, Severity } from '../types/index.js';
2
2
  declare class ReviewService {
3
3
  private verbose;
4
4
  setVerbose(verbose: boolean): void;
5
+ private logVerbose;
5
6
  analyze(diff: string, rulesOnly?: boolean, fast?: boolean, options?: {
6
7
  files?: string[];
7
8
  staged?: boolean;
8
9
  commit?: string;
9
10
  branch?: string;
11
+ quiet?: boolean;
10
12
  }): Promise<ReviewResult>;
11
13
  getPullRequestSuggestions(params: {
12
14
  prUrl?: string;
@@ -19,6 +21,15 @@ declare class ReviewService {
19
21
  result: ReviewResult;
20
22
  markdown?: string;
21
23
  }>;
24
+ triggerBusinessValidation(params: {
25
+ prUrl?: string;
26
+ prNumber?: number;
27
+ repositoryId?: string;
28
+ repository?: string;
29
+ taskUrl?: string;
30
+ taskId?: string;
31
+ diff?: string;
32
+ }): Promise<BusinessValidationResponse>;
22
33
  trialAnalyze(diff: string): Promise<TrialReviewResult>;
23
34
  normalizeSuggestionsResponse(response: PullRequestSuggestionsResponse): ReviewResult;
24
35
  mapFileSuggestions(files: ApiFileSuggestion[]): ReviewIssue[];
@@ -1 +1 @@
1
- {"version":3,"file":"review.service.d.ts","sourceRoot":"","sources":["../../src/services/review.service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAgB,YAAY,EAAE,iBAAiB,EAAE,8BAA8B,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAwB,QAAQ,EAAe,MAAM,mBAAmB,CAAC;AAM1N,cAAM,aAAa;IACjB,OAAO,CAAC,OAAO,CAAkB;IAEjC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI5B,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,OAAO,EACnB,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GACjF,OAAO,CAAC,YAAY,CAAC;IAkGlB,yBAAyB,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAmChN,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAuB5D,4BAA4B,CAAC,QAAQ,EAAE,8BAA8B,GAAG,YAAY;IAuBpF,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE;IAY7D,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,WAAW,EAAE;IAWrE,OAAO,CAAC,WAAW;IA+BnB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ;CAQ/C;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
1
+ {"version":3,"file":"review.service.d.ts","sourceRoot":"","sources":["../../src/services/review.service.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAER,YAAY,EACZ,iBAAiB,EACjB,8BAA8B,EAC9B,0BAA0B,EAC1B,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EAEpB,QAAQ,EAEX,MAAM,mBAAmB,CAAC;AAM3B,cAAM,aAAa;IACf,OAAO,CAAC,OAAO,CAAkB;IAEjC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,OAAO,CAAC,UAAU;IAOZ,OAAO,CACT,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,OAAO,EACnB,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,OAAO,CAAC;KACnB,GACF,OAAO,CAAC,YAAY,CAAC;IAuGlB,yBAAyB,CAAC,MAAM,EAAE;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,UAAU,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA8ClD,yBAAyB,CAAC,MAAM,EAAE;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IA+BjC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAqB5D,4BAA4B,CACxB,QAAQ,EAAE,8BAA8B,GACzC,YAAY;IA4Bf,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,WAAW,EAAE;IAY7D,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,WAAW,EAAE;IAWrE,OAAO,CAAC,WAAW;IA6CnB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ;CAgBjD;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
@@ -6,6 +6,7 @@ import { loadConfig } from '../utils/config.js';
6
6
  import { CLI_VERSION } from '../constants.js';
7
7
  import chalk from 'chalk';
8
8
  import { ApiError } from '../types/index.js';
9
+ import { cliDebug, cliWarn } from '../utils/logger.js';
9
10
  const MAX_FILES = 500;
10
11
  const MAX_DIFF_SIZE = 1024 * 1024; // 1MB
11
12
  const MAX_CONTENT_SIZE = 5 * 1024 * 1024; // 5MB
@@ -14,12 +15,16 @@ class ReviewService {
14
15
  setVerbose(verbose) {
15
16
  this.verbose = verbose;
16
17
  }
18
+ logVerbose(message) {
19
+ if (!this.verbose) {
20
+ return;
21
+ }
22
+ cliDebug(chalk.dim(message));
23
+ }
17
24
  async analyze(diff, rulesOnly, fast, options) {
18
25
  const token = await authService.getValidToken();
19
- if (this.verbose) {
20
- console.log(chalk.dim(`[verbose] Review config: rulesOnly=${!!rulesOnly}, fast=${!!fast}`));
21
- console.log(chalk.dim(`[verbose] Diff size: ${diff.length} characters`));
22
- }
26
+ this.logVerbose(`[verbose] Review config: rulesOnly=${!!rulesOnly}, fast=${!!fast}`);
27
+ this.logVerbose(`[verbose] Diff size: ${diff.length} characters`);
23
28
  const reviewConfig = {
24
29
  rulesOnly,
25
30
  fast,
@@ -30,14 +35,12 @@ class ReviewService {
30
35
  commit: options?.commit,
31
36
  branch: options?.branch,
32
37
  });
33
- reviewConfig.files = this.filterFiles(allFiles);
34
- if (this.verbose) {
35
- console.log(chalk.dim(`[verbose] Full file contents: ${reviewConfig.files?.length || 0} file(s)`));
36
- if (reviewConfig.files && reviewConfig.files.length > 0) {
37
- reviewConfig.files.forEach(f => {
38
- console.log(chalk.dim(`[verbose] - ${f.path}: ${f.content.length} chars, status=${f.status}`));
39
- });
40
- }
38
+ reviewConfig.files = this.filterFiles(allFiles, options?.quiet ?? false);
39
+ this.logVerbose(`[verbose] Full file contents: ${reviewConfig.files?.length || 0} file(s)`);
40
+ if (reviewConfig.files && reviewConfig.files.length > 0) {
41
+ reviewConfig.files.forEach((f) => {
42
+ this.logVerbose(`[verbose] - ${f.path}: ${f.content.length} chars, status=${f.status}`);
43
+ });
41
44
  }
42
45
  }
43
46
  const teamConfig = await loadConfig();
@@ -47,13 +50,11 @@ class ReviewService {
47
50
  const inferredPlatform = gitInfo.remote
48
51
  ? gitService.inferPlatform(gitInfo.remote)
49
52
  : undefined;
50
- if (this.verbose) {
51
- console.log(chalk.dim('[verbose] Using team key with metrics'));
52
- console.log(chalk.dim(`[verbose] Git info: branch=${gitInfo.branch}, remote=${gitInfo.remote}`));
53
- console.log(chalk.dim('[verbose] Sending to API:'));
54
- console.log(chalk.dim(`[verbose] - diff length: ${diff.length} chars`));
55
- console.log(chalk.dim(`[verbose] - config: ${JSON.stringify(reviewConfig)}`));
56
- }
53
+ this.logVerbose('[verbose] Using team key with metrics');
54
+ this.logVerbose(`[verbose] Git info: branch=${gitInfo.branch}, remote=${gitInfo.remote}`);
55
+ this.logVerbose('[verbose] Sending to API:');
56
+ this.logVerbose(`[verbose] - diff length: ${diff.length} chars`);
57
+ this.logVerbose(`[verbose] - config: ${JSON.stringify(reviewConfig)}`);
57
58
  const result = await api.review.analyzeWithMetrics(diff, token, reviewConfig, {
58
59
  userEmail: gitInfo.userEmail,
59
60
  gitRemote: gitInfo.remote || undefined,
@@ -62,29 +63,21 @@ class ReviewService {
62
63
  inferredPlatform,
63
64
  cliVersion: CLI_VERSION,
64
65
  });
65
- if (this.verbose) {
66
- console.log(chalk.dim('[verbose] API response:'));
67
- console.log(chalk.dim(`[verbose] - summary: ${result.summary}`));
68
- console.log(chalk.dim(`[verbose] - issues: ${result.issues?.length ?? 0}`));
69
- console.log(chalk.dim(`[verbose] - filesAnalyzed: ${result.filesAnalyzed}`));
70
- }
66
+ this.logVerbose('[verbose] API response:');
67
+ this.logVerbose(`[verbose] - summary: ${result.summary}`);
68
+ this.logVerbose(`[verbose] - issues: ${result.issues?.length ?? 0}`);
69
+ this.logVerbose(`[verbose] - filesAnalyzed: ${result.filesAnalyzed}`);
71
70
  return result;
72
71
  }
73
- if (this.verbose) {
74
- console.log(chalk.dim('[verbose] Using personal token (no metrics)'));
75
- }
76
- if (this.verbose) {
77
- console.log(chalk.dim('[verbose] Sending to API:'));
78
- console.log(chalk.dim(`[verbose] - diff length: ${diff.length} chars`));
79
- console.log(chalk.dim(`[verbose] - config: ${JSON.stringify(reviewConfig)}`));
80
- }
72
+ this.logVerbose('[verbose] Using personal token (no metrics)');
73
+ this.logVerbose('[verbose] Sending to API:');
74
+ this.logVerbose(`[verbose] - diff length: ${diff.length} chars`);
75
+ this.logVerbose(`[verbose] - config: ${JSON.stringify(reviewConfig)}`);
81
76
  const result = await api.review.analyze(diff, token, reviewConfig);
82
- if (this.verbose) {
83
- console.log(chalk.dim('[verbose] API response:'));
84
- console.log(chalk.dim(`[verbose] - summary: ${result.summary}`));
85
- console.log(chalk.dim(`[verbose] - issues: ${result.issues?.length ?? 0}`));
86
- console.log(chalk.dim(`[verbose] - filesAnalyzed: ${result.filesAnalyzed}`));
87
- }
77
+ this.logVerbose('[verbose] API response:');
78
+ this.logVerbose(`[verbose] - summary: ${result.summary}`);
79
+ this.logVerbose(`[verbose] - issues: ${result.issues?.length ?? 0}`);
80
+ this.logVerbose(`[verbose] - filesAnalyzed: ${result.filesAnalyzed}`);
88
81
  return result;
89
82
  }
90
83
  async getPullRequestSuggestions(params) {
@@ -97,7 +90,9 @@ class ReviewService {
97
90
  response = await api.review.getPullRequestSuggestions(token, params);
98
91
  }
99
92
  catch (error) {
100
- const canFallbackToTeamKey = error instanceof ApiError && error.statusCode === 401 && !token.startsWith('kodus_');
93
+ const canFallbackToTeamKey = error instanceof ApiError &&
94
+ error.statusCode === 401 &&
95
+ !token.startsWith('kodus_');
101
96
  if (!canFallbackToTeamKey) {
102
97
  throw error;
103
98
  }
@@ -118,22 +113,42 @@ class ReviewService {
118
113
  markdown: response.markdown,
119
114
  };
120
115
  }
116
+ async triggerBusinessValidation(params) {
117
+ const token = await authService.getValidToken();
118
+ try {
119
+ return await api.review.triggerBusinessValidation(token, params);
120
+ }
121
+ catch (error) {
122
+ const canFallbackToTeamKey = error instanceof ApiError &&
123
+ error.statusCode === 401 &&
124
+ !token.startsWith('kodus_');
125
+ if (!canFallbackToTeamKey) {
126
+ throw error;
127
+ }
128
+ const config = await loadConfig();
129
+ if (!config?.teamKey) {
130
+ throw error;
131
+ }
132
+ try {
133
+ return await api.review.triggerBusinessValidation(config.teamKey, params);
134
+ }
135
+ catch {
136
+ throw error;
137
+ }
138
+ }
139
+ }
121
140
  async trialAnalyze(diff) {
122
141
  const fingerprint = await getTrialIdentifier();
123
- if (this.verbose) {
124
- console.log(chalk.dim('[verbose] Running trial analyze'));
125
- console.log(chalk.dim(`[verbose] Diff size: ${diff.length} characters`));
126
- // Show diff preview
127
- const preview = diff.substring(0, 300);
128
- console.log(chalk.dim(`[verbose] Diff preview:\n${preview}${diff.length > 300 ? '\n... (truncated)' : ''}`));
129
- }
142
+ this.logVerbose('[verbose] Running trial analyze');
143
+ this.logVerbose(`[verbose] Diff size: ${diff.length} characters`);
144
+ // Show diff preview
145
+ const preview = diff.substring(0, 300);
146
+ this.logVerbose(`[verbose] Diff preview:\n${preview}${diff.length > 300 ? '\n... (truncated)' : ''}`);
130
147
  const result = await api.review.trialAnalyze(diff, fingerprint);
131
- if (this.verbose) {
132
- console.log(chalk.dim('[verbose] Trial API response:'));
133
- console.log(chalk.dim(`[verbose] - summary: ${result.summary}`));
134
- console.log(chalk.dim(`[verbose] - issues: ${result.issues?.length ?? 0}`));
135
- console.log(chalk.dim(`[verbose] - filesAnalyzed: ${result.filesAnalyzed}`));
136
- }
148
+ this.logVerbose('[verbose] Trial API response:');
149
+ this.logVerbose(`[verbose] - summary: ${result.summary}`);
150
+ this.logVerbose(`[verbose] - issues: ${result.issues?.length ?? 0}`);
151
+ this.logVerbose(`[verbose] - filesAnalyzed: ${result.filesAnalyzed}`);
137
152
  return result;
138
153
  }
139
154
  normalizeSuggestionsResponse(response) {
@@ -144,7 +159,8 @@ class ReviewService {
144
159
  else if (Array.isArray(response.suggestions)) {
145
160
  issues = response.suggestions;
146
161
  }
147
- else if (response.suggestions && typeof response.suggestions === 'object') {
162
+ else if (response.suggestions &&
163
+ typeof response.suggestions === 'object') {
148
164
  const suggestionsObj = response.suggestions;
149
165
  issues = [
150
166
  ...this.mapFileSuggestions(suggestionsObj.files ?? []),
@@ -154,7 +170,8 @@ class ReviewService {
154
170
  return {
155
171
  summary: response.summary ?? 'Pull request suggestions',
156
172
  issues,
157
- filesAnalyzed: response.filesAnalyzed ?? new Set(issues.map(i => i.file)).size,
173
+ filesAnalyzed: response.filesAnalyzed ??
174
+ new Set(issues.map((i) => i.file)).size,
158
175
  duration: response.duration ?? 0,
159
176
  };
160
177
  }
@@ -179,9 +196,9 @@ class ReviewService {
179
196
  ruleId: s.label,
180
197
  }));
181
198
  }
182
- filterFiles(files) {
199
+ filterFiles(files, quiet = false) {
183
200
  const skipped = [];
184
- const filtered = files.filter(f => {
201
+ const filtered = files.filter((f) => {
185
202
  const diffBytes = Buffer.byteLength(f.diff, 'utf8');
186
203
  const contentBytes = Buffer.byteLength(f.content, 'utf8');
187
204
  if (diffBytes > MAX_DIFF_SIZE) {
@@ -196,26 +213,32 @@ class ReviewService {
196
213
  }
197
214
  return true;
198
215
  });
199
- if (skipped.length > 0) {
200
- console.log(chalk.yellow(`⚠ Skipped ${skipped.length} file(s) exceeding size limits:`));
201
- skipped.forEach(msg => console.log(chalk.yellow(msg)));
216
+ if (!quiet && skipped.length > 0) {
217
+ cliWarn(chalk.yellow(`⚠ Skipped ${skipped.length} file(s) exceeding size limits:`));
218
+ skipped.forEach((msg) => cliWarn(chalk.yellow(msg)));
202
219
  }
203
220
  if (filtered.length > MAX_FILES) {
204
- console.log(chalk.yellow(`⚠ Too many files (${filtered.length}), sending first ${MAX_FILES}`));
221
+ if (!quiet) {
222
+ cliWarn(chalk.yellow(`⚠ Too many files (${filtered.length}), sending first ${MAX_FILES}`));
223
+ }
205
224
  return filtered.slice(0, MAX_FILES);
206
225
  }
207
226
  return filtered;
208
227
  }
209
228
  normalizeSeverity(severity) {
210
- if (!severity)
229
+ if (!severity) {
211
230
  return 'info';
231
+ }
212
232
  const s = severity.toLowerCase();
213
- if (s === 'critical')
233
+ if (s === 'critical') {
214
234
  return 'critical';
215
- if (s === 'high' || s === 'error')
235
+ }
236
+ if (s === 'high' || s === 'error') {
216
237
  return 'error';
217
- if (s === 'medium' || s === 'warning')
238
+ }
239
+ if (s === 'medium' || s === 'warning') {
218
240
  return 'warning';
241
+ }
219
242
  return 'info';
220
243
  }
221
244
  }