@vertaaux/cli 0.3.3 → 0.5.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 (227) hide show
  1. package/CHANGELOG.md +97 -0
  2. package/MIGRATION.md +239 -0
  3. package/README.md +34 -16
  4. package/dist/app/interactive-app.d.ts +101 -0
  5. package/dist/app/interactive-app.d.ts.map +1 -0
  6. package/dist/app/interactive-app.js +309 -0
  7. package/dist/app/layout/canvas.d.ts +23 -0
  8. package/dist/app/layout/canvas.d.ts.map +1 -0
  9. package/dist/app/layout/canvas.js +36 -0
  10. package/dist/app/layout/footer.d.ts +31 -0
  11. package/dist/app/layout/footer.d.ts.map +1 -0
  12. package/dist/app/layout/footer.js +41 -0
  13. package/dist/app/layout/header.d.ts +20 -0
  14. package/dist/app/layout/header.d.ts.map +1 -0
  15. package/dist/app/layout/header.js +27 -0
  16. package/dist/app/menu/categories.d.ts +20 -0
  17. package/dist/app/menu/categories.d.ts.map +1 -0
  18. package/dist/app/menu/categories.js +181 -0
  19. package/dist/app/menu/filter.d.ts +17 -0
  20. package/dist/app/menu/filter.d.ts.map +1 -0
  21. package/dist/app/menu/filter.js +33 -0
  22. package/dist/app/menu/menu-view.d.ts +35 -0
  23. package/dist/app/menu/menu-view.d.ts.map +1 -0
  24. package/dist/app/menu/menu-view.js +230 -0
  25. package/dist/app/menu/recent.d.ts +24 -0
  26. package/dist/app/menu/recent.d.ts.map +1 -0
  27. package/dist/app/menu/recent.js +49 -0
  28. package/dist/app/types.d.ts +43 -0
  29. package/dist/app/types.d.ts.map +1 -0
  30. package/dist/app/types.js +7 -0
  31. package/dist/app/views/command-runner.d.ts +36 -0
  32. package/dist/app/views/command-runner.d.ts.map +1 -0
  33. package/dist/app/views/command-runner.js +372 -0
  34. package/dist/app/views/help-overlay.d.ts +21 -0
  35. package/dist/app/views/help-overlay.d.ts.map +1 -0
  36. package/dist/app/views/help-overlay.js +45 -0
  37. package/dist/auth/ci-token.d.ts +14 -2
  38. package/dist/auth/ci-token.d.ts.map +1 -1
  39. package/dist/auth/ci-token.js +15 -30
  40. package/dist/auth/device-flow.d.ts +2 -1
  41. package/dist/auth/device-flow.d.ts.map +1 -1
  42. package/dist/auth/device-flow.js +13 -10
  43. package/dist/auth/token-store.d.ts.map +1 -1
  44. package/dist/auth/token-store.js +12 -2
  45. package/dist/baseline/diff.d.ts +2 -2
  46. package/dist/baseline/diff.d.ts.map +1 -1
  47. package/dist/baseline/diff.js +15 -34
  48. package/dist/commands/a11y.d.ts +9 -0
  49. package/dist/commands/a11y.d.ts.map +1 -0
  50. package/dist/commands/a11y.js +76 -0
  51. package/dist/commands/audit/artifacts.d.ts +27 -0
  52. package/dist/commands/audit/artifacts.d.ts.map +1 -0
  53. package/dist/commands/audit/artifacts.js +158 -0
  54. package/dist/commands/audit/ci-detection.d.ts +18 -0
  55. package/dist/commands/audit/ci-detection.d.ts.map +1 -0
  56. package/dist/commands/audit/ci-detection.js +71 -0
  57. package/dist/commands/audit/explain.d.ts +11 -0
  58. package/dist/commands/audit/explain.d.ts.map +1 -0
  59. package/dist/commands/audit/explain.js +45 -0
  60. package/dist/commands/audit/filters.d.ts +17 -0
  61. package/dist/commands/audit/filters.d.ts.map +1 -0
  62. package/dist/commands/audit/filters.js +40 -0
  63. package/dist/commands/audit/index.d.ts +18 -0
  64. package/dist/commands/audit/index.d.ts.map +1 -0
  65. package/dist/commands/audit/index.js +564 -0
  66. package/dist/commands/audit/output.d.ts +32 -0
  67. package/dist/commands/audit/output.d.ts.map +1 -0
  68. package/dist/commands/audit/output.js +130 -0
  69. package/dist/commands/audit/policy.d.ts +19 -0
  70. package/dist/commands/audit/policy.d.ts.map +1 -0
  71. package/dist/commands/audit/policy.js +102 -0
  72. package/dist/commands/audit/scoring.d.ts +23 -0
  73. package/dist/commands/audit/scoring.d.ts.map +1 -0
  74. package/dist/commands/audit/scoring.js +70 -0
  75. package/dist/commands/audit/types.d.ts +88 -0
  76. package/dist/commands/audit/types.d.ts.map +1 -0
  77. package/dist/commands/audit/types.js +8 -0
  78. package/dist/commands/audit.d.ts +2 -60
  79. package/dist/commands/audit.d.ts.map +1 -1
  80. package/dist/commands/audit.js +2 -1038
  81. package/dist/commands/baseline.d.ts +1 -0
  82. package/dist/commands/baseline.d.ts.map +1 -1
  83. package/dist/commands/baseline.js +205 -121
  84. package/dist/commands/comment.d.ts +22 -0
  85. package/dist/commands/comment.d.ts.map +1 -1
  86. package/dist/commands/comment.js +122 -58
  87. package/dist/commands/compare.d.ts +17 -0
  88. package/dist/commands/compare.d.ts.map +1 -1
  89. package/dist/commands/compare.js +287 -180
  90. package/dist/commands/diff.d.ts +5 -0
  91. package/dist/commands/diff.d.ts.map +1 -1
  92. package/dist/commands/diff.js +168 -141
  93. package/dist/commands/doc.d.ts +10 -0
  94. package/dist/commands/doc.d.ts.map +1 -1
  95. package/dist/commands/doc.js +134 -76
  96. package/dist/commands/doctor.d.ts +2 -0
  97. package/dist/commands/doctor.d.ts.map +1 -1
  98. package/dist/commands/doctor.js +164 -17
  99. package/dist/commands/download.d.ts +10 -0
  100. package/dist/commands/download.d.ts.map +1 -1
  101. package/dist/commands/download.js +169 -112
  102. package/dist/commands/explain.d.ts +5 -0
  103. package/dist/commands/explain.d.ts.map +1 -1
  104. package/dist/commands/explain.js +241 -155
  105. package/dist/commands/fix-all.d.ts +25 -0
  106. package/dist/commands/fix-all.d.ts.map +1 -0
  107. package/dist/commands/fix-all.js +206 -0
  108. package/dist/commands/fix-plan.d.ts +9 -0
  109. package/dist/commands/fix-plan.d.ts.map +1 -1
  110. package/dist/commands/fix-plan.js +152 -89
  111. package/dist/commands/fix.d.ts +17 -0
  112. package/dist/commands/fix.d.ts.map +1 -0
  113. package/dist/commands/fix.js +111 -0
  114. package/dist/commands/init.d.ts +11 -0
  115. package/dist/commands/init.d.ts.map +1 -1
  116. package/dist/commands/init.js +94 -42
  117. package/dist/commands/login.d.ts +18 -0
  118. package/dist/commands/login.d.ts.map +1 -1
  119. package/dist/commands/login.js +268 -95
  120. package/dist/commands/patch-review.d.ts +11 -0
  121. package/dist/commands/patch-review.d.ts.map +1 -1
  122. package/dist/commands/patch-review.js +159 -97
  123. package/dist/commands/policy.d.ts +31 -0
  124. package/dist/commands/policy.d.ts.map +1 -1
  125. package/dist/commands/policy.js +269 -124
  126. package/dist/commands/release-notes.d.ts +10 -0
  127. package/dist/commands/release-notes.d.ts.map +1 -1
  128. package/dist/commands/release-notes.js +127 -73
  129. package/dist/commands/scan.d.ts +13 -0
  130. package/dist/commands/scan.d.ts.map +1 -0
  131. package/dist/commands/scan.js +133 -0
  132. package/dist/commands/status.d.ts +9 -0
  133. package/dist/commands/status.d.ts.map +1 -0
  134. package/dist/commands/status.js +81 -0
  135. package/dist/commands/suggest.d.ts +10 -0
  136. package/dist/commands/suggest.d.ts.map +1 -1
  137. package/dist/commands/suggest.js +153 -82
  138. package/dist/commands/triage.d.ts +35 -0
  139. package/dist/commands/triage.d.ts.map +1 -1
  140. package/dist/commands/triage.js +206 -81
  141. package/dist/commands/upload.d.ts +9 -0
  142. package/dist/commands/upload.d.ts.map +1 -1
  143. package/dist/commands/upload.js +140 -101
  144. package/dist/commands/verify.d.ts +13 -0
  145. package/dist/commands/verify.d.ts.map +1 -0
  146. package/dist/commands/verify.js +118 -0
  147. package/dist/index.d.ts +3 -2
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +125 -990
  150. package/dist/interactive/fix-wizard.d.ts +3 -0
  151. package/dist/interactive/fix-wizard.d.ts.map +1 -1
  152. package/dist/interactive/fix-wizard.js +130 -112
  153. package/dist/interactive/init-wizard.d.ts +3 -1
  154. package/dist/interactive/init-wizard.d.ts.map +1 -1
  155. package/dist/interactive/init-wizard.js +207 -138
  156. package/dist/interactive/prompts.d.ts +7 -3
  157. package/dist/interactive/prompts.d.ts.map +1 -1
  158. package/dist/interactive/prompts.js +44 -23
  159. package/dist/output/envelope.d.ts +2 -0
  160. package/dist/output/envelope.d.ts.map +1 -1
  161. package/dist/output/envelope.js +18 -2
  162. package/dist/output/factory.d.ts +9 -1
  163. package/dist/output/factory.d.ts.map +1 -1
  164. package/dist/output/html.d.ts +2 -1
  165. package/dist/output/html.d.ts.map +1 -1
  166. package/dist/output/html.js +3 -2
  167. package/dist/output/human.d.ts +9 -1
  168. package/dist/output/human.d.ts.map +1 -1
  169. package/dist/output/human.js +17 -2
  170. package/dist/output/json.d.ts +2 -1
  171. package/dist/output/json.d.ts.map +1 -1
  172. package/dist/output/junit.d.ts +2 -1
  173. package/dist/output/junit.d.ts.map +1 -1
  174. package/dist/output/sarif.d.ts +2 -1
  175. package/dist/output/sarif.d.ts.map +1 -1
  176. package/dist/types.d.ts +74 -0
  177. package/dist/types.d.ts.map +1 -0
  178. package/dist/types.js +5 -0
  179. package/dist/ui/banner.d.ts +34 -0
  180. package/dist/ui/banner.d.ts.map +1 -1
  181. package/dist/ui/banner.js +97 -5
  182. package/dist/ui/diagnostics.d.ts +9 -4
  183. package/dist/ui/diagnostics.d.ts.map +1 -1
  184. package/dist/ui/diagnostics.js +32 -82
  185. package/dist/ui/strings.d.ts +373 -0
  186. package/dist/ui/strings.d.ts.map +1 -0
  187. package/dist/ui/strings.js +499 -0
  188. package/dist/ui/table.d.ts +0 -2
  189. package/dist/ui/table.d.ts.map +1 -1
  190. package/dist/ui/table.js +3 -4
  191. package/dist/utils/api-client.d.ts +46 -0
  192. package/dist/utils/api-client.d.ts.map +1 -0
  193. package/dist/utils/api-client.js +170 -0
  194. package/dist/utils/client.d.ts +29 -18
  195. package/dist/utils/client.d.ts.map +1 -1
  196. package/dist/utils/client.js +102 -12
  197. package/dist/utils/formatters.d.ts +38 -0
  198. package/dist/utils/formatters.d.ts.map +1 -0
  199. package/dist/utils/formatters.js +277 -0
  200. package/dist/utils/local-capture.d.ts +25 -0
  201. package/dist/utils/local-capture.d.ts.map +1 -0
  202. package/dist/utils/local-capture.js +57 -0
  203. package/dist/utils/url-classify.d.ts +18 -0
  204. package/dist/utils/url-classify.d.ts.map +1 -0
  205. package/dist/utils/url-classify.js +106 -0
  206. package/node_modules/@vertaaux/tui/dist/index.cjs +713 -20
  207. package/node_modules/@vertaaux/tui/dist/index.cjs.map +1 -1
  208. package/node_modules/@vertaaux/tui/dist/index.d.cts +361 -4
  209. package/node_modules/@vertaaux/tui/dist/index.d.ts +361 -4
  210. package/node_modules/@vertaaux/tui/dist/index.js +689 -21
  211. package/node_modules/@vertaaux/tui/dist/index.js.map +1 -1
  212. package/package.json +13 -5
  213. package/dist/commands/client.d.ts +0 -14
  214. package/dist/commands/client.d.ts.map +0 -1
  215. package/dist/commands/client.js +0 -362
  216. package/dist/commands/drift.d.ts +0 -15
  217. package/dist/commands/drift.d.ts.map +0 -1
  218. package/dist/commands/drift.js +0 -309
  219. package/dist/commands/protect.d.ts +0 -16
  220. package/dist/commands/protect.d.ts.map +0 -1
  221. package/dist/commands/protect.js +0 -323
  222. package/dist/commands/report.d.ts +0 -15
  223. package/dist/commands/report.d.ts.map +0 -1
  224. package/dist/commands/report.js +0 -214
  225. package/dist/policy/sync.d.ts +0 -67
  226. package/dist/policy/sync.d.ts.map +0 -1
  227. package/dist/policy/sync.js +0 -147
@@ -22,10 +22,11 @@ function normalizeIssues(issues) {
22
22
  function getOverallScore(scores) {
23
23
  if (!scores)
24
24
  return null;
25
- const direct = scores.overall ?? scores.ux ?? scores.total;
25
+ const s = scores;
26
+ const direct = s.overall ?? s.ux ?? s.total;
26
27
  if (typeof direct === "number" && Number.isFinite(direct))
27
28
  return direct;
28
- const numeric = Object.values(scores)
29
+ const numeric = Object.values(s)
29
30
  .filter((v) => typeof v === "number" && Number.isFinite(v));
30
31
  if (numeric.length === 0)
31
32
  return null;
@@ -4,6 +4,7 @@
4
4
  * Outputs audit results as colorful, formatted text for terminal display.
5
5
  * Delegates to @vertaaux/tui for consistent rendering.
6
6
  */
7
+ import type { AuditScores } from "@vertaaux/sdk";
7
8
  import { type FormatTableOptions } from "../ui/table.js";
8
9
  export interface AuditResult {
9
10
  job_id?: string;
@@ -14,9 +15,16 @@ export interface AuditResult {
14
15
  created_at?: string;
15
16
  started_at?: string;
16
17
  completed_at?: string;
17
- scores?: Record<string, unknown>;
18
+ scores?: AuditScores | Record<string, unknown>;
18
19
  issues?: unknown;
19
20
  error?: string;
21
+ analysis_type?: string;
22
+ metadata?: {
23
+ partial?: boolean;
24
+ source?: string;
25
+ unavailable_checks?: string[];
26
+ [key: string]: unknown;
27
+ };
20
28
  }
21
29
  export interface FormatHumanOptions {
22
30
  groupBy?: "severity" | "category" | "route";
@@ -1 +1 @@
1
- {"version":3,"file":"human.d.ts","sourceRoot":"","sources":["../../src/output/human.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,EAOL,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAuND;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CAuCR"}
1
+ {"version":3,"file":"human.d.ts","sourceRoot":"","sources":["../../src/output/human.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAOL,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAwND;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CA4DR"}
@@ -24,10 +24,11 @@ function normalizeIssues(issues) {
24
24
  function getOverallScore(scores) {
25
25
  if (!scores)
26
26
  return null;
27
- const direct = scores.overall ?? scores.ux ?? scores.total;
27
+ const s = scores;
28
+ const direct = s.overall ?? s.ux ?? s.total;
28
29
  if (typeof direct === "number" && Number.isFinite(direct))
29
30
  return direct;
30
- const numeric = Object.values(scores)
31
+ const numeric = Object.values(s)
31
32
  .filter((v) => typeof v === "number" && Number.isFinite(v));
32
33
  if (numeric.length === 0)
33
34
  return null;
@@ -198,5 +199,19 @@ export function formatAuditHuman(result, options = {}) {
198
199
  if (showSummary) {
199
200
  sections.push(formatSummary(issues, result.scores));
200
201
  }
202
+ // Partial result annotation for local/static analysis audits
203
+ if (result.metadata?.partial || result.analysis_type === "static_html") {
204
+ const checks = result.metadata?.unavailable_checks ?? [];
205
+ const lines = [];
206
+ lines.push("");
207
+ lines.push(text.dim("─".repeat(Math.min(getTerminalWidth(), 80))));
208
+ lines.push(text.dim("This audit ran in static analysis mode (local URL)."));
209
+ if (checks.length > 0) {
210
+ lines.push(text.dim("Unavailable checks: " +
211
+ checks.map((c) => c.replace(/_/g, " ")).join(", ")));
212
+ }
213
+ lines.push(text.dim("Deploy to a public URL for a full browser-based audit."));
214
+ sections.push(lines.join("\n"));
215
+ }
201
216
  return sections.join("\n") + "\n";
202
217
  }
@@ -4,6 +4,7 @@
4
4
  * Outputs audit results as pretty-printed JSON.
5
5
  * Used for piped output and machine parsing.
6
6
  */
7
+ import type { AuditScores } from "@vertaaux/sdk";
7
8
  export interface AuditResult {
8
9
  job_id?: string;
9
10
  status?: string;
@@ -13,7 +14,7 @@ export interface AuditResult {
13
14
  created_at?: string;
14
15
  started_at?: string;
15
16
  completed_at?: string;
16
- scores?: Record<string, unknown>;
17
+ scores?: AuditScores | Record<string, unknown>;
17
18
  issues?: unknown;
18
19
  error?: string;
19
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/output/json.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAeR;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,SAAI,GAAG,MAAM,CAE5D"}
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/output/json.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CAeR;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,SAAI,GAAG,MAAM,CAE5D"}
@@ -16,6 +16,7 @@ export interface JunitOptions {
16
16
  /** Custom test suite name prefix */
17
17
  suiteNamePrefix?: string;
18
18
  }
19
+ import type { AuditScores } from "@vertaaux/sdk";
19
20
  /**
20
21
  * Audit result structure (matches factory.ts).
21
22
  */
@@ -28,7 +29,7 @@ export interface AuditResult {
28
29
  created_at?: string;
29
30
  started_at?: string;
30
31
  completed_at?: string;
31
- scores?: Record<string, unknown>;
32
+ scores?: AuditScores | Record<string, unknown>;
32
33
  issues?: unknown;
33
34
  error?: string;
34
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"junit.d.ts","sourceRoot":"","sources":["../../src/output/junit.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqFD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,CA+D/E;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB"}
1
+ {"version":3,"file":"junit.d.ts","sourceRoot":"","sources":["../../src/output/junit.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqFD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,CA+D/E;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB"}
@@ -118,6 +118,7 @@ export interface SarifOptions {
118
118
  /** Working directory for invocation */
119
119
  workingDirectory?: string;
120
120
  }
121
+ import type { AuditScores } from "@vertaaux/sdk";
121
122
  /**
122
123
  * Audit result structure (matches factory.ts).
123
124
  */
@@ -130,7 +131,7 @@ export interface AuditResult {
130
131
  created_at?: string;
131
132
  started_at?: string;
132
133
  completed_at?: string;
133
- scores?: Record<string, unknown>;
134
+ scores?: AuditScores | Record<string, unknown>;
134
135
  issues?: unknown;
135
136
  error?: string;
136
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sarif.d.ts","sourceRoot":"","sources":["../../src/output/sarif.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sarif.d.ts","sourceRoot":"","sources":["../../src/output/sarif.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Shared type definitions for the VertaaUX CLI.
3
+ * Used by legacy command handlers and utility functions.
4
+ */
5
+ import type { Audit } from "@vertaaux/sdk";
6
+ export type FlagValue = string | boolean;
7
+ export type Flags = Record<string, FlagValue>;
8
+ export type IssueLike = {
9
+ id?: string;
10
+ title?: string;
11
+ severity?: string;
12
+ category?: string;
13
+ description?: string;
14
+ recommendation?: string;
15
+ recommended_fix?: string;
16
+ wcag_reference?: string;
17
+ selector?: string;
18
+ };
19
+ export type AuditResponse = Audit;
20
+ export type PatchResponse = {
21
+ success: boolean;
22
+ patch?: {
23
+ search: string;
24
+ replace: string;
25
+ confidence: {
26
+ label: string;
27
+ percentage: number;
28
+ };
29
+ classification: string;
30
+ explanation: string;
31
+ };
32
+ error?: {
33
+ code: string;
34
+ message: string;
35
+ };
36
+ timing_ms?: number;
37
+ };
38
+ export type BatchPatchResult = {
39
+ successes: Array<{
40
+ issueId: string;
41
+ patch: PatchResponse["patch"];
42
+ }>;
43
+ failures: Array<{
44
+ issueId: string;
45
+ reason: string;
46
+ details?: string;
47
+ }>;
48
+ totalRequested: number;
49
+ totalSkipped: number;
50
+ };
51
+ export type VerifyResponse = {
52
+ success: boolean;
53
+ verification?: {
54
+ issue_fixed: boolean;
55
+ regressions: Array<{
56
+ rule_id: string;
57
+ impact: string;
58
+ description: string;
59
+ }>;
60
+ score_delta: {
61
+ before: number;
62
+ after: number;
63
+ delta: number;
64
+ };
65
+ component_audited: string;
66
+ duration_ms: number;
67
+ error?: string;
68
+ };
69
+ error?: {
70
+ code: string;
71
+ message: string;
72
+ };
73
+ };
74
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AACzC,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAIF,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC;AAElC,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QAClD,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,KAAK,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/B,CAAC,CAAC;IACH,QAAQ,EAAE,KAAK,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE;QACb,WAAW,EAAE,OAAO,CAAC;QACrB,WAAW,EAAE,KAAK,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC;YACf,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC,CAAC;QACH,WAAW,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAC9D,iBAAiB,EAAE,MAAM,CAAC;QAC1B,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Shared type definitions for the VertaaUX CLI.
3
+ * Used by legacy command handlers and utility functions.
4
+ */
5
+ export {};
@@ -3,6 +3,13 @@
3
3
  *
4
4
  * Displays a compact arrow wedge in teal/mint gradient.
5
5
  * Can be suppressed via --quiet, --no-banner, or non-TTY environments.
6
+ *
7
+ * animateBanner() plays a 3-frame entrance animation in TTY+color mode:
8
+ * Frame 1: dim ghost outline (75ms)
9
+ * Frame 2: normal teal/mint colors (75ms)
10
+ * Frame 3: full lime→cyan gradient (100ms hold)
11
+ * Falls back to static showBanner() when --no-color, NO_COLOR, TERM=dumb,
12
+ * or non-TTY.
6
13
  */
7
14
  export interface BannerOptions {
8
15
  /** CLI version to display */
@@ -12,6 +19,33 @@ export interface BannerOptions {
12
19
  /** Whether --no-banner was passed */
13
20
  noBanner?: boolean;
14
21
  }
22
+ /**
23
+ * Frame 1: ghost/dim outline — all lines wrapped in dim().
24
+ * Structure: 5 content lines + "\n\n"
25
+ */
26
+ export declare function buildFrame1(version: string, cwd: string): string;
27
+ /**
28
+ * Frame 2: normal colors — identical to current showBanner() color branch.
29
+ * TEAL art, MINT bold VertaaUX, dim cwd.
30
+ * Structure: 5 content lines + "\n\n"
31
+ */
32
+ export declare function buildFrame2(version: string, cwd: string): string;
33
+ /**
34
+ * Frame 3: full gradient — ARROW_MARK + "VertaaUX" with applyGradient(), dim cwd.
35
+ * Structure: 5 content lines + "\n\n"
36
+ */
37
+ export declare function buildFrame3(version: string, cwd: string): string;
38
+ /**
39
+ * Show the arrow-mark banner with a 3-frame entrance animation.
40
+ *
41
+ * Animation plays only in TTY + color + unicode environments.
42
+ * Falls back to static showBanner() otherwise.
43
+ *
44
+ * All output goes to process.stderr (stdout reserved for --format json).
45
+ *
46
+ * @param options - Banner display options
47
+ */
48
+ export declare function animateBanner(options: BannerOptions): Promise<void>;
15
49
  /**
16
50
  * Show the arrow-mark banner with version and working directory.
17
51
  *
@@ -1 +1 @@
1
- {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/ui/banner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,MAAM,WAAW,aAAa;IAC5B,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CA+BvD;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAOnC"}
1
+ {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/ui/banner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAoCH,MAAM,WAAW,aAAa;IAC5B,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAShE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAUhE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAUhE;AAID;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BzE;AAID;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CA+BvD;AAID;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAOnC"}
package/dist/ui/banner.js CHANGED
@@ -3,10 +3,17 @@
3
3
  *
4
4
  * Displays a compact arrow wedge in teal/mint gradient.
5
5
  * Can be suppressed via --quiet, --no-banner, or non-TTY environments.
6
+ *
7
+ * animateBanner() plays a 3-frame entrance animation in TTY+color mode:
8
+ * Frame 1: dim ghost outline (75ms)
9
+ * Frame 2: normal teal/mint colors (75ms)
10
+ * Frame 3: full lime→cyan gradient (100ms hold)
11
+ * Falls back to static showBanner() when --no-color, NO_COLOR, TERM=dumb,
12
+ * or non-TTY.
6
13
  */
7
- import chalk from "chalk";
14
+ import { colorize, bold, dim, applyGradient, isColorEnabled, isTTY, supportsUnicode, cursor, screen, physicalRows, } from "@vertaaux/tui";
8
15
  import { createRequire } from "module";
9
- import { isTTY, shouldUseColor } from "../utils/detect-env.js";
16
+ import { shouldUseColor } from "../utils/detect-env.js";
10
17
  // For JSON imports in ESM
11
18
  const require = createRequire(import.meta.url);
12
19
  // Arrow-mark ASCII art (compact 5-line wedge matching brand)
@@ -19,6 +26,90 @@ const ARROW_MARK = [
19
26
  ];
20
27
  const TEAL = "#5EE4C4";
21
28
  const MINT = "#90EECE";
29
+ /** Simple sleep helper for animation timing */
30
+ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
31
+ // ── Frame builders (exported for testability) ────────────────────
32
+ /**
33
+ * Frame 1: ghost/dim outline — all lines wrapped in dim().
34
+ * Structure: 5 content lines + "\n\n"
35
+ */
36
+ export function buildFrame1(version, cwd) {
37
+ const lines = [
38
+ `${dim(ARROW_MARK[0])} ${dim(`VertaaUX v${version}`)}`,
39
+ `${dim(ARROW_MARK[1])} ${dim(cwd)}`,
40
+ `${dim(ARROW_MARK[2])}`,
41
+ `${dim(ARROW_MARK[3])}`,
42
+ `${dim(ARROW_MARK[4])}`,
43
+ ];
44
+ return lines.join("\n") + "\n\n";
45
+ }
46
+ /**
47
+ * Frame 2: normal colors — identical to current showBanner() color branch.
48
+ * TEAL art, MINT bold VertaaUX, dim cwd.
49
+ * Structure: 5 content lines + "\n\n"
50
+ */
51
+ export function buildFrame2(version, cwd) {
52
+ const logo = ARROW_MARK.map((line) => colorize(line, TEAL));
53
+ const lines = [
54
+ `${logo[0]} ${bold(colorize("VertaaUX", MINT))} v${version}`,
55
+ `${logo[1]} ${dim(cwd)}`,
56
+ `${logo[2]}`,
57
+ `${logo[3]}`,
58
+ `${logo[4]}`,
59
+ ];
60
+ return lines.join("\n") + "\n\n";
61
+ }
62
+ /**
63
+ * Frame 3: full gradient — ARROW_MARK + "VertaaUX" with applyGradient(), dim cwd.
64
+ * Structure: 5 content lines + "\n\n"
65
+ */
66
+ export function buildFrame3(version, cwd) {
67
+ const logo = ARROW_MARK.map((line) => applyGradient(line));
68
+ const lines = [
69
+ `${logo[0]} ${bold(applyGradient("VertaaUX"))} v${version}`,
70
+ `${logo[1]} ${dim(cwd)}`,
71
+ `${logo[2]}`,
72
+ `${logo[3]}`,
73
+ `${logo[4]}`,
74
+ ];
75
+ return lines.join("\n") + "\n\n";
76
+ }
77
+ // ── Animated banner ──────────────────────────────────────────────
78
+ /**
79
+ * Show the arrow-mark banner with a 3-frame entrance animation.
80
+ *
81
+ * Animation plays only in TTY + color + unicode environments.
82
+ * Falls back to static showBanner() otherwise.
83
+ *
84
+ * All output goes to process.stderr (stdout reserved for --format json).
85
+ *
86
+ * @param options - Banner display options
87
+ */
88
+ export async function animateBanner(options) {
89
+ const { version, quiet = false, noBanner = false } = options;
90
+ // Static fallback: suppressed modes, non-TTY, no-color, dumb terminal
91
+ if (quiet || noBanner || !isTTY() || !isColorEnabled() || !supportsUnicode()) {
92
+ showBanner(options);
93
+ return;
94
+ }
95
+ const cwd = process.cwd();
96
+ const termWidth = process.stderr.columns || 80;
97
+ // Frame 1: dim ghost
98
+ const f1 = buildFrame1(version, cwd);
99
+ process.stderr.write(f1);
100
+ await sleep(75);
101
+ // Frame 2: normal colors (overwrite in-place)
102
+ const rows1 = physicalRows(f1, termWidth);
103
+ const f2 = buildFrame2(version, cwd);
104
+ process.stderr.write(cursor.up(rows1) + screen.clearDown + f2);
105
+ await sleep(75);
106
+ // Frame 3: full gradient (overwrite in-place, hold 100ms)
107
+ const rows2 = physicalRows(f2, termWidth);
108
+ const f3 = buildFrame3(version, cwd);
109
+ process.stderr.write(cursor.up(rows2) + screen.clearDown + f3);
110
+ await sleep(100);
111
+ }
112
+ // ── Static banner ────────────────────────────────────────────────
22
113
  /**
23
114
  * Show the arrow-mark banner with version and working directory.
24
115
  *
@@ -38,10 +129,10 @@ export function showBanner(options) {
38
129
  const useColor = shouldUseColor();
39
130
  const cwd = process.cwd();
40
131
  if (useColor) {
41
- const logo = ARROW_MARK.map((line) => chalk.hex(TEAL)(line));
132
+ const logo = ARROW_MARK.map((line) => colorize(line, TEAL));
42
133
  const lines = [
43
- `${logo[0]} ${chalk.hex(MINT).bold("VertaaUX")} v${version}`,
44
- `${logo[1]} ${chalk.dim(cwd)}`,
134
+ `${logo[0]} ${bold(colorize("VertaaUX", MINT))} v${version}`,
135
+ `${logo[1]} ${dim(cwd)}`,
45
136
  `${logo[2]}`,
46
137
  `${logo[3]}`,
47
138
  `${logo[4]}`,
@@ -59,6 +150,7 @@ export function showBanner(options) {
59
150
  process.stderr.write(lines.join("\n") + "\n\n");
60
151
  }
61
152
  }
153
+ // ── Version helper ───────────────────────────────────────────────
62
154
  /**
63
155
  * Get version from package.json.
64
156
  * Falls back to "0.0.0" if unable to read.
@@ -6,6 +6,9 @@
6
6
  *
7
7
  * Integrates with Commander's configureOutput({ outputError }) hook
8
8
  * to intercept and restyle all validation and argument errors.
9
+ *
10
+ * Delegates to renderError/renderWarning from @vertaaux/tui for
11
+ * consistent branded output across all error surfaces.
9
12
  */
10
13
  export interface ValidationErrorOptions {
11
14
  flag: string;
@@ -19,8 +22,10 @@ export interface ValidationErrorOptions {
19
22
  /**
20
23
  * Format a validation error with branded styling.
21
24
  *
22
- * Rich mode (TTY + color): Box-drawn frame with Unicode chars, brand colors.
23
- * Plain mode (non-TTY/NO_COLOR/CI): Structured indented text, no decorations.
25
+ * Delegates to renderError() from @vertaaux/tui for the box border,
26
+ * then appends flag/value details as context lines.
27
+ *
28
+ * Plain mode is evaluated at call time (isPlainMode() inside renderError).
24
29
  */
25
30
  export declare function formatValidationError(opts: ValidationErrorOptions): string;
26
31
  /**
@@ -28,12 +33,12 @@ export declare function formatValidationError(opts: ValidationErrorOptions): str
28
33
  *
29
34
  * Commander passes raw error strings to configureOutput({ outputError }).
30
35
  * This function parses them to extract flag/value information and applies
31
- * branded formatting.
36
+ * branded formatting via renderError().
32
37
  *
33
38
  * InvalidArgumentError pattern:
34
39
  * "error: option '--flag <arg>' argument 'value' is invalid. Detail"
35
40
  *
36
- * Other Commander errors (missing required, etc.) get branded prefix.
41
+ * Other Commander errors (missing required, etc.) get renderError treatment.
37
42
  */
38
43
  export declare function formatCommanderError(rawMessage: string): string;
39
44
  //# sourceMappingURL=diagnostics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/ui/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoCH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,CAK1E;AA8ED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CA+C/D"}
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/ui/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA8BH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,CAgC1E;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAsC/D"}
@@ -6,96 +6,54 @@
6
6
  *
7
7
  * Integrates with Commander's configureOutput({ outputError }) hook
8
8
  * to intercept and restyle all validation and argument errors.
9
+ *
10
+ * Delegates to renderError/renderWarning from @vertaaux/tui for
11
+ * consistent branded output across all error surfaces.
9
12
  */
10
- import chalk from "chalk";
11
- import { shouldUseColor, isTTY, getTerminalWidth, } from "../utils/detect-env.js";
12
- // ---------------------------------------------------------------------------
13
- // Brand colors (matching banner.ts gradient)
14
- // ---------------------------------------------------------------------------
15
- const BRAND_ACCENT = "#78FFB4"; // Lime
16
- const ERROR_COLOR = "#FF6B6B"; // Red
17
- const HINT_COLOR = "#78FFB4"; // Brand lime for hints/suggestions
13
+ import { dim, isPlainMode, renderError, } from "@vertaaux/tui";
18
14
  // ---------------------------------------------------------------------------
19
15
  // Terminal capability detection
20
16
  // ---------------------------------------------------------------------------
21
17
  /**
22
18
  * Determine if box-drawing characters and colors can be used.
23
- * Returns false for dumb terminals, NO_COLOR, non-TTY, and CI.
19
+ * Returns false in plain mode (ASCII-only output).
24
20
  */
25
21
  function canUseBoxDrawing() {
26
- if (process.env.TERM === "dumb")
27
- return false;
28
- if (!shouldUseColor())
29
- return false;
30
- if (!isTTY())
31
- return false;
32
- return true;
22
+ return !isPlainMode();
33
23
  }
34
24
  /**
35
25
  * Format a validation error with branded styling.
36
26
  *
37
- * Rich mode (TTY + color): Box-drawn frame with Unicode chars, brand colors.
38
- * Plain mode (non-TTY/NO_COLOR/CI): Structured indented text, no decorations.
27
+ * Delegates to renderError() from @vertaaux/tui for the box border,
28
+ * then appends flag/value details as context lines.
29
+ *
30
+ * Plain mode is evaluated at call time (isPlainMode() inside renderError).
39
31
  */
40
32
  export function formatValidationError(opts) {
41
- if (canUseBoxDrawing()) {
42
- return boxDrawnError(opts);
43
- }
44
- return plainTextError(opts);
45
- }
46
- /**
47
- * Rich box-drawn error frame for TTY terminals with color support.
48
- */
49
- function boxDrawnError(opts) {
50
- const width = Math.min(getTerminalWidth(), 72);
51
- const prefix = chalk.hex(BRAND_ACCENT).bold("vertaa");
52
- const border = chalk.dim(" " + "\u2500".repeat(width - 4));
53
- const pipe = chalk.dim(" \u2502");
54
- const lines = [
55
- `${prefix} ${chalk.hex(ERROR_COLOR).bold("error")}: ${opts.message}`,
56
- border,
57
- `${pipe} ${chalk.dim("flag:")} --${opts.flag}`,
58
- `${pipe} ${chalk.dim("value:")} ${chalk.yellow(opts.value)}`,
33
+ // Build a rich context string with flag + value details
34
+ const contextParts = [
35
+ `flag: --${opts.flag}`,
36
+ `value: ${opts.value}`,
59
37
  ];
60
38
  if (opts.suggestion) {
61
- lines.push(pipe);
62
- lines.push(`${pipe} ${chalk.hex(HINT_COLOR)("hint:")} Did you mean "${opts.suggestion}"?`);
39
+ contextParts.push(`hint: Did you mean "${opts.suggestion}"?`);
63
40
  }
64
41
  if (opts.validValues && opts.validValues.length > 0) {
65
- lines.push(`${pipe} ${chalk.dim("valid:")} ${chalk.dim(opts.validValues.join(", "))}`);
42
+ contextParts.push(`valid: ${opts.validValues.join(", ")}`);
66
43
  }
67
44
  if (opts.hint) {
68
- lines.push(pipe);
69
- lines.push(`${pipe} ${chalk.dim(opts.hint)}`);
45
+ contextParts.push(opts.hint);
70
46
  }
71
- lines.push(border);
47
+ const context = contextParts.join("\n");
48
+ const base = renderError({
49
+ message: opts.message,
50
+ context,
51
+ suggestion: "vertaa <command> --help for all options",
52
+ });
72
53
  if (opts.moreIssues && opts.moreIssues > 0) {
73
- lines.push(chalk.dim(` ...and ${opts.moreIssues} more issues`));
54
+ return base + "\n" + dim(` ...and ${opts.moreIssues} more issues`);
74
55
  }
75
- return lines.join("\n");
76
- }
77
- /**
78
- * Plain text error for non-TTY, NO_COLOR, CI, or TERM=dumb environments.
79
- */
80
- function plainTextError(opts) {
81
- const lines = [
82
- `error: ${opts.message}`,
83
- ` flag: --${opts.flag}`,
84
- ` value: ${opts.value}`,
85
- ];
86
- if (opts.suggestion) {
87
- lines.push(` hint: Did you mean "${opts.suggestion}"?`);
88
- }
89
- if (opts.validValues && opts.validValues.length > 0) {
90
- lines.push(` valid: ${opts.validValues.join(", ")}`);
91
- }
92
- if (opts.hint) {
93
- lines.push(` ${opts.hint}`);
94
- }
95
- if (opts.moreIssues && opts.moreIssues > 0) {
96
- lines.push(` ...and ${opts.moreIssues} more issues`);
97
- }
98
- return lines.join("\n");
56
+ return base;
99
57
  }
100
58
  // ---------------------------------------------------------------------------
101
59
  // Commander error formatting
@@ -105,12 +63,12 @@ function plainTextError(opts) {
105
63
  *
106
64
  * Commander passes raw error strings to configureOutput({ outputError }).
107
65
  * This function parses them to extract flag/value information and applies
108
- * branded formatting.
66
+ * branded formatting via renderError().
109
67
  *
110
68
  * InvalidArgumentError pattern:
111
69
  * "error: option '--flag <arg>' argument 'value' is invalid. Detail"
112
70
  *
113
- * Other Commander errors (missing required, etc.) get branded prefix.
71
+ * Other Commander errors (missing required, etc.) get renderError treatment.
114
72
  */
115
73
  export function formatCommanderError(rawMessage) {
116
74
  // Strip leading "error: " prefix that Commander adds
@@ -137,17 +95,9 @@ export function formatCommanderError(rawMessage) {
137
95
  hint: "Run vertaa <command> --help for all options",
138
96
  });
139
97
  }
140
- // For other Commander errors: branded prefix with help hint
141
- if (canUseBoxDrawing()) {
142
- const prefix = chalk.hex(BRAND_ACCENT).bold("vertaa");
143
- const errorLabel = chalk.hex(ERROR_COLOR).bold("error");
144
- return [
145
- `${prefix} ${errorLabel}: ${msg}`,
146
- chalk.dim(" Run vertaa <command> --help for all options"),
147
- ].join("\n");
148
- }
149
- return [
150
- `vertaa error: ${msg}`,
151
- " Run vertaa <command> --help for all options",
152
- ].join("\n");
98
+ // For other Commander errors: use renderError with a help suggestion
99
+ return renderError({
100
+ message: msg,
101
+ suggestion: "vertaa <command> --help for all options",
102
+ });
153
103
  }