@trusty-squire/mcp 0.8.2 → 0.8.3-rc.1
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/api-client.d.ts +51 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +25 -0
- package/dist/api-client.js.map +1 -1
- package/dist/bot/agent.d.ts +3 -0
- package/dist/bot/agent.d.ts.map +1 -1
- package/dist/bot/agent.js +479 -24
- package/dist/bot/agent.js.map +1 -1
- package/dist/bot/browser.d.ts +1 -0
- package/dist/bot/browser.d.ts.map +1 -1
- package/dist/bot/browser.js +63 -5
- package/dist/bot/browser.js.map +1 -1
- package/dist/bot/google-login.d.ts +1 -0
- package/dist/bot/google-login.d.ts.map +1 -1
- package/dist/bot/google-login.js +21 -1
- package/dist/bot/google-login.js.map +1 -1
- package/dist/bot/inbox-client.d.ts +3 -0
- package/dist/bot/inbox-client.d.ts.map +1 -1
- package/dist/bot/inbox-client.js +112 -0
- package/dist/bot/inbox-client.js.map +1 -1
- package/dist/bot/near-text-hint.d.ts +4 -0
- package/dist/bot/near-text-hint.d.ts.map +1 -0
- package/dist/bot/near-text-hint.js +72 -0
- package/dist/bot/near-text-hint.js.map +1 -0
- package/dist/bot/promote-to-skill.d.ts.map +1 -1
- package/dist/bot/promote-to-skill.js +365 -49
- package/dist/bot/promote-to-skill.js.map +1 -1
- package/dist/bot/read-otp.d.ts +6 -0
- package/dist/bot/read-otp.d.ts.map +1 -1
- package/dist/bot/read-otp.js +22 -0
- package/dist/bot/read-otp.js.map +1 -1
- package/dist/bot/replay-skill.d.ts.map +1 -1
- package/dist/bot/replay-skill.js +99 -109
- package/dist/bot/replay-skill.js.map +1 -1
- package/dist/install/agents.d.ts +1 -0
- package/dist/install/agents.d.ts.map +1 -1
- package/dist/install/agents.js +32 -0
- package/dist/install/agents.js.map +1 -1
- package/dist/install/cli.d.ts.map +1 -1
- package/dist/install/cli.js +24 -2
- package/dist/install/cli.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +20 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/always-load.d.ts +4 -0
- package/dist/tools/always-load.d.ts.map +1 -0
- package/dist/tools/always-load.js +6 -0
- package/dist/tools/always-load.js.map +1 -0
- package/dist/tools/delete-credential.d.ts +12 -0
- package/dist/tools/delete-credential.d.ts.map +1 -0
- package/dist/tools/delete-credential.js +23 -0
- package/dist/tools/delete-credential.js.map +1 -0
- package/dist/tools/index.d.ts +10 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +17 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/poll-credential-access.d.ts +12 -0
- package/dist/tools/poll-credential-access.d.ts.map +1 -0
- package/dist/tools/poll-credential-access.js +29 -0
- package/dist/tools/poll-credential-access.js.map +1 -0
- package/dist/tools/request-credential.d.ts +69 -0
- package/dist/tools/request-credential.d.ts.map +1 -0
- package/dist/tools/request-credential.js +69 -0
- package/dist/tools/request-credential.js.map +1 -0
- package/dist/tools/rotate-credential.d.ts +15 -0
- package/dist/tools/rotate-credential.d.ts.map +1 -0
- package/dist/tools/rotate-credential.js +29 -0
- package/dist/tools/rotate-credential.js.map +1 -0
- package/dist/tools/store-credential.d.ts +21 -0
- package/dist/tools/store-credential.d.ts.map +1 -0
- package/dist/tools/store-credential.js +50 -0
- package/dist/tools/store-credential.js.map +1 -0
- package/dist/tools/use-credential.d.ts +40 -0
- package/dist/tools/use-credential.d.ts.map +1 -0
- package/dist/tools/use-credential.js +61 -0
- package/dist/tools/use-credential.js.map +1 -0
- package/package.json +1 -1
package/dist/bot/browser.d.ts
CHANGED
|
@@ -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;AAgC5D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IAKvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAInB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AASpD,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,cAAc,GACd,cAAc,GACd,UAAU,GACV,SAAS,CAAC;AAed,MAAM,MAAM,kBAAkB,GAC1B;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,GAChB;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAChD;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AA0FtD,qBAAa,iBAAiB;IAI5B,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IAGnC,OAAO,CAAC,MAAM,CAAO;IACrB,OAAO,CAAC,MAAM,CAAO;IAMrB,OAAO,CAAC,eAAe,CAAuB;IAK9C,OAAO,CAAC,WAAW,CAAuB;IAE1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAMpC,OAAO,CAAC,gBAAgB,CAAqB;IAO7C,OAAO,CAAC,IAAI,CAAwB;IAKpC,OAAO,CAAC,YAAY,CACR;IAEZ,IAAI,UAAU,IAAI,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAE5D;gBAEW,IAAI,GAAE,wBAA6B;IAS/C,IAAI,OAAO,IAAI,MAAM,GAAG,IAAI,CAK3B;IAKD,IAAI,OAAO,IAAI,MAAM,GAAG,IAAI,CAK3B;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAmNd,cAAc;YA4Cd,YAAY;IAiCpB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiChC,OAAO,CACX,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,MAAM,GAAG,gBAAyB,GACvC,OAAO,CAAC,IAAI,CAAC;YA6BF,uBAAuB;IAgE/B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CnD,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBtC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BjE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,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
|
@@ -692,6 +692,23 @@ export class BrowserController {
|
|
|
692
692
|
async clickSubmit(selector) {
|
|
693
693
|
if (!this.page)
|
|
694
694
|
throw new Error("Browser not started");
|
|
695
|
+
// 0.8.3-rc.1 — wait for the submit selector to appear before
|
|
696
|
+
// querying count. Mixpanel-class SPAs (Next.js + heavy auth JS)
|
|
697
|
+
// race past the 10s `waitForSelector` in click() and bail with
|
|
698
|
+
// `locator.waitFor: Timeout 10000ms exceeded` even when the form
|
|
699
|
+
// is otherwise correct. Polling here gives the SPA time to
|
|
700
|
+
// mount the submit button BEFORE we check whether it's disabled.
|
|
701
|
+
// Best-effort: a genuine miss still surfaces as the click()'s
|
|
702
|
+
// own timeout downstream.
|
|
703
|
+
try {
|
|
704
|
+
await this.page.waitForSelector(selector, {
|
|
705
|
+
state: "attached",
|
|
706
|
+
timeout: 20000,
|
|
707
|
+
});
|
|
708
|
+
}
|
|
709
|
+
catch {
|
|
710
|
+
// fall through — click() below will produce the canonical error
|
|
711
|
+
}
|
|
695
712
|
const locator = this.page.locator(selector);
|
|
696
713
|
const count = await locator.count();
|
|
697
714
|
// A disabled submit means a required field or agreement checkbox
|
|
@@ -1347,7 +1364,13 @@ export class BrowserController {
|
|
|
1347
1364
|
async humanClickLocator(locator) {
|
|
1348
1365
|
if (!this.page)
|
|
1349
1366
|
throw new Error("Browser not started");
|
|
1350
|
-
|
|
1367
|
+
// 0.8.3-rc.1 — widened from 10s to 20s for SPA-load races. The
|
|
1368
|
+
// mixpanel-class signup page (Next.js + heavy auth JS, ~12-15s
|
|
1369
|
+
// to first-paint the form) was timing out here even when the
|
|
1370
|
+
// submit button DOES eventually mount. Bound stays low enough
|
|
1371
|
+
// that a genuinely-missing target still surfaces a clear error
|
|
1372
|
+
// within the bot's per-action budget.
|
|
1373
|
+
await locator.waitFor({ state: "visible", timeout: 20000 });
|
|
1351
1374
|
// rc.20 — wait for the target to be ENABLED before issuing the
|
|
1352
1375
|
// click. humanClick uses page.mouse.click(x, y) which bypasses
|
|
1353
1376
|
// Playwright's actionability check, so a disabled button receives
|
|
@@ -2756,6 +2779,20 @@ export class BrowserController {
|
|
|
2756
2779
|
});
|
|
2757
2780
|
};
|
|
2758
2781
|
walk(document);
|
|
2782
|
+
// 0.8.3-rc.1 — also collect OAuth-affordance iframes. Modern
|
|
2783
|
+
// signup pages (Mixpanel, many Next.js sites) render "Continue
|
|
2784
|
+
// with Google" via Google's GIS iframe at
|
|
2785
|
+
// `accounts.google.com/gsi/button` — cross-origin, so the
|
|
2786
|
+
// button INSIDE the iframe isn't in our DOM. The iframe element
|
|
2787
|
+
// ITSELF is clickable from the parent page though; clicking its
|
|
2788
|
+
// bounding box dispatches the click event into the iframe, and
|
|
2789
|
+
// Google's button-handler then opens the OAuth popup. We
|
|
2790
|
+
// surface these iframes as synthetic OAuth buttons (with a
|
|
2791
|
+
// visibleText that findOAuthButton matches) so the OAuth-first
|
|
2792
|
+
// scan can pick them up.
|
|
2793
|
+
document
|
|
2794
|
+
.querySelectorAll('iframe[src*="accounts.google.com/gsi/button"]')
|
|
2795
|
+
.forEach((n) => collected.push(n));
|
|
2759
2796
|
const isVisible = (el) => {
|
|
2760
2797
|
const r = el.getBoundingClientRect();
|
|
2761
2798
|
if (r.width < 2 || r.height < 2)
|
|
@@ -2949,16 +2986,27 @@ export class BrowserController {
|
|
|
2949
2986
|
height: r.height,
|
|
2950
2987
|
clickable,
|
|
2951
2988
|
});
|
|
2989
|
+
// 0.8.3-rc.1 — Google Identity Services iframe special-case.
|
|
2990
|
+
// The iframe is cross-origin so el.textContent is empty,
|
|
2991
|
+
// but we know structurally it's a "Continue with Google"
|
|
2992
|
+
// affordance. Surface synthetic text so findOAuthButton
|
|
2993
|
+
// matches it and the OAuth-first scan picks it up.
|
|
2994
|
+
const isGoogleGSIIframe = el instanceof HTMLIFrameElement &&
|
|
2995
|
+
(el.getAttribute("src") ?? "").includes("accounts.google.com/gsi/button");
|
|
2952
2996
|
out.push({
|
|
2953
|
-
tag: el.tagName.toLowerCase(),
|
|
2997
|
+
tag: isGoogleGSIIframe ? "button" : el.tagName.toLowerCase(),
|
|
2954
2998
|
type: el.getAttribute("type"),
|
|
2955
2999
|
id: el.getAttribute("id"),
|
|
2956
3000
|
name: el.getAttribute("name"),
|
|
2957
3001
|
placeholder: el.getAttribute("placeholder"),
|
|
2958
|
-
ariaLabel:
|
|
2959
|
-
|
|
3002
|
+
ariaLabel: isGoogleGSIIframe
|
|
3003
|
+
? "Continue with Google"
|
|
3004
|
+
: el.getAttribute("aria-label"),
|
|
3005
|
+
role: isGoogleGSIIframe ? "button" : el.getAttribute("role"),
|
|
2960
3006
|
labelText: labelFor(el),
|
|
2961
|
-
visibleText:
|
|
3007
|
+
visibleText: isGoogleGSIIframe
|
|
3008
|
+
? "Continue with Google"
|
|
3009
|
+
: clean(el.textContent),
|
|
2962
3010
|
selector: selectorFor(el),
|
|
2963
3011
|
visible: true,
|
|
2964
3012
|
inViewport: r.top >= 0 &&
|
|
@@ -2983,6 +3031,16 @@ export class BrowserController {
|
|
|
2983
3031
|
: el instanceof HTMLSelectElement
|
|
2984
3032
|
? el.value
|
|
2985
3033
|
: null,
|
|
3034
|
+
// 0.8.3-rc.1 — checkbox/radio runtime state. `value` for a
|
|
3035
|
+
// checkbox is the static `value` attribute (defaults to
|
|
3036
|
+
// "on") regardless of whether it's currently ticked, so any
|
|
3037
|
+
// caller wanting to find UNCHECKED checkboxes needs `checked`
|
|
3038
|
+
// explicitly. The submit-disabled re-plan hint uses this to
|
|
3039
|
+
// surface concrete unticked candidates to the planner.
|
|
3040
|
+
checked: el instanceof HTMLInputElement &&
|
|
3041
|
+
(el.type === "checkbox" || el.type === "radio")
|
|
3042
|
+
? el.checked
|
|
3043
|
+
: null,
|
|
2986
3044
|
// For <select>: the currently-selected option's visible text
|
|
2987
3045
|
// and a short list of available option labels. The combination
|
|
2988
3046
|
// is how the planner detects the "React-defaulted dropdown"
|