@trusty-squire/mcp 0.9.6 → 0.9.8
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.map +1 -1
- package/dist/bot/agent.js +62 -2
- package/dist/bot/agent.js.map +1 -1
- package/dist/bot/browser.d.ts.map +1 -1
- package/dist/bot/browser.js +86 -7
- package/dist/bot/browser.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/bot/browser.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAS5D,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,cAAc,CAAC;
|
|
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
|
@@ -31,14 +31,27 @@ import { startXvfb, xvfbAvailable } from "./xvfb.js";
|
|
|
31
31
|
// the CJS modules lazily (the stealth toolchain only ships CJS) and treat
|
|
32
32
|
// stealth as best-effort — a missing dep should never crash the bot.
|
|
33
33
|
const require = createRequire(import.meta.url);
|
|
34
|
-
// Whether
|
|
35
|
-
//
|
|
36
|
-
//
|
|
37
|
-
// reCAPTCHA-v3 score on).
|
|
38
|
-
//
|
|
34
|
+
// Whether to use the CDP-hardened launcher (patchright, which runs
|
|
35
|
+
// evaluations in an isolated world and removes the automation tells —
|
|
36
|
+
// mainWorldExecution, navigator.webdriver, viewport — that Turnstile /
|
|
37
|
+
// reCAPTCHA-v3 / Google's consent SPA score on). See
|
|
38
|
+
// docs/DESIGN-antibot-hardening.md.
|
|
39
|
+
//
|
|
40
|
+
// 2026-06-08 — DEFAULT FLIPPED ON. The baseline (playwright-extra +
|
|
41
|
+
// stealth) self-inflicts a detectable navigator.webdriver via its manual
|
|
42
|
+
// defineProperty patch, so it is strictly WORSE on the fingerprint. The
|
|
43
|
+
// hardened launcher is all-green on the rebrowser bot-detector and was
|
|
44
|
+
// live-A/B'd: meilisearch's Google consent-SPA block became a (handleable)
|
|
45
|
+
// FedCM path, and render still signed up + extracted a key cleanly — no
|
|
46
|
+
// crash on either (the old crash was the retired rebrowser fork, not
|
|
47
|
+
// patchright). Default to hardened; opt out with BOT_CDP_HARDENED=0 for
|
|
48
|
+
// the baseline. If patchright isn't installed, getChromium() falls back to
|
|
49
|
+
// baseline gracefully.
|
|
39
50
|
function cdpHardeningRequested() {
|
|
40
51
|
const v = process.env.BOT_CDP_HARDENED;
|
|
41
|
-
|
|
52
|
+
if (v === "0" || v === "false" || v === "off")
|
|
53
|
+
return false;
|
|
54
|
+
return true;
|
|
42
55
|
}
|
|
43
56
|
let cachedChromium = null;
|
|
44
57
|
// The stealth profile the cached launcher actually represents. Set the
|
|
@@ -3590,6 +3603,67 @@ export class BrowserController {
|
|
|
3590
3603
|
return base;
|
|
3591
3604
|
}
|
|
3592
3605
|
};
|
|
3606
|
+
// N1 onboarding-wizard cards (2026-06-08). Chakra/React card pickers
|
|
3607
|
+
// (imagekit's step-1/3 objective cards, axiom/pusher role cards) render
|
|
3608
|
+
// each selectable card as a BARE clickable div — cursor:pointer, but no
|
|
3609
|
+
// button/a/role/input semantics — so the SELECTOR walk above misses
|
|
3610
|
+
// them entirely and the planner has no target → it hallucinates
|
|
3611
|
+
// selectors and the stalled-wizard breaker fires. Collect them so the
|
|
3612
|
+
// existing assignCardRadioGroups can cluster them. Tightly scoped to
|
|
3613
|
+
// avoid flooding the inventory on ordinary pages:
|
|
3614
|
+
// - cursor:pointer + visible
|
|
3615
|
+
// - card-sized (not a tiny inline link, not a full-page wrapper)
|
|
3616
|
+
// - has its OWN short label text
|
|
3617
|
+
// - does NOT contain an already-collected interactive element (a
|
|
3618
|
+
// wrapper around a real button isn't a card — we already have it)
|
|
3619
|
+
// - OUTERMOST clickable in a nest (keep the card, drop its inner <p>)
|
|
3620
|
+
// - capped
|
|
3621
|
+
{
|
|
3622
|
+
const alreadyMatched = new Set(collected);
|
|
3623
|
+
const MAX_CARDS = 16;
|
|
3624
|
+
const raw = [];
|
|
3625
|
+
const scan = document.querySelectorAll("div,li,article,section,label");
|
|
3626
|
+
for (const el of Array.from(scan)) {
|
|
3627
|
+
if (raw.length >= MAX_CARDS)
|
|
3628
|
+
break;
|
|
3629
|
+
if (alreadyMatched.has(el))
|
|
3630
|
+
continue;
|
|
3631
|
+
if (!isVisible(el))
|
|
3632
|
+
continue;
|
|
3633
|
+
if (window.getComputedStyle(el).cursor !== "pointer")
|
|
3634
|
+
continue;
|
|
3635
|
+
const r = el.getBoundingClientRect();
|
|
3636
|
+
if (r.width < 40 || r.height < 24 || r.width > 900 || r.height > 600)
|
|
3637
|
+
continue;
|
|
3638
|
+
const txt = clean(el.textContent);
|
|
3639
|
+
if (txt === null || txt.length < 2 || txt.length > 120)
|
|
3640
|
+
continue;
|
|
3641
|
+
try {
|
|
3642
|
+
if (el.querySelector(SELECTOR) !== null)
|
|
3643
|
+
continue;
|
|
3644
|
+
}
|
|
3645
|
+
catch {
|
|
3646
|
+
continue;
|
|
3647
|
+
}
|
|
3648
|
+
raw.push(el);
|
|
3649
|
+
}
|
|
3650
|
+
// Keep only the outermost clickable per nest (Chakra cards wrap an
|
|
3651
|
+
// inner <p>; cursor:pointer inherits, so both match — we want the card).
|
|
3652
|
+
const rawSet = new Set(raw);
|
|
3653
|
+
for (const el of raw) {
|
|
3654
|
+
let p = el.parentElement;
|
|
3655
|
+
let nested = false;
|
|
3656
|
+
while (p !== null) {
|
|
3657
|
+
if (rawSet.has(p)) {
|
|
3658
|
+
nested = true;
|
|
3659
|
+
break;
|
|
3660
|
+
}
|
|
3661
|
+
p = p.parentElement;
|
|
3662
|
+
}
|
|
3663
|
+
if (!nested)
|
|
3664
|
+
collected.push(el);
|
|
3665
|
+
}
|
|
3666
|
+
}
|
|
3593
3667
|
const seen = new Set();
|
|
3594
3668
|
// T38 — parent identity + bounding-box dimensions + clickable
|
|
3595
3669
|
// bit, captured in lockstep with `out` so the Node-side
|
|
@@ -3894,8 +3968,10 @@ export class BrowserController {
|
|
|
3894
3968
|
try {
|
|
3895
3969
|
cdp = await this.context.newCDPSession(this.page);
|
|
3896
3970
|
await cdp.send("FedCm.enable", { disableRejectionDelay: true });
|
|
3971
|
+
console.error("[universal-bot] FedCm.enable ok — listening for dialogShown");
|
|
3897
3972
|
cdp.on("FedCm.dialogShown", (ev) => {
|
|
3898
3973
|
const e = ev;
|
|
3974
|
+
console.error(`[universal-bot] FedCm.dialogShown type=${e.dialogType ?? "?"} accounts=${Array.isArray(e.accounts) ? e.accounts.length : "?"}`);
|
|
3899
3975
|
const dialogId = e.dialogId;
|
|
3900
3976
|
if (dialogId === undefined)
|
|
3901
3977
|
return;
|
|
@@ -3944,8 +4020,9 @@ export class BrowserController {
|
|
|
3944
4020
|
})();
|
|
3945
4021
|
});
|
|
3946
4022
|
}
|
|
3947
|
-
catch {
|
|
4023
|
+
catch (err) {
|
|
3948
4024
|
cdp = null; // FedCm domain unavailable — the popup path still works
|
|
4025
|
+
console.error(`[universal-bot] FedCm.enable failed (${err instanceof Error ? err.message : String(err)}) — FedCM path disabled, relying on popup`);
|
|
3949
4026
|
}
|
|
3950
4027
|
const popupPromise = this.context
|
|
3951
4028
|
.waitForEvent("page", { timeout: timeoutMs })
|
|
@@ -4019,6 +4096,8 @@ export class BrowserController {
|
|
|
4019
4096
|
}
|
|
4020
4097
|
return { ok: true, via: "fedcm" };
|
|
4021
4098
|
}
|
|
4099
|
+
console.error(`[universal-bot] GSI resolved via none — fedcmEnabled=${cdp !== null} ` +
|
|
4100
|
+
`fedcmResolved=${fedcmResolved} pages=${this.context.pages().length}`);
|
|
4022
4101
|
return { ok: false, via: "none" };
|
|
4023
4102
|
}
|
|
4024
4103
|
// URL of the active page (the OAuth page mid-handshake, the product
|