@kosuke-ai/cli 0.0.37 → 0.0.38
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/dist/index.js +20 -32
- package/dist/index.js.map +1 -1
- package/dist/kosuke/commands/build.d.ts +2 -1
- package/dist/kosuke/commands/build.d.ts.map +1 -1
- package/dist/kosuke/commands/build.js +6 -5
- package/dist/kosuke/commands/build.js.map +1 -1
- package/dist/kosuke/commands/test.d.ts +2 -1
- package/dist/kosuke/commands/test.d.ts.map +1 -1
- package/dist/kosuke/commands/test.js +75 -23
- package/dist/kosuke/commands/test.js.map +1 -1
- package/dist/kosuke/commands/tickets.d.ts.map +1 -1
- package/dist/kosuke/commands/tickets.js +278 -109
- package/dist/kosuke/commands/tickets.js.map +1 -1
- package/dist/kosuke/types.d.ts +8 -6
- package/dist/kosuke/types.d.ts.map +1 -1
- package/dist/kosuke/utils/prompt-generator.d.ts +0 -4
- package/dist/kosuke/utils/prompt-generator.d.ts.map +1 -1
- package/dist/kosuke/utils/prompt-generator.js +0 -14
- package/dist/kosuke/utils/prompt-generator.js.map +1 -1
- package/dist/kosuke/utils/test-runner.js +3 -3
- package/dist/kosuke/utils/test-runner.js.map +1 -1
- package/dist/package.json +2 -2
- package/package.json +2 -2
- package/dist/kosuke/utils/browser-agent.d.ts +0 -33
- package/dist/kosuke/utils/browser-agent.d.ts.map +0 -1
- package/dist/kosuke/utils/browser-agent.js +0 -102
- package/dist/kosuke/utils/browser-agent.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -113,8 +113,8 @@ async function main() {
|
|
|
113
113
|
review: !args.includes('--no-review'), // Default true, disabled with --no-review
|
|
114
114
|
test: !args.includes('--no-test'), // Default true, disabled with --no-test
|
|
115
115
|
url: args.find((arg) => arg.startsWith('--url='))?.split('=')[1],
|
|
116
|
-
|
|
117
|
-
|
|
116
|
+
headless: args.includes('--headless'),
|
|
117
|
+
verbose: args.includes('--verbose'),
|
|
118
118
|
noLogs: args.includes('--no-logs'),
|
|
119
119
|
};
|
|
120
120
|
await buildCommand(options);
|
|
@@ -137,17 +137,14 @@ async function main() {
|
|
|
137
137
|
console.log(' --ticket=ID Test a specific ticket from tickets.json');
|
|
138
138
|
console.log(' --prompt="..." Test with a custom prompt');
|
|
139
139
|
console.log(' --url=URL Base URL (default: http://localhost:3000)');
|
|
140
|
-
console.log(' --
|
|
141
|
-
console.log(' --
|
|
142
|
-
console.log(' --update-baseline Update visual baselines');
|
|
143
|
-
console.log(' --max-retries=N Max fix attempts (default: 3)');
|
|
144
|
-
console.log(' --pr Create PR with fixes');
|
|
140
|
+
console.log(' --headless Run in headless mode (invisible browser)');
|
|
141
|
+
console.log(' --verbose Enable verbose output');
|
|
145
142
|
console.log(' --directory=PATH Directory to test (default: cwd)');
|
|
146
143
|
console.log('\nExamples:');
|
|
147
144
|
console.log(' kosuke test --ticket=FRONTEND-1 # Test ticket');
|
|
148
145
|
console.log(' kosuke test --prompt="Test login flow" # Test with prompt');
|
|
149
|
-
console.log(' kosuke test --ticket=FRONTEND-1 --
|
|
150
|
-
console.log(' kosuke test --prompt="..." --
|
|
146
|
+
console.log(' kosuke test --ticket=FRONTEND-1 --verbose # Verbose output');
|
|
147
|
+
console.log(' kosuke test --prompt="..." --headless # Headless mode');
|
|
151
148
|
process.exit(1);
|
|
152
149
|
}
|
|
153
150
|
if (ticketArg && promptArg) {
|
|
@@ -158,15 +155,11 @@ async function main() {
|
|
|
158
155
|
ticket: ticketArg,
|
|
159
156
|
prompt: promptArg,
|
|
160
157
|
url: args.find((arg) => arg.startsWith('--url='))?.split('=')[1],
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
updateBaseline: args.includes('--update-baseline'),
|
|
164
|
-
maxRetries: parseInt(args.find((arg) => arg.startsWith('--max-retries='))?.split('=')[1] || '3'),
|
|
158
|
+
headless: args.includes('--headless'),
|
|
159
|
+
verbose: args.includes('--verbose'),
|
|
165
160
|
ticketsFile: args.find((arg) => arg.startsWith('--tickets='))?.split('=')[1],
|
|
166
161
|
directory: args.find((arg) => arg.startsWith('--directory='))?.split('=')[1] ||
|
|
167
162
|
args.find((arg) => arg.startsWith('--dir='))?.split('=')[1],
|
|
168
|
-
pr: args.includes('--pr'),
|
|
169
|
-
baseBranch: args.find((arg) => arg.startsWith('--base-branch='))?.split('=')[1],
|
|
170
163
|
noLogs: args.includes('--no-logs'),
|
|
171
164
|
};
|
|
172
165
|
await testCommand(options);
|
|
@@ -296,8 +289,8 @@ COMMANDS:
|
|
|
296
289
|
--no-review Skip code review phase (enabled by default)
|
|
297
290
|
--no-test Skip testing phase for frontend tickets (enabled by default)
|
|
298
291
|
--url=<URL> Base URL for testing (default: http://localhost:3000)
|
|
299
|
-
--
|
|
300
|
-
--
|
|
292
|
+
--headless Run tests in headless mode (invisible browser)
|
|
293
|
+
--verbose Enable verbose output for tests
|
|
301
294
|
|
|
302
295
|
Examples:
|
|
303
296
|
git checkout -b feat/implement-tickets # Create feature branch first
|
|
@@ -309,7 +302,8 @@ COMMANDS:
|
|
|
309
302
|
kosuke build --ask-commit --ask-confirm # Fully interactive mode
|
|
310
303
|
kosuke build --reset # Reset all tickets and start from scratch
|
|
311
304
|
kosuke build --no-review --no-test # Skip review and testing (fastest)
|
|
312
|
-
kosuke build --
|
|
305
|
+
kosuke build --headless # Run tests in headless mode
|
|
306
|
+
kosuke build --verbose # Enable verbose test output
|
|
313
307
|
kosuke build --tickets=custom.json # Use custom tickets file
|
|
314
308
|
kosuke build --directory=./my-project # Run build in specific directory
|
|
315
309
|
kosuke build --db-url=postgres://user:pass@host:5432/db # Custom DB
|
|
@@ -325,32 +319,26 @@ COMMANDS:
|
|
|
325
319
|
kosuke review # Review uncommitted changes
|
|
326
320
|
|
|
327
321
|
test [--ticket=<ID> | --prompt="..."] [options]
|
|
328
|
-
Run
|
|
329
|
-
Uses
|
|
330
|
-
|
|
322
|
+
Run atomic browser tests with AI-powered automation (no fixing, no retries)
|
|
323
|
+
Uses Stagehand with Claude AI for intelligent browser interaction
|
|
324
|
+
For iterative test+fix workflow, use: kosuke ship --test
|
|
331
325
|
|
|
332
326
|
Options:
|
|
333
327
|
--ticket=<ID> Ticket ID to test (from tickets.json, e.g., FRONTEND-1)
|
|
334
328
|
--prompt="..." Custom test prompt (alternative to --ticket)
|
|
335
329
|
--url=<URL> Base URL (default: http://localhost:3000)
|
|
336
|
-
--
|
|
337
|
-
--
|
|
338
|
-
--update-baseline Update visual regression baselines
|
|
339
|
-
--max-retries=<N> Maximum fix-retest iterations (default: 3)
|
|
330
|
+
--headless Run in headless mode (invisible browser)
|
|
331
|
+
--verbose Enable verbose output
|
|
340
332
|
--tickets=<file> Path to tickets file (default: tickets.json, relative to directory)
|
|
341
333
|
--directory=<path> Directory to run tests in (default: current directory)
|
|
342
334
|
--dir=<path> Alias for --directory
|
|
343
|
-
--pr Create pull request with fixes
|
|
344
|
-
--base-branch=<name> Base branch for PR (default: current branch)
|
|
345
335
|
|
|
346
336
|
Examples:
|
|
347
|
-
kosuke test --ticket=FRONTEND-1 # Test
|
|
337
|
+
kosuke test --ticket=FRONTEND-1 # Test ticket (atomic)
|
|
348
338
|
kosuke test --prompt="Test user login flow" # Test with custom prompt
|
|
349
339
|
kosuke test --ticket=FRONTEND-1 --url=http://localhost:4000
|
|
350
|
-
kosuke test --prompt="..." --
|
|
351
|
-
kosuke test --ticket=FRONTEND-1 --
|
|
352
|
-
kosuke test --ticket=FRONTEND-1 --max-retries=5 # More attempts
|
|
353
|
-
kosuke test --prompt="..." --pr # Create PR with fixes
|
|
340
|
+
kosuke test --prompt="..." --verbose # Enable verbose output
|
|
341
|
+
kosuke test --ticket=FRONTEND-1 --headless # Run in headless mode
|
|
354
342
|
kosuke test --ticket=FRONTEND-1 --directory=./my-project # Specific directory
|
|
355
343
|
|
|
356
344
|
GLOBAL OPTIONS:
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QAC/E,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,OAAO,GAAG;oBACd,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAC/B,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACzB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC/E,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;iBACnC,CAAC;gBACF,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,OAAO,GAAG;oBACd,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACzB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC/E,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACpE,KAAK,EAAE,IAAI;yBACR,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;wBAC1C,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACf,EAAE,KAAK,CAAC,GAAG,CAAC;oBACd,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;iBACnC,CAAC;gBACF,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC9B,MAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,OAAO,GAAG;oBACd,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACzB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC/E,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC5E,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;iBACnC,CAAC;gBACF,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC3B,MAAM;YACR,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,mBAAmB,EAAE,CAAC;gBAC5B,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC9B,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,OAAO,GAAG;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACtE,SAAS,EACP,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACjE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC7D,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;iBACnC,CAAC;gBACF,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC9B,MAAM;YACR,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,OAAO,GAAG;oBACd,SAAS,EACP,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACjE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC7D,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC5E,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACrE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAC/B,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;oBAC1C,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;oBACxC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,0CAA0C;oBACjF,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,wCAAwC;oBAC3E,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAChE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QAC/E,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,OAAO,GAAG;oBACd,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAC/B,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACzB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC/E,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;iBACnC,CAAC;gBACF,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAChC,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,OAAO,GAAG;oBACd,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACzB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC/E,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACpE,KAAK,EAAE,IAAI;yBACR,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;wBAC1C,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACf,EAAE,KAAK,CAAC,GAAG,CAAC;oBACd,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;iBACnC,CAAC;gBACF,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC9B,MAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,OAAO,GAAG;oBACd,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACzB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC/E,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC5E,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;iBACnC,CAAC;gBACF,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC3B,MAAM;YACR,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,mBAAmB,EAAE,CAAC;gBAC5B,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC9B,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,OAAO,GAAG;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAClE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACtE,SAAS,EACP,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACjE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC7D,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;iBACnC,CAAC;gBACF,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC9B,MAAM;YACR,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,OAAO,GAAG;oBACd,SAAS,EACP,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACjE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC7D,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC5E,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACrE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAC/B,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;oBAC1C,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;oBACxC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,0CAA0C;oBACjF,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,wCAAwC;oBAC3E,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAChE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;oBACrC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;oBACnC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;iBACnC,CAAC;gBACF,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC5B,MAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,OAAO,GAAG;oBACd,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;iBACnC,CAAC;gBACF,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC7B,MAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEjF,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;oBAC7B,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;oBAClE,OAAO,CAAC,GAAG,CACT,4FAA4F,CAC7F,CAAC;oBACF,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAC1B,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;oBAC9E,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;oBAC/D,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;oBAC/E,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;oBAC9E,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;oBAC3D,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;oBACtE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBAC3B,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;oBAClF,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;oBACvF,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;oBACrF,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;oBACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAED,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;oBAC3B,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;oBACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAED,MAAM,OAAO,GAAG;oBACd,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,SAAS;oBACjB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAChE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;oBACrC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;oBACnC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC5E,SAAS,EACP,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACjE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC7D,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;iBACnC,CAAC;gBACF,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC3B,MAAM;YACR,CAAC;YAED;gBACE,OAAO,CAAC,KAAK,CAAC,sBAAsB,OAAO,IAAI,CAAC,CAAC;gBACjD,QAAQ,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Lb,CAAC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
* kosuke build --reset # Reset all tickets to "Todo" and process from scratch
|
|
14
14
|
* kosuke build --no-review # Skip code review phase
|
|
15
15
|
* kosuke build --no-test # Skip testing phase for frontend tickets
|
|
16
|
-
* kosuke build --
|
|
16
|
+
* kosuke build --headless # Run tests in headless mode (invisible)
|
|
17
|
+
* kosuke build --verbose # Enable verbose test output
|
|
17
18
|
* kosuke build --tickets=path/to/tickets.json
|
|
18
19
|
* kosuke build --db-url=postgres://user:pass@host:5432/db
|
|
19
20
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/build.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAU,MAAM,aAAa,CAAC;AAwExD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA2MvE"}
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
* kosuke build --reset # Reset all tickets to "Todo" and process from scratch
|
|
14
14
|
* kosuke build --no-review # Skip code review phase
|
|
15
15
|
* kosuke build --no-test # Skip testing phase for frontend tickets
|
|
16
|
-
* kosuke build --
|
|
16
|
+
* kosuke build --headless # Run tests in headless mode (invisible)
|
|
17
|
+
* kosuke build --verbose # Enable verbose test output
|
|
17
18
|
* kosuke build --tickets=path/to/tickets.json
|
|
18
19
|
* kosuke build --db-url=postgres://user:pass@host:5432/db
|
|
19
20
|
*
|
|
@@ -26,9 +27,9 @@ import { existsSync, statSync } from 'fs';
|
|
|
26
27
|
import { join, resolve } from 'path';
|
|
27
28
|
import * as readline from 'readline';
|
|
28
29
|
import simpleGit from 'simple-git';
|
|
30
|
+
import { runTestsWithRetry } from '../utils/test-runner.js';
|
|
29
31
|
import { loadTicketsFile, saveTicketsFile, updateTicketStatus, } from '../utils/tickets-manager.js';
|
|
30
32
|
import { shipCore } from './ship.js';
|
|
31
|
-
import { runTestsWithRetry } from '../utils/test-runner.js';
|
|
32
33
|
/**
|
|
33
34
|
* Prompt user for confirmation to continue
|
|
34
35
|
*/
|
|
@@ -97,7 +98,7 @@ export async function buildCommand(options) {
|
|
|
97
98
|
if (!process.env.GITHUB_TOKEN) {
|
|
98
99
|
throw new Error('GITHUB_TOKEN environment variable is required for build command');
|
|
99
100
|
}
|
|
100
|
-
const { directory, ticketsFile = 'tickets.json', dbUrl = 'postgres://postgres:postgres@localhost:5432/postgres', reset = false, askConfirm = false, askCommit = false, review = true, test = true, url,
|
|
101
|
+
const { directory, ticketsFile = 'tickets.json', dbUrl = 'postgres://postgres:postgres@localhost:5432/postgres', reset = false, askConfirm = false, askCommit = false, review = true, test = true, url, headless, verbose, noLogs = false, } = options;
|
|
101
102
|
// 1. Validate and resolve directory
|
|
102
103
|
const cwd = directory ? resolve(directory) : process.cwd();
|
|
103
104
|
if (!existsSync(cwd)) {
|
|
@@ -180,8 +181,8 @@ export async function buildCommand(options) {
|
|
|
180
181
|
ticket,
|
|
181
182
|
cwd,
|
|
182
183
|
url,
|
|
183
|
-
|
|
184
|
-
|
|
184
|
+
headless,
|
|
185
|
+
verbose,
|
|
185
186
|
maxRetries: 3,
|
|
186
187
|
});
|
|
187
188
|
console.log(`\n✨ Testing completed (${testResult.fixesApplied} fixes applied over ${testResult.attempts} iterations)`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../kosuke/commands/build.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../kosuke/commands/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
* kosuke test --ticket=FRONTEND-1 # Test with ticket
|
|
14
14
|
* kosuke test --prompt="Test user login flow" # Test with custom prompt
|
|
15
15
|
* kosuke test --ticket=FRONTEND-1 --url=http://localhost:4000
|
|
16
|
-
* kosuke test --prompt="..." --
|
|
16
|
+
* kosuke test --prompt="..." --verbose # Enable verbose output
|
|
17
|
+
* kosuke test --prompt="..." --headless # Run in headless mode (invisible)
|
|
17
18
|
*/
|
|
18
19
|
import type { TestOptions, TestResult } from '../types.js';
|
|
19
20
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAU,MAAM,aAAa,CAAC;AAKnE;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA+JxE;AAuBD;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCrE"}
|
|
@@ -13,18 +13,19 @@
|
|
|
13
13
|
* kosuke test --ticket=FRONTEND-1 # Test with ticket
|
|
14
14
|
* kosuke test --prompt="Test user login flow" # Test with custom prompt
|
|
15
15
|
* kosuke test --ticket=FRONTEND-1 --url=http://localhost:4000
|
|
16
|
-
* kosuke test --prompt="..." --
|
|
16
|
+
* kosuke test --prompt="..." --verbose # Enable verbose output
|
|
17
|
+
* kosuke test --prompt="..." --headless # Run in headless mode (invisible)
|
|
17
18
|
*/
|
|
19
|
+
import { Stagehand } from '@browserbasehq/stagehand';
|
|
18
20
|
import { join } from 'path';
|
|
19
|
-
import { runBrowserTest } from '../utils/browser-agent.js';
|
|
20
21
|
import { logger, setupCancellationHandler } from '../utils/logger.js';
|
|
21
|
-
import {
|
|
22
|
+
import { generateTestPrompt } from '../utils/prompt-generator.js';
|
|
22
23
|
import { findTicket, loadTicketsFile } from '../utils/tickets-manager.js';
|
|
23
24
|
/**
|
|
24
25
|
* Core test logic (atomic - single execution, no retries, no fixes)
|
|
25
26
|
*/
|
|
26
27
|
export async function testCore(options) {
|
|
27
|
-
const { ticket: ticketId, prompt: customPrompt, url = 'http://localhost:3000',
|
|
28
|
+
const { ticket: ticketId, prompt: customPrompt, url = 'http://localhost:3000', headless = false, verbose = false, ticketsFile = 'tickets.json', directory, } = options;
|
|
28
29
|
const cwd = directory || process.cwd();
|
|
29
30
|
const ticketsPath = join(cwd, ticketsFile);
|
|
30
31
|
// Validate: must provide either ticket OR prompt (not both)
|
|
@@ -37,6 +38,10 @@ export async function testCore(options) {
|
|
|
37
38
|
if (ticketId && customPrompt) {
|
|
38
39
|
throw new Error('Cannot provide both --ticket and --prompt. Please use one or the other.');
|
|
39
40
|
}
|
|
41
|
+
// Validate ANTHROPIC_API_KEY
|
|
42
|
+
if (!process.env.ANTHROPIC_API_KEY) {
|
|
43
|
+
throw new Error('ANTHROPIC_API_KEY environment variable is required');
|
|
44
|
+
}
|
|
40
45
|
let ticket;
|
|
41
46
|
let testPrompt;
|
|
42
47
|
let testIdentifier = '';
|
|
@@ -61,30 +66,68 @@ export async function testCore(options) {
|
|
|
61
66
|
console.log(` ✅ Loaded: ${ticket.id} - ${ticket.title}\n`);
|
|
62
67
|
}
|
|
63
68
|
else {
|
|
64
|
-
// Use custom prompt
|
|
69
|
+
// Use custom prompt directly
|
|
65
70
|
console.log('📋 Using custom prompt...');
|
|
66
71
|
testIdentifier = `custom-${Date.now()}`;
|
|
67
|
-
testPrompt =
|
|
68
|
-
console.log(` ✅
|
|
72
|
+
testPrompt = customPrompt;
|
|
73
|
+
console.log(` ✅ Prompt: ${testPrompt}\n`);
|
|
69
74
|
}
|
|
70
|
-
// 2.
|
|
75
|
+
// 2. Initialize Stagehand
|
|
71
76
|
console.log(`${'='.repeat(60)}`);
|
|
72
77
|
console.log(`🧪 Running Browser Test`);
|
|
73
78
|
console.log(`${'='.repeat(60)}\n`);
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
+
console.log(`🌐 URL: ${url}`);
|
|
80
|
+
console.log(`🔍 Verbose: ${verbose ? 'enabled' : 'disabled'}`);
|
|
81
|
+
console.log(`👁️ Headless: ${headless ? 'enabled' : 'disabled'}\n`);
|
|
82
|
+
const stagehand = new Stagehand({
|
|
83
|
+
env: 'LOCAL',
|
|
84
|
+
verbose: verbose ? 2 : 1, // verbose flag → level 2, otherwise level 1
|
|
85
|
+
localBrowserLaunchOptions: {
|
|
86
|
+
headless,
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
await stagehand.init();
|
|
90
|
+
console.log('✅ Stagehand initialized\n');
|
|
91
|
+
// 3. Navigate to URL
|
|
92
|
+
const page = stagehand.context.pages()[0];
|
|
93
|
+
console.log(`🌐 Navigating to ${url}...`);
|
|
94
|
+
await page.goto(url);
|
|
95
|
+
console.log('✅ Navigation complete\n');
|
|
96
|
+
// 4. Create agent with system prompt
|
|
97
|
+
const agent = stagehand.agent({
|
|
98
|
+
systemPrompt: `You are a helpful testing assistant that can control a web browser.
|
|
99
|
+
Execute the given instructions step by step.
|
|
100
|
+
Be thorough and wait for elements to load when necessary.
|
|
101
|
+
Do not ask follow-up questions, trust your judgement to complete the task.`,
|
|
79
102
|
});
|
|
80
|
-
//
|
|
103
|
+
// 5. Execute test instruction
|
|
104
|
+
console.log('🤖 Agent starting execution...\n');
|
|
105
|
+
const result = await agent.execute({
|
|
106
|
+
instruction: testPrompt,
|
|
107
|
+
});
|
|
108
|
+
// 6. Close browser
|
|
109
|
+
console.log('\n🔒 Closing browser session...');
|
|
110
|
+
await stagehand.close();
|
|
111
|
+
console.log('✅ Browser closed\n');
|
|
112
|
+
// 7. Calculate cost from token usage
|
|
113
|
+
const cost = result.usage ? calculateCost(result.usage) : 0;
|
|
114
|
+
// 8. Return TestResult
|
|
81
115
|
return {
|
|
82
116
|
ticketId: testIdentifier,
|
|
83
|
-
success:
|
|
84
|
-
output:
|
|
85
|
-
logs:
|
|
86
|
-
|
|
87
|
-
|
|
117
|
+
success: result.success,
|
|
118
|
+
output: result.message,
|
|
119
|
+
logs: {
|
|
120
|
+
console: [], // Stagehand doesn't expose browser console logs via agent
|
|
121
|
+
errors: result.success ? [] : [result.message],
|
|
122
|
+
},
|
|
123
|
+
tokensUsed: {
|
|
124
|
+
input: result.usage?.input_tokens || 0,
|
|
125
|
+
output: result.usage?.output_tokens || 0,
|
|
126
|
+
cacheCreation: 0, // Not exposed separately by Stagehand
|
|
127
|
+
cacheRead: result.usage?.cached_input_tokens || 0,
|
|
128
|
+
},
|
|
129
|
+
cost,
|
|
130
|
+
error: result.success ? undefined : result.message,
|
|
88
131
|
};
|
|
89
132
|
}
|
|
90
133
|
catch (error) {
|
|
@@ -109,6 +152,19 @@ export async function testCore(options) {
|
|
|
109
152
|
};
|
|
110
153
|
}
|
|
111
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Calculate cost from Stagehand token usage
|
|
157
|
+
* Pricing (per million tokens):
|
|
158
|
+
* - Input: $3.00
|
|
159
|
+
* - Output: $15.00
|
|
160
|
+
* - Cache read: $0.30
|
|
161
|
+
*/
|
|
162
|
+
function calculateCost(usage) {
|
|
163
|
+
const inputCost = (usage.input_tokens / 1000000) * 3.0;
|
|
164
|
+
const outputCost = (usage.output_tokens / 1000000) * 15.0;
|
|
165
|
+
const cacheReadCost = ((usage.cached_input_tokens || 0) / 1000000) * 0.3;
|
|
166
|
+
return inputCost + outputCost + cacheReadCost;
|
|
167
|
+
}
|
|
112
168
|
/**
|
|
113
169
|
* Main test command
|
|
114
170
|
*/
|
|
@@ -122,10 +178,6 @@ export async function testCommand(options) {
|
|
|
122
178
|
const logContext = logger.createContext('test', { noLogs });
|
|
123
179
|
const cleanupHandler = setupCancellationHandler(logContext);
|
|
124
180
|
try {
|
|
125
|
-
// Validate environment
|
|
126
|
-
if (!process.env.ANTHROPIC_API_KEY) {
|
|
127
|
-
throw new Error('ANTHROPIC_API_KEY environment variable is required');
|
|
128
|
-
}
|
|
129
181
|
// Run atomic test
|
|
130
182
|
const result = await testCore(options);
|
|
131
183
|
// Track metrics
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../kosuke/commands/test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../kosuke/commands/test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tickets.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/tickets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;
|
|
1
|
+
{"version":3,"file":"tickets.d.ts","sourceRoot":"","sources":["../../../kosuke/commands/tickets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAU,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA8XzE;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAwLjF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAsF3E"}
|