mobridge-mcp 0.10.0 → 0.10.2
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/AI-USAGE.md +2 -1
- package/dist/main.obf.cjs +1 -1
- package/integrity.json +2 -2
- package/loader.cjs +1 -1
- package/package.json +1 -1
- package/resources/android/app-developer-release.apk +0 -0
- package/skills/VERSIONS.json +8 -8
- package/skills/mobridge-core/SKILL.md +3 -1
- package/skills/mobridge-debugging/SKILL.md +1 -1
- package/skills/mobridge-debugging/references/connection-errors.md +1 -0
- package/skills/mobridge-devices/SKILL.md +5 -3
- package/skills/mobridge-recipes/SKILL.md +12 -1
package/AI-USAGE.md
CHANGED
|
@@ -46,6 +46,7 @@ After an install/update, connect waits for the companion to become ready (a few
|
|
|
46
46
|
| DEVICE_UNAUTHORIZED | The phone has not accepted this computer's USB debugging key. | needs action | Ask the user to unlock the phone and accept the dialog, then retry `mobridge connect`. User: Unlock the phone and tap Allow on the "Allow USB debugging?" dialog (tick Always allow). |
|
|
47
47
|
| MULTIPLE_DEVICES | More than one usable device is attached and none was chosen. | needs action | Pick one from `details.candidates` and pass it as deviceId (`-d ANDROID:<serial>`), or save it once with `mobridge device use <serial>`. |
|
|
48
48
|
| AMBIGUOUS_DEVICE | Several devices are connected in this daemon and the call named none. | needs action | Pass `deviceId` (from `mobridge devices`) on every call; never guess one. |
|
|
49
|
+
| CAPTURE_SOURCE_MISMATCH | The frame size and the adb window topology do not describe the same screen. | self-heals / retry | Connect the named phone again with `-d ANDROID:<serial>`; nothing was tapped. |
|
|
49
50
|
| DEVICE_BINDING_MISMATCH | The runtime socket answered for a different phone than the one named. | self-heals / retry | Run `mobridge connect -d ANDROID:<serial>` again; if it repeats run `mobridge doctor`. Nothing was driven. |
|
|
50
51
|
| COMPANION_MISSING | The companion app is not installed and no APK was available. | needs action | Run `npx -y mobridge-mcp@latest install`, or set MSM_COMPANION_APK to the APK of this package. |
|
|
51
52
|
| COMPANION_VERSION_MISMATCH | The installed companion is not the build this host expects. | self-heals / retry | Run `mobridge connect`; it updates the companion once. |
|
|
@@ -101,7 +102,7 @@ After an install/update, connect waits for the companion to become ready (a few
|
|
|
101
102
|
- Semantic UI (find/click/type/scroll/BACK/HOME/wait) runs through Accessibility; package/process/permission/settings/log/perf run through ADB; opening an app, permission flows, notifications and ads are hybrid; canvas/games/unlabeled icons use vision.
|
|
102
103
|
- With a clear goal call one act directly; find is only for checking or when ambiguous. Several steps: mobile.run/mobridge run or mobridge session --jsonl; one-shot CLI is for single operations only.
|
|
103
104
|
- permission respond answers the dialog that is showing (resource-id, not pm grant); permission set changes state with pm grant/revoke and reads it back to verify. The two do not replace each other.
|
|
104
|
-
- NEEDS_VISION: read the current capture (it has a captureId), pick a point on the image, then act CLICK {at:{captureId,x,y}} (dynamic UI such as ads/video: stalePolicy VISUAL_DYNAMIC); an old image gives STALE_CAPTURE. Never guess coordinates. Find by colour: capture {color:{hex}} → colorMatch. A control without a node: capture {scan:{}} → regionScan.regions[] (regionId, bounds, position, semanticNode, at): neutral facts that do not name the icon. Look at the image, choose a region, act CLICK {at}; if unsure it stays NEEDS_VISION, do not guess.
|
|
105
|
+
- NEEDS_VISION: read the current capture (it has a captureId), pick a point on the image, then act CLICK {at:{captureId,x,y}} (dynamic UI such as ads/video/countdown timers: stalePolicy VISUAL_DYNAMIC, act within 8 s); an old image gives STALE_CAPTURE. Never guess coordinates. Find by colour: capture {color:{hex}} → colorMatch. A control without a node: capture {scan:{}} → regionScan.regions[] (regionId, bounds, position, semanticNode, at): neutral facts that do not name the icon. Look at the image, choose a region, act CLICK {at}; if unsure it stays NEEDS_VISION, do not guess.
|
|
105
106
|
- Do not change executor after a dispatch that may have run (timeout/dropped connection): the result is RESULT_UNKNOWN, look up the operation status, do not resend over ADB.
|
|
106
107
|
- Do not use raw adb when a typed command exists. mobridge capabilities [--family F] lists each op's executor, replay class and verification.
|
|
107
108
|
|