@bowmark/web 1.12.2 → 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/README.md +36 -3
- package/{src → dist}/generated/library.d.ts +3638 -84
- package/dist/generated/validators.d.ts +2 -0
- package/dist/generated/validators.js +26012 -0
- package/dist/guard.d.ts +64 -0
- package/dist/guard.js +174 -0
- package/dist/index.d.ts +29 -0
- package/{src/index.ts → dist/index.js} +7 -33
- package/dist/session.d.ts +46 -0
- package/dist/session.js +153 -0
- package/dist/transport.d.ts +150 -0
- package/dist/transport.js +183 -0
- package/dist/validate.d.ts +132 -0
- package/dist/validate.js +278 -0
- package/package.json +10 -6
- package/src/generated/validators.ts +0 -23104
- package/src/guard.ts +0 -198
- package/src/session.ts +0 -194
- package/src/transport.ts +0 -342
- package/src/validate.ts +0 -371
|
@@ -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
|
|
@@ -197,6 +197,53 @@ type CallOptions = {
|
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
+
declare namespace BowmarkCapability_costume_size_check {
|
|
201
|
+
// ── Check one costume character's stock at one size, across Target, Walmart, and Spirit Halloween — the unit's own declarations, verbatim ──
|
|
202
|
+
interface RetailerSizeMatch {
|
|
203
|
+
title: string
|
|
204
|
+
url: string
|
|
205
|
+
price: { amount: number; currency: string } | null
|
|
206
|
+
inStock: boolean
|
|
207
|
+
}
|
|
208
|
+
interface RetailerSizeResult {
|
|
209
|
+
matched: RetailerSizeMatch | null // null + incomplete=false means this retailer
|
|
210
|
+
// answered and has no listing in this size
|
|
211
|
+
incomplete: boolean // true means this retailer's call never
|
|
212
|
+
// answered — matched is NOT a stockout then
|
|
213
|
+
}
|
|
214
|
+
interface CostumeSizeCheck {
|
|
215
|
+
character: string
|
|
216
|
+
size: string
|
|
217
|
+
retailers: { target: RetailerSizeResult; walmart: RetailerSizeResult; spirithalloween: RetailerSizeResult }
|
|
218
|
+
warnings: string[]
|
|
219
|
+
}
|
|
220
|
+
type CallOptions = {
|
|
221
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
222
|
+
// A provider slower than this is DROPPED from the results and
|
|
223
|
+
// NAMED in warnings — never silently absent
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Given a costume character and a size, fans out to Target, Walmart, and Spirit Halloween and
|
|
228
|
+
* reports whether each retailer has that exact character-and-size combination in stock right
|
|
229
|
+
* now — the per-size question a plain product search can't answer, because Target and Walmart
|
|
230
|
+
* bake size into a free-text title and Spirit Halloween only exposes its full size matrix on
|
|
231
|
+
* the product page.
|
|
232
|
+
*/
|
|
233
|
+
interface Unit {
|
|
234
|
+
/**
|
|
235
|
+
* Checks whether one costume character exists in one size, right now, at Target, Walmart, and
|
|
236
|
+
* Spirit Halloween. `retailers.<name>.matched` is the listing that named both the character
|
|
237
|
+
* and the size, or null when that retailer answered and has none. `incomplete: true` means
|
|
238
|
+
* that retailer's own call never answered — a missed deadline or an error — so `matched: null`
|
|
239
|
+
* there is NOT a stockout; nothing was learned. Never throws on one or two retailers being
|
|
240
|
+
* unreachable — the surviving legs still answer and the dropped ones are named in `warnings`;
|
|
241
|
+
* throws only when all three failed.
|
|
242
|
+
*/
|
|
243
|
+
checkSize(args: { character: string; size: string }): Promise<CostumeSizeCheck>;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
200
247
|
declare namespace BowmarkCapability_coworking {
|
|
201
248
|
// ── Coworking space day passes — the unit's own declarations, verbatim ──
|
|
202
249
|
type CoworkingDayPass = {
|
|
@@ -504,6 +551,45 @@ type CallOptions = {
|
|
|
504
551
|
}
|
|
505
552
|
}
|
|
506
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
|
+
|
|
507
593
|
declare namespace BowmarkCapability_flights {
|
|
508
594
|
// ── Flights — the unit's own declarations, verbatim ──
|
|
509
595
|
type FlightQuery = {
|
|
@@ -1584,6 +1670,52 @@ type ProductResult = {
|
|
|
1584
1670
|
}
|
|
1585
1671
|
}
|
|
1586
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
|
+
|
|
1587
1719
|
declare namespace BowmarkCapability_phone_trade_in {
|
|
1588
1720
|
// ── Phone trade-in value — the unit's own declarations, verbatim ──
|
|
1589
1721
|
// The capability's own condition vocabulary — four tiers every buyback
|
|
@@ -1865,7 +1997,7 @@ type CallOptions = {
|
|
|
1865
1997
|
declare namespace BowmarkCapability_retail {
|
|
1866
1998
|
// ── Retail (general merchandise, multi-store) — the unit's own declarations, verbatim ──
|
|
1867
1999
|
type RetailOffer = {
|
|
1868
|
-
store: "walmart" | "target"
|
|
2000
|
+
store: "walmart" | "target" | "bestbuy" // where this offer is from
|
|
1869
2001
|
title: string // the product as the store lists it
|
|
1870
2002
|
price: number | null // USD; null if unpriced
|
|
1871
2003
|
wasPrice: number | null // the pre-markdown price, when the store publishes one
|
|
@@ -1887,16 +2019,19 @@ type CallOptions = {
|
|
|
1887
2019
|
}
|
|
1888
2020
|
|
|
1889
2021
|
/**
|
|
1890
|
-
* General-merchandise retail across Walmart and
|
|
1891
|
-
* parallel and returned price-sorted, so an agent can answer 'where can I actually buy
|
|
1892
|
-
* and what does it cost' without querying each store by hand.
|
|
2022
|
+
* General-merchandise retail across Walmart, Target and Best Buy — one keyword search, fanned
|
|
2023
|
+
* out in parallel and returned price-sorted, so an agent can answer 'where can I actually buy
|
|
2024
|
+
* this and what does it cost' without querying each store by hand. Best Buy's leg needs the
|
|
2025
|
+
* caller's own Best Buy developer key; without one the search still returns Walmart + Target
|
|
2026
|
+
* with a `warnings` entry naming the drop.
|
|
1893
2027
|
*/
|
|
1894
2028
|
interface Unit {
|
|
1895
2029
|
/**
|
|
1896
|
-
* Searches Walmart and
|
|
1897
|
-
* offers across
|
|
1898
|
-
* store that did not answer
|
|
1899
|
-
*
|
|
2030
|
+
* Searches Walmart, Target and Best Buy in parallel for a keyword and returns one price-sorted
|
|
2031
|
+
* list of offers across all stores, each tagged with which store it's from. `warnings` names
|
|
2032
|
+
* any store that did not answer — including Best Buy when the caller holds no Best Buy
|
|
2033
|
+
* developer key — so a caller can tell a genuinely cheaper/only offer from one where a store
|
|
2034
|
+
* simply didn't answer.
|
|
1900
2035
|
*/
|
|
1901
2036
|
search(args: { query: string }): Promise<RetailSearchResult>;
|
|
1902
2037
|
}
|
|
@@ -1912,10 +2047,16 @@ interface BasketItemMatch {
|
|
|
1912
2047
|
}
|
|
1913
2048
|
interface RetailerBasket {
|
|
1914
2049
|
total: { amount: number; currency: string } | null // sums matched only — a partial
|
|
1915
|
-
// sum whenever
|
|
1916
|
-
// non-empty
|
|
2050
|
+
// sum whenever unpriced, unmatched
|
|
2051
|
+
// or incomplete is non-empty
|
|
1917
2052
|
matched: BasketItemMatch[]
|
|
1918
|
-
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
|
|
1919
2060
|
incomplete: string[] // this retailer's search never answered — NOT out of stock,
|
|
1920
2061
|
// nothing was learned; retry with fewer items or more time
|
|
1921
2062
|
}
|
|
@@ -1932,19 +2073,24 @@ type CallOptions = {
|
|
|
1932
2073
|
/**
|
|
1933
2074
|
* Given a list of item queries (a school supply list), fans out to Target and Walmart search,
|
|
1934
2075
|
* picks the cheapest in-stock match per item per retailer, and returns each retailer's basket
|
|
1935
|
-
* 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.
|
|
1936
2078
|
*/
|
|
1937
2079
|
interface Unit {
|
|
1938
2080
|
/**
|
|
1939
|
-
* Prices a multi-item shopping list at Target and Walmart, one basket total per retailer.
|
|
1940
|
-
*
|
|
1941
|
-
*
|
|
1942
|
-
*
|
|
1943
|
-
*
|
|
1944
|
-
*
|
|
1945
|
-
*
|
|
1946
|
-
*
|
|
1947
|
-
* `
|
|
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`.
|
|
1948
2094
|
*/
|
|
1949
2095
|
priceList(args: { items: string[] }): Promise<SchoolShoppingBasket>;
|
|
1950
2096
|
}
|
|
@@ -2374,6 +2520,35 @@ interface ForecastResult {
|
|
|
2374
2520
|
}
|
|
2375
2521
|
}
|
|
2376
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
|
+
|
|
2377
2552
|
declare namespace BowmarkCapability_yoga_outfit_shopping {
|
|
2378
2553
|
// ── Coordinated yoga outfit shopping — the unit's own declarations, verbatim ──
|
|
2379
2554
|
interface YogaOutfitItem {
|
|
@@ -2929,6 +3104,89 @@ interface abercrombieStockQuery {
|
|
|
2929
3104
|
}
|
|
2930
3105
|
}
|
|
2931
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
|
+
|
|
2932
3190
|
declare namespace BowmarkProvider_aiper {
|
|
2933
3191
|
// ── Aiper — the unit's own declarations, verbatim ──
|
|
2934
3192
|
interface AiperPoolOption {
|
|
@@ -3090,6 +3348,48 @@ interface AlphavantageSignUpResult {
|
|
|
3090
3348
|
}
|
|
3091
3349
|
}
|
|
3092
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
|
+
|
|
3093
3393
|
declare namespace BowmarkProvider_americanstandard {
|
|
3094
3394
|
// ── American Standard Heating & Air Conditioning — the unit's own declarations, verbatim ──
|
|
3095
3395
|
type AmericanStandardTierName = "Platinum" | "Gold" | "Silver";
|
|
@@ -3129,6 +3429,38 @@ interface AmericanStandardSystemCostEstimate {
|
|
|
3129
3429
|
}
|
|
3130
3430
|
}
|
|
3131
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
|
+
|
|
3132
3464
|
declare namespace BowmarkProvider_amramp {
|
|
3133
3465
|
// ── Amramp — the unit's own declarations, verbatim ──
|
|
3134
3466
|
interface AmrampLocation {
|
|
@@ -3255,6 +3587,229 @@ interface AndersenDealer {
|
|
|
3255
3587
|
}
|
|
3256
3588
|
}
|
|
3257
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
|
+
|
|
3258
3813
|
declare namespace BowmarkProvider_apple {
|
|
3259
3814
|
// ── Apple — the unit's own declarations, verbatim ──
|
|
3260
3815
|
interface AppleSearchResult {
|
|
@@ -3356,6 +3911,72 @@ interface AquaphoenixsciProduct {
|
|
|
3356
3911
|
}
|
|
3357
3912
|
}
|
|
3358
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
|
+
|
|
3359
3980
|
declare namespace BowmarkProvider_archipelago {
|
|
3360
3981
|
// ── Archipelago — the unit's own declarations, verbatim ──
|
|
3361
3982
|
interface ArchipelagoAsset {
|
|
@@ -3402,6 +4023,51 @@ interface ArchipelagoGameOptions {
|
|
|
3402
4023
|
}
|
|
3403
4024
|
}
|
|
3404
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
|
+
|
|
3405
4071
|
declare namespace BowmarkProvider_ashleyfurniture {
|
|
3406
4072
|
// ── Ashley Furniture — the unit's own declarations, verbatim ──
|
|
3407
4073
|
interface AshleyFurnitureSearchArgs {
|
|
@@ -3680,6 +4346,41 @@ interface AtlasSearchCommunitiesResult {
|
|
|
3680
4346
|
}
|
|
3681
4347
|
}
|
|
3682
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
|
+
|
|
3683
4384
|
declare namespace BowmarkProvider_autocamp {
|
|
3684
4385
|
// ── AutoCamp — the unit's own declarations, verbatim ──
|
|
3685
4386
|
interface AutocampRate {
|
|
@@ -3700,6 +4401,11 @@ interface AutocampRoomAvailability {
|
|
|
3700
4401
|
rates: AutocampRate[];
|
|
3701
4402
|
}
|
|
3702
4403
|
|
|
4404
|
+
interface AutocampProperty {
|
|
4405
|
+
hotelId: string;
|
|
4406
|
+
location: string;
|
|
4407
|
+
}
|
|
4408
|
+
|
|
3703
4409
|
/**
|
|
3704
4410
|
* AutoCamp's own SynXis reservation engine — real-time room-type availability and
|
|
3705
4411
|
* per-night/stay-total pricing for any of its Airstream/cabin/tent properties, for a given
|
|
@@ -3711,6 +4417,13 @@ interface AutocampRoomAvailability {
|
|
|
3711
4417
|
* availability with per-night and stay-total pricing for every rate plan on offer.
|
|
3712
4418
|
*/
|
|
3713
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[]>;
|
|
3714
4427
|
}
|
|
3715
4428
|
}
|
|
3716
4429
|
|
|
@@ -3844,8 +4557,56 @@ interface AvisLocationDetail extends AvisLocationRow {
|
|
|
3844
4557
|
}
|
|
3845
4558
|
}
|
|
3846
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
|
+
|
|
3847
4598
|
declare namespace BowmarkProvider_azazie {
|
|
3848
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
|
+
|
|
3849
4610
|
interface AzazieColorOption {
|
|
3850
4611
|
key: string;
|
|
3851
4612
|
name: string;
|
|
@@ -3894,6 +4655,12 @@ interface AzazieBuildYourOwnConfig {
|
|
|
3894
4655
|
* product-data host.
|
|
3895
4656
|
*/
|
|
3896
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
|
+
|
|
3897
4664
|
/**
|
|
3898
4665
|
* Reads one bridesmaid-dress style's full Build Your Own configuration off Azazie's own
|
|
3899
4666
|
* product-data host — the real live price, every solid + floral color option (each with its
|
|
@@ -4014,6 +4781,60 @@ interface AzureListServicesResult {
|
|
|
4014
4781
|
}
|
|
4015
4782
|
}
|
|
4016
4783
|
|
|
4784
|
+
declare namespace BowmarkProvider_bankmycell {
|
|
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
|
+
}
|
|
4794
|
+
interface BankmycellOffer {
|
|
4795
|
+
merchant: string;
|
|
4796
|
+
price: number;
|
|
4797
|
+
paymentOptions: string;
|
|
4798
|
+
shippingOptions: { id: string; name: string }[];
|
|
4799
|
+
pricelockTimescale: string | null;
|
|
4800
|
+
paymentTimescale: string | null;
|
|
4801
|
+
checkoutLink: string;
|
|
4802
|
+
reviewsRating: number | null;
|
|
4803
|
+
reviewsCount: number | null;
|
|
4804
|
+
}
|
|
4805
|
+
interface BankmycellQuoteResult {
|
|
4806
|
+
deviceUrl: string;
|
|
4807
|
+
selections: { capacity: string | null; condition: string | null; carrier: string | null; lockedStatus: string | null };
|
|
4808
|
+
offers: BankmycellOffer[];
|
|
4809
|
+
unavailableMerchants: string[];
|
|
4810
|
+
summary: { minPrice: number | null; maxPrice: number | null; avgPrice: number | null; count: number };
|
|
4811
|
+
}
|
|
4812
|
+
|
|
4813
|
+
/**
|
|
4814
|
+
* Live trade-in offers for a phone/device from every merchant BankMyCell compares, for a
|
|
4815
|
+
* chosen capacity/condition/carrier — read off the same pricing endpoint the site's own sell
|
|
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.
|
|
4818
|
+
*/
|
|
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
|
+
|
|
4827
|
+
/**
|
|
4828
|
+
* Reads live trade-in offers for the device at a bankmycell.com sell page (e.g.
|
|
4829
|
+
* .../sell/iphone-14-pro), from every merchant the site compares, for the given
|
|
4830
|
+
* capacity/condition/carrier/lockedStatus (each matched against that device's own option
|
|
4831
|
+
* labels, e.g. condition: "Flawless"). Any selection left out uses the page's own default
|
|
4832
|
+
* option for that attribute. THROWS if a selection names an option this device does not offer.
|
|
4833
|
+
*/
|
|
4834
|
+
getTradeInQuote(deviceUrl: string, selections?: { capacity?: string; condition?: string; carrier?: string; lockedStatus?: string }): Promise<BankmycellQuoteResult>;
|
|
4835
|
+
}
|
|
4836
|
+
}
|
|
4837
|
+
|
|
4017
4838
|
declare namespace BowmarkProvider_barletta {
|
|
4018
4839
|
// ── Barletta Boats — the unit's own declarations, verbatim ──
|
|
4019
4840
|
// Barletta's OWN shapes — not a capability contract.
|
|
@@ -4094,6 +4915,59 @@ interface BarlettaPriceResult {
|
|
|
4094
4915
|
}
|
|
4095
4916
|
}
|
|
4096
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
|
+
|
|
4097
4971
|
declare namespace BowmarkProvider_baublebar {
|
|
4098
4972
|
// ── BaubleBar — the unit's own declarations, verbatim ──
|
|
4099
4973
|
interface BaublebarPersonalizationField {
|
|
@@ -4141,6 +5015,11 @@ interface BaublebarCatalogueRow {
|
|
|
4141
5015
|
inStock: boolean;
|
|
4142
5016
|
images: string[];
|
|
4143
5017
|
}
|
|
5018
|
+
interface BaublebarCollectionRow {
|
|
5019
|
+
handle: string;
|
|
5020
|
+
title: string;
|
|
5021
|
+
productsCount: number;
|
|
5022
|
+
}
|
|
4144
5023
|
interface BaublebarCheckoutLink {
|
|
4145
5024
|
url: string;
|
|
4146
5025
|
variant: BaublebarVariant;
|
|
@@ -4155,6 +5034,13 @@ interface BaublebarCheckoutLink {
|
|
|
4155
5034
|
* carrying the personalization.
|
|
4156
5035
|
*/
|
|
4157
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
|
+
|
|
4158
5044
|
/**
|
|
4159
5045
|
* Reads a BaubleBar collection's live products — e.g. "tennis-bracelets",
|
|
4160
5046
|
* "personalized-jewelry", "name-initial-jewelry" — with handle, title, price range and stock.
|
|
@@ -4288,6 +5174,169 @@ interface BeatthebombPriceQuote {
|
|
|
4288
5174
|
}
|
|
4289
5175
|
}
|
|
4290
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
|
+
|
|
4291
5340
|
declare namespace BowmarkProvider_bennington {
|
|
4292
5341
|
// ── Bennington Marine — the unit's own declarations, verbatim ──
|
|
4293
5342
|
interface BenningtonModel {
|
|
@@ -4437,6 +5486,54 @@ interface StoreStock {
|
|
|
4437
5486
|
}
|
|
4438
5487
|
}
|
|
4439
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
|
+
|
|
4440
5537
|
declare namespace BowmarkProvider_bigjoeforklifts {
|
|
4441
5538
|
// ── Big Joe Forklifts — the unit's own declarations, verbatim ──
|
|
4442
5539
|
interface BigJoeRoiQuestion {
|
|
@@ -4599,6 +5696,77 @@ interface BingNewsSearchResult {
|
|
|
4599
5696
|
}
|
|
4600
5697
|
}
|
|
4601
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
|
+
|
|
4602
5770
|
declare namespace BowmarkProvider_blackstoneproducts {
|
|
4603
5771
|
// ── Blackstone Products — the unit's own declarations, verbatim ──
|
|
4604
5772
|
interface BlackstoneDealer {
|
|
@@ -5003,6 +6171,51 @@ interface BmwusaModelListing {
|
|
|
5003
6171
|
}
|
|
5004
6172
|
}
|
|
5005
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
|
+
|
|
5006
6219
|
declare namespace BowmarkProvider_bollandbranch {
|
|
5007
6220
|
// ── Boll & Branch — the unit's own declarations, verbatim ──
|
|
5008
6221
|
interface BedDesignerStep {
|
|
@@ -5061,6 +6274,100 @@ interface BollAndBranchSwatch {
|
|
|
5061
6274
|
}
|
|
5062
6275
|
}
|
|
5063
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
|
+
|
|
5064
6371
|
declare namespace BowmarkProvider_boydsleep {
|
|
5065
6372
|
// ── Boyd Sleep — the unit's own declarations, verbatim ──
|
|
5066
6373
|
// Boyd Sleep's OWN shapes — not a capability contract.
|
|
@@ -5117,6 +6424,43 @@ interface Boydsleep6ZoneResult {
|
|
|
5117
6424
|
}
|
|
5118
6425
|
}
|
|
5119
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
|
+
|
|
5120
6464
|
declare namespace BowmarkProvider_brixton {
|
|
5121
6465
|
// ── Brixton — the unit's own declarations, verbatim ──
|
|
5122
6466
|
interface BrixtonVariant {
|
|
@@ -5239,6 +6583,91 @@ interface BulletproofNearbyStores {
|
|
|
5239
6583
|
}
|
|
5240
6584
|
}
|
|
5241
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
|
+
|
|
5242
6671
|
declare namespace BowmarkProvider_bykoket {
|
|
5243
6672
|
// ── KOKET — the unit's own declarations, verbatim ──
|
|
5244
6673
|
interface KoketProductSummary {
|
|
@@ -5371,6 +6800,141 @@ interface byltbasicsPackHandoff {
|
|
|
5371
6800
|
}
|
|
5372
6801
|
}
|
|
5373
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
|
+
|
|
5374
6938
|
declare namespace BowmarkProvider_califloors {
|
|
5375
6939
|
// ── CALI — the unit's own declarations, verbatim ──
|
|
5376
6940
|
// CALI's OWN shapes — not a capability contract.
|
|
@@ -5418,6 +6982,13 @@ interface CaliProductDetail extends CaliProduct {
|
|
|
5418
6982
|
|
|
5419
6983
|
declare namespace BowmarkProvider_camelcamelcamel {
|
|
5420
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
|
+
|
|
5421
6992
|
interface CamelPriceStat {
|
|
5422
6993
|
price: number | null;
|
|
5423
6994
|
date: string | null;
|
|
@@ -5445,6 +7016,13 @@ interface CamelPriceHistory {
|
|
|
5445
7016
|
* for.
|
|
5446
7017
|
*/
|
|
5447
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
|
+
|
|
5448
7026
|
/**
|
|
5449
7027
|
* Reads camelcamelcamel's independently-tracked Amazon price history for one ASIN — the site's
|
|
5450
7028
|
* own lowest-ever/highest-ever/current/average figures, each dated, for the Amazon,
|
|
@@ -5728,6 +7306,139 @@ interface CarePatrolFindLocalAdvisorResult {
|
|
|
5728
7306
|
}
|
|
5729
7307
|
}
|
|
5730
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
|
+
|
|
5731
7442
|
declare namespace BowmarkProvider_cars {
|
|
5732
7443
|
// ── Cars.com — the unit's own declarations, verbatim ──
|
|
5733
7444
|
interface carsListing {
|
|
@@ -5835,6 +7546,348 @@ interface carsVehicleValue {
|
|
|
5835
7546
|
}
|
|
5836
7547
|
}
|
|
5837
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
|
+
|
|
5838
7891
|
declare namespace BowmarkProvider_chantecaille {
|
|
5839
7892
|
// ── Chantecaille — the unit's own declarations, verbatim ──
|
|
5840
7893
|
// Chantecaille's OWN shapes — not a capability contract.
|
|
@@ -6081,6 +8134,48 @@ interface ChesmarSearchFilters {
|
|
|
6081
8134
|
}
|
|
6082
8135
|
}
|
|
6083
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
|
+
|
|
6084
8179
|
declare namespace BowmarkProvider_chriscraft {
|
|
6085
8180
|
// ── Chris-Craft — the unit's own declarations, verbatim ──
|
|
6086
8181
|
// Chris-Craft's OWN shapes — not a capability contract.
|
|
@@ -6356,24 +8451,43 @@ interface ClasspassSearchQuery {
|
|
|
6356
8451
|
/** Centre of the search, decimal degrees. */
|
|
6357
8452
|
lat: number;
|
|
6358
8453
|
lon: number;
|
|
6359
|
-
/** 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. */
|
|
6360
8456
|
radius: number;
|
|
6361
8457
|
/** "mi" (default) or "km". */
|
|
6362
8458
|
radiusUnits?: "mi" | "km";
|
|
6363
8459
|
/** First day, YYYY-MM-DD. Defaults to TODAY (UTC date). */
|
|
6364
8460
|
date?: string;
|
|
6365
|
-
|
|
6366
|
-
|
|
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;
|
|
6367
8485
|
}
|
|
6368
8486
|
|
|
6369
8487
|
interface ClasspassSearchResult {
|
|
6370
|
-
results:
|
|
6371
|
-
/**
|
|
6372
|
-
cursor: string | null;
|
|
6373
|
-
/** 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. */
|
|
6374
8490
|
searchId: string;
|
|
6375
|
-
/** Always null: the origin does not publish a total. */
|
|
6376
|
-
totalHits: number | null;
|
|
6377
8491
|
/** What this function did to the caller's query (defaults applied). */
|
|
6378
8492
|
warnings: string[];
|
|
6379
8493
|
}
|
|
@@ -6388,24 +8502,21 @@ interface ClasspassSearchResult {
|
|
|
6388
8502
|
*/
|
|
6389
8503
|
interface Unit {
|
|
6390
8504
|
/**
|
|
6391
|
-
* ClassPass's own location search —
|
|
6392
|
-
* with their identity,
|
|
6393
|
-
*
|
|
6394
|
-
*
|
|
6395
|
-
* `query.
|
|
6396
|
-
*
|
|
6397
|
-
*
|
|
6398
|
-
*
|
|
6399
|
-
*
|
|
6400
|
-
* caller
|
|
6401
|
-
*
|
|
6402
|
-
*
|
|
6403
|
-
*
|
|
6404
|
-
*
|
|
6405
|
-
*
|
|
6406
|
-
* lat/lon/radius/radiusUnits/date/cursor are honored. The help center's rich facets (text
|
|
6407
|
-
* search, activity filter, time-of-day, credit-price band, neighbourhood) are DECLARED on
|
|
6408
|
-
* `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.
|
|
6409
8520
|
*/
|
|
6410
8521
|
search(query: ClasspassSearchQuery): Promise<ClasspassSearchResult>;
|
|
6411
8522
|
|
|
@@ -6451,6 +8562,142 @@ interface ClasspassSearchResult {
|
|
|
6451
8562
|
}
|
|
6452
8563
|
}
|
|
6453
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
|
+
|
|
8649
|
+
declare namespace BowmarkProvider_claudemarketplaces_com {
|
|
8650
|
+
// ── Claude Marketplaces — the unit's own declarations, verbatim ──
|
|
8651
|
+
interface claudeMarketplacesListing {
|
|
8652
|
+
url: string;
|
|
8653
|
+
kind: string;
|
|
8654
|
+
publisher: string;
|
|
8655
|
+
slug: string;
|
|
8656
|
+
name: string;
|
|
8657
|
+
description: string;
|
|
8658
|
+
applicationCategory: string | null;
|
|
8659
|
+
operatingSystem: string | null;
|
|
8660
|
+
codeRepository: string | null;
|
|
8661
|
+
featureList: string[];
|
|
8662
|
+
price: string | null;
|
|
8663
|
+
priceCurrency: string | null;
|
|
8664
|
+
}
|
|
8665
|
+
interface claudeMarketplacesListingLink {
|
|
8666
|
+
url: string;
|
|
8667
|
+
kind: string;
|
|
8668
|
+
publisher: string;
|
|
8669
|
+
slug: string;
|
|
8670
|
+
lastUpdated: string;
|
|
8671
|
+
}
|
|
8672
|
+
|
|
8673
|
+
/**
|
|
8674
|
+
* A directory of Claude plugin/MCP/skill marketplace listings — fetch one listing's structured
|
|
8675
|
+
* fields (name, description, category, repo, declared tools, price) instead of parsing its
|
|
8676
|
+
* page by hand.
|
|
8677
|
+
*/
|
|
8678
|
+
interface Unit {
|
|
8679
|
+
/**
|
|
8680
|
+
* Fetches one MCP server listing page from claudemarketplaces.com — `url` is the listing's
|
|
8681
|
+
* full URL or path, e.g. "https://claudemarketplaces.com/mcp/metroxe/bowmark" or
|
|
8682
|
+
* "/mcp/github/github-mcp-server". Returns the listing's structured fields straight off the
|
|
8683
|
+
* page's own schema.org `SoftwareApplication` record: `name`, `description`,
|
|
8684
|
+
* `applicationCategory`, `operatingSystem`, `codeRepository`, `featureList` (the tool/feature
|
|
8685
|
+
* names the listing declares), and `price`/`priceCurrency`. `publisher`, `kind` and `slug` are
|
|
8686
|
+
* read off the URL path. Only `mcp`-kind listings (`/mcp/<publisher>/<slug>`) are implemented
|
|
8687
|
+
* — `getListing` throws `ClaudeMarketplacesInputError` for any other path shape.
|
|
8688
|
+
*/
|
|
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[]>;
|
|
8698
|
+
}
|
|
8699
|
+
}
|
|
8700
|
+
|
|
6454
8701
|
declare namespace BowmarkProvider_cleanairlawncare {
|
|
6455
8702
|
// ── Clean Air Lawn Care — the unit's own declarations, verbatim ──
|
|
6456
8703
|
interface CleanAirEstimateAvailability {
|
|
@@ -6705,6 +8952,43 @@ interface ClubchampionAvailability {
|
|
|
6705
8952
|
}
|
|
6706
8953
|
}
|
|
6707
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
|
+
|
|
6708
8992
|
declare namespace BowmarkProvider_consultnet {
|
|
6709
8993
|
// ── ConsultNet — the unit's own declarations, verbatim ──
|
|
6710
8994
|
// ConsultNet's OWN shapes — not a capability contract.
|
|
@@ -6901,6 +9185,41 @@ interface CultureFlyCheckoutLink {
|
|
|
6901
9185
|
}
|
|
6902
9186
|
}
|
|
6903
9187
|
|
|
9188
|
+
declare namespace BowmarkProvider_curiocity {
|
|
9189
|
+
// ── Curiocity — the unit's own declarations, verbatim ──
|
|
9190
|
+
interface CuriocityEvent {
|
|
9191
|
+
title: string; // "Slayyyter – WOR$T GIRL IN THE WORLD TOUR"
|
|
9192
|
+
url: string; // click-through — the event's own link, or the article's
|
|
9193
|
+
when: string | null; // "Thursday, Sept. 3, 2026" — free text, as curiocity writes it
|
|
9194
|
+
time: string | null; // "7 p.m."
|
|
9195
|
+
where: string | null; // "868 Granville St."
|
|
9196
|
+
cost: string | null; // "$650+"
|
|
9197
|
+
articleTitle: string; // the roundup (or single-event) post this came from
|
|
9198
|
+
articleUrl: string;
|
|
9199
|
+
publishedAt: string | null; // the article's own pubDate
|
|
9200
|
+
}
|
|
9201
|
+
|
|
9202
|
+
interface CuriocityListEventsQuery {
|
|
9203
|
+
city: string; // curiocity's own city slug, e.g. "vancouver", "toronto"
|
|
9204
|
+
}
|
|
9205
|
+
|
|
9206
|
+
/**
|
|
9207
|
+
* Curiocity's own city 'things to do' feeds, parsed into individual events — title, when,
|
|
9208
|
+
* time, where, cost and a click-through link — instead of the raw RSS/HTML a caller would
|
|
9209
|
+
* otherwise have to regex apart.
|
|
9210
|
+
*/
|
|
9211
|
+
interface Unit {
|
|
9212
|
+
/**
|
|
9213
|
+
* Reads curiocity.com's own 'things to do' feed for one city and returns individual events —
|
|
9214
|
+
* title, when, time, where, cost and a click-through link — parsed out of the site's roundup
|
|
9215
|
+
* posts instead of the raw RSS. `city` is curiocity's own slug (e.g. "vancouver", "toronto").
|
|
9216
|
+
* An empty array is the feed's own answer for a city curiocity does not cover, never invented
|
|
9217
|
+
* here — a block page or a moved endpoint THROWS instead.
|
|
9218
|
+
*/
|
|
9219
|
+
listEvents(query: CuriocityListEventsQuery): Promise<CuriocityEvent[]>;
|
|
9220
|
+
}
|
|
9221
|
+
}
|
|
9222
|
+
|
|
6904
9223
|
declare namespace BowmarkProvider_cyberpowerpc {
|
|
6905
9224
|
// ── CyberPowerPC — the unit's own declarations, verbatim ──
|
|
6906
9225
|
interface CyberpowerpcConfigurator {
|
|
@@ -7247,6 +9566,119 @@ interface DeckedCabSideOptionResult {
|
|
|
7247
9566
|
}
|
|
7248
9567
|
}
|
|
7249
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
|
+
|
|
7250
9682
|
declare namespace BowmarkProvider_developersopenai {
|
|
7251
9683
|
// ── OpenAI Developer Docs — the unit's own declarations, verbatim ──
|
|
7252
9684
|
interface DevelopersOpenaiDocPage {
|
|
@@ -7275,6 +9707,26 @@ interface DevelopersOpenaiDocPage {
|
|
|
7275
9707
|
|
|
7276
9708
|
declare namespace BowmarkProvider_dice {
|
|
7277
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
|
+
}
|
|
7278
9730
|
interface DiceJobDetails {
|
|
7279
9731
|
jobId: string;
|
|
7280
9732
|
description: string;
|
|
@@ -7291,6 +9743,14 @@ interface diceRow {
|
|
|
7291
9743
|
* posting-detail reads, employer profiles and a company's open roles.
|
|
7292
9744
|
*/
|
|
7293
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
|
+
|
|
7294
9754
|
/**
|
|
7295
9755
|
* Returns one Dice posting in full — the HTML description (the same document the consumer page
|
|
7296
9756
|
* renders) and the normalized skills array — by the job id `searchJobs` returns. THROWS on a
|
|
@@ -7837,6 +10297,51 @@ interface DoordashSearchResult {
|
|
|
7837
10297
|
}
|
|
7838
10298
|
}
|
|
7839
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
|
+
|
|
7840
10345
|
declare namespace BowmarkProvider_ebay {
|
|
7841
10346
|
// ── eBay — the unit's own declarations, verbatim ──
|
|
7842
10347
|
interface ebayItem {
|
|
@@ -8087,6 +10592,34 @@ interface ErieAgent {
|
|
|
8087
10592
|
}
|
|
8088
10593
|
}
|
|
8089
10594
|
|
|
10595
|
+
declare namespace BowmarkProvider_etsy {
|
|
10596
|
+
// ── Etsy — the unit's own declarations, verbatim ──
|
|
10597
|
+
interface etsyListing {
|
|
10598
|
+
listingId: number;
|
|
10599
|
+
title: string;
|
|
10600
|
+
price: number | null;
|
|
10601
|
+
currencyCode: string | null;
|
|
10602
|
+
quantity: number | null;
|
|
10603
|
+
tags: string[];
|
|
10604
|
+
url: string;
|
|
10605
|
+
}
|
|
10606
|
+
|
|
10607
|
+
/**
|
|
10608
|
+
* Etsy's own documented Open API v3 (openapi.etsy.com) — searches active listings on etsy.com
|
|
10609
|
+
* by keyword and returns id, title, price, currency, quantity, tags and the listing's own
|
|
10610
|
+
* etsy.com URL, without scraping etsy.com's search page (which sits behind DataDome).
|
|
10611
|
+
*/
|
|
10612
|
+
interface Unit {
|
|
10613
|
+
/**
|
|
10614
|
+
* Searches Etsy's live catalog of active listings by keyword, via Etsy's documented Open API
|
|
10615
|
+
* v3, and returns the matching listings — id, title, price, currency, quantity available, tags
|
|
10616
|
+
* and the listing's own etsy.com URL. `limit` caps the row count (default 10, Etsy's own
|
|
10617
|
+
* ceiling 100). Requires an Etsy developer API key — see this provider's `auth`.
|
|
10618
|
+
*/
|
|
10619
|
+
search(args: string | { query: string; limit?: number }): Promise<etsyListing[]>;
|
|
10620
|
+
}
|
|
10621
|
+
}
|
|
10622
|
+
|
|
8090
10623
|
declare namespace BowmarkProvider_eventsource {
|
|
8091
10624
|
// ── Event Source — the unit's own declarations, verbatim ──
|
|
8092
10625
|
interface EventSourceDesign {
|
|
@@ -8549,6 +11082,52 @@ interface FirstdibsListing {
|
|
|
8549
11082
|
}
|
|
8550
11083
|
}
|
|
8551
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
|
+
|
|
8552
11131
|
declare namespace BowmarkProvider_fivestarbathsolutions {
|
|
8553
11132
|
// ── Five Star Bath Solutions — the unit's own declarations, verbatim ──
|
|
8554
11133
|
interface FivestarLocation {
|
|
@@ -9323,11 +11902,17 @@ interface fredObservations {
|
|
|
9323
11902
|
/**
|
|
9324
11903
|
* Browses FRED's category tree the way fred.stlouisfed.org/categories does — the category
|
|
9325
11904
|
* itself (id/name/parent), its immediate child categories, and the series filed directly under
|
|
9326
|
-
* it
|
|
9327
|
-
*
|
|
9328
|
-
*
|
|
9329
|
-
*
|
|
9330
|
-
*
|
|
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.
|
|
9331
11916
|
*/
|
|
9332
11917
|
browseCategory(categoryId?: number): Promise<fredCategory>;
|
|
9333
11918
|
}
|
|
@@ -9441,6 +12026,78 @@ interface G2Product {
|
|
|
9441
12026
|
}
|
|
9442
12027
|
}
|
|
9443
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
|
+
|
|
9444
12101
|
declare namespace BowmarkProvider_geico {
|
|
9445
12102
|
// ── GEICO — the unit's own declarations, verbatim ──
|
|
9446
12103
|
interface geicoRow {
|
|
@@ -9859,6 +12516,57 @@ interface GithubListReleasesResult {
|
|
|
9859
12516
|
}
|
|
9860
12517
|
}
|
|
9861
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
|
+
|
|
9862
12570
|
declare namespace BowmarkProvider_glassesusa {
|
|
9863
12571
|
// ── GlassesUSA — the unit's own declarations, verbatim ──
|
|
9864
12572
|
interface GlassesusaProduct {
|
|
@@ -9873,11 +12581,23 @@ interface GlassesusaProduct {
|
|
|
9873
12581
|
prescriptionEligible: boolean; // orderable with prescription lenses
|
|
9874
12582
|
}
|
|
9875
12583
|
|
|
12584
|
+
interface GlassesusaSearchResult {
|
|
12585
|
+
url: string;
|
|
12586
|
+
title: string;
|
|
12587
|
+
price: number;
|
|
12588
|
+
}
|
|
12589
|
+
|
|
9876
12590
|
/**
|
|
9877
12591
|
* GlassesUSA's own Virtual Try-On + prescription-checkout flow — getProduct reads one frame's
|
|
9878
12592
|
* real live price, star rating, VTO availability and Rx eligibility off its own product page.
|
|
9879
12593
|
*/
|
|
9880
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
|
+
|
|
9881
12601
|
/**
|
|
9882
12602
|
* Reads one GlassesUSA product page — real live price (plus the crossed-out 'was' price when
|
|
9883
12603
|
* on sale), star rating and review count, whether Virtual Try-On is offered, and whether the
|
|
@@ -10232,6 +12952,11 @@ interface graingerStockRow {
|
|
|
10232
12952
|
|
|
10233
12953
|
declare namespace BowmarkProvider_grandwelcome {
|
|
10234
12954
|
// ── Grand Welcome — the unit's own declarations, verbatim ──
|
|
12955
|
+
interface GrandwelcomeDestination {
|
|
12956
|
+
slug: string;
|
|
12957
|
+
label: string;
|
|
12958
|
+
url: string;
|
|
12959
|
+
}
|
|
10235
12960
|
interface GrandwelcomeRentalRow {
|
|
10236
12961
|
rentalId: string;
|
|
10237
12962
|
name: string;
|
|
@@ -10271,6 +12996,14 @@ type GrandwelcomeQuote =
|
|
|
10271
12996
|
* price, not a stale catalog.
|
|
10272
12997
|
*/
|
|
10273
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
|
+
|
|
10274
13007
|
/**
|
|
10275
13008
|
* Runs Grand Welcome's own destination search (a market slug like "california-sea-ranch", from
|
|
10276
13009
|
* a rental's own page or the destination directory), optionally filtered to a bedroom count,
|
|
@@ -11713,6 +14446,69 @@ interface HobieLocalAvailability {
|
|
|
11713
14446
|
}
|
|
11714
14447
|
}
|
|
11715
14448
|
|
|
14449
|
+
declare namespace BowmarkProvider_hodjapasha {
|
|
14450
|
+
// ── Hodjapasha Culture Center — Istanbul whirling-dervish and dance show ticketing — the unit's own declarations, verbatim ──
|
|
14451
|
+
interface HodjapashaListingEntry {
|
|
14452
|
+
productId: string;
|
|
14453
|
+
title: string;
|
|
14454
|
+
summary: string | null;
|
|
14455
|
+
duration: string | null;
|
|
14456
|
+
priceFrom: string | null; // the site's own "from" price, e.g. "$42.22"
|
|
14457
|
+
currency: string | null;
|
|
14458
|
+
url: string;
|
|
14459
|
+
}
|
|
14460
|
+
interface HodjapashaShowDetail {
|
|
14461
|
+
productId: string;
|
|
14462
|
+
title: string;
|
|
14463
|
+
description: string | null; // the site's own description paragraphs, joined
|
|
14464
|
+
duration: string | null;
|
|
14465
|
+
location: string | null;
|
|
14466
|
+
productCode: string | null;
|
|
14467
|
+
priceFrom: string | null;
|
|
14468
|
+
currency: string | null;
|
|
14469
|
+
url: string;
|
|
14470
|
+
}
|
|
14471
|
+
interface HodjapashaSession {
|
|
14472
|
+
sessionId: string;
|
|
14473
|
+
label: string; // e.g. "20:30 - Available"
|
|
14474
|
+
}
|
|
14475
|
+
interface HodjapashaAvailability {
|
|
14476
|
+
productId: string;
|
|
14477
|
+
date: string; // YYYY-MM-DD, as queried
|
|
14478
|
+
available: boolean;
|
|
14479
|
+
sessions: HodjapashaSession[];
|
|
14480
|
+
totalPrice: string | null; // e.g. "1900"
|
|
14481
|
+
currency: string | null;
|
|
14482
|
+
}
|
|
14483
|
+
|
|
14484
|
+
/**
|
|
14485
|
+
* The Hodjapasha Culture Center's own Rezdy booking widget for its whirling-dervish (Sema) and
|
|
14486
|
+
* Ottoman/folk dance shows in Istanbul — show list, per-show pricing and description, and
|
|
14487
|
+
* date/party-size availability with session times and total price, read straight off the
|
|
14488
|
+
* widget's own pages.
|
|
14489
|
+
*/
|
|
14490
|
+
interface Unit {
|
|
14491
|
+
/**
|
|
14492
|
+
* Reads every show hodjapasha.com's own booking widget lists off /widget/index.php — title,
|
|
14493
|
+
* productId, from-price, duration.
|
|
14494
|
+
*/
|
|
14495
|
+
listShows(): Promise<HodjapashaListingEntry[]>;
|
|
14496
|
+
|
|
14497
|
+
/**
|
|
14498
|
+
* Reads one show's full description, adult/child pricing, location and duration off its own
|
|
14499
|
+
* /widget/product-detail.php page.
|
|
14500
|
+
*/
|
|
14501
|
+
getShow(productId: string): Promise<HodjapashaShowDetail>;
|
|
14502
|
+
|
|
14503
|
+
/**
|
|
14504
|
+
* Checks the widget's own availability endpoint for a show, YYYY-MM-DD date and party size
|
|
14505
|
+
* (defaults: 1 adult, 0 children), returning the session time(s) offered and the total price,
|
|
14506
|
+
* or `available: false` for a date the show does not run.
|
|
14507
|
+
*/
|
|
14508
|
+
getAvailability(productId: string, date: string, opts?: { adults?: number; children?: number }): Promise<HodjapashaAvailability>;
|
|
14509
|
+
}
|
|
14510
|
+
}
|
|
14511
|
+
|
|
11716
14512
|
declare namespace BowmarkProvider_holidaybuilders {
|
|
11717
14513
|
// ── Holiday Builders — the unit's own declarations, verbatim ──
|
|
11718
14514
|
// Holiday Builders' OWN shapes — not a capability contract.
|
|
@@ -11778,6 +14574,42 @@ interface HolidaybuildersSearchFilters {
|
|
|
11778
14574
|
}
|
|
11779
14575
|
}
|
|
11780
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
|
+
|
|
11781
14613
|
declare namespace BowmarkProvider_hunter {
|
|
11782
14614
|
// ── Hunter — the unit's own declarations, verbatim ──
|
|
11783
14615
|
interface hunterDomainCandidate {
|
|
@@ -14160,6 +16992,14 @@ interface LegacyHomesalAvailability {
|
|
|
14160
16992
|
slots: LegacyHomesalTimeSlot[];
|
|
14161
16993
|
bookingUrl: string;
|
|
14162
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
|
+
}
|
|
14163
17003
|
|
|
14164
17004
|
/**
|
|
14165
17005
|
* Reads a Legacy Homes AL community sales rep's real open tour-appointment slots off HubSpot
|
|
@@ -14172,6 +17012,13 @@ interface LegacyHomesalAvailability {
|
|
|
14172
17012
|
* widget reads, not a form that goes into a queue.
|
|
14173
17013
|
*/
|
|
14174
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[]>;
|
|
14175
17022
|
}
|
|
14176
17023
|
}
|
|
14177
17024
|
|
|
@@ -14616,6 +17463,11 @@ interface LittleWordsProjectCatalogueRow {
|
|
|
14616
17463
|
inStock: boolean;
|
|
14617
17464
|
images: string[];
|
|
14618
17465
|
}
|
|
17466
|
+
interface LittleWordsProjectCollectionRow {
|
|
17467
|
+
handle: string;
|
|
17468
|
+
title: string;
|
|
17469
|
+
productsCount: number;
|
|
17470
|
+
}
|
|
14619
17471
|
interface LittleWordsProjectCheckoutLink {
|
|
14620
17472
|
url: string;
|
|
14621
17473
|
variant: LittleWordsProjectVariant;
|
|
@@ -14629,6 +17481,13 @@ interface LittleWordsProjectCheckoutLink {
|
|
|
14629
17481
|
* handoff link carrying the word.
|
|
14630
17482
|
*/
|
|
14631
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
|
+
|
|
14632
17491
|
/**
|
|
14633
17492
|
* Reads a Little Words Project collection's live products — e.g. "custom", "best-sellers" —
|
|
14634
17493
|
* with handle, title, price range and stock.
|
|
@@ -14654,6 +17513,42 @@ interface LittleWordsProjectCheckoutLink {
|
|
|
14654
17513
|
}
|
|
14655
17514
|
}
|
|
14656
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
|
+
|
|
14657
17552
|
declare namespace BowmarkProvider_lonelyplanet {
|
|
14658
17553
|
// ── Lonely Planet — the unit's own declarations, verbatim ──
|
|
14659
17554
|
interface LonelyPlanetSearchResult {
|
|
@@ -15347,6 +18242,15 @@ interface marketplaceExtensionStats {
|
|
|
15347
18242
|
averageRating: number | null;
|
|
15348
18243
|
ratingCount: number;
|
|
15349
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
|
+
}
|
|
15350
18254
|
|
|
15351
18255
|
/**
|
|
15352
18256
|
* The VS Code Marketplace — look up one extension by its publisher.name id and get its install
|
|
@@ -15362,6 +18266,15 @@ interface marketplaceExtensionStats {
|
|
|
15362
18266
|
* published extension.
|
|
15363
18267
|
*/
|
|
15364
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[]>;
|
|
15365
18278
|
}
|
|
15366
18279
|
}
|
|
15367
18280
|
|
|
@@ -15550,6 +18463,41 @@ interface mcpRegistryEntry {
|
|
|
15550
18463
|
}
|
|
15551
18464
|
}
|
|
15552
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
|
+
|
|
15553
18501
|
declare namespace BowmarkProvider_medicalguardian {
|
|
15554
18502
|
// ── Medical Guardian — the unit's own declarations, verbatim ──
|
|
15555
18503
|
// Medical Guardian's OWN shapes — not a capability contract.
|
|
@@ -16492,6 +19440,58 @@ interface StoreShelfRoster {
|
|
|
16492
19440
|
}
|
|
16493
19441
|
}
|
|
16494
19442
|
|
|
19443
|
+
declare namespace BowmarkProvider_millisaraylar {
|
|
19444
|
+
// ── millisaraylar.gov.tr — Türkiye Presidential Administration of National Palaces — the unit's own declarations, verbatim ──
|
|
19445
|
+
interface MillisaraylarPalace {
|
|
19446
|
+
id: string;
|
|
19447
|
+
name: string;
|
|
19448
|
+
url: string;
|
|
19449
|
+
}
|
|
19450
|
+
interface MillisaraylarVisitingHours {
|
|
19451
|
+
name: string;
|
|
19452
|
+
closedDays: string | null; // the site's own text, e.g. "Tuesday"
|
|
19453
|
+
ticketOfficeOpeningTime: string | null; // "HH:MM"
|
|
19454
|
+
ticketOfficeClosingTime: string | null; // "HH:MM"
|
|
19455
|
+
url: string;
|
|
19456
|
+
}
|
|
19457
|
+
interface MillisaraylarTicketPrices {
|
|
19458
|
+
name: string;
|
|
19459
|
+
currency: "TRY";
|
|
19460
|
+
domestic: number | null;
|
|
19461
|
+
domesticStudent: number | null;
|
|
19462
|
+
foreign: number | null;
|
|
19463
|
+
url: string;
|
|
19464
|
+
}
|
|
19465
|
+
|
|
19466
|
+
/**
|
|
19467
|
+
* Türkiye's Presidential Administration of National Palaces — the palace/kiosk/pavilion list,
|
|
19468
|
+
* closed days and ticket-office hours, and domestic/domestic-student/foreign ticket prices for
|
|
19469
|
+
* Topkapi Palace, Dolmabahçe Palace, Yıldız Palace, Beylerbeyi Palace and the other sites it
|
|
19470
|
+
* administers, read straight off the site's own ticket-purchase and detail pages.
|
|
19471
|
+
*/
|
|
19472
|
+
interface Unit {
|
|
19473
|
+
/**
|
|
19474
|
+
* Reads the full palace/kiosk/pavilion/museum/factory list off millisaraylar.gov.tr's own site
|
|
19475
|
+
* navigation.
|
|
19476
|
+
*/
|
|
19477
|
+
getPalaces(): Promise<MillisaraylarPalace[]>;
|
|
19478
|
+
|
|
19479
|
+
/**
|
|
19480
|
+
* Matches `query` against `getPalaces()`'s own listing (a substring match on the site's own
|
|
19481
|
+
* display name, e.g. "Topkapi" or "Dolmabahce") and reads that site's closed day(s) and
|
|
19482
|
+
* ticket-office opening/closing hours off its detail page.
|
|
19483
|
+
*/
|
|
19484
|
+
getVisitingHours(query: string): Promise<MillisaraylarVisitingHours>;
|
|
19485
|
+
|
|
19486
|
+
/**
|
|
19487
|
+
* Matches `query` against millisaraylar.gov.tr's own ticket-purchase location list (a narrower
|
|
19488
|
+
* set than `getPalaces` — only what is sold as a standalone ticket) and reads the domestic,
|
|
19489
|
+
* domestic-student and foreign prices (TRY) the site itself quotes.
|
|
19490
|
+
*/
|
|
19491
|
+
getTicketPrices(query: string): Promise<MillisaraylarTicketPrices>;
|
|
19492
|
+
}
|
|
19493
|
+
}
|
|
19494
|
+
|
|
16495
19495
|
declare namespace BowmarkProvider_minimax {
|
|
16496
19496
|
// ── MiniMax — the unit's own declarations, verbatim ──
|
|
16497
19497
|
interface MinimaxDocIndexEntry {
|
|
@@ -17394,6 +20394,14 @@ interface NbfCartHandoff {
|
|
|
17394
20394
|
|
|
17395
20395
|
declare namespace BowmarkProvider_newageproducts {
|
|
17396
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
|
+
}
|
|
17397
20405
|
interface NewageproductsVariant {
|
|
17398
20406
|
/** The store's own SKU — the only stable per-variant identifier this site publishes. */
|
|
17399
20407
|
sku: string;
|
|
@@ -17434,6 +20442,14 @@ interface NewageproductsProduct {
|
|
|
17434
20442
|
* site's own reliable soft-404 shape).
|
|
17435
20443
|
*/
|
|
17436
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[]>;
|
|
17437
20453
|
}
|
|
17438
20454
|
}
|
|
17439
20455
|
|
|
@@ -18182,6 +21198,62 @@ interface TearsheetUrl {
|
|
|
18182
21198
|
}
|
|
18183
21199
|
}
|
|
18184
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
|
+
|
|
18185
21257
|
declare namespace BowmarkProvider_pirateship {
|
|
18186
21258
|
// ── Pirate Ship — the unit's own declarations, verbatim ──
|
|
18187
21259
|
interface PirateshipDimensions {
|
|
@@ -18546,6 +21618,42 @@ interface PizzahutDealsForRender {
|
|
|
18546
21618
|
}
|
|
18547
21619
|
}
|
|
18548
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
|
+
|
|
18549
21657
|
declare namespace BowmarkProvider_poshmark {
|
|
18550
21658
|
// ── Poshmark — the unit's own declarations, verbatim ──
|
|
18551
21659
|
interface PoshmarkSupportArticle {
|
|
@@ -20073,6 +23181,21 @@ interface RoofmaxxCostEstimate {
|
|
|
20073
23181
|
}
|
|
20074
23182
|
}
|
|
20075
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
|
+
|
|
20076
23199
|
declare namespace BowmarkProvider_rvshare {
|
|
20077
23200
|
// ── RVshare — the unit's own declarations, verbatim ──
|
|
20078
23201
|
interface RvshareListing {
|
|
@@ -20173,6 +23296,45 @@ interface SaatvaRecommendation {
|
|
|
20173
23296
|
}
|
|
20174
23297
|
}
|
|
20175
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
|
+
|
|
20176
23338
|
declare namespace BowmarkProvider_saltandstone {
|
|
20177
23339
|
// ── Salt & Stone — the unit's own declarations, verbatim ──
|
|
20178
23340
|
// Salt & Stone's OWN shapes — not a capability contract.
|
|
@@ -21144,6 +24306,18 @@ interface SmitherySearchResult {
|
|
|
21144
24306
|
|
|
21145
24307
|
declare namespace BowmarkProvider_solostove {
|
|
21146
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
|
+
}
|
|
21147
24321
|
interface SolostoveBundleComponent {
|
|
21148
24322
|
sku: string;
|
|
21149
24323
|
name: string;
|
|
@@ -21162,21 +24336,32 @@ interface SolostoveBundleCheck {
|
|
|
21162
24336
|
}
|
|
21163
24337
|
|
|
21164
24338
|
/**
|
|
21165
|
-
* Solo Stove's bundle-builder check flow —
|
|
21166
|
-
*
|
|
21167
|
-
*
|
|
21168
|
-
* 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.
|
|
21169
24344
|
*/
|
|
21170
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
|
+
|
|
21171
24356
|
/**
|
|
21172
24357
|
* Checks one Solo Stove bundle (fire pit + accessories, e.g. the Dream Backyard Bundle) by its
|
|
21173
|
-
* own product id — the `+`-joined component SKUs from the bundle's product page URL
|
|
21174
|
-
* the combined price and whether the site will sell the
|
|
21175
|
-
* per-component breakdown (each component's own price and
|
|
21176
|
-
* single component made the bundle unorderable. THROWS when
|
|
21177
|
-
* you don't already have a bundle id, use
|
|
21178
|
-
* "SS27+SS22+WINDCHILL30-CHARCOAL-17AH" — to check the
|
|
21179
|
-
* 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.
|
|
21180
24365
|
*/
|
|
21181
24366
|
checkBundle(args: { bundleId: string }): Promise<SolostoveBundleCheck>;
|
|
21182
24367
|
}
|
|
@@ -21263,6 +24448,62 @@ interface ScPlaylist {
|
|
|
21263
24448
|
}
|
|
21264
24449
|
}
|
|
21265
24450
|
|
|
24451
|
+
declare namespace BowmarkProvider_spirithalloween {
|
|
24452
|
+
// ── Spirit Halloween — the unit's own declarations, verbatim ──
|
|
24453
|
+
interface SpiritHalloweenSearchResult {
|
|
24454
|
+
productId: string
|
|
24455
|
+
sku: string
|
|
24456
|
+
name: string
|
|
24457
|
+
url: string
|
|
24458
|
+
image: string | null
|
|
24459
|
+
price: number | null
|
|
24460
|
+
currency: "USD"
|
|
24461
|
+
listedSize: string | null // the ONE size this listing row is indexed under
|
|
24462
|
+
listedSizeStock: number | null // that size's stock only — not the full range
|
|
24463
|
+
}
|
|
24464
|
+
interface SpiritHalloweenSearchResults {
|
|
24465
|
+
query: string
|
|
24466
|
+
category: string
|
|
24467
|
+
results: SpiritHalloweenSearchResult[]
|
|
24468
|
+
totalMatches: number | null
|
|
24469
|
+
}
|
|
24470
|
+
interface SpiritHalloweenSizeVariant {
|
|
24471
|
+
color: string
|
|
24472
|
+
size: string // the site's own size label, e.g. "CHILD MEDIUM"
|
|
24473
|
+
price: number
|
|
24474
|
+
inStock: boolean
|
|
24475
|
+
shipStockQuantity: number
|
|
24476
|
+
variantId: string
|
|
24477
|
+
}
|
|
24478
|
+
interface SpiritHalloweenProduct {
|
|
24479
|
+
productId: string
|
|
24480
|
+
name: string
|
|
24481
|
+
url: string
|
|
24482
|
+
sizes: SpiritHalloweenSizeVariant[] // every real color/size combination, each with its own live stock
|
|
24483
|
+
}
|
|
24484
|
+
|
|
24485
|
+
/**
|
|
24486
|
+
* The licensed Halloween costume specialist — category browse and per-size, per-color live
|
|
24487
|
+
* stock for the lines it carries (today: KPop Demon Hunters).
|
|
24488
|
+
*/
|
|
24489
|
+
interface Unit {
|
|
24490
|
+
/**
|
|
24491
|
+
* Browses Spirit Halloween's category listing for a query resolved against a small internal
|
|
24492
|
+
* directory of mapped categories (today: "KPop Demon Hunters" and its characters — rumi, mira,
|
|
24493
|
+
* zoey, saja) — NOT a general free-text site search, which was probed 2026-09-01 and does not
|
|
24494
|
+
* render results server-side. Each result row carries only its OWN listed size's stock; call
|
|
24495
|
+
* getProduct for the full per-size breakdown.
|
|
24496
|
+
*/
|
|
24497
|
+
search(args: { query: string; limit?: number }): Promise<SpiritHalloweenSearchResults>;
|
|
24498
|
+
|
|
24499
|
+
/**
|
|
24500
|
+
* Reads one product page's full live size/color matrix — every real variant this product sells
|
|
24501
|
+
* in, each with its own price and in-stock signal — for a product URL returned by search.
|
|
24502
|
+
*/
|
|
24503
|
+
getProduct(args: { url: string }): Promise<SpiritHalloweenProduct>;
|
|
24504
|
+
}
|
|
24505
|
+
}
|
|
24506
|
+
|
|
21266
24507
|
declare namespace BowmarkProvider_starlighthomes {
|
|
21267
24508
|
// ── Starlight Homes — the unit's own declarations, verbatim ──
|
|
21268
24509
|
// Starlight Homes' OWN shapes — not a capability contract.
|
|
@@ -22296,7 +25537,7 @@ interface TherabodyRecommendation {
|
|
|
22296
25537
|
|
|
22297
25538
|
/**
|
|
22298
25539
|
* Filters the live catalogue by what a shopper actually needs — device family, audience, and
|
|
22299
|
-
* the features named (
|
|
25540
|
+
* the features named (percussive, recovery, massage, vibration). Returns the matching products
|
|
22300
25541
|
* with their real prices, ranked by in-stock first. The storefront does not publish a query or
|
|
22301
25542
|
* filter endpoint, so the function is local filtering on the catalogue listTheragunProducts
|
|
22302
25543
|
* already returns — the divide is what the function does with the data, not how it gets there.
|
|
@@ -22662,6 +25903,7 @@ interface thezebraAutoDriver {
|
|
|
22662
25903
|
ageFirstLicensed?: number // default 16 when omitted
|
|
22663
25904
|
violations?: { accidents: number, claims: number, tickets: number } // default a clean record
|
|
22664
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")
|
|
22665
25907
|
}
|
|
22666
25908
|
|
|
22667
25909
|
interface thezebraAutoVehicle {
|
|
@@ -22676,6 +25918,8 @@ interface thezebraAutoQuotesQuery {
|
|
|
22676
25918
|
state: string // 2-letter postal code
|
|
22677
25919
|
zip: string // 5 digits
|
|
22678
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"
|
|
22679
25923
|
}
|
|
22680
25924
|
|
|
22681
25925
|
interface thezebraAutoQuote {
|
|
@@ -22877,23 +26121,43 @@ interface thezebraAutoQuotes {
|
|
|
22877
26121
|
* carrier's own monthly and six-month premium, deductible, and the coverage it priced, as The
|
|
22878
26122
|
* Zebra's auto quote funnel prices them. This is a priced offer for the person asking, NOT the
|
|
22879
26123
|
* published averages `getStateRates` and its siblings return. Pass `driver` (`firstName`,
|
|
22880
|
-
* `lastName`, `dob` ISO YYYY-MM-DD, `email`, and
|
|
22881
|
-
*
|
|
22882
|
-
*
|
|
22883
|
-
*
|
|
22884
|
-
*
|
|
22885
|
-
*
|
|
22886
|
-
*
|
|
22887
|
-
*
|
|
22888
|
-
*
|
|
22889
|
-
*
|
|
22890
|
-
*
|
|
22891
|
-
*
|
|
22892
|
-
*
|
|
22893
|
-
*
|
|
22894
|
-
*
|
|
22895
|
-
*
|
|
22896
|
-
*
|
|
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
|
|
22897
26161
|
* one**: the results page would carry paid carrier placements alongside real offers, separated
|
|
22898
26162
|
* by `data-cy="results-card_ad_<carrier>"` (ad) versus `data-cy="results-card_q2b_<carrier>"`
|
|
22899
26163
|
* (real offer), and the advertised names are returned in their own field with no price
|
|
@@ -23112,12 +26376,30 @@ interface topviewtixPackageDetails {
|
|
|
23112
26376
|
availableUntil: string | null;
|
|
23113
26377
|
}
|
|
23114
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
|
+
|
|
23115
26388
|
/**
|
|
23116
26389
|
* TopView's NYC hop-on-hop-off bus, Statue of Liberty cruise and bike/walking tour packages —
|
|
23117
26390
|
* getPackageDetails reads one package's live price and its own real-time booking calendar
|
|
23118
26391
|
* (available/blocked/sold-out dates) off topviewtix.com/new-york/<slug>.
|
|
23119
26392
|
*/
|
|
23120
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
|
+
|
|
23121
26403
|
/**
|
|
23122
26404
|
* Reads one TopView tour package in full — name, description, adult/kid price, and the site's
|
|
23123
26405
|
* OWN live booking calendar (which dates are open, blocked, or sold out, and how far out the
|
|
@@ -23442,6 +26724,63 @@ type TwiddyQuote =
|
|
|
23442
26724
|
}
|
|
23443
26725
|
}
|
|
23444
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
|
+
|
|
23445
26784
|
declare namespace BowmarkProvider_ulrichlifestyle {
|
|
23446
26785
|
// ── Ulrich Lifestyle Structures — the unit's own declarations, verbatim ──
|
|
23447
26786
|
// Ulrich Lifestyle Structures' OWN shapes — not a capability contract.
|
|
@@ -24089,6 +27428,43 @@ interface VoluspaQuizIntro {
|
|
|
24089
27428
|
}
|
|
24090
27429
|
}
|
|
24091
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
|
+
|
|
24092
27468
|
declare namespace BowmarkProvider_walkerhughes {
|
|
24093
27469
|
// ── WalkerHughes Insurance — the unit's own declarations, verbatim ──
|
|
24094
27470
|
// WalkerHughes' OWN shapes — not a capability contract.
|
|
@@ -24486,6 +27862,98 @@ interface XpressWaitTime {
|
|
|
24486
27862
|
}
|
|
24487
27863
|
}
|
|
24488
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
|
+
|
|
27927
|
+
declare namespace BowmarkProvider_yelp {
|
|
27928
|
+
// ── Yelp — the unit's own declarations, verbatim ──
|
|
27929
|
+
interface YelpSearchArgs {
|
|
27930
|
+
term: string; // e.g. "ramen" — Yelp's own find_desc
|
|
27931
|
+
location: string; // e.g. "Philadelphia, PA" — Yelp's own find_loc
|
|
27932
|
+
limit?: number; // default 10, clamped to [1, 30]
|
|
27933
|
+
}
|
|
27934
|
+
|
|
27935
|
+
interface YelpSearchResult {
|
|
27936
|
+
name: string;
|
|
27937
|
+
url: string;
|
|
27938
|
+
rating: number | null;
|
|
27939
|
+
reviewCount: number | null;
|
|
27940
|
+
priceRange: string | null; // "$".."$$$$", or null
|
|
27941
|
+
neighborhood: string | null;
|
|
27942
|
+
}
|
|
27943
|
+
|
|
27944
|
+
/**
|
|
27945
|
+
* Yelp's own business search — returns real, currently-listed businesses for a search term and
|
|
27946
|
+
* location with Yelp's own star rating, review count, price tier and neighborhood.
|
|
27947
|
+
*/
|
|
27948
|
+
interface Unit {
|
|
27949
|
+
/**
|
|
27950
|
+
* Runs Yelp's own business search for a term and location and returns real, currently-listed
|
|
27951
|
+
* businesses with Yelp's own rating, review count, price tier and neighborhood. Read-only.
|
|
27952
|
+
*/
|
|
27953
|
+
search(args: YelpSearchArgs): Promise<YelpSearchResult[]>;
|
|
27954
|
+
}
|
|
27955
|
+
}
|
|
27956
|
+
|
|
24489
27957
|
declare namespace BowmarkProvider_yorkwallcoverings {
|
|
24490
27958
|
// ── York Wallcoverings — the unit's own declarations, verbatim ──
|
|
24491
27959
|
interface YorkWallcoveringsSearchResult {
|
|
@@ -24624,6 +28092,21 @@ interface YoutubeTranscript {
|
|
|
24624
28092
|
|
|
24625
28093
|
declare namespace BowmarkProvider_zennioptical {
|
|
24626
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
|
+
}
|
|
24627
28110
|
interface ZenniFrame {
|
|
24628
28111
|
sku: string;
|
|
24629
28112
|
name: string;
|
|
@@ -24655,6 +28138,13 @@ interface ZenniLensPriceRow {
|
|
|
24655
28138
|
* site's own configurator, and checks live per-SKU stock.
|
|
24656
28139
|
*/
|
|
24657
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
|
+
|
|
24658
28148
|
/**
|
|
24659
28149
|
* Reads one frame's name, base price and per-color-variant price straight off the product
|
|
24660
28150
|
* page's own embedded data. No rendering.
|
|
@@ -25493,71 +28983,111 @@ interface BowmarkProviders {
|
|
|
25493
28983
|
aa: BowmarkProvider_aa.Unit;
|
|
25494
28984
|
aauto: BowmarkProvider_aauto.Unit;
|
|
25495
28985
|
abercrombie: BowmarkProvider_abercrombie.Unit;
|
|
28986
|
+
achosahw: BowmarkProvider_achosahw.Unit;
|
|
28987
|
+
acqualinaresort: BowmarkProvider_acqualinaresort.Unit;
|
|
25496
28988
|
aiper: BowmarkProvider_aiper.Unit;
|
|
25497
28989
|
ajmadison: BowmarkProvider_ajmadison.Unit;
|
|
25498
28990
|
allied: BowmarkProvider_allied.Unit;
|
|
25499
28991
|
alphavantage: BowmarkProvider_alphavantage.Unit;
|
|
28992
|
+
americandreamvacations: BowmarkProvider_americandreamvacations.Unit;
|
|
25500
28993
|
americanstandard: BowmarkProvider_americanstandard.Unit;
|
|
28994
|
+
americanvisionwindows: BowmarkProvider_americanvisionwindows.Unit;
|
|
25501
28995
|
amramp: BowmarkProvider_amramp.Unit;
|
|
25502
28996
|
ancientnutrition: BowmarkProvider_ancientnutrition.Unit;
|
|
25503
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;
|
|
25504
29002
|
apple: BowmarkProvider_apple.Unit;
|
|
25505
29003
|
aquaphoenixsci: BowmarkProvider_aquaphoenixsci.Unit;
|
|
29004
|
+
arajet: BowmarkProvider_arajet.Unit;
|
|
25506
29005
|
archipelago: BowmarkProvider_archipelago.Unit;
|
|
29006
|
+
artpix3d: BowmarkProvider_artpix3d.Unit;
|
|
25507
29007
|
ashleyfurniture: BowmarkProvider_ashleyfurniture.Unit;
|
|
25508
29008
|
asppoolco: BowmarkProvider_asppoolco.Unit;
|
|
25509
29009
|
atlasoceanvoyages: BowmarkProvider_atlasoceanvoyages.Unit;
|
|
25510
29010
|
atlasseniorliving: BowmarkProvider_atlasseniorliving.Unit;
|
|
29011
|
+
audibel: BowmarkProvider_audibel.Unit;
|
|
25511
29012
|
autocamp: BowmarkProvider_autocamp.Unit;
|
|
25512
29013
|
avantstay: BowmarkProvider_avantstay.Unit;
|
|
25513
29014
|
avis: BowmarkProvider_avis.Unit;
|
|
29015
|
+
ayreshotels: BowmarkProvider_ayreshotels.Unit;
|
|
25514
29016
|
azazie: BowmarkProvider_azazie.Unit;
|
|
25515
29017
|
azure: BowmarkProvider_azure.Unit;
|
|
29018
|
+
bankmycell: BowmarkProvider_bankmycell.Unit;
|
|
25516
29019
|
barletta: BowmarkProvider_barletta.Unit;
|
|
29020
|
+
barnesfoundation: BowmarkProvider_barnesfoundation.Unit;
|
|
25517
29021
|
baublebar: BowmarkProvider_baublebar.Unit;
|
|
25518
29022
|
bcparkscamping: BowmarkProvider_bcparkscamping.Unit;
|
|
25519
29023
|
beatthebomb: BowmarkProvider_beatthebomb.Unit;
|
|
29024
|
+
bellwethercoffee: BowmarkProvider_bellwethercoffee.Unit;
|
|
29025
|
+
beltservice: BowmarkProvider_beltservice.Unit;
|
|
29026
|
+
benelliusa: BowmarkProvider_benelliusa.Unit;
|
|
25520
29027
|
bennington: BowmarkProvider_bennington.Unit;
|
|
25521
29028
|
bestbuy: BowmarkProvider_bestbuy.Unit;
|
|
25522
29029
|
bhphoto: BowmarkProvider_bhphoto.Unit;
|
|
29030
|
+
bigairusa: BowmarkProvider_bigairusa.Unit;
|
|
25523
29031
|
bigjoeforklifts: BowmarkProvider_bigjoeforklifts.Unit;
|
|
25524
29032
|
bigrentz: BowmarkProvider_bigrentz.Unit;
|
|
25525
29033
|
bing: BowmarkProvider_bing.Unit;
|
|
29034
|
+
bishops: BowmarkProvider_bishops.Unit;
|
|
25526
29035
|
blackstoneproducts: BowmarkProvider_blackstoneproducts.Unit;
|
|
25527
29036
|
blenderseyewear: BowmarkProvider_blenderseyewear.Unit;
|
|
25528
29037
|
bluehaven: BowmarkProvider_bluehaven.Unit;
|
|
25529
29038
|
bluesignal: BowmarkProvider_bluesignal.Unit;
|
|
25530
29039
|
bmwusa: BowmarkProvider_bmwusa.Unit;
|
|
29040
|
+
boglewinery: BowmarkProvider_boglewinery.Unit;
|
|
25531
29041
|
bollandbranch: BowmarkProvider_bollandbranch.Unit;
|
|
29042
|
+
borsheims: BowmarkProvider_borsheims.Unit;
|
|
29043
|
+
boxlunch: BowmarkProvider_boxlunch.Unit;
|
|
25532
29044
|
boydsleep: BowmarkProvider_boydsleep.Unit;
|
|
29045
|
+
brius: BowmarkProvider_brius.Unit;
|
|
25533
29046
|
brixton: BowmarkProvider_brixton.Unit;
|
|
25534
29047
|
bulletproof: BowmarkProvider_bulletproof.Unit;
|
|
29048
|
+
bungalow: BowmarkProvider_bungalow.Unit;
|
|
25535
29049
|
bykoket: BowmarkProvider_bykoket.Unit;
|
|
25536
29050
|
byltbasics: BowmarkProvider_byltbasics.Unit;
|
|
29051
|
+
cabinsforyou: BowmarkProvider_cabinsforyou.Unit;
|
|
29052
|
+
caliberhealth: BowmarkProvider_caliberhealth.Unit;
|
|
25537
29053
|
califloors: BowmarkProvider_califloors.Unit;
|
|
25538
29054
|
camelcamelcamel: BowmarkProvider_camelcamelcamel.Unit;
|
|
25539
29055
|
cancer: BowmarkProvider_cancer.Unit;
|
|
25540
29056
|
capitalbrands: BowmarkProvider_capitalbrands.Unit;
|
|
25541
29057
|
caraway: BowmarkProvider_caraway.Unit;
|
|
25542
29058
|
carepatrol: BowmarkProvider_carepatrol.Unit;
|
|
29059
|
+
carmelrealtycompany: BowmarkProvider_carmelrealtycompany.Unit;
|
|
29060
|
+
carolefabrics: BowmarkProvider_carolefabrics.Unit;
|
|
29061
|
+
carpetlandusa: BowmarkProvider_carpetlandusa.Unit;
|
|
25543
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;
|
|
25544
29067
|
chantecaille: BowmarkProvider_chantecaille.Unit;
|
|
25545
29068
|
cheapflights: BowmarkProvider_cheapflights.Unit;
|
|
25546
29069
|
chesmar: BowmarkProvider_chesmar.Unit;
|
|
29070
|
+
chipotle: BowmarkProvider_chipotle.Unit;
|
|
25547
29071
|
chriscraft: BowmarkProvider_chriscraft.Unit;
|
|
25548
29072
|
classichome: BowmarkProvider_classichome.Unit;
|
|
25549
29073
|
classpass: BowmarkProvider_classpass.Unit;
|
|
29074
|
+
claude_com: BowmarkProvider_claude_com.Unit;
|
|
29075
|
+
claude_support: BowmarkProvider_claude_support.Unit;
|
|
29076
|
+
claudemarketplaces_com: BowmarkProvider_claudemarketplaces_com.Unit;
|
|
25550
29077
|
cleanairlawncare: BowmarkProvider_cleanairlawncare.Unit;
|
|
25551
29078
|
cloudflare: BowmarkProvider_cloudflare.Unit;
|
|
25552
29079
|
clubchampion: BowmarkProvider_clubchampion.Unit;
|
|
29080
|
+
code_claude_com: BowmarkProvider_code_claude_com.Unit;
|
|
25553
29081
|
consultnet: BowmarkProvider_consultnet.Unit;
|
|
25554
29082
|
couponfollow: BowmarkProvider_couponfollow.Unit;
|
|
25555
29083
|
cruiselakegeneva: BowmarkProvider_cruiselakegeneva.Unit;
|
|
25556
29084
|
culturefly: BowmarkProvider_culturefly.Unit;
|
|
29085
|
+
curiocity: BowmarkProvider_curiocity.Unit;
|
|
25557
29086
|
cyberpowerpc: BowmarkProvider_cyberpowerpc.Unit;
|
|
25558
29087
|
davidsonhomes: BowmarkProvider_davidsonhomes.Unit;
|
|
25559
29088
|
deangroup: BowmarkProvider_deangroup.Unit;
|
|
25560
29089
|
decked: BowmarkProvider_decked.Unit;
|
|
29090
|
+
decksdirect: BowmarkProvider_decksdirect.Unit;
|
|
25561
29091
|
developersopenai: BowmarkProvider_developersopenai.Unit;
|
|
25562
29092
|
dice: BowmarkProvider_dice.Unit;
|
|
25563
29093
|
dickssportinggoods: BowmarkProvider_dickssportinggoods.Unit;
|
|
@@ -25565,17 +29095,20 @@ interface BowmarkProviders {
|
|
|
25565
29095
|
discounttire: BowmarkProvider_discounttire.Unit;
|
|
25566
29096
|
disney: BowmarkProvider_disney.Unit;
|
|
25567
29097
|
doordash: BowmarkProvider_doordash.Unit;
|
|
29098
|
+
dumpsters: BowmarkProvider_dumpsters.Unit;
|
|
25568
29099
|
ebay: BowmarkProvider_ebay.Unit;
|
|
25569
29100
|
elevenlabs: BowmarkProvider_elevenlabs.Unit;
|
|
25570
29101
|
embroker: BowmarkProvider_embroker.Unit;
|
|
25571
29102
|
eq3: BowmarkProvider_eq3.Unit;
|
|
25572
29103
|
erieinsurance: BowmarkProvider_erieinsurance.Unit;
|
|
29104
|
+
etsy: BowmarkProvider_etsy.Unit;
|
|
25573
29105
|
eventsource: BowmarkProvider_eventsource.Unit;
|
|
25574
29106
|
evolutionofsmooth: BowmarkProvider_evolutionofsmooth.Unit;
|
|
25575
29107
|
executivehomecare: BowmarkProvider_executivehomecare.Unit;
|
|
25576
29108
|
extraspace: BowmarkProvider_extraspace.Unit;
|
|
25577
29109
|
facerealityskincare: BowmarkProvider_facerealityskincare.Unit;
|
|
25578
29110
|
firstdibs: BowmarkProvider_firstdibs.Unit;
|
|
29111
|
+
fivebelow: BowmarkProvider_fivebelow.Unit;
|
|
25579
29112
|
fivestarbathsolutions: BowmarkProvider_fivestarbathsolutions.Unit;
|
|
25580
29113
|
flightradar24: BowmarkProvider_flightradar24.Unit;
|
|
25581
29114
|
ford: BowmarkProvider_ford.Unit;
|
|
@@ -25585,8 +29118,11 @@ interface BowmarkProviders {
|
|
|
25585
29118
|
fred: BowmarkProvider_fred.Unit;
|
|
25586
29119
|
furniture: BowmarkProvider_furniture.Unit;
|
|
25587
29120
|
g2: BowmarkProvider_g2.Unit;
|
|
29121
|
+
gasbuddy: BowmarkProvider_gasbuddy.Unit;
|
|
29122
|
+
gazelle: BowmarkProvider_gazelle.Unit;
|
|
25588
29123
|
geico: BowmarkProvider_geico.Unit;
|
|
25589
29124
|
github: BowmarkProvider_github.Unit;
|
|
29125
|
+
glama: BowmarkProvider_glama.Unit;
|
|
25590
29126
|
glassesusa: BowmarkProvider_glassesusa.Unit;
|
|
25591
29127
|
goloadup: BowmarkProvider_goloadup.Unit;
|
|
25592
29128
|
goodway: BowmarkProvider_goodway.Unit;
|
|
@@ -25607,7 +29143,9 @@ interface BowmarkProviders {
|
|
|
25607
29143
|
hilton: BowmarkProvider_hilton.Unit;
|
|
25608
29144
|
historymaker: BowmarkProvider_historymaker.Unit;
|
|
25609
29145
|
hobie: BowmarkProvider_hobie.Unit;
|
|
29146
|
+
hodjapasha: BowmarkProvider_hodjapasha.Unit;
|
|
25610
29147
|
holidaybuilders: BowmarkProvider_holidaybuilders.Unit;
|
|
29148
|
+
hottopic: BowmarkProvider_hottopic.Unit;
|
|
25611
29149
|
hunter: BowmarkProvider_hunter.Unit;
|
|
25612
29150
|
ibuypower: BowmarkProvider_ibuypower.Unit;
|
|
25613
29151
|
identitygroup: BowmarkProvider_identitygroup.Unit;
|
|
@@ -25638,6 +29176,7 @@ interface BowmarkProviders {
|
|
|
25638
29176
|
liquiddeath: BowmarkProvider_liquiddeath.Unit;
|
|
25639
29177
|
liquidspace: BowmarkProvider_liquidspace.Unit;
|
|
25640
29178
|
littlewordsproject: BowmarkProvider_littlewordsproject.Unit;
|
|
29179
|
+
lmstudio: BowmarkProvider_lmstudio.Unit;
|
|
25641
29180
|
lonelyplanet: BowmarkProvider_lonelyplanet.Unit;
|
|
25642
29181
|
louvershop: BowmarkProvider_louvershop.Unit;
|
|
25643
29182
|
lovelybride: BowmarkProvider_lovelybride.Unit;
|
|
@@ -25649,10 +29188,12 @@ interface BowmarkProviders {
|
|
|
25649
29188
|
marriott: BowmarkProvider_marriott.Unit;
|
|
25650
29189
|
mcdonalds: BowmarkProvider_mcdonalds.Unit;
|
|
25651
29190
|
mcp_registry: BowmarkProvider_mcp_registry.Unit;
|
|
29191
|
+
mcp_so: BowmarkProvider_mcp_so.Unit;
|
|
25652
29192
|
medicalguardian: BowmarkProvider_medicalguardian.Unit;
|
|
25653
29193
|
medicare: BowmarkProvider_medicare.Unit;
|
|
25654
29194
|
mergify: BowmarkProvider_mergify.Unit;
|
|
25655
29195
|
microcenter: BowmarkProvider_microcenter.Unit;
|
|
29196
|
+
millisaraylar: BowmarkProvider_millisaraylar.Unit;
|
|
25656
29197
|
minimax: BowmarkProvider_minimax.Unit;
|
|
25657
29198
|
minted: BowmarkProvider_minted.Unit;
|
|
25658
29199
|
mixbook: BowmarkProvider_mixbook.Unit;
|
|
@@ -25677,8 +29218,10 @@ interface BowmarkProviders {
|
|
|
25677
29218
|
pacificcompanies: BowmarkProvider_pacificcompanies.Unit;
|
|
25678
29219
|
paypal: BowmarkProvider_paypal.Unit;
|
|
25679
29220
|
perennialsandsutherland: BowmarkProvider_perennialsandsutherland.Unit;
|
|
29221
|
+
pilotprotocol: BowmarkProvider_pilotprotocol.Unit;
|
|
25680
29222
|
pirateship: BowmarkProvider_pirateship.Unit;
|
|
25681
29223
|
pizzahut: BowmarkProvider_pizzahut.Unit;
|
|
29224
|
+
platform_claude_com: BowmarkProvider_platform_claude_com.Unit;
|
|
25682
29225
|
poshmark: BowmarkProvider_poshmark.Unit;
|
|
25683
29226
|
positivegrid: BowmarkProvider_positivegrid.Unit;
|
|
25684
29227
|
premierbuildings: BowmarkProvider_premierbuildings.Unit;
|
|
@@ -25693,8 +29236,10 @@ interface BowmarkProviders {
|
|
|
25693
29236
|
rishitea: BowmarkProvider_rishitea.Unit;
|
|
25694
29237
|
ritani: BowmarkProvider_ritani.Unit;
|
|
25695
29238
|
roofmaxx: BowmarkProvider_roofmaxx.Unit;
|
|
29239
|
+
rover: BowmarkProvider_rover.Unit;
|
|
25696
29240
|
rvshare: BowmarkProvider_rvshare.Unit;
|
|
25697
29241
|
saatva: BowmarkProvider_saatva.Unit;
|
|
29242
|
+
safetywing: BowmarkProvider_safetywing.Unit;
|
|
25698
29243
|
saltandstone: BowmarkProvider_saltandstone.Unit;
|
|
25699
29244
|
samsclub: BowmarkProvider_samsclub.Unit;
|
|
25700
29245
|
scentbird: BowmarkProvider_scentbird.Unit;
|
|
@@ -25712,6 +29257,7 @@ interface BowmarkProviders {
|
|
|
25712
29257
|
smithery: BowmarkProvider_smithery.Unit;
|
|
25713
29258
|
solostove: BowmarkProvider_solostove.Unit;
|
|
25714
29259
|
soundcloud: BowmarkProvider_soundcloud.Unit;
|
|
29260
|
+
spirithalloween: BowmarkProvider_spirithalloween.Unit;
|
|
25715
29261
|
starlighthomes: BowmarkProvider_starlighthomes.Unit;
|
|
25716
29262
|
statefarm: BowmarkProvider_statefarm.Unit;
|
|
25717
29263
|
stickergiant: BowmarkProvider_stickergiant.Unit;
|
|
@@ -25737,6 +29283,7 @@ interface BowmarkProviders {
|
|
|
25737
29283
|
trektravel: BowmarkProvider_trektravel.Unit;
|
|
25738
29284
|
trophysignaturehomes: BowmarkProvider_trophysignaturehomes.Unit;
|
|
25739
29285
|
twiddy: BowmarkProvider_twiddy.Unit;
|
|
29286
|
+
uhc_smallbusiness: BowmarkProvider_uhc_smallbusiness.Unit;
|
|
25740
29287
|
ulrichlifestyle: BowmarkProvider_ulrichlifestyle.Unit;
|
|
25741
29288
|
ups: BowmarkProvider_ups.Unit;
|
|
25742
29289
|
usps: BowmarkProvider_usps.Unit;
|
|
@@ -25746,12 +29293,15 @@ interface BowmarkProviders {
|
|
|
25746
29293
|
villagerealtyobx: BowmarkProvider_villagerealtyobx.Unit;
|
|
25747
29294
|
visible: BowmarkProvider_visible.Unit;
|
|
25748
29295
|
voluspa: BowmarkProvider_voluspa.Unit;
|
|
29296
|
+
vscode: BowmarkProvider_vscode.Unit;
|
|
25749
29297
|
walkerhughes: BowmarkProvider_walkerhughes.Unit;
|
|
25750
29298
|
walmart: BowmarkProvider_walmart.Unit;
|
|
25751
29299
|
waterfurnace: BowmarkProvider_waterfurnace.Unit;
|
|
25752
29300
|
wellfound: BowmarkProvider_wellfound.Unit;
|
|
25753
29301
|
winestyles: BowmarkProvider_winestyles.Unit;
|
|
25754
29302
|
xpresswellnessurgentcare: BowmarkProvider_xpresswellnessurgentcare.Unit;
|
|
29303
|
+
ycombinator: BowmarkProvider_ycombinator.Unit;
|
|
29304
|
+
yelp: BowmarkProvider_yelp.Unit;
|
|
25755
29305
|
yorkwallcoverings: BowmarkProvider_yorkwallcoverings.Unit;
|
|
25756
29306
|
yourarborhome: BowmarkProvider_yourarborhome.Unit;
|
|
25757
29307
|
youtube: BowmarkProvider_youtube.Unit;
|
|
@@ -77482,12 +81032,14 @@ interface BowmarkLibrary {
|
|
|
77482
81032
|
bundles: BowmarkCapability_bundles.Unit;
|
|
77483
81033
|
cable_railing_quote: BowmarkCapability_cable_railing_quote.Unit;
|
|
77484
81034
|
cars: BowmarkCapability_cars.Unit;
|
|
81035
|
+
costume_size_check: BowmarkCapability_costume_size_check.Unit;
|
|
77485
81036
|
coworking: BowmarkCapability_coworking.Unit;
|
|
77486
81037
|
custom_sofa_configurator: BowmarkCapability_custom_sofa_configurator.Unit;
|
|
77487
81038
|
delivery: BowmarkCapability_delivery.Unit;
|
|
77488
81039
|
developer_api_key_signup: BowmarkCapability_developer_api_key_signup.Unit;
|
|
77489
81040
|
domain: BowmarkCapability_domain.Unit;
|
|
77490
81041
|
email: BowmarkCapability_email.Unit;
|
|
81042
|
+
entertainment_merch: BowmarkCapability_entertainment_merch.Unit;
|
|
77491
81043
|
flights: BowmarkCapability_flights.Unit;
|
|
77492
81044
|
game_soundtrack_composer_credits: BowmarkCapability_game_soundtrack_composer_credits.Unit;
|
|
77493
81045
|
git_commit_history: BowmarkCapability_git_commit_history.Unit;
|
|
@@ -77501,6 +81053,7 @@ interface BowmarkLibrary {
|
|
|
77501
81053
|
mcp_registry: BowmarkCapability_mcp_registry.Unit;
|
|
77502
81054
|
music: BowmarkCapability_music.Unit;
|
|
77503
81055
|
pcparts: BowmarkCapability_pcparts.Unit;
|
|
81056
|
+
phone_price: BowmarkCapability_phone_price.Unit;
|
|
77504
81057
|
phone_trade_in: BowmarkCapability_phone_trade_in.Unit;
|
|
77505
81058
|
pricing: BowmarkCapability_pricing.Unit;
|
|
77506
81059
|
products: BowmarkCapability_products.Unit;
|
|
@@ -77516,6 +81069,7 @@ interface BowmarkLibrary {
|
|
|
77516
81069
|
text_to_speech: BowmarkCapability_text_to_speech.Unit;
|
|
77517
81070
|
theme_park_tickets: BowmarkCapability_theme_park_tickets.Unit;
|
|
77518
81071
|
weather: BowmarkCapability_weather.Unit;
|
|
81072
|
+
wireless: BowmarkCapability_wireless.Unit;
|
|
77519
81073
|
yoga_outfit_shopping: BowmarkCapability_yoga_outfit_shopping.Unit;
|
|
77520
81074
|
providers: BowmarkProviders;
|
|
77521
81075
|
}
|