@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
@@ -1,6 +1,7 @@
1
1
  import { getSurface, getTarget } from '../runtime-state.js';
2
2
  import { inferComparableValueTypeFromFacts, } from '../control-semantics.js';
3
3
  import { buildLocator, resolveLocatorRoot } from './action-fallbacks.js';
4
+ import { OBSERVE_DOM_LABEL_CONTRACT_HELPER_SCRIPT } from './observe-dom-label-contract.js';
4
5
  import { resolveSurfaceScopeRoot } from './target-resolution.js';
5
6
  import { isLocatorUserActionable } from './user-actionable.js';
6
7
  const ACTION_CANDIDATE_PRIORITY = {
@@ -78,7 +79,7 @@ const PAGE_OBSERVATION_SCRIPT = String.raw `(() => {
78
79
  }
79
80
 
80
81
  const style = element.ownerDocument?.defaultView?.getComputedStyle(element);
81
- if (!style || style.display === 'none' || style.visibility === 'hidden') {
82
+ if (!style || style.display === 'none' || style.visibility !== 'visible') {
82
83
  return false;
83
84
  }
84
85
 
@@ -474,7 +475,7 @@ const NO_PROGRESS_PAGE_SIGNALS_SCRIPT = String.raw `(() => {
474
475
  }
475
476
 
476
477
  const style = element.ownerDocument?.defaultView?.getComputedStyle(element);
477
- if (!style || style.display === 'none' || style.visibility === 'hidden') {
478
+ if (!style || style.display === 'none' || style.visibility !== 'visible') {
478
479
  return false;
479
480
  }
480
481
 
@@ -698,6 +699,9 @@ export function shouldVerifyObservableProgress(target, action) {
698
699
  if (action === 'fill' || action === 'type') {
699
700
  return false;
700
701
  }
702
+ if (action === 'press' && isEditableLikeTarget(target)) {
703
+ return false;
704
+ }
701
705
  return action === 'click' || action === 'press' || action === 'select';
702
706
  }
703
707
  function isEditableLikeTarget(target) {
@@ -724,6 +728,9 @@ function isSelectableChoiceTarget(target) {
724
728
  target.structure?.family === 'structured-grid');
725
729
  }
726
730
  function acceptancePolicyForAction(target, action) {
731
+ if (action === 'press' && isEditableLikeTarget(target)) {
732
+ return undefined;
733
+ }
727
734
  if (action === 'select') {
728
735
  if (target.controlFamily === 'datepicker') {
729
736
  return 'date-selection';
@@ -770,9 +777,7 @@ function trackedStateKeys(target, action, policy) {
770
777
  }
771
778
  export async function capturePageObservation(page) {
772
779
  const snapshot = typeof page.evaluate === 'function'
773
- ? await page
774
- .evaluate(PAGE_OBSERVATION_SCRIPT)
775
- .catch(() => '')
780
+ ? await Promise.resolve(page.evaluate(PAGE_OBSERVATION_SCRIPT)).catch(() => '')
776
781
  : '';
777
782
  const contentSnapshot = typeof snapshot === 'string' ? snapshot : (snapshot?.content ?? '');
778
783
  const structureSnapshot = typeof snapshot === 'string' ? '' : (snapshot?.structure ?? '');
@@ -823,7 +828,10 @@ export async function captureLocatorContextHash(locator) {
823
828
  '@role="tabpanel" or @role="dialog" or @role="listbox" or @role="menu" or @role="grid" or ' +
824
829
  'self::article or self::li or self::tr or self::td or self::section or self::form' +
825
830
  '][1]');
826
- candidates.push(typeof ancestorContext.first === 'function' ? ancestorContext.first() : ancestorContext);
831
+ const ancestorCount = await ancestorContext.count().catch(() => 0);
832
+ if (ancestorCount > 0) {
833
+ candidates.push(typeof ancestorContext.first === 'function' ? ancestorContext.first() : ancestorContext);
834
+ }
827
835
  }
828
836
  candidates.push(typeof locator.first === 'function' ? locator.first() : locator);
829
837
  for (const candidate of candidates) {
@@ -834,17 +842,49 @@ export async function captureLocatorContextHash(locator) {
834
842
  }
835
843
  return null;
836
844
  }
845
+ async function shouldProbePopupCurrentValue(locator) {
846
+ const readAttribute = async (name) => {
847
+ if (typeof locator.getAttribute !== 'function') {
848
+ return null;
849
+ }
850
+ return locator.getAttribute(name).catch(() => null);
851
+ };
852
+ const [role, ariaHasPopup, ariaControls, ariaExpanded] = await Promise.all([
853
+ readAttribute('role'),
854
+ readAttribute('aria-haspopup'),
855
+ readAttribute('aria-controls'),
856
+ readAttribute('aria-expanded'),
857
+ ]);
858
+ return (Boolean((ariaControls || '').trim()) ||
859
+ ['listbox', 'menu'].includes((ariaHasPopup || '').toLowerCase()) ||
860
+ (role || '').toLowerCase() === 'combobox' ||
861
+ ariaExpanded !== null);
862
+ }
837
863
  async function captureLocatorValue(locator) {
838
864
  const count = await locator.count().catch(() => 0);
839
865
  if (count === 0) {
840
866
  return null;
841
867
  }
842
- const inputValue = typeof locator.inputValue === 'function'
843
- ? await locator.inputValue().catch(() => '')
844
- : '';
868
+ const inputValue = typeof locator.inputValue === 'function' ? await locator.inputValue().catch(() => '') : '';
845
869
  if (inputValue) {
846
870
  return inputValue;
847
871
  }
872
+ if (!(await shouldProbePopupCurrentValue(locator))) {
873
+ return readLocatorText(locator);
874
+ }
875
+ const popupCurrentValue = await locator
876
+ .evaluate((element, source) => {
877
+ const read = Function('element', `${source}
878
+ if (!(element instanceof HTMLElement)) {
879
+ return null;
880
+ }
881
+ return observedPopupCurrentValueOf(element) || null;`);
882
+ return read(element);
883
+ }, OBSERVE_DOM_LABEL_CONTRACT_HELPER_SCRIPT)
884
+ .catch(() => null);
885
+ if (popupCurrentValue) {
886
+ return popupCurrentValue;
887
+ }
848
888
  return readLocatorText(locator);
849
889
  }
850
890
  async function captureLocatorValueFromCandidates(locators) {
@@ -968,16 +1008,37 @@ function normalizeComparableValue(value, comparableValueType) {
968
1008
  }
969
1009
  return raw.toLowerCase();
970
1010
  }
971
- function valuesMatchExpected(expected, actual, comparableValueType) {
1011
+ function valuesMatchExpected(expected, actual, comparableValueType, options) {
972
1012
  const normalizedExpected = normalizeComparableValue(expected, comparableValueType);
973
1013
  const normalizedActual = normalizeComparableValue(actual, comparableValueType);
974
1014
  if (!normalizedExpected || !normalizedActual) {
975
1015
  return false;
976
1016
  }
977
- return normalizedActual === normalizedExpected || normalizedActual.includes(normalizedExpected);
1017
+ if (normalizedActual === normalizedExpected || normalizedActual.includes(normalizedExpected)) {
1018
+ return true;
1019
+ }
1020
+ if (options?.allowCompactActualSequence !== true) {
1021
+ return false;
1022
+ }
1023
+ const expectedTokens = normalizedExpected.split(/\s+/).filter(Boolean);
1024
+ const actualTokens = normalizedActual.split(/\s+/).filter(Boolean);
1025
+ if (actualTokens.length === 0 || actualTokens.length > expectedTokens.length) {
1026
+ return false;
1027
+ }
1028
+ const compactActualLooksCodeLike = actualTokens.every((token) => token.length <= 3 || /[\d+]/.test(token));
1029
+ if (!compactActualLooksCodeLike) {
1030
+ return false;
1031
+ }
1032
+ for (let index = 0; index <= expectedTokens.length - actualTokens.length; index += 1) {
1033
+ const matches = actualTokens.every((token, tokenIndex) => expectedTokens[index + tokenIndex] === token);
1034
+ if (matches) {
1035
+ return true;
1036
+ }
1037
+ }
1038
+ return false;
978
1039
  }
979
- function valuesMatchAnyExpected(expected, actualValues, comparableValueType) {
980
- return actualValues.some((actualValue) => valuesMatchExpected(expected, actualValue, comparableValueType));
1040
+ function valuesMatchAnyExpected(expected, actualValues, comparableValueType, options) {
1041
+ return actualValues.some((actualValue) => valuesMatchExpected(expected, actualValue, comparableValueType, options));
981
1042
  }
982
1043
  function expectedValueForAcceptance(action, actionValue) {
983
1044
  if (action === 'fill' || action === 'type' || action === 'select') {
@@ -1057,6 +1118,12 @@ export async function captureLocatorState(locator, keys) {
1057
1118
  return { current: 'missing' };
1058
1119
  }
1059
1120
  const state = {};
1121
+ const readAttribute = async (name) => {
1122
+ if (typeof locator.getAttribute !== 'function') {
1123
+ return null;
1124
+ }
1125
+ return locator.getAttribute(name).catch(() => null);
1126
+ };
1060
1127
  const heuristicFlags = await locator
1061
1128
  .evaluate((element) => {
1062
1129
  if (!(element instanceof HTMLElement)) {
@@ -1090,7 +1157,7 @@ export async function captureLocatorState(locator, keys) {
1090
1157
  break;
1091
1158
  }
1092
1159
  }
1093
- const ariaChecked = await locator.getAttribute?.('aria-checked').catch(() => null);
1160
+ const ariaChecked = await readAttribute('aria-checked');
1094
1161
  if (ariaChecked === 'true')
1095
1162
  state.checked = true;
1096
1163
  else if (ariaChecked === 'false')
@@ -1100,7 +1167,7 @@ export async function captureLocatorState(locator, keys) {
1100
1167
  break;
1101
1168
  }
1102
1169
  case 'selected': {
1103
- const value = await locator.getAttribute?.('aria-selected').catch(() => null);
1170
+ const value = await readAttribute('aria-selected');
1104
1171
  if (value === 'true')
1105
1172
  state.selected = true;
1106
1173
  else if (value === 'false')
@@ -1110,7 +1177,7 @@ export async function captureLocatorState(locator, keys) {
1110
1177
  break;
1111
1178
  }
1112
1179
  case 'expanded': {
1113
- const value = await locator.getAttribute?.('aria-expanded').catch(() => null);
1180
+ const value = await readAttribute('aria-expanded');
1114
1181
  if (value === 'true')
1115
1182
  state.expanded = true;
1116
1183
  else if (value === 'false')
@@ -1118,7 +1185,7 @@ export async function captureLocatorState(locator, keys) {
1118
1185
  break;
1119
1186
  }
1120
1187
  case 'pressed': {
1121
- const value = await locator.getAttribute?.('aria-pressed').catch(() => null);
1188
+ const value = await readAttribute('aria-pressed');
1122
1189
  if (value === 'true')
1123
1190
  state.pressed = true;
1124
1191
  else if (value === 'false')
@@ -1128,7 +1195,7 @@ export async function captureLocatorState(locator, keys) {
1128
1195
  break;
1129
1196
  }
1130
1197
  case 'current': {
1131
- const value = await locator.getAttribute?.('aria-current').catch(() => null);
1198
+ const value = await readAttribute('aria-current');
1132
1199
  if (value === 'true')
1133
1200
  state.current = true;
1134
1201
  else if (typeof value === 'string' && value.length > 0)
@@ -1184,18 +1251,40 @@ export function pageObservationChanged(before, after) {
1184
1251
  }
1185
1252
  return false;
1186
1253
  }
1187
- export function submitObservationChanged(before, after) {
1254
+ export function genericClickObservationChanged(before, after) {
1188
1255
  if (!before || !after) {
1189
1256
  return false;
1190
1257
  }
1191
1258
  if (before.url !== after.url || before.title !== after.title) {
1192
1259
  return true;
1193
1260
  }
1194
- if (before.structureHash &&
1195
- after.structureHash &&
1261
+ if ((before.structureHash || after.structureHash) &&
1196
1262
  before.structureHash !== after.structureHash) {
1197
1263
  return true;
1198
1264
  }
1265
+ if ((before.submitSignalHash || after.submitSignalHash) &&
1266
+ before.submitSignalHash !== after.submitSignalHash) {
1267
+ return true;
1268
+ }
1269
+ if ((before.resultSignalHash || after.resultSignalHash) &&
1270
+ before.resultSignalHash !== after.resultSignalHash) {
1271
+ return true;
1272
+ }
1273
+ if (before.validationBlockerCount > after.validationBlockerCount) {
1274
+ return true;
1275
+ }
1276
+ return false;
1277
+ }
1278
+ export function submitObservationChanged(before, after) {
1279
+ if (!before || !after) {
1280
+ return false;
1281
+ }
1282
+ if (before.url !== after.url || before.title !== after.title) {
1283
+ return true;
1284
+ }
1285
+ if (before.structureHash && after.structureHash && before.structureHash !== after.structureHash) {
1286
+ return true;
1287
+ }
1199
1288
  if (before.validationBlockerCount > 0 && after.validationBlockerCount === 0) {
1200
1289
  return true;
1201
1290
  }
@@ -1232,9 +1321,7 @@ export async function diagnoseNoObservableProgress(page, locator) {
1232
1321
  };
1233
1322
  })
1234
1323
  .catch(() => ({}));
1235
- const pageSignals = await page
1236
- .evaluate(NO_PROGRESS_PAGE_SIGNALS_SCRIPT)
1237
- .catch(() => null);
1324
+ const pageSignals = await Promise.resolve(page.evaluate(NO_PROGRESS_PAGE_SIGNALS_SCRIPT)).catch(() => null);
1238
1325
  if (!pageSignals || typeof pageSignals !== 'object' || Array.isArray(pageSignals)) {
1239
1326
  return null;
1240
1327
  }
@@ -1247,9 +1334,7 @@ export async function diagnoseNoObservableProgress(page, locator) {
1247
1334
  const blockingOverlays = Array.isArray(pageSignals.blockingOverlays)
1248
1335
  ? pageSignals.blockingOverlays.filter((value) => typeof value === 'string')
1249
1336
  : [];
1250
- const rawTargetState = targetState &&
1251
- typeof targetState === 'object' &&
1252
- !Array.isArray(targetState)
1337
+ const rawTargetState = targetState && typeof targetState === 'object' && !Array.isArray(targetState)
1253
1338
  ? targetState
1254
1339
  : undefined;
1255
1340
  const normalizedTargetState = rawTargetState
@@ -1345,7 +1430,9 @@ export async function createAcceptanceProbe(args) {
1345
1430
  trackedStates.push('focused');
1346
1431
  }
1347
1432
  const beforeLocatorObservation = trackedStates.length > 0 ? await captureLocatorState(locator, trackedStates) : null;
1348
- const beforeContextHash = policy === 'value-change' || policy === 'submit' ? null : await captureLocatorContextHash(locator);
1433
+ const beforeContextHash = policy === 'value-change' || policy === 'submit'
1434
+ ? null
1435
+ : await captureLocatorContextHash(locator);
1349
1436
  const surface = target.surfaceRef ? getSurface(session, target.surfaceRef) : null;
1350
1437
  const surfaceLocator = surface ? await resolveSurfaceScopeRoot(page, surface) : null;
1351
1438
  const pageReadLocator = await resolveTargetLocatorForRead(page, target, surface, action);
@@ -1405,11 +1492,11 @@ export async function evaluateAcceptanceProbe(probe, afterPageObservation) {
1405
1492
  ? [probe.locator, liveReadLocator]
1406
1493
  : [probe.locator];
1407
1494
  const liveOwnerLocator = probe.ownerTarget
1408
- ? (await resolveTargetLocatorForRead(probe.page, probe.ownerTarget, probe.ownerSurface, probe.action).catch(() => null)) ?? probe.ownerLocator
1495
+ ? ((await resolveTargetLocatorForRead(probe.page, probe.ownerTarget, probe.ownerSurface, probe.action).catch(() => null)) ?? probe.ownerLocator)
1409
1496
  : null;
1410
1497
  const liveSurfaceLocator = probe.target.structure?.family === 'structured-grid' && probe.surface
1411
- ? (await resolveSurfaceScopeRoot(probe.page, probe.surface).catch(() => null)) ??
1412
- probe.surfaceLocator
1498
+ ? ((await resolveSurfaceScopeRoot(probe.page, probe.surface).catch(() => null)) ??
1499
+ probe.surfaceLocator)
1413
1500
  : probe.surfaceLocator;
1414
1501
  const afterLocatorObservation = probe.trackedStateKeys.length > 0
1415
1502
  ? await captureLocatorState(probe.locator, probe.trackedStateKeys)
@@ -1431,7 +1518,8 @@ export async function evaluateAcceptanceProbe(probe, afterPageObservation) {
1431
1518
  ? await captureLocatorContextHash(liveSurfaceLocator)
1432
1519
  : probe.beforeSurfaceContextHash;
1433
1520
  const targetValueChanged = probe.expectedValue === null && valueMeaningfullyChanged(probe.beforeValue, afterValue);
1434
- const ownerValueChanged = probe.expectedValue === null && valueMeaningfullyChanged(probe.beforeOwnerValue, afterOwnerValue);
1521
+ const ownerValueChanged = probe.expectedValue === null &&
1522
+ valueMeaningfullyChanged(probe.beforeOwnerValue, afterOwnerValue);
1435
1523
  const surfaceContextChanged = probe.expectedValue === null &&
1436
1524
  probe.beforeSurfaceContextHash !== null &&
1437
1525
  afterSurfaceContextHash !== null &&
@@ -1439,14 +1527,14 @@ export async function evaluateAcceptanceProbe(probe, afterPageObservation) {
1439
1527
  switch (probe.policy) {
1440
1528
  case 'value-change':
1441
1529
  return valuesMatchExpected(probe.expectedValue, afterValue, probe.comparableValueType);
1442
- case 'selection':
1530
+ case 'selection': {
1443
1531
  const afterComparableValues = await captureLocatorComparableValuesFromCandidates(liveReadLocators);
1444
1532
  const afterOwnerComparableValues = liveOwnerLocator
1445
1533
  ? await captureLocatorComparableValuesFromCandidates([liveOwnerLocator])
1446
1534
  : [];
1447
1535
  if (probe.expectedValue !== null) {
1448
- return (valuesMatchAnyExpected(probe.expectedValue, afterComparableValues, probe.comparableValueType) ||
1449
- valuesMatchAnyExpected(probe.expectedValue, afterOwnerComparableValues, probe.comparableValueType));
1536
+ return (valuesMatchAnyExpected(probe.expectedValue, afterComparableValues, probe.comparableValueType, { allowCompactActualSequence: true }) ||
1537
+ valuesMatchAnyExpected(probe.expectedValue, afterOwnerComparableValues, probe.comparableValueType, { allowCompactActualSequence: true }));
1450
1538
  }
1451
1539
  return (targetValueChanged ||
1452
1540
  ownerValueChanged ||
@@ -1455,6 +1543,7 @@ export async function evaluateAcceptanceProbe(probe, afterPageObservation) {
1455
1543
  locatorStateChanged(probe.beforeReadLocator, afterReadLocatorObservation) ||
1456
1544
  probe.beforeContextHash !== afterContextHash ||
1457
1545
  probe.beforeReadContextHash !== afterReadContextHash);
1546
+ }
1458
1547
  case 'toggle':
1459
1548
  return (locatorStateChanged(probe.beforeLocator, afterLocatorObservation) ||
1460
1549
  locatorStateChanged(probe.beforeReadLocator, afterReadLocatorObservation));
@@ -1464,7 +1553,7 @@ export async function evaluateAcceptanceProbe(probe, afterPageObservation) {
1464
1553
  locatorStateChanged(probe.beforeReadLocator, afterReadLocatorObservation) ||
1465
1554
  probe.beforeContextHash !== afterContextHash ||
1466
1555
  probe.beforeReadContextHash !== afterReadContextHash);
1467
- case 'date-selection':
1556
+ case 'date-selection': {
1468
1557
  const afterDateComparableValues = await captureLocatorComparableValuesFromCandidates(liveReadLocators);
1469
1558
  const afterDateOwnerComparableValues = liveOwnerLocator
1470
1559
  ? await captureLocatorComparableValuesFromCandidates([liveOwnerLocator])
@@ -1481,6 +1570,7 @@ export async function evaluateAcceptanceProbe(probe, afterPageObservation) {
1481
1570
  (probe.expectedValue === null &&
1482
1571
  (probe.beforeContextHash !== afterContextHash ||
1483
1572
  probe.beforeReadContextHash !== afterReadContextHash)));
1573
+ }
1484
1574
  case 'submit':
1485
1575
  return submitObservationChanged(probe.beforePage, afterPageObservation);
1486
1576
  case 'navigation':
@@ -1494,7 +1584,7 @@ export async function evaluateAcceptanceProbe(probe, afterPageObservation) {
1494
1584
  locatorStateChanged(probe.beforeReadLocator, afterReadLocatorObservation) ||
1495
1585
  probe.beforeContextHash !== afterContextHash ||
1496
1586
  probe.beforeReadContextHash !== afterReadContextHash ||
1497
- pageObservationChanged(probe.beforePage, afterPageObservation));
1587
+ genericClickObservationChanged(probe.beforePage, afterPageObservation));
1498
1588
  }
1499
1589
  return false;
1500
1590
  }
@@ -1 +1 @@
1
- {"version":3,"file":"action-executor-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/action-executor-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAerD,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAC9C,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAkB7C,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAWpE;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,OAAO,CAAC,CAqBlB;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,CAOjB;AA+FD,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAE/E;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC;IACT,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC,CAgBD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,MAAM,GAAG,IAAI,EACjC,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,CAkBR;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAarF"}
1
+ {"version":3,"file":"action-executor-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/action-executor-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAerD,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAC9C,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAkB7C,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAWpE;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAqB7F;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,CAAC,CAOjB;AAkGD,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAE/E;AAED,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC;IACT,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC,CAqBD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,MAAM,GAAG,IAAI,EACjC,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,CAkBR;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAarF"}
@@ -133,9 +133,13 @@ async function readTextEntryMetadata(locator) {
133
133
  typeof locator.inputValue === 'function' ? locator.inputValue().catch(() => '') : '',
134
134
  ]);
135
135
  const normalizedType = (type || '').toLowerCase();
136
- const phoneLike = normalizedType === 'tel' ||
137
- (autocomplete || '').toLowerCase().includes('tel') ||
138
- (name || '').toLowerCase().includes('phone');
136
+ const normalizedAutocomplete = (autocomplete || '').toLowerCase();
137
+ const normalizedName = (name || '').toLowerCase();
138
+ const cardAutocomplete = normalizedAutocomplete.startsWith('cc-');
139
+ const phoneLike = !cardAutocomplete &&
140
+ (normalizedType === 'tel' ||
141
+ normalizedAutocomplete.includes('tel') ||
142
+ normalizedName.includes('phone'));
139
143
  const dateHintBlob = [type, autocomplete, name, placeholder, id]
140
144
  .filter((value) => typeof value === 'string' && value.trim().length > 0)
141
145
  .join(' ');
@@ -193,7 +197,11 @@ export async function planTextFillStrategy(locator, value, attempts) {
193
197
  return {
194
198
  normalizedValue: normalizeDateLikeValue(value, metadata),
195
199
  preferSequential: metadata.phoneLike || metadata.popupBackedTextEntry || metadata.maskedDateLike,
196
- settleMs: metadata.phoneLike ? 120 : metadata.popupBackedTextEntry || metadata.maskedDateLike ? 80 : 0,
200
+ settleMs: metadata.phoneLike
201
+ ? 120
202
+ : metadata.popupBackedTextEntry || metadata.maskedDateLike
203
+ ? 80
204
+ : 0,
197
205
  initialPhonePrefix: metadata.currentPhonePrefix,
198
206
  blurAfterFill: metadata.maskedDateLike,
199
207
  };
@@ -1 +1 @@
1
- {"version":3,"file":"action-fallbacks.d.ts","sourceRoot":"","sources":["../../src/commands/action-fallbacks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,YAAY,GAAG,OAAO,CAAC;AAiBxD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,WAAW,CAU7F;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,GAAG,OAAO,GAAG,IAAI,CAsB3F"}
1
+ {"version":3,"file":"action-fallbacks.d.ts","sourceRoot":"","sources":["../../src/commands/action-fallbacks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,YAAY,GAAG,OAAO,CAAC;AAcxD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,WAAW,CAU7F;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,GAAG,OAAO,GAAG,IAAI,CAsB3F"}
@@ -1 +1 @@
1
- {"version":3,"file":"action-result-resolution.d.ts","sourceRoot":"","sources":["../../src/commands/action-result-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG/G,MAAM,MAAM,qBAAqB,GAC7B,aAAa,GACb,cAAc,GACd,uBAAuB,GACvB,cAAc,CAAC;AAEnB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,YAAY,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC7C,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,CAAC,iBAAiB,CAAC,GACvC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,GAAG,kBAAkB,CAAC,CAqB7D;AAiBD,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,eAAe,EACtB,oBAAoB,EAAE,eAAe,GAAG,IAAI,GAC3C,OAAO,CAAC,sBAAsB,CAAC,CAsEjC"}
1
+ {"version":3,"file":"action-result-resolution.d.ts","sourceRoot":"","sources":["../../src/commands/action-result-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,MAAM,qBAAqB,GAC7B,aAAa,GACb,cAAc,GACd,uBAAuB,GACvB,cAAc,CAAC;AAEnB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,YAAY,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC7C,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,cAAc,EAAE,iBAAiB,EAAE,CAAC;IACpC,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,CAAC,iBAAiB,CAAC,GACvC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,GAAG,kBAAkB,CAAC,CAqB7D;AAmBD,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,eAAe,EACtB,oBAAoB,EAAE,eAAe,GAAG,IAAI,GAC3C,OAAO,CAAC,sBAAsB,CAAC,CAsEjC"}
@@ -1,4 +1,4 @@
1
- import { captureLocatorContextHash } from './action-acceptance.js';
1
+ import { captureLocatorContextHash, } from './action-acceptance.js';
2
2
  import { resolveSurfaceScopeRoot } from './target-resolution.js';
3
3
  export function reduceSubmitResultClaims(claims) {
4
4
  const hardBlockers = claims.filter((claim) => claim.kind === 'hard_blocker');
@@ -1 +1 @@
1
- {"version":3,"file":"action-value-projection.d.ts","sourceRoot":"","sources":["../../src/commands/action-value-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,qBAAqB,GAC7B;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEN,KAAK,sBAAsB,GAAG;IAC5B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAoHF,iBAAS,mCAAmC,CAAC,OAAO,EAAE,OAAO,GAAG,sBAAsB,GAAG,IAAI,CAI5F;AAWD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAsCxC;AAED,eAAO,MAAM,2BAA2B;;;CAGvC,CAAC"}
1
+ {"version":3,"file":"action-value-projection.d.ts","sourceRoot":"","sources":["../../src/commands/action-value-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,MAAM,qBAAqB,GAC7B;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEN,KAAK,sBAAsB,GAAG;IAC5B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAoHF,iBAAS,mCAAmC,CAAC,OAAO,EAAE,OAAO,GAAG,sBAAsB,GAAG,IAAI,CAK5F;AAaD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAsCxC;AAED,eAAO,MAAM,2BAA2B;;;CAGvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker-action-executor.d.ts","sourceRoot":"","sources":["../../src/commands/datepicker-action-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,8BAA8B,CAAC;AAmBtC,KAAK,uBAAuB,GAAG;IAC7B,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7F,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,0BAA0B,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,wBAAwB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjG,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE,CAAC;AAkKF,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,EAAE,uBAAuB,EAChC,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAyElB"}
1
+ {"version":3,"file":"datepicker-action-executor.d.ts","sourceRoot":"","sources":["../../src/commands/datepicker-action-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAA2B,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAmBnG,KAAK,uBAAuB,GAAG;IAC7B,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7F,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,0BAA0B,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,wBAAwB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjG,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE,CAAC;AAkKF,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,EAAE,uBAAuB,EAChC,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAyElB"}
@@ -1,4 +1,4 @@
1
- import { runActionExecutionGuard, } from './action-execution-guards.js';
1
+ import { runActionExecutionGuard } from './action-execution-guards.js';
2
2
  const DATEPICKER_DAY_ROLES = [
3
3
  'gridcell',
4
4
  'button',
@@ -1 +1 @@
1
- {"version":3,"file":"descriptor-validation.d.ts","sourceRoot":"","sources":["../../src/commands/descriptor-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED,eAAO,MAAM,4BAA4B,QA+JxC,CAAC;AAEF,iBAAS,gCAAgC,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEzE;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAgCF,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWtF;AAED,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAWzG;AAOD,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,sBAAsB,GAAG,IAAI,GACtC,OAAO,CAoCT;AAED,eAAO,MAAM,0BAA0B;;;;;CAKtC,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmFnF"}
1
+ {"version":3,"file":"descriptor-validation.d.ts","sourceRoot":"","sources":["../../src/commands/descriptor-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED,eAAO,MAAM,4BAA4B,QAaxC,CAAC;AAEF,iBAAS,gCAAgC,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEzE;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAwBF,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWtF;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAWxC;AAOD,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,sBAAsB,GAAG,IAAI,GACtC,OAAO,CAoCT;AAED,eAAO,MAAM,0BAA0B;;;;;CAKtC,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6EnF"}