swipium 1.3.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +142 -0
- package/README.md +89 -25
- package/THREAT_MODEL.md +1 -1
- package/dist/appMap/automationLink.js +13 -3
- package/dist/appMap/automationLink.js.map +1 -1
- package/dist/appMap/build.js +28 -6
- package/dist/appMap/build.js.map +1 -1
- package/dist/appMap/codeIndex.js +29 -3
- package/dist/appMap/codeIndex.js.map +1 -1
- package/dist/appMap/featureIndex.js +20 -2
- package/dist/appMap/featureIndex.js.map +1 -1
- package/dist/appMap/featureModel.js +42 -6
- package/dist/appMap/featureModel.js.map +1 -1
- package/dist/appMap/firstRunApply.js +22 -4
- package/dist/appMap/firstRunApply.js.map +1 -1
- package/dist/appMap/fsWalk.js +19 -2
- package/dist/appMap/fsWalk.js.map +1 -1
- package/dist/appMap/issues.js +0 -20
- package/dist/appMap/issues.js.map +1 -1
- package/dist/appMap/migrations.js +1 -1
- package/dist/appMap/migrations.js.map +1 -1
- package/dist/appMap/prelaunch.js.map +1 -1
- package/dist/appMap/projectRegistry.js +8 -2
- package/dist/appMap/projectRegistry.js.map +1 -1
- package/dist/appMap/query.js +20 -4
- package/dist/appMap/query.js.map +1 -1
- package/dist/appMap/runtimeMerge.js +9 -2
- package/dist/appMap/runtimeMerge.js.map +1 -1
- package/dist/appMap/schema.js.map +1 -1
- package/dist/appMap/screenMatch.js +5 -1
- package/dist/appMap/screenMatch.js.map +1 -1
- package/dist/appMap/staticScan.js +134 -22
- package/dist/appMap/staticScan.js.map +1 -1
- package/dist/appMap/store.js +4 -79
- package/dist/appMap/store.js.map +1 -1
- package/dist/appMap/tsAstScan.js +31 -9
- package/dist/appMap/tsAstScan.js.map +1 -1
- package/dist/artifacts/bundletool.js +44 -7
- package/dist/artifacts/bundletool.js.map +1 -1
- package/dist/artifacts/resolve.js +33 -6
- package/dist/artifacts/resolve.js.map +1 -1
- package/dist/automation/capabilities.js +109 -27
- package/dist/automation/capabilities.js.map +1 -1
- package/dist/automation/gestures.js +5 -1
- package/dist/automation/gestures.js.map +1 -1
- package/dist/automation/plan.js +65 -17
- package/dist/automation/plan.js.map +1 -1
- package/dist/automation/report.js +12 -2
- package/dist/automation/report.js.map +1 -1
- package/dist/automation/selectors.js +8 -3
- package/dist/automation/selectors.js.map +1 -1
- package/dist/automation/types.js.map +1 -1
- package/dist/automation/waits.js +9 -3
- package/dist/automation/waits.js.map +1 -1
- package/dist/automation/webview.js +7 -1
- package/dist/automation/webview.js.map +1 -1
- package/dist/automationGen/appiumModel.js +3 -1
- package/dist/automationGen/appiumModel.js.map +1 -1
- package/dist/automationGen/ciEmitter.js +1 -1
- package/dist/automationGen/ciEmitter.js.map +1 -1
- package/dist/automationGen/jsEmitter.js +29 -21
- package/dist/automationGen/jsEmitter.js.map +1 -1
- package/dist/automationGen/projectProfile.js +5 -1
- package/dist/automationGen/projectProfile.js.map +1 -1
- package/dist/automationGen/pythonEmitter.js +3 -3
- package/dist/automationGen/pythonEmitter.js.map +1 -1
- package/dist/automationGen/readmeEmitter.js.map +1 -1
- package/dist/automationGen/suitePlan.js +11 -6
- package/dist/automationGen/suitePlan.js.map +1 -1
- package/dist/automationGen/validation.js +33 -5
- package/dist/automationGen/validation.js.map +1 -1
- package/dist/build/parseBuildLog.js +234 -30
- package/dist/build/parseBuildLog.js.map +1 -1
- package/dist/build/plan.js +33 -12
- package/dist/build/plan.js.map +1 -1
- package/dist/ci/preflight.js.map +1 -1
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/scan.js +1 -1
- package/dist/cli/scan.js.map +1 -1
- package/dist/cli/suite.js +2 -2
- package/dist/cli/suite.js.map +1 -1
- package/dist/cli/verify.js.map +1 -1
- package/dist/context/detect.js +10 -4
- package/dist/context/detect.js.map +1 -1
- package/dist/context/findApps.js +16 -2
- package/dist/context/findApps.js.map +1 -1
- package/dist/context/scan.js.map +1 -1
- package/dist/core/target.js +7 -5
- package/dist/core/target.js.map +1 -1
- package/dist/core/targetPlan.js +135 -17
- package/dist/core/targetPlan.js.map +1 -1
- package/dist/drivers/DirectDriver.js +17 -7
- package/dist/drivers/DirectDriver.js.map +1 -1
- package/dist/drivers/SimctlDriver.js +4 -1
- package/dist/drivers/SimctlDriver.js.map +1 -1
- package/dist/drivers/WdaDriver.js +15 -5
- package/dist/drivers/WdaDriver.js.map +1 -1
- package/dist/explore/candidates.js +5 -1
- package/dist/explore/candidates.js.map +1 -1
- package/dist/explore/graph.js +11 -2
- package/dist/explore/graph.js.map +1 -1
- package/dist/explore/memory.js +4 -1
- package/dist/explore/memory.js.map +1 -1
- package/dist/explore/planner.js +54 -9
- package/dist/explore/planner.js.map +1 -1
- package/dist/explore/policy.js +6 -1
- package/dist/explore/policy.js.map +1 -1
- package/dist/explore/runner.js +179 -23
- package/dist/explore/runner.js.map +1 -1
- package/dist/explore/signatures.js +3 -1
- package/dist/explore/signatures.js.map +1 -1
- package/dist/explore/suite.js +3 -1
- package/dist/explore/suite.js.map +1 -1
- package/dist/featureTesting/executionBootstrap.js +128 -19
- package/dist/featureTesting/executionBootstrap.js.map +1 -1
- package/dist/featureTesting/featureMap.js +4 -1
- package/dist/featureTesting/featureMap.js.map +1 -1
- package/dist/featureTesting/featureScope.js +94 -13
- package/dist/featureTesting/featureScope.js.map +1 -1
- package/dist/featureTesting/mapFeatureScope.js +37 -8
- package/dist/featureTesting/mapFeatureScope.js.map +1 -1
- package/dist/featureTesting/objectiveModel.js +5 -1
- package/dist/featureTesting/objectiveModel.js.map +1 -1
- package/dist/featureTesting/resultMerge.js +10 -2
- package/dist/featureTesting/resultMerge.js.map +1 -1
- package/dist/featureTesting/sources.js +4 -1
- package/dist/featureTesting/sources.js.map +1 -1
- package/dist/featureTesting/suiteBridge.js +7 -1
- package/dist/featureTesting/suiteBridge.js.map +1 -1
- package/dist/featureTesting/synonyms.js +31 -3
- package/dist/featureTesting/synonyms.js.map +1 -1
- package/dist/featureTesting/testCaseFactory.js +16 -4
- package/dist/featureTesting/testCaseFactory.js.map +1 -1
- package/dist/featureTesting/testPlan.js +32 -10
- package/dist/featureTesting/testPlan.js.map +1 -1
- package/dist/firstRun/classifyScreen.js +4 -1
- package/dist/firstRun/classifyScreen.js.map +1 -1
- package/dist/firstRun/firstRunPlanner.js +5 -2
- package/dist/firstRun/firstRunPlanner.js.map +1 -1
- package/dist/firstRun/firstRunRunner.js +84 -23
- package/dist/firstRun/firstRunRunner.js.map +1 -1
- package/dist/firstRun/generatedDataPolicy.js +16 -6
- package/dist/firstRun/generatedDataPolicy.js.map +1 -1
- package/dist/firstRun/inputPlanner.js +40 -6
- package/dist/firstRun/inputPlanner.js.map +1 -1
- package/dist/firstRun/paywallPolicy.js.map +1 -1
- package/dist/fixtures/catalog.js +39 -6
- package/dist/fixtures/catalog.js.map +1 -1
- package/dist/flows/generate.js +53 -12
- package/dist/flows/generate.js.map +1 -1
- package/dist/flows/lint.js +88 -14
- package/dist/flows/lint.js.map +1 -1
- package/dist/flows/pack.js +18 -2
- package/dist/flows/pack.js.map +1 -1
- package/dist/flows/repair.js +71 -20
- package/dist/flows/repair.js.map +1 -1
- package/dist/flows/run.js +164 -51
- package/dist/flows/run.js.map +1 -1
- package/dist/flows/schema.js +57 -20
- package/dist/flows/schema.js.map +1 -1
- package/dist/flows/seedExec.js +5 -1
- package/dist/flows/seedExec.js.map +1 -1
- package/dist/ios/signing.js +32 -3
- package/dist/ios/signing.js.map +1 -1
- package/dist/issues/classify.js +12 -4
- package/dist/issues/classify.js.map +1 -1
- package/dist/issues/fingerprint.js +11 -5
- package/dist/issues/fingerprint.js.map +1 -1
- package/dist/issues/index.js +4 -20
- package/dist/issues/index.js.map +1 -1
- package/dist/issues/metrics.js +2 -1
- package/dist/issues/metrics.js.map +1 -1
- package/dist/issues/recurrence.js.map +1 -1
- package/dist/issues/report.js +8 -4
- package/dist/issues/report.js.map +1 -1
- package/dist/issues/reportBridge.js +36 -5
- package/dist/issues/reportBridge.js.map +1 -1
- package/dist/issues/schema.js.map +1 -1
- package/dist/issues/store.js.map +1 -1
- package/dist/lib/android.js +9 -1
- package/dist/lib/android.js.map +1 -1
- package/dist/lib/device.js +21 -5
- package/dist/lib/device.js.map +1 -1
- package/dist/lib/image.js +11 -2
- package/dist/lib/image.js.map +1 -1
- package/dist/lib/lockfile.js +60 -0
- package/dist/lib/lockfile.js.map +1 -0
- package/dist/lib/needsInput.js +6 -3
- package/dist/lib/needsInput.js.map +1 -1
- package/dist/lib/png.js +2 -1
- package/dist/lib/png.js.map +1 -1
- package/dist/lib/result.js +16 -1
- package/dist/lib/result.js.map +1 -1
- package/dist/lib/schemaHash.js +4 -2
- package/dist/lib/schemaHash.js.map +1 -1
- package/dist/lib/sensitive.js +3 -1
- package/dist/lib/sensitive.js.map +1 -1
- package/dist/lib/simctl.js.map +1 -1
- package/dist/lib/spawn.js +29 -10
- package/dist/lib/spawn.js.map +1 -1
- package/dist/lib/wda.js +27 -10
- package/dist/lib/wda.js.map +1 -1
- package/dist/lib/wdaConfig.js +12 -5
- package/dist/lib/wdaConfig.js.map +1 -1
- package/dist/lib/wdaTune.js +52 -23
- package/dist/lib/wdaTune.js.map +1 -1
- package/dist/mobileAudit/checks.js +141 -19
- package/dist/mobileAudit/checks.js.map +1 -1
- package/dist/mobileAudit/profiles.js +120 -19
- package/dist/mobileAudit/profiles.js.map +1 -1
- package/dist/mobileAudit/results.js +7 -2
- package/dist/mobileAudit/results.js.map +1 -1
- package/dist/mobileAudit/runner.js +144 -19
- package/dist/mobileAudit/runner.js.map +1 -1
- package/dist/oracle/auth.js.map +1 -1
- package/dist/oracle/failures.js +888 -131
- package/dist/oracle/failures.js.map +1 -1
- package/dist/oracle/health.js +90 -14
- package/dist/oracle/health.js.map +1 -1
- package/dist/oracle/locator.js +147 -18
- package/dist/oracle/locator.js.map +1 -1
- package/dist/oracle/record.js.map +1 -1
- package/dist/orchestration/goal.js +3 -9
- package/dist/orchestration/goal.js.map +1 -1
- package/dist/orchestration/testThis/execute.js +126 -0
- package/dist/orchestration/testThis/execute.js.map +1 -0
- package/dist/orchestration/testThis/pipeline.js +324 -0
- package/dist/orchestration/testThis/pipeline.js.map +1 -0
- package/dist/orchestration/testThis/plan.js +430 -0
- package/dist/orchestration/testThis/plan.js.map +1 -0
- package/dist/orchestration/testThis/terminal.js +118 -0
- package/dist/orchestration/testThis/terminal.js.map +1 -0
- package/dist/orchestration/testThis/types.js +12 -0
- package/dist/orchestration/testThis/types.js.map +1 -0
- package/dist/plan/plan.js.map +1 -1
- package/dist/prompts/index.js +3 -3
- package/dist/prompts/index.js.map +1 -1
- package/dist/report/coverage.js +0 -1
- package/dist/report/coverage.js.map +1 -1
- package/dist/report/evidence.js.map +1 -1
- package/dist/report/export.js +59 -37
- package/dist/report/export.js.map +1 -1
- package/dist/report/flake.js +13 -14
- package/dist/report/flake.js.map +1 -1
- package/dist/report/history.js +72 -38
- package/dist/report/history.js.map +1 -1
- package/dist/report/policy.js +11 -3
- package/dist/report/policy.js.map +1 -1
- package/dist/report/qaLevel.js +2 -8
- package/dist/report/qaLevel.js.map +1 -1
- package/dist/report/readiness.js +42 -12
- package/dist/report/readiness.js.map +1 -1
- package/dist/report/summary.js.map +1 -1
- package/dist/report/timing.js +23 -23
- package/dist/report/timing.js.map +1 -1
- package/dist/server.js +42 -37
- package/dist/server.js.map +1 -1
- package/dist/services/automationGenerate.js.map +1 -1
- package/dist/services/build.js +8 -2
- package/dist/services/build.js.map +1 -1
- package/dist/services/preflight.js +38 -6
- package/dist/services/preflight.js.map +1 -1
- package/dist/services/prepareAndroid.js +46 -10
- package/dist/services/prepareAndroid.js.map +1 -1
- package/dist/services/prepareIos.js +72 -10
- package/dist/services/prepareIos.js.map +1 -1
- package/dist/services/report.js +173 -37
- package/dist/services/report.js.map +1 -1
- package/dist/services/smoke.js +36 -6
- package/dist/services/smoke.js.map +1 -1
- package/dist/services/suiteGenerate.js +16 -4
- package/dist/services/suiteGenerate.js.map +1 -1
- package/dist/services/testSuiteKnowledge.js +38 -6
- package/dist/services/testSuiteKnowledge.js.map +1 -1
- package/dist/session/attach.js +16 -0
- package/dist/session/attach.js.map +1 -1
- package/dist/session/processRegistry.js +164 -0
- package/dist/session/processRegistry.js.map +1 -0
- package/dist/session/progress.js +1 -1
- package/dist/session/progress.js.map +1 -1
- package/dist/session/store.js +216 -43
- package/dist/session/store.js.map +1 -1
- package/dist/snapshot/overlays.js +7 -2
- package/dist/snapshot/overlays.js.map +1 -1
- package/dist/snapshot/parse.js +2 -8
- package/dist/snapshot/parse.js.map +1 -1
- package/dist/snapshot/present.js +27 -3
- package/dist/snapshot/present.js.map +1 -1
- package/dist/state/profile.js +36 -9
- package/dist/state/profile.js.map +1 -1
- package/dist/suite/compile.js +7 -2
- package/dist/suite/compile.js.map +1 -1
- package/dist/suite/lint.js +21 -3
- package/dist/suite/lint.js.map +1 -1
- package/dist/suite/pom.js +26 -4
- package/dist/suite/pom.js.map +1 -1
- package/dist/suite/testcase.js +6 -4
- package/dist/suite/testcase.js.map +1 -1
- package/dist/testSuite/exporter.js +6 -2
- package/dist/testSuite/exporter.js.map +1 -1
- package/dist/testSuite/generator.js +31 -6
- package/dist/testSuite/generator.js.map +1 -1
- package/dist/testSuite/issueLinks.js.map +1 -1
- package/dist/testSuite/lint.js +1 -1
- package/dist/testSuite/lint.js.map +1 -1
- package/dist/testSuite/merge.js +8 -2
- package/dist/testSuite/merge.js.map +1 -1
- package/dist/testSuite/schema.js +16 -11
- package/dist/testSuite/schema.js.map +1 -1
- package/dist/testSuite/store.js +9 -1
- package/dist/testSuite/store.js.map +1 -1
- package/dist/tools/act.js +107 -43
- package/dist/tools/act.js.map +1 -1
- package/dist/tools/agent.js +123 -25
- package/dist/tools/agent.js.map +1 -1
- package/dist/tools/appControl.js +16 -3
- package/dist/tools/appControl.js.map +1 -1
- package/dist/tools/appMap.js +331 -63
- package/dist/tools/appMap.js.map +1 -1
- package/dist/tools/assertVisual.js +12 -2
- package/dist/tools/assertVisual.js.map +1 -1
- package/dist/tools/automationGenerate.js +276 -241
- package/dist/tools/automationGenerate.js.map +1 -1
- package/dist/tools/build.js +92 -41
- package/dist/tools/build.js.map +1 -1
- package/dist/tools/bundletool.js +139 -28
- package/dist/tools/bundletool.js.map +1 -1
- package/dist/tools/capabilities.js +45 -71
- package/dist/tools/capabilities.js.map +1 -1
- package/dist/tools/clearOverlay.js +45 -8
- package/dist/tools/clearOverlay.js.map +1 -1
- package/dist/tools/detectContext.js +1 -1
- package/dist/tools/detectContext.js.map +1 -1
- package/dist/tools/device.js +44 -7
- package/dist/tools/device.js.map +1 -1
- package/dist/tools/doctor.js +38 -15
- package/dist/tools/doctor.js.map +1 -1
- package/dist/tools/explore.js +96 -22
- package/dist/tools/explore.js.map +1 -1
- package/dist/tools/featureTesting.js +153 -114
- package/dist/tools/featureTesting.js.map +1 -1
- package/dist/tools/firstRun.js +95 -60
- package/dist/tools/firstRun.js.map +1 -1
- package/dist/tools/flow.js +236 -101
- package/dist/tools/flow.js.map +1 -1
- package/dist/tools/flowGenerate.js +51 -47
- package/dist/tools/flowGenerate.js.map +1 -1
- package/dist/tools/flowRepair.js +24 -4
- package/dist/tools/flowRepair.js.map +1 -1
- package/dist/tools/generate.js +236 -0
- package/dist/tools/generate.js.map +1 -0
- package/dist/tools/getArtifact.js +21 -3
- package/dist/tools/getArtifact.js.map +1 -1
- package/dist/tools/health.js +3 -1
- package/dist/tools/health.js.map +1 -1
- package/dist/tools/history.js +40 -10
- package/dist/tools/history.js.map +1 -1
- package/dist/tools/ios.js +157 -25
- package/dist/tools/ios.js.map +1 -1
- package/dist/tools/issues.js +19 -150
- package/dist/tools/issues.js.map +1 -1
- package/dist/tools/jobs.js +23 -4
- package/dist/tools/jobs.js.map +1 -1
- package/dist/tools/locator.js +36 -8
- package/dist/tools/locator.js.map +1 -1
- package/dist/tools/metro.js +61 -16
- package/dist/tools/metro.js.map +1 -1
- package/dist/tools/mobileAudit.js +67 -15
- package/dist/tools/mobileAudit.js.map +1 -1
- package/dist/tools/network.js +6 -1
- package/dist/tools/network.js.map +1 -1
- package/dist/tools/note.js +20 -6
- package/dist/tools/note.js.map +1 -1
- package/dist/tools/permissions.js +31 -6
- package/dist/tools/permissions.js.map +1 -1
- package/dist/tools/plan.js +5 -2
- package/dist/tools/plan.js.map +1 -1
- package/dist/tools/prepareIosTarget.js +31 -8
- package/dist/tools/prepareIosTarget.js.map +1 -1
- package/dist/tools/prepareTarget.js +97 -18
- package/dist/tools/prepareTarget.js.map +1 -1
- package/dist/tools/report.js +24 -5
- package/dist/tools/report.js.map +1 -1
- package/dist/tools/resolveArtifact.js +9 -5
- package/dist/tools/resolveArtifact.js.map +1 -1
- package/dist/tools/resolveTarget.js +11 -2
- package/dist/tools/resolveTarget.js.map +1 -1
- package/dist/tools/screenInfo.js +8 -2
- package/dist/tools/screenInfo.js.map +1 -1
- package/dist/tools/screenRecord.js +74 -11
- package/dist/tools/screenRecord.js.map +1 -1
- package/dist/tools/screenshot.js +23 -6
- package/dist/tools/screenshot.js.map +1 -1
- package/dist/tools/seed.js +38 -6
- package/dist/tools/seed.js.map +1 -1
- package/dist/tools/smoke.js +16 -3
- package/dist/tools/smoke.js.map +1 -1
- package/dist/tools/snapshot.js +59 -6
- package/dist/tools/snapshot.js.map +1 -1
- package/dist/tools/startSession.js +54 -9
- package/dist/tools/startSession.js.map +1 -1
- package/dist/tools/state.js +62 -15
- package/dist/tools/state.js.map +1 -1
- package/dist/tools/suite.js +350 -298
- package/dist/tools/suite.js.map +1 -1
- package/dist/tools/testSuite.js +94 -28
- package/dist/tools/testSuite.js.map +1 -1
- package/dist/tools/testThis.js +30 -793
- package/dist/tools/testThis.js.map +1 -1
- package/dist/tools/visual.js +124 -18
- package/dist/tools/visual.js.map +1 -1
- package/dist/tools/visualText.js +51 -6
- package/dist/tools/visualText.js.map +1 -1
- package/dist/tools/wait.js +18 -3
- package/dist/tools/wait.js.map +1 -1
- package/dist/tools/wda.js +157 -29
- package/dist/tools/wda.js.map +1 -1
- package/dist/version.js +17 -49
- package/dist/version.js.map +1 -1
- package/dist/visual/ocr.js +12 -2
- package/dist/visual/ocr.js.map +1 -1
- package/dist/visual/provider.js +7 -3
- package/dist/visual/provider.js.map +1 -1
- package/docs/mcp-server.md +44 -4
- package/docs/tools.md +42 -100
- package/package.json +14 -5
- package/dist/appMap/diff.js +0 -60
- package/dist/appMap/diff.js.map +0 -1
- package/dist/automation/maestroIr.js +0 -282
- package/dist/automation/maestroIr.js.map +0 -1
- package/dist/interop/maestro.js +0 -151
- package/dist/interop/maestro.js.map +0 -1
- package/dist/tools/idling.js +0 -104
- package/dist/tools/idling.js.map +0 -1
- package/dist/tools/inputCapabilities.js +0 -30
- package/dist/tools/inputCapabilities.js.map +0 -1
- package/dist/tools/maestro.js +0 -78
- package/dist/tools/maestro.js.map +0 -1
package/dist/tools/act.js
CHANGED
|
@@ -16,12 +16,20 @@ import { resolveTarget, setsEqual } from '../core/target.js';
|
|
|
16
16
|
import { recordableNativeSelector, recordableTap } from '../flows/generate.js';
|
|
17
17
|
import { classifyFlowDriverError } from '../flows/run.js';
|
|
18
18
|
import { structuredSignature } from '../explore/signatures.js';
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (!
|
|
22
|
-
return
|
|
23
|
-
|
|
19
|
+
/** Drop the (already-handled) native selector before generic ref/text/id/coords resolution. */
|
|
20
|
+
function stripSelector(t) {
|
|
21
|
+
if (!t)
|
|
22
|
+
return undefined;
|
|
23
|
+
const { selector: _selector, ...rest } = t;
|
|
24
|
+
return rest;
|
|
24
25
|
}
|
|
26
|
+
/** Discriminated native-selector schema (1.5.0: replaces the free-form "strategy=value" string). */
|
|
27
|
+
const nativeSelectorSchema = z.object({
|
|
28
|
+
using: z
|
|
29
|
+
.enum(['accessibility id', 'name', 'predicate string', 'class chain'])
|
|
30
|
+
.describe('Locator strategy: "accessibility id" (accessibilityIdentifier/testID), "name", "predicate string" (NSPredicate, e.g. label == "Continue"), or "class chain" (XCUITest class chain, e.g. **/XCUIElementTypeButton[`label == "Continue"`]).'),
|
|
31
|
+
value: z.string().describe('The locator value for the chosen strategy.'),
|
|
32
|
+
});
|
|
25
33
|
function screenTitleFromNodes(nodes) {
|
|
26
34
|
if (!nodes.length)
|
|
27
35
|
return undefined;
|
|
@@ -41,7 +49,13 @@ function recordingScreenContext(session) {
|
|
|
41
49
|
return { screen: screenTitleFromNodes(nodes), screenSig: structuredSignature(els) };
|
|
42
50
|
}
|
|
43
51
|
function recordableNativeTarget(session, native) {
|
|
44
|
-
const selectorKind = native.using === 'accessibility id'
|
|
52
|
+
const selectorKind = native.using === 'accessibility id'
|
|
53
|
+
? 'accessibility_id'
|
|
54
|
+
: native.using === 'name'
|
|
55
|
+
? 'name'
|
|
56
|
+
: native.using === 'predicate string'
|
|
57
|
+
? 'predicate'
|
|
58
|
+
: 'class_chain';
|
|
45
59
|
return {
|
|
46
60
|
selector: native.value,
|
|
47
61
|
selectorKind,
|
|
@@ -53,14 +67,14 @@ export function registerAct(server, sessions) {
|
|
|
53
67
|
server.registerTool('qa_act', {
|
|
54
68
|
title: 'Act on the screen',
|
|
55
69
|
description: 'Perform one synchronized UI action and observe the result. Actions & their fields:\n' +
|
|
56
|
-
'- tap: target {ref|text|id|selector|x,y}\n' +
|
|
70
|
+
'- tap: target {ref|text|id|selector:{using,value}|x,y}\n' +
|
|
57
71
|
'- type: target (a field) + text + mode:"replace"|"append" (default replace); optional submit:true\n' +
|
|
58
72
|
'- clear: target (a field), focuses it and clears existing text\n' +
|
|
59
73
|
'- swipe: direction up|down|left|right (optional target as start point)\n' +
|
|
60
74
|
'- scroll: direction + optional untilVisible {text|id} + maxScrolls (default 8)\n' +
|
|
61
75
|
'- press: key back|home|enter\n' +
|
|
62
76
|
'- open_url: url (deep link)\n' +
|
|
63
|
-
'- wait: for {settled:true | ref | text | id | selector} + timeoutMs\n' +
|
|
77
|
+
'- wait: for {settled:true | ref | text | id | selector:{using,value}} + timeoutMs\n' +
|
|
64
78
|
'Every non-wait action auto-waits for the screen to settle, then returns the post snapshot (quality + @eN elements), whether the screen changed, and a health check.',
|
|
65
79
|
inputSchema: {
|
|
66
80
|
sessionId: z.string(),
|
|
@@ -70,7 +84,9 @@ export function registerAct(server, sessions) {
|
|
|
70
84
|
ref: z.string().optional(),
|
|
71
85
|
text: z.string().optional(),
|
|
72
86
|
id: z.string().optional(),
|
|
73
|
-
selector:
|
|
87
|
+
selector: nativeSelectorSchema
|
|
88
|
+
.optional()
|
|
89
|
+
.describe('Backend-native selector object, e.g. { using: "accessibility id", value: "email" }. Requires native selector support (WDA-backed iOS); on other backends target by ref/text/id/coordinates.'),
|
|
74
90
|
index: z.number().optional(),
|
|
75
91
|
x: z.number().optional(),
|
|
76
92
|
y: z.number().optional(),
|
|
@@ -84,15 +100,23 @@ export function registerAct(server, sessions) {
|
|
|
84
100
|
maxScrolls: z.number().optional(),
|
|
85
101
|
key: z.enum(['back', 'home', 'enter']).optional(),
|
|
86
102
|
url: z.string().optional(),
|
|
87
|
-
durationMs: z
|
|
88
|
-
|
|
103
|
+
durationMs: z
|
|
104
|
+
.number()
|
|
105
|
+
.optional()
|
|
106
|
+
.describe('tap press duration. Coordinate taps default to ~100ms (RN ignores instant taps); ref/selector taps are instant unless set.'),
|
|
107
|
+
ignoreOverlay: z
|
|
108
|
+
.boolean()
|
|
109
|
+
.optional()
|
|
110
|
+
.describe('tap even if an overlay obstructs the target (default false → returns blockedByOverlay).'),
|
|
89
111
|
for: z
|
|
90
112
|
.object({
|
|
91
113
|
settled: z.boolean().optional(),
|
|
92
114
|
ref: z.string().optional(),
|
|
93
115
|
text: z.string().optional(),
|
|
94
116
|
id: z.string().optional(),
|
|
95
|
-
selector:
|
|
117
|
+
selector: nativeSelectorSchema
|
|
118
|
+
.optional()
|
|
119
|
+
.describe('Backend-native selector object, e.g. { using: "accessibility id", value: "email" }. Requires WDA/native selector support.'),
|
|
96
120
|
})
|
|
97
121
|
.optional(),
|
|
98
122
|
timeoutMs: z.number().optional(),
|
|
@@ -115,7 +139,9 @@ export function registerAct(server, sessions) {
|
|
|
115
139
|
changedState: false,
|
|
116
140
|
retrySafe: false,
|
|
117
141
|
failureCode: 'BACKEND_UNSUPPORTED',
|
|
118
|
-
nextSteps: [
|
|
142
|
+
nextSteps: [
|
|
143
|
+
'Attach WebDriverAgent with qa_wda for structured tap/type/snapshot. Without WDA, navigate via qa_ios deep links and verify with qa_assert_visual.',
|
|
144
|
+
],
|
|
119
145
|
});
|
|
120
146
|
}
|
|
121
147
|
// Budget gate (review §4.1 / Rec 4): refuse new work once the session budget is spent.
|
|
@@ -134,15 +160,12 @@ export function registerAct(server, sessions) {
|
|
|
134
160
|
const s = await settle(d, { timeoutMs });
|
|
135
161
|
const post = parseSnapshot(s.xml);
|
|
136
162
|
session.lastSnapshot = { fullByRef: post.fullByRef, signatures: new Set(post.elements.map(signature)), allNodes: post.allNodes };
|
|
137
|
-
const { elements: shown, rendered } = presentElements(post.elements, makeRedactor(session.secrets));
|
|
138
|
-
return qaOk({ action, settled: s.settled, quality: post.quality.verdict, elements: shown }, `wait(settled)=${s.settled}\n\n${rendered}`);
|
|
163
|
+
const { elements: shown, rendered, omitted } = presentElements(post.elements, makeRedactor(session.secrets));
|
|
164
|
+
return qaOk({ action, settled: s.settled, quality: post.quality.verdict, elementsOmitted: omitted, elements: shown }, `wait(settled)=${s.settled}\n\n${rendered}`);
|
|
139
165
|
}
|
|
140
166
|
const deadline = Date.now() + timeoutMs;
|
|
141
167
|
const want = args.for;
|
|
142
|
-
const native =
|
|
143
|
-
if (want?.selector && !native) {
|
|
144
|
-
return qaError({ what: `Unsupported wait selector ${JSON.stringify(want.selector)}`, changedState: false, retrySafe: true, nextSteps: ['Use accessibility id=..., name=..., predicate string=..., class chain=..., or wait by text/id/ref.'] });
|
|
145
|
-
}
|
|
168
|
+
const native = want?.selector ?? null;
|
|
146
169
|
if (native) {
|
|
147
170
|
if (!d.existsBySelector)
|
|
148
171
|
return qaError({
|
|
@@ -154,23 +177,38 @@ export function registerAct(server, sessions) {
|
|
|
154
177
|
});
|
|
155
178
|
while (Date.now() < deadline) {
|
|
156
179
|
if (await d.existsBySelector(native.using, native.value)) {
|
|
157
|
-
return qaOk({ action, found: true, selector: want?.selector, via: 'native-selector' }, `wait: found ${
|
|
180
|
+
return qaOk({ action, found: true, selector: want?.selector, via: 'native-selector' }, `wait: found ${native.using}=${native.value}`);
|
|
158
181
|
}
|
|
159
182
|
await new Promise((r) => setTimeout(r, 400));
|
|
160
183
|
}
|
|
161
|
-
return qaError({
|
|
184
|
+
return qaError({
|
|
185
|
+
what: `wait timed out (${timeoutMs}ms) for ${JSON.stringify(want)}`,
|
|
186
|
+
changedState: false,
|
|
187
|
+
retrySafe: true,
|
|
188
|
+
nextSteps: ['Re-check the native selector value, or run qa_snapshot to inspect the current screen.'],
|
|
189
|
+
});
|
|
162
190
|
}
|
|
163
191
|
while (Date.now() < deadline) {
|
|
164
192
|
const parsed = parseSnapshot(await d.dumpXml());
|
|
165
|
-
session.lastSnapshot = {
|
|
193
|
+
session.lastSnapshot = {
|
|
194
|
+
fullByRef: parsed.fullByRef,
|
|
195
|
+
signatures: new Set(parsed.elements.map(signature)),
|
|
196
|
+
allNodes: parsed.allNodes,
|
|
197
|
+
};
|
|
166
198
|
const hit = parsed.elements.find((e) => (want.ref && e.ref === want.ref) ||
|
|
167
199
|
(want.id && e.id === want.id) ||
|
|
168
|
-
(want.text &&
|
|
200
|
+
(want.text &&
|
|
201
|
+
(e.text?.toLowerCase().includes(want.text.toLowerCase()) || e.label?.toLowerCase().includes(want.text.toLowerCase()))));
|
|
169
202
|
if (hit)
|
|
170
203
|
return qaOk({ action, found: true, ref: hit.ref }, `wait: found ${hit.ref}`);
|
|
171
204
|
await new Promise((r) => setTimeout(r, 400));
|
|
172
205
|
}
|
|
173
|
-
return qaError({
|
|
206
|
+
return qaError({
|
|
207
|
+
what: `wait timed out (${timeoutMs}ms) for ${JSON.stringify(want)}`,
|
|
208
|
+
changedState: false,
|
|
209
|
+
retrySafe: true,
|
|
210
|
+
nextSteps: ['Re-snapshot; the element may use different text/id.'],
|
|
211
|
+
});
|
|
174
212
|
}
|
|
175
213
|
// Phase timing (P1.6): mark the first real action so the report can split setup vs active.
|
|
176
214
|
sessions.milestone(session, 'first_action');
|
|
@@ -184,7 +222,7 @@ export function registerAct(server, sessions) {
|
|
|
184
222
|
try {
|
|
185
223
|
switch (action) {
|
|
186
224
|
case 'tap': {
|
|
187
|
-
const native =
|
|
225
|
+
const native = args.target?.selector ?? null;
|
|
188
226
|
if (native) {
|
|
189
227
|
if (!d.tapBySelector)
|
|
190
228
|
return qaError({
|
|
@@ -199,7 +237,7 @@ export function registerAct(server, sessions) {
|
|
|
199
237
|
toRecord = { action: 'tap', ...recordableNativeTarget(session, native) };
|
|
200
238
|
break;
|
|
201
239
|
}
|
|
202
|
-
const t = await resolveTarget(session, args.target);
|
|
240
|
+
const t = await resolveTarget(session, stripSelector(args.target));
|
|
203
241
|
if ('error' in t)
|
|
204
242
|
return fail(t.error, false);
|
|
205
243
|
// Overlay obstruction check (CR4): if another element is drawn over the target
|
|
@@ -214,7 +252,9 @@ export function registerAct(server, sessions) {
|
|
|
214
252
|
changedState: false,
|
|
215
253
|
retrySafe: true,
|
|
216
254
|
failureCode: 'OVERLAY_OBSTRUCTION',
|
|
217
|
-
nextSteps: [
|
|
255
|
+
nextSteps: [
|
|
256
|
+
'Call qa_clear_overlay (auto, or hide_keyboard/minimize_logbox), then retry — or pass ignoreOverlay:true to tap anyway.',
|
|
257
|
+
],
|
|
218
258
|
}, { blockedByOverlay: true, obstructedBy: obs.by });
|
|
219
259
|
}
|
|
220
260
|
}
|
|
@@ -228,13 +268,13 @@ export function registerAct(server, sessions) {
|
|
|
228
268
|
await d.tapXY(t.x, t.y);
|
|
229
269
|
tapRetry = { x: t.x, y: t.y, instant: !durationMs };
|
|
230
270
|
meta = { tappedAt: [t.x, t.y], via: t.via, ...(durationMs ? { durationMs } : {}) };
|
|
231
|
-
toRecord = { action: 'tap', ...recordableTap(session, args.target, t) };
|
|
271
|
+
toRecord = { action: 'tap', ...recordableTap(session, stripSelector(args.target), t) };
|
|
232
272
|
break;
|
|
233
273
|
}
|
|
234
274
|
case 'type': {
|
|
235
275
|
if (args.text == null)
|
|
236
276
|
return fail('type requires `text`.', false);
|
|
237
|
-
const native =
|
|
277
|
+
const native = args.target?.selector ?? null;
|
|
238
278
|
if (native) {
|
|
239
279
|
if (!d.typeBySelector)
|
|
240
280
|
return qaError({
|
|
@@ -256,13 +296,20 @@ export function registerAct(server, sessions) {
|
|
|
256
296
|
await d.clearBySelector(native.using, native.value);
|
|
257
297
|
}
|
|
258
298
|
await d.typeBySelector(native.using, native.value, args.text);
|
|
259
|
-
meta = {
|
|
299
|
+
meta = {
|
|
300
|
+
typedChars: args.text.length,
|
|
301
|
+
redacted: true,
|
|
302
|
+
mode: args.mode ?? 'replace',
|
|
303
|
+
via: 'native-selector',
|
|
304
|
+
selector: args.target?.selector,
|
|
305
|
+
submit: !!args.submit,
|
|
306
|
+
};
|
|
260
307
|
toRecord = { action: 'type', ...recordableNativeTarget(session, native), text: args.text };
|
|
261
308
|
if (args.submit)
|
|
262
309
|
await d.pressKey('enter');
|
|
263
310
|
break;
|
|
264
311
|
}
|
|
265
|
-
const t = await resolveTarget(session, args.target);
|
|
312
|
+
const t = await resolveTarget(session, stripSelector(args.target));
|
|
266
313
|
if ('error' in t)
|
|
267
314
|
return fail(t.error, false);
|
|
268
315
|
// Typing into a secure field → remember the value so it's scrubbed everywhere, and
|
|
@@ -284,7 +331,7 @@ export function registerAct(server, sessions) {
|
|
|
284
331
|
meta = { typedChars: args.text.length, redacted: true, mode: args.mode ?? 'replace', via: t.via, submit: !!args.submit };
|
|
285
332
|
// Never store a secret's value in the IR — secrets become a ${VAR} at generate time.
|
|
286
333
|
{
|
|
287
|
-
const targetRecord = recordableTap(session, args.target, t);
|
|
334
|
+
const targetRecord = recordableTap(session, stripSelector(args.target), t);
|
|
288
335
|
toRecord = {
|
|
289
336
|
action: 'type',
|
|
290
337
|
selector: targetRecord.selector,
|
|
@@ -298,7 +345,7 @@ export function registerAct(server, sessions) {
|
|
|
298
345
|
break;
|
|
299
346
|
}
|
|
300
347
|
case 'clear': {
|
|
301
|
-
const native =
|
|
348
|
+
const native = args.target?.selector ?? null;
|
|
302
349
|
if (native) {
|
|
303
350
|
if (!d.clearBySelector)
|
|
304
351
|
return qaError({
|
|
@@ -313,20 +360,20 @@ export function registerAct(server, sessions) {
|
|
|
313
360
|
toRecord = { action: 'clear', ...recordableNativeTarget(session, native) };
|
|
314
361
|
break;
|
|
315
362
|
}
|
|
316
|
-
const t = await resolveTarget(session, args.target);
|
|
363
|
+
const t = await resolveTarget(session, stripSelector(args.target));
|
|
317
364
|
if ('error' in t)
|
|
318
365
|
return fail(t.error, false);
|
|
319
366
|
await d.tapXY(t.x, t.y);
|
|
320
367
|
await new Promise((r) => setTimeout(r, 400));
|
|
321
368
|
await d.clearFocusedText(t.textLen);
|
|
322
369
|
meta = { cleared: true, via: t.via };
|
|
323
|
-
toRecord = { action: 'clear', ...recordableTap(session, args.target, t) };
|
|
370
|
+
toRecord = { action: 'clear', ...recordableTap(session, stripSelector(args.target), t) };
|
|
324
371
|
break;
|
|
325
372
|
}
|
|
326
373
|
case 'swipe': {
|
|
327
374
|
if (!args.direction)
|
|
328
375
|
return fail('swipe requires `direction`.', false);
|
|
329
|
-
const start = args.target ? await resolveTarget(session, args.target) : null;
|
|
376
|
+
const start = args.target ? await resolveTarget(session, stripSelector(args.target)) : null;
|
|
330
377
|
const sx = start && !('error' in start) ? start.x : 0;
|
|
331
378
|
const sy = start && !('error' in start) ? start.y : 0;
|
|
332
379
|
const from = sx && sy ? { x: sx, y: sy } : { x: 540, y: 1200 };
|
|
@@ -364,13 +411,20 @@ export function registerAct(server, sessions) {
|
|
|
364
411
|
if (args.untilVisible) {
|
|
365
412
|
const parsed = parseSnapshot(await d.dumpXml());
|
|
366
413
|
const u = args.untilVisible;
|
|
367
|
-
found = parsed.elements.some((e) => (u.id && e.id === u.id) ||
|
|
414
|
+
found = parsed.elements.some((e) => (u.id && e.id === u.id) ||
|
|
415
|
+
(u.text &&
|
|
416
|
+
(e.text?.toLowerCase().includes(u.text.toLowerCase()) || e.label?.toLowerCase().includes(u.text.toLowerCase()))));
|
|
368
417
|
if (found)
|
|
369
418
|
break;
|
|
370
419
|
}
|
|
371
420
|
}
|
|
372
421
|
meta = { direction: dir, untilVisibleFound: args.untilVisible ? found : undefined };
|
|
373
|
-
toRecord = {
|
|
422
|
+
toRecord = {
|
|
423
|
+
action: 'scroll',
|
|
424
|
+
direction: dir,
|
|
425
|
+
selector: args.untilVisible?.text,
|
|
426
|
+
exportability: args.untilVisible?.text ? 'semantic' : 'coordinate',
|
|
427
|
+
};
|
|
374
428
|
break;
|
|
375
429
|
}
|
|
376
430
|
case 'press': {
|
|
@@ -398,12 +452,14 @@ export function registerAct(server, sessions) {
|
|
|
398
452
|
changedState: true,
|
|
399
453
|
retrySafe: !['WDA_SESSION_FAILED', 'UNKNOWN'].includes(failureCode),
|
|
400
454
|
failureCode,
|
|
401
|
-
nextSteps: failureCode === 'UNKNOWN'
|
|
455
|
+
nextSteps: failureCode === 'UNKNOWN'
|
|
456
|
+
? ['Confirm the device is online and re-snapshot.']
|
|
457
|
+
: ['Use the failureCode to choose recovery, then re-snapshot before retrying.'],
|
|
402
458
|
});
|
|
403
459
|
}
|
|
404
460
|
// count this as an action (wait already returned earlier)
|
|
405
461
|
sessions.bump(session, 'actions');
|
|
406
|
-
// Record the action into the IR for
|
|
462
|
+
// Record the action into the IR for qa_generate target:"flow" (the action definitely happened here;
|
|
407
463
|
// recorded now so a later post-snapshot failure doesn't lose the step).
|
|
408
464
|
if (toRecord) {
|
|
409
465
|
const sc = recordingScreenContext(session);
|
|
@@ -438,14 +494,21 @@ export function registerAct(server, sessions) {
|
|
|
438
494
|
// Sensitive-mode present: mask secure fields + scrub known secrets AND the just-typed
|
|
439
495
|
// value (covers non-secure fields like email for this immediate response).
|
|
440
496
|
const redact = makeRedactor([...session.secrets, ...(action === 'type' && args.text ? [args.text] : [])]);
|
|
441
|
-
const { elements: outElements, rendered } = presentElements(post.elements, redact);
|
|
497
|
+
const { elements: outElements, rendered, omitted } = presentElements(post.elements, redact);
|
|
442
498
|
// Record non-info findings for qa_report (deterministic bug trail) + app-error screenshot.
|
|
443
499
|
await recordHealthFindings(sessions, session, health.findings, d, health.foreground);
|
|
444
500
|
const banner = `${action} ${JSON.stringify(meta)} → changed=${changed}${retriedAsPress ? ' (retried as press)' : ''} ` +
|
|
445
501
|
`settled=${s.settled} quality=${post.quality.verdict} native=${health.nativeHealthy ? 'ok' : health.nativeStatus} app=${health.appStatus}` +
|
|
446
502
|
(budgetReached ? `\n⏹ budget reached: ${budgetReached} — call qa_report.` : '') +
|
|
447
|
-
(!changed && retriedAsPress
|
|
448
|
-
|
|
503
|
+
(!changed && retriedAsPress
|
|
504
|
+
? `\nNo change even after a press retry — likely wrong coords / disabled element / overlay / auth wall.`
|
|
505
|
+
: '');
|
|
506
|
+
const findings = health.findings.length
|
|
507
|
+
? '\n' +
|
|
508
|
+
health.findings
|
|
509
|
+
.map((f) => `[${f.severity}] ${f.layer ?? '?'}/${f.kind}: ${f.detail}${f.evidence ? ` — "${f.evidence}"` : ''}`)
|
|
510
|
+
.join('\n')
|
|
511
|
+
: '';
|
|
449
512
|
return qaOk({
|
|
450
513
|
action,
|
|
451
514
|
...meta,
|
|
@@ -456,6 +519,7 @@ export function registerAct(server, sessions) {
|
|
|
456
519
|
health,
|
|
457
520
|
counters: session.counters,
|
|
458
521
|
...(budgetReached ? { budgetReached } : {}),
|
|
522
|
+
elementsOmitted: omitted,
|
|
459
523
|
elements: outElements,
|
|
460
524
|
}, `${banner}${findings}\n\n${rendered}`);
|
|
461
525
|
}
|
package/dist/tools/act.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"act.js","sourceRoot":"","sources":["../../src/tools/act.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"act.js","sourceRoot":"","sources":["../../src/tools/act.ts"],"names":[],"mappings":"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"}
|