@oalacea/daemon 0.6.4 → 0.7.1

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 (286) hide show
  1. package/README.md +268 -58
  2. package/bin/Dockerfile +158 -16
  3. package/bin/docker-entrypoint.sh +293 -0
  4. package/dist/cli/cli.d.ts.map +1 -1
  5. package/dist/cli/cli.js +22 -2
  6. package/dist/cli/cli.js.map +1 -1
  7. package/dist/cli/commands/command.types.d.ts +216 -0
  8. package/dist/cli/commands/command.types.d.ts.map +1 -0
  9. package/dist/cli/commands/command.types.js +64 -0
  10. package/dist/cli/commands/command.types.js.map +1 -0
  11. package/dist/cli/commands/history.command.d.ts +91 -0
  12. package/dist/cli/commands/history.command.d.ts.map +1 -0
  13. package/dist/cli/commands/history.command.js +336 -0
  14. package/dist/cli/commands/history.command.js.map +1 -0
  15. package/dist/cli/commands/index.d.ts +14 -3
  16. package/dist/cli/commands/index.d.ts.map +1 -1
  17. package/dist/cli/commands/index.js +7 -0
  18. package/dist/cli/commands/index.js.map +1 -1
  19. package/dist/cli/commands/optimize.command.d.ts +110 -0
  20. package/dist/cli/commands/optimize.command.d.ts.map +1 -0
  21. package/dist/cli/commands/optimize.command.js +497 -0
  22. package/dist/cli/commands/optimize.command.js.map +1 -0
  23. package/dist/cli/commands/report.command.d.ts +110 -0
  24. package/dist/cli/commands/report.command.d.ts.map +1 -0
  25. package/dist/cli/commands/report.command.js +532 -0
  26. package/dist/cli/commands/report.command.js.map +1 -0
  27. package/dist/cli/commands/review.command.d.ts +110 -0
  28. package/dist/cli/commands/review.command.d.ts.map +1 -0
  29. package/dist/cli/commands/review.command.js +520 -0
  30. package/dist/cli/commands/review.command.js.map +1 -0
  31. package/dist/cli/commands/score.command.d.ts +47 -0
  32. package/dist/cli/commands/score.command.d.ts.map +1 -0
  33. package/dist/cli/commands/score.command.js +261 -0
  34. package/dist/cli/commands/score.command.js.map +1 -0
  35. package/dist/cli/utils/index.d.ts +10 -0
  36. package/dist/cli/utils/index.d.ts.map +1 -0
  37. package/dist/cli/utils/index.js +10 -0
  38. package/dist/cli/utils/index.js.map +1 -0
  39. package/dist/cli/utils/output.d.ts +192 -0
  40. package/dist/cli/utils/output.d.ts.map +1 -0
  41. package/dist/cli/utils/output.js +411 -0
  42. package/dist/cli/utils/output.js.map +1 -0
  43. package/dist/cli/utils/progress.d.ts +204 -0
  44. package/dist/cli/utils/progress.d.ts.map +1 -0
  45. package/dist/cli/utils/progress.js +396 -0
  46. package/dist/cli/utils/progress.js.map +1 -0
  47. package/dist/core/types/index.d.ts +1 -0
  48. package/dist/core/types/index.d.ts.map +1 -1
  49. package/dist/core/types/project.types.d.ts +3 -3
  50. package/dist/core/types/project.types.d.ts.map +1 -1
  51. package/dist/core/types/scoring.types.d.ts +301 -0
  52. package/dist/core/types/scoring.types.d.ts.map +1 -0
  53. package/dist/core/types/scoring.types.js +8 -0
  54. package/dist/core/types/scoring.types.js.map +1 -0
  55. package/dist/services/detection/framework-detector.d.ts.map +1 -1
  56. package/dist/services/detection/framework-detector.js +74 -5
  57. package/dist/services/detection/framework-detector.js.map +1 -1
  58. package/dist/services/index.d.ts +12 -0
  59. package/dist/services/index.d.ts.map +1 -1
  60. package/dist/services/index.js +14 -0
  61. package/dist/services/index.js.map +1 -1
  62. package/dist/services/optimization/detectors/bug-detector.d.ts +82 -0
  63. package/dist/services/optimization/detectors/bug-detector.d.ts.map +1 -0
  64. package/dist/services/optimization/detectors/bug-detector.js +443 -0
  65. package/dist/services/optimization/detectors/bug-detector.js.map +1 -0
  66. package/dist/services/optimization/detectors/code-smell-detector.d.ts +108 -0
  67. package/dist/services/optimization/detectors/code-smell-detector.d.ts.map +1 -0
  68. package/dist/services/optimization/detectors/code-smell-detector.js +569 -0
  69. package/dist/services/optimization/detectors/code-smell-detector.js.map +1 -0
  70. package/dist/services/optimization/detectors/index.d.ts +7 -0
  71. package/dist/services/optimization/detectors/index.d.ts.map +1 -0
  72. package/dist/services/optimization/detectors/index.js +7 -0
  73. package/dist/services/optimization/detectors/index.js.map +1 -0
  74. package/dist/services/optimization/detectors/perf-detector.d.ts +80 -0
  75. package/dist/services/optimization/detectors/perf-detector.d.ts.map +1 -0
  76. package/dist/services/optimization/detectors/perf-detector.js +451 -0
  77. package/dist/services/optimization/detectors/perf-detector.js.map +1 -0
  78. package/dist/services/optimization/index.d.ts +61 -0
  79. package/dist/services/optimization/index.d.ts.map +1 -0
  80. package/dist/services/optimization/index.js +69 -0
  81. package/dist/services/optimization/index.js.map +1 -0
  82. package/dist/services/optimization/optimization.service.d.ts +65 -0
  83. package/dist/services/optimization/optimization.service.d.ts.map +1 -0
  84. package/dist/services/optimization/optimization.service.js +511 -0
  85. package/dist/services/optimization/optimization.service.js.map +1 -0
  86. package/dist/services/optimization/optimization.types.d.ts +343 -0
  87. package/dist/services/optimization/optimization.types.d.ts.map +1 -0
  88. package/dist/services/optimization/optimization.types.js +8 -0
  89. package/dist/services/optimization/optimization.types.js.map +1 -0
  90. package/dist/services/optimization/optimizers/code-optimizer.d.ts +87 -0
  91. package/dist/services/optimization/optimizers/code-optimizer.d.ts.map +1 -0
  92. package/dist/services/optimization/optimizers/code-optimizer.js +436 -0
  93. package/dist/services/optimization/optimizers/code-optimizer.js.map +1 -0
  94. package/dist/services/optimization/optimizers/index.d.ts +7 -0
  95. package/dist/services/optimization/optimizers/index.d.ts.map +1 -0
  96. package/dist/services/optimization/optimizers/index.js +7 -0
  97. package/dist/services/optimization/optimizers/index.js.map +1 -0
  98. package/dist/services/optimization/optimizers/perf-optimizer.d.ts +64 -0
  99. package/dist/services/optimization/optimizers/perf-optimizer.d.ts.map +1 -0
  100. package/dist/services/optimization/optimizers/perf-optimizer.js +330 -0
  101. package/dist/services/optimization/optimizers/perf-optimizer.js.map +1 -0
  102. package/dist/services/optimization/optimizers/refact-optimizer.d.ts +82 -0
  103. package/dist/services/optimization/optimizers/refact-optimizer.d.ts.map +1 -0
  104. package/dist/services/optimization/optimizers/refact-optimizer.js +354 -0
  105. package/dist/services/optimization/optimizers/refact-optimizer.js.map +1 -0
  106. package/dist/services/optimization/patterns/anti-patterns.d.ts +31 -0
  107. package/dist/services/optimization/patterns/anti-patterns.d.ts.map +1 -0
  108. package/dist/services/optimization/patterns/anti-patterns.js +501 -0
  109. package/dist/services/optimization/patterns/anti-patterns.js.map +1 -0
  110. package/dist/services/optimization/patterns/index.d.ts +5 -0
  111. package/dist/services/optimization/patterns/index.d.ts.map +1 -0
  112. package/dist/services/optimization/patterns/index.js +5 -0
  113. package/dist/services/optimization/patterns/index.js.map +1 -0
  114. package/dist/services/reporting/export/chart.exporter.d.ts +59 -0
  115. package/dist/services/reporting/export/chart.exporter.d.ts.map +1 -0
  116. package/dist/services/reporting/export/chart.exporter.js +350 -0
  117. package/dist/services/reporting/export/chart.exporter.js.map +1 -0
  118. package/dist/services/reporting/export/index.d.ts +9 -0
  119. package/dist/services/reporting/export/index.d.ts.map +1 -0
  120. package/dist/services/reporting/export/index.js +10 -0
  121. package/dist/services/reporting/export/index.js.map +1 -0
  122. package/dist/services/reporting/export/pdf.exporter.d.ts +133 -0
  123. package/dist/services/reporting/export/pdf.exporter.d.ts.map +1 -0
  124. package/dist/services/reporting/export/pdf.exporter.js +270 -0
  125. package/dist/services/reporting/export/pdf.exporter.js.map +1 -0
  126. package/dist/services/reporting/history.service.d.ts +93 -0
  127. package/dist/services/reporting/history.service.d.ts.map +1 -0
  128. package/dist/services/reporting/history.service.js +285 -0
  129. package/dist/services/reporting/history.service.js.map +1 -0
  130. package/dist/services/reporting/index.d.ts +15 -0
  131. package/dist/services/reporting/index.d.ts.map +1 -0
  132. package/dist/services/reporting/index.js +16 -0
  133. package/dist/services/reporting/index.js.map +1 -0
  134. package/dist/services/reporting/report.service.d.ts +102 -0
  135. package/dist/services/reporting/report.service.d.ts.map +1 -0
  136. package/dist/services/reporting/report.service.js +240 -0
  137. package/dist/services/reporting/report.service.js.map +1 -0
  138. package/dist/services/reporting/reporting.types.d.ts +329 -0
  139. package/dist/services/reporting/reporting.types.d.ts.map +1 -0
  140. package/dist/services/reporting/reporting.types.js +8 -0
  141. package/dist/services/reporting/reporting.types.js.map +1 -0
  142. package/dist/services/reporting/templates/html.template.d.ts +81 -0
  143. package/dist/services/reporting/templates/html.template.d.ts.map +1 -0
  144. package/dist/services/reporting/templates/html.template.js +741 -0
  145. package/dist/services/reporting/templates/html.template.js.map +1 -0
  146. package/dist/services/reporting/templates/json.template.d.ts +85 -0
  147. package/dist/services/reporting/templates/json.template.d.ts.map +1 -0
  148. package/dist/services/reporting/templates/json.template.js +308 -0
  149. package/dist/services/reporting/templates/json.template.js.map +1 -0
  150. package/dist/services/reporting/templates/markdown.template.d.ts +69 -0
  151. package/dist/services/reporting/templates/markdown.template.d.ts.map +1 -0
  152. package/dist/services/reporting/templates/markdown.template.js +311 -0
  153. package/dist/services/reporting/templates/markdown.template.js.map +1 -0
  154. package/dist/services/reporting/trend-analyzer.d.ts +73 -0
  155. package/dist/services/reporting/trend-analyzer.d.ts.map +1 -0
  156. package/dist/services/reporting/trend-analyzer.js +291 -0
  157. package/dist/services/reporting/trend-analyzer.js.map +1 -0
  158. package/dist/services/review/analyzers/dependency-analyzer.d.ts +87 -0
  159. package/dist/services/review/analyzers/dependency-analyzer.d.ts.map +1 -0
  160. package/dist/services/review/analyzers/dependency-analyzer.js +458 -0
  161. package/dist/services/review/analyzers/dependency-analyzer.js.map +1 -0
  162. package/dist/services/review/analyzers/index.d.ts +13 -0
  163. package/dist/services/review/analyzers/index.d.ts.map +1 -0
  164. package/dist/services/review/analyzers/index.js +13 -0
  165. package/dist/services/review/analyzers/index.js.map +1 -0
  166. package/dist/services/review/analyzers/nestjs-analyzer.d.ts +210 -0
  167. package/dist/services/review/analyzers/nestjs-analyzer.d.ts.map +1 -0
  168. package/dist/services/review/analyzers/nestjs-analyzer.js +571 -0
  169. package/dist/services/review/analyzers/nestjs-analyzer.js.map +1 -0
  170. package/dist/services/review/analyzers/performance-analyzer.d.ts +91 -0
  171. package/dist/services/review/analyzers/performance-analyzer.d.ts.map +1 -0
  172. package/dist/services/review/analyzers/performance-analyzer.js +589 -0
  173. package/dist/services/review/analyzers/performance-analyzer.js.map +1 -0
  174. package/dist/services/review/analyzers/security-analyzer.d.ts +96 -0
  175. package/dist/services/review/analyzers/security-analyzer.d.ts.map +1 -0
  176. package/dist/services/review/analyzers/security-analyzer.js +512 -0
  177. package/dist/services/review/analyzers/security-analyzer.js.map +1 -0
  178. package/dist/services/review/analyzers/static-analyzer.d.ts +90 -0
  179. package/dist/services/review/analyzers/static-analyzer.d.ts.map +1 -0
  180. package/dist/services/review/analyzers/static-analyzer.js +423 -0
  181. package/dist/services/review/analyzers/static-analyzer.js.map +1 -0
  182. package/dist/services/review/fixers/auto-fixer.d.ts +94 -0
  183. package/dist/services/review/fixers/auto-fixer.d.ts.map +1 -0
  184. package/dist/services/review/fixers/auto-fixer.js +404 -0
  185. package/dist/services/review/fixers/auto-fixer.js.map +1 -0
  186. package/dist/services/review/fixers/index.d.ts +11 -0
  187. package/dist/services/review/fixers/index.d.ts.map +1 -0
  188. package/dist/services/review/fixers/index.js +11 -0
  189. package/dist/services/review/fixers/index.js.map +1 -0
  190. package/dist/services/review/fixers/refactor-suggester.d.ts +100 -0
  191. package/dist/services/review/fixers/refactor-suggester.d.ts.map +1 -0
  192. package/dist/services/review/fixers/refactor-suggester.js +555 -0
  193. package/dist/services/review/fixers/refactor-suggester.js.map +1 -0
  194. package/dist/services/review/fixers/test-generator.d.ts +99 -0
  195. package/dist/services/review/fixers/test-generator.d.ts.map +1 -0
  196. package/dist/services/review/fixers/test-generator.js +458 -0
  197. package/dist/services/review/fixers/test-generator.js.map +1 -0
  198. package/dist/services/review/index.d.ts +14 -0
  199. package/dist/services/review/index.d.ts.map +1 -0
  200. package/dist/services/review/index.js +14 -0
  201. package/dist/services/review/index.js.map +1 -0
  202. package/dist/services/review/reporters/fix-reporter.d.ts +67 -0
  203. package/dist/services/review/reporters/fix-reporter.d.ts.map +1 -0
  204. package/dist/services/review/reporters/fix-reporter.js +437 -0
  205. package/dist/services/review/reporters/fix-reporter.js.map +1 -0
  206. package/dist/services/review/reporters/index.d.ts +10 -0
  207. package/dist/services/review/reporters/index.d.ts.map +1 -0
  208. package/dist/services/review/reporters/index.js +10 -0
  209. package/dist/services/review/reporters/index.js.map +1 -0
  210. package/dist/services/review/reporters/score-reporter.d.ts +84 -0
  211. package/dist/services/review/reporters/score-reporter.d.ts.map +1 -0
  212. package/dist/services/review/reporters/score-reporter.js +560 -0
  213. package/dist/services/review/reporters/score-reporter.js.map +1 -0
  214. package/dist/services/review/review.service.d.ts +129 -0
  215. package/dist/services/review/review.service.d.ts.map +1 -0
  216. package/dist/services/review/review.service.js +396 -0
  217. package/dist/services/review/review.service.js.map +1 -0
  218. package/dist/services/review/review.types.d.ts +443 -0
  219. package/dist/services/review/review.types.d.ts.map +1 -0
  220. package/dist/services/review/review.types.js +11 -0
  221. package/dist/services/review/review.types.js.map +1 -0
  222. package/dist/services/scoring/dimensions/accessibility.analyzer.d.ts +53 -0
  223. package/dist/services/scoring/dimensions/accessibility.analyzer.d.ts.map +1 -0
  224. package/dist/services/scoring/dimensions/accessibility.analyzer.js +260 -0
  225. package/dist/services/scoring/dimensions/accessibility.analyzer.js.map +1 -0
  226. package/dist/services/scoring/dimensions/backend-logic.analyzer.d.ts +138 -0
  227. package/dist/services/scoring/dimensions/backend-logic.analyzer.d.ts.map +1 -0
  228. package/dist/services/scoring/dimensions/backend-logic.analyzer.js +713 -0
  229. package/dist/services/scoring/dimensions/backend-logic.analyzer.js.map +1 -0
  230. package/dist/services/scoring/dimensions/business-logic.analyzer.d.ts +142 -0
  231. package/dist/services/scoring/dimensions/business-logic.analyzer.d.ts.map +1 -0
  232. package/dist/services/scoring/dimensions/business-logic.analyzer.js +747 -0
  233. package/dist/services/scoring/dimensions/business-logic.analyzer.js.map +1 -0
  234. package/dist/services/scoring/dimensions/code-quality.analyzer.d.ts +142 -0
  235. package/dist/services/scoring/dimensions/code-quality.analyzer.d.ts.map +1 -0
  236. package/dist/services/scoring/dimensions/code-quality.analyzer.js +685 -0
  237. package/dist/services/scoring/dimensions/code-quality.analyzer.js.map +1 -0
  238. package/dist/services/scoring/dimensions/index.d.ts +18 -0
  239. package/dist/services/scoring/dimensions/index.d.ts.map +1 -0
  240. package/dist/services/scoring/dimensions/index.js +27 -0
  241. package/dist/services/scoring/dimensions/index.js.map +1 -0
  242. package/dist/services/scoring/dimensions/performance.analyzer.d.ts +125 -0
  243. package/dist/services/scoring/dimensions/performance.analyzer.d.ts.map +1 -0
  244. package/dist/services/scoring/dimensions/performance.analyzer.js +615 -0
  245. package/dist/services/scoring/dimensions/performance.analyzer.js.map +1 -0
  246. package/dist/services/scoring/dimensions/security.analyzer.d.ts +53 -0
  247. package/dist/services/scoring/dimensions/security.analyzer.d.ts.map +1 -0
  248. package/dist/services/scoring/dimensions/security.analyzer.js +327 -0
  249. package/dist/services/scoring/dimensions/security.analyzer.js.map +1 -0
  250. package/dist/services/scoring/dimensions/seo.analyzer.d.ts +77 -0
  251. package/dist/services/scoring/dimensions/seo.analyzer.d.ts.map +1 -0
  252. package/dist/services/scoring/dimensions/seo.analyzer.js +502 -0
  253. package/dist/services/scoring/dimensions/seo.analyzer.js.map +1 -0
  254. package/dist/services/scoring/dimensions/test-coverage.analyzer.d.ts +106 -0
  255. package/dist/services/scoring/dimensions/test-coverage.analyzer.d.ts.map +1 -0
  256. package/dist/services/scoring/dimensions/test-coverage.analyzer.js +496 -0
  257. package/dist/services/scoring/dimensions/test-coverage.analyzer.js.map +1 -0
  258. package/dist/services/scoring/dimensions/ui-ux.analyzer.d.ts +126 -0
  259. package/dist/services/scoring/dimensions/ui-ux.analyzer.d.ts.map +1 -0
  260. package/dist/services/scoring/dimensions/ui-ux.analyzer.js +665 -0
  261. package/dist/services/scoring/dimensions/ui-ux.analyzer.js.map +1 -0
  262. package/dist/services/scoring/index.d.ts +10 -0
  263. package/dist/services/scoring/index.d.ts.map +1 -0
  264. package/dist/services/scoring/index.js +10 -0
  265. package/dist/services/scoring/index.js.map +1 -0
  266. package/dist/services/scoring/scoring-service.d.ts +222 -0
  267. package/dist/services/scoring/scoring-service.d.ts.map +1 -0
  268. package/dist/services/scoring/scoring-service.js +636 -0
  269. package/dist/services/scoring/scoring-service.js.map +1 -0
  270. package/package.json +13 -4
  271. package/templates/README.md +183 -0
  272. package/templates/nestjs/controller.spec.ts +203 -0
  273. package/templates/nestjs/e2e/api.e2e-spec.ts +451 -0
  274. package/templates/nestjs/e2e/auth.e2e-spec.ts +533 -0
  275. package/templates/nestjs/fixtures/test-module.ts +311 -0
  276. package/templates/nestjs/guard.spec.ts +314 -0
  277. package/templates/nestjs/interceptor.spec.ts +458 -0
  278. package/templates/nestjs/module.spec.ts +173 -0
  279. package/templates/nestjs/pipe.spec.ts +474 -0
  280. package/templates/nestjs/service.spec.ts +296 -0
  281. package/templates/rust/Cargo.toml +72 -0
  282. package/templates/rust/actix-controller.test.rs +114 -0
  283. package/templates/rust/axum-handler.test.rs +117 -0
  284. package/templates/rust/integration.test.rs +63 -0
  285. package/templates/rust/rocket-route.test.rs +106 -0
  286. package/templates/rust/unit.test.rs +38 -0
@@ -0,0 +1,293 @@
1
+ #!/usr/bin/env bash
2
+ # Daemon Docker Container Entrypoint v0.7.0
3
+ # This script handles container initialization, environment setup, and cleanup
4
+
5
+ set -e
6
+
7
+ # ============================================================================
8
+ # COLORS FOR OUTPUT
9
+ # ============================================================================
10
+ export RED='\033[0;31m'
11
+ export GREEN='\033[0;32m'
12
+ export YELLOW='\033[1;33m'
13
+ export BLUE='\033[0;34m'
14
+ export PURPLE='\033[0;35m'
15
+ export CYAN='\033[0;36m'
16
+ export NC='\033[0m' # No Color
17
+
18
+ # ============================================================================
19
+ # BANNER
20
+ # ============================================================================
21
+ print_banner() {
22
+ cat << "EOF"
23
+ ╔═══════════════════════════════════════════════════════════╗
24
+ ║ ║
25
+ ║ ███╗ ██╗███████╗██╗ ██╗██╗ ██╗███████╗ ║
26
+ ║ ████╗ ██║██╔════╝╚██╗██╔╝██║ ██║██╔════╝ ║
27
+ ║ ██╔██╗ ██║█████╗ ╚███╔╝ ██║ ██║███████╗ ║
28
+ ║ ██║╚██╗██║██╔══╝ ██╔██╗ ██║ ██║╚════██║ ║
29
+ ║ ██║ ╚████║███████╗██╔╝ ██╗╚██████╔╝███████║ ║
30
+ ║ ╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝ ║
31
+ ║ ║
32
+ ║ v0.7.0 - Testing Suite ║
33
+ ║ ║
34
+ ╚═══════════════════════════════════════════════════════════╝
35
+ EOF
36
+ }
37
+
38
+ # ============================================================================
39
+ # LOGGING FUNCTIONS
40
+ # ============================================================================
41
+ log_info() {
42
+ echo -e "${BLUE}[INFO]${NC} $1"
43
+ }
44
+
45
+ log_success() {
46
+ echo -e "${GREEN}[SUCCESS]${NC} $1"
47
+ }
48
+
49
+ log_warning() {
50
+ echo -e "${YELLOW}[WARNING]${NC} $1"
51
+ }
52
+
53
+ log_error() {
54
+ echo -e "${RED}[ERROR]${NC} $1"
55
+ }
56
+
57
+ log_tool() {
58
+ echo -e "${CYAN}[TOOL]${NC} $1"
59
+ }
60
+
61
+ # ============================================================================
62
+ # ENVIRONMENT SETUP
63
+ # ============================================================================
64
+ setup_environment() {
65
+ log_info "Setting up environment..."
66
+
67
+ # Set timezone if specified
68
+ if [ -n "${TZ}" ]; then
69
+ export TZ="${TZ}"
70
+ log_info "Timezone set to ${TZ}"
71
+ fi
72
+
73
+ # Ensure Rust is in PATH
74
+ if [ -d "/usr/local/cargo/bin" ]; then
75
+ export PATH="/usr/local/cargo/bin:${PATH}"
76
+ log_success "Rust toolchain configured"
77
+ fi
78
+
79
+ # Create working directory if it doesn't exist
80
+ mkdir -p /app/{logs,reports,temp}
81
+
82
+ # Set Node environment
83
+ export NODE_ENV="${NODE_ENV:-development}"
84
+
85
+ log_success "Environment setup complete"
86
+ }
87
+
88
+ # ============================================================================
89
+ # TOOL VERSION DISPLAY
90
+ # ============================================================================
91
+ show_versions() {
92
+ log_info "Installed tools:"
93
+ echo ""
94
+
95
+ # Node.js
96
+ log_tool "Node.js: $(node --version 2>/dev/null || echo 'not installed')"
97
+
98
+ # Rust
99
+ log_tool "Rust: $(rustc --version 2>/dev/null || echo 'not installed')"
100
+ log_tool "Cargo: $(cargo --version 2>/dev/null || echo 'not installed')"
101
+
102
+ # Testing frameworks
103
+ log_tool "Vitest: $(vitest --version 2>/dev/null || echo 'not installed')"
104
+ log_tool "Playwright: $(playwright --version 2>/dev/null || echo 'not installed')"
105
+
106
+ # Performance tools
107
+ log_tool "k6: $(k6 version 2>/dev/null | head -1 || echo 'not installed')"
108
+ log_tool "Lighthouse: $(lighthouse --version 2>/dev/null || echo 'not installed')"
109
+
110
+ # Security tools
111
+ log_tool "Snyk: $(snyk --version 2>/dev/null || echo 'not installed')"
112
+
113
+ # Code quality
114
+ log_tool "ESLint: $(eslint --version 2>/dev/null || echo 'not installed')"
115
+ log_tool "Prettier: $(prettier --version 2>/dev/null || echo 'not installed')"
116
+
117
+ # Database
118
+ log_tool "Prisma: $(prisma --version 2>/dev/null || echo 'not installed')"
119
+
120
+ # Accessibility
121
+ log_tool "Pa11y: $(pa11y --version 2>/dev/null || echo 'not installed')"
122
+
123
+ # TypeScript
124
+ log_tool "TypeScript: $(tsc --version 2>/dev/null || echo 'not installed')"
125
+
126
+ echo ""
127
+ }
128
+
129
+ # ============================================================================
130
+ # AVAILABLE COMMANDS HELP
131
+ # ============================================================================
132
+ show_help() {
133
+ cat << EOF
134
+ ${CYAN}Daemon v0.7.0 - Available Commands${NC}
135
+
136
+ ${YELLOW}Testing Commands:${NC}
137
+ vitest Run Vitest unit tests
138
+ playwright Run Playwright E2E tests
139
+ k6 run <script> Run k6 performance test
140
+ lighthouse <url> Run Lighthouse audit
141
+
142
+ ${YELLOW}Code Quality:${NC}
143
+ eslint <files> Run ESLint
144
+ prettier <files> Run Prettier
145
+ rustfmt <files> Format Rust code
146
+ clippy Run Rust linter
147
+
148
+ ${YELLOW}Security:${NC}
149
+ snyk test Run Snyk security scan
150
+ npm audit Audit npm dependencies
151
+ cargo audit Audit Rust dependencies
152
+
153
+ ${YELLOW}Accessibility:${NC}
154
+ pa11y <url> Run accessibility test
155
+ axe <url> Run axe-core test
156
+
157
+ ${YELLOW}Database:${NC}
158
+ prisma <command> Run Prisma CLI
159
+
160
+ ${YELLOW}Utilities:${NC}
161
+ versions Show all tool versions
162
+ help Show this help message
163
+ shell Start bash shell
164
+
165
+ ${YELLOW}Examples:${NC}
166
+ vitest run --coverage
167
+ playwright test --project=chromium
168
+ k6 run performance/test.js
169
+ lighthouse https://example.com --output html
170
+ snyk test --json
171
+
172
+ EOF
173
+ }
174
+
175
+ # ============================================================================
176
+ # CLEANUP FUNCTION
177
+ # ============================================================================
178
+ cleanup() {
179
+ log_info "Cleaning up before exit..."
180
+
181
+ # Remove temporary files
182
+ rm -rf /app/temp/*
183
+
184
+ # Clean npm cache
185
+ npm cache clean --force 2>/dev/null || true
186
+
187
+ log_success "Cleanup complete"
188
+ }
189
+
190
+ # ============================================================================
191
+ # SIGNAL HANDLERS
192
+ # ============================================================================
193
+ trap cleanup EXIT INT TERM
194
+
195
+ # ============================================================================
196
+ # COMMAND ROUTING
197
+ # ============================================================================
198
+ route_command() {
199
+ local cmd="$1"
200
+
201
+ case "${cmd}" in
202
+ versions|--version|-v)
203
+ show_versions
204
+ exit 0
205
+ ;;
206
+ help|--help|-h)
207
+ show_help
208
+ exit 0
209
+ ;;
210
+ shell)
211
+ exec /bin/bash
212
+ ;;
213
+ vitest)
214
+ shift
215
+ exec vitest "$@"
216
+ ;;
217
+ playwright)
218
+ shift
219
+ exec playwright "$@"
220
+ ;;
221
+ eslint)
222
+ shift
223
+ exec eslint "$@"
224
+ ;;
225
+ prettier)
226
+ shift
227
+ exec prettier "$@"
228
+ ;;
229
+ k6)
230
+ shift
231
+ exec k6 "$@"
232
+ ;;
233
+ lighthouse)
234
+ shift
235
+ exec lighthouse "$@"
236
+ ;;
237
+ snyk)
238
+ shift
239
+ exec snyk "$@"
240
+ ;;
241
+ pa11y)
242
+ shift
243
+ exec pa11y "$@"
244
+ ;;
245
+ prisma)
246
+ shift
247
+ exec prisma "$@"
248
+ ;;
249
+ cargo)
250
+ shift
251
+ exec cargo "$@"
252
+ ;;
253
+ rustc)
254
+ shift
255
+ exec rustc "$@"
256
+ ;;
257
+ "")
258
+ # No command specified, keep container alive
259
+ log_info "No command specified. Container running..."
260
+ log_info "Use 'docker exec -it <container> help' for available commands"
261
+ exec sleep infinity
262
+ ;;
263
+ *)
264
+ # Pass through unknown commands
265
+ log_info "Executing: $@"
266
+ exec "$@"
267
+ ;;
268
+ esac
269
+ }
270
+
271
+ # ============================================================================
272
+ # MAIN ENTRYPOINT
273
+ # ============================================================================
274
+ main() {
275
+ print_banner
276
+ setup_environment
277
+
278
+ # If no arguments, show versions and keep alive
279
+ if [ $# -eq 0 ]; then
280
+ echo ""
281
+ show_versions
282
+ echo ""
283
+ log_info "Container ready. Use 'docker exec -it <container> <command>' to run commands"
284
+ echo ""
285
+ exec sleep infinity
286
+ fi
287
+
288
+ # Route the command
289
+ route_command "$@"
290
+ }
291
+
292
+ # Run main function
293
+ main "$@"
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";AACA;;;;GAIG;AASH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8D;;IASvF;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0DxC;;OAEG;IACH,OAAO,CAAC,QAAQ;IA+BhB;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GAAG,UAAU;CAQf"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAcH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iBAAiB;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8D;;IAcvF;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0DxC;;OAEG;IACH,OAAO,CAAC,QAAQ;IAyChB;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE;QACrB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GAAG,UAAU;CAQf"}
package/dist/cli/cli.js CHANGED
@@ -8,6 +8,11 @@ import { createLogger } from '../shared/utils/logger.js';
8
8
  import { InitCommand } from './commands/init.command.js';
9
9
  import { DetectCommand } from './commands/detect.command.js';
10
10
  import { TestCommand } from './commands/test.command.js';
11
+ import { ScoreCommand } from './commands/score.command.js';
12
+ import { ReviewCommand } from './commands/review.command.js';
13
+ import { OptimizeCommand } from './commands/optimize.command.js';
14
+ import { ReportCommand } from './commands/report.command.js';
15
+ import { HistoryCommand } from './commands/history.command.js';
11
16
  const logger = createLogger('DaemonCli');
12
17
  /**
13
18
  * Main CLI class for Daemon
@@ -21,6 +26,11 @@ export class DaemonCli {
21
26
  this.commands.set('init', new InitCommand());
22
27
  this.commands.set('detect', new DetectCommand());
23
28
  this.commands.set('test', new TestCommand());
29
+ this.commands.set('score', new ScoreCommand());
30
+ this.commands.set('review', new ReviewCommand());
31
+ this.commands.set('optimize', new OptimizeCommand());
32
+ this.commands.set('report', new ReportCommand());
33
+ this.commands.set('history', new HistoryCommand());
24
34
  }
25
35
  /**
26
36
  * Run the CLI with provided arguments
@@ -58,7 +68,7 @@ export class DaemonCli {
58
68
  return;
59
69
  }
60
70
  if (args[0] === '--version') {
61
- console.log('v0.6.4');
71
+ console.log('v0.7.0');
62
72
  return;
63
73
  }
64
74
  const commandName = args[0] ?? '';
@@ -82,7 +92,7 @@ export class DaemonCli {
82
92
  */
83
93
  showHelp() {
84
94
  console.log(`
85
- Daemon v0.6.4 - AI-powered automated testing toolkit
95
+ Daemon v0.7.0 - AI-powered code quality toolkit
86
96
 
87
97
  USAGE:
88
98
  daemon <command> [options]
@@ -91,6 +101,11 @@ COMMANDS:
91
101
  init Initialize project with Daemon (creates EXECUTE.md + Dockerfile.daemon)
92
102
  detect Detect project framework and tools
93
103
  test Generate and run tests
104
+ score Show quality scores across dimensions (test, security, performance, etc.)
105
+ review Perform comprehensive code review
106
+ optimize Analyze and apply code optimizations
107
+ report Generate quality reports (HTML, Markdown, JSON, JUnit)
108
+ history View score history and trends
94
109
 
95
110
  OPTIONS:
96
111
  --help, -h Show this help message
@@ -100,6 +115,11 @@ EXAMPLES:
100
115
  daemon init
101
116
  daemon detect
102
117
  daemon test --coverage
118
+ daemon score --dim all
119
+ daemon review --fix --auto
120
+ daemon optimize --perf --apply
121
+ daemon report --format=html --output=report.html
122
+ daemon history --limit=20 --compare
103
123
 
104
124
  GETTING STARTED:
105
125
  1. Run "daemon init" to initialize your project
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;AAazC;;;;GAIG;AACH,MAAM,OAAO,SAAS;IACH,QAAQ,CAA8D;IAEvF;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAA0D,CAAC;QAClF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,aAAa,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,YAAY,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,aAAa,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,eAAe,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,aAAa,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,cAAc,EAAE,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,IAAc;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B;QAExD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,+DAA+D;YAC/D,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;YACvC,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;YAEnF,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,qCAAqC;gBACrC,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;gBAC/D,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC;wBACH,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBAChC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;wBAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,iCAAiC;gBACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAElC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,oBAAoB,WAAW,EAAE,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,QAAQ;QACd,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqCX,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAIb;QACC,OAAO;YACL,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;YACzB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;YACjC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;YAC/B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;SAC9B,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Command Types
3
+ *
4
+ * Shared types for CLI commands.
5
+ *
6
+ * @module cli/commands/command.types
7
+ */
8
+ /**
9
+ * Dimension type for scoring and analysis
10
+ */
11
+ export type Dimension = 'test' | 'security' | 'performance' | 'reliability' | 'maintainability' | 'coverage';
12
+ /**
13
+ * Output format for commands
14
+ */
15
+ export type OutputFormat = 'text' | 'json' | 'html' | 'markdown' | 'junit';
16
+ /**
17
+ * Base command options
18
+ */
19
+ export interface BaseCommandOptions {
20
+ /** Verbose output */
21
+ verbose?: boolean;
22
+ /** Silent mode (minimal output) */
23
+ silent?: boolean;
24
+ /** JSON output */
25
+ json?: boolean;
26
+ /** Output format */
27
+ format?: OutputFormat;
28
+ /** Project directory (defaults to cwd) */
29
+ projectDir?: string;
30
+ }
31
+ /**
32
+ * Score command options
33
+ */
34
+ export interface ScoreOptions extends BaseCommandOptions {
35
+ /** Specific dimension(s) to show */
36
+ dim?: Dimension | Dimension[];
37
+ /** Show trend/history */
38
+ trend?: boolean;
39
+ /** Number of historical points to show */
40
+ historyPoints?: number;
41
+ /** Compare with previous score */
42
+ compare?: boolean;
43
+ }
44
+ /**
45
+ * Review command options
46
+ */
47
+ export interface ReviewOptions extends BaseCommandOptions {
48
+ /** Apply auto-fixes for issues found */
49
+ fix?: boolean;
50
+ /** Non-interactive mode (auto-confirm) */
51
+ auto?: boolean;
52
+ /** Report format */
53
+ output?: OutputFormat;
54
+ /** Specific dimension(s) to review */
55
+ dim?: Dimension | Dimension[];
56
+ /** Severity threshold */
57
+ severity?: 'low' | 'medium' | 'high' | 'critical';
58
+ /** Output file path */
59
+ outputFile?: string;
60
+ }
61
+ /**
62
+ * Optimize command options
63
+ */
64
+ export interface OptimizeOptions extends BaseCommandOptions {
65
+ /** Performance optimizations only */
66
+ perf?: boolean;
67
+ /** Bug fixes only */
68
+ bugs?: boolean;
69
+ /** Security fixes only */
70
+ security?: boolean;
71
+ /** Apply optimizations (dry-run if false) */
72
+ apply?: boolean;
73
+ /** Show what would be done without applying */
74
+ dryRun?: boolean;
75
+ /** Maximum number of optimizations to apply */
76
+ maxChanges?: number;
77
+ }
78
+ /**
79
+ * Command execution result
80
+ */
81
+ export interface CommandResult {
82
+ /** Exit code (0 = success) */
83
+ exitCode: number;
84
+ /** Result message */
85
+ message?: string;
86
+ /** Additional data */
87
+ data?: unknown;
88
+ /** Error if any */
89
+ error?: Error;
90
+ }
91
+ /**
92
+ * Progress callback for long-running operations
93
+ */
94
+ export interface ProgressCallbacks {
95
+ /** Called when operation starts */
96
+ onStart?: (message: string) => void;
97
+ /** Called with progress update (0-100) */
98
+ onProgress?: (percent: number, message?: string) => void;
99
+ /** Called when operation completes */
100
+ onComplete?: (message: string) => void;
101
+ /** Called when operation fails */
102
+ onError?: (error: Error) => void;
103
+ }
104
+ /**
105
+ * Score breakdown by dimension
106
+ */
107
+ export interface ScoreBreakdown {
108
+ /** Dimension name */
109
+ dimension: Dimension;
110
+ /** Score (0-100) */
111
+ score: number;
112
+ /** Weight in overall score */
113
+ weight: number;
114
+ /** Status */
115
+ status: 'excellent' | 'good' | 'fair' | 'poor' | 'critical';
116
+ /** Issues found */
117
+ issues: number;
118
+ /** Recommendations */
119
+ recommendations: number;
120
+ }
121
+ /**
122
+ * Trend data point
123
+ */
124
+ export interface TrendDataPoint {
125
+ /** Timestamp */
126
+ timestamp: Date;
127
+ /** Overall score */
128
+ score: number;
129
+ /** Breakdown by dimension */
130
+ breakdown: Record<string, number>;
131
+ }
132
+ /**
133
+ * Dimension parser helper
134
+ */
135
+ export declare class DimensionParser {
136
+ private static readonly ALL_DIMENSIONS;
137
+ private static readonly VALID_DIMENSIONS;
138
+ /**
139
+ * Parse dimension argument(s) into array
140
+ */
141
+ static parse(dimInput?: string | string[]): Dimension[];
142
+ /**
143
+ * Validate a dimension string
144
+ */
145
+ static validate(dim: string): Dimension;
146
+ /**
147
+ * Get all available dimensions
148
+ */
149
+ static getAll(): Dimension[];
150
+ }
151
+ /**
152
+ * Report command options
153
+ */
154
+ export interface ReportOptions extends BaseCommandOptions {
155
+ /** Report format */
156
+ format?: 'html' | 'markdown' | 'json' | 'junit' | 'text';
157
+ /** Output file path */
158
+ output?: string;
159
+ /** Include trend data */
160
+ includeTrend?: boolean;
161
+ /** Include charts in HTML */
162
+ includeCharts?: boolean;
163
+ /** Theme for HTML report */
164
+ theme?: 'light' | 'dark' | 'auto';
165
+ /** Open report after generation */
166
+ open?: boolean;
167
+ }
168
+ /**
169
+ * History command options
170
+ */
171
+ export interface HistoryOptions extends BaseCommandOptions {
172
+ /** Maximum number of entries to show */
173
+ limit?: number;
174
+ /** Clear all history */
175
+ clear?: boolean;
176
+ /** Prune old entries */
177
+ prune?: boolean;
178
+ /** Compare with previous entry */
179
+ compare?: boolean;
180
+ /** Focus on specific dimension */
181
+ dimension?: string;
182
+ }
183
+ /**
184
+ * Init command options
185
+ */
186
+ export interface InitOptions extends BaseCommandOptions {
187
+ /** Force overwrite existing files */
188
+ force?: boolean;
189
+ /** Skip Dockerfile creation */
190
+ skipDocker?: boolean;
191
+ /** Custom test directory */
192
+ testDir?: string;
193
+ }
194
+ /**
195
+ * Detect command options
196
+ */
197
+ export interface DetectOptions extends BaseCommandOptions {
198
+ /** Show detailed output */
199
+ detailed?: boolean;
200
+ /** JSON output */
201
+ json?: boolean;
202
+ }
203
+ /**
204
+ * Test command options
205
+ */
206
+ export interface TestOptions extends BaseCommandOptions {
207
+ /** Run with coverage */
208
+ coverage?: boolean;
209
+ /** Watch mode */
210
+ watch?: boolean;
211
+ /** Specific test file/pattern */
212
+ pattern?: string;
213
+ /** Test runner to use */
214
+ runner?: 'vitest' | 'jest' | 'mocha' | 'pytest';
215
+ }
216
+ //# sourceMappingURL=command.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.types.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/command.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Command Types
3
+ *
4
+ * Shared types for CLI commands.
5
+ *
6
+ * @module cli/commands/command.types
7
+ */
8
+ /**
9
+ * Dimension parser helper
10
+ */
11
+ export class DimensionParser {
12
+ static ALL_DIMENSIONS = [
13
+ 'test',
14
+ 'security',
15
+ 'performance',
16
+ 'reliability',
17
+ 'maintainability',
18
+ 'coverage',
19
+ ];
20
+ // Explicit string array for 'all' validation
21
+ static VALID_DIMENSIONS = [
22
+ 'test',
23
+ 'security',
24
+ 'performance',
25
+ 'reliability',
26
+ 'maintainability',
27
+ 'coverage',
28
+ 'all',
29
+ ];
30
+ /**
31
+ * Parse dimension argument(s) into array
32
+ */
33
+ static parse(dimInput) {
34
+ if (!dimInput) {
35
+ return [...this.ALL_DIMENSIONS];
36
+ }
37
+ if (typeof dimInput === 'string') {
38
+ if (dimInput === 'all') {
39
+ return [...this.ALL_DIMENSIONS];
40
+ }
41
+ return dimInput.split(',').map((d) => this.validate(d.trim()));
42
+ }
43
+ return dimInput.map((d) => (typeof d === 'string' ? this.validate(d) : d));
44
+ }
45
+ /**
46
+ * Validate a dimension string
47
+ */
48
+ static validate(dim) {
49
+ if (this.VALID_DIMENSIONS.includes(dim)) {
50
+ if (dim === 'all') {
51
+ throw new Error(`Use 'all' as a standalone value, not as a dimension`);
52
+ }
53
+ return dim;
54
+ }
55
+ throw new Error(`Invalid dimension: ${dim}. Valid: ${this.VALID_DIMENSIONS.filter(d => d !== 'all').join(', ')}`);
56
+ }
57
+ /**
58
+ * Get all available dimensions
59
+ */
60
+ static getAll() {
61
+ return [...this.ALL_DIMENSIONS];
62
+ }
63
+ }
64
+ //# sourceMappingURL=command.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.types.js","sourceRoot":"","sources":["../../../src/cli/commands/command.types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8IH;;GAEG;AACH,MAAM,OAAO,eAAe;IAClB,MAAM,CAAU,cAAc,GAAgB;QACpD,MAAM;QACN,UAAU;QACV,aAAa;QACb,aAAa;QACb,iBAAiB;QACjB,UAAU;KACF,CAAC;IAEX,6CAA6C;IACrC,MAAM,CAAU,gBAAgB,GAAG;QACzC,MAAM;QACN,UAAU;QACV,aAAa;QACb,aAAa;QACb,iBAAiB;QACjB,UAAU;QACV,KAAK;KACG,CAAC;IAEX;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,QAA4B;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAU,CAAC,EAAE,CAAC;YAC/C,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,GAAgB,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,YAAY,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC"}