@devness/coverit 0.1.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 (147) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +169 -0
  3. package/dist/agents/orchestrator.d.ts +21 -0
  4. package/dist/agents/orchestrator.d.ts.map +1 -0
  5. package/dist/agents/orchestrator.js +235 -0
  6. package/dist/agents/orchestrator.js.map +1 -0
  7. package/dist/agents/reporter.d.ts +13 -0
  8. package/dist/agents/reporter.d.ts.map +1 -0
  9. package/dist/agents/reporter.js +323 -0
  10. package/dist/agents/reporter.js.map +1 -0
  11. package/dist/ai/anthropic-provider.d.ts +19 -0
  12. package/dist/ai/anthropic-provider.d.ts.map +1 -0
  13. package/dist/ai/anthropic-provider.js +83 -0
  14. package/dist/ai/anthropic-provider.js.map +1 -0
  15. package/dist/ai/claude-cli-provider.d.ts +22 -0
  16. package/dist/ai/claude-cli-provider.d.ts.map +1 -0
  17. package/dist/ai/claude-cli-provider.js +197 -0
  18. package/dist/ai/claude-cli-provider.js.map +1 -0
  19. package/dist/ai/index.d.ts +15 -0
  20. package/dist/ai/index.d.ts.map +1 -0
  21. package/dist/ai/index.js +16 -0
  22. package/dist/ai/index.js.map +1 -0
  23. package/dist/ai/ollama-provider.d.ts +17 -0
  24. package/dist/ai/ollama-provider.d.ts.map +1 -0
  25. package/dist/ai/ollama-provider.js +88 -0
  26. package/dist/ai/ollama-provider.js.map +1 -0
  27. package/dist/ai/openai-provider.d.ts +20 -0
  28. package/dist/ai/openai-provider.d.ts.map +1 -0
  29. package/dist/ai/openai-provider.js +74 -0
  30. package/dist/ai/openai-provider.js.map +1 -0
  31. package/dist/ai/prompts.d.ts +36 -0
  32. package/dist/ai/prompts.d.ts.map +1 -0
  33. package/dist/ai/prompts.js +259 -0
  34. package/dist/ai/prompts.js.map +1 -0
  35. package/dist/ai/provider-factory.d.ts +26 -0
  36. package/dist/ai/provider-factory.d.ts.map +1 -0
  37. package/dist/ai/provider-factory.js +111 -0
  38. package/dist/ai/provider-factory.js.map +1 -0
  39. package/dist/ai/types.d.ts +37 -0
  40. package/dist/ai/types.d.ts.map +1 -0
  41. package/dist/ai/types.js +10 -0
  42. package/dist/ai/types.js.map +1 -0
  43. package/dist/analysis/code-scanner.d.ts +9 -0
  44. package/dist/analysis/code-scanner.d.ts.map +1 -0
  45. package/dist/analysis/code-scanner.js +409 -0
  46. package/dist/analysis/code-scanner.js.map +1 -0
  47. package/dist/analysis/dependency-graph.d.ts +9 -0
  48. package/dist/analysis/dependency-graph.d.ts.map +1 -0
  49. package/dist/analysis/dependency-graph.js +149 -0
  50. package/dist/analysis/dependency-graph.js.map +1 -0
  51. package/dist/analysis/diff-analyzer.d.ts +9 -0
  52. package/dist/analysis/diff-analyzer.d.ts.map +1 -0
  53. package/dist/analysis/diff-analyzer.js +232 -0
  54. package/dist/analysis/diff-analyzer.js.map +1 -0
  55. package/dist/analysis/index.d.ts +5 -0
  56. package/dist/analysis/index.d.ts.map +1 -0
  57. package/dist/analysis/index.js +5 -0
  58. package/dist/analysis/index.js.map +1 -0
  59. package/dist/analysis/strategy-planner.d.ts +11 -0
  60. package/dist/analysis/strategy-planner.d.ts.map +1 -0
  61. package/dist/analysis/strategy-planner.js +384 -0
  62. package/dist/analysis/strategy-planner.js.map +1 -0
  63. package/dist/cli/index.d.ts +9 -0
  64. package/dist/cli/index.d.ts.map +1 -0
  65. package/dist/cli/index.js +288 -0
  66. package/dist/cli/index.js.map +1 -0
  67. package/dist/executors/base-executor.d.ts +35 -0
  68. package/dist/executors/base-executor.d.ts.map +1 -0
  69. package/dist/executors/base-executor.js +138 -0
  70. package/dist/executors/base-executor.js.map +1 -0
  71. package/dist/executors/browser-runner.d.ts +24 -0
  72. package/dist/executors/browser-runner.d.ts.map +1 -0
  73. package/dist/executors/browser-runner.js +194 -0
  74. package/dist/executors/browser-runner.js.map +1 -0
  75. package/dist/executors/cloud-runner.d.ts +41 -0
  76. package/dist/executors/cloud-runner.d.ts.map +1 -0
  77. package/dist/executors/cloud-runner.js +153 -0
  78. package/dist/executors/cloud-runner.js.map +1 -0
  79. package/dist/executors/index.d.ts +12 -0
  80. package/dist/executors/index.d.ts.map +1 -0
  81. package/dist/executors/index.js +28 -0
  82. package/dist/executors/index.js.map +1 -0
  83. package/dist/executors/local-runner.d.ts +40 -0
  84. package/dist/executors/local-runner.d.ts.map +1 -0
  85. package/dist/executors/local-runner.js +395 -0
  86. package/dist/executors/local-runner.js.map +1 -0
  87. package/dist/executors/reporter.d.ts +6 -0
  88. package/dist/executors/reporter.d.ts.map +1 -0
  89. package/dist/executors/reporter.js +6 -0
  90. package/dist/executors/reporter.js.map +1 -0
  91. package/dist/executors/simulator-runner.d.ts +30 -0
  92. package/dist/executors/simulator-runner.d.ts.map +1 -0
  93. package/dist/executors/simulator-runner.js +339 -0
  94. package/dist/executors/simulator-runner.js.map +1 -0
  95. package/dist/generators/api-test.d.ts +22 -0
  96. package/dist/generators/api-test.d.ts.map +1 -0
  97. package/dist/generators/api-test.js +235 -0
  98. package/dist/generators/api-test.js.map +1 -0
  99. package/dist/generators/base-generator.d.ts +79 -0
  100. package/dist/generators/base-generator.d.ts.map +1 -0
  101. package/dist/generators/base-generator.js +234 -0
  102. package/dist/generators/base-generator.js.map +1 -0
  103. package/dist/generators/desktop-test.d.ts +22 -0
  104. package/dist/generators/desktop-test.d.ts.map +1 -0
  105. package/dist/generators/desktop-test.js +290 -0
  106. package/dist/generators/desktop-test.js.map +1 -0
  107. package/dist/generators/e2e-browser.d.ts +19 -0
  108. package/dist/generators/e2e-browser.d.ts.map +1 -0
  109. package/dist/generators/e2e-browser.js +233 -0
  110. package/dist/generators/e2e-browser.js.map +1 -0
  111. package/dist/generators/index.d.ts +21 -0
  112. package/dist/generators/index.d.ts.map +1 -0
  113. package/dist/generators/index.js +66 -0
  114. package/dist/generators/index.js.map +1 -0
  115. package/dist/generators/mobile-test.d.ts +22 -0
  116. package/dist/generators/mobile-test.d.ts.map +1 -0
  117. package/dist/generators/mobile-test.js +286 -0
  118. package/dist/generators/mobile-test.js.map +1 -0
  119. package/dist/generators/unit-test.d.ts +23 -0
  120. package/dist/generators/unit-test.d.ts.map +1 -0
  121. package/dist/generators/unit-test.js +282 -0
  122. package/dist/generators/unit-test.js.map +1 -0
  123. package/dist/index.d.ts +12 -0
  124. package/dist/index.d.ts.map +1 -0
  125. package/dist/index.js +13 -0
  126. package/dist/index.js.map +1 -0
  127. package/dist/mcp/server.d.ts +8 -0
  128. package/dist/mcp/server.d.ts.map +1 -0
  129. package/dist/mcp/server.js +217 -0
  130. package/dist/mcp/server.js.map +1 -0
  131. package/dist/types/index.d.ts +295 -0
  132. package/dist/types/index.d.ts.map +1 -0
  133. package/dist/types/index.js +8 -0
  134. package/dist/types/index.js.map +1 -0
  135. package/dist/utils/framework-detector.d.ts +28 -0
  136. package/dist/utils/framework-detector.d.ts.map +1 -0
  137. package/dist/utils/framework-detector.js +184 -0
  138. package/dist/utils/framework-detector.js.map +1 -0
  139. package/dist/utils/git.d.ts +33 -0
  140. package/dist/utils/git.d.ts.map +1 -0
  141. package/dist/utils/git.js +82 -0
  142. package/dist/utils/git.js.map +1 -0
  143. package/dist/utils/logger.d.ts +17 -0
  144. package/dist/utils/logger.d.ts.map +1 -0
  145. package/dist/utils/logger.js +47 -0
  146. package/dist/utils/logger.js.map +1 -0
  147. package/package.json +86 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy-planner.js","sourceRoot":"","sources":["../../src/analysis/strategy-planner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Coverit — CLI
4
+ *
5
+ * Interactive command-line interface for scanning, generating,
6
+ * running tests, and viewing reports.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG"}
@@ -0,0 +1,288 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Coverit — CLI
4
+ *
5
+ * Interactive command-line interface for scanning, generating,
6
+ * running tests, and viewing reports.
7
+ */
8
+ import { Command } from "commander";
9
+ import chalk from "chalk";
10
+ import ora from "ora";
11
+ import { readFile } from "node:fs/promises";
12
+ import { resolve, join } from "node:path";
13
+ import { orchestrate } from "../agents/orchestrator.js";
14
+ import { detectProjectInfo } from "../utils/framework-detector.js";
15
+ import { isGitRepo } from "../utils/git.js";
16
+ import { logger } from "../utils/logger.js";
17
+ const VERSION = "0.1.0";
18
+ const BANNER = chalk.bold.cyan(`
19
+ coverit v${VERSION}
20
+ Your code, covered.
21
+ `);
22
+ // ─── Shared helpers ──────────────────────────────────────────
23
+ function parseTestTypes(raw) {
24
+ if (!raw)
25
+ return undefined;
26
+ const valid = [
27
+ "unit",
28
+ "integration",
29
+ "api",
30
+ "e2e-browser",
31
+ "e2e-mobile",
32
+ "e2e-desktop",
33
+ "snapshot",
34
+ "performance",
35
+ ];
36
+ return raw
37
+ .split(",")
38
+ .map((t) => t.trim())
39
+ .filter((t) => valid.includes(t));
40
+ }
41
+ function resolveProjectRoot(pathArg) {
42
+ return resolve(pathArg ?? process.cwd());
43
+ }
44
+ function createEventHandler(verbose) {
45
+ return (event) => {
46
+ switch (event.type) {
47
+ case "analysis:start":
48
+ logger.info(`Analyzing ${event.data.files} changed files...`);
49
+ break;
50
+ case "analysis:complete":
51
+ logger.success(`Strategy ready: ${event.data.strategy.plans.length} test plans`);
52
+ break;
53
+ case "generation:start":
54
+ if (verbose) {
55
+ logger.info(`Generating: ${event.data.plan.description}`);
56
+ }
57
+ break;
58
+ case "generation:complete": {
59
+ const count = event.data.result.tests.length;
60
+ logger.success(`Generated ${count} test file(s)`);
61
+ break;
62
+ }
63
+ case "execution:start":
64
+ if (verbose) {
65
+ logger.info(`Running: ${event.data.plan.description} [${event.data.environment}]`);
66
+ }
67
+ break;
68
+ case "execution:complete": {
69
+ const r = event.data.result;
70
+ const status = r.status === "passed"
71
+ ? chalk.green("PASSED")
72
+ : chalk.red(r.status.toUpperCase());
73
+ logger.info(`${status} — ${r.passed}/${r.totalTests} passed (${r.duration}ms)`);
74
+ break;
75
+ }
76
+ case "report:complete":
77
+ logger.success("Report saved to .coverit/last-report.json");
78
+ break;
79
+ case "error":
80
+ logger.error(event.data.message);
81
+ break;
82
+ }
83
+ };
84
+ }
85
+ // ─── CLI Program ─────────────────────────────────────────────
86
+ const program = new Command();
87
+ program
88
+ .name("coverit")
89
+ .version(VERSION)
90
+ .description("AI-powered test generation and execution")
91
+ .option("--type <types>", "Comma-separated test types (unit,api,e2e-browser,...)")
92
+ .option("--env <env>", "Execution environment (local|cloud-sandbox)", "local")
93
+ .option("--coverage", "Collect coverage data", false)
94
+ .option("--dry-run", "Analyze and plan without generating or executing", false)
95
+ .option("--verbose", "Show detailed progress output", false)
96
+ .hook("preAction", () => {
97
+ console.log(BANNER);
98
+ });
99
+ // ─── scan ────────────────────────────────────────────────────
100
+ program
101
+ .command("scan")
102
+ .argument("[path]", "Project root path", ".")
103
+ .description("Analyze codebase and display test strategy")
104
+ .action(async (pathArg) => {
105
+ const projectRoot = resolveProjectRoot(pathArg);
106
+ const opts = program.opts();
107
+ const spinner = ora("Scanning project...").start();
108
+ try {
109
+ if (!(await isGitRepo(projectRoot))) {
110
+ spinner.warn("Not a git repository — analysis will be limited");
111
+ }
112
+ const projectInfo = await detectProjectInfo(projectRoot);
113
+ spinner.text = "Building test strategy...";
114
+ const config = {
115
+ projectRoot,
116
+ testTypes: parseTestTypes(opts["type"]),
117
+ skipExecution: true,
118
+ generateOnly: true,
119
+ };
120
+ const report = await orchestrate(config, createEventHandler(opts["verbose"]));
121
+ spinner.stop();
122
+ // Display results
123
+ console.log(chalk.bold("\n Project Info"));
124
+ logger.table({
125
+ Name: projectInfo.name,
126
+ Framework: projectInfo.framework,
127
+ "Test Framework": projectInfo.testFramework,
128
+ "Package Manager": projectInfo.packageManager,
129
+ Language: projectInfo.language,
130
+ "Existing Tests": projectInfo.hasExistingTests ? "Yes" : "No",
131
+ });
132
+ console.log(chalk.bold("\n Test Plans"));
133
+ for (const plan of report.strategy.plans) {
134
+ const priority = plan.priority === "critical"
135
+ ? chalk.red(plan.priority)
136
+ : plan.priority === "high"
137
+ ? chalk.yellow(plan.priority)
138
+ : chalk.gray(plan.priority);
139
+ console.log(` ${chalk.white(plan.type.padEnd(14))} ${priority.padEnd(20)} ${plan.description} (${chalk.cyan(`~${plan.estimatedTests} tests`)})`);
140
+ }
141
+ console.log(chalk.bold(`\n Total estimated tests: ${chalk.cyan(String(report.strategy.plans.reduce((s, p) => s + p.estimatedTests, 0)))}`));
142
+ console.log(chalk.bold(` Execution phases: ${chalk.cyan(String(report.strategy.executionOrder.length))}`));
143
+ }
144
+ catch (err) {
145
+ spinner.fail("Scan failed");
146
+ logger.error(err instanceof Error ? err.message : String(err));
147
+ process.exit(1);
148
+ }
149
+ });
150
+ // ─── generate ────────────────────────────────────────────────
151
+ program
152
+ .command("generate")
153
+ .argument("[path]", "Project root path", ".")
154
+ .description("Generate test files")
155
+ .action(async (pathArg) => {
156
+ const projectRoot = resolveProjectRoot(pathArg);
157
+ const opts = program.opts();
158
+ const spinner = ora("Analyzing and generating tests...").start();
159
+ try {
160
+ const config = {
161
+ projectRoot,
162
+ testTypes: parseTestTypes(opts["type"]),
163
+ generateOnly: true,
164
+ };
165
+ const report = await orchestrate(config, createEventHandler(opts["verbose"]));
166
+ spinner.stop();
167
+ console.log(chalk.bold("\n Generated Tests"));
168
+ for (const result of report.results) {
169
+ const icon = result.status === "skipped" ? chalk.yellow("○") : chalk.green("●");
170
+ console.log(` ${icon} Plan ${result.planId}: ${result.totalTests} test(s)`);
171
+ }
172
+ logger.success(`\nFiles written to .coverit/generated/`);
173
+ }
174
+ catch (err) {
175
+ spinner.fail("Generation failed");
176
+ logger.error(err instanceof Error ? err.message : String(err));
177
+ process.exit(1);
178
+ }
179
+ });
180
+ // ─── run ─────────────────────────────────────────────────────
181
+ program
182
+ .command("run")
183
+ .argument("[path]", "Project root path", ".")
184
+ .description("Full pipeline: analyze, generate, run, and report")
185
+ .action(async (pathArg) => {
186
+ const projectRoot = resolveProjectRoot(pathArg);
187
+ const opts = program.opts();
188
+ const spinner = ora("Starting full pipeline...").start();
189
+ try {
190
+ const config = {
191
+ projectRoot,
192
+ testTypes: parseTestTypes(opts["type"]),
193
+ environment: opts["env"] ?? "local",
194
+ coverageThreshold: opts["coverage"] ? 0 : undefined,
195
+ };
196
+ spinner.text = "Analyzing...";
197
+ const report = await orchestrate(config, (event) => {
198
+ // Update spinner text based on pipeline progress
199
+ switch (event.type) {
200
+ case "analysis:start":
201
+ spinner.text = `Analyzing ${event.data.files} files...`;
202
+ break;
203
+ case "analysis:complete":
204
+ spinner.text = "Generating tests...";
205
+ break;
206
+ case "execution:start":
207
+ spinner.text = `Running: ${event.data.plan.description}`;
208
+ break;
209
+ case "execution:complete":
210
+ spinner.text = "Processing results...";
211
+ break;
212
+ case "report:complete":
213
+ spinner.stop();
214
+ break;
215
+ default:
216
+ break;
217
+ }
218
+ // Also forward to standard handler for verbose output
219
+ if (opts["verbose"]) {
220
+ createEventHandler(true)(event);
221
+ }
222
+ });
223
+ spinner.stop();
224
+ // Display summary
225
+ console.log(chalk.bold("\n Results Summary"));
226
+ const s = report.summary;
227
+ const statusColor = s.status === "all-passed"
228
+ ? chalk.green
229
+ : s.status === "has-failures"
230
+ ? chalk.red
231
+ : chalk.yellow;
232
+ logger.table({
233
+ Status: statusColor(s.status),
234
+ "Total Tests": s.totalTests,
235
+ Passed: chalk.green(String(s.passed)),
236
+ Failed: s.failed > 0 ? chalk.red(String(s.failed)) : String(s.failed),
237
+ Skipped: String(s.skipped),
238
+ Errors: s.errorCount > 0 ? chalk.red(String(s.errorCount)) : String(s.errorCount),
239
+ Duration: `${report.duration}ms`,
240
+ });
241
+ if (s.coverage) {
242
+ console.log(chalk.bold("\n Coverage"));
243
+ logger.table({
244
+ Lines: `${s.coverage.lines.percentage.toFixed(1)}%`,
245
+ Branches: `${s.coverage.branches.percentage.toFixed(1)}%`,
246
+ Functions: `${s.coverage.functions.percentage.toFixed(1)}%`,
247
+ Statements: `${s.coverage.statements.percentage.toFixed(1)}%`,
248
+ });
249
+ }
250
+ // Non-zero exit if failures
251
+ if (s.status !== "all-passed") {
252
+ process.exit(1);
253
+ }
254
+ }
255
+ catch (err) {
256
+ spinner.fail("Pipeline failed");
257
+ logger.error(err instanceof Error ? err.message : String(err));
258
+ process.exit(1);
259
+ }
260
+ });
261
+ // ─── report ──────────────────────────────────────────────────
262
+ program
263
+ .command("report")
264
+ .description("Show the last saved report")
265
+ .action(async () => {
266
+ const reportPath = join(process.cwd(), ".coverit", "last-report.json");
267
+ try {
268
+ const raw = await readFile(reportPath, "utf-8");
269
+ const report = JSON.parse(raw);
270
+ console.log(chalk.bold("\n Last Report"));
271
+ console.log(chalk.gray(` ${report.timestamp}\n`));
272
+ const s = report.summary;
273
+ logger.table({
274
+ Status: s.status,
275
+ "Total Tests": s.totalTests,
276
+ Passed: s.passed,
277
+ Failed: s.failed,
278
+ Skipped: s.skipped,
279
+ Errors: s.errorCount,
280
+ Duration: `${report.duration}ms`,
281
+ });
282
+ }
283
+ catch {
284
+ logger.warn("No report found. Run `coverit run` to generate one.");
285
+ }
286
+ });
287
+ program.parse();
288
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Base Executor — Abstract foundation for all test execution strategies.
3
+ *
4
+ * Provides shared utilities: timeout wrapping, retry logic, JSON parsing,
5
+ * coverage normalization, and result scaffolding. Concrete executors only
6
+ * need to implement `execute()`.
7
+ */
8
+ import type { GeneratedTest, ExecutionConfig, ExecutionResult, CoverageResult } from "../types/index.js";
9
+ export declare abstract class BaseExecutor {
10
+ abstract execute(test: GeneratedTest, config: ExecutionConfig): Promise<ExecutionResult>;
11
+ /**
12
+ * Extract the first valid JSON object or array from mixed stdout.
13
+ * Test runners often emit logs before/after the JSON payload.
14
+ */
15
+ protected parseJsonOutput(stdout: string): any;
16
+ /**
17
+ * Race a promise against a timeout. Rejects with a descriptive error
18
+ * so callers can map it to status: "timeout".
19
+ */
20
+ protected withTimeout<T>(promise: Promise<T>, ms: number): Promise<T>;
21
+ /**
22
+ * Retry a function up to `retries` times. Only retries on thrown errors,
23
+ * not on logical failures inside the returned value.
24
+ */
25
+ protected withRetry<T>(fn: () => Promise<T>, retries: number): Promise<T>;
26
+ /** Scaffold an ExecutionResult with safe defaults. */
27
+ protected createBaseResult(planId: string): ExecutionResult;
28
+ /**
29
+ * Normalize Istanbul / v8 coverage JSON into our CoverageResult shape.
30
+ * Accepts the parsed `coverageMap` or `total` object that both Istanbul
31
+ * reporters and c8/v8-to-istanbul produce.
32
+ */
33
+ protected parseCoverage(coverageJson: any): CoverageResult | null;
34
+ }
35
+ //# sourceMappingURL=base-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-executor.d.ts","sourceRoot":"","sources":["../../src/executors/base-executor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAE3B,8BAAsB,YAAY;IAChC,QAAQ,CAAC,OAAO,CACd,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,eAAe,CAAC;IAE3B;;;OAGG;IACH,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;IAgC9C;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAmBrE;;;OAGG;cACa,SAAS,CAAC,CAAC,EACzB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,CAAC,CAAC;IAkBb,sDAAsD;IACtD,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;IAe3D;;;;OAIG;IACH,SAAS,CAAC,aAAa,CAAC,YAAY,EAAE,GAAG,GAAG,cAAc,GAAG,IAAI;CAsClE"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Base Executor — Abstract foundation for all test execution strategies.
3
+ *
4
+ * Provides shared utilities: timeout wrapping, retry logic, JSON parsing,
5
+ * coverage normalization, and result scaffolding. Concrete executors only
6
+ * need to implement `execute()`.
7
+ */
8
+ export class BaseExecutor {
9
+ /**
10
+ * Extract the first valid JSON object or array from mixed stdout.
11
+ * Test runners often emit logs before/after the JSON payload.
12
+ */
13
+ parseJsonOutput(stdout) {
14
+ // Try parsing the entire string first (fast path)
15
+ try {
16
+ return JSON.parse(stdout);
17
+ }
18
+ catch {
19
+ // Fall through to bracket-matching
20
+ }
21
+ // Scan for the outermost JSON object or array
22
+ const startIdx = stdout.search(/[{\[]/);
23
+ if (startIdx === -1)
24
+ return null;
25
+ const openChar = stdout[startIdx];
26
+ const closeChar = openChar === "{" ? "}" : "]";
27
+ let depth = 0;
28
+ for (let i = startIdx; i < stdout.length; i++) {
29
+ if (stdout[i] === openChar)
30
+ depth++;
31
+ else if (stdout[i] === closeChar)
32
+ depth--;
33
+ if (depth === 0) {
34
+ try {
35
+ return JSON.parse(stdout.slice(startIdx, i + 1));
36
+ }
37
+ catch {
38
+ return null;
39
+ }
40
+ }
41
+ }
42
+ return null;
43
+ }
44
+ /**
45
+ * Race a promise against a timeout. Rejects with a descriptive error
46
+ * so callers can map it to status: "timeout".
47
+ */
48
+ withTimeout(promise, ms) {
49
+ return new Promise((resolve, reject) => {
50
+ const timer = setTimeout(() => reject(new Error(`Execution timed out after ${ms}ms`)), ms);
51
+ promise
52
+ .then((value) => {
53
+ clearTimeout(timer);
54
+ resolve(value);
55
+ })
56
+ .catch((err) => {
57
+ clearTimeout(timer);
58
+ reject(err);
59
+ });
60
+ });
61
+ }
62
+ /**
63
+ * Retry a function up to `retries` times. Only retries on thrown errors,
64
+ * not on logical failures inside the returned value.
65
+ */
66
+ async withRetry(fn, retries) {
67
+ let lastError;
68
+ for (let attempt = 0; attempt <= retries; attempt++) {
69
+ try {
70
+ return await fn();
71
+ }
72
+ catch (err) {
73
+ lastError = err instanceof Error ? err : new Error(String(err));
74
+ if (attempt < retries) {
75
+ // Exponential back-off: 200ms, 400ms, 800ms...
76
+ await new Promise((r) => setTimeout(r, 200 * 2 ** attempt));
77
+ }
78
+ }
79
+ }
80
+ throw lastError;
81
+ }
82
+ /** Scaffold an ExecutionResult with safe defaults. */
83
+ createBaseResult(planId) {
84
+ return {
85
+ planId,
86
+ status: "error",
87
+ totalTests: 0,
88
+ passed: 0,
89
+ failed: 0,
90
+ skipped: 0,
91
+ duration: 0,
92
+ coverage: null,
93
+ failures: [],
94
+ output: "",
95
+ };
96
+ }
97
+ /**
98
+ * Normalize Istanbul / v8 coverage JSON into our CoverageResult shape.
99
+ * Accepts the parsed `coverageMap` or `total` object that both Istanbul
100
+ * reporters and c8/v8-to-istanbul produce.
101
+ */
102
+ parseCoverage(coverageJson) {
103
+ if (!coverageJson)
104
+ return null;
105
+ try {
106
+ // Istanbul summary format: { total: { lines: { total, covered, pct }, ... } }
107
+ const summary = coverageJson.total ?? coverageJson;
108
+ const metric = (key) => {
109
+ const raw = summary[key];
110
+ if (!raw || typeof raw.total !== "number") {
111
+ return { total: 0, covered: 0, percentage: 0 };
112
+ }
113
+ return {
114
+ total: raw.total,
115
+ covered: raw.covered ?? 0,
116
+ percentage: typeof raw.pct === "number"
117
+ ? raw.pct
118
+ : raw.total > 0
119
+ ? (raw.covered / raw.total) * 100
120
+ : 0,
121
+ };
122
+ };
123
+ const result = {
124
+ lines: metric("lines"),
125
+ branches: metric("branches"),
126
+ functions: metric("functions"),
127
+ statements: metric("statements"),
128
+ };
129
+ // Only return if we actually found data
130
+ const hasData = result.lines.total > 0 || result.statements.total > 0;
131
+ return hasData ? result : null;
132
+ }
133
+ catch {
134
+ return null;
135
+ }
136
+ }
137
+ }
138
+ //# sourceMappingURL=base-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-executor.js","sourceRoot":"","sources":["../../src/executors/base-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Browser Runner — Execute Playwright E2E tests with full browser context.
3
+ *
4
+ * Launches the Playwright test runner in a subprocess, configured for
5
+ * headless execution with JSON reporting. Handles screenshot capture
6
+ * on failure and graceful cleanup of browser processes.
7
+ */
8
+ import { BaseExecutor } from "./base-executor.js";
9
+ import type { GeneratedTest, ExecutionConfig, ExecutionResult } from "../types/index.js";
10
+ export declare class BrowserRunner extends BaseExecutor {
11
+ execute(test: GeneratedTest, config: ExecutionConfig): Promise<ExecutionResult>;
12
+ private resolveBrowserConfig;
13
+ /**
14
+ * Try to detect a dev server URL from common config files.
15
+ * Falls back to null — Playwright config in the project should define it.
16
+ */
17
+ private detectBaseURL;
18
+ private runPlaywright;
19
+ private parsePlaywrightOutput;
20
+ private extractFailures;
21
+ private findProjectRoot;
22
+ private combineOutput;
23
+ }
24
+ //# sourceMappingURL=browser-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-runner.d.ts","sourceRoot":"","sources":["../../src/executors/browser-runner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,eAAe,EAEhB,MAAM,mBAAmB,CAAC;AAS3B,qBAAa,aAAc,SAAQ,YAAY;IACvC,OAAO,CACX,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,eAAe,CAAC;IAsD3B,OAAO,CAAC,oBAAoB;IAW5B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,aAAa;IAmErB,OAAO,CAAC,qBAAqB;IA6B7B,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,aAAa;CAMtB"}