@enricai/barnacle 1.12.79 → 1.12.81
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/helpers/reply.d.ts.map +1 -1
- package/dist/api/helpers/reply.js +5 -2
- package/dist/api/helpers/reply.js.map +1 -1
- package/dist/config.d.ts +10 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/lib/llm/judge.d.ts.map +1 -1
- package/dist/lib/llm/judge.js +6 -1
- package/dist/lib/llm/judge.js.map +1 -1
- package/dist/lib/llm/judges/verify-step-advanced.d.ts +30 -0
- package/dist/lib/llm/judges/verify-step-advanced.d.ts.map +1 -0
- package/dist/lib/llm/judges/verify-step-advanced.js +62 -0
- package/dist/lib/llm/judges/verify-step-advanced.js.map +1 -0
- package/dist/lib/llm/judges/verify-submit.d.ts +7 -1
- package/dist/lib/llm/judges/verify-submit.d.ts.map +1 -1
- package/dist/lib/llm/judges/verify-submit.js +29 -8
- package/dist/lib/llm/judges/verify-submit.js.map +1 -1
- package/dist/lib/llm/schemas.d.ts +8 -0
- package/dist/lib/llm/schemas.d.ts.map +1 -1
- package/dist/lib/llm/schemas.js +21 -13
- package/dist/lib/llm/schemas.js.map +1 -1
- package/dist/lib/logging.d.ts +7 -0
- package/dist/lib/logging.d.ts.map +1 -1
- package/dist/lib/logging.js +19 -1
- package/dist/lib/logging.js.map +1 -1
- package/dist/lib/pii-redaction.d.ts +104 -0
- package/dist/lib/pii-redaction.d.ts.map +1 -0
- package/dist/lib/pii-redaction.js +397 -0
- package/dist/lib/pii-redaction.js.map +1 -0
- package/dist/lib/random.d.ts +3 -1
- package/dist/lib/random.d.ts.map +1 -1
- package/dist/lib/random.js +7 -2
- package/dist/lib/random.js.map +1 -1
- package/dist/lib/telemetry/beacon-capture.d.ts.map +1 -1
- package/dist/lib/telemetry/beacon-capture.js +2 -0
- package/dist/lib/telemetry/beacon-capture.js.map +1 -1
- package/dist/lib/telemetry/call-capture.d.ts.map +1 -1
- package/dist/lib/telemetry/call-capture.js +4 -1
- package/dist/lib/telemetry/call-capture.js.map +1 -1
- package/dist/lib/telemetry/submission-capture.d.ts +11 -1
- package/dist/lib/telemetry/submission-capture.d.ts.map +1 -1
- package/dist/lib/telemetry/submission-capture.js +32 -3
- package/dist/lib/telemetry/submission-capture.js.map +1 -1
- package/dist/plugins/config-plugin.d.ts +8 -0
- package/dist/plugins/config-plugin.d.ts.map +1 -1
- package/dist/plugins/config-plugin.js +4 -0
- package/dist/plugins/config-plugin.js.map +1 -1
- package/dist/plugins/discover.d.ts.map +1 -1
- package/dist/plugins/discover.js +2 -0
- package/dist/plugins/discover.js.map +1 -1
- package/dist/plugins/loader.d.ts.map +1 -1
- package/dist/plugins/loader.js +23 -6
- package/dist/plugins/loader.js.map +1 -1
- package/dist/scraper/active-page.d.ts +18 -0
- package/dist/scraper/active-page.d.ts.map +1 -0
- package/dist/scraper/active-page.js +53 -0
- package/dist/scraper/active-page.js.map +1 -0
- package/dist/scraper/click-settle.d.ts +53 -0
- package/dist/scraper/click-settle.d.ts.map +1 -0
- package/dist/scraper/click-settle.js +135 -0
- package/dist/scraper/click-settle.js.map +1 -0
- package/dist/scraper/deep-locator-candidates.d.ts +20 -1
- package/dist/scraper/deep-locator-candidates.d.ts.map +1 -1
- package/dist/scraper/deep-locator-candidates.js +75 -11
- package/dist/scraper/deep-locator-candidates.js.map +1 -1
- package/dist/scraper/flow-runner.d.ts +347 -6
- package/dist/scraper/flow-runner.d.ts.map +1 -1
- package/dist/scraper/flow-runner.js +2457 -357
- package/dist/scraper/flow-runner.js.map +1 -1
- package/dist/scraper/navigate.d.ts +3 -3
- package/dist/scraper/navigate.js +4 -4
- package/dist/scraper/navigate.js.map +1 -1
- package/dist/scraper/phantom-click.d.ts +34 -2
- package/dist/scraper/phantom-click.d.ts.map +1 -1
- package/dist/scraper/phantom-click.js +80 -6
- package/dist/scraper/phantom-click.js.map +1 -1
- package/dist/scraper/quoted-spans.d.ts +35 -0
- package/dist/scraper/quoted-spans.d.ts.map +1 -0
- package/dist/scraper/quoted-spans.js +83 -0
- package/dist/scraper/quoted-spans.js.map +1 -0
- package/dist/scraper/session-browserbase.d.ts +4 -2
- package/dist/scraper/session-browserbase.d.ts.map +1 -1
- package/dist/scraper/session-browserbase.js +36 -5
- package/dist/scraper/session-browserbase.js.map +1 -1
- package/dist/scraper/session-steel.d.ts.map +1 -1
- package/dist/scraper/session-steel.js +16 -2
- package/dist/scraper/session-steel.js.map +1 -1
- package/dist/scraper/session-teardown.d.ts +1 -0
- package/dist/scraper/session-teardown.d.ts.map +1 -1
- package/dist/scraper/session-teardown.js +19 -8
- package/dist/scraper/session-teardown.js.map +1 -1
- package/dist/scraper/spa-readiness.d.ts +13 -1
- package/dist/scraper/spa-readiness.d.ts.map +1 -1
- package/dist/scraper/spa-readiness.js +31 -1
- package/dist/scraper/spa-readiness.js.map +1 -1
- package/dist/scraper/stagehand-guard.d.ts +18 -3
- package/dist/scraper/stagehand-guard.d.ts.map +1 -1
- package/dist/scraper/stagehand-guard.js +198 -12
- package/dist/scraper/stagehand-guard.js.map +1 -1
- package/dist/scraper/transient-provider-error.d.ts +19 -0
- package/dist/scraper/transient-provider-error.d.ts.map +1 -0
- package/dist/scraper/transient-provider-error.js +59 -0
- package/dist/scraper/transient-provider-error.js.map +1 -0
- package/dist/scraper/trusted-click.d.ts +133 -0
- package/dist/scraper/trusted-click.d.ts.map +1 -0
- package/dist/scraper/trusted-click.js +205 -0
- package/dist/scraper/trusted-click.js.map +1 -0
- package/dist/scraper/upload-affordance-expr.d.ts +33 -0
- package/dist/scraper/upload-affordance-expr.d.ts.map +1 -0
- package/dist/scraper/upload-affordance-expr.js +91 -0
- package/dist/scraper/upload-affordance-expr.js.map +1 -0
- package/dist/scripts/recon-browser.d.ts +26 -1
- package/dist/scripts/recon-browser.d.ts.map +1 -1
- package/dist/scripts/recon-browser.js +108 -21
- package/dist/scripts/recon-browser.js.map +1 -1
- package/dist/scripts/recon-capture-rebind.d.ts +11 -0
- package/dist/scripts/recon-capture-rebind.d.ts.map +1 -0
- package/dist/scripts/recon-capture-rebind.js +26 -0
- package/dist/scripts/recon-capture-rebind.js.map +1 -0
- package/dist/scripts/recon-generate.d.ts +110 -9
- package/dist/scripts/recon-generate.d.ts.map +1 -1
- package/dist/scripts/recon-generate.js +962 -183
- package/dist/scripts/recon-generate.js.map +1 -1
- package/dist/scripts/recon-shared.d.ts +8 -0
- package/dist/scripts/recon-shared.d.ts.map +1 -1
- package/dist/scripts/recon-shared.js +14 -0
- package/dist/scripts/recon-shared.js.map +1 -1
- package/dist/site-plugin.d.ts +8 -0
- package/dist/site-plugin.d.ts.map +1 -1
- package/dist/types/pii-redaction.d.ts +39 -0
- package/dist/types/pii-redaction.d.ts.map +1 -0
- package/dist/types/pii-redaction.js +3 -0
- package/dist/types/pii-redaction.js.map +1 -0
- package/package.json +14 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-steel.js","sourceRoot":"","sources":["../../src/scraper/session-steel.ts"],"names":[],"mappings":";;;;;;;AAAA,wDAA2F;AAC3F,0DAA8B;AAE9B,qCAAkC;AAClC,2CAAmD;AACnD,yCAA8C;AAC9C,2CAA0C;AAC1C,2DAA8F;AAC9F,6CAA2D;AAE3D,6DAIkC;AAClC,
|
|
1
|
+
{"version":3,"file":"session-steel.js","sourceRoot":"","sources":["../../src/scraper/session-steel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-teardown.d.ts","sourceRoot":"","sources":["../../src/scraper/session-teardown.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAY/D;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,CAAC,EAAE;IACnD,aAAa,CAAC,EAAE,MAAM;QAAE,wBAAwB,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAChG,GAAG;IACF,YAAY,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/C,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,gBAAgB,EAAE,WAAW,CAAC;CAC/B,
|
|
1
|
+
{"version":3,"file":"session-teardown.d.ts","sourceRoot":"","sources":["../../src/scraper/session-teardown.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAY/D;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,CAAC,EAAE;IACnD,aAAa,CAAC,EAAE,MAAM;QAAE,wBAAwB,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAChG,GAAG;IACF,YAAY,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/C,qBAAqB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,gBAAgB,EAAE,WAAW,CAAC;CAC/B,CAsCA;AAUD,gFAAgF;AAChF,MAAM,WAAW,6BAA6B;IAC5C,gFAAgF;IAChF,YAAY,EAAE,OAAO,CAAC;IACtB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,wBAAwB,EAAE,MAAM,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,6BAA6B,CAYhC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EACvB,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,sBAAsB,CAAC,GAAG,SAAS,EACjE,GAAG,EAAE,OAAO,GACX,OAAO,CAMT;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,wBAAwB,EAAE,MAAM,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,qBAAqB,EAAE,MAAM,MAAM,CAAC;CACrC,GAAG,MAAM;IAAE,wBAAwB,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAgBjF"}
|
|
@@ -34,22 +34,33 @@ function createSessionTeardownDetector(opts) {
|
|
|
34
34
|
deathSignal.catch(() => undefined);
|
|
35
35
|
const abortController = new AbortController();
|
|
36
36
|
let fired = false;
|
|
37
|
-
const
|
|
37
|
+
const fire = (detail, earlyMessage) => {
|
|
38
38
|
if (fired)
|
|
39
39
|
return;
|
|
40
|
-
if (line.level !== TEARDOWN_ERROR_LEVEL)
|
|
41
|
-
return;
|
|
42
|
-
if (!line.message.includes(TEARDOWN_MESSAGE_SUBSTRING))
|
|
43
|
-
return;
|
|
44
40
|
fired = true;
|
|
45
41
|
const hit = opts?.classifyDeath?.();
|
|
46
42
|
const err = hit
|
|
47
|
-
? new errors_1.SessionLifetimeExceededError(`scraper session reached its configured lifetime (${hit.elapsedSeconds.toFixed(1)}s elapsed of ${hit.configuredTimeoutSeconds}s): ${
|
|
48
|
-
: new errors_1.CdpTransportClosedError(
|
|
43
|
+
? new errors_1.SessionLifetimeExceededError(`scraper session reached its configured lifetime (${hit.elapsedSeconds.toFixed(1)}s elapsed of ${hit.configuredTimeoutSeconds}s): ${detail}`)
|
|
44
|
+
: new errors_1.CdpTransportClosedError(earlyMessage);
|
|
49
45
|
signalDeath?.(err);
|
|
50
46
|
abortController.abort(err);
|
|
51
47
|
};
|
|
52
|
-
|
|
48
|
+
const watchLogLine = (line) => {
|
|
49
|
+
if (fired)
|
|
50
|
+
return;
|
|
51
|
+
if (line.level !== TEARDOWN_ERROR_LEVEL)
|
|
52
|
+
return;
|
|
53
|
+
if (!line.message.includes(TEARDOWN_MESSAGE_SUBSTRING))
|
|
54
|
+
return;
|
|
55
|
+
fire(line.message, `stagehand-initiated teardown mid-flow: ${line.message}`);
|
|
56
|
+
};
|
|
57
|
+
const signalTransportClosed = (why) => fire(why, `scraper session's CDP transport was closed by the SDK: ${why}`);
|
|
58
|
+
return {
|
|
59
|
+
watchLogLine,
|
|
60
|
+
signalTransportClosed,
|
|
61
|
+
deathSignal,
|
|
62
|
+
deathAbortSignal: abortController.signal,
|
|
63
|
+
};
|
|
53
64
|
}
|
|
54
65
|
/**
|
|
55
66
|
* Browserbase overshoots its own configured session timeout by 1-14s in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-teardown.js","sourceRoot":"","sources":["../../src/scraper/session-teardown.ts"],"names":[],"mappings":";;;;;;;AAAA,6CAAyF;AAIzF;;;;;;GAMG;AACH,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AAC1D,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B;;;;;;;;GAQG;AACH,uCAA8C,IAE7C;
|
|
1
|
+
{"version":3,"file":"session-teardown.js","sourceRoot":"","sources":["../../src/scraper/session-teardown.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { Page } from "@browserbasehq/stagehand";
|
|
|
2
2
|
import type { Logger } from "../types/logging";
|
|
3
3
|
/**
|
|
4
4
|
* Block until a just-navigated SPA has actually hydrated, so the flow does not
|
|
5
|
-
* begin stepping against a shell page. `page.goto(..., "
|
|
5
|
+
* begin stepping against a shell page. `page.goto(..., "domcontentloaded")` on a
|
|
6
6
|
* bot-managed/CDN-fronted single-page app resolves during the challenge/redirect —
|
|
7
7
|
* before the client framework renders the real DOM — so the first steps would
|
|
8
8
|
* otherwise probe an empty page, find no candidates, and (being optional) skip
|
|
@@ -25,4 +25,16 @@ export declare function waitForSpaReady(page: Page, logger: Logger, opts?: {
|
|
|
25
25
|
pollMs?: number;
|
|
26
26
|
minBodyLength?: number;
|
|
27
27
|
}): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Re-gate SPA hydration after a mid-flow origin change, with one reload of recovery.
|
|
30
|
+
* `waitForSpaReady` proceeds silently on a shell page; a cross-origin hop that landed
|
|
31
|
+
* on an empty shell (e.g. a redirect from app.example.com to login.example.net whose
|
|
32
|
+
* client bundle never booted) would otherwise let every later step probe nothing.
|
|
33
|
+
* Reloads at most once and never throws.
|
|
34
|
+
*/
|
|
35
|
+
export declare function regateSpaAfterOriginChange(page: Page, logger: Logger, opts?: {
|
|
36
|
+
timeoutMs?: number;
|
|
37
|
+
pollMs?: number;
|
|
38
|
+
minBodyLength?: number;
|
|
39
|
+
}): Promise<void>;
|
|
28
40
|
//# sourceMappingURL=spa-readiness.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spa-readiness.d.ts","sourceRoot":"","sources":["../../src/scraper/spa-readiness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAGrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAO9C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,GACzE,OAAO,CAAC,IAAI,CAAC,CAkCf"}
|
|
1
|
+
{"version":3,"file":"spa-readiness.d.ts","sourceRoot":"","sources":["../../src/scraper/spa-readiness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAGrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAO9C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,GACzE,OAAO,CAAC,IAAI,CAAC,CAkCf;AAKD;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAO,GACzE,OAAO,CAAC,IAAI,CAAC,CAkBf"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.waitForSpaReady = waitForSpaReady;
|
|
4
|
+
exports.regateSpaAfterOriginChange = regateSpaAfterOriginChange;
|
|
4
5
|
const watchdog_1 = require("./watchdog");
|
|
5
6
|
/** SPA-readiness gate defaults — match the recon CLI's post-navigation wait. */
|
|
6
7
|
const SPA_READINESS_TIMEOUT_MS = 15_000;
|
|
@@ -8,7 +9,7 @@ const SPA_READINESS_POLL_MS = 500;
|
|
|
8
9
|
const SPA_MIN_BODY_LENGTH = 5_000;
|
|
9
10
|
/**
|
|
10
11
|
* Block until a just-navigated SPA has actually hydrated, so the flow does not
|
|
11
|
-
* begin stepping against a shell page. `page.goto(..., "
|
|
12
|
+
* begin stepping against a shell page. `page.goto(..., "domcontentloaded")` on a
|
|
12
13
|
* bot-managed/CDN-fronted single-page app resolves during the challenge/redirect —
|
|
13
14
|
* before the client framework renders the real DOM — so the first steps would
|
|
14
15
|
* otherwise probe an empty page, find no candidates, and (being optional) skip
|
|
@@ -54,4 +55,33 @@ async function waitForSpaReady(page, logger, opts = {}) {
|
|
|
54
55
|
}
|
|
55
56
|
logger.warn(`spa readiness: body still ${bodyLength} chars after ${timeoutMs}ms — proceeding with possibly incomplete page`);
|
|
56
57
|
}
|
|
58
|
+
/** Below this body length after the readiness wait, the page is treated as an empty shell. */
|
|
59
|
+
const SPA_EMPTY_SHELL_BODY_LENGTH = 1_000;
|
|
60
|
+
/**
|
|
61
|
+
* Re-gate SPA hydration after a mid-flow origin change, with one reload of recovery.
|
|
62
|
+
* `waitForSpaReady` proceeds silently on a shell page; a cross-origin hop that landed
|
|
63
|
+
* on an empty shell (e.g. a redirect from app.example.com to login.example.net whose
|
|
64
|
+
* client bundle never booted) would otherwise let every later step probe nothing.
|
|
65
|
+
* Reloads at most once and never throws.
|
|
66
|
+
*/
|
|
67
|
+
async function regateSpaAfterOriginChange(page, logger, opts = {}) {
|
|
68
|
+
await waitForSpaReady(page, logger, opts);
|
|
69
|
+
const bodyLength = await readBodyLengthOnce(page, opts.pollMs ?? SPA_READINESS_POLL_MS);
|
|
70
|
+
if (bodyLength >= SPA_EMPTY_SHELL_BODY_LENGTH) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
logger.warn(`spa readiness: body ${bodyLength} chars < ${SPA_EMPTY_SHELL_BODY_LENGTH} after origin change — reloading once`);
|
|
74
|
+
try {
|
|
75
|
+
await page.reload({ waitUntil: "domcontentloaded" });
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
logger.warn(`spa readiness: reload failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
await waitForSpaReady(page, logger, opts);
|
|
82
|
+
}
|
|
83
|
+
async function readBodyLengthOnce(page, timeoutMs) {
|
|
84
|
+
const raw = await (0, watchdog_1.withWatchdog)(() => page.evaluate("document.body ? document.body.outerHTML.length : 0"), { timeoutMs, label: "flow-runner: spa origin re-gate body-length probe" }).catch(() => 0);
|
|
85
|
+
return typeof raw === "number" ? raw : 0;
|
|
86
|
+
}
|
|
57
87
|
//# sourceMappingURL=spa-readiness.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spa-readiness.js","sourceRoot":"","sources":["../../src/scraper/spa-readiness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spa-readiness.js","sourceRoot":"","sources":["../../src/scraper/spa-readiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,18 @@ import { type FrameTarget } from "./frame-target";
|
|
|
48
48
|
* lands in `.barnacle/calls.ndjson` instead of the per-URL run partition.
|
|
49
49
|
*/
|
|
50
50
|
export type StagehandCaptureFn = (input: LlmCallInput) => Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Whether an act instruction may resolve to a pointer click. Any phrasing that
|
|
53
|
+
* is not plainly text entry counts ("Answer No", "Continue", "Save and
|
|
54
|
+
* proceed" name no click verb yet click a button), so the click point is
|
|
55
|
+
* cleared before Stagehand delivers it.
|
|
56
|
+
*/
|
|
57
|
+
export declare function hasClickIntent(instruction: string): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Whether a Stagehand method is delivered as a trusted CDP mouse press on the
|
|
60
|
+
* target's centre, and so needs its click point cleared first.
|
|
61
|
+
*/
|
|
62
|
+
export declare function isTrustedClickMethod(method: string | undefined): boolean;
|
|
51
63
|
/**
|
|
52
64
|
* Zod parallel of Stagehand's public `Action` shape (from
|
|
53
65
|
* `@browserbasehq/stagehand/.../public/methods.d.ts`):
|
|
@@ -116,8 +128,11 @@ export declare class StagehandSchemaError extends Error {
|
|
|
116
128
|
* receives the same `timeout` as before, but a call that ignores it and hangs
|
|
117
129
|
* now fails the attempt instead of blocking the step forever.
|
|
118
130
|
*
|
|
119
|
-
*
|
|
120
|
-
* `
|
|
131
|
+
* Click targets are centred and hit-tested before Stagehand acts (see
|
|
132
|
+
* `preCentreClickTarget`); a given `frameTarget` scopes that pass, and
|
|
133
|
+
* `preCentred` skips it when the caller already resolved and centred the
|
|
134
|
+
* target, so one click does not cost two observe calls. The
|
|
135
|
+
* trailing `frameTarget` param is not forwarded into
|
|
121
136
|
* `ActOptions` — `ActOptions` has no `selector` field, and its `page`
|
|
122
137
|
* override only accepts a full Playwright/Puppeteer/Patchright/understudy
|
|
123
138
|
* `Page`, not the `Frame` handle `FrameTarget.frame` exposes (the
|
|
@@ -128,7 +143,7 @@ export declare class StagehandSchemaError extends Error {
|
|
|
128
143
|
* that `Action` — the `observe(...)[0] -> act(target)` pattern already used
|
|
129
144
|
* throughout `flow-runner.ts`.
|
|
130
145
|
*/
|
|
131
|
-
export declare function guardedAct(stagehand: Stagehand, input: string | Action, options?: ActOptions, captureFn?: StagehandCaptureFn,
|
|
146
|
+
export declare function guardedAct(stagehand: Stagehand, input: string | Action, options?: ActOptions, captureFn?: StagehandCaptureFn, frameTarget?: FrameTarget, preCentred?: boolean): Promise<ActResult>;
|
|
132
147
|
/**
|
|
133
148
|
* Schema-guarded wrapper around Stagehand's `observe`. Parallels the
|
|
134
149
|
* Stagehand overloads: no args, options-only, instruction-only,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stagehand-guard.d.ts","sourceRoot":"","sources":["../../src/scraper/stagehand-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,SAAS,
|
|
1
|
+
{"version":3,"file":"stagehand-guard.d.ts","sourceRoot":"","sources":["../../src/scraper/stagehand-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,SAAS,EAEV,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAO3B,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,8BAA8B,CAAC;AAMtC,OAAO,EAEL,KAAK,WAAW,EAGjB,MAAM,wBAAwB,CAAC;AAMhC;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAwBxE;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAE3D;AAID;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAExE;AAuBD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa;;;;;iBAKxB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;iBAM5B,CAAC;AAEH;;;;;;GAMG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAG,0BAA0B,CAAU;IACpD,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B,YACE,SAAS,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,EACxC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EACpB,WAAW,EAAE,OAAO,EAOrB;CACF;AAsKD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,UAAU,CAC9B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,OAAO,CAAC,EAAE,UAAU,EACpB,SAAS,CAAC,EAAE,kBAAkB,EAC9B,WAAW,CAAC,EAAE,WAAW,EACzB,UAAU,UAAQ,GACjB,OAAO,CAAC,SAAS,CAAC,CAkFpB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,SAAS,EACpB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,cAAc,EACxB,SAAS,CAAC,EAAE,kBAAkB,EAC9B,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,MAAM,EAAE,CAAC,CA4FnB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACzD,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,CAAC,EACT,OAAO,CAAC,EAAE,cAAc,EACxB,SAAS,CAAC,EAAE,kBAAkB,EAC9B,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CA4ErB"}
|
|
@@ -37,16 +37,25 @@
|
|
|
37
37
|
* `node_modules/@browserbasehq/stagehand/dist/esm/lib/v3/zodCompat.d.ts`).
|
|
38
38
|
* Barnacle uses Zod v4 via the `zod/v4` subpath export; that's compatible.
|
|
39
39
|
*/
|
|
40
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
41
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
42
|
+
};
|
|
40
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
44
|
exports.StagehandSchemaError = exports.ACT_RESULT_SCHEMA = exports.ACTION_SCHEMA = void 0;
|
|
45
|
+
exports.hasClickIntent = hasClickIntent;
|
|
46
|
+
exports.isTrustedClickMethod = isTrustedClickMethod;
|
|
42
47
|
exports.guardedAct = guardedAct;
|
|
43
48
|
exports.guardedObserve = guardedObserve;
|
|
44
49
|
exports.guardedExtract = guardedExtract;
|
|
45
50
|
const node_crypto_1 = require("node:crypto");
|
|
51
|
+
const p_retry_1 = __importDefault(require("p-retry"));
|
|
46
52
|
const v4_1 = require("zod/v4");
|
|
53
|
+
const pii_redaction_1 = require("../lib/pii-redaction");
|
|
47
54
|
const call_capture_1 = require("../lib/telemetry/call-capture");
|
|
48
55
|
const call_types_1 = require("../lib/telemetry/call-types");
|
|
49
56
|
const frame_target_1 = require("./frame-target");
|
|
57
|
+
const transient_provider_error_1 = require("./transient-provider-error");
|
|
58
|
+
const trusted_click_1 = require("./trusted-click");
|
|
50
59
|
const watchdog_1 = require("./watchdog");
|
|
51
60
|
/**
|
|
52
61
|
* Fallback watchdog bound for a guarded call whose caller passes no
|
|
@@ -55,6 +64,52 @@ const watchdog_1 = require("./watchdog");
|
|
|
55
64
|
* `guardedObserve` from this module, so importing back would cycle.
|
|
56
65
|
*/
|
|
57
66
|
const DEFAULT_GUARD_TIMEOUT_MS = 120_000;
|
|
67
|
+
/**
|
|
68
|
+
* Instructions that name a click-like verb ("Select No", "Open the dropdown",
|
|
69
|
+
* "Click Next").
|
|
70
|
+
*/
|
|
71
|
+
const CLICK_VERB_RE = /\b(?:click|tap|press|select|choose|pick|open|toggle|check|uncheck|expand|submit)\b/i;
|
|
72
|
+
/**
|
|
73
|
+
* Instructions that lead with text entry, upload or page motion; these never
|
|
74
|
+
* resolve to a pointer click, so an observe for a click point is wasted.
|
|
75
|
+
*/
|
|
76
|
+
const NON_CLICK_LEAD_RE = /^\W*(?:fill|type|enter|input|write|paste|upload|attach|scroll|wait|sleep|pause|navigate|go\s+to)\b/i;
|
|
77
|
+
/**
|
|
78
|
+
* Whether an act instruction may resolve to a pointer click. Any phrasing that
|
|
79
|
+
* is not plainly text entry counts ("Answer No", "Continue", "Save and
|
|
80
|
+
* proceed" name no click verb yet click a button), so the click point is
|
|
81
|
+
* cleared before Stagehand delivers it.
|
|
82
|
+
*/
|
|
83
|
+
function hasClickIntent(instruction) {
|
|
84
|
+
return CLICK_VERB_RE.test(instruction) || !NON_CLICK_LEAD_RE.test(instruction);
|
|
85
|
+
}
|
|
86
|
+
const TRUSTED_CLICK_METHODS = new Set(["click", "doubleClick"]);
|
|
87
|
+
/**
|
|
88
|
+
* Whether a Stagehand method is delivered as a trusted CDP mouse press on the
|
|
89
|
+
* target's centre, and so needs its click point cleared first.
|
|
90
|
+
*/
|
|
91
|
+
function isTrustedClickMethod(method) {
|
|
92
|
+
return method !== undefined && TRUSTED_CLICK_METHODS.has(method);
|
|
93
|
+
}
|
|
94
|
+
const TRANSIENT_RETRIES = 2;
|
|
95
|
+
const TRANSIENT_RETRY_MIN_TIMEOUT_MS = 500;
|
|
96
|
+
/**
|
|
97
|
+
* Retries a Stagehand call that failed with a transient provider error so a
|
|
98
|
+
* blip is not recorded as a failed technique. Wrap it OUTSIDE `withWatchdog`:
|
|
99
|
+
* each try gets its own watchdog timeout and the backoff is not charged to it.
|
|
100
|
+
* Safe for `act` because the provider 5xx is raised during Stagehand's
|
|
101
|
+
* inference request, before it performs any page action; the narrow
|
|
102
|
+
* classifier never matches selector, timeout, or schema errors raised after
|
|
103
|
+
* one.
|
|
104
|
+
*/
|
|
105
|
+
function retryTransient(call) {
|
|
106
|
+
return (0, p_retry_1.default)(call, {
|
|
107
|
+
retries: TRANSIENT_RETRIES,
|
|
108
|
+
minTimeout: TRANSIENT_RETRY_MIN_TIMEOUT_MS,
|
|
109
|
+
randomize: false,
|
|
110
|
+
shouldRetry: ({ error }) => (0, transient_provider_error_1.isTransientProviderError)(error),
|
|
111
|
+
});
|
|
112
|
+
}
|
|
58
113
|
/**
|
|
59
114
|
* Zod parallel of Stagehand's public `Action` shape (from
|
|
60
115
|
* `@browserbasehq/stagehand/.../public/methods.d.ts`):
|
|
@@ -127,6 +182,41 @@ function safeStringify(value, cap = 4000) {
|
|
|
127
182
|
function actInstructionOf(input) {
|
|
128
183
|
return typeof input === "string" ? input : input.description;
|
|
129
184
|
}
|
|
185
|
+
function mergeVariables(options, variables) {
|
|
186
|
+
if (Object.keys(variables).length === 0)
|
|
187
|
+
return options;
|
|
188
|
+
return { ...options, variables: { ...options?.variables, ...variables } };
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Observe only needs the token names for its prompt (it never performs the
|
|
192
|
+
* action, so never substitutes): withhold the values so they are not shipped
|
|
193
|
+
* to the Stagehand API either. Plain strings, not the `{ value, description }`
|
|
194
|
+
* form, so the call stays inside the wire shape already proven against the API.
|
|
195
|
+
*/
|
|
196
|
+
function withheldVariables(variables) {
|
|
197
|
+
return Object.fromEntries(Object.keys(variables).map((name) => [name, ""]));
|
|
198
|
+
}
|
|
199
|
+
function detokenizeAction(action, variables) {
|
|
200
|
+
if (Object.keys(variables).length === 0)
|
|
201
|
+
return action;
|
|
202
|
+
return {
|
|
203
|
+
...action,
|
|
204
|
+
description: (0, pii_redaction_1.detokenize)(action.description, variables),
|
|
205
|
+
...(action.arguments
|
|
206
|
+
? { arguments: action.arguments.map((arg) => (0, pii_redaction_1.detokenize)(arg, variables)) }
|
|
207
|
+
: {}),
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
function detokenizeActResult(result, variables) {
|
|
211
|
+
if (Object.keys(variables).length === 0)
|
|
212
|
+
return result;
|
|
213
|
+
return {
|
|
214
|
+
...result,
|
|
215
|
+
message: (0, pii_redaction_1.detokenize)(result.message, variables),
|
|
216
|
+
actionDescription: (0, pii_redaction_1.detokenize)(result.actionDescription, variables),
|
|
217
|
+
actions: result.actions.map((action) => detokenizeAction(action, variables)),
|
|
218
|
+
};
|
|
219
|
+
}
|
|
130
220
|
/**
|
|
131
221
|
* Merges `frameTarget.frameSelector` into `options.selector` for
|
|
132
222
|
* `ObserveOptions`/`ExtractOptions`, composed as Stagehand `">>"` hop
|
|
@@ -144,6 +234,73 @@ function frameScopedOptions(options, frameTarget) {
|
|
|
144
234
|
return options;
|
|
145
235
|
return { ...options, selector: (0, frame_target_1.buildHopSelector)(frameTarget.frameSelector, "*") };
|
|
146
236
|
}
|
|
237
|
+
/**
|
|
238
|
+
* Resolves a string act instruction to the Action Stagehand would click so it
|
|
239
|
+
* can be centred first. Scoped to the step's frame the same way
|
|
240
|
+
* `guardedObserve` is, so an in-frame control is not resolved against the top
|
|
241
|
+
* document. When `observe` is unavailable or finds nothing, Stagehand's own
|
|
242
|
+
* string `act` resolves internally exactly as before; an `observe` error
|
|
243
|
+
* propagates.
|
|
244
|
+
*/
|
|
245
|
+
async function resolveClickAction(stagehand, instruction, options, frameTarget) {
|
|
246
|
+
if (typeof stagehand.observe !== "function" || !hasClickIntent(instruction)) {
|
|
247
|
+
return undefined;
|
|
248
|
+
}
|
|
249
|
+
const observeOptions = frameScopedOptions(options?.timeout ? { timeout: options.timeout } : {}, frameTarget);
|
|
250
|
+
const observed = await (0, watchdog_1.withWatchdog)(() => stagehand.observe(instruction, observeOptions), {
|
|
251
|
+
timeoutMs: options?.timeout ?? DEFAULT_GUARD_TIMEOUT_MS,
|
|
252
|
+
label: "stagehand-observe",
|
|
253
|
+
});
|
|
254
|
+
return observed[0];
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Stagehand's `act` clicks the content-box centre after only a
|
|
258
|
+
* `scrollIntoViewIfNeeded`, so a sticky overlay swallows the click. Centre +
|
|
259
|
+
* hit-test the click target first so Stagehand's own scroll is a no-op. String
|
|
260
|
+
* instructions are resolved via `observe` for the pre-centring only and still
|
|
261
|
+
* reach `act` as the original string, so downstream method/argument handling
|
|
262
|
+
* is unchanged. Frame-hop (`>>`) selectors are centred in the child frame they
|
|
263
|
+
* resolve to. Strict by design: a click target that stays occluded or
|
|
264
|
+
* cannot be resolved throws and fails the attempt, so Stagehand never clicks an
|
|
265
|
+
* uncentred point that a sticky overlay may cover. Non-click actions and
|
|
266
|
+
* instructions that observe to no action are skipped since there is no click
|
|
267
|
+
* point to clear.
|
|
268
|
+
*/
|
|
269
|
+
async function preCentreClickTarget(stagehand, input, options, frameTarget) {
|
|
270
|
+
const page = typeof stagehand.context?.activePage === "function"
|
|
271
|
+
? stagehand.context.activePage()
|
|
272
|
+
: undefined;
|
|
273
|
+
const target = frameTarget ?? (page ? (0, frame_target_1.mainFrameTarget)(page) : undefined);
|
|
274
|
+
if (!target)
|
|
275
|
+
return;
|
|
276
|
+
const action = typeof input === "string"
|
|
277
|
+
? await resolveClickAction(stagehand, input, options, frameTarget)
|
|
278
|
+
: input;
|
|
279
|
+
if (!isTrustedClickMethod(action?.method))
|
|
280
|
+
return;
|
|
281
|
+
await centreAction(page, target, action);
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Centres and hit-tests an Action's click target, resolving a `>>` frame hop
|
|
285
|
+
* to the child frame the tail selector lives in.
|
|
286
|
+
*/
|
|
287
|
+
async function centreAction(page, target, action) {
|
|
288
|
+
const hopAt = action.selector.lastIndexOf(">>");
|
|
289
|
+
if (hopAt === -1) {
|
|
290
|
+
await (0, trusted_click_1.centreSelectorForClick)(target, action.selector, { label: action.selector });
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
if (!page) {
|
|
294
|
+
throw new Error(`no active page to resolve frame hop for ${action.selector}`);
|
|
295
|
+
}
|
|
296
|
+
const hopTarget = await (0, frame_target_1.resolveFrameTarget)(page, action.selector.slice(0, hopAt).trim());
|
|
297
|
+
if (hopTarget.declaredFrameSelector) {
|
|
298
|
+
throw new Error(`frame ${hopTarget.declaredFrameSelector} not attached; cannot centre click`);
|
|
299
|
+
}
|
|
300
|
+
await (0, trusted_click_1.centreSelectorForClick)(hopTarget, action.selector.slice(hopAt + 2).trim(), {
|
|
301
|
+
label: action.selector,
|
|
302
|
+
});
|
|
303
|
+
}
|
|
147
304
|
/**
|
|
148
305
|
* Schema-guarded wrapper around Stagehand's `act`. Same signature as the
|
|
149
306
|
* underlying call: accepts either an instruction string or a structured
|
|
@@ -156,8 +313,11 @@ function frameScopedOptions(options, frameTarget) {
|
|
|
156
313
|
* receives the same `timeout` as before, but a call that ignores it and hangs
|
|
157
314
|
* now fails the attempt instead of blocking the step forever.
|
|
158
315
|
*
|
|
159
|
-
*
|
|
160
|
-
* `
|
|
316
|
+
* Click targets are centred and hit-tested before Stagehand acts (see
|
|
317
|
+
* `preCentreClickTarget`); a given `frameTarget` scopes that pass, and
|
|
318
|
+
* `preCentred` skips it when the caller already resolved and centred the
|
|
319
|
+
* target, so one click does not cost two observe calls. The
|
|
320
|
+
* trailing `frameTarget` param is not forwarded into
|
|
161
321
|
* `ActOptions` — `ActOptions` has no `selector` field, and its `page`
|
|
162
322
|
* override only accepts a full Playwright/Puppeteer/Patchright/understudy
|
|
163
323
|
* `Page`, not the `Frame` handle `FrameTarget.frame` exposes (the
|
|
@@ -168,11 +328,19 @@ function frameScopedOptions(options, frameTarget) {
|
|
|
168
328
|
* that `Action` — the `observe(...)[0] -> act(target)` pattern already used
|
|
169
329
|
* throughout `flow-runner.ts`.
|
|
170
330
|
*/
|
|
171
|
-
async function guardedAct(stagehand, input, options, captureFn,
|
|
331
|
+
async function guardedAct(stagehand, input, options, captureFn, frameTarget, preCentred = false) {
|
|
172
332
|
const callId = (0, node_crypto_1.randomUUID)();
|
|
173
|
-
|
|
333
|
+
// Request values travel as Stagehand `variables`, substituted only when
|
|
334
|
+
// the action is performed. An `Action` (from observe) is replayed without
|
|
335
|
+
// an LLM, so it keeps its literal arguments.
|
|
336
|
+
const tokenized = typeof input === "string" ? (0, pii_redaction_1.tokenizeSensitiveValues)(input) : { text: "", variables: {} };
|
|
337
|
+
const sendInput = typeof input === "string" ? tokenized.text : input;
|
|
338
|
+
const sendOptions = mergeVariables(options, tokenized.variables);
|
|
339
|
+
const userContent = actInstructionOf(sendInput);
|
|
174
340
|
const t0 = performance.now();
|
|
175
341
|
try {
|
|
342
|
+
if (!preCentred)
|
|
343
|
+
await preCentreClickTarget(stagehand, sendInput, sendOptions, frameTarget);
|
|
176
344
|
// Stagehand's `act` has two overloads (string and Action) that share the
|
|
177
345
|
// same runtime implementation (dispatch is via `isObserveResult` inside
|
|
178
346
|
// Stagehand). The two branches LOOK identical but TS can't resolve the
|
|
@@ -180,7 +348,9 @@ async function guardedAct(stagehand, input, options, captureFn, _frameTarget) {
|
|
|
180
348
|
// `stagehand.act` to a variable then calling it as a standalone function
|
|
181
349
|
// loses `this` in strict mode, which crashes inside Stagehand's
|
|
182
350
|
// `withInstanceLogContext(this.instanceId, ...)` wrapper on entry.
|
|
183
|
-
const raw = await (0, watchdog_1.withWatchdog)(() => typeof
|
|
351
|
+
const raw = await retryTransient(() => (0, watchdog_1.withWatchdog)(() => typeof sendInput === "string"
|
|
352
|
+
? stagehand.act(sendInput, sendOptions)
|
|
353
|
+
: stagehand.act(sendInput, sendOptions), { timeoutMs: options?.timeout ?? DEFAULT_GUARD_TIMEOUT_MS, label: "stagehand-act" }));
|
|
184
354
|
const latencyMs = performance.now() - t0;
|
|
185
355
|
const parsed = exports.ACT_RESULT_SCHEMA.safeParse(raw);
|
|
186
356
|
if (!parsed.success) {
|
|
@@ -208,7 +378,7 @@ async function guardedAct(stagehand, input, options, captureFn, _frameTarget) {
|
|
|
208
378
|
errorMessage: null,
|
|
209
379
|
failureKind: null,
|
|
210
380
|
}, captureFn);
|
|
211
|
-
return parsed.data;
|
|
381
|
+
return detokenizeActResult(parsed.data, tokenized.variables);
|
|
212
382
|
}
|
|
213
383
|
catch (err) {
|
|
214
384
|
if (err instanceof StagehandSchemaError)
|
|
@@ -250,17 +420,22 @@ async function guardedAct(stagehand, input, options, captureFn, _frameTarget) {
|
|
|
250
420
|
*/
|
|
251
421
|
async function guardedObserve(stagehand, instruction, options, captureFn, frameTarget) {
|
|
252
422
|
const callId = (0, node_crypto_1.randomUUID)();
|
|
253
|
-
const
|
|
423
|
+
const tokenized = instruction === undefined ? { text: "", variables: {} } : (0, pii_redaction_1.tokenizeSensitiveValues)(instruction);
|
|
424
|
+
const sendInstruction = instruction === undefined ? undefined : tokenized.text;
|
|
425
|
+
const userContent = sendInstruction ?? "";
|
|
254
426
|
const t0 = performance.now();
|
|
255
|
-
const scopedOptions = frameScopedOptions(options, frameTarget);
|
|
427
|
+
const scopedOptions = mergeVariables(frameScopedOptions(options, frameTarget), withheldVariables(tokenized.variables));
|
|
256
428
|
try {
|
|
257
429
|
// Match Stagehand's overloads: pass instruction only when defined, so
|
|
258
430
|
// the SDK falls through to its no-arg/options-only path otherwise.
|
|
259
|
-
const raw = await (0, watchdog_1.withWatchdog)(() =>
|
|
431
|
+
const raw = await retryTransient(() => (0, watchdog_1.withWatchdog)(() => sendInstruction === undefined
|
|
260
432
|
? scopedOptions === undefined
|
|
261
433
|
? stagehand.observe()
|
|
262
434
|
: stagehand.observe(scopedOptions)
|
|
263
|
-
: stagehand.observe(
|
|
435
|
+
: stagehand.observe(sendInstruction, scopedOptions), {
|
|
436
|
+
timeoutMs: scopedOptions?.timeout ?? DEFAULT_GUARD_TIMEOUT_MS,
|
|
437
|
+
label: "stagehand-observe",
|
|
438
|
+
}));
|
|
264
439
|
const latencyMs = performance.now() - t0;
|
|
265
440
|
const parsed = v4_1.z.array(exports.ACTION_SCHEMA).safeParse(raw);
|
|
266
441
|
if (!parsed.success) {
|
|
@@ -288,7 +463,13 @@ async function guardedObserve(stagehand, instruction, options, captureFn, frameT
|
|
|
288
463
|
errorMessage: null,
|
|
289
464
|
failureKind: null,
|
|
290
465
|
}, captureFn);
|
|
291
|
-
|
|
466
|
+
// Callers replay these actions directly (no substitution on that path),
|
|
467
|
+
// so tokens are resolved here; an action carrying a token the LLM
|
|
468
|
+
// invented would type it verbatim and is dropped.
|
|
469
|
+
return parsed.data
|
|
470
|
+
.map((action) => detokenizeAction(action, tokenized.variables))
|
|
471
|
+
.filter((action) => Object.keys(tokenized.variables).length === 0 ||
|
|
472
|
+
(action.arguments ?? []).every((arg) => (0, pii_redaction_1.unresolvedTokens)(arg, tokenized.variables).length === 0));
|
|
292
473
|
}
|
|
293
474
|
catch (err) {
|
|
294
475
|
if (err instanceof StagehandSchemaError)
|
|
@@ -336,7 +517,7 @@ async function guardedExtract(stagehand, instruction, schema, options, captureFn
|
|
|
336
517
|
// the cleanest public-API way to express "whatever overload-2 expects."
|
|
337
518
|
// The `as unknown` step is needed because TS won't accept a single
|
|
338
519
|
// direct cast across the entire overload set.
|
|
339
|
-
const raw = await (0, watchdog_1.withWatchdog)(() => stagehand.extract(instruction, schema, frameScopedOptions(options, frameTarget)), { timeoutMs: options?.timeout ?? DEFAULT_GUARD_TIMEOUT_MS, label: "stagehand-extract" });
|
|
520
|
+
const raw = await retryTransient(() => (0, watchdog_1.withWatchdog)(() => stagehand.extract(instruction, schema, frameScopedOptions(options, frameTarget)), { timeoutMs: options?.timeout ?? DEFAULT_GUARD_TIMEOUT_MS, label: "stagehand-extract" }));
|
|
340
521
|
const latencyMs = performance.now() - t0;
|
|
341
522
|
const parsed = schema.safeParse(raw);
|
|
342
523
|
if (!parsed.success) {
|
|
@@ -392,8 +573,13 @@ async function guardedExtract(stagehand, instruction, schema, options, captureFn
|
|
|
392
573
|
* `LlmCallInput` contract (which already supports null for those fields).
|
|
393
574
|
*/
|
|
394
575
|
async function captureCall(partial, captureFn = call_capture_1.captureLlmCall) {
|
|
576
|
+
// Replayed observe `Action`s keep literal arguments, so scrub here rather
|
|
577
|
+
// than relying on every caller-supplied sink to do it.
|
|
395
578
|
await captureFn({
|
|
396
579
|
...partial,
|
|
580
|
+
userContent: (0, pii_redaction_1.redactPii)(partial.userContent),
|
|
581
|
+
responseContent: partial.responseContent === null ? null : (0, pii_redaction_1.redactPii)(partial.responseContent),
|
|
582
|
+
errorMessage: partial.errorMessage === null ? null : (0, pii_redaction_1.redactPii)(partial.errorMessage),
|
|
397
583
|
model: "stagehand-internal",
|
|
398
584
|
systemPrompt: null,
|
|
399
585
|
inputTokens: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stagehand-guard.js","sourceRoot":"","sources":["../../src/scraper/stagehand-guard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stagehand-guard.js","sourceRoot":"","sources":["../../src/scraper/stagehand-guard.ts"],"names":[],"mappings":"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"}
|