@agentrhq/webcmd 0.2.2 → 0.2.3

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 (52) hide show
  1. package/cli-manifest.json +1269 -115
  2. package/clis/bigbasket/add-to-cart.js +82 -0
  3. package/clis/bigbasket/bigbasket.test.js +255 -0
  4. package/clis/bigbasket/cart.js +81 -0
  5. package/clis/bigbasket/category.js +30 -0
  6. package/clis/bigbasket/checkout.js +71 -0
  7. package/clis/bigbasket/location.js +30 -0
  8. package/clis/bigbasket/product.js +79 -0
  9. package/clis/bigbasket/search.js +30 -0
  10. package/clis/bigbasket/utils.js +207 -0
  11. package/clis/blinkit/add-to-cart.js +123 -0
  12. package/clis/blinkit/auth.js +99 -0
  13. package/clis/blinkit/blinkit.test.js +168 -0
  14. package/clis/blinkit/cart.js +34 -0
  15. package/clis/blinkit/checkout.js +32 -0
  16. package/clis/blinkit/location.js +29 -0
  17. package/clis/blinkit/place-order.js +78 -0
  18. package/clis/blinkit/product.js +63 -0
  19. package/clis/blinkit/search.js +89 -0
  20. package/clis/blinkit/utils.js +223 -0
  21. package/clis/district/checkout.js +71 -1
  22. package/clis/practo/appointment.js +21 -0
  23. package/clis/practo/appointments.js +27 -0
  24. package/clis/practo/book-confirm.js +35 -0
  25. package/clis/practo/book-preview.js +24 -0
  26. package/clis/practo/booking-link.js +24 -0
  27. package/clis/practo/cancel.js +29 -0
  28. package/clis/practo/contact.js +21 -0
  29. package/clis/practo/login.js +21 -0
  30. package/clis/practo/practo.test.js +136 -0
  31. package/clis/practo/profile.js +31 -0
  32. package/clis/practo/search.js +30 -0
  33. package/clis/practo/slots.js +19 -0
  34. package/clis/practo/utils.js +374 -0
  35. package/clis/practo/whoami.js +28 -0
  36. package/clis/zepto/add-to-cart.js +53 -0
  37. package/clis/zepto/auth.js +59 -0
  38. package/clis/zepto/cart.js +23 -0
  39. package/clis/zepto/checkout.js +60 -0
  40. package/clis/zepto/location.js +20 -0
  41. package/clis/zepto/place-order.js +47 -0
  42. package/clis/zepto/product.js +52 -0
  43. package/clis/zepto/search.js +30 -0
  44. package/clis/zepto/utils.js +228 -0
  45. package/clis/zepto/zepto.test.js +238 -0
  46. package/dist/src/generate-release-notes-cli.test.js +55 -1
  47. package/dist/src/release-notes.d.ts +3 -1
  48. package/dist/src/release-notes.js +44 -1
  49. package/dist/src/release-notes.test.js +39 -1
  50. package/package.json +1 -1
  51. package/scripts/generate-release-notes.ts +31 -0
  52. package/skills/webcmd-adapter-author/SKILL.md +9 -0
package/cli-manifest.json CHANGED
@@ -2023,6 +2023,228 @@
2023
2023
  "modulePath": "bbc/topic.js",
2024
2024
  "sourceFile": "bbc/topic.js"
2025
2025
  },
2026
+ {
2027
+ "site": "bigbasket",
2028
+ "name": "add-to-cart",
2029
+ "description": "Add a BigBasket product to cart",
2030
+ "access": "write",
2031
+ "domain": "www.bigbasket.com",
2032
+ "strategy": "cookie",
2033
+ "browser": true,
2034
+ "args": [
2035
+ {
2036
+ "name": "product",
2037
+ "type": "str",
2038
+ "required": true,
2039
+ "positional": true,
2040
+ "help": "Product ID or URL"
2041
+ },
2042
+ {
2043
+ "name": "quantity",
2044
+ "type": "int",
2045
+ "default": 1,
2046
+ "required": false,
2047
+ "help": "Quantity to add (max 20)"
2048
+ }
2049
+ ],
2050
+ "columns": [
2051
+ "ok",
2052
+ "product_id",
2053
+ "quantity",
2054
+ "url",
2055
+ "message"
2056
+ ],
2057
+ "type": "js",
2058
+ "modulePath": "bigbasket/add-to-cart.js",
2059
+ "sourceFile": "bigbasket/add-to-cart.js",
2060
+ "navigateBefore": "https://www.bigbasket.com"
2061
+ },
2062
+ {
2063
+ "site": "bigbasket",
2064
+ "name": "cart",
2065
+ "description": "Read BigBasket cart line items",
2066
+ "access": "read",
2067
+ "domain": "www.bigbasket.com",
2068
+ "strategy": "cookie",
2069
+ "browser": true,
2070
+ "args": [],
2071
+ "columns": [
2072
+ "product_id",
2073
+ "title",
2074
+ "quantity",
2075
+ "price",
2076
+ "line_total",
2077
+ "availability",
2078
+ "url"
2079
+ ],
2080
+ "type": "js",
2081
+ "modulePath": "bigbasket/cart.js",
2082
+ "sourceFile": "bigbasket/cart.js",
2083
+ "navigateBefore": "https://www.bigbasket.com"
2084
+ },
2085
+ {
2086
+ "site": "bigbasket",
2087
+ "name": "category",
2088
+ "description": "Read BigBasket category product cards",
2089
+ "access": "read",
2090
+ "domain": "www.bigbasket.com",
2091
+ "strategy": "cookie",
2092
+ "browser": true,
2093
+ "args": [
2094
+ {
2095
+ "name": "category",
2096
+ "type": "str",
2097
+ "required": true,
2098
+ "positional": true,
2099
+ "help": "Category URL or slug"
2100
+ },
2101
+ {
2102
+ "name": "limit",
2103
+ "type": "int",
2104
+ "default": 20,
2105
+ "required": false,
2106
+ "help": "Maximum products to return (max 50)"
2107
+ }
2108
+ ],
2109
+ "columns": [
2110
+ "rank",
2111
+ "product_id",
2112
+ "title",
2113
+ "brand",
2114
+ "pack_size",
2115
+ "price",
2116
+ "mrp",
2117
+ "discount",
2118
+ "availability",
2119
+ "url"
2120
+ ],
2121
+ "type": "js",
2122
+ "modulePath": "bigbasket/category.js",
2123
+ "sourceFile": "bigbasket/category.js",
2124
+ "navigateBefore": "https://www.bigbasket.com"
2125
+ },
2126
+ {
2127
+ "site": "bigbasket",
2128
+ "name": "checkout",
2129
+ "description": "Open BigBasket checkout review without placing an order",
2130
+ "access": "write",
2131
+ "domain": "www.bigbasket.com",
2132
+ "strategy": "cookie",
2133
+ "browser": true,
2134
+ "args": [],
2135
+ "columns": [
2136
+ "ok",
2137
+ "stage",
2138
+ "cart_total",
2139
+ "address_ready",
2140
+ "delivery_ready",
2141
+ "payment_ready",
2142
+ "next_action",
2143
+ "url"
2144
+ ],
2145
+ "type": "js",
2146
+ "modulePath": "bigbasket/checkout.js",
2147
+ "sourceFile": "bigbasket/checkout.js",
2148
+ "navigateBefore": "https://www.bigbasket.com"
2149
+ },
2150
+ {
2151
+ "site": "bigbasket",
2152
+ "name": "location",
2153
+ "description": "Show the selected BigBasket delivery location",
2154
+ "access": "read",
2155
+ "domain": "www.bigbasket.com",
2156
+ "strategy": "cookie",
2157
+ "browser": true,
2158
+ "args": [],
2159
+ "columns": [
2160
+ "selected",
2161
+ "label",
2162
+ "area",
2163
+ "city",
2164
+ "pincode",
2165
+ "source"
2166
+ ],
2167
+ "type": "js",
2168
+ "modulePath": "bigbasket/location.js",
2169
+ "sourceFile": "bigbasket/location.js",
2170
+ "navigateBefore": "https://www.bigbasket.com"
2171
+ },
2172
+ {
2173
+ "site": "bigbasket",
2174
+ "name": "product",
2175
+ "description": "Read BigBasket product details",
2176
+ "access": "read",
2177
+ "domain": "www.bigbasket.com",
2178
+ "strategy": "cookie",
2179
+ "browser": true,
2180
+ "args": [
2181
+ {
2182
+ "name": "product",
2183
+ "type": "str",
2184
+ "required": true,
2185
+ "positional": true,
2186
+ "help": "Product ID or URL"
2187
+ }
2188
+ ],
2189
+ "columns": [
2190
+ "product_id",
2191
+ "title",
2192
+ "brand",
2193
+ "pack_size",
2194
+ "price",
2195
+ "mrp",
2196
+ "discount",
2197
+ "availability",
2198
+ "delivery",
2199
+ "image_url",
2200
+ "url"
2201
+ ],
2202
+ "type": "js",
2203
+ "modulePath": "bigbasket/product.js",
2204
+ "sourceFile": "bigbasket/product.js",
2205
+ "navigateBefore": "https://www.bigbasket.com"
2206
+ },
2207
+ {
2208
+ "site": "bigbasket",
2209
+ "name": "search",
2210
+ "description": "Search BigBasket products",
2211
+ "access": "read",
2212
+ "domain": "www.bigbasket.com",
2213
+ "strategy": "cookie",
2214
+ "browser": true,
2215
+ "args": [
2216
+ {
2217
+ "name": "query",
2218
+ "type": "str",
2219
+ "required": true,
2220
+ "positional": true,
2221
+ "help": "Search query"
2222
+ },
2223
+ {
2224
+ "name": "limit",
2225
+ "type": "int",
2226
+ "default": 20,
2227
+ "required": false,
2228
+ "help": "Maximum products to return (max 50)"
2229
+ }
2230
+ ],
2231
+ "columns": [
2232
+ "rank",
2233
+ "product_id",
2234
+ "title",
2235
+ "brand",
2236
+ "pack_size",
2237
+ "price",
2238
+ "mrp",
2239
+ "discount",
2240
+ "availability",
2241
+ "url"
2242
+ ],
2243
+ "type": "js",
2244
+ "modulePath": "bigbasket/search.js",
2245
+ "sourceFile": "bigbasket/search.js",
2246
+ "navigateBefore": "https://www.bigbasket.com"
2247
+ },
2026
2248
  {
2027
2249
  "site": "binance",
2028
2250
  "name": "asks",
@@ -2371,80 +2593,369 @@
2371
2593
  "sourceFile": "binance/trades.js"
2372
2594
  },
2373
2595
  {
2374
- "site": "bloomberg",
2375
- "name": "businessweek",
2376
- "description": "Bloomberg Businessweek top stories",
2377
- "access": "read",
2378
- "domain": "www.bloomberg.com",
2379
- "strategy": "public",
2596
+ "site": "blinkit",
2597
+ "name": "add-to-cart",
2598
+ "description": "Add a Blinkit product to cart",
2599
+ "access": "write",
2600
+ "domain": "blinkit.com",
2601
+ "strategy": "cookie",
2380
2602
  "browser": true,
2381
2603
  "args": [
2382
2604
  {
2383
- "name": "limit",
2605
+ "name": "productId",
2606
+ "type": "str",
2607
+ "required": true,
2608
+ "positional": true,
2609
+ "help": "Blinkit product id"
2610
+ },
2611
+ {
2612
+ "name": "quantity",
2384
2613
  "type": "int",
2385
2614
  "default": 1,
2386
2615
  "required": false,
2387
- "help": "Number of stories to return (max 20)"
2616
+ "help": "Quantity to add (default 1, max 12)"
2617
+ },
2618
+ {
2619
+ "name": "lat",
2620
+ "type": "str",
2621
+ "required": false,
2622
+ "help": "Delivery latitude (defaults to current Blinkit browser location)"
2623
+ },
2624
+ {
2625
+ "name": "lon",
2626
+ "type": "str",
2627
+ "required": false,
2628
+ "help": "Delivery longitude (defaults to current Blinkit browser location)"
2388
2629
  }
2389
2630
  ],
2390
2631
  "columns": [
2391
- "title",
2392
- "summary",
2393
- "link",
2394
- "mediaLinks"
2632
+ "status",
2633
+ "productId",
2634
+ "quantity",
2635
+ "itemCount",
2636
+ "itemsTotal",
2637
+ "payable",
2638
+ "message"
2395
2639
  ],
2396
2640
  "type": "js",
2397
- "modulePath": "bloomberg/businessweek.js",
2398
- "sourceFile": "bloomberg/businessweek.js"
2641
+ "modulePath": "blinkit/add-to-cart.js",
2642
+ "sourceFile": "blinkit/add-to-cart.js",
2643
+ "navigateBefore": false
2399
2644
  },
2400
2645
  {
2401
- "site": "bloomberg",
2402
- "name": "crypto",
2403
- "description": "Bloomberg Crypto top stories (RSS)",
2646
+ "site": "blinkit",
2647
+ "name": "cart",
2648
+ "description": "Show the current Blinkit cart",
2404
2649
  "access": "read",
2405
- "domain": "feeds.bloomberg.com",
2406
- "strategy": "public",
2407
- "browser": false,
2408
- "args": [
2409
- {
2410
- "name": "limit",
2411
- "type": "int",
2412
- "default": 1,
2413
- "required": false,
2414
- "help": "Number of feed items to return (max 20)"
2415
- }
2416
- ],
2650
+ "domain": "blinkit.com",
2651
+ "strategy": "cookie",
2652
+ "browser": true,
2653
+ "args": [],
2417
2654
  "columns": [
2418
- "title",
2419
- "summary",
2420
- "link",
2421
- "mediaLinks"
2655
+ "status",
2656
+ "productId",
2657
+ "name",
2658
+ "variant",
2659
+ "price",
2660
+ "quantity",
2661
+ "total",
2662
+ "itemCount",
2663
+ "payable",
2664
+ "cartState"
2422
2665
  ],
2423
2666
  "type": "js",
2424
- "modulePath": "bloomberg/crypto.js",
2425
- "sourceFile": "bloomberg/crypto.js"
2667
+ "modulePath": "blinkit/cart.js",
2668
+ "sourceFile": "blinkit/cart.js",
2669
+ "navigateBefore": false
2426
2670
  },
2427
2671
  {
2428
- "site": "bloomberg",
2429
- "name": "economics",
2430
- "description": "Bloomberg Economics top stories (RSS)",
2672
+ "site": "blinkit",
2673
+ "name": "checkout",
2674
+ "description": "Review Blinkit checkout totals and blockers without placing an order",
2431
2675
  "access": "read",
2432
- "domain": "feeds.bloomberg.com",
2433
- "strategy": "public",
2434
- "browser": false,
2676
+ "domain": "blinkit.com",
2677
+ "strategy": "cookie",
2678
+ "browser": true,
2679
+ "args": [],
2680
+ "columns": [
2681
+ "status",
2682
+ "itemCount",
2683
+ "itemsTotal",
2684
+ "deliveryCharge",
2685
+ "handlingCharge",
2686
+ "payable",
2687
+ "cartState",
2688
+ "checkoutBlocked",
2689
+ "validations"
2690
+ ],
2691
+ "type": "js",
2692
+ "modulePath": "blinkit/checkout.js",
2693
+ "sourceFile": "blinkit/checkout.js",
2694
+ "navigateBefore": false,
2695
+ "defaultWindowMode": "foreground"
2696
+ },
2697
+ {
2698
+ "site": "blinkit",
2699
+ "name": "location",
2700
+ "description": "Show the selected Blinkit delivery location",
2701
+ "access": "read",
2702
+ "domain": "blinkit.com",
2703
+ "strategy": "cookie",
2704
+ "browser": true,
2705
+ "args": [],
2706
+ "columns": [
2707
+ "selected",
2708
+ "label",
2709
+ "area",
2710
+ "city",
2711
+ "pincode",
2712
+ "hasCoordinates",
2713
+ "source"
2714
+ ],
2715
+ "type": "js",
2716
+ "modulePath": "blinkit/location.js",
2717
+ "sourceFile": "blinkit/location.js",
2718
+ "navigateBefore": "https://blinkit.com"
2719
+ },
2720
+ {
2721
+ "site": "blinkit",
2722
+ "name": "login",
2723
+ "description": "Open Blinkit login and wait until the browser session is authenticated",
2724
+ "access": "write",
2725
+ "domain": "blinkit.com",
2726
+ "strategy": "cookie",
2727
+ "browser": true,
2435
2728
  "args": [
2436
2729
  {
2437
- "name": "limit",
2730
+ "name": "timeout",
2438
2731
  "type": "int",
2439
- "default": 1,
2732
+ "default": 300,
2440
2733
  "required": false,
2441
- "help": "Number of feed items to return (max 20)"
2734
+ "help": "Maximum seconds to wait for the user to finish login"
2442
2735
  }
2443
2736
  ],
2444
2737
  "columns": [
2445
- "title",
2446
- "summary",
2447
- "link",
2738
+ "status",
2739
+ "logged_in",
2740
+ "phone",
2741
+ "user_id"
2742
+ ],
2743
+ "type": "js",
2744
+ "modulePath": "blinkit/auth.js",
2745
+ "sourceFile": "blinkit/auth.js",
2746
+ "navigateBefore": false,
2747
+ "siteSession": "persistent",
2748
+ "defaultWindowMode": "foreground"
2749
+ },
2750
+ {
2751
+ "site": "blinkit",
2752
+ "name": "place-order",
2753
+ "description": "Submit the visible Blinkit final order/payment action. Requires --confirm.",
2754
+ "access": "write",
2755
+ "domain": "blinkit.com",
2756
+ "strategy": "cookie",
2757
+ "browser": true,
2758
+ "args": [
2759
+ {
2760
+ "name": "confirm",
2761
+ "type": "bool",
2762
+ "default": false,
2763
+ "required": false,
2764
+ "help": "Required acknowledgement that this may place/pay for a real order"
2765
+ }
2766
+ ],
2767
+ "columns": [
2768
+ "status",
2769
+ "confirmed",
2770
+ "itemCount",
2771
+ "payable",
2772
+ "orderId",
2773
+ "url",
2774
+ "message"
2775
+ ],
2776
+ "type": "js",
2777
+ "modulePath": "blinkit/place-order.js",
2778
+ "sourceFile": "blinkit/place-order.js",
2779
+ "navigateBefore": false,
2780
+ "defaultWindowMode": "foreground"
2781
+ },
2782
+ {
2783
+ "site": "blinkit",
2784
+ "name": "product",
2785
+ "description": "Read Blinkit product details for a delivery location",
2786
+ "access": "read",
2787
+ "domain": "blinkit.com",
2788
+ "strategy": "cookie",
2789
+ "browser": true,
2790
+ "args": [
2791
+ {
2792
+ "name": "productId",
2793
+ "type": "str",
2794
+ "required": true,
2795
+ "positional": true,
2796
+ "help": "Blinkit product id"
2797
+ },
2798
+ {
2799
+ "name": "lat",
2800
+ "type": "str",
2801
+ "required": false,
2802
+ "help": "Delivery latitude (defaults to current Blinkit browser location)"
2803
+ },
2804
+ {
2805
+ "name": "lon",
2806
+ "type": "str",
2807
+ "required": false,
2808
+ "help": "Delivery longitude (defaults to current Blinkit browser location)"
2809
+ }
2810
+ ],
2811
+ "columns": [
2812
+ "productId",
2813
+ "name",
2814
+ "brand",
2815
+ "variant",
2816
+ "price",
2817
+ "mrp",
2818
+ "currency",
2819
+ "inventory",
2820
+ "available",
2821
+ "imageUrl",
2822
+ "url"
2823
+ ],
2824
+ "type": "js",
2825
+ "modulePath": "blinkit/product.js",
2826
+ "sourceFile": "blinkit/product.js",
2827
+ "navigateBefore": false
2828
+ },
2829
+ {
2830
+ "site": "blinkit",
2831
+ "name": "search",
2832
+ "description": "Search Blinkit products for a delivery location",
2833
+ "access": "read",
2834
+ "domain": "blinkit.com",
2835
+ "strategy": "cookie",
2836
+ "browser": true,
2837
+ "args": [
2838
+ {
2839
+ "name": "query",
2840
+ "type": "str",
2841
+ "required": true,
2842
+ "positional": true,
2843
+ "help": "Search keyword"
2844
+ },
2845
+ {
2846
+ "name": "limit",
2847
+ "type": "int",
2848
+ "default": 20,
2849
+ "required": false,
2850
+ "help": "Max results (max 48)"
2851
+ },
2852
+ {
2853
+ "name": "lat",
2854
+ "type": "str",
2855
+ "required": false,
2856
+ "help": "Delivery latitude (defaults to current Blinkit browser location)"
2857
+ },
2858
+ {
2859
+ "name": "lon",
2860
+ "type": "str",
2861
+ "required": false,
2862
+ "help": "Delivery longitude (defaults to current Blinkit browser location)"
2863
+ }
2864
+ ],
2865
+ "columns": [
2866
+ "rank",
2867
+ "productId",
2868
+ "name",
2869
+ "brand",
2870
+ "variant",
2871
+ "price",
2872
+ "mrp",
2873
+ "currency",
2874
+ "inventory",
2875
+ "available",
2876
+ "imageUrl",
2877
+ "url"
2878
+ ],
2879
+ "type": "js",
2880
+ "modulePath": "blinkit/search.js",
2881
+ "sourceFile": "blinkit/search.js",
2882
+ "navigateBefore": false
2883
+ },
2884
+ {
2885
+ "site": "bloomberg",
2886
+ "name": "businessweek",
2887
+ "description": "Bloomberg Businessweek top stories",
2888
+ "access": "read",
2889
+ "domain": "www.bloomberg.com",
2890
+ "strategy": "public",
2891
+ "browser": true,
2892
+ "args": [
2893
+ {
2894
+ "name": "limit",
2895
+ "type": "int",
2896
+ "default": 1,
2897
+ "required": false,
2898
+ "help": "Number of stories to return (max 20)"
2899
+ }
2900
+ ],
2901
+ "columns": [
2902
+ "title",
2903
+ "summary",
2904
+ "link",
2905
+ "mediaLinks"
2906
+ ],
2907
+ "type": "js",
2908
+ "modulePath": "bloomberg/businessweek.js",
2909
+ "sourceFile": "bloomberg/businessweek.js"
2910
+ },
2911
+ {
2912
+ "site": "bloomberg",
2913
+ "name": "crypto",
2914
+ "description": "Bloomberg Crypto top stories (RSS)",
2915
+ "access": "read",
2916
+ "domain": "feeds.bloomberg.com",
2917
+ "strategy": "public",
2918
+ "browser": false,
2919
+ "args": [
2920
+ {
2921
+ "name": "limit",
2922
+ "type": "int",
2923
+ "default": 1,
2924
+ "required": false,
2925
+ "help": "Number of feed items to return (max 20)"
2926
+ }
2927
+ ],
2928
+ "columns": [
2929
+ "title",
2930
+ "summary",
2931
+ "link",
2932
+ "mediaLinks"
2933
+ ],
2934
+ "type": "js",
2935
+ "modulePath": "bloomberg/crypto.js",
2936
+ "sourceFile": "bloomberg/crypto.js"
2937
+ },
2938
+ {
2939
+ "site": "bloomberg",
2940
+ "name": "economics",
2941
+ "description": "Bloomberg Economics top stories (RSS)",
2942
+ "access": "read",
2943
+ "domain": "feeds.bloomberg.com",
2944
+ "strategy": "public",
2945
+ "browser": false,
2946
+ "args": [
2947
+ {
2948
+ "name": "limit",
2949
+ "type": "int",
2950
+ "default": 1,
2951
+ "required": false,
2952
+ "help": "Number of feed items to return (max 20)"
2953
+ }
2954
+ ],
2955
+ "columns": [
2956
+ "title",
2957
+ "summary",
2958
+ "link",
2448
2959
  "mediaLinks"
2449
2960
  ],
2450
2961
  "type": "js",
@@ -15988,129 +16499,540 @@
15988
16499
  "navigateBefore": "https://www.pixiv.net"
15989
16500
  },
15990
16501
  {
15991
- "site": "pixiv",
16502
+ "site": "pixiv",
16503
+ "name": "search",
16504
+ "description": "Search Pixiv illustrations by keyword",
16505
+ "access": "read",
16506
+ "domain": "www.pixiv.net",
16507
+ "strategy": "cookie",
16508
+ "browser": true,
16509
+ "args": [
16510
+ {
16511
+ "name": "query",
16512
+ "type": "str",
16513
+ "required": true,
16514
+ "positional": true,
16515
+ "help": "Search keyword or tag"
16516
+ },
16517
+ {
16518
+ "name": "limit",
16519
+ "type": "int",
16520
+ "default": 20,
16521
+ "required": false,
16522
+ "help": "Number of results"
16523
+ },
16524
+ {
16525
+ "name": "order",
16526
+ "type": "str",
16527
+ "default": "date_d",
16528
+ "required": false,
16529
+ "help": "Sort order",
16530
+ "choices": [
16531
+ "date_d",
16532
+ "date",
16533
+ "popular_d",
16534
+ "popular_male_d",
16535
+ "popular_female_d"
16536
+ ]
16537
+ },
16538
+ {
16539
+ "name": "mode",
16540
+ "type": "str",
16541
+ "default": "all",
16542
+ "required": false,
16543
+ "help": "Search mode",
16544
+ "choices": [
16545
+ "all",
16546
+ "safe",
16547
+ "r18"
16548
+ ]
16549
+ },
16550
+ {
16551
+ "name": "page",
16552
+ "type": "int",
16553
+ "default": 1,
16554
+ "required": false,
16555
+ "help": "Page number"
16556
+ }
16557
+ ],
16558
+ "columns": [
16559
+ "rank",
16560
+ "title",
16561
+ "author",
16562
+ "user_id",
16563
+ "illust_id",
16564
+ "pages",
16565
+ "bookmarks",
16566
+ "tags",
16567
+ "url"
16568
+ ],
16569
+ "type": "js",
16570
+ "modulePath": "pixiv/search.js",
16571
+ "sourceFile": "pixiv/search.js",
16572
+ "navigateBefore": "https://www.pixiv.net"
16573
+ },
16574
+ {
16575
+ "site": "pixiv",
16576
+ "name": "user",
16577
+ "description": "View Pixiv artist profile",
16578
+ "access": "read",
16579
+ "domain": "www.pixiv.net",
16580
+ "strategy": "cookie",
16581
+ "browser": true,
16582
+ "args": [
16583
+ {
16584
+ "name": "uid",
16585
+ "type": "str",
16586
+ "required": true,
16587
+ "positional": true,
16588
+ "help": "Pixiv user ID"
16589
+ }
16590
+ ],
16591
+ "columns": [
16592
+ "user_id",
16593
+ "name",
16594
+ "premium",
16595
+ "following",
16596
+ "illusts",
16597
+ "manga",
16598
+ "novels",
16599
+ "comment",
16600
+ "url"
16601
+ ],
16602
+ "type": "js",
16603
+ "modulePath": "pixiv/user.js",
16604
+ "sourceFile": "pixiv/user.js",
16605
+ "navigateBefore": "https://www.pixiv.net"
16606
+ },
16607
+ {
16608
+ "site": "pixiv",
16609
+ "name": "whoami",
16610
+ "description": "Show the current logged-in pixiv account",
16611
+ "access": "read",
16612
+ "domain": "pixiv.net",
16613
+ "strategy": "cookie",
16614
+ "browser": true,
16615
+ "args": [],
16616
+ "columns": [
16617
+ "logged_in",
16618
+ "site",
16619
+ "user_id",
16620
+ "name"
16621
+ ],
16622
+ "type": "js",
16623
+ "modulePath": "pixiv/auth.js",
16624
+ "sourceFile": "pixiv/auth.js",
16625
+ "navigateBefore": false,
16626
+ "siteSession": "persistent"
16627
+ },
16628
+ {
16629
+ "site": "practo",
16630
+ "name": "appointment",
16631
+ "description": "Show logged-in Practo Drive appointment details",
16632
+ "access": "read",
16633
+ "domain": "drive.practo.com",
16634
+ "strategy": "cookie",
16635
+ "browser": true,
16636
+ "args": [
16637
+ {
16638
+ "name": "appointment_id",
16639
+ "type": "str",
16640
+ "required": true,
16641
+ "positional": true,
16642
+ "help": "Appointment id from `practo appointments`"
16643
+ }
16644
+ ],
16645
+ "columns": [
16646
+ "appointment_id",
16647
+ "status",
16648
+ "summary"
16649
+ ],
16650
+ "type": "js",
16651
+ "modulePath": "practo/appointment.js",
16652
+ "sourceFile": "practo/appointment.js",
16653
+ "navigateBefore": false,
16654
+ "siteSession": "persistent"
16655
+ },
16656
+ {
16657
+ "site": "practo",
16658
+ "name": "appointments",
16659
+ "description": "List logged-in Practo Drive appointments",
16660
+ "access": "read",
16661
+ "domain": "drive.practo.com",
16662
+ "strategy": "cookie",
16663
+ "browser": true,
16664
+ "args": [],
16665
+ "columns": [
16666
+ "appointment_id",
16667
+ "doctor",
16668
+ "practice",
16669
+ "time",
16670
+ "status"
16671
+ ],
16672
+ "type": "js",
16673
+ "modulePath": "practo/appointments.js",
16674
+ "sourceFile": "practo/appointments.js",
16675
+ "navigateBefore": false,
16676
+ "siteSession": "persistent"
16677
+ },
16678
+ {
16679
+ "site": "practo",
16680
+ "name": "book-confirm",
16681
+ "description": "Confirm a Practo clinic visit booking after explicit confirmation",
16682
+ "access": "write",
16683
+ "domain": "www.practo.com",
16684
+ "strategy": "cookie",
16685
+ "browser": true,
16686
+ "args": [
16687
+ {
16688
+ "name": "practice_doctor_id",
16689
+ "type": "str",
16690
+ "required": true,
16691
+ "positional": true,
16692
+ "help": "Practo practice_doctor_id"
16693
+ },
16694
+ {
16695
+ "name": "time",
16696
+ "type": "str",
16697
+ "required": true,
16698
+ "help": "Slot time YYYY-MM-DD HH:mm:ss"
16699
+ },
16700
+ {
16701
+ "name": "profile-url",
16702
+ "type": "str",
16703
+ "required": false,
16704
+ "help": "Doctor profile_url from `practo search`, used to build a canonical booking URL"
16705
+ },
16706
+ {
16707
+ "name": "confirm",
16708
+ "type": "boolean",
16709
+ "default": false,
16710
+ "required": false,
16711
+ "help": "Required. Set --confirm true to create the appointment."
16712
+ }
16713
+ ],
16714
+ "columns": [
16715
+ "status",
16716
+ "practice_doctor_id",
16717
+ "time",
16718
+ "url"
16719
+ ],
16720
+ "type": "js",
16721
+ "modulePath": "practo/book-confirm.js",
16722
+ "sourceFile": "practo/book-confirm.js",
16723
+ "navigateBefore": false,
16724
+ "siteSession": "persistent",
16725
+ "defaultWindowMode": "foreground"
16726
+ },
16727
+ {
16728
+ "site": "practo",
16729
+ "name": "book-preview",
16730
+ "description": "Preview Practo booking details for a selected slot without confirming",
16731
+ "access": "read",
16732
+ "domain": "www.practo.com",
16733
+ "strategy": "cookie",
16734
+ "browser": true,
16735
+ "args": [
16736
+ {
16737
+ "name": "practice_doctor_id",
16738
+ "type": "str",
16739
+ "required": true,
16740
+ "positional": true,
16741
+ "help": "Practo practice_doctor_id"
16742
+ },
16743
+ {
16744
+ "name": "time",
16745
+ "type": "str",
16746
+ "required": true,
16747
+ "help": "Slot time YYYY-MM-DD HH:mm:ss"
16748
+ },
16749
+ {
16750
+ "name": "profile-url",
16751
+ "type": "str",
16752
+ "required": false,
16753
+ "help": "Doctor profile_url from `practo search`, used to build a canonical booking URL"
16754
+ }
16755
+ ],
16756
+ "columns": [
16757
+ "practice_doctor_id",
16758
+ "time",
16759
+ "amount",
16760
+ "prepaid",
16761
+ "payment_mode",
16762
+ "requires_payment",
16763
+ "confirm_button",
16764
+ "booking_url"
16765
+ ],
16766
+ "type": "js",
16767
+ "modulePath": "practo/book-preview.js",
16768
+ "sourceFile": "practo/book-preview.js",
16769
+ "navigateBefore": false,
16770
+ "siteSession": "persistent"
16771
+ },
16772
+ {
16773
+ "site": "practo",
16774
+ "name": "booking-link",
16775
+ "description": "Build a Practo booking URL for a selected slot without confirming it",
16776
+ "access": "read",
16777
+ "domain": "www.practo.com",
16778
+ "strategy": "cookie",
16779
+ "browser": true,
16780
+ "args": [
16781
+ {
16782
+ "name": "practice_doctor_id",
16783
+ "type": "str",
16784
+ "required": true,
16785
+ "positional": true,
16786
+ "help": "Practo practice_doctor_id"
16787
+ },
16788
+ {
16789
+ "name": "time",
16790
+ "type": "str",
16791
+ "required": true,
16792
+ "help": "Slot time YYYY-MM-DD HH:mm:ss"
16793
+ },
16794
+ {
16795
+ "name": "profile-url",
16796
+ "type": "str",
16797
+ "required": false,
16798
+ "help": "Doctor profile_url from `practo search`, used to build a canonical booking URL"
16799
+ }
16800
+ ],
16801
+ "columns": [
16802
+ "practice_doctor_id",
16803
+ "time",
16804
+ "booking_url"
16805
+ ],
16806
+ "type": "js",
16807
+ "modulePath": "practo/booking-link.js",
16808
+ "sourceFile": "practo/booking-link.js",
16809
+ "navigateBefore": false
16810
+ },
16811
+ {
16812
+ "site": "practo",
16813
+ "name": "cancel",
16814
+ "description": "Cancel a logged-in Practo Drive appointment after explicit confirmation",
16815
+ "access": "write",
16816
+ "domain": "drive.practo.com",
16817
+ "strategy": "cookie",
16818
+ "browser": true,
16819
+ "args": [
16820
+ {
16821
+ "name": "appointment_id",
16822
+ "type": "str",
16823
+ "required": true,
16824
+ "positional": true,
16825
+ "help": "Appointment id from `practo appointments`"
16826
+ },
16827
+ {
16828
+ "name": "confirm",
16829
+ "type": "boolean",
16830
+ "default": false,
16831
+ "required": false,
16832
+ "help": "Required. Set --confirm true to cancel the appointment."
16833
+ }
16834
+ ],
16835
+ "columns": [
16836
+ "status",
16837
+ "appointment_id"
16838
+ ],
16839
+ "type": "js",
16840
+ "modulePath": "practo/cancel.js",
16841
+ "sourceFile": "practo/cancel.js",
16842
+ "navigateBefore": false,
16843
+ "siteSession": "persistent",
16844
+ "defaultWindowMode": "foreground"
16845
+ },
16846
+ {
16847
+ "site": "practo",
16848
+ "name": "contact",
16849
+ "description": "Get Practo virtual contact number for a practice_doctor_id",
16850
+ "access": "read",
16851
+ "domain": "www.practo.com",
16852
+ "strategy": "cookie",
16853
+ "browser": true,
16854
+ "args": [
16855
+ {
16856
+ "name": "practice_doctor_id",
16857
+ "type": "str",
16858
+ "required": true,
16859
+ "positional": true,
16860
+ "help": "Practo practice_doctor_id from search results"
16861
+ }
16862
+ ],
16863
+ "columns": [
16864
+ "practice_doctor_id",
16865
+ "phone",
16866
+ "raw"
16867
+ ],
16868
+ "type": "js",
16869
+ "modulePath": "practo/contact.js",
16870
+ "sourceFile": "practo/contact.js",
16871
+ "navigateBefore": false
16872
+ },
16873
+ {
16874
+ "site": "practo",
16875
+ "name": "login",
16876
+ "description": "Open Practo login for manual sign-in",
16877
+ "access": "write",
16878
+ "domain": "www.practo.com",
16879
+ "strategy": "cookie",
16880
+ "browser": true,
16881
+ "args": [],
16882
+ "columns": [
16883
+ "status",
16884
+ "site",
16885
+ "message"
16886
+ ],
16887
+ "type": "js",
16888
+ "modulePath": "practo/login.js",
16889
+ "sourceFile": "practo/login.js",
16890
+ "navigateBefore": false,
16891
+ "siteSession": "persistent",
16892
+ "defaultWindowMode": "foreground"
16893
+ },
16894
+ {
16895
+ "site": "practo",
16896
+ "name": "profile",
16897
+ "description": "Read public details from a Practo doctor profile URL",
16898
+ "access": "read",
16899
+ "domain": "www.practo.com",
16900
+ "strategy": "cookie",
16901
+ "browser": true,
16902
+ "args": [
16903
+ {
16904
+ "name": "url",
16905
+ "type": "str",
16906
+ "required": true,
16907
+ "positional": true,
16908
+ "help": "Practo doctor profile URL"
16909
+ }
16910
+ ],
16911
+ "columns": [
16912
+ "name",
16913
+ "specialty",
16914
+ "experience",
16915
+ "fee",
16916
+ "profile_url"
16917
+ ],
16918
+ "type": "js",
16919
+ "modulePath": "practo/profile.js",
16920
+ "sourceFile": "practo/profile.js",
16921
+ "navigateBefore": false
16922
+ },
16923
+ {
16924
+ "site": "practo",
15992
16925
  "name": "search",
15993
- "description": "Search Pixiv illustrations by keyword",
16926
+ "description": "Search Practo doctors by specialty, city, and optional locality",
15994
16927
  "access": "read",
15995
- "domain": "www.pixiv.net",
16928
+ "domain": "www.practo.com",
15996
16929
  "strategy": "cookie",
15997
16930
  "browser": true,
15998
16931
  "args": [
15999
16932
  {
16000
- "name": "query",
16933
+ "name": "specialty",
16001
16934
  "type": "str",
16002
16935
  "required": true,
16003
16936
  "positional": true,
16004
- "help": "Search keyword or tag"
16937
+ "help": "Doctor specialty, e.g. orthopedist or dermatologist"
16005
16938
  },
16006
16939
  {
16007
- "name": "limit",
16008
- "type": "int",
16009
- "default": 20,
16010
- "required": false,
16011
- "help": "Number of results"
16012
- },
16013
- {
16014
- "name": "order",
16940
+ "name": "city",
16015
16941
  "type": "str",
16016
- "default": "date_d",
16942
+ "default": "bangalore",
16017
16943
  "required": false,
16018
- "help": "Sort order",
16019
- "choices": [
16020
- "date_d",
16021
- "date",
16022
- "popular_d",
16023
- "popular_male_d",
16024
- "popular_female_d"
16025
- ]
16944
+ "help": "City, e.g. bangalore"
16026
16945
  },
16027
16946
  {
16028
- "name": "mode",
16947
+ "name": "locality",
16029
16948
  "type": "str",
16030
- "default": "all",
16031
16949
  "required": false,
16032
- "help": "Search mode",
16033
- "choices": [
16034
- "all",
16035
- "safe",
16036
- "r18"
16037
- ]
16950
+ "help": "Optional locality, e.g. indiranagar"
16038
16951
  },
16039
16952
  {
16040
- "name": "page",
16953
+ "name": "limit",
16041
16954
  "type": "int",
16042
- "default": 1,
16955
+ "default": 10,
16043
16956
  "required": false,
16044
- "help": "Page number"
16957
+ "help": "Max doctors to return (1-25)"
16045
16958
  }
16046
16959
  ],
16047
16960
  "columns": [
16048
16961
  "rank",
16049
- "title",
16050
- "author",
16051
- "user_id",
16052
- "illust_id",
16053
- "pages",
16054
- "bookmarks",
16055
- "tags",
16056
- "url"
16962
+ "practice_doctor_id",
16963
+ "doctor_id",
16964
+ "practice_id",
16965
+ "name",
16966
+ "specialty",
16967
+ "experience_years",
16968
+ "locality",
16969
+ "clinic",
16970
+ "fee",
16971
+ "next_available",
16972
+ "profile_url"
16057
16973
  ],
16058
16974
  "type": "js",
16059
- "modulePath": "pixiv/search.js",
16060
- "sourceFile": "pixiv/search.js",
16061
- "navigateBefore": "https://www.pixiv.net"
16975
+ "modulePath": "practo/search.js",
16976
+ "sourceFile": "practo/search.js",
16977
+ "navigateBefore": false
16062
16978
  },
16063
16979
  {
16064
- "site": "pixiv",
16065
- "name": "user",
16066
- "description": "View Pixiv artist profile",
16980
+ "site": "practo",
16981
+ "name": "slots",
16982
+ "description": "List available Practo appointment slots for a practice_doctor_id",
16067
16983
  "access": "read",
16068
- "domain": "www.pixiv.net",
16984
+ "domain": "www.practo.com",
16069
16985
  "strategy": "cookie",
16070
16986
  "browser": true,
16071
16987
  "args": [
16072
16988
  {
16073
- "name": "uid",
16989
+ "name": "practice_doctor_id",
16074
16990
  "type": "str",
16075
16991
  "required": true,
16076
16992
  "positional": true,
16077
- "help": "Pixiv user ID"
16993
+ "help": "Practo practice_doctor_id from search results"
16994
+ },
16995
+ {
16996
+ "name": "limit",
16997
+ "type": "int",
16998
+ "default": 20,
16999
+ "required": false,
17000
+ "help": "Max slots to return (1-25)"
16078
17001
  }
16079
17002
  ],
16080
17003
  "columns": [
16081
- "user_id",
16082
- "name",
16083
- "premium",
16084
- "following",
16085
- "illusts",
16086
- "manga",
16087
- "novels",
16088
- "comment",
16089
- "url"
17004
+ "practice_doctor_id",
17005
+ "time",
17006
+ "available",
17007
+ "amount",
17008
+ "prepaid",
17009
+ "appointment_token"
16090
17010
  ],
16091
17011
  "type": "js",
16092
- "modulePath": "pixiv/user.js",
16093
- "sourceFile": "pixiv/user.js",
16094
- "navigateBefore": "https://www.pixiv.net"
17012
+ "modulePath": "practo/slots.js",
17013
+ "sourceFile": "practo/slots.js",
17014
+ "navigateBefore": false
16095
17015
  },
16096
17016
  {
16097
- "site": "pixiv",
17017
+ "site": "practo",
16098
17018
  "name": "whoami",
16099
- "description": "Show the current logged-in pixiv account",
17019
+ "aliases": [
17020
+ "auth-status"
17021
+ ],
17022
+ "description": "Show whether the current browser session is logged into Practo",
16100
17023
  "access": "read",
16101
- "domain": "pixiv.net",
17024
+ "domain": "www.practo.com",
16102
17025
  "strategy": "cookie",
16103
17026
  "browser": true,
16104
17027
  "args": [],
16105
17028
  "columns": [
16106
17029
  "logged_in",
16107
17030
  "site",
16108
- "user_id",
16109
17031
  "name"
16110
17032
  ],
16111
17033
  "type": "js",
16112
- "modulePath": "pixiv/auth.js",
16113
- "sourceFile": "pixiv/auth.js",
17034
+ "modulePath": "practo/whoami.js",
17035
+ "sourceFile": "practo/whoami.js",
16114
17036
  "navigateBefore": false,
16115
17037
  "siteSession": "persistent"
16116
17038
  },
@@ -26312,6 +27234,238 @@
26312
27234
  "navigateBefore": false,
26313
27235
  "siteSession": "persistent"
26314
27236
  },
27237
+ {
27238
+ "site": "zepto",
27239
+ "name": "add-to-cart",
27240
+ "description": "Add a Zepto product to cart",
27241
+ "access": "write",
27242
+ "domain": "www.zepto.com",
27243
+ "strategy": "cookie",
27244
+ "browser": true,
27245
+ "args": [
27246
+ {
27247
+ "name": "product",
27248
+ "type": "str",
27249
+ "required": true,
27250
+ "positional": true,
27251
+ "help": "Product URL from Zepto search results"
27252
+ },
27253
+ {
27254
+ "name": "quantity",
27255
+ "type": "int",
27256
+ "default": 1,
27257
+ "required": false,
27258
+ "help": "Quantity to add (max 12)"
27259
+ }
27260
+ ],
27261
+ "columns": [
27262
+ "ok",
27263
+ "product_id",
27264
+ "quantity",
27265
+ "item_count",
27266
+ "message"
27267
+ ],
27268
+ "type": "js",
27269
+ "modulePath": "zepto/add-to-cart.js",
27270
+ "sourceFile": "zepto/add-to-cart.js",
27271
+ "navigateBefore": false
27272
+ },
27273
+ {
27274
+ "site": "zepto",
27275
+ "name": "cart",
27276
+ "description": "Read Zepto cart line items",
27277
+ "access": "read",
27278
+ "domain": "www.zepto.com",
27279
+ "strategy": "cookie",
27280
+ "browser": true,
27281
+ "args": [],
27282
+ "columns": [
27283
+ "rank",
27284
+ "product_id",
27285
+ "title",
27286
+ "pack_size",
27287
+ "quantity",
27288
+ "price",
27289
+ "mrp",
27290
+ "availability"
27291
+ ],
27292
+ "type": "js",
27293
+ "modulePath": "zepto/cart.js",
27294
+ "sourceFile": "zepto/cart.js",
27295
+ "navigateBefore": false
27296
+ },
27297
+ {
27298
+ "site": "zepto",
27299
+ "name": "checkout",
27300
+ "description": "Open Zepto checkout review without placing an order",
27301
+ "access": "write",
27302
+ "domain": "www.zepto.com",
27303
+ "strategy": "cookie",
27304
+ "browser": true,
27305
+ "args": [],
27306
+ "columns": [
27307
+ "ok",
27308
+ "stage",
27309
+ "item_count",
27310
+ "next_action",
27311
+ "url"
27312
+ ],
27313
+ "type": "js",
27314
+ "modulePath": "zepto/checkout.js",
27315
+ "sourceFile": "zepto/checkout.js",
27316
+ "navigateBefore": false
27317
+ },
27318
+ {
27319
+ "site": "zepto",
27320
+ "name": "location",
27321
+ "description": "Show the selected Zepto delivery location",
27322
+ "access": "read",
27323
+ "domain": "www.zepto.com",
27324
+ "strategy": "cookie",
27325
+ "browser": true,
27326
+ "args": [],
27327
+ "columns": [
27328
+ "selected",
27329
+ "label",
27330
+ "area",
27331
+ "city",
27332
+ "pincode",
27333
+ "hasCoordinates",
27334
+ "source"
27335
+ ],
27336
+ "type": "js",
27337
+ "modulePath": "zepto/location.js",
27338
+ "sourceFile": "zepto/location.js",
27339
+ "navigateBefore": false
27340
+ },
27341
+ {
27342
+ "site": "zepto",
27343
+ "name": "login",
27344
+ "description": "Open Zepto login and wait until the browser session is authenticated",
27345
+ "access": "write",
27346
+ "domain": "www.zepto.com",
27347
+ "strategy": "cookie",
27348
+ "browser": true,
27349
+ "args": [
27350
+ {
27351
+ "name": "timeout",
27352
+ "type": "int",
27353
+ "default": 300,
27354
+ "required": false,
27355
+ "help": "Maximum seconds to wait for the user to finish login"
27356
+ }
27357
+ ],
27358
+ "columns": [
27359
+ "status",
27360
+ "logged_in",
27361
+ "site"
27362
+ ],
27363
+ "type": "js",
27364
+ "modulePath": "zepto/auth.js",
27365
+ "sourceFile": "zepto/auth.js",
27366
+ "navigateBefore": false,
27367
+ "siteSession": "persistent",
27368
+ "defaultWindowMode": "foreground"
27369
+ },
27370
+ {
27371
+ "site": "zepto",
27372
+ "name": "place-order",
27373
+ "description": "Submit a real Zepto order only when --confirm true is passed",
27374
+ "access": "write",
27375
+ "domain": "www.zepto.com",
27376
+ "strategy": "cookie",
27377
+ "browser": true,
27378
+ "args": [
27379
+ {
27380
+ "name": "confirm",
27381
+ "type": "boolean",
27382
+ "default": false,
27383
+ "required": false,
27384
+ "help": "Required. Set true to submit a real Zepto order/payment action."
27385
+ }
27386
+ ],
27387
+ "columns": [
27388
+ "status",
27389
+ "confirmed",
27390
+ "message"
27391
+ ],
27392
+ "type": "js",
27393
+ "modulePath": "zepto/place-order.js",
27394
+ "sourceFile": "zepto/place-order.js",
27395
+ "navigateBefore": false
27396
+ },
27397
+ {
27398
+ "site": "zepto",
27399
+ "name": "product",
27400
+ "description": "Read Zepto product details",
27401
+ "access": "read",
27402
+ "domain": "www.zepto.com",
27403
+ "strategy": "cookie",
27404
+ "browser": true,
27405
+ "args": [
27406
+ {
27407
+ "name": "product",
27408
+ "type": "str",
27409
+ "required": true,
27410
+ "positional": true,
27411
+ "help": "Product URL from Zepto search results"
27412
+ }
27413
+ ],
27414
+ "columns": [
27415
+ "product_id",
27416
+ "title",
27417
+ "brand",
27418
+ "pack_size",
27419
+ "price",
27420
+ "mrp",
27421
+ "availability",
27422
+ "url"
27423
+ ],
27424
+ "type": "js",
27425
+ "modulePath": "zepto/product.js",
27426
+ "sourceFile": "zepto/product.js",
27427
+ "navigateBefore": false
27428
+ },
27429
+ {
27430
+ "site": "zepto",
27431
+ "name": "search",
27432
+ "description": "Search Zepto products",
27433
+ "access": "read",
27434
+ "domain": "www.zepto.com",
27435
+ "strategy": "cookie",
27436
+ "browser": true,
27437
+ "args": [
27438
+ {
27439
+ "name": "query",
27440
+ "type": "str",
27441
+ "required": true,
27442
+ "positional": true,
27443
+ "help": "Search query"
27444
+ },
27445
+ {
27446
+ "name": "limit",
27447
+ "type": "int",
27448
+ "default": 20,
27449
+ "required": false,
27450
+ "help": "Maximum products to return (max 50)"
27451
+ }
27452
+ ],
27453
+ "columns": [
27454
+ "rank",
27455
+ "product_id",
27456
+ "title",
27457
+ "brand",
27458
+ "pack_size",
27459
+ "price",
27460
+ "mrp",
27461
+ "availability",
27462
+ "url"
27463
+ ],
27464
+ "type": "js",
27465
+ "modulePath": "zepto/search.js",
27466
+ "sourceFile": "zepto/search.js",
27467
+ "navigateBefore": false
27468
+ },
26315
27469
  {
26316
27470
  "site": "zlibrary",
26317
27471
  "name": "info",