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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapFeatureScope.js","sourceRoot":"","sources":["../../src/featureTesting/mapFeatureScope.ts"],"names":[],"mappings":"AAAA,
|
|
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
|
|
2
|
-
// deterministic. From a resolved FeatureScope it derives what the feature is *for
|
|
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,7 +23,7 @@ export function buildObjective(scope) {
|
|
|
23
23
|
const negativeCases = [];
|
|
24
24
|
const edgeCases = [];
|
|
25
25
|
const destructiveBoundaries = [];
|
|
26
|
-
// ---- entry
|
|
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}"`);
|
|
@@ -45,24 +45,24 @@ export function buildObjective(scope) {
|
|
|
45
45
|
happyPath.push('Enter a query and apply the search/filter');
|
|
46
46
|
expectedOutputs.push('A result list updates to reflect the query');
|
|
47
47
|
inputFields.push({ name: 'searchTerm', type: 'text', required: true, source: 'search vocabulary' });
|
|
48
|
-
negativeCases.push('Empty query
|
|
48
|
+
negativeCases.push('Empty query > no crash; shows empty/zero-results state');
|
|
49
49
|
edgeCases.push('Query with special characters / very long input');
|
|
50
50
|
provenance.push({ source: 'vocabulary', detail: 'search/filter terms', confidence: 0.5 });
|
|
51
51
|
}
|
|
52
52
|
if (has(terms, CREATE_TERMS)) {
|
|
53
53
|
happyPath.push('Fill the required fields and submit');
|
|
54
54
|
expectedOutputs.push('The new item appears / a success confirmation is shown');
|
|
55
|
-
negativeCases.push('Submit with required fields blank
|
|
55
|
+
negativeCases.push('Submit with required fields blank > validation error, no creation');
|
|
56
56
|
edgeCases.push('Duplicate / boundary-length values; interruption mid-create');
|
|
57
57
|
businessRules.push('Required fields must be validated before submission');
|
|
58
|
-
hypotheses.push('Required-field set is inferred from vocabulary, not a schema
|
|
58
|
+
hypotheses.push('Required-field set is inferred from vocabulary, not a schema. Verify against the form');
|
|
59
59
|
provenance.push({ source: 'vocabulary', detail: 'create/add terms', confidence: 0.45 });
|
|
60
60
|
}
|
|
61
61
|
if (has(terms, AUTH_TERMS)) {
|
|
62
62
|
inputFields.push({ name: 'email', type: 'email', required: true, source: 'auth vocabulary' });
|
|
63
63
|
inputFields.push({ name: 'password', type: 'password', required: true, source: 'auth vocabulary' });
|
|
64
64
|
expectedOutputs.push('On valid credentials the authenticated home/landing surface is reached');
|
|
65
|
-
negativeCases.push('Invalid credentials
|
|
65
|
+
negativeCases.push('Invalid credentials > inline error, stays on the login screen');
|
|
66
66
|
edgeCases.push('Locked/rate-limited account; OTP/2FA step');
|
|
67
67
|
externalDependencies.push('Authentication backend / identity provider');
|
|
68
68
|
businessRules.push('Invalid credentials must not grant access');
|
|
@@ -72,14 +72,14 @@ export function buildObjective(scope) {
|
|
|
72
72
|
happyPath.push('Proceed through the checkout/payment step');
|
|
73
73
|
expectedOutputs.push('An order/subscription confirmation is shown');
|
|
74
74
|
externalDependencies.push('Payment processor (use sandbox/test mode)');
|
|
75
|
-
destructiveBoundaries.push('Do NOT submit a real payment
|
|
76
|
-
negativeCases.push('Declined card
|
|
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');
|
|
77
77
|
businessRules.push('A charge must only occur after explicit user confirmation');
|
|
78
78
|
provenance.push({ source: 'vocabulary', detail: 'payment terms', confidence: 0.55 });
|
|
79
79
|
}
|
|
80
80
|
if (has(terms, DESTRUCTIVE_TERMS)) {
|
|
81
81
|
destructiveBoundaries.push('Destructive actions (delete/remove/cancel) require disposable test state + candidate-bound consent');
|
|
82
|
-
negativeCases.push('Cancel the destructive confirmation
|
|
82
|
+
negativeCases.push('Cancel the destructive confirmation > nothing is destroyed');
|
|
83
83
|
edgeCases.push('Undo / recovery path after the destructive action');
|
|
84
84
|
provenance.push({ source: 'vocabulary', detail: 'destructive terms', confidence: 0.5 });
|
|
85
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objectiveModel.js","sourceRoot":"","sources":["../../src/featureTesting/objectiveModel.ts"],"names":[],"mappings":"AAAA,
|
|
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
|
|
2
|
-
//
|
|
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 ?
|
|
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
|
|
58
|
+
// Honest: the run was blocked before reaching this case. Blocked, not failed.
|
|
59
59
|
status = 'blocked';
|
|
60
|
-
actualResult.push(`blocked
|
|
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');
|
|
@@ -93,7 +93,7 @@ export function mergeFeatureRun(scope, cases, signals, prior) {
|
|
|
93
93
|
blockers.push(signals.blockGuidance ?? signals.blockReason ?? signals.exploration?.stoppedReason ?? 'feature run blocked');
|
|
94
94
|
for (const n of signals.notes)
|
|
95
95
|
if (n.outcome === 'blocked')
|
|
96
|
-
blockers.push(`${n.workflow}: ${n.reason ?? 'blocked'}${n.recommendedSetup ? `
|
|
96
|
+
blockers.push(`${n.workflow}: ${n.reason ?? 'blocked'}${n.recommendedSetup ? ` (${n.recommendedSetup})` : ''}`);
|
|
97
97
|
const coverage = {
|
|
98
98
|
featureId: scope.featureId,
|
|
99
99
|
title: scope.title,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resultMerge.js","sourceRoot":"","sources":["../../src/featureTesting/resultMerge.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"resultMerge.js","sourceRoot":"","sources":["../../src/featureTesting/resultMerge.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,sDAAsD;AACtD,8FAA8F;AAC9F,gGAAgG;AAChG,6FAA6F;AAC7F,yDAAyD;AAsCzD,SAAS,MAAM,CAAC,CAAS;IACvB,OAAO,IAAI,GAAG,CACZ,CAAC;SACE,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,WAAW,EAAE;SACb,KAAK,CAAC,YAAY,CAAC;SACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAC/B,CAAC;AACJ,CAAC;AAED,wFAAwF;AACxF,SAAS,SAAS,CAAC,QAAyB,EAAE,KAAkB;IAC9D,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,IAAsD,CAAC;IAC3D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,EAAE;YAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,OAAO,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAAE,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;IACpF,CAAC;IACD,OAAO,IAAI,EAAE,IAAI,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,gBAAgB;YACnB,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAmB,EACnB,KAAwB,EACxB,OAA0B,EAC1B,KAAuB;IAEvB,MAAM,eAAe,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,SAAS,CAAC;IACtF,MAAM,WAAW,GAAsB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACrD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,MAAM,GAAe,CAAC,CAAC,MAAM,CAAC;QAClC,MAAM,YAAY,GAAa,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7E,IAAI,IAAI,CAAC,YAAY;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,eAAe,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACnD,8EAA8E;YAC9E,MAAM,GAAG,SAAS,CAAC;YACnB,YAAY,CAAC,IAAI,CACf,YAAY,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,aAAa,IAAI,0CAA0C,EAAE,CACtH,CAAC;QACJ,CAAC;aAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,YAAY,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAC1E,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAC1E,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAC9E,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAE9F,IAAI,WAAkC,CAAC;IACvC,IAAI,eAAe,IAAI,QAAQ,KAAK,CAAC;QAAE,WAAW,GAAG,SAAS,CAAC;SAC1D,IAAI,QAAQ,KAAK,CAAC;QAAE,WAAW,GAAG,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;SACzF,IAAI,QAAQ,KAAK,WAAW,CAAC,MAAM,IAAI,WAAW,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC;QAAE,WAAW,GAAG,SAAS,CAAC;;QACxG,WAAW,GAAG,SAAS,CAAC;IAE7B,MAAM,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACpH,MAAM,cAAc,GAAG;QACrB,GAAG,IAAI,GAAG,CAAC;YACT,GAAG,CAAC,KAAK,EAAE,cAAc,IAAI,EAAE,CAAC;YAChC,GAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAc;YAChF,GAAG,OAAO,CAAC,qBAAqB;SACjC,CAAC;KACH,CAAC;IACF,MAAM,aAAa,GAAG;QACpB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,IAAI,EAAE,CAAC,EAAE,GAAI,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAc,CAAC,CAAC;KACjI,CAAC;IAEF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,eAAe;QACjB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,aAAa,IAAI,qBAAqB,CAAC,CAAC;IAC7H,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK;QAC3B,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;YACzB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEpH,MAAM,QAAQ,GAAoB;QAChC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,WAAW;QACnB,cAAc;QACd,aAAa;QACb,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,cAAc,IAAI,CAAC,CAAC;QACtE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;QACzG,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAC9E,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QACrE,mBAAmB,EAAE,KAAK,EAAE,mBAAmB,IAAI,SAAS;QAC5D,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;KACvF,CAAC;IAEF,MAAM,OAAO,GAAG,eAAe;QAC7B,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,aAAa,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,EAAE,aAAa,IAAI,kBAAkB,KAAK,YAAY,oBAAoB;QACpJ,CAAC,CAAC,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,YAAY,WAAW,YAAY,YAAY,aAAa,iBAAiB,CAAC,MAAM,yBAAyB,CAAC;IAEzL,OAAO;QACL,KAAK,EAAE,WAAW;QAClB,QAAQ;QACR,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE;KACxH,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
// Ground-truth gathering for feature scope
|
|
1
|
+
// Ground-truth gathering for feature scope. Reads the
|
|
2
2
|
// durable, on-disk Swipium artifacts so the pure scope ranker has runtime screens + existing tests to
|
|
3
3
|
// search: the latest exploration screen graph (runtime nodes) and authored flows / generated test
|
|
4
|
-
// cases. Best-effort and defensive
|
|
4
|
+
// cases. Best-effort and defensive: a malformed file is skipped, never fatal.
|
|
5
5
|
import { existsSync, readdirSync, readFileSync } from 'node:fs';
|
|
6
6
|
import { join, basename, extname } from 'node:path';
|
|
7
7
|
import { parse as parseYaml } from 'yaml';
|
|
@@ -40,7 +40,7 @@ export function gatherExistingTests(root) {
|
|
|
40
40
|
seen.add(ref.id);
|
|
41
41
|
out.push(ref);
|
|
42
42
|
};
|
|
43
|
-
// .swipium/testcases/*.{yaml,yml,json}
|
|
43
|
+
// .swipium/testcases/*.{yaml,yml,json} > { cases: [{ id, title }] }
|
|
44
44
|
const tcDir = join(root, '.swipium', 'testcases');
|
|
45
45
|
if (existsSync(tcDir)) {
|
|
46
46
|
for (const name of safeReaddir(tcDir)) {
|
|
@@ -65,7 +65,7 @@ export function gatherExistingTests(root) {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
-
// .swipium/flows/*.{yaml,yml}
|
|
68
|
+
// .swipium/flows/*.{yaml,yml} > flow name (file + `name:` field)
|
|
69
69
|
const flowsDir = join(root, '.swipium', 'flows');
|
|
70
70
|
if (existsSync(flowsDir)) {
|
|
71
71
|
for (const name of safeReaddir(flowsDir)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/featureTesting/sources.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/featureTesting/sources.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Bridge focused-feature cases into the durable, project-level
|
|
2
2
|
// test suite (.swipium/test-suite.json). Feature testing used to persist canonical facts ONLY under
|
|
3
3
|
// .swipium/feature-map; this converts each FeatureTestCase into a CanonicalTestCase (linked to the
|
|
4
4
|
// featureId + map screens + evidence) so applyMerge() can fold them into the single source of truth.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suiteBridge.js","sourceRoot":"","sources":["../../src/featureTesting/suiteBridge.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"suiteBridge.js","sourceRoot":"","sources":["../../src/featureTesting/suiteBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Query normalization + synonym expansion
|
|
1
|
+
// Query normalization + synonym expansion.
|
|
2
2
|
// Deterministic, English-leaning v1 (Non-Goals: schema allows locale/synonym expansion later).
|
|
3
3
|
// A feature request like "weather analysis feature" expands to the broader vocabulary the code
|
|
4
4
|
// might actually use ("forecast", "temperature", "radar", …) so static/runtime matches are found.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synonyms.js","sourceRoot":"","sources":["../../src/featureTesting/synonyms.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"synonyms.js","sourceRoot":"","sources":["../../src/featureTesting/synonyms.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Feature-focused test case generation
|
|
1
|
+
// Feature-focused test case generation. PURE.
|
|
2
2
|
// Turns a FeatureScope + FeatureObjective into industry-style test cases (TestRail-aligned: each case
|
|
3
3
|
// connects preconditions, inputs, steps, and expected results to the documented objective). Cases are
|
|
4
4
|
// linked to featureId + map screens + evidence, carry a creativity level, and start with empty actual
|
|
@@ -34,7 +34,7 @@ export function generateFeatureTestCases(scope, objective, opts = {}) {
|
|
|
34
34
|
});
|
|
35
35
|
// ---- conservative: the core happy path only ----
|
|
36
36
|
cases.push(mk({
|
|
37
|
-
title: `${scope.title}
|
|
37
|
+
title: `${scope.title}: happy path`,
|
|
38
38
|
creativity: 'conservative',
|
|
39
39
|
purpose: objective.userGoal,
|
|
40
40
|
preconditions: [
|
|
@@ -48,16 +48,16 @@ export function generateFeatureTestCases(scope, objective, opts = {}) {
|
|
|
48
48
|
if (maxRank >= CREATIVITY_RANK.standard) {
|
|
49
49
|
for (const neg of objective.negativeCases) {
|
|
50
50
|
cases.push(mk({
|
|
51
|
-
title: `${scope.title}
|
|
51
|
+
title: `${scope.title}: ${shorten(neg)}`,
|
|
52
52
|
creativity: 'standard',
|
|
53
53
|
purpose: `Validate a common negative/validation case for ${scope.title}.`,
|
|
54
|
-
steps: [`Reach the ${scope.title} surface`, neg.split('
|
|
55
|
-
expected: [neg.includes('
|
|
54
|
+
steps: [`Reach the ${scope.title} surface`, neg.split(' > ')[0].trim()],
|
|
55
|
+
expected: [neg.includes(' > ') ? neg.split(' > ')[1].trim() : 'A clear validation/error state is shown without a crash'],
|
|
56
56
|
}));
|
|
57
57
|
}
|
|
58
58
|
if (objective.inputFields.length) {
|
|
59
59
|
cases.push(mk({
|
|
60
|
-
title: `${scope.title}
|
|
60
|
+
title: `${scope.title}: required input validation`,
|
|
61
61
|
creativity: 'standard',
|
|
62
62
|
purpose: 'Submitting with required inputs missing is rejected.',
|
|
63
63
|
steps: [
|
|
@@ -76,7 +76,7 @@ export function generateFeatureTestCases(scope, objective, opts = {}) {
|
|
|
76
76
|
if (maxRank >= CREATIVITY_RANK.creative) {
|
|
77
77
|
for (const edge of objective.edgeCases) {
|
|
78
78
|
cases.push(mk({
|
|
79
|
-
title: `${scope.title}
|
|
79
|
+
title: `${scope.title} edge: ${shorten(edge)}`,
|
|
80
80
|
creativity: 'creative',
|
|
81
81
|
purpose: `Exercise an edge/boundary condition for ${scope.title}.`,
|
|
82
82
|
steps: [`Reach the ${scope.title} surface`, edge],
|
|
@@ -84,7 +84,7 @@ export function generateFeatureTestCases(scope, objective, opts = {}) {
|
|
|
84
84
|
}));
|
|
85
85
|
}
|
|
86
86
|
cases.push(mk({
|
|
87
|
-
title: `${scope.title}
|
|
87
|
+
title: `${scope.title}: offline / interruption resilience`,
|
|
88
88
|
creativity: 'creative',
|
|
89
89
|
purpose: 'The feature degrades gracefully when connectivity drops or it is interrupted.',
|
|
90
90
|
steps: [`Reach the ${scope.title} surface`, 'Toggle airplane mode / background and foreground the app mid-flow'],
|
|
@@ -92,11 +92,11 @@ export function generateFeatureTestCases(scope, objective, opts = {}) {
|
|
|
92
92
|
riskLevel: 'low',
|
|
93
93
|
}));
|
|
94
94
|
}
|
|
95
|
-
// ---- adversarial: destructive/security/high-impact
|
|
95
|
+
// ---- adversarial: destructive/security/high-impact, consent-gated, disposable state only ----
|
|
96
96
|
if (maxRank >= CREATIVITY_RANK.adversarial && opts.allowAdversarial && objective.destructiveBoundaries.length) {
|
|
97
97
|
for (const boundary of objective.destructiveBoundaries) {
|
|
98
98
|
cases.push(mk({
|
|
99
|
-
title: `${scope.title}
|
|
99
|
+
title: `${scope.title}: destructive boundary`,
|
|
100
100
|
creativity: 'adversarial',
|
|
101
101
|
purpose: 'Probe a destructive/high-impact boundary safely.',
|
|
102
102
|
riskLevel: 'high',
|
|
@@ -113,7 +113,7 @@ function rank(level) {
|
|
|
113
113
|
return level === 'high' ? 2 : level === 'medium' ? 1 : 0;
|
|
114
114
|
}
|
|
115
115
|
function shorten(s) {
|
|
116
|
-
const head = s.split('
|
|
116
|
+
const head = s.split(' > ')[0].trim();
|
|
117
117
|
return head.length > 48 ? head.slice(0, 45) + '…' : head;
|
|
118
118
|
}
|
|
119
119
|
//# sourceMappingURL=testCaseFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testCaseFactory.js","sourceRoot":"","sources":["../../src/featureTesting/testCaseFactory.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"testCaseFactory.js","sourceRoot":"","sources":["../../src/featureTesting/testCaseFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Feature test plan (
|
|
1
|
+
// Feature test plan (served by qa_test_feature mode:"plan"). PURE. Read-only plan
|
|
2
2
|
// generation: it assembles the scope, objective, generated cases, required fixtures, risks,
|
|
3
3
|
// automation readiness, and the EXACT ordered execution plan an agent (or qa_test_feature) would
|
|
4
4
|
// run. Useful before execution and for PR review.
|
|
@@ -14,9 +14,9 @@ export function buildFeatureTestPlan(scope, objective, opts = {}) {
|
|
|
14
14
|
];
|
|
15
15
|
const blockers = [];
|
|
16
16
|
if (scope.recommendedStrategy === 'manual_blocked')
|
|
17
|
-
blockers.push('Feature involves destructive/payment/auth-gated or unlocated surfaces
|
|
17
|
+
blockers.push('Feature involves destructive/payment/auth-gated or unlocated surfaces. Needs setup/consent before automated execution.');
|
|
18
18
|
if (!scope.staticScreens.length && !scope.runtimeScreens.length)
|
|
19
|
-
blockers.push('No static or runtime entry point located
|
|
19
|
+
blockers.push('No static or runtime entry point located, so exploration may not converge.');
|
|
20
20
|
const automationReadiness = blockers.length
|
|
21
21
|
? 'blocked'
|
|
22
22
|
: scope.runtimeScreens.length && scope.existingTests.length
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testPlan.js","sourceRoot":"","sources":["../../src/featureTesting/testPlan.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"testPlan.js","sourceRoot":"","sources":["../../src/featureTesting/testPlan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Auth/create-account reasoning across screens. Given a classified auth screen and
|
|
2
2
|
// the per-field input plans, decide the intent (login vs. create-account) and assemble the ordered
|
|
3
3
|
// actions: fill every required field, then tap the matching submit control. PURE.
|
|
4
4
|
const SUBMIT_CREATE = /\b(sign\s?up|create\s+(an\s+)?account|register|join|get\s+started|continue|next|done|submit)\b/i;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authStateMachine.js","sourceRoot":"","sources":["../../src/firstRun/authStateMachine.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"authStateMachine.js","sourceRoot":"","sources":["../../src/firstRun/authStateMachine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// First-screen / runtime-screen classifier.
|
|
2
2
|
//
|
|
3
3
|
// classifyCurrentScreen() decides what a screen IS (login, create-account, onboarding, paywall,
|
|
4
4
|
// permissions, home, …) from BOTH the runtime UI snapshot and any static app-map/code context.
|
|
@@ -77,7 +77,7 @@ const HOME = /\b(home|feed|dashboard|explore|search|profile|settings|library|inb
|
|
|
77
77
|
const SETTINGS = /\b(settings|preferences|account settings|privacy|notifications)\b/i;
|
|
78
78
|
const ERROR = /\b(something went wrong|unfortunately|has stopped|isn'?t responding|render error|unhandled|red\s?box|try again later)\b/i;
|
|
79
79
|
/**
|
|
80
|
-
* Classify the current screen. Combines field structure (password + email
|
|
80
|
+
* Classify the current screen. Combines field structure (password + email > auth) with lexical
|
|
81
81
|
* signals and any static app-map candidate matches.
|
|
82
82
|
*/
|
|
83
83
|
export function classifyCurrentScreen(obs) {
|
|
@@ -93,7 +93,7 @@ export function classifyCurrentScreen(obs) {
|
|
|
93
93
|
const hasRegister = REGISTER.test(text);
|
|
94
94
|
const hasUsername = requiredInputs.some((i) => i.field === 'username');
|
|
95
95
|
const hasCredentialSetupCopy = CREDENTIAL_SETUP.test(text);
|
|
96
|
-
// Scored candidates
|
|
96
|
+
// Scored candidates: pick the strongest.
|
|
97
97
|
const scores = {};
|
|
98
98
|
const note = (p, w, why) => {
|
|
99
99
|
scores[p] = (scores[p] ?? 0) + w;
|
|
@@ -109,7 +109,7 @@ export function classifyCurrentScreen(obs) {
|
|
|
109
109
|
if (hasOtpField || OTP.test(text))
|
|
110
110
|
note('otp_or_email_verification', 3, hasOtpField ? 'OTP/code field present' : 'verification/one-time-code copy');
|
|
111
111
|
// Credential-setup step: "create/set/choose password|username" copy, or a password (+confirm)
|
|
112
|
-
// and/or username field with no email and no sign-in verb
|
|
112
|
+
// and/or username field with no email and no sign-in verb. That is a dedicated credential-creation step
|
|
113
113
|
// inside a multi-step signup. Detected BEFORE the email+password auth branch so it wins when the
|
|
114
114
|
// copy is explicit.
|
|
115
115
|
const credentialSetupByFields = (hasPassword || hasUsername) && !hasEmail && !hasLogin;
|
|
@@ -164,7 +164,7 @@ export function classifyCurrentScreen(obs) {
|
|
|
164
164
|
const dominance = ranked.length > 1 ? topScore / total : 1;
|
|
165
165
|
const confidence = topScore === 0 ? 0.2 : Math.min(0.98, 0.35 + Math.min(topScore, 5) * 0.1) * (0.6 + 0.4 * dominance);
|
|
166
166
|
if (purpose === 'unknown' || topScore === 0) {
|
|
167
|
-
blockedReasons.push('no decisive structural or lexical signal
|
|
167
|
+
blockedReasons.push('no decisive structural or lexical signal; screen purpose is unknown');
|
|
168
168
|
}
|
|
169
169
|
// Safe actions: navigation/forward controls that are non-destructive (for onboarding/permission).
|
|
170
170
|
const safeActions = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classifyScreen.js","sourceRoot":"","sources":["../../src/firstRun/classifyScreen.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"classifyScreen.js","sourceRoot":"","sources":["../../src/firstRun/classifyScreen.ts"],"names":[],"mappings":"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"}
|