agent-bober 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { readFile } from "node:fs/promises";
1
+ import { readFile, readdir } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
3
  import { execa } from "execa";
4
4
  async function hasPlaywright(projectRoot) {
@@ -12,6 +12,80 @@ async function hasPlaywright(projectRoot) {
12
12
  return false;
13
13
  }
14
14
  }
15
+ async function hasPlaywrightConfig(projectRoot) {
16
+ const configNames = [
17
+ "playwright.config.ts",
18
+ "playwright.config.js",
19
+ "playwright.config.mjs",
20
+ ];
21
+ for (const name of configNames) {
22
+ try {
23
+ await readFile(join(projectRoot, name), "utf-8");
24
+ return true;
25
+ }
26
+ catch {
27
+ // continue
28
+ }
29
+ }
30
+ return false;
31
+ }
32
+ async function hasE2eTests(projectRoot) {
33
+ try {
34
+ const entries = await readdir(join(projectRoot, "e2e"));
35
+ return entries.some((e) => e.endsWith(".spec.ts") || e.endsWith(".spec.js") || e.endsWith(".test.ts") || e.endsWith(".test.js"));
36
+ }
37
+ catch {
38
+ return false;
39
+ }
40
+ }
41
+ /**
42
+ * Check if a specific port is in use by attempting to parse lsof output.
43
+ * Returns true if the port appears to be in use.
44
+ */
45
+ async function isPortInUse(port) {
46
+ try {
47
+ const result = await execa("lsof", ["-i", `:${port}`, "-t"], {
48
+ reject: false,
49
+ timeout: 5000,
50
+ });
51
+ return result.exitCode === 0 && (result.stdout ?? "").trim().length > 0;
52
+ }
53
+ catch {
54
+ return false;
55
+ }
56
+ }
57
+ /**
58
+ * Extract the port number from a playwright.config.ts or bober.config.json.
59
+ * Falls back to 3000 if nothing can be determined.
60
+ */
61
+ async function detectPort(projectRoot, config) {
62
+ // Try to parse port from playwright.config.ts
63
+ try {
64
+ const pwConfig = await readFile(join(projectRoot, "playwright.config.ts"), "utf-8");
65
+ // Look for port: <number> in the webServer block
66
+ const portMatch = pwConfig.match(/port\s*:\s*(\d+)/);
67
+ if (portMatch) {
68
+ return parseInt(portMatch[1], 10);
69
+ }
70
+ // Look for baseURL with port
71
+ const urlMatch = pwConfig.match(/baseURL\s*:\s*['"]https?:\/\/[^:]+:(\d+)/);
72
+ if (urlMatch) {
73
+ return parseInt(urlMatch[1], 10);
74
+ }
75
+ }
76
+ catch {
77
+ // No playwright config — continue
78
+ }
79
+ // Try to extract port from the dev command
80
+ const devCmd = config.commands.dev ?? "";
81
+ const portFlag = devCmd.match(/--port\s+(\d+)|--port=(\d+)|-p\s+(\d+)/);
82
+ if (portFlag) {
83
+ const portStr = portFlag[1] ?? portFlag[2] ?? portFlag[3];
84
+ if (portStr)
85
+ return parseInt(portStr, 10);
86
+ }
87
+ return 3000;
88
+ }
15
89
  function flattenSuites(suite, prefix = "") {
16
90
  const tests = [];
17
91
  const suiteName = prefix ? `${prefix} > ${suite.title}` : suite.title;
@@ -50,7 +124,38 @@ function parsePlaywrightJson(raw) {
50
124
  return null;
51
125
  }
52
126
  }
53
- async function startDevServer(projectRoot, devCommand, waitMs = 5000) {
127
+ /**
128
+ * Collect screenshot paths from the test-results directory.
129
+ * Scans one level of subdirectories (Playwright creates one folder per test).
130
+ */
131
+ async function collectScreenshots(projectRoot) {
132
+ const screenshots = [];
133
+ const resultsDir = join(projectRoot, "test-results");
134
+ try {
135
+ const topEntries = await readdir(resultsDir);
136
+ for (const topEntry of topEntries) {
137
+ const subDir = join(resultsDir, topEntry);
138
+ try {
139
+ const subEntries = await readdir(subDir);
140
+ for (const entry of subEntries) {
141
+ if (entry.endsWith(".png") ||
142
+ entry.endsWith(".jpg") ||
143
+ entry.endsWith(".jpeg")) {
144
+ screenshots.push(join("test-results", topEntry, entry));
145
+ }
146
+ }
147
+ }
148
+ catch {
149
+ // Not a directory or inaccessible — skip
150
+ }
151
+ }
152
+ }
153
+ catch {
154
+ // test-results directory does not exist — that's fine
155
+ }
156
+ return screenshots;
157
+ }
158
+ async function startDevServer(projectRoot, devCommand, waitMs = 8000) {
54
159
  const [cmd, ...args] = devCommand.split(/\s+/);
55
160
  const child = execa(cmd, args, {
56
161
  cwd: projectRoot,
@@ -63,7 +168,21 @@ async function startDevServer(projectRoot, devCommand, waitMs = 5000) {
63
168
  return {
64
169
  process: child,
65
170
  kill: () => {
66
- child.kill("SIGTERM");
171
+ try {
172
+ child.kill("SIGTERM");
173
+ // Give SIGTERM a moment, then force kill
174
+ setTimeout(() => {
175
+ try {
176
+ child.kill("SIGKILL");
177
+ }
178
+ catch {
179
+ // Process already dead
180
+ }
181
+ }, 3000);
182
+ }
183
+ catch {
184
+ // Process already dead
185
+ }
67
186
  },
68
187
  };
69
188
  }
@@ -79,12 +198,56 @@ export class PlaywrightEvaluator {
79
198
  const { projectRoot, config, strategy } = context;
80
199
  const timestamp = new Date().toISOString();
81
200
  const timeout = strategy.config?.timeout ?? DEFAULT_TIMEOUT_MS;
82
- const shouldStartServer = strategy.config?.startServer ?? true;
201
+ // Check if Playwright is installed at all
202
+ if (!(await hasPlaywright(projectRoot))) {
203
+ return {
204
+ evaluator: this.name,
205
+ passed: true,
206
+ score: undefined,
207
+ details: [],
208
+ summary: "Playwright not installed. Skipped.",
209
+ feedback: "Playwright is not installed in this project. Run /bober-playwright setup to initialize. Marked as skipped, not failed.",
210
+ timestamp,
211
+ };
212
+ }
213
+ // Check if playwright.config.ts exists
214
+ if (!(await hasPlaywrightConfig(projectRoot))) {
215
+ return {
216
+ evaluator: this.name,
217
+ passed: true,
218
+ score: undefined,
219
+ details: [],
220
+ summary: "Playwright config not found. Skipped.",
221
+ feedback: "No playwright.config.ts found. Run /bober-playwright setup to create one. Marked as skipped, not failed.",
222
+ timestamp,
223
+ };
224
+ }
225
+ // Check if there are any E2E test files
226
+ if (!(await hasE2eTests(projectRoot))) {
227
+ return {
228
+ evaluator: this.name,
229
+ passed: true,
230
+ score: undefined,
231
+ details: [],
232
+ summary: "No E2E test files found. Skipped.",
233
+ feedback: "No test files found in e2e/ directory. Use /bober-playwright to generate tests. Marked as skipped, not failed.",
234
+ timestamp,
235
+ };
236
+ }
237
+ // Detect the port and check if the webServer block will handle the dev server
238
+ const port = await detectPort(projectRoot, config);
239
+ const hasWebServerConfig = await this.configHasWebServer(projectRoot);
83
240
  let server = null;
84
241
  try {
85
- // Start dev server if configured and requested.
86
- if (shouldStartServer && config.commands.dev) {
87
- server = await startDevServer(projectRoot, config.commands.dev);
242
+ // Only start a separate dev server if:
243
+ // 1. The playwright config does NOT have a webServer block (Playwright won't start one)
244
+ // 2. The port is not already in use (someone else started it)
245
+ // 3. There is a dev command configured
246
+ if (!hasWebServerConfig && config.commands.dev) {
247
+ const portBusy = await isPortInUse(port);
248
+ if (!portBusy) {
249
+ server = await startDevServer(projectRoot, config.commands.dev);
250
+ }
88
251
  }
89
252
  return await this.runPlaywright(projectRoot, strategy, timeout, timestamp);
90
253
  }
@@ -94,6 +257,19 @@ export class PlaywrightEvaluator {
94
257
  }
95
258
  }
96
259
  }
260
+ /**
261
+ * Check if the playwright.config.ts has a webServer configuration block.
262
+ * If it does, Playwright will manage the dev server itself.
263
+ */
264
+ async configHasWebServer(projectRoot) {
265
+ try {
266
+ const configContent = await readFile(join(projectRoot, "playwright.config.ts"), "utf-8");
267
+ return configContent.includes("webServer");
268
+ }
269
+ catch {
270
+ return false;
271
+ }
272
+ }
97
273
  async runPlaywright(projectRoot, strategy, timeout, timestamp) {
98
274
  const args = ["playwright", "test", "--reporter", "json"];
99
275
  // Add base URL if configured.
@@ -114,9 +290,13 @@ export class PlaywrightEvaluator {
114
290
  },
115
291
  });
116
292
  const allOutput = result.all ?? result.stdout ?? "";
117
- const report = parsePlaywrightJson(allOutput);
293
+ // Also try reading the JSON results file directly (more reliable than stdout parsing)
294
+ let report = parsePlaywrightJson(allOutput);
295
+ if (!report) {
296
+ report = await this.readJsonResultsFile(projectRoot);
297
+ }
118
298
  if (report) {
119
- return this.buildFromReport(report, timestamp);
299
+ return this.buildFromReport(report, projectRoot, timestamp);
120
300
  }
121
301
  // Couldn't parse JSON — fall back to exit code.
122
302
  if (result.exitCode === 0) {
@@ -152,7 +332,31 @@ export class PlaywrightEvaluator {
152
332
  return this.errorResult(err, timestamp);
153
333
  }
154
334
  }
155
- buildFromReport(report, timestamp) {
335
+ /**
336
+ * Try to read the JSON results file from the e2e-results directory.
337
+ * This is more reliable than parsing stdout because the JSON reporter
338
+ * writes directly to a file.
339
+ */
340
+ async readJsonResultsFile(projectRoot) {
341
+ const possiblePaths = [
342
+ join(projectRoot, "e2e-results", "results.json"),
343
+ join(projectRoot, "test-results.json"),
344
+ join(projectRoot, "playwright-report", "results.json"),
345
+ ];
346
+ for (const filePath of possiblePaths) {
347
+ try {
348
+ const raw = await readFile(filePath, "utf-8");
349
+ const report = parsePlaywrightJson(raw);
350
+ if (report)
351
+ return report;
352
+ }
353
+ catch {
354
+ // File doesn't exist — try next
355
+ }
356
+ }
357
+ return null;
358
+ }
359
+ async buildFromReport(report, projectRoot, timestamp) {
156
360
  const allTests = [];
157
361
  for (const suite of report.suites) {
158
362
  allTests.push(...flattenSuites(suite));
@@ -162,12 +366,25 @@ export class PlaywrightEvaluator {
162
366
  const failed = allTests.filter((t) => t.status === "failed" || t.status === "timedOut").length;
163
367
  const skipped = allTests.filter((t) => t.status === "skipped").length;
164
368
  const details = [];
369
+ // Collect screenshots from the test-results directory for enriching feedback
370
+ const screenshots = await collectScreenshots(projectRoot);
165
371
  for (const test of allTests) {
166
372
  if (test.status === "failed" || test.status === "timedOut") {
167
373
  let message = test.error ?? `Test ${test.status}`;
374
+ // Include screenshot path from the test attachment or from the directory scan
168
375
  if (test.screenshot) {
169
376
  message += `\nScreenshot: ${test.screenshot}`;
170
377
  }
378
+ else {
379
+ // Try to find a matching screenshot by test name
380
+ const matchingScreenshot = screenshots.find((s) => s.toLowerCase().includes(test.title
381
+ .toLowerCase()
382
+ .replace(/[^a-z0-9]+/g, "-")
383
+ .slice(0, 40)));
384
+ if (matchingScreenshot) {
385
+ message += `\nScreenshot: ${matchingScreenshot}`;
386
+ }
387
+ }
171
388
  details.push({
172
389
  criterion: `e2e: ${test.title}`,
173
390
  passed: false,
@@ -186,6 +403,11 @@ export class PlaywrightEvaluator {
186
403
  if (skipped > 0)
187
404
  summaryParts.push(`${skipped} skipped`);
188
405
  summaryParts.push(`${total} total`);
406
+ // Append screenshot summary if failures have screenshots
407
+ const screenshotCount = details.filter((d) => d.message.includes("Screenshot:")).length;
408
+ if (screenshotCount > 0) {
409
+ summaryParts.push(`${screenshotCount} failure screenshot(s) captured`);
410
+ }
189
411
  return {
190
412
  evaluator: this.name,
191
413
  passed: allPassed,
@@ -204,13 +426,38 @@ export class PlaywrightEvaluator {
204
426
  const loc = d.file ? ` ${d.file}${d.line ? `:${d.line}` : ""}` : " (unknown)";
205
427
  lines.push(`${loc}`);
206
428
  lines.push(` ${d.criterion}: ${d.message.split("\n")[0]}`);
429
+ // Include screenshot info if present
430
+ const screenshotLine = d.message.split("\n").find((l) => l.startsWith("Screenshot:"));
431
+ if (screenshotLine) {
432
+ lines.push(` ${screenshotLine}`);
433
+ }
207
434
  }
208
435
  if (details.length > 10) {
209
436
  lines.push(` ... and ${details.length - 10} more failures`);
210
437
  }
438
+ lines.push("");
439
+ lines.push("Investigate the failing assertions and fix either the UI code or the test expectations.");
440
+ lines.push("Check test-results/ for failure screenshots if available.");
211
441
  return lines.join("\n");
212
442
  }
213
443
  errorResult(err, timestamp) {
444
+ const message = err instanceof Error ? err.message : String(err);
445
+ // Detect specific error conditions for better feedback
446
+ let feedback = `Playwright could not be run: ${message}`;
447
+ if (message.includes("ENOENT") || message.includes("not found")) {
448
+ feedback =
449
+ "Playwright binary not found. Run 'npx playwright install chromium' to install browser binaries.";
450
+ }
451
+ else if (message.includes("ETIMEDOUT") || message.includes("timeout")) {
452
+ feedback =
453
+ "Playwright tests timed out. This usually means the dev server failed to start or the application is hanging. " +
454
+ "Check playwright.config.ts webServer settings and verify the dev server starts correctly with the configured command.";
455
+ }
456
+ else if (message.includes("ERR_CONNECTION_REFUSED")) {
457
+ feedback =
458
+ "Could not connect to the dev server. Verify the port in playwright.config.ts matches the dev server port " +
459
+ "and that the dev server starts successfully.";
460
+ }
214
461
  return {
215
462
  evaluator: this.name,
216
463
  passed: false,
@@ -219,12 +466,12 @@ export class PlaywrightEvaluator {
219
466
  {
220
467
  criterion: "Playwright execution",
221
468
  passed: false,
222
- message: err instanceof Error ? err.message : String(err),
469
+ message,
223
470
  severity: "error",
224
471
  },
225
472
  ],
226
473
  summary: "Playwright E2E tests failed to execute.",
227
- feedback: `Playwright could not be run: ${err instanceof Error ? err.message : String(err)}`,
474
+ feedback,
228
475
  timestamp,
229
476
  };
230
477
  }
@@ -1 +1 @@
1
- {"version":3,"file":"playwright.js","sourceRoot":"","sources":["../../../src/evaluators/builtin/playwright.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playwright.js","sourceRoot":"","sources":["../../../src/evaluators/builtin/playwright.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-bober",
3
- "version": "0.4.2",
3
+ "version": "0.5.0",
4
4
  "description": "Generator-Evaluator multi-agent harness for building applications autonomously with Claude. Implements planner, sprint, and evaluator patterns.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",