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