swipium 1.2.0 → 1.3.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 +7 -8
- package/dist/appMap/featureIndex.js +183 -0
- package/dist/appMap/featureIndex.js.map +1 -0
- package/dist/featureTesting/executionBootstrap.js +14 -10
- package/dist/featureTesting/executionBootstrap.js.map +1 -1
- package/dist/featureTesting/featureMap.js +53 -0
- package/dist/featureTesting/featureMap.js.map +1 -0
- package/dist/featureTesting/featureScope.js +354 -0
- package/dist/featureTesting/featureScope.js.map +1 -0
- package/dist/featureTesting/mapFeatureScope.js +143 -0
- package/dist/featureTesting/mapFeatureScope.js.map +1 -0
- package/dist/featureTesting/objectiveModel.js +129 -0
- package/dist/featureTesting/objectiveModel.js.map +1 -0
- package/dist/featureTesting/resultMerge.js +112 -0
- package/dist/featureTesting/resultMerge.js.map +1 -0
- package/dist/featureTesting/sources.js +96 -0
- package/dist/featureTesting/sources.js.map +1 -0
- package/dist/featureTesting/suiteBridge.js +51 -0
- package/dist/featureTesting/suiteBridge.js.map +1 -0
- package/dist/featureTesting/synonyms.js +73 -0
- package/dist/featureTesting/synonyms.js.map +1 -0
- package/dist/featureTesting/testCaseFactory.js +107 -0
- package/dist/featureTesting/testCaseFactory.js.map +1 -0
- package/dist/featureTesting/testPlan.js +50 -0
- package/dist/featureTesting/testPlan.js.map +1 -0
- package/dist/server.js +11 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/build.js +172 -0
- package/dist/tools/build.js.map +1 -0
- package/dist/tools/bundletool.js +145 -0
- package/dist/tools/bundletool.js.map +1 -0
- package/dist/tools/capabilities.js +20 -0
- package/dist/tools/capabilities.js.map +1 -1
- package/dist/tools/featureTesting.js +344 -0
- package/dist/tools/featureTesting.js.map +1 -0
- package/dist/tools/resolveArtifact.js +80 -0
- package/dist/tools/resolveArtifact.js.map +1 -0
- package/dist/tools/resolveTarget.js +67 -0
- package/dist/tools/resolveTarget.js.map +1 -0
- package/dist/version.js +12 -2
- package/dist/version.js.map +1 -1
- package/docs/mcp-server.md +1 -1
- package/docs/tools.md +41 -3
- package/package.json +1 -1
package/docs/mcp-server.md
CHANGED
|
@@ -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 tool count:
|
|
103
|
+
Expected tool count: 91.
|
|
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
|
|
3
|
+
Swipium exposes 91 public MCP tools. The intended default entry point is `qa_test_this`.
|
|
4
4
|
|
|
5
5
|
## Start
|
|
6
6
|
|
|
@@ -33,6 +33,18 @@ Use these tools to verify the local environment, create sessions, and prepare si
|
|
|
33
33
|
| `qa_ios` | Runs iOS Simulator lifecycle operations such as boot, install, launch, screenshot, logs, privacy reset, and erase. | Direct iOS simulator control is needed. |
|
|
34
34
|
| `qa_wda` | Checks, builds, or starts WebDriverAgent for structured iOS simulator automation. | iOS needs structured UI tree access instead of visual-only checks. |
|
|
35
35
|
|
|
36
|
+
## Build
|
|
37
|
+
|
|
38
|
+
Use these tools to resolve a device and an installable artifact, or build one from source locally. `qa_build` is consent-gated; the others are side-effect free.
|
|
39
|
+
|
|
40
|
+
| Tool | What it does | Use when |
|
|
41
|
+
| --- | --- | --- |
|
|
42
|
+
| `qa_resolve_target` | Picks the best device or simulator (prefers online over needing a boot; honors a requested platform or device). | The agent needs to choose where to run. |
|
|
43
|
+
| `qa_resolve_artifact` | Finds the best installable `.apk`/`.aab`/`.ipa`/`.app` and explains where it looked. | An artifact path is unknown or ambiguous. |
|
|
44
|
+
| `qa_build_plan` | Proposes the exact build commands per framework and platform without running them. | The agent needs to know how the app would be built. |
|
|
45
|
+
| `qa_build` | Builds from source as a consent-gated job, captures a build log, and re-resolves the artifact. | No reusable artifact exists and the project must be compiled. |
|
|
46
|
+
| `qa_bundletool` | Converts an `.aab` to an installable APK: a universal `.apk` or a device-specific APK set. | Only an Android App Bundle is available. |
|
|
47
|
+
|
|
36
48
|
## Device
|
|
37
49
|
|
|
38
50
|
Use these tools to inspect and control the device and app environment without raw `adb` or `simctl`. Mutating actions are consent-gated and recorded as environment changes; network changes are auto-restored at report end.
|
|
@@ -104,6 +116,16 @@ Use these tools to build and read Swipium's durable app knowledge map.
|
|
|
104
116
|
| `qa_app_map_feature_scope` | Resolves a feature query or feature id into focused testing scope and recommended plan. | The agent needs to test a specific feature. |
|
|
105
117
|
| `qa_app_map_validate` | Validates schema, provenance, links, duplicate ids, impossible states, and stale fingerprints. | The map must be trusted before feature-focused testing. |
|
|
106
118
|
|
|
119
|
+
## Feature Testing
|
|
120
|
+
|
|
121
|
+
Use these tools to test a specific feature by name, backed by the app knowledge map.
|
|
122
|
+
|
|
123
|
+
| Tool | What it does | Use when |
|
|
124
|
+
| --- | --- | --- |
|
|
125
|
+
| `qa_feature_scope` | Maps a natural-language feature ("weather analysis") to code, screens, routes, runtime, and tests, plus an objective and strategy. Read-only. | The user names a feature and the agent needs its scope. |
|
|
126
|
+
| `qa_feature_test_plan` | Produces a feature test plan: scope, objective, generated cases, fixtures, automation readiness, and an execution plan. Read-only. | A feature needs a concrete test plan before running. |
|
|
127
|
+
| `qa_test_feature` | Runs a focused feature test: scope, targeted exploration toward the feature, recorded cases, then updates the feature map and report. | The user asks to test a specific feature. |
|
|
128
|
+
|
|
107
129
|
## Flows and Suites
|
|
108
130
|
|
|
109
131
|
Use these tools to create, validate, run, and compile reusable test assets.
|
|
@@ -176,9 +198,9 @@ Use these tools to generate and validate automation code from Swipium evidence.
|
|
|
176
198
|
| `qa_automation_generate` | Generates an Appium POM suite from recorded actions and validates it. | The run should produce automation code. |
|
|
177
199
|
| `qa_automation_validate` | Validates generated automation code without a device. | Generated files need checks for secrets, durability, capabilities, syntax, and empty files. |
|
|
178
200
|
|
|
179
|
-
## Detailed Reference: Device, Visual, State, and
|
|
201
|
+
## Detailed Reference: Device, Visual, State, History, Build, and Feature Tools
|
|
180
202
|
|
|
181
|
-
Technical detail for the tools added alongside the device-parity, visual-intelligence, seeded-state, and
|
|
203
|
+
Technical detail for the tools added alongside the device-parity, visual-intelligence, seeded-state, reporting, build, and feature-testing phases. Most take a `sessionId` from `qa_start_session`; the build, artifact, and read-only feature tools also accept a `projectRoot` so they work before a session exists. Mutating actions accept `consentId` + `approve` and are recorded in the report's mutation ledger.
|
|
182
204
|
|
|
183
205
|
### Device and app environment
|
|
184
206
|
|
|
@@ -209,6 +231,20 @@ Technical detail for the tools added alongside the device-parity, visual-intelli
|
|
|
209
231
|
- **`qa_report_compare`** — diff two reports. *Inputs:* `current`, `baseline` (paths to `report.json`), `trendRoot?`. *Outputs:* new/fixed failures, changed screenshots, outcome changes, runtime regression, optional flake status, and a `summary`. Filesystem-only — no session or device.
|
|
210
232
|
- **`qa_run_history`** — local trend summary. *Inputs:* `sessionId?` or `projectRoot?`. *Outputs:* report count, per-flow `passRate`, median/average runtime, top failures, flaky flows, confidence calibration, and slowest steps. Reads `.swipium/runs/**/report.json` (and legacy `.swipium/ci/**`).
|
|
211
233
|
|
|
234
|
+
### Build and artifact resolution
|
|
235
|
+
|
|
236
|
+
- **`qa_resolve_target`** — choose the best device or simulator, deterministically and side-effect free. *Inputs:* `sessionId?`, `projectRoot?`, `platform?` (`android`/`ios`), `device?` (name/serial/udid), `preferRealDevice?`. *Outputs:* `selection` (kind + id), a human `reason`, `alternatives[]`, `preconditions` (e.g. WDA/signing), and `willBoot`. Does not boot anything — `qa_prepare_target`/`qa_ios` do that.
|
|
237
|
+
- **`qa_resolve_artifact`** — find the best installable artifact and explain the search. *Inputs:* `sessionId?`, `projectRoot?`, `platform?` (`android`/`ios`/`any`), `buildType?` (`debug`/`release`/`any`), `path?` (explicit artifact), `allowOutsideRoot?`, `requireInstallableOn?` (`android-emulator`/`android-real`/`ios-simulator`/`ios-real`). *Outputs:* the resolved `.apk`/`.aab`/`.ipa`/`.app` and its type; on failure, the exact globs searched plus a `qa_build_plan` → `qa_build` next step. Read-only.
|
|
238
|
+
- **`qa_build_plan`** — propose exact build commands without running them. *Inputs:* `sessionId?`, `projectRoot?`, `platform` (`android`/`ios`), `variant?` (`debug`/`release`). *Outputs:* detected `framework`, the exact build commands, the expected artifact path, and a cost estimate. Returns a typed error when no supported framework (Expo, bare React Native, native Android/iOS, Flutter) is detected. Side-effect free.
|
|
239
|
+
- **`qa_build`** — build from source as a consent-gated job. *Inputs:* `sessionId` (required), `platform` (`android`/`ios`), `variant?`, `timeoutMs?`, `consentId?`/`approve?`. *Outputs:* a `jobId` to poll with `qa_job_status`; on completion a build-log artifact and the re-resolved artifact path. Consent-gated (it compiles the app).
|
|
240
|
+
- **`qa_bundletool`** — convert an Android App Bundle to an installable APK. *Inputs:* `sessionId` (required), `aab?` (default: the best `.aab` under the project), `force?`, `connectedDevice?` (device-specific APK set vs a universal APK), `install?` (also run `install-apks`), `deviceId?`, `consentId?`/`approve?`. *Outputs:* the generated APK or APK-set path. `install` is consent-gated because it installs app code on a device/emulator.
|
|
241
|
+
|
|
242
|
+
### Feature-focused testing
|
|
243
|
+
|
|
244
|
+
- **`qa_feature_scope`** — map a natural-language feature to the app, read-only. *Inputs:* `feature` (required, e.g. "weather analysis"), `sessionId?` (adds runtime screen-graph evidence), `projectRoot?` (static code scope), `platform?`, `includeCode?` (default true), `limit?`. *Outputs:* ranked `candidates` each tagged by `source` (`code`/`screen`/`route`/`runtime`/`test`) with confidence, plus a test `objective` and `strategy`. No consent. Returns `found:false` with guidance when nothing matches.
|
|
245
|
+
- **`qa_feature_test_plan`** — generate a full feature test plan, read-only. *Inputs:* `feature` (required), `sessionId?`/`projectRoot?`, `platform?`, `creativity?` (`conservative`=happy path; `standard` (default)=+validation/empty/error; `creative`=+boundary/offline/interruption; `adversarial`=+destructive), `allowAdversarial?`, `includeCode?`, `limit?`. *Outputs:* a `plan` with scope, objective, generated `cases`, `fixtures`, automation readiness, and an execution plan. Adversarial cases are consent-gated at execution time.
|
|
246
|
+
- **`qa_test_feature`** — run a focused test toward a named feature. *Inputs:* `feature` (required), `sessionId` (required), `mode?` (`plan` (default) / `execute` (focused run as a job) / `interactive` (run until the first question)), `platform?`, `device?`, `creativity?`, `allowAdversarial?`, `maxScreens?`, `maxActions?`, `timeoutMs?`, `generateCases?`, `consentId?`/`approve?`. *Outputs:* in `plan` mode the scope + cases; in `execute` mode a `jobId` whose run performs targeted exploration toward the feature, records cases, updates the feature map, and emits a report. `execute`/`interactive` are consent-gated.
|
|
247
|
+
|
|
212
248
|
## Recommended Entry Points
|
|
213
249
|
|
|
214
250
|
| User intent | First tool |
|
|
@@ -222,6 +258,8 @@ Technical detail for the tools added alongside the device-parity, visual-intelli
|
|
|
222
258
|
| "Explore the app" | `qa_explore` |
|
|
223
259
|
| "Generate report" | `qa_report` |
|
|
224
260
|
| "Read app memory" | `qa_app_map_read` |
|
|
261
|
+
| "Test the X feature" | `qa_test_feature` |
|
|
262
|
+
| "Find/build an artifact" | `qa_resolve_artifact` / `qa_build` |
|
|
225
263
|
| "Create a flow" | `qa_flow_generate` |
|
|
226
264
|
| "Generate automation" | `qa_automation_plan` |
|
|
227
265
|
|