swipium 1.4.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (541) hide show
  1. package/CHANGELOG.md +313 -0
  2. package/README.md +175 -219
  3. package/THREAT_MODEL.md +223 -47
  4. package/dist/appMap/automationLink.js +39 -26
  5. package/dist/appMap/automationLink.js.map +1 -1
  6. package/dist/appMap/build.js +68 -20
  7. package/dist/appMap/build.js.map +1 -1
  8. package/dist/appMap/codeIndex.js +31 -5
  9. package/dist/appMap/codeIndex.js.map +1 -1
  10. package/dist/appMap/featureIndex.js +23 -5
  11. package/dist/appMap/featureIndex.js.map +1 -1
  12. package/dist/appMap/featureModel.js +44 -8
  13. package/dist/appMap/featureModel.js.map +1 -1
  14. package/dist/appMap/firstRunApply.js +24 -6
  15. package/dist/appMap/firstRunApply.js.map +1 -1
  16. package/dist/appMap/fsWalk.js +19 -2
  17. package/dist/appMap/fsWalk.js.map +1 -1
  18. package/dist/appMap/issues.js +10 -30
  19. package/dist/appMap/issues.js.map +1 -1
  20. package/dist/appMap/migrations.js +6 -6
  21. package/dist/appMap/migrations.js.map +1 -1
  22. package/dist/appMap/prelaunch.js +2 -2
  23. package/dist/appMap/prelaunch.js.map +1 -1
  24. package/dist/appMap/projectRegistry.js +83 -11
  25. package/dist/appMap/projectRegistry.js.map +1 -1
  26. package/dist/appMap/provenance.js +2 -2
  27. package/dist/appMap/provenance.js.map +1 -1
  28. package/dist/appMap/query.js +21 -5
  29. package/dist/appMap/query.js.map +1 -1
  30. package/dist/appMap/runtimeMerge.js +12 -5
  31. package/dist/appMap/runtimeMerge.js.map +1 -1
  32. package/dist/appMap/schema.js +1 -1
  33. package/dist/appMap/schema.js.map +1 -1
  34. package/dist/appMap/screenMatch.js +6 -2
  35. package/dist/appMap/screenMatch.js.map +1 -1
  36. package/dist/appMap/staticScan.js +151 -39
  37. package/dist/appMap/staticScan.js.map +1 -1
  38. package/dist/appMap/store.js +58 -85
  39. package/dist/appMap/store.js.map +1 -1
  40. package/dist/appMap/tsAstScan.js +34 -12
  41. package/dist/appMap/tsAstScan.js.map +1 -1
  42. package/dist/artifacts/bundletool.js +49 -12
  43. package/dist/artifacts/bundletool.js.map +1 -1
  44. package/dist/artifacts/resolve.js +41 -14
  45. package/dist/artifacts/resolve.js.map +1 -1
  46. package/dist/automation/capabilities.js +112 -30
  47. package/dist/automation/capabilities.js.map +1 -1
  48. package/dist/automation/gestures.js +6 -2
  49. package/dist/automation/gestures.js.map +1 -1
  50. package/dist/automation/plan.js +71 -23
  51. package/dist/automation/plan.js.map +1 -1
  52. package/dist/automation/report.js +15 -5
  53. package/dist/automation/report.js.map +1 -1
  54. package/dist/automation/selectors.js +22 -28
  55. package/dist/automation/selectors.js.map +1 -1
  56. package/dist/automation/types.js +1 -1
  57. package/dist/automation/types.js.map +1 -1
  58. package/dist/automation/waits.js +14 -8
  59. package/dist/automation/waits.js.map +1 -1
  60. package/dist/automation/webview.js +9 -3
  61. package/dist/automation/webview.js.map +1 -1
  62. package/dist/automationGen/appiumModel.js +16 -8
  63. package/dist/automationGen/appiumModel.js.map +1 -1
  64. package/dist/automationGen/ciEmitter.js +6 -6
  65. package/dist/automationGen/ciEmitter.js.map +1 -1
  66. package/dist/automationGen/identifiers.js +224 -0
  67. package/dist/automationGen/identifiers.js.map +1 -0
  68. package/dist/automationGen/jsEmitter.js +288 -121
  69. package/dist/automationGen/jsEmitter.js.map +1 -1
  70. package/dist/automationGen/packagePatch.js +2 -2
  71. package/dist/automationGen/packagePatch.js.map +1 -1
  72. package/dist/automationGen/platformResolve.js +36 -0
  73. package/dist/automationGen/platformResolve.js.map +1 -0
  74. package/dist/automationGen/projectProfile.js +76 -27
  75. package/dist/automationGen/projectProfile.js.map +1 -1
  76. package/dist/automationGen/pythonEmitter.js +278 -107
  77. package/dist/automationGen/pythonEmitter.js.map +1 -1
  78. package/dist/automationGen/readmeEmitter.js +7 -6
  79. package/dist/automationGen/readmeEmitter.js.map +1 -1
  80. package/dist/automationGen/run.js +388 -0
  81. package/dist/automationGen/run.js.map +1 -0
  82. package/dist/automationGen/suitePlan.js +17 -10
  83. package/dist/automationGen/suitePlan.js.map +1 -1
  84. package/dist/automationGen/validation.js +52 -12
  85. package/dist/automationGen/validation.js.map +1 -1
  86. package/dist/build/parseBuildLog.js +235 -31
  87. package/dist/build/parseBuildLog.js.map +1 -1
  88. package/dist/build/plan.js +39 -18
  89. package/dist/build/plan.js.map +1 -1
  90. package/dist/ci/preflight.js +13 -4
  91. package/dist/ci/preflight.js.map +1 -1
  92. package/dist/cli/gc.js +74 -0
  93. package/dist/cli/gc.js.map +1 -0
  94. package/dist/cli/init.js +217 -26
  95. package/dist/cli/init.js.map +1 -1
  96. package/dist/cli/main.js +50 -0
  97. package/dist/cli/main.js.map +1 -0
  98. package/dist/cli/report.js +218 -0
  99. package/dist/cli/report.js.map +1 -0
  100. package/dist/cli/scan.js +36 -15
  101. package/dist/cli/scan.js.map +1 -1
  102. package/dist/cli/suite.js +7 -7
  103. package/dist/cli/suite.js.map +1 -1
  104. package/dist/cli/verify.js +7 -7
  105. package/dist/cli/verify.js.map +1 -1
  106. package/dist/consent/consent.js +162 -5
  107. package/dist/consent/consent.js.map +1 -1
  108. package/dist/context/detect.js +55 -18
  109. package/dist/context/detect.js.map +1 -1
  110. package/dist/context/findApps.js +22 -8
  111. package/dist/context/findApps.js.map +1 -1
  112. package/dist/context/projectRoot.js +174 -19
  113. package/dist/context/projectRoot.js.map +1 -1
  114. package/dist/context/scan.js +1 -1
  115. package/dist/context/scan.js.map +1 -1
  116. package/dist/core/capabilityGroups.js +90 -0
  117. package/dist/core/capabilityGroups.js.map +1 -0
  118. package/dist/core/target.js +10 -8
  119. package/dist/core/target.js.map +1 -1
  120. package/dist/core/targetPlan.js +160 -39
  121. package/dist/core/targetPlan.js.map +1 -1
  122. package/dist/drivers/DirectDriver.js +317 -43
  123. package/dist/drivers/DirectDriver.js.map +1 -1
  124. package/dist/drivers/SimctlDriver.js +124 -8
  125. package/dist/drivers/SimctlDriver.js.map +1 -1
  126. package/dist/drivers/WdaDriver.js +365 -55
  127. package/dist/drivers/WdaDriver.js.map +1 -1
  128. package/dist/explore/candidates.js +7 -3
  129. package/dist/explore/candidates.js.map +1 -1
  130. package/dist/explore/graph.js +15 -6
  131. package/dist/explore/graph.js.map +1 -1
  132. package/dist/explore/memory.js +4 -1
  133. package/dist/explore/memory.js.map +1 -1
  134. package/dist/explore/planner.js +54 -9
  135. package/dist/explore/planner.js.map +1 -1
  136. package/dist/explore/policy.js +11 -6
  137. package/dist/explore/policy.js.map +1 -1
  138. package/dist/explore/runner.js +363 -190
  139. package/dist/explore/runner.js.map +1 -1
  140. package/dist/explore/signatures.js +4 -2
  141. package/dist/explore/signatures.js.map +1 -1
  142. package/dist/explore/suite.js +3 -1
  143. package/dist/explore/suite.js.map +1 -1
  144. package/dist/featureTesting/executionBootstrap.js +137 -29
  145. package/dist/featureTesting/executionBootstrap.js.map +1 -1
  146. package/dist/featureTesting/featureMap.js +6 -3
  147. package/dist/featureTesting/featureMap.js.map +1 -1
  148. package/dist/featureTesting/featureScope.js +101 -20
  149. package/dist/featureTesting/featureScope.js.map +1 -1
  150. package/dist/featureTesting/mapFeatureScope.js +44 -15
  151. package/dist/featureTesting/mapFeatureScope.js.map +1 -1
  152. package/dist/featureTesting/objectiveModel.js +15 -11
  153. package/dist/featureTesting/objectiveModel.js.map +1 -1
  154. package/dist/featureTesting/resultMerge.js +16 -8
  155. package/dist/featureTesting/resultMerge.js.map +1 -1
  156. package/dist/featureTesting/sources.js +8 -5
  157. package/dist/featureTesting/sources.js.map +1 -1
  158. package/dist/featureTesting/suiteBridge.js +8 -2
  159. package/dist/featureTesting/suiteBridge.js.map +1 -1
  160. package/dist/featureTesting/synonyms.js +32 -4
  161. package/dist/featureTesting/synonyms.js.map +1 -1
  162. package/dist/featureTesting/testCaseFactory.js +27 -15
  163. package/dist/featureTesting/testCaseFactory.js.map +1 -1
  164. package/dist/featureTesting/testPlan.js +34 -12
  165. package/dist/featureTesting/testPlan.js.map +1 -1
  166. package/dist/firstRun/authStateMachine.js +1 -1
  167. package/dist/firstRun/authStateMachine.js.map +1 -1
  168. package/dist/firstRun/classifyScreen.js +9 -6
  169. package/dist/firstRun/classifyScreen.js.map +1 -1
  170. package/dist/firstRun/firstRunPlanner.js +16 -13
  171. package/dist/firstRun/firstRunPlanner.js.map +1 -1
  172. package/dist/firstRun/firstRunRunner.js +92 -31
  173. package/dist/firstRun/firstRunRunner.js.map +1 -1
  174. package/dist/firstRun/generatedDataPolicy.js +25 -15
  175. package/dist/firstRun/generatedDataPolicy.js.map +1 -1
  176. package/dist/firstRun/inputPlanner.js +45 -11
  177. package/dist/firstRun/inputPlanner.js.map +1 -1
  178. package/dist/firstRun/onboardingStateMachine.js +1 -1
  179. package/dist/firstRun/onboardingStateMachine.js.map +1 -1
  180. package/dist/firstRun/paywallPolicy.js +3 -3
  181. package/dist/firstRun/paywallPolicy.js.map +1 -1
  182. package/dist/firstRun/types.js +1 -1
  183. package/dist/firstRun/types.js.map +1 -1
  184. package/dist/fixtures/catalog.js +72 -9
  185. package/dist/fixtures/catalog.js.map +1 -1
  186. package/dist/fixtures/load.js +50 -0
  187. package/dist/fixtures/load.js.map +1 -0
  188. package/dist/flows/discover.js +2 -2
  189. package/dist/flows/discover.js.map +1 -1
  190. package/dist/flows/generate.js +68 -17
  191. package/dist/flows/generate.js.map +1 -1
  192. package/dist/flows/lint.js +88 -14
  193. package/dist/flows/lint.js.map +1 -1
  194. package/dist/flows/pack.js +21 -5
  195. package/dist/flows/pack.js.map +1 -1
  196. package/dist/flows/paths.js +57 -0
  197. package/dist/flows/paths.js.map +1 -0
  198. package/dist/flows/repair.js +176 -37
  199. package/dist/flows/repair.js.map +1 -1
  200. package/dist/flows/run.js +308 -99
  201. package/dist/flows/run.js.map +1 -1
  202. package/dist/flows/schema.js +107 -25
  203. package/dist/flows/schema.js.map +1 -1
  204. package/dist/flows/seedExec.js +8 -4
  205. package/dist/flows/seedExec.js.map +1 -1
  206. package/dist/flows/templates.js +5 -5
  207. package/dist/index.js +50 -8
  208. package/dist/index.js.map +1 -1
  209. package/dist/ios/signing.js +32 -3
  210. package/dist/ios/signing.js.map +1 -1
  211. package/dist/issues/classify.js +28 -20
  212. package/dist/issues/classify.js.map +1 -1
  213. package/dist/issues/fingerprint.js +35 -9
  214. package/dist/issues/fingerprint.js.map +1 -1
  215. package/dist/issues/index.js +93 -46
  216. package/dist/issues/index.js.map +1 -1
  217. package/dist/issues/metrics.js +6 -5
  218. package/dist/issues/metrics.js.map +1 -1
  219. package/dist/issues/recurrence.js +35 -8
  220. package/dist/issues/recurrence.js.map +1 -1
  221. package/dist/issues/report.js +12 -8
  222. package/dist/issues/report.js.map +1 -1
  223. package/dist/issues/reportBridge.js +40 -9
  224. package/dist/issues/reportBridge.js.map +1 -1
  225. package/dist/issues/schema.js +2 -2
  226. package/dist/issues/schema.js.map +1 -1
  227. package/dist/issues/sourceRevision.js +2 -2
  228. package/dist/issues/sourceRevision.js.map +1 -1
  229. package/dist/issues/store.js +110 -32
  230. package/dist/issues/store.js.map +1 -1
  231. package/dist/lib/abortScope.js +48 -0
  232. package/dist/lib/abortScope.js.map +1 -0
  233. package/dist/lib/android.js +84 -8
  234. package/dist/lib/android.js.map +1 -1
  235. package/dist/lib/coordSpace.js +1 -1
  236. package/dist/lib/coordSpace.js.map +1 -1
  237. package/dist/lib/device.js +53 -12
  238. package/dist/lib/device.js.map +1 -1
  239. package/dist/lib/gestures.js +141 -0
  240. package/dist/lib/gestures.js.map +1 -0
  241. package/dist/lib/gitignore.js +4 -3
  242. package/dist/lib/gitignore.js.map +1 -1
  243. package/dist/lib/image.js +12 -3
  244. package/dist/lib/image.js.map +1 -1
  245. package/dist/lib/lockfile.js +399 -0
  246. package/dist/lib/lockfile.js.map +1 -0
  247. package/dist/lib/needsInput.js +9 -6
  248. package/dist/lib/needsInput.js.map +1 -1
  249. package/dist/lib/png.js +4 -3
  250. package/dist/lib/png.js.map +1 -1
  251. package/dist/lib/redact.js +170 -9
  252. package/dist/lib/redact.js.map +1 -1
  253. package/dist/lib/result.js +94 -10
  254. package/dist/lib/result.js.map +1 -1
  255. package/dist/lib/schemaHash.js +7 -5
  256. package/dist/lib/schemaHash.js.map +1 -1
  257. package/dist/lib/sensitive.js +6 -3
  258. package/dist/lib/sensitive.js.map +1 -1
  259. package/dist/lib/simctl.js +3 -3
  260. package/dist/lib/simctl.js.map +1 -1
  261. package/dist/lib/spawn.js +78 -17
  262. package/dist/lib/spawn.js.map +1 -1
  263. package/dist/lib/toolAnnotations.js +114 -0
  264. package/dist/lib/toolAnnotations.js.map +1 -0
  265. package/dist/lib/wda.js +321 -25
  266. package/dist/lib/wda.js.map +1 -1
  267. package/dist/lib/wdaConfig.js +12 -5
  268. package/dist/lib/wdaConfig.js.map +1 -1
  269. package/dist/lib/wdaTune.js +52 -23
  270. package/dist/lib/wdaTune.js.map +1 -1
  271. package/dist/mobileAudit/checks.js +150 -28
  272. package/dist/mobileAudit/checks.js.map +1 -1
  273. package/dist/mobileAudit/evidence.js +4 -4
  274. package/dist/mobileAudit/evidence.js.map +1 -1
  275. package/dist/mobileAudit/profiles.js +121 -20
  276. package/dist/mobileAudit/profiles.js.map +1 -1
  277. package/dist/mobileAudit/results.js +9 -4
  278. package/dist/mobileAudit/results.js.map +1 -1
  279. package/dist/mobileAudit/runner.js +214 -35
  280. package/dist/mobileAudit/runner.js.map +1 -1
  281. package/dist/oracle/auth.js +1 -1
  282. package/dist/oracle/auth.js.map +1 -1
  283. package/dist/oracle/failures.js +1085 -145
  284. package/dist/oracle/failures.js.map +1 -1
  285. package/dist/oracle/health.js +148 -26
  286. package/dist/oracle/health.js.map +1 -1
  287. package/dist/oracle/locator.js +148 -19
  288. package/dist/oracle/locator.js.map +1 -1
  289. package/dist/oracle/record.js +3 -3
  290. package/dist/oracle/record.js.map +1 -1
  291. package/dist/orchestration/envelope.js +2 -2
  292. package/dist/orchestration/envelope.js.map +1 -1
  293. package/dist/orchestration/goal.js +7 -13
  294. package/dist/orchestration/goal.js.map +1 -1
  295. package/dist/orchestration/testThis/execute.js +167 -0
  296. package/dist/orchestration/testThis/execute.js.map +1 -0
  297. package/dist/orchestration/testThis/pipeline.js +413 -0
  298. package/dist/orchestration/testThis/pipeline.js.map +1 -0
  299. package/dist/orchestration/testThis/plan.js +519 -0
  300. package/dist/orchestration/testThis/plan.js.map +1 -0
  301. package/dist/orchestration/testThis/sessionIntent.js +72 -0
  302. package/dist/orchestration/testThis/sessionIntent.js.map +1 -0
  303. package/dist/orchestration/testThis/terminal.js +136 -0
  304. package/dist/orchestration/testThis/terminal.js.map +1 -0
  305. package/dist/orchestration/testThis/types.js +12 -0
  306. package/dist/orchestration/testThis/types.js.map +1 -0
  307. package/dist/plan/plan.js +9 -9
  308. package/dist/plan/plan.js.map +1 -1
  309. package/dist/prompts/index.js +24 -24
  310. package/dist/prompts/index.js.map +1 -1
  311. package/dist/report/coverage.js +0 -1
  312. package/dist/report/coverage.js.map +1 -1
  313. package/dist/report/evidence.js.map +1 -1
  314. package/dist/report/export.js +449 -72
  315. package/dist/report/export.js.map +1 -1
  316. package/dist/report/findingsDedupe.js +41 -0
  317. package/dist/report/findingsDedupe.js.map +1 -0
  318. package/dist/report/flake.js +13 -14
  319. package/dist/report/flake.js.map +1 -1
  320. package/dist/report/history.js +72 -38
  321. package/dist/report/history.js.map +1 -1
  322. package/dist/report/policy.js +18 -7
  323. package/dist/report/policy.js.map +1 -1
  324. package/dist/report/qaLevel.js +10 -16
  325. package/dist/report/qaLevel.js.map +1 -1
  326. package/dist/report/readiness.js +42 -12
  327. package/dist/report/readiness.js.map +1 -1
  328. package/dist/report/sarifSources.js +160 -0
  329. package/dist/report/sarifSources.js.map +1 -0
  330. package/dist/report/summary.js +2 -2
  331. package/dist/report/summary.js.map +1 -1
  332. package/dist/report/testCatalog.js +4 -4
  333. package/dist/report/testCatalog.js.map +1 -1
  334. package/dist/report/timing.js +23 -23
  335. package/dist/report/timing.js.map +1 -1
  336. package/dist/report/toolHealth.js +124 -0
  337. package/dist/report/toolHealth.js.map +1 -0
  338. package/dist/server.js +501 -69
  339. package/dist/server.js.map +1 -1
  340. package/dist/services/automationGenerate.js +8 -2
  341. package/dist/services/automationGenerate.js.map +1 -1
  342. package/dist/services/build.js +10 -4
  343. package/dist/services/build.js.map +1 -1
  344. package/dist/services/flowGenerate.js +75 -0
  345. package/dist/services/flowGenerate.js.map +1 -0
  346. package/dist/services/preflight.js +40 -8
  347. package/dist/services/preflight.js.map +1 -1
  348. package/dist/services/prepareAndroid.js +92 -18
  349. package/dist/services/prepareAndroid.js.map +1 -1
  350. package/dist/services/prepareIos.js +94 -17
  351. package/dist/services/prepareIos.js.map +1 -1
  352. package/dist/services/report.js +271 -80
  353. package/dist/services/report.js.map +1 -1
  354. package/dist/services/smoke.js +68 -22
  355. package/dist/services/smoke.js.map +1 -1
  356. package/dist/services/suiteGenerate.js +43 -6
  357. package/dist/services/suiteGenerate.js.map +1 -1
  358. package/dist/services/testSuiteKnowledge.js +78 -33
  359. package/dist/services/testSuiteKnowledge.js.map +1 -1
  360. package/dist/session/attach.js +284 -4
  361. package/dist/session/attach.js.map +1 -1
  362. package/dist/session/processRegistry.js +433 -0
  363. package/dist/session/processRegistry.js.map +1 -0
  364. package/dist/session/progress.js +1 -1
  365. package/dist/session/progress.js.map +1 -1
  366. package/dist/session/retention.js +201 -0
  367. package/dist/session/retention.js.map +1 -0
  368. package/dist/session/store.js +459 -59
  369. package/dist/session/store.js.map +1 -1
  370. package/dist/snapshot/overlays.js +60 -10
  371. package/dist/snapshot/overlays.js.map +1 -1
  372. package/dist/snapshot/parse.js +30 -12
  373. package/dist/snapshot/parse.js.map +1 -1
  374. package/dist/snapshot/present.js +36 -6
  375. package/dist/snapshot/present.js.map +1 -1
  376. package/dist/snapshot/settle.js +39 -9
  377. package/dist/snapshot/settle.js.map +1 -1
  378. package/dist/state/consent.js +99 -0
  379. package/dist/state/consent.js.map +1 -0
  380. package/dist/state/profile.js +82 -11
  381. package/dist/state/profile.js.map +1 -1
  382. package/dist/suite/compile.js +15 -6
  383. package/dist/suite/compile.js.map +1 -1
  384. package/dist/suite/lint.js +22 -4
  385. package/dist/suite/lint.js.map +1 -1
  386. package/dist/suite/pom.js +75 -44
  387. package/dist/suite/pom.js.map +1 -1
  388. package/dist/suite/secretGuard.js +266 -0
  389. package/dist/suite/secretGuard.js.map +1 -0
  390. package/dist/suite/testcase.js +15 -11
  391. package/dist/suite/testcase.js.map +1 -1
  392. package/dist/testSuite/exporter.js +7 -3
  393. package/dist/testSuite/exporter.js.map +1 -1
  394. package/dist/testSuite/generator.js +43 -14
  395. package/dist/testSuite/generator.js.map +1 -1
  396. package/dist/testSuite/history.js +1 -1
  397. package/dist/testSuite/history.js.map +1 -1
  398. package/dist/testSuite/issueLinks.js +3 -3
  399. package/dist/testSuite/issueLinks.js.map +1 -1
  400. package/dist/testSuite/lint.js +4 -4
  401. package/dist/testSuite/lint.js.map +1 -1
  402. package/dist/testSuite/merge.js +13 -7
  403. package/dist/testSuite/merge.js.map +1 -1
  404. package/dist/testSuite/schema.js +21 -16
  405. package/dist/testSuite/schema.js.map +1 -1
  406. package/dist/testSuite/store.js +12 -4
  407. package/dist/testSuite/store.js.map +1 -1
  408. package/dist/testSuite/traceability.js +2 -2
  409. package/dist/testSuite/traceability.js.map +1 -1
  410. package/dist/tools/act.js +868 -174
  411. package/dist/tools/act.js.map +1 -1
  412. package/dist/tools/agent.js +521 -112
  413. package/dist/tools/agent.js.map +1 -1
  414. package/dist/tools/appControl.js +82 -19
  415. package/dist/tools/appControl.js.map +1 -1
  416. package/dist/tools/appMap.js +393 -189
  417. package/dist/tools/appMap.js.map +1 -1
  418. package/dist/tools/build.js +92 -51
  419. package/dist/tools/build.js.map +1 -1
  420. package/dist/tools/bundletool.js +141 -40
  421. package/dist/tools/bundletool.js.map +1 -1
  422. package/dist/tools/clearOverlay.js +98 -18
  423. package/dist/tools/clearOverlay.js.map +1 -1
  424. package/dist/tools/device.js +108 -19
  425. package/dist/tools/device.js.map +1 -1
  426. package/dist/tools/doctor.js +98 -35
  427. package/dist/tools/doctor.js.map +1 -1
  428. package/dist/tools/explore.js +110 -42
  429. package/dist/tools/explore.js.map +1 -1
  430. package/dist/tools/featureTesting.js +152 -130
  431. package/dist/tools/featureTesting.js.map +1 -1
  432. package/dist/tools/firstRun.js +94 -66
  433. package/dist/tools/firstRun.js.map +1 -1
  434. package/dist/tools/flow.js +347 -132
  435. package/dist/tools/flow.js.map +1 -1
  436. package/dist/tools/flowRepair.js +42 -10
  437. package/dist/tools/flowRepair.js.map +1 -1
  438. package/dist/tools/generate.js +199 -0
  439. package/dist/tools/generate.js.map +1 -0
  440. package/dist/tools/getArtifact.js +37 -8
  441. package/dist/tools/getArtifact.js.map +1 -1
  442. package/dist/tools/health.js +17 -12
  443. package/dist/tools/health.js.map +1 -1
  444. package/dist/tools/ios.js +148 -194
  445. package/dist/tools/ios.js.map +1 -1
  446. package/dist/tools/issues.js +256 -171
  447. package/dist/tools/issues.js.map +1 -1
  448. package/dist/tools/jobs.js +55 -11
  449. package/dist/tools/jobs.js.map +1 -1
  450. package/dist/tools/metro.js +84 -38
  451. package/dist/tools/metro.js.map +1 -1
  452. package/dist/tools/mobileAudit.js +83 -26
  453. package/dist/tools/mobileAudit.js.map +1 -1
  454. package/dist/tools/network.js +36 -14
  455. package/dist/tools/network.js.map +1 -1
  456. package/dist/tools/note.js +31 -17
  457. package/dist/tools/note.js.map +1 -1
  458. package/dist/tools/prepareIosTarget.js +31 -14
  459. package/dist/tools/prepareIosTarget.js.map +1 -1
  460. package/dist/tools/prepareTarget.js +193 -47
  461. package/dist/tools/prepareTarget.js.map +1 -1
  462. package/dist/tools/report.js +16 -8
  463. package/dist/tools/report.js.map +1 -1
  464. package/dist/tools/resolveArtifact.js +12 -12
  465. package/dist/tools/resolveArtifact.js.map +1 -1
  466. package/dist/tools/resolveTarget.js +81 -18
  467. package/dist/tools/resolveTarget.js.map +1 -1
  468. package/dist/tools/screenRecord.js +85 -20
  469. package/dist/tools/screenRecord.js.map +1 -1
  470. package/dist/tools/screenshot.js +42 -18
  471. package/dist/tools/screenshot.js.map +1 -1
  472. package/dist/tools/smoke.js +29 -12
  473. package/dist/tools/smoke.js.map +1 -1
  474. package/dist/tools/snapshot.js +157 -107
  475. package/dist/tools/snapshot.js.map +1 -1
  476. package/dist/tools/startSession.js +117 -84
  477. package/dist/tools/startSession.js.map +1 -1
  478. package/dist/tools/suite.js +391 -310
  479. package/dist/tools/suite.js.map +1 -1
  480. package/dist/tools/testSuite.js +112 -36
  481. package/dist/tools/testSuite.js.map +1 -1
  482. package/dist/tools/testThis.js +35 -802
  483. package/dist/tools/testThis.js.map +1 -1
  484. package/dist/tools/visual.js +698 -116
  485. package/dist/tools/visual.js.map +1 -1
  486. package/dist/tools/wait.js +9 -23
  487. package/dist/tools/wait.js.map +1 -1
  488. package/dist/tools/wda.js +312 -54
  489. package/dist/tools/wda.js.map +1 -1
  490. package/dist/version.js +37 -64
  491. package/dist/version.js.map +1 -1
  492. package/dist/visual/ocr.js +65 -8
  493. package/dist/visual/ocr.js.map +1 -1
  494. package/dist/visual/provider.js +87 -15
  495. package/dist/visual/provider.js.map +1 -1
  496. package/docs/README.md +24 -10
  497. package/docs/ci-reports.md +328 -0
  498. package/docs/concepts.md +227 -0
  499. package/docs/flows.md +153 -0
  500. package/docs/mcp-server.md +210 -104
  501. package/docs/physical-devices.md +84 -0
  502. package/docs/tools.md +808 -217
  503. package/package.json +16 -6
  504. package/dist/appMap/diff.js +0 -60
  505. package/dist/appMap/diff.js.map +0 -1
  506. package/dist/automation/maestroIr.js +0 -282
  507. package/dist/automation/maestroIr.js.map +0 -1
  508. package/dist/interop/maestro.js +0 -151
  509. package/dist/interop/maestro.js.map +0 -1
  510. package/dist/tools/assertVisual.js +0 -74
  511. package/dist/tools/assertVisual.js.map +0 -1
  512. package/dist/tools/automationGenerate.js +0 -394
  513. package/dist/tools/automationGenerate.js.map +0 -1
  514. package/dist/tools/capabilities.js +0 -209
  515. package/dist/tools/capabilities.js.map +0 -1
  516. package/dist/tools/detectContext.js +0 -41
  517. package/dist/tools/detectContext.js.map +0 -1
  518. package/dist/tools/flowGenerate.js +0 -55
  519. package/dist/tools/flowGenerate.js.map +0 -1
  520. package/dist/tools/history.js +0 -56
  521. package/dist/tools/history.js.map +0 -1
  522. package/dist/tools/idling.js +0 -104
  523. package/dist/tools/idling.js.map +0 -1
  524. package/dist/tools/inputCapabilities.js +0 -30
  525. package/dist/tools/inputCapabilities.js.map +0 -1
  526. package/dist/tools/locator.js +0 -57
  527. package/dist/tools/locator.js.map +0 -1
  528. package/dist/tools/maestro.js +0 -78
  529. package/dist/tools/maestro.js.map +0 -1
  530. package/dist/tools/permissions.js +0 -149
  531. package/dist/tools/permissions.js.map +0 -1
  532. package/dist/tools/plan.js +0 -49
  533. package/dist/tools/plan.js.map +0 -1
  534. package/dist/tools/screenInfo.js +0 -70
  535. package/dist/tools/screenInfo.js.map +0 -1
  536. package/dist/tools/seed.js +0 -101
  537. package/dist/tools/seed.js.map +0 -1
  538. package/dist/tools/state.js +0 -170
  539. package/dist/tools/state.js.map +0 -1
  540. package/dist/tools/visualText.js +0 -61
  541. package/dist/tools/visualText.js.map +0 -1
@@ -0,0 +1,136 @@
1
+ // qa_test_this terminal-state assembly: every terminal state (completed OR blocked) generates a
2
+ // report artifact (Milestone B) and lands the uniform TerminalEnvelope on the job result, so the
3
+ // outcome is summarizable from structured output without log parsing.
4
+ import { buildTerminalEnvelope, typedBlockerFromCode } from '../envelope.js';
5
+ import { generateSessionReport } from '../../services/report.js';
6
+ import { startProgress } from '../../session/progress.js';
7
+ import { log } from '../../lib/logger.js';
8
+ /** Every terminal state (completed OR blocked) generates a report artifact (Milestone B). */
9
+ export function createFinisher(ctx) {
10
+ const { sessions, session, job, a, attempted, artifacts, upd } = ctx;
11
+ return async (state, failureCode, summary, extra = {}) => {
12
+ if (a.testThisPlanMutation) {
13
+ sessions.recordMutation(session, {
14
+ tool: 'qa_test_this',
15
+ action: 'test_this_plan',
16
+ risk: a.testThisPlanMutation.risk,
17
+ target: a.testThisPlanMutation.affects,
18
+ consent: a.mutationConsent,
19
+ status: state === 'blocked' || state === 'unsafe' ? 'blocked' : 'executed',
20
+ detail: failureCode,
21
+ });
22
+ }
23
+ const reportProg = startProgress(sessions, session, job, 'reporting', { statusText: 'Generating the session report.' });
24
+ let reportUri;
25
+ let manifestUri;
26
+ let appVerdict;
27
+ let coverageVerdict;
28
+ let toolVerdict;
29
+ const suiteForReport = ctx.getSuiteForReport();
30
+ const suiteOpt = suiteForReport
31
+ ? {
32
+ generated: !suiteForReport.skipped,
33
+ skippedReason: suiteForReport.skippedReason,
34
+ name: suiteForReport.name,
35
+ written: suiteForReport.written,
36
+ compiledFlows: suiteForReport.compiledFlows,
37
+ suiteRunnable: suiteForReport.suiteRunnable,
38
+ readinessLabels: suiteForReport.readinessLabels,
39
+ }
40
+ : undefined;
41
+ try {
42
+ const r = await generateSessionReport(sessions, session, {
43
+ format: 'summary',
44
+ includeCurrentDump: true,
45
+ suite: suiteOpt,
46
+ });
47
+ reportUri = r.reportUri;
48
+ manifestUri = r.manifestUri;
49
+ sessions.milestone(session, 'report_generated'); // persisted flag for qa_status's ladder
50
+ if (!artifacts.includes(reportUri))
51
+ artifacts.push(reportUri);
52
+ appVerdict = r.report.appVerdict;
53
+ coverageVerdict = r.report.coverageVerdict;
54
+ toolVerdict = r.report.toolVerdict;
55
+ }
56
+ catch (e) {
57
+ log('warn', 'test_this report generation failed', { err: String(e) });
58
+ }
59
+ reportProg.done('Report ready.');
60
+ const native = session.findings.some((f) => f.layer === 'native' && f.severity === 'high') ? 'error' : 'OK';
61
+ const app = session.findings.some((f) => f.layer === 'app' && f.severity === 'high')
62
+ ? 'error'
63
+ : session.findings.some((f) => f.layer === 'app' && f.severity === 'medium')
64
+ ? 'degraded'
65
+ : 'OK';
66
+ // The report already exists, so point the agent AT it (fetch/open), not back at qa_report.
67
+ const question = extra.needsInput;
68
+ const nextRecommendedAction = state === 'needs_input' && question?.resume
69
+ ? {
70
+ tool: question.resume.tool,
71
+ args: question.resume.args,
72
+ why: `Ask the user exactly this one question, then resume with their answer: ${question.question ?? question.kind ?? 'input needed'}`,
73
+ }
74
+ : state === 'completed'
75
+ ? reportUri
76
+ ? {
77
+ tool: 'qa_get_artifact',
78
+ args: { uri: reportUri },
79
+ why: `Open the generated report (${reportUri})`,
80
+ }
81
+ : { tool: 'qa_report', args: { sessionId: session.id }, why: 'Generate the report' }
82
+ : {
83
+ tool: 'qa_explain_blocker',
84
+ // sessionId lets qa_explain_blocker stamp the blocker as explained, so qa_status moves on.
85
+ args: { failureCode: failureCode ?? 'UNKNOWN', sessionId: session.id },
86
+ why: 'Understand the blocker and how to fix it',
87
+ };
88
+ // Uniform terminal envelope (Milestone B): summarizable from structured output, no log parsing.
89
+ const envelope = buildTerminalEnvelope({
90
+ state,
91
+ sessionId: session.id,
92
+ jobId: job.jobId,
93
+ summary,
94
+ attempted,
95
+ workaroundsAttempted: session.workarounds,
96
+ artifactChoice: a.artifactChoice,
97
+ targetChoice: a.targetChoice,
98
+ verdicts: {
99
+ ...(appVerdict ? { app: appVerdict } : {}),
100
+ ...(coverageVerdict ? { coverage: coverageVerdict } : {}),
101
+ ...(toolVerdict ? { tool: toolVerdict } : {}),
102
+ },
103
+ blockers: state === 'completed' || state === 'needs_input' || !failureCode ? [] : [typedBlockerFromCode(failureCode)],
104
+ reportUri: reportUri ?? null,
105
+ nextRecommendedAction,
106
+ });
107
+ upd({
108
+ // needs_input is a clean pause (the run did what it could and asks ONE question), not a failure.
109
+ status: state === 'completed' || state === 'needs_input' ? 'done' : 'failed',
110
+ progress: state,
111
+ result: {
112
+ ...envelope,
113
+ // Pre-launch static app map URI is present in EVERY terminal state, including blocked (Fix 1).
114
+ appMapUri: a.appMapUri,
115
+ goal: a.goal,
116
+ requiredOutputs: a.requiredOutputs,
117
+ releaseGateRequested: a.releaseGate,
118
+ failureCode,
119
+ artifacts,
120
+ manifestUri,
121
+ health: { native, app },
122
+ inputsProvided: session.inputs.map((i) => i.varName),
123
+ // Compact report pointer: verdict one-liner + URI; the full report lives at reportUri.
124
+ reportSummary: reportUri
125
+ ? `${appVerdict?.status ?? 'n/a'} app · ${coverageVerdict?.status ?? 'n/a'} coverage · ${toolVerdict?.status ?? 'n/a'} tool. Read ${reportUri}`
126
+ : null,
127
+ notes: session.notes.length,
128
+ findings: session.findings.length,
129
+ ...extra,
130
+ },
131
+ resultText: summary + (reportUri ? `\nreport: ${reportUri}` : ''),
132
+ endedAt: Date.now(),
133
+ });
134
+ };
135
+ }
136
+ //# sourceMappingURL=terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/orchestration/testThis/terminal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ // Shared types for the qa_test_this orchestration state machine (split out of
2
+ // src/tools/testThis.ts). Pure declarations + tiny helpers, no side effects.
3
+ export const selToPlatform = {
4
+ 'android-emulator': 'android',
5
+ 'android-real': 'android',
6
+ 'ios-simulator': 'ios',
7
+ 'ios-real': 'ios',
8
+ };
9
+ export function isAndroidEmulatorSerial(serial) {
10
+ return /^emulator-\d+/.test(serial);
11
+ }
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/orchestration/testThis/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6EAA6E;AA0B7E,MAAM,CAAC,MAAM,aAAa,GAA2C;IACnE,kBAAkB,EAAE,SAAS;IAC7B,cAAc,EAAE,SAAS;IACzB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,OAAO,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC"}
package/dist/plan/plan.js CHANGED
@@ -1,8 +1,8 @@
1
- // qa_plan core (PHASE3-PLAN §3.2) — PURE synthesis. Given what we detected about the
1
+ // Workflow-plan core (qa_resolve_target include:["plan"]): PURE synthesis. Given what we detected about the
2
2
  // project + what the session declared (fixtures, observed auth, prepared appId), produce a
3
3
  // safe test plan: which workflows are READY, which are BLOCKED (and why + how to unblock),
4
4
  // and which are UNSAFE (and why). No device I/O lives here, so it is fully unit-testable;
5
- // the tool wrapper (src/tools/plan.ts) gathers the inputs and calls buildPlan().
5
+ // the tool wrapper (src/tools/resolveTarget.ts workflowPlan) gathers the inputs and calls buildPlan().
6
6
  const LOGIN_FIXTURE = /login|auth|account|credential|sign[\s_-]?in/i;
7
7
  function isDebugRN(fw) {
8
8
  return fw === 'expo' || fw === 'bare-react-native';
@@ -37,7 +37,7 @@ export function buildPlan(i) {
37
37
  }
38
38
  return null;
39
39
  };
40
- // launch_smoke — the cheapest always-valuable check.
40
+ // launch_smoke: the cheapest always-valuable check.
41
41
  {
42
42
  const g = gateEnv('launch_smoke', 'guardrail');
43
43
  if (g)
@@ -45,7 +45,7 @@ export function buildPlan(i) {
45
45
  else
46
46
  ready.push({ workflow: 'launch_smoke', budgetProfile: 'guardrail', requires: [] });
47
47
  }
48
- // visual_smoke — screenshot/landmark check for visual-only (map/canvas) screens.
48
+ // visual_smoke: screenshot/landmark check for visual-only (map/canvas) screens.
49
49
  {
50
50
  const g = gateEnv('visual_smoke', 'login_smoke');
51
51
  if (g)
@@ -53,7 +53,7 @@ export function buildPlan(i) {
53
53
  else
54
54
  ready.push({ workflow: 'visual_smoke', budgetProfile: 'login_smoke', requires: [] });
55
55
  }
56
- // login_smoke — needs a credential fixture on top of the env gate.
56
+ // login_smoke: needs a credential fixture on top of the env gate.
57
57
  {
58
58
  const g = gateEnv('login_smoke', 'login_smoke');
59
59
  if (g)
@@ -64,7 +64,7 @@ export function buildPlan(i) {
64
64
  budgetProfile: 'login_smoke',
65
65
  category: 'missing_test_data',
66
66
  requiredState: 'a test account (credentials)',
67
- recommendedSetup: 'Declare a fixture with a testAccount label (and provide TEST_EMAIL/TEST_PASSWORD via env), or add it to .swipium/fixtures.json.',
67
+ recommendedSetup: 'Declare a fixture with a testAccount label (and provide SWIPIUM_TEST_EMAIL/SWIPIUM_TEST_PASSWORD via env), or add it to .swipium/fixtures.json.',
68
68
  });
69
69
  }
70
70
  else {
@@ -80,7 +80,7 @@ export function buildPlan(i) {
80
80
  ready.push({ workflow: name, budgetProfile: 'full_smoke', requires: [] });
81
81
  }
82
82
  // Fixtures that declare an unmet requiredState surface as blocked workflows so "no saved
83
- // flight to delete" reads as setup guidance, not a failure (DESIGN §6 / qa_note semantics).
83
+ // flight to delete" reads as setup guidance, not a failure (qa_note semantics).
84
84
  for (const f of i.fixtures) {
85
85
  if (f.requiredState && !LOGIN_FIXTURE.test(f.name) && !f.testAccount) {
86
86
  blocked.push({
@@ -92,7 +92,7 @@ export function buildPlan(i) {
92
92
  });
93
93
  }
94
94
  }
95
- // UNSAFE — destructive actions that Swipium will refuse by default.
95
+ // UNSAFE: destructive actions that Swipium will refuse by default.
96
96
  if (isDebugRN(i.framework)) {
97
97
  unsafe.push({
98
98
  workflow: 'fresh_start',
@@ -115,7 +115,7 @@ export function buildPlan(i) {
115
115
  'Destructive exploration requires dry_run_destructive first, then candidate-bound approval with disposable test state.',
116
116
  ];
117
117
  if (i.auth.authedAtStart === false || i.auth.loginScreenSeen) {
118
- notes.push('A login screen was observed — authenticated workflows will need credentials.');
118
+ notes.push('A login screen was observed. Authenticated workflows will need credentials.');
119
119
  }
120
120
  for (const b of i.blockers)
121
121
  notes.push(b);
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/plan/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/plan/plan.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- // MCP prompts (PHASE3-PLAN §2.4 / §3.3) — the spec's third server capability (after tools +
1
+ // MCP prompts: the spec's third server capability (after tools +
2
2
  // resources). Prompts are reusable workflow templates a prompt-capable client (e.g. Claude)
3
3
  // can invoke by name, so common QA runs don't need a hand-written prompt each time.
4
4
  //
5
5
  // Design rules:
6
6
  // - Prompts are THIN: they only orchestrate tools that already exist. No privileged logic
7
- // lives here — consent stays server-side (security best-practices doc).
7
+ // lives here. Consent stays server-side (security best-practices doc).
8
8
  // - Clients that don't support prompts lose nothing: every step is "call <tool>", which the
9
9
  // agent can do directly. Nothing is prompt-only.
10
10
  //
@@ -18,20 +18,20 @@ export function registerPrompts(server) {
18
18
  description: 'Verify Swipium can test a project and report what (if anything) is blocking.',
19
19
  argsSchema: { projectRoot: z.string().optional().describe('Absolute path to the app project.') },
20
20
  }, ({ projectRoot }) => userText(`Check whether Swipium can test ${projectRoot ? `the project at ${projectRoot}` : 'this project'}.\n\n` +
21
- `1. Call qa_doctor to confirm the toolchain (adb/emulator/java) and that the client is not stale.\n` +
21
+ `1. Call qa_doctor to confirm the toolchain (Android SDK/emulator, and Xcode/simctl on macOS) and that the client is not stale.\n` +
22
22
  `2. Call qa_start_session${projectRoot ? ` { projectRoot: "${projectRoot}" }` : ''}.\n` +
23
- `3. Call qa_detect_context, then qa_plan with the sessionId.\n` +
24
- `4. Summarize: is it READY, PARTIAL, or BLOCKED? List the exact missing items (APK, device, credentials) and the recommended budget profile. Do not start testing yet.`));
23
+ `3. Call qa_resolve_target { sessionId, include: ["context", "plan"] }.\n` +
24
+ `4. Summarize: which workflows are READY, BLOCKED, or UNSAFE? List the exact missing items (APK, device, credentials) and the recommended budget profile. Do not start testing yet.`));
25
25
  server.registerPrompt('swipium_guardrail_validation', {
26
26
  title: 'Validate safety guardrails',
27
- description: 'Confirm Swipium refuses an unsafe destructive action (bundle-loss) on a debug RN/Expo build.',
27
+ description: 'Confirm Swipium refuses an unsafe destructive action (bundle-loss) on a debug RN/Expo Android build.',
28
28
  argsSchema: { projectRoot: z.string().optional() },
29
29
  }, ({ projectRoot }) => userText(`Validate Swipium's destructive-action guardrails (do NOT override them).\n\n` +
30
30
  `1. qa_start_session${projectRoot ? ` { projectRoot: "${projectRoot}", ` : ' { '}profile: "guardrail" }.\n` +
31
- `2. qa_plan — confirm fresh_start appears under UNSAFE with reason bundle_cache_loss for a debug RN/Expo build.\n` +
32
- `3. qa_prepare_target to get the app running.\n` +
33
- `4. Attempt qa_app_control { action: "fresh_start" } WITHOUT acknowledgeBundleRisk — expect a refusal (bundle_cache_loss), not execution.\n` +
34
- `5. qa_report and confirm destructiveGuardrail shows the action was refused, not executed. Report PASS only if it was refused.`));
31
+ `2. qa_resolve_target { sessionId, include: ["plan"] } and confirm fresh_start appears under UNSAFE with reason bundle_cache_loss for a debug RN/Expo build.\n` +
32
+ `3. qa_prepare_target { sessionId } to get the app running on an Android Emulator (approve consent for boot/install if prompted).\n` +
33
+ `4. Attempt qa_app_control { sessionId, action: "fresh_start" } WITHOUT acknowledgeBundleRisk. Expect a refusal (failureCode BUNDLE_LOSS_REFUSED), not execution.\n` +
34
+ `5. qa_report { sessionId } and confirm destructiveGuardrail shows the action was refused, not executed. Report PASS only if it was refused.`));
35
35
  server.registerPrompt('swipium_full_smoke', {
36
36
  title: 'Run a full smoke test',
37
37
  description: 'Plan, prepare, run the top ready workflows, and produce a report.',
@@ -41,11 +41,11 @@ export function registerPrompts(server) {
41
41
  },
42
42
  }, ({ projectRoot, appId }) => userText(`Run a full smoke test and produce a report a developer can act on.\n\n` +
43
43
  `1. qa_start_session${projectRoot ? ` { projectRoot: "${projectRoot}", ` : ' { '}profile: "full_smoke", responseMode: "compact" }.\n` +
44
- `2. qa_plan — pick the READY workflows; respect anything listed as UNSAFE.\n` +
45
- `3. qa_prepare_target${appId ? ` { appId: "${appId}" }` : ''} (approve consent for boot/install if prompted).\n` +
44
+ `2. qa_resolve_target { sessionId, include: ["plan"] } and pick the READY workflows; respect anything listed as UNSAFE.\n` +
45
+ `3. qa_prepare_target { sessionId${appId ? `, appId: "${appId}"` : ''} } (Android) or qa_prepare_ios_target { sessionId${appId ? `, bundleId: "${appId}"` : ''} } (iOS) (approve consent for boot/install if prompted).\n` +
46
46
  `4. For each ready workflow: drive it with qa_snapshot/qa_act, checking qa_check_health after key steps. Use qa_clear_overlay if a keyboard/dialog/banner blocks a target.\n` +
47
- `5. Record each result with qa_note (pass/fail/blocked + category). For visual-only screens use qa_assert_visual.\n` +
48
- `6. qa_report at the end. Summarize release risk and the single most important next action.`));
47
+ `5. Record each result with qa_note (sessionId, workflow, outcome pass/fail/blocked + category). For visual-only screens use qa_visual mode:"assert".\n` +
48
+ `6. qa_report { sessionId } at the end. Summarize release risk and the single most important next action.`));
49
49
  server.registerPrompt('swipium_bug_repro', {
50
50
  title: 'Reproduce and document a bug',
51
51
  description: 'Drive to a described bug, capture deterministic evidence, and file it as a structured outcome.',
@@ -54,20 +54,20 @@ export function registerPrompts(server) {
54
54
  projectRoot: z.string().optional(),
55
55
  },
56
56
  }, ({ bug, projectRoot }) => userText(`Reproduce and document this bug with evidence:\n"${bug}"\n\n` +
57
- `1. qa_start_session${projectRoot ? ` { projectRoot: "${projectRoot}", ` : ' { '}profile: "login_smoke" }, then qa_plan.\n` +
58
- `2. qa_prepare_target, then navigate toward the reported bug with qa_snapshot/qa_act.\n` +
59
- `3. At the failure, call qa_check_health (capture native vs app classification) and qa_screenshot for evidence.\n` +
60
- `4. Record qa_note { outcome: "fail", category: "app_bug", reason, artifactUris } — or "blocked"/"not_applicable" if you could not reach it, with the precondition.\n` +
61
- `5. qa_report. Include exact reproduction steps and the evidence artifact URIs so the report stands alone without the transcript.`));
57
+ `1. qa_start_session${projectRoot ? ` { projectRoot: "${projectRoot}", ` : ' { '}profile: "login_smoke" }, then qa_resolve_target { sessionId, include: ["plan"] }.\n` +
58
+ `2. qa_prepare_target (Android) or qa_prepare_ios_target (iOS) { sessionId }, then navigate toward the reported bug with qa_snapshot/qa_act.\n` +
59
+ `3. At the failure, call qa_check_health { sessionId } (native vs app classification) and qa_screenshot { sessionId, reason } for evidence (on a visual-only iOS screen, qa_visual mode:"assert").\n` +
60
+ `4. Record qa_note { sessionId, workflow, outcome: "fail", category: "app_bug", reason, artifactUris }. Use "blocked"/"not_applicable" if you could not reach it, with missingPrecondition.\n` +
61
+ `5. qa_report { sessionId }. Include exact reproduction steps and the evidence artifact URIs so the report stands alone without the transcript.`));
62
62
  server.registerPrompt('swipium_convert_run_to_flow', {
63
63
  title: 'Convert a run into a reusable flow',
64
64
  description: 'Draft a repeatable .swipium/flows/*.yaml from the steps you just performed, then validate it.',
65
65
  argsSchema: { name: z.string().optional().describe('Flow name, e.g. login-smoke.') },
66
66
  }, ({ name }) => userText(`Turn the workflow you just ran into a repeatable Swipium flow.\n\n` +
67
- `1. Write a flow YAML named "${name ?? 'my-flow'}" with: name, appId, budgetProfile, fixtures, and a steps list.\n` +
68
- `2. Use durable selectors: prefer text/id (e.g. tap: "Sign In") over @ref. Replace credentials with \${TEST_EMAIL}/\${TEST_PASSWORD} variables — never inline secrets.\n` +
69
- ` Available steps: prepareTarget, tap, tapAt, inputText, assertVisible, assertNotVisible, swipe, scrollTo, press, openUrl, wait.\n` +
70
- `3. Validate it with qa_flow_check { flowYaml: "<your yaml>" } and fix any reported errors.\n` +
71
- `4. Save it under .swipium/flows/${name ?? 'my-flow'}.yaml so qa_plan lists it and qa_flow_run can replay it.`));
67
+ `1. Call qa_generate { sessionId, target: "flow", name: "${name ?? 'my-flow'}" } to draft the flow YAML from the recorded actions (or write it by hand with: name, appId, budgetProfile, fixtures, and a steps list).\n` +
68
+ `2. Use durable selectors: prefer text/id (e.g. tap: "Sign In") over @ref. Replace credentials with \${SWIPIUM_TEST_EMAIL}/\${SWIPIUM_TEST_PASSWORD} variables. Never inline secrets.\n` +
69
+ ` Common steps: prepareTarget, tap, tapAt, inputText, assertVisible, assertNotVisible, swipe, scrollTo, press, openUrl, wait, clearOverlay (full list: docs/tools.md#flow-steps).\n` +
70
+ `3. Validate it with qa_flow_check { flowYaml: "<your yaml>" } and fix any reported errors (qa_generate also reports a durability grade + brittle steps).\n` +
71
+ `4. Save it under .swipium/flows/${name ?? 'my-flow'}.yaml (qa_generate save:true does this) so the workflow plan lists it and qa_flow_run can replay it.`));
72
72
  }
73
73
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,6 @@ export function coverageForSession(session) {
16
16
  return 'emulator/simulator coverage only';
17
17
  }
18
18
  export function automationBackendForSession(session) {
19
- const device = session.device ?? session.driver?.currentDevice?.();
20
19
  const kind = driverKind(session.driver);
21
20
  if (kind === 'direct') {
22
21
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/report/coverage.ts"],"names":[],"mappings":"AAUA,SAAS,UAAU,CAAC,MAA0B;IAC5C,OAAO,MAAM,EAAE,IAAI,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA2C;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC;IACnE,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM;YAAE,OAAO,iCAAiC,CAAC;QACtD,OAAO,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,oDAAoD,CAAC;IACzH,CAAC;IACD,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,+BAA+B,CAAC;IACjE,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,uCAAuC,CAAC;IACnE,OAAO,kCAAkC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAA2C;IACrF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC;IACnE,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,iCAAiC;YACvC,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,mDAAmD;SACjE,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,mBAAmB;YACzB,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,sCAAsC;SACpD,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,6BAA6B;YACnC,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,8FAA8F;SAC5G,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,8BAA8B;YACpC,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,iDAAiD;SAC/D,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,oCAAoC;KAClD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/report/coverage.ts"],"names":[],"mappings":"AAUA,SAAS,UAAU,CAAC,MAA0B;IAC5C,OAAO,MAAM,EAAE,IAAI,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA2C;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC;IACnE,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM;YAAE,OAAO,iCAAiC,CAAC;QACtD,OAAO,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,oDAAoD,CAAC;IACzH,CAAC;IACD,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,+BAA+B,CAAC;IACjE,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,uCAAuC,CAAC;IACnE,OAAO,kCAAkC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAA2C;IACrF,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,iCAAiC;YACvC,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,mDAAmD;SACjE,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,mBAAmB;YACzB,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,sCAAsC;SACpD,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,6BAA6B;YACnC,UAAU,EAAE,KAAK;YACjB,WAAW,EAAE,8FAA8F;SAC5G,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,8BAA8B;YACpC,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,iDAAiD;SAC/D,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,oCAAoC;KAClD,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/report/evidence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/report/evidence.ts"],"names":[],"mappings":"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"}