swipium 1.0.1 → 1.2.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/README.md +21 -6
- package/THREAT_MODEL.md +59 -0
- package/dist/appMap/codeIndex.js +37 -5
- package/dist/appMap/codeIndex.js.map +1 -1
- package/dist/appMap/diff.js +60 -0
- package/dist/appMap/diff.js.map +1 -0
- package/dist/appMap/query.js +22 -4
- package/dist/appMap/query.js.map +1 -1
- package/dist/automation/capabilities.js +167 -0
- package/dist/automation/capabilities.js.map +1 -0
- package/dist/automation/gestures.js +94 -0
- package/dist/automation/gestures.js.map +1 -0
- package/dist/automation/maestroIr.js +282 -0
- package/dist/automation/maestroIr.js.map +1 -0
- package/dist/automation/plan.js +268 -0
- package/dist/automation/plan.js.map +1 -0
- package/dist/automation/report.js +83 -0
- package/dist/automation/report.js.map +1 -0
- package/dist/automation/selectors.js +201 -0
- package/dist/automation/selectors.js.map +1 -0
- package/dist/automation/types.js +13 -0
- package/dist/automation/types.js.map +1 -0
- package/dist/automation/waits.js +91 -0
- package/dist/automation/waits.js.map +1 -0
- package/dist/automation/webview.js +81 -0
- package/dist/automation/webview.js.map +1 -0
- package/dist/drivers/WdaDriver.js +18 -5
- package/dist/drivers/WdaDriver.js.map +1 -1
- package/dist/explore/candidates.js +17 -0
- package/dist/explore/candidates.js.map +1 -1
- package/dist/explore/runner.js +29 -2
- package/dist/explore/runner.js.map +1 -1
- package/dist/flows/repair.js +363 -0
- package/dist/flows/repair.js.map +1 -0
- package/dist/interop/maestro.js +151 -0
- package/dist/interop/maestro.js.map +1 -0
- package/dist/lib/wda.js +17 -0
- package/dist/lib/wda.js.map +1 -1
- package/dist/mobileAudit/checks.js +251 -0
- package/dist/mobileAudit/checks.js.map +1 -0
- package/dist/mobileAudit/evidence.js +49 -0
- package/dist/mobileAudit/evidence.js.map +1 -0
- package/dist/mobileAudit/profiles.js +73 -0
- package/dist/mobileAudit/profiles.js.map +1 -0
- package/dist/mobileAudit/results.js +41 -0
- package/dist/mobileAudit/results.js.map +1 -0
- package/dist/mobileAudit/runner.js +229 -0
- package/dist/mobileAudit/runner.js.map +1 -0
- package/dist/oracle/failures.js +1 -0
- package/dist/oracle/failures.js.map +1 -1
- package/dist/oracle/locator.js +177 -0
- package/dist/oracle/locator.js.map +1 -0
- package/dist/orchestration/envelope.js.map +1 -1
- package/dist/prompts/index.js +10 -0
- package/dist/prompts/index.js.map +1 -1
- package/dist/report/export.js +3 -1
- package/dist/report/export.js.map +1 -1
- package/dist/server.js +49 -2
- package/dist/server.js.map +1 -1
- package/dist/services/build.js +15 -2
- package/dist/services/build.js.map +1 -1
- package/dist/services/prepareIos.js +34 -4
- package/dist/services/prepareIos.js.map +1 -1
- package/dist/services/report.js +26 -9
- package/dist/services/report.js.map +1 -1
- package/dist/session/store.js.map +1 -1
- package/dist/suite/pom.js +24 -9
- package/dist/suite/pom.js.map +1 -1
- package/dist/testSuite/exporter.js +70 -0
- package/dist/testSuite/exporter.js.map +1 -0
- package/dist/testSuite/lint.js +53 -0
- package/dist/testSuite/lint.js.map +1 -0
- package/dist/tools/act.js +23 -2
- package/dist/tools/act.js.map +1 -1
- package/dist/tools/appControl.js +176 -0
- package/dist/tools/appControl.js.map +1 -0
- package/dist/tools/capabilities.js +75 -4
- package/dist/tools/capabilities.js.map +1 -1
- package/dist/tools/device.js +151 -0
- package/dist/tools/device.js.map +1 -0
- package/dist/tools/flow.js +67 -1
- package/dist/tools/flow.js.map +1 -1
- package/dist/tools/flowRepair.js +66 -0
- package/dist/tools/flowRepair.js.map +1 -0
- package/dist/tools/history.js +56 -0
- package/dist/tools/history.js.map +1 -0
- package/dist/tools/idling.js +104 -0
- package/dist/tools/idling.js.map +1 -0
- package/dist/tools/inputCapabilities.js +30 -0
- package/dist/tools/inputCapabilities.js.map +1 -0
- package/dist/tools/issues.js +218 -0
- package/dist/tools/issues.js.map +1 -0
- package/dist/tools/jobs.js +12 -1
- package/dist/tools/jobs.js.map +1 -1
- package/dist/tools/locator.js +57 -0
- package/dist/tools/locator.js.map +1 -0
- package/dist/tools/maestro.js +78 -0
- package/dist/tools/maestro.js.map +1 -0
- package/dist/tools/metro.js +260 -0
- package/dist/tools/metro.js.map +1 -0
- package/dist/tools/mobileAudit.js +115 -0
- package/dist/tools/mobileAudit.js.map +1 -0
- package/dist/tools/network.js +97 -5
- package/dist/tools/network.js.map +1 -1
- package/dist/tools/permissions.js +149 -0
- package/dist/tools/permissions.js.map +1 -0
- package/dist/tools/screenInfo.js +70 -0
- package/dist/tools/screenInfo.js.map +1 -0
- package/dist/tools/screenRecord.js +215 -6
- package/dist/tools/screenRecord.js.map +1 -1
- package/dist/tools/seed.js +101 -0
- package/dist/tools/seed.js.map +1 -0
- package/dist/tools/state.js +83 -0
- package/dist/tools/state.js.map +1 -1
- package/dist/tools/suite.js +49 -1
- package/dist/tools/suite.js.map +1 -1
- package/dist/tools/testSuite.js +233 -0
- package/dist/tools/testSuite.js.map +1 -0
- package/dist/tools/testThis.js +11 -3
- package/dist/tools/testThis.js.map +1 -1
- package/dist/tools/visual.js +139 -0
- package/dist/tools/visual.js.map +1 -0
- package/dist/tools/visualText.js +61 -0
- package/dist/tools/visualText.js.map +1 -0
- package/dist/tools/wait.js +58 -0
- package/dist/tools/wait.js.map +1 -0
- package/dist/version.js +54 -3
- package/dist/version.js.map +1 -1
- package/docs/README.md +4 -4
- package/docs/mcp-server.md +3 -3
- package/docs/tools.md +111 -2
- package/package.json +3 -2
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
// SWIPIUM-REQ-08 — executable mobile-audit runner. Orchestrates the existing driver capabilities
|
|
2
|
+
// (health, snapshot, network, first-run, guided exploration) into a profile-based audit that
|
|
3
|
+
// produces honest, evidence-backed check results and records issue-ledger entries. It NEVER claims
|
|
4
|
+
// a check passed without observed evidence, never purchases / bypasses OTP / deletes real accounts,
|
|
5
|
+
// and always restores network it changed.
|
|
6
|
+
import { recordObservation } from '../issues/index.js';
|
|
7
|
+
import { queryIssues } from '../issues/index.js';
|
|
8
|
+
import { restoreNetwork } from '../tools/network.js';
|
|
9
|
+
import { runFirstRun } from '../firstRun/firstRunRunner.js';
|
|
10
|
+
import { checksForProfile } from './profiles.js';
|
|
11
|
+
import * as C from './checks.js';
|
|
12
|
+
import { snapshotText, foreground } from './evidence.js';
|
|
13
|
+
import { auditReleaseImpact } from './results.js';
|
|
14
|
+
function platformOf(driver) {
|
|
15
|
+
return driver.kind === 'wda' || driver.kind === 'simulator' ? 'ios' : 'android';
|
|
16
|
+
}
|
|
17
|
+
function environmentOf(session, platform) {
|
|
18
|
+
if (session.headless !== undefined)
|
|
19
|
+
return platform === 'ios' ? 'simulator' : 'emulator';
|
|
20
|
+
return process.env.CI ? 'ci' : 'unknown';
|
|
21
|
+
}
|
|
22
|
+
export async function runMobileAudit(sessions, session, driver, opts) {
|
|
23
|
+
const platform = platformOf(driver);
|
|
24
|
+
const environment = environmentOf(session, platform);
|
|
25
|
+
const ev = { sessions, session, driver, appId: session.appId };
|
|
26
|
+
const issueIds = [];
|
|
27
|
+
const recurrenceWarnings = [];
|
|
28
|
+
let state = 'completed';
|
|
29
|
+
// Record a fail/blocked check as an issue (the check IS the classifier → forceCategory). Returns
|
|
30
|
+
// the issue id, or undefined when the check has no category (pure environment/setup gap).
|
|
31
|
+
const recordIssue = async (title, raw) => {
|
|
32
|
+
if (raw.status !== 'fail' && raw.status !== 'blocked')
|
|
33
|
+
return undefined;
|
|
34
|
+
if (!raw.category)
|
|
35
|
+
return undefined;
|
|
36
|
+
const fg = raw.screenId ?? (await foreground(ev));
|
|
37
|
+
const res = recordObservation(session.root, {
|
|
38
|
+
title: `audit: ${title}`,
|
|
39
|
+
summary: raw.reason ?? title,
|
|
40
|
+
screenPurpose: fg,
|
|
41
|
+
workflow: raw.workflow ?? title,
|
|
42
|
+
steps: raw.nextStep ? [raw.nextStep] : undefined,
|
|
43
|
+
}, opts.now, { environment, forceCategory: raw.category, severityHint: raw.severity }, {
|
|
44
|
+
appId: session.appId,
|
|
45
|
+
platform,
|
|
46
|
+
environment,
|
|
47
|
+
sourceRevision: opts.sourceRevision,
|
|
48
|
+
run: { sessionId: session.id, reportUri: opts.reportUri },
|
|
49
|
+
links: { evidenceRefs: raw.evidenceUris.map((uri) => ({ kind: 'evidence', uri })), appMapRefs: [{ screenId: fg }] },
|
|
50
|
+
});
|
|
51
|
+
if (res.recurrenceMessage)
|
|
52
|
+
recurrenceWarnings.push(res.recurrenceMessage);
|
|
53
|
+
return res.issueId;
|
|
54
|
+
};
|
|
55
|
+
const checks = [];
|
|
56
|
+
const finalize = async (id, title, raw) => {
|
|
57
|
+
const issueId = await recordIssue(title, raw);
|
|
58
|
+
if (issueId)
|
|
59
|
+
issueIds.push(issueId);
|
|
60
|
+
checks.push({ id, title, profile: opts.profile, status: raw.status, category: raw.category, severity: raw.severity, issueId, reason: raw.reason, evidenceUris: raw.evidenceUris, workflow: raw.workflow, screenId: raw.screenId, nextStep: raw.nextStep });
|
|
61
|
+
};
|
|
62
|
+
const profilesToRun = opts.profile === 'release_gate' ? ['smoke', 'account_cycle', 'store_compliance', 'resilience'] : [opts.profile];
|
|
63
|
+
for (const prof of profilesToRun) {
|
|
64
|
+
if (prof === 'smoke') {
|
|
65
|
+
await finalize('launch', 'App launch + main screen', await C.checkLaunch(ev));
|
|
66
|
+
await finalize('health_scan', 'Crash / RedBox / log scan', await C.checkHealthScan(ev));
|
|
67
|
+
await finalize('navigation', 'Basic navigation', await C.checkNavigation(ev));
|
|
68
|
+
}
|
|
69
|
+
else if (prof === 'store_compliance') {
|
|
70
|
+
const text = await snapshotText(ev);
|
|
71
|
+
await finalize('privacy_link', 'Privacy Policy link', await C.checkPrivacyLink(ev, text));
|
|
72
|
+
await finalize('terms_link', 'Terms link', await C.checkTermsLink(ev, text));
|
|
73
|
+
await finalize('account_deletion', 'Account deletion path', await C.checkAccountDeletion(ev, text));
|
|
74
|
+
await finalize('subscription_management', 'Subscription management / restore', await C.checkSubscriptionManagement(ev, text));
|
|
75
|
+
await finalize('paywall', 'Paywall classification', await C.checkPaywall(ev, text));
|
|
76
|
+
await finalize('external_links', 'External links', C.checkExternalLinks());
|
|
77
|
+
}
|
|
78
|
+
else if (prof === 'resilience') {
|
|
79
|
+
try {
|
|
80
|
+
await finalize('offline_entry', 'Offline entry', await C.checkOfflineEntry(ev));
|
|
81
|
+
await finalize('network_restoration', 'Network restoration', await C.checkNetworkRestoration(ev));
|
|
82
|
+
await finalize('process_relaunch', 'Process kill / relaunch', await C.checkProcessRelaunch(ev));
|
|
83
|
+
await finalize('rotation', 'Rotation', C.checkRotation());
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
// GUARANTEED network restore — even if a resilience check threw (REQ-08 safety).
|
|
87
|
+
try {
|
|
88
|
+
await driver.setAirplane(false);
|
|
89
|
+
await restoreNetwork(sessions, session, driver);
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
/* best-effort */
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else if (prof === 'account_cycle') {
|
|
97
|
+
const acState = await runAccountCycle(sessions, session, driver, opts, finalize);
|
|
98
|
+
if (acState !== 'completed' && state === 'completed')
|
|
99
|
+
state = acState;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Recurrence: a previously-fixed blocker/high issue reopened this run is a release blocker.
|
|
103
|
+
const reopened = queryIssues(session.root, opts.now, { includeSuppressed: false }).recurrenceCandidates;
|
|
104
|
+
const blockingRecurrence = reopened.some((r) => (r.severity === 'blocker' || r.severity === 'high') && (r.category === 'app_bug' || r.category === 'blocker_app_bug'));
|
|
105
|
+
for (const r of reopened)
|
|
106
|
+
if (r.lastRecurrenceMessage && !recurrenceWarnings.includes(r.lastRecurrenceMessage))
|
|
107
|
+
recurrenceWarnings.push(r.lastRecurrenceMessage);
|
|
108
|
+
// release_gate adds locator readiness + an explicit issue-ledger recurrence check. The recurrence
|
|
109
|
+
// check POINTS AT the existing reopened issue (no duplicate issue is created); plan/execute agree.
|
|
110
|
+
if (opts.profile === 'release_gate') {
|
|
111
|
+
await finalize('locator_readiness', 'Accessibility / test IDs', await C.checkLocatorReadiness(ev));
|
|
112
|
+
if (reopened.length === 0) {
|
|
113
|
+
checks.push({ id: 'issue_recurrence', title: 'Issue-ledger recurrence', profile: 'release_gate', status: 'pass', reason: 'no previously-fixed issue has regressed', evidenceUris: [] });
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
const top = reopened.find((r) => r.severity === 'blocker' || r.severity === 'high') ?? reopened[0];
|
|
117
|
+
const blocking = top.severity === 'blocker' || top.severity === 'high';
|
|
118
|
+
checks.push({
|
|
119
|
+
id: 'issue_recurrence',
|
|
120
|
+
title: 'Issue-ledger recurrence',
|
|
121
|
+
profile: 'release_gate',
|
|
122
|
+
status: blocking ? 'fail' : 'blocked',
|
|
123
|
+
category: top.category,
|
|
124
|
+
severity: top.severity,
|
|
125
|
+
issueId: top.issueId, // link to the EXISTING reopened issue, not a new one
|
|
126
|
+
reason: top.lastRecurrenceMessage ?? `${reopened.length} previously-fixed issue(s) regressed`,
|
|
127
|
+
evidenceUris: [],
|
|
128
|
+
nextStep: 'A regressed blocker/high issue blocks release; re-fix and re-verify.',
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
const releaseImpact = auditReleaseImpact(checks, blockingRecurrence);
|
|
133
|
+
return { profile: opts.profile, state, releaseImpact, checks, issueIds, recurrenceWarnings };
|
|
134
|
+
}
|
|
135
|
+
/** Bounded, honest account-cycle: create (first-run) → logout (controlled explore). Steps that
|
|
136
|
+
* cannot be confirmed are reported blocked/needs_input/skipped, never a false pass. */
|
|
137
|
+
async function runAccountCycle(sessions, session, driver, opts, finalize) {
|
|
138
|
+
if (!opts.allowGeneratedData) {
|
|
139
|
+
const blocked = { status: 'blocked', category: 'missing_test_data', severity: 'medium', reason: 'account-cycle needs generated disposable-account data; re-run with allowGeneratedData in a test/staging environment', evidenceUris: [], workflow: 'account_cycle' };
|
|
140
|
+
await finalize('create_account', 'Create account', blocked);
|
|
141
|
+
await finalize('logout', 'Logout', { status: 'skipped', reason: 'account not created', evidenceUris: [] });
|
|
142
|
+
await finalize('login_again', 'Login again', { status: 'skipped', reason: 'account not created', evidenceUris: [] });
|
|
143
|
+
await finalize('forgot_password', 'Forgot password surface', { status: 'skipped', reason: 'account not created', evidenceUris: [] });
|
|
144
|
+
return 'needs_input';
|
|
145
|
+
}
|
|
146
|
+
let createResult;
|
|
147
|
+
let runState = 'completed';
|
|
148
|
+
try {
|
|
149
|
+
const fr = await runFirstRun(sessions, session, driver, { mode: 'until_home', allowGeneratedAccount: true });
|
|
150
|
+
switch (fr.accountOutcome) {
|
|
151
|
+
case 'created':
|
|
152
|
+
case 'used_provided_credentials':
|
|
153
|
+
createResult = { status: 'pass', reason: `account ${fr.accountOutcome} (${fr.pathTaken ?? 'auth'})`, evidenceUris: fr.evidenceUris, workflow: 'account_cycle' };
|
|
154
|
+
break;
|
|
155
|
+
case 'reached_verification':
|
|
156
|
+
createResult = { status: 'blocked', category: 'hard_gate', severity: 'medium', reason: 'account creation reached an OTP/verification gate (needs a real code)', evidenceUris: fr.evidenceUris, workflow: 'account_cycle' };
|
|
157
|
+
runState = 'needs_input';
|
|
158
|
+
break;
|
|
159
|
+
case 'refused_unsafe':
|
|
160
|
+
createResult = { status: 'blocked', category: 'missing_test_data', severity: 'medium', reason: fr.stoppedReason || 'environment unsafe for generated account creation', evidenceUris: fr.evidenceUris, workflow: 'account_cycle' };
|
|
161
|
+
runState = 'unsafe';
|
|
162
|
+
break;
|
|
163
|
+
default:
|
|
164
|
+
createResult = { status: 'blocked', reason: `account creation ${fr.accountOutcome}: ${fr.stoppedReason}`, evidenceUris: fr.evidenceUris, workflow: 'account_cycle' };
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
catch (e) {
|
|
168
|
+
createResult = { status: 'fail', category: 'app_bug', severity: 'high', reason: `account creation errored: ${String(e.message ?? e)}`, evidenceUris: [], workflow: 'account_cycle' };
|
|
169
|
+
}
|
|
170
|
+
await finalize('create_account', 'Create account', createResult);
|
|
171
|
+
// Logout is attempted only through the controlled disposable-account exploration (logout permitted
|
|
172
|
+
// there; delete/pay/send stay refused). We cannot positively confirm a logout without app-specific
|
|
173
|
+
// oracles, so the outcome is honest: skipped/blocked unless the create step already failed.
|
|
174
|
+
if (createResult.status === 'pass') {
|
|
175
|
+
// Controlled logout: find + tap a logout control (disposable account only) and READ the resulting
|
|
176
|
+
// logged-out auth surface immediately — without a full exploration that would auto-re-login via the
|
|
177
|
+
// stored generated credentials and hide the forgot-password entrypoint (REQ-08 account-cycle bug).
|
|
178
|
+
const ev = { sessions, session, driver, appId: session.appId };
|
|
179
|
+
let loggedOutText = '';
|
|
180
|
+
try {
|
|
181
|
+
const lo = await C.findAndTapLogout(ev, true);
|
|
182
|
+
loggedOutText = lo.loggedOutText;
|
|
183
|
+
if (lo.tapped && lo.authSurface)
|
|
184
|
+
await finalize('logout', 'Logout', { status: 'pass', reason: 'logged out — reached a logged-out auth surface', evidenceUris: [], workflow: 'account_cycle' });
|
|
185
|
+
else if (lo.tapped)
|
|
186
|
+
await finalize('logout', 'Logout', { status: 'skipped', reason: 'tapped a logout control but did not clearly reach a logged-out auth surface — confirm manually', evidenceUris: [], workflow: 'account_cycle' });
|
|
187
|
+
else
|
|
188
|
+
await finalize('logout', 'Logout', { status: 'fail', category: 'improvement', severity: 'low', reason: 'no logout control found on the post-login screens', evidenceUris: [], workflow: 'account_cycle', nextStep: 'Expose a logout control once signed in.' });
|
|
189
|
+
}
|
|
190
|
+
catch (e) {
|
|
191
|
+
await finalize('logout', 'Logout', { status: 'fail', category: 'app_bug', severity: 'high', reason: `logout attempt errored: ${String(e.message ?? e)}`, evidenceUris: [], workflow: 'account_cycle' });
|
|
192
|
+
}
|
|
193
|
+
// Forgot-password is evaluated on the LOGGED-OUT auth surface captured above (right after logout),
|
|
194
|
+
// BEFORE login_again returns to home — otherwise a valid "Forgot password?" link on the login
|
|
195
|
+
// screen would be falsely reported missing. Finalized after login_again to keep output order.
|
|
196
|
+
const forgotResult = C.checkForgotPassword(loggedOutText);
|
|
197
|
+
// Login again: re-run first-run, which now reuses the generated credentials (hasProvidedCredentials
|
|
198
|
+
// → login intent). Pass ONLY when an authenticated/home state is observed; OTP/MFA → needs_input.
|
|
199
|
+
try {
|
|
200
|
+
const fr2 = await runFirstRun(sessions, session, driver, { mode: 'until_home', allowGeneratedAccount: true });
|
|
201
|
+
let login;
|
|
202
|
+
if (fr2.state === 'completed')
|
|
203
|
+
login = { status: 'pass', reason: `re-authenticated to home with the generated account (${fr2.pathTaken ?? 'login'})`, evidenceUris: fr2.evidenceUris, workflow: 'account_cycle' };
|
|
204
|
+
else if (fr2.accountOutcome === 'reached_verification')
|
|
205
|
+
login = { status: 'blocked', category: 'hard_gate', severity: 'medium', reason: 'login-again hit an OTP/verification gate (needs a real code)', evidenceUris: fr2.evidenceUris, workflow: 'account_cycle' };
|
|
206
|
+
else if (fr2.needsInput)
|
|
207
|
+
login = { status: 'blocked', category: 'hard_gate', severity: 'medium', reason: `login-again needs input: ${fr2.needsInput.reason}`, evidenceUris: fr2.evidenceUris, workflow: 'account_cycle' };
|
|
208
|
+
else
|
|
209
|
+
login = { status: 'fail', category: 'app_bug', severity: 'high', reason: `could not log back in with the generated account (${fr2.state}: ${fr2.stoppedReason})`, evidenceUris: fr2.evidenceUris, workflow: 'account_cycle' };
|
|
210
|
+
await finalize('login_again', 'Login again', login);
|
|
211
|
+
}
|
|
212
|
+
catch (e) {
|
|
213
|
+
await finalize('login_again', 'Login again', { status: 'fail', category: 'app_bug', severity: 'high', reason: `login-again errored: ${String(e.message ?? e)}`, evidenceUris: [], workflow: 'account_cycle' });
|
|
214
|
+
}
|
|
215
|
+
// Finalize forgot-password with the evidence captured on the logged-out surface (above).
|
|
216
|
+
await finalize('forgot_password', 'Forgot password surface', forgotResult);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
for (const [id, title] of [['logout', 'Logout'], ['login_again', 'Login again'], ['forgot_password', 'Forgot password surface']]) {
|
|
220
|
+
await finalize(id, title, { status: 'skipped', reason: 'account not established this run', evidenceUris: [], workflow: 'account_cycle' });
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return runState;
|
|
224
|
+
}
|
|
225
|
+
/** Plan-only: the profile checklist + account-cycle safety, without driving the device. */
|
|
226
|
+
export function planMobileAudit(profile) {
|
|
227
|
+
return { checks: checksForProfile(profile) };
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/mobileAudit/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/oracle/failures.js
CHANGED
|
@@ -112,6 +112,7 @@ export const FAILURES = {
|
|
|
112
112
|
// --- roadmap §10: build-from-source ---
|
|
113
113
|
BUILD_COMMAND_UNAVAILABLE: { bucket: 'environment', severity: 'high', retrySafe: true, owner: 'environment', summary: 'No build command is available for this framework/platform', recovery: 'Install the required toolchain (Gradle/Xcode/Flutter/Expo CLI) or provide a prebuilt artifact.' },
|
|
114
114
|
BUILD_FAILED: { bucket: 'environment', severity: 'high', retrySafe: false, owner: 'app', selfFixable: false, summary: 'Build from source failed', recovery: 'Open the build log artifact, fix the compile/config error, then re-run the build. A build failure is NOT a test failure.' },
|
|
115
|
+
BUILD_ARTIFACT_UNRESOLVED_AFTER_SUCCESS: { bucket: 'environment', severity: 'high', retrySafe: true, owner: 'swipium', selfFixable: true, summary: 'Build succeeded but Swipium could not resolve the produced app', recovery: 'The build command succeeded. This is an artifact-resolution gap, not an app build failure. Pass an explicit artifact path, or for Expo iOS point Swipium at the .app under Xcode DerivedData.' },
|
|
115
116
|
BUILD_TIMED_OUT: { bucket: 'environment', severity: 'high', retrySafe: true, owner: 'environment', summary: 'Build exceeded its time budget', recovery: 'Increase the build timeout, warm caches, or build once manually then re-run Swipium against the artifact.' },
|
|
116
117
|
DEPENDENCY_INSTALL_REQUIRED: { bucket: 'environment', severity: 'medium', retrySafe: true, owner: 'environment', summary: 'Dependencies must be installed before building', recovery: 'Run the project install step (npm/yarn/pnpm install, pod install, flutter pub get), then re-run the build.' },
|
|
117
118
|
EXPO_PREBUILD_REQUIRED: { bucket: 'environment', severity: 'medium', retrySafe: true, owner: 'swipium', selfFixable: true, summary: 'Expo project has no native android/ios directories', recovery: 'Run `npx expo prebuild` (or build with `npx expo run:*` which prebuilds) before a native build.' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"failures.js","sourceRoot":"","sources":["../../src/oracle/failures.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,iGAAiG;AACjG,6FAA6F;AAC7F,sFAAsF;AACtF,8DAA8D;AAC9D,EAAE;AACF,4CAA4C;AAC5C,qDAAqD;AACrD,gFAAgF;AAChF,oFAAoF;AACpF,mGAAmG;AACnG,kGAAkG;AAsJlG,MAAM,CAAC,MAAM,QAAQ,GAAqC;IACxD,YAAY,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,kFAAkF,EAAE;IACxM,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,yEAAyE,EAAE;IACxL,cAAc,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,mCAAmC,EAAE,QAAQ,EAAE,wFAAwF,EAAE;IAC3N,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,qFAAqF,EAAE;IACtM,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,8EAA8E,EAAE;IAClM,aAAa,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,yCAAyC,EAAE,QAAQ,EAAE,+FAA+F,EAAE;IACvO,YAAY,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,gGAAgG,EAAE;IAClN,gBAAgB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,8EAA8E,EAAE;IACzM,gBAAgB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,6BAA6B,EAAE,QAAQ,EAAE,8GAA8G,EAAE;IAE7O,SAAS,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,2DAA2D,EAAE;IAChM,WAAW,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,mCAAmC,EAAE,QAAQ,EAAE,iFAAiF,EAAE;IACpN,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,2EAA2E,EAAE;IAC7M,UAAU,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,mDAAmD,EAAE,QAAQ,EAAE,2JAA2J,EAAE;IAC7S,cAAc,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,gGAAgG,EAAE;IACvN,mBAAmB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,+CAA+C,EAAE,QAAQ,EAAE,sGAAsG,EAAE;IAC7P,yBAAyB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,qDAAqD,EAAE,QAAQ,EAAE,qGAAqG,EAAE;IACxQ,qBAAqB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,EAAE,QAAQ,EAAE,gHAAgH,EAAE;IACxP,sBAAsB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,EAAE,QAAQ,EAAE,oGAAoG,EAAE;IAC7O,oBAAoB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,kEAAkE,EAAE;IACpM,gBAAgB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,+CAA+C,EAAE,QAAQ,EAAE,gHAAgH,EAAE;IACpQ,gBAAgB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,gCAAgC,EAAE,QAAQ,EAAE,4EAA4E,EAAE;IACnN,eAAe,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,kCAAkC,EAAE,QAAQ,EAAE,6DAA6D,EAAE;IACnM,2BAA2B,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,yCAAyC,EAAE,QAAQ,EAAE,qGAAqG,EAAE;IAC9P,eAAe,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,sDAAsD,EAAE;IAC/K,gBAAgB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,sCAAsC,EAAE,QAAQ,EAAE,qDAAqD,EAAE;IAClM,eAAe,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,2DAA2D,EAAE,QAAQ,EAAE,2FAA2F,EAAE;IAC1P,gBAAgB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,6BAA6B,EAAE,QAAQ,EAAE,sFAAsF,EAAE;IACxN,kBAAkB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,4CAA4C,EAAE,QAAQ,EAAE,sHAAsH,EAAE;IAC1Q,gBAAgB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,EAAE,QAAQ,EAAE,yFAAyF,EAAE;IAC5N,kBAAkB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,wCAAwC,EAAE,QAAQ,EAAE,4GAA4G,EAAE;IAC3P,eAAe,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,mCAAmC,EAAE,QAAQ,EAAE,yGAAyG,EAAE;IACrP,gBAAgB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,oCAAoC,EAAE,QAAQ,EAAE,wGAAwG,EAAE;IACtP,uBAAuB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,kDAAkD,EAAE,QAAQ,EAAE,oFAAoF,EAAE;IACvP,iBAAiB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,2CAA2C,EAAE,QAAQ,EAAE,kGAAkG,EAAE;IACzP,oBAAoB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,oDAAoD,EAAE,QAAQ,EAAE,8GAA8G,EAAE;IACzQ,iBAAiB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,qEAAqE,EAAE,QAAQ,EAAE,8FAA8F,EAAE;IAC3Q,gBAAgB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,iEAAiE,EAAE,QAAQ,EAAE,kHAAkH,EAAE;IACzR,iBAAiB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,sCAAsC,EAAE,QAAQ,EAAE,iGAAiG,EAAE;IAChP,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,qEAAqE,EAAE;IAClM,WAAW,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,uDAAuD,EAAE,QAAQ,EAAE,8GAA8G,EAAE;IACvQ,wBAAwB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,gDAAgD,EAAE,QAAQ,EAAE,wHAAwH,EAAE;IACrR,qBAAqB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,6CAA6C,EAAE,QAAQ,EAAE,mHAAmH,EAAE;IAC5Q,2BAA2B,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,6DAA6D,EAAE,QAAQ,EAAE,wHAAwH,EAAE;IACxT,6BAA6B,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mEAAmE,EAAE,QAAQ,EAAE,oIAAoI,EAAE;IAC9U,6BAA6B,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kDAAkD,EAAE,QAAQ,EAAE,gIAAgI,EAAE;IAErT,SAAS,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,uFAAuF,EAAE;IAChO,eAAe,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,2CAA2C,EAAE,QAAQ,EAAE,uEAAuE,EAAE;IAC1N,cAAc,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,6CAA6C,EAAE,QAAQ,EAAE,+IAA+I,EAAE;IAEnS,kBAAkB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,mDAAmD,EAAE,QAAQ,EAAE,2DAA2D,EAAE;IACxN,oBAAoB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,iHAAiH,EAAE;IAC3P,eAAe,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,qEAAqE,EAAE;IAC1M,iBAAiB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,uDAAuD,EAAE,QAAQ,EAAE,0FAA0F,EAAE;IAC5P,eAAe,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,uFAAuF,EAAE;IACvO,SAAS,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,iDAAiD,EAAE;IACxL,gBAAgB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,wCAAwC,EAAE,QAAQ,EAAE,6GAA6G,EAAE;IAC5P,kBAAkB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,wCAAwC,EAAE,QAAQ,EAAE,0JAA0J,EAAE;IAC/S,iBAAiB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,oGAAoG,EAAE;IACtO,oBAAoB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,oCAAoC,EAAE,QAAQ,EAAE,uGAAuG,EAAE;IACzP,oBAAoB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,uFAAuF,EAAE;IACnO,sBAAsB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,4CAA4C,EAAE,QAAQ,EAAE,kHAAkH,EAAE;IAC/Q,mBAAmB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,gEAAgE,EAAE,QAAQ,EAAE,yHAAyH,EAAE;IACtS,sBAAsB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,6BAA6B,EAAE,QAAQ,EAAE,wFAAwF,EAAE;IACrO,cAAc,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,kCAAkC,EAAE,QAAQ,EAAE,+FAA+F,EAAE;IAC1O,mBAAmB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,mCAAmC,EAAE,QAAQ,EAAE,sEAAsE,EAAE;IACnN,YAAY,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,2CAA2C,EAAE,QAAQ,EAAE,6DAA6D,EAAE;IAC9M,mBAAmB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,gDAAgD,EAAE,QAAQ,EAAE,6IAA6I,EAAE;IAExS,mBAAmB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,sDAAsD,EAAE,QAAQ,EAAE,gGAAgG,EAAE;IACjQ,mBAAmB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,8CAA8C,EAAE,QAAQ,EAAE,qFAAqF,EAAE;IAC9O,mBAAmB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,0DAA0D,EAAE,QAAQ,EAAE,8GAA8G,EAAE;IAClS,qBAAqB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,oEAAoE,EAAE,QAAQ,EAAE,qHAAqH,EAAE;IAErT,yCAAyC;IACzC,kBAAkB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,wDAAwD,EAAE,QAAQ,EAAE,sHAAsH,EAAE;IACpS,yBAAyB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,iDAAiD,EAAE,QAAQ,EAAE,sFAAsF,EAAE;IACtQ,kBAAkB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,mEAAmE,EAAE;IAChN,qBAAqB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,oCAAoC,EAAE,QAAQ,EAAE,yHAAyH,EAAE;IAEvR,qDAAqD;IACrD,iBAAiB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,wDAAwD,EAAE,QAAQ,EAAE,uFAAuF,EAAE;IAC1R,4BAA4B,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,+DAA+D,EAAE,QAAQ,EAAE,sFAAsF,EAAE;IACvR,uCAAuC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,2CAA2C,EAAE,QAAQ,EAAE,4GAA4G,EAAE;IACpS,kBAAkB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,0CAA0C,EAAE,QAAQ,EAAE,0GAA0G,EAAE;IACjR,oBAAoB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,oDAAoD,EAAE,QAAQ,EAAE,+HAA+H,EAAE;IAClT,qBAAqB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,2CAA2C,EAAE,QAAQ,EAAE,6GAA6G,EAAE;IACxR,sBAAsB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,+EAA+E,EAAE,QAAQ,EAAE,4GAA4G,EAAE;IAC5T,kBAAkB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,gCAAgC,EAAE,QAAQ,EAAE,8FAA8F,EAAE;IAC3P,qBAAqB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,gDAAgD,EAAE,QAAQ,EAAE,mGAAmG,EAAE;IACnR,4BAA4B,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,yDAAyD,EAAE,QAAQ,EAAE,8JAA8J,EAAE;IAC/V,0BAA0B,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,oEAAoE,EAAE,QAAQ,EAAE,4JAA4J,EAAE;IACrX,sBAAsB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,wCAAwC,EAAE,QAAQ,EAAE,iHAAiH,EAAE;IAC1R,uBAAuB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,wDAAwD,EAAE,QAAQ,EAAE,uHAAuH,EAAE;IAClT,qBAAqB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,iDAAiD,EAAE,QAAQ,EAAE,qFAAqF,EAAE;IAChQ,oBAAoB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uDAAuD,EAAE,QAAQ,EAAE,qGAAqG,EAAE;IACrR,kBAAkB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,8CAA8C,EAAE,QAAQ,EAAE,wGAAwG,EAAE;IACnR,yBAAyB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,oCAAoC,EAAE,QAAQ,EAAE,sEAAsE,EAAE;IAE7P,6CAA6C;IAC7C,yBAAyB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,6DAA6D,EAAE,QAAQ,EAAE,oGAAoG,EAAE;IAC9R,gCAAgC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kEAAkE,EAAE,QAAQ,EAAE,mIAAmI,EAAE;IAC1U,8BAA8B,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,qEAAqE,EAAE,QAAQ,EAAE,sGAAsG,EAAE;IAC9S,yBAAyB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,2DAA2D,EAAE,QAAQ,EAAE,qGAAqG,EAAE;IAE9R,yCAAyC;IACzC,yBAAyB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,2DAA2D,EAAE,QAAQ,EAAE,gGAAgG,EAAE;IAC/R,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,0HAA0H,EAAE;IACxR,eAAe,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,gCAAgC,EAAE,QAAQ,EAAE,2GAA2G,EAAE;IACrQ,2BAA2B,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,gDAAgD,EAAE,QAAQ,EAAE,4GAA4G,EAAE;IACpS,sBAAsB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,oDAAoD,EAAE,QAAQ,EAAE,iGAAiG,EAAE;IACvS,aAAa,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,+FAA+F,EAAE;IACrO,iBAAiB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,mGAAmG,EAAE;IAC3O,oBAAoB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,6EAA6E,EAAE;IAE3N,+BAA+B;IAC/B,cAAc,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,2CAA2C,EAAE,QAAQ,EAAE,+DAA+D,EAAE;IAClP,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,kDAAkD,EAAE,QAAQ,EAAE,4FAA4F,EAAE;IACrQ,kBAAkB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,mCAAmC,EAAE,QAAQ,EAAE,6EAA6E,EAAE;IAC5P,iBAAiB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,wCAAwC,EAAE,QAAQ,EAAE,yHAAyH,EAAE;IAE7R,+CAA+C;IAC/C,uBAAuB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,qFAAqF,EAAE,QAAQ,EAAE,qIAAqI,EAAE;IAC1V,oBAAoB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,0CAA0C,EAAE,QAAQ,EAAE,+GAA+G,EAAE;IACtR,qBAAqB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,yDAAyD,EAAE,QAAQ,EAAE,uHAAuH,EAAE;IAC/S,aAAa,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,2GAA2G,EAAE;IACvQ,iBAAiB,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,uCAAuC,EAAE,QAAQ,EAAE,uGAAuG,EAAE;IAEvQ,OAAO,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,uEAAuE,EAAE;CAC5L,CAAC;AAEF,iGAAiG;AACjG,MAAM,eAAe,GAAwC;IAC3D,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,MAAM;IACpB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,MAAM;CACvB,CAAC;AAEF,0DAA0D;AAC1D,MAAM,UAAU,YAAY,CAAC,IAAiB;IAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC,KAAK,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,aAAa,CAAC,IAAiB;IAC7C,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,KAAK,CAAC;AAC7C,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc,CAAC,CAAC,OAAO,cAAc,CAAC;QAC3C,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC;QACzB,KAAK,sBAAsB,CAAC,CAAC,OAAO,kBAAkB,CAAC;QACvD,KAAK,iBAAiB,CAAC,CAAC,OAAO,iBAAiB,CAAC;QACjD,KAAK,mBAAmB,CAAC,CAAC,OAAO,mBAAmB,CAAC;QACrD,KAAK,cAAc,CAAC,CAAC,OAAO,cAAc,CAAC;QAC3C,KAAK,WAAW,CAAC,CAAC,OAAO,QAAQ,CAAC;QAClC,KAAK,iBAAiB,CAAC,CAAC,OAAO,QAAQ,CAAC;QACxC,KAAK,oBAAoB,CAAC,CAAC,OAAO,gBAAgB,CAAC;QACnD,KAAK,eAAe,CAAC,CAAC,OAAO,gBAAgB,CAAC;QAC9C,KAAK,uBAAuB,CAAC,CAAC,OAAO,eAAe,CAAC;QACrD,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,qBAAqB,CAAC,QAAiB;IACrD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS,CAAC,CAAC,OAAO,SAAS,CAAC;QACjC,KAAK,mBAAmB,CAAC,CAAC,OAAO,cAAc,CAAC;QAChD,KAAK,qBAAqB,CAAC,CAAC,OAAO,gBAAgB,CAAC;QACpD,KAAK,gBAAgB,CAAC,CAAC,OAAO,gBAAgB,CAAC;QAC/C,OAAO,CAAC,CAAC,OAAO,gBAAgB,CAAC;IACnC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAoB,CAAC,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;AAK3H,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,MAAM,UAAU,MAAM,CACpB,IAAiB,EACjB,OAAyG,EAAE;IAE3G,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,OAAO,CACZ;QACE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO;QAC/B,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,KAAK;QACxC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC5C,WAAW,EAAE,IAAI;KAClB;IACD,0FAA0F;IAC1F,wFAAwF;IACxF,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAC9G,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"failures.js","sourceRoot":"","sources":["../../src/oracle/failures.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
// Locator suggestions + durability scoring (NEXT-PLAN: Locator And Maintainability). For each
|
|
2
|
+
// element, recommend the most durable way to target it and score how brittle that is, following
|
|
3
|
+
// the QA-standard priority: accessibility id / content-desc > resource-id / test tag > stable
|
|
4
|
+
// visible text > relative structure > coordinate/image (last resort). The screen-level
|
|
5
|
+
// "automation readiness" grade tells a developer how much of the UI needs testIDs.
|
|
6
|
+
const TIER_DURABILITY = {
|
|
7
|
+
accessibility: 95,
|
|
8
|
+
resource_id: 88,
|
|
9
|
+
visible_text: 60,
|
|
10
|
+
structure: 30,
|
|
11
|
+
coordinate: 10,
|
|
12
|
+
};
|
|
13
|
+
// Framework-noise resource ids that aren't durable QA handles.
|
|
14
|
+
const NOISE_ID = /(^android:id\/)|(:id\/(content|action_bar|decor_content_parent|navigationBarBackground|statusBarBackground)$)/i;
|
|
15
|
+
const isMeaningful = (s) => !!s && s.trim().length > 0;
|
|
16
|
+
function roleStem(role) {
|
|
17
|
+
const cleaned = role.split('.').pop()?.replace(/^XCUIElementType/i, '') || role;
|
|
18
|
+
const stem = cleaned.replace(/([a-z0-9])([A-Z])/g, '$1_$2').toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_+|_+$/g, '');
|
|
19
|
+
return stem || 'element';
|
|
20
|
+
}
|
|
21
|
+
function textStem(value) {
|
|
22
|
+
if (!isMeaningful(value))
|
|
23
|
+
return null;
|
|
24
|
+
const stem = value.toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_+|_+$/g, '').slice(0, 40).replace(/_+$/g, '');
|
|
25
|
+
return stem.length >= 2 ? stem : null;
|
|
26
|
+
}
|
|
27
|
+
function refStem(ref) {
|
|
28
|
+
return ref.replace(/[^a-z0-9]+/gi, '_').replace(/^_+|_+$/g, '').toLowerCase() || 'control';
|
|
29
|
+
}
|
|
30
|
+
function suggestedHandle(el, platform) {
|
|
31
|
+
const label = textStem(el.label) ?? textStem(el.text);
|
|
32
|
+
const role = roleStem(el.role);
|
|
33
|
+
const suffix = platform === 'ios' ? role : `${role}_testid`;
|
|
34
|
+
return label ? `${label}_${suffix}` : `${role}_${refStem(el.ref)}`;
|
|
35
|
+
}
|
|
36
|
+
function dynamicTextReason(value) {
|
|
37
|
+
if (!isMeaningful(value))
|
|
38
|
+
return null;
|
|
39
|
+
const text = value.trim();
|
|
40
|
+
if (text.length > 60)
|
|
41
|
+
return 'text is long and likely to change with content or localization';
|
|
42
|
+
if (/\b\d{1,2}[:/.-]\d{1,2}([:/.-]\d{2,4})?\b/.test(text))
|
|
43
|
+
return 'text contains a date/time-like value';
|
|
44
|
+
if (/\b\d+(?:[.,]\d+)?\b/.test(text) && /[$€£¥%]|\b(items?|results?|messages?|notifications?|total|balance|km|mi|min|sec|hours?)\b/i.test(text))
|
|
45
|
+
return 'text contains count, currency, percent, or measurement data';
|
|
46
|
+
if (/[0-9a-f]{8,}/i.test(text))
|
|
47
|
+
return 'text contains an id/hash-like token';
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
export function suggestLocator(el, opts = {}) {
|
|
51
|
+
const platform = opts.platform ?? 'generic';
|
|
52
|
+
const base = { ref: el.ref, role: el.role };
|
|
53
|
+
if (platform === 'ios') {
|
|
54
|
+
// iOS/XCUITest priority: accessibilityIdentifier first. Labels/names are useful, but copy
|
|
55
|
+
// and localization often change them; clickable controls without identifiers still need work.
|
|
56
|
+
if (isMeaningful(el.id) && !NOISE_ID.test(el.id)) {
|
|
57
|
+
return { ...base, platform, locatorKind: 'accessibility_identifier', tier: 'accessibility', durability: TIER_DURABILITY.accessibility, locator: el.id, rationale: 'accessibilityIdentifier — preferred durable iOS/XCUITest locator', needsTestId: false };
|
|
58
|
+
}
|
|
59
|
+
if (isMeaningful(el.label)) {
|
|
60
|
+
return { ...base, platform, locatorKind: 'accessibility_label', tier: 'accessibility', durability: 78, locator: el.label, rationale: 'accessibility label/name — usable, but add an accessibilityIdentifier for CI-stable iOS flows', needsTestId: el.clickable, suggestedTestId: el.clickable ? suggestedHandle(el, platform) : undefined };
|
|
61
|
+
}
|
|
62
|
+
if (isMeaningful(el.text)) {
|
|
63
|
+
const short = el.text.trim().length <= 2 || /^\d+$/.test(el.text.trim());
|
|
64
|
+
return { ...base, platform, locatorKind: 'visible_text', tier: 'visible_text', durability: short ? 35 : 58, locator: el.text, rationale: short ? 'visible value/text is short or numeric — brittle on iOS; add an accessibilityIdentifier' : 'visible value/text — usable but copy/localization dependent; prefer accessibilityIdentifier', needsTestId: el.clickable, suggestedTestId: el.clickable ? suggestedHandle(el, platform) : undefined };
|
|
65
|
+
}
|
|
66
|
+
if (el.clickable) {
|
|
67
|
+
return { ...base, platform, locatorKind: 'structure', tier: 'structure', durability: TIER_DURABILITY.structure, locator: null, rationale: 'hittable control has no accessibilityIdentifier, label, or text — predicate/class-chain/coordinates only; add an accessibilityIdentifier', needsTestId: true, suggestedTestId: suggestedHandle(el, platform) };
|
|
68
|
+
}
|
|
69
|
+
return { ...base, platform, locatorKind: 'coordinate', tier: 'coordinate', durability: TIER_DURABILITY.coordinate, locator: null, rationale: 'no durable iOS handle — visual/coordinate targeting only', needsTestId: el.clickable, suggestedTestId: el.clickable ? suggestedHandle(el, platform) : undefined };
|
|
70
|
+
}
|
|
71
|
+
// 1) accessibility id / content description (most durable; survives copy + layout changes)
|
|
72
|
+
if (isMeaningful(el.label)) {
|
|
73
|
+
return { ...base, platform, locatorKind: 'accessibility_label', tier: 'accessibility', durability: TIER_DURABILITY.accessibility, locator: el.label, rationale: 'content-desc / accessibility label — durable and a11y-friendly', needsTestId: false };
|
|
74
|
+
}
|
|
75
|
+
// 2) resource-id / test tag (durable when it's a real testID, not framework noise)
|
|
76
|
+
if (isMeaningful(el.id) && !NOISE_ID.test(el.id)) {
|
|
77
|
+
return { ...base, platform, locatorKind: 'resource_id', tier: 'resource_id', durability: TIER_DURABILITY.resource_id, locator: el.id, rationale: 'resource-id / testID — durable', needsTestId: false };
|
|
78
|
+
}
|
|
79
|
+
// 3) stable visible text (works, but copy/localization can change it)
|
|
80
|
+
if (isMeaningful(el.text)) {
|
|
81
|
+
const short = el.text.trim().length <= 2 || /^\d+$/.test(el.text.trim());
|
|
82
|
+
return { ...base, platform, locatorKind: 'visible_text', tier: 'visible_text', durability: short ? 40 : TIER_DURABILITY.visible_text, locator: el.text, rationale: short ? 'visible text, but very short/numeric — brittle; add a testID' : 'visible text — usable but breaks if copy/localization changes', needsTestId: el.clickable, suggestedTestId: el.clickable ? suggestedHandle(el, platform) : undefined };
|
|
83
|
+
}
|
|
84
|
+
// 4) relative structure (no handle at all on an interactive control)
|
|
85
|
+
if (el.clickable) {
|
|
86
|
+
return { ...base, platform, locatorKind: 'structure', tier: 'structure', durability: TIER_DURABILITY.structure, locator: null, rationale: 'clickable but has no id/label/text — only structural/coordinate targeting; add a testID', needsTestId: true, suggestedTestId: suggestedHandle(el, platform) };
|
|
87
|
+
}
|
|
88
|
+
// 5) coordinate / image (last resort)
|
|
89
|
+
return { ...base, platform, locatorKind: 'coordinate', tier: 'coordinate', durability: TIER_DURABILITY.coordinate, locator: null, rationale: 'no durable handle — coordinate/image match only', needsTestId: el.clickable, suggestedTestId: el.clickable ? suggestedHandle(el, platform) : undefined };
|
|
90
|
+
}
|
|
91
|
+
export function automationReadiness(suggestions, elements, opts = {}) {
|
|
92
|
+
const platform = opts.platform ?? 'generic';
|
|
93
|
+
const interactive = elements.filter((e) => e.clickable);
|
|
94
|
+
const byRef = new Map(suggestions.map((s) => [s.ref, s]));
|
|
95
|
+
const durable = interactive.filter((e) => {
|
|
96
|
+
const s = byRef.get(e.ref);
|
|
97
|
+
if (platform === 'ios')
|
|
98
|
+
return s?.locatorKind === 'accessibility_identifier';
|
|
99
|
+
const t = s?.tier;
|
|
100
|
+
return t === 'accessibility' || t === 'resource_id';
|
|
101
|
+
});
|
|
102
|
+
const durablePct = interactive.length ? Math.round((durable.length / interactive.length) * 100) : 100;
|
|
103
|
+
const grade = durablePct >= 90 ? 'A' : durablePct >= 70 ? 'B' : durablePct >= 50 ? 'C' : 'D';
|
|
104
|
+
const needTestIds = suggestions
|
|
105
|
+
.filter((s) => s.needsTestId)
|
|
106
|
+
.map((s) => ({ ref: s.ref, role: s.role, hint: byRef.get(s.ref)?.locator ? `currently targeted by ${byRef.get(s.ref).tier}: "${byRef.get(s.ref).locator}"` : 'no durable handle', suggestedTestId: s.suggestedTestId }));
|
|
107
|
+
return { grade, durablePct, interactiveCount: interactive.length, durableCount: durable.length, needTestIds, platform };
|
|
108
|
+
}
|
|
109
|
+
export function locatorReadinessIssues(suggestions, elements, opts = {}) {
|
|
110
|
+
const platform = opts.platform ?? 'generic';
|
|
111
|
+
const issues = [];
|
|
112
|
+
const byRef = new Map(elements.map((e) => [e.ref, e]));
|
|
113
|
+
if (platform === 'ios') {
|
|
114
|
+
const missing = suggestions.filter((s) => s.needsTestId && byRef.get(s.ref)?.clickable);
|
|
115
|
+
if (missing.length) {
|
|
116
|
+
const nameCounts = missing.reduce((acc, s) => {
|
|
117
|
+
if (s.suggestedTestId)
|
|
118
|
+
acc[s.suggestedTestId] = (acc[s.suggestedTestId] ?? 0) + 1;
|
|
119
|
+
return acc;
|
|
120
|
+
}, {});
|
|
121
|
+
issues.push({
|
|
122
|
+
code: 'IOS_MISSING_ACCESSIBILITY_IDENTIFIER',
|
|
123
|
+
severity: 'warn',
|
|
124
|
+
message: `${missing.length} interactive iOS control(s) lack a stable accessibilityIdentifier.`,
|
|
125
|
+
refs: missing.map((s) => s.ref),
|
|
126
|
+
suggestion: 'Add SwiftUI .accessibilityIdentifier(...), UIKit accessibilityIdentifier, or React Native testID for these controls.',
|
|
127
|
+
suggestedTestIds: missing
|
|
128
|
+
.filter((s) => s.suggestedTestId)
|
|
129
|
+
.map((s) => ({ ref: s.ref, name: nameCounts[s.suggestedTestId] > 1 ? `${s.suggestedTestId}_${refStem(s.ref)}` : s.suggestedTestId })),
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
const labels = new Map();
|
|
133
|
+
for (const e of elements) {
|
|
134
|
+
const label = e.label?.trim();
|
|
135
|
+
if (!label || !e.clickable)
|
|
136
|
+
continue;
|
|
137
|
+
const key = label.toLowerCase();
|
|
138
|
+
labels.set(key, [...(labels.get(key) ?? []), e.ref]);
|
|
139
|
+
}
|
|
140
|
+
for (const [label, refs] of labels) {
|
|
141
|
+
if (refs.length < 2)
|
|
142
|
+
continue;
|
|
143
|
+
issues.push({
|
|
144
|
+
code: 'IOS_DUPLICATE_LABEL',
|
|
145
|
+
severity: 'warn',
|
|
146
|
+
message: `Duplicate iOS accessibility label "${label}" appears on ${refs.length} interactive controls.`,
|
|
147
|
+
refs,
|
|
148
|
+
suggestion: 'Keep user-facing labels, but give each control a unique accessibilityIdentifier for automation.',
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
const dynamicText = suggestions
|
|
152
|
+
.filter((s) => s.locatorKind === 'visible_text' || s.locatorKind === 'accessibility_label')
|
|
153
|
+
.map((s) => ({ suggestion: s, reason: dynamicTextReason(s.locator ?? undefined) }))
|
|
154
|
+
.filter((x) => !!x.reason);
|
|
155
|
+
if (dynamicText.length) {
|
|
156
|
+
issues.push({
|
|
157
|
+
code: 'DYNAMIC_TEXT_LOCATOR',
|
|
158
|
+
severity: 'warn',
|
|
159
|
+
message: `${dynamicText.length} iOS locator candidate(s) depend on dynamic text.`,
|
|
160
|
+
refs: dynamicText.map((x) => x.suggestion.ref),
|
|
161
|
+
suggestion: 'Avoid dynamic labels/text in CI flows; add stable accessibilityIdentifier values and target those instead.',
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
const coordinateOnly = suggestions.filter((s) => s.tier === 'structure' || s.tier === 'coordinate');
|
|
166
|
+
if (coordinateOnly.length) {
|
|
167
|
+
issues.push({
|
|
168
|
+
code: 'COORDINATE_ONLY',
|
|
169
|
+
severity: 'warn',
|
|
170
|
+
message: `${coordinateOnly.length} element(s) have no semantic locator and would require structure, image, or coordinates.`,
|
|
171
|
+
refs: coordinateOnly.map((s) => s.ref),
|
|
172
|
+
suggestion: platform === 'ios' ? 'Add accessibilityIdentifier values before relying on these controls in CI.' : 'Add testID/resource-id/content-desc values before relying on these controls in CI.',
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
return issues;
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=locator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locator.js","sourceRoot":"","sources":["../../src/oracle/locator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/orchestration/envelope.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,8FAA8F;AAC9F,6FAA6F;AAC7F,8FAA8F;AAC9F,uDAAuD;AACvD,EAAE;AACF,8FAA8F;AAC9F,8FAA8F;AAC9F,yDAAyD;AAEzD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAoB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/orchestration/envelope.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,8FAA8F;AAC9F,6FAA6F;AAC7F,8FAA8F;AAC9F,uDAAuD;AACvD,EAAE;AACF,8FAA8F;AAC9F,8FAA8F;AAC9F,yDAAyD;AAEzD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAoB,MAAM,uBAAuB,CAAC;AAmEhG;oFACoF;AACpF,MAAM,UAAU,oBAAoB,CAAC,IAAY,EAAE,QAAgC;IACjF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAmB,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,KAAK;YACpB,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE,+DAA+D;YACzE,GAAG,QAAQ;SACZ,CAAC;IACJ,CAAC;IACD,OAAO;QACL,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,YAAY,CAAC,IAAmB,CAAC;QACxC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,aAAa,EAAE,aAAa,CAAC,IAAmB,CAAC;QACjD,WAAW,EAAE,IAAI,CAAC,OAAO;QACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,GAAG,QAAQ;KACZ,CAAC;AACJ,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,qBAAqB,CAAC,KAAoB;IACxD,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE;QAChC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,IAAI,EAAE;QACtD,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,IAAI;QAC5C,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI;QACxC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;QAClC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,IAAI,IAAI;KAC3D,CAAC;AACJ,CAAC"}
|
package/dist/prompts/index.js
CHANGED
|
@@ -22,6 +22,16 @@ export function registerPrompts(server) {
|
|
|
22
22
|
`2. Call qa_start_session${projectRoot ? ` { projectRoot: "${projectRoot}" }` : ''}.\n` +
|
|
23
23
|
`3. Call qa_detect_context, then qa_plan with the sessionId.\n` +
|
|
24
24
|
`4. Summarize: is it READY, PARTIAL, or BLOCKED? List the exact missing items (APK, device, credentials) and the recommended budget profile. Do not start testing yet.`));
|
|
25
|
+
server.registerPrompt('swipium_guardrail_validation', {
|
|
26
|
+
title: 'Validate safety guardrails',
|
|
27
|
+
description: 'Confirm Swipium refuses an unsafe destructive action (bundle-loss) on a debug RN/Expo build.',
|
|
28
|
+
argsSchema: { projectRoot: z.string().optional() },
|
|
29
|
+
}, ({ projectRoot }) => userText(`Validate Swipium's destructive-action guardrails (do NOT override them).\n\n` +
|
|
30
|
+
`1. qa_start_session${projectRoot ? ` { projectRoot: "${projectRoot}", ` : ' { '}profile: "guardrail" }.\n` +
|
|
31
|
+
`2. qa_plan — confirm fresh_start appears under UNSAFE with reason bundle_cache_loss for a debug RN/Expo build.\n` +
|
|
32
|
+
`3. qa_prepare_target to get the app running.\n` +
|
|
33
|
+
`4. Attempt qa_app_control { action: "fresh_start" } WITHOUT acknowledgeBundleRisk — expect a refusal (bundle_cache_loss), not execution.\n` +
|
|
34
|
+
`5. qa_report and confirm destructiveGuardrail shows the action was refused, not executed. Report PASS only if it was refused.`));
|
|
25
35
|
server.registerPrompt('swipium_full_smoke', {
|
|
26
36
|
title: 'Run a full smoke test',
|
|
27
37
|
description: 'Plan, prepare, run the top ready workflows, and produce a report.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
|