@enricai/barnacle 1.12.79 → 1.12.80
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 +19 -0
- package/dist/scraper/click-settle.d.ts.map +1 -0
- package/dist/scraper/click-settle.js +65 -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 +321 -6
- package/dist/scraper/flow-runner.d.ts.map +1 -1
- package/dist/scraper/flow-runner.js +2087 -341
- 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 +8 -3
- package/dist/scraper/stagehand-guard.d.ts.map +1 -1
- package/dist/scraper/stagehand-guard.js +181 -13
- 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 +122 -0
- package/dist/scraper/trusted-click.d.ts.map +1 -0
- package/dist/scraper/trusted-click.js +201 -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 +112 -9
- package/dist/scripts/recon-generate.d.ts.map +1 -1
- package/dist/scripts/recon-generate.js +889 -181
- package/dist/scripts/recon-generate.js.map +1 -1
- package/dist/scripts/recon-shared.d.ts +7 -0
- package/dist/scripts/recon-shared.d.ts.map +1 -1
- package/dist/scripts/recon-shared.js +19 -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,8 @@ 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
|
+
/** Instructions that name a click; only these are worth an observe to find a click point. */
|
|
52
|
+
export declare const CLICK_INTENT_RE: RegExp;
|
|
51
53
|
/**
|
|
52
54
|
* Zod parallel of Stagehand's public `Action` shape (from
|
|
53
55
|
* `@browserbasehq/stagehand/.../public/methods.d.ts`):
|
|
@@ -116,8 +118,11 @@ export declare class StagehandSchemaError extends Error {
|
|
|
116
118
|
* receives the same `timeout` as before, but a call that ignores it and hangs
|
|
117
119
|
* now fails the attempt instead of blocking the step forever.
|
|
118
120
|
*
|
|
119
|
-
*
|
|
120
|
-
* `
|
|
121
|
+
* Click targets are centred and hit-tested before Stagehand acts (see
|
|
122
|
+
* `preCentreClickTarget`); a given `frameTarget` scopes that pass, and
|
|
123
|
+
* `preCentred` skips it when the caller already resolved and centred the
|
|
124
|
+
* target, so one click does not cost two observe calls. The
|
|
125
|
+
* trailing `frameTarget` param is not forwarded into
|
|
121
126
|
* `ActOptions` — `ActOptions` has no `selector` field, and its `page`
|
|
122
127
|
* override only accepts a full Playwright/Puppeteer/Patchright/understudy
|
|
123
128
|
* `Page`, not the `Frame` handle `FrameTarget.frame` exposes (the
|
|
@@ -128,7 +133,7 @@ export declare class StagehandSchemaError extends Error {
|
|
|
128
133
|
* that `Action` — the `observe(...)[0] -> act(target)` pattern already used
|
|
129
134
|
* throughout `flow-runner.ts`.
|
|
130
135
|
*/
|
|
131
|
-
export declare function guardedAct(stagehand: Stagehand, input: string | Action, options?: ActOptions, captureFn?: StagehandCaptureFn,
|
|
136
|
+
export declare function guardedAct(stagehand: Stagehand, input: string | Action, options?: ActOptions, captureFn?: StagehandCaptureFn, frameTarget?: FrameTarget, preCentred?: boolean): Promise<ActResult>;
|
|
132
137
|
/**
|
|
133
138
|
* Schema-guarded wrapper around Stagehand's `observe`. Parallels the
|
|
134
139
|
* 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;AAS3B,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;AAYxE,6FAA6F;AAC7F,eAAO,MAAM,eAAe,QAAe,CAAC;AAuB5C;;;;;;;;;;;;;;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;AA2KD;;;;;;;;;;;;;;;;;;;;;;;;;;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
|
-
exports.StagehandSchemaError = exports.ACT_RESULT_SCHEMA = exports.ACTION_SCHEMA = void 0;
|
|
44
|
+
exports.StagehandSchemaError = exports.ACT_RESULT_SCHEMA = exports.ACTION_SCHEMA = exports.CLICK_INTENT_RE = void 0;
|
|
42
45
|
exports.guardedAct = guardedAct;
|
|
43
46
|
exports.guardedObserve = guardedObserve;
|
|
44
47
|
exports.guardedExtract = guardedExtract;
|
|
45
48
|
const node_crypto_1 = require("node:crypto");
|
|
49
|
+
const p_retry_1 = __importDefault(require("p-retry"));
|
|
46
50
|
const v4_1 = require("zod/v4");
|
|
51
|
+
const errors_1 = require("../lib/errors");
|
|
52
|
+
const logging_1 = require("../lib/logging");
|
|
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,28 @@ 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
|
+
const logger = (0, logging_1.getLogger)({ name: "scraper/stagehand-guard" });
|
|
68
|
+
/** Instructions that name a click; only these are worth an observe to find a click point. */
|
|
69
|
+
exports.CLICK_INTENT_RE = /\bclick\b/i;
|
|
70
|
+
const TRANSIENT_RETRIES = 2;
|
|
71
|
+
const TRANSIENT_RETRY_MIN_TIMEOUT_MS = 500;
|
|
72
|
+
/**
|
|
73
|
+
* Retries a Stagehand call that failed with a transient provider error so a
|
|
74
|
+
* blip is not recorded as a failed technique. Wrap it OUTSIDE `withWatchdog`:
|
|
75
|
+
* each try gets its own watchdog timeout and the backoff is not charged to it.
|
|
76
|
+
* Safe for `act` because the provider 5xx is raised during Stagehand's
|
|
77
|
+
* inference request, before it performs any page action; the narrow
|
|
78
|
+
* classifier never matches selector, timeout, or schema errors raised after
|
|
79
|
+
* one.
|
|
80
|
+
*/
|
|
81
|
+
function retryTransient(call) {
|
|
82
|
+
return (0, p_retry_1.default)(call, {
|
|
83
|
+
retries: TRANSIENT_RETRIES,
|
|
84
|
+
minTimeout: TRANSIENT_RETRY_MIN_TIMEOUT_MS,
|
|
85
|
+
randomize: false,
|
|
86
|
+
shouldRetry: ({ error }) => (0, transient_provider_error_1.isTransientProviderError)(error),
|
|
87
|
+
});
|
|
88
|
+
}
|
|
58
89
|
/**
|
|
59
90
|
* Zod parallel of Stagehand's public `Action` shape (from
|
|
60
91
|
* `@browserbasehq/stagehand/.../public/methods.d.ts`):
|
|
@@ -127,6 +158,41 @@ function safeStringify(value, cap = 4000) {
|
|
|
127
158
|
function actInstructionOf(input) {
|
|
128
159
|
return typeof input === "string" ? input : input.description;
|
|
129
160
|
}
|
|
161
|
+
function mergeVariables(options, variables) {
|
|
162
|
+
if (Object.keys(variables).length === 0)
|
|
163
|
+
return options;
|
|
164
|
+
return { ...options, variables: { ...options?.variables, ...variables } };
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Observe only needs the token names for its prompt (it never performs the
|
|
168
|
+
* action, so never substitutes): withhold the values so they are not shipped
|
|
169
|
+
* to the Stagehand API either. Plain strings, not the `{ value, description }`
|
|
170
|
+
* form, so the call stays inside the wire shape already proven against the API.
|
|
171
|
+
*/
|
|
172
|
+
function withheldVariables(variables) {
|
|
173
|
+
return Object.fromEntries(Object.keys(variables).map((name) => [name, ""]));
|
|
174
|
+
}
|
|
175
|
+
function detokenizeAction(action, variables) {
|
|
176
|
+
if (Object.keys(variables).length === 0)
|
|
177
|
+
return action;
|
|
178
|
+
return {
|
|
179
|
+
...action,
|
|
180
|
+
description: (0, pii_redaction_1.detokenize)(action.description, variables),
|
|
181
|
+
...(action.arguments
|
|
182
|
+
? { arguments: action.arguments.map((arg) => (0, pii_redaction_1.detokenize)(arg, variables)) }
|
|
183
|
+
: {}),
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
function detokenizeActResult(result, variables) {
|
|
187
|
+
if (Object.keys(variables).length === 0)
|
|
188
|
+
return result;
|
|
189
|
+
return {
|
|
190
|
+
...result,
|
|
191
|
+
message: (0, pii_redaction_1.detokenize)(result.message, variables),
|
|
192
|
+
actionDescription: (0, pii_redaction_1.detokenize)(result.actionDescription, variables),
|
|
193
|
+
actions: result.actions.map((action) => detokenizeAction(action, variables)),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
130
196
|
/**
|
|
131
197
|
* Merges `frameTarget.frameSelector` into `options.selector` for
|
|
132
198
|
* `ObserveOptions`/`ExtractOptions`, composed as Stagehand `">>"` hop
|
|
@@ -144,6 +210,79 @@ function frameScopedOptions(options, frameTarget) {
|
|
|
144
210
|
return options;
|
|
145
211
|
return { ...options, selector: (0, frame_target_1.buildHopSelector)(frameTarget.frameSelector, "*") };
|
|
146
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Resolves a string act instruction to the Action Stagehand would click so it
|
|
215
|
+
* can be centred first. Scoped to the step's frame the same way
|
|
216
|
+
* `guardedObserve` is, so an in-frame control is not resolved against the top
|
|
217
|
+
* document. Resolution is best-effort: when `observe` is unavailable, throws,
|
|
218
|
+
* or finds nothing, Stagehand's own string `act` resolves internally exactly
|
|
219
|
+
* as before.
|
|
220
|
+
*/
|
|
221
|
+
async function resolveClickAction(stagehand, instruction, options, frameTarget) {
|
|
222
|
+
if (typeof stagehand.observe !== "function" || !exports.CLICK_INTENT_RE.test(instruction)) {
|
|
223
|
+
return undefined;
|
|
224
|
+
}
|
|
225
|
+
const observeOptions = frameScopedOptions(options?.timeout ? { timeout: options.timeout } : {}, frameTarget);
|
|
226
|
+
const observed = await (0, watchdog_1.withWatchdog)(() => stagehand.observe(instruction, observeOptions), {
|
|
227
|
+
timeoutMs: options?.timeout ?? DEFAULT_GUARD_TIMEOUT_MS,
|
|
228
|
+
label: "stagehand-observe",
|
|
229
|
+
});
|
|
230
|
+
return observed[0];
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Stagehand's `act` clicks the content-box centre after only a
|
|
234
|
+
* `scrollIntoViewIfNeeded`, so a sticky overlay swallows the click. Centre +
|
|
235
|
+
* hit-test the click target first so Stagehand's own scroll is a no-op. String
|
|
236
|
+
* instructions are resolved via `observe` for the pre-centring only and still
|
|
237
|
+
* reach `act` as the original string, so downstream method/argument handling
|
|
238
|
+
* is unchanged. Frame-hop (`>>`) selectors are centred in the child frame they
|
|
239
|
+
* resolve to. Best-effort by design: a target that cannot be resolved or
|
|
240
|
+
* centred is logged and left to Stagehand's own delivery, because a click that
|
|
241
|
+
* lands on an overlay is caught as a phantom by the healing ladder and retried
|
|
242
|
+
* through the centred trusted-click path, whereas failing here would turn an
|
|
243
|
+
* act that would have run into a hard attempt failure. Non-click actions are
|
|
244
|
+
* skipped since there is no click point to clear.
|
|
245
|
+
*/
|
|
246
|
+
async function preCentreClickTarget(stagehand, input, options, frameTarget) {
|
|
247
|
+
try {
|
|
248
|
+
const page = typeof stagehand.context?.activePage === "function"
|
|
249
|
+
? stagehand.context.activePage()
|
|
250
|
+
: undefined;
|
|
251
|
+
const target = frameTarget ?? (page ? (0, frame_target_1.mainFrameTarget)(page) : undefined);
|
|
252
|
+
if (!target)
|
|
253
|
+
return;
|
|
254
|
+
const action = typeof input === "string"
|
|
255
|
+
? await resolveClickAction(stagehand, input, options, frameTarget)
|
|
256
|
+
: input;
|
|
257
|
+
if (action?.method !== "click")
|
|
258
|
+
return;
|
|
259
|
+
await centreAction(page, target, action);
|
|
260
|
+
}
|
|
261
|
+
catch (err) {
|
|
262
|
+
logger.warn(`pre-centring skipped: ${(0, errors_1.toErrorMessage)(err)}`);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Centres and hit-tests an Action's click target, resolving a `>>` frame hop
|
|
267
|
+
* to the child frame the tail selector lives in.
|
|
268
|
+
*/
|
|
269
|
+
async function centreAction(page, target, action) {
|
|
270
|
+
const hopAt = action.selector.lastIndexOf(">>");
|
|
271
|
+
if (hopAt === -1) {
|
|
272
|
+
await (0, trusted_click_1.centreSelectorForClick)(target, action.selector, { label: action.selector });
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
if (!page) {
|
|
276
|
+
throw new Error(`no active page to resolve frame hop for ${action.selector}`);
|
|
277
|
+
}
|
|
278
|
+
const hopTarget = await (0, frame_target_1.resolveFrameTarget)(page, action.selector.slice(0, hopAt).trim());
|
|
279
|
+
if (hopTarget.declaredFrameSelector) {
|
|
280
|
+
throw new Error(`frame ${hopTarget.declaredFrameSelector} not attached; cannot centre click`);
|
|
281
|
+
}
|
|
282
|
+
await (0, trusted_click_1.centreSelectorForClick)(hopTarget, action.selector.slice(hopAt + 2).trim(), {
|
|
283
|
+
label: action.selector,
|
|
284
|
+
});
|
|
285
|
+
}
|
|
147
286
|
/**
|
|
148
287
|
* Schema-guarded wrapper around Stagehand's `act`. Same signature as the
|
|
149
288
|
* underlying call: accepts either an instruction string or a structured
|
|
@@ -156,8 +295,11 @@ function frameScopedOptions(options, frameTarget) {
|
|
|
156
295
|
* receives the same `timeout` as before, but a call that ignores it and hangs
|
|
157
296
|
* now fails the attempt instead of blocking the step forever.
|
|
158
297
|
*
|
|
159
|
-
*
|
|
160
|
-
* `
|
|
298
|
+
* Click targets are centred and hit-tested before Stagehand acts (see
|
|
299
|
+
* `preCentreClickTarget`); a given `frameTarget` scopes that pass, and
|
|
300
|
+
* `preCentred` skips it when the caller already resolved and centred the
|
|
301
|
+
* target, so one click does not cost two observe calls. The
|
|
302
|
+
* trailing `frameTarget` param is not forwarded into
|
|
161
303
|
* `ActOptions` — `ActOptions` has no `selector` field, and its `page`
|
|
162
304
|
* override only accepts a full Playwright/Puppeteer/Patchright/understudy
|
|
163
305
|
* `Page`, not the `Frame` handle `FrameTarget.frame` exposes (the
|
|
@@ -168,11 +310,19 @@ function frameScopedOptions(options, frameTarget) {
|
|
|
168
310
|
* that `Action` — the `observe(...)[0] -> act(target)` pattern already used
|
|
169
311
|
* throughout `flow-runner.ts`.
|
|
170
312
|
*/
|
|
171
|
-
async function guardedAct(stagehand, input, options, captureFn,
|
|
313
|
+
async function guardedAct(stagehand, input, options, captureFn, frameTarget, preCentred = false) {
|
|
172
314
|
const callId = (0, node_crypto_1.randomUUID)();
|
|
173
|
-
|
|
315
|
+
// Request values travel as Stagehand `variables`, substituted only when
|
|
316
|
+
// the action is performed. An `Action` (from observe) is replayed without
|
|
317
|
+
// an LLM, so it keeps its literal arguments.
|
|
318
|
+
const tokenized = typeof input === "string" ? (0, pii_redaction_1.tokenizeSensitiveValues)(input) : { text: "", variables: {} };
|
|
319
|
+
const sendInput = typeof input === "string" ? tokenized.text : input;
|
|
320
|
+
const sendOptions = mergeVariables(options, tokenized.variables);
|
|
321
|
+
const userContent = actInstructionOf(sendInput);
|
|
174
322
|
const t0 = performance.now();
|
|
175
323
|
try {
|
|
324
|
+
if (!preCentred)
|
|
325
|
+
await preCentreClickTarget(stagehand, sendInput, sendOptions, frameTarget);
|
|
176
326
|
// Stagehand's `act` has two overloads (string and Action) that share the
|
|
177
327
|
// same runtime implementation (dispatch is via `isObserveResult` inside
|
|
178
328
|
// Stagehand). The two branches LOOK identical but TS can't resolve the
|
|
@@ -180,7 +330,9 @@ async function guardedAct(stagehand, input, options, captureFn, _frameTarget) {
|
|
|
180
330
|
// `stagehand.act` to a variable then calling it as a standalone function
|
|
181
331
|
// loses `this` in strict mode, which crashes inside Stagehand's
|
|
182
332
|
// `withInstanceLogContext(this.instanceId, ...)` wrapper on entry.
|
|
183
|
-
const raw = await (0, watchdog_1.withWatchdog)(() => typeof
|
|
333
|
+
const raw = await retryTransient(() => (0, watchdog_1.withWatchdog)(() => typeof sendInput === "string"
|
|
334
|
+
? stagehand.act(sendInput, sendOptions)
|
|
335
|
+
: stagehand.act(sendInput, sendOptions), { timeoutMs: options?.timeout ?? DEFAULT_GUARD_TIMEOUT_MS, label: "stagehand-act" }));
|
|
184
336
|
const latencyMs = performance.now() - t0;
|
|
185
337
|
const parsed = exports.ACT_RESULT_SCHEMA.safeParse(raw);
|
|
186
338
|
if (!parsed.success) {
|
|
@@ -208,7 +360,7 @@ async function guardedAct(stagehand, input, options, captureFn, _frameTarget) {
|
|
|
208
360
|
errorMessage: null,
|
|
209
361
|
failureKind: null,
|
|
210
362
|
}, captureFn);
|
|
211
|
-
return parsed.data;
|
|
363
|
+
return detokenizeActResult(parsed.data, tokenized.variables);
|
|
212
364
|
}
|
|
213
365
|
catch (err) {
|
|
214
366
|
if (err instanceof StagehandSchemaError)
|
|
@@ -250,17 +402,22 @@ async function guardedAct(stagehand, input, options, captureFn, _frameTarget) {
|
|
|
250
402
|
*/
|
|
251
403
|
async function guardedObserve(stagehand, instruction, options, captureFn, frameTarget) {
|
|
252
404
|
const callId = (0, node_crypto_1.randomUUID)();
|
|
253
|
-
const
|
|
405
|
+
const tokenized = instruction === undefined ? { text: "", variables: {} } : (0, pii_redaction_1.tokenizeSensitiveValues)(instruction);
|
|
406
|
+
const sendInstruction = instruction === undefined ? undefined : tokenized.text;
|
|
407
|
+
const userContent = sendInstruction ?? "";
|
|
254
408
|
const t0 = performance.now();
|
|
255
|
-
const scopedOptions = frameScopedOptions(options, frameTarget);
|
|
409
|
+
const scopedOptions = mergeVariables(frameScopedOptions(options, frameTarget), withheldVariables(tokenized.variables));
|
|
256
410
|
try {
|
|
257
411
|
// Match Stagehand's overloads: pass instruction only when defined, so
|
|
258
412
|
// the SDK falls through to its no-arg/options-only path otherwise.
|
|
259
|
-
const raw = await (0, watchdog_1.withWatchdog)(() =>
|
|
413
|
+
const raw = await retryTransient(() => (0, watchdog_1.withWatchdog)(() => sendInstruction === undefined
|
|
260
414
|
? scopedOptions === undefined
|
|
261
415
|
? stagehand.observe()
|
|
262
416
|
: stagehand.observe(scopedOptions)
|
|
263
|
-
: stagehand.observe(
|
|
417
|
+
: stagehand.observe(sendInstruction, scopedOptions), {
|
|
418
|
+
timeoutMs: scopedOptions?.timeout ?? DEFAULT_GUARD_TIMEOUT_MS,
|
|
419
|
+
label: "stagehand-observe",
|
|
420
|
+
}));
|
|
264
421
|
const latencyMs = performance.now() - t0;
|
|
265
422
|
const parsed = v4_1.z.array(exports.ACTION_SCHEMA).safeParse(raw);
|
|
266
423
|
if (!parsed.success) {
|
|
@@ -288,7 +445,13 @@ async function guardedObserve(stagehand, instruction, options, captureFn, frameT
|
|
|
288
445
|
errorMessage: null,
|
|
289
446
|
failureKind: null,
|
|
290
447
|
}, captureFn);
|
|
291
|
-
|
|
448
|
+
// Callers replay these actions directly (no substitution on that path),
|
|
449
|
+
// so tokens are resolved here; an action carrying a token the LLM
|
|
450
|
+
// invented would type it verbatim and is dropped.
|
|
451
|
+
return parsed.data
|
|
452
|
+
.map((action) => detokenizeAction(action, tokenized.variables))
|
|
453
|
+
.filter((action) => Object.keys(tokenized.variables).length === 0 ||
|
|
454
|
+
(action.arguments ?? []).every((arg) => (0, pii_redaction_1.unresolvedTokens)(arg, tokenized.variables).length === 0));
|
|
292
455
|
}
|
|
293
456
|
catch (err) {
|
|
294
457
|
if (err instanceof StagehandSchemaError)
|
|
@@ -336,7 +499,7 @@ async function guardedExtract(stagehand, instruction, schema, options, captureFn
|
|
|
336
499
|
// the cleanest public-API way to express "whatever overload-2 expects."
|
|
337
500
|
// The `as unknown` step is needed because TS won't accept a single
|
|
338
501
|
// 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" });
|
|
502
|
+
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
503
|
const latencyMs = performance.now() - t0;
|
|
341
504
|
const parsed = schema.safeParse(raw);
|
|
342
505
|
if (!parsed.success) {
|
|
@@ -392,8 +555,13 @@ async function guardedExtract(stagehand, instruction, schema, options, captureFn
|
|
|
392
555
|
* `LlmCallInput` contract (which already supports null for those fields).
|
|
393
556
|
*/
|
|
394
557
|
async function captureCall(partial, captureFn = call_capture_1.captureLlmCall) {
|
|
558
|
+
// Replayed observe `Action`s keep literal arguments, so scrub here rather
|
|
559
|
+
// than relying on every caller-supplied sink to do it.
|
|
395
560
|
await captureFn({
|
|
396
561
|
...partial,
|
|
562
|
+
userContent: (0, pii_redaction_1.redactPii)(partial.userContent),
|
|
563
|
+
responseContent: partial.responseContent === null ? null : (0, pii_redaction_1.redactPii)(partial.responseContent),
|
|
564
|
+
errorMessage: partial.errorMessage === null ? null : (0, pii_redaction_1.redactPii)(partial.errorMessage),
|
|
397
565
|
model: "stagehand-internal",
|
|
398
566
|
systemPrompt: null,
|
|
399
567
|
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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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One site-agnostic definition of a transient model-provider failure (5xx,
|
|
3
|
+
* overload, connection reset raised at inference) so the call guard and the
|
|
4
|
+
* replan guard agree. Structured status/code fields win; message text is a
|
|
5
|
+
* fallback only for provider-wrapped errors that carry no status.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isTransientProviderError(err: unknown): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Tells whether a failure dump's attempts[] errorMessage values are
|
|
10
|
+
* transient, so the replan guard can avoid treating a provider outage as a
|
|
11
|
+
* verdict about the step. `all` requires at least one message.
|
|
12
|
+
*/
|
|
13
|
+
export declare function summarizeAttemptTransience(attempts: ReadonlyArray<{
|
|
14
|
+
errorMessage?: string | null;
|
|
15
|
+
}>): {
|
|
16
|
+
all: boolean;
|
|
17
|
+
any: boolean;
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=transient-provider-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transient-provider-error.d.ts","sourceRoot":"","sources":["../../src/scraper/transient-provider-error.ts"],"names":[],"mappings":"AAuBA;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAc9D;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,aAAa,CAAC;IAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GACxD;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAMhC"}
|