agent-bober 0.4.3 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/agents/bober-evaluator.md +84 -8
- package/agents/bober-generator.md +102 -0
- package/agents/bober-planner.md +24 -0
- package/dist/cli/commands/init.js +1 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/evaluators/builtin/playwright.d.ts +11 -0
- package/dist/evaluators/builtin/playwright.d.ts.map +1 -1
- package/dist/evaluators/builtin/playwright.js +259 -12
- package/dist/evaluators/builtin/playwright.js.map +1 -1
- package/package.json +1 -1
- package/skills/bober.eval/SKILL.md +145 -148
- package/skills/bober.playwright/SKILL.md +429 -0
- package/skills/bober.playwright/references/playwright-patterns.md +377 -0
- package/skills/bober.run/SKILL.md +425 -118
- package/skills/bober.sprint/SKILL.md +147 -57
- package/templates/presets/nextjs/bober.config.json +2 -1
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
86
|
-
|
|
87
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
469
|
+
message,
|
|
223
470
|
severity: "error",
|
|
224
471
|
},
|
|
225
472
|
],
|
|
226
473
|
summary: "Playwright E2E tests failed to execute.",
|
|
227
|
-
feedback
|
|
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.
|
|
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",
|