swipium 1.4.0 → 2.0.0

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 (541) hide show
  1. package/CHANGELOG.md +313 -0
  2. package/README.md +175 -219
  3. package/THREAT_MODEL.md +223 -47
  4. package/dist/appMap/automationLink.js +39 -26
  5. package/dist/appMap/automationLink.js.map +1 -1
  6. package/dist/appMap/build.js +68 -20
  7. package/dist/appMap/build.js.map +1 -1
  8. package/dist/appMap/codeIndex.js +31 -5
  9. package/dist/appMap/codeIndex.js.map +1 -1
  10. package/dist/appMap/featureIndex.js +23 -5
  11. package/dist/appMap/featureIndex.js.map +1 -1
  12. package/dist/appMap/featureModel.js +44 -8
  13. package/dist/appMap/featureModel.js.map +1 -1
  14. package/dist/appMap/firstRunApply.js +24 -6
  15. package/dist/appMap/firstRunApply.js.map +1 -1
  16. package/dist/appMap/fsWalk.js +19 -2
  17. package/dist/appMap/fsWalk.js.map +1 -1
  18. package/dist/appMap/issues.js +10 -30
  19. package/dist/appMap/issues.js.map +1 -1
  20. package/dist/appMap/migrations.js +6 -6
  21. package/dist/appMap/migrations.js.map +1 -1
  22. package/dist/appMap/prelaunch.js +2 -2
  23. package/dist/appMap/prelaunch.js.map +1 -1
  24. package/dist/appMap/projectRegistry.js +83 -11
  25. package/dist/appMap/projectRegistry.js.map +1 -1
  26. package/dist/appMap/provenance.js +2 -2
  27. package/dist/appMap/provenance.js.map +1 -1
  28. package/dist/appMap/query.js +21 -5
  29. package/dist/appMap/query.js.map +1 -1
  30. package/dist/appMap/runtimeMerge.js +12 -5
  31. package/dist/appMap/runtimeMerge.js.map +1 -1
  32. package/dist/appMap/schema.js +1 -1
  33. package/dist/appMap/schema.js.map +1 -1
  34. package/dist/appMap/screenMatch.js +6 -2
  35. package/dist/appMap/screenMatch.js.map +1 -1
  36. package/dist/appMap/staticScan.js +151 -39
  37. package/dist/appMap/staticScan.js.map +1 -1
  38. package/dist/appMap/store.js +58 -85
  39. package/dist/appMap/store.js.map +1 -1
  40. package/dist/appMap/tsAstScan.js +34 -12
  41. package/dist/appMap/tsAstScan.js.map +1 -1
  42. package/dist/artifacts/bundletool.js +49 -12
  43. package/dist/artifacts/bundletool.js.map +1 -1
  44. package/dist/artifacts/resolve.js +41 -14
  45. package/dist/artifacts/resolve.js.map +1 -1
  46. package/dist/automation/capabilities.js +112 -30
  47. package/dist/automation/capabilities.js.map +1 -1
  48. package/dist/automation/gestures.js +6 -2
  49. package/dist/automation/gestures.js.map +1 -1
  50. package/dist/automation/plan.js +71 -23
  51. package/dist/automation/plan.js.map +1 -1
  52. package/dist/automation/report.js +15 -5
  53. package/dist/automation/report.js.map +1 -1
  54. package/dist/automation/selectors.js +22 -28
  55. package/dist/automation/selectors.js.map +1 -1
  56. package/dist/automation/types.js +1 -1
  57. package/dist/automation/types.js.map +1 -1
  58. package/dist/automation/waits.js +14 -8
  59. package/dist/automation/waits.js.map +1 -1
  60. package/dist/automation/webview.js +9 -3
  61. package/dist/automation/webview.js.map +1 -1
  62. package/dist/automationGen/appiumModel.js +16 -8
  63. package/dist/automationGen/appiumModel.js.map +1 -1
  64. package/dist/automationGen/ciEmitter.js +6 -6
  65. package/dist/automationGen/ciEmitter.js.map +1 -1
  66. package/dist/automationGen/identifiers.js +224 -0
  67. package/dist/automationGen/identifiers.js.map +1 -0
  68. package/dist/automationGen/jsEmitter.js +288 -121
  69. package/dist/automationGen/jsEmitter.js.map +1 -1
  70. package/dist/automationGen/packagePatch.js +2 -2
  71. package/dist/automationGen/packagePatch.js.map +1 -1
  72. package/dist/automationGen/platformResolve.js +36 -0
  73. package/dist/automationGen/platformResolve.js.map +1 -0
  74. package/dist/automationGen/projectProfile.js +76 -27
  75. package/dist/automationGen/projectProfile.js.map +1 -1
  76. package/dist/automationGen/pythonEmitter.js +278 -107
  77. package/dist/automationGen/pythonEmitter.js.map +1 -1
  78. package/dist/automationGen/readmeEmitter.js +7 -6
  79. package/dist/automationGen/readmeEmitter.js.map +1 -1
  80. package/dist/automationGen/run.js +388 -0
  81. package/dist/automationGen/run.js.map +1 -0
  82. package/dist/automationGen/suitePlan.js +17 -10
  83. package/dist/automationGen/suitePlan.js.map +1 -1
  84. package/dist/automationGen/validation.js +52 -12
  85. package/dist/automationGen/validation.js.map +1 -1
  86. package/dist/build/parseBuildLog.js +235 -31
  87. package/dist/build/parseBuildLog.js.map +1 -1
  88. package/dist/build/plan.js +39 -18
  89. package/dist/build/plan.js.map +1 -1
  90. package/dist/ci/preflight.js +13 -4
  91. package/dist/ci/preflight.js.map +1 -1
  92. package/dist/cli/gc.js +74 -0
  93. package/dist/cli/gc.js.map +1 -0
  94. package/dist/cli/init.js +217 -26
  95. package/dist/cli/init.js.map +1 -1
  96. package/dist/cli/main.js +50 -0
  97. package/dist/cli/main.js.map +1 -0
  98. package/dist/cli/report.js +218 -0
  99. package/dist/cli/report.js.map +1 -0
  100. package/dist/cli/scan.js +36 -15
  101. package/dist/cli/scan.js.map +1 -1
  102. package/dist/cli/suite.js +7 -7
  103. package/dist/cli/suite.js.map +1 -1
  104. package/dist/cli/verify.js +7 -7
  105. package/dist/cli/verify.js.map +1 -1
  106. package/dist/consent/consent.js +162 -5
  107. package/dist/consent/consent.js.map +1 -1
  108. package/dist/context/detect.js +55 -18
  109. package/dist/context/detect.js.map +1 -1
  110. package/dist/context/findApps.js +22 -8
  111. package/dist/context/findApps.js.map +1 -1
  112. package/dist/context/projectRoot.js +174 -19
  113. package/dist/context/projectRoot.js.map +1 -1
  114. package/dist/context/scan.js +1 -1
  115. package/dist/context/scan.js.map +1 -1
  116. package/dist/core/capabilityGroups.js +90 -0
  117. package/dist/core/capabilityGroups.js.map +1 -0
  118. package/dist/core/target.js +10 -8
  119. package/dist/core/target.js.map +1 -1
  120. package/dist/core/targetPlan.js +160 -39
  121. package/dist/core/targetPlan.js.map +1 -1
  122. package/dist/drivers/DirectDriver.js +317 -43
  123. package/dist/drivers/DirectDriver.js.map +1 -1
  124. package/dist/drivers/SimctlDriver.js +124 -8
  125. package/dist/drivers/SimctlDriver.js.map +1 -1
  126. package/dist/drivers/WdaDriver.js +365 -55
  127. package/dist/drivers/WdaDriver.js.map +1 -1
  128. package/dist/explore/candidates.js +7 -3
  129. package/dist/explore/candidates.js.map +1 -1
  130. package/dist/explore/graph.js +15 -6
  131. package/dist/explore/graph.js.map +1 -1
  132. package/dist/explore/memory.js +4 -1
  133. package/dist/explore/memory.js.map +1 -1
  134. package/dist/explore/planner.js +54 -9
  135. package/dist/explore/planner.js.map +1 -1
  136. package/dist/explore/policy.js +11 -6
  137. package/dist/explore/policy.js.map +1 -1
  138. package/dist/explore/runner.js +363 -190
  139. package/dist/explore/runner.js.map +1 -1
  140. package/dist/explore/signatures.js +4 -2
  141. package/dist/explore/signatures.js.map +1 -1
  142. package/dist/explore/suite.js +3 -1
  143. package/dist/explore/suite.js.map +1 -1
  144. package/dist/featureTesting/executionBootstrap.js +137 -29
  145. package/dist/featureTesting/executionBootstrap.js.map +1 -1
  146. package/dist/featureTesting/featureMap.js +6 -3
  147. package/dist/featureTesting/featureMap.js.map +1 -1
  148. package/dist/featureTesting/featureScope.js +101 -20
  149. package/dist/featureTesting/featureScope.js.map +1 -1
  150. package/dist/featureTesting/mapFeatureScope.js +44 -15
  151. package/dist/featureTesting/mapFeatureScope.js.map +1 -1
  152. package/dist/featureTesting/objectiveModel.js +15 -11
  153. package/dist/featureTesting/objectiveModel.js.map +1 -1
  154. package/dist/featureTesting/resultMerge.js +16 -8
  155. package/dist/featureTesting/resultMerge.js.map +1 -1
  156. package/dist/featureTesting/sources.js +8 -5
  157. package/dist/featureTesting/sources.js.map +1 -1
  158. package/dist/featureTesting/suiteBridge.js +8 -2
  159. package/dist/featureTesting/suiteBridge.js.map +1 -1
  160. package/dist/featureTesting/synonyms.js +32 -4
  161. package/dist/featureTesting/synonyms.js.map +1 -1
  162. package/dist/featureTesting/testCaseFactory.js +27 -15
  163. package/dist/featureTesting/testCaseFactory.js.map +1 -1
  164. package/dist/featureTesting/testPlan.js +34 -12
  165. package/dist/featureTesting/testPlan.js.map +1 -1
  166. package/dist/firstRun/authStateMachine.js +1 -1
  167. package/dist/firstRun/authStateMachine.js.map +1 -1
  168. package/dist/firstRun/classifyScreen.js +9 -6
  169. package/dist/firstRun/classifyScreen.js.map +1 -1
  170. package/dist/firstRun/firstRunPlanner.js +16 -13
  171. package/dist/firstRun/firstRunPlanner.js.map +1 -1
  172. package/dist/firstRun/firstRunRunner.js +92 -31
  173. package/dist/firstRun/firstRunRunner.js.map +1 -1
  174. package/dist/firstRun/generatedDataPolicy.js +25 -15
  175. package/dist/firstRun/generatedDataPolicy.js.map +1 -1
  176. package/dist/firstRun/inputPlanner.js +45 -11
  177. package/dist/firstRun/inputPlanner.js.map +1 -1
  178. package/dist/firstRun/onboardingStateMachine.js +1 -1
  179. package/dist/firstRun/onboardingStateMachine.js.map +1 -1
  180. package/dist/firstRun/paywallPolicy.js +3 -3
  181. package/dist/firstRun/paywallPolicy.js.map +1 -1
  182. package/dist/firstRun/types.js +1 -1
  183. package/dist/firstRun/types.js.map +1 -1
  184. package/dist/fixtures/catalog.js +72 -9
  185. package/dist/fixtures/catalog.js.map +1 -1
  186. package/dist/fixtures/load.js +50 -0
  187. package/dist/fixtures/load.js.map +1 -0
  188. package/dist/flows/discover.js +2 -2
  189. package/dist/flows/discover.js.map +1 -1
  190. package/dist/flows/generate.js +68 -17
  191. package/dist/flows/generate.js.map +1 -1
  192. package/dist/flows/lint.js +88 -14
  193. package/dist/flows/lint.js.map +1 -1
  194. package/dist/flows/pack.js +21 -5
  195. package/dist/flows/pack.js.map +1 -1
  196. package/dist/flows/paths.js +57 -0
  197. package/dist/flows/paths.js.map +1 -0
  198. package/dist/flows/repair.js +176 -37
  199. package/dist/flows/repair.js.map +1 -1
  200. package/dist/flows/run.js +308 -99
  201. package/dist/flows/run.js.map +1 -1
  202. package/dist/flows/schema.js +107 -25
  203. package/dist/flows/schema.js.map +1 -1
  204. package/dist/flows/seedExec.js +8 -4
  205. package/dist/flows/seedExec.js.map +1 -1
  206. package/dist/flows/templates.js +5 -5
  207. package/dist/index.js +50 -8
  208. package/dist/index.js.map +1 -1
  209. package/dist/ios/signing.js +32 -3
  210. package/dist/ios/signing.js.map +1 -1
  211. package/dist/issues/classify.js +28 -20
  212. package/dist/issues/classify.js.map +1 -1
  213. package/dist/issues/fingerprint.js +35 -9
  214. package/dist/issues/fingerprint.js.map +1 -1
  215. package/dist/issues/index.js +93 -46
  216. package/dist/issues/index.js.map +1 -1
  217. package/dist/issues/metrics.js +6 -5
  218. package/dist/issues/metrics.js.map +1 -1
  219. package/dist/issues/recurrence.js +35 -8
  220. package/dist/issues/recurrence.js.map +1 -1
  221. package/dist/issues/report.js +12 -8
  222. package/dist/issues/report.js.map +1 -1
  223. package/dist/issues/reportBridge.js +40 -9
  224. package/dist/issues/reportBridge.js.map +1 -1
  225. package/dist/issues/schema.js +2 -2
  226. package/dist/issues/schema.js.map +1 -1
  227. package/dist/issues/sourceRevision.js +2 -2
  228. package/dist/issues/sourceRevision.js.map +1 -1
  229. package/dist/issues/store.js +110 -32
  230. package/dist/issues/store.js.map +1 -1
  231. package/dist/lib/abortScope.js +48 -0
  232. package/dist/lib/abortScope.js.map +1 -0
  233. package/dist/lib/android.js +84 -8
  234. package/dist/lib/android.js.map +1 -1
  235. package/dist/lib/coordSpace.js +1 -1
  236. package/dist/lib/coordSpace.js.map +1 -1
  237. package/dist/lib/device.js +53 -12
  238. package/dist/lib/device.js.map +1 -1
  239. package/dist/lib/gestures.js +141 -0
  240. package/dist/lib/gestures.js.map +1 -0
  241. package/dist/lib/gitignore.js +4 -3
  242. package/dist/lib/gitignore.js.map +1 -1
  243. package/dist/lib/image.js +12 -3
  244. package/dist/lib/image.js.map +1 -1
  245. package/dist/lib/lockfile.js +399 -0
  246. package/dist/lib/lockfile.js.map +1 -0
  247. package/dist/lib/needsInput.js +9 -6
  248. package/dist/lib/needsInput.js.map +1 -1
  249. package/dist/lib/png.js +4 -3
  250. package/dist/lib/png.js.map +1 -1
  251. package/dist/lib/redact.js +170 -9
  252. package/dist/lib/redact.js.map +1 -1
  253. package/dist/lib/result.js +94 -10
  254. package/dist/lib/result.js.map +1 -1
  255. package/dist/lib/schemaHash.js +7 -5
  256. package/dist/lib/schemaHash.js.map +1 -1
  257. package/dist/lib/sensitive.js +6 -3
  258. package/dist/lib/sensitive.js.map +1 -1
  259. package/dist/lib/simctl.js +3 -3
  260. package/dist/lib/simctl.js.map +1 -1
  261. package/dist/lib/spawn.js +78 -17
  262. package/dist/lib/spawn.js.map +1 -1
  263. package/dist/lib/toolAnnotations.js +114 -0
  264. package/dist/lib/toolAnnotations.js.map +1 -0
  265. package/dist/lib/wda.js +321 -25
  266. package/dist/lib/wda.js.map +1 -1
  267. package/dist/lib/wdaConfig.js +12 -5
  268. package/dist/lib/wdaConfig.js.map +1 -1
  269. package/dist/lib/wdaTune.js +52 -23
  270. package/dist/lib/wdaTune.js.map +1 -1
  271. package/dist/mobileAudit/checks.js +150 -28
  272. package/dist/mobileAudit/checks.js.map +1 -1
  273. package/dist/mobileAudit/evidence.js +4 -4
  274. package/dist/mobileAudit/evidence.js.map +1 -1
  275. package/dist/mobileAudit/profiles.js +121 -20
  276. package/dist/mobileAudit/profiles.js.map +1 -1
  277. package/dist/mobileAudit/results.js +9 -4
  278. package/dist/mobileAudit/results.js.map +1 -1
  279. package/dist/mobileAudit/runner.js +214 -35
  280. package/dist/mobileAudit/runner.js.map +1 -1
  281. package/dist/oracle/auth.js +1 -1
  282. package/dist/oracle/auth.js.map +1 -1
  283. package/dist/oracle/failures.js +1085 -145
  284. package/dist/oracle/failures.js.map +1 -1
  285. package/dist/oracle/health.js +148 -26
  286. package/dist/oracle/health.js.map +1 -1
  287. package/dist/oracle/locator.js +148 -19
  288. package/dist/oracle/locator.js.map +1 -1
  289. package/dist/oracle/record.js +3 -3
  290. package/dist/oracle/record.js.map +1 -1
  291. package/dist/orchestration/envelope.js +2 -2
  292. package/dist/orchestration/envelope.js.map +1 -1
  293. package/dist/orchestration/goal.js +7 -13
  294. package/dist/orchestration/goal.js.map +1 -1
  295. package/dist/orchestration/testThis/execute.js +167 -0
  296. package/dist/orchestration/testThis/execute.js.map +1 -0
  297. package/dist/orchestration/testThis/pipeline.js +413 -0
  298. package/dist/orchestration/testThis/pipeline.js.map +1 -0
  299. package/dist/orchestration/testThis/plan.js +519 -0
  300. package/dist/orchestration/testThis/plan.js.map +1 -0
  301. package/dist/orchestration/testThis/sessionIntent.js +72 -0
  302. package/dist/orchestration/testThis/sessionIntent.js.map +1 -0
  303. package/dist/orchestration/testThis/terminal.js +136 -0
  304. package/dist/orchestration/testThis/terminal.js.map +1 -0
  305. package/dist/orchestration/testThis/types.js +12 -0
  306. package/dist/orchestration/testThis/types.js.map +1 -0
  307. package/dist/plan/plan.js +9 -9
  308. package/dist/plan/plan.js.map +1 -1
  309. package/dist/prompts/index.js +24 -24
  310. package/dist/prompts/index.js.map +1 -1
  311. package/dist/report/coverage.js +0 -1
  312. package/dist/report/coverage.js.map +1 -1
  313. package/dist/report/evidence.js.map +1 -1
  314. package/dist/report/export.js +449 -72
  315. package/dist/report/export.js.map +1 -1
  316. package/dist/report/findingsDedupe.js +41 -0
  317. package/dist/report/findingsDedupe.js.map +1 -0
  318. package/dist/report/flake.js +13 -14
  319. package/dist/report/flake.js.map +1 -1
  320. package/dist/report/history.js +72 -38
  321. package/dist/report/history.js.map +1 -1
  322. package/dist/report/policy.js +18 -7
  323. package/dist/report/policy.js.map +1 -1
  324. package/dist/report/qaLevel.js +10 -16
  325. package/dist/report/qaLevel.js.map +1 -1
  326. package/dist/report/readiness.js +42 -12
  327. package/dist/report/readiness.js.map +1 -1
  328. package/dist/report/sarifSources.js +160 -0
  329. package/dist/report/sarifSources.js.map +1 -0
  330. package/dist/report/summary.js +2 -2
  331. package/dist/report/summary.js.map +1 -1
  332. package/dist/report/testCatalog.js +4 -4
  333. package/dist/report/testCatalog.js.map +1 -1
  334. package/dist/report/timing.js +23 -23
  335. package/dist/report/timing.js.map +1 -1
  336. package/dist/report/toolHealth.js +124 -0
  337. package/dist/report/toolHealth.js.map +1 -0
  338. package/dist/server.js +501 -69
  339. package/dist/server.js.map +1 -1
  340. package/dist/services/automationGenerate.js +8 -2
  341. package/dist/services/automationGenerate.js.map +1 -1
  342. package/dist/services/build.js +10 -4
  343. package/dist/services/build.js.map +1 -1
  344. package/dist/services/flowGenerate.js +75 -0
  345. package/dist/services/flowGenerate.js.map +1 -0
  346. package/dist/services/preflight.js +40 -8
  347. package/dist/services/preflight.js.map +1 -1
  348. package/dist/services/prepareAndroid.js +92 -18
  349. package/dist/services/prepareAndroid.js.map +1 -1
  350. package/dist/services/prepareIos.js +94 -17
  351. package/dist/services/prepareIos.js.map +1 -1
  352. package/dist/services/report.js +271 -80
  353. package/dist/services/report.js.map +1 -1
  354. package/dist/services/smoke.js +68 -22
  355. package/dist/services/smoke.js.map +1 -1
  356. package/dist/services/suiteGenerate.js +43 -6
  357. package/dist/services/suiteGenerate.js.map +1 -1
  358. package/dist/services/testSuiteKnowledge.js +78 -33
  359. package/dist/services/testSuiteKnowledge.js.map +1 -1
  360. package/dist/session/attach.js +284 -4
  361. package/dist/session/attach.js.map +1 -1
  362. package/dist/session/processRegistry.js +433 -0
  363. package/dist/session/processRegistry.js.map +1 -0
  364. package/dist/session/progress.js +1 -1
  365. package/dist/session/progress.js.map +1 -1
  366. package/dist/session/retention.js +201 -0
  367. package/dist/session/retention.js.map +1 -0
  368. package/dist/session/store.js +459 -59
  369. package/dist/session/store.js.map +1 -1
  370. package/dist/snapshot/overlays.js +60 -10
  371. package/dist/snapshot/overlays.js.map +1 -1
  372. package/dist/snapshot/parse.js +30 -12
  373. package/dist/snapshot/parse.js.map +1 -1
  374. package/dist/snapshot/present.js +36 -6
  375. package/dist/snapshot/present.js.map +1 -1
  376. package/dist/snapshot/settle.js +39 -9
  377. package/dist/snapshot/settle.js.map +1 -1
  378. package/dist/state/consent.js +99 -0
  379. package/dist/state/consent.js.map +1 -0
  380. package/dist/state/profile.js +82 -11
  381. package/dist/state/profile.js.map +1 -1
  382. package/dist/suite/compile.js +15 -6
  383. package/dist/suite/compile.js.map +1 -1
  384. package/dist/suite/lint.js +22 -4
  385. package/dist/suite/lint.js.map +1 -1
  386. package/dist/suite/pom.js +75 -44
  387. package/dist/suite/pom.js.map +1 -1
  388. package/dist/suite/secretGuard.js +266 -0
  389. package/dist/suite/secretGuard.js.map +1 -0
  390. package/dist/suite/testcase.js +15 -11
  391. package/dist/suite/testcase.js.map +1 -1
  392. package/dist/testSuite/exporter.js +7 -3
  393. package/dist/testSuite/exporter.js.map +1 -1
  394. package/dist/testSuite/generator.js +43 -14
  395. package/dist/testSuite/generator.js.map +1 -1
  396. package/dist/testSuite/history.js +1 -1
  397. package/dist/testSuite/history.js.map +1 -1
  398. package/dist/testSuite/issueLinks.js +3 -3
  399. package/dist/testSuite/issueLinks.js.map +1 -1
  400. package/dist/testSuite/lint.js +4 -4
  401. package/dist/testSuite/lint.js.map +1 -1
  402. package/dist/testSuite/merge.js +13 -7
  403. package/dist/testSuite/merge.js.map +1 -1
  404. package/dist/testSuite/schema.js +21 -16
  405. package/dist/testSuite/schema.js.map +1 -1
  406. package/dist/testSuite/store.js +12 -4
  407. package/dist/testSuite/store.js.map +1 -1
  408. package/dist/testSuite/traceability.js +2 -2
  409. package/dist/testSuite/traceability.js.map +1 -1
  410. package/dist/tools/act.js +868 -174
  411. package/dist/tools/act.js.map +1 -1
  412. package/dist/tools/agent.js +521 -112
  413. package/dist/tools/agent.js.map +1 -1
  414. package/dist/tools/appControl.js +82 -19
  415. package/dist/tools/appControl.js.map +1 -1
  416. package/dist/tools/appMap.js +393 -189
  417. package/dist/tools/appMap.js.map +1 -1
  418. package/dist/tools/build.js +92 -51
  419. package/dist/tools/build.js.map +1 -1
  420. package/dist/tools/bundletool.js +141 -40
  421. package/dist/tools/bundletool.js.map +1 -1
  422. package/dist/tools/clearOverlay.js +98 -18
  423. package/dist/tools/clearOverlay.js.map +1 -1
  424. package/dist/tools/device.js +108 -19
  425. package/dist/tools/device.js.map +1 -1
  426. package/dist/tools/doctor.js +98 -35
  427. package/dist/tools/doctor.js.map +1 -1
  428. package/dist/tools/explore.js +110 -42
  429. package/dist/tools/explore.js.map +1 -1
  430. package/dist/tools/featureTesting.js +152 -130
  431. package/dist/tools/featureTesting.js.map +1 -1
  432. package/dist/tools/firstRun.js +94 -66
  433. package/dist/tools/firstRun.js.map +1 -1
  434. package/dist/tools/flow.js +347 -132
  435. package/dist/tools/flow.js.map +1 -1
  436. package/dist/tools/flowRepair.js +42 -10
  437. package/dist/tools/flowRepair.js.map +1 -1
  438. package/dist/tools/generate.js +199 -0
  439. package/dist/tools/generate.js.map +1 -0
  440. package/dist/tools/getArtifact.js +37 -8
  441. package/dist/tools/getArtifact.js.map +1 -1
  442. package/dist/tools/health.js +17 -12
  443. package/dist/tools/health.js.map +1 -1
  444. package/dist/tools/ios.js +148 -194
  445. package/dist/tools/ios.js.map +1 -1
  446. package/dist/tools/issues.js +256 -171
  447. package/dist/tools/issues.js.map +1 -1
  448. package/dist/tools/jobs.js +55 -11
  449. package/dist/tools/jobs.js.map +1 -1
  450. package/dist/tools/metro.js +84 -38
  451. package/dist/tools/metro.js.map +1 -1
  452. package/dist/tools/mobileAudit.js +83 -26
  453. package/dist/tools/mobileAudit.js.map +1 -1
  454. package/dist/tools/network.js +36 -14
  455. package/dist/tools/network.js.map +1 -1
  456. package/dist/tools/note.js +31 -17
  457. package/dist/tools/note.js.map +1 -1
  458. package/dist/tools/prepareIosTarget.js +31 -14
  459. package/dist/tools/prepareIosTarget.js.map +1 -1
  460. package/dist/tools/prepareTarget.js +193 -47
  461. package/dist/tools/prepareTarget.js.map +1 -1
  462. package/dist/tools/report.js +16 -8
  463. package/dist/tools/report.js.map +1 -1
  464. package/dist/tools/resolveArtifact.js +12 -12
  465. package/dist/tools/resolveArtifact.js.map +1 -1
  466. package/dist/tools/resolveTarget.js +81 -18
  467. package/dist/tools/resolveTarget.js.map +1 -1
  468. package/dist/tools/screenRecord.js +85 -20
  469. package/dist/tools/screenRecord.js.map +1 -1
  470. package/dist/tools/screenshot.js +42 -18
  471. package/dist/tools/screenshot.js.map +1 -1
  472. package/dist/tools/smoke.js +29 -12
  473. package/dist/tools/smoke.js.map +1 -1
  474. package/dist/tools/snapshot.js +157 -107
  475. package/dist/tools/snapshot.js.map +1 -1
  476. package/dist/tools/startSession.js +117 -84
  477. package/dist/tools/startSession.js.map +1 -1
  478. package/dist/tools/suite.js +391 -310
  479. package/dist/tools/suite.js.map +1 -1
  480. package/dist/tools/testSuite.js +112 -36
  481. package/dist/tools/testSuite.js.map +1 -1
  482. package/dist/tools/testThis.js +35 -802
  483. package/dist/tools/testThis.js.map +1 -1
  484. package/dist/tools/visual.js +698 -116
  485. package/dist/tools/visual.js.map +1 -1
  486. package/dist/tools/wait.js +9 -23
  487. package/dist/tools/wait.js.map +1 -1
  488. package/dist/tools/wda.js +312 -54
  489. package/dist/tools/wda.js.map +1 -1
  490. package/dist/version.js +37 -64
  491. package/dist/version.js.map +1 -1
  492. package/dist/visual/ocr.js +65 -8
  493. package/dist/visual/ocr.js.map +1 -1
  494. package/dist/visual/provider.js +87 -15
  495. package/dist/visual/provider.js.map +1 -1
  496. package/docs/README.md +24 -10
  497. package/docs/ci-reports.md +328 -0
  498. package/docs/concepts.md +227 -0
  499. package/docs/flows.md +153 -0
  500. package/docs/mcp-server.md +210 -104
  501. package/docs/physical-devices.md +84 -0
  502. package/docs/tools.md +808 -217
  503. package/package.json +16 -6
  504. package/dist/appMap/diff.js +0 -60
  505. package/dist/appMap/diff.js.map +0 -1
  506. package/dist/automation/maestroIr.js +0 -282
  507. package/dist/automation/maestroIr.js.map +0 -1
  508. package/dist/interop/maestro.js +0 -151
  509. package/dist/interop/maestro.js.map +0 -1
  510. package/dist/tools/assertVisual.js +0 -74
  511. package/dist/tools/assertVisual.js.map +0 -1
  512. package/dist/tools/automationGenerate.js +0 -394
  513. package/dist/tools/automationGenerate.js.map +0 -1
  514. package/dist/tools/capabilities.js +0 -209
  515. package/dist/tools/capabilities.js.map +0 -1
  516. package/dist/tools/detectContext.js +0 -41
  517. package/dist/tools/detectContext.js.map +0 -1
  518. package/dist/tools/flowGenerate.js +0 -55
  519. package/dist/tools/flowGenerate.js.map +0 -1
  520. package/dist/tools/history.js +0 -56
  521. package/dist/tools/history.js.map +0 -1
  522. package/dist/tools/idling.js +0 -104
  523. package/dist/tools/idling.js.map +0 -1
  524. package/dist/tools/inputCapabilities.js +0 -30
  525. package/dist/tools/inputCapabilities.js.map +0 -1
  526. package/dist/tools/locator.js +0 -57
  527. package/dist/tools/locator.js.map +0 -1
  528. package/dist/tools/maestro.js +0 -78
  529. package/dist/tools/maestro.js.map +0 -1
  530. package/dist/tools/permissions.js +0 -149
  531. package/dist/tools/permissions.js.map +0 -1
  532. package/dist/tools/plan.js +0 -49
  533. package/dist/tools/plan.js.map +0 -1
  534. package/dist/tools/screenInfo.js +0 -70
  535. package/dist/tools/screenInfo.js.map +0 -1
  536. package/dist/tools/seed.js +0 -101
  537. package/dist/tools/seed.js.map +0 -1
  538. package/dist/tools/state.js +0 -170
  539. package/dist/tools/state.js.map +0 -1
  540. package/dist/tools/visualText.js +0 -61
  541. package/dist/tools/visualText.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"failures.js","sourceRoot":"","sources":["../../src/oracle/failures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"failures.js","sourceRoot":"","sources":["../../src/oracle/failures.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,55 @@
1
- // Tier-1 deterministic health oracle (DESIGN §6). Phase 2.2: classifies BOTH layers —
1
+ // Tier-1 deterministic health oracle. Phase 2.2: classifies BOTH layers:
2
2
  // NATIVE health (process: crash dialog / ANR / wrong foreground) and APP health (JS/UI:
3
3
  // RN RedBox / LogBox error / error-boundary fallback / WebView error). A green native
4
4
  // process with a broken app UI (e.g. an ErrorBoundary screen) is now a first-class finding,
5
5
  // so agents don't have to infer "healthy process but broken app" from raw snapshot text.
6
6
  import { parseSnapshot } from '../snapshot/parse.js';
7
+ import { isAbortError } from '../lib/abortScope.js';
8
+ /** The verdict-free result of a cancelled health check. */
9
+ function cancelledHealth() {
10
+ return {
11
+ healthy: true,
12
+ nativeHealthy: true,
13
+ appHealthy: true,
14
+ nativeStatus: 'ok',
15
+ appStatus: 'ok',
16
+ foreground: 'unknown',
17
+ findings: [],
18
+ cancelled: true,
19
+ };
20
+ }
7
21
  // APP-layer surfaces (JS/UI). Order matters: the first fatal RedBox variant wins over LogBox.
8
22
  const APP_SURFACES = [
9
- { re: /unable to load script|could not connect to development server|loadJSBundleFromAssets|index\.android\.bundle/i, kind: 'rn_redbox', severity: 'high', detail: 'RN RedBox — JS bundle failed to load (Metro/bundle issue)' },
10
- { re: /unhandled (js|javascript) exception|invariant violation|TypeError:|ReferenceError|undefined is not an object|is not a function/i, kind: 'rn_redbox', severity: 'high', detail: 'RN RedBox — unhandled JS exception' },
11
- { re: /we encountered an error|something went wrong|this screen (crashed|encountered)|oops[!,. ].{0,40}(wrong|error|crash)/i, kind: 'app_error_boundary', severity: 'high', detail: 'app ErrorBoundary fallback UI (process alive, screen broken)' },
12
- { re: /net::ERR_|webpage not available|this site can.?t be reached|ERR_INTERNET_DISCONNECTED|ERR_NAME_NOT_RESOLVED|ERR_CONNECTION/i, kind: 'webview_error', severity: 'medium', detail: 'WebView error page' },
13
- { re: /console error|\b[1-9]\d* errors?\b/i, kind: 'rn_logbox_error', severity: 'medium', detail: 'RN LogBox error overlay (app running but logging errors)' },
23
+ {
24
+ re: /unable to load script|could not connect to development server|loadJSBundleFromAssets|index\.android\.bundle/i,
25
+ kind: 'rn_redbox',
26
+ severity: 'high',
27
+ detail: 'RN RedBox: JS bundle failed to load (Metro/bundle issue)',
28
+ },
29
+ {
30
+ re: /unhandled (js|javascript) exception|invariant violation|TypeError:|ReferenceError|undefined is not an object|is not a function/i,
31
+ kind: 'rn_redbox',
32
+ severity: 'high',
33
+ detail: 'RN RedBox: unhandled JS exception',
34
+ },
35
+ {
36
+ re: /we encountered an error|something went wrong|this screen (crashed|encountered)|oops[!,. ].{0,40}(wrong|error|crash)/i,
37
+ kind: 'app_error_boundary',
38
+ severity: 'high',
39
+ detail: 'app ErrorBoundary fallback UI (process alive, screen broken)',
40
+ },
41
+ {
42
+ re: /net::ERR_|webpage not available|this site can.?t be reached|ERR_INTERNET_DISCONNECTED|ERR_NAME_NOT_RESOLVED|ERR_CONNECTION/i,
43
+ kind: 'webview_error',
44
+ severity: 'medium',
45
+ detail: 'WebView error page',
46
+ },
47
+ {
48
+ re: /console error|\b[1-9]\d* errors?\b/i,
49
+ kind: 'rn_logbox_error',
50
+ severity: 'medium',
51
+ detail: 'RN LogBox error overlay (app running but logging errors)',
52
+ },
14
53
  ];
15
54
  // A conservative last-resort generic error surface (only when nothing more specific matched).
16
55
  const GENERIC_ERROR_RE = /failed to load|couldn.?t load|an error (occurred|has occurred)|no internet connection|please try again/i;
@@ -25,20 +64,52 @@ function firstMatch(nodes, re) {
25
64
  }
26
65
  return undefined;
27
66
  }
28
- export async function checkHealth(driver, appId, xml) {
29
- const foreground = await driver.foregroundOwner().catch(() => 'unknown');
67
+ /** The package that owns the dumped window (Android uiautomator root `package=`), or undefined. */
68
+ export function dumpRootPackage(nodes) {
69
+ const pkg = nodes?.[0]?.attrs?.package;
70
+ return pkg ? pkg : undefined;
71
+ }
72
+ /**
73
+ * Health check. `opts.nodes` = the ALREADY-PARSED allNodes of `xml` (callers that just parsed the
74
+ * post-action dump pass them). Re-parsing a big screen cost ~60 ms per action.
75
+ *
76
+ * Foreground: on Android the dump's root `package=` already says which app owns the window. When
77
+ * it IS the app under test and no crash/ANR copy is on screen, the heavy `dumpsys activity
78
+ * activities` (foregroundOwner) is skipped (foreground = the package); it still runs whenever the
79
+ * caller did not supply the dump, the root package differs from appId, is absent (WDA / older
80
+ * dumps), or a crash/ANR pattern matched.
81
+ */
82
+ export async function checkHealth(driver, appId, xml, opts = {}) {
30
83
  let source = xml;
84
+ let dumpAborted = false;
31
85
  if (source === undefined)
32
- source = await driver.dumpXml().catch(() => '');
33
- // Parse to nodes so evidence is the VISIBLE text (not attribute names) — best-effort.
34
- let nodes = [];
35
- try {
36
- nodes = parseSnapshot(source).allNodes.map((n) => ({ text: n.text, desc: n.desc, cls: n.cls, id: n.id }));
37
- }
38
- catch {
39
- nodes = [];
86
+ source = await driver.dumpXml().catch((e) => {
87
+ dumpAborted = isAbortError(e);
88
+ return '';
89
+ });
90
+ // Cancelled work is not evidence: an aborted dump (or a check whose call/job was cancelled) must
91
+ // never become a `wda_unreachable` finding / BLOCK verdict.
92
+ if (dumpAborted || isAbortError(undefined))
93
+ return cancelledHealth();
94
+ // Parse to nodes so evidence is the VISIBLE text (not attribute names). Best-effort.
95
+ let raw = opts.nodes;
96
+ if (!raw) {
97
+ try {
98
+ raw = parseSnapshot(source).allNodes;
99
+ }
100
+ catch {
101
+ raw = [];
102
+ }
40
103
  }
104
+ const nodes = raw.map((n) => ({ text: n.text, desc: n.desc, cls: n.cls, id: n.id }));
41
105
  const joined = nodes.map((n) => `${n.text} ${n.desc} ${n.cls ?? ''} ${n.id ?? ''}`).join(' ') || source;
106
+ const rootPkg = dumpRootPackage(raw);
107
+ // Only on the post-action path (caller supplied the dump): a standalone health check (no xml)
108
+ // keeps the full dumpsys answer, which also names the resumed activity.
109
+ const trustRoot = xml !== undefined && !!appId && rootPkg === appId && !ANR_RE.test(joined) && !CRASH_RE.test(joined);
110
+ const foreground = trustRoot ? rootPkg : await driver.foregroundOwner().catch(() => 'unknown');
111
+ if (isAbortError(undefined))
112
+ return cancelledHealth();
42
113
  const findings = [];
43
114
  // ---- NATIVE layer ----
44
115
  let nativeStatus = 'ok';
@@ -47,11 +118,23 @@ export async function checkHealth(driver, appId, xml) {
47
118
  nativeStatus = 'wda_unreachable';
48
119
  }
49
120
  if (ANR_RE.test(joined)) {
50
- findings.push({ severity: 'high', layer: 'native', kind: 'anr', detail: 'Application Not Responding dialog', evidence: firstMatch(nodes, ANR_RE) });
121
+ findings.push({
122
+ severity: 'high',
123
+ layer: 'native',
124
+ kind: 'anr',
125
+ detail: 'Application Not Responding dialog',
126
+ evidence: firstMatch(nodes, ANR_RE),
127
+ });
51
128
  nativeStatus = 'anr';
52
129
  }
53
130
  else if (CRASH_RE.test(joined)) {
54
- findings.push({ severity: 'high', layer: 'native', kind: 'native_crash', detail: 'native crash dialog', evidence: firstMatch(nodes, CRASH_RE) });
131
+ findings.push({
132
+ severity: 'high',
133
+ layer: 'native',
134
+ kind: 'native_crash',
135
+ detail: 'native crash dialog',
136
+ evidence: firstMatch(nodes, CRASH_RE),
137
+ });
55
138
  nativeStatus = 'native_crash';
56
139
  }
57
140
  if (driver.kind === 'wda') {
@@ -59,31 +142,64 @@ export async function checkHealth(driver, appId, xml) {
59
142
  const alert = /XCUIElementTypeAlert/i.test(joined);
60
143
  const permission = /would like to|allow|don.?t allow|while using|permission/i.test(joined) && alert;
61
144
  if (springboard) {
62
- findings.push({ severity: 'high', layer: 'native', kind: 'wrong_foreground_app', detail: 'iOS SpringBoard is foreground (app not active or crashed)', evidence: firstMatch(nodes, /SpringBoard/i) });
145
+ findings.push({
146
+ severity: 'high',
147
+ layer: 'native',
148
+ kind: 'wrong_foreground_app',
149
+ detail: 'iOS SpringBoard is foreground (app not active or crashed)',
150
+ evidence: firstMatch(nodes, /SpringBoard/i),
151
+ });
63
152
  if (nativeStatus === 'ok')
64
153
  nativeStatus = 'wrong_foreground_app';
65
154
  }
66
155
  else if (permission) {
67
- findings.push({ severity: 'medium', layer: 'native', kind: 'permission_dialog', detail: 'iOS runtime permission dialog is visible', evidence: firstMatch(nodes, /would like to|allow|don.?t allow|while using|permission/i) });
156
+ findings.push({
157
+ severity: 'medium',
158
+ layer: 'native',
159
+ kind: 'permission_dialog',
160
+ detail: 'iOS runtime permission dialog is visible',
161
+ evidence: firstMatch(nodes, /would like to|allow|don.?t allow|while using|permission/i),
162
+ });
68
163
  }
69
164
  else if (alert) {
70
- findings.push({ severity: 'medium', layer: 'native', kind: 'native_alert', detail: 'iOS native alert is visible', evidence: firstMatch(nodes, /.+/) });
165
+ findings.push({
166
+ severity: 'medium',
167
+ layer: 'native',
168
+ kind: 'native_alert',
169
+ detail: 'iOS native alert is visible',
170
+ evidence: firstMatch(nodes, /.+/),
171
+ });
71
172
  }
72
173
  }
73
174
  if (appId && !foreground.startsWith(appId) && foreground !== 'unknown') {
74
175
  if (/launcher/i.test(foreground)) {
75
- findings.push({ severity: 'high', layer: 'native', kind: 'wrong_foreground_app', detail: `app left to the launcher (possible crash) — foreground=${foreground}` });
176
+ findings.push({
177
+ severity: 'high',
178
+ layer: 'native',
179
+ kind: 'wrong_foreground_app',
180
+ detail: `app left to the launcher (possible crash), foreground=${foreground}`,
181
+ });
76
182
  if (nativeStatus === 'ok')
77
183
  nativeStatus = 'wrong_foreground_app';
78
184
  }
79
185
  else if (/permissioncontroller/i.test(foreground)) {
80
- findings.push({ severity: 'medium', layer: 'native', kind: 'permission_dialog', detail: `Android runtime permission dialog is visible — foreground=${foreground}` });
186
+ findings.push({
187
+ severity: 'medium',
188
+ layer: 'native',
189
+ kind: 'permission_dialog',
190
+ detail: `Android runtime permission dialog is visible, foreground=${foreground}`,
191
+ });
81
192
  }
82
193
  else if (/packageinstaller|systemui|com\.android\.|inputmethod/i.test(foreground)) {
83
194
  findings.push({ severity: 'info', layer: 'native', kind: 'system_surface', detail: foreground });
84
195
  }
85
196
  else {
86
- findings.push({ severity: 'medium', layer: 'native', kind: 'wrong_foreground_app', detail: `foreground is a different app — foreground=${foreground}` });
197
+ findings.push({
198
+ severity: 'medium',
199
+ layer: 'native',
200
+ kind: 'wrong_foreground_app',
201
+ detail: `foreground is a different app, foreground=${foreground}`,
202
+ });
87
203
  if (nativeStatus === 'ok')
88
204
  nativeStatus = 'wrong_foreground_app';
89
205
  }
@@ -98,13 +214,19 @@ export async function checkHealth(driver, appId, xml) {
98
214
  findings.push({ severity: s.severity, layer: 'app', kind: s.kind, detail: s.detail, evidence: firstMatch(nodes, s.re) });
99
215
  appStatus = s.severity === 'high' ? 'error' : appStatus === 'error' ? 'error' : 'degraded';
100
216
  matched = true;
101
- // RedBox/error-boundary are terminal for the screen — don't also report lesser surfaces.
217
+ // RedBox/error-boundary are terminal for the screen; don't also report lesser surfaces.
102
218
  if (s.severity === 'high')
103
219
  break;
104
220
  }
105
221
  }
106
222
  if (!matched && GENERIC_ERROR_RE.test(joined)) {
107
- findings.push({ severity: 'medium', layer: 'app', kind: 'unknown_error_surface', detail: 'generic error copy on screen (low confidence)', evidence: firstMatch(nodes, GENERIC_ERROR_RE) });
223
+ findings.push({
224
+ severity: 'medium',
225
+ layer: 'app',
226
+ kind: 'unknown_error_surface',
227
+ detail: 'generic error copy on screen (low confidence)',
228
+ evidence: firstMatch(nodes, GENERIC_ERROR_RE),
229
+ });
108
230
  appStatus = 'degraded';
109
231
  }
110
232
  }
@@ -1 +1 @@
1
- {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/oracle/health.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/oracle/health.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- // Locator suggestions + durability scoring (NEXT-PLAN: Locator And Maintainability). For each
1
+ // Locator suggestions + durability scoring (Locator And Maintainability). For each
2
2
  // element, recommend the most durable way to target it and score how brittle that is, following
3
3
  // the QA-standard priority: accessibility id / content-desc > resource-id / test tag > stable
4
4
  // visible text > relative structure > coordinate/image (last resort). The screen-level
@@ -14,18 +14,33 @@ const TIER_DURABILITY = {
14
14
  const NOISE_ID = /(^android:id\/)|(:id\/(content|action_bar|decor_content_parent|navigationBarBackground|statusBarBackground)$)/i;
15
15
  const isMeaningful = (s) => !!s && s.trim().length > 0;
16
16
  function roleStem(role) {
17
- const cleaned = role.split('.').pop()?.replace(/^XCUIElementType/i, '') || role;
18
- const stem = cleaned.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_+|_+$/g, '');
17
+ const cleaned = role
18
+ .split('.')
19
+ .pop()
20
+ ?.replace(/^XCUIElementType/i, '') || role;
21
+ const stem = cleaned
22
+ .replace(/([a-z0-9])([A-Z])/g, '$1_$2')
23
+ .toLowerCase()
24
+ .replace(/[^a-z0-9]+/g, '_')
25
+ .replace(/^_+|_+$/g, '');
19
26
  return stem || 'element';
20
27
  }
21
28
  function textStem(value) {
22
29
  if (!isMeaningful(value))
23
30
  return null;
24
- const stem = value.toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_+|_+$/g, '').slice(0, 40).replace(/_+$/g, '');
31
+ const stem = value
32
+ .toLowerCase()
33
+ .replace(/[^a-z0-9]+/g, '_')
34
+ .replace(/^_+|_+$/g, '')
35
+ .slice(0, 40)
36
+ .replace(/_+$/g, '');
25
37
  return stem.length >= 2 ? stem : null;
26
38
  }
27
39
  function refStem(ref) {
28
- return ref.replace(/[^a-z0-9]+/gi, '_').replace(/^_+|_+$/g, '').toLowerCase() || 'control';
40
+ return (ref
41
+ .replace(/[^a-z0-9]+/gi, '_')
42
+ .replace(/^_+|_+$/g, '')
43
+ .toLowerCase() || 'control');
29
44
  }
30
45
  function suggestedHandle(el, platform) {
31
46
  const label = textStem(el.label) ?? textStem(el.text);
@@ -41,7 +56,8 @@ function dynamicTextReason(value) {
41
56
  return 'text is long and likely to change with content or localization';
42
57
  if (/\b\d{1,2}[:/.-]\d{1,2}([:/.-]\d{2,4})?\b/.test(text))
43
58
  return 'text contains a date/time-like value';
44
- if (/\b\d+(?:[.,]\d+)?\b/.test(text) && /[$€£¥%]|\b(items?|results?|messages?|notifications?|total|balance|km|mi|min|sec|hours?)\b/i.test(text))
59
+ if (/\b\d+(?:[.,]\d+)?\b/.test(text) &&
60
+ /[$€£¥%]|\b(items?|results?|messages?|notifications?|total|balance|km|mi|min|sec|hours?)\b/i.test(text))
45
61
  return 'text contains count, currency, percent, or measurement data';
46
62
  if (/[0-9a-f]{8,}/i.test(text))
47
63
  return 'text contains an id/hash-like token';
@@ -54,39 +70,140 @@ export function suggestLocator(el, opts = {}) {
54
70
  // iOS/XCUITest priority: accessibilityIdentifier first. Labels/names are useful, but copy
55
71
  // and localization often change them; clickable controls without identifiers still need work.
56
72
  if (isMeaningful(el.id) && !NOISE_ID.test(el.id)) {
57
- return { ...base, platform, locatorKind: 'accessibility_identifier', tier: 'accessibility', durability: TIER_DURABILITY.accessibility, locator: el.id, rationale: 'accessibilityIdentifier — preferred durable iOS/XCUITest locator', needsTestId: false };
73
+ return {
74
+ ...base,
75
+ platform,
76
+ locatorKind: 'accessibility_identifier',
77
+ tier: 'accessibility',
78
+ durability: TIER_DURABILITY.accessibility,
79
+ locator: el.id,
80
+ rationale: 'accessibilityIdentifier: preferred durable iOS/XCUITest locator',
81
+ needsTestId: false,
82
+ };
58
83
  }
59
84
  if (isMeaningful(el.label)) {
60
- return { ...base, platform, locatorKind: 'accessibility_label', tier: 'accessibility', durability: 78, locator: el.label, rationale: 'accessibility label/name — usable, but add an accessibilityIdentifier for CI-stable iOS flows', needsTestId: el.clickable, suggestedTestId: el.clickable ? suggestedHandle(el, platform) : undefined };
85
+ return {
86
+ ...base,
87
+ platform,
88
+ locatorKind: 'accessibility_label',
89
+ tier: 'accessibility',
90
+ durability: 78,
91
+ locator: el.label,
92
+ rationale: 'accessibility label/name: usable, but add an accessibilityIdentifier for CI-stable iOS flows',
93
+ needsTestId: el.clickable,
94
+ suggestedTestId: el.clickable ? suggestedHandle(el, platform) : undefined,
95
+ };
61
96
  }
62
97
  if (isMeaningful(el.text)) {
63
98
  const short = el.text.trim().length <= 2 || /^\d+$/.test(el.text.trim());
64
- return { ...base, platform, locatorKind: 'visible_text', tier: 'visible_text', durability: short ? 35 : 58, locator: el.text, rationale: short ? 'visible value/text is short or numeric — brittle on iOS; add an accessibilityIdentifier' : 'visible value/text — usable but copy/localization dependent; prefer accessibilityIdentifier', needsTestId: el.clickable, suggestedTestId: el.clickable ? suggestedHandle(el, platform) : undefined };
99
+ return {
100
+ ...base,
101
+ platform,
102
+ locatorKind: 'visible_text',
103
+ tier: 'visible_text',
104
+ durability: short ? 35 : 58,
105
+ locator: el.text,
106
+ rationale: short
107
+ ? 'visible value/text is short or numeric, brittle on iOS; add an accessibilityIdentifier'
108
+ : 'visible value/text: usable but copy/localization dependent; prefer accessibilityIdentifier',
109
+ needsTestId: el.clickable,
110
+ suggestedTestId: el.clickable ? suggestedHandle(el, platform) : undefined,
111
+ };
65
112
  }
66
113
  if (el.clickable) {
67
- return { ...base, platform, locatorKind: 'structure', tier: 'structure', durability: TIER_DURABILITY.structure, locator: null, rationale: 'hittable control has no accessibilityIdentifier, label, or text — predicate/class-chain/coordinates only; add an accessibilityIdentifier', needsTestId: true, suggestedTestId: suggestedHandle(el, platform) };
114
+ return {
115
+ ...base,
116
+ platform,
117
+ locatorKind: 'structure',
118
+ tier: 'structure',
119
+ durability: TIER_DURABILITY.structure,
120
+ locator: null,
121
+ rationale: 'hittable control has no accessibilityIdentifier, label, or text. Predicate/class-chain/coordinates only; add an accessibilityIdentifier',
122
+ needsTestId: true,
123
+ suggestedTestId: suggestedHandle(el, platform),
124
+ };
68
125
  }
69
- return { ...base, platform, locatorKind: 'coordinate', tier: 'coordinate', durability: TIER_DURABILITY.coordinate, locator: null, rationale: 'no durable iOS handle — visual/coordinate targeting only', needsTestId: el.clickable, suggestedTestId: el.clickable ? suggestedHandle(el, platform) : undefined };
126
+ return {
127
+ ...base,
128
+ platform,
129
+ locatorKind: 'coordinate',
130
+ tier: 'coordinate',
131
+ durability: TIER_DURABILITY.coordinate,
132
+ locator: null,
133
+ rationale: 'no durable iOS handle, visual/coordinate targeting only',
134
+ needsTestId: el.clickable,
135
+ suggestedTestId: el.clickable ? suggestedHandle(el, platform) : undefined,
136
+ };
70
137
  }
71
138
  // 1) accessibility id / content description (most durable; survives copy + layout changes)
72
139
  if (isMeaningful(el.label)) {
73
- return { ...base, platform, locatorKind: 'accessibility_label', tier: 'accessibility', durability: TIER_DURABILITY.accessibility, locator: el.label, rationale: 'content-desc / accessibility label — durable and a11y-friendly', needsTestId: false };
140
+ return {
141
+ ...base,
142
+ platform,
143
+ locatorKind: 'accessibility_label',
144
+ tier: 'accessibility',
145
+ durability: TIER_DURABILITY.accessibility,
146
+ locator: el.label,
147
+ rationale: 'content-desc / accessibility label: durable and a11y-friendly',
148
+ needsTestId: false,
149
+ };
74
150
  }
75
151
  // 2) resource-id / test tag (durable when it's a real testID, not framework noise)
76
152
  if (isMeaningful(el.id) && !NOISE_ID.test(el.id)) {
77
- return { ...base, platform, locatorKind: 'resource_id', tier: 'resource_id', durability: TIER_DURABILITY.resource_id, locator: el.id, rationale: 'resource-id / testID — durable', needsTestId: false };
153
+ return {
154
+ ...base,
155
+ platform,
156
+ locatorKind: 'resource_id',
157
+ tier: 'resource_id',
158
+ durability: TIER_DURABILITY.resource_id,
159
+ locator: el.id,
160
+ rationale: 'resource-id / testID: durable',
161
+ needsTestId: false,
162
+ };
78
163
  }
79
164
  // 3) stable visible text (works, but copy/localization can change it)
80
165
  if (isMeaningful(el.text)) {
81
166
  const short = el.text.trim().length <= 2 || /^\d+$/.test(el.text.trim());
82
- return { ...base, platform, locatorKind: 'visible_text', tier: 'visible_text', durability: short ? 40 : TIER_DURABILITY.visible_text, locator: el.text, rationale: short ? 'visible text, but very short/numeric — brittle; add a testID' : 'visible text — usable but breaks if copy/localization changes', needsTestId: el.clickable, suggestedTestId: el.clickable ? suggestedHandle(el, platform) : undefined };
167
+ return {
168
+ ...base,
169
+ platform,
170
+ locatorKind: 'visible_text',
171
+ tier: 'visible_text',
172
+ durability: short ? 40 : TIER_DURABILITY.visible_text,
173
+ locator: el.text,
174
+ rationale: short
175
+ ? 'visible text, but very short/numeric, brittle; add a testID'
176
+ : 'visible text: usable but breaks if copy/localization changes',
177
+ needsTestId: el.clickable,
178
+ suggestedTestId: el.clickable ? suggestedHandle(el, platform) : undefined,
179
+ };
83
180
  }
84
181
  // 4) relative structure (no handle at all on an interactive control)
85
182
  if (el.clickable) {
86
- return { ...base, platform, locatorKind: 'structure', tier: 'structure', durability: TIER_DURABILITY.structure, locator: null, rationale: 'clickable but has no id/label/text — only structural/coordinate targeting; add a testID', needsTestId: true, suggestedTestId: suggestedHandle(el, platform) };
183
+ return {
184
+ ...base,
185
+ platform,
186
+ locatorKind: 'structure',
187
+ tier: 'structure',
188
+ durability: TIER_DURABILITY.structure,
189
+ locator: null,
190
+ rationale: 'clickable but has no id/label/text. Only structural/coordinate targeting; add a testID',
191
+ needsTestId: true,
192
+ suggestedTestId: suggestedHandle(el, platform),
193
+ };
87
194
  }
88
195
  // 5) coordinate / image (last resort)
89
- return { ...base, platform, locatorKind: 'coordinate', tier: 'coordinate', durability: TIER_DURABILITY.coordinate, locator: null, rationale: 'no durable handle — coordinate/image match only', needsTestId: el.clickable, suggestedTestId: el.clickable ? suggestedHandle(el, platform) : undefined };
196
+ return {
197
+ ...base,
198
+ platform,
199
+ locatorKind: 'coordinate',
200
+ tier: 'coordinate',
201
+ durability: TIER_DURABILITY.coordinate,
202
+ locator: null,
203
+ rationale: 'no durable handle, coordinate/image match only',
204
+ needsTestId: el.clickable,
205
+ suggestedTestId: el.clickable ? suggestedHandle(el, platform) : undefined,
206
+ };
90
207
  }
91
208
  export function automationReadiness(suggestions, elements, opts = {}) {
92
209
  const platform = opts.platform ?? 'generic';
@@ -103,7 +220,14 @@ export function automationReadiness(suggestions, elements, opts = {}) {
103
220
  const grade = durablePct >= 90 ? 'A' : durablePct >= 70 ? 'B' : durablePct >= 50 ? 'C' : 'D';
104
221
  const needTestIds = suggestions
105
222
  .filter((s) => s.needsTestId)
106
- .map((s) => ({ ref: s.ref, role: s.role, hint: byRef.get(s.ref)?.locator ? `currently targeted by ${byRef.get(s.ref).tier}: "${byRef.get(s.ref).locator}"` : 'no durable handle', suggestedTestId: s.suggestedTestId }));
223
+ .map((s) => ({
224
+ ref: s.ref,
225
+ role: s.role,
226
+ hint: byRef.get(s.ref)?.locator
227
+ ? `currently targeted by ${byRef.get(s.ref).tier}: "${byRef.get(s.ref).locator}"`
228
+ : 'no durable handle',
229
+ suggestedTestId: s.suggestedTestId,
230
+ }));
107
231
  return { grade, durablePct, interactiveCount: interactive.length, durableCount: durable.length, needTestIds, platform };
108
232
  }
109
233
  export function locatorReadinessIssues(suggestions, elements, opts = {}) {
@@ -126,7 +250,10 @@ export function locatorReadinessIssues(suggestions, elements, opts = {}) {
126
250
  suggestion: 'Add SwiftUI .accessibilityIdentifier(...), UIKit accessibilityIdentifier, or React Native testID for these controls.',
127
251
  suggestedTestIds: missing
128
252
  .filter((s) => s.suggestedTestId)
129
- .map((s) => ({ ref: s.ref, name: nameCounts[s.suggestedTestId] > 1 ? `${s.suggestedTestId}_${refStem(s.ref)}` : s.suggestedTestId })),
253
+ .map((s) => ({
254
+ ref: s.ref,
255
+ name: nameCounts[s.suggestedTestId] > 1 ? `${s.suggestedTestId}_${refStem(s.ref)}` : s.suggestedTestId,
256
+ })),
130
257
  });
131
258
  }
132
259
  const labels = new Map();
@@ -169,7 +296,9 @@ export function locatorReadinessIssues(suggestions, elements, opts = {}) {
169
296
  severity: 'warn',
170
297
  message: `${coordinateOnly.length} element(s) have no semantic locator and would require structure, image, or coordinates.`,
171
298
  refs: coordinateOnly.map((s) => s.ref),
172
- suggestion: platform === 'ios' ? 'Add accessibilityIdentifier values before relying on these controls in CI.' : 'Add testID/resource-id/content-desc values before relying on these controls in CI.',
299
+ suggestion: platform === 'ios'
300
+ ? 'Add accessibilityIdentifier values before relying on these controls in CI.'
301
+ : 'Add testID/resource-id/content-desc values before relying on these controls in CI.',
173
302
  });
174
303
  }
175
304
  return issues;