@oalacea/daemon 0.5.1 → 0.6.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 (199) hide show
  1. package/dist/cli/cli.d.ts +42 -0
  2. package/dist/cli/cli.d.ts.map +1 -0
  3. package/dist/cli/cli.js +89 -0
  4. package/dist/cli/cli.js.map +1 -0
  5. package/dist/cli/commands/detect.command.d.ts +39 -0
  6. package/dist/cli/commands/detect.command.d.ts.map +1 -0
  7. package/dist/cli/commands/detect.command.js +111 -0
  8. package/dist/cli/commands/detect.command.js.map +1 -0
  9. package/dist/cli/commands/index.d.ts +14 -0
  10. package/dist/cli/commands/index.d.ts.map +1 -0
  11. package/dist/cli/commands/index.js +11 -0
  12. package/dist/cli/commands/index.js.map +1 -0
  13. package/dist/cli/commands/init.command.d.ts +41 -0
  14. package/dist/cli/commands/init.command.d.ts.map +1 -0
  15. package/dist/cli/commands/init.command.js +111 -0
  16. package/dist/cli/commands/init.command.js.map +1 -0
  17. package/dist/cli/commands/test.command.d.ts +58 -0
  18. package/dist/cli/commands/test.command.d.ts.map +1 -0
  19. package/dist/cli/commands/test.command.js +180 -0
  20. package/dist/cli/commands/test.command.js.map +1 -0
  21. package/dist/cli/index.d.ts +8 -0
  22. package/dist/cli/index.d.ts.map +1 -0
  23. package/dist/cli/index.js +10 -0
  24. package/dist/cli/index.js.map +1 -0
  25. package/dist/core/config/daemon.config.d.ts +32 -0
  26. package/dist/core/config/daemon.config.d.ts.map +1 -0
  27. package/dist/core/config/daemon.config.js +83 -0
  28. package/dist/core/config/daemon.config.js.map +1 -0
  29. package/dist/core/config/index.d.ts +5 -0
  30. package/dist/core/config/index.d.ts.map +1 -0
  31. package/dist/core/config/index.js +5 -0
  32. package/dist/core/config/index.js.map +1 -0
  33. package/dist/core/constants.d.ts +36 -0
  34. package/dist/core/constants.d.ts.map +1 -0
  35. package/dist/core/constants.js +56 -0
  36. package/dist/core/constants.js.map +1 -0
  37. package/dist/core/types/common.types.d.ts +250 -0
  38. package/dist/core/types/common.types.d.ts.map +1 -0
  39. package/dist/core/types/common.types.js +7 -0
  40. package/dist/core/types/common.types.js.map +1 -0
  41. package/dist/core/types/detection.types.d.ts +232 -0
  42. package/dist/core/types/detection.types.d.ts.map +1 -0
  43. package/dist/core/types/detection.types.js +22 -0
  44. package/dist/core/types/detection.types.js.map +1 -0
  45. package/dist/core/types/docker.types.d.ts +322 -0
  46. package/dist/core/types/docker.types.d.ts.map +1 -0
  47. package/dist/core/types/docker.types.js +7 -0
  48. package/dist/core/types/docker.types.js.map +1 -0
  49. package/dist/core/types/index.d.ts +11 -0
  50. package/dist/core/types/index.d.ts.map +1 -0
  51. package/dist/core/types/index.js +7 -0
  52. package/dist/core/types/index.js.map +1 -0
  53. package/dist/core/types/project.types.d.ts +74 -0
  54. package/dist/core/types/project.types.d.ts.map +1 -0
  55. package/dist/core/types/project.types.js +7 -0
  56. package/dist/core/types/project.types.js.map +1 -0
  57. package/dist/core/types/shared.types.d.ts +118 -0
  58. package/dist/core/types/shared.types.d.ts.map +1 -0
  59. package/dist/core/types/shared.types.js +7 -0
  60. package/dist/core/types/shared.types.js.map +1 -0
  61. package/dist/core/types/test.types.d.ts +230 -0
  62. package/dist/core/types/test.types.d.ts.map +1 -0
  63. package/dist/core/types/test.types.js +7 -0
  64. package/dist/core/types/test.types.js.map +1 -0
  65. package/dist/services/detection/__tests__/framework-detector.test.d.ts +5 -0
  66. package/dist/services/detection/__tests__/framework-detector.test.d.ts.map +1 -0
  67. package/dist/services/detection/__tests__/framework-detector.test.js +52 -0
  68. package/dist/services/detection/__tests__/framework-detector.test.js.map +1 -0
  69. package/dist/services/detection/framework-detector.d.ts +179 -0
  70. package/dist/services/detection/framework-detector.d.ts.map +1 -0
  71. package/dist/services/detection/framework-detector.js +636 -0
  72. package/dist/services/detection/framework-detector.js.map +1 -0
  73. package/dist/services/detection/index.d.ts +10 -0
  74. package/dist/services/detection/index.d.ts.map +1 -0
  75. package/dist/services/detection/index.js +7 -0
  76. package/dist/services/detection/index.js.map +1 -0
  77. package/dist/services/docker/__tests__/docker-manager.test.d.ts +5 -0
  78. package/dist/services/docker/__tests__/docker-manager.test.d.ts.map +1 -0
  79. package/dist/services/docker/__tests__/docker-manager.test.js +67 -0
  80. package/dist/services/docker/__tests__/docker-manager.test.js.map +1 -0
  81. package/dist/services/docker/docker-manager.d.ts +157 -0
  82. package/dist/services/docker/docker-manager.d.ts.map +1 -0
  83. package/dist/services/docker/docker-manager.js +516 -0
  84. package/dist/services/docker/docker-manager.js.map +1 -0
  85. package/dist/services/docker/index.d.ts +9 -0
  86. package/dist/services/docker/index.d.ts.map +1 -0
  87. package/dist/services/docker/index.js +9 -0
  88. package/dist/services/docker/index.js.map +1 -0
  89. package/dist/services/index.d.ts +10 -0
  90. package/dist/services/index.d.ts.map +1 -0
  91. package/dist/services/index.js +8 -0
  92. package/dist/services/index.js.map +1 -0
  93. package/dist/shared/errors/__tests__/base.error.test.d.ts +5 -0
  94. package/dist/shared/errors/__tests__/base.error.test.d.ts.map +1 -0
  95. package/dist/shared/errors/__tests__/base.error.test.js +61 -0
  96. package/dist/shared/errors/__tests__/base.error.test.js.map +1 -0
  97. package/dist/shared/errors/__tests__/command.error.test.d.ts +5 -0
  98. package/dist/shared/errors/__tests__/command.error.test.d.ts.map +1 -0
  99. package/dist/shared/errors/__tests__/command.error.test.js +62 -0
  100. package/dist/shared/errors/__tests__/command.error.test.js.map +1 -0
  101. package/dist/shared/errors/__tests__/file.error.test.d.ts +5 -0
  102. package/dist/shared/errors/__tests__/file.error.test.d.ts.map +1 -0
  103. package/dist/shared/errors/__tests__/file.error.test.js +75 -0
  104. package/dist/shared/errors/__tests__/file.error.test.js.map +1 -0
  105. package/dist/shared/errors/__tests__/index.test.d.ts +5 -0
  106. package/dist/shared/errors/__tests__/index.test.d.ts.map +1 -0
  107. package/dist/shared/errors/__tests__/index.test.js +62 -0
  108. package/dist/shared/errors/__tests__/index.test.js.map +1 -0
  109. package/dist/shared/errors/__tests__/validation.error.test.d.ts +5 -0
  110. package/dist/shared/errors/__tests__/validation.error.test.d.ts.map +1 -0
  111. package/dist/shared/errors/__tests__/validation.error.test.js +79 -0
  112. package/dist/shared/errors/__tests__/validation.error.test.js.map +1 -0
  113. package/dist/shared/errors/base.error.d.ts +54 -0
  114. package/dist/shared/errors/base.error.d.ts.map +1 -0
  115. package/dist/shared/errors/base.error.js +85 -0
  116. package/dist/shared/errors/base.error.js.map +1 -0
  117. package/dist/shared/errors/command.error.d.ts +58 -0
  118. package/dist/shared/errors/command.error.d.ts.map +1 -0
  119. package/dist/shared/errors/command.error.js +102 -0
  120. package/dist/shared/errors/command.error.js.map +1 -0
  121. package/dist/shared/errors/detection.error.d.ts +42 -0
  122. package/dist/shared/errors/detection.error.d.ts.map +1 -0
  123. package/dist/shared/errors/detection.error.js +82 -0
  124. package/dist/shared/errors/detection.error.js.map +1 -0
  125. package/dist/shared/errors/docker.error.d.ts +142 -0
  126. package/dist/shared/errors/docker.error.d.ts.map +1 -0
  127. package/dist/shared/errors/docker.error.js +172 -0
  128. package/dist/shared/errors/docker.error.js.map +1 -0
  129. package/dist/shared/errors/file.error.d.ts +66 -0
  130. package/dist/shared/errors/file.error.d.ts.map +1 -0
  131. package/dist/shared/errors/file.error.js +93 -0
  132. package/dist/shared/errors/file.error.js.map +1 -0
  133. package/dist/shared/errors/index.d.ts +56 -0
  134. package/dist/shared/errors/index.d.ts.map +1 -0
  135. package/dist/shared/errors/index.js +86 -0
  136. package/dist/shared/errors/index.js.map +1 -0
  137. package/dist/shared/errors/validation.error.d.ts +67 -0
  138. package/dist/shared/errors/validation.error.d.ts.map +1 -0
  139. package/dist/shared/errors/validation.error.js +97 -0
  140. package/dist/shared/errors/validation.error.js.map +1 -0
  141. package/dist/shared/templates/index.d.ts +2 -0
  142. package/dist/shared/templates/index.d.ts.map +1 -0
  143. package/dist/shared/templates/index.js +2 -0
  144. package/dist/shared/templates/index.js.map +1 -0
  145. package/dist/shared/templates/prompt-builder.d.ts +2 -0
  146. package/dist/shared/templates/prompt-builder.d.ts.map +1 -0
  147. package/dist/shared/templates/prompt-builder.js +2 -0
  148. package/dist/shared/templates/prompt-builder.js.map +1 -0
  149. package/dist/shared/templates/template-engine.d.ts +2 -0
  150. package/dist/shared/templates/template-engine.d.ts.map +1 -0
  151. package/dist/shared/templates/template-engine.js +2 -0
  152. package/dist/shared/templates/template-engine.js.map +1 -0
  153. package/dist/shared/utils/__tests__/command-executor.test.d.ts +5 -0
  154. package/dist/shared/utils/__tests__/command-executor.test.d.ts.map +1 -0
  155. package/dist/shared/utils/__tests__/command-executor.test.js +45 -0
  156. package/dist/shared/utils/__tests__/command-executor.test.js.map +1 -0
  157. package/dist/shared/utils/__tests__/file-helper.test.d.ts +5 -0
  158. package/dist/shared/utils/__tests__/file-helper.test.d.ts.map +1 -0
  159. package/dist/shared/utils/__tests__/file-helper.test.js +71 -0
  160. package/dist/shared/utils/__tests__/file-helper.test.js.map +1 -0
  161. package/dist/shared/utils/__tests__/logger.test.d.ts +5 -0
  162. package/dist/shared/utils/__tests__/logger.test.d.ts.map +1 -0
  163. package/dist/shared/utils/__tests__/logger.test.js +83 -0
  164. package/dist/shared/utils/__tests__/logger.test.js.map +1 -0
  165. package/dist/shared/utils/command-executer.d.ts +2 -0
  166. package/dist/shared/utils/command-executer.d.ts.map +1 -0
  167. package/dist/shared/utils/command-executer.js +2 -0
  168. package/dist/shared/utils/command-executer.js.map +1 -0
  169. package/dist/shared/utils/command-executor.d.ts +255 -0
  170. package/dist/shared/utils/command-executor.d.ts.map +1 -0
  171. package/dist/shared/utils/command-executor.js +287 -0
  172. package/dist/shared/utils/command-executor.js.map +1 -0
  173. package/dist/shared/utils/file-helper.d.ts +86 -0
  174. package/dist/shared/utils/file-helper.d.ts.map +1 -0
  175. package/dist/shared/utils/file-helper.js +323 -0
  176. package/dist/shared/utils/file-helper.js.map +1 -0
  177. package/dist/shared/utils/index.d.ts +9 -0
  178. package/dist/shared/utils/index.d.ts.map +1 -0
  179. package/dist/shared/utils/index.js +9 -0
  180. package/dist/shared/utils/index.js.map +1 -0
  181. package/dist/shared/utils/logger.d.ts +163 -0
  182. package/dist/shared/utils/logger.d.ts.map +1 -0
  183. package/dist/shared/utils/logger.js +389 -0
  184. package/dist/shared/utils/logger.js.map +1 -0
  185. package/package.json +25 -6
  186. package/CHANGELOG.md +0 -46
  187. package/agents/deps-analyzer.js +0 -366
  188. package/agents/detector.js +0 -570
  189. package/agents/fix-engine.js +0 -305
  190. package/agents/lighthouse-scanner.js +0 -405
  191. package/agents/perf-analyzer.js +0 -294
  192. package/agents/perf-front-analyzer.js +0 -229
  193. package/agents/test-generator.js +0 -387
  194. package/agents/test-runner.js +0 -318
  195. package/bin/cli.js +0 -449
  196. package/lib/config.js +0 -250
  197. package/lib/docker.js +0 -207
  198. package/lib/reporter.js +0 -297
  199. package/scripts/dev.js +0 -106
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Daemon CLI - Main CLI Class
4
+ *
5
+ * @module cli/cli
6
+ */
7
+ export interface CliContext {
8
+ /** Project directory */
9
+ projectDir: string;
10
+ /** Verbose mode */
11
+ verbose?: boolean;
12
+ /** Silent mode */
13
+ silent?: boolean;
14
+ /** Force mode */
15
+ force?: boolean;
16
+ }
17
+ /**
18
+ * Main CLI class for Daemon
19
+ *
20
+ * Handles command routing and execution.
21
+ */
22
+ export declare class DaemonCli {
23
+ private readonly commands;
24
+ constructor();
25
+ /**
26
+ * Run the CLI with provided arguments
27
+ */
28
+ run(argv: string[]): Promise<void>;
29
+ /**
30
+ * Show help message
31
+ */
32
+ private showHelp;
33
+ /**
34
+ * Get CLI context from environment and flags
35
+ */
36
+ createContext(options: {
37
+ verbose?: boolean;
38
+ silent?: boolean;
39
+ force?: boolean;
40
+ }): CliContext;
41
+ }
42
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +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;IA2BxC;;OAEG;IACH,OAAO,CAAC,QAAQ;IAyBhB;;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"}
@@ -0,0 +1,89 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Daemon CLI - Main CLI Class
4
+ *
5
+ * @module cli/cli
6
+ */
7
+ import { createLogger } from '../shared/utils/logger.js';
8
+ import { InitCommand } from './commands/init.command.js';
9
+ import { DetectCommand } from './commands/detect.command.js';
10
+ import { TestCommand } from './commands/test.command.js';
11
+ const logger = createLogger('DaemonCli');
12
+ /**
13
+ * Main CLI class for Daemon
14
+ *
15
+ * Handles command routing and execution.
16
+ */
17
+ export class DaemonCli {
18
+ commands;
19
+ constructor() {
20
+ this.commands = new Map();
21
+ this.commands.set('init', new InitCommand());
22
+ this.commands.set('detect', new DetectCommand());
23
+ this.commands.set('test', new TestCommand());
24
+ }
25
+ /**
26
+ * Run the CLI with provided arguments
27
+ */
28
+ async run(argv) {
29
+ const args = argv.slice(2); // Skip node and script path
30
+ if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {
31
+ this.showHelp();
32
+ return;
33
+ }
34
+ const commandName = args[0] ?? '';
35
+ const commandArgs = args.slice(1);
36
+ const command = this.commands.get(commandName);
37
+ if (!command) {
38
+ logger.error(`Unknown command: ${commandName}`);
39
+ this.showHelp();
40
+ process.exit(1);
41
+ }
42
+ try {
43
+ await command.execute(commandArgs);
44
+ }
45
+ catch (error) {
46
+ logger.error('Command execution failed', error);
47
+ process.exit(1);
48
+ }
49
+ }
50
+ /**
51
+ * Show help message
52
+ */
53
+ showHelp() {
54
+ console.log(`
55
+ Daemon v0.6.0 - AI-powered automated testing toolkit
56
+
57
+ USAGE:
58
+ daemon <command> [options]
59
+
60
+ COMMANDS:
61
+ init Initialize project with Daemon
62
+ detect Detect project framework and tools
63
+ test Generate and run tests
64
+
65
+ OPTIONS:
66
+ --help, -h Show this help message
67
+ --version Show version number
68
+
69
+ EXAMPLES:
70
+ daemon init
71
+ daemon detect
72
+ daemon test --coverage
73
+
74
+ For more information, visit: https://github.com/Pamacea/daemon
75
+ `);
76
+ }
77
+ /**
78
+ * Get CLI context from environment and flags
79
+ */
80
+ createContext(options) {
81
+ return {
82
+ projectDir: process.cwd(),
83
+ verbose: options.verbose ?? false,
84
+ silent: options.silent ?? false,
85
+ force: options.force ?? false,
86
+ };
87
+ }
88
+ }
89
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
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;AAEzD,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;IAC/C,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,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAClE,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,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;;;;;;;;;;;;;;;;;;;;;KAqBX,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,39 @@
1
+ /**
2
+ * Detect Command
3
+ *
4
+ * Detects and displays project framework and tools.
5
+ *
6
+ * @module cli/commands/detect
7
+ */
8
+ export interface DetectOptions {
9
+ /** Output format (text, json) */
10
+ format?: 'text' | 'json';
11
+ /** Verbose output */
12
+ verbose?: boolean;
13
+ /** Include alternatives */
14
+ includeAlternatives?: boolean;
15
+ }
16
+ /**
17
+ * Detect command for Daemon
18
+ */
19
+ export declare class DetectCommand {
20
+ private readonly detector;
21
+ constructor();
22
+ /**
23
+ * Execute the detect command
24
+ */
25
+ execute(args: string[]): Promise<void>;
26
+ /**
27
+ * Parse command line arguments
28
+ */
29
+ private parseArgs;
30
+ /**
31
+ * Display detection results in text format
32
+ */
33
+ private displayResults;
34
+ /**
35
+ * Format a detection result with confidence indicator
36
+ */
37
+ private formatResult;
38
+ }
39
+ //# sourceMappingURL=detect.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/detect.command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;;IAM7C;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB5C;;OAEG;IACH,OAAO,CAAC,SAAS;IAyBjB;;OAEG;IACH,OAAO,CAAC,cAAc;IA0CtB;;OAEG;IACH,OAAO,CAAC,YAAY;CAQrB"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Detect Command
3
+ *
4
+ * Detects and displays project framework and tools.
5
+ *
6
+ * @module cli/commands/detect
7
+ */
8
+ import { createLogger } from '../../shared/utils/logger.js';
9
+ import { FrameworkDetector } from '../../services/detection/framework-detector.js';
10
+ const logger = createLogger('DetectCommand');
11
+ /**
12
+ * Detect command for Daemon
13
+ */
14
+ export class DetectCommand {
15
+ detector;
16
+ constructor() {
17
+ this.detector = new FrameworkDetector();
18
+ }
19
+ /**
20
+ * Execute the detect command
21
+ */
22
+ async execute(args) {
23
+ const options = this.parseArgs(args);
24
+ try {
25
+ const results = await this.detector.detectAll(process.cwd(), options);
26
+ if (options.format === 'json') {
27
+ console.log(JSON.stringify(results, null, 2));
28
+ }
29
+ else {
30
+ this.displayResults(results, options);
31
+ }
32
+ }
33
+ catch (error) {
34
+ logger.error('Detection failed', error);
35
+ throw error;
36
+ }
37
+ }
38
+ /**
39
+ * Parse command line arguments
40
+ */
41
+ parseArgs(args) {
42
+ const options = {
43
+ format: 'text',
44
+ verbose: false,
45
+ includeAlternatives: false,
46
+ };
47
+ for (const arg of args) {
48
+ switch (arg) {
49
+ case '--json':
50
+ options.format = 'json';
51
+ break;
52
+ case '--verbose':
53
+ case '-v':
54
+ options.verbose = true;
55
+ break;
56
+ case '--alternatives':
57
+ options.includeAlternatives = true;
58
+ break;
59
+ }
60
+ }
61
+ return options;
62
+ }
63
+ /**
64
+ * Display detection results in text format
65
+ */
66
+ displayResults(results, options) {
67
+ console.log('\n🔍 Project Detection Results\n');
68
+ // Framework
69
+ console.log(`Framework: ${this.formatResult(results.framework.value, results.framework.confidence)}`);
70
+ if (results.framework.alternatives && options.includeAlternatives) {
71
+ for (const alt of results.framework.alternatives) {
72
+ console.log(` └─ Alternative: ${alt.value} (${Math.round(alt.confidence * 100)}%)`);
73
+ }
74
+ }
75
+ // Language
76
+ console.log(`Language: ${this.formatResult(results.language.value, results.language.confidence)}`);
77
+ // Test Runner
78
+ console.log(`Test Runner: ${this.formatResult(results.testRunner.value, results.testRunner.confidence)}`);
79
+ // Database
80
+ if (results.database.value) {
81
+ console.log(`Database: ${this.formatResult(results.database.value, results.database.confidence)}`);
82
+ }
83
+ // Test counts
84
+ console.log(`\nExisting Tests: ${results.testCounts.total}`);
85
+ if (options.verbose && results.testCounts.total > 0) {
86
+ console.log(` - In src/: ${results.testCounts.inSrc}`);
87
+ console.log(` - Outside src/: ${results.testCounts.outsideSrc}`);
88
+ }
89
+ // Coverage
90
+ if (results.coverage) {
91
+ console.log(`\nCoverage: ${results.coverage.total.toFixed(1)}%`);
92
+ if (options.verbose) {
93
+ console.log(` - Lines: ${results.coverage.lines.toFixed(1)}%`);
94
+ console.log(` - Branches: ${results.coverage.branches.toFixed(1)}%`);
95
+ console.log(` - Functions: ${results.coverage.functions.toFixed(1)}%`);
96
+ }
97
+ }
98
+ console.log(`\nAnalysis completed in ${results.duration}ms`);
99
+ }
100
+ /**
101
+ * Format a detection result with confidence indicator
102
+ */
103
+ formatResult(value, confidence) {
104
+ if (!value)
105
+ return 'Not detected';
106
+ const percentage = Math.round(confidence * 100);
107
+ const indicator = percentage >= 90 ? '✓' : percentage >= 70 ? '~' : '?';
108
+ return `${value} ${indicator} (${percentage}%)`;
109
+ }
110
+ }
111
+ //# sourceMappingURL=detect.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.command.js","sourceRoot":"","sources":["../../../src/cli/commands/detect.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * CLI Commands Module
3
+ *
4
+ * Exports all CLI commands for the Daemon toolkit.
5
+ *
6
+ * @module cli/commands
7
+ */
8
+ export { InitCommand } from './init.command.js';
9
+ export type { InitOptions } from './init.command.js';
10
+ export { DetectCommand } from './detect.command.js';
11
+ export type { DetectOptions } from './detect.command.js';
12
+ export { TestCommand } from './test.command.js';
13
+ export type { TestOptions } from './test.command.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * CLI Commands Module
3
+ *
4
+ * Exports all CLI commands for the Daemon toolkit.
5
+ *
6
+ * @module cli/commands
7
+ */
8
+ export { InitCommand } from './init.command.js';
9
+ export { DetectCommand } from './detect.command.js';
10
+ export { TestCommand } from './test.command.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Init Command
3
+ *
4
+ * Initializes a project with Daemon testing toolkit.
5
+ *
6
+ * @module cli/commands/init
7
+ */
8
+ export interface InitOptions {
9
+ /** Force overwrite existing files */
10
+ force?: boolean;
11
+ /** Skip framework detection */
12
+ skipDetection?: boolean;
13
+ /** Custom output directory */
14
+ output?: string;
15
+ /** Verbose output */
16
+ verbose?: boolean;
17
+ }
18
+ /**
19
+ * Initialize command for Daemon
20
+ */
21
+ export declare class InitCommand {
22
+ private readonly detector;
23
+ constructor();
24
+ /**
25
+ * Execute the init command
26
+ */
27
+ execute(args: string[]): Promise<void>;
28
+ /**
29
+ * Parse command line arguments
30
+ */
31
+ private parseArgs;
32
+ /**
33
+ * Create Daemon configuration
34
+ */
35
+ private createConfig;
36
+ /**
37
+ * Create test directories
38
+ */
39
+ private createDirectories;
40
+ }
41
+ //# sourceMappingURL=init.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,MAAM,WAAW,WAAW;IAC1B,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;;IAM7C;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B5C;;OAEG;IACH,OAAO,CAAC,SAAS;IA+BjB;;OAEG;YACW,YAAY;IAoB1B;;OAEG;YACW,iBAAiB;CAUhC"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Init Command
3
+ *
4
+ * Initializes a project with Daemon testing toolkit.
5
+ *
6
+ * @module cli/commands/init
7
+ */
8
+ import * as path from 'node:path';
9
+ import { createLogger } from '../../shared/utils/logger.js';
10
+ import { fileHelper } from '../../shared/utils/file-helper.js';
11
+ import { FrameworkDetector } from '../../services/detection/framework-detector.js';
12
+ const logger = createLogger('InitCommand');
13
+ /**
14
+ * Initialize command for Daemon
15
+ */
16
+ export class InitCommand {
17
+ detector;
18
+ constructor() {
19
+ this.detector = new FrameworkDetector();
20
+ }
21
+ /**
22
+ * Execute the init command
23
+ */
24
+ async execute(args) {
25
+ logger.info('Initializing Daemon...');
26
+ const options = this.parseArgs(args);
27
+ try {
28
+ // Detect framework
29
+ let framework = 'Unknown';
30
+ if (!options.skipDetection) {
31
+ const result = await this.detector.detect(process.cwd());
32
+ framework = result.value ?? 'Unknown';
33
+ logger.info(`Detected framework: ${framework}`);
34
+ }
35
+ // Create daemon config
36
+ await this.createConfig(options);
37
+ // Create test directories
38
+ await this.createDirectories(options);
39
+ logger.success('Daemon initialized successfully!');
40
+ logger.info('Run "daemon detect" to see project details');
41
+ logger.info('Run "daemon test" to generate tests');
42
+ }
43
+ catch (error) {
44
+ logger.error('Failed to initialize Daemon', error);
45
+ throw error;
46
+ }
47
+ }
48
+ /**
49
+ * Parse command line arguments
50
+ */
51
+ parseArgs(args) {
52
+ const options = {
53
+ force: false,
54
+ skipDetection: false,
55
+ verbose: false,
56
+ };
57
+ for (const arg of args) {
58
+ switch (arg) {
59
+ case '--force':
60
+ case '-f':
61
+ options.force = true;
62
+ break;
63
+ case '--skip-detection':
64
+ options.skipDetection = true;
65
+ break;
66
+ case '--verbose':
67
+ case '-v':
68
+ options.verbose = true;
69
+ break;
70
+ default:
71
+ if (arg.startsWith('--output=')) {
72
+ const value = arg.split('=')[1];
73
+ if (value)
74
+ options.output = value;
75
+ }
76
+ }
77
+ }
78
+ return options;
79
+ }
80
+ /**
81
+ * Create Daemon configuration
82
+ */
83
+ async createConfig(options) {
84
+ const configPath = path.join(process.cwd(), 'daemon.config.json');
85
+ if (await fileHelper.exists(configPath) && !options.force) {
86
+ logger.warn('Daemon config already exists. Use --force to overwrite.');
87
+ return;
88
+ }
89
+ const config = {
90
+ version: '0.6.0',
91
+ testRunner: 'vitest',
92
+ e2eRunner: 'playwright',
93
+ performanceTool: 'k6',
94
+ generatedAt: new Date().toISOString(),
95
+ };
96
+ await fileHelper.writeJson(configPath, config);
97
+ logger.debug(`Created config: ${configPath}`);
98
+ }
99
+ /**
100
+ * Create test directories
101
+ */
102
+ async createDirectories(options) {
103
+ const baseDir = options.output ?? path.join(process.cwd(), 'tests');
104
+ await fileHelper.ensureDir(baseDir);
105
+ await fileHelper.ensureDir(path.join(baseDir, 'unit'));
106
+ await fileHelper.ensureDir(path.join(baseDir, 'integration'));
107
+ await fileHelper.ensureDir(path.join(baseDir, 'e2e'));
108
+ logger.debug(`Created test directories in: ${baseDir}`);
109
+ }
110
+ }
111
+ //# sourceMappingURL=init.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Test Command
3
+ *
4
+ * Generates and runs tests for the project.
5
+ *
6
+ * @module cli/commands/test
7
+ */
8
+ export interface TestOptions {
9
+ /** Generate tests only (don't run) */
10
+ generateOnly?: boolean;
11
+ /** Run existing tests only (don't generate) */
12
+ runOnly?: boolean;
13
+ /** Include coverage report */
14
+ coverage?: boolean;
15
+ /** Watch mode */
16
+ watch?: boolean;
17
+ /** Specific test file pattern */
18
+ pattern?: string;
19
+ /** Verbose output */
20
+ verbose?: boolean;
21
+ }
22
+ /**
23
+ * Test command for Daemon
24
+ */
25
+ export declare class TestCommand {
26
+ private readonly detector;
27
+ private readonly docker;
28
+ constructor();
29
+ /**
30
+ * Execute the test command
31
+ */
32
+ execute(args: string[]): Promise<void>;
33
+ /**
34
+ * Parse command line arguments
35
+ */
36
+ private parseArgs;
37
+ /**
38
+ * Setup Docker container for testing
39
+ */
40
+ private setupDocker;
41
+ /**
42
+ * Generate tests for the project
43
+ */
44
+ private generateTests;
45
+ /**
46
+ * Run tests for the project
47
+ */
48
+ private runTests;
49
+ /**
50
+ * Get the test runner for the framework
51
+ */
52
+ private getTestRunner;
53
+ /**
54
+ * Build the test command
55
+ */
56
+ private buildTestCommand;
57
+ }
58
+ //# sourceMappingURL=test.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/test.command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;;IAOvC;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B5C;;OAEG;IACH,OAAO,CAAC,SAAS;IA0CjB;;OAEG;YACW,WAAW;IAazB;;OAEG;YACW,aAAa;IAS3B;;OAEG;YACW,QAAQ;IAwBtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAmBrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAqBzB"}