@trusty-squire/mcp 0.9.10 → 0.9.11

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.
@@ -182,6 +182,8 @@ export declare function splitKeyboardShortcut(text: string): {
182
182
  };
183
183
  export declare function formatInventory(inventory: readonly InteractiveElement[]): string;
184
184
  export declare function hostMatchesServiceDomain(hostname: string, serviceSlug: string): boolean;
185
+ export declare function looksLike404(title: string, bodyText: string): boolean;
186
+ export declare function titleFromHtml(html: string): string;
185
187
  export declare function classifySignupHtml(html: string, title?: string): "signup" | "login" | "other";
186
188
  export declare function extractVerifyWallAlias(text: string): string | null;
187
189
  export declare function isContinuationFormStep(html: string, inventory: ReadonlyArray<InteractiveElement>): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/bot/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/bot/agent.ts"],"names":[],"mappings":"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"}
package/dist/bot/agent.js CHANGED
@@ -1121,6 +1121,28 @@ function stripHtmlToText(html) {
1121
1121
  .replace(/\s+/g, " ")
1122
1122
  .toLowerCase();
1123
1123
  }
1124
+ // True when a page is a 404 / route-not-found shell. Used to abort the
1125
+ // hardcoded keys-URL walk early: when guessed keys paths keep 404ing, this
1126
+ // host's routing convention simply isn't in our list, and continuing the
1127
+ // ~25-path walk (each a goto + up-to-15s DOM wait) just burns the run budget.
1128
+ // MEASURED 2026-06-09: axiom/fathom/loops each hit the FULL walk with every
1129
+ // path a 404 and blew the 600s deadline. Matches the three observed shells:
1130
+ // title "Not Found" (fathom), body "404 … page you're looking for doesn't
1131
+ // exist" (loops), body "404 page not found" (axiom).
1132
+ export function looksLike404(title, bodyText) {
1133
+ const hay = `${title} ${bodyText}`.toLowerCase().slice(0, 600);
1134
+ const has404Token = /\b404\b/.test(hay);
1135
+ const notFoundPhrase = /page not found|not found|could ?n[o'’]?t be found|could not be found|does ?n[o'’]?t exist|does not exist|page you[''’]?re looking for/.test(hay);
1136
+ // A bare "404" token, or a clear not-found phrase, is enough — guessed
1137
+ // keys URLs that hit either are dead ends.
1138
+ return has404Token || notFoundPhrase;
1139
+ }
1140
+ // Pull the <title> text out of a raw HTML string (lowercased work is left to
1141
+ // the caller). Empty string when absent. Cheap — no DOM round-trip.
1142
+ export function titleFromHtml(html) {
1143
+ const m = /<title[^>]*>([\s\S]*?)<\/title>/i.exec(html);
1144
+ return m?.[1]?.trim() ?? "";
1145
+ }
1124
1146
  // Classify a fetched page as a signup form, a login form, or neither.
1125
1147
  //
1126
1148
  // WHY this exists: looksLikeSignupPage() answers "does this page have a
@@ -1715,19 +1737,34 @@ export function detectFormFillIsDashboard(plan) {
1715
1737
  .join(" ")
1716
1738
  .toLowerCase();
1717
1739
  // Billing / payment wall — the planner sees a credit-card / billing
1718
- // form, which is never a signup form.
1740
+ // form, which is never a signup form. (Checked first: a "free trial"
1741
+ // page that ALSO demands a card is a wall, not a path to signup.)
1719
1742
  const BILLING_WALL = /\b(?:add (?:a )?(?:credit card|payment method)|enter (?:your )?(?:credit card|payment)|billing (?:information|details)|payment information required)\b/;
1720
1743
  if (BILLING_WALL.test(haystack))
1721
1744
  return true;
1745
+ // Negative guard — a LOGIN / SIGN-IN page (pre-auth), or a plan that
1746
+ // proposes navigating TO a signup/trial form, is the OPPOSITE of a
1747
+ // logged-in dashboard. MEASURED 2026-06-09: fathom's planner correctly
1748
+ // said "this is a login page, NOT a signup page; click 'Start a free
1749
+ // trial' to reach the actual signup form" — pivoting to key extraction
1750
+ // there is wrong (we're not authenticated; the key page 404s). The
1751
+ // bot must EXECUTE the planner's click toward signup. Runs before the
1752
+ // ambiguous "not a signup" check below so it can't be swallowed.
1753
+ const REACH_SIGNUP = /\blog[\s-]?in page|sign[\s-]?in page|free trial|start a (?:free )?trial|create an? account|navigate to the (?:actual )?sign-?up/;
1754
+ if (REACH_SIGNUP.test(haystack))
1755
+ return false;
1722
1756
  // Product-creation form — the planner describes creating a
1723
1757
  // database / cluster / instance / deployment / app / project /
1724
1758
  // workspace / service, which is post-signup territory.
1725
1759
  const PRODUCT_CREATION = /\b(?:create(?:s|d)?|creating|provision(?:s|ed|ing)?)\s+(?:(?:the|a|an|new|your|this)\s+){0,3}(?:database|cluster|instance|deployment|app|service|project|workspace|index|environment|tenant)\b/;
1726
1760
  if (PRODUCT_CREATION.test(haystack))
1727
1761
  return true;
1728
- // Explicit "not a signup" / "logged in" / "dashboard" statements
1729
- // from the planner.
1730
- const EXPLICIT = /\b(?:not\s+(?:a\s+)?(?:sign-?up|signup)|already\s+(?:signed[\s-]?in|logged[\s-]?in|authenticated)|logged[\s-]?in (?:dashboard|user))\b/;
1762
+ // Explicit "logged in" / "dashboard" statements from the planner. NB:
1763
+ // bare "not a signup" is deliberately NOT here — it's ambiguous (a
1764
+ // LOGIN page is also "not a signup") and false-pivoted fathom into key
1765
+ // extraction. A genuine dashboard says "already signed in" / "logged-in
1766
+ // dashboard", which the REACH_SIGNUP guard above doesn't touch.
1767
+ const EXPLICIT = /\b(?:already\s+(?:signed[\s-]?in|logged[\s-]?in|authenticated)|logged[\s-]?in (?:dashboard|user))\b/;
1731
1768
  if (EXPLICIT.test(haystack))
1732
1769
  return true;
1733
1770
  return false;
@@ -4583,8 +4620,24 @@ export class SignupAgent {
4583
4620
  else {
4584
4621
  const klass = classifySignupHtml(landed.html);
4585
4622
  if (klass !== "signup" && !(await this.looksLikeSignupPage())) {
4586
- needsRecovery = true;
4587
- steps.push(`curated signup_url for ${task.service} rendered as "${klass}", not a signup form — attempting recovery`);
4623
+ // A "login"-classified page is still a valid signup ENTRY when it
4624
+ // offers OAuth: clicking "Continue with GitHub/Google" auto-
4625
+ // provisions the account on first use, and plenty of modern SPAs
4626
+ // (qdrant: cloud.qdrant.io/login) ship ONE unified page for both
4627
+ // login and signup. Only chase a separate signup page when there's
4628
+ // no OAuth affordance to ride — otherwise recovery falls through to
4629
+ // the Google-search fallback, which Google ERR_ABORTs through the
4630
+ // residential proxy, and the run dies on a page that would have
4631
+ // worked via OAuth.
4632
+ const oauthHere = findFirstOAuthButton(landedInventory, ["google", "github"]);
4633
+ if (oauthHere !== null) {
4634
+ steps.push(`curated signup_url for ${task.service} rendered as "${klass}", but it offers ` +
4635
+ `${oauthHere.provider} OAuth — treating the login page as the signup entry`);
4636
+ }
4637
+ else {
4638
+ needsRecovery = true;
4639
+ steps.push(`curated signup_url for ${task.service} rendered as "${klass}", not a signup form — attempting recovery`);
4640
+ }
4588
4641
  }
4589
4642
  }
4590
4643
  if (needsRecovery) {
@@ -5024,6 +5077,26 @@ export class SignupAgent {
5024
5077
  // dashboard. Previous 3s was over-cautious.
5025
5078
  await this.browser.wait(1);
5026
5079
  await saveDebugSnapshot(this.browser, "after-verify");
5080
+ // Verify-link SPA bounce (MEASURED 2026-06-09: amplitude). The
5081
+ // emailed link is a click-tracker that redirects to
5082
+ // app.amplitude.com/signup?token=… — the token IS consumed
5083
+ // server-side, but the single-page app still renders the
5084
+ // "check your email" wall until the client re-fetches session
5085
+ // state. The post-verify loop then can't get past it. A single
5086
+ // reload makes the SPA re-read the now-verified session.
5087
+ // Bounded + guarded on the wall still showing, so a service
5088
+ // that verified cleanly pays nothing.
5089
+ try {
5090
+ const afterText = await this.browser.extractText();
5091
+ if (expectsVerificationEmail(afterText)) {
5092
+ steps.push("Verification link landed but the page still shows the email-verify wall — reloading so the SPA re-reads the verified session.");
5093
+ await this.browser.reload();
5094
+ await this.browser.wait(2);
5095
+ }
5096
+ }
5097
+ catch {
5098
+ // best-effort — fall through to extraction regardless
5099
+ }
5027
5100
  // Try extracting first — many services drop the API key
5028
5101
  // straight onto the landing page after verification.
5029
5102
  credentials = await this.extractCredentials();
@@ -5184,6 +5257,39 @@ export class SignupAgent {
5184
5257
  }
5185
5258
  }
5186
5259
  }
5260
+ // hCaptcha Tier-3 — the OAuth-first path historically only escalated
5261
+ // reCAPTCHA, so an hCaptcha-gated OAuth button (MEASURED 2026-06-09:
5262
+ // supabase) timed out at Tier-2 and the bot then clicked a button
5263
+ // still hidden behind the unsolved widget → 20s waitFor crash. The
5264
+ // form-fill gate (runCaptchaGate) already solves hCaptcha via 2Captcha;
5265
+ // mirror it here. Unlike Turnstile, hCaptcha is a real image challenge
5266
+ // 2Captcha can solve, and its token is NOT IP-scored.
5267
+ if (!solvedViaTier3 &&
5268
+ captcha.kind === "hcaptcha" &&
5269
+ this.captchaSolver?.isAvailable() === true) {
5270
+ const sitekey = await this.browser.extractHcaptchaSitekey();
5271
+ const pageUrl = (await this.browser.getState().catch(() => null))?.url;
5272
+ if (sitekey !== null && pageUrl !== undefined) {
5273
+ steps.push(`OAuth: Tier 3 — submitting hCaptcha sitekey to 2Captcha (${sitekey.slice(0, 10)}…)`);
5274
+ const solveRes = await this.captchaSolver.solveHcaptcha({ sitekey, pageUrl });
5275
+ if (solveRes.kind === "ok") {
5276
+ const injected = await this.browser.injectHcaptchaToken(solveRes.token);
5277
+ if (injected) {
5278
+ solvedViaTier3 = true;
5279
+ steps.push(`OAuth: Tier 3 solved the hCaptcha in ${Math.round(solveRes.durationMs / 1000)}s via 2Captcha — clicking the ${provider.label} affordance`);
5280
+ }
5281
+ else {
5282
+ steps.push(`OAuth: Tier 3 hCaptcha token arrived but page injection failed — clicking the ${provider.label} affordance anyway`);
5283
+ }
5284
+ }
5285
+ else {
5286
+ steps.push(`OAuth: Tier 3 hCaptcha ${solveRes.kind}` +
5287
+ ("reason" in solveRes ? `: ${solveRes.reason}` : "") +
5288
+ ("durationMs" in solveRes ? ` (${Math.round(solveRes.durationMs / 1000)}s)` : "") +
5289
+ ` — clicking the ${provider.label} affordance anyway`);
5290
+ }
5291
+ }
5292
+ }
5187
5293
  if (!solvedViaTier3) {
5188
5294
  steps.push(`OAuth: visible ${captcha.kind} present but did not solve in 20s — clicking the ${provider.label} affordance anyway`);
5189
5295
  }
@@ -5214,6 +5320,25 @@ export class SignupAgent {
5214
5320
  (gsiHandled
5215
5321
  ? ""
5216
5322
  : " (FedCM dialog/popup did not complete — looking for another provider)"));
5323
+ // Classic-redirect-misrouted-as-GSI recovery (MEASURED 2026-06-08:
5324
+ // netlify). hasGoogleGsiAffordance() returns true whenever the GSI
5325
+ // client *script* is loaded — but many pages load that script next to a
5326
+ // CLASSIC redirect "Sign up with Google" button (netlify renders
5327
+ // button[name="google"]). Routing that button through tryGoogleGsiLogin
5328
+ // clicks it, which fires a normal same-tab redirect to
5329
+ // accounts.google.com; GSI then reports via:"none" (no FedCM dialog, no
5330
+ // popup) even though the OAuth redirect IS now in flight. Without this
5331
+ // check the code below would (a) scan the GOOGLE page for a github
5332
+ // fallback (finds none) and then (b) re-run startOAuth on
5333
+ // button[name="google"] — a button that no longer exists on
5334
+ // accounts.google.com → 20s waitFor timeout → the whole signup dies.
5335
+ // If the page has actually navigated onto a Google auth host, the
5336
+ // redirect already fired: treat it as handled and let the consent loop
5337
+ // below drive it, exactly as it would for any classic redirect OAuth.
5338
+ if (!gsiHandled && detectStuckOnGoogleOAuth(this.browser.currentUrl())) {
5339
+ gsiHandled = true;
5340
+ steps.push("OAuth: the GSI dialog never fired, but the click started a classic Google redirect — continuing the consent flow.");
5341
+ }
5217
5342
  }
5218
5343
  // GSI/FedCM dead end. Google won't render the FedCM dialog for an
5219
5344
  // automated browser (measured: FedCm.enable ok, dialogShown never fires),
@@ -5222,17 +5347,37 @@ export class SignupAgent {
5222
5347
  // caller a TRY_NEXT_PROVIDER signal so it re-dispatches via that provider
5223
5348
  // instead of dead-ending on Google. meilisearch offers both.
5224
5349
  if (gsiAttempted && !gsiHandled) {
5225
- try {
5226
- const inv = await this.browser.extractInteractiveElements();
5227
- const alt = findFirstOAuthButton(inv, ["github"]);
5228
- if (alt !== null) {
5229
- steps.push(`OAuth: Google GSI/FedCM is a dead end for the bot — falling back to ${alt.provider}.`);
5230
- return { kind: "try_next_provider", selector: alt.button.selector, provider: alt.provider };
5350
+ // The GSI click commonly leaves the page mid-SPA-transition (netlify:
5351
+ // the button[name="google"] goes invisible, the page hasn't navigated
5352
+ // anywhere useful), so a single inventory read here can THROW or return
5353
+ // empty and the old code then fell through to startOAuth(google),
5354
+ // which re-clicked the now-hidden button and hung 20s before dying.
5355
+ // Settle + retry the read a few times so the redirect-provider fallback
5356
+ // (github) actually fires — github is the redirect provider whose
5357
+ // session we keep warm.
5358
+ let alt = null;
5359
+ for (let attempt = 0; attempt < 3 && alt === null; attempt++) {
5360
+ if (attempt > 0)
5361
+ await this.browser.wait(2);
5362
+ try {
5363
+ const inv = await this.browser.extractInteractiveElements();
5364
+ alt = findFirstOAuthButton(inv, ["github"]);
5365
+ }
5366
+ catch {
5367
+ // page still navigating — retry after the settle
5231
5368
  }
5232
5369
  }
5233
- catch {
5234
- // inventory read failed fall through to the normal redirect path
5370
+ if (alt !== null) {
5371
+ steps.push(`OAuth: Google GSI/FedCM is a dead end for the bot falling back to ${alt.provider}.`);
5372
+ return { kind: "try_next_provider", selector: alt.button.selector, provider: alt.provider };
5235
5373
  }
5374
+ // No redirect provider to hand off to. Re-clicking the Google affordance
5375
+ // (startOAuth below) is pointless — it only re-raises the same dead GSI
5376
+ // dialog, and on netlify-class pages crashes on the hidden button. Skip
5377
+ // it: fall into the consent loop on the current page, which aborts
5378
+ // cleanly (needs_login) instead of a misleading 20s waitFor timeout.
5379
+ gsiHandled = true;
5380
+ steps.push("OAuth: Google GSI/FedCM dead-ended with no redirect provider to fall back to.");
5236
5381
  }
5237
5382
  // OmniAuth POST-only recovery prep. Capture the affordance's href + the
5238
5383
  // page's CSRF token NOW, while we're still on the signin page — the
@@ -6726,6 +6871,8 @@ ${formatInventory(input.inventory)}`,
6726
6871
  // ran (current page WAS a keys page but had no affordance), a
6727
6872
  // different keys URL on the same origin may carry the create
6728
6873
  // control (org-scoped vs account-scoped keys pages).
6874
+ let consecutive404 = 0;
6875
+ const MAX_CONSECUTIVE_404 = 3;
6729
6876
  for (let i = 0; i < STUCK_LOOP_FALLBACK_PATHS.length; i++) {
6730
6877
  let currentUrl;
6731
6878
  try {
@@ -6745,6 +6892,28 @@ ${formatInventory(input.inventory)}`,
6745
6892
  catch {
6746
6893
  continue;
6747
6894
  }
6895
+ // Abort the walk once guessed keys paths keep 404ing — this host's
6896
+ // convention isn't in our list, so the remaining ~20 paths would all
6897
+ // 404 too and burn the run's 600s budget (axiom/fathom/loops). A real
6898
+ // (non-404) page resets the counter so a host that mixes 404s with a
6899
+ // live keys page is still fully walked.
6900
+ try {
6901
+ const after = await this.browser.getState();
6902
+ const bodyText = await this.browser.extractText().catch(() => "");
6903
+ if (looksLike404(titleFromHtml(after.html), bodyText)) {
6904
+ consecutive404 += 1;
6905
+ if (consecutive404 >= MAX_CONSECUTIVE_404) {
6906
+ steps.push(`Existing-account recovery: ${consecutive404} consecutive 404s on guessed keys URLs — ` +
6907
+ `this host's keys path isn't in our list; aborting the walk.`);
6908
+ break;
6909
+ }
6910
+ continue;
6911
+ }
6912
+ consecutive404 = 0;
6913
+ }
6914
+ catch {
6915
+ // best-effort — fall through to the extract attempt
6916
+ }
6748
6917
  const here = await tryHere();
6749
6918
  if (here !== null)
6750
6919
  return here;
@@ -6905,6 +7074,17 @@ ${formatInventory(input.inventory)}`,
6905
7074
  // walking every fallback path.
6906
7075
  let prematureDoneFallbacks = 0;
6907
7076
  const MAX_PREMATURE_DONE_FALLBACKS = 3;
7077
+ // Navigate budget. A planner that can't find the key page (project-
7078
+ // scoped URLs it can't construct — supabase; or an SPA that ignores
7079
+ // direct navs and stays put — last9) keeps emitting `navigate` round
7080
+ // after round, burning the entire 600s deadline (MEASURED 2026-06-09).
7081
+ // `navigate` is exempt from the stuck-loop detector (it's meant to
7082
+ // change the URL), so cap the TOTAL navigates: a legit dashboard is
7083
+ // reachable in a handful, and past the cap the planner is just guessing.
7084
+ // Past the cap we force non-navigate planning and, if still nothing,
7085
+ // break — converting a 600s hang into a prompt, honest failure.
7086
+ let navigateCount = 0;
7087
+ const MAX_POST_VERIFY_NAVIGATES = 8;
6908
7088
  // Dead-URL memory. The planner guesses credential-page URLs
6909
7089
  // (e.g. /user/personal_access_tokens/new) that 404; without memory it
6910
7090
  // re-guesses the same dead URL round after round — xata and fly each
@@ -7402,6 +7582,28 @@ ${formatInventory(input.inventory)}`,
7402
7582
  continue;
7403
7583
  }
7404
7584
  if (nextStep.kind === "navigate") {
7585
+ navigateCount += 1;
7586
+ if (navigateCount > MAX_POST_VERIFY_NAVIGATES) {
7587
+ // Over budget: the planner is URL-guessing (supabase project-scoped
7588
+ // keys it can't address; last9's SPA that ignores direct navs). One
7589
+ // more shot CLICKING the current inventory, then give up — don't
7590
+ // burn the rest of the 600s deadline on more dead navigates.
7591
+ const clickable = inventory.filter((e) => e.tag === "button" || e.tag === "a");
7592
+ if (clickable.length > 0 && navigateCount <= MAX_POST_VERIFY_NAVIGATES + 2) {
7593
+ args.steps.push(`Post-verify: navigate budget (${MAX_POST_VERIFY_NAVIGATES}) exhausted — forcing a click on the current page instead of guessing more URLs.`);
7594
+ hint =
7595
+ `You have navigated ${navigateCount} times without reaching an API-key page. ` +
7596
+ `STOP navigating to guessed URLs. CLICK an element from the inventory below ` +
7597
+ `to advance the onboarding/dashboard, or emit 'done' if there is genuinely no ` +
7598
+ `key affordance here.`;
7599
+ continue;
7600
+ }
7601
+ this.lastPostVerifyDoneReason =
7602
+ `[stuck_loop] post-verify exhausted the navigate budget (${navigateCount} navigates) without ` +
7603
+ `reaching a credential page — the key is behind onboarding/URL the planner can't address.`;
7604
+ args.steps.push(`Post-verify: navigate budget exhausted (${navigateCount}) with no credential — breaking out instead of burning the run deadline.`);
7605
+ break;
7606
+ }
7405
7607
  prevNavigateFromUrl = state.url;
7406
7608
  // Remember where we're going so the next round can blocklist it
7407
7609
  // if it 404s.