swipium 1.5.0 → 2.0.1

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 (498) hide show
  1. package/CHANGELOG.md +183 -0
  2. package/README.md +173 -280
  3. package/THREAT_MODEL.md +223 -47
  4. package/dist/appMap/automationLink.js +30 -27
  5. package/dist/appMap/automationLink.js.map +1 -1
  6. package/dist/appMap/build.js +47 -21
  7. package/dist/appMap/build.js.map +1 -1
  8. package/dist/appMap/codeIndex.js +2 -2
  9. package/dist/appMap/codeIndex.js.map +1 -1
  10. package/dist/appMap/featureIndex.js +3 -3
  11. package/dist/appMap/featureIndex.js.map +1 -1
  12. package/dist/appMap/featureModel.js +2 -2
  13. package/dist/appMap/featureModel.js.map +1 -1
  14. package/dist/appMap/firstRunApply.js +2 -2
  15. package/dist/appMap/firstRunApply.js.map +1 -1
  16. package/dist/appMap/issues.js +10 -10
  17. package/dist/appMap/issues.js.map +1 -1
  18. package/dist/appMap/migrations.js +5 -5
  19. package/dist/appMap/migrations.js.map +1 -1
  20. package/dist/appMap/prelaunch.js +2 -2
  21. package/dist/appMap/prelaunch.js.map +1 -1
  22. package/dist/appMap/projectRegistry.js +77 -11
  23. package/dist/appMap/projectRegistry.js.map +1 -1
  24. package/dist/appMap/provenance.js +2 -2
  25. package/dist/appMap/provenance.js.map +1 -1
  26. package/dist/appMap/query.js +2 -2
  27. package/dist/appMap/query.js.map +1 -1
  28. package/dist/appMap/runtimeMerge.js +3 -3
  29. package/dist/appMap/runtimeMerge.js.map +1 -1
  30. package/dist/appMap/schema.js +1 -1
  31. package/dist/appMap/schema.js.map +1 -1
  32. package/dist/appMap/screenMatch.js +1 -1
  33. package/dist/appMap/screenMatch.js.map +1 -1
  34. package/dist/appMap/staticScan.js +17 -17
  35. package/dist/appMap/staticScan.js.map +1 -1
  36. package/dist/appMap/store.js +55 -7
  37. package/dist/appMap/store.js.map +1 -1
  38. package/dist/appMap/tsAstScan.js +3 -3
  39. package/dist/appMap/tsAstScan.js.map +1 -1
  40. package/dist/artifacts/bundletool.js +5 -5
  41. package/dist/artifacts/bundletool.js.map +1 -1
  42. package/dist/artifacts/resolve.js +10 -10
  43. package/dist/artifacts/resolve.js.map +1 -1
  44. package/dist/automation/capabilities.js +3 -3
  45. package/dist/automation/capabilities.js.map +1 -1
  46. package/dist/automation/gestures.js +1 -1
  47. package/dist/automation/gestures.js.map +1 -1
  48. package/dist/automation/plan.js +7 -7
  49. package/dist/automation/plan.js.map +1 -1
  50. package/dist/automation/report.js +3 -3
  51. package/dist/automation/report.js.map +1 -1
  52. package/dist/automation/selectors.js +14 -25
  53. package/dist/automation/selectors.js.map +1 -1
  54. package/dist/automation/types.js +1 -1
  55. package/dist/automation/types.js.map +1 -1
  56. package/dist/automation/waits.js +5 -5
  57. package/dist/automation/waits.js.map +1 -1
  58. package/dist/automation/webview.js +2 -2
  59. package/dist/automation/webview.js.map +1 -1
  60. package/dist/automationGen/appiumModel.js +13 -7
  61. package/dist/automationGen/appiumModel.js.map +1 -1
  62. package/dist/automationGen/ciEmitter.js +5 -5
  63. package/dist/automationGen/ciEmitter.js.map +1 -1
  64. package/dist/automationGen/identifiers.js +224 -0
  65. package/dist/automationGen/identifiers.js.map +1 -0
  66. package/dist/automationGen/jsEmitter.js +265 -106
  67. package/dist/automationGen/jsEmitter.js.map +1 -1
  68. package/dist/automationGen/packagePatch.js +2 -2
  69. package/dist/automationGen/packagePatch.js.map +1 -1
  70. package/dist/automationGen/platformResolve.js +36 -0
  71. package/dist/automationGen/platformResolve.js.map +1 -0
  72. package/dist/automationGen/projectProfile.js +71 -26
  73. package/dist/automationGen/projectProfile.js.map +1 -1
  74. package/dist/automationGen/pythonEmitter.js +276 -105
  75. package/dist/automationGen/pythonEmitter.js.map +1 -1
  76. package/dist/automationGen/readmeEmitter.js +7 -6
  77. package/dist/automationGen/readmeEmitter.js.map +1 -1
  78. package/dist/{tools/automationGenerate.js → automationGen/run.js} +72 -113
  79. package/dist/automationGen/run.js.map +1 -0
  80. package/dist/automationGen/suitePlan.js +6 -4
  81. package/dist/automationGen/suitePlan.js.map +1 -1
  82. package/dist/automationGen/validation.js +20 -8
  83. package/dist/automationGen/validation.js.map +1 -1
  84. package/dist/build/parseBuildLog.js +2 -2
  85. package/dist/build/parseBuildLog.js.map +1 -1
  86. package/dist/build/plan.js +7 -7
  87. package/dist/build/plan.js.map +1 -1
  88. package/dist/ci/preflight.js +13 -4
  89. package/dist/ci/preflight.js.map +1 -1
  90. package/dist/cli/gc.js +74 -0
  91. package/dist/cli/gc.js.map +1 -0
  92. package/dist/cli/init.js +217 -26
  93. package/dist/cli/init.js.map +1 -1
  94. package/dist/cli/main.js +50 -0
  95. package/dist/cli/main.js.map +1 -0
  96. package/dist/cli/report.js +218 -0
  97. package/dist/cli/report.js.map +1 -0
  98. package/dist/cli/scan.js +35 -14
  99. package/dist/cli/scan.js.map +1 -1
  100. package/dist/cli/suite.js +6 -6
  101. package/dist/cli/suite.js.map +1 -1
  102. package/dist/cli/verify.js +7 -7
  103. package/dist/cli/verify.js.map +1 -1
  104. package/dist/consent/consent.js +162 -5
  105. package/dist/consent/consent.js.map +1 -1
  106. package/dist/context/detect.js +45 -14
  107. package/dist/context/detect.js.map +1 -1
  108. package/dist/context/findApps.js +6 -6
  109. package/dist/context/findApps.js.map +1 -1
  110. package/dist/context/projectRoot.js +174 -19
  111. package/dist/context/projectRoot.js.map +1 -1
  112. package/dist/context/scan.js +1 -1
  113. package/dist/context/scan.js.map +1 -1
  114. package/dist/core/capabilityGroups.js +90 -0
  115. package/dist/core/capabilityGroups.js.map +1 -0
  116. package/dist/core/target.js +3 -3
  117. package/dist/core/target.js.map +1 -1
  118. package/dist/core/targetPlan.js +65 -62
  119. package/dist/core/targetPlan.js.map +1 -1
  120. package/dist/drivers/DirectDriver.js +300 -36
  121. package/dist/drivers/DirectDriver.js.map +1 -1
  122. package/dist/drivers/SimctlDriver.js +120 -7
  123. package/dist/drivers/SimctlDriver.js.map +1 -1
  124. package/dist/drivers/WdaDriver.js +350 -50
  125. package/dist/drivers/WdaDriver.js.map +1 -1
  126. package/dist/explore/candidates.js +2 -2
  127. package/dist/explore/candidates.js.map +1 -1
  128. package/dist/explore/graph.js +5 -5
  129. package/dist/explore/graph.js.map +1 -1
  130. package/dist/explore/policy.js +5 -5
  131. package/dist/explore/policy.js.map +1 -1
  132. package/dist/explore/runner.js +301 -284
  133. package/dist/explore/runner.js.map +1 -1
  134. package/dist/explore/signatures.js +1 -1
  135. package/dist/featureTesting/executionBootstrap.js +29 -30
  136. package/dist/featureTesting/executionBootstrap.js.map +1 -1
  137. package/dist/featureTesting/featureMap.js +2 -2
  138. package/dist/featureTesting/featureMap.js.map +1 -1
  139. package/dist/featureTesting/featureScope.js +12 -12
  140. package/dist/featureTesting/featureScope.js.map +1 -1
  141. package/dist/featureTesting/mapFeatureScope.js +7 -7
  142. package/dist/featureTesting/mapFeatureScope.js.map +1 -1
  143. package/dist/featureTesting/objectiveModel.js +10 -10
  144. package/dist/featureTesting/objectiveModel.js.map +1 -1
  145. package/dist/featureTesting/resultMerge.js +6 -6
  146. package/dist/featureTesting/resultMerge.js.map +1 -1
  147. package/dist/featureTesting/sources.js +4 -4
  148. package/dist/featureTesting/sources.js.map +1 -1
  149. package/dist/featureTesting/suiteBridge.js +1 -1
  150. package/dist/featureTesting/suiteBridge.js.map +1 -1
  151. package/dist/featureTesting/synonyms.js +1 -1
  152. package/dist/featureTesting/synonyms.js.map +1 -1
  153. package/dist/featureTesting/testCaseFactory.js +11 -11
  154. package/dist/featureTesting/testCaseFactory.js.map +1 -1
  155. package/dist/featureTesting/testPlan.js +3 -3
  156. package/dist/featureTesting/testPlan.js.map +1 -1
  157. package/dist/firstRun/authStateMachine.js +1 -1
  158. package/dist/firstRun/authStateMachine.js.map +1 -1
  159. package/dist/firstRun/classifyScreen.js +5 -5
  160. package/dist/firstRun/classifyScreen.js.map +1 -1
  161. package/dist/firstRun/firstRunPlanner.js +11 -11
  162. package/dist/firstRun/firstRunPlanner.js.map +1 -1
  163. package/dist/firstRun/firstRunRunner.js +8 -8
  164. package/dist/firstRun/firstRunRunner.js.map +1 -1
  165. package/dist/firstRun/generatedDataPolicy.js +9 -9
  166. package/dist/firstRun/generatedDataPolicy.js.map +1 -1
  167. package/dist/firstRun/inputPlanner.js +5 -5
  168. package/dist/firstRun/inputPlanner.js.map +1 -1
  169. package/dist/firstRun/onboardingStateMachine.js +1 -1
  170. package/dist/firstRun/onboardingStateMachine.js.map +1 -1
  171. package/dist/firstRun/paywallPolicy.js +3 -3
  172. package/dist/firstRun/paywallPolicy.js.map +1 -1
  173. package/dist/firstRun/types.js +1 -1
  174. package/dist/firstRun/types.js.map +1 -1
  175. package/dist/fixtures/catalog.js +33 -3
  176. package/dist/fixtures/catalog.js.map +1 -1
  177. package/dist/fixtures/load.js +50 -0
  178. package/dist/fixtures/load.js.map +1 -0
  179. package/dist/flows/discover.js +2 -2
  180. package/dist/flows/discover.js.map +1 -1
  181. package/dist/flows/generate.js +20 -10
  182. package/dist/flows/generate.js.map +1 -1
  183. package/dist/flows/pack.js +3 -3
  184. package/dist/flows/pack.js.map +1 -1
  185. package/dist/flows/paths.js +57 -0
  186. package/dist/flows/paths.js.map +1 -0
  187. package/dist/flows/repair.js +111 -23
  188. package/dist/flows/repair.js.map +1 -1
  189. package/dist/flows/run.js +153 -57
  190. package/dist/flows/run.js.map +1 -1
  191. package/dist/flows/schema.js +50 -5
  192. package/dist/flows/schema.js.map +1 -1
  193. package/dist/flows/seedExec.js +4 -4
  194. package/dist/flows/seedExec.js.map +1 -1
  195. package/dist/flows/templates.js +5 -5
  196. package/dist/index.js +50 -8
  197. package/dist/index.js.map +1 -1
  198. package/dist/issues/classify.js +16 -16
  199. package/dist/issues/classify.js.map +1 -1
  200. package/dist/issues/fingerprint.js +24 -4
  201. package/dist/issues/fingerprint.js.map +1 -1
  202. package/dist/issues/index.js +94 -31
  203. package/dist/issues/index.js.map +1 -1
  204. package/dist/issues/metrics.js +4 -4
  205. package/dist/issues/metrics.js.map +1 -1
  206. package/dist/issues/recurrence.js +35 -8
  207. package/dist/issues/recurrence.js.map +1 -1
  208. package/dist/issues/report.js +4 -4
  209. package/dist/issues/report.js.map +1 -1
  210. package/dist/issues/reportBridge.js +4 -4
  211. package/dist/issues/reportBridge.js.map +1 -1
  212. package/dist/issues/schema.js +2 -2
  213. package/dist/issues/schema.js.map +1 -1
  214. package/dist/issues/sourceRevision.js +2 -2
  215. package/dist/issues/sourceRevision.js.map +1 -1
  216. package/dist/issues/store.js +110 -32
  217. package/dist/issues/store.js.map +1 -1
  218. package/dist/lib/abortScope.js +48 -0
  219. package/dist/lib/abortScope.js.map +1 -0
  220. package/dist/lib/android.js +75 -7
  221. package/dist/lib/android.js.map +1 -1
  222. package/dist/lib/coordSpace.js +1 -1
  223. package/dist/lib/coordSpace.js.map +1 -1
  224. package/dist/lib/device.js +32 -7
  225. package/dist/lib/device.js.map +1 -1
  226. package/dist/lib/gestures.js +141 -0
  227. package/dist/lib/gestures.js.map +1 -0
  228. package/dist/lib/gitignore.js +4 -3
  229. package/dist/lib/gitignore.js.map +1 -1
  230. package/dist/lib/image.js +1 -1
  231. package/dist/lib/image.js.map +1 -1
  232. package/dist/lib/lockfile.js +370 -31
  233. package/dist/lib/lockfile.js.map +1 -1
  234. package/dist/lib/needsInput.js +3 -3
  235. package/dist/lib/needsInput.js.map +1 -1
  236. package/dist/lib/png.js +2 -2
  237. package/dist/lib/png.js.map +1 -1
  238. package/dist/lib/redact.js +170 -9
  239. package/dist/lib/redact.js.map +1 -1
  240. package/dist/lib/result.js +79 -10
  241. package/dist/lib/result.js.map +1 -1
  242. package/dist/lib/schemaHash.js +3 -3
  243. package/dist/lib/schemaHash.js.map +1 -1
  244. package/dist/lib/sensitive.js +3 -2
  245. package/dist/lib/sensitive.js.map +1 -1
  246. package/dist/lib/simctl.js +3 -3
  247. package/dist/lib/simctl.js.map +1 -1
  248. package/dist/lib/spawn.js +52 -10
  249. package/dist/lib/spawn.js.map +1 -1
  250. package/dist/lib/toolAnnotations.js +114 -0
  251. package/dist/lib/toolAnnotations.js.map +1 -0
  252. package/dist/lib/wda.js +294 -15
  253. package/dist/lib/wda.js.map +1 -1
  254. package/dist/mobileAudit/checks.js +12 -12
  255. package/dist/mobileAudit/checks.js.map +1 -1
  256. package/dist/mobileAudit/evidence.js +4 -4
  257. package/dist/mobileAudit/evidence.js.map +1 -1
  258. package/dist/mobileAudit/profiles.js +1 -1
  259. package/dist/mobileAudit/profiles.js.map +1 -1
  260. package/dist/mobileAudit/results.js +3 -3
  261. package/dist/mobileAudit/results.js.map +1 -1
  262. package/dist/mobileAudit/runner.js +72 -18
  263. package/dist/mobileAudit/runner.js.map +1 -1
  264. package/dist/oracle/auth.js +1 -1
  265. package/dist/oracle/auth.js.map +1 -1
  266. package/dist/oracle/failures.js +219 -36
  267. package/dist/oracle/failures.js.map +1 -1
  268. package/dist/oracle/health.js +63 -17
  269. package/dist/oracle/health.js.map +1 -1
  270. package/dist/oracle/locator.js +13 -13
  271. package/dist/oracle/locator.js.map +1 -1
  272. package/dist/oracle/record.js +3 -3
  273. package/dist/oracle/record.js.map +1 -1
  274. package/dist/orchestration/envelope.js +2 -2
  275. package/dist/orchestration/envelope.js.map +1 -1
  276. package/dist/orchestration/goal.js +4 -4
  277. package/dist/orchestration/goal.js.map +1 -1
  278. package/dist/orchestration/testThis/execute.js +62 -21
  279. package/dist/orchestration/testThis/execute.js.map +1 -1
  280. package/dist/orchestration/testThis/pipeline.js +119 -30
  281. package/dist/orchestration/testThis/pipeline.js.map +1 -1
  282. package/dist/orchestration/testThis/plan.js +162 -73
  283. package/dist/orchestration/testThis/plan.js.map +1 -1
  284. package/dist/orchestration/testThis/sessionIntent.js +72 -0
  285. package/dist/orchestration/testThis/sessionIntent.js.map +1 -0
  286. package/dist/orchestration/testThis/terminal.js +34 -16
  287. package/dist/orchestration/testThis/terminal.js.map +1 -1
  288. package/dist/orchestration/testThis/types.js +1 -1
  289. package/dist/orchestration/testThis/types.js.map +1 -1
  290. package/dist/plan/plan.js +9 -9
  291. package/dist/plan/plan.js.map +1 -1
  292. package/dist/prompts/index.js +22 -22
  293. package/dist/prompts/index.js.map +1 -1
  294. package/dist/report/export.js +392 -37
  295. package/dist/report/export.js.map +1 -1
  296. package/dist/report/findingsDedupe.js +41 -0
  297. package/dist/report/findingsDedupe.js.map +1 -0
  298. package/dist/report/policy.js +7 -4
  299. package/dist/report/policy.js.map +1 -1
  300. package/dist/report/qaLevel.js +8 -8
  301. package/dist/report/qaLevel.js.map +1 -1
  302. package/dist/report/sarifSources.js +160 -0
  303. package/dist/report/sarifSources.js.map +1 -0
  304. package/dist/report/summary.js +2 -2
  305. package/dist/report/summary.js.map +1 -1
  306. package/dist/report/testCatalog.js +4 -4
  307. package/dist/report/testCatalog.js.map +1 -1
  308. package/dist/report/toolHealth.js +124 -0
  309. package/dist/report/toolHealth.js.map +1 -0
  310. package/dist/server.js +472 -45
  311. package/dist/server.js.map +1 -1
  312. package/dist/services/automationGenerate.js +8 -2
  313. package/dist/services/automationGenerate.js.map +1 -1
  314. package/dist/services/build.js +2 -2
  315. package/dist/services/build.js.map +1 -1
  316. package/dist/{tools → services}/flowGenerate.js +29 -13
  317. package/dist/services/flowGenerate.js.map +1 -0
  318. package/dist/services/preflight.js +4 -4
  319. package/dist/services/preflight.js.map +1 -1
  320. package/dist/services/prepareAndroid.js +46 -8
  321. package/dist/services/prepareAndroid.js.map +1 -1
  322. package/dist/services/prepareIos.js +24 -9
  323. package/dist/services/prepareIos.js.map +1 -1
  324. package/dist/services/report.js +100 -45
  325. package/dist/services/report.js.map +1 -1
  326. package/dist/services/smoke.js +32 -16
  327. package/dist/services/smoke.js.map +1 -1
  328. package/dist/services/suiteGenerate.js +28 -3
  329. package/dist/services/suiteGenerate.js.map +1 -1
  330. package/dist/services/testSuiteKnowledge.js +40 -27
  331. package/dist/services/testSuiteKnowledge.js.map +1 -1
  332. package/dist/session/attach.js +270 -6
  333. package/dist/session/attach.js.map +1 -1
  334. package/dist/session/processRegistry.js +317 -48
  335. package/dist/session/processRegistry.js.map +1 -1
  336. package/dist/session/progress.js +1 -1
  337. package/dist/session/retention.js +201 -0
  338. package/dist/session/retention.js.map +1 -0
  339. package/dist/session/store.js +275 -48
  340. package/dist/session/store.js.map +1 -1
  341. package/dist/snapshot/overlays.js +53 -8
  342. package/dist/snapshot/overlays.js.map +1 -1
  343. package/dist/snapshot/parse.js +28 -4
  344. package/dist/snapshot/parse.js.map +1 -1
  345. package/dist/snapshot/present.js +11 -5
  346. package/dist/snapshot/present.js.map +1 -1
  347. package/dist/snapshot/settle.js +39 -9
  348. package/dist/snapshot/settle.js.map +1 -1
  349. package/dist/state/consent.js +99 -0
  350. package/dist/state/consent.js.map +1 -0
  351. package/dist/state/profile.js +46 -2
  352. package/dist/state/profile.js.map +1 -1
  353. package/dist/suite/compile.js +9 -5
  354. package/dist/suite/compile.js.map +1 -1
  355. package/dist/suite/lint.js +4 -4
  356. package/dist/suite/lint.js.map +1 -1
  357. package/dist/suite/pom.js +50 -41
  358. package/dist/suite/pom.js.map +1 -1
  359. package/dist/suite/secretGuard.js +266 -0
  360. package/dist/suite/secretGuard.js.map +1 -0
  361. package/dist/suite/testcase.js +9 -7
  362. package/dist/suite/testcase.js.map +1 -1
  363. package/dist/testSuite/exporter.js +4 -4
  364. package/dist/testSuite/exporter.js.map +1 -1
  365. package/dist/testSuite/generator.js +13 -9
  366. package/dist/testSuite/generator.js.map +1 -1
  367. package/dist/testSuite/history.js +1 -1
  368. package/dist/testSuite/history.js.map +1 -1
  369. package/dist/testSuite/issueLinks.js +3 -3
  370. package/dist/testSuite/issueLinks.js.map +1 -1
  371. package/dist/testSuite/lint.js +4 -4
  372. package/dist/testSuite/lint.js.map +1 -1
  373. package/dist/testSuite/merge.js +5 -5
  374. package/dist/testSuite/merge.js.map +1 -1
  375. package/dist/testSuite/schema.js +5 -5
  376. package/dist/testSuite/schema.js.map +1 -1
  377. package/dist/testSuite/store.js +3 -3
  378. package/dist/testSuite/store.js.map +1 -1
  379. package/dist/testSuite/traceability.js +2 -2
  380. package/dist/testSuite/traceability.js.map +1 -1
  381. package/dist/tools/act.js +794 -164
  382. package/dist/tools/act.js.map +1 -1
  383. package/dist/tools/agent.js +451 -128
  384. package/dist/tools/agent.js.map +1 -1
  385. package/dist/tools/appControl.js +69 -19
  386. package/dist/tools/appControl.js.map +1 -1
  387. package/dist/tools/appMap.js +188 -130
  388. package/dist/tools/appMap.js.map +1 -1
  389. package/dist/tools/build.js +32 -42
  390. package/dist/tools/build.js.map +1 -1
  391. package/dist/tools/bundletool.js +21 -31
  392. package/dist/tools/bundletool.js.map +1 -1
  393. package/dist/tools/clearOverlay.js +55 -12
  394. package/dist/tools/clearOverlay.js.map +1 -1
  395. package/dist/tools/device.js +76 -24
  396. package/dist/tools/device.js.map +1 -1
  397. package/dist/tools/doctor.js +68 -28
  398. package/dist/tools/doctor.js.map +1 -1
  399. package/dist/tools/explore.js +41 -47
  400. package/dist/tools/explore.js.map +1 -1
  401. package/dist/tools/featureTesting.js +31 -48
  402. package/dist/tools/featureTesting.js.map +1 -1
  403. package/dist/tools/firstRun.js +34 -41
  404. package/dist/tools/firstRun.js.map +1 -1
  405. package/dist/tools/flow.js +183 -103
  406. package/dist/tools/flow.js.map +1 -1
  407. package/dist/tools/flowRepair.js +25 -13
  408. package/dist/tools/flowRepair.js.map +1 -1
  409. package/dist/tools/generate.js +52 -89
  410. package/dist/tools/generate.js.map +1 -1
  411. package/dist/tools/getArtifact.js +16 -5
  412. package/dist/tools/getArtifact.js.map +1 -1
  413. package/dist/tools/health.js +15 -12
  414. package/dist/tools/health.js.map +1 -1
  415. package/dist/tools/ios.js +45 -223
  416. package/dist/tools/ios.js.map +1 -1
  417. package/dist/tools/issues.js +251 -35
  418. package/dist/tools/issues.js.map +1 -1
  419. package/dist/tools/jobs.js +41 -16
  420. package/dist/tools/jobs.js.map +1 -1
  421. package/dist/tools/metro.js +36 -35
  422. package/dist/tools/metro.js.map +1 -1
  423. package/dist/tools/mobileAudit.js +50 -45
  424. package/dist/tools/mobileAudit.js.map +1 -1
  425. package/dist/tools/network.js +31 -14
  426. package/dist/tools/network.js.map +1 -1
  427. package/dist/tools/note.js +26 -26
  428. package/dist/tools/note.js.map +1 -1
  429. package/dist/tools/prepareIosTarget.js +10 -16
  430. package/dist/tools/prepareIosTarget.js.map +1 -1
  431. package/dist/tools/prepareTarget.js +117 -50
  432. package/dist/tools/prepareTarget.js.map +1 -1
  433. package/dist/tools/report.js +11 -22
  434. package/dist/tools/report.js.map +1 -1
  435. package/dist/tools/resolveArtifact.js +11 -15
  436. package/dist/tools/resolveArtifact.js.map +1 -1
  437. package/dist/tools/resolveTarget.js +78 -24
  438. package/dist/tools/resolveTarget.js.map +1 -1
  439. package/dist/tools/screenRecord.js +23 -21
  440. package/dist/tools/screenRecord.js.map +1 -1
  441. package/dist/tools/screenshot.js +23 -16
  442. package/dist/tools/screenshot.js.map +1 -1
  443. package/dist/tools/smoke.js +20 -16
  444. package/dist/tools/smoke.js.map +1 -1
  445. package/dist/tools/snapshot.js +155 -118
  446. package/dist/tools/snapshot.js.map +1 -1
  447. package/dist/tools/startSession.js +104 -116
  448. package/dist/tools/startSession.js.map +1 -1
  449. package/dist/tools/suite.js +72 -43
  450. package/dist/tools/suite.js.map +1 -1
  451. package/dist/tools/testSuite.js +30 -20
  452. package/dist/tools/testSuite.js.map +1 -1
  453. package/dist/tools/testThis.js +24 -28
  454. package/dist/tools/testThis.js.map +1 -1
  455. package/dist/tools/visual.js +686 -210
  456. package/dist/tools/visual.js.map +1 -1
  457. package/dist/tools/wait.js +9 -38
  458. package/dist/tools/wait.js.map +1 -1
  459. package/dist/tools/wda.js +187 -57
  460. package/dist/tools/wda.js.map +1 -1
  461. package/dist/version.js +31 -22
  462. package/dist/version.js.map +1 -1
  463. package/dist/visual/ocr.js +53 -6
  464. package/dist/visual/ocr.js.map +1 -1
  465. package/dist/visual/provider.js +80 -12
  466. package/dist/visual/provider.js.map +1 -1
  467. package/docs/README.md +24 -10
  468. package/docs/ci-reports.md +328 -0
  469. package/docs/concepts.md +227 -0
  470. package/docs/flows.md +153 -0
  471. package/docs/mcp-server.md +194 -128
  472. package/docs/physical-devices.md +84 -0
  473. package/docs/tools.md +812 -152
  474. package/package.json +3 -2
  475. package/dist/tools/assertVisual.js +0 -84
  476. package/dist/tools/assertVisual.js.map +0 -1
  477. package/dist/tools/automationGenerate.js.map +0 -1
  478. package/dist/tools/capabilities.js +0 -179
  479. package/dist/tools/capabilities.js.map +0 -1
  480. package/dist/tools/detectContext.js +0 -41
  481. package/dist/tools/detectContext.js.map +0 -1
  482. package/dist/tools/flowGenerate.js.map +0 -1
  483. package/dist/tools/history.js +0 -86
  484. package/dist/tools/history.js.map +0 -1
  485. package/dist/tools/locator.js +0 -85
  486. package/dist/tools/locator.js.map +0 -1
  487. package/dist/tools/permissions.js +0 -174
  488. package/dist/tools/permissions.js.map +0 -1
  489. package/dist/tools/plan.js +0 -52
  490. package/dist/tools/plan.js.map +0 -1
  491. package/dist/tools/screenInfo.js +0 -76
  492. package/dist/tools/screenInfo.js.map +0 -1
  493. package/dist/tools/seed.js +0 -133
  494. package/dist/tools/seed.js.map +0 -1
  495. package/dist/tools/state.js +0 -217
  496. package/dist/tools/state.js.map +0 -1
  497. package/dist/tools/visualText.js +0 -106
  498. package/dist/tools/visualText.js.map +0 -1
@@ -1,9 +1,9 @@
1
- // qa_test_this plan-phase resolution (roadmap §3.1) — the cheap, side-effect-free half of the
1
+ // qa_test_this plan-phase resolution: the cheap, side-effect-free half of the
2
2
  // orchestration state machine. Resolves the session/project, finds (or plans a build for) an
3
- // artifact, picks a target, and returns an ordered plan with the EXACT next tool call to make —
3
+ // artifact, picks a target, and returns an ordered plan with the EXACT next tool call to make,
4
4
  // or a typed blocker / one concise NeedsInput question. Execute/interactive modes are dispatched
5
5
  // to runExecuteMode (./execute.js).
6
- import { qaOk, qaError } from '../../lib/result.js';
6
+ import { qaOk, unknownSessionError } from '../../lib/result.js';
7
7
  import { qaFail } from '../../oracle/failures.js';
8
8
  import { qaNeedsInput, NeedsInput } from '../../lib/needsInput.js';
9
9
  import { scanProject } from '../../context/scan.js';
@@ -16,39 +16,56 @@ import { simctlAvailable, listSimulators } from '../../lib/simctl.js';
16
16
  import { checkWda } from '../../lib/wda.js';
17
17
  import { loadWdaConfig } from '../../lib/wdaConfig.js';
18
18
  import { planTarget } from '../../core/targetPlan.js';
19
+ import { verifiedEmulatorSerials } from '../../session/attach.js';
19
20
  import { universalApkCachePath } from '../../artifacts/bundletool.js';
20
21
  import { ensurePrelaunchAppMap } from '../../appMap/prelaunch.js';
21
22
  import { log } from '../../lib/logger.js';
22
- import { selToPlatform, isAndroidEmulatorSerial } from './types.js';
23
+ import { selToPlatform } from './types.js';
23
24
  import { runExecuteMode } from './execute.js';
25
+ import { rememberTestThisIntent } from './sessionIntent.js';
24
26
  export async function handleTestThis(server, sessions, input) {
25
- const { sessionId, projectRoot, mode, goal, goalText, fastSmoke, platform, device, preferRealDevice, allowOutsideRoot, buildIfNeeded, generateSuite, explore, stopOnNeedsInput, waitForCompletion, timeoutMs, consentId, approve, } = input;
27
+ const { sessionId, projectRoot, mode, goal, goalText, fastSmoke, platform, device, preferRealDevice, allowOutsideRoot, buildIfNeeded, generateSuite, explore, stopOnNeedsInput, waitForCompletion, timeoutMs, consentId, approve, responseMode, } = input;
26
28
  // Goal routing (Milestone C): the goal sets orchestration FLAGS only; explicit booleans win.
27
29
  // Default policy = "leave behind automation when possible" (fastSmoke opts out).
28
30
  const goalFlags = resolveGoalFlags(goal, { explore, generateSuite, stopOnNeedsInput }, { fastSmoke });
29
31
  // ---- resolve / create session ----
30
32
  let session = sessionId ? sessions.get(sessionId) : undefined;
31
33
  if (sessionId && !session) {
32
- return qaError({
33
- what: `Unknown sessionId "${sessionId}"`,
34
- changedState: false,
35
- retrySafe: true,
36
- nextSteps: ['Omit sessionId to create one, or pass a valid session.'],
37
- });
34
+ return unknownSessionError(sessionId, ['Omit sessionId to create one, or pass a valid session.']);
38
35
  }
39
36
  if (!session) {
40
- const { resolveProjectRoot } = await import('../../context/projectRoot.js');
37
+ const { resolveProjectRoot, unresolvedProjectRootError } = await import('../../context/projectRoot.js');
41
38
  const resolved = await resolveProjectRoot(server, projectRoot);
42
39
  if (!resolved.root)
43
- return qaError({
44
- what: 'Could not resolve a project root',
45
- changedState: false,
46
- retrySafe: true,
47
- nextSteps: ['Pass projectRoot="/abs/path".'],
48
- clientHint: resolved.hint,
49
- });
50
- session = sessions.create(resolved.root, undefined, {});
40
+ return unresolvedProjectRootError(resolved);
41
+ session = sessions.create(resolved.root, undefined, responseMode ? { responseMode } : {});
42
+ // An explicit projectRoot IS the user's target choice. Never re-ask the monorepo question for it.
43
+ if (projectRoot)
44
+ session.chosenTarget = resolved.root;
45
+ }
46
+ else if (responseMode && session.responseMode !== responseMode) {
47
+ session.responseMode = responseMode;
48
+ sessions.persist(session);
51
49
  }
50
+ // Remember the user's intent (goal/goalText/flags) so a blocker resume replays it.
51
+ rememberTestThisIntent(sessions, session, input);
52
+ // The EXACT re-invocation for plan steps that route back through qa_test_this: execute mode plus
53
+ // the caller's original goal/flags. A bare {sessionId} would just re-plan forever.
54
+ const reinvokeArgs = { sessionId: session.id, mode: 'execute' };
55
+ for (const [k, v] of Object.entries({
56
+ goal,
57
+ goalText,
58
+ fastSmoke,
59
+ platform,
60
+ device,
61
+ explore,
62
+ generateSuite,
63
+ stopOnNeedsInput,
64
+ buildIfNeeded,
65
+ allowOutsideRoot,
66
+ }))
67
+ if (v !== undefined)
68
+ reinvokeArgs[k] = v;
52
69
  let root = session.root;
53
70
  const wa = (note) => sessions.addWorkaround(session, note);
54
71
  // ---- 1. project scan ----
@@ -64,7 +81,7 @@ export async function handleTestThis(server, sessions, input) {
64
81
  preAttempted.push(`ran low-context app discovery (searched ${disc.searchedLocations.length} location(s), found ${disc.candidates.length} candidate(s))`);
65
82
  const cls = classifyDiscovery(disc);
66
83
  if (cls.decision === 'adopt' && cls.chosen) {
67
- wa(`root is not itself a mobile app — discovered one candidate (${cls.chosen.framework}) at ${cls.chosen.rel}; proceeding with it`);
84
+ wa(`root is not itself a mobile app; discovered one candidate (${cls.chosen.framework}) at ${cls.chosen.rel}; proceeding with it`);
68
85
  root = cls.chosen.path;
69
86
  session.root = root; // adopt the app subdir as the effective project root
70
87
  sessions.persist(session);
@@ -74,7 +91,7 @@ export async function handleTestThis(server, sessions, input) {
74
91
  return qaNeedsInput(NeedsInput.monorepoTarget(cls.choices.map((c) => c.path)), {
75
92
  sessionId: session.id,
76
93
  state: 'needs_input',
77
- attempted: [...preAttempted, `identified ${cls.choices.length} plausible app targets — cannot pick safely`],
94
+ attempted: [...preAttempted, `identified ${cls.choices.length} plausible app targets, cannot pick safely`],
78
95
  candidates: cls.choices
79
96
  .slice(0, 6)
80
97
  .map((c) => ({ path: c.path, rel: c.rel, framework: c.framework, score: c.score, reasons: c.reasons })),
@@ -92,6 +109,11 @@ export async function handleTestThis(server, sessions, input) {
92
109
  });
93
110
  }
94
111
  }
112
+ else if (scan.monorepo && session.chosenTarget === root) {
113
+ // The user already chose this root (monorepo_target resume / explicit projectRoot): asking again
114
+ // would loop forever when the chosen app IS the monorepo root.
115
+ preAttempted.push('monorepo detected, using the explicitly chosen target');
116
+ }
95
117
  else if (scan.monorepo) {
96
118
  // The root is itself an app but also a monorepo: surface other sibling apps for disambiguation
97
119
  // only when there are genuinely multiple recognized targets to choose between.
@@ -108,11 +130,11 @@ export async function handleTestThis(server, sessions, input) {
108
130
  .map((c) => ({ path: c.path, rel: c.rel, framework: c.framework, score: c.score, reasons: c.reasons })),
109
131
  });
110
132
  }
111
- wa('monorepo detected — proceeding with the resolved root; pass projectRoot/target to disambiguate if the wrong app is chosen');
133
+ wa('monorepo detected, proceeding with the resolved root; pass projectRoot/target to disambiguate if the wrong app is chosen');
112
134
  }
113
135
  // ---- 1c. pre-launch app map (Vision Gap Fix 1): load or build the durable STATIC app map
114
136
  // BEFORE prepare/smoke so first-run decisions, exploration seeding, automation readiness,
115
- // and the report are informed by the map at the time they are made — and so the map still
137
+ // and the report are informed by the map at the time they are made, and so the map still
116
138
  // exists when no device/artifact is available (every blocker below carries appMapUri). ----
117
139
  let prelaunchMap;
118
140
  let appMapUri;
@@ -127,9 +149,9 @@ export async function handleTestThis(server, sessions, input) {
127
149
  });
128
150
  prelaunchMap = pre.map;
129
151
  appMapUri = pre.appMapUri;
130
- preAttempted.push(`${pre.rescanned ? 'built' : 'loaded'} static app map (${pre.reason}; ${pre.map.staticTopology.screens.length} static screen(s)) → ${pre.appMapUri}`);
152
+ preAttempted.push(`${pre.rescanned ? 'built' : 'loaded'} static app map (${pre.reason}; ${pre.map.staticTopology.screens.length} static screen(s)) > ${pre.appMapUri}`);
131
153
  if (pre.rescanned)
132
- wa(`built static app map before launch (${pre.map.staticTopology.screens.length} screen(s)) — durable map drives first-run/exploration/report`);
154
+ wa(`built static app map before launch (${pre.map.staticTopology.screens.length} screen(s)); durable map drives first-run/exploration/report`);
133
155
  }
134
156
  catch (e) {
135
157
  log('warn', 'test_this pre-launch app map failed', { err: String(e) });
@@ -145,7 +167,7 @@ export async function handleTestThis(server, sessions, input) {
145
167
  return qaNeedsInput(NeedsInput.artifactOutsideRoot(outside?.path ?? '(outside root)'), {
146
168
  sessionId: session.id,
147
169
  state: 'needs_input',
148
- attempted: [...preAttempted, 'resolved candidate artifacts — the best one is outside the project root'],
170
+ attempted: [...preAttempted, 'resolved candidate artifacts, but the best one is outside the project root'],
149
171
  candidates: art.candidates.slice(0, 3),
150
172
  });
151
173
  }
@@ -153,12 +175,12 @@ export async function handleTestThis(server, sessions, input) {
153
175
  if (art.best) {
154
176
  steps.push({ tool: '(resolved)', why: `Using ${art.best.type.toUpperCase()} ${art.best.path}`, status: 'satisfied' });
155
177
  if (isAab) {
156
- // Honest (P0.2): an .aab is not installable — it must be converted first.
178
+ // Honest (P0.2): an .aab is not installable; it must be converted first.
157
179
  wa('only a .aab is present; qa_test_this will convert it to an installable universal APK with bundletool');
158
180
  steps.push({
159
181
  tool: 'qa_test_this',
160
- why: 'Convert the .aab to an installable universal APK before install',
161
- args: { sessionId: session.id },
182
+ why: 'Convert the .aab to an installable universal APK before install (execute mode runs the conversion)',
183
+ args: { ...reinvokeArgs },
162
184
  status: 'pending',
163
185
  });
164
186
  }
@@ -182,7 +204,7 @@ export async function handleTestThis(server, sessions, input) {
182
204
  why: expoAndroidLocalRun
183
205
  ? 'No reusable APK/dev build found; run Expo Android local build/install/Metro path'
184
206
  : `No artifact found; build ${targetPlatform} from source before install`,
185
- args: { sessionId: session.id },
207
+ args: { ...reinvokeArgs },
186
208
  status: 'pending',
187
209
  produces: ['artifact.path', 'artifact.appId'],
188
210
  });
@@ -221,11 +243,11 @@ export async function handleTestThis(server, sessions, input) {
221
243
  art.best.installableOn.length > 0 &&
222
244
  art.best.installableOn.every((t) => t === 'ios-real');
223
245
  if (preferRealDevice || iosArtifactRealOnly) {
224
- return qaFail('BACKEND_UNSUPPORTED', {
225
- what: 'Swipium 1.0.0 supports Android Emulator and iOS Simulator targets only.',
246
+ return qaFail('PHYSICAL_DEVICE_UNSUPPORTED', {
247
+ what: 'Swipium supports Android Emulator and iOS Simulator targets only (see docs/physical-devices.md).',
226
248
  nextSteps: [
227
- 'Use an Android emulator build or an iOS Simulator .app for v1.',
228
- 'Real-device workflows are outside the public v1 scope.',
249
+ 'Use an Android emulator build or an iOS Simulator .app.',
250
+ 'Real-device workflows are out of scope until their threat model lands.',
229
251
  ],
230
252
  extra: { sessionId: session.id, appMapUri, state: 'blocked' },
231
253
  });
@@ -236,10 +258,13 @@ export async function handleTestThis(server, sessions, input) {
236
258
  adbPresent ? listAvds() : Promise.resolve([]),
237
259
  simPresent ? listSimulators() : Promise.resolve([]),
238
260
  ]);
239
- const online = onlineAll.filter(isAndroidEmulatorSerial);
240
- if (device && onlineAll.includes(device) && !isAndroidEmulatorSerial(device)) {
241
- return qaFail('BACKEND_UNSUPPORTED', {
242
- what: `Android target "${device}" appears to be a real device. Swipium 1.0.0 supports Android Emulator only.`,
261
+ // H6: pattern OR property-verified emulators (localhost:5555, Genymotion), same as getDriver.
262
+ // ALL online serials go to the planner (it refuses physical ones with PHYSICAL_DEVICE_UNSUPPORTED
263
+ // when nothing else is viable). Pre-filtering to emulators hid that and reported NO_DEVICE.
264
+ const emulators = await verifiedEmulatorSerials(onlineAll);
265
+ if (device && onlineAll.includes(device) && !emulators.includes(device)) {
266
+ return qaFail('PHYSICAL_DEVICE_UNSUPPORTED', {
267
+ what: `Android target "${device}" appears to be a physical device. Swipium supports the Android Emulator only.`,
243
268
  nextSteps: ['Start or create an Android Emulator, then retry without a real-device serial.'],
244
269
  extra: { sessionId: session.id, appMapUri, state: 'blocked' },
245
270
  });
@@ -250,7 +275,7 @@ export async function handleTestThis(server, sessions, input) {
250
275
  preferRealDevice: false,
251
276
  artifactPlatform,
252
277
  artifactInstallTargets: art.best?.installableOn,
253
- android: { online, avds },
278
+ android: { online: onlineAll, avds, emulators },
254
279
  ios: {
255
280
  bootedSimulators: sims.filter((s) => s.state === 'Booted').map((s) => ({ udid: s.udid, name: s.name })),
256
281
  availableSimulators: sims.filter((s) => s.state !== 'Booted').map((s) => ({ udid: s.udid, name: s.name })),
@@ -259,50 +284,114 @@ export async function handleTestThis(server, sessions, input) {
259
284
  };
260
285
  const target = planTarget(tInputs);
261
286
  if (target.blocked) {
287
+ const androidWanted = platform === 'android' || artifactPlatform === 'android' || /android/i.test(target.blocked.detail);
288
+ const blockedExtra = {
289
+ sessionId: session.id,
290
+ targetPlan: target,
291
+ workaroundsAttempted: session.workarounds,
292
+ appMapUri,
293
+ state: 'blocked',
294
+ };
295
+ const avdSteps = [
296
+ 'Create an Android Virtual Device: Android Studio > Device Manager > Create device, or ' +
297
+ '`avdmanager create avd -n Pixel_7 -k "system-images;android-34;google_apis;arm64-v8a" -d pixel_7` (install the image with sdkmanager first).',
298
+ `Then re-run qa_test_this ${JSON.stringify(reinvokeArgs)}. Swipium boots the AVD itself (one consent).`,
299
+ ];
300
+ if (target.blocked.failureCode === 'NO_DEVICE' && androidWanted && !adbPresent) {
301
+ return qaFail('ADB_NOT_FOUND', {
302
+ what: 'adb (Android platform-tools) is not on PATH, so Swipium cannot see or boot any Android emulator.',
303
+ nextSteps: [
304
+ 'Install Android platform-tools (Android Studio > SDK Manager, or `sdkmanager "platform-tools" "emulator"`) and put $ANDROID_HOME/platform-tools and $ANDROID_HOME/emulator on PATH (or set ANDROID_HOME).',
305
+ ...avdSteps,
306
+ ...(simPresent ? ['Or test on iOS: qa_test_this {"mode":"execute","platform":"ios"}.'] : []),
307
+ ],
308
+ extra: blockedExtra,
309
+ });
310
+ }
262
311
  return qaFail(target.blocked.failureCode, {
263
- what: target.blocked.detail,
264
- extra: { sessionId: session.id, targetPlan: target, workaroundsAttempted: session.workarounds, appMapUri, state: 'blocked' },
312
+ ...(target.blocked.failureCode === 'NO_DEVICE' && androidWanted
313
+ ? { what: 'No Android emulator is online and no AVD exists to boot.', nextSteps: avdSteps }
314
+ : target.blocked.failureCode === 'PHYSICAL_DEVICE_UNSUPPORTED'
315
+ ? {
316
+ what: target.blocked.detail,
317
+ nextSteps: ['Physical devices are out of scope (docs/physical-devices.md). Use an emulator instead.', ...avdSteps],
318
+ }
319
+ : { what: target.blocked.detail }),
320
+ extra: blockedExtra,
265
321
  });
266
322
  }
267
323
  if (target.willBoot)
268
- wa(`no online ${selToPlatform[target.selected]} target — will boot ${target.bootTarget}`);
324
+ wa(`no online ${selToPlatform[target.selected]} target, will boot ${target.bootTarget}`);
269
325
  const isAndroid = selToPlatform[target.selected] === 'android';
270
326
  const isIosReal = false;
271
- const requiresStructuredIos = !isAndroid &&
272
- !isIosReal &&
273
- (goalFlags.explore || goalFlags.generateSuite || goalFlags.goal === 'test_login' || goalFlags.goal === 'create_automation_suite');
274
- if (requiresStructuredIos) {
327
+ // Effective flags: iOS without WebDriverAgent can still launch + smoke visually, so the DEFAULT
328
+ // suite generation / goal-implied exploration degrade (recorded as a workaround) instead of
329
+ // blocking. Only work the caller explicitly asked for that truly needs WDA blocks.
330
+ let effExplore = goalFlags.explore;
331
+ let effGenerateSuite = goalFlags.generateSuite;
332
+ let effRequiredOutputs = goalFlags.requiredOutputs;
333
+ const structuredNeeds = [];
334
+ if (!isAndroid && !isIosReal) {
335
+ if (effGenerateSuite)
336
+ structuredNeeds.push('suite generation');
337
+ if (effExplore)
338
+ structuredNeeds.push('guided exploration');
339
+ if (goalFlags.goal === 'test_login')
340
+ structuredNeeds.push('driving the login form');
341
+ }
342
+ if (structuredNeeds.length) {
275
343
  const wdaConfig = loadWdaConfig(root);
276
344
  const wda = await checkWda(wdaConfig.url, 1500);
277
345
  if (!wda.reachable || !wda.ready) {
278
- return qaFail('WDA_UNREACHABLE', {
279
- what: `iOS ${goalFlags.goal} requires a structured WebDriverAgent backend, but WDA is not ready at ${wdaConfig.url}`,
280
- nextSteps: [
281
- 'Run qa_wda { action:"doctor" } to inspect WDA setup.',
282
- 'Run qa_wda { action:"build" } and qa_wda { action:"start" }, or attach an external WDA URL.',
283
- ...(appMapUri ? [`Static app map is still available: qa_app_map_read { projectRoot:"${root}" }`] : []),
284
- ],
285
- extra: {
286
- sessionId: session.id,
287
- state: 'blocked',
288
- goal: goalFlags.goal,
289
- target,
290
- wda: { config: { url: wdaConfig.url, mode: wdaConfig.mode, derivedDataPath: wdaConfig.derivedDataPath }, status: wda },
291
- appMapUri,
292
- },
293
- });
346
+ // Hard requirement = something the caller explicitly asked for (flag or a WDA-only goal).
347
+ const hard = [];
348
+ if (generateSuite === true || goalFlags.goal === 'create_automation_suite')
349
+ hard.push('suite generation');
350
+ if (explore === true || goalFlags.goal === 'explore' || goalFlags.goal === 'reproduce_bug')
351
+ hard.push('guided exploration');
352
+ if (goalFlags.goal === 'test_login')
353
+ hard.push('driving the login form');
354
+ if (hard.length) {
355
+ const visualSmoke = { ...reinvokeArgs, platform: 'ios', goal: 'smoke' };
356
+ delete visualSmoke.explore;
357
+ delete visualSmoke.generateSuite;
358
+ delete visualSmoke.goalText;
359
+ return qaFail('WDA_UNREACHABLE', {
360
+ what: `iOS ${hard.join(' + ')} (requested via ${goal ? `goal "${goalFlags.goal}"` : 'explicit flags'}) needs the structured ` +
361
+ `WebDriverAgent backend, and WDA is not ready at ${wdaConfig.url}. A visual-only smoke (launch + screenshots + health) does not need WDA.`,
362
+ nextSteps: [
363
+ `Visual-only alternative now: qa_test_this ${JSON.stringify(visualSmoke)}`,
364
+ 'Or set up WDA: qa_wda { action:"doctor" } > qa_wda { action:"build" } > qa_wda { action:"start" } (or attach an external WDA URL), then re-run the same qa_test_this call.',
365
+ ...(appMapUri ? [`Static app map is still available: qa_app_map_read { projectRoot:"${root}" }`] : []),
366
+ ],
367
+ extra: {
368
+ sessionId: session.id,
369
+ state: 'blocked',
370
+ goal: goalFlags.goal,
371
+ requiresWdaFor: hard,
372
+ target,
373
+ wda: { config: { url: wdaConfig.url, mode: wdaConfig.mode, derivedDataPath: wdaConfig.derivedDataPath }, status: wda },
374
+ appMapUri,
375
+ },
376
+ });
377
+ }
378
+ effExplore = false;
379
+ effGenerateSuite = false;
380
+ effRequiredOutputs = effRequiredOutputs.filter((o) => o !== 'suite' && o !== 'exploration');
381
+ wa(`WebDriverAgent not ready at ${wdaConfig.url}, skipping ${structuredNeeds.join(' + ')}; running a visual-only iOS smoke (set up WDA via qa_wda to enable them)`);
382
+ preAttempted.push(`checked WebDriverAgent at ${wdaConfig.url}: not ready; degraded to visual-only`);
294
383
  }
295
384
  }
296
385
  // ---- 4. auth (be effective: proceed pre-login; surface the question as optional) ----
297
386
  let optionalQuestion;
298
387
  if (scan.likelyAuth) {
299
- wa('app likely has a login — will test pre-login coverage; authenticated flows are blocked until credentials are provided');
388
+ wa('app likely has a login: will test pre-login coverage; authenticated flows are blocked until credentials are provided');
300
389
  optionalQuestion = NeedsInput.credentials('Authenticated workflows need a test account.');
301
390
  }
302
391
  // ---- 5. assemble the ordered plan ----
303
392
  // Effective installable artifact path: a converted universal APK for an .aab, else the artifact.
304
393
  const effectiveApk = art.best ? (isAab ? universalApkCachePath(root, art.best.path) : art.best.path) : undefined;
305
- // Milestone E: when a build is pending, the artifact does not exist yet — use SYMBOLIC refs
394
+ // Milestone E: when a build is pending, the artifact does not exist yet, so use SYMBOLIC refs
306
395
  // (${artifact.path}/${artifact.appId}) and mark the dependency, never `undefined` args.
307
396
  const prepArgs = { sessionId: session.id };
308
397
  if (isAndroid) {
@@ -360,7 +449,7 @@ export async function handleTestThis(server, sessions, input) {
360
449
  .map((c) => c.path),
361
450
  }
362
451
  : needBuild
363
- ? { why: 'No prebuilt artifact — building from source', alternatives: [] }
452
+ ? { why: 'No prebuilt artifact, building from source', alternatives: [] }
364
453
  : null;
365
454
  const targetChoice = target.selected
366
455
  ? { target: `${target.selected}${target.device ? ` (${target.device})` : ''}`, why: target.reason, alternatives: [] }
@@ -381,9 +470,9 @@ export async function handleTestThis(server, sessions, input) {
381
470
  goal: goalFlags.goal,
382
471
  goalText,
383
472
  releaseGate: goalFlags.releaseGate,
384
- requiredOutputs: goalFlags.requiredOutputs,
385
- generateSuite: goalFlags.generateSuite,
386
- explore: goalFlags.explore,
473
+ requiredOutputs: effRequiredOutputs,
474
+ generateSuite: effGenerateSuite,
475
+ explore: effExplore,
387
476
  stopOnNeedsInput: goalFlags.stopOnNeedsInput,
388
477
  artifactChoice,
389
478
  targetChoice,
@@ -398,13 +487,13 @@ export async function handleTestThis(server, sessions, input) {
398
487
  });
399
488
  }
400
489
  const summary = `🚀 test-this plan for ${root} (framework=${scan.framework}, session ${session.id})\n` +
401
- `target: ${target.selected}${target.device ? ` (${target.device})` : ''} — ${target.reason}\n` +
490
+ `target: ${target.selected}${target.device ? ` (${target.device})` : ''}: ${target.reason}\n` +
402
491
  (art.best
403
492
  ? `artifact: ${art.best.type.toUpperCase()} ${art.best.path}`
404
- : `artifact: none — ${needBuild ? 'will build from source' : 'blocked'}`) +
493
+ : `artifact: none (${needBuild ? 'will build from source' : 'blocked'})`) +
405
494
  '\n' +
406
- `plan:\n${steps.map((s, i) => ` ${i + 1}. [${s.status === 'satisfied' ? '✓' : ' '}] ${s.tool} — ${s.why}`).join('\n')}\n` +
407
- (nextAction ? `→ next: call ${nextAction.tool} ${JSON.stringify(nextAction.args ?? {})}\n` : '') +
495
+ `plan:\n${steps.map((s, i) => ` ${i + 1}. [${s.status === 'satisfied' ? '✓' : ' '}] ${s.tool}: ${s.why}`).join('\n')}\n` +
496
+ (nextAction ? `next: call ${nextAction.tool} ${JSON.stringify(nextAction.args ?? {})}\n` : '') +
408
497
  (session.workarounds.length ? `workarounds: ${session.workarounds.length} (see workaroundsAttempted)\n` : '') +
409
498
  (optionalQuestion ? `note: ${optionalQuestion.question}` : '');
410
499
  return qaOk({
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/orchestration/testThis/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/orchestration/testThis/plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ // Durable qa_test_this intent per session: the goal/flags a user asked for, so a resume
2
+ // (qa_continue_from_blocker > qa_test_this) replays them instead of silently falling back to the
3
+ // default goal, plus the "login declined" choice from a credentials question.
4
+ //
5
+ // Storage, in lookup order (tolerant of each being absent):
6
+ // 1. `session.lastTestThisArgs` ({goal, goalText, flags}), persisted + rehydrated by the store;
7
+ // 2. a module-level map keyed by sessionId (same server process), the fallback when the field is absent.
8
+ // The login-declined flag rides on the generic persisted `milestones` record.
9
+ /** qa_test_this inputs that express the user's INTENT (never device/consent/one-shot plumbing). */
10
+ export const TEST_THIS_INTENT_KEYS = [
11
+ 'goal',
12
+ 'goalText',
13
+ 'fastSmoke',
14
+ 'explore',
15
+ 'generateSuite',
16
+ 'stopOnNeedsInput',
17
+ 'platform',
18
+ 'buildIfNeeded',
19
+ ];
20
+ const memory = new Map();
21
+ function pickIntent(input) {
22
+ const out = {};
23
+ for (const k of TEST_THIS_INTENT_KEYS)
24
+ if (input[k] !== undefined)
25
+ out[k] = input[k];
26
+ return out;
27
+ }
28
+ /** Remember the intent keys of a qa_test_this call (merged over any earlier call's). */
29
+ export function rememberTestThisIntent(sessions, session, input) {
30
+ const current = pickIntent(input);
31
+ const merged = { ...recallTestThisIntent(session), ...current };
32
+ memory.set(session.id, merged);
33
+ const { goal, goalText, ...flags } = merged;
34
+ const record = { goal, goalText, flags: flags };
35
+ // Tolerate a store without the typed setter (older build): fall back to the plain field.
36
+ const store = sessions;
37
+ if (typeof store.setLastTestThisArgs === 'function')
38
+ store.setLastTestThisArgs(session, record);
39
+ else
40
+ session.lastTestThisArgs = record;
41
+ return merged;
42
+ }
43
+ /** The remembered intent for a session ({} when none). */
44
+ export function recallTestThisIntent(session) {
45
+ const field = session.lastTestThisArgs;
46
+ if (field && typeof field === 'object') {
47
+ const flags = field.flags && typeof field.flags === 'object' ? field.flags : {};
48
+ return pickIntent({ ...flags, goal: field.goal, goalText: field.goalText });
49
+ }
50
+ const mem = memory.get(session.id);
51
+ if (mem)
52
+ return { ...mem };
53
+ return {};
54
+ }
55
+ const LOGIN_DECLINED = 'login_declined';
56
+ /** Record that the user chose "test pre-login only": login is out of scope for this session. */
57
+ export function markLoginDeclined(sessions, session) {
58
+ sessions.milestone(session, LOGIN_DECLINED);
59
+ }
60
+ export function isLoginDeclined(session) {
61
+ return session.milestones?.[LOGIN_DECLINED] != null;
62
+ }
63
+ /** Login credentials usable RIGHT NOW: metadata alone is not enough. Raw values live only in
64
+ * memory and are gone after a server restart, so the question must be asked again. */
65
+ export function hasUsableCredentials(session) {
66
+ return session.inputs.some((i) => /EMAIL|PASSWORD/.test(i.varName) && session.inputValues.has(i.varName));
67
+ }
68
+ /** Credentials whose metadata survived a restart but whose values did not. */
69
+ export function credentialsLostOnRestart(session) {
70
+ return session.inputs.some((i) => /EMAIL|PASSWORD/.test(i.varName)) && !hasUsableCredentials(session);
71
+ }
72
+ //# sourceMappingURL=sessionIntent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionIntent.js","sourceRoot":"","sources":["../../../src/orchestration/testThis/sessionIntent.ts"],"names":[],"mappings":"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"}