@opentabs-dev/opentabs-plugin-priceline 0.0.81 → 0.0.82

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.
@@ -0,0 +1,1132 @@
1
+ {
2
+ "sdkVersion": "0.0.81",
3
+ "iconSvg": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M6 3h7a5 5 0 0 1 0 10H9v8H6V3zm3 3v4h4a2 2 0 0 0 0-4H9z\" fill=\"#0068EF\"/> </svg>",
4
+ "iconInactiveSvg": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M6 3h7a5 5 0 0 1 0 10H9v8H6V3zm3 3v4h4a2 2 0 0 0 0-4H9z\" fill=\"#999999\"/> </svg>",
5
+ "iconDarkSvg": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M6 3h7a5 5 0 0 1 0 10H9v8H6V3zm3 3v4h4a2 2 0 0 0 0-4H9z\" fill=\"#0068EF\"/> </svg>",
6
+ "iconDarkInactiveSvg": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M6 3h7a5 5 0 0 1 0 10H9v8H6V3zm3 3v4h4a2 2 0 0 0 0-4H9z\" fill=\"#999999\"/> </svg>",
7
+ "tools": [
8
+ {
9
+ "name": "search_locations",
10
+ "displayName": "Search Locations",
11
+ "description": "Search for cities, hotels, airports, neighborhoods, and points of interest by keyword. Returns location IDs needed for hotel search. Use this to find a city ID before searching for hotels.",
12
+ "summary": "Search destinations by keyword",
13
+ "icon": "map-pin",
14
+ "group": "Search",
15
+ "input_schema": {
16
+ "type": "object",
17
+ "properties": {
18
+ "keyword": {
19
+ "type": "string",
20
+ "description": "Search keyword (city name, hotel name, airport, POI)"
21
+ }
22
+ },
23
+ "required": [
24
+ "keyword"
25
+ ],
26
+ "additionalProperties": false
27
+ },
28
+ "output_schema": {
29
+ "type": "object",
30
+ "properties": {
31
+ "locations": {
32
+ "type": "array",
33
+ "items": {
34
+ "type": "object",
35
+ "properties": {
36
+ "id": {
37
+ "type": "string",
38
+ "description": "Location ID (city ID, POI ID, etc.)"
39
+ },
40
+ "name": {
41
+ "type": "string",
42
+ "description": "Location name"
43
+ },
44
+ "type": {
45
+ "type": "string",
46
+ "description": "Location type (CITY, HOTEL, POI, AIRPORT, NEIGHBORHOOD, GENAI_POI)"
47
+ },
48
+ "city_name": {
49
+ "type": "string",
50
+ "description": "City name"
51
+ },
52
+ "state_code": {
53
+ "type": "string",
54
+ "description": "State/province code"
55
+ },
56
+ "country_code": {
57
+ "type": "string",
58
+ "description": "Country code (e.g., US)"
59
+ },
60
+ "country_name": {
61
+ "type": "string",
62
+ "description": "Country name"
63
+ },
64
+ "latitude": {
65
+ "type": "number",
66
+ "description": "Latitude"
67
+ },
68
+ "longitude": {
69
+ "type": "number",
70
+ "description": "Longitude"
71
+ },
72
+ "display_line_1": {
73
+ "type": "string",
74
+ "description": "Primary display text"
75
+ },
76
+ "display_line_2": {
77
+ "type": "string",
78
+ "description": "Secondary display text (region)"
79
+ }
80
+ },
81
+ "required": [
82
+ "id",
83
+ "name",
84
+ "type",
85
+ "city_name",
86
+ "state_code",
87
+ "country_code",
88
+ "country_name",
89
+ "latitude",
90
+ "longitude",
91
+ "display_line_1",
92
+ "display_line_2"
93
+ ],
94
+ "additionalProperties": false
95
+ },
96
+ "description": "Matching locations sorted by relevance"
97
+ }
98
+ },
99
+ "required": [
100
+ "locations"
101
+ ],
102
+ "additionalProperties": false
103
+ }
104
+ },
105
+ {
106
+ "name": "search_points_of_interest",
107
+ "displayName": "Search Points of Interest",
108
+ "description": "Search for top points of interest in a city. Returns landmarks, attractions, and popular areas near hotels. Useful for finding hotels near specific attractions.",
109
+ "summary": "Find top attractions in a city",
110
+ "icon": "landmark",
111
+ "group": "Search",
112
+ "input_schema": {
113
+ "type": "object",
114
+ "properties": {
115
+ "city_id": {
116
+ "description": "Priceline city ID to search within",
117
+ "type": "string"
118
+ },
119
+ "city_name": {
120
+ "description": "City name to search by (alternative to city_id)",
121
+ "type": "string"
122
+ },
123
+ "limit": {
124
+ "description": "Maximum number of results (default 10)",
125
+ "type": "integer",
126
+ "minimum": 1,
127
+ "maximum": 20
128
+ }
129
+ },
130
+ "additionalProperties": false
131
+ },
132
+ "output_schema": {
133
+ "type": "object",
134
+ "properties": {
135
+ "points_of_interest": {
136
+ "type": "array",
137
+ "items": {
138
+ "type": "object",
139
+ "properties": {
140
+ "id": {
141
+ "type": "string",
142
+ "description": "Location ID (city ID, POI ID, etc.)"
143
+ },
144
+ "name": {
145
+ "type": "string",
146
+ "description": "Location name"
147
+ },
148
+ "type": {
149
+ "type": "string",
150
+ "description": "Location type (CITY, HOTEL, POI, AIRPORT, NEIGHBORHOOD, GENAI_POI)"
151
+ },
152
+ "city_name": {
153
+ "type": "string",
154
+ "description": "City name"
155
+ },
156
+ "state_code": {
157
+ "type": "string",
158
+ "description": "State/province code"
159
+ },
160
+ "country_code": {
161
+ "type": "string",
162
+ "description": "Country code (e.g., US)"
163
+ },
164
+ "country_name": {
165
+ "type": "string",
166
+ "description": "Country name"
167
+ },
168
+ "latitude": {
169
+ "type": "number",
170
+ "description": "Latitude"
171
+ },
172
+ "longitude": {
173
+ "type": "number",
174
+ "description": "Longitude"
175
+ },
176
+ "display_line_1": {
177
+ "type": "string",
178
+ "description": "Primary display text"
179
+ },
180
+ "display_line_2": {
181
+ "type": "string",
182
+ "description": "Secondary display text (region)"
183
+ }
184
+ },
185
+ "required": [
186
+ "id",
187
+ "name",
188
+ "type",
189
+ "city_name",
190
+ "state_code",
191
+ "country_code",
192
+ "country_name",
193
+ "latitude",
194
+ "longitude",
195
+ "display_line_1",
196
+ "display_line_2"
197
+ ],
198
+ "additionalProperties": false
199
+ },
200
+ "description": "Points of interest"
201
+ }
202
+ },
203
+ "required": [
204
+ "points_of_interest"
205
+ ],
206
+ "additionalProperties": false
207
+ }
208
+ },
209
+ {
210
+ "name": "navigate_to_search",
211
+ "displayName": "Navigate to Hotel Search",
212
+ "description": "Navigate the browser to Priceline hotel search results for a given city and dates. This opens the search results page where the user can browse, filter, and select hotels.",
213
+ "summary": "Open hotel search results page",
214
+ "icon": "search",
215
+ "group": "Search",
216
+ "input_schema": {
217
+ "type": "object",
218
+ "properties": {
219
+ "location_id": {
220
+ "type": "string",
221
+ "description": "Priceline city or location ID"
222
+ },
223
+ "check_in": {
224
+ "type": "string",
225
+ "description": "Check-in date in YYYYMMDD format"
226
+ },
227
+ "check_out": {
228
+ "type": "string",
229
+ "description": "Check-out date in YYYYMMDD format"
230
+ },
231
+ "adults": {
232
+ "description": "Number of adults (default 2)",
233
+ "type": "integer",
234
+ "minimum": 1,
235
+ "maximum": 9007199254740991
236
+ },
237
+ "rooms": {
238
+ "description": "Number of rooms (default 1)",
239
+ "type": "integer",
240
+ "minimum": 1,
241
+ "maximum": 9007199254740991
242
+ }
243
+ },
244
+ "required": [
245
+ "location_id",
246
+ "check_in",
247
+ "check_out"
248
+ ],
249
+ "additionalProperties": false
250
+ },
251
+ "output_schema": {
252
+ "type": "object",
253
+ "properties": {
254
+ "url": {
255
+ "type": "string",
256
+ "description": "The search results page URL"
257
+ },
258
+ "success": {
259
+ "type": "boolean",
260
+ "description": "Whether navigation was initiated"
261
+ }
262
+ },
263
+ "required": [
264
+ "url",
265
+ "success"
266
+ ],
267
+ "additionalProperties": false
268
+ }
269
+ },
270
+ {
271
+ "name": "search_hotels",
272
+ "displayName": "Search Hotels",
273
+ "description": "Search for hotels in a city by location ID and travel dates. Returns hotel listings with pricing, ratings, amenities, and availability. Use search_locations first to find the city ID. Date format is YYYYMMDD (e.g., 20260315). Returns up to 30 results per page; use offset for pagination.",
274
+ "summary": "Search hotels by city and dates",
275
+ "icon": "building-2",
276
+ "group": "Hotels",
277
+ "input_schema": {
278
+ "type": "object",
279
+ "properties": {
280
+ "location_id": {
281
+ "type": "string",
282
+ "description": "City or location ID from search_locations"
283
+ },
284
+ "check_in": {
285
+ "type": "string",
286
+ "description": "Check-in date in YYYYMMDD format (e.g., 20260315)"
287
+ },
288
+ "check_out": {
289
+ "type": "string",
290
+ "description": "Check-out date in YYYYMMDD format (e.g., 20260316)"
291
+ },
292
+ "adults": {
293
+ "description": "Number of adults (default 2)",
294
+ "type": "integer",
295
+ "minimum": 1,
296
+ "maximum": 8
297
+ },
298
+ "rooms": {
299
+ "description": "Number of rooms (default 1)",
300
+ "type": "integer",
301
+ "minimum": 1,
302
+ "maximum": 8
303
+ },
304
+ "sort_by": {
305
+ "description": "Sort order: HDR=recommended, GSR=guest rating, PRC=price, SRN=star rating, DS=distance (default HDR)",
306
+ "type": "string",
307
+ "enum": [
308
+ "HDR",
309
+ "GSR",
310
+ "PRC",
311
+ "SRN",
312
+ "DS"
313
+ ]
314
+ },
315
+ "offset": {
316
+ "description": "Pagination offset (default 0, increments by 30)",
317
+ "type": "integer",
318
+ "minimum": 0,
319
+ "maximum": 9007199254740991
320
+ }
321
+ },
322
+ "required": [
323
+ "location_id",
324
+ "check_in",
325
+ "check_out"
326
+ ],
327
+ "additionalProperties": false
328
+ },
329
+ "output_schema": {
330
+ "type": "object",
331
+ "properties": {
332
+ "city": {
333
+ "type": "object",
334
+ "properties": {
335
+ "city_id": {
336
+ "type": "integer",
337
+ "minimum": -9007199254740991,
338
+ "maximum": 9007199254740991,
339
+ "description": "Priceline city ID"
340
+ },
341
+ "city_name": {
342
+ "type": "string",
343
+ "description": "City name"
344
+ },
345
+ "state_code": {
346
+ "type": "string",
347
+ "description": "State/province code"
348
+ },
349
+ "country_code": {
350
+ "type": "string",
351
+ "description": "Country code"
352
+ },
353
+ "display_name": {
354
+ "type": "string",
355
+ "description": "Full display name (e.g., South Lake Tahoe, CA)"
356
+ },
357
+ "latitude": {
358
+ "type": "number",
359
+ "description": "City center latitude"
360
+ },
361
+ "longitude": {
362
+ "type": "number",
363
+ "description": "City center longitude"
364
+ }
365
+ },
366
+ "required": [
367
+ "city_id",
368
+ "city_name",
369
+ "state_code",
370
+ "country_code",
371
+ "display_name",
372
+ "latitude",
373
+ "longitude"
374
+ ],
375
+ "additionalProperties": false,
376
+ "description": "City information for the search"
377
+ },
378
+ "hotels": {
379
+ "type": "array",
380
+ "items": {
381
+ "type": "object",
382
+ "properties": {
383
+ "hotel_id": {
384
+ "type": "string",
385
+ "description": "Priceline hotel ID"
386
+ },
387
+ "name": {
388
+ "type": "string",
389
+ "description": "Hotel name"
390
+ },
391
+ "star_rating": {
392
+ "type": "integer",
393
+ "minimum": -9007199254740991,
394
+ "maximum": 9007199254740991,
395
+ "description": "Star rating (1-5)"
396
+ },
397
+ "guest_rating": {
398
+ "type": "number",
399
+ "description": "Overall guest rating (0-10)"
400
+ },
401
+ "total_price": {
402
+ "type": "number",
403
+ "description": "Total price for the stay in USD"
404
+ },
405
+ "avg_nightly_rate": {
406
+ "type": "number",
407
+ "description": "Average nightly rate in USD"
408
+ },
409
+ "display_savings_pct": {
410
+ "type": "integer",
411
+ "minimum": -9007199254740991,
412
+ "maximum": 9007199254740991,
413
+ "description": "Savings percentage displayed"
414
+ },
415
+ "hotel_type": {
416
+ "type": "string",
417
+ "description": "Hotel type (RTL=retail, SOPQ=opaque deal)"
418
+ },
419
+ "brand_id": {
420
+ "type": "string",
421
+ "description": "Hotel brand ID"
422
+ },
423
+ "thumbnail_url": {
424
+ "type": "string",
425
+ "description": "Thumbnail image URL"
426
+ },
427
+ "description": {
428
+ "type": "string",
429
+ "description": "Short hotel description"
430
+ },
431
+ "free_cancellation": {
432
+ "type": "boolean",
433
+ "description": "Whether free cancellation is available"
434
+ },
435
+ "pay_later": {
436
+ "type": "boolean",
437
+ "description": "Whether pay-at-hotel is available"
438
+ },
439
+ "breakfast_included": {
440
+ "type": "boolean",
441
+ "description": "Whether breakfast is included"
442
+ },
443
+ "latitude": {
444
+ "type": "number",
445
+ "description": "Hotel latitude"
446
+ },
447
+ "longitude": {
448
+ "type": "number",
449
+ "description": "Hotel longitude"
450
+ },
451
+ "neighborhood": {
452
+ "type": "string",
453
+ "description": "Neighborhood or area name"
454
+ },
455
+ "amenities": {
456
+ "type": "array",
457
+ "items": {
458
+ "type": "string"
459
+ },
460
+ "description": "List of top amenity names (e.g., Free WiFi, Pool)"
461
+ }
462
+ },
463
+ "required": [
464
+ "hotel_id",
465
+ "name",
466
+ "star_rating",
467
+ "guest_rating",
468
+ "total_price",
469
+ "avg_nightly_rate",
470
+ "display_savings_pct",
471
+ "hotel_type",
472
+ "brand_id",
473
+ "thumbnail_url",
474
+ "description",
475
+ "free_cancellation",
476
+ "pay_later",
477
+ "breakfast_included",
478
+ "latitude",
479
+ "longitude",
480
+ "neighborhood",
481
+ "amenities"
482
+ ],
483
+ "additionalProperties": false
484
+ },
485
+ "description": "Hotel listings"
486
+ },
487
+ "total_count": {
488
+ "type": "integer",
489
+ "minimum": -9007199254740991,
490
+ "maximum": 9007199254740991,
491
+ "description": "Total number of results"
492
+ }
493
+ },
494
+ "required": [
495
+ "city",
496
+ "hotels",
497
+ "total_count"
498
+ ],
499
+ "additionalProperties": false
500
+ }
501
+ },
502
+ {
503
+ "name": "get_hotel_descriptions",
504
+ "displayName": "Get Hotel Descriptions",
505
+ "description": "Get AI-generated short descriptions for a batch of hotels by their IDs. Useful for enriching hotel search results with descriptive text. Accepts up to 30 hotel IDs.",
506
+ "summary": "Get short descriptions for hotels",
507
+ "icon": "file-text",
508
+ "group": "Hotels",
509
+ "input_schema": {
510
+ "type": "object",
511
+ "properties": {
512
+ "hotel_ids": {
513
+ "type": "array",
514
+ "items": {
515
+ "type": "string"
516
+ },
517
+ "description": "Array of Priceline hotel IDs (max 30)"
518
+ }
519
+ },
520
+ "required": [
521
+ "hotel_ids"
522
+ ],
523
+ "additionalProperties": false
524
+ },
525
+ "output_schema": {
526
+ "type": "object",
527
+ "properties": {
528
+ "descriptions": {
529
+ "type": "array",
530
+ "items": {
531
+ "type": "object",
532
+ "properties": {
533
+ "hotel_id": {
534
+ "type": "string",
535
+ "description": "Hotel ID"
536
+ },
537
+ "short_description": {
538
+ "type": "string",
539
+ "description": "AI-generated short description"
540
+ }
541
+ },
542
+ "required": [
543
+ "hotel_id",
544
+ "short_description"
545
+ ],
546
+ "additionalProperties": false
547
+ },
548
+ "description": "Hotel descriptions"
549
+ }
550
+ },
551
+ "required": [
552
+ "descriptions"
553
+ ],
554
+ "additionalProperties": false
555
+ }
556
+ },
557
+ {
558
+ "name": "get_hotel_filters",
559
+ "displayName": "Get Hotel Filters",
560
+ "description": "Get available dynamic filter options for a hotel search. Returns filter categories (amenities, price ranges, deal types, rate options, zones) with their selectable values. Use these filters to understand what refinements are available for a specific city and date combination.",
561
+ "summary": "Get available hotel search filters",
562
+ "icon": "sliders-horizontal",
563
+ "group": "Hotels",
564
+ "input_schema": {
565
+ "type": "object",
566
+ "properties": {
567
+ "city_id": {
568
+ "type": "string",
569
+ "description": "Priceline city ID"
570
+ },
571
+ "check_in": {
572
+ "type": "string",
573
+ "description": "Check-in date in YYYYMMDD format"
574
+ },
575
+ "check_out": {
576
+ "type": "string",
577
+ "description": "Check-out date in YYYYMMDD format"
578
+ },
579
+ "adults": {
580
+ "description": "Number of adults (default 2)",
581
+ "type": "integer",
582
+ "minimum": 1,
583
+ "maximum": 9007199254740991
584
+ }
585
+ },
586
+ "required": [
587
+ "city_id",
588
+ "check_in",
589
+ "check_out"
590
+ ],
591
+ "additionalProperties": false
592
+ },
593
+ "output_schema": {
594
+ "type": "object",
595
+ "properties": {
596
+ "filters": {
597
+ "type": "array",
598
+ "items": {
599
+ "type": "object",
600
+ "properties": {
601
+ "type": {
602
+ "type": "string",
603
+ "description": "Filter category (AMENITY, PRICE, ZONE, DEAL_TYPE, RATE_OPTIONS, etc.)"
604
+ },
605
+ "values": {
606
+ "type": "array",
607
+ "items": {
608
+ "type": "object",
609
+ "properties": {
610
+ "key": {
611
+ "type": "string",
612
+ "description": "Machine-readable filter key"
613
+ },
614
+ "display": {
615
+ "type": "string",
616
+ "description": "Human-readable filter label"
617
+ }
618
+ },
619
+ "required": [
620
+ "key",
621
+ "display"
622
+ ],
623
+ "additionalProperties": false
624
+ },
625
+ "description": "Available filter values"
626
+ }
627
+ },
628
+ "required": [
629
+ "type",
630
+ "values"
631
+ ],
632
+ "additionalProperties": false
633
+ },
634
+ "description": "Available filter categories and values"
635
+ }
636
+ },
637
+ "required": [
638
+ "filters"
639
+ ],
640
+ "additionalProperties": false
641
+ }
642
+ },
643
+ {
644
+ "name": "get_merchandising_badges",
645
+ "displayName": "Get Merchandising Badges",
646
+ "description": "Get merchandising badges (top-rated, top-booked) for a batch of hotels. Useful for highlighting popular or highly rated hotels in search results.",
647
+ "summary": "Get top-rated/top-booked badges for hotels",
648
+ "icon": "badge",
649
+ "group": "Hotels",
650
+ "input_schema": {
651
+ "type": "object",
652
+ "properties": {
653
+ "hotel_ids": {
654
+ "type": "array",
655
+ "items": {
656
+ "type": "string"
657
+ },
658
+ "description": "Array of Priceline hotel IDs"
659
+ }
660
+ },
661
+ "required": [
662
+ "hotel_ids"
663
+ ],
664
+ "additionalProperties": false
665
+ },
666
+ "output_schema": {
667
+ "type": "object",
668
+ "properties": {
669
+ "badges": {
670
+ "type": "array",
671
+ "items": {
672
+ "type": "object",
673
+ "properties": {
674
+ "hotel_id": {
675
+ "type": "string",
676
+ "description": "Hotel ID"
677
+ },
678
+ "is_top_rated": {
679
+ "type": "boolean",
680
+ "description": "Whether hotel is top-rated"
681
+ },
682
+ "is_top_booked": {
683
+ "type": "boolean",
684
+ "description": "Whether hotel is top-booked"
685
+ }
686
+ },
687
+ "required": [
688
+ "hotel_id",
689
+ "is_top_rated",
690
+ "is_top_booked"
691
+ ],
692
+ "additionalProperties": false
693
+ },
694
+ "description": "Merchandising badges per hotel"
695
+ }
696
+ },
697
+ "required": [
698
+ "badges"
699
+ ],
700
+ "additionalProperties": false
701
+ }
702
+ },
703
+ {
704
+ "name": "get_price_guidance",
705
+ "displayName": "Get Price Guidance",
706
+ "description": "Get hotel price trends for a city over a date range. Shows min, max, and average prices by star rating and product type for each date. Useful for finding the cheapest travel dates. Date format is YYYYMMDD.",
707
+ "summary": "Get hotel price trends for a city",
708
+ "icon": "trending-down",
709
+ "group": "Hotels",
710
+ "input_schema": {
711
+ "type": "object",
712
+ "properties": {
713
+ "city_id": {
714
+ "type": "integer",
715
+ "minimum": -9007199254740991,
716
+ "maximum": 9007199254740991,
717
+ "description": "Priceline city ID (numeric, from search_locations)"
718
+ },
719
+ "start_date": {
720
+ "type": "string",
721
+ "description": "Start of date range in YYYYMMDD format"
722
+ },
723
+ "end_date": {
724
+ "type": "string",
725
+ "description": "End of date range in YYYYMMDD format"
726
+ },
727
+ "star_rating": {
728
+ "description": "Filter by star rating (default returns all star ratings)",
729
+ "type": "string",
730
+ "enum": [
731
+ "All_Star",
732
+ "Star_2",
733
+ "Star_3",
734
+ "Star_4",
735
+ "Star_5"
736
+ ]
737
+ }
738
+ },
739
+ "required": [
740
+ "city_id",
741
+ "start_date",
742
+ "end_date"
743
+ ],
744
+ "additionalProperties": false
745
+ },
746
+ "output_schema": {
747
+ "type": "object",
748
+ "properties": {
749
+ "prices": {
750
+ "type": "array",
751
+ "items": {
752
+ "type": "object",
753
+ "properties": {
754
+ "date": {
755
+ "type": "string",
756
+ "description": "Date in YYYYMMDD format"
757
+ },
758
+ "min_price": {
759
+ "type": "integer",
760
+ "minimum": -9007199254740991,
761
+ "maximum": 9007199254740991,
762
+ "description": "Minimum hotel price for this date"
763
+ },
764
+ "max_price": {
765
+ "type": "integer",
766
+ "minimum": -9007199254740991,
767
+ "maximum": 9007199254740991,
768
+ "description": "Maximum hotel price for this date"
769
+ },
770
+ "avg_price": {
771
+ "type": "integer",
772
+ "minimum": -9007199254740991,
773
+ "maximum": 9007199254740991,
774
+ "description": "Average hotel price for this date"
775
+ },
776
+ "star_rating": {
777
+ "type": "string",
778
+ "description": "Star rating filter (All_Star, Star_2, Star_3, Star_4, Star_5)"
779
+ },
780
+ "product": {
781
+ "type": "string",
782
+ "description": "Product type (RTL=retail, SOPQ=opaque)"
783
+ }
784
+ },
785
+ "required": [
786
+ "date",
787
+ "min_price",
788
+ "max_price",
789
+ "avg_price",
790
+ "star_rating",
791
+ "product"
792
+ ],
793
+ "additionalProperties": false
794
+ },
795
+ "description": "Price guidance entries per date"
796
+ }
797
+ },
798
+ "required": [
799
+ "prices"
800
+ ],
801
+ "additionalProperties": false
802
+ }
803
+ },
804
+ {
805
+ "name": "navigate_to_hotel",
806
+ "displayName": "Navigate to Hotel",
807
+ "description": "Navigate the browser to a specific hotel's detail page on Priceline. This opens the hotel page where the user can view full details, room options, and book. Requires a hotel ID from search_hotels results and the same date/occupancy parameters.",
808
+ "summary": "Open a hotel detail page",
809
+ "icon": "external-link",
810
+ "group": "Hotels",
811
+ "input_schema": {
812
+ "type": "object",
813
+ "properties": {
814
+ "hotel_id": {
815
+ "type": "string",
816
+ "description": "Priceline hotel ID from search results"
817
+ },
818
+ "check_in": {
819
+ "type": "string",
820
+ "description": "Check-in date in YYYYMMDD format"
821
+ },
822
+ "check_out": {
823
+ "type": "string",
824
+ "description": "Check-out date in YYYYMMDD format"
825
+ },
826
+ "adults": {
827
+ "description": "Number of adults (default 2)",
828
+ "type": "integer",
829
+ "minimum": 1,
830
+ "maximum": 9007199254740991
831
+ },
832
+ "rooms": {
833
+ "description": "Number of rooms (default 1)",
834
+ "type": "integer",
835
+ "minimum": 1,
836
+ "maximum": 9007199254740991
837
+ }
838
+ },
839
+ "required": [
840
+ "hotel_id",
841
+ "check_in",
842
+ "check_out"
843
+ ],
844
+ "additionalProperties": false
845
+ },
846
+ "output_schema": {
847
+ "type": "object",
848
+ "properties": {
849
+ "url": {
850
+ "type": "string",
851
+ "description": "The hotel detail page URL"
852
+ },
853
+ "success": {
854
+ "type": "boolean",
855
+ "description": "Whether navigation was initiated"
856
+ }
857
+ },
858
+ "required": [
859
+ "url",
860
+ "success"
861
+ ],
862
+ "additionalProperties": false
863
+ }
864
+ },
865
+ {
866
+ "name": "get_customer_profile",
867
+ "displayName": "Get Customer Profile",
868
+ "description": "Get the authenticated user's Priceline customer profile including loyalty tier and audience segments.",
869
+ "summary": "Get your Priceline profile",
870
+ "icon": "user",
871
+ "group": "Account",
872
+ "input_schema": {
873
+ "type": "object",
874
+ "properties": {},
875
+ "additionalProperties": false
876
+ },
877
+ "output_schema": {
878
+ "type": "object",
879
+ "properties": {
880
+ "email": {
881
+ "type": "string",
882
+ "description": "Customer email address"
883
+ },
884
+ "profile": {
885
+ "type": "object",
886
+ "properties": {
887
+ "loyalty_tier": {
888
+ "type": "string",
889
+ "description": "VIP loyalty tier label (e.g., BLUE, GOLD)"
890
+ },
891
+ "audiences": {
892
+ "type": "array",
893
+ "items": {
894
+ "type": "object",
895
+ "properties": {
896
+ "id": {
897
+ "type": "string",
898
+ "description": "Audience ID"
899
+ },
900
+ "name": {
901
+ "type": "string",
902
+ "description": "Audience name"
903
+ }
904
+ },
905
+ "required": [
906
+ "id",
907
+ "name"
908
+ ],
909
+ "additionalProperties": false
910
+ },
911
+ "description": "Customer audience segments"
912
+ }
913
+ },
914
+ "required": [
915
+ "loyalty_tier",
916
+ "audiences"
917
+ ],
918
+ "additionalProperties": false,
919
+ "description": "Customer profile data"
920
+ }
921
+ },
922
+ "required": [
923
+ "email",
924
+ "profile"
925
+ ],
926
+ "additionalProperties": false
927
+ }
928
+ },
929
+ {
930
+ "name": "get_customer_coupons",
931
+ "displayName": "Get Customer Coupons",
932
+ "description": "Get available coupons for the authenticated user. Coupons can be filtered by product type (STAY, FLY, DRIVE). Returns coupon codes, descriptions, expiration dates, and discount amounts.",
933
+ "summary": "Get your available coupons",
934
+ "icon": "ticket",
935
+ "group": "Account",
936
+ "input_schema": {
937
+ "type": "object",
938
+ "properties": {
939
+ "product": {
940
+ "description": "Product type to filter coupons (default STAY)",
941
+ "type": "string",
942
+ "enum": [
943
+ "STAY",
944
+ "FLY",
945
+ "DRIVE"
946
+ ]
947
+ }
948
+ },
949
+ "additionalProperties": false
950
+ },
951
+ "output_schema": {
952
+ "type": "object",
953
+ "properties": {
954
+ "coupons": {
955
+ "type": "array",
956
+ "items": {
957
+ "type": "object",
958
+ "properties": {
959
+ "coupon_code": {
960
+ "type": "string",
961
+ "description": "Coupon code"
962
+ },
963
+ "description": {
964
+ "type": "string",
965
+ "description": "Coupon description"
966
+ },
967
+ "expiration_date": {
968
+ "type": "string",
969
+ "description": "Expiration date"
970
+ },
971
+ "min_spend": {
972
+ "type": "number",
973
+ "description": "Minimum spend amount"
974
+ },
975
+ "discount": {
976
+ "type": "number",
977
+ "description": "Discount amount"
978
+ },
979
+ "discount_type": {
980
+ "type": "string",
981
+ "description": "Discount type (PERCENT, FIXED)"
982
+ }
983
+ },
984
+ "required": [
985
+ "coupon_code",
986
+ "description",
987
+ "expiration_date",
988
+ "min_spend",
989
+ "discount",
990
+ "discount_type"
991
+ ],
992
+ "additionalProperties": false
993
+ },
994
+ "description": "Available coupons"
995
+ },
996
+ "message": {
997
+ "type": "string",
998
+ "description": "Status message (e.g., no coupons found)"
999
+ }
1000
+ },
1001
+ "required": [
1002
+ "coupons",
1003
+ "message"
1004
+ ],
1005
+ "additionalProperties": false
1006
+ }
1007
+ },
1008
+ {
1009
+ "name": "get_favorite_hotels",
1010
+ "displayName": "Get Favorite Hotels",
1011
+ "description": "Get the user's favorite (saved) hotels in a specific city. Returns hotel IDs and names that the user has previously marked as favorites.",
1012
+ "summary": "Get your saved hotels in a city",
1013
+ "icon": "heart",
1014
+ "group": "Account",
1015
+ "input_schema": {
1016
+ "type": "object",
1017
+ "properties": {
1018
+ "city_id": {
1019
+ "type": "integer",
1020
+ "minimum": -9007199254740991,
1021
+ "maximum": 9007199254740991,
1022
+ "description": "Priceline city ID (numeric)"
1023
+ }
1024
+ },
1025
+ "required": [
1026
+ "city_id"
1027
+ ],
1028
+ "additionalProperties": false
1029
+ },
1030
+ "output_schema": {
1031
+ "type": "object",
1032
+ "properties": {
1033
+ "favorites": {
1034
+ "type": "array",
1035
+ "items": {
1036
+ "type": "object",
1037
+ "properties": {
1038
+ "hotel_id": {
1039
+ "type": "string",
1040
+ "description": "Hotel ID"
1041
+ },
1042
+ "hotel_name": {
1043
+ "type": "string",
1044
+ "description": "Hotel name"
1045
+ }
1046
+ },
1047
+ "required": [
1048
+ "hotel_id",
1049
+ "hotel_name"
1050
+ ],
1051
+ "additionalProperties": false
1052
+ },
1053
+ "description": "Favorite hotels in the city"
1054
+ }
1055
+ },
1056
+ "required": [
1057
+ "favorites"
1058
+ ],
1059
+ "additionalProperties": false
1060
+ }
1061
+ },
1062
+ {
1063
+ "name": "get_abandoned_items",
1064
+ "displayName": "Get Abandoned Items",
1065
+ "description": "Get items the user previously viewed or added to cart but did not complete booking. Useful for resuming interrupted booking flows.",
1066
+ "summary": "Get your abandoned cart items",
1067
+ "icon": "shopping-cart",
1068
+ "group": "Account",
1069
+ "input_schema": {
1070
+ "type": "object",
1071
+ "properties": {},
1072
+ "additionalProperties": false
1073
+ },
1074
+ "output_schema": {
1075
+ "type": "object",
1076
+ "properties": {
1077
+ "items": {
1078
+ "type": "array",
1079
+ "items": {
1080
+ "type": "object",
1081
+ "properties": {
1082
+ "type": {
1083
+ "type": "string",
1084
+ "description": "Item type (HOTEL, FLIGHT, CAR)"
1085
+ },
1086
+ "hotel_name": {
1087
+ "type": "string",
1088
+ "description": "Hotel name (if hotel)"
1089
+ },
1090
+ "hotel_id": {
1091
+ "type": "string",
1092
+ "description": "Hotel ID (if hotel)"
1093
+ },
1094
+ "city_name": {
1095
+ "type": "string",
1096
+ "description": "City name"
1097
+ },
1098
+ "check_in": {
1099
+ "type": "string",
1100
+ "description": "Check-in date"
1101
+ },
1102
+ "check_out": {
1103
+ "type": "string",
1104
+ "description": "Check-out date"
1105
+ },
1106
+ "price": {
1107
+ "type": "number",
1108
+ "description": "Price at time of abandonment"
1109
+ }
1110
+ },
1111
+ "required": [
1112
+ "type",
1113
+ "hotel_name",
1114
+ "hotel_id",
1115
+ "city_name",
1116
+ "check_in",
1117
+ "check_out",
1118
+ "price"
1119
+ ],
1120
+ "additionalProperties": false
1121
+ },
1122
+ "description": "Abandoned booking items"
1123
+ }
1124
+ },
1125
+ "required": [
1126
+ "items"
1127
+ ],
1128
+ "additionalProperties": false
1129
+ }
1130
+ }
1131
+ ]
1132
+ }