swipium 1.4.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (541) hide show
  1. package/CHANGELOG.md +313 -0
  2. package/README.md +175 -219
  3. package/THREAT_MODEL.md +223 -47
  4. package/dist/appMap/automationLink.js +39 -26
  5. package/dist/appMap/automationLink.js.map +1 -1
  6. package/dist/appMap/build.js +68 -20
  7. package/dist/appMap/build.js.map +1 -1
  8. package/dist/appMap/codeIndex.js +31 -5
  9. package/dist/appMap/codeIndex.js.map +1 -1
  10. package/dist/appMap/featureIndex.js +23 -5
  11. package/dist/appMap/featureIndex.js.map +1 -1
  12. package/dist/appMap/featureModel.js +44 -8
  13. package/dist/appMap/featureModel.js.map +1 -1
  14. package/dist/appMap/firstRunApply.js +24 -6
  15. package/dist/appMap/firstRunApply.js.map +1 -1
  16. package/dist/appMap/fsWalk.js +19 -2
  17. package/dist/appMap/fsWalk.js.map +1 -1
  18. package/dist/appMap/issues.js +10 -30
  19. package/dist/appMap/issues.js.map +1 -1
  20. package/dist/appMap/migrations.js +6 -6
  21. package/dist/appMap/migrations.js.map +1 -1
  22. package/dist/appMap/prelaunch.js +2 -2
  23. package/dist/appMap/prelaunch.js.map +1 -1
  24. package/dist/appMap/projectRegistry.js +83 -11
  25. package/dist/appMap/projectRegistry.js.map +1 -1
  26. package/dist/appMap/provenance.js +2 -2
  27. package/dist/appMap/provenance.js.map +1 -1
  28. package/dist/appMap/query.js +21 -5
  29. package/dist/appMap/query.js.map +1 -1
  30. package/dist/appMap/runtimeMerge.js +12 -5
  31. package/dist/appMap/runtimeMerge.js.map +1 -1
  32. package/dist/appMap/schema.js +1 -1
  33. package/dist/appMap/schema.js.map +1 -1
  34. package/dist/appMap/screenMatch.js +6 -2
  35. package/dist/appMap/screenMatch.js.map +1 -1
  36. package/dist/appMap/staticScan.js +151 -39
  37. package/dist/appMap/staticScan.js.map +1 -1
  38. package/dist/appMap/store.js +58 -85
  39. package/dist/appMap/store.js.map +1 -1
  40. package/dist/appMap/tsAstScan.js +34 -12
  41. package/dist/appMap/tsAstScan.js.map +1 -1
  42. package/dist/artifacts/bundletool.js +49 -12
  43. package/dist/artifacts/bundletool.js.map +1 -1
  44. package/dist/artifacts/resolve.js +41 -14
  45. package/dist/artifacts/resolve.js.map +1 -1
  46. package/dist/automation/capabilities.js +112 -30
  47. package/dist/automation/capabilities.js.map +1 -1
  48. package/dist/automation/gestures.js +6 -2
  49. package/dist/automation/gestures.js.map +1 -1
  50. package/dist/automation/plan.js +71 -23
  51. package/dist/automation/plan.js.map +1 -1
  52. package/dist/automation/report.js +15 -5
  53. package/dist/automation/report.js.map +1 -1
  54. package/dist/automation/selectors.js +22 -28
  55. package/dist/automation/selectors.js.map +1 -1
  56. package/dist/automation/types.js +1 -1
  57. package/dist/automation/types.js.map +1 -1
  58. package/dist/automation/waits.js +14 -8
  59. package/dist/automation/waits.js.map +1 -1
  60. package/dist/automation/webview.js +9 -3
  61. package/dist/automation/webview.js.map +1 -1
  62. package/dist/automationGen/appiumModel.js +16 -8
  63. package/dist/automationGen/appiumModel.js.map +1 -1
  64. package/dist/automationGen/ciEmitter.js +6 -6
  65. package/dist/automationGen/ciEmitter.js.map +1 -1
  66. package/dist/automationGen/identifiers.js +224 -0
  67. package/dist/automationGen/identifiers.js.map +1 -0
  68. package/dist/automationGen/jsEmitter.js +288 -121
  69. package/dist/automationGen/jsEmitter.js.map +1 -1
  70. package/dist/automationGen/packagePatch.js +2 -2
  71. package/dist/automationGen/packagePatch.js.map +1 -1
  72. package/dist/automationGen/platformResolve.js +36 -0
  73. package/dist/automationGen/platformResolve.js.map +1 -0
  74. package/dist/automationGen/projectProfile.js +76 -27
  75. package/dist/automationGen/projectProfile.js.map +1 -1
  76. package/dist/automationGen/pythonEmitter.js +278 -107
  77. package/dist/automationGen/pythonEmitter.js.map +1 -1
  78. package/dist/automationGen/readmeEmitter.js +7 -6
  79. package/dist/automationGen/readmeEmitter.js.map +1 -1
  80. package/dist/automationGen/run.js +388 -0
  81. package/dist/automationGen/run.js.map +1 -0
  82. package/dist/automationGen/suitePlan.js +17 -10
  83. package/dist/automationGen/suitePlan.js.map +1 -1
  84. package/dist/automationGen/validation.js +52 -12
  85. package/dist/automationGen/validation.js.map +1 -1
  86. package/dist/build/parseBuildLog.js +235 -31
  87. package/dist/build/parseBuildLog.js.map +1 -1
  88. package/dist/build/plan.js +39 -18
  89. package/dist/build/plan.js.map +1 -1
  90. package/dist/ci/preflight.js +13 -4
  91. package/dist/ci/preflight.js.map +1 -1
  92. package/dist/cli/gc.js +74 -0
  93. package/dist/cli/gc.js.map +1 -0
  94. package/dist/cli/init.js +217 -26
  95. package/dist/cli/init.js.map +1 -1
  96. package/dist/cli/main.js +50 -0
  97. package/dist/cli/main.js.map +1 -0
  98. package/dist/cli/report.js +218 -0
  99. package/dist/cli/report.js.map +1 -0
  100. package/dist/cli/scan.js +36 -15
  101. package/dist/cli/scan.js.map +1 -1
  102. package/dist/cli/suite.js +7 -7
  103. package/dist/cli/suite.js.map +1 -1
  104. package/dist/cli/verify.js +7 -7
  105. package/dist/cli/verify.js.map +1 -1
  106. package/dist/consent/consent.js +162 -5
  107. package/dist/consent/consent.js.map +1 -1
  108. package/dist/context/detect.js +55 -18
  109. package/dist/context/detect.js.map +1 -1
  110. package/dist/context/findApps.js +22 -8
  111. package/dist/context/findApps.js.map +1 -1
  112. package/dist/context/projectRoot.js +174 -19
  113. package/dist/context/projectRoot.js.map +1 -1
  114. package/dist/context/scan.js +1 -1
  115. package/dist/context/scan.js.map +1 -1
  116. package/dist/core/capabilityGroups.js +90 -0
  117. package/dist/core/capabilityGroups.js.map +1 -0
  118. package/dist/core/target.js +10 -8
  119. package/dist/core/target.js.map +1 -1
  120. package/dist/core/targetPlan.js +160 -39
  121. package/dist/core/targetPlan.js.map +1 -1
  122. package/dist/drivers/DirectDriver.js +317 -43
  123. package/dist/drivers/DirectDriver.js.map +1 -1
  124. package/dist/drivers/SimctlDriver.js +124 -8
  125. package/dist/drivers/SimctlDriver.js.map +1 -1
  126. package/dist/drivers/WdaDriver.js +365 -55
  127. package/dist/drivers/WdaDriver.js.map +1 -1
  128. package/dist/explore/candidates.js +7 -3
  129. package/dist/explore/candidates.js.map +1 -1
  130. package/dist/explore/graph.js +15 -6
  131. package/dist/explore/graph.js.map +1 -1
  132. package/dist/explore/memory.js +4 -1
  133. package/dist/explore/memory.js.map +1 -1
  134. package/dist/explore/planner.js +54 -9
  135. package/dist/explore/planner.js.map +1 -1
  136. package/dist/explore/policy.js +11 -6
  137. package/dist/explore/policy.js.map +1 -1
  138. package/dist/explore/runner.js +363 -190
  139. package/dist/explore/runner.js.map +1 -1
  140. package/dist/explore/signatures.js +4 -2
  141. package/dist/explore/signatures.js.map +1 -1
  142. package/dist/explore/suite.js +3 -1
  143. package/dist/explore/suite.js.map +1 -1
  144. package/dist/featureTesting/executionBootstrap.js +137 -29
  145. package/dist/featureTesting/executionBootstrap.js.map +1 -1
  146. package/dist/featureTesting/featureMap.js +6 -3
  147. package/dist/featureTesting/featureMap.js.map +1 -1
  148. package/dist/featureTesting/featureScope.js +101 -20
  149. package/dist/featureTesting/featureScope.js.map +1 -1
  150. package/dist/featureTesting/mapFeatureScope.js +44 -15
  151. package/dist/featureTesting/mapFeatureScope.js.map +1 -1
  152. package/dist/featureTesting/objectiveModel.js +15 -11
  153. package/dist/featureTesting/objectiveModel.js.map +1 -1
  154. package/dist/featureTesting/resultMerge.js +16 -8
  155. package/dist/featureTesting/resultMerge.js.map +1 -1
  156. package/dist/featureTesting/sources.js +8 -5
  157. package/dist/featureTesting/sources.js.map +1 -1
  158. package/dist/featureTesting/suiteBridge.js +8 -2
  159. package/dist/featureTesting/suiteBridge.js.map +1 -1
  160. package/dist/featureTesting/synonyms.js +32 -4
  161. package/dist/featureTesting/synonyms.js.map +1 -1
  162. package/dist/featureTesting/testCaseFactory.js +27 -15
  163. package/dist/featureTesting/testCaseFactory.js.map +1 -1
  164. package/dist/featureTesting/testPlan.js +34 -12
  165. package/dist/featureTesting/testPlan.js.map +1 -1
  166. package/dist/firstRun/authStateMachine.js +1 -1
  167. package/dist/firstRun/authStateMachine.js.map +1 -1
  168. package/dist/firstRun/classifyScreen.js +9 -6
  169. package/dist/firstRun/classifyScreen.js.map +1 -1
  170. package/dist/firstRun/firstRunPlanner.js +16 -13
  171. package/dist/firstRun/firstRunPlanner.js.map +1 -1
  172. package/dist/firstRun/firstRunRunner.js +92 -31
  173. package/dist/firstRun/firstRunRunner.js.map +1 -1
  174. package/dist/firstRun/generatedDataPolicy.js +25 -15
  175. package/dist/firstRun/generatedDataPolicy.js.map +1 -1
  176. package/dist/firstRun/inputPlanner.js +45 -11
  177. package/dist/firstRun/inputPlanner.js.map +1 -1
  178. package/dist/firstRun/onboardingStateMachine.js +1 -1
  179. package/dist/firstRun/onboardingStateMachine.js.map +1 -1
  180. package/dist/firstRun/paywallPolicy.js +3 -3
  181. package/dist/firstRun/paywallPolicy.js.map +1 -1
  182. package/dist/firstRun/types.js +1 -1
  183. package/dist/firstRun/types.js.map +1 -1
  184. package/dist/fixtures/catalog.js +72 -9
  185. package/dist/fixtures/catalog.js.map +1 -1
  186. package/dist/fixtures/load.js +50 -0
  187. package/dist/fixtures/load.js.map +1 -0
  188. package/dist/flows/discover.js +2 -2
  189. package/dist/flows/discover.js.map +1 -1
  190. package/dist/flows/generate.js +68 -17
  191. package/dist/flows/generate.js.map +1 -1
  192. package/dist/flows/lint.js +88 -14
  193. package/dist/flows/lint.js.map +1 -1
  194. package/dist/flows/pack.js +21 -5
  195. package/dist/flows/pack.js.map +1 -1
  196. package/dist/flows/paths.js +57 -0
  197. package/dist/flows/paths.js.map +1 -0
  198. package/dist/flows/repair.js +176 -37
  199. package/dist/flows/repair.js.map +1 -1
  200. package/dist/flows/run.js +308 -99
  201. package/dist/flows/run.js.map +1 -1
  202. package/dist/flows/schema.js +107 -25
  203. package/dist/flows/schema.js.map +1 -1
  204. package/dist/flows/seedExec.js +8 -4
  205. package/dist/flows/seedExec.js.map +1 -1
  206. package/dist/flows/templates.js +5 -5
  207. package/dist/index.js +50 -8
  208. package/dist/index.js.map +1 -1
  209. package/dist/ios/signing.js +32 -3
  210. package/dist/ios/signing.js.map +1 -1
  211. package/dist/issues/classify.js +28 -20
  212. package/dist/issues/classify.js.map +1 -1
  213. package/dist/issues/fingerprint.js +35 -9
  214. package/dist/issues/fingerprint.js.map +1 -1
  215. package/dist/issues/index.js +93 -46
  216. package/dist/issues/index.js.map +1 -1
  217. package/dist/issues/metrics.js +6 -5
  218. package/dist/issues/metrics.js.map +1 -1
  219. package/dist/issues/recurrence.js +35 -8
  220. package/dist/issues/recurrence.js.map +1 -1
  221. package/dist/issues/report.js +12 -8
  222. package/dist/issues/report.js.map +1 -1
  223. package/dist/issues/reportBridge.js +40 -9
  224. package/dist/issues/reportBridge.js.map +1 -1
  225. package/dist/issues/schema.js +2 -2
  226. package/dist/issues/schema.js.map +1 -1
  227. package/dist/issues/sourceRevision.js +2 -2
  228. package/dist/issues/sourceRevision.js.map +1 -1
  229. package/dist/issues/store.js +110 -32
  230. package/dist/issues/store.js.map +1 -1
  231. package/dist/lib/abortScope.js +48 -0
  232. package/dist/lib/abortScope.js.map +1 -0
  233. package/dist/lib/android.js +84 -8
  234. package/dist/lib/android.js.map +1 -1
  235. package/dist/lib/coordSpace.js +1 -1
  236. package/dist/lib/coordSpace.js.map +1 -1
  237. package/dist/lib/device.js +53 -12
  238. package/dist/lib/device.js.map +1 -1
  239. package/dist/lib/gestures.js +141 -0
  240. package/dist/lib/gestures.js.map +1 -0
  241. package/dist/lib/gitignore.js +4 -3
  242. package/dist/lib/gitignore.js.map +1 -1
  243. package/dist/lib/image.js +12 -3
  244. package/dist/lib/image.js.map +1 -1
  245. package/dist/lib/lockfile.js +399 -0
  246. package/dist/lib/lockfile.js.map +1 -0
  247. package/dist/lib/needsInput.js +9 -6
  248. package/dist/lib/needsInput.js.map +1 -1
  249. package/dist/lib/png.js +4 -3
  250. package/dist/lib/png.js.map +1 -1
  251. package/dist/lib/redact.js +170 -9
  252. package/dist/lib/redact.js.map +1 -1
  253. package/dist/lib/result.js +94 -10
  254. package/dist/lib/result.js.map +1 -1
  255. package/dist/lib/schemaHash.js +7 -5
  256. package/dist/lib/schemaHash.js.map +1 -1
  257. package/dist/lib/sensitive.js +6 -3
  258. package/dist/lib/sensitive.js.map +1 -1
  259. package/dist/lib/simctl.js +3 -3
  260. package/dist/lib/simctl.js.map +1 -1
  261. package/dist/lib/spawn.js +78 -17
  262. package/dist/lib/spawn.js.map +1 -1
  263. package/dist/lib/toolAnnotations.js +114 -0
  264. package/dist/lib/toolAnnotations.js.map +1 -0
  265. package/dist/lib/wda.js +321 -25
  266. package/dist/lib/wda.js.map +1 -1
  267. package/dist/lib/wdaConfig.js +12 -5
  268. package/dist/lib/wdaConfig.js.map +1 -1
  269. package/dist/lib/wdaTune.js +52 -23
  270. package/dist/lib/wdaTune.js.map +1 -1
  271. package/dist/mobileAudit/checks.js +150 -28
  272. package/dist/mobileAudit/checks.js.map +1 -1
  273. package/dist/mobileAudit/evidence.js +4 -4
  274. package/dist/mobileAudit/evidence.js.map +1 -1
  275. package/dist/mobileAudit/profiles.js +121 -20
  276. package/dist/mobileAudit/profiles.js.map +1 -1
  277. package/dist/mobileAudit/results.js +9 -4
  278. package/dist/mobileAudit/results.js.map +1 -1
  279. package/dist/mobileAudit/runner.js +214 -35
  280. package/dist/mobileAudit/runner.js.map +1 -1
  281. package/dist/oracle/auth.js +1 -1
  282. package/dist/oracle/auth.js.map +1 -1
  283. package/dist/oracle/failures.js +1085 -145
  284. package/dist/oracle/failures.js.map +1 -1
  285. package/dist/oracle/health.js +148 -26
  286. package/dist/oracle/health.js.map +1 -1
  287. package/dist/oracle/locator.js +148 -19
  288. package/dist/oracle/locator.js.map +1 -1
  289. package/dist/oracle/record.js +3 -3
  290. package/dist/oracle/record.js.map +1 -1
  291. package/dist/orchestration/envelope.js +2 -2
  292. package/dist/orchestration/envelope.js.map +1 -1
  293. package/dist/orchestration/goal.js +7 -13
  294. package/dist/orchestration/goal.js.map +1 -1
  295. package/dist/orchestration/testThis/execute.js +167 -0
  296. package/dist/orchestration/testThis/execute.js.map +1 -0
  297. package/dist/orchestration/testThis/pipeline.js +413 -0
  298. package/dist/orchestration/testThis/pipeline.js.map +1 -0
  299. package/dist/orchestration/testThis/plan.js +519 -0
  300. package/dist/orchestration/testThis/plan.js.map +1 -0
  301. package/dist/orchestration/testThis/sessionIntent.js +72 -0
  302. package/dist/orchestration/testThis/sessionIntent.js.map +1 -0
  303. package/dist/orchestration/testThis/terminal.js +136 -0
  304. package/dist/orchestration/testThis/terminal.js.map +1 -0
  305. package/dist/orchestration/testThis/types.js +12 -0
  306. package/dist/orchestration/testThis/types.js.map +1 -0
  307. package/dist/plan/plan.js +9 -9
  308. package/dist/plan/plan.js.map +1 -1
  309. package/dist/prompts/index.js +24 -24
  310. package/dist/prompts/index.js.map +1 -1
  311. package/dist/report/coverage.js +0 -1
  312. package/dist/report/coverage.js.map +1 -1
  313. package/dist/report/evidence.js.map +1 -1
  314. package/dist/report/export.js +449 -72
  315. package/dist/report/export.js.map +1 -1
  316. package/dist/report/findingsDedupe.js +41 -0
  317. package/dist/report/findingsDedupe.js.map +1 -0
  318. package/dist/report/flake.js +13 -14
  319. package/dist/report/flake.js.map +1 -1
  320. package/dist/report/history.js +72 -38
  321. package/dist/report/history.js.map +1 -1
  322. package/dist/report/policy.js +18 -7
  323. package/dist/report/policy.js.map +1 -1
  324. package/dist/report/qaLevel.js +10 -16
  325. package/dist/report/qaLevel.js.map +1 -1
  326. package/dist/report/readiness.js +42 -12
  327. package/dist/report/readiness.js.map +1 -1
  328. package/dist/report/sarifSources.js +160 -0
  329. package/dist/report/sarifSources.js.map +1 -0
  330. package/dist/report/summary.js +2 -2
  331. package/dist/report/summary.js.map +1 -1
  332. package/dist/report/testCatalog.js +4 -4
  333. package/dist/report/testCatalog.js.map +1 -1
  334. package/dist/report/timing.js +23 -23
  335. package/dist/report/timing.js.map +1 -1
  336. package/dist/report/toolHealth.js +124 -0
  337. package/dist/report/toolHealth.js.map +1 -0
  338. package/dist/server.js +501 -69
  339. package/dist/server.js.map +1 -1
  340. package/dist/services/automationGenerate.js +8 -2
  341. package/dist/services/automationGenerate.js.map +1 -1
  342. package/dist/services/build.js +10 -4
  343. package/dist/services/build.js.map +1 -1
  344. package/dist/services/flowGenerate.js +75 -0
  345. package/dist/services/flowGenerate.js.map +1 -0
  346. package/dist/services/preflight.js +40 -8
  347. package/dist/services/preflight.js.map +1 -1
  348. package/dist/services/prepareAndroid.js +92 -18
  349. package/dist/services/prepareAndroid.js.map +1 -1
  350. package/dist/services/prepareIos.js +94 -17
  351. package/dist/services/prepareIos.js.map +1 -1
  352. package/dist/services/report.js +271 -80
  353. package/dist/services/report.js.map +1 -1
  354. package/dist/services/smoke.js +68 -22
  355. package/dist/services/smoke.js.map +1 -1
  356. package/dist/services/suiteGenerate.js +43 -6
  357. package/dist/services/suiteGenerate.js.map +1 -1
  358. package/dist/services/testSuiteKnowledge.js +78 -33
  359. package/dist/services/testSuiteKnowledge.js.map +1 -1
  360. package/dist/session/attach.js +284 -4
  361. package/dist/session/attach.js.map +1 -1
  362. package/dist/session/processRegistry.js +433 -0
  363. package/dist/session/processRegistry.js.map +1 -0
  364. package/dist/session/progress.js +1 -1
  365. package/dist/session/progress.js.map +1 -1
  366. package/dist/session/retention.js +201 -0
  367. package/dist/session/retention.js.map +1 -0
  368. package/dist/session/store.js +459 -59
  369. package/dist/session/store.js.map +1 -1
  370. package/dist/snapshot/overlays.js +60 -10
  371. package/dist/snapshot/overlays.js.map +1 -1
  372. package/dist/snapshot/parse.js +30 -12
  373. package/dist/snapshot/parse.js.map +1 -1
  374. package/dist/snapshot/present.js +36 -6
  375. package/dist/snapshot/present.js.map +1 -1
  376. package/dist/snapshot/settle.js +39 -9
  377. package/dist/snapshot/settle.js.map +1 -1
  378. package/dist/state/consent.js +99 -0
  379. package/dist/state/consent.js.map +1 -0
  380. package/dist/state/profile.js +82 -11
  381. package/dist/state/profile.js.map +1 -1
  382. package/dist/suite/compile.js +15 -6
  383. package/dist/suite/compile.js.map +1 -1
  384. package/dist/suite/lint.js +22 -4
  385. package/dist/suite/lint.js.map +1 -1
  386. package/dist/suite/pom.js +75 -44
  387. package/dist/suite/pom.js.map +1 -1
  388. package/dist/suite/secretGuard.js +266 -0
  389. package/dist/suite/secretGuard.js.map +1 -0
  390. package/dist/suite/testcase.js +15 -11
  391. package/dist/suite/testcase.js.map +1 -1
  392. package/dist/testSuite/exporter.js +7 -3
  393. package/dist/testSuite/exporter.js.map +1 -1
  394. package/dist/testSuite/generator.js +43 -14
  395. package/dist/testSuite/generator.js.map +1 -1
  396. package/dist/testSuite/history.js +1 -1
  397. package/dist/testSuite/history.js.map +1 -1
  398. package/dist/testSuite/issueLinks.js +3 -3
  399. package/dist/testSuite/issueLinks.js.map +1 -1
  400. package/dist/testSuite/lint.js +4 -4
  401. package/dist/testSuite/lint.js.map +1 -1
  402. package/dist/testSuite/merge.js +13 -7
  403. package/dist/testSuite/merge.js.map +1 -1
  404. package/dist/testSuite/schema.js +21 -16
  405. package/dist/testSuite/schema.js.map +1 -1
  406. package/dist/testSuite/store.js +12 -4
  407. package/dist/testSuite/store.js.map +1 -1
  408. package/dist/testSuite/traceability.js +2 -2
  409. package/dist/testSuite/traceability.js.map +1 -1
  410. package/dist/tools/act.js +868 -174
  411. package/dist/tools/act.js.map +1 -1
  412. package/dist/tools/agent.js +521 -112
  413. package/dist/tools/agent.js.map +1 -1
  414. package/dist/tools/appControl.js +82 -19
  415. package/dist/tools/appControl.js.map +1 -1
  416. package/dist/tools/appMap.js +393 -189
  417. package/dist/tools/appMap.js.map +1 -1
  418. package/dist/tools/build.js +92 -51
  419. package/dist/tools/build.js.map +1 -1
  420. package/dist/tools/bundletool.js +141 -40
  421. package/dist/tools/bundletool.js.map +1 -1
  422. package/dist/tools/clearOverlay.js +98 -18
  423. package/dist/tools/clearOverlay.js.map +1 -1
  424. package/dist/tools/device.js +108 -19
  425. package/dist/tools/device.js.map +1 -1
  426. package/dist/tools/doctor.js +98 -35
  427. package/dist/tools/doctor.js.map +1 -1
  428. package/dist/tools/explore.js +110 -42
  429. package/dist/tools/explore.js.map +1 -1
  430. package/dist/tools/featureTesting.js +152 -130
  431. package/dist/tools/featureTesting.js.map +1 -1
  432. package/dist/tools/firstRun.js +94 -66
  433. package/dist/tools/firstRun.js.map +1 -1
  434. package/dist/tools/flow.js +347 -132
  435. package/dist/tools/flow.js.map +1 -1
  436. package/dist/tools/flowRepair.js +42 -10
  437. package/dist/tools/flowRepair.js.map +1 -1
  438. package/dist/tools/generate.js +199 -0
  439. package/dist/tools/generate.js.map +1 -0
  440. package/dist/tools/getArtifact.js +37 -8
  441. package/dist/tools/getArtifact.js.map +1 -1
  442. package/dist/tools/health.js +17 -12
  443. package/dist/tools/health.js.map +1 -1
  444. package/dist/tools/ios.js +148 -194
  445. package/dist/tools/ios.js.map +1 -1
  446. package/dist/tools/issues.js +256 -171
  447. package/dist/tools/issues.js.map +1 -1
  448. package/dist/tools/jobs.js +55 -11
  449. package/dist/tools/jobs.js.map +1 -1
  450. package/dist/tools/metro.js +84 -38
  451. package/dist/tools/metro.js.map +1 -1
  452. package/dist/tools/mobileAudit.js +83 -26
  453. package/dist/tools/mobileAudit.js.map +1 -1
  454. package/dist/tools/network.js +36 -14
  455. package/dist/tools/network.js.map +1 -1
  456. package/dist/tools/note.js +31 -17
  457. package/dist/tools/note.js.map +1 -1
  458. package/dist/tools/prepareIosTarget.js +31 -14
  459. package/dist/tools/prepareIosTarget.js.map +1 -1
  460. package/dist/tools/prepareTarget.js +193 -47
  461. package/dist/tools/prepareTarget.js.map +1 -1
  462. package/dist/tools/report.js +16 -8
  463. package/dist/tools/report.js.map +1 -1
  464. package/dist/tools/resolveArtifact.js +12 -12
  465. package/dist/tools/resolveArtifact.js.map +1 -1
  466. package/dist/tools/resolveTarget.js +81 -18
  467. package/dist/tools/resolveTarget.js.map +1 -1
  468. package/dist/tools/screenRecord.js +85 -20
  469. package/dist/tools/screenRecord.js.map +1 -1
  470. package/dist/tools/screenshot.js +42 -18
  471. package/dist/tools/screenshot.js.map +1 -1
  472. package/dist/tools/smoke.js +29 -12
  473. package/dist/tools/smoke.js.map +1 -1
  474. package/dist/tools/snapshot.js +157 -107
  475. package/dist/tools/snapshot.js.map +1 -1
  476. package/dist/tools/startSession.js +117 -84
  477. package/dist/tools/startSession.js.map +1 -1
  478. package/dist/tools/suite.js +391 -310
  479. package/dist/tools/suite.js.map +1 -1
  480. package/dist/tools/testSuite.js +112 -36
  481. package/dist/tools/testSuite.js.map +1 -1
  482. package/dist/tools/testThis.js +35 -802
  483. package/dist/tools/testThis.js.map +1 -1
  484. package/dist/tools/visual.js +698 -116
  485. package/dist/tools/visual.js.map +1 -1
  486. package/dist/tools/wait.js +9 -23
  487. package/dist/tools/wait.js.map +1 -1
  488. package/dist/tools/wda.js +312 -54
  489. package/dist/tools/wda.js.map +1 -1
  490. package/dist/version.js +37 -64
  491. package/dist/version.js.map +1 -1
  492. package/dist/visual/ocr.js +65 -8
  493. package/dist/visual/ocr.js.map +1 -1
  494. package/dist/visual/provider.js +87 -15
  495. package/dist/visual/provider.js.map +1 -1
  496. package/docs/README.md +24 -10
  497. package/docs/ci-reports.md +328 -0
  498. package/docs/concepts.md +227 -0
  499. package/docs/flows.md +153 -0
  500. package/docs/mcp-server.md +210 -104
  501. package/docs/physical-devices.md +84 -0
  502. package/docs/tools.md +808 -217
  503. package/package.json +16 -6
  504. package/dist/appMap/diff.js +0 -60
  505. package/dist/appMap/diff.js.map +0 -1
  506. package/dist/automation/maestroIr.js +0 -282
  507. package/dist/automation/maestroIr.js.map +0 -1
  508. package/dist/interop/maestro.js +0 -151
  509. package/dist/interop/maestro.js.map +0 -1
  510. package/dist/tools/assertVisual.js +0 -74
  511. package/dist/tools/assertVisual.js.map +0 -1
  512. package/dist/tools/automationGenerate.js +0 -394
  513. package/dist/tools/automationGenerate.js.map +0 -1
  514. package/dist/tools/capabilities.js +0 -209
  515. package/dist/tools/capabilities.js.map +0 -1
  516. package/dist/tools/detectContext.js +0 -41
  517. package/dist/tools/detectContext.js.map +0 -1
  518. package/dist/tools/flowGenerate.js +0 -55
  519. package/dist/tools/flowGenerate.js.map +0 -1
  520. package/dist/tools/history.js +0 -56
  521. package/dist/tools/history.js.map +0 -1
  522. package/dist/tools/idling.js +0 -104
  523. package/dist/tools/idling.js.map +0 -1
  524. package/dist/tools/inputCapabilities.js +0 -30
  525. package/dist/tools/inputCapabilities.js.map +0 -1
  526. package/dist/tools/locator.js +0 -57
  527. package/dist/tools/locator.js.map +0 -1
  528. package/dist/tools/maestro.js +0 -78
  529. package/dist/tools/maestro.js.map +0 -1
  530. package/dist/tools/permissions.js +0 -149
  531. package/dist/tools/permissions.js.map +0 -1
  532. package/dist/tools/plan.js +0 -49
  533. package/dist/tools/plan.js.map +0 -1
  534. package/dist/tools/screenInfo.js +0 -70
  535. package/dist/tools/screenInfo.js.map +0 -1
  536. package/dist/tools/seed.js +0 -101
  537. package/dist/tools/seed.js.map +0 -1
  538. package/dist/tools/state.js +0 -170
  539. package/dist/tools/state.js.map +0 -1
  540. package/dist/tools/visualText.js +0 -61
  541. package/dist/tools/visualText.js.map +0 -1
@@ -1,6 +1,6 @@
1
- // Feature scope resolution (SWIPIUM-REQ-03 "Feature Scope Model" + "Query and Ranking"). PURE.
2
- // Given a natural-language feature request and the available ground truth — the static code index,
3
- // the runtime screen graph, and existing tests — rank every plausible code/runtime artifact, group
1
+ // Feature scope resolution ("Query and Ranking"). PURE.
2
+ // Given a natural-language feature request and the available ground truth (the static code index,
3
+ // the runtime screen graph, and existing tests), rank every plausible code/runtime artifact, group
4
4
  // them into feature candidates, and return the best-supported FeatureScope plus disambiguation when
5
5
  // genuinely-different features tie. No device, no filesystem, no LLM: deterministic and unit-testable.
6
6
  import { normalizeQuery, termsAreUnrelated } from './synonyms.js';
@@ -9,7 +9,13 @@ const CORE_W = 1.0;
9
9
  const SYN_W = 0.4;
10
10
  const KIND_WEIGHT = { symbol: 1.0, route: 1.0, runtime: 0.9, test: 0.6, file: 0.45 };
11
11
  const SYMBOL_KIND_WEIGHT = {
12
- screen: 1.0, service: 0.85, hook: 0.7, component: 0.7, function: 0.55, class: 0.6, constant: 0.5,
12
+ screen: 1.0,
13
+ service: 0.85,
14
+ hook: 0.7,
15
+ component: 0.7,
16
+ function: 0.55,
17
+ class: 0.6,
18
+ constant: 0.5,
13
19
  };
14
20
  const EXACT_BONUS = 0.8; // an item whose tokens contain every core term
15
21
  function hits(tokens, q) {
@@ -50,17 +56,48 @@ class UF {
50
56
  }
51
57
  }
52
58
  function slug(terms) {
53
- const base = terms.join('-').replace(/[^a-z0-9-]+/g, '-').replace(/^-+|-+$/g, '');
59
+ const base = terms
60
+ .join('-')
61
+ .replace(/[^a-z0-9-]+/g, '-')
62
+ .replace(/^-+|-+$/g, '');
54
63
  return `feat-${base || 'unknown'}`.slice(0, 64);
55
64
  }
56
65
  function titleCase(terms) {
57
66
  return terms.map((t) => t.charAt(0).toUpperCase() + t.slice(1)).join(' ');
58
67
  }
59
68
  // state-changing / risky vocab used for strategy + risk derivation
60
- const STATEFUL_TERMS = new Set(['create', 'add', 'new', 'edit', 'update', 'save', 'checkout', 'pay', 'purchase', 'order', 'subscribe', 'submit', 'send', 'post', 'upload', 'book']);
69
+ const STATEFUL_TERMS = new Set([
70
+ 'create',
71
+ 'add',
72
+ 'new',
73
+ 'edit',
74
+ 'update',
75
+ 'save',
76
+ 'checkout',
77
+ 'pay',
78
+ 'purchase',
79
+ 'order',
80
+ 'subscribe',
81
+ 'submit',
82
+ 'send',
83
+ 'post',
84
+ 'upload',
85
+ 'book',
86
+ ]);
61
87
  const DESTRUCTIVE_TERMS = new Set(['delete', 'remove', 'destroy', 'clear', 'wipe', 'cancel', 'logout', 'deactivate']);
62
88
  const PAYMENT_TERMS = new Set(['checkout', 'payment', 'pay', 'purchase', 'order', 'subscribe', 'billing']);
63
- const AUTH_TERMS = new Set(['auth', 'login', 'signin', 'logon', 'authentication', 'credentials', 'password', 'account', 'register', 'signup']);
89
+ const AUTH_TERMS = new Set([
90
+ 'auth',
91
+ 'login',
92
+ 'signin',
93
+ 'logon',
94
+ 'authentication',
95
+ 'credentials',
96
+ 'password',
97
+ 'account',
98
+ 'register',
99
+ 'signup',
100
+ ]);
64
101
  function collectMatches(input, q) {
65
102
  const out = [];
66
103
  const push = (m) => {
@@ -70,12 +107,29 @@ function collectMatches(input, q) {
70
107
  for (const s of input.index.symbols) {
71
108
  const h = hits(s.tokens, q);
72
109
  const score = baseScore(h, q, s.tokens) * KIND_WEIGHT.symbol * SYMBOL_KIND_WEIGHT[s.kind];
73
- push({ source: 'symbol', name: s.name, file: s.file, line: s.line, kind: s.kind, matchedTerms: [...h.matched, ...h.synMatched], score, tokens: s.tokens });
110
+ push({
111
+ source: 'symbol',
112
+ name: s.name,
113
+ file: s.file,
114
+ line: s.line,
115
+ kind: s.kind,
116
+ matchedTerms: [...h.matched, ...h.synMatched],
117
+ score,
118
+ tokens: s.tokens,
119
+ });
74
120
  }
75
121
  for (const r of input.index.routes) {
76
122
  const h = hits(r.tokens, q);
77
123
  const score = baseScore(h, q, r.tokens) * KIND_WEIGHT.route;
78
- push({ source: 'route', name: r.route, file: r.file, line: r.line, matchedTerms: [...h.matched, ...h.synMatched], score, tokens: r.tokens });
124
+ push({
125
+ source: 'route',
126
+ name: r.route,
127
+ file: r.file,
128
+ line: r.line,
129
+ matchedTerms: [...h.matched, ...h.synMatched],
130
+ score,
131
+ tokens: r.tokens,
132
+ });
79
133
  }
80
134
  for (const f of input.index.files) {
81
135
  const h = hits(f.tokens, q);
@@ -86,7 +140,15 @@ function collectMatches(input, q) {
86
140
  const tokens = [...tokenizeLoose(n.title), ...tokenizeLoose(n.route), ...tokenizeLoose(n.text)];
87
141
  const h = hits(tokens, q);
88
142
  const score = baseScore(h, q, tokens) * KIND_WEIGHT.runtime;
89
- push({ source: 'runtime', name: n.title || n.route || n.id, file: undefined, kind: 'runtime_node', matchedTerms: [...h.matched, ...h.synMatched], score, tokens });
143
+ push({
144
+ source: 'runtime',
145
+ name: n.title || n.route || n.id,
146
+ file: undefined,
147
+ kind: 'runtime_node',
148
+ matchedTerms: [...h.matched, ...h.synMatched],
149
+ score,
150
+ tokens,
151
+ });
90
152
  // carry the node id on `line`-less match via name; id kept for screen extraction below
91
153
  if (score > 0)
92
154
  out[out.length - 1].runtimeId = n.id;
@@ -124,7 +186,7 @@ function cluster(matches, q) {
124
186
  const core = m.matchedTerms.filter((t) => q.coreTerms.includes(t));
125
187
  if (core.length)
126
188
  return uf.root(core[0]);
127
- // synonym-only match → attach to the synonym's owning core term if derivable, else its own bucket
189
+ // synonym-only match: attach to the synonym's owning core term if derivable, else its own bucket
128
190
  return m.matchedTerms[0] ?? '∅';
129
191
  };
130
192
  for (const m of matches) {
@@ -145,11 +207,23 @@ function deriveRisks(terms) {
145
207
  const risks = [];
146
208
  const has = (set) => [...terms].some((t) => set.has(t));
147
209
  if (has(DESTRUCTIVE_TERMS))
148
- risks.push({ risk: 'destructive actions present', level: 'high', rationale: 'Feature vocabulary includes delete/remove/cancel — requires disposable state and explicit consent.' });
210
+ risks.push({
211
+ risk: 'destructive actions present',
212
+ level: 'high',
213
+ rationale: 'Feature vocabulary includes delete/remove/cancel. Requires disposable state and explicit consent.',
214
+ });
149
215
  if (has(PAYMENT_TERMS))
150
- risks.push({ risk: 'real-money / purchase path', level: 'high', rationale: 'Payment/checkout flows can charge real accounts — use a sandbox/test fixture.' });
216
+ risks.push({
217
+ risk: 'real-money / purchase path',
218
+ level: 'high',
219
+ rationale: 'Payment/checkout flows can charge real accounts. Use a sandbox/test fixture.',
220
+ });
151
221
  if (has(AUTH_TERMS))
152
- risks.push({ risk: 'authentication gate', level: 'medium', rationale: 'Likely blocked behind login — needs test credentials to exercise fully.' });
222
+ risks.push({
223
+ risk: 'authentication gate',
224
+ level: 'medium',
225
+ rationale: 'Likely blocked behind login. Needs test credentials to exercise fully.',
226
+ });
153
227
  if (!risks.length)
154
228
  risks.push({ risk: 'low-risk read/navigation', level: 'low', rationale: 'No destructive/payment/auth vocabulary detected in scope.' });
155
229
  return risks;
@@ -222,11 +296,14 @@ function buildScope(c, q, input, maxScore) {
222
296
  const strategy = deriveStrategy(c.terms, runtimeScreens.length > 0, staticScreens.length > 0, confidence);
223
297
  const coverageGaps = [];
224
298
  if (!runtimeScreens.length)
225
- coverageGaps.push({ area: 'runtime', reason: 'No runtime screen has been observed for this feature yet — run a focused exploration.' });
299
+ coverageGaps.push({ area: 'runtime', reason: 'No runtime screen has been observed for this feature yet. Run a focused exploration.' });
226
300
  if (!staticScreens.length)
227
- coverageGaps.push({ area: 'static', reason: 'No screen/route component matched in source — the static index may be incomplete or the feature is named differently.' });
301
+ coverageGaps.push({
302
+ area: 'static',
303
+ reason: 'No screen/route component matched in source. The static index may be incomplete or the feature is named differently.',
304
+ });
228
305
  if (!existingTests.length)
229
- coverageGaps.push({ area: 'tests', reason: 'No existing test/flow covers this feature — generate cases.' });
306
+ coverageGaps.push({ area: 'tests', reason: 'No existing test/flow covers this feature. Generate cases.' });
230
307
  const objective = `Validate the "${title}" feature${input.platform ? ` on ${input.platform}` : ''}: reach its entry point, exercise the primary path, and verify the expected outcome.`;
231
308
  return {
232
309
  featureId,
@@ -301,7 +378,7 @@ export function buildFeatureScope(input) {
301
378
  runtimeScreens: (input.runtimeScreens ?? []).length,
302
379
  };
303
380
  if (!matches.length) {
304
- // No feature found — honest empty scope with searched terms (acceptance criterion).
381
+ // No feature found: honest empty scope with searched terms (acceptance criterion).
305
382
  const empty = {
306
383
  featureId: slug(q.coreTerms),
307
384
  query: input.query,
@@ -317,7 +394,10 @@ export function buildFeatureScope(input) {
317
394
  risks: [{ risk: 'feature not located', level: 'medium', rationale: 'No matching code symbols, routes, runtime screens, or tests.' }],
318
395
  existingTests: [],
319
396
  coverageGaps: [
320
- { area: 'map', reason: 'Feature not present in the current map — run an initial qa_test_this/qa_explore to grow coverage, or refine the feature name.' },
397
+ {
398
+ area: 'map',
399
+ reason: 'Feature not present in the current map. Run an initial qa_test_this/qa_explore to grow coverage, or refine the feature name.',
400
+ },
321
401
  ],
322
402
  recommendedStrategy: 'manual_blocked',
323
403
  matchedTerms: [],
@@ -342,7 +422,8 @@ export function buildFeatureScope(input) {
342
422
  const a = scopes[0];
343
423
  const b = scopes[1];
344
424
  const close = b.confidence >= a.confidence * 0.75 && a.confidence > 0;
345
- if (close && termsAreUnrelated(a.matchedTerms.filter((t) => q.coreTerms.includes(t)), b.matchedTerms.filter((t) => q.coreTerms.includes(t)))) {
425
+ if (close &&
426
+ termsAreUnrelated(a.matchedTerms.filter((t) => q.coreTerms.includes(t)), b.matchedTerms.filter((t) => q.coreTerms.includes(t)))) {
346
427
  needsInput = {
347
428
  question: `"${input.query}" matched more than one distinct feature. Which one should Swipium test?`,
348
429
  options: scopes.slice(0, 4).map((s) => `${s.title} (${Math.round(s.confidence * 100)}%)`),
@@ -1 +1 @@
1
- {"version":3,"file":"featureScope.js","sourceRoot":"","sources":["../../src/featureTesting/featureScope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"featureScope.js","sourceRoot":"","sources":["../../src/featureTesting/featureScope.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,25 @@
1
- // Vision Gap Fix 3 — app-map-FIRST feature scoping. The product principle is "read the durable app
2
- // map before deciding what to do". qa_feature_scope / qa_feature_test_plan / qa_test_feature must scope
1
+ // Vision Gap Fix 3: app-map-FIRST feature scoping. The product principle is "read the durable app
2
+ // map before deciding what to do". qa_app_map_feature_scope / qa_test_feature must scope
3
3
  // from `.swipium/app-map.json` (features, static + runtime topology, tickets, persistent suite) BEFORE
4
4
  // falling back to a fresh code scan. This shared service builds an app-map-enriched FeatureScopeInput
5
5
  // and reuses the deterministic ranker in featureScope.ts, then reconciles the result back to a known
6
6
  // map feature id so scope ids stay compatible with qa_app_map_feature_scope.
7
- import { buildFeatureIndex, tokenize } from '../appMap/featureIndex.js';
8
- import { buildFeatureScope } from './featureScope.js';
7
+ import { buildFeatureIndex, tokenize, } from '../appMap/featureIndex.js';
8
+ import { buildFeatureScope, } from './featureScope.js';
9
9
  import { loadAppMap } from '../appMap/store.js';
10
10
  import { appMapResourceUri } from '../appMap/store.js';
11
11
  import { loadSuite } from '../testSuite/store.js';
12
12
  import { detectFramework } from '../context/detect.js';
13
13
  function fallbackProject(root) {
14
14
  const fw = detectFramework(root);
15
- return { root, gitRemote: null, packageName: null, workspaceTarget: null, framework: fw, platforms: fw === 'native-android' ? ['android'] : fw === 'native-ios' ? ['ios'] : ['android', 'ios'] };
15
+ return {
16
+ root,
17
+ gitRemote: null,
18
+ packageName: null,
19
+ workspaceTarget: null,
20
+ framework: fw,
21
+ platforms: fw === 'native-android' ? ['android'] : fw === 'native-ios' ? ['ios'] : ['android', 'ios'],
22
+ };
16
23
  }
17
24
  /** Synthesize index entries from the durable map so a feature that exists ONLY in the app map is found. */
18
25
  function indexFromMap(map, base) {
@@ -20,7 +27,7 @@ function indexFromMap(map, base) {
20
27
  const routes = [...base.routes];
21
28
  const files = [...base.files];
22
29
  const seenSym = new Set(symbols.map((s) => `${s.name}:${s.file}`));
23
- // Map features → synthetic "screen" symbols carrying the feature's title/objective tokens, so the
30
+ // Map features > synthetic "screen" symbols carrying the feature's title/objective tokens, so the
24
31
  // ranker locates a feature even when no source symbol survives a code rename/deletion.
25
32
  for (const f of map.features) {
26
33
  const name = f.title.replace(/[^A-Za-z0-9]+/g, '') || f.id;
@@ -32,7 +39,7 @@ function indexFromMap(map, base) {
32
39
  seenSym.add(key);
33
40
  }
34
41
  }
35
- // Static screens → synthetic routes/files so their names/routes participate in ranking.
42
+ // Static screens > synthetic routes/files so their names/routes participate in ranking.
36
43
  for (const s of map.staticTopology.screens) {
37
44
  const tokens = [...new Set([...tokenize(s.name), ...tokenize(s.route ?? '')])];
38
45
  if (s.route)
@@ -54,7 +61,7 @@ function runtimeScreensFromMap(map) {
54
61
  function testsFromMap(map) {
55
62
  return map.testSuite.cases.map((c) => ({ id: c.id, title: c.title, source: c.source ?? 'app-map' }));
56
63
  }
57
- /** Cases from the canonical persistent suite (.swipium/test-suite.json) — the growing QA context the
64
+ /** Cases from the canonical persistent suite (.swipium/test-suite.json), the growing QA context the
58
65
  * vision requires feature scoping to read, not just the app-map's mirrored index. Each case also
59
66
  * contributes a synthetic feature symbol so a suite-only functionality is locatable. */
60
67
  function testsFromSuite(root) {
@@ -66,8 +73,16 @@ function testsFromSuite(root) {
66
73
  if (c.status === 'deprecated')
67
74
  continue;
68
75
  tests.push({ id: c.id, title: c.title, source: 'suite' });
69
- const tokens = [...new Set([...tokenize(c.functionality), ...tokenize(c.title), ...tokenize(c.featureId), ...tokenize(c.objective ?? '')])];
70
- symbols.push({ name: (c.functionality || c.title).replace(/[^A-Za-z0-9]+/g, '') || c.id, kind: 'screen', file: `suite:${c.id}`, line: 0, tokens });
76
+ const tokens = [
77
+ ...new Set([...tokenize(c.functionality), ...tokenize(c.title), ...tokenize(c.featureId), ...tokenize(c.objective ?? '')]),
78
+ ];
79
+ symbols.push({
80
+ name: (c.functionality || c.title).replace(/[^A-Za-z0-9]+/g, '') || c.id,
81
+ kind: 'screen',
82
+ file: `suite:${c.id}`,
83
+ line: 0,
84
+ tokens,
85
+ });
71
86
  }
72
87
  }
73
88
  catch {
@@ -75,7 +90,7 @@ function testsFromSuite(root) {
75
90
  }
76
91
  return { tests, symbols };
77
92
  }
78
- /** Pick the map feature that best overlaps the scoped result's terms — to reconcile the scope id. */
93
+ /** Pick the map feature that best overlaps the scoped result's terms, to reconcile the scope id. */
79
94
  function reconcileMapFeature(map, result) {
80
95
  if (!result.found)
81
96
  return {};
@@ -107,15 +122,22 @@ export function buildMapFeatureScope(input) {
107
122
  const at = new Date().toISOString();
108
123
  const map = input.map ?? loadAppMap(input.root, fallbackProject(input.root), at).map;
109
124
  const appMapUri = appMapResourceUri(input.root);
110
- // Code index: provided, else fresh scan (still useful — but the map is layered on top as primary).
125
+ // Code index: provided, else fresh scan (still useful, but the map is layered on top as primary).
111
126
  const baseIndex = input.index ?? buildFeatureIndex(input.root);
112
127
  // The growing QA context (Fix #3): the persistent suite is durable feature knowledge too, so feed its
113
128
  // cases into scoping as existing tests + synthetic feature symbols (a suite-only feature is findable).
114
129
  const suite = testsFromSuite(input.root);
115
130
  if (!map) {
116
- // No durable map yet — still layer the persistent suite on top of the pure code-scan scope.
131
+ // No durable map yet. Still layer the persistent suite on top of the pure code-scan scope.
117
132
  const idx = { ...baseIndex, symbols: [...baseIndex.symbols, ...suite.symbols] };
118
- const res = buildFeatureScope({ query: input.query, index: idx, runtimeScreens: input.runtimeScreens, existingTests: [...(input.existingTests ?? []), ...suite.tests], platform: input.platform, limit: input.limit });
133
+ const res = buildFeatureScope({
134
+ query: input.query,
135
+ index: idx,
136
+ runtimeScreens: input.runtimeScreens,
137
+ existingTests: [...(input.existingTests ?? []), ...suite.tests],
138
+ platform: input.platform,
139
+ limit: input.limit,
140
+ });
119
141
  return { ...res, appMapUri, ticketRefs: [], runtimeSource: input.runtimeScreens?.length ? 'session' : 'none' };
120
142
  }
121
143
  const baseEnriched = indexFromMap(map, baseIndex);
@@ -128,7 +150,14 @@ export function buildMapFeatureScope(input) {
128
150
  runtimeSource = runtimeScreens.length ? 'app_map' : 'none';
129
151
  }
130
152
  const existingTests = [...(input.existingTests ?? []), ...testsFromMap(map), ...suite.tests];
131
- const scopeInput = { query: input.query, index: enrichedIndex, runtimeScreens, existingTests, platform: input.platform, limit: input.limit };
153
+ const scopeInput = {
154
+ query: input.query,
155
+ index: enrichedIndex,
156
+ runtimeScreens,
157
+ existingTests,
158
+ platform: input.platform,
159
+ limit: input.limit,
160
+ };
132
161
  const result = buildFeatureScope(scopeInput);
133
162
  // Reconcile to a known map feature so the scope id matches qa_app_map_feature_scope's id.
134
163
  const reconciled = reconcileMapFeature(map, result);
@@ -1 +1 @@
1
- {"version":3,"file":"mapFeatureScope.js","sourceRoot":"","sources":["../../src/featureTesting/mapFeatureScope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapFeatureScope.js","sourceRoot":"","sources":["../../src/featureTesting/mapFeatureScope.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- // Feature objective model (SWIPIUM-REQ-03 "Objective Model Requirements"). PURE, best-effort,
2
- // deterministic. From a resolved FeatureScope it derives what the feature is *for* — happy path,
1
+ // Feature objective model. PURE, best-effort,
2
+ // deterministic. From a resolved FeatureScope it derives what the feature is *for*: happy path,
3
3
  // expected outputs, inputs, business rules (marked as hypotheses when low-confidence), negative and
4
4
  // edge cases, destructive boundaries, and the oracle strategy. Every claim carries provenance and a
5
5
  // confidence so a low-confidence hypothesis is never presented as proof (Non-Goals).
@@ -23,11 +23,15 @@ export function buildObjective(scope) {
23
23
  const negativeCases = [];
24
24
  const edgeCases = [];
25
25
  const destructiveBoundaries = [];
26
- // ---- entry → happy path ----
26
+ // ---- entry > happy path ----
27
27
  const entry = scope.entryPoints[0];
28
28
  if (entry) {
29
29
  happyPath.push(`Open the ${entry.kind.replace('_', ' ')} "${entry.value}"`);
30
- provenance.push({ source: entry.kind === 'route' || entry.kind === 'deep_link' ? 'route' : entry.kind === 'runtime_node' ? 'runtime' : 'screen', detail: `entry point ${entry.value}`, confidence: entry.confidence });
30
+ provenance.push({
31
+ source: entry.kind === 'route' || entry.kind === 'deep_link' ? 'route' : entry.kind === 'runtime_node' ? 'runtime' : 'screen',
32
+ detail: `entry point ${entry.value}`,
33
+ confidence: entry.confidence,
34
+ });
31
35
  }
32
36
  else if (scope.staticScreens[0]) {
33
37
  happyPath.push(`Navigate to ${scope.staticScreens[0].name}`);
@@ -41,24 +45,24 @@ export function buildObjective(scope) {
41
45
  happyPath.push('Enter a query and apply the search/filter');
42
46
  expectedOutputs.push('A result list updates to reflect the query');
43
47
  inputFields.push({ name: 'searchTerm', type: 'text', required: true, source: 'search vocabulary' });
44
- negativeCases.push('Empty query → no crash; shows empty/zero-results state');
48
+ negativeCases.push('Empty query > no crash; shows empty/zero-results state');
45
49
  edgeCases.push('Query with special characters / very long input');
46
50
  provenance.push({ source: 'vocabulary', detail: 'search/filter terms', confidence: 0.5 });
47
51
  }
48
52
  if (has(terms, CREATE_TERMS)) {
49
53
  happyPath.push('Fill the required fields and submit');
50
54
  expectedOutputs.push('The new item appears / a success confirmation is shown');
51
- negativeCases.push('Submit with required fields blank → validation error, no creation');
55
+ negativeCases.push('Submit with required fields blank > validation error, no creation');
52
56
  edgeCases.push('Duplicate / boundary-length values; interruption mid-create');
53
57
  businessRules.push('Required fields must be validated before submission');
54
- hypotheses.push('Required-field set is inferred from vocabulary, not a schema — verify against the form');
58
+ hypotheses.push('Required-field set is inferred from vocabulary, not a schema. Verify against the form');
55
59
  provenance.push({ source: 'vocabulary', detail: 'create/add terms', confidence: 0.45 });
56
60
  }
57
61
  if (has(terms, AUTH_TERMS)) {
58
62
  inputFields.push({ name: 'email', type: 'email', required: true, source: 'auth vocabulary' });
59
63
  inputFields.push({ name: 'password', type: 'password', required: true, source: 'auth vocabulary' });
60
64
  expectedOutputs.push('On valid credentials the authenticated home/landing surface is reached');
61
- negativeCases.push('Invalid credentials → inline error, stays on the login screen');
65
+ negativeCases.push('Invalid credentials > inline error, stays on the login screen');
62
66
  edgeCases.push('Locked/rate-limited account; OTP/2FA step');
63
67
  externalDependencies.push('Authentication backend / identity provider');
64
68
  businessRules.push('Invalid credentials must not grant access');
@@ -68,14 +72,14 @@ export function buildObjective(scope) {
68
72
  happyPath.push('Proceed through the checkout/payment step');
69
73
  expectedOutputs.push('An order/subscription confirmation is shown');
70
74
  externalDependencies.push('Payment processor (use sandbox/test mode)');
71
- destructiveBoundaries.push('Do NOT submit a real payment — only a sandbox/test method, with explicit consent');
72
- negativeCases.push('Declined card → error surfaced, no charge');
75
+ destructiveBoundaries.push('Do NOT submit a real payment. Only use a sandbox/test method, with explicit consent');
76
+ negativeCases.push('Declined card > error surfaced, no charge');
73
77
  businessRules.push('A charge must only occur after explicit user confirmation');
74
78
  provenance.push({ source: 'vocabulary', detail: 'payment terms', confidence: 0.55 });
75
79
  }
76
80
  if (has(terms, DESTRUCTIVE_TERMS)) {
77
81
  destructiveBoundaries.push('Destructive actions (delete/remove/cancel) require disposable test state + candidate-bound consent');
78
- negativeCases.push('Cancel the destructive confirmation → nothing is destroyed');
82
+ negativeCases.push('Cancel the destructive confirmation > nothing is destroyed');
79
83
  edgeCases.push('Undo / recovery path after the destructive action');
80
84
  provenance.push({ source: 'vocabulary', detail: 'destructive terms', confidence: 0.5 });
81
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"objectiveModel.js","sourceRoot":"","sources":["../../src/featureTesting/objectiveModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"objectiveModel.js","sourceRoot":"","sources":["../../src/featureTesting/objectiveModel.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- // Merge a focused feature run back into cases + the durable feature map (SWIPIUM-REQ-03
2
- // "App Map Update Requirements" + "Runtime Execution Requirements"). PURE. Given the scope, the
1
+ // Merge a focused feature run back into cases + the durable feature map
2
+ // after runtime execution. PURE. Given the scope, the
3
3
  // generated cases, and the signals a run produced (qa_note outcomes, runtime screens visited,
4
4
  // evidence, exploration terminal state), it fills each case's actual result/status/evidence and
5
5
  // computes the feature's coverage delta for persistence. Honest: a feature blocked by a gate
@@ -50,14 +50,14 @@ export function mergeFeatureRun(scope, cases, signals, prior) {
50
50
  const evidence = [...c.evidence];
51
51
  if (note) {
52
52
  status = noteToStatus(note.outcome);
53
- actualResult.push(`${note.outcome}${note.reason ? ` — ${note.reason}` : ''}`);
53
+ actualResult.push(`${note.outcome}${note.reason ? `: ${note.reason}` : ''}`);
54
54
  if (note.artifactUris)
55
55
  evidence.push(...note.artifactUris);
56
56
  }
57
57
  else if (globallyBlocked && status === 'not_run') {
58
- // Honest: the run was blocked before reaching this case — blocked, not failed.
58
+ // Honest: the run was blocked before reaching this case. Blocked, not failed.
59
59
  status = 'blocked';
60
- actualResult.push(`blocked — ${signals.blockReason ?? signals.exploration?.stoppedReason ?? 'feature run was blocked before this case'}`);
60
+ actualResult.push(`blocked: ${signals.blockReason ?? signals.exploration?.stoppedReason ?? 'feature run was blocked before this case'}`);
61
61
  }
62
62
  else if (status === 'not_run') {
63
63
  actualResult.push('not executed in this run');
@@ -78,14 +78,22 @@ export function mergeFeatureRun(scope, cases, signals, prior) {
78
78
  else
79
79
  statusAfter = 'partial';
80
80
  const newRuntimeScreens = signals.visitedRuntimeScreens.filter((id) => !(prior?.runtimeScreens ?? []).includes(id));
81
- const runtimeScreens = [...new Set([...(prior?.runtimeScreens ?? []), ...scope.runtimeScreens.map((s) => s.id ?? s.name).filter(Boolean), ...signals.visitedRuntimeScreens])];
82
- const staticScreens = [...new Set([...(prior?.staticScreens ?? []), ...scope.staticScreens.map((s) => s.file ?? s.name).filter(Boolean)])];
81
+ const runtimeScreens = [
82
+ ...new Set([
83
+ ...(prior?.runtimeScreens ?? []),
84
+ ...scope.runtimeScreens.map((s) => s.id ?? s.name).filter(Boolean),
85
+ ...signals.visitedRuntimeScreens,
86
+ ]),
87
+ ];
88
+ const staticScreens = [
89
+ ...new Set([...(prior?.staticScreens ?? []), ...scope.staticScreens.map((s) => s.file ?? s.name).filter(Boolean)]),
90
+ ];
83
91
  const blockers = [];
84
92
  if (globallyBlocked)
85
93
  blockers.push(signals.blockGuidance ?? signals.blockReason ?? signals.exploration?.stoppedReason ?? 'feature run blocked');
86
94
  for (const n of signals.notes)
87
95
  if (n.outcome === 'blocked')
88
- blockers.push(`${n.workflow}: ${n.reason ?? 'blocked'}${n.recommendedSetup ? ` — ${n.recommendedSetup}` : ''}`);
96
+ blockers.push(`${n.workflow}: ${n.reason ?? 'blocked'}${n.recommendedSetup ? ` (${n.recommendedSetup})` : ''}`);
89
97
  const coverage = {
90
98
  featureId: scope.featureId,
91
99
  title: scope.title,