@kaeawc/auto-mobile 0.0.8 → 0.0.9

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.
@@ -807,6 +807,60 @@
807
807
  "additionalProperties": {}
808
808
  }
809
809
  },
810
+ {
811
+ "name": "exportPlan",
812
+ "description": "Stop the active test recording and export recorded interactions as a YAML plan. Returns the plan content.",
813
+ "inputSchema": {
814
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
815
+ "type": "object",
816
+ "properties": {
817
+ "recordingId": {
818
+ "description": "Recording ID to export (uses active recording if not specified)",
819
+ "type": "string"
820
+ },
821
+ "planName": {
822
+ "description": "Name for the exported plan (auto-generated if not specified)",
823
+ "type": "string"
824
+ }
825
+ },
826
+ "additionalProperties": false
827
+ },
828
+ "outputSchema": {
829
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
830
+ "type": "object",
831
+ "properties": {
832
+ "success": {
833
+ "type": "boolean"
834
+ },
835
+ "recordingId": {
836
+ "type": "string"
837
+ },
838
+ "planName": {
839
+ "type": "string"
840
+ },
841
+ "planContent": {
842
+ "type": "string"
843
+ },
844
+ "stepCount": {
845
+ "type": "integer",
846
+ "minimum": -9007199254740991,
847
+ "maximum": 9007199254740991
848
+ },
849
+ "durationMs": {
850
+ "type": "integer",
851
+ "minimum": -9007199254740991,
852
+ "maximum": 9007199254740991
853
+ },
854
+ "error": {
855
+ "type": "string"
856
+ }
857
+ },
858
+ "required": [
859
+ "success"
860
+ ],
861
+ "additionalProperties": false
862
+ }
863
+ },
810
864
  {
811
865
  "name": "getDeepLinks",
812
866
  "description": "Query deep links for app",
@@ -2068,31 +2122,139 @@
2068
2122
  "type": "string"
2069
2123
  },
2070
2124
  "checkable": {
2071
- "type": "boolean"
2125
+ "anyOf": [
2126
+ {
2127
+ "type": "boolean"
2128
+ },
2129
+ {
2130
+ "type": "string",
2131
+ "const": "true"
2132
+ },
2133
+ {
2134
+ "type": "string",
2135
+ "const": "false"
2136
+ }
2137
+ ]
2072
2138
  },
2073
2139
  "checked": {
2074
- "type": "boolean"
2140
+ "anyOf": [
2141
+ {
2142
+ "type": "boolean"
2143
+ },
2144
+ {
2145
+ "type": "string",
2146
+ "const": "true"
2147
+ },
2148
+ {
2149
+ "type": "string",
2150
+ "const": "false"
2151
+ }
2152
+ ]
2075
2153
  },
2076
2154
  "clickable": {
2077
- "type": "boolean"
2155
+ "anyOf": [
2156
+ {
2157
+ "type": "boolean"
2158
+ },
2159
+ {
2160
+ "type": "string",
2161
+ "const": "true"
2162
+ },
2163
+ {
2164
+ "type": "string",
2165
+ "const": "false"
2166
+ }
2167
+ ]
2078
2168
  },
2079
2169
  "enabled": {
2080
- "type": "boolean"
2170
+ "anyOf": [
2171
+ {
2172
+ "type": "boolean"
2173
+ },
2174
+ {
2175
+ "type": "string",
2176
+ "const": "true"
2177
+ },
2178
+ {
2179
+ "type": "string",
2180
+ "const": "false"
2181
+ }
2182
+ ]
2081
2183
  },
2082
2184
  "focusable": {
2083
- "type": "boolean"
2185
+ "anyOf": [
2186
+ {
2187
+ "type": "boolean"
2188
+ },
2189
+ {
2190
+ "type": "string",
2191
+ "const": "true"
2192
+ },
2193
+ {
2194
+ "type": "string",
2195
+ "const": "false"
2196
+ }
2197
+ ]
2084
2198
  },
2085
2199
  "focused": {
2086
- "type": "boolean"
2200
+ "anyOf": [
2201
+ {
2202
+ "type": "boolean"
2203
+ },
2204
+ {
2205
+ "type": "string",
2206
+ "const": "true"
2207
+ },
2208
+ {
2209
+ "type": "string",
2210
+ "const": "false"
2211
+ }
2212
+ ]
2087
2213
  },
2088
2214
  "accessibility-focused": {
2089
- "type": "boolean"
2215
+ "anyOf": [
2216
+ {
2217
+ "type": "boolean"
2218
+ },
2219
+ {
2220
+ "type": "string",
2221
+ "const": "true"
2222
+ },
2223
+ {
2224
+ "type": "string",
2225
+ "const": "false"
2226
+ }
2227
+ ]
2090
2228
  },
2091
2229
  "scrollable": {
2092
- "type": "boolean"
2230
+ "anyOf": [
2231
+ {
2232
+ "type": "boolean"
2233
+ },
2234
+ {
2235
+ "type": "string",
2236
+ "const": "true"
2237
+ },
2238
+ {
2239
+ "type": "string",
2240
+ "const": "false"
2241
+ }
2242
+ ]
2093
2243
  },
2094
2244
  "selected": {
2095
- "type": "boolean"
2245
+ "anyOf": [
2246
+ {
2247
+ "type": "boolean"
2248
+ },
2249
+ {
2250
+ "type": "string",
2251
+ "const": "true"
2252
+ },
2253
+ {
2254
+ "type": "string",
2255
+ "const": "false"
2256
+ }
2257
+ ]
2096
2258
  }
2097
2259
  },
2098
2260
  "required": [
@@ -2164,31 +2326,139 @@
2164
2326
  "type": "string"
2165
2327
  },
2166
2328
  "checkable": {
2167
- "type": "boolean"
2329
+ "anyOf": [
2330
+ {
2331
+ "type": "boolean"
2332
+ },
2333
+ {
2334
+ "type": "string",
2335
+ "const": "true"
2336
+ },
2337
+ {
2338
+ "type": "string",
2339
+ "const": "false"
2340
+ }
2341
+ ]
2168
2342
  },
2169
2343
  "checked": {
2170
- "type": "boolean"
2344
+ "anyOf": [
2345
+ {
2346
+ "type": "boolean"
2347
+ },
2348
+ {
2349
+ "type": "string",
2350
+ "const": "true"
2351
+ },
2352
+ {
2353
+ "type": "string",
2354
+ "const": "false"
2355
+ }
2356
+ ]
2171
2357
  },
2172
2358
  "clickable": {
2173
- "type": "boolean"
2359
+ "anyOf": [
2360
+ {
2361
+ "type": "boolean"
2362
+ },
2363
+ {
2364
+ "type": "string",
2365
+ "const": "true"
2366
+ },
2367
+ {
2368
+ "type": "string",
2369
+ "const": "false"
2370
+ }
2371
+ ]
2174
2372
  },
2175
2373
  "enabled": {
2176
- "type": "boolean"
2374
+ "anyOf": [
2375
+ {
2376
+ "type": "boolean"
2377
+ },
2378
+ {
2379
+ "type": "string",
2380
+ "const": "true"
2381
+ },
2382
+ {
2383
+ "type": "string",
2384
+ "const": "false"
2385
+ }
2386
+ ]
2177
2387
  },
2178
2388
  "focusable": {
2179
- "type": "boolean"
2389
+ "anyOf": [
2390
+ {
2391
+ "type": "boolean"
2392
+ },
2393
+ {
2394
+ "type": "string",
2395
+ "const": "true"
2396
+ },
2397
+ {
2398
+ "type": "string",
2399
+ "const": "false"
2400
+ }
2401
+ ]
2180
2402
  },
2181
2403
  "focused": {
2182
- "type": "boolean"
2404
+ "anyOf": [
2405
+ {
2406
+ "type": "boolean"
2407
+ },
2408
+ {
2409
+ "type": "string",
2410
+ "const": "true"
2411
+ },
2412
+ {
2413
+ "type": "string",
2414
+ "const": "false"
2415
+ }
2416
+ ]
2183
2417
  },
2184
2418
  "accessibility-focused": {
2185
- "type": "boolean"
2419
+ "anyOf": [
2420
+ {
2421
+ "type": "boolean"
2422
+ },
2423
+ {
2424
+ "type": "string",
2425
+ "const": "true"
2426
+ },
2427
+ {
2428
+ "type": "string",
2429
+ "const": "false"
2430
+ }
2431
+ ]
2186
2432
  },
2187
2433
  "scrollable": {
2188
- "type": "boolean"
2434
+ "anyOf": [
2435
+ {
2436
+ "type": "boolean"
2437
+ },
2438
+ {
2439
+ "type": "string",
2440
+ "const": "true"
2441
+ },
2442
+ {
2443
+ "type": "string",
2444
+ "const": "false"
2445
+ }
2446
+ ]
2189
2447
  },
2190
2448
  "selected": {
2191
- "type": "boolean"
2449
+ "anyOf": [
2450
+ {
2451
+ "type": "boolean"
2452
+ },
2453
+ {
2454
+ "type": "string",
2455
+ "const": "true"
2456
+ },
2457
+ {
2458
+ "type": "string",
2459
+ "const": "false"
2460
+ }
2461
+ ]
2192
2462
  }
2193
2463
  },
2194
2464
  "required": [
@@ -2260,31 +2530,139 @@
2260
2530
  "type": "string"
2261
2531
  },
2262
2532
  "checkable": {
2263
- "type": "boolean"
2533
+ "anyOf": [
2534
+ {
2535
+ "type": "boolean"
2536
+ },
2537
+ {
2538
+ "type": "string",
2539
+ "const": "true"
2540
+ },
2541
+ {
2542
+ "type": "string",
2543
+ "const": "false"
2544
+ }
2545
+ ]
2264
2546
  },
2265
2547
  "checked": {
2266
- "type": "boolean"
2548
+ "anyOf": [
2549
+ {
2550
+ "type": "boolean"
2551
+ },
2552
+ {
2553
+ "type": "string",
2554
+ "const": "true"
2555
+ },
2556
+ {
2557
+ "type": "string",
2558
+ "const": "false"
2559
+ }
2560
+ ]
2267
2561
  },
2268
2562
  "clickable": {
2269
- "type": "boolean"
2563
+ "anyOf": [
2564
+ {
2565
+ "type": "boolean"
2566
+ },
2567
+ {
2568
+ "type": "string",
2569
+ "const": "true"
2570
+ },
2571
+ {
2572
+ "type": "string",
2573
+ "const": "false"
2574
+ }
2575
+ ]
2270
2576
  },
2271
2577
  "enabled": {
2272
- "type": "boolean"
2578
+ "anyOf": [
2579
+ {
2580
+ "type": "boolean"
2581
+ },
2582
+ {
2583
+ "type": "string",
2584
+ "const": "true"
2585
+ },
2586
+ {
2587
+ "type": "string",
2588
+ "const": "false"
2589
+ }
2590
+ ]
2273
2591
  },
2274
2592
  "focusable": {
2275
- "type": "boolean"
2593
+ "anyOf": [
2594
+ {
2595
+ "type": "boolean"
2596
+ },
2597
+ {
2598
+ "type": "string",
2599
+ "const": "true"
2600
+ },
2601
+ {
2602
+ "type": "string",
2603
+ "const": "false"
2604
+ }
2605
+ ]
2276
2606
  },
2277
2607
  "focused": {
2278
- "type": "boolean"
2608
+ "anyOf": [
2609
+ {
2610
+ "type": "boolean"
2611
+ },
2612
+ {
2613
+ "type": "string",
2614
+ "const": "true"
2615
+ },
2616
+ {
2617
+ "type": "string",
2618
+ "const": "false"
2619
+ }
2620
+ ]
2279
2621
  },
2280
2622
  "accessibility-focused": {
2281
- "type": "boolean"
2623
+ "anyOf": [
2624
+ {
2625
+ "type": "boolean"
2626
+ },
2627
+ {
2628
+ "type": "string",
2629
+ "const": "true"
2630
+ },
2631
+ {
2632
+ "type": "string",
2633
+ "const": "false"
2634
+ }
2635
+ ]
2282
2636
  },
2283
2637
  "scrollable": {
2284
- "type": "boolean"
2638
+ "anyOf": [
2639
+ {
2640
+ "type": "boolean"
2641
+ },
2642
+ {
2643
+ "type": "string",
2644
+ "const": "true"
2645
+ },
2646
+ {
2647
+ "type": "string",
2648
+ "const": "false"
2649
+ }
2650
+ ]
2285
2651
  },
2286
2652
  "selected": {
2287
- "type": "boolean"
2653
+ "anyOf": [
2654
+ {
2655
+ "type": "boolean"
2656
+ },
2657
+ {
2658
+ "type": "string",
2659
+ "const": "true"
2660
+ },
2661
+ {
2662
+ "type": "string",
2663
+ "const": "false"
2664
+ }
2665
+ ]
2288
2666
  }
2289
2667
  },
2290
2668
  "required": [
@@ -2458,31 +2836,139 @@
2458
2836
  "type": "string"
2459
2837
  },
2460
2838
  "checkable": {
2461
- "type": "boolean"
2839
+ "anyOf": [
2840
+ {
2841
+ "type": "boolean"
2842
+ },
2843
+ {
2844
+ "type": "string",
2845
+ "const": "true"
2846
+ },
2847
+ {
2848
+ "type": "string",
2849
+ "const": "false"
2850
+ }
2851
+ ]
2462
2852
  },
2463
2853
  "checked": {
2464
- "type": "boolean"
2854
+ "anyOf": [
2855
+ {
2856
+ "type": "boolean"
2857
+ },
2858
+ {
2859
+ "type": "string",
2860
+ "const": "true"
2861
+ },
2862
+ {
2863
+ "type": "string",
2864
+ "const": "false"
2865
+ }
2866
+ ]
2465
2867
  },
2466
2868
  "clickable": {
2467
- "type": "boolean"
2869
+ "anyOf": [
2870
+ {
2871
+ "type": "boolean"
2872
+ },
2873
+ {
2874
+ "type": "string",
2875
+ "const": "true"
2876
+ },
2877
+ {
2878
+ "type": "string",
2879
+ "const": "false"
2880
+ }
2881
+ ]
2468
2882
  },
2469
2883
  "enabled": {
2470
- "type": "boolean"
2884
+ "anyOf": [
2885
+ {
2886
+ "type": "boolean"
2887
+ },
2888
+ {
2889
+ "type": "string",
2890
+ "const": "true"
2891
+ },
2892
+ {
2893
+ "type": "string",
2894
+ "const": "false"
2895
+ }
2896
+ ]
2471
2897
  },
2472
2898
  "focusable": {
2473
- "type": "boolean"
2899
+ "anyOf": [
2900
+ {
2901
+ "type": "boolean"
2902
+ },
2903
+ {
2904
+ "type": "string",
2905
+ "const": "true"
2906
+ },
2907
+ {
2908
+ "type": "string",
2909
+ "const": "false"
2910
+ }
2911
+ ]
2474
2912
  },
2475
2913
  "focused": {
2476
- "type": "boolean"
2914
+ "anyOf": [
2915
+ {
2916
+ "type": "boolean"
2917
+ },
2918
+ {
2919
+ "type": "string",
2920
+ "const": "true"
2921
+ },
2922
+ {
2923
+ "type": "string",
2924
+ "const": "false"
2925
+ }
2926
+ ]
2477
2927
  },
2478
2928
  "accessibility-focused": {
2479
- "type": "boolean"
2929
+ "anyOf": [
2930
+ {
2931
+ "type": "boolean"
2932
+ },
2933
+ {
2934
+ "type": "string",
2935
+ "const": "true"
2936
+ },
2937
+ {
2938
+ "type": "string",
2939
+ "const": "false"
2940
+ }
2941
+ ]
2480
2942
  },
2481
2943
  "scrollable": {
2482
- "type": "boolean"
2944
+ "anyOf": [
2945
+ {
2946
+ "type": "boolean"
2947
+ },
2948
+ {
2949
+ "type": "string",
2950
+ "const": "true"
2951
+ },
2952
+ {
2953
+ "type": "string",
2954
+ "const": "false"
2955
+ }
2956
+ ]
2483
2957
  },
2484
2958
  "selected": {
2485
- "type": "boolean"
2959
+ "anyOf": [
2960
+ {
2961
+ "type": "boolean"
2962
+ },
2963
+ {
2964
+ "type": "string",
2965
+ "const": "true"
2966
+ },
2967
+ {
2968
+ "type": "string",
2969
+ "const": "false"
2970
+ }
2971
+ ]
2486
2972
  }
2487
2973
  },
2488
2974
  "required": [
@@ -2551,31 +3037,139 @@
2551
3037
  "type": "string"
2552
3038
  },
2553
3039
  "checkable": {
2554
- "type": "boolean"
3040
+ "anyOf": [
3041
+ {
3042
+ "type": "boolean"
3043
+ },
3044
+ {
3045
+ "type": "string",
3046
+ "const": "true"
3047
+ },
3048
+ {
3049
+ "type": "string",
3050
+ "const": "false"
3051
+ }
3052
+ ]
2555
3053
  },
2556
3054
  "checked": {
2557
- "type": "boolean"
3055
+ "anyOf": [
3056
+ {
3057
+ "type": "boolean"
3058
+ },
3059
+ {
3060
+ "type": "string",
3061
+ "const": "true"
3062
+ },
3063
+ {
3064
+ "type": "string",
3065
+ "const": "false"
3066
+ }
3067
+ ]
2558
3068
  },
2559
3069
  "clickable": {
2560
- "type": "boolean"
3070
+ "anyOf": [
3071
+ {
3072
+ "type": "boolean"
3073
+ },
3074
+ {
3075
+ "type": "string",
3076
+ "const": "true"
3077
+ },
3078
+ {
3079
+ "type": "string",
3080
+ "const": "false"
3081
+ }
3082
+ ]
2561
3083
  },
2562
3084
  "enabled": {
2563
- "type": "boolean"
3085
+ "anyOf": [
3086
+ {
3087
+ "type": "boolean"
3088
+ },
3089
+ {
3090
+ "type": "string",
3091
+ "const": "true"
3092
+ },
3093
+ {
3094
+ "type": "string",
3095
+ "const": "false"
3096
+ }
3097
+ ]
2564
3098
  },
2565
3099
  "focusable": {
2566
- "type": "boolean"
3100
+ "anyOf": [
3101
+ {
3102
+ "type": "boolean"
3103
+ },
3104
+ {
3105
+ "type": "string",
3106
+ "const": "true"
3107
+ },
3108
+ {
3109
+ "type": "string",
3110
+ "const": "false"
3111
+ }
3112
+ ]
2567
3113
  },
2568
3114
  "focused": {
2569
- "type": "boolean"
3115
+ "anyOf": [
3116
+ {
3117
+ "type": "boolean"
3118
+ },
3119
+ {
3120
+ "type": "string",
3121
+ "const": "true"
3122
+ },
3123
+ {
3124
+ "type": "string",
3125
+ "const": "false"
3126
+ }
3127
+ ]
2570
3128
  },
2571
3129
  "accessibility-focused": {
2572
- "type": "boolean"
3130
+ "anyOf": [
3131
+ {
3132
+ "type": "boolean"
3133
+ },
3134
+ {
3135
+ "type": "string",
3136
+ "const": "true"
3137
+ },
3138
+ {
3139
+ "type": "string",
3140
+ "const": "false"
3141
+ }
3142
+ ]
2573
3143
  },
2574
3144
  "scrollable": {
2575
- "type": "boolean"
3145
+ "anyOf": [
3146
+ {
3147
+ "type": "boolean"
3148
+ },
3149
+ {
3150
+ "type": "string",
3151
+ "const": "true"
3152
+ },
3153
+ {
3154
+ "type": "string",
3155
+ "const": "false"
3156
+ }
3157
+ ]
2576
3158
  },
2577
3159
  "selected": {
2578
- "type": "boolean"
3160
+ "anyOf": [
3161
+ {
3162
+ "type": "boolean"
3163
+ },
3164
+ {
3165
+ "type": "string",
3166
+ "const": "true"
3167
+ },
3168
+ {
3169
+ "type": "string",
3170
+ "const": "false"
3171
+ }
3172
+ ]
2579
3173
  }
2580
3174
  },
2581
3175
  "required": [
@@ -2667,31 +3261,139 @@
2667
3261
  "type": "string"
2668
3262
  },
2669
3263
  "checkable": {
2670
- "type": "boolean"
3264
+ "anyOf": [
3265
+ {
3266
+ "type": "boolean"
3267
+ },
3268
+ {
3269
+ "type": "string",
3270
+ "const": "true"
3271
+ },
3272
+ {
3273
+ "type": "string",
3274
+ "const": "false"
3275
+ }
3276
+ ]
2671
3277
  },
2672
3278
  "checked": {
2673
- "type": "boolean"
3279
+ "anyOf": [
3280
+ {
3281
+ "type": "boolean"
3282
+ },
3283
+ {
3284
+ "type": "string",
3285
+ "const": "true"
3286
+ },
3287
+ {
3288
+ "type": "string",
3289
+ "const": "false"
3290
+ }
3291
+ ]
2674
3292
  },
2675
3293
  "clickable": {
2676
- "type": "boolean"
3294
+ "anyOf": [
3295
+ {
3296
+ "type": "boolean"
3297
+ },
3298
+ {
3299
+ "type": "string",
3300
+ "const": "true"
3301
+ },
3302
+ {
3303
+ "type": "string",
3304
+ "const": "false"
3305
+ }
3306
+ ]
2677
3307
  },
2678
3308
  "enabled": {
2679
- "type": "boolean"
3309
+ "anyOf": [
3310
+ {
3311
+ "type": "boolean"
3312
+ },
3313
+ {
3314
+ "type": "string",
3315
+ "const": "true"
3316
+ },
3317
+ {
3318
+ "type": "string",
3319
+ "const": "false"
3320
+ }
3321
+ ]
2680
3322
  },
2681
3323
  "focusable": {
2682
- "type": "boolean"
3324
+ "anyOf": [
3325
+ {
3326
+ "type": "boolean"
3327
+ },
3328
+ {
3329
+ "type": "string",
3330
+ "const": "true"
3331
+ },
3332
+ {
3333
+ "type": "string",
3334
+ "const": "false"
3335
+ }
3336
+ ]
2683
3337
  },
2684
3338
  "focused": {
2685
- "type": "boolean"
3339
+ "anyOf": [
3340
+ {
3341
+ "type": "boolean"
3342
+ },
3343
+ {
3344
+ "type": "string",
3345
+ "const": "true"
3346
+ },
3347
+ {
3348
+ "type": "string",
3349
+ "const": "false"
3350
+ }
3351
+ ]
2686
3352
  },
2687
3353
  "accessibility-focused": {
2688
- "type": "boolean"
3354
+ "anyOf": [
3355
+ {
3356
+ "type": "boolean"
3357
+ },
3358
+ {
3359
+ "type": "string",
3360
+ "const": "true"
3361
+ },
3362
+ {
3363
+ "type": "string",
3364
+ "const": "false"
3365
+ }
3366
+ ]
2689
3367
  },
2690
3368
  "scrollable": {
2691
- "type": "boolean"
3369
+ "anyOf": [
3370
+ {
3371
+ "type": "boolean"
3372
+ },
3373
+ {
3374
+ "type": "string",
3375
+ "const": "true"
3376
+ },
3377
+ {
3378
+ "type": "string",
3379
+ "const": "false"
3380
+ }
3381
+ ]
2692
3382
  },
2693
3383
  "selected": {
2694
- "type": "boolean"
3384
+ "anyOf": [
3385
+ {
3386
+ "type": "boolean"
3387
+ },
3388
+ {
3389
+ "type": "string",
3390
+ "const": "true"
3391
+ },
3392
+ {
3393
+ "type": "string",
3394
+ "const": "false"
3395
+ }
3396
+ ]
2695
3397
  }
2696
3398
  },
2697
3399
  "required": [
@@ -2952,34 +3654,34 @@
2952
3654
  "in",
2953
3655
  "out"
2954
3656
  ],
2955
- "description": "Pinch direction (in=zoom out, out=zoom in)"
3657
+ "description": "Pinch direction"
2956
3658
  },
2957
3659
  "distanceStart": {
2958
- "description": "Start distance px",
3660
+ "description": "Initial finger distance (px, default: 400)",
2959
3661
  "type": "number"
2960
3662
  },
2961
3663
  "distanceEnd": {
2962
- "description": "End distance px",
3664
+ "description": "Final finger distance (px, default: 100)",
2963
3665
  "type": "number"
2964
3666
  },
2965
3667
  "scale": {
2966
- "description": "Scale multiplier",
3668
+ "description": "Scale factor (overrides distances)",
2967
3669
  "type": "number"
2968
3670
  },
2969
3671
  "duration": {
2970
- "description": "Duration ms (default: 300)",
3672
+ "description": "Gesture duration (ms)",
2971
3673
  "type": "number"
2972
3674
  },
2973
3675
  "rotationDegrees": {
2974
- "description": "Rotation degrees (+ = clockwise)",
3676
+ "description": "Rotation during pinch (degrees)",
2975
3677
  "type": "number"
2976
3678
  },
2977
3679
  "includeSystemInsets": {
2978
- "description": "Include system bars (default false)",
3680
+ "description": "Use full screen including status/nav bars",
2979
3681
  "type": "boolean"
2980
3682
  },
2981
3683
  "container": {
2982
- "description": "Container to pinch within",
3684
+ "description": "Container selector object to scope search. Provide { \"elementId\": \"<id>\" } or { \"text\": \"<text>\" }.",
2983
3685
  "anyOf": [
2984
3686
  {
2985
3687
  "type": "object",
@@ -3010,7 +3712,7 @@
3010
3712
  ]
3011
3713
  },
3012
3714
  "autoTarget": {
3013
- "description": "Auto-target surface (default true)",
3715
+ "description": "Auto-target pinchable containers",
3014
3716
  "type": "boolean"
3015
3717
  },
3016
3718
  "platform": {
@@ -3464,6 +4166,44 @@
3464
4166
  "additionalProperties": false
3465
4167
  }
3466
4168
  },
4169
+ {
4170
+ "name": "startTestRecording",
4171
+ "description": "Start test recording mode on the active device. Records user interactions for later export as a test plan. Returns the session ID which can be used with exportPlan.",
4172
+ "inputSchema": {
4173
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4174
+ "type": "object",
4175
+ "properties": {},
4176
+ "additionalProperties": false
4177
+ },
4178
+ "outputSchema": {
4179
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4180
+ "type": "object",
4181
+ "properties": {
4182
+ "success": {
4183
+ "type": "boolean"
4184
+ },
4185
+ "recordingId": {
4186
+ "type": "string"
4187
+ },
4188
+ "startedAt": {
4189
+ "type": "string"
4190
+ },
4191
+ "deviceId": {
4192
+ "type": "string"
4193
+ },
4194
+ "platform": {
4195
+ "type": "string"
4196
+ },
4197
+ "error": {
4198
+ "type": "string"
4199
+ }
4200
+ },
4201
+ "required": [
4202
+ "success"
4203
+ ],
4204
+ "additionalProperties": false
4205
+ }
4206
+ },
3467
4207
  {
3468
4208
  "name": "swipeOn",
3469
4209
  "description": "Swipe/scroll on screen or elements",
@@ -3472,11 +4212,11 @@
3472
4212
  "type": "object",
3473
4213
  "properties": {
3474
4214
  "includeSystemInsets": {
3475
- "description": "Include system bars (default false)",
4215
+ "description": "Use full screen including status/nav bars",
3476
4216
  "type": "boolean"
3477
4217
  },
3478
4218
  "container": {
3479
- "description": "Container to swipe within (elementId or text). REQUIRED for lists. Omit for full-screen swipes.",
4219
+ "description": "Container selector object to scope search. Provide { \"elementId\": \"<id>\" } or { \"text\": \"<text>\" }.",
3480
4220
  "anyOf": [
3481
4221
  {
3482
4222
  "type": "object",
@@ -3507,7 +4247,7 @@
3507
4247
  ]
3508
4248
  },
3509
4249
  "autoTarget": {
3510
- "description": "Auto-target scrollable container (default true)",
4250
+ "description": "Auto-target scrollable containers (default: true)",
3511
4251
  "type": "boolean"
3512
4252
  },
3513
4253
  "direction": {
@@ -3518,10 +4258,10 @@
3518
4258
  "left",
3519
4259
  "right"
3520
4260
  ],
3521
- "description": "Finger movement direction. up=finger up/reveals above, down=finger down/reveals below, left/right=finger left/right"
4261
+ "description": "Swipe/scroll direction"
3522
4262
  },
3523
4263
  "gestureType": {
3524
- "description": "swipeFingerTowardsDirection=finger moves in direction (default), scrollTowardsDirection=content scrolls in direction",
4264
+ "description": "swipeFingerTowardsDirection: finger moves in direction (e.g., 'up' = finger up = content scrolls down). scrollTowardsDirection: content moves in direction (e.g., 'up' = content up = see content below). Default: scrollTowardsDirection.",
3525
4265
  "type": "string",
3526
4266
  "enum": [
3527
4267
  "swipeFingerTowardsDirection",
@@ -3529,7 +4269,7 @@
3529
4269
  ]
3530
4270
  },
3531
4271
  "lookFor": {
3532
- "description": "Swipe until we find a match",
4272
+ "description": "Element to look for during swipe",
3533
4273
  "anyOf": [
3534
4274
  {
3535
4275
  "type": "object",
@@ -3560,21 +4300,23 @@
3560
4300
  ]
3561
4301
  },
3562
4302
  "boomerang": {
3563
- "description": "Return to the starting point after swiping (default false)",
4303
+ "description": "Return to start position after swipe apex",
3564
4304
  "type": "boolean"
3565
4305
  },
3566
4306
  "apexPause": {
3567
- "description": "Pause at the furthest point in ms (default 100)",
4307
+ "description": "Pause duration at swipe apex in ms (0-3000)",
3568
4308
  "type": "number",
3569
- "minimum": 0
4309
+ "minimum": 0,
4310
+ "maximum": 3000
3570
4311
  },
3571
4312
  "returnSpeed": {
3572
- "description": "Return speed multiplier (default 1.0)",
4313
+ "description": "Speed multiplier for return swipe (0.1-3.0)",
3573
4314
  "type": "number",
3574
- "exclusiveMinimum": 0
4315
+ "minimum": 0.1,
4316
+ "maximum": 3
3575
4317
  },
3576
4318
  "speed": {
3577
- "description": "Scroll speed",
4319
+ "description": "Swipe speed preset",
3578
4320
  "type": "string",
3579
4321
  "enum": [
3580
4322
  "slow",
@@ -3711,31 +4453,139 @@
3711
4453
  "type": "string"
3712
4454
  },
3713
4455
  "checkable": {
3714
- "type": "boolean"
4456
+ "anyOf": [
4457
+ {
4458
+ "type": "boolean"
4459
+ },
4460
+ {
4461
+ "type": "string",
4462
+ "const": "true"
4463
+ },
4464
+ {
4465
+ "type": "string",
4466
+ "const": "false"
4467
+ }
4468
+ ]
3715
4469
  },
3716
4470
  "checked": {
3717
- "type": "boolean"
4471
+ "anyOf": [
4472
+ {
4473
+ "type": "boolean"
4474
+ },
4475
+ {
4476
+ "type": "string",
4477
+ "const": "true"
4478
+ },
4479
+ {
4480
+ "type": "string",
4481
+ "const": "false"
4482
+ }
4483
+ ]
3718
4484
  },
3719
4485
  "clickable": {
3720
- "type": "boolean"
4486
+ "anyOf": [
4487
+ {
4488
+ "type": "boolean"
4489
+ },
4490
+ {
4491
+ "type": "string",
4492
+ "const": "true"
4493
+ },
4494
+ {
4495
+ "type": "string",
4496
+ "const": "false"
4497
+ }
4498
+ ]
3721
4499
  },
3722
4500
  "enabled": {
3723
- "type": "boolean"
4501
+ "anyOf": [
4502
+ {
4503
+ "type": "boolean"
4504
+ },
4505
+ {
4506
+ "type": "string",
4507
+ "const": "true"
4508
+ },
4509
+ {
4510
+ "type": "string",
4511
+ "const": "false"
4512
+ }
4513
+ ]
3724
4514
  },
3725
4515
  "focusable": {
3726
- "type": "boolean"
4516
+ "anyOf": [
4517
+ {
4518
+ "type": "boolean"
4519
+ },
4520
+ {
4521
+ "type": "string",
4522
+ "const": "true"
4523
+ },
4524
+ {
4525
+ "type": "string",
4526
+ "const": "false"
4527
+ }
4528
+ ]
3727
4529
  },
3728
4530
  "focused": {
3729
- "type": "boolean"
4531
+ "anyOf": [
4532
+ {
4533
+ "type": "boolean"
4534
+ },
4535
+ {
4536
+ "type": "string",
4537
+ "const": "true"
4538
+ },
4539
+ {
4540
+ "type": "string",
4541
+ "const": "false"
4542
+ }
4543
+ ]
3730
4544
  },
3731
4545
  "accessibility-focused": {
3732
- "type": "boolean"
3733
- },
4546
+ "anyOf": [
4547
+ {
4548
+ "type": "boolean"
4549
+ },
4550
+ {
4551
+ "type": "string",
4552
+ "const": "true"
4553
+ },
4554
+ {
4555
+ "type": "string",
4556
+ "const": "false"
4557
+ }
4558
+ ]
4559
+ },
3734
4560
  "scrollable": {
3735
- "type": "boolean"
4561
+ "anyOf": [
4562
+ {
4563
+ "type": "boolean"
4564
+ },
4565
+ {
4566
+ "type": "string",
4567
+ "const": "true"
4568
+ },
4569
+ {
4570
+ "type": "string",
4571
+ "const": "false"
4572
+ }
4573
+ ]
3736
4574
  },
3737
4575
  "selected": {
3738
- "type": "boolean"
4576
+ "anyOf": [
4577
+ {
4578
+ "type": "boolean"
4579
+ },
4580
+ {
4581
+ "type": "string",
4582
+ "const": "true"
4583
+ },
4584
+ {
4585
+ "type": "string",
4586
+ "const": "false"
4587
+ }
4588
+ ]
3739
4589
  }
3740
4590
  },
3741
4591
  "required": [
@@ -3956,31 +4806,139 @@
3956
4806
  "type": "string"
3957
4807
  },
3958
4808
  "checkable": {
3959
- "type": "boolean"
4809
+ "anyOf": [
4810
+ {
4811
+ "type": "boolean"
4812
+ },
4813
+ {
4814
+ "type": "string",
4815
+ "const": "true"
4816
+ },
4817
+ {
4818
+ "type": "string",
4819
+ "const": "false"
4820
+ }
4821
+ ]
3960
4822
  },
3961
4823
  "checked": {
3962
- "type": "boolean"
4824
+ "anyOf": [
4825
+ {
4826
+ "type": "boolean"
4827
+ },
4828
+ {
4829
+ "type": "string",
4830
+ "const": "true"
4831
+ },
4832
+ {
4833
+ "type": "string",
4834
+ "const": "false"
4835
+ }
4836
+ ]
3963
4837
  },
3964
4838
  "clickable": {
3965
- "type": "boolean"
4839
+ "anyOf": [
4840
+ {
4841
+ "type": "boolean"
4842
+ },
4843
+ {
4844
+ "type": "string",
4845
+ "const": "true"
4846
+ },
4847
+ {
4848
+ "type": "string",
4849
+ "const": "false"
4850
+ }
4851
+ ]
3966
4852
  },
3967
4853
  "enabled": {
3968
- "type": "boolean"
4854
+ "anyOf": [
4855
+ {
4856
+ "type": "boolean"
4857
+ },
4858
+ {
4859
+ "type": "string",
4860
+ "const": "true"
4861
+ },
4862
+ {
4863
+ "type": "string",
4864
+ "const": "false"
4865
+ }
4866
+ ]
3969
4867
  },
3970
4868
  "focusable": {
3971
- "type": "boolean"
4869
+ "anyOf": [
4870
+ {
4871
+ "type": "boolean"
4872
+ },
4873
+ {
4874
+ "type": "string",
4875
+ "const": "true"
4876
+ },
4877
+ {
4878
+ "type": "string",
4879
+ "const": "false"
4880
+ }
4881
+ ]
3972
4882
  },
3973
4883
  "focused": {
3974
- "type": "boolean"
4884
+ "anyOf": [
4885
+ {
4886
+ "type": "boolean"
4887
+ },
4888
+ {
4889
+ "type": "string",
4890
+ "const": "true"
4891
+ },
4892
+ {
4893
+ "type": "string",
4894
+ "const": "false"
4895
+ }
4896
+ ]
3975
4897
  },
3976
4898
  "accessibility-focused": {
3977
- "type": "boolean"
4899
+ "anyOf": [
4900
+ {
4901
+ "type": "boolean"
4902
+ },
4903
+ {
4904
+ "type": "string",
4905
+ "const": "true"
4906
+ },
4907
+ {
4908
+ "type": "string",
4909
+ "const": "false"
4910
+ }
4911
+ ]
3978
4912
  },
3979
4913
  "scrollable": {
3980
- "type": "boolean"
4914
+ "anyOf": [
4915
+ {
4916
+ "type": "boolean"
4917
+ },
4918
+ {
4919
+ "type": "string",
4920
+ "const": "true"
4921
+ },
4922
+ {
4923
+ "type": "string",
4924
+ "const": "false"
4925
+ }
4926
+ ]
3981
4927
  },
3982
4928
  "selected": {
3983
- "type": "boolean"
4929
+ "anyOf": [
4930
+ {
4931
+ "type": "boolean"
4932
+ },
4933
+ {
4934
+ "type": "string",
4935
+ "const": "true"
4936
+ },
4937
+ {
4938
+ "type": "string",
4939
+ "const": "false"
4940
+ }
4941
+ ]
3984
4942
  }
3985
4943
  },
3986
4944
  "required": [
@@ -4049,31 +5007,139 @@
4049
5007
  "type": "string"
4050
5008
  },
4051
5009
  "checkable": {
4052
- "type": "boolean"
5010
+ "anyOf": [
5011
+ {
5012
+ "type": "boolean"
5013
+ },
5014
+ {
5015
+ "type": "string",
5016
+ "const": "true"
5017
+ },
5018
+ {
5019
+ "type": "string",
5020
+ "const": "false"
5021
+ }
5022
+ ]
4053
5023
  },
4054
5024
  "checked": {
4055
- "type": "boolean"
5025
+ "anyOf": [
5026
+ {
5027
+ "type": "boolean"
5028
+ },
5029
+ {
5030
+ "type": "string",
5031
+ "const": "true"
5032
+ },
5033
+ {
5034
+ "type": "string",
5035
+ "const": "false"
5036
+ }
5037
+ ]
4056
5038
  },
4057
5039
  "clickable": {
4058
- "type": "boolean"
5040
+ "anyOf": [
5041
+ {
5042
+ "type": "boolean"
5043
+ },
5044
+ {
5045
+ "type": "string",
5046
+ "const": "true"
5047
+ },
5048
+ {
5049
+ "type": "string",
5050
+ "const": "false"
5051
+ }
5052
+ ]
4059
5053
  },
4060
5054
  "enabled": {
4061
- "type": "boolean"
5055
+ "anyOf": [
5056
+ {
5057
+ "type": "boolean"
5058
+ },
5059
+ {
5060
+ "type": "string",
5061
+ "const": "true"
5062
+ },
5063
+ {
5064
+ "type": "string",
5065
+ "const": "false"
5066
+ }
5067
+ ]
4062
5068
  },
4063
5069
  "focusable": {
4064
- "type": "boolean"
5070
+ "anyOf": [
5071
+ {
5072
+ "type": "boolean"
5073
+ },
5074
+ {
5075
+ "type": "string",
5076
+ "const": "true"
5077
+ },
5078
+ {
5079
+ "type": "string",
5080
+ "const": "false"
5081
+ }
5082
+ ]
4065
5083
  },
4066
5084
  "focused": {
4067
- "type": "boolean"
5085
+ "anyOf": [
5086
+ {
5087
+ "type": "boolean"
5088
+ },
5089
+ {
5090
+ "type": "string",
5091
+ "const": "true"
5092
+ },
5093
+ {
5094
+ "type": "string",
5095
+ "const": "false"
5096
+ }
5097
+ ]
4068
5098
  },
4069
5099
  "accessibility-focused": {
4070
- "type": "boolean"
5100
+ "anyOf": [
5101
+ {
5102
+ "type": "boolean"
5103
+ },
5104
+ {
5105
+ "type": "string",
5106
+ "const": "true"
5107
+ },
5108
+ {
5109
+ "type": "string",
5110
+ "const": "false"
5111
+ }
5112
+ ]
4071
5113
  },
4072
5114
  "scrollable": {
4073
- "type": "boolean"
5115
+ "anyOf": [
5116
+ {
5117
+ "type": "boolean"
5118
+ },
5119
+ {
5120
+ "type": "string",
5121
+ "const": "true"
5122
+ },
5123
+ {
5124
+ "type": "string",
5125
+ "const": "false"
5126
+ }
5127
+ ]
4074
5128
  },
4075
5129
  "selected": {
4076
- "type": "boolean"
5130
+ "anyOf": [
5131
+ {
5132
+ "type": "boolean"
5133
+ },
5134
+ {
5135
+ "type": "string",
5136
+ "const": "true"
5137
+ },
5138
+ {
5139
+ "type": "string",
5140
+ "const": "false"
5141
+ }
5142
+ ]
4077
5143
  }
4078
5144
  },
4079
5145
  "required": [
@@ -4147,36 +5213,34 @@
4147
5213
  "dismiss",
4148
5214
  "clearAll"
4149
5215
  ],
4150
- "description": "System tray action"
5216
+ "description": "Action: open=expand tray, find=search for notification, tap=tap notification, dismiss=swipe away, clearAll=dismiss all for app"
4151
5217
  },
4152
5218
  "notification": {
4153
- "description": "Notification match criteria",
5219
+ "description": "Notification criteria to match",
4154
5220
  "type": "object",
4155
5221
  "properties": {
4156
5222
  "title": {
4157
- "description": "Notification title (case-insensitive, partial match)",
5223
+ "description": "Notification title to match",
4158
5224
  "type": "string"
4159
5225
  },
4160
5226
  "body": {
4161
- "description": "Notification body (case-insensitive, partial match)",
5227
+ "description": "Notification body to match",
4162
5228
  "type": "string"
4163
5229
  },
4164
5230
  "appId": {
4165
- "description": "Notification app package ID (Android only)",
5231
+ "description": "App package ID to match",
4166
5232
  "type": "string"
4167
5233
  },
4168
5234
  "tapActionLabel": {
4169
- "description": "Notification action button label to tap (tap only)",
5235
+ "description": "Action button label to tap (for 'tap' action)",
4170
5236
  "type": "string"
4171
5237
  }
4172
5238
  },
4173
5239
  "additionalProperties": false
4174
5240
  },
4175
5241
  "awaitTimeout": {
4176
- "description": "Wait timeout ms (default: 5000)",
4177
- "type": "integer",
4178
- "minimum": 0,
4179
- "maximum": 9007199254740991
5242
+ "description": "Timeout in ms to wait for notification (default: 5000)",
5243
+ "type": "number"
4180
5244
  },
4181
5245
  "platform": {
4182
5246
  "type": "string",
@@ -4394,31 +5458,139 @@
4394
5458
  "type": "string"
4395
5459
  },
4396
5460
  "checkable": {
4397
- "type": "boolean"
5461
+ "anyOf": [
5462
+ {
5463
+ "type": "boolean"
5464
+ },
5465
+ {
5466
+ "type": "string",
5467
+ "const": "true"
5468
+ },
5469
+ {
5470
+ "type": "string",
5471
+ "const": "false"
5472
+ }
5473
+ ]
4398
5474
  },
4399
5475
  "checked": {
4400
- "type": "boolean"
5476
+ "anyOf": [
5477
+ {
5478
+ "type": "boolean"
5479
+ },
5480
+ {
5481
+ "type": "string",
5482
+ "const": "true"
5483
+ },
5484
+ {
5485
+ "type": "string",
5486
+ "const": "false"
5487
+ }
5488
+ ]
4401
5489
  },
4402
5490
  "clickable": {
4403
- "type": "boolean"
5491
+ "anyOf": [
5492
+ {
5493
+ "type": "boolean"
5494
+ },
5495
+ {
5496
+ "type": "string",
5497
+ "const": "true"
5498
+ },
5499
+ {
5500
+ "type": "string",
5501
+ "const": "false"
5502
+ }
5503
+ ]
4404
5504
  },
4405
5505
  "enabled": {
4406
- "type": "boolean"
5506
+ "anyOf": [
5507
+ {
5508
+ "type": "boolean"
5509
+ },
5510
+ {
5511
+ "type": "string",
5512
+ "const": "true"
5513
+ },
5514
+ {
5515
+ "type": "string",
5516
+ "const": "false"
5517
+ }
5518
+ ]
4407
5519
  },
4408
5520
  "focusable": {
4409
- "type": "boolean"
5521
+ "anyOf": [
5522
+ {
5523
+ "type": "boolean"
5524
+ },
5525
+ {
5526
+ "type": "string",
5527
+ "const": "true"
5528
+ },
5529
+ {
5530
+ "type": "string",
5531
+ "const": "false"
5532
+ }
5533
+ ]
4410
5534
  },
4411
5535
  "focused": {
4412
- "type": "boolean"
5536
+ "anyOf": [
5537
+ {
5538
+ "type": "boolean"
5539
+ },
5540
+ {
5541
+ "type": "string",
5542
+ "const": "true"
5543
+ },
5544
+ {
5545
+ "type": "string",
5546
+ "const": "false"
5547
+ }
5548
+ ]
4413
5549
  },
4414
5550
  "accessibility-focused": {
4415
- "type": "boolean"
5551
+ "anyOf": [
5552
+ {
5553
+ "type": "boolean"
5554
+ },
5555
+ {
5556
+ "type": "string",
5557
+ "const": "true"
5558
+ },
5559
+ {
5560
+ "type": "string",
5561
+ "const": "false"
5562
+ }
5563
+ ]
4416
5564
  },
4417
5565
  "scrollable": {
4418
- "type": "boolean"
5566
+ "anyOf": [
5567
+ {
5568
+ "type": "boolean"
5569
+ },
5570
+ {
5571
+ "type": "string",
5572
+ "const": "true"
5573
+ },
5574
+ {
5575
+ "type": "string",
5576
+ "const": "false"
5577
+ }
5578
+ ]
4419
5579
  },
4420
5580
  "selected": {
4421
- "type": "boolean"
5581
+ "anyOf": [
5582
+ {
5583
+ "type": "boolean"
5584
+ },
5585
+ {
5586
+ "type": "string",
5587
+ "const": "true"
5588
+ },
5589
+ {
5590
+ "type": "string",
5591
+ "const": "false"
5592
+ }
5593
+ ]
4422
5594
  }
4423
5595
  },
4424
5596
  "required": [
@@ -4586,31 +5758,139 @@
4586
5758
  "type": "string"
4587
5759
  },
4588
5760
  "checkable": {
4589
- "type": "boolean"
5761
+ "anyOf": [
5762
+ {
5763
+ "type": "boolean"
5764
+ },
5765
+ {
5766
+ "type": "string",
5767
+ "const": "true"
5768
+ },
5769
+ {
5770
+ "type": "string",
5771
+ "const": "false"
5772
+ }
5773
+ ]
4590
5774
  },
4591
5775
  "checked": {
4592
- "type": "boolean"
5776
+ "anyOf": [
5777
+ {
5778
+ "type": "boolean"
5779
+ },
5780
+ {
5781
+ "type": "string",
5782
+ "const": "true"
5783
+ },
5784
+ {
5785
+ "type": "string",
5786
+ "const": "false"
5787
+ }
5788
+ ]
4593
5789
  },
4594
5790
  "clickable": {
4595
- "type": "boolean"
5791
+ "anyOf": [
5792
+ {
5793
+ "type": "boolean"
5794
+ },
5795
+ {
5796
+ "type": "string",
5797
+ "const": "true"
5798
+ },
5799
+ {
5800
+ "type": "string",
5801
+ "const": "false"
5802
+ }
5803
+ ]
4596
5804
  },
4597
5805
  "enabled": {
4598
- "type": "boolean"
5806
+ "anyOf": [
5807
+ {
5808
+ "type": "boolean"
5809
+ },
5810
+ {
5811
+ "type": "string",
5812
+ "const": "true"
5813
+ },
5814
+ {
5815
+ "type": "string",
5816
+ "const": "false"
5817
+ }
5818
+ ]
4599
5819
  },
4600
5820
  "focusable": {
4601
- "type": "boolean"
5821
+ "anyOf": [
5822
+ {
5823
+ "type": "boolean"
5824
+ },
5825
+ {
5826
+ "type": "string",
5827
+ "const": "true"
5828
+ },
5829
+ {
5830
+ "type": "string",
5831
+ "const": "false"
5832
+ }
5833
+ ]
4602
5834
  },
4603
5835
  "focused": {
4604
- "type": "boolean"
5836
+ "anyOf": [
5837
+ {
5838
+ "type": "boolean"
5839
+ },
5840
+ {
5841
+ "type": "string",
5842
+ "const": "true"
5843
+ },
5844
+ {
5845
+ "type": "string",
5846
+ "const": "false"
5847
+ }
5848
+ ]
4605
5849
  },
4606
5850
  "accessibility-focused": {
4607
- "type": "boolean"
5851
+ "anyOf": [
5852
+ {
5853
+ "type": "boolean"
5854
+ },
5855
+ {
5856
+ "type": "string",
5857
+ "const": "true"
5858
+ },
5859
+ {
5860
+ "type": "string",
5861
+ "const": "false"
5862
+ }
5863
+ ]
4608
5864
  },
4609
5865
  "scrollable": {
4610
- "type": "boolean"
5866
+ "anyOf": [
5867
+ {
5868
+ "type": "boolean"
5869
+ },
5870
+ {
5871
+ "type": "string",
5872
+ "const": "true"
5873
+ },
5874
+ {
5875
+ "type": "string",
5876
+ "const": "false"
5877
+ }
5878
+ ]
4611
5879
  },
4612
5880
  "selected": {
4613
- "type": "boolean"
5881
+ "anyOf": [
5882
+ {
5883
+ "type": "boolean"
5884
+ },
5885
+ {
5886
+ "type": "string",
5887
+ "const": "true"
5888
+ },
5889
+ {
5890
+ "type": "string",
5891
+ "const": "false"
5892
+ }
5893
+ ]
4614
5894
  }
4615
5895
  },
4616
5896
  "required": [
@@ -4679,31 +5959,139 @@
4679
5959
  "type": "string"
4680
5960
  },
4681
5961
  "checkable": {
4682
- "type": "boolean"
5962
+ "anyOf": [
5963
+ {
5964
+ "type": "boolean"
5965
+ },
5966
+ {
5967
+ "type": "string",
5968
+ "const": "true"
5969
+ },
5970
+ {
5971
+ "type": "string",
5972
+ "const": "false"
5973
+ }
5974
+ ]
4683
5975
  },
4684
5976
  "checked": {
4685
- "type": "boolean"
5977
+ "anyOf": [
5978
+ {
5979
+ "type": "boolean"
5980
+ },
5981
+ {
5982
+ "type": "string",
5983
+ "const": "true"
5984
+ },
5985
+ {
5986
+ "type": "string",
5987
+ "const": "false"
5988
+ }
5989
+ ]
4686
5990
  },
4687
5991
  "clickable": {
4688
- "type": "boolean"
5992
+ "anyOf": [
5993
+ {
5994
+ "type": "boolean"
5995
+ },
5996
+ {
5997
+ "type": "string",
5998
+ "const": "true"
5999
+ },
6000
+ {
6001
+ "type": "string",
6002
+ "const": "false"
6003
+ }
6004
+ ]
4689
6005
  },
4690
6006
  "enabled": {
4691
- "type": "boolean"
6007
+ "anyOf": [
6008
+ {
6009
+ "type": "boolean"
6010
+ },
6011
+ {
6012
+ "type": "string",
6013
+ "const": "true"
6014
+ },
6015
+ {
6016
+ "type": "string",
6017
+ "const": "false"
6018
+ }
6019
+ ]
4692
6020
  },
4693
6021
  "focusable": {
4694
- "type": "boolean"
6022
+ "anyOf": [
6023
+ {
6024
+ "type": "boolean"
6025
+ },
6026
+ {
6027
+ "type": "string",
6028
+ "const": "true"
6029
+ },
6030
+ {
6031
+ "type": "string",
6032
+ "const": "false"
6033
+ }
6034
+ ]
4695
6035
  },
4696
6036
  "focused": {
4697
- "type": "boolean"
6037
+ "anyOf": [
6038
+ {
6039
+ "type": "boolean"
6040
+ },
6041
+ {
6042
+ "type": "string",
6043
+ "const": "true"
6044
+ },
6045
+ {
6046
+ "type": "string",
6047
+ "const": "false"
6048
+ }
6049
+ ]
4698
6050
  },
4699
6051
  "accessibility-focused": {
4700
- "type": "boolean"
6052
+ "anyOf": [
6053
+ {
6054
+ "type": "boolean"
6055
+ },
6056
+ {
6057
+ "type": "string",
6058
+ "const": "true"
6059
+ },
6060
+ {
6061
+ "type": "string",
6062
+ "const": "false"
6063
+ }
6064
+ ]
4701
6065
  },
4702
6066
  "scrollable": {
4703
- "type": "boolean"
6067
+ "anyOf": [
6068
+ {
6069
+ "type": "boolean"
6070
+ },
6071
+ {
6072
+ "type": "string",
6073
+ "const": "true"
6074
+ },
6075
+ {
6076
+ "type": "string",
6077
+ "const": "false"
6078
+ }
6079
+ ]
4704
6080
  },
4705
6081
  "selected": {
4706
- "type": "boolean"
6082
+ "anyOf": [
6083
+ {
6084
+ "type": "boolean"
6085
+ },
6086
+ {
6087
+ "type": "string",
6088
+ "const": "true"
6089
+ },
6090
+ {
6091
+ "type": "string",
6092
+ "const": "false"
6093
+ }
6094
+ ]
4707
6095
  }
4708
6096
  },
4709
6097
  "required": [