@trusty-squire/mcp 1.1.9-rc.2 → 1.1.9-rc.3

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/README.md CHANGED
@@ -177,9 +177,17 @@ for the system and data flows.
177
177
  ## MCP tools
178
178
 
179
179
  - `operate_start`, `operate_observe`, and `operate_act` open a website, inspect
180
- the current state, and perform one browser action at a time. If a visible
181
- control has no observed ref, `click` and `js_click` can target its live
182
- `text=…` or `css=…` locator; that one-off fallback is not replayable.
180
+ the current state, and perform one browser action at a time. Ordinary controls
181
+ inside same- and cross-origin frames are included in observations with a
182
+ `frame_origin`; known captcha challenge frames stay behind the dedicated
183
+ captcha flow. Frame refs and live `text=…`/`css=…` locators preserve that
184
+ boundary: same-registrable-domain frames are reachable, cross-domain frames
185
+ must pass the same domain scope as `goto`/`allow_host`, opaque frames are
186
+ refused, and `type_secret` never targets any cross-domain frame. Frame refs
187
+ currently support `click`, `js_click`, `type`, and `type_secret`; `select`,
188
+ `upload`, and `oauth_click` fail closed. If a visible control has no observed
189
+ ref, the four supported action kinds can use a live locator; that one-off
190
+ fallback is not replayable.
183
191
  - `operate_extract` captures a generated credential into a sealed slot or the vault.
184
192
  - `operate_remember` saves a postcondition-verified local recipe under a closed
185
193
  task verb plus the service's registrable domain. It records stable target
@@ -7,6 +7,23 @@ export interface PageTargetSafetySignals {
7
7
  billingObject: boolean;
8
8
  accountSetup: boolean;
9
9
  }
10
+ export interface FrameTarget {
11
+ framePath: string;
12
+ frameOrigin: string;
13
+ frameUrl: string;
14
+ frameOpaque?: boolean;
15
+ }
16
+ export type ResolvedPageTarget = {
17
+ ok: true;
18
+ handle: ElementHandle<Element>;
19
+ text: string;
20
+ safetySignals: PageTargetSafetySignals;
21
+ frameTarget: FrameTarget | null;
22
+ } | {
23
+ ok: false;
24
+ reason: "none" | "ambiguous";
25
+ candidates: string[];
26
+ };
10
27
  export interface BrowserAction {
11
28
  type: "goto" | "click" | "type" | "screenshot" | "extract" | "wait";
12
29
  selector?: string;
@@ -199,19 +216,12 @@ export declare class BrowserController {
199
216
  uploadFile(selector: string, filePath: string): Promise<void>;
200
217
  click(selector: string): Promise<void>;
201
218
  clickForce(selector: string, index?: number): Promise<void>;
202
- resolvePageTarget(mode: "text" | "css", value: string): Promise<{
203
- ok: true;
204
- handle: ElementHandle<Element>;
205
- text: string;
206
- safetySignals: PageTargetSafetySignals;
207
- } | {
208
- ok: false;
209
- reason: "none" | "ambiguous";
210
- candidates: string[];
211
- }>;
219
+ private resolveTargetInContext;
220
+ resolvePageTarget(mode: "text" | "css", value: string, intent?: "click" | "type"): Promise<ResolvedPageTarget>;
212
221
  private locatorClickState;
213
222
  clickHandle(handle: ElementHandle<Element>): Promise<void>;
214
223
  jsClickHandle(handle: ElementHandle<Element>): Promise<void>;
224
+ typeHandle(handle: ElementHandle<Element>, text: string, sealed?: boolean): Promise<void>;
215
225
  clickViaJs(selector: string, index?: number): Promise<void>;
216
226
  clickNth(selector: string, index: number): Promise<void>;
217
227
  clickLinkByText(text: string, timeoutMs?: number): Promise<boolean>;
@@ -382,6 +392,16 @@ export declare class BrowserController {
382
392
  private clearCloudflareCookiesAndRetry;
383
393
  private forceNavigatePastClearedChallenge;
384
394
  private pollUntilInterstitialClears;
395
+ private extractElementsFromContext;
396
+ private framePath;
397
+ private frameWithinCaptcha;
398
+ private frameSecurity;
399
+ private resolveFrame;
400
+ private resolveFrameElement;
401
+ private frameLabel;
402
+ clickInFrame(target: FrameTarget, selector: string): Promise<void>;
403
+ clickViaJsInFrame(target: FrameTarget, selector: string, index?: number): Promise<void>;
404
+ typeInFrame(target: FrameTarget, selector: string, text: string): Promise<void>;
385
405
  extractInteractiveElements(): Promise<InteractiveElement[]>;
386
406
  extractCheckoutFieldNames(): Promise<string[]>;
387
407
  inspectSelector(selector: string): Promise<{
@@ -503,6 +523,10 @@ export interface InteractiveElement {
503
523
  position: number;
504
524
  total: number;
505
525
  } | null;
526
+ frameOrigin?: string | null;
527
+ frameUrl?: string | null;
528
+ framePath?: string | null;
529
+ frameOpaque?: boolean;
506
530
  }
507
531
  export declare function assignCardRadioGroups(candidates: ReadonlyArray<{
508
532
  parentId: number;
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/bot/browser.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAW,cAAc,EAAc,aAAa,EAAW,IAAI,EAAE,MAAM,YAAY,CAAC;AAKpG,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AASpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAShF,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,cAAc,CAAC;AAEzD,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;CACvB;AAoFD,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,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,UAAU,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,uBAAuB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,uBAAuB,EAAE,GAAG,OAAO,CAiBhG;AAgBD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK5D;AA0ID,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,gBAAgB,CAAC,EAAE,MAAM,GACxB;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAEnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,gBAAgB,CAAC,EAAE,MAAM,GACxB,KAAK,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA4BnD;AAeD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuC1E;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBhF;AAED,MAAM,WAAW,wBAAwB;IAKvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAInB,UAAU,CAAC,EAAE,MAAM,CAAC;IAMpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC;AAQjE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GACtE,eAAe,EAAE,CAwBnB;AASD,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,GAAG,UAAU,GAAG,SAAS,CAAC;AAepG,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;AAEtD,MAAM,MAAM,6BAA6B,GACrC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,sBAAsB,CAAA;CAAE,GAC/D;IACE,KAAK,EAAE,IAAI,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAkGN,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAe1E;AAsBD,wBAAgB,iBAAiB,IAAI,OAAO,CAG3C;AAwHD,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,eAAe,EAAE,OAAO,GACvB,OAAO,CAST;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG;IAC/D,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,GAAG,IAAI,CASP;AAgDD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG;IACtD,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAUA;AAYD,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe5E;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,cAAc,CAAC;IAIxB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAeD,wBAAsB,6BAA6B,CAAC,MAAM,EAAE;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IAGnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAGvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqF7B;AAED,MAAM,WAAW,iBAAiB;IAEhC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAoBD,wBAAsB,uBAAuB,CAAC,MAAM,EAAE;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IAGnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA6D7B;AAED,qBAAa,iBAAiB;IAI5B,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,IAAI,CAAqB;IAKjC,OAAO,CAAC,WAAW,CAAqB;IAIxC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,UAAU,CAAwB;IAK1C,OAAO,CAAC,eAAe,CAAS;IAChC,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;IAIpC,OAAO,CAAC,mBAAmB,CAAS;IAMpC,OAAO,CAAC,gBAAgB,CAAqB;IAK7C,OAAO,CAAC,WAAW,CAA8E;IACjG,OAAO,CAAC,wBAAwB,CAAS;IAOzC,OAAO,CAAC,IAAI,CAAwB;IAKpC,OAAO,CAAC,YAAY,CAAqE;IAEzF,IAAI,UAAU,IAAI,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAEvE;gBAEW,IAAI,GAAE,wBAA6B;IAO/C,4EAA4E;IAC5E,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,iBAAiB;IAYrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAK9C,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,wBAAwB,EAAE,YAAY,GAAG,UAAU,CAAC,GAAG,OAAO;IAS9F,WAAW,IAAI,OAAO;IAStB,IAAI,OAAO,IAAI,MAAM,GAAG,IAAI,CAK3B;IAKD,IAAI,OAAO,IAAI,MAAM,GAAG,IAAI,CAK3B;IAOD,IAAI,cAAc,IAAI,cAAc,CAKnC;YAaa,wBAAwB;YAoHxB,uBAAuB;IA2D/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAsgBd,cAAc;YA0Dd,YAAY;IAsDpB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBvB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IA2BvC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkHhC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,GAAG,gBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;YA6BrE,uBAAuB;IAgE/B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YA+C3C,oBAAoB;IAuE5B,qBAAqB,CAAC,QAAQ,SAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmEtD,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B7D,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+HtC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCtD,iBAAiB,CACrB,IAAI,EAAE,MAAM,GAAG,KAAK,EACpB,KAAK,EAAE,MAAM,GACZ,OAAO,CACN;QACE,EAAE,EAAE,IAAI,CAAC;QACT,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,uBAAuB,CAAC;KACxC,GACD;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CACpE;YAwOa,iBAAiB;IAqBzB,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1D,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC5D,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAetD,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBxD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA2BjE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwE5C,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YA0B9B,aAAa;YAmDb,oBAAoB;IAiE5B,2BAA2B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAsFhD,8BAA8B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAyHnD,cAAc,CAAC,SAAS,GAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,KAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnF,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACjD,QAAQ,EAAE,OAAO,CAAC;QAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,MAAM,EAAE,IAAI,GAAG,cAAc,GAAG,mBAAmB,CAAC;KACrD,CAAC;IA0KI,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuJvE,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB/C,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BrD,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC;YAelC,8BAA8B;YA2H9B,wBAAwB;YAWxB,+BAA+B;YAqB/B,sBAAsB;YA2EtB,oBAAoB;YAiBpB,kBAAkB;YA2DlB,mBAAmB;YAqCnB,wBAAwB;YAaxB,mBAAmB;IA8CjC;;;OAGG;IACG,mCAAmC,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1D;;;;;;;;;;OAUG;IACG,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBpE,6EAA6E;IACvE,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,0BAA0B,CAAC,iBAAiB,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3E;;;;;;;;;;;;OAYG;IACG,4BAA4B,CAChC,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,OAAO,CAAC;YAoEL,UAAU;YAoBV,iBAAiB;YA0GjB,aAAa;IA6DrB,mBAAmB,CAAC,SAAS,SAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC;YA+K3D,iBAAiB;IAyJzB,oBAAoB,IAAI,OAAO,CAAC;QACpC,OAAO,EAAE,cAAc,CAAC;QACxB,iBAAiB,EAAE,OAAO,CAAC;KAC5B,CAAC;IAwEI,uBAAuB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyCjD,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0ErD,uBAAuB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkDjD,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiCrD,yBAAyB,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA0E7D,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC;IAkB3C,2BAA2B,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB/D,sBAAsB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAqChD,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAS7C,uBAAuB,IAAI,OAAO,CAAC;QACvC,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;IA+DI,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2IpD,4CAA4C,CAChD,KAAK,EAAE,CAAC,KAAK,EAAE;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,KAAK,OAAO,CAAC,2BAA2B,CAAC,GACzC,OAAO,CAAC,6BAA6B,CAAC;YAgG3B,iCAAiC;IA6BzC,+BAA+B,CAAC,SAAS,SAAO,EAAE,aAAa,SAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;YAuClF,WAAW;IAazB,OAAO,CAAC,KAAK;IAIP,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAgB7B,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;YAgBzB,aAAa;IAUrB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAe9B,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAgDrC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAkC9E;;;;;;;OAOG;IACG,yBAAyB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA2B9E,2BAA2B,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAkElF,gCAAgC,CACpC,gBAAgB,CAAC,EAAE,MAAM,EACzB,SAAS,SAAS,GACjB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IA+CvC,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC;IAmB1C,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;YA2LhE,sBAAsB;IA8B9B,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IA4CxF,kCAAkC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsE7E,sBAAsB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAmJ3C,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAmExC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IA6BrC,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiI/D,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IA0BhC,qBAAqB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAqB1C,iCAAiC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAmFtD,kCAAkC,IAAI,OAAO,CACjD,KAAK,CAAC;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,QAAQ,EAAE,OAAO,CAAC;QAClB,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC,CACH;IA0RK,uBAAuB,IAAI,OAAO,CAAC;QACvC,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IAgKI,2BAA2B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAwDhD,gBAAgB,CAAC,SAAS,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA0DlD,0BAA0B,CAAC,SAAS,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4D5D,qBAAqB,CAAC,WAAW,SAAI,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CzE,oBAAoB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YAsEtC,iCAAiC;YA6CjC,8BAA8B;YAwB9B,iCAAiC;YAuBjC,2BAA2B;IAuCnC,0BAA0B,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IA8oB3D,yBAAyB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAkB9C,eAAe,CACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAyBnF,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BjD,OAAO,CAAC,2BAA2B;IA6C7B,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6E7D,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAc1C,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAa3E,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC7E,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC;IAwC1C,iBAAiB,CACrB,eAAe,EAAE,MAAM,EACvB,SAAS,SAAS,GACjB,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAA;KAAE,CAAC;IAwJ5D,UAAU,IAAI,MAAM;IAIpB,iBAAiB,IAAI,OAAO;IAI5B,OAAO,CAAC,aAAa;IAsBf,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAiChC,SAAS,CACb,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAsBzE,eAAe,IAAI,OAAO;IAiBpB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiFpE,sBAAsB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAapD,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAuOhE,mBAAmB,CAAC,SAAS,SAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBxD,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBjC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAyClC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAiF7B;AA0BD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,KAAK,IAAI,CAAC,CAAA;CAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAEvF;AAWD,UAAU,cAAc;IACtB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;CAC9D;AACD,UAAU,YAAY;IAIpB,QAAQ,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;CACxD;AACD,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EACvC,QAAQ,EAAE,MAAM,GACf,YAAY,EAAE,CAehB;AAeD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAU3D;AAYD,MAAM,WAAW,iBAAiB;IAEhC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,kBAAkB;IAIjC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAMD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAUxE;AAMD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAiBT;AAID,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,SAAS,kBAAkB,EAAE,GACrC,MAAM,CAER;AAID,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAa7E;AA2BD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAKD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAO5D;AAOD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAiBD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CA8BzF;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAUxD;AAQD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAEzF;AAQD,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACvD;AAUD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAgC7D;AASD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IAOjB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAO1B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAKtB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAIvB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG7B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAQzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAWzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAItB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAMzB,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IAC9D,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAQnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAM5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAU3B,cAAc,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACzE;AAoBD,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,GACD,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAmC/D;AAeD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,cAAc,CAAC,EAAE,SAAS,eAAe,EAAE,GAC1C,MAAM,CA8DR;AASD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,EACvC,SAAS,SAAK,EACd,cAAc,CAAC,EAAE,SAAS,eAAe,EAAE,GAC1C;IAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CA2B7D"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/bot/browser.ts"],"names":[],"mappings":"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"}
@@ -383,6 +383,12 @@ export function extractHcaptchaResponseKeyFromToken(token) {
383
383
  }
384
384
  return null;
385
385
  }
386
+ // Hosts of known captcha-challenge iframes (Turnstile, reCAPTCHA, hCaptcha,
387
+ // Arkose/FunCaptcha). Shared between the per-navigation WebGL-spoof reapply
388
+ // (start(), below) and extractInteractiveElements' frame walk, which skips
389
+ // these frames — their content is handled by the dedicated captcha-gate flow,
390
+ // not surfaced as ordinary el_table rows.
391
+ const CAPTCHA_FRAME_HOST_RE = /(hcaptcha\.com|challenges\.cloudflare\.com|google\.com\/recaptcha|recaptcha\.net|arkoselabs\.com|funcaptcha\.com)/i;
386
392
  // Map a cookie jar to the OAuth providers that have a LIVE logged-in session.
387
393
  // The auth cookies that mean "signed in": GitHub → `user_session`; Google →
388
394
  // any of the *SID session cookies (NID / CONSENT / 1P_JAR are set even when
@@ -1647,7 +1653,6 @@ export class BrowserController {
1647
1653
  // frame.evaluate reaches a cross-origin frame's main world at the driver
1648
1654
  // level (same path that wins the main-frame race), re-applied at
1649
1655
  // navigation-commit before the captcha's scoring JS queries WebGL.
1650
- const CAPTCHA_FRAME_RE = /(hcaptcha\.com|challenges\.cloudflare\.com|google\.com\/recaptcha|recaptcha\.net|arkoselabs\.com|funcaptcha\.com)/i;
1651
1656
  // String probe (no compiled-fn __name shim needed): the UNMASKED renderer
1652
1657
  // a captcha would read. Logged only under CAPTCHA_TRACE to prove the fix.
1653
1658
  const RENDERER_PROBE = String.raw `(() => { try { const c = document.createElement("canvas"); const gl = c.getContext("webgl") || c.getContext("webgl2"); if (!gl) return "no-gl"; const e = gl.getExtension("WEBGL_debug_renderer_info"); return e ? String(gl.getParameter(e.UNMASKED_RENDERER_WEBGL)) : "no-ext"; } catch (err) { return "err:" + (err && err.message); } })()`;
@@ -1661,7 +1666,7 @@ export class BrowserController {
1661
1666
  reapplyWebglSpoof();
1662
1667
  return;
1663
1668
  }
1664
- if (!CAPTCHA_FRAME_RE.test(frame.url()))
1669
+ if (!CAPTCHA_FRAME_HOST_RE.test(frame.url()))
1665
1670
  return;
1666
1671
  const cfHost = (() => {
1667
1672
  try {
@@ -2438,15 +2443,15 @@ export class BrowserController {
2438
2443
  await this.page.locator(selector).nth(safeIndex).click({ force: true, timeout: 8000 });
2439
2444
  }
2440
2445
  // Resolve a locator-form operate_act target (`text=…` / `css=…`) DIRECTLY
2441
- // against the live page, bypassing the extracted-inventory list. This is the
2442
- // escape hatch for a control the inventory never emitted: a bare click-handler
2443
- // <div> with no role/label/testid that the SELECTOR walk skips and that the
2444
- // card scan drops once its MAX_CARDS budget is spent on earlier cursor:pointer
2446
+ // against a live page/frame document, bypassing the extracted-inventory list.
2447
+ // This is the escape hatch for a control the inventory never emitted: a bare
2448
+ // click-handler <div> with no role/label/testid that the SELECTOR walk skips,
2449
+ // or a typeable control missing from the inventory. The card scan can also
2450
+ // drop a control once its MAX_CARDS budget is spent on earlier cursor:pointer
2445
2451
  // divs (Casetify's Add-To-Cart is element #45 of the eligible cards; the cap is
2446
- // 16). Because there is no ref for such an element, `text=`/`css=` is the only
2447
- // way the host can click it.
2452
+ // 16). With no ref, `text=`/`css=` is the only host-addressable target.
2448
2453
  //
2449
- // Resolution rules (kept deliberately strict so the click can't land on the
2454
+ // Resolution rules (kept deliberately strict so the action can't land on the
2450
2455
  // wrong element):
2451
2456
  // • text mode — matches an element whose rendered text (innerText, so hidden
2452
2457
  // descendants don't leak) equals (or, if nothing equals, contains) the
@@ -2462,11 +2467,12 @@ export class BrowserController {
2462
2467
  // with the candidate texts so the host can disambiguate. Exactly 1 returns
2463
2468
  // a live ElementHandle to the winner. The caller acts through the handle
2464
2469
  // (never a DOM-visible marker), so a page MutationObserver cannot re-aim
2465
- // the click at a decoy between resolution and click, and disposes it after.
2466
- async resolvePageTarget(mode, value) {
2470
+ // the action at a decoy between resolution and dispatch, and disposes it
2471
+ // after.
2472
+ async resolveTargetInContext(ctx, mode, value, intent) {
2467
2473
  if (!this.page)
2468
2474
  throw new Error("Browser not started");
2469
- const resultHandle = await this.page.evaluateHandle(({ mode, value }) => {
2475
+ const resultHandle = await ctx.evaluateHandle(({ mode, value, intent }) => {
2470
2476
  const norm = (s) => (s ?? "").replace(/\s+/g, " ").trim().toLowerCase();
2471
2477
  // Rendered text, NOT textContent: innerText reflects what the user
2472
2478
  // actually sees, excluding display:none / visibility:hidden descendants.
@@ -2556,6 +2562,24 @@ export class BrowserController {
2556
2562
  return el.hasAttribute("onclick") || el.hasAttribute("action-type");
2557
2563
  };
2558
2564
  const hasClickAffordance = (el) => isStrong(el) || window.getComputedStyle(el).cursor === "pointer";
2565
+ const hasTypeAffordance = (el) => (el instanceof HTMLInputElement && el.type !== "hidden" && !el.disabled) ||
2566
+ (el instanceof HTMLTextAreaElement && !el.disabled) ||
2567
+ (el instanceof HTMLElement && el.isContentEditable);
2568
+ const typeLabel = (el) => {
2569
+ const labels = el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement
2570
+ ? Array.from(el.labels ?? []).map((label) => renderedRaw(label))
2571
+ : [];
2572
+ return [
2573
+ ...labels,
2574
+ el.getAttribute("aria-label") ?? "",
2575
+ el.getAttribute("placeholder") ?? "",
2576
+ el.getAttribute("name") ?? "",
2577
+ el.getAttribute("id") ?? "",
2578
+ renderedRaw(el),
2579
+ ]
2580
+ .filter((part) => part.length > 0)
2581
+ .join(" ");
2582
+ };
2559
2583
  // Gather candidates across the light DOM and every OPEN shadow root.
2560
2584
  const all = [];
2561
2585
  const collect = (root) => {
@@ -2584,7 +2608,7 @@ export class BrowserController {
2584
2608
  collect(document);
2585
2609
  let pool;
2586
2610
  if (mode === "css") {
2587
- pool = all.filter(isVisible);
2611
+ pool = all.filter((el) => isVisible(el) && (intent === "click" || hasTypeAffordance(el)));
2588
2612
  }
2589
2613
  else {
2590
2614
  const want = norm(value);
@@ -2595,10 +2619,13 @@ export class BrowserController {
2595
2619
  candidates: [],
2596
2620
  text: "",
2597
2621
  safetySignals: { billingObject: false, accountSetup: false },
2622
+ documentOrigin: location.origin,
2598
2623
  };
2599
2624
  }
2600
- const affordable = all.filter((el) => isVisible(el) && hasClickAffordance(el));
2601
- const exact = affordable.filter((el) => rendered(el) === want);
2625
+ const affordable = all.filter((el) => isVisible(el) &&
2626
+ (intent === "click" ? hasClickAffordance(el) : hasTypeAffordance(el)));
2627
+ const matchText = (el) => intent === "click" ? rendered(el) : norm(typeLabel(el));
2628
+ const exact = affordable.filter((el) => matchText(el) === want);
2602
2629
  // Prefer exact-text matches; only fall back to "contains" (with a
2603
2630
  // length guard so a big wrapper doesn't swallow the query) when no
2604
2631
  // element's rendered text equals the query.
@@ -2606,7 +2633,7 @@ export class BrowserController {
2606
2633
  exact.length > 0
2607
2634
  ? exact
2608
2635
  : affordable.filter((el) => {
2609
- const t = rendered(el);
2636
+ const t = matchText(el);
2610
2637
  return t.includes(want) && t.length <= Math.max(80, want.length + 20);
2611
2638
  });
2612
2639
  }
@@ -2623,6 +2650,7 @@ export class BrowserController {
2623
2650
  candidates: pool.slice(0, 8).map((el) => renderedRaw(el).slice(0, 60)),
2624
2651
  text: "",
2625
2652
  safetySignals: { billingObject: false, accountSetup: false },
2653
+ documentOrigin: location.origin,
2626
2654
  };
2627
2655
  }
2628
2656
  // Collapse nesting WITHOUT silently merging two genuine controls. A
@@ -2656,13 +2684,15 @@ export class BrowserController {
2656
2684
  candidates,
2657
2685
  text: win !== null ? renderedRaw(win).slice(0, 120) : "",
2658
2686
  safetySignals: win !== null ? safetySignalsFor(win) : { billingObject: false, accountSetup: false },
2687
+ documentOrigin: location.origin,
2659
2688
  };
2660
- }, { mode, value });
2689
+ }, { mode, value, intent });
2661
2690
  const meta = await resultHandle.evaluate((r) => ({
2662
2691
  count: r.count,
2663
2692
  candidates: r.candidates,
2664
2693
  text: r.text,
2665
2694
  safetySignals: r.safetySignals,
2695
+ documentOrigin: r.documentOrigin,
2666
2696
  }));
2667
2697
  if (meta.count !== 1) {
2668
2698
  await resultHandle.dispose();
@@ -2685,8 +2715,58 @@ export class BrowserController {
2685
2715
  handle: asElement,
2686
2716
  text: meta.text ?? "",
2687
2717
  safetySignals: meta.safetySignals ?? { billingObject: false, accountSetup: false },
2718
+ documentOrigin: meta.documentOrigin,
2688
2719
  };
2689
2720
  }
2721
+ async resolvePageTarget(mode, value, intent = "click") {
2722
+ if (!this.page)
2723
+ throw new Error("Browser not started");
2724
+ const page = this.page;
2725
+ const matches = [];
2726
+ const candidates = [];
2727
+ for (const frame of page.frames()) {
2728
+ if (frame.isDetached())
2729
+ continue;
2730
+ const rawUrl = frame.url();
2731
+ if (frame !== page.mainFrame() && this.frameWithinCaptcha(frame))
2732
+ continue;
2733
+ const resolved = await this.resolveTargetInContext(frame, mode, value, intent).catch(() => null);
2734
+ if (resolved === null)
2735
+ continue;
2736
+ if (!resolved.ok) {
2737
+ if (resolved.reason === "ambiguous")
2738
+ candidates.push(...resolved.candidates);
2739
+ continue;
2740
+ }
2741
+ let frameTarget = null;
2742
+ if (frame !== page.mainFrame()) {
2743
+ try {
2744
+ const security = await this.frameSecurity(frame);
2745
+ frameTarget = {
2746
+ framePath: this.framePath(frame),
2747
+ frameOrigin: security.origin,
2748
+ frameUrl: rawUrl,
2749
+ ...(security.opaque ? { frameOpaque: true } : {}),
2750
+ };
2751
+ }
2752
+ catch {
2753
+ await resolved.handle.dispose().catch(() => undefined);
2754
+ continue;
2755
+ }
2756
+ }
2757
+ matches.push({ ...resolved, frameTarget });
2758
+ candidates.push(resolved.text);
2759
+ }
2760
+ if (matches.length !== 1 || candidates.length > 1) {
2761
+ await Promise.all(matches.map((match) => match.handle.dispose().catch(() => undefined)));
2762
+ return {
2763
+ ok: false,
2764
+ reason: candidates.length === 0 ? "none" : "ambiguous",
2765
+ candidates: candidates.slice(0, 8),
2766
+ };
2767
+ }
2768
+ return { ok: true, ...matches[0] };
2769
+ }
2690
2770
  async locatorClickState(handle) {
2691
2771
  return await handle.evaluate((el) => {
2692
2772
  if (!el.isConnected)
@@ -2755,6 +2835,18 @@ export class BrowserController {
2755
2835
  throw new Error("locator target is disabled");
2756
2836
  }
2757
2837
  }
2838
+ async typeHandle(handle, text, sealed = false) {
2839
+ if (sealed) {
2840
+ await handle.evaluate((el) => el.setAttribute("data-ts-sealed-payment", "1"));
2841
+ }
2842
+ if (!this.humanize) {
2843
+ await handle.fill(text);
2844
+ return;
2845
+ }
2846
+ await handle.click({ timeout: 8000 }).catch(() => undefined);
2847
+ await handle.fill("").catch(() => undefined);
2848
+ await handle.type(text, { delay: rand(40, 110) });
2849
+ }
2758
2850
  // Dispatch a DOM .click() in the page context. Some React copy buttons fire
2759
2851
  // their onClick (and thus navigator.clipboard.writeText) on the synthetic
2760
2852
  // event a real Playwright mouse click doesn't reliably reproduce (deepinfra's
@@ -7390,10 +7482,16 @@ export class BrowserController {
7390
7482
  // selector strings. Selectors prefer #id then [name] — Playwright's
7391
7483
  // CSS engine pierces open shadow roots, so those resolve for
7392
7484
  // shadow-DOM fields too.
7393
- async extractInteractiveElements() {
7394
- if (!this.page)
7395
- throw new Error("Browser not started");
7396
- const raw = await this.page.evaluate(() => {
7485
+ // The DOM-walk + extraction logic, generalized to run against ANY frame
7486
+ // context (the main page or a child <iframe>'s own Frame) — Playwright's
7487
+ // Frame.evaluate reaches a cross-origin frame's main world at the CDP level,
7488
+ // the same primitive isPayPalHostedCheckout/fillAndSubmitCheckout/
7489
+ // detectThreeDsChallenge already use to read/fill cross-origin PSP fields.
7490
+ // Pulled out of extractInteractiveElements (below) so that method can call
7491
+ // it once for the main frame and once per child frame, tagging each result
7492
+ // with where it came from.
7493
+ async extractElementsFromContext(ctx) {
7494
+ return await ctx.evaluate(() => {
7397
7495
  const SELECTOR =
7398
7496
  // rc.26 — added Radix/Headless-UI menu + option items so
7399
7497
  // dropdown contents (Fireworks "Create API Key" → API Key /
@@ -7990,15 +8088,210 @@ export class BrowserController {
7990
8088
  occludedBy: status.occludedBy,
7991
8089
  });
7992
8090
  }
7993
- return { out, clusterMeta };
8091
+ return { out, clusterMeta, documentOrigin: location.origin };
7994
8092
  });
7995
- // T38 — assign card-radio groups in Node (pure logic, unit-tested).
7996
- const groups = assignCardRadioGroups(raw.clusterMeta);
7997
- return raw.out.map((e, i) => ({
8093
+ }
8094
+ framePath(frame) {
8095
+ const indexes = [];
8096
+ let current = frame;
8097
+ while (current !== null) {
8098
+ const parent = current.parentFrame();
8099
+ if (parent === null)
8100
+ break;
8101
+ const index = parent.childFrames().indexOf(current);
8102
+ if (index < 0)
8103
+ return "";
8104
+ indexes.unshift(index);
8105
+ current = parent;
8106
+ }
8107
+ return indexes.join("/");
8108
+ }
8109
+ frameWithinCaptcha(frame) {
8110
+ let current = frame;
8111
+ while (current !== null) {
8112
+ if (CAPTCHA_FRAME_HOST_RE.test(current.url()))
8113
+ return true;
8114
+ current = current.parentFrame();
8115
+ }
8116
+ return false;
8117
+ }
8118
+ frameSecurity(frame) {
8119
+ const url = frame.url();
8120
+ if (url === "" || url === "about:blank" || url === "about:srcdoc") {
8121
+ return { origin: "null", opaque: true };
8122
+ }
8123
+ const origin = new URL(url).origin;
8124
+ return origin === "null" ? { origin: "null", opaque: true } : { origin, opaque: false };
8125
+ }
8126
+ // Resolve a previously-tagged frame path back to its live Playwright Frame —
8127
+ // used by the frame-aware act helpers below (clickInFrame/typeInFrame/
8128
+ // clickViaJsInFrame) to act on an element extractInteractiveElements found
8129
+ // inside a child <iframe>. Returns null when the frame has since navigated
8130
+ // or detached (a fresh observe/extract picks up whatever replaced it); the
8131
+ // caller surfaces that as a normal "target not found" error, never a
8132
+ // silent wrong-frame action.
8133
+ resolveFrame(target) {
8134
+ if (!this.page)
8135
+ return null;
8136
+ let frame = this.page.mainFrame();
8137
+ for (const part of target.framePath.split("/")) {
8138
+ if (!/^\d+$/.test(part))
8139
+ return null;
8140
+ const child = frame.childFrames()[Number.parseInt(part, 10)];
8141
+ if (child === undefined)
8142
+ return null;
8143
+ frame = child;
8144
+ }
8145
+ if (frame.isDetached())
8146
+ return null;
8147
+ return frame;
8148
+ }
8149
+ async resolveFrameElement(target, selector, index = 0) {
8150
+ const frame = this.resolveFrame(target);
8151
+ if (frame === null || this.frameWithinCaptcha(frame))
8152
+ return null;
8153
+ const handle = await frame
8154
+ .locator(selector)
8155
+ .nth(Math.max(0, Math.floor(index)))
8156
+ .elementHandle({ timeout: 8000 })
8157
+ .catch(() => null);
8158
+ if (handle === null)
8159
+ return null;
8160
+ try {
8161
+ const security = await this.frameSecurity(frame);
8162
+ await handle.evaluate((element) => element.isConnected);
8163
+ const expectedOpaque = target.frameOpaque === true || target.frameOrigin === "null";
8164
+ const matches = expectedOpaque
8165
+ ? security.opaque
8166
+ : !security.opaque && security.origin === target.frameOrigin;
8167
+ if (!matches) {
8168
+ await handle.dispose().catch(() => undefined);
8169
+ return null;
8170
+ }
8171
+ return handle;
8172
+ }
8173
+ catch {
8174
+ await handle.dispose().catch(() => undefined);
8175
+ return null;
8176
+ }
8177
+ }
8178
+ frameLabel(target) {
8179
+ return target.frameOrigin;
8180
+ }
8181
+ // Frame-scoped click. Deliberately simpler than click() above (no radio/
8182
+ // checkbox/aria-toggle special-casing) — it's the escape hatch for a
8183
+ // control that lives inside an <iframe>, mirroring how resolvePageTarget is
8184
+ // the escape hatch for a control missing from the main-frame inventory.
8185
+ // Plain Playwright locator actions cover the money-path case this exists
8186
+ // for (a merchant's own same-domain checkout options rendered in an
8187
+ // iframe), the same primitives fillAndSubmitCheckout already relies on for
8188
+ // cross-origin PSP fields.
8189
+ async clickInFrame(target, selector) {
8190
+ const handle = await this.resolveFrameElement(target, selector);
8191
+ if (handle === null) {
8192
+ throw new Error(`click: the target's frame is no longer present (${this.frameLabel(target)})`);
8193
+ }
8194
+ try {
8195
+ await handle.click({ timeout: 8000 });
8196
+ }
8197
+ finally {
8198
+ await handle.dispose().catch(() => undefined);
8199
+ }
8200
+ }
8201
+ async clickViaJsInFrame(target, selector, index = 0) {
8202
+ const handle = await this.resolveFrameElement(target, selector, index);
8203
+ if (handle === null) {
8204
+ throw new Error(`js_click: the target's frame is no longer present (${this.frameLabel(target)})`);
8205
+ }
8206
+ try {
8207
+ await handle.evaluate((el) => el.click());
8208
+ }
8209
+ finally {
8210
+ await handle.dispose().catch(() => undefined);
8211
+ }
8212
+ }
8213
+ // Frame-scoped type/fill, for type and (guarded, see provision-session.ts)
8214
+ // type_secret targets that resolve into a frame. Same humanized-vs-fast
8215
+ // split as type() above, without the multi-input-OTP auto-advance nuance —
8216
+ // out of scope for the checkout-option case this exists for.
8217
+ async typeInFrame(target, selector, text) {
8218
+ const handle = await this.resolveFrameElement(target, selector);
8219
+ if (handle === null) {
8220
+ throw new Error(`type: the target's frame is no longer present (${this.frameLabel(target)})`);
8221
+ }
8222
+ try {
8223
+ await handle.waitForElementState("visible", { timeout: 10000 });
8224
+ if (!this.humanize) {
8225
+ await handle.fill(text);
8226
+ return;
8227
+ }
8228
+ await handle.click({ timeout: 8000 }).catch(() => undefined);
8229
+ await handle.fill("").catch(() => undefined);
8230
+ await handle.type(text, { delay: rand(40, 110) });
8231
+ }
8232
+ finally {
8233
+ await handle.dispose().catch(() => undefined);
8234
+ }
8235
+ }
8236
+ async extractInteractiveElements() {
8237
+ if (!this.page)
8238
+ throw new Error("Browser not started");
8239
+ const page = this.page;
8240
+ const mainRaw = await this.extractElementsFromContext(page);
8241
+ const mainGroups = assignCardRadioGroups(mainRaw.clusterMeta);
8242
+ const mainElements = mainRaw.out.map((e, i) => ({
7998
8243
  ...e,
7999
- index: i,
8000
- cardRadioGroup: groups[i] ?? null,
8244
+ cardRadioGroup: mainGroups[i] ?? null,
8245
+ frameOrigin: null,
8246
+ frameUrl: null,
8247
+ framePath: null,
8001
8248
  }));
8249
+ // Cross-frame support — surface elements inside child <iframe>s (same- AND
8250
+ // cross-origin), each tagged with the frame's own origin/url so a caller
8251
+ // can apply domain-lock/secret-fill guards against the ELEMENT's real
8252
+ // origin, never the top page's (see frameTargetAllowed in
8253
+ // provision-session.ts — the load-bearing reason this tag exists at
8254
+ // all). Nothing is flattened away: every frame element keeps its origin.
8255
+ // page.frames() is already flat (it includes nested frames, not just
8256
+ // direct children) — the same primitive isPayPalHostedCheckout/
8257
+ // fillAndSubmitCheckout/detectThreeDsChallenge use to reach cross-origin
8258
+ // frame content.
8259
+ const framedElements = [];
8260
+ for (const frame of page.frames()) {
8261
+ if (frame === page.mainFrame() || frame.isDetached())
8262
+ continue;
8263
+ const frameUrl = frame.url();
8264
+ // Captcha challenge iframes are handled by the dedicated captcha-gate
8265
+ // flow, not by ordinary ref-based clicking — surfacing their internal
8266
+ // DOM as el_table rows would invite the planner to poke at the
8267
+ // challenge instead of going through that flow. Skip them; nothing
8268
+ // else about captcha handling changes.
8269
+ if (this.frameWithinCaptcha(frame))
8270
+ continue;
8271
+ try {
8272
+ const raw = await this.extractElementsFromContext(frame);
8273
+ const security = await this.frameSecurity(frame);
8274
+ const frameOrigin = security.origin;
8275
+ const groups = assignCardRadioGroups(raw.clusterMeta);
8276
+ for (const [i, e] of raw.out.entries()) {
8277
+ framedElements.push({
8278
+ ...e,
8279
+ cardRadioGroup: groups[i] ?? null,
8280
+ frameOrigin,
8281
+ frameUrl,
8282
+ framePath: this.framePath(frame),
8283
+ ...(security.opaque ? { frameOpaque: true } : {}),
8284
+ });
8285
+ }
8286
+ }
8287
+ catch {
8288
+ // Cross-origin frame mid-navigation, torn down, or otherwise
8289
+ // unreachable this instant — best-effort; the next observe retries.
8290
+ }
8291
+ }
8292
+ // T38 index is assigned ONCE, after merging, so it stays a stable,
8293
+ // collision-free ordinal across the whole combined set.
8294
+ return [...mainElements, ...framedElements].map((e, i) => ({ ...e, index: i }));
8002
8295
  }
8003
8296
  // replay-per-leg-signature — the checkout-leg shape signature (see
8004
8297
  // checkoutFieldSetSignature in @trusty-squire/recipe-schema) is computed