swipium 1.1.0 → 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.
Files changed (75) hide show
  1. package/README.md +15 -9
  2. package/THREAT_MODEL.md +59 -0
  3. package/dist/appMap/diff.js +60 -0
  4. package/dist/appMap/diff.js.map +1 -0
  5. package/dist/automation/capabilities.js +167 -0
  6. package/dist/automation/capabilities.js.map +1 -0
  7. package/dist/automation/gestures.js +94 -0
  8. package/dist/automation/gestures.js.map +1 -0
  9. package/dist/automation/maestroIr.js +282 -0
  10. package/dist/automation/maestroIr.js.map +1 -0
  11. package/dist/automation/plan.js +268 -0
  12. package/dist/automation/plan.js.map +1 -0
  13. package/dist/automation/report.js +83 -0
  14. package/dist/automation/report.js.map +1 -0
  15. package/dist/automation/selectors.js +201 -0
  16. package/dist/automation/selectors.js.map +1 -0
  17. package/dist/automation/types.js +13 -0
  18. package/dist/automation/types.js.map +1 -0
  19. package/dist/automation/waits.js +91 -0
  20. package/dist/automation/waits.js.map +1 -0
  21. package/dist/automation/webview.js +81 -0
  22. package/dist/automation/webview.js.map +1 -0
  23. package/dist/flows/repair.js +363 -0
  24. package/dist/flows/repair.js.map +1 -0
  25. package/dist/interop/maestro.js +151 -0
  26. package/dist/interop/maestro.js.map +1 -0
  27. package/dist/mobileAudit/checks.js +251 -0
  28. package/dist/mobileAudit/checks.js.map +1 -0
  29. package/dist/mobileAudit/evidence.js +49 -0
  30. package/dist/mobileAudit/evidence.js.map +1 -0
  31. package/dist/mobileAudit/profiles.js +73 -0
  32. package/dist/mobileAudit/profiles.js.map +1 -0
  33. package/dist/mobileAudit/results.js +41 -0
  34. package/dist/mobileAudit/results.js.map +1 -0
  35. package/dist/mobileAudit/runner.js +229 -0
  36. package/dist/mobileAudit/runner.js.map +1 -0
  37. package/dist/oracle/locator.js +177 -0
  38. package/dist/oracle/locator.js.map +1 -0
  39. package/dist/server.js +20 -0
  40. package/dist/server.js.map +1 -1
  41. package/dist/testSuite/exporter.js +70 -0
  42. package/dist/testSuite/exporter.js.map +1 -0
  43. package/dist/testSuite/lint.js +53 -0
  44. package/dist/testSuite/lint.js.map +1 -0
  45. package/dist/tools/capabilities.js +46 -4
  46. package/dist/tools/capabilities.js.map +1 -1
  47. package/dist/tools/flow.js +67 -1
  48. package/dist/tools/flow.js.map +1 -1
  49. package/dist/tools/flowRepair.js +66 -0
  50. package/dist/tools/flowRepair.js.map +1 -0
  51. package/dist/tools/idling.js +104 -0
  52. package/dist/tools/idling.js.map +1 -0
  53. package/dist/tools/inputCapabilities.js +30 -0
  54. package/dist/tools/inputCapabilities.js.map +1 -0
  55. package/dist/tools/issues.js +218 -0
  56. package/dist/tools/issues.js.map +1 -0
  57. package/dist/tools/jobs.js +12 -1
  58. package/dist/tools/jobs.js.map +1 -1
  59. package/dist/tools/locator.js +57 -0
  60. package/dist/tools/locator.js.map +1 -0
  61. package/dist/tools/maestro.js +78 -0
  62. package/dist/tools/maestro.js.map +1 -0
  63. package/dist/tools/mobileAudit.js +115 -0
  64. package/dist/tools/mobileAudit.js.map +1 -0
  65. package/dist/tools/suite.js +49 -1
  66. package/dist/tools/suite.js.map +1 -1
  67. package/dist/tools/testSuite.js +233 -0
  68. package/dist/tools/testSuite.js.map +1 -0
  69. package/dist/tools/wait.js +58 -0
  70. package/dist/tools/wait.js.map +1 -0
  71. package/dist/version.js +31 -2
  72. package/dist/version.js.map +1 -1
  73. package/docs/mcp-server.md +1 -1
  74. package/docs/tools.md +46 -1
  75. package/package.json +3 -2
@@ -100,7 +100,7 @@ qa_capabilities
100
100
 
101
101
  Use `qa_doctor` with `platform:"android"`, `platform:"ios"`, or `platform:"both"` when checking platform-specific readiness.
102
102
 
103
- Expected v2 tool count: 59.
103
+ Expected tool count: 83.
104
104
 
105
105
  If the client lists fewer tools, restart the MCP client. MCP clients often keep an old server process alive after package upgrades.
106
106
 
package/docs/tools.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Tool Reference
2
2
 
3
- Swipium exposes 59 public MCP tools. The intended default entry point is `qa_test_this`.
3
+ Swipium exposes 83 public MCP tools. The intended default entry point is `qa_test_this`.
4
4
 
5
5
  ## Start
6
6
 
@@ -16,6 +16,7 @@ Use these tools to orient the agent, start autopilot work, poll jobs, handle blo
16
16
  | `qa_explain_blocker` | Explains a typed blocker, likely owner, and recovery path. | A run stops with a blocker and the user needs a concise explanation. |
17
17
  | `qa_continue_from_blocker` | Resumes after user input and registers secret values for redaction. | A blocker asks for credentials, OTP, target choice, or approval data. |
18
18
  | `qa_get_artifact` | Fetches artifact metadata or contents by `swipium://` URI. | A report, screenshot, dump, log, or generated file must be read. |
19
+ | `qa_job_cancel` | Cancels a running job and aborts its spawned children. | A long-running job must be stopped early. |
19
20
 
20
21
  ## Setup
21
22
 
@@ -63,6 +64,10 @@ Use these tools to observe the UI, act on it, collect evidence, and record resul
63
64
  | `qa_assert_visual` | Captures a visual assertion with evidence. | The agent needs to document that a visual condition is true or false. |
64
65
  | `qa_visual` | Runs local visual operations: baseline capture, regression diff, image-target matching with tappable coordinates, and optional OCR. | A screen is visual-only or needs pixel-level regression checks. |
65
66
  | `qa_visual_find_text` | Locates on-screen text with OCR and returns structured regions with coordinate-space conversion. | A target has visible text but no structured selector. |
67
+ | `qa_locator_suggest` | Scores each element's locator durability and grades automation readiness. | The agent needs to know which controls need testIDs before generating automation. |
68
+ | `qa_input_capabilities` | Reports backend text-entry limits: ASCII, Unicode, clipboard, and WDA typing frequency. | Typing fails or behaves oddly and the agent needs the backend's input limits. |
69
+ | `qa_wait` | Waits without a shell for `device_online`, `metro_ready`, or `job_done`. | The agent needs to block on a condition without raw `adb`/`sleep`. |
70
+ | `qa_idling_status` | Reads app-declared idling hooks or label-heuristic settling before automation. | The agent needs to know the app has settled before acting. |
66
71
 
67
72
  ## State
68
73
 
@@ -106,12 +111,52 @@ Use these tools to create, validate, run, and compile reusable test assets.
106
111
  | Tool | What it does | Use when |
107
112
  | --- | --- | --- |
108
113
  | `qa_flow_check` | Parses and statically validates a Swipium flow. | A flow file should be checked before execution. |
114
+ | `qa_flow_plan` | Plans a flow against backend capabilities without executing it. | A flow should be checked for feasibility before a run. |
109
115
  | `qa_flow_run` | Executes a Swipium flow against a prepared simulator session. | A saved flow needs to run against the app. |
110
116
  | `qa_flow_generate` | Generates a flow from recorded actions. | A manual or exploratory run should become a reusable flow. |
117
+ | `qa_flow_repair` | Suggests or patches a stronger locator for a failed flow step from the current screen. | A flow step fails on a brittle locator. |
111
118
  | `qa_suite_generate` | Generates a POM-style suite from recorded behavior. | The run should become a structured test suite. |
112
119
  | `qa_suite_compile` | Compiles a generated suite into runnable Swipium flows. | A generated suite needs executable flow output. |
120
+ | `qa_suite_lint` | Lints generated page objects for brittle, coordinate-only, or dynamic locators. | A generated suite needs a durability check. |
121
+ | `qa_pom_generate` | Generates page objects and a locator audit from recorded actions. | A run should produce reusable page objects. |
113
122
  | `qa_testcase_generate` | Generates test-case documentation from recorded behavior. | The run should produce human-readable test cases and steps. |
114
123
 
124
+ ## Persistent Test Suite
125
+
126
+ Use these tools to grow and maintain a canonical test suite that persists across runs in `.swipium/test-suite.json`.
127
+
128
+ | Tool | What it does | Use when |
129
+ | --- | --- | --- |
130
+ | `qa_test_suite_read` | Reads the canonical suite, filtered by functionality or status, as summary, json, or markdown. | The agent needs the durable suite without re-deriving it. |
131
+ | `qa_test_suite_update` | Merges cases into the persistent suite, deduping by feature, objective, and steps. | A run produced cases to fold into the suite. |
132
+ | `qa_test_suite_generate` | Generates or refreshes canonical cases from a recorded run and exploration. | The suite needs to be (re)built from observed behavior. |
133
+ | `qa_test_suite_export` | Exports the persistent suite to markdown, a yaml directory, json, or junit. | The suite must be shared or fed to CI. |
134
+ | `qa_test_suite_lint` | Validates the suite for missing expected/actual, stale map links, and duplicate ids. | The suite must be trusted before a release sign-off. |
135
+
136
+ ## Maestro Interop
137
+
138
+ Use these tools to exchange flows with the Maestro ecosystem.
139
+
140
+ | Tool | What it does | Use when |
141
+ | --- | --- | --- |
142
+ | `qa_maestro_import` | Imports supported Maestro YAML commands into a Swipium Flow V2. | An existing Maestro flow should run under Swipium. |
143
+ | `qa_maestro_export` | Exports a Swipium Flow V2 to Maestro YAML with portability grades. | A Swipium flow should be shared as Maestro YAML. |
144
+
145
+ ## Issue Memory and Mobile Audit
146
+
147
+ Use these tools for a durable, per-project issue ledger and executable mobile-QA audit profiles. The ledger lives in `.swipium/issues-log.jsonl`; fingerprints let later runs detect regressions of previously fixed issues.
148
+
149
+ | Tool | What it does | Use when |
150
+ | --- | --- | --- |
151
+ | `qa_issue_log` | Lists the durable issue ledger with counts, recurrence candidates, and linked evidence. | The agent needs the project's known issues. |
152
+ | `qa_issue_history` | Shows the append-only event trail for one issue. | An issue's lifecycle needs auditing. |
153
+ | `qa_issue_mark_fixed` | Records a fix (date, commit, version, how-fixed) so future runs detect regressions. | A reported issue has been resolved. |
154
+ | `qa_issue_triage` | Changes an issue's category, severity, or owner, or appends a note. | An issue needs reclassification. |
155
+ | `qa_issue_suppress` | Suppresses known noise with a reason and expiration; it stays visible as known-noise. | A recurring non-bug should stop dominating reports. |
156
+ | `qa_issue_verify_fixed` | Links passing test or audit evidence to a fixed issue. | A report should honestly claim an issue was verified this run. |
157
+ | `qa_issue_metrics` | Summarizes issue trends: opened, fixed, reopened, verified, aging, and reopen rate. | The user wants issue quality trends. |
158
+ | `qa_mobile_audit` | Plans or executes a named mobile-QA profile (smoke, account_cycle, store_compliance, resilience, release_gate). | A structured, repeatable audit is needed; execution records issues and evidence. |
159
+
115
160
  ## First Run
116
161
 
117
162
  Use these tools for login, account creation, onboarding, permissions, OTP, and paywall screens.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "swipium",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "private": false,
5
5
  "description": "Swipium MCP server for simulator-based mobile QA workflows, evidence capture, app maps, and generated test suites.",
6
6
  "keywords": [
@@ -27,7 +27,8 @@
27
27
  },
28
28
  "files": [
29
29
  "dist",
30
- "docs"
30
+ "docs",
31
+ "THREAT_MODEL.md"
31
32
  ],
32
33
  "engines": {
33
34
  "node": ">=20"