@nuanu-ai/agentbrowse 0.2.18 → 0.2.19
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/commands/observe-inventory.d.ts +12 -0
- package/dist/commands/observe-inventory.d.ts.map +1 -1
- package/dist/commands/observe-inventory.js +45 -24
- package/dist/commands/observe-page-state.d.ts +11 -0
- package/dist/commands/observe-page-state.d.ts.map +1 -0
- package/dist/commands/observe-page-state.js +89 -0
- package/dist/commands/observe.d.ts +1 -0
- package/dist/commands/observe.d.ts.map +1 -1
- package/dist/commands/observe.js +9 -2
- package/dist/commands/observe.test-harness.d.ts +1 -0
- package/dist/commands/observe.test-harness.d.ts.map +1 -1
- package/dist/runtime-state.d.ts.map +1 -1
- package/dist/runtime-state.js +11 -4
- package/dist/secrets/form-matcher.d.ts.map +1 -1
- package/dist/secrets/form-matcher.js +133 -11
- package/dist/secrets/protected-bindings.d.ts +4 -0
- package/dist/secrets/protected-bindings.d.ts.map +1 -1
- package/dist/secrets/protected-bindings.js +7 -1
- package/package.json +1 -1
|
@@ -70,6 +70,17 @@ export type DomTargetCollectionOptions = {
|
|
|
70
70
|
type DomTargetCollectionContext = {
|
|
71
71
|
evaluate<T>(pageFunction: string): Promise<T>;
|
|
72
72
|
};
|
|
73
|
+
type StructuredCellVariantEvidence = {
|
|
74
|
+
role?: string;
|
|
75
|
+
surfaceKind?: string;
|
|
76
|
+
normalizedLabel?: string;
|
|
77
|
+
className?: string;
|
|
78
|
+
hasSeatAttribute?: boolean;
|
|
79
|
+
hasSeatRowAttribute?: boolean;
|
|
80
|
+
hasSeatColumnAttribute?: boolean;
|
|
81
|
+
hasDateMetadata?: boolean;
|
|
82
|
+
};
|
|
83
|
+
export declare function inferStructuredCellVariantFromEvidence(evidence: StructuredCellVariantEvidence): 'date-cell' | 'seat-cell' | 'grid-cell' | undefined;
|
|
73
84
|
export declare function readStagehandLocatorSnapshot(locator: Locator): Promise<StagehandLocatorSnapshot>;
|
|
74
85
|
declare function readStagehandDomFactsInBrowser(element: Element): StagehandDomFacts | null;
|
|
75
86
|
declare function readStagehandDomFacts(locator: Locator): Promise<StagehandDomFacts | null>;
|
|
@@ -97,6 +108,7 @@ export declare function collectPageSignals(page: {
|
|
|
97
108
|
export declare const __testDomTargetCollection: {
|
|
98
109
|
collectDomTargetsFromDocument: typeof collectDomTargetsFromDocument;
|
|
99
110
|
collectPageSignalsFromDocument: typeof collectPageSignalsFromDocument;
|
|
111
|
+
inferStructuredCellVariantFromEvidence: typeof inferStructuredCellVariantFromEvidence;
|
|
100
112
|
locatorDomSignatureScript: string;
|
|
101
113
|
};
|
|
102
114
|
export declare const __testStagehandDescriptor: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observe-inventory.d.ts","sourceRoot":"","sources":["../../src/commands/observe-inventory.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"observe-inventory.d.ts","sourceRoot":"","sources":["../../src/commands/observe-inventory.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,35 @@ import { LOCATOR_DOM_SIGNATURE_SCRIPT, normalizePageSignature, readLocatorDomSig
|
|
|
3
3
|
import { TRANSPARENT_ACTIONABLE_CONTROL_HELPER_SCRIPT } from './user-actionable.js';
|
|
4
4
|
const DOM_TARGET_COLLECTION_LIMIT = 320;
|
|
5
5
|
const DOM_SIGNAL_COLLECTION_LIMIT = 24;
|
|
6
|
+
export function inferStructuredCellVariantFromEvidence(evidence) {
|
|
7
|
+
const role = (evidence.role ?? '').toLowerCase();
|
|
8
|
+
const surfaceKind = (evidence.surfaceKind ?? '').toLowerCase();
|
|
9
|
+
const normalizedLabel = (evidence.normalizedLabel ?? '').replace(/\s+/g, ' ').trim();
|
|
10
|
+
const className = (evidence.className ?? '').toLowerCase();
|
|
11
|
+
const structuredSurface = surfaceKind === 'grid' || surfaceKind === 'datepicker';
|
|
12
|
+
const hasDateMetadata = evidence.hasDateMetadata === true;
|
|
13
|
+
const hasSeatMetadata = Boolean(evidence.hasSeatAttribute || evidence.hasSeatRowAttribute || evidence.hasSeatColumnAttribute);
|
|
14
|
+
const seatIdentityLike = /(?:\bseat\s*\d{1,3}[a-z]?\b|место\s*\d{1,3}[a-z]?\b|\b\d{1,3}[a-z]\b|\b[a-z]\d{1,3}\b)/i.test(normalizedLabel);
|
|
15
|
+
const seatClassLike = /seat|cabin|fare|row/.test(className);
|
|
16
|
+
const compactDateCellLabel = /^(?:\d{1,2}|january|february|march|april|may|june|july|august|september|october|november|december|январ|феврал|март|апрел|ма[йя]|июн|июл|август|сентябр|октябр|ноябр|декабр)$/i.test(normalizedLabel) ||
|
|
17
|
+
/^(?:\d{1,2}[./-]\d{1,2}(?:[./-]\d{2,4})?)$/.test(normalizedLabel);
|
|
18
|
+
const dateLike = surfaceKind === 'datepicker' ||
|
|
19
|
+
((role === 'gridcell' || structuredSurface || hasDateMetadata) && compactDateCellLabel);
|
|
20
|
+
if (dateLike) {
|
|
21
|
+
return 'date-cell';
|
|
22
|
+
}
|
|
23
|
+
if (seatIdentityLike || hasSeatMetadata) {
|
|
24
|
+
return 'seat-cell';
|
|
25
|
+
}
|
|
26
|
+
if (role === 'gridcell' && seatClassLike) {
|
|
27
|
+
return 'seat-cell';
|
|
28
|
+
}
|
|
29
|
+
if (role === 'gridcell' && structuredSurface) {
|
|
30
|
+
return 'grid-cell';
|
|
31
|
+
}
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
const INFER_STRUCTURED_CELL_VARIANT_HELPER_SCRIPT = `const inferStructuredCellVariantFromEvidence = ${inferStructuredCellVariantFromEvidence.toString()};`;
|
|
6
35
|
function sleep(ms) {
|
|
7
36
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
8
37
|
}
|
|
@@ -408,8 +437,10 @@ async function collectDomTargetsFromDocument(context, options) {
|
|
|
408
437
|
return acc;
|
|
409
438
|
};
|
|
410
439
|
|
|
440
|
+
${TRANSPARENT_ACTIONABLE_CONTROL_HELPER_SCRIPT}
|
|
441
|
+
${INFER_STRUCTURED_CELL_VARIANT_HELPER_SCRIPT}
|
|
442
|
+
|
|
411
443
|
const isVisible = (element) => {
|
|
412
|
-
${TRANSPARENT_ACTIONABLE_CONTROL_HELPER_SCRIPT}
|
|
413
444
|
const style = window.getComputedStyle(element);
|
|
414
445
|
if (
|
|
415
446
|
style.display === 'none' ||
|
|
@@ -1575,17 +1606,6 @@ async function collectDomTargetsFromDocument(context, options) {
|
|
|
1575
1606
|
const surfaceKind = inferSurfaceKind(surface);
|
|
1576
1607
|
const label = labelOf(element) || textOf(element) || '';
|
|
1577
1608
|
const normalizedLabel = label.replace(/\s+/g, ' ').trim();
|
|
1578
|
-
const seatIdentityLike =
|
|
1579
|
-
/(?:\bseat\s*\d{1,3}[a-z]?\b|место\s*\d{1,3}[a-z]?\b|\b\d{1,3}[a-z]\b|\b[a-z]\d{1,3}\b)/i.test(
|
|
1580
|
-
label
|
|
1581
|
-
);
|
|
1582
|
-
const seatLike =
|
|
1583
|
-
seatIdentityLike ||
|
|
1584
|
-
/seat|cabin|fare|row/.test(className) ||
|
|
1585
|
-
element.hasAttribute('data-row') ||
|
|
1586
|
-
element.hasAttribute('data-column') ||
|
|
1587
|
-
element.hasAttribute('data-seat');
|
|
1588
|
-
const structuredSurface = surfaceKind === 'grid' || surfaceKind === 'datepicker';
|
|
1589
1609
|
const explicitDateCellMetadata =
|
|
1590
1610
|
element.hasAttribute('data-day') ||
|
|
1591
1611
|
element.hasAttribute('data-date') ||
|
|
@@ -1597,18 +1617,18 @@ async function collectDomTargetsFromDocument(context, options) {
|
|
|
1597
1617
|
'[data-day], [data-date], [aria-rowindex], [aria-colindex]'
|
|
1598
1618
|
)
|
|
1599
1619
|
);
|
|
1600
|
-
const
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
(
|
|
1608
|
-
|
|
1609
|
-
|
|
1620
|
+
const structuredCellVariant = inferStructuredCellVariantFromEvidence({
|
|
1621
|
+
role,
|
|
1622
|
+
surfaceKind,
|
|
1623
|
+
normalizedLabel,
|
|
1624
|
+
className,
|
|
1625
|
+
hasSeatAttribute: element.hasAttribute('data-seat'),
|
|
1626
|
+
hasSeatRowAttribute: element.hasAttribute('data-row'),
|
|
1627
|
+
hasSeatColumnAttribute: element.hasAttribute('data-column'),
|
|
1628
|
+
hasDateMetadata: explicitDateCellMetadata,
|
|
1629
|
+
});
|
|
1610
1630
|
|
|
1611
|
-
if (!
|
|
1631
|
+
if (!structuredCellVariant) {
|
|
1612
1632
|
return undefined;
|
|
1613
1633
|
}
|
|
1614
1634
|
|
|
@@ -1632,7 +1652,7 @@ async function collectDomTargetsFromDocument(context, options) {
|
|
|
1632
1652
|
|
|
1633
1653
|
return {
|
|
1634
1654
|
family: 'structured-grid',
|
|
1635
|
-
variant:
|
|
1655
|
+
variant: structuredCellVariant,
|
|
1636
1656
|
row,
|
|
1637
1657
|
column,
|
|
1638
1658
|
zone,
|
|
@@ -2986,6 +3006,7 @@ export async function collectPageSignals(page) {
|
|
|
2986
3006
|
export const __testDomTargetCollection = {
|
|
2987
3007
|
collectDomTargetsFromDocument,
|
|
2988
3008
|
collectPageSignalsFromDocument,
|
|
3009
|
+
inferStructuredCellVariantFromEvidence,
|
|
2989
3010
|
locatorDomSignatureScript: LOCATOR_DOM_SIGNATURE_SCRIPT,
|
|
2990
3011
|
};
|
|
2991
3012
|
export const __testStagehandDescriptor = {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ObservedPageSignal } from './observe-inventory.js';
|
|
2
|
+
export type ObservePageSignalLike = Pick<ObservedPageSignal, 'kind' | 'text'>;
|
|
3
|
+
export type ObservePagePhase = 'interactive' | 'validation_error' | 'challenge' | 'processing' | 'terminal_success' | 'terminal_failure' | 'ambiguous';
|
|
4
|
+
export type ObservePageState = {
|
|
5
|
+
phase: ObservePagePhase;
|
|
6
|
+
confidence: 'low' | 'medium' | 'high';
|
|
7
|
+
dominantSignal: ObservePageSignalLike | null;
|
|
8
|
+
};
|
|
9
|
+
export declare function classifyObservePageState(signals: ReadonlyArray<ObservePageSignalLike>): ObservePageState;
|
|
10
|
+
export declare function shouldSuppressFillableFormsForObserve(state: ObservePageState): boolean;
|
|
11
|
+
//# sourceMappingURL=observe-page-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observe-page-state.d.ts","sourceRoot":"","sources":["../../src/commands/observe-page-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAE9E,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,kBAAkB,GAClB,WAAW,GACX,YAAY,GACZ,kBAAkB,GAClB,kBAAkB,GAClB,WAAW,CAAC;AAEhB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,cAAc,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAC9C,CAAC;AAkCF,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,GAC5C,gBAAgB,CAwFlB;AAED,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAEtF"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
const STRONG_SUCCESS_TEXT_RE = /(?:payment\s+(?:successful|received)|receipt\s+sent|thanks?\s+for\s+your\s+order|order\s+(?:confirmed|complete(?:d)?|successful)|purchase\s+(?:complete(?:d)?|successful))/i;
|
|
2
|
+
const STRONG_FAILURE_TEXT_RE = /(?:declin(?:e|ed)|fail(?:ed|ure)|unable\s+to|could\s+not|was\s+not\s+processed|not\s+completed)/i;
|
|
3
|
+
const CHALLENGE_TEXT_RE = /(?:verification|verify|challenge|captcha|authentication|3d\s*secure|3ds|secure\s+code)/i;
|
|
4
|
+
const PROCESSING_TEXT_RE = /(?:processing|pending|loading|checking|please\s+wait|working)/i;
|
|
5
|
+
const VALIDATION_TEXT_RE = /(?:please\s+(?:enter|select|choose|fill)|required|invalid|incorrect|missing|try again|needs?\b)/i;
|
|
6
|
+
const NON_TERMINAL_TEXT_RE = /(?:order summary|recent supporters?|supporters|review your order|verification required)/i;
|
|
7
|
+
const WEAK_SUCCESS_TEXT_RE = /(?:success(?:ful|fully)?|thank\s+you|thanks|confirmed|complete(?:d)?|receipt)/i;
|
|
8
|
+
const STRONG_TERMINAL_SIGNAL_KINDS = new Set(['dialog', 'alert']);
|
|
9
|
+
function normalizeSignalText(text) {
|
|
10
|
+
return (text ?? '').replace(/\s+/g, ' ').trim();
|
|
11
|
+
}
|
|
12
|
+
function findSignal(signals, predicate) {
|
|
13
|
+
for (const signal of signals) {
|
|
14
|
+
if (predicate(signal)) {
|
|
15
|
+
return signal;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
export function classifyObservePageState(signals) {
|
|
21
|
+
const normalizedSignals = signals
|
|
22
|
+
.map((signal) => ({
|
|
23
|
+
kind: signal.kind,
|
|
24
|
+
text: normalizeSignalText(signal.text),
|
|
25
|
+
}))
|
|
26
|
+
.filter((signal) => signal.text.length > 0);
|
|
27
|
+
const strongSuccess = findSignal(normalizedSignals, (signal) => STRONG_TERMINAL_SIGNAL_KINDS.has(signal.kind) &&
|
|
28
|
+
STRONG_SUCCESS_TEXT_RE.test(signal.text) &&
|
|
29
|
+
!NON_TERMINAL_TEXT_RE.test(signal.text));
|
|
30
|
+
if (strongSuccess) {
|
|
31
|
+
return {
|
|
32
|
+
phase: 'terminal_success',
|
|
33
|
+
confidence: 'high',
|
|
34
|
+
dominantSignal: strongSuccess,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const strongFailure = findSignal(normalizedSignals, (signal) => STRONG_TERMINAL_SIGNAL_KINDS.has(signal.kind) &&
|
|
38
|
+
STRONG_FAILURE_TEXT_RE.test(signal.text) &&
|
|
39
|
+
!CHALLENGE_TEXT_RE.test(signal.text));
|
|
40
|
+
if (strongFailure) {
|
|
41
|
+
return {
|
|
42
|
+
phase: 'terminal_failure',
|
|
43
|
+
confidence: 'high',
|
|
44
|
+
dominantSignal: strongFailure,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const validation = findSignal(normalizedSignals, (signal) => VALIDATION_TEXT_RE.test(signal.text) &&
|
|
48
|
+
!STRONG_SUCCESS_TEXT_RE.test(signal.text) &&
|
|
49
|
+
!CHALLENGE_TEXT_RE.test(signal.text));
|
|
50
|
+
if (validation) {
|
|
51
|
+
return {
|
|
52
|
+
phase: 'validation_error',
|
|
53
|
+
confidence: validation.kind === 'alert' ? 'high' : 'medium',
|
|
54
|
+
dominantSignal: validation,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
const challenge = findSignal(normalizedSignals, (signal) => CHALLENGE_TEXT_RE.test(signal.text));
|
|
58
|
+
if (challenge) {
|
|
59
|
+
return {
|
|
60
|
+
phase: 'challenge',
|
|
61
|
+
confidence: challenge.kind === 'dialog' || challenge.kind === 'alert' ? 'high' : 'medium',
|
|
62
|
+
dominantSignal: challenge,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
const processing = findSignal(normalizedSignals, (signal) => PROCESSING_TEXT_RE.test(signal.text));
|
|
66
|
+
if (processing) {
|
|
67
|
+
return {
|
|
68
|
+
phase: 'processing',
|
|
69
|
+
confidence: processing.kind === 'status' ? 'high' : 'medium',
|
|
70
|
+
dominantSignal: processing,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
const weakSuccess = findSignal(normalizedSignals, (signal) => WEAK_SUCCESS_TEXT_RE.test(signal.text) && !NON_TERMINAL_TEXT_RE.test(signal.text));
|
|
74
|
+
if (weakSuccess) {
|
|
75
|
+
return {
|
|
76
|
+
phase: 'ambiguous',
|
|
77
|
+
confidence: 'low',
|
|
78
|
+
dominantSignal: weakSuccess,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
phase: 'interactive',
|
|
83
|
+
confidence: 'low',
|
|
84
|
+
dominantSignal: null,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
export function shouldSuppressFillableFormsForObserve(state) {
|
|
88
|
+
return state.phase === 'terminal_success' && state.confidence === 'high';
|
|
89
|
+
}
|
|
@@ -16,6 +16,7 @@ export declare const __testDomTargetCollection: {
|
|
|
16
16
|
framePath?: string[];
|
|
17
17
|
frameUrl?: string;
|
|
18
18
|
}) => Promise<import("./observe-inventory.js").ObservedPageSignal[]>;
|
|
19
|
+
inferStructuredCellVariantFromEvidence: typeof import("./observe-inventory.js").inferStructuredCellVariantFromEvidence;
|
|
19
20
|
locatorDomSignatureScript: string;
|
|
20
21
|
};
|
|
21
22
|
export declare const __testStagehandDescriptor: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../../src/commands/observe.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"observe.d.ts","sourceRoot":"","sources":["../../src/commands/observe.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAoDnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAU/D,eAAO,MAAM,yBAAyB;;;;iBA+R4zG,CAAC;gBAAwB,CAAC;;;;;iBAAw24E,CAAC;gBAAwB,CAAC;;;;CA/Rzr/E,CAAC;AACtE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGrC,CAAC;AAEF,wBAAsB,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwRzF"}
|
package/dist/commands/observe.js
CHANGED
|
@@ -11,6 +11,7 @@ import { normalizePageSignature } from './descriptor-validation.js';
|
|
|
11
11
|
import { collectDomTargets, collectPageSignals, __testDomTargetCollection as inventoryDomTargetCollection, __testStagehandDescriptor as inventoryStagehandDescriptor, } from './observe-inventory.js';
|
|
12
12
|
import { attachObservedTargetOwners, linkObservedSurfaceGraph, reconcileObservedTargetsForPage, persistObservedSurfacesForPage, toDomDescriptor, } from './observe-persistence.js';
|
|
13
13
|
import { clearProtectedFillableFormsForPage, persistProtectedFillableFormsForPage, } from './observe-protected.js';
|
|
14
|
+
import { classifyObservePageState, shouldSuppressFillableFormsForObserve, } from './observe-page-state.js';
|
|
14
15
|
import { annotateDomTargets, compressSemanticallyDuplicateTargets, expandRerankedFormTargets, orderBySurfaceCompetition, prioritizeGoalActionTargets, } from './observe-semantics.js';
|
|
15
16
|
import { buildGroupedObserveScopes, buildExplicitScopeRefs, buildGoalObserveInventoryCandidates, compactFillableForms, compactSignals, projectPersistedTargetsForGoal, selectTargetsForGoalMatches, } from './observe-projection.js';
|
|
16
17
|
import { collectSurfaceDescriptors, selectScopesForOutput } from './observe-surfaces.js';
|
|
@@ -35,6 +36,7 @@ export async function observe(session, instruction) {
|
|
|
35
36
|
const { url, title } = await syncSessionPage(session, pageRef, page);
|
|
36
37
|
const domTargets = compressSemanticallyDuplicateTargets(orderBySurfaceCompetition(annotateDomTargets(await collectDomTargets(page))));
|
|
37
38
|
const signals = compactSignals(await collectPageSignals(page).catch(() => []));
|
|
39
|
+
const pageState = classifyObservePageState(signals);
|
|
38
40
|
const persisted = persistObservedSurfacesForPage(session, pageRef, domTargets);
|
|
39
41
|
observedScopes = persisted.observedScopes;
|
|
40
42
|
const surfaceRefMap = persisted.surfaceRefMap;
|
|
@@ -43,7 +45,9 @@ export async function observe(session, instruction) {
|
|
|
43
45
|
reconcileObservedTargetsForPage(session, pageRef, targets);
|
|
44
46
|
attachObservedTargetOwners(domTargets, targets);
|
|
45
47
|
observedScopes = linkObservedSurfaceGraph(session, pageRef, domTargets, targets, observedScopes, surfaceRefMap);
|
|
46
|
-
const fillableForms =
|
|
48
|
+
const fillableForms = shouldSuppressFillableFormsForObserve(pageState)
|
|
49
|
+
? clearProtectedFillableFormsForPage(session, pageRef)
|
|
50
|
+
: await persistProtectedFillableFormsForPage(session, pageRef, url, targets, new Date().toISOString());
|
|
47
51
|
saveSession(session);
|
|
48
52
|
disconnectPlaywright(browser);
|
|
49
53
|
browser = null;
|
|
@@ -83,6 +87,7 @@ export async function observe(session, instruction) {
|
|
|
83
87
|
const { url, title } = await syncSessionPage(session, pageRef, page);
|
|
84
88
|
const domTargets = compressSemanticallyDuplicateTargets(orderBySurfaceCompetition(annotateDomTargets(await collectDomTargets(page, { includeActivationAffordances: true }))));
|
|
85
89
|
const signals = compactSignals(await collectPageSignals(page).catch(() => []));
|
|
90
|
+
const pageState = classifyObservePageState(signals);
|
|
86
91
|
const surfaceInputs = collectSurfaceDescriptors(pageRef, domTargets);
|
|
87
92
|
if (domTargets.length > 0) {
|
|
88
93
|
const rerankedCandidates = await rerankDomTargetsForGoal(instruction, buildGoalObserveInventoryCandidates(domTargets, surfaceInputs));
|
|
@@ -98,7 +103,9 @@ export async function observe(session, instruction) {
|
|
|
98
103
|
reconcileObservedTargetsForPage(session, pageRef, targets);
|
|
99
104
|
attachObservedTargetOwners(domTargets, targets);
|
|
100
105
|
observedScopes = linkObservedSurfaceGraph(session, pageRef, domTargets, targets, observedScopes, surfaceRefMap);
|
|
101
|
-
const fillableForms =
|
|
106
|
+
const fillableForms = shouldSuppressFillableFormsForObserve(pageState)
|
|
107
|
+
? clearProtectedFillableFormsForPage(session, pageRef)
|
|
108
|
+
: await persistProtectedFillableFormsForPage(session, pageRef, url, targets, new Date().toISOString());
|
|
102
109
|
if (selectedTargets.length > 0 || selectedSurfaceIds.size > 0) {
|
|
103
110
|
const explicitScopeRefs = buildExplicitScopeRefs(selectedSurfaceIds, surfaceRefMap);
|
|
104
111
|
const projectedTargets = projectPersistedTargetsForGoal(domTargets, targets, selectedTargets);
|
|
@@ -23,6 +23,7 @@ export declare const observe: typeof import("./observe.js").observe, __testDomTa
|
|
|
23
23
|
framePath?: string[];
|
|
24
24
|
frameUrl?: string;
|
|
25
25
|
}) => Promise<import("./observe-inventory.js").ObservedPageSignal[]>;
|
|
26
|
+
inferStructuredCellVariantFromEvidence: typeof import("./observe-inventory.js").inferStructuredCellVariantFromEvidence;
|
|
26
27
|
locatorDomSignatureScript: string;
|
|
27
28
|
}, __testStagehandDescriptor: {
|
|
28
29
|
toStagehandDescriptor: typeof import("./observe-stagehand.js").toStagehandDescriptor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observe.test-harness.d.ts","sourceRoot":"","sources":["../../src/commands/observe.test-harness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,EAAE,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AA0EvC,eAAO,MAAM,kBAAkB,EAAE,MAAiC,CAAC;AACnE,eAAO,MAAM,oBAAoB,EAAE,MAAmC,CAAC;AACvE,eAAO,MAAM,yBAAyB,EAAE,MAAwC,CAAC;AACjF,eAAO,MAAM,eAAe,EAAE,MAA8B,CAAC;AAC7D,eAAO,MAAM,iBAAiB,EAAE,MAAgC,CAAC;AACjE,eAAO,MAAM,cAAc,EAAE,MAA6B,CAAC;AAC3D,eAAO,MAAM,2BAA2B,EAAE,MAA0C,CAAC;AACrF,eAAO,MAAM,eAAe,EAAE,MAA8B,CAAC;AAC7D,eAAO,MAAM,qBAAqB,EAAE,OAAO,EAAgC,CAAC;AA+B5E,eAAO,MAAQ,OAAO,yCAAE,yBAAyB;;;;
|
|
1
|
+
{"version":3,"file":"observe.test-harness.d.ts","sourceRoot":"","sources":["../../src/commands/observe.test-harness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,EAAE,EAAE,MAAM,QAAQ,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AA0EvC,eAAO,MAAM,kBAAkB,EAAE,MAAiC,CAAC;AACnE,eAAO,MAAM,oBAAoB,EAAE,MAAmC,CAAC;AACvE,eAAO,MAAM,yBAAyB,EAAE,MAAwC,CAAC;AACjF,eAAO,MAAM,eAAe,EAAE,MAA8B,CAAC;AAC7D,eAAO,MAAM,iBAAiB,EAAE,MAAgC,CAAC;AACjE,eAAO,MAAM,cAAc,EAAE,MAA6B,CAAC;AAC3D,eAAO,MAAM,2BAA2B,EAAE,MAA0C,CAAC;AACrF,eAAO,MAAM,eAAe,EAAE,MAA8B,CAAC;AAC7D,eAAO,MAAM,qBAAqB,EAAE,OAAO,EAAgC,CAAC;AA+B5E,eAAO,MAAQ,OAAO,yCAAE,yBAAyB;;;;iBAqEqiT,CAAC;gBAAwB,CAAC;;;;;iBAAw24E,CAAC;gBAAwB,CAAC;;;;GArE/7rF,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAE3E,CAAC;AACF,eAAO,MAAQ,0BAA0B;;;;;CAA+C,CAAC;AAMzF,wBAAgB,WAAW,IAAI,aAAa,CAW3C;AAYD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpE,IAAI,EAAE,CAAC,EACP,YAAY,SAAkC,GAC7C,CAAC,GAAG;IAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;CAAE,CAM3C;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAyB9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-state.d.ts","sourceRoot":"","sources":["../src/runtime-state.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runtime-state.d.ts","sourceRoot":"","sources":["../src/runtime-state.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime-state.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolveCachedSecretCatalogForHost } from './secrets/catalog-applicability.js';
|
|
2
|
-
import {
|
|
2
|
+
import { logicalProtectedBindingKey } from './secrets/protected-bindings.js';
|
|
3
3
|
import { inferAcceptancePolicyFromFacts, inferAllowedActionsFromFacts, inferAvailabilityFromFacts, inferControlFamilyFromFacts, } from './control-semantics.js';
|
|
4
4
|
export function locatorCandidateKey(candidate) {
|
|
5
5
|
return [
|
|
@@ -74,7 +74,9 @@ function inferAvailability(descriptor) {
|
|
|
74
74
|
if (descriptor.availability?.state) {
|
|
75
75
|
return descriptor.availability;
|
|
76
76
|
}
|
|
77
|
-
const allowedActions = descriptor.allowedActions
|
|
77
|
+
const allowedActions = descriptor.allowedActions
|
|
78
|
+
? [...descriptor.allowedActions]
|
|
79
|
+
: inferAllowedActions(descriptor);
|
|
78
80
|
const controlFamily = descriptor.controlFamily ?? inferControlFamily(descriptor, allowedActions);
|
|
79
81
|
const acceptancePolicy = descriptor.acceptancePolicy ?? inferAcceptancePolicy(descriptor, allowedActions);
|
|
80
82
|
return inferAvailabilityFromFacts(descriptor.semantics?.states, descriptor.context?.hintText, {
|
|
@@ -85,7 +87,9 @@ function inferAvailability(descriptor) {
|
|
|
85
87
|
});
|
|
86
88
|
}
|
|
87
89
|
function normalizeTargetDescriptor(descriptor, ref) {
|
|
88
|
-
const allowedActions = descriptor.allowedActions
|
|
90
|
+
const allowedActions = descriptor.allowedActions
|
|
91
|
+
? [...descriptor.allowedActions]
|
|
92
|
+
: inferAllowedActions(descriptor);
|
|
89
93
|
return {
|
|
90
94
|
...descriptor,
|
|
91
95
|
ref,
|
|
@@ -448,7 +452,10 @@ export function saveFillableForms(session, forms) {
|
|
|
448
452
|
return forms.map((form) => runtime.fillableForms[form.fillRef]);
|
|
449
453
|
}
|
|
450
454
|
function fillableFormIdentity(form) {
|
|
451
|
-
const fieldsKey = [...form.fields]
|
|
455
|
+
const fieldsKey = [...form.fields]
|
|
456
|
+
.map((field) => logicalProtectedBindingKey(field))
|
|
457
|
+
.sort()
|
|
458
|
+
.join('|');
|
|
452
459
|
return [form.pageRef, form.scopeRef ?? '', form.purpose, fieldsKey].join('||');
|
|
453
460
|
}
|
|
454
461
|
export function replaceFillableFormsForPage(session, pageRef, forms, options = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-matcher.d.ts","sourceRoot":"","sources":["../../src/secrets/form-matcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAA2B,MAAM,qBAAqB,CAAC;AACrF,OAAO,KAAK,EACV,wBAAwB,EAExB,qBAAqB,EACrB,qBAAqB,EAErB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAQpB,KAAK,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;AAEhE,UAAU,cAAc;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAC9C;AAED,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"form-matcher.d.ts","sourceRoot":"","sources":["../../src/secrets/form-matcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAA2B,MAAM,qBAAqB,CAAC;AACrF,OAAO,KAAK,EACV,wBAAwB,EAExB,qBAAqB,EACrB,qBAAqB,EAErB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAQpB,KAAK,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;AAEhE,UAAU,cAAc;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAC9C;AAED,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAgCD,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAC;AAsCH,iBAAS,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAS3D;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAsC1D;AAkYD,iBAAS,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAgBxD;AAED,iBAAS,kBAAkB,CAAC,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,eAAe,EAAE,CAkBvF;AAoFD,iBAAS,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAalF;AAED,iBAAS,gBAAgB,CACvB,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,GACnF,wBAAwB,EAAE,CA6C5B;AA0LD,wBAAsB,mCAAmC,CACvD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,CAAC,gBAAgB,CAAC,EACxC,OAAO,EAAE,qBAAqB,GAAG,IAAI,EACrC,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAqD9B;AAED,eAAO,MAAM,iBAAiB;;;;;;;CAO7B,CAAC"}
|
|
@@ -14,9 +14,14 @@ const PAYMENT_CARD_CORE_FIELD_KEYS = new Set([
|
|
|
14
14
|
]);
|
|
15
15
|
const PAYMENT_CARD_CORE_SIGNAL_RE = /\b(card number|card no|cc-number|cc number|expiration|expiry|exp(?:iry)? date|mm\s*\/\s*yy|security code|cvv|cvc)\b/i;
|
|
16
16
|
const PAYMENT_CARD_NAME_SIGNAL_RE = /\b(cardholder|card holder|name on card|cardholder name|full name)\b/i;
|
|
17
|
+
const EXPLICIT_PAYMENT_CARD_NAME_SIGNAL_RE = /\b(cardholder|card holder|name on card|cardholder name)\b/i;
|
|
17
18
|
const PAYMENT_CARD_PAN_SIGNAL_RE = /\b(card number|card no|cc-number|cc number)\b/i;
|
|
18
19
|
const PAYMENT_CARD_EXP_SIGNAL_RE = /\b(expiration|expiry|exp(?:iry)? date|exp date|mm\s*\/\s*yy|mmyy|mm\/yy)\b/i;
|
|
19
20
|
const PAYMENT_CARD_CVV_SIGNAL_RE = /\b(security code|cvv|cvc)\b/i;
|
|
21
|
+
const STRONG_PAYMENT_CARD_EXP_SIGNAL_RE = /\b(mm\s*\/\s*yy|mmyy|card exp(?:iry)?|card expiration|cc-exp)\b/i;
|
|
22
|
+
const IDENTITY_ANCHOR_SIGNAL_RE = /\b(passport|document(?: number| no)?|id(?: number| no)?|identity(?: number)?|nationality|citizenship|date of birth|birth date|dob|issuing country|country of issue|country\/region of issue|issuing state)\b/i;
|
|
23
|
+
const IDENTITY_NAME_SIGNAL_RE = /\b(first name|last name|given name|family name|surname|full name|middle name|forename)\b/i;
|
|
24
|
+
const IDENTITY_SUPPLEMENTAL_SIGNAL_RE = /\b(issue date|date of issue|expiry date|expiration date|date of expiry)\b/i;
|
|
20
25
|
const protectedFormPlanSchema = z.object({
|
|
21
26
|
confidence: z.enum(['high', 'medium', 'low']),
|
|
22
27
|
bindings: z
|
|
@@ -258,6 +263,114 @@ function deterministicPaymentCardPlan(plannerGroup, fullGroup) {
|
|
|
258
263
|
fields: dropSuspiciousIframePaymentCardBindings(sortedBindings, fullGroup, targetByRef),
|
|
259
264
|
};
|
|
260
265
|
}
|
|
266
|
+
function targetLooksLikeExplicitPaymentCardTarget(target) {
|
|
267
|
+
const autocomplete = normalizeText(target.autocomplete);
|
|
268
|
+
const inputName = normalizeText(target.inputName);
|
|
269
|
+
const signals = localSignalValuesOf(target);
|
|
270
|
+
const frameKey = normalizeText(frameKeyOf(target) ?? undefined);
|
|
271
|
+
if (autocomplete.includes('cc-number') ||
|
|
272
|
+
autocomplete.includes('cc-exp') ||
|
|
273
|
+
autocomplete.includes('cc-csc') ||
|
|
274
|
+
autocomplete.includes('cc-name')) {
|
|
275
|
+
return true;
|
|
276
|
+
}
|
|
277
|
+
if (signals.some((signal) => PAYMENT_CARD_PAN_SIGNAL_RE.test(signal))) {
|
|
278
|
+
return true;
|
|
279
|
+
}
|
|
280
|
+
if (signals.some((signal) => PAYMENT_CARD_CVV_SIGNAL_RE.test(signal))) {
|
|
281
|
+
return true;
|
|
282
|
+
}
|
|
283
|
+
if (signals.some((signal) => EXPLICIT_PAYMENT_CARD_NAME_SIGNAL_RE.test(signal))) {
|
|
284
|
+
return true;
|
|
285
|
+
}
|
|
286
|
+
if (signals.some((signal) => STRONG_PAYMENT_CARD_EXP_SIGNAL_RE.test(signal))) {
|
|
287
|
+
return true;
|
|
288
|
+
}
|
|
289
|
+
if (/\b(card(number)?|cc-?number|cardholder|card-holder|cc-name|cvv|cvc|security)\b/.test(inputName)) {
|
|
290
|
+
return true;
|
|
291
|
+
}
|
|
292
|
+
if (/\bcc[-_ ]?exp\b/.test(inputName)) {
|
|
293
|
+
return true;
|
|
294
|
+
}
|
|
295
|
+
return /\bcard[-_ ]?(number|expiry|exp|cvc|cvv|security|holder)\b/.test(frameKey);
|
|
296
|
+
}
|
|
297
|
+
function targetLooksLikeExplicitPaymentCardCoreTarget(target) {
|
|
298
|
+
const autocomplete = normalizeText(target.autocomplete);
|
|
299
|
+
const inputName = normalizeText(target.inputName);
|
|
300
|
+
const signals = localSignalValuesOf(target);
|
|
301
|
+
const frameKey = normalizeText(frameKeyOf(target) ?? undefined);
|
|
302
|
+
if (autocomplete.includes('cc-number') ||
|
|
303
|
+
autocomplete.includes('cc-exp') ||
|
|
304
|
+
autocomplete.includes('cc-csc')) {
|
|
305
|
+
return true;
|
|
306
|
+
}
|
|
307
|
+
if (signals.some((signal) => PAYMENT_CARD_PAN_SIGNAL_RE.test(signal))) {
|
|
308
|
+
return true;
|
|
309
|
+
}
|
|
310
|
+
if (signals.some((signal) => PAYMENT_CARD_CVV_SIGNAL_RE.test(signal))) {
|
|
311
|
+
return true;
|
|
312
|
+
}
|
|
313
|
+
if (signals.some((signal) => STRONG_PAYMENT_CARD_EXP_SIGNAL_RE.test(signal))) {
|
|
314
|
+
return true;
|
|
315
|
+
}
|
|
316
|
+
if (/\b(card(number)?|cc-?number|cvv|cvc|security)\b/.test(inputName)) {
|
|
317
|
+
return true;
|
|
318
|
+
}
|
|
319
|
+
if (/\bcc[-_ ]?exp\b/.test(inputName)) {
|
|
320
|
+
return true;
|
|
321
|
+
}
|
|
322
|
+
return /\bcard[-_ ]?(number|expiry|exp|cvc|cvv|security)\b/.test(frameKey);
|
|
323
|
+
}
|
|
324
|
+
function targetLooksLikeIdentityAnchorTarget(target) {
|
|
325
|
+
const autocomplete = normalizeText(target.autocomplete);
|
|
326
|
+
const inputName = normalizeText(target.inputName);
|
|
327
|
+
const signals = localSignalValuesOf(target);
|
|
328
|
+
if (autocomplete.includes('bday')) {
|
|
329
|
+
return true;
|
|
330
|
+
}
|
|
331
|
+
if (/\b(passport|document|identity|nationality|citizenship|birth|dob|issuing)\b/.test(inputName)) {
|
|
332
|
+
return true;
|
|
333
|
+
}
|
|
334
|
+
return signals.some((signal) => IDENTITY_ANCHOR_SIGNAL_RE.test(signal));
|
|
335
|
+
}
|
|
336
|
+
function targetLooksLikeIdentitySupplementalTarget(target) {
|
|
337
|
+
if (targetLooksLikeExplicitPaymentCardTarget(target)) {
|
|
338
|
+
return false;
|
|
339
|
+
}
|
|
340
|
+
const inputName = normalizeText(target.inputName);
|
|
341
|
+
const signals = localSignalValuesOf(target);
|
|
342
|
+
if (/\b(issue|expiry|expiration)(?:_?date)?\b/.test(inputName)) {
|
|
343
|
+
return true;
|
|
344
|
+
}
|
|
345
|
+
return signals.some((signal) => IDENTITY_SUPPLEMENTAL_SIGNAL_RE.test(signal));
|
|
346
|
+
}
|
|
347
|
+
function targetLooksLikeIdentityNameTarget(target) {
|
|
348
|
+
if (targetLooksLikeExplicitPaymentCardTarget(target)) {
|
|
349
|
+
return false;
|
|
350
|
+
}
|
|
351
|
+
const inputName = normalizeText(target.inputName);
|
|
352
|
+
const signals = localSignalValuesOf(target);
|
|
353
|
+
if (/\b(first|last|given|family|surname|forename|middle|full)_?name\b/.test(inputName)) {
|
|
354
|
+
return true;
|
|
355
|
+
}
|
|
356
|
+
return signals.some((signal) => IDENTITY_NAME_SIGNAL_RE.test(signal));
|
|
357
|
+
}
|
|
358
|
+
function identityPlannerGroup(group) {
|
|
359
|
+
const identityAnchorTargets = group.targets.filter((target) => !targetLooksLikeExplicitPaymentCardTarget(target) && targetLooksLikeIdentityAnchorTarget(target));
|
|
360
|
+
if (identityAnchorTargets.length === 0) {
|
|
361
|
+
return null;
|
|
362
|
+
}
|
|
363
|
+
const nameTargets = group.targets.filter(targetLooksLikeIdentityNameTarget);
|
|
364
|
+
const supplementalTargets = group.targets.filter(targetLooksLikeIdentitySupplementalTarget);
|
|
365
|
+
const targetByRef = new Map();
|
|
366
|
+
for (const target of [...nameTargets, ...identityAnchorTargets, ...supplementalTargets]) {
|
|
367
|
+
targetByRef.set(target.ref, target);
|
|
368
|
+
}
|
|
369
|
+
return {
|
|
370
|
+
groupKey: group.groupKey,
|
|
371
|
+
targets: [...targetByRef.values()],
|
|
372
|
+
};
|
|
373
|
+
}
|
|
261
374
|
function plannerGroupForKind(kind, group) {
|
|
262
375
|
switch (kind) {
|
|
263
376
|
case 'payment_card': {
|
|
@@ -265,8 +378,8 @@ function plannerGroupForKind(kind, group) {
|
|
|
265
378
|
if (relevantTargets.length === 0) {
|
|
266
379
|
return null;
|
|
267
380
|
}
|
|
268
|
-
const
|
|
269
|
-
if (!
|
|
381
|
+
const hasCoreAnchor = relevantTargets.some((target) => targetLooksLikeExplicitPaymentCardCoreTarget(target));
|
|
382
|
+
if (!hasCoreAnchor) {
|
|
270
383
|
return null;
|
|
271
384
|
}
|
|
272
385
|
return {
|
|
@@ -274,6 +387,8 @@ function plannerGroupForKind(kind, group) {
|
|
|
274
387
|
targets: relevantTargets,
|
|
275
388
|
};
|
|
276
389
|
}
|
|
390
|
+
case 'identity':
|
|
391
|
+
return identityPlannerGroup(group);
|
|
277
392
|
default:
|
|
278
393
|
return group;
|
|
279
394
|
}
|
|
@@ -522,13 +637,9 @@ function purposesByPriority(catalog) {
|
|
|
522
637
|
const orderedKinds = ['login', 'identity', 'payment_card'];
|
|
523
638
|
return orderedKinds.filter((kind) => hasApplicableStoredSecretKind(catalog, kind));
|
|
524
639
|
}
|
|
525
|
-
async function planBindingsForGroup(client, kind,
|
|
526
|
-
const plannerGroup = plannerGroupForKind(kind, group);
|
|
527
|
-
if (!plannerGroup) {
|
|
528
|
-
return null;
|
|
529
|
-
}
|
|
640
|
+
async function planBindingsForGroup(client, kind, plannerGroup, fullGroup) {
|
|
530
641
|
if (kind === 'payment_card') {
|
|
531
|
-
const deterministicPlan = deterministicPaymentCardPlan(plannerGroup,
|
|
642
|
+
const deterministicPlan = deterministicPaymentCardPlan(plannerGroup, fullGroup);
|
|
532
643
|
if (deterministicPlan) {
|
|
533
644
|
return deterministicPlan;
|
|
534
645
|
}
|
|
@@ -546,10 +657,21 @@ async function planBindingsForGroup(client, kind, group) {
|
|
|
546
657
|
return {
|
|
547
658
|
confidence: result.data.confidence,
|
|
548
659
|
fields: kind === 'payment_card'
|
|
549
|
-
? dropSuspiciousIframePaymentCardBindings(sanitizeBindings(kind, plannerGroup, result.data.bindings),
|
|
660
|
+
? dropSuspiciousIframePaymentCardBindings(sanitizeBindings(kind, plannerGroup, result.data.bindings), fullGroup, new Map(fullGroup.targets.map((target) => [target.ref, target])))
|
|
550
661
|
: sanitizeBindings(kind, plannerGroup, result.data.bindings),
|
|
551
662
|
};
|
|
552
663
|
}
|
|
664
|
+
function plannerGroupsForCatalog(group, catalog) {
|
|
665
|
+
const candidates = [];
|
|
666
|
+
for (const kind of purposesByPriority(catalog)) {
|
|
667
|
+
const plannerGroup = plannerGroupForKind(kind, group);
|
|
668
|
+
if (!plannerGroup || plannerGroup.targets.length === 0) {
|
|
669
|
+
continue;
|
|
670
|
+
}
|
|
671
|
+
candidates.push({ kind, plannerGroup });
|
|
672
|
+
}
|
|
673
|
+
return candidates;
|
|
674
|
+
}
|
|
553
675
|
export async function matchStoredSecretsToObservedTargets(pageRef, targets, catalog, options = {}) {
|
|
554
676
|
if (!catalog) {
|
|
555
677
|
return [];
|
|
@@ -564,8 +686,8 @@ export async function matchStoredSecretsToObservedTargets(pageRef, targets, cata
|
|
|
564
686
|
const nextObservedAt = options.observedAt ?? new Date().toISOString();
|
|
565
687
|
const forms = [];
|
|
566
688
|
for (const group of groups) {
|
|
567
|
-
for (const kind of
|
|
568
|
-
const planned = await planBindingsForGroup(client, kind, group).catch(() => null);
|
|
689
|
+
for (const { kind, plannerGroup } of plannerGroupsForCatalog(group, catalog)) {
|
|
690
|
+
const planned = await planBindingsForGroup(client, kind, plannerGroup, group).catch(() => null);
|
|
569
691
|
if (!planned || planned.confidence === 'low') {
|
|
570
692
|
continue;
|
|
571
693
|
}
|
|
@@ -7,4 +7,8 @@ export declare function protectedBindingKey(binding: {
|
|
|
7
7
|
fieldKey: string;
|
|
8
8
|
valueHint?: string | null;
|
|
9
9
|
}): string;
|
|
10
|
+
export declare function logicalProtectedBindingKey(binding: {
|
|
11
|
+
fieldKey: string;
|
|
12
|
+
valueHint?: string | null;
|
|
13
|
+
}): string;
|
|
10
14
|
//# sourceMappingURL=protected-bindings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protected-bindings.d.ts","sourceRoot":"","sources":["../../src/secrets/protected-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"protected-bindings.d.ts","sourceRoot":"","sources":["../../src/secrets/protected-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAiC,KAAK,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAE3F,eAAO,MAAM,+BAA+B,8DAAwC,CAAC;AAErF,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,yBAAyB,CAS3B;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,GAAG,MAAM,CAMT;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,GAAG,MAAM,CAKT"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { PROTECTED_BINDING_VALUE_HINTS
|
|
2
|
+
import { PROTECTED_BINDING_VALUE_HINTS } from './types.js';
|
|
3
3
|
export const protectedBindingValueHintSchema = z.enum(PROTECTED_BINDING_VALUE_HINTS);
|
|
4
4
|
export function normalizeProtectedBindingValueHint(fieldKey, valueHint) {
|
|
5
5
|
if (fieldKey === 'full_name' &&
|
|
@@ -15,3 +15,9 @@ export function protectedBindingKey(binding) {
|
|
|
15
15
|
normalizeProtectedBindingValueHint(binding.fieldKey, binding.valueHint),
|
|
16
16
|
].join(':');
|
|
17
17
|
}
|
|
18
|
+
export function logicalProtectedBindingKey(binding) {
|
|
19
|
+
return [
|
|
20
|
+
binding.fieldKey,
|
|
21
|
+
normalizeProtectedBindingValueHint(binding.fieldKey, binding.valueHint),
|
|
22
|
+
].join(':');
|
|
23
|
+
}
|
package/package.json
CHANGED