@tangle-network/browser-agent-driver 0.8.0 → 0.8.7

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 (44) hide show
  1. package/dist/brain/index.d.ts +24 -7
  2. package/dist/brain/index.d.ts.map +1 -1
  3. package/dist/brain/index.js +227 -93
  4. package/dist/brain/index.js.map +1 -1
  5. package/dist/captcha.d.ts +55 -0
  6. package/dist/captcha.d.ts.map +1 -0
  7. package/dist/captcha.js +403 -0
  8. package/dist/captcha.js.map +1 -0
  9. package/dist/cli-design-audit.d.ts.map +1 -1
  10. package/dist/cli-design-audit.js +81 -59
  11. package/dist/cli-design-audit.js.map +1 -1
  12. package/dist/cli-ui.d.ts +49 -0
  13. package/dist/cli-ui.d.ts.map +1 -0
  14. package/dist/cli-ui.js +383 -0
  15. package/dist/cli-ui.js.map +1 -0
  16. package/dist/cli.js +54 -186
  17. package/dist/cli.js.map +1 -1
  18. package/dist/drivers/cdp-snapshot.d.ts.map +1 -1
  19. package/dist/drivers/cdp-snapshot.js +2 -1
  20. package/dist/drivers/cdp-snapshot.js.map +1 -1
  21. package/dist/drivers/playwright.d.ts +6 -0
  22. package/dist/drivers/playwright.d.ts.map +1 -1
  23. package/dist/drivers/playwright.js +34 -9
  24. package/dist/drivers/playwright.js.map +1 -1
  25. package/dist/drivers/snapshot.d.ts +1 -0
  26. package/dist/drivers/snapshot.d.ts.map +1 -1
  27. package/dist/drivers/snapshot.js +12 -5
  28. package/dist/drivers/snapshot.js.map +1 -1
  29. package/dist/drivers/types.d.ts +2 -0
  30. package/dist/drivers/types.d.ts.map +1 -1
  31. package/dist/index.d.ts +2 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/recovery.d.ts.map +1 -1
  36. package/dist/recovery.js +16 -35
  37. package/dist/recovery.js.map +1 -1
  38. package/dist/runner/runner.d.ts +1 -0
  39. package/dist/runner/runner.d.ts.map +1 -1
  40. package/dist/runner/runner.js +133 -98
  41. package/dist/runner/runner.js.map +1 -1
  42. package/dist/types.d.ts +9 -0
  43. package/dist/types.d.ts.map +1 -1
  44. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recovery.js","sourceRoot":"","sources":["../src/recovery.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,7 @@ export declare class AgentRunner {
34
34
  private projectStore?;
35
35
  private knowledge?;
36
36
  private selectorCache?;
37
+ private cachedPostState;
37
38
  constructor(options: RunnerOptions);
38
39
  run(scenario: Scenario): Promise<AgentResult>;
39
40
  private selectFollowUpActions;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAuC,MAAM,aAAa,CAAC;AAIjH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AA6C/D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC9B,wDAAwD;IACxD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACnG,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sEAAsE;IACtE,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAuB;IACtC,OAAO,CAAC,aAAa,CAAC,CAAqF;IAC3G,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,SAAS,CAAC,CAAe;IACjC,OAAO,CAAC,aAAa,CAAC,CAAgB;gBAE1B,OAAO,EAAE,aAAa;IAU5B,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;IAomCnD,OAAO,CAAC,qBAAqB;IA2B7B,mDAAmD;IACnD,OAAO,CAAC,UAAU;IAWlB;;;;;;;;;;;;OAYG;YACW,YAAY;YA2EZ,+BAA+B;YAgE/B,mCAAmC;YAwCnC,6BAA6B;YAwC7B,qCAAqC;YAoBrC,4BAA4B;YA4B5B,4BAA4B;YAkC5B,wBAAwB;CASvC;AAED,2BAA2B;AAC3B,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GACtC,OAAO,CAAC,WAAW,CAAC,CAGtB"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/runner/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAuC,MAAM,aAAa,CAAC;AAKjH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AA6C/D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC9B,wDAAwD;IACxD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACnG,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sEAAsE;IACtE,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAuB;IACtC,OAAO,CAAC,aAAa,CAAC,CAAqF;IAC3G,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,SAAS,CAAC,CAAe;IACjC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAwB;gBAEnC,OAAO,EAAE,aAAa;IAU5B,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;IA0oCnD,OAAO,CAAC,qBAAqB;IA2B7B,mDAAmD;IACnD,OAAO,CAAC,UAAU;IAWlB;;;;;;;;;;;;OAYG;YACW,YAAY;YA2EZ,+BAA+B;YAgE/B,mCAAmC;YAwCnC,6BAA6B;YA4C7B,qCAAqC;YAqBrC,4BAA4B;YA4B5B,4BAA4B;YAkC5B,wBAAwB;CASvC;AAED,2BAA2B;AAC3B,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GACtC,OAAO,CAAC,WAAW,CAAC,CAGtB"}
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import { Brain } from '../brain/index.js';
13
13
  import { analyzeRecovery, detectPersistentTerminalBlocker, detectTerminalBlocker } from '../recovery.js';
14
+ import { solveCaptcha, canAttemptSolve } from '../captcha.js';
14
15
  import { StaleRefError, AriaSnapshotHelper } from '../drivers/snapshot.js';
15
16
  import { verifyPreview } from '../preview.js';
16
17
  import { AppKnowledge } from '../memory/knowledge.js';
@@ -60,6 +61,7 @@ export class AgentRunner {
60
61
  projectStore;
61
62
  knowledge;
62
63
  selectorCache;
64
+ cachedPostState;
63
65
  constructor(options) {
64
66
  this.driver = options.driver;
65
67
  this.config = options.config || {};
@@ -84,15 +86,19 @@ export class AgentRunner {
84
86
  });
85
87
  // Reset brain history for fresh scenario
86
88
  this.brain.reset();
87
- // Load domain-scoped memory if project store is configured
88
- if (this.projectStore && scenario.startUrl) {
89
- this.knowledge = new AppKnowledge(this.projectStore.getKnowledgePath(scenario.startUrl), scenario.startUrl);
90
- this.selectorCache = new SelectorCache(this.projectStore.getSelectorCachePath(scenario.startUrl));
91
- }
92
- // Navigate to start URL if provided
89
+ this.cachedPostState = undefined;
90
+ // Start navigation and load memory in parallel. Navigation is async (network
91
+ // I/O) while memory init is sync (readFileSync), so memory completes while
92
+ // the network request is in flight — saving the serial cost of disk reads.
93
93
  if (scenario.startUrl) {
94
94
  const navigateStartedAt = Date.now();
95
- await withRetry(() => this.driver.execute({ action: 'navigate', url: scenario.startUrl }), retries, retryDelayMs, undefined, scenario.signal);
95
+ const navPromise = withRetry(() => this.driver.execute({ action: 'navigate', url: scenario.startUrl }), retries, retryDelayMs, undefined, scenario.signal);
96
+ // Load domain-scoped memory while navigation is in progress
97
+ if (this.projectStore) {
98
+ this.knowledge = new AppKnowledge(this.projectStore.getKnowledgePath(scenario.startUrl), scenario.startUrl);
99
+ this.selectorCache = new SelectorCache(this.projectStore.getSelectorCachePath(scenario.startUrl));
100
+ }
101
+ await navPromise;
96
102
  phaseTimings.initialNavigateMs = Date.now() - navigateStartedAt;
97
103
  this.onPhaseTiming?.('navigate', phaseTimings.initialNavigateMs);
98
104
  }
@@ -174,12 +180,15 @@ export class AgentRunner {
174
180
  }
175
181
  }
176
182
  // -- 2. Observe (with retry) --
183
+ // Reuse the snapshot from verifyEffect if available (no page mutations between them)
177
184
  const observeStartedAt = Date.now();
178
- const state = await withRetry(() => this.driver.observe(), retries, retryDelayMs, (attempt, err) => {
185
+ const state = this.cachedPostState ?? await withRetry(() => this.driver.observe(), 1, // Observe failures are DOM access issues, not transient — retrying 3x wastes 3s
186
+ retryDelayMs, (attempt, err) => {
179
187
  if (this.config.debug) {
180
188
  console.log(`[Runner] Observe retry ${attempt}: ${err.message}`);
181
189
  }
182
190
  }, scenario.signal);
191
+ this.cachedPostState = undefined;
183
192
  if (phaseTimings.firstObserveMs === undefined) {
184
193
  phaseTimings.firstObserveMs = Date.now() - observeStartedAt;
185
194
  this.onPhaseTiming?.('observe', phaseTimings.firstObserveMs);
@@ -194,7 +203,29 @@ export class AgentRunner {
194
203
  const reState = await withRetry(() => this.driver.observe(), retries, retryDelayMs, undefined, scenario.signal);
195
204
  Object.assign(state, reState);
196
205
  }
197
- const terminalBlocker = detectTerminalBlocker(state);
206
+ let terminalBlocker = detectTerminalBlocker(state);
207
+ // Attempt CAPTCHA solving only if: bot-challenge, enabled, and evidence suggests a solvable CAPTCHA
208
+ if (terminalBlocker?.kind === 'bot-challenge'
209
+ && this.config.captcha?.enabled !== false
210
+ && canAttemptSolve(terminalBlocker.evidence)) {
211
+ const page = this.driver.getPage?.();
212
+ if (page) {
213
+ try {
214
+ const model = await this.brain.getLanguageModel();
215
+ const captchaResult = await solveCaptcha(page, model, {
216
+ maxAttempts: this.config.captcha?.maxAttempts ?? 5,
217
+ });
218
+ if (captchaResult.success) {
219
+ await page.waitForLoadState('domcontentloaded', { timeout: 10_000 }).catch(() => { });
220
+ const postCaptchaState = await this.driver.observe();
221
+ Object.assign(state, postCaptchaState);
222
+ this.brain.injectFeedback(`CAPTCHA solved: ${captchaResult.type} in ${captchaResult.attempts} attempt(s), ${captchaResult.durationMs}ms. Continuing.`);
223
+ terminalBlocker = detectTerminalBlocker(state);
224
+ }
225
+ }
226
+ catch { /* CAPTCHA solve failed, fall through to abort */ }
227
+ }
228
+ }
198
229
  if (terminalBlocker) {
199
230
  const reason = `${terminalBlocker.reason} (signals: ${terminalBlocker.evidence.join(', ')})`;
200
231
  const blockerTurn = {
@@ -247,42 +278,23 @@ export class AgentRunner {
247
278
  (prevTurn?.action?.action === 'click' &&
248
279
  /reject|accept|allow|deny|dismiss|consent|cookie/i.test(prevTurn?.action?.selector || prevTurn?.rawLLMResponse || ''));
249
280
  if (modalWasDismissed && prevPrevTurn && state.url === prevPrevTurn.state.url) {
250
- ctxBudget.add('blocker-recovery', '\nBLOCKER RECOVERY NOTE: A blocking dialog was just dismissed, but the URL has not changed ' +
251
- 'since before the dialog appeared. Any form submission, search, or navigation that was attempted ' +
252
- 'before the dialog may have been intercepted and voided. ' +
253
- 'Re-check the page state and re-submit your prior action if needed.\n', 90);
281
+ ctxBudget.add('blocker-recovery', '\nDialog dismissed but URL unchanged prior action may have been voided. Re-submit if needed.\n', 90);
254
282
  }
255
283
  }
256
284
  const turnsLeft = maxTurns - i + 1;
257
285
  if (turnsLeft <= 3) {
258
- let turnBudgetText = `\nTURN-BUDGET CRITICAL: ${turnsLeft} turn(s) left including this one.\n` +
259
- 'Do not start new exploratory navigation.\n' +
260
- 'Prioritize extracting the final required evidence from the current page context and finish decisively.\n';
261
- if (turnsLeft === 1) {
262
- turnBudgetText +=
263
- 'FINAL TURN REQUIREMENT: return a terminal action now (`complete` if enough evidence exists, otherwise `abort` with explicit blocker reason).\n';
264
- }
265
- ctxBudget.add('turn-budget', turnBudgetText, 100);
286
+ const finalTurnSuffix = turnsLeft === 1
287
+ ? ' FINAL TURN: return complete or abort now.'
288
+ : '';
289
+ ctxBudget.add('turn-budget', `\nBUDGET: ${turnsLeft} turn(s) left. Extract data and finish.${finalTurnSuffix}\n`, 100);
266
290
  }
267
291
  else if (i >= Math.floor(maxTurns * 0.5) && runState.goalVerificationEvidence.length === 0) {
268
- // Mid-run: agent has used 50%+ turns without extracting any evidence
269
- ctxBudget.add('extraction-reminder', '\nEXTRACTION REMINDER: You have used over half your turn budget without extracting data. ' +
270
- 'STOP navigating between individual pages. Use runScript NOW to extract ALL data from the CURRENT page: ' +
271
- 'document.querySelectorAll("[class*=card], [class*=result], [class*=listing], li, tr").forEach(el => ...) ' +
272
- 'to get names, prices, phone numbers, addresses, ratings. ' +
273
- 'If you are on a listing/directory/search results page, extract everything visible and complete. ' +
274
- 'Do NOT click into more individual items — extract from the list.\n', 85);
292
+ ctxBudget.add('extraction-reminder', '\nHALF BUDGET USED, no data extracted. Use runScript NOW to extract from current page and complete.\n', 85);
275
293
  }
276
- // Early filter strategy nudge: if goal mentions filtering and agent hasn't
277
- // extracted evidence by turn 8, remind to use filter controls efficiently
278
294
  if (i >= 8 && i < Math.floor(maxTurns * 0.5) && runState.goalVerificationEvidence.length === 0) {
279
- const goalLower = scenario.goal.toLowerCase();
280
- const isFilterTask = /filter|under \$|over \$|\d+\+ (star|rating)|sort by|price range|less than/i.test(goalLower);
295
+ const isFilterTask = /filter|under \$|over \$|\d+\+ (star|rating)|sort by|price range|less than/i.test(scenario.goal);
281
296
  if (isFilterTask) {
282
- ctxBudget.add('filter-strategy', '\nFILTER STRATEGY: This goal requires filtering. If you are on the results page, ' +
283
- 'use runScript to find filter controls: document.querySelectorAll(\'input[type="range"], select, [class*="filter"], [class*="price"], [class*="slider"]\'). ' +
284
- 'Apply the filter, wait 2s, then extract results via runScript. ' +
285
- 'Do NOT keep browsing — apply the filter and extract data NOW.\n', 80);
297
+ ctxBudget.add('filter-strategy', '\nFILTER GOAL: use runScript to find filter controls, apply filter, extract results.\n', 80);
286
298
  }
287
299
  }
288
300
  const searchResultsGuidance = buildSearchResultsGuidance(state, scenario.goal, scenario.allowedDomains);
@@ -294,11 +306,27 @@ export class AgentRunner {
294
306
  if (visibleLinkRecommendation) {
295
307
  ctxBudget.add('visible-link', `\n${visibleLinkRecommendation}\n`, 60);
296
308
  }
297
- const [scoutLinkRecommendation, branchLinkRecommendation, searchScoutFeedback] = await Promise.all([
298
- this.buildVisibleLinkScoutRecommendation(state, scenario.goal, scenario.allowedDomains),
299
- this.buildBranchLinkRecommendation(state, scenario.goal, scenario.allowedDomains),
300
- this.buildSearchResultsScoutFeedback(state, scenario.goal, scenario.allowedDomains, runState.searchScoutUrls),
301
- ]);
309
+ // Gate scout calls: skip on early turns unless the agent appears
310
+ // stuck (same URL for 2+ consecutive turns). On early turns the agent
311
+ // is just navigating and doesn't need link recommendations.
312
+ const stuckOnSameUrl = turns.length >= 2 &&
313
+ turns[turns.length - 1].state.url === turns[turns.length - 2].state.url;
314
+ const shouldScout = i >= 5 || stuckOnSameUrl;
315
+ let scoutLinkRecommendation;
316
+ let branchLinkRecommendation;
317
+ let searchScoutFeedback;
318
+ if (shouldScout) {
319
+ [scoutLinkRecommendation, branchLinkRecommendation, searchScoutFeedback] = await Promise.all([
320
+ this.buildVisibleLinkScoutRecommendation(state, scenario.goal, scenario.allowedDomains),
321
+ this.buildBranchLinkRecommendation(state, scenario.goal, scenario.allowedDomains),
322
+ this.buildSearchResultsScoutFeedback(state, scenario.goal, scenario.allowedDomains, runState.searchScoutUrls),
323
+ ]);
324
+ }
325
+ else {
326
+ scoutLinkRecommendation = undefined;
327
+ branchLinkRecommendation = undefined;
328
+ searchScoutFeedback = '';
329
+ }
302
330
  if (scoutLinkRecommendation) {
303
331
  ctxBudget.add('scout-link', `\n${buildScoutLinkRecommendationText(scoutLinkRecommendation)}\n`, 55);
304
332
  }
@@ -458,12 +486,12 @@ export class AgentRunner {
458
486
  // Check if last turn had a verification failure
459
487
  const lastTurn = turns[turns.length - 1];
460
488
  if (lastTurn?.verificationFailure) {
461
- ctxBudget.add('verification-failure', `\nVERIFICATION FAILED: ${lastTurn.verificationFailure}\nYour last action did NOT produce the expected effect. Try a different approach.\n`, 85);
489
+ ctxBudget.add('verification-failure', `\nVERIFICATION FAILED: ${lastTurn.verificationFailure}. Try different approach.\n`, 85);
462
490
  }
463
491
  // Extraction guard: if the agent just ran a script that returned data,
464
492
  // remind it to consider completing before navigating away.
465
493
  if (lastTurn?.action.action === 'runScript' && !lastTurn.error) {
466
- ctxBudget.add('extraction-guard', '\nYou just extracted data with runScript. If this data answers the goal, use "complete" now instead of navigating away. Do not leave a page with useful data without attempting completion first.\n', 80);
494
+ ctxBudget.add('extraction-guard', '\nData extracted. If it answers the goal, complete now.\n', 80);
467
495
  }
468
496
  const extraContext = ctxBudget.build();
469
497
  const forceVision = shouldEscalateVision({
@@ -616,7 +644,30 @@ export class AgentRunner {
616
644
  ...persistentSearchEvidence,
617
645
  ];
618
646
  if (shouldVerifyGoal) {
619
- goalResult = await this.brain.verifyGoalCompletion(state, scenario.goal, buildGoalVerificationClaim(action.result || '', verificationEvidence));
647
+ // Fast-path: skip LLM verification when agent provides strong
648
+ // evidence and had no recent errors. The detailed result text
649
+ // (>50 chars) combined with script-extracted evidence means the
650
+ // verifier almost always agrees — save the round-trip.
651
+ const agentResult = action.result || '';
652
+ const recentErrors = turns.slice(-2).filter(t => t.error).length;
653
+ const hasScriptEvidence = verificationEvidence.some(e => e.startsWith('SCRIPT RESULT:'));
654
+ const fastPathEligible = agentResult.length > 50 &&
655
+ recentErrors === 0 &&
656
+ hasScriptEvidence;
657
+ if (fastPathEligible) {
658
+ goalResult = {
659
+ achieved: true,
660
+ confidence: 0.9,
661
+ evidence: ['Fast-path: agent provided detailed result with script-backed evidence and no recent errors.'],
662
+ missing: [],
663
+ };
664
+ if (this.config.debug) {
665
+ console.log('[Runner] Goal verification fast-path: skipped LLM call (strong evidence + no errors)');
666
+ }
667
+ }
668
+ else {
669
+ goalResult = await this.brain.verifyGoalCompletion(state, scenario.goal, buildGoalVerificationClaim(agentResult, verificationEvidence));
670
+ }
620
671
  if (this.config.debug) {
621
672
  console.log(`[Runner] Goal verification: achieved=${goalResult.achieved}, confidence=${goalResult.confidence}`);
622
673
  }
@@ -699,25 +750,10 @@ export class AgentRunner {
699
750
  turn.verificationFailure = goalResult.missing.join('; ') || 'Goal verification failed';
700
751
  runState.firstSufficientEvidenceTurn ??= i;
701
752
  // Goal not met — reject completion and feed back what's missing
702
- const escalation = runState.verificationRejectionCount >= 3
703
- ? '\nFINAL WARNING: You have been rejected 3+ times. ' +
704
- 'Use runScript NOW to extract the EXACT data the goal asks for: ' +
705
- 'document.querySelector/querySelectorAll to get text content, prices, ratings, dates, etc. ' +
706
- 'Include the extracted data verbatim in your completion result. ' +
707
- 'The verification system trusts runScript evidence — use it.'
708
- : runState.verificationRejectionCount >= 2
709
- ? '\nYou have been rejected multiple times. CHANGE YOUR STRATEGY: ' +
710
- 'Use runScript to extract the exact data needed: e.g., document.querySelector(".title").textContent. ' +
711
- 'Include ALL extracted data in your completion result. ' +
712
- 'If you need to prove a search was done, complete FROM the search results page. ' +
713
- 'The verifier trusts SCRIPT RESULT evidence — extract data programmatically.'
714
- : '\nBefore trying again, ensure ALL required evidence is visible or extracted. ' +
715
- 'Use runScript to extract structured data if the a11y tree is incomplete. ' +
716
- 'Complete only when every requirement in the goal can be verified from the page state or extracted via script.';
717
- this.brain.injectFeedback(`COMPLETION REJECTED — goal verification failed (confidence: ${goalResult.confidence.toFixed(2)}).\n` +
718
- `Missing: ${goalResult.missing.join('; ')}\n` +
719
- `Evidence reviewed: ${goalResult.evidence.join('; ')}\n` +
720
- `The goal has NOT been achieved yet. Continue working.${escalation}`);
753
+ const escalation = runState.verificationRejectionCount >= 2
754
+ ? ' Use runScript to extract exact data and include in completion.'
755
+ : '';
756
+ this.brain.injectFeedback(`REJECTED (${goalResult.confidence.toFixed(2)}). Missing: ${goalResult.missing.join('; ')}.${escalation}`);
721
757
  turn.durationMs = Date.now() - turnStart;
722
758
  turns.push(turn);
723
759
  this.onTurn?.(turn);
@@ -820,18 +856,16 @@ export class AgentRunner {
820
856
  }
821
857
  catch (err) {
822
858
  if (err instanceof StaleRefError) {
823
- // Stale ref — re-observe and ask the Brain to pick a new ref
824
- // without burning a full turn. Feed back the fresh snapshot
825
- // so the Brain can immediately re-decide.
859
+ // Stale ref — re-observe and cache for next turn (avoid double observe).
860
+ // Only inject available refs, not the full snapshot next turn's observe
861
+ // provides the complete snapshot, so duplicating it here wastes 3-8k tokens.
826
862
  if (this.config.debug) {
827
863
  console.log(`[Runner] Stale ref @${err.staleRef} — re-observing for immediate retry`);
828
864
  }
829
- const freshState = await this.driver.observe();
830
- this.brain.injectFeedback(`Your selector @${err.staleRef} was not found in the current page. ` +
865
+ this.cachedPostState = await this.driver.observe();
866
+ this.brain.injectFeedback(`Your selector @${err.staleRef} was not found. ` +
831
867
  `Available refs: ${err.availableRefs.slice(0, 20).join(', ')}. ` +
832
- `Here is the FRESH page state pick a valid ref:\n\n` +
833
- `URL: ${freshState.url}\nELEMENTS:\n${freshState.snapshot}`);
834
- // Let the loop continue — Brain sees feedback and next observe() has fresh refs.
868
+ `Pick a valid ref from the next observation.`);
835
869
  runState.recordError();
836
870
  turn.error = `Stale ref @${err.staleRef} — auto-retrying`;
837
871
  turn.durationMs = Date.now() - turnStart;
@@ -882,7 +916,8 @@ export class AgentRunner {
882
916
  if (turn.error)
883
917
  break;
884
918
  try {
885
- const followResult = await withRetry(() => this.driver.execute(followUpAction), retries, retryDelayMs, (attempt, err) => {
919
+ const followResult = await withRetry(() => this.driver.execute(followUpAction), 1, // Follow-ups are speculative micro-actions — fail fast, don't retry 3x
920
+ retryDelayMs, (attempt, err) => {
886
921
  if (this.config.debug) {
887
922
  console.log(`[Runner] Follow-up retry ${attempt}: ${err.message}`);
888
923
  }
@@ -901,6 +936,7 @@ export class AgentRunner {
901
936
  }
902
937
  const domainBoundaryViolation = await this.enforceAllowedDomainBoundary(state, scenario);
903
938
  if (domainBoundaryViolation) {
939
+ this.cachedPostState = undefined; // boundary navigated back — invalidate cache
904
940
  this.brain.injectFeedback(domainBoundaryViolation);
905
941
  turn.error = domainBoundaryViolation;
906
942
  turn.durationMs = Date.now() - turnStart;
@@ -1040,36 +1076,36 @@ export class AgentRunner {
1040
1076
  * - Generic text match -> check if text appears in snapshot
1041
1077
  */
1042
1078
  async verifyEffect(expectedEffect, preActionState) {
1043
- // Wait briefly for the effect to take hold
1044
- await new Promise(r => setTimeout(r, 500));
1045
- // Re-observe — this resets the refMap but that's OK since the next
1046
- // turn's observe() will rebuild it fresh before the brain decides.
1047
- const postState = await this.driver.observe().catch(() => preActionState);
1048
- // URL-based verification
1079
+ // URL-based verification no sleep needed, URL commits synchronously with navigation
1049
1080
  if (/url\s+should/i.test(expectedEffect)) {
1081
+ const currentUrl = this.driver.getUrl?.() ?? (await this.driver.observe().catch(() => preActionState)).url;
1050
1082
  // Extract target: prefer quoted value (handles complex phrases like
1051
1083
  // "URL should change to include '/chat/'"), fall back to word after verb
1052
1084
  const quotedVal = expectedEffect.match(/['"]([^'"]+)['"]/);
1053
1085
  const verbVal = expectedEffect.match(/url\s+should\s+(?:contain|include|have)\s+(\S+)/i);
1054
1086
  const expected = quotedVal?.[1] ?? verbVal?.[1];
1055
1087
  if (expected) {
1056
- if (postState.url.includes(expected)) {
1088
+ if (currentUrl.includes(expected)) {
1057
1089
  return { verified: true };
1058
1090
  }
1059
1091
  return {
1060
1092
  verified: false,
1061
- reason: `Expected URL to contain "${expected}" but got "${postState.url}"`,
1093
+ reason: `Expected URL to contain "${expected}" but got "${currentUrl}"`,
1062
1094
  };
1063
1095
  }
1064
1096
  // "URL should change" without a specific target — just check if URL changed
1065
- if (postState.url !== preActionState.url) {
1097
+ if (currentUrl !== preActionState.url) {
1066
1098
  return { verified: true };
1067
1099
  }
1068
1100
  return {
1069
1101
  verified: false,
1070
- reason: `Expected URL to change but it stayed at "${postState.url}"`,
1102
+ reason: `Expected URL to change but it stayed at "${currentUrl}"`,
1071
1103
  };
1072
1104
  }
1105
+ // Non-URL effects: brief wait for DOM to settle, then observe
1106
+ await new Promise(r => setTimeout(r, 100));
1107
+ const postState = await this.driver.observe().catch(() => preActionState);
1108
+ this.cachedPostState = postState;
1073
1109
  const effect = expectedEffect.toLowerCase();
1074
1110
  // Snapshot content verification (look for mentioned text/elements)
1075
1111
  // Extract quoted text from the expected effect
@@ -1209,16 +1245,16 @@ export class AgentRunner {
1209
1245
  const page = this.driver.getPage();
1210
1246
  if (!page)
1211
1247
  return undefined;
1212
- const previews = [];
1213
- for (const candidate of candidates) {
1248
+ const settled = await Promise.all(candidates.map(async (candidate) => {
1214
1249
  const href = await this.driver.inspectSelectorHref(candidate.ref).catch(() => undefined);
1215
1250
  if (!href)
1216
- continue;
1251
+ return undefined;
1217
1252
  const preview = await inspectBranchPreview(page, href, 8000);
1218
1253
  if (!preview)
1219
- continue;
1220
- previews.push({ ref: candidate.ref, text: candidate.text, href, score: scoreBranchPreview(goal, preview, allowedDomains), preview });
1221
- }
1254
+ return undefined;
1255
+ return { ref: candidate.ref, text: candidate.text, href, score: scoreBranchPreview(goal, preview, allowedDomains), preview };
1256
+ }));
1257
+ const previews = settled.filter((r) => r !== undefined);
1222
1258
  if (previews.length < 2)
1223
1259
  return undefined;
1224
1260
  previews.sort((a, b) => b.score - a.score);
@@ -1239,15 +1275,14 @@ export class AgentRunner {
1239
1275
  return candidates;
1240
1276
  }
1241
1277
  const allowedHosts = new Set(allowedDomains.map((domain) => domain.toLowerCase()));
1242
- const filtered = [];
1243
- for (const candidate of candidates) {
1278
+ const resolved = await Promise.all(candidates.map(async (candidate) => {
1244
1279
  const href = await this.driver.inspectSelectorHref(candidate.ref).catch(() => undefined);
1245
1280
  const host = href ? safeHostname(href) : undefined;
1246
- if (!host || allowedHosts.has(host)) {
1247
- filtered.push(candidate);
1248
- }
1249
- }
1250
- return filtered;
1281
+ return { candidate, host };
1282
+ }));
1283
+ return resolved
1284
+ .filter(({ host }) => !host || allowedHosts.has(host))
1285
+ .map(({ candidate }) => candidate);
1251
1286
  }
1252
1287
  async inspectDisallowedSearchClick(state, scenario, action) {
1253
1288
  if (action.action !== 'click')
@@ -1280,8 +1315,8 @@ export class AgentRunner {
1280
1315
  async enforceAllowedDomainBoundary(preActionState, scenario) {
1281
1316
  if (!scenario.allowedDomains || scenario.allowedDomains.length === 0)
1282
1317
  return undefined;
1283
- const postState = await this.driver.observe().catch(() => preActionState);
1284
- const currentHost = safeHostname(postState.url);
1318
+ const currentUrl = this.driver.getUrl?.() ?? preActionState.url;
1319
+ const currentHost = safeHostname(currentUrl);
1285
1320
  if (!currentHost)
1286
1321
  return undefined;
1287
1322
  const allowedHosts = scenario.allowedDomains.map((domain) => domain.toLowerCase());
@@ -1303,7 +1338,7 @@ export class AgentRunner {
1303
1338
  await this.driver.execute({ action: 'navigate', url: scenario.startUrl }).catch(() => { });
1304
1339
  }
1305
1340
  return [
1306
- `Boundary violation: landed on ${postState.url}, but the allowed host set is ${allowedHosts.join(', ')}.`,
1341
+ `Boundary violation: landed on ${currentUrl}, but the allowed host set is ${allowedHosts.join(', ')}.`,
1307
1342
  'Return to an allowed host and continue from there; do not rely on disallowed subdomains even if their snippet looks relevant.',
1308
1343
  ].join(' ');
1309
1344
  }