@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.
Files changed (90) hide show
  1. package/README.md +42 -9
  2. package/dist/commands/act.d.ts.map +1 -1
  3. package/dist/commands/act.js +100 -73
  4. package/dist/commands/action-acceptance.d.ts +4 -1
  5. package/dist/commands/action-acceptance.d.ts.map +1 -1
  6. package/dist/commands/action-acceptance.js +127 -37
  7. package/dist/commands/action-executor-helpers.d.ts.map +1 -1
  8. package/dist/commands/action-executor-helpers.js +12 -4
  9. package/dist/commands/action-fallbacks.d.ts.map +1 -1
  10. package/dist/commands/action-result-resolution.d.ts.map +1 -1
  11. package/dist/commands/action-result-resolution.js +1 -1
  12. package/dist/commands/action-value-projection.d.ts.map +1 -1
  13. package/dist/commands/datepicker-action-executor.d.ts.map +1 -1
  14. package/dist/commands/datepicker-action-executor.js +1 -1
  15. package/dist/commands/descriptor-validation.d.ts.map +1 -1
  16. package/dist/commands/descriptor-validation.js +13 -172
  17. package/dist/commands/extract-scoped-dialog-text.d.ts.map +1 -1
  18. package/dist/commands/extract-scoped-dialog-text.js +1 -4
  19. package/dist/commands/extract-snapshot-sanitizer.d.ts.map +1 -1
  20. package/dist/commands/extract-stagehand-executor.d.ts.map +1 -1
  21. package/dist/commands/extract.d.ts.map +1 -1
  22. package/dist/commands/extract.js +23 -4
  23. package/dist/commands/observe-accessibility.d.ts +22 -0
  24. package/dist/commands/observe-accessibility.d.ts.map +1 -0
  25. package/dist/commands/observe-accessibility.js +497 -0
  26. package/dist/commands/observe-display-label.d.ts +4 -0
  27. package/dist/commands/observe-display-label.d.ts.map +1 -0
  28. package/dist/commands/observe-display-label.js +26 -0
  29. package/dist/commands/observe-dom-label-contract.d.ts +2 -0
  30. package/dist/commands/observe-dom-label-contract.d.ts.map +1 -0
  31. package/dist/commands/observe-dom-label-contract.js +521 -0
  32. package/dist/commands/observe-fallback-semantics.d.ts +6 -0
  33. package/dist/commands/observe-fallback-semantics.d.ts.map +1 -0
  34. package/dist/commands/observe-fallback-semantics.js +86 -0
  35. package/dist/commands/observe-inventory.d.ts +23 -18
  36. package/dist/commands/observe-inventory.d.ts.map +1 -1
  37. package/dist/commands/observe-inventory.js +172 -719
  38. package/dist/commands/observe-label-policy.d.ts +8 -0
  39. package/dist/commands/observe-label-policy.d.ts.map +1 -0
  40. package/dist/commands/observe-label-policy.js +21 -0
  41. package/dist/commands/observe-page-state.d.ts +1 -1
  42. package/dist/commands/observe-page-state.d.ts.map +1 -1
  43. package/dist/commands/observe-persistence.d.ts.map +1 -1
  44. package/dist/commands/observe-persistence.js +10 -3
  45. package/dist/commands/observe-projection.d.ts +2 -1
  46. package/dist/commands/observe-projection.d.ts.map +1 -1
  47. package/dist/commands/observe-projection.js +5 -2
  48. package/dist/commands/observe-semantics.d.ts.map +1 -1
  49. package/dist/commands/observe-semantics.js +18 -1
  50. package/dist/commands/observe-signals.d.ts +48 -0
  51. package/dist/commands/observe-signals.d.ts.map +1 -0
  52. package/dist/commands/observe-signals.js +461 -0
  53. package/dist/commands/observe-stagehand.d.ts.map +1 -1
  54. package/dist/commands/observe-stagehand.js +5 -18
  55. package/dist/commands/observe-surfaces.d.ts.map +1 -1
  56. package/dist/commands/observe-surfaces.js +5 -4
  57. package/dist/commands/observe.d.ts +0 -6
  58. package/dist/commands/observe.d.ts.map +1 -1
  59. package/dist/commands/observe.js +30 -6
  60. package/dist/commands/observe.test-harness.d.ts +0 -6
  61. package/dist/commands/observe.test-harness.d.ts.map +1 -1
  62. package/dist/commands/screenshot.d.ts.map +1 -1
  63. package/dist/commands/select-action-executor.d.ts.map +1 -1
  64. package/dist/commands/select-action-executor.js +1 -1
  65. package/dist/commands/semantic-observe.d.ts.map +1 -1
  66. package/dist/commands/semantic-observe.js +1 -4
  67. package/dist/commands/status.d.ts.map +1 -1
  68. package/dist/commands/text-input-action-executor.d.ts.map +1 -1
  69. package/dist/commands/text-input-action-executor.js +1 -1
  70. package/dist/control-semantics.d.ts.map +1 -1
  71. package/dist/control-semantics.js +2 -6
  72. package/dist/playwright-runtime.d.ts.map +1 -1
  73. package/dist/playwright-runtime.js +3 -4
  74. package/dist/runtime-state.d.ts +3 -0
  75. package/dist/runtime-state.d.ts.map +1 -1
  76. package/dist/runtime-state.js +3 -0
  77. package/dist/secrets/catalog-applicability.d.ts.map +1 -1
  78. package/dist/secrets/form-matcher.d.ts.map +1 -1
  79. package/dist/secrets/form-matcher.js +2 -1
  80. package/dist/secrets/mock-agentpay-backend.d.ts +1 -1
  81. package/dist/secrets/mock-agentpay-backend.d.ts.map +1 -1
  82. package/dist/secrets/mock-agentpay-backend.js +2 -4
  83. package/dist/secrets/mock-agentpay-cabinet.d.ts.map +1 -1
  84. package/dist/secrets/mock-agentpay-cabinet.js +6 -1
  85. package/dist/secrets/protected-field-values.d.ts.map +1 -1
  86. package/dist/secrets/protected-field-values.js +1 -1
  87. package/dist/secrets/protected-fill.d.ts.map +1 -1
  88. package/dist/secrets/protected-fill.js +16 -4
  89. package/dist/solver/captcha-detector.d.ts.map +1 -1
  90. 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-inventory.js';
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,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"}
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,CAmF/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,CAgEA;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,CAmDrB"}
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: 'dom',
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 || !persistedTarget.surfaceRef || persistedTarget.surfaceRef === 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) ? [...(targetRefsBySurface.get(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, ObservedPageSignal } from './observe-inventory.js';
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":"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"}
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.replace(/\s+[—-]\s+/g, ' ').replace(/\s+/g, ' ').trim();
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,CA6BrB;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,CAiEjG;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC,GACxC,iBAAiB,EAAE,CAsFrB"}
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"}