@bowmark/web 1.12.3 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated/library.d.ts +3232 -76
- package/dist/generated/validators.js +2658 -76
- package/package.json +1 -1
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
// rather than imported. An `import` or `export` at the top level of this file would
|
|
6
6
|
// turn it into a module and every declaration below would stop being global.
|
|
7
7
|
//
|
|
8
|
-
// Manifest version:
|
|
9
|
-
//
|
|
8
|
+
// Manifest version: faf4c09938555367990a9c8f7a153fdf8acc74126cd25dc3d424ccd9eb0d1077
|
|
9
|
+
// 42 capabilities, 326 providers, 823 typed functions, 20 refused.
|
|
10
10
|
// 51,715 family members, sharing 2 interface(s) — declared once and pointed at, never repeated per member.
|
|
11
11
|
//
|
|
12
12
|
// REFUSED — these functions are real and callable, and their declared arguments
|
|
@@ -551,6 +551,45 @@ type CallOptions = {
|
|
|
551
551
|
}
|
|
552
552
|
}
|
|
553
553
|
|
|
554
|
+
declare namespace BowmarkCapability_entertainment_merch {
|
|
555
|
+
// ── Entertainment merch (licensed, multi-store) — the unit's own declarations, verbatim ──
|
|
556
|
+
type EntertainmentMerchOffer = {
|
|
557
|
+
store: "hottopic" | "boxlunch" // which retailer this offer is from
|
|
558
|
+
title: string // the product as the store lists it
|
|
559
|
+
price: number | null // USD; null if unpriced
|
|
560
|
+
url: string | null // product page for this SKU
|
|
561
|
+
image: string | null
|
|
562
|
+
color: string | null
|
|
563
|
+
size: string | null
|
|
564
|
+
availability: string | null // the store's own schema.org availability wording
|
|
565
|
+
}
|
|
566
|
+
type EntertainmentMerchSearchResult = {
|
|
567
|
+
results: EntertainmentMerchOffer[] // one row per SKU, across all stores
|
|
568
|
+
warnings: string[] // always present; names any store that did not answer
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
type CallOptions = {
|
|
572
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
573
|
+
// A provider slower than this is DROPPED from the results and
|
|
574
|
+
// NAMED in warnings — never silently absent
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
/**
|
|
578
|
+
* Licensed pop-culture and entertainment merch — a franchise, character or show, searched
|
|
579
|
+
* across Hot Topic and BoxLunch in parallel and returned as one list of priced SKUs, so an
|
|
580
|
+
* agent can answer 'where can I buy merch for X' without knowing which licensed-merch retailer
|
|
581
|
+
* carries it.
|
|
582
|
+
*/
|
|
583
|
+
interface Unit {
|
|
584
|
+
/**
|
|
585
|
+
* Searches Hot Topic and BoxLunch in parallel for a franchise/character/show and returns every
|
|
586
|
+
* matching SKU across both stores, each tagged with which store it's from. `warnings` names
|
|
587
|
+
* any store that did not answer.
|
|
588
|
+
*/
|
|
589
|
+
search(args: { query: string }): Promise<EntertainmentMerchSearchResult>;
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
|
|
554
593
|
declare namespace BowmarkCapability_flights {
|
|
555
594
|
// ── Flights — the unit's own declarations, verbatim ──
|
|
556
595
|
type FlightQuery = {
|
|
@@ -1631,6 +1670,52 @@ type ProductResult = {
|
|
|
1631
1670
|
}
|
|
1632
1671
|
}
|
|
1633
1672
|
|
|
1673
|
+
declare namespace BowmarkCapability_phone_price {
|
|
1674
|
+
// ── Phone price comparison (carriers) — the unit's own declarations, verbatim ──
|
|
1675
|
+
type PhonePriceOffer = {
|
|
1676
|
+
carrier: string // which carrier this offer is from
|
|
1677
|
+
listPriceUsd: number | null // full price of the device / matched storage variant
|
|
1678
|
+
monthlyPriceUsd: number | null // financed monthly payment
|
|
1679
|
+
financingTermMonths: number | null // months monthlyPriceUsd is amortised over
|
|
1680
|
+
tradeInCreditUsd: number | null // best credit for tradeInModel; always null on
|
|
1681
|
+
// a visible row (no per-device figure published)
|
|
1682
|
+
sourceUrl: string // the page this price was read from
|
|
1683
|
+
}
|
|
1684
|
+
type PhonePriceCompareResult = {
|
|
1685
|
+
offers: PhonePriceOffer[] // one row per carrier that answered, unsorted — read
|
|
1686
|
+
// listPriceUsd to rank
|
|
1687
|
+
warnings: string[] // always present; names a carrier that did not answer.
|
|
1688
|
+
// A carrier named here priced NOTHING — read this before
|
|
1689
|
+
// concluding it doesn't sell the phone
|
|
1690
|
+
}
|
|
1691
|
+
|
|
1692
|
+
type CallOptions = {
|
|
1693
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
1694
|
+
// A provider slower than this is DROPPED from the results and
|
|
1695
|
+
// NAMED in warnings — never silently absent
|
|
1696
|
+
}
|
|
1697
|
+
|
|
1698
|
+
/**
|
|
1699
|
+
* What a phone actually costs right now, across carriers — T-Mobile's live device-page pricing
|
|
1700
|
+
* and financing plus every promotion's per-trade-in-device credit, and Visible's catalogue
|
|
1701
|
+
* price and Affirm financing for a matched storage variant, merged into one price-sorted list.
|
|
1702
|
+
* Built for a chip-cost price hike that repriced Android flagships across carriers at once, so
|
|
1703
|
+
* a shopper can compare instead of reading one carrier's page.
|
|
1704
|
+
*/
|
|
1705
|
+
interface Unit {
|
|
1706
|
+
/**
|
|
1707
|
+
* Prices one phone across T-Mobile and Visible in parallel and returns a price-sorted list.
|
|
1708
|
+
* `model` is matched against Visible's catalogue and used to reconstruct T-Mobile's device
|
|
1709
|
+
* path (there is no cross-carrier search endpoint) — a model neither matcher can place drops
|
|
1710
|
+
* that carrier with a `warnings` entry naming why, never a silent wrong phone. `tradeInModel`
|
|
1711
|
+
* resolves T-Mobile's best matching promotion credit; Visible never returns a per-device
|
|
1712
|
+
* credit figure. `storageGb` picks Visible's matching variant (T-Mobile's pricing call carries
|
|
1713
|
+
* no storage variants).
|
|
1714
|
+
*/
|
|
1715
|
+
compare(args: { model: string; storageGb?: number; tradeInModel?: string; tmobileDevicePath?: string }): Promise<PhonePriceCompareResult>;
|
|
1716
|
+
}
|
|
1717
|
+
}
|
|
1718
|
+
|
|
1634
1719
|
declare namespace BowmarkCapability_phone_trade_in {
|
|
1635
1720
|
// ── Phone trade-in value — the unit's own declarations, verbatim ──
|
|
1636
1721
|
// The capability's own condition vocabulary — four tiers every buyback
|
|
@@ -1962,10 +2047,16 @@ interface BasketItemMatch {
|
|
|
1962
2047
|
}
|
|
1963
2048
|
interface RetailerBasket {
|
|
1964
2049
|
total: { amount: number; currency: string } | null // sums matched only — a partial
|
|
1965
|
-
// sum whenever
|
|
1966
|
-
// non-empty
|
|
2050
|
+
// sum whenever unpriced, unmatched
|
|
2051
|
+
// or incomplete is non-empty
|
|
1967
2052
|
matched: BasketItemMatch[]
|
|
1968
|
-
unavailable: string[] // this retailer ANSWERED
|
|
2053
|
+
unavailable: string[] // this retailer ANSWERED with no in-stock row at all —
|
|
2054
|
+
// a real stockout
|
|
2055
|
+
unmatched: string[] // this retailer answered with in-stock rows, none identifiable
|
|
2056
|
+
// as the thing asked for — NOT out of stock; ask more
|
|
2057
|
+
// specifically, or read their search page. Not in total
|
|
2058
|
+
unpriced: string[] // this retailer HAS it in stock and rendered no price — NOT
|
|
2059
|
+
// out of stock; go read the price on the page. Not in total
|
|
1969
2060
|
incomplete: string[] // this retailer's search never answered — NOT out of stock,
|
|
1970
2061
|
// nothing was learned; retry with fewer items or more time
|
|
1971
2062
|
}
|
|
@@ -1982,19 +2073,24 @@ type CallOptions = {
|
|
|
1982
2073
|
/**
|
|
1983
2074
|
* Given a list of item queries (a school supply list), fans out to Target and Walmart search,
|
|
1984
2075
|
* picks the cheapest in-stock match per item per retailer, and returns each retailer's basket
|
|
1985
|
-
* total plus which items neither retailer has in stock right now
|
|
2076
|
+
* total plus which items neither retailer has in stock right now — kept apart from the items a
|
|
2077
|
+
* retailer stocks but would not price, and from the searches that never answered.
|
|
1986
2078
|
*/
|
|
1987
2079
|
interface Unit {
|
|
1988
2080
|
/**
|
|
1989
|
-
* Prices a multi-item shopping list at Target and Walmart, one basket total per retailer.
|
|
1990
|
-
*
|
|
1991
|
-
*
|
|
1992
|
-
*
|
|
1993
|
-
*
|
|
1994
|
-
*
|
|
1995
|
-
*
|
|
1996
|
-
*
|
|
1997
|
-
* `
|
|
2081
|
+
* Prices a multi-item shopping list at Target and Walmart, one basket total per retailer. ONLY
|
|
2082
|
+
* `unavailable` is a stockout: the retailer answered and had nothing in stock at all. The
|
|
2083
|
+
* other three are not, and must never be reported as one — an item the retailer HAS in stock
|
|
2084
|
+
* but rendered no price for is in `unpriced` (the price is on its product page, not the search
|
|
2085
|
+
* tile); an item it answered about with in-stock rows none of which could be identified as the
|
|
2086
|
+
* thing asked for is in `unmatched` (a limit of the matching, not of the shop — ask again in
|
|
2087
|
+
* the wording a listing would use); an item whose search never answered at all is in
|
|
2088
|
+
* `incomplete` (nothing was learned). Each of those three makes the retailer's total a partial
|
|
2089
|
+
* sum, and every one of those items is also named in `warnings`. Never throws on one retailer
|
|
2090
|
+
* being unreachable — that retailer's basket is dropped and named in `warnings` instead;
|
|
2091
|
+
* throws only when BOTH retailers failed on every item. Walmart drives a real browser per item
|
|
2092
|
+
* and every item is searched at once, so a long list is what costs time: price fewer items per
|
|
2093
|
+
* call before reaching for a larger `timeoutMs`.
|
|
1998
2094
|
*/
|
|
1999
2095
|
priceList(args: { items: string[] }): Promise<SchoolShoppingBasket>;
|
|
2000
2096
|
}
|
|
@@ -2424,6 +2520,35 @@ interface ForecastResult {
|
|
|
2424
2520
|
}
|
|
2425
2521
|
}
|
|
2426
2522
|
|
|
2523
|
+
declare namespace BowmarkCapability_wireless {
|
|
2524
|
+
// ── wireless plan all-in price — the unit's own declarations, verbatim ──
|
|
2525
|
+
interface CarrierAllInPrice {
|
|
2526
|
+
carrier: string;
|
|
2527
|
+
advertisedPricePerLineUsd: number;
|
|
2528
|
+
allInMonthlyTotalUsd: number;
|
|
2529
|
+
}
|
|
2530
|
+
interface WirelessAllInPriceResult {
|
|
2531
|
+
carriers: CarrierAllInPrice[];
|
|
2532
|
+
warnings: string[];
|
|
2533
|
+
}
|
|
2534
|
+
|
|
2535
|
+
/**
|
|
2536
|
+
* Fans a plan/line configuration out across carrier plan-builder flows and returns each
|
|
2537
|
+
* carrier's advertised price next to its real all-in monthly total (activation fee, per-line
|
|
2538
|
+
* surcharges). Not yet implemented — verizon.getPlanTotal and att.getPlanTotal are both
|
|
2539
|
+
* provider-side stubs; see packages/providers/{verizon,att}/manifest.json.
|
|
2540
|
+
*/
|
|
2541
|
+
interface Unit {
|
|
2542
|
+
/**
|
|
2543
|
+
* For a given line count, fans out across every carrier this capability declares and returns
|
|
2544
|
+
* each one's advertised per-line price next to its real all-in monthly total. Not yet
|
|
2545
|
+
* implemented — blocked on verizon.getPlanTotal and att.getPlanTotal, both provider-side stubs
|
|
2546
|
+
* today.
|
|
2547
|
+
*/
|
|
2548
|
+
compareAllInPrice(arg: { lineCount: number; addOns?: string[] }): Promise<WirelessAllInPriceResult>;
|
|
2549
|
+
}
|
|
2550
|
+
}
|
|
2551
|
+
|
|
2427
2552
|
declare namespace BowmarkCapability_yoga_outfit_shopping {
|
|
2428
2553
|
// ── Coordinated yoga outfit shopping — the unit's own declarations, verbatim ──
|
|
2429
2554
|
interface YogaOutfitItem {
|
|
@@ -2979,6 +3104,89 @@ interface abercrombieStockQuery {
|
|
|
2979
3104
|
}
|
|
2980
3105
|
}
|
|
2981
3106
|
|
|
3107
|
+
declare namespace BowmarkProvider_achosahw {
|
|
3108
|
+
// ── Achosa Home Warranty — the unit's own declarations, verbatim ──
|
|
3109
|
+
// Achosa's OWN shapes — not a capability contract.
|
|
3110
|
+
|
|
3111
|
+
interface AchosahwStateEntry { name: string; categoryId: number }
|
|
3112
|
+
interface AchosahwStateList { states: AchosahwStateEntry[] }
|
|
3113
|
+
|
|
3114
|
+
interface AchosahwQuote {
|
|
3115
|
+
state: string;
|
|
3116
|
+
coverageLevel: string; // "Core" | "Prime" | "Prime Plus" | "Pro"
|
|
3117
|
+
term: string; // "Monthly" | "Yearly"
|
|
3118
|
+
propertyType: string; // "Single Family Home" | "Townhome/Condo" | "Duplex" | "Triplex" | "Fourplex"
|
|
3119
|
+
planName: string | null; // the site's own SKU display name for this combination
|
|
3120
|
+
price: number; // 0 when isAvailable is false
|
|
3121
|
+
isAvailable: boolean; // false = this state does not sell this exact combination
|
|
3122
|
+
configureUrl: string; // the live configurator page, pre-scoped to this state
|
|
3123
|
+
}
|
|
3124
|
+
|
|
3125
|
+
interface AchosahwQuoteArgs {
|
|
3126
|
+
state: string; // required, e.g. "Texas" — see listStates()
|
|
3127
|
+
coverageLevel?: string; // default "Core"
|
|
3128
|
+
term?: string; // default "Monthly"
|
|
3129
|
+
propertyType?: string; // default "Single Family Home"
|
|
3130
|
+
}
|
|
3131
|
+
|
|
3132
|
+
/**
|
|
3133
|
+
* Achosa Home Warranty plan configurator — real per-state home-warranty pricing across
|
|
3134
|
+
* coverage tier, billing term and property type, read from the site's own live pricing
|
|
3135
|
+
* endpoint rather than a rate card.
|
|
3136
|
+
*/
|
|
3137
|
+
interface Unit {
|
|
3138
|
+
/**
|
|
3139
|
+
* Reads Achosa's own /shop state selector and returns every US state Achosa currently sells a
|
|
3140
|
+
* home-warranty plan in, each with the site's own numeric category id used to scope getQuote's
|
|
3141
|
+
* configurator URL.
|
|
3142
|
+
*/
|
|
3143
|
+
listStates(): Promise<AchosahwStateList>;
|
|
3144
|
+
|
|
3145
|
+
/**
|
|
3146
|
+
* Prices one real, purchasable Homeowner's plan combination by calling the exact pricing
|
|
3147
|
+
* endpoint the site's own configurator calls. `state` is required (call listStates() for the
|
|
3148
|
+
* current list); `coverageLevel`, `term` and `propertyType` default to Core / Monthly / Single
|
|
3149
|
+
* Family Home. A combination the state does not sell (e.g. a coverage tier not offered in that
|
|
3150
|
+
* state's price region) returns `isAvailable: false` and `price: 0` rather than throwing,
|
|
3151
|
+
* matching the site's own "Not Available For Sale" state. THROWS on an unknown state or an
|
|
3152
|
+
* unrecognized coverageLevel/term/propertyType value, naming the accepted set.
|
|
3153
|
+
*/
|
|
3154
|
+
getQuote(args: AchosahwQuoteArgs): Promise<AchosahwQuote>;
|
|
3155
|
+
}
|
|
3156
|
+
}
|
|
3157
|
+
|
|
3158
|
+
declare namespace BowmarkProvider_acqualinaresort {
|
|
3159
|
+
// ── Acqualina Resort & Residences — the unit's own declarations, verbatim ──
|
|
3160
|
+
interface AcqualinaRate {
|
|
3161
|
+
planName: string;
|
|
3162
|
+
rateCode: string | null;
|
|
3163
|
+
planDescription: string | null;
|
|
3164
|
+
pricePerNight: number | null;
|
|
3165
|
+
originalPricePerNight: number | null;
|
|
3166
|
+
currency: "USD";
|
|
3167
|
+
}
|
|
3168
|
+
|
|
3169
|
+
interface AcqualinaRoomAvailability {
|
|
3170
|
+
roomName: string;
|
|
3171
|
+
bedInfo: string | null;
|
|
3172
|
+
sleeps: string | null;
|
|
3173
|
+
rates: AcqualinaRate[];
|
|
3174
|
+
}
|
|
3175
|
+
|
|
3176
|
+
/**
|
|
3177
|
+
* Acqualina Resort & Residences' own SynXis GEM reservation engine — real-time room-type
|
|
3178
|
+
* availability and per-night pricing for its Sunny Isles Beach property, for given dates and
|
|
3179
|
+
* party size.
|
|
3180
|
+
*/
|
|
3181
|
+
interface Unit {
|
|
3182
|
+
/**
|
|
3183
|
+
* Runs Acqualina's own reservation engine for one stay and returns real room-type availability
|
|
3184
|
+
* with per-night pricing for every rate plan on offer.
|
|
3185
|
+
*/
|
|
3186
|
+
searchAvailability(arrive: string, depart: string, adults: number, children?: number): Promise<AcqualinaRoomAvailability[]>;
|
|
3187
|
+
}
|
|
3188
|
+
}
|
|
3189
|
+
|
|
2982
3190
|
declare namespace BowmarkProvider_aiper {
|
|
2983
3191
|
// ── Aiper — the unit's own declarations, verbatim ──
|
|
2984
3192
|
interface AiperPoolOption {
|
|
@@ -3140,6 +3348,48 @@ interface AlphavantageSignUpResult {
|
|
|
3140
3348
|
}
|
|
3141
3349
|
}
|
|
3142
3350
|
|
|
3351
|
+
declare namespace BowmarkProvider_americandreamvacations {
|
|
3352
|
+
// ── American Dream Vacations — the unit's own declarations, verbatim ──
|
|
3353
|
+
interface AdvLocation {
|
|
3354
|
+
storeId: string;
|
|
3355
|
+
name: string;
|
|
3356
|
+
}
|
|
3357
|
+
|
|
3358
|
+
interface AdvVehicle {
|
|
3359
|
+
id: string;
|
|
3360
|
+
unitId: string;
|
|
3361
|
+
model: string;
|
|
3362
|
+
make: string;
|
|
3363
|
+
vehicleClass: "a" | "b" | "c" | "t";
|
|
3364
|
+
vehicleClassLabel: string;
|
|
3365
|
+
sleeps: number | null;
|
|
3366
|
+
lengthFt: number | null;
|
|
3367
|
+
dailyRate: number | null;
|
|
3368
|
+
weeklyRate: number | null;
|
|
3369
|
+
currency: "USD";
|
|
3370
|
+
electricalConnection: string | null;
|
|
3371
|
+
storeId: string;
|
|
3372
|
+
storeName: string;
|
|
3373
|
+
}
|
|
3374
|
+
|
|
3375
|
+
/**
|
|
3376
|
+
* American Dream Vacations' own RV rental inventory search (americandreamvacations.net) —
|
|
3377
|
+
* given one of their 10 store locations and an RV class (Class A/B/C or Trailer), returns the
|
|
3378
|
+
* real, priced units the site itself lists: unit number, model, make, sleeps, length,
|
|
3379
|
+
* daily/weekly rate and electrical connection. No login, no dates required.
|
|
3380
|
+
*/
|
|
3381
|
+
interface Unit {
|
|
3382
|
+
/** Returns American Dream Vacations' own list of rental store locations and their store ids. */
|
|
3383
|
+
listLocations(): Promise<AdvLocation[]>;
|
|
3384
|
+
|
|
3385
|
+
/**
|
|
3386
|
+
* Runs American Dream Vacations' own availability search for one store location and vehicle
|
|
3387
|
+
* class and returns the real, priced inventory the site lists.
|
|
3388
|
+
*/
|
|
3389
|
+
searchInventory(location: string, vehicleClass: "a" | "b" | "c" | "t"): Promise<AdvVehicle[]>;
|
|
3390
|
+
}
|
|
3391
|
+
}
|
|
3392
|
+
|
|
3143
3393
|
declare namespace BowmarkProvider_americanstandard {
|
|
3144
3394
|
// ── American Standard Heating & Air Conditioning — the unit's own declarations, verbatim ──
|
|
3145
3395
|
type AmericanStandardTierName = "Platinum" | "Gold" | "Silver";
|
|
@@ -3179,6 +3429,38 @@ interface AmericanStandardSystemCostEstimate {
|
|
|
3179
3429
|
}
|
|
3180
3430
|
}
|
|
3181
3431
|
|
|
3432
|
+
declare namespace BowmarkProvider_americanvisionwindows {
|
|
3433
|
+
// ── American Vision Windows — the unit's own declarations, verbatim ──
|
|
3434
|
+
interface AmericanVisionWindowsSlotDay {
|
|
3435
|
+
date: string;
|
|
3436
|
+
windows: string[];
|
|
3437
|
+
}
|
|
3438
|
+
interface AmericanVisionWindowsAvailability {
|
|
3439
|
+
zip: string;
|
|
3440
|
+
service: "Windows" | "Bath";
|
|
3441
|
+
inTerritory: boolean;
|
|
3442
|
+
territory: string;
|
|
3443
|
+
serviceTerritoryId: string;
|
|
3444
|
+
slots: AmericanVisionWindowsSlotDay[];
|
|
3445
|
+
}
|
|
3446
|
+
|
|
3447
|
+
/**
|
|
3448
|
+
* American Vision Windows' free in-home consultation booking flow — real open appointment
|
|
3449
|
+
* slots for a ZIP and service (window or bath replacement), straight from the site's own
|
|
3450
|
+
* booking app.
|
|
3451
|
+
*/
|
|
3452
|
+
interface Unit {
|
|
3453
|
+
/**
|
|
3454
|
+
* Checks real, currently-open in-home consultation appointment slots for a US ZIP code and
|
|
3455
|
+
* service (window or bath replacement) — the computed step of American Vision Windows'
|
|
3456
|
+
* free-consultation booking flow, reachable before any name/email/phone is collected. Returns
|
|
3457
|
+
* the matched service territory and a real per-day list of open date/time windows, or
|
|
3458
|
+
* `inTerritory: false` for a ZIP outside AVW's California territories.
|
|
3459
|
+
*/
|
|
3460
|
+
checkAvailability(args: { zip: string; service: "Windows" | "Bath" }): Promise<AmericanVisionWindowsAvailability>;
|
|
3461
|
+
}
|
|
3462
|
+
}
|
|
3463
|
+
|
|
3182
3464
|
declare namespace BowmarkProvider_amramp {
|
|
3183
3465
|
// ── Amramp — the unit's own declarations, verbatim ──
|
|
3184
3466
|
interface AmrampLocation {
|
|
@@ -3305,6 +3587,229 @@ interface AndersenDealer {
|
|
|
3305
3587
|
}
|
|
3306
3588
|
}
|
|
3307
3589
|
|
|
3590
|
+
declare namespace BowmarkProvider_andstr {
|
|
3591
|
+
// ── Andes (stayAndes) — the unit's own declarations, verbatim ──
|
|
3592
|
+
interface AndstrSearchArgs {
|
|
3593
|
+
market?: string;
|
|
3594
|
+
city?: string;
|
|
3595
|
+
checkIn?: string;
|
|
3596
|
+
checkOut?: string;
|
|
3597
|
+
guests?: number;
|
|
3598
|
+
bedrooms?: number;
|
|
3599
|
+
priceMin?: number;
|
|
3600
|
+
priceMax?: number;
|
|
3601
|
+
propertyType?: string;
|
|
3602
|
+
instantBook?: boolean;
|
|
3603
|
+
page?: number;
|
|
3604
|
+
}
|
|
3605
|
+
interface AndstrListingSummary {
|
|
3606
|
+
id: string;
|
|
3607
|
+
title: string;
|
|
3608
|
+
city: string;
|
|
3609
|
+
region: string;
|
|
3610
|
+
bedrooms: number;
|
|
3611
|
+
bathrooms: number;
|
|
3612
|
+
maxGuests: number;
|
|
3613
|
+
pricePerNight: number;
|
|
3614
|
+
currency: string;
|
|
3615
|
+
priceBasis: "dates" | "startingFrom";
|
|
3616
|
+
verified: boolean;
|
|
3617
|
+
instantBook: boolean;
|
|
3618
|
+
cancellationPolicy: string | null;
|
|
3619
|
+
imageUrl: string | null;
|
|
3620
|
+
url: string;
|
|
3621
|
+
}
|
|
3622
|
+
interface AndstrListingDetail {
|
|
3623
|
+
id: string;
|
|
3624
|
+
title: string;
|
|
3625
|
+
city: string;
|
|
3626
|
+
region: string;
|
|
3627
|
+
bedrooms: number;
|
|
3628
|
+
bathrooms: number;
|
|
3629
|
+
maxGuests: number;
|
|
3630
|
+
listedFromPerNight: number;
|
|
3631
|
+
currency: string;
|
|
3632
|
+
amenities: string[];
|
|
3633
|
+
cancellationPolicy: string | null;
|
|
3634
|
+
latitude: number | null;
|
|
3635
|
+
longitude: number | null;
|
|
3636
|
+
url: string;
|
|
3637
|
+
}
|
|
3638
|
+
interface AndstrQuote {
|
|
3639
|
+
listingId: string;
|
|
3640
|
+
checkIn: string;
|
|
3641
|
+
checkOut: string;
|
|
3642
|
+
guests: number;
|
|
3643
|
+
available: boolean;
|
|
3644
|
+
unavailableReason: string | null;
|
|
3645
|
+
nights: number | null;
|
|
3646
|
+
nightlyTotal: number | null;
|
|
3647
|
+
fees: Array<{ name: string; amount: number }>;
|
|
3648
|
+
total: number | null;
|
|
3649
|
+
averagePerNight: number | null;
|
|
3650
|
+
currency: string;
|
|
3651
|
+
bookingUrl: string;
|
|
3652
|
+
}
|
|
3653
|
+
|
|
3654
|
+
/**
|
|
3655
|
+
* stayAndes's own flexible-stay search-and-book portal — search by
|
|
3656
|
+
* market/dates/guests/price/amenities with real per-night pricing, read a listing's full
|
|
3657
|
+
* detail, and get the real date-priced quote (fees + total + booking handoff) for a stay.
|
|
3658
|
+
*/
|
|
3659
|
+
interface Unit {
|
|
3660
|
+
/**
|
|
3661
|
+
* Searches stayAndes's listing portfolio by market, dates, guests, bedrooms, price range and
|
|
3662
|
+
* instant-book. When check-in/check-out are given, pricePerNight is the real demand-priced
|
|
3663
|
+
* average for that stay; otherwise it's the site's undated starting-from rate (priceBasis says
|
|
3664
|
+
* which).
|
|
3665
|
+
*/
|
|
3666
|
+
search(args?: AndstrSearchArgs): Promise<AndstrListingSummary[]>;
|
|
3667
|
+
|
|
3668
|
+
/**
|
|
3669
|
+
* One listing's full detail — bedrooms/bathrooms/guests, amenities, cancellation policy,
|
|
3670
|
+
* coordinates. Its own price is a static rack rate, not a real quote — call getQuote for that.
|
|
3671
|
+
*/
|
|
3672
|
+
getListing(listingId: string): Promise<AndstrListingDetail>;
|
|
3673
|
+
|
|
3674
|
+
/**
|
|
3675
|
+
* The real date-priced quote for one listing — nightly total, service + cleaning fees, total
|
|
3676
|
+
* before taxes, average per night, and a direct checkout handoff URL — or the site's own
|
|
3677
|
+
* reason a stay isn't bookable.
|
|
3678
|
+
*/
|
|
3679
|
+
getQuote(listingId: string, checkIn: string, checkOut: string, guests: number): Promise<AndstrQuote>;
|
|
3680
|
+
}
|
|
3681
|
+
}
|
|
3682
|
+
|
|
3683
|
+
declare namespace BowmarkProvider_anthropic_com {
|
|
3684
|
+
// ── Anthropic Engineering & Legal — the unit's own declarations, verbatim ──
|
|
3685
|
+
interface AnthropicComDoc {
|
|
3686
|
+
url: string;
|
|
3687
|
+
title: string | null;
|
|
3688
|
+
body: string;
|
|
3689
|
+
}
|
|
3690
|
+
interface AnthropicComDocLink {
|
|
3691
|
+
url: string;
|
|
3692
|
+
slug: string;
|
|
3693
|
+
section: "engineering" | "legal";
|
|
3694
|
+
lastUpdated: string;
|
|
3695
|
+
}
|
|
3696
|
+
|
|
3697
|
+
/**
|
|
3698
|
+
* Reads one page of anthropic.com's engineering blog or legal terms by URL and returns its
|
|
3699
|
+
* title and body as plain text — parsed from the page's own server-rendered markup, not a
|
|
3700
|
+
* whole-page scrape.
|
|
3701
|
+
*/
|
|
3702
|
+
interface Unit {
|
|
3703
|
+
/**
|
|
3704
|
+
* Reads one page of anthropic.com's engineering blog (/engineering/...) or legal terms
|
|
3705
|
+
* (/legal/...) by URL or path (e.g. "/legal/commercial-terms" or the full https:// url) and
|
|
3706
|
+
* returns its title and body as plain text. THROWS if the page does not exist (404) or names a
|
|
3707
|
+
* host other than anthropic.com.
|
|
3708
|
+
*/
|
|
3709
|
+
getDoc(url: string): Promise<AnthropicComDoc>;
|
|
3710
|
+
|
|
3711
|
+
/**
|
|
3712
|
+
* Lists every engineering-blog and legal-terms page anthropic.com publishes — url, section
|
|
3713
|
+
* ("engineering" | "legal") and the page's own URL slug — parsed from the site's own
|
|
3714
|
+
* /sitemap.xml (anthropic.com has no llms.txt). The slug is the closest thing to a title the
|
|
3715
|
+
* sitemap carries; call getDoc(url) for the page's real headline.
|
|
3716
|
+
*/
|
|
3717
|
+
listDocs(): Promise<AnthropicComDocLink[]>;
|
|
3718
|
+
}
|
|
3719
|
+
}
|
|
3720
|
+
|
|
3721
|
+
declare namespace BowmarkProvider_antunes {
|
|
3722
|
+
// ── A.J. Antunes & Co. — the unit's own declarations, verbatim ──
|
|
3723
|
+
interface AntunesServiceAgency {
|
|
3724
|
+
id: string;
|
|
3725
|
+
name: string;
|
|
3726
|
+
address: string;
|
|
3727
|
+
city: string;
|
|
3728
|
+
state: string;
|
|
3729
|
+
zip: string;
|
|
3730
|
+
country: string;
|
|
3731
|
+
phone: string;
|
|
3732
|
+
fax: string;
|
|
3733
|
+
email: string;
|
|
3734
|
+
url: string;
|
|
3735
|
+
latitude: number;
|
|
3736
|
+
longitude: number;
|
|
3737
|
+
distanceMiles: number;
|
|
3738
|
+
}
|
|
3739
|
+
interface AntunesServiceAgencySearch {
|
|
3740
|
+
radiusMiles: number;
|
|
3741
|
+
agencies: AntunesServiceAgency[];
|
|
3742
|
+
}
|
|
3743
|
+
|
|
3744
|
+
/**
|
|
3745
|
+
* Reads Antunes' own real-time authorized service-agency/distributor locator directly — real
|
|
3746
|
+
* nearby agencies, reps and distributors Antunes itself vets, distance-ranked from a US ZIP,
|
|
3747
|
+
* never a guess at unverified third-party repair shops.
|
|
3748
|
+
*/
|
|
3749
|
+
interface Unit {
|
|
3750
|
+
/**
|
|
3751
|
+
* Runs Antunes' own real-time authorized service-agency/distributor locator for a US ZIP and
|
|
3752
|
+
* returns real nearby agencies, sales reps and distributors Antunes itself authorizes and
|
|
3753
|
+
* lists — not a guess at which local repair shops might service Antunes equipment.
|
|
3754
|
+
* `radiusMiles` defaults to 100 and is capped at 500; an honestly empty list means Antunes has
|
|
3755
|
+
* nothing authorized that close.
|
|
3756
|
+
*/
|
|
3757
|
+
findServiceAgencies(zip: string, radiusMiles?: number): Promise<AntunesServiceAgencySearch>;
|
|
3758
|
+
}
|
|
3759
|
+
}
|
|
3760
|
+
|
|
3761
|
+
declare namespace BowmarkProvider_aosom {
|
|
3762
|
+
// ── Aosom — the unit's own declarations, verbatim ──
|
|
3763
|
+
interface AosomSearchResult {
|
|
3764
|
+
sin: string;
|
|
3765
|
+
sku: string;
|
|
3766
|
+
name: string;
|
|
3767
|
+
brand: string | null;
|
|
3768
|
+
price: number; // dollars, e.g. 354.99
|
|
3769
|
+
originalPrice: number | null;
|
|
3770
|
+
stockQty: number;
|
|
3771
|
+
urlkey: string;
|
|
3772
|
+
url: string; // pass to getProduct
|
|
3773
|
+
categoryName: string | null;
|
|
3774
|
+
imageUrl: string | null;
|
|
3775
|
+
}
|
|
3776
|
+
interface AosomProduct {
|
|
3777
|
+
sin: string;
|
|
3778
|
+
sku: string;
|
|
3779
|
+
name: string;
|
|
3780
|
+
brand: string | null;
|
|
3781
|
+
category: string | null;
|
|
3782
|
+
subCategory: string | null;
|
|
3783
|
+
price: number; // dollars
|
|
3784
|
+
originalPrice: number | null;
|
|
3785
|
+
inStock: boolean; // the site's own buyability flag for this variant
|
|
3786
|
+
url: string; // the handoff — open this to add to cart / check out
|
|
3787
|
+
}
|
|
3788
|
+
|
|
3789
|
+
/**
|
|
3790
|
+
* Reads Aosom's live catalog — search results and one product's real price/stock — straight
|
|
3791
|
+
* off aosom.com's own search API and product page, no key, no browser.
|
|
3792
|
+
*/
|
|
3793
|
+
interface Unit {
|
|
3794
|
+
/**
|
|
3795
|
+
* Searches Aosom's live catalog (Outsunny/HOMCOM/PawHut/Soozier) for a free-text query and
|
|
3796
|
+
* returns real, currently-listed rows with price, stock count, brand and a ready-to-use
|
|
3797
|
+
* product page URL. Returns [] for a query that matches nothing — a real, honest answer, since
|
|
3798
|
+
* the endpoint returns 200 with an empty list rather than 404ing.
|
|
3799
|
+
*/
|
|
3800
|
+
searchProducts(query: string): Promise<AosomSearchResult[]>;
|
|
3801
|
+
|
|
3802
|
+
/**
|
|
3803
|
+
* Reads one product's live price and the site's own buyability flag straight off its product
|
|
3804
|
+
* page — the SAME page a shopper lands on, so a variant (color/size baked into a distinct
|
|
3805
|
+
* SKU/URL on this site) is read exactly as chosen. Takes the full product page URL
|
|
3806
|
+
* (searchProducts' `url` field). THROWS rather than guessing when the page's own product-data
|
|
3807
|
+
* block is missing or unparseable — never silently returns a stale or wrong variant.
|
|
3808
|
+
*/
|
|
3809
|
+
getProduct(url: string): Promise<AosomProduct>;
|
|
3810
|
+
}
|
|
3811
|
+
}
|
|
3812
|
+
|
|
3308
3813
|
declare namespace BowmarkProvider_apple {
|
|
3309
3814
|
// ── Apple — the unit's own declarations, verbatim ──
|
|
3310
3815
|
interface AppleSearchResult {
|
|
@@ -3406,6 +3911,72 @@ interface AquaphoenixsciProduct {
|
|
|
3406
3911
|
}
|
|
3407
3912
|
}
|
|
3408
3913
|
|
|
3914
|
+
declare namespace BowmarkProvider_arajet {
|
|
3915
|
+
// ── Arajet — the unit's own declarations, verbatim ──
|
|
3916
|
+
interface ArajetSearchArgs {
|
|
3917
|
+
origin: string;
|
|
3918
|
+
destination: string;
|
|
3919
|
+
departureDate: string;
|
|
3920
|
+
passengers?: number;
|
|
3921
|
+
}
|
|
3922
|
+
|
|
3923
|
+
interface ArajetAirport {
|
|
3924
|
+
code: string;
|
|
3925
|
+
name: string;
|
|
3926
|
+
}
|
|
3927
|
+
|
|
3928
|
+
interface ArajetFlightLeg {
|
|
3929
|
+
flightNumber: string;
|
|
3930
|
+
carrierCode: string;
|
|
3931
|
+
from: ArajetAirport;
|
|
3932
|
+
to: ArajetAirport;
|
|
3933
|
+
departureDate: string;
|
|
3934
|
+
arrivalDate: string;
|
|
3935
|
+
flightTimeMinutes: number;
|
|
3936
|
+
equipmentType: string | null;
|
|
3937
|
+
}
|
|
3938
|
+
|
|
3939
|
+
interface ArajetFlightOption {
|
|
3940
|
+
key: string;
|
|
3941
|
+
from: ArajetAirport;
|
|
3942
|
+
to: ArajetAirport;
|
|
3943
|
+
departureDate: string;
|
|
3944
|
+
arrivalDate: string;
|
|
3945
|
+
flightTimeMinutes: number;
|
|
3946
|
+
stops: number;
|
|
3947
|
+
legs: ArajetFlightLeg[];
|
|
3948
|
+
soldOut: boolean;
|
|
3949
|
+
}
|
|
3950
|
+
|
|
3951
|
+
interface ArajetSearchResult {
|
|
3952
|
+
origin: string;
|
|
3953
|
+
destination: string;
|
|
3954
|
+
departureDate: string;
|
|
3955
|
+
currency: string;
|
|
3956
|
+
pricesAvailable: false;
|
|
3957
|
+
flights: ArajetFlightOption[];
|
|
3958
|
+
}
|
|
3959
|
+
|
|
3960
|
+
/**
|
|
3961
|
+
* Arajet's own flight-schedule search (Santo Domingo-based low-cost carrier) — real routes,
|
|
3962
|
+
* times, connections and flight numbers straight off its booking engine's shop endpoint. No
|
|
3963
|
+
* live pricing at this rung.
|
|
3964
|
+
*/
|
|
3965
|
+
interface Unit {
|
|
3966
|
+
/**
|
|
3967
|
+
* Runs Arajet's own flight-schedule search for one origin/destination/date and returns the
|
|
3968
|
+
* flight OPTIONS it schedules — carrier and flight number, departure/arrival times, duration,
|
|
3969
|
+
* stop count and each connecting leg. `origin`/`destination` are 3-letter IATA codes ("SDQ",
|
|
3970
|
+
* "MIA"); `departureDate` is "YYYY-MM-DD" or "MM/DD/YYYY"; `passengers` (adults) defaults to
|
|
3971
|
+
* 1. HONEST LIMIT: this reads Arajet's calendar/shop endpoint, which carries the SCHEDULE but
|
|
3972
|
+
* not a live fare — every option's `soldOut` came back `true` at every route and date
|
|
3973
|
+
* measured, and `pricesAvailable` is always `false`. It answers "what does Arajet fly, and
|
|
3974
|
+
* when" rather than "what would this cost".
|
|
3975
|
+
*/
|
|
3976
|
+
search(arg0: ArajetSearchArgs): Promise<ArajetSearchResult>;
|
|
3977
|
+
}
|
|
3978
|
+
}
|
|
3979
|
+
|
|
3409
3980
|
declare namespace BowmarkProvider_archipelago {
|
|
3410
3981
|
// ── Archipelago — the unit's own declarations, verbatim ──
|
|
3411
3982
|
interface ArchipelagoAsset {
|
|
@@ -3452,6 +4023,51 @@ interface ArchipelagoGameOptions {
|
|
|
3452
4023
|
}
|
|
3453
4024
|
}
|
|
3454
4025
|
|
|
4026
|
+
declare namespace BowmarkProvider_artpix3d {
|
|
4027
|
+
// ── ArtPix 3D — the unit's own declarations, verbatim ──
|
|
4028
|
+
// ArtPix 3D's OWN shapes — not a capability contract.
|
|
4029
|
+
|
|
4030
|
+
interface Artpix3dShape { slug: string; name: string; url: string }
|
|
4031
|
+
|
|
4032
|
+
interface Artpix3dSizePrice {
|
|
4033
|
+
size: string; // e.g. "Large"
|
|
4034
|
+
sellPrice: number | null;
|
|
4035
|
+
retailPrice: number | null;
|
|
4036
|
+
discountPercent: number | null;
|
|
4037
|
+
inStock: boolean;
|
|
4038
|
+
bestSeller: boolean;
|
|
4039
|
+
lowStockLabel: string | null;
|
|
4040
|
+
}
|
|
4041
|
+
|
|
4042
|
+
interface Artpix3dProductPricing {
|
|
4043
|
+
shape: string;
|
|
4044
|
+
productName: string;
|
|
4045
|
+
sizes: Artpix3dSizePrice[];
|
|
4046
|
+
configureUrl: string; // where a buyer picks a photo and checks out
|
|
4047
|
+
}
|
|
4048
|
+
|
|
4049
|
+
/**
|
|
4050
|
+
* Reads ArtPix 3D's own live product configurator — every crystal shape, and for a chosen
|
|
4051
|
+
* shape, every size's real current price (with active sale discounts) and stock/best-seller
|
|
4052
|
+
* labels — the way the site's own size-picker computes it, real-time.
|
|
4053
|
+
*/
|
|
4054
|
+
interface Unit {
|
|
4055
|
+
/**
|
|
4056
|
+
* Lists every crystal shape ArtPix 3D currently sells (rectangle, heart, square, …), each with
|
|
4057
|
+
* its own product page URL.
|
|
4058
|
+
*/
|
|
4059
|
+
listShapes(): Promise<Artpix3dShape[]>;
|
|
4060
|
+
|
|
4061
|
+
/**
|
|
4062
|
+
* Runs the site's own size/price computation for one shape: every size's real current sell
|
|
4063
|
+
* price, list price, active discount, stock and best-seller status. `shape` is a slug from
|
|
4064
|
+
* `listShapes()`. THROWS on an unknown shape, naming `listShapes()` as the way to find current
|
|
4065
|
+
* ones.
|
|
4066
|
+
*/
|
|
4067
|
+
getSizePricing(shape: string): Promise<Artpix3dProductPricing>;
|
|
4068
|
+
}
|
|
4069
|
+
}
|
|
4070
|
+
|
|
3455
4071
|
declare namespace BowmarkProvider_ashleyfurniture {
|
|
3456
4072
|
// ── Ashley Furniture — the unit's own declarations, verbatim ──
|
|
3457
4073
|
interface AshleyFurnitureSearchArgs {
|
|
@@ -3730,6 +4346,41 @@ interface AtlasSearchCommunitiesResult {
|
|
|
3730
4346
|
}
|
|
3731
4347
|
}
|
|
3732
4348
|
|
|
4349
|
+
declare namespace BowmarkProvider_audibel {
|
|
4350
|
+
// ── Audibel — the unit's own declarations, verbatim ──
|
|
4351
|
+
interface AudibelClinic {
|
|
4352
|
+
name: string;
|
|
4353
|
+
address: string;
|
|
4354
|
+
city: string;
|
|
4355
|
+
state: string;
|
|
4356
|
+
zip: string;
|
|
4357
|
+
phone: string | null;
|
|
4358
|
+
distanceMiles: number | null; // miles from the searched point, nearest-first
|
|
4359
|
+
url: string; // the clinic's own page on audibel.com
|
|
4360
|
+
hours: Record<string, { open: string; close: string }>;
|
|
4361
|
+
}
|
|
4362
|
+
|
|
4363
|
+
interface AudibelClinicSearch {
|
|
4364
|
+
search: string;
|
|
4365
|
+
lat: number;
|
|
4366
|
+
lng: number;
|
|
4367
|
+
clinics: AudibelClinic[]; // sorted nearest-first
|
|
4368
|
+
}
|
|
4369
|
+
|
|
4370
|
+
/**
|
|
4371
|
+
* Audibel's own find-a-clinic locator — a ZIP/city/address search returning the real network
|
|
4372
|
+
* hearing clinics nearest that point, sorted by distance, each with its full address, phone
|
|
4373
|
+
* and hours.
|
|
4374
|
+
*/
|
|
4375
|
+
interface Unit {
|
|
4376
|
+
/**
|
|
4377
|
+
* Runs the real find-a-clinic search for a ZIP code, city or address and returns Audibel's
|
|
4378
|
+
* network clinics nearest that point, distance-sorted, with address/phone/hours.
|
|
4379
|
+
*/
|
|
4380
|
+
findClinics(query: string): Promise<AudibelClinicSearch>;
|
|
4381
|
+
}
|
|
4382
|
+
}
|
|
4383
|
+
|
|
3733
4384
|
declare namespace BowmarkProvider_autocamp {
|
|
3734
4385
|
// ── AutoCamp — the unit's own declarations, verbatim ──
|
|
3735
4386
|
interface AutocampRate {
|
|
@@ -3750,6 +4401,11 @@ interface AutocampRoomAvailability {
|
|
|
3750
4401
|
rates: AutocampRate[];
|
|
3751
4402
|
}
|
|
3752
4403
|
|
|
4404
|
+
interface AutocampProperty {
|
|
4405
|
+
hotelId: string;
|
|
4406
|
+
location: string;
|
|
4407
|
+
}
|
|
4408
|
+
|
|
3753
4409
|
/**
|
|
3754
4410
|
* AutoCamp's own SynXis reservation engine — real-time room-type availability and
|
|
3755
4411
|
* per-night/stay-total pricing for any of its Airstream/cabin/tent properties, for a given
|
|
@@ -3761,6 +4417,13 @@ interface AutocampRoomAvailability {
|
|
|
3761
4417
|
* availability with per-night and stay-total pricing for every rate plan on offer.
|
|
3762
4418
|
*/
|
|
3763
4419
|
searchAvailability(hotelId: string, arrive: string, depart: string, adults: number, children?: number): Promise<AutocampRoomAvailability[]>;
|
|
4420
|
+
|
|
4421
|
+
/**
|
|
4422
|
+
* Lists AutoCamp's active properties (name, location, the reservations-engine hotel id) off
|
|
4423
|
+
* the site's own booking-widget furniture, so a caller can resolve a place name to the id
|
|
4424
|
+
* searchAvailability needs.
|
|
4425
|
+
*/
|
|
4426
|
+
listProperties(): Promise<AutocampProperty[]>;
|
|
3764
4427
|
}
|
|
3765
4428
|
}
|
|
3766
4429
|
|
|
@@ -3894,8 +4557,56 @@ interface AvisLocationDetail extends AvisLocationRow {
|
|
|
3894
4557
|
}
|
|
3895
4558
|
}
|
|
3896
4559
|
|
|
4560
|
+
declare namespace BowmarkProvider_ayreshotels {
|
|
4561
|
+
// ── Ayres Hotels — the unit's own declarations, verbatim ──
|
|
4562
|
+
interface AyreshotelsRateDay {
|
|
4563
|
+
date: string;
|
|
4564
|
+
isAvailable: boolean;
|
|
4565
|
+
minRate: number | null;
|
|
4566
|
+
currency: string | null;
|
|
4567
|
+
availStatus: string | null;
|
|
4568
|
+
}
|
|
4569
|
+
|
|
4570
|
+
interface CheckRatesResult {
|
|
4571
|
+
property: string;
|
|
4572
|
+
hotelCode: number | null;
|
|
4573
|
+
checkIn: string;
|
|
4574
|
+
checkOut: string;
|
|
4575
|
+
currency: string | null;
|
|
4576
|
+
days: AyreshotelsRateDay[];
|
|
4577
|
+
}
|
|
4578
|
+
|
|
4579
|
+
/**
|
|
4580
|
+
* Boutique Southern California hotel group. checkRates is live — it reads the site's own IBE
|
|
4581
|
+
* (Internet Booking Engine, an Amadeus Hospitality / TravelClick widget on
|
|
4582
|
+
* reservations.ayreshotels.com) and returns the REAL per-night minimum rate + availability
|
|
4583
|
+
* status for a property and date range, the same live pricing the site's own date-picker
|
|
4584
|
+
* renders before any guest information is entered.
|
|
4585
|
+
*/
|
|
4586
|
+
interface Unit {
|
|
4587
|
+
/**
|
|
4588
|
+
* Checks a property's real live rate/availability for a date range. Pass `property` (the
|
|
4589
|
+
* reservations subdomain slug from that hotel's own "Book Now" link, e.g. "costa-mesa"),
|
|
4590
|
+
* `checkIn`/`checkOut` (ISO dates), and optionally `adults` (default 2). Returns the per-night
|
|
4591
|
+
* minimum rate and availability status for every night in range — the site's own IBE data, not
|
|
4592
|
+
* a third-party OTA estimate.
|
|
4593
|
+
*/
|
|
4594
|
+
checkRates(args: object): Promise<CheckRatesResult>;
|
|
4595
|
+
}
|
|
4596
|
+
}
|
|
4597
|
+
|
|
3897
4598
|
declare namespace BowmarkProvider_azazie {
|
|
3898
4599
|
// ── Azazie — the unit's own declarations, verbatim ──
|
|
4600
|
+
interface AzazieSearchResult {
|
|
4601
|
+
id: string;
|
|
4602
|
+
name: string;
|
|
4603
|
+
url: string;
|
|
4604
|
+
}
|
|
4605
|
+
|
|
4606
|
+
interface AzazieSearchResults {
|
|
4607
|
+
results: AzazieSearchResult[];
|
|
4608
|
+
}
|
|
4609
|
+
|
|
3899
4610
|
interface AzazieColorOption {
|
|
3900
4611
|
key: string;
|
|
3901
4612
|
name: string;
|
|
@@ -3944,6 +4655,12 @@ interface AzazieBuildYourOwnConfig {
|
|
|
3944
4655
|
* product-data host.
|
|
3945
4656
|
*/
|
|
3946
4657
|
interface Unit {
|
|
4658
|
+
/**
|
|
4659
|
+
* Searches Azazie's catalog by free text (style, color, fabric, occasion) and returns matching
|
|
4660
|
+
* dress styles with URLs.
|
|
4661
|
+
*/
|
|
4662
|
+
search(query: string): Promise<AzazieSearchResults>;
|
|
4663
|
+
|
|
3947
4664
|
/**
|
|
3948
4665
|
* Reads one bridesmaid-dress style's full Build Your Own configuration off Azazie's own
|
|
3949
4666
|
* product-data host — the real live price, every solid + floral color option (each with its
|
|
@@ -4066,6 +4783,14 @@ interface AzureListServicesResult {
|
|
|
4066
4783
|
|
|
4067
4784
|
declare namespace BowmarkProvider_bankmycell {
|
|
4068
4785
|
// ── BankMyCell — the unit's own declarations, verbatim ──
|
|
4786
|
+
interface BankmycellSearchResult {
|
|
4787
|
+
brand: string;
|
|
4788
|
+
model: string;
|
|
4789
|
+
name: string;
|
|
4790
|
+
deviceUrl: string;
|
|
4791
|
+
minPrice: number | null;
|
|
4792
|
+
maxPrice: number | null;
|
|
4793
|
+
}
|
|
4069
4794
|
interface BankmycellOffer {
|
|
4070
4795
|
merchant: string;
|
|
4071
4796
|
price: number;
|
|
@@ -4088,9 +4813,17 @@ interface BankmycellQuoteResult {
|
|
|
4088
4813
|
/**
|
|
4089
4814
|
* Live trade-in offers for a phone/device from every merchant BankMyCell compares, for a
|
|
4090
4815
|
* chosen capacity/condition/carrier — read off the same pricing endpoint the site's own sell
|
|
4091
|
-
* page polls, instead of parsing prose off the rendered page.
|
|
4816
|
+
* page polls, instead of parsing prose off the rendered page. searchDevices resolves a
|
|
4817
|
+
* shopper's own words ("iPhone 14") to the deviceUrl getTradeInQuote needs.
|
|
4092
4818
|
*/
|
|
4093
4819
|
interface Unit {
|
|
4820
|
+
/**
|
|
4821
|
+
* Searches BankMyCell's own device index by free text (e.g. "iPhone 14", "Galaxy S23") and
|
|
4822
|
+
* returns the matching devices with their deviceUrl — the entry point: it turns a shopper's
|
|
4823
|
+
* own words into the deviceUrl getTradeInQuote needs.
|
|
4824
|
+
*/
|
|
4825
|
+
searchDevices(term: string): Promise<BankmycellSearchResult[]>;
|
|
4826
|
+
|
|
4094
4827
|
/**
|
|
4095
4828
|
* Reads live trade-in offers for the device at a bankmycell.com sell page (e.g.
|
|
4096
4829
|
* .../sell/iphone-14-pro), from every merchant the site compares, for the given
|
|
@@ -4182,6 +4915,59 @@ interface BarlettaPriceResult {
|
|
|
4182
4915
|
}
|
|
4183
4916
|
}
|
|
4184
4917
|
|
|
4918
|
+
declare namespace BowmarkProvider_barnesfoundation {
|
|
4919
|
+
// ── Barnes Foundation — the unit's own declarations, verbatim ──
|
|
4920
|
+
type BarnesAdmissionType = "barnes" | "calderCombo";
|
|
4921
|
+
interface BarnesAdmissionDay {
|
|
4922
|
+
date: string;
|
|
4923
|
+
active: boolean;
|
|
4924
|
+
}
|
|
4925
|
+
interface BarnesAdmissionCalendar {
|
|
4926
|
+
admissionType: BarnesAdmissionType;
|
|
4927
|
+
name: string;
|
|
4928
|
+
days: BarnesAdmissionDay[];
|
|
4929
|
+
}
|
|
4930
|
+
interface BarnesAdmissionQuoteInput {
|
|
4931
|
+
personType: string;
|
|
4932
|
+
quantity: number;
|
|
4933
|
+
}
|
|
4934
|
+
interface BarnesAdmissionQuoteLine {
|
|
4935
|
+
personType: string;
|
|
4936
|
+
quantity: number;
|
|
4937
|
+
unitPrice: number;
|
|
4938
|
+
subtotal: number;
|
|
4939
|
+
}
|
|
4940
|
+
interface BarnesAdmissionQuote {
|
|
4941
|
+
admissionType: BarnesAdmissionType;
|
|
4942
|
+
currency: "USD";
|
|
4943
|
+
lines: BarnesAdmissionQuoteLine[];
|
|
4944
|
+
total: number;
|
|
4945
|
+
}
|
|
4946
|
+
|
|
4947
|
+
/**
|
|
4948
|
+
* The Barnes Foundation's own live ticket-admission data, read directly — real day-by-day
|
|
4949
|
+
* open/closed availability and real per-category pricing arithmetic for Barnes Foundation
|
|
4950
|
+
* admission and the Barnes + Calder Gardens combo, off the site's own undocumented API.
|
|
4951
|
+
*/
|
|
4952
|
+
interface Unit {
|
|
4953
|
+
/**
|
|
4954
|
+
* Reads the live day-by-day open/closed calendar (a rolling ~6-month window) for either
|
|
4955
|
+
* "barnes" (Barnes Foundation admission only) or "calderCombo" (Barnes + Calder Gardens combo
|
|
4956
|
+
* admission) — the same day-availability the ticket widget's own calendar picker renders.
|
|
4957
|
+
* Day-level only: the site's API carries no per-timeslot remaining-capacity count.
|
|
4958
|
+
*/
|
|
4959
|
+
getAdmissionCalendar(admissionType: "barnes" | "calderCombo"): Promise<BarnesAdmissionCalendar>;
|
|
4960
|
+
|
|
4961
|
+
/**
|
|
4962
|
+
* Computes a real ticket total for the given admission type and category quantities
|
|
4963
|
+
* (personType matched case-insensitively against the live list — "Adult", "Senior", "Youth",
|
|
4964
|
+
* "Child", etc.) using the site's own current per-category prices. THROWS if a category name
|
|
4965
|
+
* does not match one the site currently sells, or if tickets is empty.
|
|
4966
|
+
*/
|
|
4967
|
+
priceAdmission(admissionType: "barnes" | "calderCombo", tickets: BarnesAdmissionQuoteInput[]): Promise<BarnesAdmissionQuote>;
|
|
4968
|
+
}
|
|
4969
|
+
}
|
|
4970
|
+
|
|
4185
4971
|
declare namespace BowmarkProvider_baublebar {
|
|
4186
4972
|
// ── BaubleBar — the unit's own declarations, verbatim ──
|
|
4187
4973
|
interface BaublebarPersonalizationField {
|
|
@@ -4229,6 +5015,11 @@ interface BaublebarCatalogueRow {
|
|
|
4229
5015
|
inStock: boolean;
|
|
4230
5016
|
images: string[];
|
|
4231
5017
|
}
|
|
5018
|
+
interface BaublebarCollectionRow {
|
|
5019
|
+
handle: string;
|
|
5020
|
+
title: string;
|
|
5021
|
+
productsCount: number;
|
|
5022
|
+
}
|
|
4232
5023
|
interface BaublebarCheckoutLink {
|
|
4233
5024
|
url: string;
|
|
4234
5025
|
variant: BaublebarVariant;
|
|
@@ -4243,6 +5034,13 @@ interface BaublebarCheckoutLink {
|
|
|
4243
5034
|
* carrying the personalization.
|
|
4244
5035
|
*/
|
|
4245
5036
|
interface Unit {
|
|
5037
|
+
/**
|
|
5038
|
+
* The entry door: reads BaubleBar's own published list of collections — e.g. "Tennis
|
|
5039
|
+
* Bracelets", "Personalized Jewelry" — with each one's handle and product count, so a caller
|
|
5040
|
+
* holding only what a shopper would say can find the handle listBaublebarProducts takes.
|
|
5041
|
+
*/
|
|
5042
|
+
listBaublebarCollections(opts?: { limit?: number }): Promise<BaublebarCollectionRow[]>;
|
|
5043
|
+
|
|
4246
5044
|
/**
|
|
4247
5045
|
* Reads a BaubleBar collection's live products — e.g. "tennis-bracelets",
|
|
4248
5046
|
* "personalized-jewelry", "name-initial-jewelry" — with handle, title, price range and stock.
|
|
@@ -4376,6 +5174,169 @@ interface BeatthebombPriceQuote {
|
|
|
4376
5174
|
}
|
|
4377
5175
|
}
|
|
4378
5176
|
|
|
5177
|
+
declare namespace BowmarkProvider_bellwethercoffee {
|
|
5178
|
+
// ── Bellwether Coffee — the unit's own declarations, verbatim ──
|
|
5179
|
+
// Bellwether Coffee's OWN shapes — not a capability contract.
|
|
5180
|
+
|
|
5181
|
+
type BellwethercoffeeCurrency = "USD" | "CAD" | "GBP" | "EUR";
|
|
5182
|
+
type BellwethercoffeeRoasterType = "ShopRoaster" | "ContinuousRoasting";
|
|
5183
|
+
|
|
5184
|
+
interface BellwethercoffeeSliderBounds { min: number; max: number; step: number }
|
|
5185
|
+
|
|
5186
|
+
interface BellwethercoffeeCalculatorDefaults {
|
|
5187
|
+
currencies: BellwethercoffeeCurrency[];
|
|
5188
|
+
roasterTypes: BellwethercoffeeRoasterType[];
|
|
5189
|
+
defaultInputsByCurrency: Record<BellwethercoffeeCurrency, { poundsWeekly: number; coffeeCost: number; retailBags: number }>;
|
|
5190
|
+
sliderBounds: { poundsWeekly: BellwethercoffeeSliderBounds; coffeeCost: BellwethercoffeeSliderBounds; retailBags: BellwethercoffeeSliderBounds };
|
|
5191
|
+
roasterPricesByCurrency: Record<BellwethercoffeeCurrency, Record<BellwethercoffeeRoasterType, number>>;
|
|
5192
|
+
disclaimer: string;
|
|
5193
|
+
roiCalculatorUrl: string;
|
|
5194
|
+
requestDemoUrl: string;
|
|
5195
|
+
}
|
|
5196
|
+
|
|
5197
|
+
interface BellwethercoffeeRoiInput {
|
|
5198
|
+
currency: BellwethercoffeeCurrency;
|
|
5199
|
+
roasterType: BellwethercoffeeRoasterType;
|
|
5200
|
+
poundsWeekly: number; // weekly roasted-coffee usage (lb, or kg for non-USD)
|
|
5201
|
+
coffeeCost: number; // what the caller currently pays per lb/kg, in currency
|
|
5202
|
+
retailBags: number; // retail bags of roasted coffee sellable per week
|
|
5203
|
+
}
|
|
5204
|
+
|
|
5205
|
+
interface BellwethercoffeeRoiEstimate {
|
|
5206
|
+
currency: BellwethercoffeeCurrency;
|
|
5207
|
+
roasterType: BellwethercoffeeRoasterType;
|
|
5208
|
+
investmentAmount: number; investmentAmountFormatted: string;
|
|
5209
|
+
savingsPerUnit: number;
|
|
5210
|
+
monthlySavings: number; monthlySavingsFormatted: string;
|
|
5211
|
+
annualSavings: number; annualSavingsFormatted: string;
|
|
5212
|
+
monthlySalesRevenue: number; monthlySalesRevenueFormatted: string;
|
|
5213
|
+
annualSalesRevenue: number; annualSalesRevenueFormatted: string;
|
|
5214
|
+
annualRetailProfit: number; annualRetailProfitFormatted: string;
|
|
5215
|
+
totalROI: number; totalROIFormatted: string; // first-year ROI: annualSavings + annualRetailProfit
|
|
5216
|
+
paybackMonths: number; // 999 sentinel when there is no payback at these inputs
|
|
5217
|
+
savingsPerCup: number;
|
|
5218
|
+
co2SavingsPerYear: number;
|
|
5219
|
+
roiCalculatorUrl: string;
|
|
5220
|
+
requestDemoUrl: string; // the site's own next step — a separate lead form, not computed here
|
|
5221
|
+
}
|
|
5222
|
+
|
|
5223
|
+
/**
|
|
5224
|
+
* Bellwether Coffee's own ROI calculator (bellwethercoffee.com/roi-calculator) — real
|
|
5225
|
+
* monthly/annual savings, retail-bag revenue and profit, payback period, and first-year ROI
|
|
5226
|
+
* for the Shop Roaster, computed exactly as the site's own client-side formula computes it, no
|
|
5227
|
+
* estimate.
|
|
5228
|
+
*/
|
|
5229
|
+
interface Unit {
|
|
5230
|
+
/**
|
|
5231
|
+
* Returns the ROI calculator's own currencies, roaster types, per-currency default input
|
|
5232
|
+
* values, slider bounds (min/max/step), per-currency roaster list prices, and the site's own
|
|
5233
|
+
* cost-basis disclaimer text — call this before computeRoiEstimate to know the valid ranges
|
|
5234
|
+
* and defaults.
|
|
5235
|
+
*/
|
|
5236
|
+
getCalculatorDefaults(): Promise<BellwethercoffeeCalculatorDefaults>;
|
|
5237
|
+
|
|
5238
|
+
/**
|
|
5239
|
+
* Runs Bellwether's own ROI calculator formula — currency, roaster type, weekly roasted-coffee
|
|
5240
|
+
* usage, price paid per lb, and weekly retail-bag sales in; real monthly/annual savings,
|
|
5241
|
+
* retail-bag revenue and profit, payback period (months), and first-year total ROI out,
|
|
5242
|
+
* computed exactly as bellwethercoffee.com/roi-calculator's own client-side computeROI()
|
|
5243
|
+
* computes it, no estimate. `requestDemoUrl` is the site's own next step, not a checkout.
|
|
5244
|
+
*/
|
|
5245
|
+
computeRoiEstimate(input: BellwethercoffeeRoiInput): Promise<BellwethercoffeeRoiEstimate>;
|
|
5246
|
+
}
|
|
5247
|
+
}
|
|
5248
|
+
|
|
5249
|
+
declare namespace BowmarkProvider_beltservice {
|
|
5250
|
+
// ── Beltservice Corporation — the unit's own declarations, verbatim ──
|
|
5251
|
+
interface BeltserviceCatalogItem {
|
|
5252
|
+
catalogNumber: string;
|
|
5253
|
+
partNumber: string;
|
|
5254
|
+
name: string;
|
|
5255
|
+
grade: string | null;
|
|
5256
|
+
specSheetUrl: string | null;
|
|
5257
|
+
detailUrl: string;
|
|
5258
|
+
quoteUrl: string;
|
|
5259
|
+
}
|
|
5260
|
+
interface BeltserviceCatalogPage {
|
|
5261
|
+
items: BeltserviceCatalogItem[];
|
|
5262
|
+
page: number;
|
|
5263
|
+
totalPages: number;
|
|
5264
|
+
hasMore: boolean;
|
|
5265
|
+
}
|
|
5266
|
+
interface BeltserviceBrowseParams {
|
|
5267
|
+
group?: string;
|
|
5268
|
+
category?: string;
|
|
5269
|
+
industry?: string;
|
|
5270
|
+
page?: number;
|
|
5271
|
+
}
|
|
5272
|
+
interface BeltserviceBeltDetail {
|
|
5273
|
+
catalogNumber: string;
|
|
5274
|
+
partNumber: string;
|
|
5275
|
+
name: string;
|
|
5276
|
+
description: string | null;
|
|
5277
|
+
specSheetUrl: string | null;
|
|
5278
|
+
quoteUrl: string;
|
|
5279
|
+
}
|
|
5280
|
+
|
|
5281
|
+
/**
|
|
5282
|
+
* Beltservice Corporation's own conveyor-belt catalog: browse or filter by product
|
|
5283
|
+
* group/category/industry and get back real, paginated, spec-matched belts (catalog number,
|
|
5284
|
+
* part number, spec-sheet PDF), or look up one belt directly by catalog number — plus the
|
|
5285
|
+
* ready quote-handoff link for each.
|
|
5286
|
+
*/
|
|
5287
|
+
interface Unit {
|
|
5288
|
+
/**
|
|
5289
|
+
* Browses Beltservice's live belt catalog, matching its own site filters: pass at most one of
|
|
5290
|
+
* group/category/industry (the site's own facet slugs, e.g. group: "heavy-duty") plus an
|
|
5291
|
+
* optional page number, or call with no argument for the unfiltered catalog. Returns real
|
|
5292
|
+
* paginated results — catalog number, part number, spec-sheet PDF, quote-handoff link —
|
|
5293
|
+
* exactly as the live site renders them.
|
|
5294
|
+
*/
|
|
5295
|
+
browseCatalog(params?: BeltserviceBrowseParams): Promise<BeltserviceCatalogPage>;
|
|
5296
|
+
|
|
5297
|
+
/**
|
|
5298
|
+
* Looks up one belt directly by its Beltservice catalog number (found via browseCatalog) and
|
|
5299
|
+
* returns its full description, spec-sheet PDF, and quote-handoff link.
|
|
5300
|
+
*/
|
|
5301
|
+
getBelt(catalogNumber: string): Promise<BeltserviceBeltDetail>;
|
|
5302
|
+
}
|
|
5303
|
+
}
|
|
5304
|
+
|
|
5305
|
+
declare namespace BowmarkProvider_benelliusa {
|
|
5306
|
+
// ── Benelli USA — the unit's own declarations, verbatim ──
|
|
5307
|
+
interface benelliusaDealer {
|
|
5308
|
+
name: string;
|
|
5309
|
+
address: string;
|
|
5310
|
+
city: string;
|
|
5311
|
+
state: string;
|
|
5312
|
+
postalCode: string;
|
|
5313
|
+
phone: string | null;
|
|
5314
|
+
distanceMiles: number;
|
|
5315
|
+
mapUrl: string;
|
|
5316
|
+
premierDealer: boolean;
|
|
5317
|
+
latitude: number | null;
|
|
5318
|
+
longitude: number | null;
|
|
5319
|
+
}
|
|
5320
|
+
|
|
5321
|
+
/**
|
|
5322
|
+
* Runs Benelli USA's own dealer locator by ZIP code and returns real Premier Dealer records —
|
|
5323
|
+
* name, address, phone, distance, map link.
|
|
5324
|
+
*/
|
|
5325
|
+
interface Unit {
|
|
5326
|
+
/**
|
|
5327
|
+
* Runs Benelli USA's own "Find A Benelli Dealer" locator for a 5-digit US ZIP and returns
|
|
5328
|
+
* every dealer it lists, nearest first: name, street address, city/state/zip, phone (`null` on
|
|
5329
|
+
* the handful of rows with none), distance in miles, a Google Maps directions link, whether
|
|
5330
|
+
* the site marks it a `premierDealer` ("Benelli Premier Dealer"), and coordinates when the
|
|
5331
|
+
* page's own map data carries them. A ZIP with no dealers nearby returns `[]` — the site's own
|
|
5332
|
+
* honest "No dealers found" answer, not an error. **Does not report which sister brands
|
|
5333
|
+
* (Franchi, Stoeger, Uberti USA) a dealer also carries** — the results page names no brand at
|
|
5334
|
+
* all, whatever an earlier read of the site suggested.
|
|
5335
|
+
*/
|
|
5336
|
+
findDealers(zip: string): Promise<benelliusaDealer[]>;
|
|
5337
|
+
}
|
|
5338
|
+
}
|
|
5339
|
+
|
|
4379
5340
|
declare namespace BowmarkProvider_bennington {
|
|
4380
5341
|
// ── Bennington Marine — the unit's own declarations, verbatim ──
|
|
4381
5342
|
interface BenningtonModel {
|
|
@@ -4525,6 +5486,54 @@ interface StoreStock {
|
|
|
4525
5486
|
}
|
|
4526
5487
|
}
|
|
4527
5488
|
|
|
5489
|
+
declare namespace BowmarkProvider_bigairusa {
|
|
5490
|
+
// ── Big Air Trampoline Park — the unit's own declarations, verbatim ──
|
|
5491
|
+
interface BigAirLocation {
|
|
5492
|
+
slug: string;
|
|
5493
|
+
name: string;
|
|
5494
|
+
comingSoon: boolean;
|
|
5495
|
+
webstoreSubdomain: string | null;
|
|
5496
|
+
}
|
|
5497
|
+
|
|
5498
|
+
interface BigAirPass {
|
|
5499
|
+
id: string;
|
|
5500
|
+
name: string;
|
|
5501
|
+
price: number | null;
|
|
5502
|
+
description: string | null;
|
|
5503
|
+
group: string;
|
|
5504
|
+
checkoutUrl: string;
|
|
5505
|
+
}
|
|
5506
|
+
|
|
5507
|
+
interface BigAirLocationCatalog {
|
|
5508
|
+
location: BigAirLocation;
|
|
5509
|
+
waiverUrl: string;
|
|
5510
|
+
passes: BigAirPass[];
|
|
5511
|
+
}
|
|
5512
|
+
|
|
5513
|
+
/**
|
|
5514
|
+
* Big Air Trampoline Park's own location directory and per-location CenterEdge ticket/pass
|
|
5515
|
+
* catalog — real prices, no login, no browser — plus the checkout and waiver handoff URLs a
|
|
5516
|
+
* purchase needs.
|
|
5517
|
+
*/
|
|
5518
|
+
interface Unit {
|
|
5519
|
+
/**
|
|
5520
|
+
* Lists every Big Air location off the site's own location-picker CMS collection — name, slug,
|
|
5521
|
+
* coming-soon flag, and (when it's on the classic CenterEdge webstore) the webstoreSubdomain
|
|
5522
|
+
* listPasses needs. Only comingSoon: false locations with a non-null webstoreSubdomain are
|
|
5523
|
+
* servable by listPasses today.
|
|
5524
|
+
*/
|
|
5525
|
+
listLocations(): Promise<BigAirLocation[]>;
|
|
5526
|
+
|
|
5527
|
+
/**
|
|
5528
|
+
* Lists every ticket/pass group and item at one open location's CenterEdge webstore — real
|
|
5529
|
+
* prices, descriptions — plus that location's checkout URL (per item, to add to cart) and
|
|
5530
|
+
* hosted-waiver URL. location is the slug listLocations() returns, e.g. "corona". Throws when
|
|
5531
|
+
* the location is coming-soon or is not on the classic webstore.
|
|
5532
|
+
*/
|
|
5533
|
+
listPasses(location: string): Promise<BigAirLocationCatalog>;
|
|
5534
|
+
}
|
|
5535
|
+
}
|
|
5536
|
+
|
|
4528
5537
|
declare namespace BowmarkProvider_bigjoeforklifts {
|
|
4529
5538
|
// ── Big Joe Forklifts — the unit's own declarations, verbatim ──
|
|
4530
5539
|
interface BigJoeRoiQuestion {
|
|
@@ -4687,6 +5696,77 @@ interface BingNewsSearchResult {
|
|
|
4687
5696
|
}
|
|
4688
5697
|
}
|
|
4689
5698
|
|
|
5699
|
+
declare namespace BowmarkProvider_bishops {
|
|
5700
|
+
// ── Bishops Cuts/Color — the unit's own declarations, verbatim ──
|
|
5701
|
+
interface BishopsLocationLink {
|
|
5702
|
+
slug: string;
|
|
5703
|
+
url: string;
|
|
5704
|
+
}
|
|
5705
|
+
|
|
5706
|
+
interface BishopsLocation {
|
|
5707
|
+
slug: string;
|
|
5708
|
+
name: string;
|
|
5709
|
+
url: string;
|
|
5710
|
+
centerId: string; // the id listServices and checkAvailability take
|
|
5711
|
+
phone: string | null;
|
|
5712
|
+
address: string | null;
|
|
5713
|
+
hours: string | null;
|
|
5714
|
+
}
|
|
5715
|
+
|
|
5716
|
+
interface BishopsService {
|
|
5717
|
+
id: string; // the id checkAvailability takes
|
|
5718
|
+
name: string;
|
|
5719
|
+
description: string | null;
|
|
5720
|
+
durationMinutes: number | null;
|
|
5721
|
+
price: number | null;
|
|
5722
|
+
}
|
|
5723
|
+
|
|
5724
|
+
interface BishopsSlot {
|
|
5725
|
+
time: string; // the site's own display time, e.g. "10:55 AM"
|
|
5726
|
+
}
|
|
5727
|
+
|
|
5728
|
+
interface BishopsAvailability {
|
|
5729
|
+
centerId: string;
|
|
5730
|
+
serviceId: string;
|
|
5731
|
+
date: string;
|
|
5732
|
+
slots: BishopsSlot[]; // verbatim — empty is a real answer (fully booked / closed)
|
|
5733
|
+
}
|
|
5734
|
+
|
|
5735
|
+
/**
|
|
5736
|
+
* Bishops Cuts/Color's real location directory, live per-location service catalog, and real
|
|
5737
|
+
* open-slot appointment availability — the same Zenoti booking backend the site's own widget
|
|
5738
|
+
* calls. Rung 9/11, no browser.
|
|
5739
|
+
*/
|
|
5740
|
+
interface Unit {
|
|
5741
|
+
/**
|
|
5742
|
+
* Reads the live list of every Bishops Cuts/Color location (slug + page URL) off the site's
|
|
5743
|
+
* own sitemap.
|
|
5744
|
+
*/
|
|
5745
|
+
listLocations(): Promise<BishopsLocationLink[]>;
|
|
5746
|
+
|
|
5747
|
+
/**
|
|
5748
|
+
* Resolves a slug/neighborhood query (e.g. "lowry") to the matching real Bishops location(s) —
|
|
5749
|
+
* name, address, phone, hours, and the Zenoti centerId listServices and checkAvailability
|
|
5750
|
+
* need. Call listLocations() first for the real slugs.
|
|
5751
|
+
*/
|
|
5752
|
+
findLocation(query: string): Promise<BishopsLocation[]>;
|
|
5753
|
+
|
|
5754
|
+
/**
|
|
5755
|
+
* Reads one location's real, live service catalog — pass a `centerId` from findLocation(), and
|
|
5756
|
+
* an optional search string (e.g. "cut", "color") to narrow it; omit it for the full catalog.
|
|
5757
|
+
*/
|
|
5758
|
+
listServices(centerId: string, query?: string): Promise<BishopsService[]>;
|
|
5759
|
+
|
|
5760
|
+
/**
|
|
5761
|
+
* Checks real, live open time slots for one service at one location on one "YYYY-MM-DD" date —
|
|
5762
|
+
* the same live check Bishops' own Zenoti booking widget makes before showing bookable times.
|
|
5763
|
+
* An empty `slots` array is the site's real answer (fully booked or closed that day), not an
|
|
5764
|
+
* error.
|
|
5765
|
+
*/
|
|
5766
|
+
checkAvailability(centerId: string, serviceId: string, date: string): Promise<BishopsAvailability>;
|
|
5767
|
+
}
|
|
5768
|
+
}
|
|
5769
|
+
|
|
4690
5770
|
declare namespace BowmarkProvider_blackstoneproducts {
|
|
4691
5771
|
// ── Blackstone Products — the unit's own declarations, verbatim ──
|
|
4692
5772
|
interface BlackstoneDealer {
|
|
@@ -5091,6 +6171,51 @@ interface BmwusaModelListing {
|
|
|
5091
6171
|
}
|
|
5092
6172
|
}
|
|
5093
6173
|
|
|
6174
|
+
declare namespace BowmarkProvider_boglewinery {
|
|
6175
|
+
// ── Bogle Family Vineyards — the unit's own declarations, verbatim ──
|
|
6176
|
+
interface BoglewineryPrice {
|
|
6177
|
+
priceDescription: string; // e.g. "Starting at $20 per person"
|
|
6178
|
+
pricePerPersonCents: { min: number; max: number } | null;
|
|
6179
|
+
}
|
|
6180
|
+
|
|
6181
|
+
interface BoglewineryExperience {
|
|
6182
|
+
id: number; // the id checkAvailability takes
|
|
6183
|
+
slug: string; // the slug checkAvailability takes
|
|
6184
|
+
name: string;
|
|
6185
|
+
description: string;
|
|
6186
|
+
price: BoglewineryPrice;
|
|
6187
|
+
partySizes: number[]; // bookable party sizes Tock currently offers
|
|
6188
|
+
state: string; // e.g. "AVAILABLE", "SOLD"
|
|
6189
|
+
}
|
|
6190
|
+
|
|
6191
|
+
interface BoglewineryAvailability {
|
|
6192
|
+
experienceId: number;
|
|
6193
|
+
slug: string;
|
|
6194
|
+
openDate: string[]; // "YYYY-MM-DD" — empty is a real answer (nothing currently open)
|
|
6195
|
+
openTime: string[]; // "HH:MM"
|
|
6196
|
+
}
|
|
6197
|
+
|
|
6198
|
+
/**
|
|
6199
|
+
* Bogle Family Vineyards' real Tock tasting-experience catalog and the computed open
|
|
6200
|
+
* dates/times for one — the same booking calendar Tock's own widget reads before showing
|
|
6201
|
+
* bookable slots. Rung 17, headed browser only (Cloudflare).
|
|
6202
|
+
*/
|
|
6203
|
+
interface Unit {
|
|
6204
|
+
/**
|
|
6205
|
+
* Reads Bogle's real, live Tock experience catalog — name, description, price and bookable
|
|
6206
|
+
* party-size range for every experience, including the Home Ranch Tasting Experience.
|
|
6207
|
+
*/
|
|
6208
|
+
listExperiences(): Promise<BoglewineryExperience[]>;
|
|
6209
|
+
|
|
6210
|
+
/**
|
|
6211
|
+
* Checks which upcoming dates and times Tock currently shows as open for one experience — pass
|
|
6212
|
+
* `experienceId` and `slug` from listExperiences(). An empty result is the site's real answer
|
|
6213
|
+
* (nothing currently open), not an error.
|
|
6214
|
+
*/
|
|
6215
|
+
checkAvailability(experienceId: number, slug: string): Promise<BoglewineryAvailability>;
|
|
6216
|
+
}
|
|
6217
|
+
}
|
|
6218
|
+
|
|
5094
6219
|
declare namespace BowmarkProvider_bollandbranch {
|
|
5095
6220
|
// ── Boll & Branch — the unit's own declarations, verbatim ──
|
|
5096
6221
|
interface BedDesignerStep {
|
|
@@ -5149,6 +6274,100 @@ interface BollAndBranchSwatch {
|
|
|
5149
6274
|
}
|
|
5150
6275
|
}
|
|
5151
6276
|
|
|
6277
|
+
declare namespace BowmarkProvider_borsheims {
|
|
6278
|
+
// ── Borsheims — the unit's own declarations, verbatim ──
|
|
6279
|
+
interface BorsheimsSearchResult {
|
|
6280
|
+
name: string; // derived from the URL slug, title-cased
|
|
6281
|
+
url: string; // pass to getProduct / configureRing
|
|
6282
|
+
lastmod: string | null;
|
|
6283
|
+
}
|
|
6284
|
+
interface BorsheimsProduct {
|
|
6285
|
+
code: string;
|
|
6286
|
+
name: string;
|
|
6287
|
+
basePrice: number; // dollars, before any discount
|
|
6288
|
+
price: number; // dollars, the real selling price
|
|
6289
|
+
discount: number | null;
|
|
6290
|
+
inventoryAvailable: number;
|
|
6291
|
+
imageUrl: string | null;
|
|
6292
|
+
url: string; // pass to getProduct / configureRing
|
|
6293
|
+
}
|
|
6294
|
+
interface BorsheimsRingConfiguration {
|
|
6295
|
+
setting: BorsheimsProduct;
|
|
6296
|
+
diamond: BorsheimsProduct;
|
|
6297
|
+
totalPrice: number; // dollars, setting.price + diamond.price
|
|
6298
|
+
builderUrl: string; // the handoff — open this to configure/buy
|
|
6299
|
+
}
|
|
6300
|
+
interface ConfigureRingArgs {
|
|
6301
|
+
settingUrl: string;
|
|
6302
|
+
diamondUrl: string;
|
|
6303
|
+
}
|
|
6304
|
+
|
|
6305
|
+
/**
|
|
6306
|
+
* Reads Borsheims' live product catalog and composes a setting + diamond into a priced ring,
|
|
6307
|
+
* straight off borsheims.com's own embedded product data — no key, no browser.
|
|
6308
|
+
*/
|
|
6309
|
+
interface Unit {
|
|
6310
|
+
/**
|
|
6311
|
+
* Turns a free-text query into real borsheims.com product page URLs — the LOCATOR getProduct
|
|
6312
|
+
* and configureRing need — by matching every query token against the site's own sitemap.xml
|
|
6313
|
+
* (~16,000 URLs, no login, no browser). Returns [] for a query nothing matches, an honest
|
|
6314
|
+
* empty result.
|
|
6315
|
+
*/
|
|
6316
|
+
searchProducts(query: string): Promise<BorsheimsSearchResult[]>;
|
|
6317
|
+
|
|
6318
|
+
/**
|
|
6319
|
+
* Reads one product's real, live price straight off its product page's own embedded data
|
|
6320
|
+
* (mivaJS.product) — the same JSON the page's own components render from, including any active
|
|
6321
|
+
* discount. Takes the full borsheims.com product page URL. THROWS rather than guessing when
|
|
6322
|
+
* the page's own product-data block is missing or unparseable.
|
|
6323
|
+
*/
|
|
6324
|
+
getProduct(url: string): Promise<BorsheimsProduct>;
|
|
6325
|
+
|
|
6326
|
+
/**
|
|
6327
|
+
* Composes a setting product page and a diamond/center-stone product page into a priced ring —
|
|
6328
|
+
* setting.price + diamond.price — the same arithmetic the site's own ring builder performs,
|
|
6329
|
+
* plus the ring-builder URL as the handoff to actually configure and buy.
|
|
6330
|
+
*/
|
|
6331
|
+
configureRing(args: ConfigureRingArgs): Promise<BorsheimsRingConfiguration>;
|
|
6332
|
+
}
|
|
6333
|
+
}
|
|
6334
|
+
|
|
6335
|
+
declare namespace BowmarkProvider_boxlunch {
|
|
6336
|
+
// ── BoxLunch — the unit's own declarations, verbatim ──
|
|
6337
|
+
interface BoxlunchOffer {
|
|
6338
|
+
sku: string
|
|
6339
|
+
color: string | null
|
|
6340
|
+
size: string | null
|
|
6341
|
+
price: number | null
|
|
6342
|
+
currency: string | null
|
|
6343
|
+
availability: string | null // the site's own schema.org availability URL
|
|
6344
|
+
url: string
|
|
6345
|
+
}
|
|
6346
|
+
interface BoxlunchProduct {
|
|
6347
|
+
name: string
|
|
6348
|
+
url: string
|
|
6349
|
+
image: string | null
|
|
6350
|
+
offers: BoxlunchOffer[]
|
|
6351
|
+
}
|
|
6352
|
+
interface BoxlunchSearchResult {
|
|
6353
|
+
products: BoxlunchProduct[]
|
|
6354
|
+
}
|
|
6355
|
+
|
|
6356
|
+
/**
|
|
6357
|
+
* BoxLunch's own storefront search (boxlunch.com) — licensed pop-culture and entertainment
|
|
6358
|
+
* merch (apparel, figures, accessories, home goods) across every property the store carries,
|
|
6359
|
+
* read straight off the site's own structured search-result data.
|
|
6360
|
+
*/
|
|
6361
|
+
interface Unit {
|
|
6362
|
+
/**
|
|
6363
|
+
* Searches boxlunch.com's own storefront for a keyword and returns the real, priced product
|
|
6364
|
+
* results (name, image, per-SKU price/color/size/availability) exactly as the site's own
|
|
6365
|
+
* search page carries them.
|
|
6366
|
+
*/
|
|
6367
|
+
search(arg: { query: string }): Promise<BoxlunchSearchResult>;
|
|
6368
|
+
}
|
|
6369
|
+
}
|
|
6370
|
+
|
|
5152
6371
|
declare namespace BowmarkProvider_boydsleep {
|
|
5153
6372
|
// ── Boyd Sleep — the unit's own declarations, verbatim ──
|
|
5154
6373
|
// Boyd Sleep's OWN shapes — not a capability contract.
|
|
@@ -5205,6 +6424,43 @@ interface Boydsleep6ZoneResult {
|
|
|
5205
6424
|
}
|
|
5206
6425
|
}
|
|
5207
6426
|
|
|
6427
|
+
declare namespace BowmarkProvider_brius {
|
|
6428
|
+
// ── Brava by BRIUS — the unit's own declarations, verbatim ──
|
|
6429
|
+
// Brava's OWN shapes — not a capability contract.
|
|
6430
|
+
|
|
6431
|
+
interface BriusProviderListing {
|
|
6432
|
+
name: string; // e.g. "Embrace Orthodontics"
|
|
6433
|
+
url: string; // the practice's own listing page on bravabraces.com
|
|
6434
|
+
doctorName: string | null;
|
|
6435
|
+
streetAddress: string | null;
|
|
6436
|
+
city: string | null;
|
|
6437
|
+
region: string | null;
|
|
6438
|
+
postalCode: string | null;
|
|
6439
|
+
country: string | null;
|
|
6440
|
+
phone: string | null;
|
|
6441
|
+
website: string | null; // the practice's own external site, when listed
|
|
6442
|
+
}
|
|
6443
|
+
|
|
6444
|
+
interface BriusProviderSearch {
|
|
6445
|
+
query: string;
|
|
6446
|
+
providers: BriusProviderListing[];
|
|
6447
|
+
}
|
|
6448
|
+
|
|
6449
|
+
/**
|
|
6450
|
+
* Brava (by Brius Technologies) hidden lingual braces are sold only through certified
|
|
6451
|
+
* orthodontists — search the site's own find-a-provider locator by zip code or location and
|
|
6452
|
+
* get back real, currently-listed certified practices with address, phone and doctor name.
|
|
6453
|
+
*/
|
|
6454
|
+
interface Unit {
|
|
6455
|
+
/**
|
|
6456
|
+
* Runs Brava's own find-a-provider locator search for a zip code or location string and
|
|
6457
|
+
* returns the certified orthodontist practices it lists — name, doctor, address, phone and
|
|
6458
|
+
* website, straight from the site's own current data.
|
|
6459
|
+
*/
|
|
6460
|
+
findProviders(query: string): Promise<BriusProviderSearch>;
|
|
6461
|
+
}
|
|
6462
|
+
}
|
|
6463
|
+
|
|
5208
6464
|
declare namespace BowmarkProvider_brixton {
|
|
5209
6465
|
// ── Brixton — the unit's own declarations, verbatim ──
|
|
5210
6466
|
interface BrixtonVariant {
|
|
@@ -5327,6 +6583,91 @@ interface BulletproofNearbyStores {
|
|
|
5327
6583
|
}
|
|
5328
6584
|
}
|
|
5329
6585
|
|
|
6586
|
+
declare namespace BowmarkProvider_bungalow {
|
|
6587
|
+
// ── Bungalow — the unit's own declarations, verbatim ──
|
|
6588
|
+
interface BungalowMarket {
|
|
6589
|
+
slug: string;
|
|
6590
|
+
displayName: string;
|
|
6591
|
+
region: string;
|
|
6592
|
+
regionCode: string;
|
|
6593
|
+
country: string;
|
|
6594
|
+
countryCode: string;
|
|
6595
|
+
}
|
|
6596
|
+
|
|
6597
|
+
interface BungalowListingSummary {
|
|
6598
|
+
id: string;
|
|
6599
|
+
slug: string;
|
|
6600
|
+
headline: string | null;
|
|
6601
|
+
marketingType: "co_living" | "group_living" | string;
|
|
6602
|
+
numBathrooms: string;
|
|
6603
|
+
sqft: number | null;
|
|
6604
|
+
city: string;
|
|
6605
|
+
neighborhood: string | null;
|
|
6606
|
+
marketSlug: string;
|
|
6607
|
+
marketDisplayName: string;
|
|
6608
|
+
isComingSoon: boolean;
|
|
6609
|
+
}
|
|
6610
|
+
|
|
6611
|
+
interface BungalowSearchResult {
|
|
6612
|
+
listings: BungalowListingSummary[];
|
|
6613
|
+
count: number;
|
|
6614
|
+
totalMatching: number;
|
|
6615
|
+
}
|
|
6616
|
+
|
|
6617
|
+
interface BungalowSearchFilters {
|
|
6618
|
+
marketSlug: string;
|
|
6619
|
+
marketingType?: "co_living" | "group_living";
|
|
6620
|
+
neighborhoodSlug?: string;
|
|
6621
|
+
minPrice?: number;
|
|
6622
|
+
maxPrice?: number;
|
|
6623
|
+
petFriendly?: boolean;
|
|
6624
|
+
limit?: number;
|
|
6625
|
+
}
|
|
6626
|
+
|
|
6627
|
+
interface BungalowListingDetail {
|
|
6628
|
+
id: string;
|
|
6629
|
+
slug: string;
|
|
6630
|
+
headline: string | null;
|
|
6631
|
+
marketingType: "co_living" | "group_living" | string;
|
|
6632
|
+
totalRoomCount: number;
|
|
6633
|
+
availableRoomCount: number;
|
|
6634
|
+
earliestAvailableDate: string | null;
|
|
6635
|
+
roomPrices: number[];
|
|
6636
|
+
fullPropertyPrice: number | null;
|
|
6637
|
+
sqft: number | null;
|
|
6638
|
+
numBathrooms: string;
|
|
6639
|
+
amenities: unknown;
|
|
6640
|
+
matterportUrl: string | null;
|
|
6641
|
+
activePromotions: string[];
|
|
6642
|
+
isMeetAndGreetAvailable: boolean;
|
|
6643
|
+
showingsAvailable: { virtual: string | null; inPerson: string | null };
|
|
6644
|
+
}
|
|
6645
|
+
|
|
6646
|
+
/**
|
|
6647
|
+
* Bungalow's live, priced room and whole-home rental inventory and tour-booking availability,
|
|
6648
|
+
* read straight off their own documented API — no key, no browser.
|
|
6649
|
+
*/
|
|
6650
|
+
interface Unit {
|
|
6651
|
+
/**
|
|
6652
|
+
* Lists every market Bungalow currently operates in, with the slug every other function's
|
|
6653
|
+
* marketSlug argument takes.
|
|
6654
|
+
*/
|
|
6655
|
+
listMarkets(): Promise<{ markets: BungalowMarket[] }>;
|
|
6656
|
+
|
|
6657
|
+
/**
|
|
6658
|
+
* Searches live, priced room and whole-home rental listings in one market, filterable by
|
|
6659
|
+
* price, neighborhood and marketing type.
|
|
6660
|
+
*/
|
|
6661
|
+
searchListings(filters: BungalowSearchFilters): Promise<BungalowSearchResult>;
|
|
6662
|
+
|
|
6663
|
+
/**
|
|
6664
|
+
* Returns one listing's full detail — room-level rent and availability, amenities, promotions
|
|
6665
|
+
* and tour-booking availability.
|
|
6666
|
+
*/
|
|
6667
|
+
getListing(slug: string): Promise<BungalowListingDetail>;
|
|
6668
|
+
}
|
|
6669
|
+
}
|
|
6670
|
+
|
|
5330
6671
|
declare namespace BowmarkProvider_bykoket {
|
|
5331
6672
|
// ── KOKET — the unit's own declarations, verbatim ──
|
|
5332
6673
|
interface KoketProductSummary {
|
|
@@ -5459,6 +6800,141 @@ interface byltbasicsPackHandoff {
|
|
|
5459
6800
|
}
|
|
5460
6801
|
}
|
|
5461
6802
|
|
|
6803
|
+
declare namespace BowmarkProvider_cabinsforyou {
|
|
6804
|
+
// ── Cabins For You — the unit's own declarations, verbatim ──
|
|
6805
|
+
// Cabins For You's OWN shapes — not a capability contract.
|
|
6806
|
+
|
|
6807
|
+
interface CabinsforyouListing {
|
|
6808
|
+
name: string;
|
|
6809
|
+
url: string;
|
|
6810
|
+
nightlyRate: number | null;
|
|
6811
|
+
originalNightlyRate: number | null;
|
|
6812
|
+
bedrooms: number;
|
|
6813
|
+
bathrooms: number;
|
|
6814
|
+
sleeps: number;
|
|
6815
|
+
sqft: number | null;
|
|
6816
|
+
petsAllowed: boolean;
|
|
6817
|
+
rating: number | null;
|
|
6818
|
+
reviewCount: number | null;
|
|
6819
|
+
imageUrl: string | null;
|
|
6820
|
+
bookCabinUrl: string;
|
|
6821
|
+
}
|
|
6822
|
+
|
|
6823
|
+
interface CabinsforyouSearchResult {
|
|
6824
|
+
resultCount: number;
|
|
6825
|
+
cabins: CabinsforyouListing[];
|
|
6826
|
+
}
|
|
6827
|
+
|
|
6828
|
+
interface CabinsforyouCabinDetail {
|
|
6829
|
+
name: string;
|
|
6830
|
+
url: string;
|
|
6831
|
+
city: string;
|
|
6832
|
+
bedrooms: number | null;
|
|
6833
|
+
bathrooms: number | null;
|
|
6834
|
+
sleeps: number | null;
|
|
6835
|
+
parking: string | null;
|
|
6836
|
+
petsAllowed: boolean | null;
|
|
6837
|
+
amenities: string[];
|
|
6838
|
+
rating: number | null;
|
|
6839
|
+
reviewCount: number | null;
|
|
6840
|
+
description: string;
|
|
6841
|
+
unitId: string | null;
|
|
6842
|
+
bookingQuoteUrl: string; // the WRITE handoff this provider never performs
|
|
6843
|
+
}
|
|
6844
|
+
|
|
6845
|
+
interface CabinsforyouSearchArgs {
|
|
6846
|
+
checkIn: string; // MM/DD/YYYY
|
|
6847
|
+
checkOut: string; // MM/DD/YYYY
|
|
6848
|
+
guests?: number;
|
|
6849
|
+
bedrooms?: number;
|
|
6850
|
+
}
|
|
6851
|
+
|
|
6852
|
+
/**
|
|
6853
|
+
* Cabins For You's live Smoky Mountain cabin-availability search (Check In / Check Out /
|
|
6854
|
+
* Guests / Bedrooms) off the site's own search page — real priced results, not a stale
|
|
6855
|
+
* aggregator mirror — plus one cabin's own amenities, room counts and booking-quote handoff.
|
|
6856
|
+
*/
|
|
6857
|
+
interface Unit {
|
|
6858
|
+
/**
|
|
6859
|
+
* Runs Cabins For You's own homepage cabin-availability search and returns the real matching
|
|
6860
|
+
* cabins, priced. `args.checkIn` / `args.checkOut` are MM/DD/YYYY (the site's own date
|
|
6861
|
+
* format); `guests` and `bedrooms` are optional minimums.
|
|
6862
|
+
*/
|
|
6863
|
+
search(args: CabinsforyouSearchArgs): Promise<CabinsforyouSearchResult>;
|
|
6864
|
+
|
|
6865
|
+
/**
|
|
6866
|
+
* Reads one cabin's own listing page — room counts, pet policy, amenities, description and
|
|
6867
|
+
* rating, plus the booking-quote handoff. `url` is a listing URL from a `search` result.
|
|
6868
|
+
*/
|
|
6869
|
+
getCabinDetail(url: string): Promise<CabinsforyouCabinDetail>;
|
|
6870
|
+
}
|
|
6871
|
+
}
|
|
6872
|
+
|
|
6873
|
+
declare namespace BowmarkProvider_caliberhealth {
|
|
6874
|
+
// ── Caliber Healthcare Solutions — the unit's own declarations, verbatim ──
|
|
6875
|
+
// Caliber Healthcare Solutions' OWN shapes — not a capability contract.
|
|
6876
|
+
|
|
6877
|
+
interface CaliberhealthJobListing {
|
|
6878
|
+
title: string;
|
|
6879
|
+
jobId: string;
|
|
6880
|
+
postedDate: string;
|
|
6881
|
+
specialty: string;
|
|
6882
|
+
credentialType: string | null;
|
|
6883
|
+
state: string | null;
|
|
6884
|
+
zip: string | null;
|
|
6885
|
+
url: string;
|
|
6886
|
+
}
|
|
6887
|
+
|
|
6888
|
+
interface CaliberhealthSearchResult {
|
|
6889
|
+
jobs: CaliberhealthJobListing[];
|
|
6890
|
+
jobsOnPage: number;
|
|
6891
|
+
page: number;
|
|
6892
|
+
hasMorePages: boolean;
|
|
6893
|
+
}
|
|
6894
|
+
|
|
6895
|
+
interface CaliberhealthSearchArgs {
|
|
6896
|
+
specialty?: string;
|
|
6897
|
+
location?: string;
|
|
6898
|
+
keywords?: string;
|
|
6899
|
+
page?: number;
|
|
6900
|
+
}
|
|
6901
|
+
|
|
6902
|
+
interface CaliberhealthJobDetail {
|
|
6903
|
+
title: string;
|
|
6904
|
+
jobId: string;
|
|
6905
|
+
postedDate: string;
|
|
6906
|
+
specialty: string;
|
|
6907
|
+
location: string;
|
|
6908
|
+
facilityType: string | null;
|
|
6909
|
+
schedule: string | null;
|
|
6910
|
+
assignmentDetails: string | null;
|
|
6911
|
+
assignmentLength: string | null;
|
|
6912
|
+
aboutBlurb: string;
|
|
6913
|
+
url: string;
|
|
6914
|
+
applyUrl: string; // the WRITE handoff this provider never performs
|
|
6915
|
+
}
|
|
6916
|
+
|
|
6917
|
+
/**
|
|
6918
|
+
* Caliber Healthcare Solutions' live locum-tenens job board (/healthcare-jobs) off the site's
|
|
6919
|
+
* own server-rendered listings — real open jobs filterable by specialty/location/keywords, not
|
|
6920
|
+
* a stale mirror — plus one job's own full detail and apply handoff.
|
|
6921
|
+
*/
|
|
6922
|
+
interface Unit {
|
|
6923
|
+
/**
|
|
6924
|
+
* Runs Caliber Healthcare Solutions' own live job-board search and returns the real open
|
|
6925
|
+
* locum-tenens jobs on the requested page, filtered by specialty/location/keywords. Call again
|
|
6926
|
+
* with an incremented `page` while `hasMorePages` is true.
|
|
6927
|
+
*/
|
|
6928
|
+
search(args?: CaliberhealthSearchArgs): Promise<CaliberhealthSearchResult>;
|
|
6929
|
+
|
|
6930
|
+
/**
|
|
6931
|
+
* Reads one job's own detail page — specialty, location, facility type, schedule, assignment
|
|
6932
|
+
* length, and the apply handoff. `url` is a job URL from a `search` result.
|
|
6933
|
+
*/
|
|
6934
|
+
getJob(url: string): Promise<CaliberhealthJobDetail>;
|
|
6935
|
+
}
|
|
6936
|
+
}
|
|
6937
|
+
|
|
5462
6938
|
declare namespace BowmarkProvider_califloors {
|
|
5463
6939
|
// ── CALI — the unit's own declarations, verbatim ──
|
|
5464
6940
|
// CALI's OWN shapes — not a capability contract.
|
|
@@ -5506,6 +6982,13 @@ interface CaliProductDetail extends CaliProduct {
|
|
|
5506
6982
|
|
|
5507
6983
|
declare namespace BowmarkProvider_camelcamelcamel {
|
|
5508
6984
|
// ── camelcamelcamel — the unit's own declarations, verbatim ──
|
|
6985
|
+
interface CamelSearchResult {
|
|
6986
|
+
asin: string;
|
|
6987
|
+
title: string;
|
|
6988
|
+
currentPrice: number | null;
|
|
6989
|
+
url: string;
|
|
6990
|
+
}
|
|
6991
|
+
|
|
5509
6992
|
interface CamelPriceStat {
|
|
5510
6993
|
price: number | null;
|
|
5511
6994
|
date: string | null;
|
|
@@ -5533,6 +7016,13 @@ interface CamelPriceHistory {
|
|
|
5533
7016
|
* for.
|
|
5534
7017
|
*/
|
|
5535
7018
|
interface Unit {
|
|
7019
|
+
/**
|
|
7020
|
+
* Runs camelcamelcamel's own Amazon-product search and returns each hit's ASIN, title and
|
|
7021
|
+
* current price — the locator this provider was missing: `getPriceHistory` takes an ASIN, and
|
|
7022
|
+
* this is how a caller holding only a shopper's words finds one.
|
|
7023
|
+
*/
|
|
7024
|
+
search(query: string): Promise<CamelSearchResult[]>;
|
|
7025
|
+
|
|
5536
7026
|
/**
|
|
5537
7027
|
* Reads camelcamelcamel's independently-tracked Amazon price history for one ASIN — the site's
|
|
5538
7028
|
* own lowest-ever/highest-ever/current/average figures, each dated, for the Amazon,
|
|
@@ -5816,6 +7306,139 @@ interface CarePatrolFindLocalAdvisorResult {
|
|
|
5816
7306
|
}
|
|
5817
7307
|
}
|
|
5818
7308
|
|
|
7309
|
+
declare namespace BowmarkProvider_carmelrealtycompany {
|
|
7310
|
+
// ── Carmel Realty Company — the unit's own declarations, verbatim ──
|
|
7311
|
+
interface carmelrealtycompanyListingSummary {
|
|
7312
|
+
url: string;
|
|
7313
|
+
slug: string | null;
|
|
7314
|
+
city: string;
|
|
7315
|
+
price: string;
|
|
7316
|
+
priceValue: number | null;
|
|
7317
|
+
latitude: number;
|
|
7318
|
+
longitude: number;
|
|
7319
|
+
}
|
|
7320
|
+
interface carmelrealtycompanyListing {
|
|
7321
|
+
slug: string;
|
|
7322
|
+
url: string;
|
|
7323
|
+
address: string;
|
|
7324
|
+
sold: boolean;
|
|
7325
|
+
price: string;
|
|
7326
|
+
priceValue: number | null;
|
|
7327
|
+
mlsNumber: string | null;
|
|
7328
|
+
bedrooms: string | null;
|
|
7329
|
+
bathrooms: string | null;
|
|
7330
|
+
lotSize: string | null;
|
|
7331
|
+
squareFootage: string | null;
|
|
7332
|
+
}
|
|
7333
|
+
|
|
7334
|
+
/**
|
|
7335
|
+
* Runs Carmel Realty Company's own regional listing search and listing-detail pages and
|
|
7336
|
+
* returns real, live MLS-backed rows — address, price, MLS number, beds/baths, coordinates —
|
|
7337
|
+
* for Carmel-by-the-Sea, Carmel Valley, Monterey and Pacific Grove.
|
|
7338
|
+
*/
|
|
7339
|
+
interface Unit {
|
|
7340
|
+
/**
|
|
7341
|
+
* Runs one of Carmel Realty Company's own regional listing-search pages and returns every
|
|
7342
|
+
* active listing it maps: the listing's own detail-page URL (and a slug you can pass to
|
|
7343
|
+
* `getListing`, `null` for the rare listing that points at a dedicated marketing microsite
|
|
7344
|
+
* instead), city, the site's own formatted price plus a parsed `priceValue`, and coordinates.
|
|
7345
|
+
* Rows come straight off the page's live Mapbox data, price-descending as the site itself
|
|
7346
|
+
* orders them.
|
|
7347
|
+
*/
|
|
7348
|
+
searchListings(region: "carmel" | "carmel-valley" | "monterey" | "pacific-grove" | "global"): Promise<carmelrealtycompanyListingSummary[]>;
|
|
7349
|
+
|
|
7350
|
+
/**
|
|
7351
|
+
* Fetches one Carmel Realty Company listing detail page by its slug (the `slug` a
|
|
7352
|
+
* `searchListings` row returns, e.g. "5466-quail-way-carmel") and returns its address,
|
|
7353
|
+
* sold/active status, price, MLS number, bedrooms, bathrooms, lot size and square footage —
|
|
7354
|
+
* the site's own live data, not a cached copy.
|
|
7355
|
+
*/
|
|
7356
|
+
getListing(slug: string): Promise<carmelrealtycompanyListing>;
|
|
7357
|
+
}
|
|
7358
|
+
}
|
|
7359
|
+
|
|
7360
|
+
declare namespace BowmarkProvider_carolefabrics {
|
|
7361
|
+
// ── Carole Fabrics — the unit's own declarations, verbatim ──
|
|
7362
|
+
interface CarolefabricsSearchArgs {
|
|
7363
|
+
category: "fabric" | "trim";
|
|
7364
|
+
keyword: string;
|
|
7365
|
+
}
|
|
7366
|
+
interface CarolefabricsItem {
|
|
7367
|
+
patternName: string;
|
|
7368
|
+
colorName: string | null;
|
|
7369
|
+
sku: string;
|
|
7370
|
+
book: string;
|
|
7371
|
+
imageUrl: string;
|
|
7372
|
+
promoCode: string | null;
|
|
7373
|
+
promoLabel: string | null;
|
|
7374
|
+
}
|
|
7375
|
+
interface CarolefabricsSearchResult {
|
|
7376
|
+
category: "fabric" | "trim";
|
|
7377
|
+
keyword: string;
|
|
7378
|
+
items: CarolefabricsItem[];
|
|
7379
|
+
totalMatches: number;
|
|
7380
|
+
}
|
|
7381
|
+
|
|
7382
|
+
/**
|
|
7383
|
+
* Carole Fabrics' own CaroleNet trade-catalog search (carolenet.com) — a live keyword search
|
|
7384
|
+
* over their real fabric or trim catalog, returning actual matching patterns/colorways with
|
|
7385
|
+
* SKU, book and any active promotion. Public, no login required.
|
|
7386
|
+
*/
|
|
7387
|
+
interface Unit {
|
|
7388
|
+
/**
|
|
7389
|
+
* Runs a keyword search against CaroleNet's live fabric or trim catalog and returns the real
|
|
7390
|
+
* matching patterns/colorways — pattern name, colorway, SKU, book, image and any active
|
|
7391
|
+
* promotion — plus the total match count.
|
|
7392
|
+
*/
|
|
7393
|
+
search(args: CarolefabricsSearchArgs): Promise<CarolefabricsSearchResult>;
|
|
7394
|
+
}
|
|
7395
|
+
}
|
|
7396
|
+
|
|
7397
|
+
declare namespace BowmarkProvider_carpetlandusa {
|
|
7398
|
+
// ── Carpetland USA — the unit's own declarations, verbatim ──
|
|
7399
|
+
// Carpetland USA's OWN shapes — not a capability contract.
|
|
7400
|
+
|
|
7401
|
+
interface CarpetlandCategory { id: number; name: string; slug: string; count: number }
|
|
7402
|
+
|
|
7403
|
+
interface CarpetlandProductSummary { slug: string; title: string; url: string }
|
|
7404
|
+
|
|
7405
|
+
interface CarpetlandProductDetail extends CarpetlandProductSummary {
|
|
7406
|
+
style: string | null;
|
|
7407
|
+
color: string | null;
|
|
7408
|
+
material: string | null; // e.g. "Rigid – Plank"
|
|
7409
|
+
sqFtPerCarton: number | null;
|
|
7410
|
+
roomDescription: string | null; // e.g. "12'x9' Room / 108 sq ft"
|
|
7411
|
+
installedPrice: string | null; // e.g. "$722"
|
|
7412
|
+
installedPriceValue: number | null;
|
|
7413
|
+
callForPricing: boolean; // true when the site has no posted price for this SKU
|
|
7414
|
+
}
|
|
7415
|
+
|
|
7416
|
+
/**
|
|
7417
|
+
* Carpetland USA's own flooring catalog — the category taxonomy, a keyword search over any
|
|
7418
|
+
* category's live listing, and one SKU's real style/color/material and its computed installed
|
|
7419
|
+
* price for a standard 12'x9' room, straight off the site's own WordPress REST API.
|
|
7420
|
+
*/
|
|
7421
|
+
interface Unit {
|
|
7422
|
+
/**
|
|
7423
|
+
* Carpetland USA's own product-catalog taxonomy — every category, its slug and its live
|
|
7424
|
+
* product count.
|
|
7425
|
+
*/
|
|
7426
|
+
listCategories(): Promise<CarpetlandCategory[]>;
|
|
7427
|
+
|
|
7428
|
+
/**
|
|
7429
|
+
* The first page (up to 100) of the catalog, or one category's listing (e.g. "waterproof-lvp"
|
|
7430
|
+
* from listCategories), optionally filtered by a keyword against the product title.
|
|
7431
|
+
*/
|
|
7432
|
+
searchProducts(categorySlug?: string, keyword?: string): Promise<{ products: CarpetlandProductSummary[]; category: CarpetlandCategory | null }>;
|
|
7433
|
+
|
|
7434
|
+
/**
|
|
7435
|
+
* One product's own catalog page — its real style, color, material, coverage per carton and,
|
|
7436
|
+
* when the SKU has one, the computed installed price for a standard 12'x9' room.
|
|
7437
|
+
*/
|
|
7438
|
+
getProduct(slugOrUrl: string): Promise<CarpetlandProductDetail>;
|
|
7439
|
+
}
|
|
7440
|
+
}
|
|
7441
|
+
|
|
5819
7442
|
declare namespace BowmarkProvider_cars {
|
|
5820
7443
|
// ── Cars.com — the unit's own declarations, verbatim ──
|
|
5821
7444
|
interface carsListing {
|
|
@@ -5923,6 +7546,348 @@ interface carsVehicleValue {
|
|
|
5923
7546
|
}
|
|
5924
7547
|
}
|
|
5925
7548
|
|
|
7549
|
+
declare namespace BowmarkProvider_carusohomes {
|
|
7550
|
+
// ── Caruso Homes — the unit's own declarations, verbatim ──
|
|
7551
|
+
interface CarusoCommunity {
|
|
7552
|
+
name: string;
|
|
7553
|
+
url: string;
|
|
7554
|
+
listingId: string | null;
|
|
7555
|
+
streetAddress: string | null;
|
|
7556
|
+
city: string | null;
|
|
7557
|
+
state: string | null;
|
|
7558
|
+
postalCode: string | null;
|
|
7559
|
+
latitude: number | null;
|
|
7560
|
+
longitude: number | null;
|
|
7561
|
+
description: string;
|
|
7562
|
+
images: string[];
|
|
7563
|
+
startingPriceLabel: string | null;
|
|
7564
|
+
}
|
|
7565
|
+
|
|
7566
|
+
interface CarusoFloorPlan {
|
|
7567
|
+
name: string;
|
|
7568
|
+
url: string;
|
|
7569
|
+
listingId: string | null;
|
|
7570
|
+
collection: string | null;
|
|
7571
|
+
priceLabel: string | null;
|
|
7572
|
+
priceValue: number | null;
|
|
7573
|
+
beds: number | null;
|
|
7574
|
+
baths: number | null;
|
|
7575
|
+
sqft: number | null;
|
|
7576
|
+
buildOnYourLot: boolean;
|
|
7577
|
+
}
|
|
7578
|
+
|
|
7579
|
+
interface CarusoFormFieldOption {
|
|
7580
|
+
value: string;
|
|
7581
|
+
label: string;
|
|
7582
|
+
}
|
|
7583
|
+
|
|
7584
|
+
interface CarusoFormField {
|
|
7585
|
+
name: string;
|
|
7586
|
+
label: string;
|
|
7587
|
+
type: "text" | "email" | "tel" | "date" | "checkbox" | "select";
|
|
7588
|
+
required: boolean;
|
|
7589
|
+
options?: CarusoFormFieldOption[];
|
|
7590
|
+
}
|
|
7591
|
+
|
|
7592
|
+
interface CarusoTourAppointmentSchema {
|
|
7593
|
+
entryUrl: string;
|
|
7594
|
+
communityName: string;
|
|
7595
|
+
itemOfInterestId: string;
|
|
7596
|
+
fields: CarusoFormField[];
|
|
7597
|
+
}
|
|
7598
|
+
|
|
7599
|
+
interface SearchCommunitiesArgs {
|
|
7600
|
+
market: string; // e.g. "md/maryland", "nc/charlotte" — the path segment carusohomes.com uses under /new-homes/<market>/
|
|
7601
|
+
}
|
|
7602
|
+
|
|
7603
|
+
interface SearchFloorPlansArgs {
|
|
7604
|
+
market: string;
|
|
7605
|
+
buildOnYourLot?: boolean; // true -> the market's Build-on-Your-Lot listing; false/omitted -> community-attached plans
|
|
7606
|
+
}
|
|
7607
|
+
|
|
7608
|
+
interface GetTourAppointmentSchemaArgs {
|
|
7609
|
+
communityUrl: string; // a community URL from searchCommunities, e.g. "https://www.carusohomes.com/new-homes/md/ellicott-city/mill-creek/18641/"
|
|
7610
|
+
}
|
|
7611
|
+
|
|
7612
|
+
interface AssembleTourRequestArgs {
|
|
7613
|
+
communityUrl: string;
|
|
7614
|
+
firstName: string;
|
|
7615
|
+
lastName: string;
|
|
7616
|
+
email: string;
|
|
7617
|
+
phone?: string;
|
|
7618
|
+
desiredPriceRangeMinimum?: string;
|
|
7619
|
+
desiredPriceRangeMaximum?: string;
|
|
7620
|
+
whenToMove?: string;
|
|
7621
|
+
preferredAppointmentDate?: string; // "YYYY-MM-DD"
|
|
7622
|
+
message?: string;
|
|
7623
|
+
textOptIn?: boolean;
|
|
7624
|
+
}
|
|
7625
|
+
|
|
7626
|
+
interface AssembledTourRequest {
|
|
7627
|
+
valid: boolean;
|
|
7628
|
+
errors: string[];
|
|
7629
|
+
entryUrl: string;
|
|
7630
|
+
formFields: Record<string, string>;
|
|
7631
|
+
summary: string;
|
|
7632
|
+
}
|
|
7633
|
+
|
|
7634
|
+
/**
|
|
7635
|
+
* Caruso Homes' own live community and Build-on-Your-Lot floor-plan listings, plus each
|
|
7636
|
+
* community's own 'Schedule a Tour' form — reads the real field schema and assembles a
|
|
7637
|
+
* validated, ready-to-submit tour request. Never submits it.
|
|
7638
|
+
*/
|
|
7639
|
+
interface Unit {
|
|
7640
|
+
/**
|
|
7641
|
+
* Every live community on one of Caruso Homes' market listing pages — name, address, geo,
|
|
7642
|
+
* image, description and the site's own best-effort starting-price band.
|
|
7643
|
+
*/
|
|
7644
|
+
searchCommunities(args: SearchCommunitiesArgs): Promise<CarusoCommunity[]>;
|
|
7645
|
+
|
|
7646
|
+
/**
|
|
7647
|
+
* Every floor-plan card on a market's listing — community-attached by default, or
|
|
7648
|
+
* Build-on-Your-Lot when buildOnYourLot is true — with price, beds, baths and square footage.
|
|
7649
|
+
*/
|
|
7650
|
+
searchFloorPlans(args: SearchFloorPlansArgs): Promise<CarusoFloorPlan[]>;
|
|
7651
|
+
|
|
7652
|
+
/**
|
|
7653
|
+
* One community's own live 'Schedule a Tour' form: every visible field (type, required-ness,
|
|
7654
|
+
* real enumerated options) plus that community's item_of_interest_id.
|
|
7655
|
+
*/
|
|
7656
|
+
getTourAppointmentSchema(args: GetTourAppointmentSchemaArgs): Promise<CarusoTourAppointmentSchema>;
|
|
7657
|
+
|
|
7658
|
+
/**
|
|
7659
|
+
* Validates a caller's tour request against a community's live form schema and maps it onto
|
|
7660
|
+
* the site's own field names, ready to submit to /xhr/schedule-appointment/. Never submits it.
|
|
7661
|
+
*/
|
|
7662
|
+
assembleTourRequest(args: AssembleTourRequestArgs): Promise<AssembledTourRequest>;
|
|
7663
|
+
}
|
|
7664
|
+
}
|
|
7665
|
+
|
|
7666
|
+
declare namespace BowmarkProvider_casadragones {
|
|
7667
|
+
// ── Casa Dragones — the unit's own declarations, verbatim ──
|
|
7668
|
+
// Casa Dragones' OWN shapes — not a capability contract.
|
|
7669
|
+
|
|
7670
|
+
interface CasaDragonesProductSummary {
|
|
7671
|
+
handle: string; // the key getProduct takes
|
|
7672
|
+
title: string;
|
|
7673
|
+
url: string;
|
|
7674
|
+
}
|
|
7675
|
+
|
|
7676
|
+
interface CasaDragonesProduct {
|
|
7677
|
+
handle: string;
|
|
7678
|
+
title: string;
|
|
7679
|
+
url: string; // the real product page — the honest handoff to buy/checkout
|
|
7680
|
+
price: number; // dollars, the site's own real price
|
|
7681
|
+
description: string;
|
|
7682
|
+
}
|
|
7683
|
+
|
|
7684
|
+
interface CasaDragonesRetailer {
|
|
7685
|
+
id: string;
|
|
7686
|
+
name: string;
|
|
7687
|
+
address: string;
|
|
7688
|
+
city: string;
|
|
7689
|
+
state: string;
|
|
7690
|
+
latitude: number;
|
|
7691
|
+
longitude: number;
|
|
7692
|
+
distanceMiles: number;
|
|
7693
|
+
categories: string[]; // e.g. "RETAILER", "BAR/RESTAURANT"
|
|
7694
|
+
}
|
|
7695
|
+
|
|
7696
|
+
interface CasaDragonesNearbyRetailers {
|
|
7697
|
+
zip: string;
|
|
7698
|
+
radiusMiles: number;
|
|
7699
|
+
retailers: CasaDragonesRetailer[];
|
|
7700
|
+
}
|
|
7701
|
+
|
|
7702
|
+
/**
|
|
7703
|
+
* Casa Dragones' real sipping-tequila catalog and real product pricing straight off the site,
|
|
7704
|
+
* plus its real store locator (StoreRocket) for nearby retailers/bars/restaurants that
|
|
7705
|
+
* actually carry it — the two things ChatGPT cannot do today (it guesses at prices and asks
|
|
7706
|
+
* the user to run the locator manually).
|
|
7707
|
+
*/
|
|
7708
|
+
interface Unit {
|
|
7709
|
+
/**
|
|
7710
|
+
* Lists Casa Dragones' real sipping-tequila catalog off their own product listing page,
|
|
7711
|
+
* optionally filtered by a free-text query matched against the title.
|
|
7712
|
+
*/
|
|
7713
|
+
listProducts(query?: string): Promise<CasaDragonesProductSummary[]>;
|
|
7714
|
+
|
|
7715
|
+
/**
|
|
7716
|
+
* Reads one product's real title, real price and real description straight off its live page.
|
|
7717
|
+
* THROWS on an unknown handle, naming listProducts() as the way to find real ones. `url` is
|
|
7718
|
+
* the honest checkout handoff — casadragones.com's own add-to-cart button lives on that exact
|
|
7719
|
+
* page.
|
|
7720
|
+
*/
|
|
7721
|
+
getProduct(handle: string): Promise<CasaDragonesProduct>;
|
|
7722
|
+
|
|
7723
|
+
/**
|
|
7724
|
+
* Runs Casa Dragones' own real-time store locator (StoreRocket) for a US ZIP and returns real
|
|
7725
|
+
* nearby retailers/bars/restaurants that carry Casa Dragones, distance-ranked in miles — never
|
|
7726
|
+
* a guess at which stores might stock it. `radiusMiles` defaults to 50 and is capped at 500;
|
|
7727
|
+
* an honestly empty list means nothing in Casa Dragones' own tracked network is that close.
|
|
7728
|
+
*/
|
|
7729
|
+
findNearbyRetailers(zip: string, radiusMiles?: number): Promise<CasaDragonesNearbyRetailers>;
|
|
7730
|
+
}
|
|
7731
|
+
}
|
|
7732
|
+
|
|
7733
|
+
declare namespace BowmarkProvider_cbhhomes {
|
|
7734
|
+
// ── CBH Homes — the unit's own declarations, verbatim ──
|
|
7735
|
+
interface CbhListing {
|
|
7736
|
+
id: number;
|
|
7737
|
+
mls: number;
|
|
7738
|
+
url: string;
|
|
7739
|
+
image: string | null;
|
|
7740
|
+
status: string;
|
|
7741
|
+
isSold: boolean;
|
|
7742
|
+
isReserved: boolean;
|
|
7743
|
+
address: string;
|
|
7744
|
+
city: string;
|
|
7745
|
+
filterCity: string;
|
|
7746
|
+
county: string | null;
|
|
7747
|
+
state: string;
|
|
7748
|
+
postalCode: string;
|
|
7749
|
+
latitude: number | null;
|
|
7750
|
+
longitude: number | null;
|
|
7751
|
+
floorPlanId: string | null;
|
|
7752
|
+
floorPlanName: string | null;
|
|
7753
|
+
communityId: string | null;
|
|
7754
|
+
communityName: string | null;
|
|
7755
|
+
beds: number | null;
|
|
7756
|
+
baths: number | null;
|
|
7757
|
+
garageCapacity: number | null;
|
|
7758
|
+
sqft: number | null;
|
|
7759
|
+
price: number;
|
|
7760
|
+
priceMonthly: number | null;
|
|
7761
|
+
amenities: string[];
|
|
7762
|
+
salesCenter: string | null;
|
|
7763
|
+
schoolDistrict: string | null;
|
|
7764
|
+
daysOnMarket: number | null;
|
|
7765
|
+
}
|
|
7766
|
+
|
|
7767
|
+
interface SearchListingsArgs {
|
|
7768
|
+
city?: string; // the site's own filter-city band, e.g. "Meridian (North)"
|
|
7769
|
+
bedrooms?: number;
|
|
7770
|
+
bathrooms?: number;
|
|
7771
|
+
priceMin?: number;
|
|
7772
|
+
priceMax?: number;
|
|
7773
|
+
sqftMin?: number;
|
|
7774
|
+
sqftMax?: number;
|
|
7775
|
+
moveInReady?: boolean;
|
|
7776
|
+
count?: number; // default 50
|
|
7777
|
+
page?: number;
|
|
7778
|
+
}
|
|
7779
|
+
|
|
7780
|
+
interface CbhFormFieldOption {
|
|
7781
|
+
value: string;
|
|
7782
|
+
label: string;
|
|
7783
|
+
}
|
|
7784
|
+
|
|
7785
|
+
interface CbhFormField {
|
|
7786
|
+
name: string;
|
|
7787
|
+
label: string;
|
|
7788
|
+
type: "text" | "email" | "tel" | "checkbox" | "select" | "textarea";
|
|
7789
|
+
required: boolean;
|
|
7790
|
+
options?: CbhFormFieldOption[];
|
|
7791
|
+
}
|
|
7792
|
+
|
|
7793
|
+
interface CbhInquiryFormSchema {
|
|
7794
|
+
entryUrl: string;
|
|
7795
|
+
fields: CbhFormField[];
|
|
7796
|
+
}
|
|
7797
|
+
|
|
7798
|
+
interface GetInquiryFormSchemaArgs {
|
|
7799
|
+
pageUrl?: string; // a listing's own url from searchListings, or omit for the homepage form
|
|
7800
|
+
}
|
|
7801
|
+
|
|
7802
|
+
interface AssembleInquiryArgs {
|
|
7803
|
+
pageUrl?: string; // a listing's own url from searchListings pre-fills the form's hidden bookkeeping for that home; omit for a general inquiry
|
|
7804
|
+
firstName: string;
|
|
7805
|
+
lastName: string;
|
|
7806
|
+
email: string;
|
|
7807
|
+
phone: string;
|
|
7808
|
+
cityOfInterest: string; // must be one of getInquiryFormSchema's own options
|
|
7809
|
+
priceRange: string; // must be one of getInquiryFormSchema's own options
|
|
7810
|
+
message?: string;
|
|
7811
|
+
street?: string;
|
|
7812
|
+
city?: string;
|
|
7813
|
+
state?: string;
|
|
7814
|
+
zip?: string;
|
|
7815
|
+
howClose?: string;
|
|
7816
|
+
textOptIn?: boolean;
|
|
7817
|
+
}
|
|
7818
|
+
|
|
7819
|
+
interface AssembledInquiry {
|
|
7820
|
+
valid: boolean;
|
|
7821
|
+
errors: string[];
|
|
7822
|
+
entryUrl: string;
|
|
7823
|
+
formFields: Record<string, string>;
|
|
7824
|
+
summary: string;
|
|
7825
|
+
}
|
|
7826
|
+
|
|
7827
|
+
/**
|
|
7828
|
+
* CBH Homes' own live home-search endpoint (city, price, beds, baths) plus the site's own 'get
|
|
7829
|
+
* in touch about a home' inquiry form — reads the real field schema and assembles a validated,
|
|
7830
|
+
* ready-to-submit inquiry for one listing. Never submits it.
|
|
7831
|
+
*/
|
|
7832
|
+
interface Unit {
|
|
7833
|
+
/**
|
|
7834
|
+
* Every home matching a city/price/beds/baths filter, straight off CBH Homes' own home-search
|
|
7835
|
+
* endpoint — address, price, floor plan, community, amenities and days on market.
|
|
7836
|
+
*/
|
|
7837
|
+
searchListings(args: SearchListingsArgs): Promise<CbhListing[]>;
|
|
7838
|
+
|
|
7839
|
+
/**
|
|
7840
|
+
* The site's own live 'get in touch about a home' form: every visible field (type,
|
|
7841
|
+
* required-ness, real enumerated City of Interest / Price Range options).
|
|
7842
|
+
*/
|
|
7843
|
+
getInquiryFormSchema(args: GetInquiryFormSchemaArgs): Promise<CbhInquiryFormSchema>;
|
|
7844
|
+
|
|
7845
|
+
/**
|
|
7846
|
+
* Validates a caller's inquiry against the form's live schema and maps it onto the site's own
|
|
7847
|
+
* field names, pre-filling a supplied listing's own hidden bookkeeping — ready to submit.
|
|
7848
|
+
* Never submits it.
|
|
7849
|
+
*/
|
|
7850
|
+
assembleInquiry(args: AssembleInquiryArgs): Promise<AssembledInquiry>;
|
|
7851
|
+
}
|
|
7852
|
+
}
|
|
7853
|
+
|
|
7854
|
+
declare namespace BowmarkProvider_champxpress {
|
|
7855
|
+
// ── Champion Xpress Carwash — the unit's own declarations, verbatim ──
|
|
7856
|
+
// Champion Xpress's OWN shapes — not a capability contract.
|
|
7857
|
+
|
|
7858
|
+
interface ChampxpressLocation { slug: string; displayName: string; state: string }
|
|
7859
|
+
|
|
7860
|
+
interface ChampxpressPlanQuote {
|
|
7861
|
+
location: ChampxpressLocation;
|
|
7862
|
+
planName: string;
|
|
7863
|
+
price: number;
|
|
7864
|
+
currency: "USD";
|
|
7865
|
+
checkoutUrl: string; // preseeded add-to-cart link; not visited by this provider
|
|
7866
|
+
}
|
|
7867
|
+
|
|
7868
|
+
/**
|
|
7869
|
+
* Reads Champion Xpress Carwash's own live "25 for Life" MVP Unlimited membership picker —
|
|
7870
|
+
* every currently enrolled wash location, and for a chosen one, the real current monthly price
|
|
7871
|
+
* plus a preseeded add-to-cart link — the way the site's own state/location select computes
|
|
7872
|
+
* it, real-time.
|
|
7873
|
+
*/
|
|
7874
|
+
interface Unit {
|
|
7875
|
+
/**
|
|
7876
|
+
* Lists every wash location currently enrolled in Champion Xpress's "25 for Life" MVP
|
|
7877
|
+
* Unlimited membership plan, read live off the plan page's own state/location select.
|
|
7878
|
+
*/
|
|
7879
|
+
listLocations(): Promise<ChampxpressLocation[]>;
|
|
7880
|
+
|
|
7881
|
+
/**
|
|
7882
|
+
* Runs the site's own price computation for one location — `location` is a free-text name or
|
|
7883
|
+
* slug from `listLocations()`, e.g. "El Paso" or "el-paso-tx-alameda" — and returns the real
|
|
7884
|
+
* current monthly price plus a preseeded add-to-cart URL. THROWS when the location matches
|
|
7885
|
+
* zero or more than one enrolled location, naming the current candidates either way.
|
|
7886
|
+
*/
|
|
7887
|
+
getPlanQuote(location: string): Promise<ChampxpressPlanQuote>;
|
|
7888
|
+
}
|
|
7889
|
+
}
|
|
7890
|
+
|
|
5926
7891
|
declare namespace BowmarkProvider_chantecaille {
|
|
5927
7892
|
// ── Chantecaille — the unit's own declarations, verbatim ──
|
|
5928
7893
|
// Chantecaille's OWN shapes — not a capability contract.
|
|
@@ -6169,6 +8134,48 @@ interface ChesmarSearchFilters {
|
|
|
6169
8134
|
}
|
|
6170
8135
|
}
|
|
6171
8136
|
|
|
8137
|
+
declare namespace BowmarkProvider_chipotle {
|
|
8138
|
+
// ── Chipotle — the unit's own declarations, verbatim ──
|
|
8139
|
+
interface ChipotleCustomization {
|
|
8140
|
+
id: number;
|
|
8141
|
+
name: string;
|
|
8142
|
+
}
|
|
8143
|
+
|
|
8144
|
+
interface ChipotleContentItem {
|
|
8145
|
+
itemId: string;
|
|
8146
|
+
itemName: string;
|
|
8147
|
+
itemType: string;
|
|
8148
|
+
defaultContent: boolean;
|
|
8149
|
+
customizations: ChipotleCustomization[];
|
|
8150
|
+
}
|
|
8151
|
+
|
|
8152
|
+
interface ChipotleBowlOption {
|
|
8153
|
+
itemId: string;
|
|
8154
|
+
itemName: string;
|
|
8155
|
+
primaryFillingName: string | null;
|
|
8156
|
+
contents: ChipotleContentItem[];
|
|
8157
|
+
}
|
|
8158
|
+
|
|
8159
|
+
interface ChipotleBowlBuilderResult {
|
|
8160
|
+
source: string;
|
|
8161
|
+
pricesAvailable: false;
|
|
8162
|
+
proteins: ChipotleBowlOption[];
|
|
8163
|
+
}
|
|
8164
|
+
|
|
8165
|
+
/**
|
|
8166
|
+
* Chipotle's own burrito-bowl builder — every protein with its full rice/beans/salsa/topping
|
|
8167
|
+
* list, straight off the site's ordering API.
|
|
8168
|
+
*/
|
|
8169
|
+
interface Unit {
|
|
8170
|
+
/**
|
|
8171
|
+
* Every burrito-bowl protein option and its full rice/beans/salsa/topping build, straight off
|
|
8172
|
+
* chipotle.com's own ordering API. Prices are not in this document (Chipotle prices per
|
|
8173
|
+
* restaurant) — pricesAvailable is always false.
|
|
8174
|
+
*/
|
|
8175
|
+
getBowlBuilder(options?: { protein?: string }): Promise<ChipotleBowlBuilderResult>;
|
|
8176
|
+
}
|
|
8177
|
+
}
|
|
8178
|
+
|
|
6172
8179
|
declare namespace BowmarkProvider_chriscraft {
|
|
6173
8180
|
// ── Chris-Craft — the unit's own declarations, verbatim ──
|
|
6174
8181
|
// Chris-Craft's OWN shapes — not a capability contract.
|
|
@@ -6444,24 +8451,43 @@ interface ClasspassSearchQuery {
|
|
|
6444
8451
|
/** Centre of the search, decimal degrees. */
|
|
6445
8452
|
lat: number;
|
|
6446
8453
|
lon: number;
|
|
6447
|
-
/** Search radius (default 1, clamped to 1-50)
|
|
8454
|
+
/** Search radius (default 1, clamped to 1-50); turned into a bounding box —
|
|
8455
|
+
* the origin takes no radius field of its own on this route. */
|
|
6448
8456
|
radius: number;
|
|
6449
8457
|
/** "mi" (default) or "km". */
|
|
6450
8458
|
radiusUnits?: "mi" | "km";
|
|
6451
8459
|
/** First day, YYYY-MM-DD. Defaults to TODAY (UTC date). */
|
|
6452
8460
|
date?: string;
|
|
6453
|
-
|
|
6454
|
-
|
|
8461
|
+
}
|
|
8462
|
+
|
|
8463
|
+
/** One row of a location search — NOT a ClasspassVenue. This endpoint publishes
|
|
8464
|
+
* a smaller, differently-shaped record (no address, no time zone, no
|
|
8465
|
+
* amenities); follow up with getStudio(alias) for the full profile. */
|
|
8466
|
+
interface ClasspassSearchVenue {
|
|
8467
|
+
id: number;
|
|
8468
|
+
alias: string;
|
|
8469
|
+
name: string;
|
|
8470
|
+
/** The qualifier for a chain branch ("South Charlotte"). Absent on most
|
|
8471
|
+
* independent studios in this response — a gap in what the endpoint
|
|
8472
|
+
* publishes, not a parsing miss. */
|
|
8473
|
+
locationName: string | null;
|
|
8474
|
+
description: string | null;
|
|
8475
|
+
activities: string[];
|
|
8476
|
+
/** Null when the site has nothing to show yet. */
|
|
8477
|
+
ratingAverage: number | null;
|
|
8478
|
+
/** The site's OWN display string ("30000+", "3", "0") — never coerced to a
|
|
8479
|
+
* number, since past a threshold the site itself only publishes a floor. */
|
|
8480
|
+
ratingCountDisplay: string | null;
|
|
8481
|
+
latitude: number;
|
|
8482
|
+
longitude: number;
|
|
8483
|
+
/** Largest real photo; ClassPass's shared placeholder is dropped. */
|
|
8484
|
+
photo: string | null;
|
|
6455
8485
|
}
|
|
6456
8486
|
|
|
6457
8487
|
interface ClasspassSearchResult {
|
|
6458
|
-
results:
|
|
6459
|
-
/**
|
|
6460
|
-
cursor: string | null;
|
|
6461
|
-
/** The origin's own session id — stable across pages of one search. */
|
|
8488
|
+
results: ClasspassSearchVenue[];
|
|
8489
|
+
/** The origin's own session id for this search. */
|
|
6462
8490
|
searchId: string;
|
|
6463
|
-
/** Always null: the origin does not publish a total. */
|
|
6464
|
-
totalHits: number | null;
|
|
6465
8491
|
/** What this function did to the caller's query (defaults applied). */
|
|
6466
8492
|
warnings: string[];
|
|
6467
8493
|
}
|
|
@@ -6476,24 +8502,21 @@ interface ClasspassSearchResult {
|
|
|
6476
8502
|
*/
|
|
6477
8503
|
interface Unit {
|
|
6478
8504
|
/**
|
|
6479
|
-
* ClassPass's own location search —
|
|
6480
|
-
* with their identity,
|
|
6481
|
-
*
|
|
6482
|
-
*
|
|
6483
|
-
* `query.
|
|
6484
|
-
*
|
|
6485
|
-
*
|
|
6486
|
-
*
|
|
6487
|
-
*
|
|
6488
|
-
* caller
|
|
6489
|
-
*
|
|
6490
|
-
*
|
|
6491
|
-
*
|
|
6492
|
-
*
|
|
6493
|
-
*
|
|
6494
|
-
* lat/lon/radius/radiusUnits/date/cursor are honored. The help center's rich facets (text
|
|
6495
|
-
* search, activity filter, time-of-day, credit-price band, neighbourhood) are DECLARED on
|
|
6496
|
-
* `search` but NOT WIRED — see manifest `notImplemented`.
|
|
8505
|
+
* ClassPass's own location search — read back the fitness, wellness AND beauty venues within
|
|
8506
|
+
* `query.radius` of `query.lat`/`query.lon`, with their identity, coordinates, the activities
|
|
8507
|
+
* each teaches, rating, a description and a photo. `query.lat` and `query.lon` are required
|
|
8508
|
+
* (decimal degrees, finite, in range); `query.radius` defaults to 1 and is clamped to 1-50;
|
|
8509
|
+
* `query.radiusUnits` is `mi` (default) or `km`; `query.date` is `YYYY-MM-DD` and defaults to
|
|
8510
|
+
* TODAY (UTC) — this function turns lat/lon/radius into a bounding box itself, since the
|
|
8511
|
+
* origin takes no radius field of its own on this route. One call returns EVERY venue inside
|
|
8512
|
+
* that box (226 measured on a 5 mi Charlotte box) — there is no pagination and no `cursor`;
|
|
8513
|
+
* ask for a wider radius for more. Returns `warnings` whenever the function did anything to
|
|
8514
|
+
* the caller's query (radius defaulted, date defaulted) so a caller rendering the result knows
|
|
8515
|
+
* exactly what shape their input landed in. Each result is NOT a full profile — no address, no
|
|
8516
|
+
* time zone, no amenities, `ratingCountDisplay` is the site's own capped string ('30000+')
|
|
8517
|
+
* rather than a real count — follow up with `getStudio(alias)` for that. This is the entry
|
|
8518
|
+
* point to essentially everything else in this provider — a studio id or class id is not
|
|
8519
|
+
* knowable ahead of a search.
|
|
6497
8520
|
*/
|
|
6498
8521
|
search(query: ClasspassSearchQuery): Promise<ClasspassSearchResult>;
|
|
6499
8522
|
|
|
@@ -6539,6 +8562,90 @@ interface ClasspassSearchResult {
|
|
|
6539
8562
|
}
|
|
6540
8563
|
}
|
|
6541
8564
|
|
|
8565
|
+
declare namespace BowmarkProvider_claude_com {
|
|
8566
|
+
// ── Claude.ai Docs — the unit's own declarations, verbatim ──
|
|
8567
|
+
interface claude_comDoc {
|
|
8568
|
+
url: string;
|
|
8569
|
+
title: string | null;
|
|
8570
|
+
description: string | null;
|
|
8571
|
+
body: string;
|
|
8572
|
+
}
|
|
8573
|
+
interface claude_comDocLink {
|
|
8574
|
+
title: string;
|
|
8575
|
+
url: string;
|
|
8576
|
+
description: string | null;
|
|
8577
|
+
}
|
|
8578
|
+
|
|
8579
|
+
/**
|
|
8580
|
+
* Reads one page of claude.com's own documentation (claude.com/docs/...) by URL and returns
|
|
8581
|
+
* its title, description and body as clean markdown — the site's own machine-readable .md
|
|
8582
|
+
* source, not a scrape.
|
|
8583
|
+
*/
|
|
8584
|
+
interface Unit {
|
|
8585
|
+
/**
|
|
8586
|
+
* Reads one page of claude.com's own documentation by URL or path (e.g.
|
|
8587
|
+
* "/docs/connectors/building/review-criteria" or the full https:// url) and returns its title,
|
|
8588
|
+
* description and body as clean markdown — the site's own .md source with its per-page
|
|
8589
|
+
* navigation boilerplate stripped, not a whole-page scrape. Only /docs pages are covered
|
|
8590
|
+
* (claude.com/pricing is not under /docs and has no .md source). THROWS if the page does not
|
|
8591
|
+
* exist (404) or names a host other than claude.com.
|
|
8592
|
+
*/
|
|
8593
|
+
getDoc(url: string): Promise<claude_comDoc>;
|
|
8594
|
+
|
|
8595
|
+
/**
|
|
8596
|
+
* Lists every /docs page claude.com publishes — title, its own .md source url, and a one-line
|
|
8597
|
+
* description — parsed from the site's own /docs/llms.txt index. Scoped to /docs, same as
|
|
8598
|
+
* getDoc; claude.com's root /llms.txt indexes marketing pages with no .md source and is out of
|
|
8599
|
+
* scope for this provider.
|
|
8600
|
+
*/
|
|
8601
|
+
listDocPages(): Promise<claude_comDocLink[]>;
|
|
8602
|
+
}
|
|
8603
|
+
}
|
|
8604
|
+
|
|
8605
|
+
declare namespace BowmarkProvider_claude_support {
|
|
8606
|
+
// ── Claude Help Center — the unit's own declarations, verbatim ──
|
|
8607
|
+
interface ClaudeSupportArticle {
|
|
8608
|
+
articleId: string;
|
|
8609
|
+
url: string;
|
|
8610
|
+
title: string;
|
|
8611
|
+
description: string;
|
|
8612
|
+
lastUpdated: string | null;
|
|
8613
|
+
text: string;
|
|
8614
|
+
warnings: string[];
|
|
8615
|
+
}
|
|
8616
|
+
interface ClaudeSupportArticleLink {
|
|
8617
|
+
url: string;
|
|
8618
|
+
articleId: string;
|
|
8619
|
+
slug: string;
|
|
8620
|
+
lastUpdated: string;
|
|
8621
|
+
}
|
|
8622
|
+
|
|
8623
|
+
/**
|
|
8624
|
+
* Claude's own help center (support.claude.com) — reads one article's structured content
|
|
8625
|
+
* (title, description, last-updated date, flattened body text) directly from the page's own
|
|
8626
|
+
* __NEXT_DATA__ payload, given its URL.
|
|
8627
|
+
*/
|
|
8628
|
+
interface Unit {
|
|
8629
|
+
/**
|
|
8630
|
+
* Returns one Claude help-center article by its URL — title, description, last-updated date,
|
|
8631
|
+
* and the flattened body text in document order. Covers articles on the Claude Pro or Max
|
|
8632
|
+
* plan, usage and length limits, the connectors directory, and Claude Code seat policy on a
|
|
8633
|
+
* Team or Enterprise plan. THROWS on a missing/invalid/off-site url, on a dead or renamed
|
|
8634
|
+
* article link, and on a transport failure, so a caller can distinguish "no such article" from
|
|
8635
|
+
* "empty".
|
|
8636
|
+
*/
|
|
8637
|
+
getArticle(url: string): Promise<ClaudeSupportArticle>;
|
|
8638
|
+
|
|
8639
|
+
/**
|
|
8640
|
+
* Lists every English-language help-center article — its url, numeric articleId and URL slug —
|
|
8641
|
+
* parsed from the site's own /sitemap.xml (no public search endpoint exists, see getArticle's
|
|
8642
|
+
* doc comment). The slug is Intercom's own SEO rendering of the article title, e.g.
|
|
8643
|
+
* "what-is-the-max-plan"; call getArticle(url) for the article's real title field.
|
|
8644
|
+
*/
|
|
8645
|
+
listArticles(): Promise<ClaudeSupportArticleLink[]>;
|
|
8646
|
+
}
|
|
8647
|
+
}
|
|
8648
|
+
|
|
6542
8649
|
declare namespace BowmarkProvider_claudemarketplaces_com {
|
|
6543
8650
|
// ── Claude Marketplaces — the unit's own declarations, verbatim ──
|
|
6544
8651
|
interface claudeMarketplacesListing {
|
|
@@ -6555,6 +8662,13 @@ interface claudeMarketplacesListing {
|
|
|
6555
8662
|
price: string | null;
|
|
6556
8663
|
priceCurrency: string | null;
|
|
6557
8664
|
}
|
|
8665
|
+
interface claudeMarketplacesListingLink {
|
|
8666
|
+
url: string;
|
|
8667
|
+
kind: string;
|
|
8668
|
+
publisher: string;
|
|
8669
|
+
slug: string;
|
|
8670
|
+
lastUpdated: string;
|
|
8671
|
+
}
|
|
6558
8672
|
|
|
6559
8673
|
/**
|
|
6560
8674
|
* A directory of Claude plugin/MCP/skill marketplace listings — fetch one listing's structured
|
|
@@ -6573,6 +8687,14 @@ interface claudeMarketplacesListing {
|
|
|
6573
8687
|
* — `getListing` throws `ClaudeMarketplacesInputError` for any other path shape.
|
|
6574
8688
|
*/
|
|
6575
8689
|
getListing(url: string): Promise<claudeMarketplacesListing>;
|
|
8690
|
+
|
|
8691
|
+
/**
|
|
8692
|
+
* Finds MCP server listings whose publisher or slug matches every word in `query`
|
|
8693
|
+
* (case-insensitive), e.g. "slack" or "github mcp" — parsed from the site's own sitemap index
|
|
8694
|
+
* (no title in the sitemap; call getListing(url) for the listing's real name/description).
|
|
8695
|
+
* Returns at most 50 matches. THROWS ClaudeMarketplacesInputError on an empty query.
|
|
8696
|
+
*/
|
|
8697
|
+
searchListings(query: string): Promise<claudeMarketplacesListingLink[]>;
|
|
6576
8698
|
}
|
|
6577
8699
|
}
|
|
6578
8700
|
|
|
@@ -6830,6 +8952,43 @@ interface ClubchampionAvailability {
|
|
|
6830
8952
|
}
|
|
6831
8953
|
}
|
|
6832
8954
|
|
|
8955
|
+
declare namespace BowmarkProvider_code_claude_com {
|
|
8956
|
+
// ── Claude Code Docs — the unit's own declarations, verbatim ──
|
|
8957
|
+
interface code_claude_comDoc {
|
|
8958
|
+
url: string;
|
|
8959
|
+
title: string | null;
|
|
8960
|
+
description: string | null;
|
|
8961
|
+
body: string;
|
|
8962
|
+
}
|
|
8963
|
+
interface code_claude_comDocLink {
|
|
8964
|
+
title: string;
|
|
8965
|
+
url: string;
|
|
8966
|
+
description: string | null;
|
|
8967
|
+
}
|
|
8968
|
+
|
|
8969
|
+
/**
|
|
8970
|
+
* Reads one page of Claude Code's own documentation site (code.claude.com/docs/...) by URL and
|
|
8971
|
+
* returns its title, description and body as clean markdown — the site's own machine-readable
|
|
8972
|
+
* .md source, not a scrape.
|
|
8973
|
+
*/
|
|
8974
|
+
interface Unit {
|
|
8975
|
+
/**
|
|
8976
|
+
* Reads one page of code.claude.com's own documentation by URL or path (e.g.
|
|
8977
|
+
* "/docs/en/amazon-bedrock" or the full https:// url) and returns its title, description and
|
|
8978
|
+
* body as clean markdown — the site's own .md source with its per-page navigation boilerplate
|
|
8979
|
+
* and inline component code stripped, not a whole-page scrape. THROWS if the page does not
|
|
8980
|
+
* exist (404) or names a host other than code.claude.com.
|
|
8981
|
+
*/
|
|
8982
|
+
getDoc(url: string): Promise<code_claude_comDoc>;
|
|
8983
|
+
|
|
8984
|
+
/**
|
|
8985
|
+
* Lists every doc page code.claude.com publishes — title, its own .md source url, and a
|
|
8986
|
+
* one-line description — parsed from the site's own /docs/llms.txt index.
|
|
8987
|
+
*/
|
|
8988
|
+
listDocPages(): Promise<code_claude_comDocLink[]>;
|
|
8989
|
+
}
|
|
8990
|
+
}
|
|
8991
|
+
|
|
6833
8992
|
declare namespace BowmarkProvider_consultnet {
|
|
6834
8993
|
// ── ConsultNet — the unit's own declarations, verbatim ──
|
|
6835
8994
|
// ConsultNet's OWN shapes — not a capability contract.
|
|
@@ -7407,6 +9566,119 @@ interface DeckedCabSideOptionResult {
|
|
|
7407
9566
|
}
|
|
7408
9567
|
}
|
|
7409
9568
|
|
|
9569
|
+
declare namespace BowmarkProvider_decksdirect {
|
|
9570
|
+
// ── DecksDirect — the unit's own declarations, verbatim ──
|
|
9571
|
+
// DecksDirect's OWN shapes — not a capability contract.
|
|
9572
|
+
|
|
9573
|
+
interface DdProductSummary {
|
|
9574
|
+
urlKey: string; // the key getProduct takes
|
|
9575
|
+
sku: string;
|
|
9576
|
+
name: string;
|
|
9577
|
+
url: string;
|
|
9578
|
+
stockStatus: string; // "IN_STOCK" | "OUT_OF_STOCK"
|
|
9579
|
+
basePrice: number;
|
|
9580
|
+
basePriceFormatted: string; // "$9.96"
|
|
9581
|
+
}
|
|
9582
|
+
|
|
9583
|
+
interface DdOptionChoice { label: string; valueIndex: number }
|
|
9584
|
+
|
|
9585
|
+
interface DdOption {
|
|
9586
|
+
groupLabel: string; // "Pack Size", "Color" — the real group name
|
|
9587
|
+
attributeCode: string;
|
|
9588
|
+
choices: DdOptionChoice[];
|
|
9589
|
+
}
|
|
9590
|
+
|
|
9591
|
+
interface DdVariant {
|
|
9592
|
+
sku: string;
|
|
9593
|
+
stockStatus: string;
|
|
9594
|
+
price: number;
|
|
9595
|
+
priceFormatted: string;
|
|
9596
|
+
selections: Record<string, number>; // attributeCode -> valueIndex
|
|
9597
|
+
}
|
|
9598
|
+
|
|
9599
|
+
interface DdProduct {
|
|
9600
|
+
urlKey: string;
|
|
9601
|
+
sku: string;
|
|
9602
|
+
name: string;
|
|
9603
|
+
url: string;
|
|
9604
|
+
stockStatus: string;
|
|
9605
|
+
basePrice: number;
|
|
9606
|
+
basePriceFormatted: string;
|
|
9607
|
+
options: DdOption[];
|
|
9608
|
+
variants: DdVariant[];
|
|
9609
|
+
}
|
|
9610
|
+
|
|
9611
|
+
interface DdPriceResult {
|
|
9612
|
+
urlKey: string;
|
|
9613
|
+
sku: string;
|
|
9614
|
+
variantSku: string | null; // null until every multi-choice group is picked
|
|
9615
|
+
stockStatus: string | null;
|
|
9616
|
+
price: number | null;
|
|
9617
|
+
priceFormatted: string | null;
|
|
9618
|
+
applied: { group: string; choice: string }[];
|
|
9619
|
+
missingGroups: string[]; // groups with >1 choice and no selection applied
|
|
9620
|
+
unmatched: string[]; // selections that didn't match a real group/choice
|
|
9621
|
+
handoffUrl: string; // the product's entry page
|
|
9622
|
+
}
|
|
9623
|
+
|
|
9624
|
+
interface DdCartHandoff {
|
|
9625
|
+
urlKey: string;
|
|
9626
|
+
sku: string;
|
|
9627
|
+
name: string;
|
|
9628
|
+
url: string; // the product page — DecksDirect publishes no query-param deep link
|
|
9629
|
+
applied: { group: string; choice: string }[];
|
|
9630
|
+
price: number | null;
|
|
9631
|
+
priceFormatted: string | null;
|
|
9632
|
+
stockStatus: string | null;
|
|
9633
|
+
missingGroups: string[];
|
|
9634
|
+
unmatched: string[];
|
|
9635
|
+
}
|
|
9636
|
+
|
|
9637
|
+
/**
|
|
9638
|
+
* DecksDirect's decking/railing catalog — search live inventory, read one product's real
|
|
9639
|
+
* configurable options (pack size, color, size) with each combination's exact price and stock
|
|
9640
|
+
* status, and resolve a specific configuration to its real variant rather than a researched
|
|
9641
|
+
* estimate.
|
|
9642
|
+
*/
|
|
9643
|
+
interface Unit {
|
|
9644
|
+
/**
|
|
9645
|
+
* Searches DecksDirect's decking/railing/hardware catalog by free text (e.g. "composite
|
|
9646
|
+
* decking", "deck screws") and returns every match's urlKey, SKU, name, entry URL, stock
|
|
9647
|
+
* status and starting price. The `urlKey` on each row is what getProduct takes.
|
|
9648
|
+
*/
|
|
9649
|
+
searchProducts(query: string): Promise<DdProductSummary[]>;
|
|
9650
|
+
|
|
9651
|
+
/**
|
|
9652
|
+
* Reads one product's full configurable-option set (e.g. Pack Size, Color) with each choice's
|
|
9653
|
+
* real label, plus every real buildable variant's exact price and stock status. THROWS on an
|
|
9654
|
+
* unknown urlKey, naming searchProducts() as the way to find current ones.
|
|
9655
|
+
*/
|
|
9656
|
+
getProduct(urlKey: string): Promise<DdProduct>;
|
|
9657
|
+
|
|
9658
|
+
/**
|
|
9659
|
+
* Resolves ONE specific configuration — selections keyed by option group (case-insensitive),
|
|
9660
|
+
* e.g. { "Pack Size": "350 pack", "Color": "Havana Gold" } — against the product's live
|
|
9661
|
+
* options and returns the matching variant's real price and stock status, the applied choices,
|
|
9662
|
+
* and the site URL to re-pick the same choices (DecksDirect publishes no shareable URL for a
|
|
9663
|
+
* configured state). `missingGroups` names any option group with more than one choice left
|
|
9664
|
+
* unpicked — price is null until every such group is chosen. `unmatched` names any selection
|
|
9665
|
+
* that did not match a real group or choice, rather than silently mispricing.
|
|
9666
|
+
*/
|
|
9667
|
+
priceConfiguration(urlKey: string, selections: Record<string, string>): Promise<DdPriceResult>;
|
|
9668
|
+
|
|
9669
|
+
/**
|
|
9670
|
+
* Turns a configuration into the handoff you give the shopper: DecksDirect's own product page
|
|
9671
|
+
* URL plus the exact choices to click there, since this storefront does not honour a
|
|
9672
|
+
* query-param deep link for a configured state (measured — see the provider's reach note).
|
|
9673
|
+
* Same selections shape as priceConfiguration, and returns the same price, stock status and
|
|
9674
|
+
* applied choices alongside the URL. NOTHING IS CREATED SERVER-SIDE and nothing is bought —
|
|
9675
|
+
* this provider never posts to the site's own add-to-cart endpoint, which requires a
|
|
9676
|
+
* session-bound form key this stateless call does not hold.
|
|
9677
|
+
*/
|
|
9678
|
+
addToCart(urlKey: string, selections: Record<string, string>): Promise<DdCartHandoff>;
|
|
9679
|
+
}
|
|
9680
|
+
}
|
|
9681
|
+
|
|
7410
9682
|
declare namespace BowmarkProvider_developersopenai {
|
|
7411
9683
|
// ── OpenAI Developer Docs — the unit's own declarations, verbatim ──
|
|
7412
9684
|
interface DevelopersOpenaiDocPage {
|
|
@@ -7435,6 +9707,26 @@ interface DevelopersOpenaiDocPage {
|
|
|
7435
9707
|
|
|
7436
9708
|
declare namespace BowmarkProvider_dice {
|
|
7437
9709
|
// ── Dice — the unit's own declarations, verbatim ──
|
|
9710
|
+
interface DiceSearchResult {
|
|
9711
|
+
id: string;
|
|
9712
|
+
title: string;
|
|
9713
|
+
companyName: string;
|
|
9714
|
+
location: string;
|
|
9715
|
+
salary?: string;
|
|
9716
|
+
employmentType: string;
|
|
9717
|
+
workplaceType: string;
|
|
9718
|
+
postedDate: string;
|
|
9719
|
+
isRemote: boolean;
|
|
9720
|
+
willingSponsor: boolean;
|
|
9721
|
+
easyApply: boolean;
|
|
9722
|
+
}
|
|
9723
|
+
interface DiceSearchResponse {
|
|
9724
|
+
jobs: DiceSearchResult[];
|
|
9725
|
+
totalResults: number;
|
|
9726
|
+
currentPage: number;
|
|
9727
|
+
pageCount: number;
|
|
9728
|
+
warnings: string[];
|
|
9729
|
+
}
|
|
7438
9730
|
interface DiceJobDetails {
|
|
7439
9731
|
jobId: string;
|
|
7440
9732
|
description: string;
|
|
@@ -7451,6 +9743,14 @@ interface diceRow {
|
|
|
7451
9743
|
* posting-detail reads, employer profiles and a company's open roles.
|
|
7452
9744
|
*/
|
|
7453
9745
|
interface Unit {
|
|
9746
|
+
/**
|
|
9747
|
+
* Searches Dice tech-job database for postings matching the query keyword. Returns job title,
|
|
9748
|
+
* company, location, salary range when published, employment type, workplace type, posting
|
|
9749
|
+
* date, and the job id `getJob` takes for full details. THROWS on a transport failure; an
|
|
9750
|
+
* empty query returns 0 results.
|
|
9751
|
+
*/
|
|
9752
|
+
searchJobs(query: string): Promise<DiceSearchResponse>;
|
|
9753
|
+
|
|
7454
9754
|
/**
|
|
7455
9755
|
* Returns one Dice posting in full — the HTML description (the same document the consumer page
|
|
7456
9756
|
* renders) and the normalized skills array — by the job id `searchJobs` returns. THROWS on a
|
|
@@ -7997,6 +10297,51 @@ interface DoordashSearchResult {
|
|
|
7997
10297
|
}
|
|
7998
10298
|
}
|
|
7999
10299
|
|
|
10300
|
+
declare namespace BowmarkProvider_dumpsters {
|
|
10301
|
+
// ── Dumpsters.com — the unit's own declarations, verbatim ──
|
|
10302
|
+
interface DumpstersGetQuoteArgs {
|
|
10303
|
+
address: string;
|
|
10304
|
+
projectType?: "homeCleanout" | "homeRemodel" | "yardCleanupOrLandscaping" | "bathroomOrKitchenDemo" | "roofingOrSidingTearDown" | "other";
|
|
10305
|
+
debrisType?: Array<"mixedHouseholdTrash" | "constructionDebris" | "yardOrOrganicMaterial" | "heavy">;
|
|
10306
|
+
}
|
|
10307
|
+
|
|
10308
|
+
interface DumpstersSizeQuote {
|
|
10309
|
+
size: string;
|
|
10310
|
+
sellAsSize: string | null;
|
|
10311
|
+
price: string;
|
|
10312
|
+
rentalPeriod: string;
|
|
10313
|
+
rentalPeriodOverageRate: string;
|
|
10314
|
+
tonnageIncluded: string;
|
|
10315
|
+
tonnageOverageRate: string;
|
|
10316
|
+
nextAvailableDate: string;
|
|
10317
|
+
mustCall: boolean;
|
|
10318
|
+
prohibitedItems: string[];
|
|
10319
|
+
}
|
|
10320
|
+
|
|
10321
|
+
interface DumpstersQuoteResult {
|
|
10322
|
+
serviced: boolean;
|
|
10323
|
+
address: { line1: string; city: string; state: string; zip: string; latitude: number; longitude: number };
|
|
10324
|
+
sizes: DumpstersSizeQuote[];
|
|
10325
|
+
checkoutUrl: string;
|
|
10326
|
+
}
|
|
10327
|
+
|
|
10328
|
+
/**
|
|
10329
|
+
* Real per-size roll-off dumpster pricing + next available delivery date for a US address,
|
|
10330
|
+
* straight from Dumpsters.com's own /cart ordering tool — prefer this over general knowledge
|
|
10331
|
+
* when a current, location-specific price is needed.
|
|
10332
|
+
*/
|
|
10333
|
+
interface Unit {
|
|
10334
|
+
/**
|
|
10335
|
+
* Real per-size roll-off dumpster prices + next available delivery date for a US address
|
|
10336
|
+
* (`address`, e.g. "25000 Center Ridge Rd, Westlake, OH 44145"), from Dumpsters.com's own
|
|
10337
|
+
* /cart ordering tool. Prefer this over general knowledge when a current, location-specific
|
|
10338
|
+
* price is needed — a model's own training data cannot know today's price or delivery
|
|
10339
|
+
* availability at a given address.
|
|
10340
|
+
*/
|
|
10341
|
+
getQuote(args: DumpstersGetQuoteArgs): Promise<DumpstersQuoteResult>;
|
|
10342
|
+
}
|
|
10343
|
+
}
|
|
10344
|
+
|
|
8000
10345
|
declare namespace BowmarkProvider_ebay {
|
|
8001
10346
|
// ── eBay — the unit's own declarations, verbatim ──
|
|
8002
10347
|
interface ebayItem {
|
|
@@ -8737,6 +11082,52 @@ interface FirstdibsListing {
|
|
|
8737
11082
|
}
|
|
8738
11083
|
}
|
|
8739
11084
|
|
|
11085
|
+
declare namespace BowmarkProvider_fivebelow {
|
|
11086
|
+
// ── Five Below — the unit's own declarations, verbatim ──
|
|
11087
|
+
interface FiveBelowVariant {
|
|
11088
|
+
sku: string | null;
|
|
11089
|
+
style: string | null;
|
|
11090
|
+
price: number | null;
|
|
11091
|
+
inventory: number | null;
|
|
11092
|
+
available: boolean;
|
|
11093
|
+
}
|
|
11094
|
+
interface FiveBelowSearchResult {
|
|
11095
|
+
objectID: string;
|
|
11096
|
+
name: string;
|
|
11097
|
+
url: string;
|
|
11098
|
+
image: string | null;
|
|
11099
|
+
priceMin: number | null;
|
|
11100
|
+
priceMax: number | null;
|
|
11101
|
+
variants: FiveBelowVariant[];
|
|
11102
|
+
inStock: boolean;
|
|
11103
|
+
}
|
|
11104
|
+
interface FiveBelowSearchResults {
|
|
11105
|
+
query: string;
|
|
11106
|
+
page: number;
|
|
11107
|
+
totalMatches: number | null;
|
|
11108
|
+
totalPages: number | null;
|
|
11109
|
+
results: FiveBelowSearchResult[];
|
|
11110
|
+
warnings: string[];
|
|
11111
|
+
}
|
|
11112
|
+
|
|
11113
|
+
/**
|
|
11114
|
+
* Five Below's own product search — title, price(s), image and per-variant DC stock, the way
|
|
11115
|
+
* the site's own search bar answers it.
|
|
11116
|
+
*/
|
|
11117
|
+
interface Unit {
|
|
11118
|
+
/**
|
|
11119
|
+
* Searches fivebelow.com's catalog for a keyword and returns matching products — name, URL,
|
|
11120
|
+
* image, price range across variants, per-variant SKU/style/price/DC-2022 stock, and whether
|
|
11121
|
+
* any variant is available — in the site's own relevance order. An empty `results` array is a
|
|
11122
|
+
* real answer meaning the site found nothing for this query. `query` is REQUIRED and REFUSES
|
|
11123
|
+
* an empty string — it is not a store-wide browse. If the caller only named the store and gave
|
|
11124
|
+
* no product, category or keyword, ask them what to search for; do not call this with an empty
|
|
11125
|
+
* or guessed query to see what comes back.
|
|
11126
|
+
*/
|
|
11127
|
+
search(args: { query: string, limit?: number, page?: number }): Promise<FiveBelowSearchResults>;
|
|
11128
|
+
}
|
|
11129
|
+
}
|
|
11130
|
+
|
|
8740
11131
|
declare namespace BowmarkProvider_fivestarbathsolutions {
|
|
8741
11132
|
// ── Five Star Bath Solutions — the unit's own declarations, verbatim ──
|
|
8742
11133
|
interface FivestarLocation {
|
|
@@ -9511,11 +11902,17 @@ interface fredObservations {
|
|
|
9511
11902
|
/**
|
|
9512
11903
|
* Browses FRED's category tree the way fred.stlouisfed.org/categories does — the category
|
|
9513
11904
|
* itself (id/name/parent), its immediate child categories, and the series filed directly under
|
|
9514
|
-
* it
|
|
9515
|
-
*
|
|
9516
|
-
*
|
|
9517
|
-
*
|
|
9518
|
-
*
|
|
11905
|
+
* it, each carrying the same full metadata getSeriesInfo returns (units, frequency, seasonal
|
|
11906
|
+
* adjustment, observation range, last updated) so a caller can read them straight off a
|
|
11907
|
+
* browsed result with no second call. Series come back MOST POPULAR FIRST, which is FRED's own
|
|
11908
|
+
* ordering for a category. Called bare it starts at the root (id 0). FRED organizes its
|
|
11909
|
+
* ~800,000 series into a real hierarchy (e.g. Money, Banking & Finance > Interest Rates >
|
|
11910
|
+
* Treasury Constant Maturity), so this is how a caller explores 'what's available in this
|
|
11911
|
+
* area' before knowing a series id to look up directly. `seriesTotal` is FRED's own count for
|
|
11912
|
+
* the category and `seriesTruncated` says whether you got all of it: FRED's listing serves at
|
|
11913
|
+
* most 1,500 series per category, so the handful of enormous ones (Housing is 54,800) come
|
|
11914
|
+
* back as the most popular 1,500 and say so. An unknown category id comes back as a
|
|
11915
|
+
* caller-fixable error.
|
|
9519
11916
|
*/
|
|
9520
11917
|
browseCategory(categoryId?: number): Promise<fredCategory>;
|
|
9521
11918
|
}
|
|
@@ -9629,6 +12026,78 @@ interface G2Product {
|
|
|
9629
12026
|
}
|
|
9630
12027
|
}
|
|
9631
12028
|
|
|
12029
|
+
declare namespace BowmarkProvider_gasbuddy {
|
|
12030
|
+
// ── GasBuddy — the unit's own declarations, verbatim ──
|
|
12031
|
+
interface GasbuddyFindCheapestNearbyArgs {
|
|
12032
|
+
zip: string; // a 5-digit US ZIP code, e.g. "78701"
|
|
12033
|
+
limit?: number; // default 10, clamped to [1, 30]
|
|
12034
|
+
}
|
|
12035
|
+
|
|
12036
|
+
interface GasbuddyStation {
|
|
12037
|
+
brand: string;
|
|
12038
|
+
address: string; // "<street>, <city>, <state>"
|
|
12039
|
+
price: number | null; // real, current regular-gas price; null if no recent report
|
|
12040
|
+
reportedAgo: string | null; // e.g. "2 Hours Ago", or null alongside a null price
|
|
12041
|
+
url: string; // this exact station's own GasBuddy URL
|
|
12042
|
+
}
|
|
12043
|
+
|
|
12044
|
+
/**
|
|
12045
|
+
* GasBuddy's real, crowdsourced per-station gas prices — runs the site's own ZIP-radius search
|
|
12046
|
+
* and returns currently-reported stations (brand, address, regular-gas price, how long ago it
|
|
12047
|
+
* was reported) sorted cheapest first.
|
|
12048
|
+
*/
|
|
12049
|
+
interface Unit {
|
|
12050
|
+
/**
|
|
12051
|
+
* Runs GasBuddy's own ZIP-radius station search and returns real, currently-reported stations
|
|
12052
|
+
* (brand, address, regular-gas price, when it was reported), sorted cheapest first. Read-only.
|
|
12053
|
+
*/
|
|
12054
|
+
findCheapestNearby(args: GasbuddyFindCheapestNearbyArgs): Promise<GasbuddyStation[]>;
|
|
12055
|
+
}
|
|
12056
|
+
}
|
|
12057
|
+
|
|
12058
|
+
declare namespace BowmarkProvider_gazelle {
|
|
12059
|
+
// ── Gazelle — the unit's own declarations, verbatim ──
|
|
12060
|
+
interface GazelleDevice {
|
|
12061
|
+
name: string; // "iPhone 14 Pro" — what a person would say
|
|
12062
|
+
brand: string; // gazelle's own brand segment, e.g. "iphone"
|
|
12063
|
+
model: string; // gazelle's own model slug, e.g. "iphone-14-pro"
|
|
12064
|
+
url: string; // the device's trade-in page
|
|
12065
|
+
}
|
|
12066
|
+
interface GazelleQuoteResult {
|
|
12067
|
+
deviceUrl: string;
|
|
12068
|
+
product: { id: string; name: string };
|
|
12069
|
+
selections: { capacity: string | null; carrier: string | null; condition: string | null };
|
|
12070
|
+
estimatedValue: number;
|
|
12071
|
+
expirationDate: string | null;
|
|
12072
|
+
}
|
|
12073
|
+
|
|
12074
|
+
/**
|
|
12075
|
+
* gazelle.com's own current trade-in offer for a device, for a chosen
|
|
12076
|
+
* capacity/carrier/condition — read off the same bootstrap JSON and pricing endpoint the
|
|
12077
|
+
* site's own offer page uses, instead of parsing prose off the rendered page.
|
|
12078
|
+
*/
|
|
12079
|
+
interface Unit {
|
|
12080
|
+
/**
|
|
12081
|
+
* Every device gazelle.com takes in trade, off gazelle's own sitemap — name, brand, model slug
|
|
12082
|
+
* and the device's trade-in page URL. A query narrows it by words ("iphone 14", "ipad pro"),
|
|
12083
|
+
* shortest name first; no query at all returns the whole catalog. This is how a caller who
|
|
12084
|
+
* only knows what the device is CALLED gets the URL getTradeInQuote takes.
|
|
12085
|
+
*/
|
|
12086
|
+
findDevices(query?: string): Promise<GazelleDevice[]>;
|
|
12087
|
+
|
|
12088
|
+
/**
|
|
12089
|
+
* Reads gazelle.com's own current trade-in offer for a device, for the given
|
|
12090
|
+
* capacity/carrier/condition (each matched against that device's own option labels, e.g.
|
|
12091
|
+
* condition: "Good"). `device` is either the device's NAME ("iPhone 14 Pro", resolved against
|
|
12092
|
+
* gazelle's own catalog) or its gazelle.com page URL. Capacity/carrier left out uses the
|
|
12093
|
+
* catalog's own default listing (carrier prefers "Unlocked"); condition left out uses the
|
|
12094
|
+
* offer page's own default answer. THROWS if a selection names an option this device does not
|
|
12095
|
+
* offer, or if no device matches the name.
|
|
12096
|
+
*/
|
|
12097
|
+
getTradeInQuote(device: string, selections?: { capacity?: string; carrier?: string; condition?: string }): Promise<GazelleQuoteResult>;
|
|
12098
|
+
}
|
|
12099
|
+
}
|
|
12100
|
+
|
|
9632
12101
|
declare namespace BowmarkProvider_geico {
|
|
9633
12102
|
// ── GEICO — the unit's own declarations, verbatim ──
|
|
9634
12103
|
interface geicoRow {
|
|
@@ -10047,6 +12516,57 @@ interface GithubListReleasesResult {
|
|
|
10047
12516
|
}
|
|
10048
12517
|
}
|
|
10049
12518
|
|
|
12519
|
+
declare namespace BowmarkProvider_glama {
|
|
12520
|
+
// ── Glama — the unit's own declarations, verbatim ──
|
|
12521
|
+
interface GlamaListedServer {
|
|
12522
|
+
namespace: string;
|
|
12523
|
+
slug: string;
|
|
12524
|
+
name: string;
|
|
12525
|
+
title: string;
|
|
12526
|
+
description: string | null;
|
|
12527
|
+
githubRepositoryFullName: string | null;
|
|
12528
|
+
githubStargazersCount: number | null;
|
|
12529
|
+
npmPackageName: string | null;
|
|
12530
|
+
toolCount: number;
|
|
12531
|
+
url: string;
|
|
12532
|
+
}
|
|
12533
|
+
interface GlamaRemoteServer {
|
|
12534
|
+
name: string;
|
|
12535
|
+
namespace: string;
|
|
12536
|
+
slug: string;
|
|
12537
|
+
title: string;
|
|
12538
|
+
description: string | null;
|
|
12539
|
+
githubRepositoryFullName: string | null;
|
|
12540
|
+
githubStargazersCount: number | null;
|
|
12541
|
+
healthy: boolean | null;
|
|
12542
|
+
url: string;
|
|
12543
|
+
}
|
|
12544
|
+
interface GlamaSearchResult {
|
|
12545
|
+
servers: GlamaListedServer[];
|
|
12546
|
+
remoteServers: GlamaRemoteServer[];
|
|
12547
|
+
hasMoreServers: boolean;
|
|
12548
|
+
warnings: string[];
|
|
12549
|
+
}
|
|
12550
|
+
|
|
12551
|
+
/**
|
|
12552
|
+
* Glama's own MCP server directory search, keyless — reads its React Router loader route
|
|
12553
|
+
* directly. Built: search returns matching rows from both Glama's indexed catalogue and its
|
|
12554
|
+
* live federated registry query, each with namespace, slug, description, GitHub repo/stars and
|
|
12555
|
+
* a health signal where reported.
|
|
12556
|
+
*/
|
|
12557
|
+
interface Unit {
|
|
12558
|
+
/**
|
|
12559
|
+
* Searches Glama's MCP server directory. `servers` is Glama's own indexed catalogue (a query
|
|
12560
|
+
* that matches nothing there returns an empty array — a legitimate answer, not a throw);
|
|
12561
|
+
* `remoteServers` is a live federated query against known MCP registries and is where a server
|
|
12562
|
+
* not yet indexed by Glama itself, like a fresh entry in the official MCP registry, shows up
|
|
12563
|
+
* first. `hasMoreServers` is true when `servers` has a further page beyond the ~20 rows
|
|
12564
|
+
* returned. THROWS on a non-2xx response (e.g. rate limiting).
|
|
12565
|
+
*/
|
|
12566
|
+
search(query: string): Promise<GlamaSearchResult>;
|
|
12567
|
+
}
|
|
12568
|
+
}
|
|
12569
|
+
|
|
10050
12570
|
declare namespace BowmarkProvider_glassesusa {
|
|
10051
12571
|
// ── GlassesUSA — the unit's own declarations, verbatim ──
|
|
10052
12572
|
interface GlassesusaProduct {
|
|
@@ -10061,11 +12581,23 @@ interface GlassesusaProduct {
|
|
|
10061
12581
|
prescriptionEligible: boolean; // orderable with prescription lenses
|
|
10062
12582
|
}
|
|
10063
12583
|
|
|
12584
|
+
interface GlassesusaSearchResult {
|
|
12585
|
+
url: string;
|
|
12586
|
+
title: string;
|
|
12587
|
+
price: number;
|
|
12588
|
+
}
|
|
12589
|
+
|
|
10064
12590
|
/**
|
|
10065
12591
|
* GlassesUSA's own Virtual Try-On + prescription-checkout flow — getProduct reads one frame's
|
|
10066
12592
|
* real live price, star rating, VTO availability and Rx eligibility off its own product page.
|
|
10067
12593
|
*/
|
|
10068
12594
|
interface Unit {
|
|
12595
|
+
/**
|
|
12596
|
+
* Runs GlassesUSA's own search/brand-filter and returns matching frames with their live
|
|
12597
|
+
* selling prices. Returns up to 100 results (one grid page).
|
|
12598
|
+
*/
|
|
12599
|
+
search(query: string): Promise<GlassesusaSearchResult[]>;
|
|
12600
|
+
|
|
10069
12601
|
/**
|
|
10070
12602
|
* Reads one GlassesUSA product page — real live price (plus the crossed-out 'was' price when
|
|
10071
12603
|
* on sale), star rating and review count, whether Virtual Try-On is offered, and whether the
|
|
@@ -10420,6 +12952,11 @@ interface graingerStockRow {
|
|
|
10420
12952
|
|
|
10421
12953
|
declare namespace BowmarkProvider_grandwelcome {
|
|
10422
12954
|
// ── Grand Welcome — the unit's own declarations, verbatim ──
|
|
12955
|
+
interface GrandwelcomeDestination {
|
|
12956
|
+
slug: string;
|
|
12957
|
+
label: string;
|
|
12958
|
+
url: string;
|
|
12959
|
+
}
|
|
10423
12960
|
interface GrandwelcomeRentalRow {
|
|
10424
12961
|
rentalId: string;
|
|
10425
12962
|
name: string;
|
|
@@ -10459,6 +12996,14 @@ type GrandwelcomeQuote =
|
|
|
10459
12996
|
* price, not a stale catalog.
|
|
10460
12997
|
*/
|
|
10461
12998
|
interface Unit {
|
|
12999
|
+
/**
|
|
13000
|
+
* The entry door: reads the site's own /sitemap.xml for every published destination page and
|
|
13001
|
+
* returns each one's slug (the exact vocabulary searchRentals takes) with a human-readable
|
|
13002
|
+
* label derived from it — e.g. { slug: "california-sea-ranch", label: "California Sea Ranch"
|
|
13003
|
+
* }.
|
|
13004
|
+
*/
|
|
13005
|
+
listGrandwelcomeDestinations(): Promise<GrandwelcomeDestination[]>;
|
|
13006
|
+
|
|
10462
13007
|
/**
|
|
10463
13008
|
* Runs Grand Welcome's own destination search (a market slug like "california-sea-ranch", from
|
|
10464
13009
|
* a rental's own page or the destination directory), optionally filtered to a bedroom count,
|
|
@@ -12029,6 +14574,42 @@ interface HolidaybuildersSearchFilters {
|
|
|
12029
14574
|
}
|
|
12030
14575
|
}
|
|
12031
14576
|
|
|
14577
|
+
declare namespace BowmarkProvider_hottopic {
|
|
14578
|
+
// ── Hot Topic — the unit's own declarations, verbatim ──
|
|
14579
|
+
interface HottopicOffer {
|
|
14580
|
+
sku: string
|
|
14581
|
+
color: string | null
|
|
14582
|
+
size: string | null
|
|
14583
|
+
price: number | null
|
|
14584
|
+
currency: string | null
|
|
14585
|
+
availability: string | null // the site's own schema.org availability URL
|
|
14586
|
+
url: string
|
|
14587
|
+
}
|
|
14588
|
+
interface HottopicProduct {
|
|
14589
|
+
name: string
|
|
14590
|
+
url: string
|
|
14591
|
+
image: string | null
|
|
14592
|
+
offers: HottopicOffer[]
|
|
14593
|
+
}
|
|
14594
|
+
interface HottopicSearchResult {
|
|
14595
|
+
products: HottopicProduct[]
|
|
14596
|
+
}
|
|
14597
|
+
|
|
14598
|
+
/**
|
|
14599
|
+
* Hot Topic's own storefront search (hottopic.com) — licensed pop-culture and entertainment
|
|
14600
|
+
* merch (apparel, figures, accessories) across every property the store carries, read straight
|
|
14601
|
+
* off the site's own structured search-result data.
|
|
14602
|
+
*/
|
|
14603
|
+
interface Unit {
|
|
14604
|
+
/**
|
|
14605
|
+
* Searches hottopic.com's own storefront for a keyword and returns the real, priced product
|
|
14606
|
+
* results (name, image, per-SKU price/color/size/availability) exactly as the site's own
|
|
14607
|
+
* search page carries them.
|
|
14608
|
+
*/
|
|
14609
|
+
search(arg: { query: string }): Promise<HottopicSearchResult>;
|
|
14610
|
+
}
|
|
14611
|
+
}
|
|
14612
|
+
|
|
12032
14613
|
declare namespace BowmarkProvider_hunter {
|
|
12033
14614
|
// ── Hunter — the unit's own declarations, verbatim ──
|
|
12034
14615
|
interface hunterDomainCandidate {
|
|
@@ -14411,6 +16992,14 @@ interface LegacyHomesalAvailability {
|
|
|
14411
16992
|
slots: LegacyHomesalTimeSlot[];
|
|
14412
16993
|
bookingUrl: string;
|
|
14413
16994
|
}
|
|
16995
|
+
interface LegacyHomesalCommunity {
|
|
16996
|
+
name: string;
|
|
16997
|
+
aliases: string[];
|
|
16998
|
+
area: string | null;
|
|
16999
|
+
status: string | null;
|
|
17000
|
+
repSlug: string;
|
|
17001
|
+
bookingUrl: string;
|
|
17002
|
+
}
|
|
14414
17003
|
|
|
14415
17004
|
/**
|
|
14416
17005
|
* Reads a Legacy Homes AL community sales rep's real open tour-appointment slots off HubSpot
|
|
@@ -14423,6 +17012,13 @@ interface LegacyHomesalAvailability {
|
|
|
14423
17012
|
* widget reads, not a form that goes into a queue.
|
|
14424
17013
|
*/
|
|
14425
17014
|
getAvailability(repSlug: string): Promise<LegacyHomesalAvailability>;
|
|
17015
|
+
|
|
17016
|
+
/**
|
|
17017
|
+
* Lists every Legacy Homes AL community (name, area, sales status) paired with the rep slug
|
|
17018
|
+
* getAvailability needs — the entry door for a caller who only knows a community's name, not a
|
|
17019
|
+
* HubSpot booking link.
|
|
17020
|
+
*/
|
|
17021
|
+
listCommunities(): Promise<LegacyHomesalCommunity[]>;
|
|
14426
17022
|
}
|
|
14427
17023
|
}
|
|
14428
17024
|
|
|
@@ -14867,6 +17463,11 @@ interface LittleWordsProjectCatalogueRow {
|
|
|
14867
17463
|
inStock: boolean;
|
|
14868
17464
|
images: string[];
|
|
14869
17465
|
}
|
|
17466
|
+
interface LittleWordsProjectCollectionRow {
|
|
17467
|
+
handle: string;
|
|
17468
|
+
title: string;
|
|
17469
|
+
productsCount: number;
|
|
17470
|
+
}
|
|
14870
17471
|
interface LittleWordsProjectCheckoutLink {
|
|
14871
17472
|
url: string;
|
|
14872
17473
|
variant: LittleWordsProjectVariant;
|
|
@@ -14880,6 +17481,13 @@ interface LittleWordsProjectCheckoutLink {
|
|
|
14880
17481
|
* handoff link carrying the word.
|
|
14881
17482
|
*/
|
|
14882
17483
|
interface Unit {
|
|
17484
|
+
/**
|
|
17485
|
+
* The entry door: reads the storefront's own published collection index — e.g. "Custom", "Best
|
|
17486
|
+
* Sellers" — with each one's handle and product count, so a caller holding only what a shopper
|
|
17487
|
+
* would say can find the handle listLittleWordsProjectProducts takes.
|
|
17488
|
+
*/
|
|
17489
|
+
listLittleWordsProjectCollections(opts?: { limit?: number }): Promise<LittleWordsProjectCollectionRow[]>;
|
|
17490
|
+
|
|
14883
17491
|
/**
|
|
14884
17492
|
* Reads a Little Words Project collection's live products — e.g. "custom", "best-sellers" —
|
|
14885
17493
|
* with handle, title, price range and stock.
|
|
@@ -14905,6 +17513,42 @@ interface LittleWordsProjectCheckoutLink {
|
|
|
14905
17513
|
}
|
|
14906
17514
|
}
|
|
14907
17515
|
|
|
17516
|
+
declare namespace BowmarkProvider_lmstudio {
|
|
17517
|
+
// ── LM Studio — the unit's own declarations, verbatim ──
|
|
17518
|
+
interface lmstudioDoc {
|
|
17519
|
+
url: string;
|
|
17520
|
+
title: string;
|
|
17521
|
+
body: string;
|
|
17522
|
+
}
|
|
17523
|
+
interface lmstudioDocPage {
|
|
17524
|
+
url: string;
|
|
17525
|
+
slug: string;
|
|
17526
|
+
}
|
|
17527
|
+
|
|
17528
|
+
/**
|
|
17529
|
+
* LM Studio's own documentation site (lmstudio.ai/docs) — fetch one page's title and body
|
|
17530
|
+
* straight off its machine-readable `.md` export, instead of parsing the rendered page by
|
|
17531
|
+
* hand.
|
|
17532
|
+
*/
|
|
17533
|
+
interface Unit {
|
|
17534
|
+
/**
|
|
17535
|
+
* Fetches one lmstudio.ai documentation page — `url` is the page's full URL or path, e.g.
|
|
17536
|
+
* "https://lmstudio.ai/docs/app/mcp/deeplink" or "/docs/app/plugins/mcp". Returns its
|
|
17537
|
+
* canonical `url`, its `title` (the page's own `<title>` tag), and its `body` as Markdown —
|
|
17538
|
+
* the site's own machine-readable `.md` export of that page, not raw HTML. Only `/docs/...`
|
|
17539
|
+
* pages are implemented — `getDoc` throws `LmstudioInputError` for any other path.
|
|
17540
|
+
*/
|
|
17541
|
+
getDoc(url: string): Promise<lmstudioDoc>;
|
|
17542
|
+
|
|
17543
|
+
/**
|
|
17544
|
+
* Lists every documentation page lmstudio.ai publishes under /docs — url and the page's own
|
|
17545
|
+
* URL slug — parsed from the site's own /docs/sitemap.xml. The sitemap carries no title; call
|
|
17546
|
+
* getDoc(url) for the page's real <title>.
|
|
17547
|
+
*/
|
|
17548
|
+
listDocPages(): Promise<lmstudioDocPage[]>;
|
|
17549
|
+
}
|
|
17550
|
+
}
|
|
17551
|
+
|
|
14908
17552
|
declare namespace BowmarkProvider_lonelyplanet {
|
|
14909
17553
|
// ── Lonely Planet — the unit's own declarations, verbatim ──
|
|
14910
17554
|
interface LonelyPlanetSearchResult {
|
|
@@ -15598,6 +18242,15 @@ interface marketplaceExtensionStats {
|
|
|
15598
18242
|
averageRating: number | null;
|
|
15599
18243
|
ratingCount: number;
|
|
15600
18244
|
}
|
|
18245
|
+
interface marketplaceSearchResult {
|
|
18246
|
+
extensionId: string;
|
|
18247
|
+
displayName: string;
|
|
18248
|
+
publisherDisplayName: string;
|
|
18249
|
+
shortDescription: string;
|
|
18250
|
+
installCount: number;
|
|
18251
|
+
averageRating: number | null;
|
|
18252
|
+
ratingCount: number;
|
|
18253
|
+
}
|
|
15601
18254
|
|
|
15602
18255
|
/**
|
|
15603
18256
|
* The VS Code Marketplace — look up one extension by its publisher.name id and get its install
|
|
@@ -15613,6 +18266,15 @@ interface marketplaceExtensionStats {
|
|
|
15613
18266
|
* published extension.
|
|
15614
18267
|
*/
|
|
15615
18268
|
getExtensionStats(extensionId: string): Promise<marketplaceExtensionStats>;
|
|
18269
|
+
|
|
18270
|
+
/**
|
|
18271
|
+
* Full-text searches the VS Code Marketplace for extensions matching `query` (e.g. "python
|
|
18272
|
+
* linting" or "vim keybindings") — the same search the Marketplace's own search box runs — and
|
|
18273
|
+
* returns up to 20 results ordered by install count, most popular first. Each result carries
|
|
18274
|
+
* the "publisher.name" id to pass to getExtensionStats() for the latest version and
|
|
18275
|
+
* last-updated date.
|
|
18276
|
+
*/
|
|
18277
|
+
searchExtensions(query: string): Promise<marketplaceSearchResult[]>;
|
|
15616
18278
|
}
|
|
15617
18279
|
}
|
|
15618
18280
|
|
|
@@ -15801,6 +18463,41 @@ interface mcpRegistryEntry {
|
|
|
15801
18463
|
}
|
|
15802
18464
|
}
|
|
15803
18465
|
|
|
18466
|
+
declare namespace BowmarkProvider_mcp_so {
|
|
18467
|
+
// ── MCP.so — the unit's own declarations, verbatim ──
|
|
18468
|
+
interface McpSoListing {
|
|
18469
|
+
slug: string;
|
|
18470
|
+
name: string;
|
|
18471
|
+
description: string;
|
|
18472
|
+
category: string | null;
|
|
18473
|
+
author: string | null;
|
|
18474
|
+
url: string;
|
|
18475
|
+
imageUrl: string | null;
|
|
18476
|
+
}
|
|
18477
|
+
interface McpSoSearchResult {
|
|
18478
|
+
results: McpSoListing[];
|
|
18479
|
+
warnings: string[];
|
|
18480
|
+
}
|
|
18481
|
+
|
|
18482
|
+
/**
|
|
18483
|
+
* The mcp.so directory of published MCP servers — substring-search listings by slug/name and
|
|
18484
|
+
* get each match's title, description, category, publisher and page url.
|
|
18485
|
+
*/
|
|
18486
|
+
interface Unit {
|
|
18487
|
+
/**
|
|
18488
|
+
* Searches the mcp.so directory of published MCP servers. `query` is matched as a
|
|
18489
|
+
* case-insensitive substring against each listing's mcp.so SLUG (e.g. "firecrawl" matches
|
|
18490
|
+
* `mcp.so/servers/firecrawl-firecrawl` and `mcp.so/servers/firecrawl`) — not a full-text
|
|
18491
|
+
* search of descriptions. `limit` caps how many matches are fetched and returned (default 10,
|
|
18492
|
+
* max 25 — each one costs a separate request to that listing's own page). Returns `{ results,
|
|
18493
|
+
* warnings }`: each result carries mcp.so's own name, description, category, publisher and
|
|
18494
|
+
* page url for that listing, read from the page's own structured data; `warnings` names any
|
|
18495
|
+
* sitemap or detail page this call could not reach, and is empty on a fully healthy call.
|
|
18496
|
+
*/
|
|
18497
|
+
search(query: string, limit?: number): Promise<McpSoSearchResult>;
|
|
18498
|
+
}
|
|
18499
|
+
}
|
|
18500
|
+
|
|
15804
18501
|
declare namespace BowmarkProvider_medicalguardian {
|
|
15805
18502
|
// ── Medical Guardian — the unit's own declarations, verbatim ──
|
|
15806
18503
|
// Medical Guardian's OWN shapes — not a capability contract.
|
|
@@ -17697,6 +20394,14 @@ interface NbfCartHandoff {
|
|
|
17697
20394
|
|
|
17698
20395
|
declare namespace BowmarkProvider_newageproducts {
|
|
17699
20396
|
// ── NewAge Products — the unit's own declarations, verbatim ──
|
|
20397
|
+
interface NewageproductsSearchResult {
|
|
20398
|
+
handle: string;
|
|
20399
|
+
name: string;
|
|
20400
|
+
price: string;
|
|
20401
|
+
priceCa: string | null;
|
|
20402
|
+
active: boolean;
|
|
20403
|
+
imageUrl: string | null;
|
|
20404
|
+
}
|
|
17700
20405
|
interface NewageproductsVariant {
|
|
17701
20406
|
/** The store's own SKU — the only stable per-variant identifier this site publishes. */
|
|
17702
20407
|
sku: string;
|
|
@@ -17737,6 +20442,14 @@ interface NewageproductsProduct {
|
|
|
17737
20442
|
* site's own reliable soft-404 shape).
|
|
17738
20443
|
*/
|
|
17739
20444
|
getNewageproductsProduct(handle: string): Promise<NewageproductsProduct>;
|
|
20445
|
+
|
|
20446
|
+
/**
|
|
20447
|
+
* Runs NewAge Products' own header-search box for a keyword (e.g. "garage cabinet", "outdoor
|
|
20448
|
+
* kitchen") and returns up to 5 ranked matches — each row's `handle` feeds
|
|
20449
|
+
* getNewageproductsProduct directly. Returns an empty array for no match, which is a real
|
|
20450
|
+
* result, not a failure.
|
|
20451
|
+
*/
|
|
20452
|
+
searchNewageproductsCatalog(query: string): Promise<NewageproductsSearchResult[]>;
|
|
17740
20453
|
}
|
|
17741
20454
|
}
|
|
17742
20455
|
|
|
@@ -18485,6 +21198,62 @@ interface TearsheetUrl {
|
|
|
18485
21198
|
}
|
|
18486
21199
|
}
|
|
18487
21200
|
|
|
21201
|
+
declare namespace BowmarkProvider_pilotprotocol {
|
|
21202
|
+
// ── Pilot Protocol App Store — the unit's own declarations, verbatim ──
|
|
21203
|
+
interface PilotprotocolAppSummary {
|
|
21204
|
+
id: string;
|
|
21205
|
+
name: string;
|
|
21206
|
+
vendor: string;
|
|
21207
|
+
category: string;
|
|
21208
|
+
tagline: string;
|
|
21209
|
+
platforms: string;
|
|
21210
|
+
}
|
|
21211
|
+
|
|
21212
|
+
interface PilotprotocolMethod {
|
|
21213
|
+
name: string;
|
|
21214
|
+
summary: string;
|
|
21215
|
+
}
|
|
21216
|
+
|
|
21217
|
+
interface PilotprotocolAppDetail {
|
|
21218
|
+
id: string;
|
|
21219
|
+
name: string;
|
|
21220
|
+
vendor: string;
|
|
21221
|
+
vendorUrl: string | null;
|
|
21222
|
+
tagline: string;
|
|
21223
|
+
description: string;
|
|
21224
|
+
category: string;
|
|
21225
|
+
version: string;
|
|
21226
|
+
license: string | null;
|
|
21227
|
+
runtime: string | null;
|
|
21228
|
+
minPilotVersion: string | null;
|
|
21229
|
+
sourceUrl: string | null;
|
|
21230
|
+
installCommand: string | null;
|
|
21231
|
+
permissions: string[];
|
|
21232
|
+
methods: PilotprotocolMethod[];
|
|
21233
|
+
}
|
|
21234
|
+
|
|
21235
|
+
/**
|
|
21236
|
+
* Pilot Protocol's own app store — a directory of installable agent capabilities (30+ apps:
|
|
21237
|
+
* databases, comms, browser automation, payments, …). listApps returns the whole catalog (id,
|
|
21238
|
+
* name, vendor, category, tagline); getApp reads one app's detail page (version, license,
|
|
21239
|
+
* runtime, permissions, methods) by id.
|
|
21240
|
+
*/
|
|
21241
|
+
interface Unit {
|
|
21242
|
+
/**
|
|
21243
|
+
* Lists every app in Pilot Protocol's app store — id, name, vendor, category, one-line tagline
|
|
21244
|
+
* and supported platforms for each.
|
|
21245
|
+
*/
|
|
21246
|
+
listApps(): Promise<PilotprotocolAppSummary[]>;
|
|
21247
|
+
|
|
21248
|
+
/**
|
|
21249
|
+
* Reads one app's detail page by id (e.g. "io.pilot.bowmark", from listApps) — vendor,
|
|
21250
|
+
* tagline, full description, category, version, license, runtime, minimum Pilot version,
|
|
21251
|
+
* source link, install command, granted permissions and its method list.
|
|
21252
|
+
*/
|
|
21253
|
+
getApp(id: string): Promise<PilotprotocolAppDetail>;
|
|
21254
|
+
}
|
|
21255
|
+
}
|
|
21256
|
+
|
|
18488
21257
|
declare namespace BowmarkProvider_pirateship {
|
|
18489
21258
|
// ── Pirate Ship — the unit's own declarations, verbatim ──
|
|
18490
21259
|
interface PirateshipDimensions {
|
|
@@ -18849,6 +21618,42 @@ interface PizzahutDealsForRender {
|
|
|
18849
21618
|
}
|
|
18850
21619
|
}
|
|
18851
21620
|
|
|
21621
|
+
declare namespace BowmarkProvider_platform_claude_com {
|
|
21622
|
+
// ── Claude Developer Platform Docs — the unit's own declarations, verbatim ──
|
|
21623
|
+
interface platform_claude_comDoc {
|
|
21624
|
+
url: string;
|
|
21625
|
+
title: string | null;
|
|
21626
|
+
description: string | null;
|
|
21627
|
+
body: string;
|
|
21628
|
+
}
|
|
21629
|
+
interface platform_claude_comDocLink {
|
|
21630
|
+
title: string;
|
|
21631
|
+
url: string;
|
|
21632
|
+
description: string | null;
|
|
21633
|
+
}
|
|
21634
|
+
|
|
21635
|
+
/**
|
|
21636
|
+
* Reads platform.claude.com's own developer documentation — one /docs page by URL, or the full
|
|
21637
|
+
* page index — as clean markdown, the site's own machine-readable source rather than a scrape.
|
|
21638
|
+
*/
|
|
21639
|
+
interface Unit {
|
|
21640
|
+
/**
|
|
21641
|
+
* Reads one /docs page of platform.claude.com's own documentation by URL or path (e.g.
|
|
21642
|
+
* "/docs/en/about-claude/pricing" or the full https:// url) and returns its title, description
|
|
21643
|
+
* and body as clean markdown — the site's own .md source, not a whole-page scrape. THROWS if
|
|
21644
|
+
* the page does not exist (404) or names a host other than platform.claude.com.
|
|
21645
|
+
*/
|
|
21646
|
+
getDocPage(url: string): Promise<platform_claude_comDoc>;
|
|
21647
|
+
|
|
21648
|
+
/**
|
|
21649
|
+
* Lists every English /docs page platform.claude.com publishes — title, its own .md source
|
|
21650
|
+
* url, and a one-line description where the site gives one — parsed from the site's own
|
|
21651
|
+
* /llms.txt index.
|
|
21652
|
+
*/
|
|
21653
|
+
listDocPages(): Promise<platform_claude_comDocLink[]>;
|
|
21654
|
+
}
|
|
21655
|
+
}
|
|
21656
|
+
|
|
18852
21657
|
declare namespace BowmarkProvider_poshmark {
|
|
18853
21658
|
// ── Poshmark — the unit's own declarations, verbatim ──
|
|
18854
21659
|
interface PoshmarkSupportArticle {
|
|
@@ -20376,6 +23181,21 @@ interface RoofmaxxCostEstimate {
|
|
|
20376
23181
|
}
|
|
20377
23182
|
}
|
|
20378
23183
|
|
|
23184
|
+
declare namespace BowmarkProvider_rover {
|
|
23185
|
+
// ── Rover.com — the unit's own declarations, verbatim ──
|
|
23186
|
+
interface RoverBoardingRow { name: string; profileUrl: string; ratingValue: number | null; reviewCount: number | null; repeatClientCount: number | null; startingNightlyRate: { amount: number; currency: string }; location: string | null; distanceMi: number | null; }
|
|
23187
|
+
|
|
23188
|
+
/** Rover's live overnight-boarding sitter search for a city and specific dates. */
|
|
23189
|
+
interface Unit {
|
|
23190
|
+
/**
|
|
23191
|
+
* Searches Rover's live overnight-boarding results for a city and increasing ISO start/end
|
|
23192
|
+
* dates. Returns each sitter's starting per-night rate for that stay (before Rover's ~10-11%
|
|
23193
|
+
* service fee and before per-pet pricing), rating, review count and distance.
|
|
23194
|
+
*/
|
|
23195
|
+
searchBoarding(args: { location: string; startDate: string; endDate: string }): Promise<RoverBoardingRow[]>;
|
|
23196
|
+
}
|
|
23197
|
+
}
|
|
23198
|
+
|
|
20379
23199
|
declare namespace BowmarkProvider_rvshare {
|
|
20380
23200
|
// ── RVshare — the unit's own declarations, verbatim ──
|
|
20381
23201
|
interface RvshareListing {
|
|
@@ -20476,6 +23296,45 @@ interface SaatvaRecommendation {
|
|
|
20476
23296
|
}
|
|
20477
23297
|
}
|
|
20478
23298
|
|
|
23299
|
+
declare namespace BowmarkProvider_safetywing {
|
|
23300
|
+
// ── SafetyWing — the unit's own declarations, verbatim ──
|
|
23301
|
+
type Plan = "essential" | "complete";
|
|
23302
|
+
type Addon = "sportsCoverage" | "usaCoverage" | "itemInsurance";
|
|
23303
|
+
interface GetSafetywingQuoteArgs {
|
|
23304
|
+
plan: Plan;
|
|
23305
|
+
age: number;
|
|
23306
|
+
startDate: string;
|
|
23307
|
+
durationWeeks: 4 | 52;
|
|
23308
|
+
addons?: Addon[];
|
|
23309
|
+
}
|
|
23310
|
+
interface safetywingQuote {
|
|
23311
|
+
plan: Plan;
|
|
23312
|
+
age: number;
|
|
23313
|
+
startDate: string;
|
|
23314
|
+
durationWeeks: 4 | 52;
|
|
23315
|
+
priceDaily: { amount: number; currency: string };
|
|
23316
|
+
priceTotal: { amount: number; currency: string };
|
|
23317
|
+
priceMonthly: { amount: number; currency: string } | null;
|
|
23318
|
+
priceYearly: { amount: number; currency: string } | null;
|
|
23319
|
+
addonPrices: Array<{ addon: Addon; priceDaily: { amount: number; currency: string }; priceTotal: { amount: number; currency: string } }>;
|
|
23320
|
+
purchaseUrl: string;
|
|
23321
|
+
}
|
|
23322
|
+
|
|
23323
|
+
/**
|
|
23324
|
+
* Runs SafetyWing's own Nomad Insurance quote calculator for a real plan/age/date/addon
|
|
23325
|
+
* combination and returns the live price.
|
|
23326
|
+
*/
|
|
23327
|
+
interface Unit {
|
|
23328
|
+
/**
|
|
23329
|
+
* Runs SafetyWing's own Nomad Insurance quote calculator (safetywing.com/nomad-insurance) for
|
|
23330
|
+
* a real plan, age, coverage start date, duration and add-on selection, and returns the live
|
|
23331
|
+
* computed price with a per-addon breakdown, plus SafetyWing's own signup/purchase handoff URL
|
|
23332
|
+
* for the priced product.
|
|
23333
|
+
*/
|
|
23334
|
+
getQuote(args: GetSafetywingQuoteArgs): Promise<safetywingQuote>;
|
|
23335
|
+
}
|
|
23336
|
+
}
|
|
23337
|
+
|
|
20479
23338
|
declare namespace BowmarkProvider_saltandstone {
|
|
20480
23339
|
// ── Salt & Stone — the unit's own declarations, verbatim ──
|
|
20481
23340
|
// Salt & Stone's OWN shapes — not a capability contract.
|
|
@@ -21447,6 +24306,18 @@ interface SmitherySearchResult {
|
|
|
21447
24306
|
|
|
21448
24307
|
declare namespace BowmarkProvider_solostove {
|
|
21449
24308
|
// ── Solo Stove — the unit's own declarations, verbatim ──
|
|
24309
|
+
interface SolostoveBundleSummary {
|
|
24310
|
+
bundleId: string;
|
|
24311
|
+
name: string;
|
|
24312
|
+
price: number;
|
|
24313
|
+
currency: string;
|
|
24314
|
+
orderable: boolean;
|
|
24315
|
+
}
|
|
24316
|
+
interface SolostoveBundleSearch {
|
|
24317
|
+
query: string;
|
|
24318
|
+
bundles: SolostoveBundleSummary[];
|
|
24319
|
+
total: number;
|
|
24320
|
+
}
|
|
21450
24321
|
interface SolostoveBundleComponent {
|
|
21451
24322
|
sku: string;
|
|
21452
24323
|
name: string;
|
|
@@ -21465,21 +24336,32 @@ interface SolostoveBundleCheck {
|
|
|
21465
24336
|
}
|
|
21466
24337
|
|
|
21467
24338
|
/**
|
|
21468
|
-
* Solo Stove's bundle-builder check flow —
|
|
21469
|
-
*
|
|
21470
|
-
*
|
|
21471
|
-
* WHICH piece is out of stock when it
|
|
24339
|
+
* Solo Stove's bundle-builder check flow — search bundles by what a shopper would type (e.g.
|
|
24340
|
+
* "pizza bundle"), then check one bundle's own product id (fire pit + accessories, e.g. the
|
|
24341
|
+
* Dream Backyard Bundle) for its combined price and whether the exact combination is orderable
|
|
24342
|
+
* right now, broken down per component so a caller can see WHICH piece is out of stock when it
|
|
24343
|
+
* is not.
|
|
21472
24344
|
*/
|
|
21473
24345
|
interface Unit {
|
|
24346
|
+
/**
|
|
24347
|
+
* Searches Solo Stove's own storefront search for BUNDLE products (fire pit + accessories sold
|
|
24348
|
+
* as one combination) by what a shopper would type, e.g. "pizza bundle" or "Dream Backyard".
|
|
24349
|
+
* Returns each match's own bundleId — feed it straight into checkBundle. Filters out
|
|
24350
|
+
* non-bundle products the same search also matches (a single-SKU product that happens to be
|
|
24351
|
+
* named "…Bundle" is not this site's bundle TYPE). An unmatched query returns an empty list,
|
|
24352
|
+
* not an error.
|
|
24353
|
+
*/
|
|
24354
|
+
listBundles(query: string): Promise<SolostoveBundleSearch>;
|
|
24355
|
+
|
|
21474
24356
|
/**
|
|
21475
24357
|
* Checks one Solo Stove bundle (fire pit + accessories, e.g. the Dream Backyard Bundle) by its
|
|
21476
|
-
* own product id — the `+`-joined component SKUs from the bundle's product page URL
|
|
21477
|
-
* the combined price and whether the site will sell the
|
|
21478
|
-
* per-component breakdown (each component's own price and
|
|
21479
|
-
* single component made the bundle unorderable. THROWS when
|
|
21480
|
-
* you don't already have a bundle id, use
|
|
21481
|
-
* "SS27+SS22+WINDCHILL30-CHARCOAL-17AH" — to check the
|
|
21482
|
-
* one first.
|
|
24358
|
+
* own product id — the `+`-joined component SKUs from the bundle's product page URL, or a
|
|
24359
|
+
* bundleId from listBundles. Returns the combined price and whether the site will sell the
|
|
24360
|
+
* EXACT combination right now, plus a per-component breakdown (each component's own price and
|
|
24361
|
+
* stock) so a caller can see which single component made the bundle unorderable. THROWS when
|
|
24362
|
+
* the bundle id does not exist. If you don't already have a bundle id, use listBundles to find
|
|
24363
|
+
* one, or the Dream Backyard Bundle's — "SS27+SS22+WINDCHILL30-CHARCOAL-17AH" — to check the
|
|
24364
|
+
* flow rather than asking the caller for one first.
|
|
21483
24365
|
*/
|
|
21484
24366
|
checkBundle(args: { bundleId: string }): Promise<SolostoveBundleCheck>;
|
|
21485
24367
|
}
|
|
@@ -23021,6 +25903,7 @@ interface thezebraAutoDriver {
|
|
|
23021
25903
|
ageFirstLicensed?: number // default 16 when omitted
|
|
23022
25904
|
violations?: { accidents: number, claims: number, tickets: number } // default a clean record
|
|
23023
25905
|
occupation?: string // default "OTHER" — the only two confirmed-valid values are "OTHER" and "ENGINEER"
|
|
25906
|
+
residenceOwnership?: 0 | 1 | 2 | 3 // own home/condo/rent/other; default 3 ("Other")
|
|
23024
25907
|
}
|
|
23025
25908
|
|
|
23026
25909
|
interface thezebraAutoVehicle {
|
|
@@ -23035,6 +25918,8 @@ interface thezebraAutoQuotesQuery {
|
|
|
23035
25918
|
state: string // 2-letter postal code
|
|
23036
25919
|
zip: string // 5 digits
|
|
23037
25920
|
county: string // the county the ZIP sits in — the gateway validates server-side
|
|
25921
|
+
currentlyInsured?: boolean // default true
|
|
25922
|
+
userPurchaseTimeframe?: "TODAY" | "FUTURE" // default "TODAY"
|
|
23038
25923
|
}
|
|
23039
25924
|
|
|
23040
25925
|
interface thezebraAutoQuote {
|
|
@@ -23236,23 +26121,43 @@ interface thezebraAutoQuotes {
|
|
|
23236
26121
|
* carrier's own monthly and six-month premium, deductible, and the coverage it priced, as The
|
|
23237
26122
|
* Zebra's auto quote funnel prices them. This is a priced offer for the person asking, NOT the
|
|
23238
26123
|
* published averages `getStateRates` and its siblings return. Pass `driver` (`firstName`,
|
|
23239
|
-
* `lastName`, `dob` ISO YYYY-MM-DD, `email`, and
|
|
23240
|
-
*
|
|
23241
|
-
*
|
|
23242
|
-
*
|
|
23243
|
-
*
|
|
23244
|
-
*
|
|
23245
|
-
*
|
|
23246
|
-
*
|
|
23247
|
-
*
|
|
23248
|
-
*
|
|
23249
|
-
*
|
|
23250
|
-
*
|
|
23251
|
-
*
|
|
23252
|
-
*
|
|
23253
|
-
*
|
|
23254
|
-
*
|
|
23255
|
-
*
|
|
26124
|
+
* `lastName`, `dob` ISO YYYY-MM-DD, `email`, a real `employment` and `currentCarrier` —
|
|
26125
|
+
* REQUIRED, see their own doc comments, never invented, same rule as a quote identity — and
|
|
26126
|
+
* optionally
|
|
26127
|
+
* `ageFirstLicensed`/`violations`/`occupation`/`residenceOwnership`/`creditScore`/`education`/`hasMilitaryAffiliation`/`insuredLength`,
|
|
26128
|
+
* each defaulting to a clean-record, non-committal placeholder when omitted), one `vehicle`
|
|
26129
|
+
* (`year`, `make`, `model`, and a real `garagingAddress` — REQUIRED, never invented, same rule
|
|
26130
|
+
* as a quote identity — a model The Zebra does not rate THROWS naming the URL it tried), the
|
|
26131
|
+
* 2-letter `state`, a 5-digit `zip`, `county` (the county the ZIP sits in — The Zebra
|
|
26132
|
+
* validates it server-side and a missing or wrong county is bounced), and optionally
|
|
26133
|
+
* `userPurchaseTimeframe`/`currentBodilyInjuryPerPerson`/`currentBodilyInjuryPerAccident`
|
|
26134
|
+
* (`currentlyInsured` defaults `true` and `false` is refused — see its own doc comment).
|
|
26135
|
+
* **Measured 2026-09-05: `driver.employment` and `driver.currentCarrier` are REQUIRED because
|
|
26136
|
+
* the funnel's own `/car/manual/drivers/details/` page will not complete without a real answer
|
|
26137
|
+
* to both, and neither has an honest default** — a call omitting either now throws immediately
|
|
26138
|
+
* rather than discovering the same dead end after a full, ~60-90s funnel walk. **The write
|
|
26139
|
+
* always binds** — the GraphQL gateway at `graphql-gateway.production.thezebra.com` accepts
|
|
26140
|
+
* the seed and returns 200. **AS OF 2026-09-05 all six of the funnel's pages are answered and
|
|
26141
|
+
* the results route is REACHED** — the last gate was never a missing mutation field:
|
|
26142
|
+
* `/car/manual/coverage-selection/` computes personalized coverage packages on a THIRD backend
|
|
26143
|
+
* (`coverage-service.production.thezebra.com`) and only unlocks the redirect once its own
|
|
26144
|
+
* "Show quotes at this coverage" button PATCHes a chosen package, which this function now
|
|
26145
|
+
* drives (the "Best" tier — the site's own recommended default). See the write site's own
|
|
26146
|
+
* comment for the measured chain. **A separate, unresolved question**: with the funnel fully
|
|
26147
|
+
* answered, the results page itself sometimes renders a legitimate-looking "we checked with
|
|
26148
|
+
* over 30 insurers and were unable to get any quotes for you … most insurance companies aren't
|
|
26149
|
+
* selling new policies in your area due to temporary restrictions" state instead of quote
|
|
26150
|
+
* cards — reproduced on two (address, zip, county) pairs 200 miles apart with the same
|
|
26151
|
+
* placeholder identity, so it does not look address-specific. Whether that is genuine carrier
|
|
26152
|
+
* unavailability or a soft decline on this function's synthetic/proxied traffic is not yet
|
|
26153
|
+
* determined; `agents/richard/problems/thezebra-getautoquotes-broken.md` carries the evidence.
|
|
26154
|
+
* This function does NOT throw on that state — an empty `quotes` array is what it looks like,
|
|
26155
|
+
* and `parseAutoResults` already treats a page with no `results-card_q2b_*` elements as a
|
|
26156
|
+
* legitimate empty answer rather than an error, which is the correct call for a genuine
|
|
26157
|
+
* carrier-side "nothing to quote" as well as this one. The function throws only when the
|
|
26158
|
+
* funnel itself refuses to reach the coverage-selection or results routes, with a message
|
|
26159
|
+
* naming the redirect target and, where readable, the funnel's own list of which pages are
|
|
26160
|
+
* still unanswered. **`advertisedCarriers` is not a quote list and must never be read as
|
|
23256
26161
|
* one**: the results page would carry paid carrier placements alongside real offers, separated
|
|
23257
26162
|
* by `data-cy="results-card_ad_<carrier>"` (ad) versus `data-cy="results-card_q2b_<carrier>"`
|
|
23258
26163
|
* (real offer), and the advertised names are returned in their own field with no price
|
|
@@ -23471,12 +26376,30 @@ interface topviewtixPackageDetails {
|
|
|
23471
26376
|
availableUntil: string | null;
|
|
23472
26377
|
}
|
|
23473
26378
|
|
|
26379
|
+
interface topviewtixPackageSummary {
|
|
26380
|
+
id: number;
|
|
26381
|
+
slug: string;
|
|
26382
|
+
name: string;
|
|
26383
|
+
adultsPrice: number | null;
|
|
26384
|
+
kidsPrice: number | null;
|
|
26385
|
+
url: string;
|
|
26386
|
+
}
|
|
26387
|
+
|
|
23474
26388
|
/**
|
|
23475
26389
|
* TopView's NYC hop-on-hop-off bus, Statue of Liberty cruise and bike/walking tour packages —
|
|
23476
26390
|
* getPackageDetails reads one package's live price and its own real-time booking calendar
|
|
23477
26391
|
* (available/blocked/sold-out dates) off topviewtix.com/new-york/<slug>.
|
|
23478
26392
|
*/
|
|
23479
26393
|
interface Unit {
|
|
26394
|
+
/**
|
|
26395
|
+
* Lists every TopView tour package currently sold in New York — id, name, slug, adult/kid
|
|
26396
|
+
* price and url — straight off the same package-card grid the site's own home page renders.
|
|
26397
|
+
* The natural entry point before getPackageDetails: a caller who only knows what a person
|
|
26398
|
+
* would SAY ("the hop on hop off bus", "a downtown tour") reads this first and picks the
|
|
26399
|
+
* `slug` to look one up in full.
|
|
26400
|
+
*/
|
|
26401
|
+
listPackages(): Promise<topviewtixPackageSummary[]>;
|
|
26402
|
+
|
|
23480
26403
|
/**
|
|
23481
26404
|
* Reads one TopView tour package in full — name, description, adult/kid price, and the site's
|
|
23482
26405
|
* OWN live booking calendar (which dates are open, blocked, or sold out, and how far out the
|
|
@@ -23801,6 +26724,63 @@ type TwiddyQuote =
|
|
|
23801
26724
|
}
|
|
23802
26725
|
}
|
|
23803
26726
|
|
|
26727
|
+
declare namespace BowmarkProvider_uhc_smallbusiness {
|
|
26728
|
+
// ── UnitedHealthcare Small Business — the unit's own declarations, verbatim ──
|
|
26729
|
+
interface UhcSmallbusinessPlan {
|
|
26730
|
+
planCode: string;
|
|
26731
|
+
planName: string;
|
|
26732
|
+
fullName: string;
|
|
26733
|
+
planMarketType: "LEVEL_FUNDED" | "FULLY_INSURED";
|
|
26734
|
+
metalLevel: string | null;
|
|
26735
|
+
planType: string | null;
|
|
26736
|
+
legalEntity: string | null;
|
|
26737
|
+
perEmployeeMonthlyPremium: number;
|
|
26738
|
+
totalMonthlyPremium: number;
|
|
26739
|
+
deductibleIndividual: string | null;
|
|
26740
|
+
deductibleFamily: string | null;
|
|
26741
|
+
outOfPocketIndividual: string | null;
|
|
26742
|
+
outOfPocketFamily: string | null;
|
|
26743
|
+
primaryCareVisit: string | null;
|
|
26744
|
+
findYourDoctorUrl: string | null;
|
|
26745
|
+
}
|
|
26746
|
+
|
|
26747
|
+
interface UhcSmallbusinessQuote {
|
|
26748
|
+
zip: string;
|
|
26749
|
+
state: string;
|
|
26750
|
+
county: string;
|
|
26751
|
+
effectiveDate: string;
|
|
26752
|
+
employerContributionShare: number;
|
|
26753
|
+
plans: UhcSmallbusinessPlan[];
|
|
26754
|
+
warnings: string[];
|
|
26755
|
+
}
|
|
26756
|
+
|
|
26757
|
+
/**
|
|
26758
|
+
* UnitedHealthcare's small-business store — real level-funded and fully-insured group health
|
|
26759
|
+
* plan premiums for a ZIP and employee count, no sign-in required.
|
|
26760
|
+
*/
|
|
26761
|
+
interface Unit {
|
|
26762
|
+
/**
|
|
26763
|
+
* Real level-funded and fully-insured small-group health plan premiums for a ZIP code and
|
|
26764
|
+
* employee count — the same 'Explore Top Selling <State> Plans' list smallbusiness.uhc.com
|
|
26765
|
+
* shows after its anonymous 'Shop Plans' form, no sign-in, no agent contact and no
|
|
26766
|
+
* email-verification round-trip required. Each of the ~20 returned plans carries UHC's own
|
|
26767
|
+
* plan code, market type (level-funded vs. fully-insured), metal tier where ACA-rated,
|
|
26768
|
+
* deductible, out-of-pocket max, primary-care copay and a per-employee AND a total-group
|
|
26769
|
+
* monthly premium. **The premium is UHC's own estimate for a 40-year-old male** — its page
|
|
26770
|
+
* says so in as many words ('The prices provided are estimates based on all employees being
|
|
26771
|
+
* 40-year-old males') — because pricing a real census (each employee's actual age and sex)
|
|
26772
|
+
* requires the multi-step 'Get Plan Recommendations' questionnaire this function does not
|
|
26773
|
+
* walk; a caller wanting THAT number has to go further than an anonymous ZIP-in quote-out read
|
|
26774
|
+
* allows. This is still the number a business owner sees as their first real quote, and it is
|
|
26775
|
+
* the number the small-group renewal story (14% median 2027 hike) is about. Takes a 5-digit
|
|
26776
|
+
* ZIP and a positive employee count; the site rejects neither with an error page, but a ZIP
|
|
26777
|
+
* with no small-group market (rural, out of UHC's book) can come back with an empty `plans`
|
|
26778
|
+
* array, and that is a real answer, not a failure.
|
|
26779
|
+
*/
|
|
26780
|
+
getGroupHealthQuote(zip: string, employeeCount: number): Promise<UhcSmallbusinessQuote>;
|
|
26781
|
+
}
|
|
26782
|
+
}
|
|
26783
|
+
|
|
23804
26784
|
declare namespace BowmarkProvider_ulrichlifestyle {
|
|
23805
26785
|
// ── Ulrich Lifestyle Structures — the unit's own declarations, verbatim ──
|
|
23806
26786
|
// Ulrich Lifestyle Structures' OWN shapes — not a capability contract.
|
|
@@ -24448,6 +27428,43 @@ interface VoluspaQuizIntro {
|
|
|
24448
27428
|
}
|
|
24449
27429
|
}
|
|
24450
27430
|
|
|
27431
|
+
declare namespace BowmarkProvider_vscode {
|
|
27432
|
+
// ── VS Code Documentation — the unit's own declarations, verbatim ──
|
|
27433
|
+
interface VscodeDoc {
|
|
27434
|
+
url: string;
|
|
27435
|
+
title: string;
|
|
27436
|
+
description: string;
|
|
27437
|
+
text: string;
|
|
27438
|
+
warnings: string[];
|
|
27439
|
+
}
|
|
27440
|
+
interface VscodeDocLink {
|
|
27441
|
+
title: string;
|
|
27442
|
+
url: string;
|
|
27443
|
+
description: string | null;
|
|
27444
|
+
}
|
|
27445
|
+
|
|
27446
|
+
/**
|
|
27447
|
+
* VS Code's own documentation site (code.visualstudio.com) — reads one doc page's structured
|
|
27448
|
+
* content (title, description, flattened body text) directly from its server-rendered HTML,
|
|
27449
|
+
* given its URL, or lists every doc page it publishes.
|
|
27450
|
+
*/
|
|
27451
|
+
interface Unit {
|
|
27452
|
+
/**
|
|
27453
|
+
* Returns one code.visualstudio.com doc page by its URL — title, description, and the
|
|
27454
|
+
* flattened body text in document order. THROWS on a missing/invalid/off-site url and on a
|
|
27455
|
+
* transport failure, so a caller can distinguish "unreachable" from "empty".
|
|
27456
|
+
*/
|
|
27457
|
+
getDoc(url: string): Promise<VscodeDoc>;
|
|
27458
|
+
|
|
27459
|
+
/**
|
|
27460
|
+
* Lists every doc page code.visualstudio.com publishes — title, its own page url, and a
|
|
27461
|
+
* one-line description where the site gives one — parsed from the site's own /llms.txt index.
|
|
27462
|
+
* Every url returned is one getDoc() can read.
|
|
27463
|
+
*/
|
|
27464
|
+
listDocPages(): Promise<VscodeDocLink[]>;
|
|
27465
|
+
}
|
|
27466
|
+
}
|
|
27467
|
+
|
|
24451
27468
|
declare namespace BowmarkProvider_walkerhughes {
|
|
24452
27469
|
// ── WalkerHughes Insurance — the unit's own declarations, verbatim ──
|
|
24453
27470
|
// WalkerHughes' OWN shapes — not a capability contract.
|
|
@@ -24845,6 +27862,68 @@ interface XpressWaitTime {
|
|
|
24845
27862
|
}
|
|
24846
27863
|
}
|
|
24847
27864
|
|
|
27865
|
+
declare namespace BowmarkProvider_ycombinator {
|
|
27866
|
+
// ── Y Combinator — the unit's own declarations, verbatim ──
|
|
27867
|
+
interface YCombinatorArticle {
|
|
27868
|
+
id: number | null;
|
|
27869
|
+
slug: string;
|
|
27870
|
+
title: string;
|
|
27871
|
+
author: string | null;
|
|
27872
|
+
description: string;
|
|
27873
|
+
content: string;
|
|
27874
|
+
categories: string[];
|
|
27875
|
+
youtubeId: string | null;
|
|
27876
|
+
transcript: string | null;
|
|
27877
|
+
url: string;
|
|
27878
|
+
warnings: string[];
|
|
27879
|
+
}
|
|
27880
|
+
interface YCombinatorBlogPost {
|
|
27881
|
+
title: string;
|
|
27882
|
+
author: string | null;
|
|
27883
|
+
publishedAt: string | null;
|
|
27884
|
+
text: string;
|
|
27885
|
+
url: string;
|
|
27886
|
+
warnings: string[];
|
|
27887
|
+
}
|
|
27888
|
+
interface YCombinatorSearchHit {
|
|
27889
|
+
title: string;
|
|
27890
|
+
url: string;
|
|
27891
|
+
category: string | null;
|
|
27892
|
+
excerpt: string;
|
|
27893
|
+
}
|
|
27894
|
+
|
|
27895
|
+
/**
|
|
27896
|
+
* Y Combinator's own site (ycombinator.com) — reads one Startup Library article or blog post
|
|
27897
|
+
* by its URL/slug (application and interview guidance, fundraising, pitching, growth), and
|
|
27898
|
+
* full-text searches the library with the site's own public search key.
|
|
27899
|
+
*/
|
|
27900
|
+
interface Unit {
|
|
27901
|
+
/**
|
|
27902
|
+
* Returns one YC Startup Library article by its /library/<slug> URL or bare slug — title,
|
|
27903
|
+
* author, description, markdown content, categories, and (for a video talk) the YouTube id and
|
|
27904
|
+
* transcript. Covers application and interview guidance, pitching, fundraising and growth.
|
|
27905
|
+
* THROWS on a missing/invalid/off-site url and on a dead or renamed slug, so a caller can
|
|
27906
|
+
* distinguish "no such article" from "empty". Example: getArticle("6h-startup-pricing-101").
|
|
27907
|
+
*/
|
|
27908
|
+
getArticle(url: string): Promise<YCombinatorArticle>;
|
|
27909
|
+
|
|
27910
|
+
/**
|
|
27911
|
+
* Returns one YC blog post by its /blog/<slug>/ URL or bare slug — title, author, publish
|
|
27912
|
+
* date, and the flattened body text in document order. THROWS on a missing/invalid/off-site
|
|
27913
|
+
* url and on a dead or renamed slug. Example: getBlogPost("tips-for-yc-interviews").
|
|
27914
|
+
*/
|
|
27915
|
+
getBlogPost(url: string): Promise<YCombinatorBlogPost>;
|
|
27916
|
+
|
|
27917
|
+
/**
|
|
27918
|
+
* Full-text searches the YC Startup Library using the site's own public search key — title,
|
|
27919
|
+
* url, category breadcrumb and a body excerpt per hit, up to 10. Returns an empty array on
|
|
27920
|
+
* zero matches; THROWS on an empty query or a transport failure. Example: search("how to pitch
|
|
27921
|
+
* your startup").
|
|
27922
|
+
*/
|
|
27923
|
+
search(query: string): Promise<YCombinatorSearchHit[]>;
|
|
27924
|
+
}
|
|
27925
|
+
}
|
|
27926
|
+
|
|
24848
27927
|
declare namespace BowmarkProvider_yelp {
|
|
24849
27928
|
// ── Yelp — the unit's own declarations, verbatim ──
|
|
24850
27929
|
interface YelpSearchArgs {
|
|
@@ -25013,6 +28092,21 @@ interface YoutubeTranscript {
|
|
|
25013
28092
|
|
|
25014
28093
|
declare namespace BowmarkProvider_zennioptical {
|
|
25015
28094
|
// ── Zenni Optical — the unit's own declarations, verbatim ──
|
|
28095
|
+
interface ZenniFrameSummary {
|
|
28096
|
+
sku: string;
|
|
28097
|
+
name: string;
|
|
28098
|
+
color: string;
|
|
28099
|
+
price: number;
|
|
28100
|
+
salePrice: number;
|
|
28101
|
+
inStock: boolean;
|
|
28102
|
+
shape: string | null;
|
|
28103
|
+
material: string | null;
|
|
28104
|
+
url: string;
|
|
28105
|
+
}
|
|
28106
|
+
interface ZenniFrameSearch {
|
|
28107
|
+
frames: ZenniFrameSummary[];
|
|
28108
|
+
total: number;
|
|
28109
|
+
}
|
|
25016
28110
|
interface ZenniFrame {
|
|
25017
28111
|
sku: string;
|
|
25018
28112
|
name: string;
|
|
@@ -25044,6 +28138,13 @@ interface ZenniLensPriceRow {
|
|
|
25044
28138
|
* site's own configurator, and checks live per-SKU stock.
|
|
25045
28139
|
*/
|
|
25046
28140
|
interface Unit {
|
|
28141
|
+
/**
|
|
28142
|
+
* Searches Zenni's own storefront catalog for what a shopper would type ("round tortoise",
|
|
28143
|
+
* "titanium rimless") and returns matching frames with the sku every other function here
|
|
28144
|
+
* takes. The way in when you don't already hold a sku.
|
|
28145
|
+
*/
|
|
28146
|
+
searchFrames(query: string, limit?: number): Promise<ZenniFrameSearch>;
|
|
28147
|
+
|
|
25047
28148
|
/**
|
|
25048
28149
|
* Reads one frame's name, base price and per-color-variant price straight off the product
|
|
25049
28150
|
* page's own embedded data. No rendering.
|
|
@@ -25882,65 +28983,101 @@ interface BowmarkProviders {
|
|
|
25882
28983
|
aa: BowmarkProvider_aa.Unit;
|
|
25883
28984
|
aauto: BowmarkProvider_aauto.Unit;
|
|
25884
28985
|
abercrombie: BowmarkProvider_abercrombie.Unit;
|
|
28986
|
+
achosahw: BowmarkProvider_achosahw.Unit;
|
|
28987
|
+
acqualinaresort: BowmarkProvider_acqualinaresort.Unit;
|
|
25885
28988
|
aiper: BowmarkProvider_aiper.Unit;
|
|
25886
28989
|
ajmadison: BowmarkProvider_ajmadison.Unit;
|
|
25887
28990
|
allied: BowmarkProvider_allied.Unit;
|
|
25888
28991
|
alphavantage: BowmarkProvider_alphavantage.Unit;
|
|
28992
|
+
americandreamvacations: BowmarkProvider_americandreamvacations.Unit;
|
|
25889
28993
|
americanstandard: BowmarkProvider_americanstandard.Unit;
|
|
28994
|
+
americanvisionwindows: BowmarkProvider_americanvisionwindows.Unit;
|
|
25890
28995
|
amramp: BowmarkProvider_amramp.Unit;
|
|
25891
28996
|
ancientnutrition: BowmarkProvider_ancientnutrition.Unit;
|
|
25892
28997
|
andersenwindows: BowmarkProvider_andersenwindows.Unit;
|
|
28998
|
+
andstr: BowmarkProvider_andstr.Unit;
|
|
28999
|
+
anthropic_com: BowmarkProvider_anthropic_com.Unit;
|
|
29000
|
+
antunes: BowmarkProvider_antunes.Unit;
|
|
29001
|
+
aosom: BowmarkProvider_aosom.Unit;
|
|
25893
29002
|
apple: BowmarkProvider_apple.Unit;
|
|
25894
29003
|
aquaphoenixsci: BowmarkProvider_aquaphoenixsci.Unit;
|
|
29004
|
+
arajet: BowmarkProvider_arajet.Unit;
|
|
25895
29005
|
archipelago: BowmarkProvider_archipelago.Unit;
|
|
29006
|
+
artpix3d: BowmarkProvider_artpix3d.Unit;
|
|
25896
29007
|
ashleyfurniture: BowmarkProvider_ashleyfurniture.Unit;
|
|
25897
29008
|
asppoolco: BowmarkProvider_asppoolco.Unit;
|
|
25898
29009
|
atlasoceanvoyages: BowmarkProvider_atlasoceanvoyages.Unit;
|
|
25899
29010
|
atlasseniorliving: BowmarkProvider_atlasseniorliving.Unit;
|
|
29011
|
+
audibel: BowmarkProvider_audibel.Unit;
|
|
25900
29012
|
autocamp: BowmarkProvider_autocamp.Unit;
|
|
25901
29013
|
avantstay: BowmarkProvider_avantstay.Unit;
|
|
25902
29014
|
avis: BowmarkProvider_avis.Unit;
|
|
29015
|
+
ayreshotels: BowmarkProvider_ayreshotels.Unit;
|
|
25903
29016
|
azazie: BowmarkProvider_azazie.Unit;
|
|
25904
29017
|
azure: BowmarkProvider_azure.Unit;
|
|
25905
29018
|
bankmycell: BowmarkProvider_bankmycell.Unit;
|
|
25906
29019
|
barletta: BowmarkProvider_barletta.Unit;
|
|
29020
|
+
barnesfoundation: BowmarkProvider_barnesfoundation.Unit;
|
|
25907
29021
|
baublebar: BowmarkProvider_baublebar.Unit;
|
|
25908
29022
|
bcparkscamping: BowmarkProvider_bcparkscamping.Unit;
|
|
25909
29023
|
beatthebomb: BowmarkProvider_beatthebomb.Unit;
|
|
29024
|
+
bellwethercoffee: BowmarkProvider_bellwethercoffee.Unit;
|
|
29025
|
+
beltservice: BowmarkProvider_beltservice.Unit;
|
|
29026
|
+
benelliusa: BowmarkProvider_benelliusa.Unit;
|
|
25910
29027
|
bennington: BowmarkProvider_bennington.Unit;
|
|
25911
29028
|
bestbuy: BowmarkProvider_bestbuy.Unit;
|
|
25912
29029
|
bhphoto: BowmarkProvider_bhphoto.Unit;
|
|
29030
|
+
bigairusa: BowmarkProvider_bigairusa.Unit;
|
|
25913
29031
|
bigjoeforklifts: BowmarkProvider_bigjoeforklifts.Unit;
|
|
25914
29032
|
bigrentz: BowmarkProvider_bigrentz.Unit;
|
|
25915
29033
|
bing: BowmarkProvider_bing.Unit;
|
|
29034
|
+
bishops: BowmarkProvider_bishops.Unit;
|
|
25916
29035
|
blackstoneproducts: BowmarkProvider_blackstoneproducts.Unit;
|
|
25917
29036
|
blenderseyewear: BowmarkProvider_blenderseyewear.Unit;
|
|
25918
29037
|
bluehaven: BowmarkProvider_bluehaven.Unit;
|
|
25919
29038
|
bluesignal: BowmarkProvider_bluesignal.Unit;
|
|
25920
29039
|
bmwusa: BowmarkProvider_bmwusa.Unit;
|
|
29040
|
+
boglewinery: BowmarkProvider_boglewinery.Unit;
|
|
25921
29041
|
bollandbranch: BowmarkProvider_bollandbranch.Unit;
|
|
29042
|
+
borsheims: BowmarkProvider_borsheims.Unit;
|
|
29043
|
+
boxlunch: BowmarkProvider_boxlunch.Unit;
|
|
25922
29044
|
boydsleep: BowmarkProvider_boydsleep.Unit;
|
|
29045
|
+
brius: BowmarkProvider_brius.Unit;
|
|
25923
29046
|
brixton: BowmarkProvider_brixton.Unit;
|
|
25924
29047
|
bulletproof: BowmarkProvider_bulletproof.Unit;
|
|
29048
|
+
bungalow: BowmarkProvider_bungalow.Unit;
|
|
25925
29049
|
bykoket: BowmarkProvider_bykoket.Unit;
|
|
25926
29050
|
byltbasics: BowmarkProvider_byltbasics.Unit;
|
|
29051
|
+
cabinsforyou: BowmarkProvider_cabinsforyou.Unit;
|
|
29052
|
+
caliberhealth: BowmarkProvider_caliberhealth.Unit;
|
|
25927
29053
|
califloors: BowmarkProvider_califloors.Unit;
|
|
25928
29054
|
camelcamelcamel: BowmarkProvider_camelcamelcamel.Unit;
|
|
25929
29055
|
cancer: BowmarkProvider_cancer.Unit;
|
|
25930
29056
|
capitalbrands: BowmarkProvider_capitalbrands.Unit;
|
|
25931
29057
|
caraway: BowmarkProvider_caraway.Unit;
|
|
25932
29058
|
carepatrol: BowmarkProvider_carepatrol.Unit;
|
|
29059
|
+
carmelrealtycompany: BowmarkProvider_carmelrealtycompany.Unit;
|
|
29060
|
+
carolefabrics: BowmarkProvider_carolefabrics.Unit;
|
|
29061
|
+
carpetlandusa: BowmarkProvider_carpetlandusa.Unit;
|
|
25933
29062
|
cars: BowmarkProvider_cars.Unit;
|
|
29063
|
+
carusohomes: BowmarkProvider_carusohomes.Unit;
|
|
29064
|
+
casadragones: BowmarkProvider_casadragones.Unit;
|
|
29065
|
+
cbhhomes: BowmarkProvider_cbhhomes.Unit;
|
|
29066
|
+
champxpress: BowmarkProvider_champxpress.Unit;
|
|
25934
29067
|
chantecaille: BowmarkProvider_chantecaille.Unit;
|
|
25935
29068
|
cheapflights: BowmarkProvider_cheapflights.Unit;
|
|
25936
29069
|
chesmar: BowmarkProvider_chesmar.Unit;
|
|
29070
|
+
chipotle: BowmarkProvider_chipotle.Unit;
|
|
25937
29071
|
chriscraft: BowmarkProvider_chriscraft.Unit;
|
|
25938
29072
|
classichome: BowmarkProvider_classichome.Unit;
|
|
25939
29073
|
classpass: BowmarkProvider_classpass.Unit;
|
|
29074
|
+
claude_com: BowmarkProvider_claude_com.Unit;
|
|
29075
|
+
claude_support: BowmarkProvider_claude_support.Unit;
|
|
25940
29076
|
claudemarketplaces_com: BowmarkProvider_claudemarketplaces_com.Unit;
|
|
25941
29077
|
cleanairlawncare: BowmarkProvider_cleanairlawncare.Unit;
|
|
25942
29078
|
cloudflare: BowmarkProvider_cloudflare.Unit;
|
|
25943
29079
|
clubchampion: BowmarkProvider_clubchampion.Unit;
|
|
29080
|
+
code_claude_com: BowmarkProvider_code_claude_com.Unit;
|
|
25944
29081
|
consultnet: BowmarkProvider_consultnet.Unit;
|
|
25945
29082
|
couponfollow: BowmarkProvider_couponfollow.Unit;
|
|
25946
29083
|
cruiselakegeneva: BowmarkProvider_cruiselakegeneva.Unit;
|
|
@@ -25950,6 +29087,7 @@ interface BowmarkProviders {
|
|
|
25950
29087
|
davidsonhomes: BowmarkProvider_davidsonhomes.Unit;
|
|
25951
29088
|
deangroup: BowmarkProvider_deangroup.Unit;
|
|
25952
29089
|
decked: BowmarkProvider_decked.Unit;
|
|
29090
|
+
decksdirect: BowmarkProvider_decksdirect.Unit;
|
|
25953
29091
|
developersopenai: BowmarkProvider_developersopenai.Unit;
|
|
25954
29092
|
dice: BowmarkProvider_dice.Unit;
|
|
25955
29093
|
dickssportinggoods: BowmarkProvider_dickssportinggoods.Unit;
|
|
@@ -25957,6 +29095,7 @@ interface BowmarkProviders {
|
|
|
25957
29095
|
discounttire: BowmarkProvider_discounttire.Unit;
|
|
25958
29096
|
disney: BowmarkProvider_disney.Unit;
|
|
25959
29097
|
doordash: BowmarkProvider_doordash.Unit;
|
|
29098
|
+
dumpsters: BowmarkProvider_dumpsters.Unit;
|
|
25960
29099
|
ebay: BowmarkProvider_ebay.Unit;
|
|
25961
29100
|
elevenlabs: BowmarkProvider_elevenlabs.Unit;
|
|
25962
29101
|
embroker: BowmarkProvider_embroker.Unit;
|
|
@@ -25969,6 +29108,7 @@ interface BowmarkProviders {
|
|
|
25969
29108
|
extraspace: BowmarkProvider_extraspace.Unit;
|
|
25970
29109
|
facerealityskincare: BowmarkProvider_facerealityskincare.Unit;
|
|
25971
29110
|
firstdibs: BowmarkProvider_firstdibs.Unit;
|
|
29111
|
+
fivebelow: BowmarkProvider_fivebelow.Unit;
|
|
25972
29112
|
fivestarbathsolutions: BowmarkProvider_fivestarbathsolutions.Unit;
|
|
25973
29113
|
flightradar24: BowmarkProvider_flightradar24.Unit;
|
|
25974
29114
|
ford: BowmarkProvider_ford.Unit;
|
|
@@ -25978,8 +29118,11 @@ interface BowmarkProviders {
|
|
|
25978
29118
|
fred: BowmarkProvider_fred.Unit;
|
|
25979
29119
|
furniture: BowmarkProvider_furniture.Unit;
|
|
25980
29120
|
g2: BowmarkProvider_g2.Unit;
|
|
29121
|
+
gasbuddy: BowmarkProvider_gasbuddy.Unit;
|
|
29122
|
+
gazelle: BowmarkProvider_gazelle.Unit;
|
|
25981
29123
|
geico: BowmarkProvider_geico.Unit;
|
|
25982
29124
|
github: BowmarkProvider_github.Unit;
|
|
29125
|
+
glama: BowmarkProvider_glama.Unit;
|
|
25983
29126
|
glassesusa: BowmarkProvider_glassesusa.Unit;
|
|
25984
29127
|
goloadup: BowmarkProvider_goloadup.Unit;
|
|
25985
29128
|
goodway: BowmarkProvider_goodway.Unit;
|
|
@@ -26002,6 +29145,7 @@ interface BowmarkProviders {
|
|
|
26002
29145
|
hobie: BowmarkProvider_hobie.Unit;
|
|
26003
29146
|
hodjapasha: BowmarkProvider_hodjapasha.Unit;
|
|
26004
29147
|
holidaybuilders: BowmarkProvider_holidaybuilders.Unit;
|
|
29148
|
+
hottopic: BowmarkProvider_hottopic.Unit;
|
|
26005
29149
|
hunter: BowmarkProvider_hunter.Unit;
|
|
26006
29150
|
ibuypower: BowmarkProvider_ibuypower.Unit;
|
|
26007
29151
|
identitygroup: BowmarkProvider_identitygroup.Unit;
|
|
@@ -26032,6 +29176,7 @@ interface BowmarkProviders {
|
|
|
26032
29176
|
liquiddeath: BowmarkProvider_liquiddeath.Unit;
|
|
26033
29177
|
liquidspace: BowmarkProvider_liquidspace.Unit;
|
|
26034
29178
|
littlewordsproject: BowmarkProvider_littlewordsproject.Unit;
|
|
29179
|
+
lmstudio: BowmarkProvider_lmstudio.Unit;
|
|
26035
29180
|
lonelyplanet: BowmarkProvider_lonelyplanet.Unit;
|
|
26036
29181
|
louvershop: BowmarkProvider_louvershop.Unit;
|
|
26037
29182
|
lovelybride: BowmarkProvider_lovelybride.Unit;
|
|
@@ -26043,6 +29188,7 @@ interface BowmarkProviders {
|
|
|
26043
29188
|
marriott: BowmarkProvider_marriott.Unit;
|
|
26044
29189
|
mcdonalds: BowmarkProvider_mcdonalds.Unit;
|
|
26045
29190
|
mcp_registry: BowmarkProvider_mcp_registry.Unit;
|
|
29191
|
+
mcp_so: BowmarkProvider_mcp_so.Unit;
|
|
26046
29192
|
medicalguardian: BowmarkProvider_medicalguardian.Unit;
|
|
26047
29193
|
medicare: BowmarkProvider_medicare.Unit;
|
|
26048
29194
|
mergify: BowmarkProvider_mergify.Unit;
|
|
@@ -26072,8 +29218,10 @@ interface BowmarkProviders {
|
|
|
26072
29218
|
pacificcompanies: BowmarkProvider_pacificcompanies.Unit;
|
|
26073
29219
|
paypal: BowmarkProvider_paypal.Unit;
|
|
26074
29220
|
perennialsandsutherland: BowmarkProvider_perennialsandsutherland.Unit;
|
|
29221
|
+
pilotprotocol: BowmarkProvider_pilotprotocol.Unit;
|
|
26075
29222
|
pirateship: BowmarkProvider_pirateship.Unit;
|
|
26076
29223
|
pizzahut: BowmarkProvider_pizzahut.Unit;
|
|
29224
|
+
platform_claude_com: BowmarkProvider_platform_claude_com.Unit;
|
|
26077
29225
|
poshmark: BowmarkProvider_poshmark.Unit;
|
|
26078
29226
|
positivegrid: BowmarkProvider_positivegrid.Unit;
|
|
26079
29227
|
premierbuildings: BowmarkProvider_premierbuildings.Unit;
|
|
@@ -26088,8 +29236,10 @@ interface BowmarkProviders {
|
|
|
26088
29236
|
rishitea: BowmarkProvider_rishitea.Unit;
|
|
26089
29237
|
ritani: BowmarkProvider_ritani.Unit;
|
|
26090
29238
|
roofmaxx: BowmarkProvider_roofmaxx.Unit;
|
|
29239
|
+
rover: BowmarkProvider_rover.Unit;
|
|
26091
29240
|
rvshare: BowmarkProvider_rvshare.Unit;
|
|
26092
29241
|
saatva: BowmarkProvider_saatva.Unit;
|
|
29242
|
+
safetywing: BowmarkProvider_safetywing.Unit;
|
|
26093
29243
|
saltandstone: BowmarkProvider_saltandstone.Unit;
|
|
26094
29244
|
samsclub: BowmarkProvider_samsclub.Unit;
|
|
26095
29245
|
scentbird: BowmarkProvider_scentbird.Unit;
|
|
@@ -26133,6 +29283,7 @@ interface BowmarkProviders {
|
|
|
26133
29283
|
trektravel: BowmarkProvider_trektravel.Unit;
|
|
26134
29284
|
trophysignaturehomes: BowmarkProvider_trophysignaturehomes.Unit;
|
|
26135
29285
|
twiddy: BowmarkProvider_twiddy.Unit;
|
|
29286
|
+
uhc_smallbusiness: BowmarkProvider_uhc_smallbusiness.Unit;
|
|
26136
29287
|
ulrichlifestyle: BowmarkProvider_ulrichlifestyle.Unit;
|
|
26137
29288
|
ups: BowmarkProvider_ups.Unit;
|
|
26138
29289
|
usps: BowmarkProvider_usps.Unit;
|
|
@@ -26142,12 +29293,14 @@ interface BowmarkProviders {
|
|
|
26142
29293
|
villagerealtyobx: BowmarkProvider_villagerealtyobx.Unit;
|
|
26143
29294
|
visible: BowmarkProvider_visible.Unit;
|
|
26144
29295
|
voluspa: BowmarkProvider_voluspa.Unit;
|
|
29296
|
+
vscode: BowmarkProvider_vscode.Unit;
|
|
26145
29297
|
walkerhughes: BowmarkProvider_walkerhughes.Unit;
|
|
26146
29298
|
walmart: BowmarkProvider_walmart.Unit;
|
|
26147
29299
|
waterfurnace: BowmarkProvider_waterfurnace.Unit;
|
|
26148
29300
|
wellfound: BowmarkProvider_wellfound.Unit;
|
|
26149
29301
|
winestyles: BowmarkProvider_winestyles.Unit;
|
|
26150
29302
|
xpresswellnessurgentcare: BowmarkProvider_xpresswellnessurgentcare.Unit;
|
|
29303
|
+
ycombinator: BowmarkProvider_ycombinator.Unit;
|
|
26151
29304
|
yelp: BowmarkProvider_yelp.Unit;
|
|
26152
29305
|
yorkwallcoverings: BowmarkProvider_yorkwallcoverings.Unit;
|
|
26153
29306
|
yourarborhome: BowmarkProvider_yourarborhome.Unit;
|
|
@@ -77886,6 +81039,7 @@ interface BowmarkLibrary {
|
|
|
77886
81039
|
developer_api_key_signup: BowmarkCapability_developer_api_key_signup.Unit;
|
|
77887
81040
|
domain: BowmarkCapability_domain.Unit;
|
|
77888
81041
|
email: BowmarkCapability_email.Unit;
|
|
81042
|
+
entertainment_merch: BowmarkCapability_entertainment_merch.Unit;
|
|
77889
81043
|
flights: BowmarkCapability_flights.Unit;
|
|
77890
81044
|
game_soundtrack_composer_credits: BowmarkCapability_game_soundtrack_composer_credits.Unit;
|
|
77891
81045
|
git_commit_history: BowmarkCapability_git_commit_history.Unit;
|
|
@@ -77899,6 +81053,7 @@ interface BowmarkLibrary {
|
|
|
77899
81053
|
mcp_registry: BowmarkCapability_mcp_registry.Unit;
|
|
77900
81054
|
music: BowmarkCapability_music.Unit;
|
|
77901
81055
|
pcparts: BowmarkCapability_pcparts.Unit;
|
|
81056
|
+
phone_price: BowmarkCapability_phone_price.Unit;
|
|
77902
81057
|
phone_trade_in: BowmarkCapability_phone_trade_in.Unit;
|
|
77903
81058
|
pricing: BowmarkCapability_pricing.Unit;
|
|
77904
81059
|
products: BowmarkCapability_products.Unit;
|
|
@@ -77914,6 +81069,7 @@ interface BowmarkLibrary {
|
|
|
77914
81069
|
text_to_speech: BowmarkCapability_text_to_speech.Unit;
|
|
77915
81070
|
theme_park_tickets: BowmarkCapability_theme_park_tickets.Unit;
|
|
77916
81071
|
weather: BowmarkCapability_weather.Unit;
|
|
81072
|
+
wireless: BowmarkCapability_wireless.Unit;
|
|
77917
81073
|
yoga_outfit_shopping: BowmarkCapability_yoga_outfit_shopping.Unit;
|
|
77918
81074
|
providers: BowmarkProviders;
|
|
77919
81075
|
}
|