flutter-skill 0.8.6 → 0.8.7

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 CHANGED
@@ -161,18 +161,91 @@ Real benchmarks from automated test runs against a complex social media app:
161
161
 
162
162
  ## Why Not Playwright / Appium / Detox?
163
163
 
164
- | | flutter-skill | Playwright | Appium | Detox |
164
+ | | flutter-skill | Playwright MCP | Appium | Detox |
165
165
  |---|:---:|:---:|:---:|:---:|
166
+ | **MCP tools** | **237** | ~33 | ❌ | ❌ |
167
+ | **Platforms** | **10** | 1 (web) | Mobile | React Native |
166
168
  | **Setup time** | 30 sec | Minutes | Hours | Hours |
167
169
  | **Test code needed** | ❌ None | ✅ Yes | ✅ Yes | ✅ Yes |
168
- | **AI-native (MCP)** | ✅ | | ❌ | ❌ |
169
- | **Platforms** | 10 | 3 (web) | Mobile | React Native |
170
+ | **AI-native (MCP)** | ✅ | | ❌ | ❌ |
171
+ | **Self-healing tests** | | | | |
172
+ | **Monkey/fuzz testing** | ✅ | ❌ | ❌ | ❌ |
173
+ | **Visual regression** | ✅ | ❌ | ❌ | ❌ |
174
+ | **Network mock/replay** | ✅ | ❌ | ❌ | ❌ |
175
+ | **API + UI testing** | ✅ | ❌ | ❌ | ❌ |
176
+ | **Multi-device sync** | ✅ | ❌ | Partial | ❌ |
177
+ | **Accessibility audit** | ✅ | ❌ | ❌ | ❌ |
178
+ | **i18n testing** | ✅ | ❌ | ❌ | ❌ |
179
+ | **Performance monitoring** | ✅ | ❌ | ❌ | ❌ |
170
180
  | **Natural language** | ✅ | ❌ | ❌ | ❌ |
171
- | **Maintenance** | Zero | High | High | Medium |
172
181
  | **Flutter support** | ✅ Native | Partial | Partial | ❌ |
173
182
  | **Desktop apps** | ✅ | ✅ | ❌ | ❌ |
174
183
 
175
- **flutter-skill is the only AI-native E2E testing tool that works across mobile, web, and desktop.**
184
+ | **AI page understanding** | AX Tree | Screenshots | | |
185
+ | **Boundary/security test** | ✅ 13 payloads | ❌ | ❌ | ❌ |
186
+ | **Batch actions** | ✅ 5+/call | 1/call | 1/call | 1/call |
187
+
188
+ **flutter-skill is the only AI-native E2E testing tool that works across mobile, web, and desktop — with 7× more tools than the nearest competitor.**
189
+
190
+ ---
191
+
192
+ ## CLI Commands
193
+
194
+ ```bash
195
+ # 🤖 AI autonomous exploration — finds bugs automatically
196
+ flutter-skill explore https://my-app.com --depth=3
197
+
198
+ # 🐒 Monkey/fuzz testing — random actions, crash detection
199
+ flutter-skill monkey https://my-app.com --actions=100 --seed=42
200
+
201
+ # 🚀 Parallel multi-platform testing
202
+ flutter-skill test --url https://my-app.com --platforms web,electron,android
203
+
204
+ # 🌐 Zero-config WebMCP server — any website becomes testable
205
+ flutter-skill serve https://my-app.com
206
+ ```
207
+
208
+ ---
209
+
210
+ ## 🧠 AI-Native: 95% Fewer Tokens
211
+
212
+ Most AI testing tools send **screenshots** to the LLM — each one costs ~4,000 tokens.
213
+
214
+ flutter-skill uses Chrome's **Accessibility Tree** to give your AI a compact semantic summary of any page:
215
+
216
+ ```json
217
+ // page_summary → ~200 tokens (vs ~4,000 for a screenshot)
218
+ {
219
+ "title": "Shopping Cart",
220
+ "nav": ["Home", "Products", "Cart", "Account"],
221
+ "forms": [{"input:Coupon Code": "text"}],
222
+ "buttons": ["Apply", "Checkout", "Continue Shopping"],
223
+ "features": {"search": true, "pagination": true},
224
+ "links": 47, "inputs": 3
225
+ }
226
+ ```
227
+
228
+ Then batch multiple actions in one call:
229
+
230
+ ```json
231
+ // explore_actions → 5 actions per call (vs 5 separate tool calls)
232
+ {"actions": [
233
+ {"type": "fill", "target": "input:Coupon Code", "value": "SAVE20"},
234
+ {"type": "tap", "target": "button:Apply"},
235
+ {"type": "tap", "target": "button:Checkout"},
236
+ {"type": "fill", "target": "input:Email", "value": "test@example.com"},
237
+ {"type": "tap", "target": "button:Continue"}
238
+ ]}
239
+ ```
240
+
241
+ **Result:** Your AI agent tests faster, costs less, and understands pages better than screenshot-based tools.
242
+
243
+ | | flutter-skill | Screenshot-based tools |
244
+ |---|:---:|:---:|
245
+ | Tokens per page | **~200** | ~4,000 |
246
+ | Actions per call | **5+** | 1 |
247
+ | Understands semantics | ✅ roles, names, state | ❌ pixels only |
248
+ | Works with Shadow DOM | ✅ | ❌ |
176
249
 
177
250
  ---
178
251
 
@@ -222,17 +295,47 @@ Real benchmarks from automated test runs against a complex social media app:
222
295
  </table>
223
296
 
224
297
  <details>
225
- <summary><strong>160+ tools — full reference</strong></summary>
298
+ <summary><strong>237 tools — full reference</strong></summary>
299
+
300
+ **AI Explore:** `page_summary`, `explore_actions`, `boundary_test`, `explore_report`
301
+
302
+ **Launch & Connect:** `launch_app`, `scan_and_connect`, `connect_cdp`, `hot_reload`, `hot_restart`, `list_sessions`, `switch_session`, `close_session`, `disconnect`, `stop_app`
303
+
304
+ **Screen:** `screenshot`, `screenshot_region`, `screenshot_element`, `native_screenshot`, `inspect`, `inspect_interactive`, `snapshot`, `get_widget_tree`, `find_by_type`, `get_text_content`, `get_visible_text`
305
+
306
+ **Interaction:** `tap`, `double_tap`, `long_press`, `enter_text`, `set_text`, `clear_text`, `swipe`, `scroll_to`, `drag`, `go_back`, `press_key`, `type_text`, `hover`, `fill`, `select_option`, `set_checkbox`, `focus`, `blur`, `native_tap`, `native_input_text`, `native_swipe`
307
+
308
+ **Smart Testing:** `smart_tap`, `smart_enter_text`, `smart_assert` (self-healing with fuzzy match)
309
+
310
+ **Assertions:** `assert_text`, `assert_visible`, `assert_not_visible`, `assert_element_count`, `assert_batch`, `wait_for_element`, `wait_for_gone`, `wait_for_idle`, `wait_for_stable`, `wait_for_url`, `wait_for_text`, `wait_for_element_count`
311
+
312
+ **Visual Regression:** `visual_baseline_save`, `visual_baseline_compare`, `visual_baseline_update`, `visual_regression_report`, `visual_verify`, `visual_diff`, `compare_screenshot`
313
+
314
+ **Network Mock:** `mock_api`, `mock_clear`, `record_network`, `replay_network`, `intercept_requests`, `clear_interceptions`, `block_urls`, `http_request`
315
+
316
+ **API Testing:** `api_request`, `api_assert`
317
+
318
+ **Coverage & Reliability:** `coverage_start`, `coverage_stop`, `coverage_report`, `coverage_gaps`, `retry_on_fail`, `stability_check`
319
+
320
+ **Data-Driven:** `test_with_data`, `generate_test_data`
321
+
322
+ **Multi-Device:** `multi_connect`, `multi_action`, `multi_compare`, `multi_disconnect`, `parallel_snapshot`, `parallel_tap`
323
+
324
+ **Accessibility:** `accessibility_audit`, `a11y_full_audit`, `a11y_tab_order`, `a11y_color_contrast`, `a11y_screen_reader`
325
+
326
+ **i18n:** `set_locale`, `verify_translations`, `i18n_snapshot`
327
+
328
+ **Performance:** `perf_start`, `perf_stop`, `perf_report`, `get_performance`, `get_frame_stats`, `get_memory_stats`
226
329
 
227
- **Launch & Connect:** `launch_app`, `scan_and_connect`, `hot_reload`, `hot_restart`, `list_sessions`, `switch_session`, `close_session`
330
+ **Session:** `save_session`, `restore_session`, `session_diff`
228
331
 
229
- **Screen:** `screenshot`, `screenshot_region`, `screenshot_element`, `native_screenshot`, `inspect`, `inspect_interactive`, `get_widget_tree`, `find_by_type`, `get_text_content`
332
+ **Recording & Export:** `record_start`, `record_stop`, `record_export` (Playwright, Cypress, XCUITest, Espresso, Detox, Maestro, +5 more), `video_start`, `video_stop`
230
333
 
231
- **Interaction:** `tap`, `double_tap`, `long_press`, `enter_text`, `set_text`, `clear_text`, `swipe`, `scroll_to`, `drag`, `go_back`, `press_key`, `native_tap`, `native_input_text`, `native_swipe`
334
+ **Auth:** `auth_inject_session`, `auth_biometric`, `auth_otp`, `auth_deeplink`
232
335
 
233
- **Assertions:** `assert_text`, `assert_visible`, `assert_not_visible`, `assert_element_count`, `wait_for_element`, `wait_for_gone`, `get_checkbox_state`, `get_slider_value`, `get_text_value`
336
+ **CDP Browser:** `navigate`, `reload`, `go_forward`, `get_title`, `get_page_source`, `eval`, `get_tabs`, `new_tab`, `switch_tab`, `close_tab`, `get_cookies`, `set_cookie`, `clear_cookies`, `get_local_storage`, `set_local_storage`, `clear_local_storage`, `generate_pdf`, `set_viewport`, `emulate_device`, `throttle_network`, `go_offline`, `set_geolocation`, `set_timezone`, `set_color_scheme`
234
337
 
235
- **Debug:** `get_logs`, `get_errors`, `get_performance`, `get_memory_stats`
338
+ **Debug:** `get_logs`, `get_errors`, `get_console_messages`, `get_network_requests`, `diagnose`, `diagnose_project`, `reset_app`
236
339
 
237
340
  </details>
238
341
 
package/dart/pubspec.yaml CHANGED
@@ -1,6 +1,6 @@
1
1
  name: flutter_skill_npm
2
2
  description: Give your AI Agent eyes and hands inside your Flutter app.
3
- version: 0.8.6
3
+ version: 0.8.7
4
4
  publish_to: 'none'
5
5
  homepage: https://github.com/ai-dashboad/flutter-skill
6
6
  repository: https://github.com/ai-dashboad/flutter-skill
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "flutter-skill",
3
3
  "mcpName": "io.github.ai-dashboad/flutter-skill",
4
- "version": "0.8.6",
4
+ "version": "0.8.7",
5
5
  "description": "MCP Server for app automation - Give your AI Agent eyes and hands inside any app (Flutter, React, Web, Native)",
6
6
  "main": "index.js",
7
7
  "bin": {