@kosuke-ai/cli 0.0.30 → 0.0.31

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 (38) hide show
  1. package/dist/kosuke/commands/ship.d.ts.map +1 -1
  2. package/dist/kosuke/commands/ship.js +57 -22
  3. package/dist/kosuke/commands/ship.js.map +1 -1
  4. package/dist/kosuke/commands/test.d.ts +8 -9
  5. package/dist/kosuke/commands/test.d.ts.map +1 -1
  6. package/dist/kosuke/commands/test.js +68 -288
  7. package/dist/kosuke/commands/test.js.map +1 -1
  8. package/dist/kosuke/types.d.ts +8 -16
  9. package/dist/kosuke/types.d.ts.map +1 -1
  10. package/dist/kosuke/utils/browser-agent.d.ts +33 -0
  11. package/dist/kosuke/utils/browser-agent.d.ts.map +1 -0
  12. package/dist/kosuke/utils/browser-agent.js +102 -0
  13. package/dist/kosuke/utils/browser-agent.js.map +1 -0
  14. package/dist/kosuke/utils/error-analyzer.d.ts +6 -3
  15. package/dist/kosuke/utils/error-analyzer.d.ts.map +1 -1
  16. package/dist/kosuke/utils/error-analyzer.js +35 -57
  17. package/dist/kosuke/utils/error-analyzer.js.map +1 -1
  18. package/dist/kosuke/utils/prompt-generator.d.ts +13 -0
  19. package/dist/kosuke/utils/prompt-generator.d.ts.map +1 -0
  20. package/dist/kosuke/utils/prompt-generator.js +44 -0
  21. package/dist/kosuke/utils/prompt-generator.js.map +1 -0
  22. package/dist/lib.d.ts +1 -1
  23. package/dist/lib.d.ts.map +1 -1
  24. package/dist/lib.js.map +1 -1
  25. package/dist/package.json +3 -6
  26. package/package.json +3 -6
  27. package/dist/kosuke/utils/playwright-agent.d.ts +0 -47
  28. package/dist/kosuke/utils/playwright-agent.d.ts.map +0 -1
  29. package/dist/kosuke/utils/playwright-agent.js +0 -278
  30. package/dist/kosuke/utils/playwright-agent.js.map +0 -1
  31. package/dist/kosuke/utils/test-generator.d.ts +0 -22
  32. package/dist/kosuke/utils/test-generator.d.ts.map +0 -1
  33. package/dist/kosuke/utils/test-generator.js +0 -174
  34. package/dist/kosuke/utils/test-generator.js.map +0 -1
  35. package/dist/kosuke/utils/visual-tester.d.ts +0 -71
  36. package/dist/kosuke/utils/visual-tester.d.ts.map +0 -1
  37. package/dist/kosuke/utils/visual-tester.js +0 -202
  38. package/dist/kosuke/utils/visual-tester.js.map +0 -1
@@ -1,31 +1,25 @@
1
1
  /**
2
- * Test command - Automated E2E testing with iterative fixing
2
+ * Test command - Atomic browser testing (no fixing, no linting)
3
3
  *
4
4
  * This command:
5
- * 1. Loads a ticket OR uses custom prompt to generate Playwright tests
6
- * 2. Runs tests with visual regression, console/network/docker log collection
7
- * 3. If tests fail: analyzes errors and applies fixes
8
- * 4. Re-runs tests until passing or max retries reached
9
- * 5. Runs linting after tests pass
5
+ * 1. Loads a ticket OR uses custom prompt
6
+ * 2. Runs a single test with Stagehand (AI-driven browser automation)
7
+ * 3. Returns result (success/failure) with logs
8
+ *
9
+ * NOTE: This is ATOMIC - no retries, no fixing, no linting
10
+ * For iterative test+fix, use: kosuke ship --test
10
11
  *
11
12
  * Usage:
12
13
  * kosuke test --ticket=FRONTEND-1 # Test with ticket
13
14
  * kosuke test --prompt="Test user login flow" # Test with custom prompt
14
15
  * kosuke test --ticket=FRONTEND-1 --url=http://localhost:4000
15
16
  * kosuke test --prompt="..." --headed # Show browser (visible window)
16
- * kosuke test --ticket=FRONTEND-1 --update-baseline # Update visual baselines
17
- * kosuke test --ticket=FRONTEND-1 --pr # Create PR with fixes
18
17
  */
19
18
  import { existsSync, readFileSync } from 'fs';
20
19
  import { join } from 'path';
21
- import { analyzeAndFix } from '../utils/error-analyzer.js';
22
- import { LogCollector } from '../utils/log-collector.js';
20
+ import { runBrowserTest } from '../utils/browser-agent.js';
23
21
  import { logger, setupCancellationHandler } from '../utils/logger.js';
24
- import { ensurePlaywrightConfig, installPlaywright, isPlaywrightInstalled, runPlaywrightTests, } from '../utils/playwright-agent.js';
25
- import { runWithPR } from '../utils/pr-orchestrator.js';
26
- import { generateTest } from '../utils/test-generator.js';
27
- import { runComprehensiveLinting } from '../utils/validator.js';
28
- import { VisualTester } from '../utils/visual-tester.js';
22
+ import { generateCustomTestPrompt, generateTestPrompt } from '../utils/prompt-generator.js';
29
23
  /**
30
24
  * Load tickets from file
31
25
  */
@@ -49,11 +43,11 @@ function findTicket(ticketsData, ticketId) {
49
43
  return ticketsData.tickets.find((t) => t.id === ticketId);
50
44
  }
51
45
  /**
52
- * Core test logic (git-agnostic, reusable)
46
+ * Core test logic (atomic - single execution, no retries, no fixes)
53
47
  */
54
48
  export async function testCore(options) {
55
- const { ticket: ticketId, prompt: customPrompt, url = 'http://localhost:3000', headed = false, debug = false, maxRetries = 3, ticketsFile = 'tickets.json', } = options;
56
- const cwd = process.cwd();
49
+ const { ticket: ticketId, prompt: customPrompt, url = 'http://localhost:3000', headed = false, debug = false, ticketsFile = 'tickets.json', directory, } = options;
50
+ const cwd = directory || process.cwd();
57
51
  const ticketsPath = join(cwd, ticketsFile);
58
52
  // Validate: must provide either ticket OR prompt (not both)
59
53
  if (!ticketId && !customPrompt) {
@@ -65,24 +59,11 @@ export async function testCore(options) {
65
59
  if (ticketId && customPrompt) {
66
60
  throw new Error('Cannot provide both --ticket and --prompt. Please use one or the other.');
67
61
  }
68
- // Track metrics
69
- let totalInputTokens = 0;
70
- let totalOutputTokens = 0;
71
- let totalCacheCreationTokens = 0;
72
- let totalCacheReadTokens = 0;
73
- let totalCost = 0;
74
- let totalFixesApplied = 0;
75
- let iterations = 0;
76
- let testsRun = 0;
77
- let testsPassed = 0;
78
- let testsFailed = 0;
79
- let visualDiffs = 0;
80
- let testFilePath = '';
81
- let tracePath = '';
62
+ let ticket;
63
+ let testPrompt;
82
64
  let testIdentifier = '';
83
65
  try {
84
66
  // 1. Load ticket or create from custom prompt
85
- let ticket;
86
67
  if (ticketId) {
87
68
  // Load ticket from file
88
69
  console.log('📋 Loading ticket...');
@@ -98,174 +79,35 @@ export async function testCore(options) {
98
79
  }
99
80
  ticket = foundTicket;
100
81
  testIdentifier = ticketId;
82
+ testPrompt = generateTestPrompt(ticket);
101
83
  console.log(` ✅ Loaded: ${ticket.id} - ${ticket.title}\n`);
102
84
  }
103
85
  else {
104
- // Create synthetic ticket from custom prompt
86
+ // Use custom prompt
105
87
  console.log('📋 Using custom prompt...');
106
88
  testIdentifier = `custom-${Date.now()}`;
107
- ticket = {
108
- id: testIdentifier,
109
- title: customPrompt.substring(0, 80), // Truncate for title
110
- description: customPrompt,
111
- estimatedEffort: 5, // Medium effort
112
- status: 'InProgress',
113
- };
114
- console.log(` ✅ Created test: ${testIdentifier}\n`);
115
- }
116
- // 2. Ensure Playwright is set up
117
- console.log('🎭 Checking Playwright setup...');
118
- if (!isPlaywrightInstalled(cwd)) {
119
- console.log(' ℹ️ Playwright not found, installing...');
120
- await installPlaywright(cwd);
121
- }
122
- else {
123
- console.log(' ✅ Playwright is installed');
124
- // Check if browsers are installed
125
- const { areBrowsersInstalled, installBrowsers } = await import('../utils/playwright-agent.js');
126
- if (!areBrowsersInstalled()) {
127
- console.log(' ℹ️ Browsers not found, installing...');
128
- await installBrowsers();
129
- }
130
- else {
131
- console.log(' ✅ Browsers are installed\n');
132
- }
133
- }
134
- ensurePlaywrightConfig(cwd);
135
- // 3. Generate or locate test
136
- console.log('🎭 Checking for existing tests...');
137
- testFilePath = join(cwd, '.kosuke', 'tests', `${testIdentifier}.spec.ts`);
138
- if (!existsSync(testFilePath)) {
139
- console.log(' ℹ️ No test found, generating new test...');
140
- const genResult = await generateTest(ticket, url, cwd);
141
- testFilePath = genResult.filePath;
142
- totalInputTokens += genResult.tokensUsed.input;
143
- totalOutputTokens += genResult.tokensUsed.output;
144
- totalCacheCreationTokens += genResult.tokensUsed.cacheCreation;
145
- totalCacheReadTokens += genResult.tokensUsed.cacheRead;
146
- totalCost += genResult.cost;
147
- }
148
- else {
149
- console.log(' ✅ Test found:', testFilePath);
150
- }
151
- // 4. Test execution loop
152
- let testsPassing = false;
153
- for (let attempt = 1; attempt <= maxRetries; attempt++) {
154
- iterations = attempt;
155
- console.log(`\n${'='.repeat(60)}`);
156
- console.log(`🧪 Test Execution (Attempt ${attempt}/${maxRetries})`);
157
- console.log(`${'='.repeat(60)}\n`);
158
- // Initialize log collector and visual tester
159
- const logCollector = new LogCollector();
160
- const visualTester = new VisualTester(cwd);
161
- // Run tests with Playwright
162
- const testResult = await runPlaywrightTests({
163
- testFile: testFilePath,
164
- baseUrl: url,
165
- headed,
166
- debug,
167
- cwd,
168
- });
169
- testsRun = testResult.testsRun;
170
- testsPassed = testResult.testsPassed;
171
- testsFailed = testResult.testsFailed;
172
- tracePath = testResult.tracePath;
173
- // Collect Docker logs
174
- await logCollector.collectDockerLogs('30s');
175
- // Get visual diffs
176
- visualDiffs = visualTester.getFailedDiffs().length;
177
- // Display results
178
- console.log(`\n📊 Test Results:`);
179
- console.log(` ✅ Passed: ${testResult.testsPassed}`);
180
- console.log(` ❌ Failed: ${testResult.testsFailed}`);
181
- console.log(` 📸 Visual diffs: ${visualDiffs}`);
182
- console.log(` ⏱️ Duration: ${(testResult.duration / 1000).toFixed(2)}s`);
183
- // Check if all tests passed
184
- if (testResult.success && !visualTester.hasRegressions()) {
185
- testsPassing = true;
186
- console.log('\n✅ All tests passed!');
187
- break;
188
- }
189
- // If this is the last attempt, don't try to fix
190
- if (attempt === maxRetries) {
191
- console.log(`\n❌ Max retries (${maxRetries}) reached. Tests still failing.`);
192
- break;
193
- }
194
- // 5. Analyze errors and apply fixes
195
- console.log(`\n${'='.repeat(60)}`);
196
- console.log(`🔍 Phase ${attempt}: Error Analysis & Fixing`);
197
- console.log(`${'='.repeat(60)}\n`);
198
- console.log('📝 Collecting logs...');
199
- const logs = logCollector.getErrors();
200
- console.log(` 🔧 Console errors: ${logs.console.length}`);
201
- console.log(` 🔧 Network failures: ${logs.network.length}`);
202
- console.log(` 🔧 Docker logs: ${logs.docker.length}`);
203
- // Analyze and fix
204
- const analysisResult = await analyzeAndFix(ticket, testResult.failures, logs, testResult.tracePath, cwd);
205
- totalFixesApplied += analysisResult.fixesApplied;
206
- totalInputTokens += analysisResult.tokensUsed.input;
207
- totalOutputTokens += analysisResult.tokensUsed.output;
208
- totalCacheCreationTokens += analysisResult.tokensUsed.cacheCreation;
209
- totalCacheReadTokens += analysisResult.tokensUsed.cacheRead;
210
- totalCost += analysisResult.cost;
211
- console.log(`\n 🔧 Applied ${analysisResult.fixesApplied} fixes`);
212
- console.log(` 💰 Cost: $${analysisResult.cost.toFixed(4)}`);
213
- // Continue to next iteration
214
- console.log(`\n🔄 Re-running tests in next iteration...`);
215
- }
216
- // 6. Linting phase (if tests passed)
217
- if (testsPassing) {
218
- console.log(`\n${'='.repeat(60)}`);
219
- console.log(`🔧 Linting & Quality Checks`);
220
- console.log(`${'='.repeat(60)}\n`);
221
- const lintResult = await runComprehensiveLinting();
222
- console.log(`\n✅ Linting completed (${lintResult.fixCount} fixes applied)`);
223
- // Return success result
224
- return {
225
- ticketId: testIdentifier,
226
- success: true,
227
- testsRun,
228
- testsPassed,
229
- testsFailed: 0,
230
- visualDiffs: 0,
231
- fixesApplied: totalFixesApplied,
232
- lintFixCount: lintResult.fixCount,
233
- iterations,
234
- tokensUsed: {
235
- input: totalInputTokens,
236
- output: totalOutputTokens,
237
- cacheCreation: totalCacheCreationTokens,
238
- cacheRead: totalCacheReadTokens,
239
- },
240
- cost: totalCost,
241
- testFilePath,
242
- tracePath,
243
- };
244
- }
245
- else {
246
- // Return failure result
247
- return {
248
- ticketId: testIdentifier,
249
- success: false,
250
- testsRun,
251
- testsPassed,
252
- testsFailed,
253
- visualDiffs,
254
- fixesApplied: totalFixesApplied,
255
- lintFixCount: 0,
256
- iterations,
257
- tokensUsed: {
258
- input: totalInputTokens,
259
- output: totalOutputTokens,
260
- cacheCreation: totalCacheCreationTokens,
261
- cacheRead: totalCacheReadTokens,
262
- },
263
- cost: totalCost,
264
- testFilePath,
265
- tracePath,
266
- error: 'Tests failed after maximum retry attempts',
267
- };
89
+ testPrompt = generateCustomTestPrompt(customPrompt, url);
90
+ console.log(` ✅ Test prompt ready\n`);
268
91
  }
92
+ // 2. Run single browser test (NO retries)
93
+ console.log(`${'='.repeat(60)}`);
94
+ console.log(`🧪 Running Browser Test`);
95
+ console.log(`${'='.repeat(60)}\n`);
96
+ const browserResult = await runBrowserTest({
97
+ url,
98
+ task: testPrompt,
99
+ headed,
100
+ debug,
101
+ });
102
+ // 3. Return result immediately (no fixing, no retries)
103
+ return {
104
+ ticketId: testIdentifier,
105
+ success: browserResult.success,
106
+ output: browserResult.output,
107
+ logs: browserResult.logs,
108
+ tokensUsed: browserResult.tokensUsed,
109
+ cost: browserResult.cost,
110
+ };
269
111
  }
270
112
  catch (error) {
271
113
  const errorMessage = error instanceof Error ? error.message : String(error);
@@ -273,22 +115,18 @@ export async function testCore(options) {
273
115
  return {
274
116
  ticketId: testIdentifier || ticketId || customPrompt || 'unknown',
275
117
  success: false,
276
- testsRun,
277
- testsPassed,
278
- testsFailed,
279
- visualDiffs,
280
- fixesApplied: totalFixesApplied,
281
- lintFixCount: 0,
282
- iterations,
118
+ output: `Test failed: ${errorMessage}`,
119
+ logs: {
120
+ console: [],
121
+ errors: [errorMessage],
122
+ },
283
123
  tokensUsed: {
284
- input: totalInputTokens,
285
- output: totalOutputTokens,
286
- cacheCreation: totalCacheCreationTokens,
287
- cacheRead: totalCacheReadTokens,
124
+ input: 0,
125
+ output: 0,
126
+ cacheCreation: 0,
127
+ cacheRead: 0,
288
128
  },
289
- cost: totalCost,
290
- testFilePath,
291
- tracePath,
129
+ cost: 0,
292
130
  error: errorMessage,
293
131
  };
294
132
  }
@@ -297,7 +135,7 @@ export async function testCore(options) {
297
135
  * Main test command
298
136
  */
299
137
  export async function testCommand(options) {
300
- const { ticket: ticketId, prompt: customPrompt, pr = false, noLogs = false } = options;
138
+ const { ticket: ticketId, prompt: customPrompt, noLogs = false } = options;
301
139
  const testDescription = ticketId
302
140
  ? `Ticket: ${ticketId}`
303
141
  : `Prompt: "${customPrompt?.substring(0, 60)}${customPrompt && customPrompt.length > 60 ? '...' : ''}"`;
@@ -310,65 +148,15 @@ export async function testCommand(options) {
310
148
  if (!process.env.ANTHROPIC_API_KEY) {
311
149
  throw new Error('ANTHROPIC_API_KEY environment variable is required');
312
150
  }
313
- if (pr && !process.env.GITHUB_TOKEN) {
314
- throw new Error('GITHUB_TOKEN environment variable is required for --pr flag');
315
- }
316
- // Determine identifier for branch/PR naming
317
- const identifier = ticketId || `custom-${Date.now()}`;
318
- const displayName = ticketId || 'custom prompt';
319
- // If --pr flag is provided, wrap with PR workflow
320
- if (pr) {
321
- const { result: testResult, prInfo } = await runWithPR({
322
- branchPrefix: `test/fix-${identifier}`,
323
- baseBranch: options.baseBranch,
324
- commitMessage: `test: fix issues found in ${displayName}`,
325
- prTitle: `test: Fix issues in ${displayName}`,
326
- prBody: `## 🧪 Test Fixes for ${displayName}
327
-
328
- This PR contains automated fixes for issues found during E2E testing${ticketId ? ` of ticket ${ticketId}` : ''}.
329
-
330
- ${customPrompt ? `### 📝 Custom Test Prompt\n${customPrompt}\n` : ''}
331
-
332
- ### 📊 Test Results
333
- - Tests run: ${0} (will be filled by result)
334
- - Fixes applied: ${0}
335
- - Iterations: ${0}
336
-
337
- ---
338
-
339
- 🤖 *Generated by Kosuke CLI (\`kosuke test ${ticketId ? `--ticket=${ticketId}` : '--prompt="..."'} --pr\`)*`,
340
- }, async () => {
341
- const result = await testCore(options);
342
- // Track metrics
343
- logger.trackTokens(logContext, result.tokensUsed);
344
- logContext.testsRun = result.testsRun;
345
- logContext.testsPassed = result.testsPassed;
346
- logContext.testsFailed = result.testsFailed;
347
- logContext.fixesApplied = result.fixesApplied;
348
- logContext.iterations = result.iterations;
349
- return result;
350
- });
351
- // Display summary
352
- displayTestSummary(testResult, prInfo.prUrl);
353
- // Log successful execution
354
- await logger.complete(logContext, 'success');
355
- cleanupHandler();
356
- }
357
- else {
358
- // Run core logic without PR
359
- const result = await testCore(options);
360
- // Track metrics
361
- logger.trackTokens(logContext, result.tokensUsed);
362
- logContext.testsRun = result.testsRun;
363
- logContext.testsPassed = result.testsPassed;
364
- logContext.testsFailed = result.testsFailed;
365
- logContext.fixesApplied = result.fixesApplied;
366
- logContext.iterations = result.iterations;
367
- displayTestSummary(result);
368
- // Log execution (success or error based on test result)
369
- await logger.complete(logContext, result.success ? 'success' : 'error', result.error ? new Error(result.error) : undefined);
370
- cleanupHandler();
371
- }
151
+ // Run atomic test
152
+ const result = await testCore(options);
153
+ // Track metrics
154
+ logger.trackTokens(logContext, result.tokensUsed);
155
+ // Display summary
156
+ displayTestSummary(result);
157
+ // Log execution (success or error based on test result)
158
+ await logger.complete(logContext, result.success ? 'success' : 'error', result.error ? new Error(result.error) : undefined);
159
+ cleanupHandler();
372
160
  }
373
161
  catch (error) {
374
162
  console.error('\n❌ Test command failed:', error);
@@ -381,36 +169,28 @@ ${customPrompt ? `### 📝 Custom Test Prompt\n${customPrompt}\n` : ''}
381
169
  /**
382
170
  * Display test summary
383
171
  */
384
- function displayTestSummary(result, prUrl) {
172
+ function displayTestSummary(result) {
385
173
  console.log(`\n${'='.repeat(60)}`);
386
174
  console.log('📊 Test Summary');
387
175
  console.log('='.repeat(60));
388
176
  if (result.success) {
389
- console.log('✅ Status: All tests passed');
177
+ console.log('✅ Status: Test passed');
390
178
  }
391
179
  else {
392
- console.log('❌ Status: Tests failed');
393
- }
394
- console.log(`🧪 Tests: ${result.testsPassed} passed, ${result.testsFailed} failed (${result.testsRun} total)`);
395
- console.log(`📸 Visual: ${result.visualDiffs} regressions found`);
396
- console.log(`🔧 Fixes: ${result.fixesApplied} applied`);
397
- console.log(`🧹 Lint: ${result.lintFixCount} fixes applied`);
398
- console.log(`🔄 Iterations: ${result.iterations}`);
399
- console.log(`💰 Total cost: $${result.cost.toFixed(4)}`);
400
- console.log(`🎭 Test file: ${result.testFilePath}`);
401
- console.log(`📊 Trace: ${result.tracePath}`);
402
- if (prUrl) {
403
- console.log(`🔗 PR: ${prUrl}`);
180
+ console.log('❌ Status: Test failed');
404
181
  }
182
+ console.log(`📝 Output: ${result.output}`);
183
+ console.log(`🔧 Console logs: ${result.logs.console.length}`);
184
+ console.log(`❌ Errors: ${result.logs.errors.length}`);
185
+ console.log(`💰 Cost: $${result.cost.toFixed(4)}`);
405
186
  console.log('='.repeat(60));
406
187
  if (result.success) {
407
- console.log('\n✅ Testing completed successfully!');
188
+ console.log('\n✅ Test completed successfully!');
408
189
  }
409
190
  else {
410
- console.log(`\n❌ Testing failed: ${result.error || 'Unknown error'}`);
411
- if (!prUrl) {
412
- console.log('ℹ️ Review the logs and trace file above for more details.');
413
- }
191
+ console.log(`\n❌ Test failed: ${result.error || 'See output above for details'}`);
192
+ console.log('\nℹ️ This is an atomic test command - it does not apply fixes.');
193
+ console.log('ℹ️ To test with automatic fixing, use: kosuke ship --test');
414
194
  }
415
195
  }
416
196
  //# sourceMappingURL=test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../kosuke/commands/test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../kosuke/commands/test.ts"],"names":[],"mappings":"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"}
@@ -113,6 +113,9 @@ export interface ShipOptions {
113
113
  baseBranch?: string;
114
114
  ticketsFile?: string;
115
115
  test?: boolean;
116
+ url?: string;
117
+ headed?: boolean;
118
+ debug?: boolean;
116
119
  directory?: string;
117
120
  noLogs?: boolean;
118
121
  }
@@ -161,24 +164,18 @@ export interface TestOptions {
161
164
  url?: string;
162
165
  headed?: boolean;
163
166
  debug?: boolean;
164
- updateBaseline?: boolean;
165
- maxRetries?: number;
166
167
  ticketsFile?: string;
167
168
  directory?: string;
168
- pr?: boolean;
169
- baseBranch?: string;
170
169
  noLogs?: boolean;
171
170
  }
172
171
  export interface TestResult {
173
172
  ticketId: string;
174
173
  success: boolean;
175
- testsRun: number;
176
- testsPassed: number;
177
- testsFailed: number;
178
- visualDiffs: number;
179
- fixesApplied: number;
180
- lintFixCount: number;
181
- iterations: number;
174
+ output: string;
175
+ logs: {
176
+ console: string[];
177
+ errors: string[];
178
+ };
182
179
  tokensUsed: {
183
180
  input: number;
184
181
  output: number;
@@ -186,14 +183,9 @@ export interface TestResult {
186
183
  cacheRead: number;
187
184
  };
188
185
  cost: number;
189
- testFilePath: string;
190
- tracePath: string;
191
186
  error?: string;
192
187
  }
193
188
  export type { CommandName, ExecutionStatus, CliLogData, CommandExecutionContext, } from './utils/logger.js';
194
189
  export type { AnalysisResult, TestFailure } from './utils/error-analyzer.js';
195
190
  export type { ConsoleLog, NetworkLog, DockerLog, CollectedLogs } from './utils/log-collector.js';
196
- export type { PlaywrightResult, PlaywrightOptions } from './utils/playwright-agent.js';
197
- export type { GeneratedTest } from './utils/test-generator.js';
198
- export type { VisualDiff, VisualTestOptions } from './utils/visual-tester.js';
199
191
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../kosuke/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../kosuke/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,KAAK,OAAO,GACR,gBAAgB,GAChB,oBAAoB,GACpB,eAAe,GACf,sBAAsB,GACtB,uBAAuB,GACvB,gBAAgB,GAChB,OAAO,CAAC;AAEZ,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,KAAK,CAAC;QAC1B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,KAAK,CAAC;YAChB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,OAAO,CAAC;YACf,MAAM,CAAC,EAAE,OAAO,CAAC;SAClB,CAAC,CAAC;KACJ,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,YAAY,EACV,WAAW,EACX,eAAe,EACf,UAAU,EACV,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7E,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Browser Agent - Stagehand-powered browser automation
3
+ *
4
+ * Uses Stagehand with Anthropic Claude for AI-driven browser testing.
5
+ * Provides simple boolean success/failure results with logs.
6
+ */
7
+ interface BrowserTestOptions {
8
+ url: string;
9
+ task: string;
10
+ headed?: boolean;
11
+ debug?: boolean;
12
+ }
13
+ interface BrowserTestResult {
14
+ success: boolean;
15
+ output: string;
16
+ logs: {
17
+ console: string[];
18
+ errors: string[];
19
+ };
20
+ tokensUsed: {
21
+ input: number;
22
+ output: number;
23
+ cacheCreation: number;
24
+ cacheRead: number;
25
+ };
26
+ cost: number;
27
+ }
28
+ /**
29
+ * Run browser test using Stagehand
30
+ */
31
+ export declare function runBrowserTest(options: BrowserTestOptions): Promise<BrowserTestResult>;
32
+ export {};
33
+ //# sourceMappingURL=browser-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-agent.d.ts","sourceRoot":"","sources":["../../../kosuke/utils/browser-agent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,iBAAiB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA6G5F"}