swipium 1.3.0 → 1.5.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 (438) hide show
  1. package/CHANGELOG.md +142 -0
  2. package/README.md +89 -25
  3. package/THREAT_MODEL.md +1 -1
  4. package/dist/appMap/automationLink.js +13 -3
  5. package/dist/appMap/automationLink.js.map +1 -1
  6. package/dist/appMap/build.js +28 -6
  7. package/dist/appMap/build.js.map +1 -1
  8. package/dist/appMap/codeIndex.js +29 -3
  9. package/dist/appMap/codeIndex.js.map +1 -1
  10. package/dist/appMap/featureIndex.js +20 -2
  11. package/dist/appMap/featureIndex.js.map +1 -1
  12. package/dist/appMap/featureModel.js +42 -6
  13. package/dist/appMap/featureModel.js.map +1 -1
  14. package/dist/appMap/firstRunApply.js +22 -4
  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 +0 -20
  19. package/dist/appMap/issues.js.map +1 -1
  20. package/dist/appMap/migrations.js +1 -1
  21. package/dist/appMap/migrations.js.map +1 -1
  22. package/dist/appMap/prelaunch.js.map +1 -1
  23. package/dist/appMap/projectRegistry.js +8 -2
  24. package/dist/appMap/projectRegistry.js.map +1 -1
  25. package/dist/appMap/query.js +20 -4
  26. package/dist/appMap/query.js.map +1 -1
  27. package/dist/appMap/runtimeMerge.js +9 -2
  28. package/dist/appMap/runtimeMerge.js.map +1 -1
  29. package/dist/appMap/schema.js.map +1 -1
  30. package/dist/appMap/screenMatch.js +5 -1
  31. package/dist/appMap/screenMatch.js.map +1 -1
  32. package/dist/appMap/staticScan.js +134 -22
  33. package/dist/appMap/staticScan.js.map +1 -1
  34. package/dist/appMap/store.js +4 -79
  35. package/dist/appMap/store.js.map +1 -1
  36. package/dist/appMap/tsAstScan.js +31 -9
  37. package/dist/appMap/tsAstScan.js.map +1 -1
  38. package/dist/artifacts/bundletool.js +44 -7
  39. package/dist/artifacts/bundletool.js.map +1 -1
  40. package/dist/artifacts/resolve.js +33 -6
  41. package/dist/artifacts/resolve.js.map +1 -1
  42. package/dist/automation/capabilities.js +109 -27
  43. package/dist/automation/capabilities.js.map +1 -1
  44. package/dist/automation/gestures.js +5 -1
  45. package/dist/automation/gestures.js.map +1 -1
  46. package/dist/automation/plan.js +65 -17
  47. package/dist/automation/plan.js.map +1 -1
  48. package/dist/automation/report.js +12 -2
  49. package/dist/automation/report.js.map +1 -1
  50. package/dist/automation/selectors.js +8 -3
  51. package/dist/automation/selectors.js.map +1 -1
  52. package/dist/automation/types.js.map +1 -1
  53. package/dist/automation/waits.js +9 -3
  54. package/dist/automation/waits.js.map +1 -1
  55. package/dist/automation/webview.js +7 -1
  56. package/dist/automation/webview.js.map +1 -1
  57. package/dist/automationGen/appiumModel.js +3 -1
  58. package/dist/automationGen/appiumModel.js.map +1 -1
  59. package/dist/automationGen/ciEmitter.js +1 -1
  60. package/dist/automationGen/ciEmitter.js.map +1 -1
  61. package/dist/automationGen/jsEmitter.js +29 -21
  62. package/dist/automationGen/jsEmitter.js.map +1 -1
  63. package/dist/automationGen/projectProfile.js +5 -1
  64. package/dist/automationGen/projectProfile.js.map +1 -1
  65. package/dist/automationGen/pythonEmitter.js +3 -3
  66. package/dist/automationGen/pythonEmitter.js.map +1 -1
  67. package/dist/automationGen/readmeEmitter.js.map +1 -1
  68. package/dist/automationGen/suitePlan.js +11 -6
  69. package/dist/automationGen/suitePlan.js.map +1 -1
  70. package/dist/automationGen/validation.js +33 -5
  71. package/dist/automationGen/validation.js.map +1 -1
  72. package/dist/build/parseBuildLog.js +234 -30
  73. package/dist/build/parseBuildLog.js.map +1 -1
  74. package/dist/build/plan.js +33 -12
  75. package/dist/build/plan.js.map +1 -1
  76. package/dist/ci/preflight.js.map +1 -1
  77. package/dist/cli/init.js.map +1 -1
  78. package/dist/cli/scan.js +1 -1
  79. package/dist/cli/scan.js.map +1 -1
  80. package/dist/cli/suite.js +2 -2
  81. package/dist/cli/suite.js.map +1 -1
  82. package/dist/cli/verify.js.map +1 -1
  83. package/dist/context/detect.js +10 -4
  84. package/dist/context/detect.js.map +1 -1
  85. package/dist/context/findApps.js +16 -2
  86. package/dist/context/findApps.js.map +1 -1
  87. package/dist/context/scan.js.map +1 -1
  88. package/dist/core/target.js +7 -5
  89. package/dist/core/target.js.map +1 -1
  90. package/dist/core/targetPlan.js +135 -17
  91. package/dist/core/targetPlan.js.map +1 -1
  92. package/dist/drivers/DirectDriver.js +17 -7
  93. package/dist/drivers/DirectDriver.js.map +1 -1
  94. package/dist/drivers/SimctlDriver.js +4 -1
  95. package/dist/drivers/SimctlDriver.js.map +1 -1
  96. package/dist/drivers/WdaDriver.js +15 -5
  97. package/dist/drivers/WdaDriver.js.map +1 -1
  98. package/dist/explore/candidates.js +5 -1
  99. package/dist/explore/candidates.js.map +1 -1
  100. package/dist/explore/graph.js +11 -2
  101. package/dist/explore/graph.js.map +1 -1
  102. package/dist/explore/memory.js +4 -1
  103. package/dist/explore/memory.js.map +1 -1
  104. package/dist/explore/planner.js +54 -9
  105. package/dist/explore/planner.js.map +1 -1
  106. package/dist/explore/policy.js +6 -1
  107. package/dist/explore/policy.js.map +1 -1
  108. package/dist/explore/runner.js +179 -23
  109. package/dist/explore/runner.js.map +1 -1
  110. package/dist/explore/signatures.js +3 -1
  111. package/dist/explore/signatures.js.map +1 -1
  112. package/dist/explore/suite.js +3 -1
  113. package/dist/explore/suite.js.map +1 -1
  114. package/dist/featureTesting/executionBootstrap.js +128 -19
  115. package/dist/featureTesting/executionBootstrap.js.map +1 -1
  116. package/dist/featureTesting/featureMap.js +4 -1
  117. package/dist/featureTesting/featureMap.js.map +1 -1
  118. package/dist/featureTesting/featureScope.js +94 -13
  119. package/dist/featureTesting/featureScope.js.map +1 -1
  120. package/dist/featureTesting/mapFeatureScope.js +37 -8
  121. package/dist/featureTesting/mapFeatureScope.js.map +1 -1
  122. package/dist/featureTesting/objectiveModel.js +5 -1
  123. package/dist/featureTesting/objectiveModel.js.map +1 -1
  124. package/dist/featureTesting/resultMerge.js +10 -2
  125. package/dist/featureTesting/resultMerge.js.map +1 -1
  126. package/dist/featureTesting/sources.js +4 -1
  127. package/dist/featureTesting/sources.js.map +1 -1
  128. package/dist/featureTesting/suiteBridge.js +7 -1
  129. package/dist/featureTesting/suiteBridge.js.map +1 -1
  130. package/dist/featureTesting/synonyms.js +31 -3
  131. package/dist/featureTesting/synonyms.js.map +1 -1
  132. package/dist/featureTesting/testCaseFactory.js +16 -4
  133. package/dist/featureTesting/testCaseFactory.js.map +1 -1
  134. package/dist/featureTesting/testPlan.js +32 -10
  135. package/dist/featureTesting/testPlan.js.map +1 -1
  136. package/dist/firstRun/classifyScreen.js +4 -1
  137. package/dist/firstRun/classifyScreen.js.map +1 -1
  138. package/dist/firstRun/firstRunPlanner.js +5 -2
  139. package/dist/firstRun/firstRunPlanner.js.map +1 -1
  140. package/dist/firstRun/firstRunRunner.js +84 -23
  141. package/dist/firstRun/firstRunRunner.js.map +1 -1
  142. package/dist/firstRun/generatedDataPolicy.js +16 -6
  143. package/dist/firstRun/generatedDataPolicy.js.map +1 -1
  144. package/dist/firstRun/inputPlanner.js +40 -6
  145. package/dist/firstRun/inputPlanner.js.map +1 -1
  146. package/dist/firstRun/paywallPolicy.js.map +1 -1
  147. package/dist/fixtures/catalog.js +39 -6
  148. package/dist/fixtures/catalog.js.map +1 -1
  149. package/dist/flows/generate.js +53 -12
  150. package/dist/flows/generate.js.map +1 -1
  151. package/dist/flows/lint.js +88 -14
  152. package/dist/flows/lint.js.map +1 -1
  153. package/dist/flows/pack.js +18 -2
  154. package/dist/flows/pack.js.map +1 -1
  155. package/dist/flows/repair.js +71 -20
  156. package/dist/flows/repair.js.map +1 -1
  157. package/dist/flows/run.js +164 -51
  158. package/dist/flows/run.js.map +1 -1
  159. package/dist/flows/schema.js +57 -20
  160. package/dist/flows/schema.js.map +1 -1
  161. package/dist/flows/seedExec.js +5 -1
  162. package/dist/flows/seedExec.js.map +1 -1
  163. package/dist/ios/signing.js +32 -3
  164. package/dist/ios/signing.js.map +1 -1
  165. package/dist/issues/classify.js +12 -4
  166. package/dist/issues/classify.js.map +1 -1
  167. package/dist/issues/fingerprint.js +11 -5
  168. package/dist/issues/fingerprint.js.map +1 -1
  169. package/dist/issues/index.js +4 -20
  170. package/dist/issues/index.js.map +1 -1
  171. package/dist/issues/metrics.js +2 -1
  172. package/dist/issues/metrics.js.map +1 -1
  173. package/dist/issues/recurrence.js.map +1 -1
  174. package/dist/issues/report.js +8 -4
  175. package/dist/issues/report.js.map +1 -1
  176. package/dist/issues/reportBridge.js +36 -5
  177. package/dist/issues/reportBridge.js.map +1 -1
  178. package/dist/issues/schema.js.map +1 -1
  179. package/dist/issues/store.js.map +1 -1
  180. package/dist/lib/android.js +9 -1
  181. package/dist/lib/android.js.map +1 -1
  182. package/dist/lib/device.js +21 -5
  183. package/dist/lib/device.js.map +1 -1
  184. package/dist/lib/image.js +11 -2
  185. package/dist/lib/image.js.map +1 -1
  186. package/dist/lib/lockfile.js +60 -0
  187. package/dist/lib/lockfile.js.map +1 -0
  188. package/dist/lib/needsInput.js +6 -3
  189. package/dist/lib/needsInput.js.map +1 -1
  190. package/dist/lib/png.js +2 -1
  191. package/dist/lib/png.js.map +1 -1
  192. package/dist/lib/result.js +16 -1
  193. package/dist/lib/result.js.map +1 -1
  194. package/dist/lib/schemaHash.js +4 -2
  195. package/dist/lib/schemaHash.js.map +1 -1
  196. package/dist/lib/sensitive.js +3 -1
  197. package/dist/lib/sensitive.js.map +1 -1
  198. package/dist/lib/simctl.js.map +1 -1
  199. package/dist/lib/spawn.js +29 -10
  200. package/dist/lib/spawn.js.map +1 -1
  201. package/dist/lib/wda.js +27 -10
  202. package/dist/lib/wda.js.map +1 -1
  203. package/dist/lib/wdaConfig.js +12 -5
  204. package/dist/lib/wdaConfig.js.map +1 -1
  205. package/dist/lib/wdaTune.js +52 -23
  206. package/dist/lib/wdaTune.js.map +1 -1
  207. package/dist/mobileAudit/checks.js +141 -19
  208. package/dist/mobileAudit/checks.js.map +1 -1
  209. package/dist/mobileAudit/profiles.js +120 -19
  210. package/dist/mobileAudit/profiles.js.map +1 -1
  211. package/dist/mobileAudit/results.js +7 -2
  212. package/dist/mobileAudit/results.js.map +1 -1
  213. package/dist/mobileAudit/runner.js +144 -19
  214. package/dist/mobileAudit/runner.js.map +1 -1
  215. package/dist/oracle/auth.js.map +1 -1
  216. package/dist/oracle/failures.js +888 -131
  217. package/dist/oracle/failures.js.map +1 -1
  218. package/dist/oracle/health.js +90 -14
  219. package/dist/oracle/health.js.map +1 -1
  220. package/dist/oracle/locator.js +147 -18
  221. package/dist/oracle/locator.js.map +1 -1
  222. package/dist/oracle/record.js.map +1 -1
  223. package/dist/orchestration/goal.js +3 -9
  224. package/dist/orchestration/goal.js.map +1 -1
  225. package/dist/orchestration/testThis/execute.js +126 -0
  226. package/dist/orchestration/testThis/execute.js.map +1 -0
  227. package/dist/orchestration/testThis/pipeline.js +324 -0
  228. package/dist/orchestration/testThis/pipeline.js.map +1 -0
  229. package/dist/orchestration/testThis/plan.js +430 -0
  230. package/dist/orchestration/testThis/plan.js.map +1 -0
  231. package/dist/orchestration/testThis/terminal.js +118 -0
  232. package/dist/orchestration/testThis/terminal.js.map +1 -0
  233. package/dist/orchestration/testThis/types.js +12 -0
  234. package/dist/orchestration/testThis/types.js.map +1 -0
  235. package/dist/plan/plan.js.map +1 -1
  236. package/dist/prompts/index.js +3 -3
  237. package/dist/prompts/index.js.map +1 -1
  238. package/dist/report/coverage.js +0 -1
  239. package/dist/report/coverage.js.map +1 -1
  240. package/dist/report/evidence.js.map +1 -1
  241. package/dist/report/export.js +59 -37
  242. package/dist/report/export.js.map +1 -1
  243. package/dist/report/flake.js +13 -14
  244. package/dist/report/flake.js.map +1 -1
  245. package/dist/report/history.js +72 -38
  246. package/dist/report/history.js.map +1 -1
  247. package/dist/report/policy.js +11 -3
  248. package/dist/report/policy.js.map +1 -1
  249. package/dist/report/qaLevel.js +2 -8
  250. package/dist/report/qaLevel.js.map +1 -1
  251. package/dist/report/readiness.js +42 -12
  252. package/dist/report/readiness.js.map +1 -1
  253. package/dist/report/summary.js.map +1 -1
  254. package/dist/report/timing.js +23 -23
  255. package/dist/report/timing.js.map +1 -1
  256. package/dist/server.js +42 -37
  257. package/dist/server.js.map +1 -1
  258. package/dist/services/automationGenerate.js.map +1 -1
  259. package/dist/services/build.js +8 -2
  260. package/dist/services/build.js.map +1 -1
  261. package/dist/services/preflight.js +38 -6
  262. package/dist/services/preflight.js.map +1 -1
  263. package/dist/services/prepareAndroid.js +46 -10
  264. package/dist/services/prepareAndroid.js.map +1 -1
  265. package/dist/services/prepareIos.js +72 -10
  266. package/dist/services/prepareIos.js.map +1 -1
  267. package/dist/services/report.js +173 -37
  268. package/dist/services/report.js.map +1 -1
  269. package/dist/services/smoke.js +36 -6
  270. package/dist/services/smoke.js.map +1 -1
  271. package/dist/services/suiteGenerate.js +16 -4
  272. package/dist/services/suiteGenerate.js.map +1 -1
  273. package/dist/services/testSuiteKnowledge.js +38 -6
  274. package/dist/services/testSuiteKnowledge.js.map +1 -1
  275. package/dist/session/attach.js +16 -0
  276. package/dist/session/attach.js.map +1 -1
  277. package/dist/session/processRegistry.js +164 -0
  278. package/dist/session/processRegistry.js.map +1 -0
  279. package/dist/session/progress.js +1 -1
  280. package/dist/session/progress.js.map +1 -1
  281. package/dist/session/store.js +216 -43
  282. package/dist/session/store.js.map +1 -1
  283. package/dist/snapshot/overlays.js +7 -2
  284. package/dist/snapshot/overlays.js.map +1 -1
  285. package/dist/snapshot/parse.js +2 -8
  286. package/dist/snapshot/parse.js.map +1 -1
  287. package/dist/snapshot/present.js +27 -3
  288. package/dist/snapshot/present.js.map +1 -1
  289. package/dist/state/profile.js +36 -9
  290. package/dist/state/profile.js.map +1 -1
  291. package/dist/suite/compile.js +7 -2
  292. package/dist/suite/compile.js.map +1 -1
  293. package/dist/suite/lint.js +21 -3
  294. package/dist/suite/lint.js.map +1 -1
  295. package/dist/suite/pom.js +26 -4
  296. package/dist/suite/pom.js.map +1 -1
  297. package/dist/suite/testcase.js +6 -4
  298. package/dist/suite/testcase.js.map +1 -1
  299. package/dist/testSuite/exporter.js +6 -2
  300. package/dist/testSuite/exporter.js.map +1 -1
  301. package/dist/testSuite/generator.js +31 -6
  302. package/dist/testSuite/generator.js.map +1 -1
  303. package/dist/testSuite/issueLinks.js.map +1 -1
  304. package/dist/testSuite/lint.js +1 -1
  305. package/dist/testSuite/lint.js.map +1 -1
  306. package/dist/testSuite/merge.js +8 -2
  307. package/dist/testSuite/merge.js.map +1 -1
  308. package/dist/testSuite/schema.js +16 -11
  309. package/dist/testSuite/schema.js.map +1 -1
  310. package/dist/testSuite/store.js +9 -1
  311. package/dist/testSuite/store.js.map +1 -1
  312. package/dist/tools/act.js +107 -43
  313. package/dist/tools/act.js.map +1 -1
  314. package/dist/tools/agent.js +123 -25
  315. package/dist/tools/agent.js.map +1 -1
  316. package/dist/tools/appControl.js +16 -3
  317. package/dist/tools/appControl.js.map +1 -1
  318. package/dist/tools/appMap.js +331 -63
  319. package/dist/tools/appMap.js.map +1 -1
  320. package/dist/tools/assertVisual.js +12 -2
  321. package/dist/tools/assertVisual.js.map +1 -1
  322. package/dist/tools/automationGenerate.js +276 -241
  323. package/dist/tools/automationGenerate.js.map +1 -1
  324. package/dist/tools/build.js +92 -41
  325. package/dist/tools/build.js.map +1 -1
  326. package/dist/tools/bundletool.js +139 -28
  327. package/dist/tools/bundletool.js.map +1 -1
  328. package/dist/tools/capabilities.js +45 -71
  329. package/dist/tools/capabilities.js.map +1 -1
  330. package/dist/tools/clearOverlay.js +45 -8
  331. package/dist/tools/clearOverlay.js.map +1 -1
  332. package/dist/tools/detectContext.js +1 -1
  333. package/dist/tools/detectContext.js.map +1 -1
  334. package/dist/tools/device.js +44 -7
  335. package/dist/tools/device.js.map +1 -1
  336. package/dist/tools/doctor.js +38 -15
  337. package/dist/tools/doctor.js.map +1 -1
  338. package/dist/tools/explore.js +96 -22
  339. package/dist/tools/explore.js.map +1 -1
  340. package/dist/tools/featureTesting.js +153 -114
  341. package/dist/tools/featureTesting.js.map +1 -1
  342. package/dist/tools/firstRun.js +95 -60
  343. package/dist/tools/firstRun.js.map +1 -1
  344. package/dist/tools/flow.js +236 -101
  345. package/dist/tools/flow.js.map +1 -1
  346. package/dist/tools/flowGenerate.js +51 -47
  347. package/dist/tools/flowGenerate.js.map +1 -1
  348. package/dist/tools/flowRepair.js +24 -4
  349. package/dist/tools/flowRepair.js.map +1 -1
  350. package/dist/tools/generate.js +236 -0
  351. package/dist/tools/generate.js.map +1 -0
  352. package/dist/tools/getArtifact.js +21 -3
  353. package/dist/tools/getArtifact.js.map +1 -1
  354. package/dist/tools/health.js +3 -1
  355. package/dist/tools/health.js.map +1 -1
  356. package/dist/tools/history.js +40 -10
  357. package/dist/tools/history.js.map +1 -1
  358. package/dist/tools/ios.js +157 -25
  359. package/dist/tools/ios.js.map +1 -1
  360. package/dist/tools/issues.js +19 -150
  361. package/dist/tools/issues.js.map +1 -1
  362. package/dist/tools/jobs.js +23 -4
  363. package/dist/tools/jobs.js.map +1 -1
  364. package/dist/tools/locator.js +36 -8
  365. package/dist/tools/locator.js.map +1 -1
  366. package/dist/tools/metro.js +61 -16
  367. package/dist/tools/metro.js.map +1 -1
  368. package/dist/tools/mobileAudit.js +67 -15
  369. package/dist/tools/mobileAudit.js.map +1 -1
  370. package/dist/tools/network.js +6 -1
  371. package/dist/tools/network.js.map +1 -1
  372. package/dist/tools/note.js +20 -6
  373. package/dist/tools/note.js.map +1 -1
  374. package/dist/tools/permissions.js +31 -6
  375. package/dist/tools/permissions.js.map +1 -1
  376. package/dist/tools/plan.js +5 -2
  377. package/dist/tools/plan.js.map +1 -1
  378. package/dist/tools/prepareIosTarget.js +31 -8
  379. package/dist/tools/prepareIosTarget.js.map +1 -1
  380. package/dist/tools/prepareTarget.js +97 -18
  381. package/dist/tools/prepareTarget.js.map +1 -1
  382. package/dist/tools/report.js +24 -5
  383. package/dist/tools/report.js.map +1 -1
  384. package/dist/tools/resolveArtifact.js +9 -5
  385. package/dist/tools/resolveArtifact.js.map +1 -1
  386. package/dist/tools/resolveTarget.js +11 -2
  387. package/dist/tools/resolveTarget.js.map +1 -1
  388. package/dist/tools/screenInfo.js +8 -2
  389. package/dist/tools/screenInfo.js.map +1 -1
  390. package/dist/tools/screenRecord.js +74 -11
  391. package/dist/tools/screenRecord.js.map +1 -1
  392. package/dist/tools/screenshot.js +23 -6
  393. package/dist/tools/screenshot.js.map +1 -1
  394. package/dist/tools/seed.js +38 -6
  395. package/dist/tools/seed.js.map +1 -1
  396. package/dist/tools/smoke.js +16 -3
  397. package/dist/tools/smoke.js.map +1 -1
  398. package/dist/tools/snapshot.js +59 -6
  399. package/dist/tools/snapshot.js.map +1 -1
  400. package/dist/tools/startSession.js +54 -9
  401. package/dist/tools/startSession.js.map +1 -1
  402. package/dist/tools/state.js +62 -15
  403. package/dist/tools/state.js.map +1 -1
  404. package/dist/tools/suite.js +350 -298
  405. package/dist/tools/suite.js.map +1 -1
  406. package/dist/tools/testSuite.js +94 -28
  407. package/dist/tools/testSuite.js.map +1 -1
  408. package/dist/tools/testThis.js +30 -793
  409. package/dist/tools/testThis.js.map +1 -1
  410. package/dist/tools/visual.js +124 -18
  411. package/dist/tools/visual.js.map +1 -1
  412. package/dist/tools/visualText.js +51 -6
  413. package/dist/tools/visualText.js.map +1 -1
  414. package/dist/tools/wait.js +18 -3
  415. package/dist/tools/wait.js.map +1 -1
  416. package/dist/tools/wda.js +157 -29
  417. package/dist/tools/wda.js.map +1 -1
  418. package/dist/version.js +17 -49
  419. package/dist/version.js.map +1 -1
  420. package/dist/visual/ocr.js +12 -2
  421. package/dist/visual/ocr.js.map +1 -1
  422. package/dist/visual/provider.js +7 -3
  423. package/dist/visual/provider.js.map +1 -1
  424. package/docs/mcp-server.md +44 -4
  425. package/docs/tools.md +42 -100
  426. package/package.json +14 -5
  427. package/dist/appMap/diff.js +0 -60
  428. package/dist/appMap/diff.js.map +0 -1
  429. package/dist/automation/maestroIr.js +0 -282
  430. package/dist/automation/maestroIr.js.map +0 -1
  431. package/dist/interop/maestro.js +0 -151
  432. package/dist/interop/maestro.js.map +0 -1
  433. package/dist/tools/idling.js +0 -104
  434. package/dist/tools/idling.js.map +0 -1
  435. package/dist/tools/inputCapabilities.js +0 -30
  436. package/dist/tools/inputCapabilities.js.map +0 -1
  437. package/dist/tools/maestro.js +0 -78
  438. package/dist/tools/maestro.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"prepareAndroid.js","sourceRoot":"","sources":["../../src/services/prepareAndroid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepareAndroid.js","sourceRoot":"","sources":["../../src/services/prepareAndroid.ts"],"names":[],"mappings":"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"}
@@ -13,11 +13,19 @@ import * as sim from '../lib/simctl.js';
13
13
  export async function prepareIos(sessions, session, args, ctx = {}) {
14
14
  const progress = (t) => ctx.onProgress?.(t);
15
15
  if (!(await sim.simctlAvailable())) {
16
- return { ok: false, failureCode: 'SIMULATOR_RUNTIME_MISSING', error: 'simctl unavailable (macOS + Xcode required for iOS simulators).' };
16
+ return {
17
+ ok: false,
18
+ failureCode: 'SIMULATOR_RUNTIME_MISSING',
19
+ error: 'simctl unavailable (macOS + Xcode required for iOS simulators).',
20
+ };
17
21
  }
18
22
  // .ipa on the simulator is the classic mistake — refuse with the right explanation.
19
23
  if (args.app && /\.ipa$/i.test(args.app)) {
20
- return { ok: false, failureCode: 'IPA_NEEDS_REAL_DEVICE', error: 'A .ipa cannot be installed on the simulator; public v1 needs a simulator-SDK .app.' };
24
+ return {
25
+ ok: false,
26
+ failureCode: 'IPA_NEEDS_REAL_DEVICE',
27
+ error: 'A .ipa cannot be installed on the simulator; public v1 needs a simulator-SDK .app.',
28
+ };
21
29
  }
22
30
  // ---- pick + boot simulator ----
23
31
  progress('selecting simulator');
@@ -26,7 +34,11 @@ export async function prepareIos(sessions, session, args, ctx = {}) {
26
34
  sims.find((s) => s.state === 'Booted') ||
27
35
  sims.find((s) => /iphone/i.test(s.name));
28
36
  if (!pick)
29
- return { ok: false, failureCode: 'SIMULATOR_RUNTIME_MISSING', error: 'No iOS simulator available — install a runtime / create one in Xcode.' };
37
+ return {
38
+ ok: false,
39
+ failureCode: 'SIMULATOR_RUNTIME_MISSING',
40
+ error: 'No iOS simulator available — install a runtime / create one in Xcode.',
41
+ };
30
42
  if (pick.state !== 'Booted') {
31
43
  progress(`booting ${pick.name}`);
32
44
  try {
@@ -36,7 +48,11 @@ export async function prepareIos(sessions, session, args, ctx = {}) {
36
48
  }
37
49
  catch (e) {
38
50
  const msg = String(e);
39
- return { ok: false, failureCode: /timed out|timeout/i.test(msg) ? 'SIMULATOR_BOOT_TIMEOUT' : 'SIMULATOR_BOOT_FAILED', error: `Boot failed: ${msg}` };
51
+ return {
52
+ ok: false,
53
+ failureCode: /timed out|timeout/i.test(msg) ? 'SIMULATOR_BOOT_TIMEOUT' : 'SIMULATOR_BOOT_FAILED',
54
+ error: `Boot failed: ${msg}`,
55
+ };
40
56
  }
41
57
  }
42
58
  // bind a SimctlDriver
@@ -64,7 +80,13 @@ export async function prepareIos(sessions, session, args, ctx = {}) {
64
80
  // A device-SDK (iphoneos) .app cannot run on the simulator — catch it before the opaque
65
81
  // simctl install error so the blocker is IOS_APP_WRONG_ARCH (build a simulator .app).
66
82
  if (appBuildDestination(appPath) === 'device') {
67
- return { ok: false, failureCode: 'IOS_APP_WRONG_ARCH', error: `${appPath} is a device build (iphoneos) — the simulator needs a simulator-SDK .app (iphonesimulator). Real-device workflows are outside the public v1 scope.`, udid: pick.udid, name: pick.name };
83
+ return {
84
+ ok: false,
85
+ failureCode: 'IOS_APP_WRONG_ARCH',
86
+ error: `${appPath} is a device build (iphoneos) — the simulator needs a simulator-SDK .app (iphonesimulator). Real-device workflows are outside the public v1 scope.`,
87
+ udid: pick.udid,
88
+ name: pick.name,
89
+ };
68
90
  }
69
91
  progress('installing .app');
70
92
  try {
@@ -123,7 +145,14 @@ export async function prepareIos(sessions, session, args, ctx = {}) {
123
145
  status: 'blocked',
124
146
  detail: String(err),
125
147
  });
126
- return { ok: false, failureCode: 'BUNDLE_ID_NOT_FOUND', error: `Launch failed: ${String(err)}`, udid: pick.udid, name: pick.name, bundleId };
148
+ return {
149
+ ok: false,
150
+ failureCode: 'BUNDLE_ID_NOT_FOUND',
151
+ error: `Launch failed: ${String(err)}`,
152
+ udid: pick.udid,
153
+ name: pick.name,
154
+ bundleId,
155
+ };
127
156
  }
128
157
  sessions.recordMutation(session, {
129
158
  tool: 'qa_prepare_ios_target',
@@ -147,7 +176,12 @@ export async function prepareIos(sessions, session, args, ctx = {}) {
147
176
  wda = { reachable: !!status.reachable, url: wdaUrl };
148
177
  if (status.reachable) {
149
178
  try {
150
- const sessionOptions = { bundleId: bundleId ?? undefined, udid: pick.udid, capabilities: wdaCfg?.capabilities, settings: wdaCfg?.settings };
179
+ const sessionOptions = {
180
+ bundleId: bundleId ?? undefined,
181
+ udid: pick.udid,
182
+ capabilities: wdaCfg?.capabilities,
183
+ settings: wdaCfg?.settings,
184
+ };
151
185
  const created = await createWdaSession(wdaUrl, sessionOptions);
152
186
  const mismatched = wdaSessionUdidMismatch(created.capabilities, pick.udid);
153
187
  if (mismatched)
@@ -168,14 +202,33 @@ export async function prepareIos(sessions, session, args, ctx = {}) {
168
202
  }
169
203
  catch (e) {
170
204
  if (attach === 'required') {
171
- return { ok: false, failureCode: 'WDA_SESSION_FAILED', error: `WDA is reachable at ${wdaUrl} but session creation failed: ${String(e)}. Confirm WDA is paired with ${pick.name} and the app bundle id is installed, then retry.`, udid: pick.udid, name: pick.name, bundleId, installed, launched, wda };
205
+ return {
206
+ ok: false,
207
+ failureCode: 'WDA_SESSION_FAILED',
208
+ error: `WDA is reachable at ${wdaUrl} but session creation failed: ${String(e)}. Confirm WDA is paired with ${pick.name} and the app bundle id is installed, then retry.`,
209
+ udid: pick.udid,
210
+ name: pick.name,
211
+ bundleId,
212
+ installed,
213
+ launched,
214
+ wda,
215
+ };
172
216
  }
173
217
  requiresAttach = true;
174
218
  sessions.addWorkaround(session, `WDA reachable but session attach failed (${String(e)}). iOS verification is visual-only until qa_wda attach succeeds`);
175
219
  }
176
220
  }
177
221
  else if (attach === 'required') {
178
- return { ok: false, failureCode: 'WDA_UNREACHABLE', error: `WDA required but unreachable at ${wdaUrl}. Start WebDriverAgent (qa_wda) then retry.`, udid: pick.udid, name: pick.name, bundleId, installed, launched };
222
+ return {
223
+ ok: false,
224
+ failureCode: 'WDA_UNREACHABLE',
225
+ error: `WDA required but unreachable at ${wdaUrl}. Start WebDriverAgent (qa_wda) then retry.`,
226
+ udid: pick.udid,
227
+ name: pick.name,
228
+ bundleId,
229
+ installed,
230
+ launched,
231
+ };
179
232
  }
180
233
  else {
181
234
  sessions.addWorkaround(session, 'WDA not reachable — iOS verification is visual-only (screenshots), not structured');
@@ -185,7 +238,16 @@ export async function prepareIos(sessions, session, args, ctx = {}) {
185
238
  sessions.persist(session);
186
239
  const nextHint = requiresAttach ? ' (WDA reachable, run qa_wda attach to enable structured snapshot and action tools)' : '';
187
240
  return {
188
- ok: true, udid: pick.udid, name: pick.name, bundleId, installed, launched, mode, wda, wdaSessionId, requiresAttach,
241
+ ok: true,
242
+ udid: pick.udid,
243
+ name: pick.name,
244
+ bundleId,
245
+ installed,
246
+ launched,
247
+ mode,
248
+ wda,
249
+ wdaSessionId,
250
+ requiresAttach,
189
251
  resultText: `${launched ? 'ready' : 'launched=false'} iOS ${pick.name}${bundleId ? ` / ${bundleId}` : ''}: ${mode === 'structured' ? 'WDA structured' : 'visual-only'}${installed ? ' (installed)' : ''}${nextHint}.`,
190
252
  };
191
253
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prepareIos.js","sourceRoot":"","sources":["../../src/services/prepareIos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepareIos.js","sourceRoot":"","sources":["../../src/services/prepareIos.ts"],"names":[],"mappings":"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"}
@@ -32,11 +32,15 @@ import { resolveSourceRevision } from '../issues/sourceRevision.js';
32
32
  import { loadPolicy as loadIssuePolicy, getIndex as getIssueIndex, readEvents as readIssueEvents } from '../issues/store.js';
33
33
  import { computeIssueMetrics } from '../issues/metrics.js';
34
34
  import { verifyFixed } from '../issues/index.js';
35
- import { linkIssueToCase, linkRunIssue, relationshipForCase, runRelationshipFor, verifiedFixedIssuesForRun } from '../testSuite/issueLinks.js';
35
+ import { linkIssueToCase, linkRunIssue, relationshipForCase, runRelationshipFor, verifiedFixedIssuesForRun, } from '../testSuite/issueLinks.js';
36
36
  import { saveSuite } from '../testSuite/store.js';
37
37
  import { pomForSession } from './suiteGenerate.js';
38
38
  import { generateCanonicalCases } from '../testSuite/generator.js';
39
39
  import { applyMerge, loadSuite, suiteDelta, runIdFromNow } from '../testSuite/store.js';
40
+ /** Render an *Ms structured value as human-readable seconds for text summaries. */
41
+ function secText(ms) {
42
+ return `${Math.round((ms ?? 0) / 1000)}s`;
43
+ }
40
44
  export async function generateSessionReport(sessions, session, options = {}) {
41
45
  const { format, baseline, trendRoot } = options;
42
46
  const includeCurrentDump = options.includeCurrentDump ?? true;
@@ -79,7 +83,9 @@ export async function generateSessionReport(sessions, session, options = {}) {
79
83
  (a[n.outcome] ??= {})[cat] = (a[n.outcome][cat] ?? 0) + 1;
80
84
  return a;
81
85
  }, {});
82
- const visualVerifications = notes.filter((n) => n.verifiedVisually).map((n) => ({
86
+ const visualVerifications = notes
87
+ .filter((n) => n.verifiedVisually)
88
+ .map((n) => ({
83
89
  workflow: n.workflow,
84
90
  outcome: n.outcome,
85
91
  evidenceKind: n.evidenceKind,
@@ -137,7 +143,13 @@ export async function generateSessionReport(sessions, session, options = {}) {
137
143
  bucketExamples[bucket] ??= `${n.workflow}: ${n.reason ? redact(n.reason) : n.outcome}`;
138
144
  }
139
145
  const dominantBucket = ALL_BUCKETS.filter((b) => bucketCounts[b] > 0).sort((x, y) => bucketCounts[y] - bucketCounts[x])[0] ?? null;
140
- const failureBuckets = { counts: bucketCounts, total: totalFailures, classifiedPct: totalFailures ? Math.round((classified / totalFailures) * 100) : 100, dominant: dominantBucket, examples: bucketExamples };
146
+ const failureBuckets = {
147
+ counts: bucketCounts,
148
+ total: totalFailures,
149
+ classifiedPct: totalFailures ? Math.round((classified / totalFailures) * 100) : 100,
150
+ dominant: dominantBucket,
151
+ examples: bucketExamples,
152
+ };
141
153
  const blockedCount = outcomeTally.blocked ?? 0;
142
154
  const APP_OWNED_FAIL_CATEGORIES = new Set(['app_bug', 'other']);
143
155
  const appFailNotes = notes.filter((n) => n.outcome === 'fail' && (n.category == null || APP_OWNED_FAIL_CATEGORIES.has(n.category)));
@@ -155,14 +167,21 @@ export async function generateSessionReport(sessions, session, options = {}) {
155
167
  blockedCount: blockedCount + toolLimitationFailCount,
156
168
  overrideCount: session.envChanges.filter((c) => /OVERRIDE|GUARDRAIL|acknowledgeBundleRisk|allowLaunchWithoutMetro/i.test(c)).length,
157
169
  topHighFinding: topHigh ? redact(topHigh.detail) : undefined,
158
- topFail: topAppFailNote ? { workflow: topAppFailNote.workflow, reason: topAppFailNote.reason ? redact(topAppFailNote.reason) : undefined } : undefined,
170
+ topFail: topAppFailNote
171
+ ? { workflow: topAppFailNote.workflow, reason: topAppFailNote.reason ? redact(topAppFailNote.reason) : undefined }
172
+ : undefined,
159
173
  topBlocked: topBlockedNote ? { workflow: topBlockedNote.workflow, recommendedSetup: topBlockedNote.recommendedSetup } : undefined,
160
174
  });
161
175
  const outcomesByWorkflow = notes.reduce((acc, n) => {
162
- acc[n.workflow] = { outcome: n.outcome, category: n.category, reason: n.reason ? redact(n.reason) : undefined, artifactUris: n.artifactUris ?? [] };
176
+ acc[n.workflow] = {
177
+ outcome: n.outcome,
178
+ category: n.category,
179
+ reason: n.reason ? redact(n.reason) : undefined,
180
+ artifactUris: n.artifactUris ?? [],
181
+ };
163
182
  return acc;
164
183
  }, {});
165
- const appId = session.appId ?? (loadProjectConfig(session.root)?.appId ?? null);
184
+ const appId = session.appId ?? loadProjectConfig(session.root)?.appId ?? null;
166
185
  const wdaConfig = driver instanceof WdaDriver ? loadWdaConfig(session.root) : null;
167
186
  const wdaReport = driver instanceof WdaDriver && wdaConfig
168
187
  ? {
@@ -174,11 +193,14 @@ export async function generateSessionReport(sessions, session, options = {}) {
174
193
  tuning: { timings: wdaTimingSummary(session), recommendations: wdaRecommendations(wdaConfig, session) },
175
194
  }
176
195
  : null;
177
- const readiness = orderReadinessLabels([...readinessForSession(session, {
196
+ const readiness = orderReadinessLabels([
197
+ ...readinessForSession(session, {
178
198
  suiteRunnable: options.suite?.suiteRunnable,
179
199
  suiteReplayed: false,
180
200
  ciReady: false,
181
- }), ...(options.suite?.readinessLabels ?? [])]);
201
+ }),
202
+ ...(options.suite?.readinessLabels ?? []),
203
+ ]);
182
204
  const automationReadiness = automationReadinessForSession(session, {
183
205
  suiteRunnable: options.suite?.suiteRunnable,
184
206
  suiteReplayed: false,
@@ -188,8 +210,15 @@ export async function generateSessionReport(sessions, session, options = {}) {
188
210
  const automationBackend = automationBackendForSession(session);
189
211
  const passNotes = notes.filter((n) => n.outcome === 'pass').length;
190
212
  const appVerdict = (() => {
191
- if (nativeHealth === 'error' || appHealth === 'error' || high.some((f) => f.layer === 'app' || f.layer === 'native') || appFailCount > 0) {
192
- const summary = topHigh ? (redact(topHigh.detail) ?? topHigh.detail) : topAppFailNote?.reason ? (redact(topAppFailNote.reason) ?? topAppFailNote.reason) : 'High severity app/native finding or failed app workflow observed.';
213
+ if (nativeHealth === 'error' ||
214
+ appHealth === 'error' ||
215
+ high.some((f) => f.layer === 'app' || f.layer === 'native') ||
216
+ appFailCount > 0) {
217
+ const summary = topHigh
218
+ ? (redact(topHigh.detail) ?? topHigh.detail)
219
+ : topAppFailNote?.reason
220
+ ? (redact(topAppFailNote.reason) ?? topAppFailNote.reason)
221
+ : 'High severity app/native finding or failed app workflow observed.';
193
222
  return { status: 'BLOCKED', summary };
194
223
  }
195
224
  if (appHealth === 'degraded')
@@ -198,12 +227,17 @@ export async function generateSessionReport(sessions, session, options = {}) {
198
227
  })();
199
228
  const coverageVerdict = (() => {
200
229
  if (blockedCount > 0 || toolLimitationNotes.length > 0 || session.exploration?.state === 'blocked') {
201
- const summary = topBlockedNote?.recommendedSetup
202
- ?? (toolLimitationNotes.length ? `A Swipium/tool limitation blocked ${toolLimitationNotes.length} workflow(s); see toolVerdict.` : 'A setup or precondition blocker limited coverage.');
230
+ const summary = topBlockedNote?.recommendedSetup ??
231
+ (toolLimitationNotes.length
232
+ ? `A Swipium/tool limitation blocked ${toolLimitationNotes.length} workflow(s); see toolVerdict.`
233
+ : 'A setup or precondition blocker limited coverage.');
203
234
  return { status: 'BLOCKED', summary };
204
235
  }
205
236
  if (!automationBackend.structured) {
206
- return { status: 'PARTIAL', summary: 'Coverage was limited because the active backend is visual-only or lacks structured UI automation.' };
237
+ return {
238
+ status: 'PARTIAL',
239
+ summary: 'Coverage was limited because the active backend is visual-only or lacks structured UI automation.',
240
+ };
207
241
  }
208
242
  if (passNotes === 0 && !session.exploration && session.recordedActions.length === 0) {
209
243
  return { status: 'SMOKE_ONLY', summary: 'Only launch/setup evidence was collected.' };
@@ -301,7 +335,16 @@ export async function generateSessionReport(sessions, session, options = {}) {
301
335
  else {
302
336
  const suite = loadSuite(session.root, appId ?? undefined);
303
337
  mergedSuite = suite;
304
- persistentSuite = { totalCases: suite.cases.length, created: [], updated: [], deprecated: [], failed: [], blocked: [], newlyAutomated: [], caseIds: suite.cases.map((c) => c.id) };
338
+ persistentSuite = {
339
+ totalCases: suite.cases.length,
340
+ created: [],
341
+ updated: [],
342
+ deprecated: [],
343
+ failed: [],
344
+ blocked: [],
345
+ newlyAutomated: [],
346
+ caseIds: suite.cases.map((c) => c.id),
347
+ };
305
348
  }
306
349
  }
307
350
  catch {
@@ -346,12 +389,26 @@ export async function generateSessionReport(sessions, session, options = {}) {
346
389
  findings: session.findings.map((f) => {
347
390
  const code = f.failureCode ?? failureForFindingKind(f.kind);
348
391
  const info = FAILURES[code] ?? FAILURES.UNKNOWN;
349
- return { ...f, failureCode: code, bucket: info.bucket, retrySafe: info.retrySafe, nextStep: info.recovery, detail: redact(f.detail), evidence: f.evidence ? redact(f.evidence) : undefined };
392
+ return {
393
+ ...f,
394
+ failureCode: code,
395
+ bucket: info.bucket,
396
+ retrySafe: info.retrySafe,
397
+ nextStep: info.recovery,
398
+ detail: redact(f.detail),
399
+ evidence: f.evidence ? redact(f.evidence) : undefined,
400
+ };
350
401
  }),
351
402
  highSeverityCount: high.length,
352
403
  nativeHealth,
353
404
  appHealth,
354
- appHealthFindings: appFindings.map((f) => ({ kind: f.kind, severity: f.severity, evidence: f.evidence ? redact(f.evidence) : undefined, screen: f.screen, screenshotUri: f.screenshotUri })),
405
+ appHealthFindings: appFindings.map((f) => ({
406
+ kind: f.kind,
407
+ severity: f.severity,
408
+ evidence: f.evidence ? redact(f.evidence) : undefined,
409
+ screen: f.screen,
410
+ screenshotUri: f.screenshotUri,
411
+ })),
355
412
  testOutcomes: notes.map((n) => ({ ...n, reason: n.reason ? redact(n.reason) : undefined })),
356
413
  outcomeTally,
357
414
  categoryTally,
@@ -395,9 +452,29 @@ export async function generateSessionReport(sessions, session, options = {}) {
395
452
  const platform = driver instanceof WdaDriver ? 'ios' : driver ? 'android' : 'unknown';
396
453
  const environment = session.headless !== undefined ? (platform === 'ios' ? 'simulator' : 'emulator') : process.env.CI ? 'ci' : 'unknown';
397
454
  const issuePolicy = loadIssuePolicy(session.root);
398
- const sourceRevision = resolveSourceRevision({ env: process.env, allowGitMetadataRead: issuePolicy.allowGitMetadataRead, root: session.root });
399
- const bridgeFindings = session.findings.map((f) => ({ severity: f.severity, kind: f.kind, detail: redact(f.detail) ?? f.detail, layer: f.layer, evidence: f.evidence ? redact(f.evidence) : undefined, screen: f.screen, screenshotUri: f.screenshotUri, failureCode: f.failureCode }));
400
- const bridgeNotes = notes.map((n) => ({ workflow: n.workflow, outcome: n.outcome, category: n.category, reason: n.reason ? redact(n.reason) : undefined, failureCode: n.failureCode, artifactUris: n.artifactUris }));
455
+ const sourceRevision = resolveSourceRevision({
456
+ env: process.env,
457
+ allowGitMetadataRead: issuePolicy.allowGitMetadataRead,
458
+ root: session.root,
459
+ });
460
+ const bridgeFindings = session.findings.map((f) => ({
461
+ severity: f.severity,
462
+ kind: f.kind,
463
+ detail: redact(f.detail) ?? f.detail,
464
+ layer: f.layer,
465
+ evidence: f.evidence ? redact(f.evidence) : undefined,
466
+ screen: f.screen,
467
+ screenshotUri: f.screenshotUri,
468
+ failureCode: f.failureCode,
469
+ }));
470
+ const bridgeNotes = notes.map((n) => ({
471
+ workflow: n.workflow,
472
+ outcome: n.outcome,
473
+ category: n.category,
474
+ reason: n.reason ? redact(n.reason) : undefined,
475
+ failureCode: n.failureCode,
476
+ artifactUris: n.artifactUris,
477
+ }));
401
478
  const issuesNow = new Date().toISOString();
402
479
  const bridge = foldRunIntoLedger(session.root, bridgeFindings, bridgeNotes, issuesNow, {
403
480
  appId: appId ?? undefined,
@@ -414,7 +491,9 @@ export async function generateSessionReport(sessions, session, options = {}) {
414
491
  const idx = getIssueIndex(session.root, issuesNow, appId ?? undefined);
415
492
  const recordById = new Map(idx.records.map((r) => [r.issueId, r]));
416
493
  const matchCase = (workflow) => workflow
417
- ? mergedSuite.cases.filter((c) => c.actualResult.summary?.toLowerCase().includes(workflow.toLowerCase()) || c.functionality.toLowerCase() === workflow.toLowerCase() || c.title.toLowerCase().includes(workflow.toLowerCase()))
494
+ ? mergedSuite.cases.filter((c) => c.actualResult.summary?.toLowerCase().includes(workflow.toLowerCase()) ||
495
+ c.functionality.toLowerCase() === workflow.toLowerCase() ||
496
+ c.title.toLowerCase().includes(workflow.toLowerCase()))
418
497
  : [];
419
498
  for (const rec of bridge.recorded) {
420
499
  const record = recordById.get(rec.issueId);
@@ -481,12 +560,26 @@ export async function generateSessionReport(sessions, session, options = {}) {
481
560
  if ((baseline || trendRoot) && reportRec) {
482
561
  try {
483
562
  const pr = buildPrSummary(reportRec.path, { baselinePath: baseline, trendRoot: trendRoot ?? session.root });
484
- reportLinks = { current: reportUri, currentPath: reportRec.path, baseline: baseline ?? null, trendRoot: trendRoot ?? session.root, comparison: pr.comparison ?? null, knownFlaky: pr.knownFlaky, prSummary: pr };
563
+ reportLinks = {
564
+ current: reportUri,
565
+ currentPath: reportRec.path,
566
+ baseline: baseline ?? null,
567
+ trendRoot: trendRoot ?? session.root,
568
+ comparison: pr.comparison ?? null,
569
+ knownFlaky: pr.knownFlaky,
570
+ prSummary: pr,
571
+ };
485
572
  report.reportLinks = reportLinks;
486
573
  writeFileSync(reportRec.path, JSON.stringify(report, null, 2));
487
574
  }
488
575
  catch (e) {
489
- reportLinks = { current: reportUri, currentPath: reportRec.path, baseline: baseline ?? null, trendRoot: trendRoot ?? session.root, error: String(e.message ?? e) };
576
+ reportLinks = {
577
+ current: reportUri,
578
+ currentPath: reportRec.path,
579
+ baseline: baseline ?? null,
580
+ trendRoot: trendRoot ?? session.root,
581
+ error: String(e.message ?? e),
582
+ };
490
583
  report.reportLinks = reportLinks;
491
584
  writeFileSync(reportRec.path, JSON.stringify(report, null, 2));
492
585
  }
@@ -502,7 +595,10 @@ export async function generateSessionReport(sessions, session, options = {}) {
502
595
  flowExportSkipped = true;
503
596
  }
504
597
  else {
505
- const gen = generateFlow(session.recordedActions, { name: `${(appId ?? 'app').split('.').pop()}-recorded`, appId: appId ?? undefined });
598
+ const gen = generateFlow(session.recordedActions, {
599
+ name: `${(appId ?? 'app').split('.').pop()}-recorded`,
600
+ appId: appId ?? undefined,
601
+ });
506
602
  exportUri = sessions.saveArtifact(session, 'flow', `recorded-${Date.now()}.yaml`, gen.yaml, 'text/yaml', `flow drafted from the run (durability ${gen.durability.grade})`);
507
603
  }
508
604
  }
@@ -531,18 +627,33 @@ export async function generateSessionReport(sessions, session, options = {}) {
531
627
  `QA level: ${qaLevel.level.toUpperCase()} — ${qaLevel.rationale}${qaLevel.next ? ` · next: ${qaLevel.next} (${qaLevel.nextRequirement})` : ''}`,
532
628
  qaLevel.notes.length ? `QA level notes:\n ${qaLevel.notes.join('\n ')}` : '',
533
629
  `automation readiness: ${automationReadiness.grade} (${automationReadiness.score}/100, durable locators ${automationReadiness.locatorCoverage.durablePct}%)`,
534
- `test catalog: ${runTestCatalog.total} case(s) — ${Object.entries(runTestCatalog.counts).filter(([, v]) => v).map(([k, v]) => `${k}=${v}`).join(' ') || 'none'}`,
535
- automationReadiness.topFixes.length ? `top readiness fixes:\n ${automationReadiness.topFixes.join('\n ')}` : 'top readiness fixes: none',
630
+ `test catalog: ${runTestCatalog.total} case(s) — ${Object.entries(runTestCatalog.counts)
631
+ .filter(([, v]) => v)
632
+ .map(([k, v]) => `${k}=${v}`)
633
+ .join(' ') || 'none'}`,
634
+ automationReadiness.topFixes.length
635
+ ? `top readiness fixes:\n ${automationReadiness.topFixes.join('\n ')}`
636
+ : 'top readiness fixes: none',
536
637
  `${report.coverage}${report.visualOnly ? ' · VISUAL-ONLY (structured snapshots were poor — see screenshots)' : ''}`,
537
638
  `emulator display: ${report.emulatorDisplay}`,
538
639
  `network: ${finalNetwork}${networkRestore ? ` (${networkRestore})` : session.network?.changed ? ' ⚠ Swipium changed it and did NOT restore' : ''}`,
539
- report.activeRecording ? `A screen recording is still active (${report.activeRecording.backend}, ~${report.activeRecording.seconds}s). It will be stopped on shutdown.` : '',
640
+ report.activeRecording
641
+ ? `A screen recording is still active (${report.activeRecording.backend}, ~${report.activeRecording.seconds}s). It will be stopped on shutdown.`
642
+ : '',
540
643
  session.envChanges.length ? `environment changes:\n ${session.envChanges.join('\n ')}` : 'environment changes: none',
541
- session.mutations.length ? `mutation ledger: ${session.mutations.length} record(s), ${session.mutations.filter((m) => m.status === 'executed').length} executed, ${session.mutations.filter((m) => m.status === 'refused' || m.status === 'blocked').length} refused/blocked` : 'mutation ledger: none',
542
- report.guardrailOverrides.length ? `⚠ guardrail overrides used:\n ${report.guardrailOverrides.join('\n ')}` : 'guardrail overrides: none',
644
+ session.mutations.length
645
+ ? `mutation ledger: ${session.mutations.length} record(s), ${session.mutations.filter((m) => m.status === 'executed').length} executed, ${session.mutations.filter((m) => m.status === 'refused' || m.status === 'blocked').length} refused/blocked`
646
+ : 'mutation ledger: none',
647
+ report.guardrailOverrides.length
648
+ ? `⚠ guardrail overrides used:\n ${report.guardrailOverrides.join('\n ')}`
649
+ : 'guardrail overrides: none',
543
650
  session.workarounds.length ? `workarounds attempted:\n ${session.workarounds.join('\n ')}` : '',
544
- session.inputs.length ? `inputs provided (redacted): ${session.inputs.map((i) => `${i.varName}${i.secret ? '🔒' : ''}`).join(', ')}` : '',
545
- session.generatedValues.length ? `generated test data: ${session.generatedValues.map((g) => `${g.fixture}.${g.field}=${g.secret ? '<redacted>' : redact(g.value)} (${g.generator})`).join(', ')}` : '',
651
+ session.inputs.length
652
+ ? `inputs provided (redacted): ${session.inputs.map((i) => `${i.varName}${i.secret ? '🔒' : ''}`).join(', ')}`
653
+ : '',
654
+ session.generatedValues.length
655
+ ? `generated test data: ${session.generatedValues.map((g) => `${g.fixture}.${g.field}=${g.secret ? '<redacted>' : redact(g.value)} (${g.generator})`).join(', ')}`
656
+ : '',
546
657
  options.suite
547
658
  ? options.suite.generated
548
659
  ? `generated suite "${options.suite.name}": ${(options.suite.compiledFlows ?? []).filter((c) => c.ok).length}/${(options.suite.compiledFlows ?? []).length} runnable flow(s), runnable=${options.suite.suiteRunnable}, readiness=${(options.suite.readinessLabels ?? []).join(' → ') || 'unknown'} (${(options.suite.written ?? []).length} files)`
@@ -553,20 +664,34 @@ export async function generateSessionReport(sessions, session, options = {}) {
553
664
  : '',
554
665
  `destructive/bundle-risk guardrail: ${destructiveGuardrail.status}`,
555
666
  `health — native: ${nativeHealth === 'OK' ? '✅ OK' : '❌ error'} · app: ${appHealth === 'OK' ? '✅ OK' : appHealth === 'degraded' ? '⚠ degraded' : '❌ error'}`,
556
- wdaReport ? `wda: ${wdaReport.status.reachable ? 'reachable' : 'unreachable'} ${wdaReport.webDriverAgentUrl} device=${wdaReport.device ?? 'unknown'}` : '',
667
+ wdaReport
668
+ ? `wda: ${wdaReport.status.reachable ? 'reachable' : 'unreachable'} ${wdaReport.webDriverAgentUrl} device=${wdaReport.device ?? 'unknown'}`
669
+ : '',
557
670
  `findings: ${session.findings.length} (high: ${high.length})`,
558
- totalFailures ? `failures by bucket: ${ALL_BUCKETS.filter((b) => bucketCounts[b]).map((b) => `${b}=${bucketCounts[b]}`).join(' ')} (${failureBuckets.classifiedPct}% classified${dominantBucket ? `, mostly ${dominantBucket}` : ''})` : '',
559
- notes.length ? `evidence taxonomy: structured=${evidenceTaxonomy.counts.structured_locator} ocr=${evidenceTaxonomy.counts.ocr_locator} visual=${evidenceTaxonomy.counts.visual_match} ai_visual=${evidenceTaxonomy.counts.ai_visual_evidence} manual=${evidenceTaxonomy.counts.manual_review} calibration=${evidenceTaxonomy.calibration.status}` : '',
671
+ totalFailures
672
+ ? `failures by bucket: ${ALL_BUCKETS.filter((b) => bucketCounts[b])
673
+ .map((b) => `${b}=${bucketCounts[b]}`)
674
+ .join(' ')} (${failureBuckets.classifiedPct}% classified${dominantBucket ? `, mostly ${dominantBucket}` : ''})`
675
+ : '',
676
+ notes.length
677
+ ? `evidence taxonomy: structured=${evidenceTaxonomy.counts.structured_locator} ocr=${evidenceTaxonomy.counts.ocr_locator} visual=${evidenceTaxonomy.counts.visual_match} ai_visual=${evidenceTaxonomy.counts.ai_visual_evidence} manual=${evidenceTaxonomy.counts.manual_review} calibration=${evidenceTaxonomy.calibration.status}`
678
+ : '',
560
679
  ...session.findings.map((f) => ` [${f.severity}] ${f.layer ?? '?'}/${f.kind}: ${redact(f.detail)}${f.evidence ? ` — "${redact(f.evidence)}"` : ''}${f.screenshotUri ? ` (${f.screenshotUri})` : ''}`),
561
- notes.length ? `test outcomes: ${Object.entries(outcomeTally).map(([k, v]) => `${k}=${v}`).join(' ')}` : 'test outcomes: none recorded (qa_note)',
680
+ notes.length
681
+ ? `test outcomes: ${Object.entries(outcomeTally)
682
+ .map(([k, v]) => `${k}=${v}`)
683
+ .join(' ')}`
684
+ : 'test outcomes: none recorded (qa_note)',
562
685
  ...noteSummaryLines,
563
686
  persistentSuite
564
687
  ? `persistent suite: ${persistentSuite.totalCases} case(s) — +${persistentSuite.created.length} created, ~${persistentSuite.updated.length} updated, -${persistentSuite.deprecated.length} deprecated, ${persistentSuite.failed.length} failed, ${persistentSuite.blocked.length} blocked, ${persistentSuite.newlyAutomated.length} newly automated`
565
688
  : '',
566
689
  `auth: ${authState}`,
567
690
  session.fixtures.length ? `declared preconditions: ${session.fixtures.map((f) => f.name).join(', ')}` : '',
568
- `timing: total=${phaseTimings.totalSec}s setup=${phaseTimings.setupSec}s active=${phaseTimings.activeSec}s${phaseTimings.timeToLoginSec != null ? ` toLogin=${phaseTimings.timeToLoginSec}s` : ''}${phaseTimings.diagnostics.waitSec != null ? ` wait=${phaseTimings.diagnostics.waitSec}s` : ''}${phaseTimings.diagnostics.flowRuntimeSec != null ? ` flows=${phaseTimings.diagnostics.flowRuntimeSec}s` : ''}${session.budgetProfile ? ` (profile=${session.budgetProfile})` : ''}`,
569
- reportLinks ? `report links: baseline=${baseline ?? 'none'} trend=${trendRoot ?? session.root}${typeof reportLinks.comparison === 'string' ? ` comparison=${reportLinks.comparison}` : ''}` : '',
691
+ `timing: total=${secText(phaseTimings.totalMs)} setup=${secText(phaseTimings.setupMs)} active=${secText(phaseTimings.activeMs)}${phaseTimings.timeToLoginMs != null ? ` toLogin=${secText(phaseTimings.timeToLoginMs)}` : ''}${phaseTimings.diagnostics.waitMs != null ? ` wait=${secText(phaseTimings.diagnostics.waitMs)}` : ''}${phaseTimings.diagnostics.flowRuntimeMs != null ? ` flows=${secText(phaseTimings.diagnostics.flowRuntimeMs)}` : ''}${session.budgetProfile ? ` (profile=${session.budgetProfile})` : ''}`,
692
+ reportLinks
693
+ ? `report links: baseline=${baseline ?? 'none'} trend=${trendRoot ?? session.root}${typeof reportLinks.comparison === 'string' ? ` comparison=${reportLinks.comparison}` : ''}`
694
+ : '',
570
695
  `artifacts: ${session.artifacts.length} (${screenshots.length} screenshots)`,
571
696
  ...session.artifacts.map((art) => ` ${art.uri} (${art.kind}${art.label ? `: ${art.label}` : ''})`),
572
697
  dumpUri ? `current dump: ${dumpUri}` : '',
@@ -574,6 +699,17 @@ export async function generateSessionReport(sessions, session, options = {}) {
574
699
  `manifest: ${manifestUri}`,
575
700
  exportUri && exportUri !== reportUri ? `${format} export: ${exportUri}` : '',
576
701
  ].filter(Boolean);
577
- return { report, reportUri, manifestUri, manifest, dumpUri, reportLinks, exportUri, exportFormat: exportUri ? format : undefined, summaryText: lines.join('\n'), flowExportSkipped };
702
+ return {
703
+ report,
704
+ reportUri,
705
+ manifestUri,
706
+ manifest,
707
+ dumpUri,
708
+ reportLinks,
709
+ exportUri,
710
+ exportFormat: exportUri ? format : undefined,
711
+ summaryText: lines.join('\n'),
712
+ flowExportSkipped,
713
+ };
578
714
  }
579
715
  //# sourceMappingURL=report.js.map