@enricai/barnacle 1.12.81 → 1.13.0
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/lib/ats-field-vocabulary.d.ts.map +1 -1
- package/dist/lib/ats-field-vocabulary.js +86 -3
- package/dist/lib/ats-field-vocabulary.js.map +1 -1
- package/dist/lib/llm/judges/verify-step-advanced.d.ts +1 -1
- package/dist/lib/llm/judges/verify-step-advanced.d.ts.map +1 -1
- package/dist/lib/llm/judges/verify-step-advanced.js +5 -3
- package/dist/lib/llm/judges/verify-step-advanced.js.map +1 -1
- package/dist/lib/llm/judges/verify-submit.d.ts +2 -2
- package/dist/lib/llm/judges/verify-submit.d.ts.map +1 -1
- package/dist/lib/llm/judges/verify-submit.js +17 -5
- package/dist/lib/llm/judges/verify-submit.js.map +1 -1
- package/dist/lib/random.d.ts +7 -3
- package/dist/lib/random.d.ts.map +1 -1
- package/dist/lib/random.js +27 -4
- package/dist/lib/random.js.map +1 -1
- package/dist/plugins/config-plugin.d.ts +1 -0
- package/dist/plugins/config-plugin.d.ts.map +1 -1
- package/dist/plugins/config-plugin.js +7 -1
- package/dist/plugins/config-plugin.js.map +1 -1
- package/dist/plugins/loader.d.ts +2 -2
- package/dist/plugins/loader.d.ts.map +1 -1
- package/dist/plugins/loader.js +6 -3
- package/dist/plugins/loader.js.map +1 -1
- package/dist/scraper/click-settle.d.ts +17 -2
- package/dist/scraper/click-settle.d.ts.map +1 -1
- package/dist/scraper/click-settle.js +36 -30
- package/dist/scraper/click-settle.js.map +1 -1
- package/dist/scraper/deep-locator-actuate.d.ts.map +1 -1
- package/dist/scraper/deep-locator-actuate.js +17 -1
- package/dist/scraper/deep-locator-actuate.js.map +1 -1
- package/dist/scraper/deep-locator-fake.js +1 -1
- package/dist/scraper/deep-locator-fake.js.map +1 -1
- package/dist/scraper/errors.d.ts +23 -2
- package/dist/scraper/errors.d.ts.map +1 -1
- package/dist/scraper/errors.js +32 -4
- package/dist/scraper/errors.js.map +1 -1
- package/dist/scraper/flow-runner.d.ts +176 -36
- package/dist/scraper/flow-runner.d.ts.map +1 -1
- package/dist/scraper/flow-runner.js +778 -326
- package/dist/scraper/flow-runner.js.map +1 -1
- package/dist/scraper/http-client.d.ts +7 -2
- package/dist/scraper/http-client.d.ts.map +1 -1
- package/dist/scraper/http-client.js +132 -19
- package/dist/scraper/http-client.js.map +1 -1
- package/dist/scraper/metrics.d.ts +2 -2
- package/dist/scraper/metrics.js +2 -2
- package/dist/scraper/phantom-click.d.ts +51 -1
- package/dist/scraper/phantom-click.d.ts.map +1 -1
- package/dist/scraper/phantom-click.js +170 -19
- package/dist/scraper/phantom-click.js.map +1 -1
- package/dist/scraper/runtime-capture-store.d.ts +38 -0
- package/dist/scraper/runtime-capture-store.d.ts.map +1 -0
- package/dist/scraper/runtime-capture-store.js +103 -0
- package/dist/scraper/runtime-capture-store.js.map +1 -0
- package/dist/scraper/segmented-date-spinbutton.d.ts +13 -0
- package/dist/scraper/segmented-date-spinbutton.d.ts.map +1 -0
- package/dist/scraper/segmented-date-spinbutton.js +71 -0
- package/dist/scraper/segmented-date-spinbutton.js.map +1 -0
- package/dist/scripts/recon-browser.d.ts +0 -8
- package/dist/scripts/recon-browser.d.ts.map +1 -1
- package/dist/scripts/recon-browser.js +102 -50
- package/dist/scripts/recon-browser.js.map +1 -1
- package/dist/scripts/recon-generate.d.ts +11 -0
- package/dist/scripts/recon-generate.d.ts.map +1 -1
- package/dist/scripts/recon-generate.js +180 -53
- package/dist/scripts/recon-generate.js.map +1 -1
- package/dist/site-plugin.d.ts +7 -4
- package/dist/site-plugin.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phantom-click.js","sourceRoot":"","sources":["../../src/scraper/phantom-click.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;AAyDH,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,gCAAuC,MAAc,EAAE,OAAe;IACpE,OAAO,eAAe,CAAC,MAAM,CAAC,KAAK,eAAe,CAAC,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,uEAAuE;AAC1D,QAAA,gBAAgB,GAAG,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;AAExE,uHAAuH;AACvH,SAAS,wBAAwB,CAAC,WAAmB;IACnD,OAAO,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAC/D,CAAC;AAED;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG;IACxB,OAAO;IACP,KAAK;IACL,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,SAAS;IACT,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,MAAM;IACN,QAAQ;IACR,UAAU;IACV,SAAS;IACT,OAAO;IACP,QAAQ;IACR,UAAU;CACX,CAAC;AAEF,MAAM,wBAAwB,GAAG,IAAI,MAAM,CAAC,SAAS,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAExF;;;;;;;;GAQG;AACH,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAEtF;;;;;;;;;;;;GAYG;AACH,gCAAuC,WAAmB;IACxD,MAAM,UAAU,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,mBAAmB,GAAG,IAAI,MAAM,CAAC,SAAS,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtF,MAAM,aAAa,GAAG,iBAAiB,CAAC;IACxC,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE,CACtE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,aAAa,GAAG,CAAC,CAC5C,CAAC;IACF,MAAM,OAAO,GAAG,aAAa;SAC1B,KAAK,CAAC,gBAAgB,CAAC;SACvB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;SAC3D,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACxF,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,oCACE,eAAuB,EACvB,OAAe,EACf,MAAe;IAEf,2EAA2E;IAC3E,uEAAuE;IACvE,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAClF,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;QACrB,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IACL,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,cAAc,GAAG,QAAA,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,aAAa,GAAG,sBAAsB,CAAC,eAAe,CAAC,CAAC;IAC9D,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAA,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtF,CAAC;AAUD;;;;;;GAMG;AACU,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAE3C,2FAA2F;AAC9E,QAAA,kCAAkC,GAAG,GAAG,CAAC;AAEtD,0FAA0F;AAC7E,QAAA,kCAAkC,GAAG,GAAG,CAAC;AAEtD,mFAAmF;AACtE,QAAA,2CAA2C,GAAG,EAAE,CAAC;AAE9D,gFAAgF;AACnE,QAAA,gCAAgC,GAAG,GAAG,CAAC;AAEpD,SAAS,YAAY,CAAC,SAA6B;IACjD,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,CAAC;AAED,SAAS,aAAa,CAAC,SAAiB;IACtC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACvE,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW,EAAE,IAAY;IACnD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;IACnD,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACpE,OAAO,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;AAC7B,CAAC;AAED;;;;;;;;;GASG;AACH,yBAAgC,GAAyB,EAAE,IAA0B;IACnF,MAAM,MAAM,GAAG,GAAG,CAAC,oBAAoB,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC;IAC1C,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACtF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;IAC/C,IAAI,WAAW,IAAI,QAAA,kCAAkC;QAAE,OAAO,IAAI,CAAC;IACnE,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,oEAAoE;IACpE,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,IACE,WAAW,IAAI,QAAA,2CAA2C;QAC1D,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,QAAA,kCAAkC,EACvE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,UAAU,GAAG,QAAA,gCAAgC,CAAC;AACvD,CAAC;AAED;;;;;;;GAOG;AACH,8BAAqC,OAA4B;IAC/D,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI;QAAE,OAAO,YAAY,CAAC;IAE3D,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC1E,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC5E,IAAI,CAAC,OAAO,CAAC,oBAAoB;QAAE,OAAO,SAAS,CAAC;IAEpD,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7E,MAAM,aAAa,GAAG,OAAO,CAAC,mBAAmB,KAAK,IAAI,CAAC;IAC3D,MAAM,YAAY,GAAG,OAAO,CAAC,kBAAkB,KAAK,IAAI,IAAI,aAAa,CAAC;IAC1E,yEAAyE;IACzE,0EAA0E;IAC1E,MAAM,mBAAmB,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,mBAAmB,KAAK,IAAI,CAAC;IAClF,gEAAgE;IAChE,MAAM,yBAAyB,GAC7B,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,QAAA,uBAAuB,CAAC;IAEnE,MAAM,eAAe,GAAG,aAAa,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpF,MAAM,SAAS,GACb,YAAY,KAAK,CAAC;QAClB,UAAU;QACV,mBAAmB;QACnB,yBAAyB;QACzB,eAAe,CAAC;IAClB,OAAO,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC"}
|
|
1
|
+
{"version":3,"file":"phantom-click.js","sourceRoot":"","sources":["../../src/scraper/phantom-click.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Capture } from "../scripts/recon-shared";
|
|
2
|
+
/** Upper bound on captures held per run so a long-lived session cannot grow without limit. */
|
|
3
|
+
export declare const RUNTIME_CAPTURE_LIMIT = 200;
|
|
4
|
+
/** Handle to a run's in-memory captures, passed explicitly so writes never depend on the async context. */
|
|
5
|
+
export interface RuntimeCaptureStore {
|
|
6
|
+
dir: string;
|
|
7
|
+
captures: Map<string, Capture>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Runs `fn` with a private in-memory capture store so runtime flows can feed
|
|
11
|
+
* the same window detectors recon uses without touching disk. The store handle
|
|
12
|
+
* is passed to `fn` and registered by its dir marker until the run settles, so
|
|
13
|
+
* captures delivered from any async context land in the right run's store.
|
|
14
|
+
*/
|
|
15
|
+
export declare function withRuntimeCaptureStore<T>(fn: (store: RuntimeCaptureStore) => T): T;
|
|
16
|
+
/**
|
|
17
|
+
* Records a capture into `store`. GET response bodies are dropped — they are
|
|
18
|
+
* static assets and prefetches, not action signals — and the oldest entries
|
|
19
|
+
* are evicted past {@link RUNTIME_CAPTURE_LIMIT}.
|
|
20
|
+
*/
|
|
21
|
+
export declare function recordRuntimeCapture(store: RuntimeCaptureStore, filename: string, capture: Capture): void;
|
|
22
|
+
/**
|
|
23
|
+
* The directory capture readers should scan by default: the in-scope runtime
|
|
24
|
+
* store's marker, else the recon run's on-disk graphql dir.
|
|
25
|
+
*/
|
|
26
|
+
export declare function defaultCapturesDir(): string;
|
|
27
|
+
/**
|
|
28
|
+
* Lists raw capture filenames in `dir` (excluding `.decoded.json` sidecars),
|
|
29
|
+
* from memory when `dir` is a live runtime store, else from disk. Returns []
|
|
30
|
+
* when the dir is unreadable.
|
|
31
|
+
*/
|
|
32
|
+
export declare function listCaptureFiles(dir: string): string[];
|
|
33
|
+
/**
|
|
34
|
+
* Shared capture reader so detectors behave identically whether captures live
|
|
35
|
+
* in memory (runtime) or on disk (recon). Returns null when absent or unparseable.
|
|
36
|
+
*/
|
|
37
|
+
export declare function readCaptureFile(dir: string, filename: string): Capture | null;
|
|
38
|
+
//# sourceMappingURL=runtime-capture-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-capture-store.d.ts","sourceRoot":"","sources":["../../src/scraper/runtime-capture-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGtD,8FAA8F;AAC9F,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAIzC,2GAA2G;AAC3G,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAKD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,CAAC,GAAG,CAAC,CAqBnF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,mBAAmB,EAC1B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,GACf,IAAI,CAUN;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAMD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAQtD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAQ7E"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RUNTIME_CAPTURE_LIMIT = void 0;
|
|
4
|
+
exports.withRuntimeCaptureStore = withRuntimeCaptureStore;
|
|
5
|
+
exports.recordRuntimeCapture = recordRuntimeCapture;
|
|
6
|
+
exports.defaultCapturesDir = defaultCapturesDir;
|
|
7
|
+
exports.listCaptureFiles = listCaptureFiles;
|
|
8
|
+
exports.readCaptureFile = readCaptureFile;
|
|
9
|
+
const node_async_hooks_1 = require("node:async_hooks");
|
|
10
|
+
const node_crypto_1 = require("node:crypto");
|
|
11
|
+
const node_fs_1 = require("node:fs");
|
|
12
|
+
const node_path_1 = require("node:path");
|
|
13
|
+
const recon_shared_1 = require("../scripts/recon-shared");
|
|
14
|
+
/** Upper bound on captures held per run so a long-lived session cannot grow without limit. */
|
|
15
|
+
exports.RUNTIME_CAPTURE_LIMIT = 200;
|
|
16
|
+
const MEMORY_DIR_PREFIX = "memory:";
|
|
17
|
+
const storage = new node_async_hooks_1.AsyncLocalStorage();
|
|
18
|
+
const registry = new Map();
|
|
19
|
+
/**
|
|
20
|
+
* Runs `fn` with a private in-memory capture store so runtime flows can feed
|
|
21
|
+
* the same window detectors recon uses without touching disk. The store handle
|
|
22
|
+
* is passed to `fn` and registered by its dir marker until the run settles, so
|
|
23
|
+
* captures delivered from any async context land in the right run's store.
|
|
24
|
+
*/
|
|
25
|
+
function withRuntimeCaptureStore(fn) {
|
|
26
|
+
const store = {
|
|
27
|
+
dir: `${MEMORY_DIR_PREFIX}${(0, node_crypto_1.randomUUID)()}`,
|
|
28
|
+
captures: new Map(),
|
|
29
|
+
};
|
|
30
|
+
registry.set(store.dir, store);
|
|
31
|
+
const release = () => {
|
|
32
|
+
registry.delete(store.dir);
|
|
33
|
+
};
|
|
34
|
+
try {
|
|
35
|
+
const result = storage.run(store, () => fn(store));
|
|
36
|
+
if (result instanceof Promise) {
|
|
37
|
+
result.then(release, release);
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
release();
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
release();
|
|
45
|
+
throw err;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Records a capture into `store`. GET response bodies are dropped — they are
|
|
50
|
+
* static assets and prefetches, not action signals — and the oldest entries
|
|
51
|
+
* are evicted past {@link RUNTIME_CAPTURE_LIMIT}.
|
|
52
|
+
*/
|
|
53
|
+
function recordRuntimeCapture(store, filename, capture) {
|
|
54
|
+
store.captures.set(filename, capture.method === "GET" ? { ...capture, responseBody: null } : capture);
|
|
55
|
+
while (store.captures.size > exports.RUNTIME_CAPTURE_LIMIT) {
|
|
56
|
+
const oldest = store.captures.keys().next().value;
|
|
57
|
+
if (oldest === undefined)
|
|
58
|
+
return;
|
|
59
|
+
store.captures.delete(oldest);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The directory capture readers should scan by default: the in-scope runtime
|
|
64
|
+
* store's marker, else the recon run's on-disk graphql dir.
|
|
65
|
+
*/
|
|
66
|
+
function defaultCapturesDir() {
|
|
67
|
+
return storage.getStore()?.dir ?? (0, recon_shared_1.resolveReconRunDir)().graphqlDir;
|
|
68
|
+
}
|
|
69
|
+
function storeFor(dir) {
|
|
70
|
+
return registry.get(dir) ?? null;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Lists raw capture filenames in `dir` (excluding `.decoded.json` sidecars),
|
|
74
|
+
* from memory when `dir` is a live runtime store, else from disk. Returns []
|
|
75
|
+
* when the dir is unreadable.
|
|
76
|
+
*/
|
|
77
|
+
function listCaptureFiles(dir) {
|
|
78
|
+
const store = storeFor(dir);
|
|
79
|
+
if (store)
|
|
80
|
+
return [...store.captures.keys()];
|
|
81
|
+
try {
|
|
82
|
+
return (0, node_fs_1.readdirSync)(dir).filter((f) => f.endsWith(".json") && !f.endsWith(".decoded.json"));
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Shared capture reader so detectors behave identically whether captures live
|
|
90
|
+
* in memory (runtime) or on disk (recon). Returns null when absent or unparseable.
|
|
91
|
+
*/
|
|
92
|
+
function readCaptureFile(dir, filename) {
|
|
93
|
+
const store = storeFor(dir);
|
|
94
|
+
if (store)
|
|
95
|
+
return store.captures.get(filename) ?? null;
|
|
96
|
+
try {
|
|
97
|
+
return JSON.parse((0, node_fs_1.readFileSync)((0, node_path_1.join)(dir, filename), "utf8"));
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=runtime-capture-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-capture-store.js","sourceRoot":"","sources":["../../src/scraper/runtime-capture-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-page helpers shared by the date-segment enumeration and the fill
|
|
3
|
+
* readback so "is this spinbutton one segment of a multi-segment widget" has a
|
|
4
|
+
* single definition; defines `spins`, `ownerOf` and `isDateSegment`.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SEGMENT_OWNER_JS = "\n const hiddenAttr = (node) => node.hasAttribute(\"hidden\") || node.getAttribute(\"aria-hidden\") === \"true\";\n const styleOf = (node) => {\n try { return typeof getComputedStyle === \"function\" ? getComputedStyle(node) : window.getComputedStyle(node); } catch { return null; }\n };\n const isHidden = (el) => {\n for (let node = el; node && node.nodeType === 1; node = node.parentElement) {\n if (hiddenAttr(node)) return true;\n const style = styleOf(node);\n if (style && (style.display === \"none\" || style.visibility === \"hidden\")) return true;\n }\n return false;\n };\n const spins = Array.from(document.querySelectorAll(\"input[role='spinbutton']\")).filter((el) => !isHidden(el));\n const norm = (s) => (s || \"\").replace(/\\s+/g, \" \").trim();\n const idText = (ids) => (ids || \"\").split(/\\s+/).map((id) => {\n const ref = id ? document.getElementById(id) : null;\n return ref ? norm(ref.textContent) : \"\";\n }).join(\" \");\n const legendOf = (node) => {\n const legend = node.tagName === \"FIELDSET\" ? node.querySelector(\":scope > legend\") : null;\n return legend ? norm(legend.textContent) : \"\";\n };\n const namedBy = (node) => [legendOf(node), norm(node.getAttribute(\"aria-label\")), idText(node.getAttribute(\"aria-labelledby\"))].filter(Boolean).join(\" \");\n const tiedToSpin = (l) => l.querySelector(\"input,[role='spinbutton']\") || (l.getAttribute(\"for\") && spins.some((sp) => sp.id === l.getAttribute(\"for\")));\n const hasCaption = (node) => namedBy(node) !== \"\" || Array.from(node.querySelectorAll(\"label,legend\")).some((l) => !tiedToSpin(l));\n const captionOwnerOf = (el) => {\n const explicit = el.closest(\"fieldset,[role='group']\");\n if (explicit) return explicit;\n for (let node = el.parentElement; node && node !== document.body; node = node.parentElement) {\n if (hasCaption(node)) return node;\n }\n return null;\n };\n const bareSpins = spins.filter((sp) => !captionOwnerOf(sp));\n const hasOtherControl = (node) => Array.from(node.querySelectorAll(\"input,select,textarea\")).some((c) => !spins.includes(c) && c.type !== \"hidden\");\n // Segments that each sit in their own uncaptioned wrapper share no\n // fieldset/caption, so the nearest ancestor holding several bare spinbuttons\n // (and no other form control) is the widget they belong to.\n const bareOwnerOf = (el) => {\n for (let node = el.parentElement; node && node !== document.body; node = node.parentElement) {\n if (hasOtherControl(node)) break;\n if (bareSpins.filter((sp) => node.contains(sp)).length > 1) return node;\n }\n return el.parentElement;\n };\n const ownerOf = (el) => captionOwnerOf(el) || bareOwnerOf(el);\n const isDateSegment = (el) => {\n if (!el.getAttribute || el.getAttribute(\"role\") !== \"spinbutton\" || !spins.includes(el)) return false;\n const box = ownerOf(el);\n return spins.filter((sp) => ownerOf(sp) === box).length > 1;\n };\n";
|
|
7
|
+
/**
|
|
8
|
+
* Expression evaluated with `this` as a resolved element; lets actuation code
|
|
9
|
+
* decide before writing whether the element is one segment of a multi-segment
|
|
10
|
+
* date widget, using the same detector the enumeration and readback use.
|
|
11
|
+
*/
|
|
12
|
+
export declare const IS_DATE_SEGMENT_EXPR = "(function () {\n \n const hiddenAttr = (node) => node.hasAttribute(\"hidden\") || node.getAttribute(\"aria-hidden\") === \"true\";\n const styleOf = (node) => {\n try { return typeof getComputedStyle === \"function\" ? getComputedStyle(node) : window.getComputedStyle(node); } catch { return null; }\n };\n const isHidden = (el) => {\n for (let node = el; node && node.nodeType === 1; node = node.parentElement) {\n if (hiddenAttr(node)) return true;\n const style = styleOf(node);\n if (style && (style.display === \"none\" || style.visibility === \"hidden\")) return true;\n }\n return false;\n };\n const spins = Array.from(document.querySelectorAll(\"input[role='spinbutton']\")).filter((el) => !isHidden(el));\n const norm = (s) => (s || \"\").replace(/\\s+/g, \" \").trim();\n const idText = (ids) => (ids || \"\").split(/\\s+/).map((id) => {\n const ref = id ? document.getElementById(id) : null;\n return ref ? norm(ref.textContent) : \"\";\n }).join(\" \");\n const legendOf = (node) => {\n const legend = node.tagName === \"FIELDSET\" ? node.querySelector(\":scope > legend\") : null;\n return legend ? norm(legend.textContent) : \"\";\n };\n const namedBy = (node) => [legendOf(node), norm(node.getAttribute(\"aria-label\")), idText(node.getAttribute(\"aria-labelledby\"))].filter(Boolean).join(\" \");\n const tiedToSpin = (l) => l.querySelector(\"input,[role='spinbutton']\") || (l.getAttribute(\"for\") && spins.some((sp) => sp.id === l.getAttribute(\"for\")));\n const hasCaption = (node) => namedBy(node) !== \"\" || Array.from(node.querySelectorAll(\"label,legend\")).some((l) => !tiedToSpin(l));\n const captionOwnerOf = (el) => {\n const explicit = el.closest(\"fieldset,[role='group']\");\n if (explicit) return explicit;\n for (let node = el.parentElement; node && node !== document.body; node = node.parentElement) {\n if (hasCaption(node)) return node;\n }\n return null;\n };\n const bareSpins = spins.filter((sp) => !captionOwnerOf(sp));\n const hasOtherControl = (node) => Array.from(node.querySelectorAll(\"input,select,textarea\")).some((c) => !spins.includes(c) && c.type !== \"hidden\");\n // Segments that each sit in their own uncaptioned wrapper share no\n // fieldset/caption, so the nearest ancestor holding several bare spinbuttons\n // (and no other form control) is the widget they belong to.\n const bareOwnerOf = (el) => {\n for (let node = el.parentElement; node && node !== document.body; node = node.parentElement) {\n if (hasOtherControl(node)) break;\n if (bareSpins.filter((sp) => node.contains(sp)).length > 1) return node;\n }\n return el.parentElement;\n };\n const ownerOf = (el) => captionOwnerOf(el) || bareOwnerOf(el);\n const isDateSegment = (el) => {\n if (!el.getAttribute || el.getAttribute(\"role\") !== \"spinbutton\" || !spins.includes(el)) return false;\n const box = ownerOf(el);\n return spins.filter((sp) => ownerOf(sp) === box).length > 1;\n };\n\n return isDateSegment(this);\n})";
|
|
13
|
+
//# sourceMappingURL=segmented-date-spinbutton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segmented-date-spinbutton.d.ts","sourceRoot":"","sources":["../../src/scraper/segmented-date-spinbutton.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,o8FAoD5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,y/FAG9B,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IS_DATE_SEGMENT_EXPR = exports.SEGMENT_OWNER_JS = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* In-page helpers shared by the date-segment enumeration and the fill
|
|
6
|
+
* readback so "is this spinbutton one segment of a multi-segment widget" has a
|
|
7
|
+
* single definition; defines `spins`, `ownerOf` and `isDateSegment`.
|
|
8
|
+
*/
|
|
9
|
+
exports.SEGMENT_OWNER_JS = `
|
|
10
|
+
const hiddenAttr = (node) => node.hasAttribute("hidden") || node.getAttribute("aria-hidden") === "true";
|
|
11
|
+
const styleOf = (node) => {
|
|
12
|
+
try { return typeof getComputedStyle === "function" ? getComputedStyle(node) : window.getComputedStyle(node); } catch { return null; }
|
|
13
|
+
};
|
|
14
|
+
const isHidden = (el) => {
|
|
15
|
+
for (let node = el; node && node.nodeType === 1; node = node.parentElement) {
|
|
16
|
+
if (hiddenAttr(node)) return true;
|
|
17
|
+
const style = styleOf(node);
|
|
18
|
+
if (style && (style.display === "none" || style.visibility === "hidden")) return true;
|
|
19
|
+
}
|
|
20
|
+
return false;
|
|
21
|
+
};
|
|
22
|
+
const spins = Array.from(document.querySelectorAll("input[role='spinbutton']")).filter((el) => !isHidden(el));
|
|
23
|
+
const norm = (s) => (s || "").replace(/\\s+/g, " ").trim();
|
|
24
|
+
const idText = (ids) => (ids || "").split(/\\s+/).map((id) => {
|
|
25
|
+
const ref = id ? document.getElementById(id) : null;
|
|
26
|
+
return ref ? norm(ref.textContent) : "";
|
|
27
|
+
}).join(" ");
|
|
28
|
+
const legendOf = (node) => {
|
|
29
|
+
const legend = node.tagName === "FIELDSET" ? node.querySelector(":scope > legend") : null;
|
|
30
|
+
return legend ? norm(legend.textContent) : "";
|
|
31
|
+
};
|
|
32
|
+
const namedBy = (node) => [legendOf(node), norm(node.getAttribute("aria-label")), idText(node.getAttribute("aria-labelledby"))].filter(Boolean).join(" ");
|
|
33
|
+
const tiedToSpin = (l) => l.querySelector("input,[role='spinbutton']") || (l.getAttribute("for") && spins.some((sp) => sp.id === l.getAttribute("for")));
|
|
34
|
+
const hasCaption = (node) => namedBy(node) !== "" || Array.from(node.querySelectorAll("label,legend")).some((l) => !tiedToSpin(l));
|
|
35
|
+
const captionOwnerOf = (el) => {
|
|
36
|
+
const explicit = el.closest("fieldset,[role='group']");
|
|
37
|
+
if (explicit) return explicit;
|
|
38
|
+
for (let node = el.parentElement; node && node !== document.body; node = node.parentElement) {
|
|
39
|
+
if (hasCaption(node)) return node;
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
};
|
|
43
|
+
const bareSpins = spins.filter((sp) => !captionOwnerOf(sp));
|
|
44
|
+
const hasOtherControl = (node) => Array.from(node.querySelectorAll("input,select,textarea")).some((c) => !spins.includes(c) && c.type !== "hidden");
|
|
45
|
+
// Segments that each sit in their own uncaptioned wrapper share no
|
|
46
|
+
// fieldset/caption, so the nearest ancestor holding several bare spinbuttons
|
|
47
|
+
// (and no other form control) is the widget they belong to.
|
|
48
|
+
const bareOwnerOf = (el) => {
|
|
49
|
+
for (let node = el.parentElement; node && node !== document.body; node = node.parentElement) {
|
|
50
|
+
if (hasOtherControl(node)) break;
|
|
51
|
+
if (bareSpins.filter((sp) => node.contains(sp)).length > 1) return node;
|
|
52
|
+
}
|
|
53
|
+
return el.parentElement;
|
|
54
|
+
};
|
|
55
|
+
const ownerOf = (el) => captionOwnerOf(el) || bareOwnerOf(el);
|
|
56
|
+
const isDateSegment = (el) => {
|
|
57
|
+
if (!el.getAttribute || el.getAttribute("role") !== "spinbutton" || !spins.includes(el)) return false;
|
|
58
|
+
const box = ownerOf(el);
|
|
59
|
+
return spins.filter((sp) => ownerOf(sp) === box).length > 1;
|
|
60
|
+
};
|
|
61
|
+
`;
|
|
62
|
+
/**
|
|
63
|
+
* Expression evaluated with `this` as a resolved element; lets actuation code
|
|
64
|
+
* decide before writing whether the element is one segment of a multi-segment
|
|
65
|
+
* date widget, using the same detector the enumeration and readback use.
|
|
66
|
+
*/
|
|
67
|
+
exports.IS_DATE_SEGMENT_EXPR = `(function () {
|
|
68
|
+
${exports.SEGMENT_OWNER_JS}
|
|
69
|
+
return isDateSegment(this);
|
|
70
|
+
})`;
|
|
71
|
+
//# sourceMappingURL=segmented-date-spinbutton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"segmented-date-spinbutton.js","sourceRoot":"","sources":["../../src/scraper/segmented-date-spinbutton.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoD/B,CAAC;AAEF;;;;GAIG;AACU,QAAA,oBAAoB,GAAG;IAChC,QAAA,gBAAgB;;GAEjB,CAAC"}
|
|
@@ -490,14 +490,6 @@ export declare function decideReplanNoProgress(newSteps: readonly NormalizedStep
|
|
|
490
490
|
* is ambiguous.
|
|
491
491
|
*/
|
|
492
492
|
export declare function hasPageAlreadyAdvancedPastStep(stepStartUrl: string, currentUrl: string, stepInstruction: string): boolean;
|
|
493
|
-
/**
|
|
494
|
-
* DOM-advance counterpart of {@link hasPageAlreadyAdvancedPastStep} for
|
|
495
|
-
* non-final submit-shaped steps, whose SPA wizards swap content without a URL
|
|
496
|
-
* change. Reuses the shared {@link hasPageAdvanced} judgement over the
|
|
497
|
-
* step-start and live visible-text signatures; a final step is never credited
|
|
498
|
-
* here because its completion is owned by the submit-destination judge.
|
|
499
|
-
*/
|
|
500
|
-
export declare function hasSubmitStepDomAdvanced(isFinalStep: boolean, preVisibleTextSignature: string | undefined, liveVisibleTextSignature: string | undefined): boolean;
|
|
501
493
|
/**
|
|
502
494
|
* Detect a replan that proposes a Sign-In/Log-In recovery bridge after the
|
|
503
495
|
* completed-steps history already shows an account-creation/registration step.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recon-browser.d.ts","sourceRoot":"","sources":["../../src/scripts/recon-browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAKH,OAAO,KAAK,SAAS,MAAM,mBAAmB,CAAC;AAE/C,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGnF,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"recon-browser.d.ts","sourceRoot":"","sources":["../../src/scripts/recon-browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,7 +65,6 @@ exports.filterReplanDuplicatingNextAuthored = filterReplanDuplicatingNextAuthore
|
|
|
65
65
|
exports.isReplanReproposingFailedStep = isReplanReproposingFailedStep;
|
|
66
66
|
exports.decideReplanNoProgress = decideReplanNoProgress;
|
|
67
67
|
exports.hasPageAlreadyAdvancedPastStep = hasPageAlreadyAdvancedPastStep;
|
|
68
|
-
exports.hasSubmitStepDomAdvanced = hasSubmitStepDomAdvanced;
|
|
69
68
|
exports.isReplanRegressingAcrossAuthBoundary = isReplanRegressingAcrossAuthBoundary;
|
|
70
69
|
exports.isSubmitShapedInstructionText = isSubmitShapedInstructionText;
|
|
71
70
|
exports.seedSubmitStepFromOwnInstructionText = seedSubmitStepFromOwnInstructionText;
|
|
@@ -94,7 +93,6 @@ const http_1 = require("../lib/http");
|
|
|
94
93
|
const anthropic_client_1 = require("../lib/llm/anthropic-client");
|
|
95
94
|
const error_messages_1 = require("../lib/llm/judges/error-messages");
|
|
96
95
|
const invalid_fields_1 = require("../lib/llm/judges/invalid-fields");
|
|
97
|
-
const verify_submit_1 = require("../lib/llm/judges/verify-submit");
|
|
98
96
|
const schemas_1 = require("../lib/llm/schemas");
|
|
99
97
|
const logging_1 = require("../lib/logging");
|
|
100
98
|
const call_capture_1 = require("../lib/telemetry/call-capture");
|
|
@@ -1243,18 +1241,6 @@ function hasPageAlreadyAdvancedPastStep(stepStartUrl, currentUrl, stepInstructio
|
|
|
1243
1241
|
return false;
|
|
1244
1242
|
return (0, phantom_click_1.isPlausibleStepDestination)(stepInstruction, currentUrl);
|
|
1245
1243
|
}
|
|
1246
|
-
/**
|
|
1247
|
-
* DOM-advance counterpart of {@link hasPageAlreadyAdvancedPastStep} for
|
|
1248
|
-
* non-final submit-shaped steps, whose SPA wizards swap content without a URL
|
|
1249
|
-
* change. Reuses the shared {@link hasPageAdvanced} judgement over the
|
|
1250
|
-
* step-start and live visible-text signatures; a final step is never credited
|
|
1251
|
-
* here because its completion is owned by the submit-destination judge.
|
|
1252
|
-
*/
|
|
1253
|
-
function hasSubmitStepDomAdvanced(isFinalStep, preVisibleTextSignature, liveVisibleTextSignature) {
|
|
1254
|
-
if (isFinalStep)
|
|
1255
|
-
return false;
|
|
1256
|
-
return (0, phantom_click_1.hasPageAdvanced)({ networkCount: 0, url: "", bodyHtmlLength: 0, visibleTextSignature: preVisibleTextSignature }, { networkCount: 0, url: "", bodyHtmlLength: 0, visibleTextSignature: liveVisibleTextSignature });
|
|
1257
|
-
}
|
|
1258
1244
|
/** Word-boundary phrase patterns identifying an account-creation/registration step. */
|
|
1259
1245
|
const ACCOUNT_CREATION_PATTERNS = [
|
|
1260
1246
|
/\bcreate\s+(an\s+)?account\b/,
|
|
@@ -2414,9 +2400,25 @@ async function main() {
|
|
|
2414
2400
|
// in-frame navigation would otherwise be invisible to the top-level
|
|
2415
2401
|
// page.url() this used to read.
|
|
2416
2402
|
const urlAtStepStart = await (0, frame_target_1.readCurrentFrameUrl)(page, frameTarget);
|
|
2417
|
-
const
|
|
2418
|
-
|
|
2419
|
-
|
|
2403
|
+
const stepFlowHasSubmitSemantics = (0, flow_runner_1.flowHasSubmitSemantics)({
|
|
2404
|
+
steps: plan.map((s) => ({
|
|
2405
|
+
submitStep: s.submitStep === true,
|
|
2406
|
+
instruction: s.instruction,
|
|
2407
|
+
})),
|
|
2408
|
+
submitEndpointPattern,
|
|
2409
|
+
requireSubmitEndpointMatch,
|
|
2410
|
+
});
|
|
2411
|
+
const midFlowSubmitShaped = (0, flow_runner_1.isMidFlowSubmitShapedStep)({
|
|
2412
|
+
step: step.instruction,
|
|
2413
|
+
submitStep: step.submitStep === true,
|
|
2414
|
+
isFinalStep: i === plan.length - 1,
|
|
2415
|
+
flowHasSubmitSemantics: stepFlowHasSubmitSemantics,
|
|
2416
|
+
});
|
|
2417
|
+
let elementBaseline;
|
|
2418
|
+
const textAtStepStart = midFlowSubmitShaped ||
|
|
2419
|
+
step.submitStep === true ||
|
|
2420
|
+
(step.optional && i >= plan.length - flow_runner_1.TRAILING_GRACE_WINDOW)
|
|
2421
|
+
? await (0, flow_runner_1.snapshotPage)(frameTarget, signalCounter).catch(() => undefined)
|
|
2420
2422
|
: undefined;
|
|
2421
2423
|
// A child frame CDP has just attached to may still be sitting on
|
|
2422
2424
|
// about:blank (the moment right after Target.setAutoAttach fires and
|
|
@@ -2492,6 +2494,9 @@ async function main() {
|
|
|
2492
2494
|
captureFn,
|
|
2493
2495
|
onStepFailure: dumpStepFailure,
|
|
2494
2496
|
onStepHeal: dumpStepHeal,
|
|
2497
|
+
onElementStepStartBaseline: (snapshot) => {
|
|
2498
|
+
elementBaseline = snapshot;
|
|
2499
|
+
},
|
|
2495
2500
|
});
|
|
2496
2501
|
// Races the step's own promise against the session's teardown death
|
|
2497
2502
|
// signal (bugfix-003's raceAgainstTeardown): when Stagehand's CDP
|
|
@@ -2581,12 +2586,37 @@ async function main() {
|
|
|
2581
2586
|
// matches, so skip the replan dispatcher entirely and resume with
|
|
2582
2587
|
// the remaining tail.
|
|
2583
2588
|
const urlAfterFailure = await (0, frame_target_1.readCurrentFrameUrl)(page, frameTarget);
|
|
2584
|
-
const
|
|
2589
|
+
const baselineText = textAtStepStart ?? elementBaseline;
|
|
2590
|
+
// An element-level submit-shaped click (adopted baseline) is mid-flow
|
|
2591
|
+
// under the same class the in-cascade sites used, unless genuine final.
|
|
2592
|
+
const midFlowSubmit = (0, flow_runner_1.isMidFlowSubmitShapedStep)({
|
|
2593
|
+
step: step.instruction,
|
|
2594
|
+
submitStep: step.submitStep === true,
|
|
2595
|
+
isFinalStep: i === plan.length - 1,
|
|
2596
|
+
flowHasSubmitSemantics: stepFlowHasSubmitSemantics,
|
|
2597
|
+
elementSubmitShaped: elementBaseline !== undefined,
|
|
2598
|
+
});
|
|
2599
|
+
const baselineEligible = midFlowSubmit;
|
|
2600
|
+
const urlAdvanced = (!step.submitStep || midFlowSubmit) &&
|
|
2585
2601
|
hasPageAlreadyAdvancedPastStep(urlAtStepStart, urlAfterFailure, step.instruction);
|
|
2586
|
-
const
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2602
|
+
const settledAdvance = !urlAdvanced && baselineEligible && baselineText !== undefined
|
|
2603
|
+
? await (0, flow_runner_1.readMidFlowPostClickAdvance)({
|
|
2604
|
+
target: frameTarget,
|
|
2605
|
+
signalCounter,
|
|
2606
|
+
page,
|
|
2607
|
+
pre: {
|
|
2608
|
+
...baselineText,
|
|
2609
|
+
networkCount: baselineText.networkCount ?? signalCounter.n,
|
|
2610
|
+
},
|
|
2611
|
+
stepStartSnapshot: baselineText,
|
|
2612
|
+
midFlowSubmit,
|
|
2613
|
+
io: { settle: flow_runner_1.settleWithPageQuiescence, snapshot: flow_runner_1.snapshotPage },
|
|
2614
|
+
}).catch((err) => {
|
|
2615
|
+
logger.warn(`${(0, flow_runner_1.formatStepPrefix)(i, () => plan.length)} post-failure settle failed: ${err instanceof Error ? err.message : String(err)}; not crediting an unsettled read`);
|
|
2616
|
+
return undefined;
|
|
2617
|
+
})
|
|
2618
|
+
: undefined;
|
|
2619
|
+
const domAdvanced = settledAdvance?.pageAdvanced === true;
|
|
2590
2620
|
if (urlAdvanced || domAdvanced) {
|
|
2591
2621
|
logger.info(`${(0, flow_runner_1.formatStepPrefix)(i, () => plan.length)} verification failed but the page already advanced past this step (${urlAtStepStart} → ${urlAfterFailure}); treating as completed and resuming remaining tail`);
|
|
2592
2622
|
consecutiveStaleSkips = 0;
|
|
@@ -2629,35 +2659,57 @@ async function main() {
|
|
|
2629
2659
|
timeoutMs: config_1.config.scraper.frameEvaluateTimeoutMs,
|
|
2630
2660
|
label: "trailing-grace: page title",
|
|
2631
2661
|
}).catch(() => "");
|
|
2632
|
-
const
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
})),
|
|
2640
|
-
// A dead session throws synchronously here too — fall back to ""
|
|
2641
|
-
// rather than let the trailing-grace check itself crash the run.
|
|
2642
|
-
pageUrl: (() => {
|
|
2643
|
-
try {
|
|
2644
|
-
return page.url();
|
|
2645
|
-
}
|
|
2646
|
-
catch {
|
|
2647
|
-
return "";
|
|
2648
|
-
}
|
|
2649
|
-
})(),
|
|
2650
|
-
pageTitle,
|
|
2651
|
-
unfocusedObserve: [],
|
|
2652
|
-
networkCaptures: recentCaptureMeta,
|
|
2653
|
-
invalidMarkerCount: 0,
|
|
2654
|
-
ownBackendHostnames,
|
|
2655
|
-
successUrlFragments,
|
|
2656
|
-
successPageTitleHints,
|
|
2657
|
-
submittedStateSelectors,
|
|
2658
|
-
},
|
|
2659
|
-
captureFn,
|
|
2662
|
+
const trailingGraceFlowHasSubmitSemantics = (0, flow_runner_1.flowHasSubmitSemantics)({
|
|
2663
|
+
steps: plan.map((s) => ({
|
|
2664
|
+
submitStep: s.submitStep === true,
|
|
2665
|
+
instruction: s.instruction,
|
|
2666
|
+
})),
|
|
2667
|
+
submitEndpointPattern,
|
|
2668
|
+
requireSubmitEndpointMatch,
|
|
2660
2669
|
});
|
|
2670
|
+
// A dead session throws synchronously here too — fall back to ""
|
|
2671
|
+
// rather than let the trailing-grace check itself crash the run.
|
|
2672
|
+
const trailingGracePageUrl = (() => {
|
|
2673
|
+
try {
|
|
2674
|
+
return page.url();
|
|
2675
|
+
}
|
|
2676
|
+
catch {
|
|
2677
|
+
return "";
|
|
2678
|
+
}
|
|
2679
|
+
})();
|
|
2680
|
+
// A non-final trailing step is judged through judgeStepOutcome so the
|
|
2681
|
+
// page is settled first; an unsettled read can land between a header
|
|
2682
|
+
// flip and the late body re-render and be held to final-submit proof.
|
|
2683
|
+
const trailingGraceVerdict = baselineText === undefined
|
|
2684
|
+
? undefined
|
|
2685
|
+
: await (0, flow_runner_1.judgeStepOutcome)({
|
|
2686
|
+
client: anthropic,
|
|
2687
|
+
captureFn,
|
|
2688
|
+
step: step.instruction,
|
|
2689
|
+
isFinalStep: i === plan.length - 1,
|
|
2690
|
+
submitStep: step.submitStep === true,
|
|
2691
|
+
flowHasSubmitSemantics: trailingGraceFlowHasSubmitSemantics,
|
|
2692
|
+
elementSubmitShaped: midFlowSubmitShaped,
|
|
2693
|
+
page,
|
|
2694
|
+
target: (0, frame_target_1.mainFrameTarget)(page),
|
|
2695
|
+
signalCounter,
|
|
2696
|
+
preNetworkCount: baselineText.networkCount ?? signalCounter.n,
|
|
2697
|
+
preVisibleTextSignature: baselineText.visibleTextSignature,
|
|
2698
|
+
preVisibleText: baselineText.visibleText,
|
|
2699
|
+
preVisibleTextDigest: baselineText.visibleTextDigest,
|
|
2700
|
+
settledPostVisibleText: settledAdvance?.post.visibleText,
|
|
2701
|
+
submitInput: {
|
|
2702
|
+
pageUrl: trailingGracePageUrl,
|
|
2703
|
+
pageTitle,
|
|
2704
|
+
unfocusedObserve: [],
|
|
2705
|
+
networkCaptures: recentCaptureMeta,
|
|
2706
|
+
invalidMarkerCount: 0,
|
|
2707
|
+
ownBackendHostnames,
|
|
2708
|
+
successUrlFragments,
|
|
2709
|
+
successPageTitleHints,
|
|
2710
|
+
submittedStateSelectors,
|
|
2711
|
+
},
|
|
2712
|
+
});
|
|
2661
2713
|
if (trailingGraceVerdict?.verified) {
|
|
2662
2714
|
logger.info(`${(0, flow_runner_1.formatStepPrefix)(i, () => plan.length)} optional + trailing position; judge verified recent submit (${trailingGraceVerdict.rationale}) — treating verification failure as benign no-op; recon complete`);
|
|
2663
2715
|
exitedViaTrailingGrace = true;
|