@trusty-squire/mcp 0.9.17 → 0.9.18-rc.2
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/bot/agent.d.ts +5 -1
- package/dist/bot/agent.d.ts.map +1 -1
- package/dist/bot/agent.js +281 -8
- package/dist/bot/agent.js.map +1 -1
- package/dist/bot/browser.d.ts +4 -0
- package/dist/bot/browser.d.ts.map +1 -1
- package/dist/bot/browser.js +360 -2
- package/dist/bot/browser.js.map +1 -1
- package/dist/bot/replay-skill.d.ts +16 -1
- package/dist/bot/replay-skill.d.ts.map +1 -1
- package/dist/bot/replay-skill.js +89 -12
- package/dist/bot/replay-skill.js.map +1 -1
- package/dist/install/cli.d.ts +1 -0
- package/dist/install/cli.d.ts.map +1 -1
- package/dist/install/cli.js +9 -0
- package/dist/install/cli.js.map +1 -1
- package/package.json +1 -1
package/dist/bot/browser.d.ts
CHANGED
|
@@ -149,6 +149,9 @@ export declare class BrowserController {
|
|
|
149
149
|
private snapshotState;
|
|
150
150
|
extractText(): Promise<string>;
|
|
151
151
|
extractVisibleText(): Promise<string>;
|
|
152
|
+
extractGoogleApiKeyFromCredentials(projectId: string): Promise<string | null>;
|
|
153
|
+
fillRequiredComboboxes(): Promise<string[]>;
|
|
154
|
+
hasDisabledSubmit(): Promise<boolean>;
|
|
152
155
|
extractScopedRouteCandidates(prefix: string): Promise<string[]>;
|
|
153
156
|
readClipboard(): Promise<string>;
|
|
154
157
|
extractAllInputValues(): Promise<string[]>;
|
|
@@ -199,6 +202,7 @@ export declare class BrowserController {
|
|
|
199
202
|
bodyText: string;
|
|
200
203
|
} | null>;
|
|
201
204
|
oauthPageClosed(): boolean;
|
|
205
|
+
loginGoogleInline(email: string, password: string): Promise<boolean>;
|
|
202
206
|
detectSessionProviders(): Promise<OAuthProviderId[]>;
|
|
203
207
|
advanceOAuthConsent(provider: OAuthProviderId): Promise<boolean>;
|
|
204
208
|
waitForClerkSession(timeoutMs?: number): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/bot/browser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/bot/browser.ts"],"names":[],"mappings":"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"}
|
package/dist/bot/browser.js
CHANGED
|
@@ -3884,7 +3884,7 @@ export class BrowserController {
|
|
|
3884
3884
|
throw new Error("Browser not started");
|
|
3885
3885
|
try {
|
|
3886
3886
|
const responseKey = extractHcaptchaResponseKeyFromToken(token);
|
|
3887
|
-
|
|
3887
|
+
const diag = await this.page.evaluate(({ tok, key }) => {
|
|
3888
3888
|
const widgetIds = new Set();
|
|
3889
3889
|
const inputs = Array.from(document.querySelectorAll('textarea[name="h-captcha-response"], textarea[id^="h-captcha-response"], textarea[name="g-recaptcha-response"]'));
|
|
3890
3890
|
for (const input of inputs) {
|
|
@@ -3981,8 +3981,19 @@ export class BrowserController {
|
|
|
3981
3981
|
};
|
|
3982
3982
|
scan(win.___hcaptcha_cfg, 0);
|
|
3983
3983
|
scan(win.hcaptcha, 0);
|
|
3984
|
-
return
|
|
3984
|
+
return {
|
|
3985
|
+
ok: inputs.length > 0 || widgetIds.size > 0 || callbackFired,
|
|
3986
|
+
textareas: inputs.length,
|
|
3987
|
+
widgets: widgetIds.size,
|
|
3988
|
+
callbackFired,
|
|
3989
|
+
hasHcaptchaGlobal: win.hcaptcha !== undefined,
|
|
3990
|
+
};
|
|
3985
3991
|
}, { tok: token, key: responseKey });
|
|
3992
|
+
if (process.env.UNIVERSAL_BOT_OAUTH_DEBUG) {
|
|
3993
|
+
console.error(`[captcha] hCaptcha inject diag: ok=${diag.ok} textareas=${diag.textareas} ` +
|
|
3994
|
+
`widgets=${diag.widgets} callbackFired=${diag.callbackFired} hcaptchaGlobal=${diag.hasHcaptchaGlobal}`);
|
|
3995
|
+
}
|
|
3996
|
+
return diag.ok;
|
|
3986
3997
|
}
|
|
3987
3998
|
catch {
|
|
3988
3999
|
return false;
|
|
@@ -4225,6 +4236,262 @@ export class BrowserController {
|
|
|
4225
4236
|
throw new Error("Browser not started");
|
|
4226
4237
|
return await this.page.evaluate(() => document.body?.innerText ?? "");
|
|
4227
4238
|
}
|
|
4239
|
+
// Deterministic Firebase/GCP credential extraction. Every Firebase project
|
|
4240
|
+
// auto-creates a "Browser key (auto created by Firebase)" in its underlying
|
|
4241
|
+
// Google Cloud project — the SAME AIzaSy value as firebaseConfig.apiKey AND a
|
|
4242
|
+
// usable GCP API key — even with NO web app registered. PROVEN surface
|
|
4243
|
+
// (2026-06-23): console.cloud.google.com/apis/credentials?project=<projectId>
|
|
4244
|
+
// → API Keys row "Browser key (auto created by Firebase)" → "Show key" reveals
|
|
4245
|
+
// the AIzaSy value inline in that row. Row-scoped so it never grabs one of the
|
|
4246
|
+
// console's own internal AIzaSy keys (which live in script/attribute data, not
|
|
4247
|
+
// the visible row text). Returns the key, or null when the page didn't render
|
|
4248
|
+
// a Browser key (project not provisioned yet / different surface).
|
|
4249
|
+
async extractGoogleApiKeyFromCredentials(projectId) {
|
|
4250
|
+
if (!this.page)
|
|
4251
|
+
throw new Error("Browser not started");
|
|
4252
|
+
const KEY_RE = /AIzaSy[0-9A-Za-z_-]{33}/;
|
|
4253
|
+
const url = `https://console.cloud.google.com/apis/credentials?project=${encodeURIComponent(projectId)}`;
|
|
4254
|
+
await this.page.goto(url, { waitUntil: "domcontentloaded" }).catch(() => undefined);
|
|
4255
|
+
// The credentials table renders async (heavy Angular console). Poll for it.
|
|
4256
|
+
for (let i = 0; i < 12; i++) {
|
|
4257
|
+
await this.wait(2.5);
|
|
4258
|
+
const ready = await this.page
|
|
4259
|
+
.evaluate(() => /Browser key|API Keys|Create credentials/i.test(document.body?.innerText ?? ""))
|
|
4260
|
+
.catch(() => false);
|
|
4261
|
+
if (ready)
|
|
4262
|
+
break;
|
|
4263
|
+
}
|
|
4264
|
+
// Locate the Firebase Browser-key row; return its AIzaSy if already shown,
|
|
4265
|
+
// else click the row's "Show key" button to reveal it.
|
|
4266
|
+
const readRowKey = () => this.page
|
|
4267
|
+
.evaluate(() => {
|
|
4268
|
+
const rows = Array.from(document.querySelectorAll("tr"));
|
|
4269
|
+
const row = rows.find((r) => /browser key \(auto created by firebase\)/i.test(r.textContent ?? "")) ??
|
|
4270
|
+
rows.find((r) => /browser key/i.test(r.textContent ?? ""));
|
|
4271
|
+
if (row === undefined)
|
|
4272
|
+
return null;
|
|
4273
|
+
const m = (row.textContent ?? "").match(/AIzaSy[0-9A-Za-z_-]{33}/);
|
|
4274
|
+
if (m !== null)
|
|
4275
|
+
return m[0];
|
|
4276
|
+
const btn = Array.from(row.querySelectorAll("button,a")).find((b) => /show key/i.test(b.textContent ?? ""));
|
|
4277
|
+
if (btn !== undefined)
|
|
4278
|
+
btn.click();
|
|
4279
|
+
return null;
|
|
4280
|
+
})
|
|
4281
|
+
.catch(() => null);
|
|
4282
|
+
const first = await readRowKey();
|
|
4283
|
+
if (first !== null && KEY_RE.test(first))
|
|
4284
|
+
return first;
|
|
4285
|
+
// After the Show-key click, poll the row (reveal is async) and any dialog
|
|
4286
|
+
// / readonly input the console may surface the value in.
|
|
4287
|
+
for (let i = 0; i < 8; i++) {
|
|
4288
|
+
await this.wait(1.5);
|
|
4289
|
+
const revealed = await this.page
|
|
4290
|
+
.evaluate(() => {
|
|
4291
|
+
const rows = Array.from(document.querySelectorAll("tr"));
|
|
4292
|
+
const row = rows.find((r) => /browser key/i.test(r.textContent ?? ""));
|
|
4293
|
+
const inRow = (row?.textContent ?? "").match(/AIzaSy[0-9A-Za-z_-]{33}/);
|
|
4294
|
+
if (inRow !== null)
|
|
4295
|
+
return inRow[0];
|
|
4296
|
+
for (const inp of Array.from(document.querySelectorAll("input"))) {
|
|
4297
|
+
const v = inp.value ?? "";
|
|
4298
|
+
const m = v.match(/AIzaSy[0-9A-Za-z_-]{33}/);
|
|
4299
|
+
if (m !== null)
|
|
4300
|
+
return m[0];
|
|
4301
|
+
}
|
|
4302
|
+
return null;
|
|
4303
|
+
})
|
|
4304
|
+
.catch(() => null);
|
|
4305
|
+
if (revealed !== null && KEY_RE.test(revealed))
|
|
4306
|
+
return revealed;
|
|
4307
|
+
}
|
|
4308
|
+
return null;
|
|
4309
|
+
}
|
|
4310
|
+
// Deterministically satisfy required, currently-EMPTY combobox/listbox
|
|
4311
|
+
// selectors (cmdk / Radix / Headless UI multi-selects) that gate a disabled
|
|
4312
|
+
// submit. The dominant `oauth_onboarding_failed` blocker is a post-OAuth
|
|
4313
|
+
// "tell us about yourself" survey whose required multi-selects the greedy
|
|
4314
|
+
// planner opens but never commits — it concludes "all filled", clicks the
|
|
4315
|
+
// disabled Next, and stalls (MEASURED 2026-06-23, meilisearch
|
|
4316
|
+
// /welcome-informations: `[data-cy=...-trigger]` role=combobox → cmdk-list of
|
|
4317
|
+
// `[role=option][cmdk-item]`). For each unfilled trigger: open it, click the
|
|
4318
|
+
// first non-disabled option (Playwright locator click COMMITS where a raw
|
|
4319
|
+
// coordinate click drops — same as the post-verify combobox path), and Escape
|
|
4320
|
+
// to close the multi-select popover. Returns the labels it satisfied. Tightly
|
|
4321
|
+
// scoped: only acts on placeholder-showing (empty) comboboxes, never a
|
|
4322
|
+
// combobox that already holds a value.
|
|
4323
|
+
async fillRequiredComboboxes() {
|
|
4324
|
+
if (!this.page)
|
|
4325
|
+
throw new Error("Browser not started");
|
|
4326
|
+
const page = this.page;
|
|
4327
|
+
let triggerSelectors = [];
|
|
4328
|
+
try {
|
|
4329
|
+
triggerSelectors = await page.evaluate(() => {
|
|
4330
|
+
const isVisible = (el) => {
|
|
4331
|
+
const r = el.getBoundingClientRect();
|
|
4332
|
+
return r.width > 0 && r.height > 0;
|
|
4333
|
+
};
|
|
4334
|
+
const out = [];
|
|
4335
|
+
const seen = new Set();
|
|
4336
|
+
// Candidate trigger elements: an ARIA combobox/listbox-popup, OR a
|
|
4337
|
+
// shadcn/Radix `*-trigger` data-cy button. MEASURED 2026-06-23
|
|
4338
|
+
// (meilisearch): the clickable trigger carries `data-cy="…-trigger"`
|
|
4339
|
+
// but role=combobox lives on a separate inner node with NO data-cy, so
|
|
4340
|
+
// a role-only query found an un-addressable element. Collect both and
|
|
4341
|
+
// resolve each to its nearest stable data-cy selector.
|
|
4342
|
+
const candidates = new Set();
|
|
4343
|
+
for (const e of Array.from(document.querySelectorAll("[role='combobox'],[aria-haspopup='listbox'],button[data-cy$='-trigger']"))) {
|
|
4344
|
+
candidates.add(e);
|
|
4345
|
+
}
|
|
4346
|
+
for (const el of Array.from(candidates)) {
|
|
4347
|
+
if (!isVisible(el))
|
|
4348
|
+
continue;
|
|
4349
|
+
// Skip text/autocomplete inputs (role=combobox is also set on search
|
|
4350
|
+
// multiselects like MongoDB's "data types") — we click-to-pick from a
|
|
4351
|
+
// dropdown, never type into a filter box.
|
|
4352
|
+
if (el.tagName === "INPUT")
|
|
4353
|
+
continue;
|
|
4354
|
+
const txt = (el.textContent ?? "").replace(/\s+/g, " ").trim();
|
|
4355
|
+
// Unfilled signals: (1) Radix sets `data-placeholder` on a SelectTrigger
|
|
4356
|
+
// until a value is committed — present even when the trigger PREVIEWS
|
|
4357
|
+
// the first option (meilisearch's role/referral show "Founder/CTO" /
|
|
4358
|
+
// "Open Source" but stay uncommitted, so Next stays disabled); (2) empty
|
|
4359
|
+
// text; (3) a clear "Select…/Choose…/Pick…" placeholder. NOT
|
|
4360
|
+
// "search"/"add"/"type" — those are filter inputs we must not auto-pick.
|
|
4361
|
+
const hasPlaceholderAttr = el.hasAttribute("data-placeholder") ||
|
|
4362
|
+
el.querySelector("[data-placeholder]") !== null;
|
|
4363
|
+
const placeholderish = hasPlaceholderAttr ||
|
|
4364
|
+
txt.length === 0 ||
|
|
4365
|
+
/^(?:please\s+)?(?:select|choose|pick)\b/i.test(txt);
|
|
4366
|
+
if (!placeholderish)
|
|
4367
|
+
continue;
|
|
4368
|
+
// Resolve a stable data-cy selector — own, or nearest ancestor — so
|
|
4369
|
+
// the locator click can't drift after the portal re-renders.
|
|
4370
|
+
const dcEl = el.getAttribute("data-cy") !== null ? el : el.closest("[data-cy]");
|
|
4371
|
+
const dc = dcEl !== null ? dcEl.getAttribute("data-cy") : null;
|
|
4372
|
+
const sel = dc !== null && dc.length > 0 ? `[data-cy="${dc}"]` : null;
|
|
4373
|
+
if (sel === null || seen.has(sel))
|
|
4374
|
+
continue;
|
|
4375
|
+
seen.add(sel);
|
|
4376
|
+
out.push(sel);
|
|
4377
|
+
}
|
|
4378
|
+
// LeafyGreen (MongoDB Atlas) path. Its select triggers are
|
|
4379
|
+
// `<button data-lgid="lg-button">Select</button>` with NO data-cy and NO
|
|
4380
|
+
// data-placeholder — the placeholder is the literal text "Select".
|
|
4381
|
+
// Address each by its index among lg-buttons (Playwright `>> nth=`),
|
|
4382
|
+
// since there's no stable per-trigger attribute. MEASURED 2026-06-23
|
|
4383
|
+
// (mongodb-atlas /atlas onboarding personalization wizard).
|
|
4384
|
+
const lgButtons = Array.from(document.querySelectorAll("button[data-lgid='lg-button']"));
|
|
4385
|
+
for (let i = 0; i < lgButtons.length; i++) {
|
|
4386
|
+
const el = lgButtons[i];
|
|
4387
|
+
if (el === undefined || !isVisible(el))
|
|
4388
|
+
continue;
|
|
4389
|
+
const txt = (el.textContent ?? "").replace(/\s+/g, " ").trim();
|
|
4390
|
+
if (!/^(?:please\s+)?(?:select|choose|pick)\b/i.test(txt))
|
|
4391
|
+
continue;
|
|
4392
|
+
const sel = `button[data-lgid="lg-button"] >> nth=${i}`;
|
|
4393
|
+
if (seen.has(sel))
|
|
4394
|
+
continue;
|
|
4395
|
+
seen.add(sel);
|
|
4396
|
+
out.push(sel);
|
|
4397
|
+
}
|
|
4398
|
+
// Autocomplete-list combobox INPUTS that are part of the survey and
|
|
4399
|
+
// still EMPTY (mongodb's required "data types" multiselect). These are
|
|
4400
|
+
// distinct from free-text search boxes: `aria-autocomplete=list/both`
|
|
4401
|
+
// means a fixed option list, and an empty value means unfilled. Click +
|
|
4402
|
+
// pick-first via the same option locator. Addressed by index.
|
|
4403
|
+
const acInputs = Array.from(document.querySelectorAll("input[role='combobox'][aria-autocomplete]"));
|
|
4404
|
+
for (let i = 0; i < acInputs.length; i++) {
|
|
4405
|
+
const el = acInputs[i];
|
|
4406
|
+
if (el === undefined || !isVisible(el))
|
|
4407
|
+
continue;
|
|
4408
|
+
if ((el.value ?? "").trim().length > 0)
|
|
4409
|
+
continue;
|
|
4410
|
+
const sel = `input[role='combobox'][aria-autocomplete] >> nth=${i}`;
|
|
4411
|
+
if (seen.has(sel))
|
|
4412
|
+
continue;
|
|
4413
|
+
seen.add(sel);
|
|
4414
|
+
out.push(sel);
|
|
4415
|
+
}
|
|
4416
|
+
return out.slice(0, 8);
|
|
4417
|
+
});
|
|
4418
|
+
}
|
|
4419
|
+
catch {
|
|
4420
|
+
return [];
|
|
4421
|
+
}
|
|
4422
|
+
const filled = [];
|
|
4423
|
+
for (const sel of triggerSelectors) {
|
|
4424
|
+
try {
|
|
4425
|
+
const trigger = page.locator(sel).first();
|
|
4426
|
+
if ((await trigger.count().catch(() => 0)) === 0)
|
|
4427
|
+
continue;
|
|
4428
|
+
await trigger.click({ timeout: 5000 });
|
|
4429
|
+
await page.waitForTimeout(600);
|
|
4430
|
+
// An autocomplete input may only render its option list after a
|
|
4431
|
+
// keystroke — nudge it with ArrowDown so the option locator can resolve.
|
|
4432
|
+
if (sel.includes("input[")) {
|
|
4433
|
+
await page.keyboard.press("ArrowDown").catch(() => undefined);
|
|
4434
|
+
await page.waitForTimeout(400);
|
|
4435
|
+
}
|
|
4436
|
+
const option = page
|
|
4437
|
+
.locator("[role='option']:not([aria-disabled='true']):not([data-disabled='true'])," +
|
|
4438
|
+
"[cmdk-item]:not([aria-disabled='true']):not([data-disabled='true'])," +
|
|
4439
|
+
"[data-lgid='lg-option']:not([aria-disabled='true'])")
|
|
4440
|
+
.first();
|
|
4441
|
+
if ((await option.count().catch(() => 0)) > 0) {
|
|
4442
|
+
const name = ((await option.textContent().catch(() => "")) ?? "")
|
|
4443
|
+
.replace(/\s+/g, " ")
|
|
4444
|
+
.trim()
|
|
4445
|
+
.slice(0, 40);
|
|
4446
|
+
await option.click({ timeout: 5000 });
|
|
4447
|
+
filled.push(`${sel} → ${name}`);
|
|
4448
|
+
await page.waitForTimeout(300);
|
|
4449
|
+
}
|
|
4450
|
+
// Close the (multi-select) popover so the next trigger isn't occluded.
|
|
4451
|
+
await page.keyboard.press("Escape").catch(() => undefined);
|
|
4452
|
+
await page.waitForTimeout(200);
|
|
4453
|
+
}
|
|
4454
|
+
catch {
|
|
4455
|
+
// Best-effort per combobox — a miss falls back to the planner.
|
|
4456
|
+
}
|
|
4457
|
+
}
|
|
4458
|
+
return filled;
|
|
4459
|
+
}
|
|
4460
|
+
// True when a visible advance/submit button (Next / Continue / Create /
|
|
4461
|
+
// Register / Submit / Get started / Finish) is currently DISABLED. The gate
|
|
4462
|
+
// for the deterministic combobox filler: only auto-satisfy a survey's
|
|
4463
|
+
// required selects when something is actually blocking forward progress.
|
|
4464
|
+
async hasDisabledSubmit() {
|
|
4465
|
+
if (!this.page)
|
|
4466
|
+
return false;
|
|
4467
|
+
try {
|
|
4468
|
+
return await this.page.evaluate(() => {
|
|
4469
|
+
const re = /\b(?:next|continue|register|submit|get started|finish|complete|done|create account|sign up)\b/i;
|
|
4470
|
+
for (const el of Array.from(document.querySelectorAll("button,[role='button']"))) {
|
|
4471
|
+
const r = el.getBoundingClientRect();
|
|
4472
|
+
if (r.width <= 0 || r.height <= 0)
|
|
4473
|
+
continue;
|
|
4474
|
+
const disabled = el.disabled === true ||
|
|
4475
|
+
el.getAttribute("aria-disabled") === "true" ||
|
|
4476
|
+
el.getAttribute("disabled") !== null;
|
|
4477
|
+
if (!disabled)
|
|
4478
|
+
continue;
|
|
4479
|
+
// A disabled advance/submit button gates the survey. Match by verb
|
|
4480
|
+
// text OR by type=submit (meilisearch's button-register is a
|
|
4481
|
+
// type=submit whose visible label is icon+text, so a text-only match
|
|
4482
|
+
// missed it).
|
|
4483
|
+
const txt = (el.textContent ?? "").replace(/\s+/g, " ").trim();
|
|
4484
|
+
const isSubmit = el.type === "submit";
|
|
4485
|
+
if (re.test(txt) || isSubmit)
|
|
4486
|
+
return true;
|
|
4487
|
+
}
|
|
4488
|
+
return false;
|
|
4489
|
+
});
|
|
4490
|
+
}
|
|
4491
|
+
catch {
|
|
4492
|
+
return false;
|
|
4493
|
+
}
|
|
4494
|
+
}
|
|
4228
4495
|
async extractScopedRouteCandidates(prefix) {
|
|
4229
4496
|
if (!this.page)
|
|
4230
4497
|
throw new Error("Browser not started");
|
|
@@ -6208,6 +6475,90 @@ export class BrowserController {
|
|
|
6208
6475
|
oauthPageClosed() {
|
|
6209
6476
|
return this.page === null || this.page.isClosed();
|
|
6210
6477
|
}
|
|
6478
|
+
// Drive a Google sign-in on the ACTIVE OAuth page (already sitting at
|
|
6479
|
+
// accounts.google.com/.../identifier). The whole point: replay must not bail
|
|
6480
|
+
// `needs_login` where the full discover bot would just type the password —
|
|
6481
|
+
// a freshly-created robot account lands on the identifier page the first time
|
|
6482
|
+
// a given relying party requests OAuth even with a live session, and the
|
|
6483
|
+
// robot's credentials are available to the verifier. Mirrors the proven
|
|
6484
|
+
// tools/google-login-fleet.mjs in-page steps (email → Enter → password →
|
|
6485
|
+
// Enter → ToS/continue speedbumps) but operates on `this.page` instead of
|
|
6486
|
+
// navigating to myaccount — in the OAuth flow the success terminus is the
|
|
6487
|
+
// consent screen or the return to the relying party, NOT myaccount. Returns
|
|
6488
|
+
// true when the flow progressed off the Google identifier/password screens
|
|
6489
|
+
// (or the popup closed); false on any failure, so the caller can fall back to
|
|
6490
|
+
// its existing needs_login path. Never logs the password.
|
|
6491
|
+
async loginGoogleInline(email, password) {
|
|
6492
|
+
const page = this.page;
|
|
6493
|
+
if (page === null || page.isClosed())
|
|
6494
|
+
return false;
|
|
6495
|
+
const onIdentifierOrPwd = () => /\/signin\/(?:identifier|v\d+\/(?:identifier|challenge|signin)|challenge|pwd|password)/i.test(page.url());
|
|
6496
|
+
try {
|
|
6497
|
+
// Cookie-consent wall (EU surfaces) — best-effort.
|
|
6498
|
+
await page
|
|
6499
|
+
.evaluate(() => {
|
|
6500
|
+
const want = /^(accept all|i agree|agree|accept|reject all)$/i;
|
|
6501
|
+
for (const b of Array.from(document.querySelectorAll("button,[role=button]"))) {
|
|
6502
|
+
if (want.test((b.textContent ?? "").trim())) {
|
|
6503
|
+
b.click();
|
|
6504
|
+
return;
|
|
6505
|
+
}
|
|
6506
|
+
}
|
|
6507
|
+
})
|
|
6508
|
+
.catch(() => undefined);
|
|
6509
|
+
await page.waitForTimeout(1200);
|
|
6510
|
+
// Email — #identifierId, never input[type=email] alone (Google uses a
|
|
6511
|
+
// custom input). Only fill if the identifier field is actually present;
|
|
6512
|
+
// a flow already past identifier (parked on the password screen) skips it.
|
|
6513
|
+
const EMAIL = '#identifierId, input[name="identifier"], input[type="email"]';
|
|
6514
|
+
const emailField = await page.$(EMAIL);
|
|
6515
|
+
if (emailField !== null) {
|
|
6516
|
+
await page.fill(EMAIL, email).catch(() => undefined);
|
|
6517
|
+
await page.waitForTimeout(400);
|
|
6518
|
+
await page.keyboard.press("Enter");
|
|
6519
|
+
await page.waitForTimeout(6000);
|
|
6520
|
+
}
|
|
6521
|
+
// Password.
|
|
6522
|
+
const PW = 'input[type="password"][name="Passwd"], input[type="password"]';
|
|
6523
|
+
await page.waitForSelector(PW, { state: "visible", timeout: 15_000 });
|
|
6524
|
+
await page.fill(PW, password).catch(() => undefined);
|
|
6525
|
+
await page.waitForTimeout(400);
|
|
6526
|
+
await page.keyboard.press("Enter");
|
|
6527
|
+
await page.waitForTimeout(7000);
|
|
6528
|
+
// New-account ToS speedbump + OAuth follow-ons — patient (renders late).
|
|
6529
|
+
for (let i = 0; i < 8; i++) {
|
|
6530
|
+
if (page.isClosed())
|
|
6531
|
+
return true; // popup closed → handshake done
|
|
6532
|
+
const clicked = await page
|
|
6533
|
+
.evaluate(() => {
|
|
6534
|
+
const want = /^(not now|skip|confirm|i understand|i agree|accept|agree|got it|continue|allow|done|maybe later|next)$/i;
|
|
6535
|
+
for (const b of Array.from(document.querySelectorAll("button,[role=button],a,input[type=submit]"))) {
|
|
6536
|
+
const t = (b.textContent ?? b.value ?? "").trim();
|
|
6537
|
+
if (want.test(t)) {
|
|
6538
|
+
b.click();
|
|
6539
|
+
return t;
|
|
6540
|
+
}
|
|
6541
|
+
}
|
|
6542
|
+
return null;
|
|
6543
|
+
})
|
|
6544
|
+
.catch(() => null);
|
|
6545
|
+
if (clicked !== null) {
|
|
6546
|
+
await page.waitForTimeout(3500);
|
|
6547
|
+
}
|
|
6548
|
+
else {
|
|
6549
|
+
if (!onIdentifierOrPwd())
|
|
6550
|
+
break; // left the sign-in screens → progressed
|
|
6551
|
+
await page.waitForTimeout(2500);
|
|
6552
|
+
}
|
|
6553
|
+
}
|
|
6554
|
+
// Success = we are no longer parked on a Google identifier/password
|
|
6555
|
+
// screen (moved to consent / back to the relying party / popup closed).
|
|
6556
|
+
return page.isClosed() || !onIdentifierOrPwd();
|
|
6557
|
+
}
|
|
6558
|
+
catch {
|
|
6559
|
+
return false;
|
|
6560
|
+
}
|
|
6561
|
+
}
|
|
6211
6562
|
// Which OAuth providers have a LIVE session in this profile's cookie jar.
|
|
6212
6563
|
// The logged-in-providers.json marker is a memo that drifts out of sync
|
|
6213
6564
|
// (a --force-relogin clears it, a misclassified run clears it, a parallel
|
|
@@ -6872,6 +7223,13 @@ export function scoreSignupButton(text, oauthProviders) {
|
|
|
6872
7223
|
// forms; it should beat nothing but lose to OAuth markers.
|
|
6873
7224
|
if (t.includes("continue"))
|
|
6874
7225
|
score += 2;
|
|
7226
|
+
// "Next" / "Submit" / "Join" are the real form-submit verb on a multi-step
|
|
7227
|
+
// signup (huggingface /join step 1's button is "Next"). Weak positive so the
|
|
7228
|
+
// submit survives the button cap among many 0-scored nav anchors — otherwise
|
|
7229
|
+
// the planner can't see it and hallucinates a submit_selector. Loses to any
|
|
7230
|
+
// real signup CTA / OAuth marker. MEASURED 2026-06-23 (huggingface).
|
|
7231
|
+
if (/\bnext\b/.test(t) || /\bsubmit\b/.test(t) || /\bjoin\b/.test(t))
|
|
7232
|
+
score += 2;
|
|
6875
7233
|
// Post-signup dashboards reveal the key behind a "Create API Key" /
|
|
6876
7234
|
// "Add key" / "Generate key" / "Get API Key" CTA — the run's actual
|
|
6877
7235
|
// goal once the account exists. These score 0 on signup vocabulary, so
|