@nuanu-ai/agentbrowse 0.2.21 → 0.2.22
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 +42 -9
- package/dist/commands/act.d.ts.map +1 -1
- package/dist/commands/act.js +100 -73
- package/dist/commands/action-acceptance.d.ts +4 -1
- package/dist/commands/action-acceptance.d.ts.map +1 -1
- package/dist/commands/action-acceptance.js +127 -37
- package/dist/commands/action-executor-helpers.d.ts.map +1 -1
- package/dist/commands/action-executor-helpers.js +12 -4
- package/dist/commands/action-fallbacks.d.ts.map +1 -1
- package/dist/commands/action-result-resolution.d.ts.map +1 -1
- package/dist/commands/action-result-resolution.js +1 -1
- package/dist/commands/action-value-projection.d.ts.map +1 -1
- package/dist/commands/datepicker-action-executor.d.ts.map +1 -1
- package/dist/commands/datepicker-action-executor.js +1 -1
- package/dist/commands/descriptor-validation.d.ts.map +1 -1
- package/dist/commands/descriptor-validation.js +13 -172
- package/dist/commands/extract-scoped-dialog-text.d.ts.map +1 -1
- package/dist/commands/extract-scoped-dialog-text.js +1 -4
- package/dist/commands/extract-snapshot-sanitizer.d.ts.map +1 -1
- package/dist/commands/extract-stagehand-executor.d.ts.map +1 -1
- package/dist/commands/extract.d.ts.map +1 -1
- package/dist/commands/extract.js +23 -4
- package/dist/commands/observe-accessibility.d.ts +22 -0
- package/dist/commands/observe-accessibility.d.ts.map +1 -0
- package/dist/commands/observe-accessibility.js +497 -0
- package/dist/commands/observe-display-label.d.ts +4 -0
- package/dist/commands/observe-display-label.d.ts.map +1 -0
- package/dist/commands/observe-display-label.js +26 -0
- package/dist/commands/observe-dom-label-contract.d.ts +2 -0
- package/dist/commands/observe-dom-label-contract.d.ts.map +1 -0
- package/dist/commands/observe-dom-label-contract.js +521 -0
- package/dist/commands/observe-fallback-semantics.d.ts +6 -0
- package/dist/commands/observe-fallback-semantics.d.ts.map +1 -0
- package/dist/commands/observe-fallback-semantics.js +86 -0
- package/dist/commands/observe-inventory.d.ts +23 -18
- package/dist/commands/observe-inventory.d.ts.map +1 -1
- package/dist/commands/observe-inventory.js +172 -719
- package/dist/commands/observe-label-policy.d.ts +8 -0
- package/dist/commands/observe-label-policy.d.ts.map +1 -0
- package/dist/commands/observe-label-policy.js +21 -0
- package/dist/commands/observe-page-state.d.ts +1 -1
- package/dist/commands/observe-page-state.d.ts.map +1 -1
- package/dist/commands/observe-persistence.d.ts.map +1 -1
- package/dist/commands/observe-persistence.js +10 -3
- package/dist/commands/observe-projection.d.ts +2 -1
- package/dist/commands/observe-projection.d.ts.map +1 -1
- package/dist/commands/observe-projection.js +5 -2
- package/dist/commands/observe-semantics.d.ts.map +1 -1
- package/dist/commands/observe-semantics.js +18 -1
- package/dist/commands/observe-signals.d.ts +48 -0
- package/dist/commands/observe-signals.d.ts.map +1 -0
- package/dist/commands/observe-signals.js +461 -0
- package/dist/commands/observe-stagehand.d.ts.map +1 -1
- package/dist/commands/observe-stagehand.js +5 -18
- package/dist/commands/observe-surfaces.d.ts.map +1 -1
- package/dist/commands/observe-surfaces.js +5 -4
- package/dist/commands/observe.d.ts +0 -6
- package/dist/commands/observe.d.ts.map +1 -1
- package/dist/commands/observe.js +30 -6
- package/dist/commands/observe.test-harness.d.ts +0 -6
- package/dist/commands/observe.test-harness.d.ts.map +1 -1
- package/dist/commands/screenshot.d.ts.map +1 -1
- package/dist/commands/select-action-executor.d.ts.map +1 -1
- package/dist/commands/select-action-executor.js +1 -1
- package/dist/commands/semantic-observe.d.ts.map +1 -1
- package/dist/commands/semantic-observe.js +1 -4
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/text-input-action-executor.d.ts.map +1 -1
- package/dist/commands/text-input-action-executor.js +1 -1
- package/dist/control-semantics.d.ts.map +1 -1
- package/dist/control-semantics.js +2 -6
- package/dist/playwright-runtime.d.ts.map +1 -1
- package/dist/playwright-runtime.js +3 -4
- package/dist/runtime-state.d.ts +3 -0
- package/dist/runtime-state.d.ts.map +1 -1
- package/dist/runtime-state.js +3 -0
- package/dist/secrets/catalog-applicability.d.ts.map +1 -1
- package/dist/secrets/form-matcher.d.ts.map +1 -1
- package/dist/secrets/form-matcher.js +2 -1
- package/dist/secrets/mock-agentpay-backend.d.ts +1 -1
- package/dist/secrets/mock-agentpay-backend.d.ts.map +1 -1
- package/dist/secrets/mock-agentpay-backend.js +2 -4
- package/dist/secrets/mock-agentpay-cabinet.d.ts.map +1 -1
- package/dist/secrets/mock-agentpay-cabinet.js +6 -1
- package/dist/secrets/protected-field-values.d.ts.map +1 -1
- package/dist/secrets/protected-field-values.js +1 -1
- package/dist/secrets/protected-fill.d.ts.map +1 -1
- package/dist/secrets/protected-fill.js +16 -4
- package/dist/solver/captcha-detector.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type ObservedControlLabelPolicyEvidence = {
|
|
2
|
+
tag?: string;
|
|
3
|
+
role?: string;
|
|
4
|
+
inputType?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare function isButtonLikeObservedInput(evidence: Pick<ObservedControlLabelPolicyEvidence, 'tag' | 'inputType'>): boolean;
|
|
7
|
+
export declare function shouldAllowLooseFieldLabelFallbackForObservedControl(evidence: ObservedControlLabelPolicyEvidence): boolean;
|
|
8
|
+
//# sourceMappingURL=observe-label-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observe-label-policy.d.ts","sourceRoot":"","sources":["../../src/commands/observe-label-policy.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kCAAkC,GAAG;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,IAAI,CAAC,kCAAkC,EAAE,KAAK,GAAG,WAAW,CAAC,GACtE,OAAO,CAQT;AAED,wBAAgB,oDAAoD,CAClE,QAAQ,EAAE,kCAAkC,GAC3C,OAAO,CAgBT"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function isButtonLikeObservedInput(evidence) {
|
|
2
|
+
const tag = (evidence.tag ?? '').trim().toLowerCase();
|
|
3
|
+
if (tag !== 'input') {
|
|
4
|
+
return false;
|
|
5
|
+
}
|
|
6
|
+
const inputType = (evidence.inputType ?? '').trim().toLowerCase() || 'text';
|
|
7
|
+
return inputType === 'button' || inputType === 'submit' || inputType === 'reset';
|
|
8
|
+
}
|
|
9
|
+
export function shouldAllowLooseFieldLabelFallbackForObservedControl(evidence) {
|
|
10
|
+
const tag = (evidence.tag ?? '').trim().toLowerCase();
|
|
11
|
+
const role = (evidence.role ?? '').trim().toLowerCase();
|
|
12
|
+
if (tag === 'input') {
|
|
13
|
+
return !isButtonLikeObservedInput(evidence);
|
|
14
|
+
}
|
|
15
|
+
return (tag === 'textarea' ||
|
|
16
|
+
tag === 'select' ||
|
|
17
|
+
role === 'textbox' ||
|
|
18
|
+
role === 'combobox' ||
|
|
19
|
+
role === 'searchbox' ||
|
|
20
|
+
role === 'spinbutton');
|
|
21
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ObservedPageSignal } from './observe-
|
|
1
|
+
import type { ObservedPageSignal } from './observe-signals.js';
|
|
2
2
|
export type ObservePageSignalLike = Pick<ObservedPageSignal, 'kind' | 'text'>;
|
|
3
3
|
export type ObservePagePhase = 'interactive' | 'validation_error' | 'challenge' | 'processing' | 'terminal_success' | 'terminal_failure' | 'ambiguous';
|
|
4
4
|
export type ObservePageState = {
|
|
@@ -1 +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,
|
|
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,sBAAsB,CAAC;AAE/D,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,CA0FlB;AAED,wBAAgB,qCAAqC,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAEtF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observe-persistence.d.ts","sourceRoot":"","sources":["../../src/commands/observe-persistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AASnD,OAAO,KAAK,EAAoB,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAQhE,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,iBAAiB,EACzB,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"observe-persistence.d.ts","sourceRoot":"","sources":["../../src/commands/observe-persistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AASnD,OAAO,KAAK,EAAoB,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAQhE,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,iBAAiB,EACzB,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAuF/B;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAC5C,OAAO,EAAE,gBAAgB,EAAE,GAC1B,IAAI,CAYN;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC,EACzC,OAAO,CAAC,EAAE;IACR,gBAAgB,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;IACjE,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC1C,GACA;IACD,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CA2DA;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,GAC5D,IAAI,CAsBN;AAUD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAC5C,gBAAgB,EAAE,aAAa,CAAC,gBAAgB,CAAC,EACjD,cAAc,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAChD,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACzC,iBAAiB,EAAE,CAyDrB"}
|
|
@@ -65,7 +65,9 @@ export function toDomDescriptor(pageRef, target, surfaceRefMap) {
|
|
|
65
65
|
role: target.role,
|
|
66
66
|
name: target.label,
|
|
67
67
|
states: target.states,
|
|
68
|
-
source: '
|
|
68
|
+
source: target.semanticsSource === 'aria-snapshot'
|
|
69
|
+
? 'aria-snapshot'
|
|
70
|
+
: 'dom',
|
|
69
71
|
}
|
|
70
72
|
: undefined,
|
|
71
73
|
structure: target.structure,
|
|
@@ -74,6 +76,7 @@ export function toDomDescriptor(pageRef, target, surfaceRefMap) {
|
|
|
74
76
|
lifecycle: 'live',
|
|
75
77
|
availability: target.availability ?? { state: 'available' },
|
|
76
78
|
allowedActions: target.allowedActions ?? [],
|
|
79
|
+
controlFamily: target.controlFamily,
|
|
77
80
|
acceptancePolicy: target.acceptancePolicy,
|
|
78
81
|
surfaceRef: target.surfaceRef ? surfaceRefMap.get(target.surfaceRef) : undefined,
|
|
79
82
|
createdAt: Date.now(),
|
|
@@ -196,7 +199,9 @@ export function linkObservedSurfaceGraph(session, pageRef, domTargets, persisted
|
|
|
196
199
|
const formSurfaceRef = syntheticFormSurfaceId
|
|
197
200
|
? surfaceRefMap.get(syntheticFormSurfaceId)
|
|
198
201
|
: undefined;
|
|
199
|
-
if (!formSurfaceRef ||
|
|
202
|
+
if (!formSurfaceRef ||
|
|
203
|
+
!persistedTarget.surfaceRef ||
|
|
204
|
+
persistedTarget.surfaceRef === formSurfaceRef) {
|
|
200
205
|
continue;
|
|
201
206
|
}
|
|
202
207
|
parentBySurface.set(persistedTarget.surfaceRef, formSurfaceRef);
|
|
@@ -214,7 +219,9 @@ export function linkObservedSurfaceGraph(session, pageRef, domTargets, persisted
|
|
|
214
219
|
childSurfaceRefs: activeSurfaceRefs.has(surface.ref)
|
|
215
220
|
? [...(childRefsByParent.get(surface.ref) ?? [])]
|
|
216
221
|
: [],
|
|
217
|
-
targetRefs: activeSurfaceRefs.has(surface.ref)
|
|
222
|
+
targetRefs: activeSurfaceRefs.has(surface.ref)
|
|
223
|
+
? [...(targetRefsBySurface.get(surface.ref) ?? [])]
|
|
224
|
+
: [],
|
|
218
225
|
};
|
|
219
226
|
}
|
|
220
227
|
return observedScopes.map((scope) => runtime.surfaces[scope.ref] ?? scope);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { SurfaceDescriptor, TargetDescriptor, TargetValidationEvidence } from '../runtime-state.js';
|
|
2
2
|
import type { PersistedFillableForm, ProtectedBindingValueHint } from '../secrets/types.js';
|
|
3
|
-
import type { DomObservedTarget
|
|
3
|
+
import type { DomObservedTarget } from './observe-inventory.js';
|
|
4
|
+
import type { ObservedPageSignal } from './observe-signals.js';
|
|
4
5
|
export type GoalObserveScopeCandidate = {
|
|
5
6
|
goalInventoryType: 'scope';
|
|
6
7
|
goalSurfaceId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observe-projection.d.ts","sourceRoot":"","sources":["../../src/commands/observe-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"observe-projection.d.ts","sourceRoot":"","sources":["../../src/commands/observe-projection.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,7 +45,10 @@ function stripSiblingLabels(value, siblingLabels) {
|
|
|
45
45
|
}
|
|
46
46
|
sanitized = sanitized.replace(new RegExp(escapeRegExp(label), 'gi'), ' ');
|
|
47
47
|
}
|
|
48
|
-
const collapsed = sanitized
|
|
48
|
+
const collapsed = sanitized
|
|
49
|
+
.replace(/\s+[—-]\s+/g, ' ')
|
|
50
|
+
.replace(/\s+/g, ' ')
|
|
51
|
+
.trim();
|
|
49
52
|
return collapsed || undefined;
|
|
50
53
|
}
|
|
51
54
|
function sanitizeGoalTargetContext(target, siblingLabelsByCluster) {
|
|
@@ -234,7 +237,7 @@ export function buildGoalObserveInventoryCandidates(targets, surfaces) {
|
|
|
234
237
|
const surfaceKind = sanitized.surfaceKind ?? (syntheticFormSurfaceId ? 'form' : undefined);
|
|
235
238
|
const surfaceLabel = sanitized.surfaceLabel ??
|
|
236
239
|
(syntheticFormSurfaceId
|
|
237
|
-
? sanitized.context?.landmark?.label ?? sanitized.context?.group?.label ?? 'Form'
|
|
240
|
+
? (sanitized.context?.landmark?.label ?? sanitized.context?.group?.label ?? 'Form')
|
|
238
241
|
: undefined);
|
|
239
242
|
const surfacePriority = sanitized.surfacePriority ?? (surfaceKind === 'form' ? 70 : undefined);
|
|
240
243
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observe-semantics.d.ts","sourceRoot":"","sources":["../../src/commands/observe-semantics.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAYjF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CA6B7E;AAgBD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAQ/E;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAMnE;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC,EACzC,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAChD,iBAAiB,EAAE,CAyCrB;AAkFD,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAChD,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"observe-semantics.d.ts","sourceRoot":"","sources":["../../src/commands/observe-semantics.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAYjF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CA6B7E;AAgBD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAQ/E;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAMnE;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC,EACzC,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAChD,iBAAiB,EAAE,CAyCrB;AAkFD,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAChD,iBAAiB,EAAE,CA+BrB;AAqBD,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC,GACxC,iBAAiB,EAAE,CAuBrB;AAkGD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,EAAE,CAoFjG;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC,GACxC,iBAAiB,EAAE,CAsFrB"}
|
|
@@ -296,6 +296,22 @@ function inferCapability(target, allowedActions) {
|
|
|
296
296
|
export function annotateDomTargets(targets) {
|
|
297
297
|
const annotated = targets.map((target) => {
|
|
298
298
|
const allowedActions = inferAllowedActions(target);
|
|
299
|
+
const controlFamily = inferControlFamilyFromFacts({
|
|
300
|
+
kind: target.kind,
|
|
301
|
+
role: target.role,
|
|
302
|
+
label: target.label,
|
|
303
|
+
displayLabel: target.displayLabel,
|
|
304
|
+
interactionHint: target.interactionHint,
|
|
305
|
+
text: target.text,
|
|
306
|
+
placeholder: target.placeholder,
|
|
307
|
+
inputName: target.inputName,
|
|
308
|
+
inputType: target.inputType,
|
|
309
|
+
autocomplete: target.autocomplete,
|
|
310
|
+
surfaceKind: target.surfaceKind,
|
|
311
|
+
controlsSurfaceSelector: target.controlsSurfaceSelector,
|
|
312
|
+
states: target.states,
|
|
313
|
+
structure: target.structure,
|
|
314
|
+
}, allowedActions);
|
|
299
315
|
const availability = inferAvailability(target);
|
|
300
316
|
const capability = inferCapability(target, allowedActions);
|
|
301
317
|
const acceptancePolicy = inferAcceptancePolicy(target, allowedActions);
|
|
@@ -305,7 +321,7 @@ export function annotateDomTargets(targets) {
|
|
|
305
321
|
const surfaceKind = target.surfaceKind ?? (syntheticFormSurfaceRef ? 'form' : undefined);
|
|
306
322
|
const surfaceLabel = target.surfaceLabel ??
|
|
307
323
|
(syntheticFormSurfaceRef
|
|
308
|
-
? target.context?.landmark?.label ?? target.context?.group?.label ?? 'Form'
|
|
324
|
+
? (target.context?.landmark?.label ?? target.context?.group?.label ?? 'Form')
|
|
309
325
|
: undefined);
|
|
310
326
|
const surfacePriority = target.surfacePriority ?? (surfaceKind === 'form' ? 70 : undefined);
|
|
311
327
|
return {
|
|
@@ -316,6 +332,7 @@ export function annotateDomTargets(targets) {
|
|
|
316
332
|
capability,
|
|
317
333
|
availability,
|
|
318
334
|
allowedActions,
|
|
335
|
+
controlFamily,
|
|
319
336
|
acceptancePolicy,
|
|
320
337
|
surfaceRef,
|
|
321
338
|
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Frame } from 'playwright-core';
|
|
2
|
+
export type ObservedPageSignal = {
|
|
3
|
+
kind: 'status' | 'alert' | 'dialog' | 'notice' | 'outcome';
|
|
4
|
+
text: string;
|
|
5
|
+
framePath?: string[];
|
|
6
|
+
frameUrl?: string;
|
|
7
|
+
source: 'dom';
|
|
8
|
+
};
|
|
9
|
+
type SignalCollectionContext = {
|
|
10
|
+
evaluate<T>(pageFunction: string): Promise<T>;
|
|
11
|
+
};
|
|
12
|
+
export declare function inferObservedSignalKindFromFacts(facts: {
|
|
13
|
+
role?: string;
|
|
14
|
+
ariaLive?: string;
|
|
15
|
+
ariaModal?: boolean;
|
|
16
|
+
ariaBusy?: boolean;
|
|
17
|
+
progressLike?: boolean;
|
|
18
|
+
classBlob?: string;
|
|
19
|
+
}): ObservedPageSignal['kind'];
|
|
20
|
+
export declare function isObservedSignalOutcomeText(text: string | undefined): boolean;
|
|
21
|
+
export declare function shouldUseObservedDecoratedNoticeSurface(facts: {
|
|
22
|
+
hasVisibleInteractiveDescendant?: boolean;
|
|
23
|
+
directSemanticTextCount?: number;
|
|
24
|
+
}): boolean;
|
|
25
|
+
export declare function shouldUseStandaloneOutcomeCandidate(facts: {
|
|
26
|
+
text?: string;
|
|
27
|
+
withinKnownSignalSurface?: boolean;
|
|
28
|
+
hasVisibleInteractiveDescendant?: boolean;
|
|
29
|
+
hasNestedOutcomeCandidate?: boolean;
|
|
30
|
+
maxLength?: number;
|
|
31
|
+
}): boolean;
|
|
32
|
+
declare function collectPageSignalsFromDocument(context: SignalCollectionContext, options?: {
|
|
33
|
+
framePath?: string[];
|
|
34
|
+
frameUrl?: string;
|
|
35
|
+
}): Promise<ObservedPageSignal[]>;
|
|
36
|
+
export declare function collectPageSignals(page: {
|
|
37
|
+
evaluate<T>(pageFunction: string): Promise<T>;
|
|
38
|
+
mainFrame?: () => Frame;
|
|
39
|
+
}): Promise<ObservedPageSignal[]>;
|
|
40
|
+
export declare const __testObserveSignals: {
|
|
41
|
+
collectPageSignalsFromDocument: typeof collectPageSignalsFromDocument;
|
|
42
|
+
inferObservedSignalKindFromFacts: typeof inferObservedSignalKindFromFacts;
|
|
43
|
+
isObservedSignalOutcomeText: typeof isObservedSignalOutcomeText;
|
|
44
|
+
shouldUseObservedDecoratedNoticeSurface: typeof shouldUseObservedDecoratedNoticeSurface;
|
|
45
|
+
shouldUseStandaloneOutcomeCandidate: typeof shouldUseStandaloneOutcomeCandidate;
|
|
46
|
+
};
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=observe-signals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observe-signals.d.ts","sourceRoot":"","sources":["../../src/commands/observe-signals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/C,CAAC;AAQF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAuB7B;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAQ7E;AAED,wBAAgB,uCAAuC,CAAC,KAAK,EAAE;IAC7D,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,GAAG,OAAO,CAQV;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAoBV;AAqCD,iBAAe,8BAA8B,CAC3C,OAAO,EAAE,uBAAuB,EAChC,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAwU/B;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,KAAK,CAAC;CACzB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CA0DhC;AAED,eAAO,MAAM,oBAAoB;;;;;;CAMhC,CAAC"}
|