@enricai/barnacle 1.6.14 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -5
- package/dist/api/schemas/submissions.d.ts +8 -8
- package/dist/config.d.ts +23 -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/bedrock.d.ts +2 -2
- package/dist/lib/bedrock.d.ts.map +1 -1
- package/dist/lib/bedrock.js.map +1 -1
- package/dist/lib/llm/anthropic-client.d.ts +12 -0
- package/dist/lib/llm/anthropic-client.d.ts.map +1 -1
- package/dist/lib/llm/anthropic-client.js +25 -0
- package/dist/lib/llm/anthropic-client.js.map +1 -1
- package/dist/lib/telemetry/beacon-capture.d.ts +4 -3
- package/dist/lib/telemetry/beacon-capture.d.ts.map +1 -1
- package/dist/lib/telemetry/beacon-capture.js.map +1 -1
- package/dist/lib/telemetry/reconciliation-record.d.ts +15 -33
- package/dist/lib/telemetry/reconciliation-record.d.ts.map +1 -1
- package/dist/lib/telemetry/reconciliation-record.js +11 -49
- package/dist/lib/telemetry/reconciliation-record.js.map +1 -1
- package/dist/lib/telemetry/submission-capture.d.ts +8 -13
- package/dist/lib/telemetry/submission-capture.d.ts.map +1 -1
- package/dist/lib/telemetry/submission-capture.js +2 -4
- package/dist/lib/telemetry/submission-capture.js.map +1 -1
- package/dist/lib/telemetry/submission-reader.d.ts +3 -4
- package/dist/lib/telemetry/submission-reader.d.ts.map +1 -1
- package/dist/lib/telemetry/submission-reader.js +3 -4
- package/dist/lib/telemetry/submission-reader.js.map +1 -1
- package/dist/plugins/config-plugin.d.ts.map +1 -1
- package/dist/plugins/config-plugin.js +22 -0
- package/dist/plugins/config-plugin.js.map +1 -1
- package/dist/plugins/loader.d.ts +0 -7
- package/dist/plugins/loader.d.ts.map +1 -1
- package/dist/plugins/loader.js +0 -9
- package/dist/plugins/loader.js.map +1 -1
- package/dist/scraper/deep-locator-actuate.d.ts +24 -19
- package/dist/scraper/deep-locator-actuate.d.ts.map +1 -1
- package/dist/scraper/deep-locator-actuate.js +68 -23
- package/dist/scraper/deep-locator-actuate.js.map +1 -1
- package/dist/scraper/deep-locator-scan.d.ts +20 -0
- package/dist/scraper/deep-locator-scan.d.ts.map +1 -1
- package/dist/scraper/deep-locator-scan.js +25 -0
- package/dist/scraper/deep-locator-scan.js.map +1 -1
- package/dist/scraper/flow-runner.d.ts +50 -10
- package/dist/scraper/flow-runner.d.ts.map +1 -1
- package/dist/scraper/flow-runner.js +239 -97
- package/dist/scraper/flow-runner.js.map +1 -1
- package/dist/scripts/recon-browser.d.ts +5 -4
- package/dist/scripts/recon-browser.d.ts.map +1 -1
- package/dist/scripts/recon-browser.js +8 -5
- package/dist/scripts/recon-browser.js.map +1 -1
- package/dist/scripts/recon-generate.d.ts +2 -2
- package/dist/scripts/recon-generate.d.ts.map +1 -1
- package/dist/scripts/recon-generate.js +18 -85
- package/dist/scripts/recon-generate.js.map +1 -1
- package/dist/scripts/recon-shared.d.ts +0 -10
- package/dist/scripts/recon-shared.d.ts.map +1 -1
- package/dist/scripts/recon-shared.js +0 -11
- package/dist/scripts/recon-shared.js.map +1 -1
- package/dist/site-plugin.d.ts +3 -3
- package/dist/testing/coverage-guard-suite.d.mts +7 -7
- package/dist/testing/coverage-guard-suite.mjs +5 -5
- package/package.json +3 -1
- package/dist/scripts/migrate-telemetry-dir-names.d.ts +0 -57
- package/dist/scripts/migrate-telemetry-dir-names.d.ts.map +0 -1
- package/dist/scripts/migrate-telemetry-dir-names.js +0 -156
- package/dist/scripts/migrate-telemetry-dir-names.js.map +0 -1
package/README.md
CHANGED
|
@@ -102,7 +102,7 @@ Drives a real Stagehand + Steel browser through your flow. Captures are wired vi
|
|
|
102
102
|
|
|
103
103
|
Captures every network call matching `/graph`, `/api/`, `/graphql`, `/v1/`, or `*.json` to `<run-dir>/graphql/<NNN>-<phase>-<operationName>.json` — one file per call, diffable and greppable. Use `--capture-all` for sites with non-standard API paths; it captures every response, producing more noise but missing nothing. Omitting both `--flow` and `--flow-file` runs zero interaction steps and captures only the network activity that fires during page navigation — useful for pure GET-style SPAs that fetch everything they need on load.
|
|
104
104
|
|
|
105
|
-
Each step runs through a self-healing cascade (`act` → `observe + act` → `observe + act` with `ignoreSelectors` →
|
|
105
|
+
Each step runs through a self-healing cascade (`act` → `observe + act` → `observe + act` with `ignoreSelectors` → LLM rephrase) verified by network-counter delta or URL change. The script's `main()` attempts up to two global flow replans before giving up; terminal failures dump a diagnostic bundle to `<run-dir>/step-failures/`. See [docs/playbook.md#1c--self-healing-cascade](./docs/playbook.md#1c--self-healing-cascade) for the full design.
|
|
106
106
|
|
|
107
107
|
Total runtime: 20–40 minutes for a typical flow (longer if healing or replans fire), fully unattended.
|
|
108
108
|
|
|
@@ -222,7 +222,7 @@ pnpm run recon:generate -- --site-id my-site --vocabulary ./src/recon/my-vocabul
|
|
|
222
222
|
- Every regex must be free of the `g`/`y` flags and every field name must be a valid JS identifier — the loader rejects both. A stateful regex matches only every other step; a non-identifier emits `payload.<name>` as a syntax error.
|
|
223
223
|
- Run the generator with a `.ts` vocabulary under `tsx`, or point it at compiled `.js` — plain `node` cannot import TypeScript before v22.18.
|
|
224
224
|
|
|
225
|
-
>
|
|
225
|
+
> Omitting `--vocabulary` disables splicing entirely — every step's recon constant is emitted literally, with no caller-data substitution.
|
|
226
226
|
|
|
227
227
|
#### Telling the generator your ATS's form-schema wire keys
|
|
228
228
|
|
|
@@ -587,8 +587,6 @@ import { BUILTIN_SITE_PLUGINS } from "@/plugins/discover";
|
|
|
587
587
|
BUILTIN_SITE_PLUGINS.push(mySitePlugin as SitePlugin<unknown, unknown>);
|
|
588
588
|
```
|
|
589
589
|
|
|
590
|
-
`SITE_PLUGINS` in `src/plugins/loader.ts` is an alias for `BUILTIN_SITE_PLUGINS` kept for backwards compatibility; prefer the `discover.ts` import for new code.
|
|
591
|
-
|
|
592
590
|
Core registers `POST /v1/my-site/run` automatically at startup.
|
|
593
591
|
|
|
594
592
|
### Wire up the nightly smoke test
|
|
@@ -746,7 +744,7 @@ Every line in `.barnacle/calls.ndjson` is a JSON object with these fields (sourc
|
|
|
746
744
|
|
|
747
745
|
| `callType` | Source | When emitted |
|
|
748
746
|
|------------|--------|--------------|
|
|
749
|
-
| `recon-rephrase` | `src/scripts/recon-browser.ts` | Attempt-
|
|
747
|
+
| `recon-rephrase` | `src/scripts/recon-browser.ts` | Attempt-5 rephrase inside the recon-browser step-healing cascade — the ai-SDK model (Anthropic-direct or Bedrock-backed) is asked to reword the failing step |
|
|
750
748
|
| `recon-replan` | `src/scripts/recon-browser.ts` | Global replan after a step terminally fails — Claude rewrites the remaining flow tail |
|
|
751
749
|
| `recon-flow-patch` | `src/scripts/recon-heal.ts` | Patch proposal from the recon-flow-patch-generator during the `recon-heal` self-healing loop |
|
|
752
750
|
| `llm-prompt-patch` | `src/scripts/llm-heal.ts` | Patch proposal from the llm-call-patch-generator during the `llm-heal` self-healing loop |
|
|
@@ -43,13 +43,13 @@ export type SubmissionsQuerystring = z.infer<typeof submissionsQuerystringSchema
|
|
|
43
43
|
export declare const reconciliationRowSchema: z.ZodObject<{
|
|
44
44
|
siteId: z.ZodString;
|
|
45
45
|
requestId: z.ZodString;
|
|
46
|
-
joinKeys: z.
|
|
47
|
-
session: z.
|
|
46
|
+
joinKeys: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
47
|
+
session: z.ZodNullable<z.ZodObject<{
|
|
48
48
|
id: z.ZodString;
|
|
49
49
|
provider: z.ZodString;
|
|
50
50
|
ip: z.ZodNullable<z.ZodString>;
|
|
51
51
|
ipCapturedAt: z.ZodNullable<z.ZodString>;
|
|
52
|
-
}, z.core.$strip
|
|
52
|
+
}, z.core.$strip>>;
|
|
53
53
|
status: z.ZodEnum<{
|
|
54
54
|
error: "error";
|
|
55
55
|
submitted: "submitted";
|
|
@@ -64,7 +64,7 @@ export declare const reconciliationRowSchema: z.ZodObject<{
|
|
|
64
64
|
skipped: "skipped";
|
|
65
65
|
}>;
|
|
66
66
|
trackingUrl: z.ZodNullable<z.ZodString>;
|
|
67
|
-
beaconSessionIp: z.
|
|
67
|
+
beaconSessionIp: z.ZodNullable<z.ZodString>;
|
|
68
68
|
}, z.core.$strip>;
|
|
69
69
|
export type ReconciliationRow = z.infer<typeof reconciliationRowSchema>;
|
|
70
70
|
/**
|
|
@@ -95,13 +95,13 @@ export declare const submissionsResponseSchema: z.ZodObject<{
|
|
|
95
95
|
submissions: z.ZodArray<z.ZodObject<{
|
|
96
96
|
siteId: z.ZodString;
|
|
97
97
|
requestId: z.ZodString;
|
|
98
|
-
joinKeys: z.
|
|
99
|
-
session: z.
|
|
98
|
+
joinKeys: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
99
|
+
session: z.ZodNullable<z.ZodObject<{
|
|
100
100
|
id: z.ZodString;
|
|
101
101
|
provider: z.ZodString;
|
|
102
102
|
ip: z.ZodNullable<z.ZodString>;
|
|
103
103
|
ipCapturedAt: z.ZodNullable<z.ZodString>;
|
|
104
|
-
}, z.core.$strip
|
|
104
|
+
}, z.core.$strip>>;
|
|
105
105
|
status: z.ZodEnum<{
|
|
106
106
|
error: "error";
|
|
107
107
|
submitted: "submitted";
|
|
@@ -116,7 +116,7 @@ export declare const submissionsResponseSchema: z.ZodObject<{
|
|
|
116
116
|
skipped: "skipped";
|
|
117
117
|
}>;
|
|
118
118
|
trackingUrl: z.ZodNullable<z.ZodString>;
|
|
119
|
-
beaconSessionIp: z.
|
|
119
|
+
beaconSessionIp: z.ZodNullable<z.ZodString>;
|
|
120
120
|
}, z.core.$strip>>;
|
|
121
121
|
total: z.ZodNumber;
|
|
122
122
|
}, z.core.$strip>;
|
package/dist/config.d.ts
CHANGED
|
@@ -60,6 +60,29 @@ export interface AppConfig {
|
|
|
60
60
|
connectTimeoutMs: number;
|
|
61
61
|
/** Steel session wall-clock timeout in ms. Default is 1 hour; lower via STEEL_SESSION_TIMEOUT_MS on plans with shorter limits. */
|
|
62
62
|
steelSessionTimeoutMs: number;
|
|
63
|
+
/**
|
|
64
|
+
* Minimum DOM-growth byte delta (`outerHTML.length`) for
|
|
65
|
+
* `isClickViewSwapVerified` to credit a network-free click as a verified
|
|
66
|
+
* client-side view swap. Default of 5000 sits 10× above the trivial-delta
|
|
67
|
+
* boundary and above typical validation-error reflow sizes. Some sites
|
|
68
|
+
* render much smaller popups/comboboxes (a few hundred bytes) whose
|
|
69
|
+
* open-click would never clear the default — lower this per-deployment
|
|
70
|
+
* via `VIEW_SWAP_MIN_BYTES` rather than lowering the shared default,
|
|
71
|
+
* since a smaller global threshold risks crediting trivial reflows on
|
|
72
|
+
* unrelated sites.
|
|
73
|
+
*/
|
|
74
|
+
viewSwapMinBytesThreshold: number;
|
|
75
|
+
/**
|
|
76
|
+
* Poll attempts for the upload primitive's wait on the async upload
|
|
77
|
+
* widget (and its lazily-mounted `<input type=file>`) to render, at
|
|
78
|
+
* `UPLOAD_WIDGET_RENDER_INTERVAL_MS` apart. Default of 17 (~10.2s total)
|
|
79
|
+
* covers the common ~5s mount delay with margin. Some sites mount the
|
|
80
|
+
* upload field conditionally — only after a prior step commits — and can
|
|
81
|
+
* need a longer window; raise via `UPLOAD_WIDGET_RENDER_ATTEMPTS` rather
|
|
82
|
+
* than the shared default, since the poll exits on first success and
|
|
83
|
+
* costs nothing extra for sites that mount promptly.
|
|
84
|
+
*/
|
|
85
|
+
uploadWidgetRenderAttempts: number;
|
|
63
86
|
/**
|
|
64
87
|
* How long `resolveFrameTarget` polls `page.frames()` for a child iframe
|
|
65
88
|
* to attach before falling back to the main-frame target. Raised from a
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -67,6 +67,8 @@ function loadConfig() {
|
|
|
67
67
|
anthropicTimeoutMs: (0, env_1.getNumericEnv)("STAGEHAND_API_TIMEOUT_MS", 120_000),
|
|
68
68
|
connectTimeoutMs: (0, env_1.getNumericEnv)("STAGEHAND_CONNECT_TIMEOUT_MS", 120_000),
|
|
69
69
|
steelSessionTimeoutMs: (0, env_1.getNumericEnv)("STEEL_SESSION_TIMEOUT_MS", 3_600_000),
|
|
70
|
+
viewSwapMinBytesThreshold: (0, env_1.getNumericEnv)("VIEW_SWAP_MIN_BYTES", 5000),
|
|
71
|
+
uploadWidgetRenderAttempts: (0, env_1.getNumericEnv)("UPLOAD_WIDGET_RENDER_ATTEMPTS", 17),
|
|
70
72
|
frameReadyTimeoutMs: (0, env_1.getNumericEnv)("FRAME_READY_TIMEOUT_MS", 20_000),
|
|
71
73
|
frameDocumentReadyTimeoutMs: (0, env_1.getNumericEnv)("FRAME_DOCUMENT_READY_TIMEOUT_MS", 5_000),
|
|
72
74
|
frameEvaluateTimeoutMs: (0, env_1.getNumericEnv)("FRAME_EVALUATE_TIMEOUT_MS", 30_000),
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;AAAA,mCAAuF;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/bedrock.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { AISdkClient } from "@browserbasehq/stagehand";
|
|
2
2
|
import type { AppConfig } from "../config";
|
|
3
|
-
|
|
3
|
+
/** AI SDK `LanguageModel` shape Stagehand's `AISdkClient` accepts. */
|
|
4
|
+
export type StagehandModel = ConstructorParameters<typeof AISdkClient>[0]["model"];
|
|
4
5
|
/**
|
|
5
6
|
* Builds an AI SDK language model backed by AWS Bedrock for injection into
|
|
6
7
|
* Stagehand's `llmClient`. Centralises all @ai-sdk/amazon-bedrock imports here
|
|
@@ -21,5 +22,4 @@ type StagehandModel = ConstructorParameters<typeof AISdkClient>[0]["model"];
|
|
|
21
22
|
* instance profile) — correct for IAM-role deployments.
|
|
22
23
|
*/
|
|
23
24
|
export declare function createBedrockModel(bedrockConfig: AppConfig["bedrock"]): StagehandModel;
|
|
24
|
-
export {};
|
|
25
25
|
//# sourceMappingURL=bedrock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.d.ts","sourceRoot":"","sources":["../../src/lib/bedrock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,
|
|
1
|
+
{"version":3,"file":"bedrock.d.ts","sourceRoot":"","sources":["../../src/lib/bedrock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,sEAAsE;AACtE,MAAM,MAAM,cAAc,GAAG,qBAAqB,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAEnF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,cAAc,CAgBtF"}
|
package/dist/lib/bedrock.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bedrock.js","sourceRoot":"","sources":["../../src/lib/bedrock.ts"],"names":[],"mappings":";;;AAAA,2DAA6D;
|
|
1
|
+
{"version":3,"file":"bedrock.js","sourceRoot":"","sources":["../../src/lib/bedrock.ts"],"names":[],"mappings":";;;AAAA,2DAA6D;AAQ7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,4BAAmC,aAAmC;IACpE,MAAM,sBAAsB,GAC1B,aAAa,CAAC,WAAW,KAAK,SAAS,IAAI,aAAa,CAAC,eAAe,KAAK,SAAS,CAAC;IAEzF,MAAM,QAAQ,GAAG,IAAA,oCAAmB,EAAC;QACnC,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,GAAG,CAAC,sBAAsB;YACxB,CAAC,CAAC;gBACE,WAAW,EAAE,aAAa,CAAC,WAAqB;gBAChD,eAAe,EAAE,aAAa,CAAC,eAAyB;gBACxD,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Anthropic from "@anthropic-ai/sdk";
|
|
2
|
+
import { type StagehandModel } from "../../lib/bedrock";
|
|
2
3
|
/**
|
|
3
4
|
* Build the shared Anthropic client used by the self-heal cascade's LLM
|
|
4
5
|
* techniques (attempt-5 rephrase, replan, judges). Returns `null` on a
|
|
@@ -9,4 +10,15 @@ import Anthropic from "@anthropic-ai/sdk";
|
|
|
9
10
|
* the same way rather than each duplicating the env/Bedrock gate.
|
|
10
11
|
*/
|
|
11
12
|
export declare function buildAnthropicClient(): Anthropic | null;
|
|
13
|
+
/**
|
|
14
|
+
* Build the provider-agnostic ai-SDK model used by `rephraseWithLLM`'s
|
|
15
|
+
* attempt-5 structured-output call. Unlike {@link buildAnthropicClient},
|
|
16
|
+
* this never returns `null` on a Bedrock-only deployment — it resolves to
|
|
17
|
+
* the Bedrock-backed model (same as the primary act/observe path via
|
|
18
|
+
* `createBedrockModel`) instead of degrading, so Bedrock-only deployments
|
|
19
|
+
* get the same rephrase tier Anthropic-direct deployments already have.
|
|
20
|
+
* Returns `null` only when neither Bedrock nor a direct Anthropic key is
|
|
21
|
+
* configured at all.
|
|
22
|
+
*/
|
|
23
|
+
export declare function buildRephraseModel(): StagehandModel | null;
|
|
12
24
|
//# sourceMappingURL=anthropic-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-client.d.ts","sourceRoot":"","sources":["../../../src/lib/llm/anthropic-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"anthropic-client.d.ts","sourceRoot":"","sources":["../../../src/lib/llm/anthropic-client.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAExE;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,IAAI,SAAS,GAAG,IAAI,CAGvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,GAAG,IAAI,CAS1D"}
|
|
@@ -4,8 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.buildAnthropicClient = buildAnthropicClient;
|
|
7
|
+
exports.buildRephraseModel = buildRephraseModel;
|
|
8
|
+
const anthropic_1 = require("@ai-sdk/anthropic");
|
|
7
9
|
const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
|
|
8
10
|
const config_1 = require("../../config");
|
|
11
|
+
const bedrock_1 = require("../../lib/bedrock");
|
|
9
12
|
/**
|
|
10
13
|
* Build the shared Anthropic client used by the self-heal cascade's LLM
|
|
11
14
|
* techniques (attempt-5 rephrase, replan, judges). Returns `null` on a
|
|
@@ -20,4 +23,26 @@ function buildAnthropicClient() {
|
|
|
20
23
|
return null;
|
|
21
24
|
return new sdk_1.default({ apiKey: config_1.config.scraper.anthropicApiKey });
|
|
22
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Build the provider-agnostic ai-SDK model used by `rephraseWithLLM`'s
|
|
28
|
+
* attempt-5 structured-output call. Unlike {@link buildAnthropicClient},
|
|
29
|
+
* this never returns `null` on a Bedrock-only deployment — it resolves to
|
|
30
|
+
* the Bedrock-backed model (same as the primary act/observe path via
|
|
31
|
+
* `createBedrockModel`) instead of degrading, so Bedrock-only deployments
|
|
32
|
+
* get the same rephrase tier Anthropic-direct deployments already have.
|
|
33
|
+
* Returns `null` only when neither Bedrock nor a direct Anthropic key is
|
|
34
|
+
* configured at all.
|
|
35
|
+
*/
|
|
36
|
+
function buildRephraseModel() {
|
|
37
|
+
if (config_1.config.scraper.useBedrock)
|
|
38
|
+
return (0, bedrock_1.createBedrockModel)(config_1.config.bedrock);
|
|
39
|
+
if (!config_1.config.scraper.anthropicApiKey)
|
|
40
|
+
return null;
|
|
41
|
+
const provider = (0, anthropic_1.createAnthropic)({ apiKey: config_1.config.scraper.anthropicApiKey });
|
|
42
|
+
const rawModel = config_1.config.scraper.model;
|
|
43
|
+
const modelId = rawModel.startsWith("anthropic/")
|
|
44
|
+
? rawModel.slice("anthropic/".length)
|
|
45
|
+
: rawModel;
|
|
46
|
+
return provider.languageModel(modelId);
|
|
47
|
+
}
|
|
23
48
|
//# sourceMappingURL=anthropic-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-client.js","sourceRoot":"","sources":["../../../src/lib/llm/anthropic-client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"anthropic-client.js","sourceRoot":"","sources":["../../../src/lib/llm/anthropic-client.ts"],"names":[],"mappings":";;;;;;;AAAA,iDAAoD;AACpD,4DAA0C;AAE1C,qCAAkC;AAClC,2CAAwE;AAExE;;;;;;;;GAQG;AACH;IACE,IAAI,eAAM,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IAC9E,OAAO,IAAI,aAAS,CAAC,EAAE,MAAM,EAAE,eAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;;GASG;AACH;IACE,IAAI,eAAM,CAAC,OAAO,CAAC,UAAU;QAAE,OAAO,IAAA,4BAAkB,EAAC,eAAM,CAAC,OAAO,CAAC,CAAC;IACzE,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAA,2BAAe,EAAC,EAAE,MAAM,EAAE,eAAM,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,eAAM,CAAC,OAAO,CAAC,KAAK,CAAC;IACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QAC/C,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC;QACrC,CAAC,CAAC,QAAQ,CAAC;IACb,OAAO,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -22,9 +22,10 @@ import type { beaconEventSchema } from "../../lib/telemetry/reconciliation-recor
|
|
|
22
22
|
export type BeaconEventSample = z.infer<typeof beaconEventSchema>;
|
|
23
23
|
/**
|
|
24
24
|
* Input to `captureBeaconEvent` — `ts` and `kind` are derived internally so
|
|
25
|
-
* callers omit them. `sessionIp` is optional
|
|
26
|
-
*
|
|
27
|
-
* persisted as `null`, not
|
|
25
|
+
* callers omit them. `sessionIp` is optional because a plugin-managed beacon
|
|
26
|
+
* outcome (`createBeaconOutcomeRecorder`) has no engine-owned tracking-click
|
|
27
|
+
* session to report an IP for; an omitted value is persisted as `null`, not
|
|
28
|
+
* left undefined.
|
|
28
29
|
*/
|
|
29
30
|
export type BeaconEventInput = Omit<BeaconEventSample, "ts" | "kind" | "sessionIp"> & {
|
|
30
31
|
sessionIp?: BeaconEventSample["sessionIp"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beacon-capture.d.ts","sourceRoot":"","sources":["../../../src/lib/telemetry/beacon-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAO/E,kDAAkD;AAClD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE
|
|
1
|
+
{"version":3,"file":"beacon-capture.d.ts","sourceRoot":"","sources":["../../../src/lib/telemetry/beacon-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAO/E,kDAAkD;AAClD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,EAAE,IAAI,GAAG,MAAM,GAAG,WAAW,CAAC,GAAG;IACpF,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;CAC5C,CAAC;AAEF,wCAAwC;AACxC,MAAM,WAAW,yBAAyB;IACxC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,gBAAgB,EACvB,IAAI,GAAE,yBAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,0GAA0G;AAC1G,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,OAAO,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAC;IAC5E,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC9C,UAAU,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;CAC7C;AAED,0EAA0E;AAC1E,MAAM,MAAM,qBAAqB,GAAG,CAClC,KAAK,EAAE,kBAAkB,EACzB,IAAI,CAAC,EAAE,yBAAyB,KAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,qBAAqB,CAkBvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beacon-capture.js","sourceRoot":"","sources":["../../../src/lib/telemetry/beacon-capture.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;AAEH,uCAAqC;AAGrC,qCAAkC;AAClC,2CAA0C;AAE1C,2EAA8E;AAE9E,MAAM,MAAM,GAAG,IAAA,mBAAS,EAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;AAE/D,MAAM,uBAAuB,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"beacon-capture.js","sourceRoot":"","sources":["../../../src/lib/telemetry/beacon-capture.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;AAEH,uCAAqC;AAGrC,qCAAkC;AAClC,2CAA0C;AAE1C,2EAA8E;AAE9E,MAAM,MAAM,GAAG,IAAA,mBAAS,EAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC;AAE/D,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAsBpC;;;;;;GAMG;AACI,KAAK,6BACV,KAAuB,EACvB,IAAI,GAA8B,EAAE;IAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,eAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC;IACzE,MAAM,MAAM,GAAsB;QAChC,GAAG,KAAK;QACR,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,IAAI,IAAI;QACzE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;QAClC,EAAE,EAAE,IAAA,oBAAS,EAAC,IAAI,IAAI,EAAE,CAAC;KAC1B,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;QAC3C,MAAM,IAAA,6CAAwB,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,0CAA0C,QAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AA6BD;;;;;;;;;;;;GAYG;AACH,qCACE,OAAqC;IAErC,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,MAAM,kBAAkB,CACtB;gBACE,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,YAAY,EAAE,KAAK,CAAC,YAAY;gBAChC,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;gBACtC,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,CAAC;aAClC,EACD,IAAI,CACL,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,gDAAgD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -14,24 +14,11 @@
|
|
|
14
14
|
* mutation of the submit line. A reader folds the two kinds together by
|
|
15
15
|
* `requestId` to reconstruct one reconciliation record per run.
|
|
16
16
|
*
|
|
17
|
-
* `kind` defaults to `"submit"` because `.barnacle/submissions.ndjson`
|
|
18
|
-
* already holds historical unkinded lines that `s3-sink.ts` has shipped to
|
|
19
|
-
* S3 — a required `kind` would make every one of those lines unparseable.
|
|
20
|
-
*
|
|
21
|
-
* `reconciliationRecordSchema`'s preprocess step also folds a legacy
|
|
22
|
-
* top-level `vivclid`/`jobReference` shape into `joinKeys`: before the
|
|
23
|
-
* opaque `joinKeys` bag existed, those two fields were persisted as named
|
|
24
|
-
* top-level keys, and a plain `z.object()` silently drops unrecognized
|
|
25
|
-
* keys — reading an old line through the new schema would otherwise lose
|
|
26
|
-
* its join keys rather than surface them.
|
|
27
|
-
*
|
|
28
17
|
* `session` (on `submitRecordSchema`) and `sessionIp` (on `beaconEventSchema`)
|
|
29
18
|
* carry the Browserbase session's identity and outbound IP so it's durable
|
|
30
19
|
* per-run telemetry rather than only a log line — every plugin acquires its
|
|
31
20
|
* session the same engine-owned way, so this lands here rather than
|
|
32
|
-
* per-plugin.
|
|
33
|
-
* is: millions of already-shipped NDJSON lines (and their S3 mirror) never
|
|
34
|
-
* carried these fields and must keep parsing.
|
|
21
|
+
* per-plugin.
|
|
35
22
|
*/
|
|
36
23
|
import { z } from "zod/v4";
|
|
37
24
|
/**
|
|
@@ -50,20 +37,19 @@ export declare const sessionTelemetrySchema: z.ZodObject<{
|
|
|
50
37
|
export type SessionTelemetry = z.infer<typeof sessionTelemetrySchema>;
|
|
51
38
|
/**
|
|
52
39
|
* Submit-side record: the existing submission envelope shape plus an opaque
|
|
53
|
-
* `joinKeys` bag.
|
|
54
|
-
* carried this field still parse.
|
|
40
|
+
* `joinKeys` bag.
|
|
55
41
|
*/
|
|
56
42
|
export declare const submitRecordSchema: z.ZodObject<{
|
|
57
|
-
kind: z.
|
|
43
|
+
kind: z.ZodLiteral<"submit">;
|
|
58
44
|
siteId: z.ZodString;
|
|
59
45
|
requestId: z.ZodString;
|
|
60
|
-
joinKeys: z.
|
|
61
|
-
session: z.
|
|
46
|
+
joinKeys: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
47
|
+
session: z.ZodNullable<z.ZodObject<{
|
|
62
48
|
id: z.ZodString;
|
|
63
49
|
provider: z.ZodString;
|
|
64
50
|
ip: z.ZodNullable<z.ZodString>;
|
|
65
51
|
ipCapturedAt: z.ZodNullable<z.ZodString>;
|
|
66
|
-
}, z.core.$strip
|
|
52
|
+
}, z.core.$strip>>;
|
|
67
53
|
inboundPayload: z.ZodUnknown;
|
|
68
54
|
status: z.ZodEnum<{
|
|
69
55
|
error: "error";
|
|
@@ -103,28 +89,24 @@ export declare const beaconEventSchema: z.ZodObject<{
|
|
|
103
89
|
trackingUrl: z.ZodNullable<z.ZodString>;
|
|
104
90
|
durationMs: z.ZodNumber;
|
|
105
91
|
ts: z.ZodString;
|
|
106
|
-
sessionIp: z.
|
|
92
|
+
sessionIp: z.ZodNullable<z.ZodString>;
|
|
107
93
|
}, z.core.$strip>;
|
|
108
94
|
export type BeaconEvent = z.infer<typeof beaconEventSchema>;
|
|
109
95
|
/**
|
|
110
96
|
* Routes an NDJSON line to `submitRecordSchema` or `beaconEventSchema` by
|
|
111
|
-
* `kind`.
|
|
112
|
-
* field is absent, because `z.discriminatedUnion` reads the raw input's
|
|
113
|
-
* discriminant directly and won't fall back to a member schema's default —
|
|
114
|
-
* confirmed against zod/v4 3.25.76. Also folds a legacy vivclid/jobReference
|
|
115
|
-
* shape into `joinKeys` (see `withLegacyJoinKeys`) before the union runs.
|
|
97
|
+
* `kind`.
|
|
116
98
|
*/
|
|
117
|
-
export declare const reconciliationRecordSchema: z.
|
|
118
|
-
kind: z.
|
|
99
|
+
export declare const reconciliationRecordSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
100
|
+
kind: z.ZodLiteral<"submit">;
|
|
119
101
|
siteId: z.ZodString;
|
|
120
102
|
requestId: z.ZodString;
|
|
121
|
-
joinKeys: z.
|
|
122
|
-
session: z.
|
|
103
|
+
joinKeys: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
104
|
+
session: z.ZodNullable<z.ZodObject<{
|
|
123
105
|
id: z.ZodString;
|
|
124
106
|
provider: z.ZodString;
|
|
125
107
|
ip: z.ZodNullable<z.ZodString>;
|
|
126
108
|
ipCapturedAt: z.ZodNullable<z.ZodString>;
|
|
127
|
-
}, z.core.$strip
|
|
109
|
+
}, z.core.$strip>>;
|
|
128
110
|
inboundPayload: z.ZodUnknown;
|
|
129
111
|
status: z.ZodEnum<{
|
|
130
112
|
error: "error";
|
|
@@ -147,7 +129,7 @@ export declare const reconciliationRecordSchema: z.ZodPipe<z.ZodTransform<unknow
|
|
|
147
129
|
trackingUrl: z.ZodNullable<z.ZodString>;
|
|
148
130
|
durationMs: z.ZodNumber;
|
|
149
131
|
ts: z.ZodString;
|
|
150
|
-
sessionIp: z.
|
|
151
|
-
}, z.core.$strip>]
|
|
132
|
+
sessionIp: z.ZodNullable<z.ZodString>;
|
|
133
|
+
}, z.core.$strip>]>;
|
|
152
134
|
export type ReconciliationRecord = z.infer<typeof reconciliationRecordSchema>;
|
|
153
135
|
//# sourceMappingURL=reconciliation-record.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconciliation-record.d.ts","sourceRoot":"","sources":["../../../src/lib/telemetry/reconciliation-record.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"reconciliation-record.d.ts","sourceRoot":"","sources":["../../../src/lib/telemetry/reconciliation-record.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;iBAY7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;iBAU5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAGrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
|
|
@@ -15,24 +15,11 @@
|
|
|
15
15
|
* mutation of the submit line. A reader folds the two kinds together by
|
|
16
16
|
* `requestId` to reconstruct one reconciliation record per run.
|
|
17
17
|
*
|
|
18
|
-
* `kind` defaults to `"submit"` because `.barnacle/submissions.ndjson`
|
|
19
|
-
* already holds historical unkinded lines that `s3-sink.ts` has shipped to
|
|
20
|
-
* S3 — a required `kind` would make every one of those lines unparseable.
|
|
21
|
-
*
|
|
22
|
-
* `reconciliationRecordSchema`'s preprocess step also folds a legacy
|
|
23
|
-
* top-level `vivclid`/`jobReference` shape into `joinKeys`: before the
|
|
24
|
-
* opaque `joinKeys` bag existed, those two fields were persisted as named
|
|
25
|
-
* top-level keys, and a plain `z.object()` silently drops unrecognized
|
|
26
|
-
* keys — reading an old line through the new schema would otherwise lose
|
|
27
|
-
* its join keys rather than surface them.
|
|
28
|
-
*
|
|
29
18
|
* `session` (on `submitRecordSchema`) and `sessionIp` (on `beaconEventSchema`)
|
|
30
19
|
* carry the Browserbase session's identity and outbound IP so it's durable
|
|
31
20
|
* per-run telemetry rather than only a log line — every plugin acquires its
|
|
32
21
|
* session the same engine-owned way, so this lands here rather than
|
|
33
|
-
* per-plugin.
|
|
34
|
-
* is: millions of already-shipped NDJSON lines (and their S3 mirror) never
|
|
35
|
-
* carried these fields and must keep parsing.
|
|
22
|
+
* per-plugin.
|
|
36
23
|
*/
|
|
37
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
25
|
exports.reconciliationRecordSchema = exports.beaconEventSchema = exports.submitRecordSchema = exports.sessionTelemetrySchema = void 0;
|
|
@@ -52,15 +39,14 @@ exports.sessionTelemetrySchema = v4_1.z.object({
|
|
|
52
39
|
});
|
|
53
40
|
/**
|
|
54
41
|
* Submit-side record: the existing submission envelope shape plus an opaque
|
|
55
|
-
* `joinKeys` bag.
|
|
56
|
-
* carried this field still parse.
|
|
42
|
+
* `joinKeys` bag.
|
|
57
43
|
*/
|
|
58
44
|
exports.submitRecordSchema = v4_1.z.object({
|
|
59
|
-
kind: v4_1.z.literal("submit")
|
|
45
|
+
kind: v4_1.z.literal("submit"),
|
|
60
46
|
siteId: v4_1.z.string(),
|
|
61
47
|
requestId: v4_1.z.string(),
|
|
62
|
-
joinKeys: v4_1.z.record(v4_1.z.string(), v4_1.z.unknown()).nullable()
|
|
63
|
-
session: exports.sessionTelemetrySchema.nullable()
|
|
48
|
+
joinKeys: v4_1.z.record(v4_1.z.string(), v4_1.z.unknown()).nullable(),
|
|
49
|
+
session: exports.sessionTelemetrySchema.nullable(),
|
|
64
50
|
inboundPayload: v4_1.z.unknown(),
|
|
65
51
|
status: v4_1.z.enum(["submitted", "error"]),
|
|
66
52
|
auditPayload: v4_1.z.unknown(),
|
|
@@ -92,38 +78,14 @@ exports.beaconEventSchema = v4_1.z.object({
|
|
|
92
78
|
trackingUrl: v4_1.z.string().nullable(),
|
|
93
79
|
durationMs: v4_1.z.number(),
|
|
94
80
|
ts: v4_1.z.string(),
|
|
95
|
-
sessionIp: v4_1.z.string().nullable()
|
|
81
|
+
sessionIp: v4_1.z.string().nullable(),
|
|
96
82
|
});
|
|
97
|
-
/**
|
|
98
|
-
* Folds a legacy top-level `vivclid`/`jobReference` shape into `joinKeys`
|
|
99
|
-
* for a line that doesn't already carry `joinKeys`, so historical lines
|
|
100
|
-
* from before the opaque `joinKeys` bag existed still surface their join
|
|
101
|
-
* keys instead of silently losing them to `z.object()`'s unrecognized-key
|
|
102
|
-
* drop. Only synthesizes a non-null bag when a legacy field was actually
|
|
103
|
-
* present, so lines with neither (e.g. sites that never had these fields)
|
|
104
|
-
* still fall through to `joinKeys`'s own `.default(null)`.
|
|
105
|
-
*/
|
|
106
|
-
function withLegacyJoinKeys(value) {
|
|
107
|
-
if ("joinKeys" in value)
|
|
108
|
-
return value;
|
|
109
|
-
const { vivclid, jobReference, ...rest } = value;
|
|
110
|
-
const legacyJoinKeys = vivclid || jobReference
|
|
111
|
-
? { vivclid: vivclid ?? null, jobReference: jobReference ?? null }
|
|
112
|
-
: null;
|
|
113
|
-
return { ...rest, joinKeys: legacyJoinKeys };
|
|
114
|
-
}
|
|
115
83
|
/**
|
|
116
84
|
* Routes an NDJSON line to `submitRecordSchema` or `beaconEventSchema` by
|
|
117
|
-
* `kind`.
|
|
118
|
-
* field is absent, because `z.discriminatedUnion` reads the raw input's
|
|
119
|
-
* discriminant directly and won't fall back to a member schema's default —
|
|
120
|
-
* confirmed against zod/v4 3.25.76. Also folds a legacy vivclid/jobReference
|
|
121
|
-
* shape into `joinKeys` (see `withLegacyJoinKeys`) before the union runs.
|
|
85
|
+
* `kind`.
|
|
122
86
|
*/
|
|
123
|
-
exports.reconciliationRecordSchema = v4_1.z.
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
return withLegacyJoinKeys(withKind);
|
|
128
|
-
}, v4_1.z.discriminatedUnion("kind", [exports.submitRecordSchema, exports.beaconEventSchema]));
|
|
87
|
+
exports.reconciliationRecordSchema = v4_1.z.discriminatedUnion("kind", [
|
|
88
|
+
exports.submitRecordSchema,
|
|
89
|
+
exports.beaconEventSchema,
|
|
90
|
+
]);
|
|
129
91
|
//# sourceMappingURL=reconciliation-record.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconciliation-record.js","sourceRoot":"","sources":["../../../src/lib/telemetry/reconciliation-record.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"reconciliation-record.js","sourceRoot":"","sources":["../../../src/lib/telemetry/reconciliation-record.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AAEH,+BAA2B;AAE3B;;;;;;GAMG;AACU,QAAA,sBAAsB,GAAG,MAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,MAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,MAAC,CAAC,MAAM,EAAE;IACpB,EAAE,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,YAAY,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAIH;;;GAGG;AACU,QAAA,kBAAkB,GAAG,MAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,MAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,MAAM,EAAE,MAAC,CAAC,MAAM,EAAE;IAClB,SAAS,EAAE,MAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,MAAC,CAAC,MAAM,CAAC,MAAC,CAAC,MAAM,EAAE,EAAE,MAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtD,OAAO,EAAE,QAAA,sBAAsB,CAAC,QAAQ,EAAE;IAC1C,cAAc,EAAE,MAAC,CAAC,OAAO,EAAE;IAC3B,MAAM,EAAE,MAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtC,YAAY,EAAE,MAAC,CAAC,OAAO,EAAE;IACzB,YAAY,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,UAAU,EAAE,MAAC,CAAC,MAAM,EAAE;IACtB,EAAE,EAAE,MAAC,CAAC,MAAM,EAAE;CACf,CAAC,CAAC;AAIH;;;;;;;;;;;;;;GAcG;AACU,QAAA,iBAAiB,GAAG,MAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,MAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,SAAS,EAAE,MAAC,CAAC,MAAM,EAAE;IACrB,MAAM,EAAE,MAAC,CAAC,MAAM,EAAE;IAClB,QAAQ,EAAE,MAAC,CAAC,MAAM,CAAC,MAAC,CAAC,MAAM,EAAE,EAAE,MAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtD,YAAY,EAAE,MAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACpD,WAAW,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,MAAC,CAAC,MAAM,EAAE;IACtB,EAAE,EAAE,MAAC,CAAC,MAAM,EAAE;IACd,SAAS,EAAE,MAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAIH;;;GAGG;AACU,QAAA,0BAA0B,GAAG,MAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IACrE,QAAA,kBAAkB;IAClB,QAAA,iBAAiB;CAClB,CAAC,CAAC"}
|
|
@@ -16,20 +16,20 @@ import type { z } from "zod/v4";
|
|
|
16
16
|
* Validated shape of one submission envelope sample. Alias of
|
|
17
17
|
* `submitRecordSchema` (feat-002) kept under its original export name so the
|
|
18
18
|
* five existing test files that import it are unaffected — the reconciliation
|
|
19
|
-
* schema is a strict superset (adds `kind`, `joinKeys`,
|
|
20
|
-
*
|
|
19
|
+
* schema is a strict superset (adds `kind`, `joinKeys`, `session`) of the
|
|
20
|
+
* shape this module used to define standalone.
|
|
21
21
|
*/
|
|
22
22
|
export declare const submissionEnvelopeSampleSchema: z.ZodObject<{
|
|
23
|
-
kind: z.
|
|
23
|
+
kind: z.ZodLiteral<"submit">;
|
|
24
24
|
siteId: z.ZodString;
|
|
25
25
|
requestId: z.ZodString;
|
|
26
|
-
joinKeys: z.
|
|
27
|
-
session: z.
|
|
26
|
+
joinKeys: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
27
|
+
session: z.ZodNullable<z.ZodObject<{
|
|
28
28
|
id: z.ZodString;
|
|
29
29
|
provider: z.ZodString;
|
|
30
30
|
ip: z.ZodNullable<z.ZodString>;
|
|
31
31
|
ipCapturedAt: z.ZodNullable<z.ZodString>;
|
|
32
|
-
}, z.core.$strip
|
|
32
|
+
}, z.core.$strip>>;
|
|
33
33
|
inboundPayload: z.ZodUnknown;
|
|
34
34
|
status: z.ZodEnum<{
|
|
35
35
|
error: "error";
|
|
@@ -43,14 +43,9 @@ export declare const submissionEnvelopeSampleSchema: z.ZodObject<{
|
|
|
43
43
|
export type SubmissionEnvelopeSample = z.infer<typeof submissionEnvelopeSampleSchema>;
|
|
44
44
|
/**
|
|
45
45
|
* Input to `captureSubmissionEnvelope` — `ts` and `kind` are derived
|
|
46
|
-
* internally so callers omit them.
|
|
47
|
-
* existing call sites that don't yet resolve them keep compiling unchanged;
|
|
48
|
-
* an omitted value is persisted as `null`, not left undefined.
|
|
46
|
+
* internally so callers omit them.
|
|
49
47
|
*/
|
|
50
|
-
export type SubmissionEnvelopeInput = Omit<SubmissionEnvelopeSample, "ts" | "kind"
|
|
51
|
-
joinKeys?: Record<string, unknown> | null;
|
|
52
|
-
session?: SubmissionEnvelopeSample["session"];
|
|
53
|
-
};
|
|
48
|
+
export type SubmissionEnvelopeInput = Omit<SubmissionEnvelopeSample, "ts" | "kind">;
|
|
54
49
|
/** Options for `captureSubmissionEnvelope`. */
|
|
55
50
|
export interface CaptureSubmissionOptions {
|
|
56
51
|
/** Override the sink path; used in tests to avoid touching the real file. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submission-capture.d.ts","sourceRoot":"","sources":["../../../src/lib/telemetry/submission-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAShC;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;iBAAqB,CAAC;AAEjE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF
|
|
1
|
+
{"version":3,"file":"submission-capture.d.ts","sourceRoot":"","sources":["../../../src/lib/telemetry/submission-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAShC;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;iBAAqB,CAAC;AAEjE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,wBAAwB,EAAE,IAAI,GAAG,MAAM,CAAC,CAAC;AAEpF,+CAA+C;AAC/C,MAAM,WAAW,wBAAwB;IACvC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5F;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,uBAAuB,EAC9B,IAAI,GAAE,wBAA6B,GAClC,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
@@ -28,8 +28,8 @@ const logger = (0, logging_1.getLogger)({ name: "telemetry/submission-capture" }
|
|
|
28
28
|
* Validated shape of one submission envelope sample. Alias of
|
|
29
29
|
* `submitRecordSchema` (feat-002) kept under its original export name so the
|
|
30
30
|
* five existing test files that import it are unaffected — the reconciliation
|
|
31
|
-
* schema is a strict superset (adds `kind`, `joinKeys`,
|
|
32
|
-
*
|
|
31
|
+
* schema is a strict superset (adds `kind`, `joinKeys`, `session`) of the
|
|
32
|
+
* shape this module used to define standalone.
|
|
33
33
|
*/
|
|
34
34
|
exports.submissionEnvelopeSampleSchema = reconciliation_record_1.submitRecordSchema;
|
|
35
35
|
/**
|
|
@@ -54,8 +54,6 @@ async function captureSubmissionEnvelope(input, opts = {}) {
|
|
|
54
54
|
const sample = {
|
|
55
55
|
...input,
|
|
56
56
|
kind: "submit",
|
|
57
|
-
joinKeys: input.joinKeys ?? null,
|
|
58
|
-
session: input.session ?? null,
|
|
59
57
|
ts: (0, date_fns_1.formatISO)(new Date()),
|
|
60
58
|
};
|
|
61
59
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submission-capture.js","sourceRoot":"","sources":["../../../src/lib/telemetry/submission-capture.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;AAEH,+CAAqD;AACrD,yCAAoC;AAEpC,uCAAqC;AAGrC,qCAAkC;AAClC,2CAA0C;AAC1C,iFAA2E;AAC3E,qDAA+D;AAE/D,MAAM,MAAM,GAAG,IAAA,mBAAS,EAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC,CAAC;AAEnE;;;;;;GAMG;AACU,QAAA,8BAA8B,GAAG,0CAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"submission-capture.js","sourceRoot":"","sources":["../../../src/lib/telemetry/submission-capture.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;AAEH,+CAAqD;AACrD,yCAAoC;AAEpC,uCAAqC;AAGrC,qCAAkC;AAClC,2CAA0C;AAC1C,iFAA2E;AAC3E,qDAA+D;AAE/D,MAAM,MAAM,GAAG,IAAA,mBAAS,EAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC,CAAC;AAEnE;;;;;;GAMG;AACU,QAAA,8BAA8B,GAAG,0CAAkB,CAAC;AAgBjE;;;;;;GAMG;AACI,KAAK,mCAAmC,QAAgB,EAAE,IAAY;IAC3E,MAAM,IAAA,gBAAK,EAAC,IAAA,mBAAO,EAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,IAAA,qBAAU,EAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,IAAA,8BAAoB,EAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACI,KAAK,oCACV,KAA8B,EAC9B,IAAI,GAA6B,EAAE;IAEnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,eAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC;IACzE,MAAM,MAAM,GAA6B;QACvC,GAAG,KAAK;QACR,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,IAAA,oBAAS,EAAC,IAAI,IAAI,EAAE,CAAC;KAC1B,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;QAC3C,MAAM,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,iDAAiD,QAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC"}
|