@bowmark/web 1.11.0 → 1.12.1
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/package.json +3 -2
- package/src/generated/library.d.ts +1798 -83
- package/src/generated/validators.ts +1681 -77
|
@@ -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: 5207ea33354972da803d6974eed73abefc0ae46410767310486fd5116faa04c1
|
|
9
|
+
// 34 capabilities, 257 providers, 674 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
|
|
@@ -36,6 +36,92 @@
|
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
|
|
39
|
+
declare namespace BowmarkCapability_bundles {
|
|
40
|
+
// ── Check whether a set of products can be built and bought right now — the unit's own declarations, verbatim ──
|
|
41
|
+
interface BundleItemAvailability {
|
|
42
|
+
url: string
|
|
43
|
+
ok: boolean
|
|
44
|
+
buildable: boolean
|
|
45
|
+
price: { amount: number; currency: string } | null // integer minor units
|
|
46
|
+
availability: string | null
|
|
47
|
+
reason: string | null
|
|
48
|
+
}
|
|
49
|
+
interface BundleAvailability {
|
|
50
|
+
buildable: boolean
|
|
51
|
+
items: BundleItemAvailability[]
|
|
52
|
+
blocking: string[] // urls of the items stopping the bundle
|
|
53
|
+
totalPrice: { amount: number; currency: string } | null
|
|
54
|
+
warnings: string[]
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Given a list of product page urls, reads each one's price and stock the way
|
|
59
|
+
* `products.getAvailability` does, then reduces the set to one buildable/not-buildable verdict
|
|
60
|
+
* naming whatever is blocking it.
|
|
61
|
+
*/
|
|
62
|
+
interface Unit {
|
|
63
|
+
/**
|
|
64
|
+
* Reads every item's product page and returns whether the WHOLE bundle can be built and bought
|
|
65
|
+
* right now — false the moment any one item is out of stock, pre-order, or unreadable, naming
|
|
66
|
+
* which url(s) are blocking it in `blocking`. Never throws on a bad or dead item url; that
|
|
67
|
+
* item is reported as not buildable instead, with its reason.
|
|
68
|
+
*/
|
|
69
|
+
checkAvailability(items: { url: string }[]): Promise<BundleAvailability>;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
declare namespace BowmarkCapability_cable_railing_quote {
|
|
74
|
+
// ── Cable railing design quote (materials & mounting options) — the unit's own declarations, verbatim ──
|
|
75
|
+
type CableRailingMaterial = {
|
|
76
|
+
slug: string
|
|
77
|
+
title: string
|
|
78
|
+
metal: boolean
|
|
79
|
+
defaultFinish: string | null
|
|
80
|
+
finishes: string[]
|
|
81
|
+
}
|
|
82
|
+
type CableRailingMountingStyle = {
|
|
83
|
+
slug: string
|
|
84
|
+
title: string
|
|
85
|
+
availableMaterials: string[]
|
|
86
|
+
}
|
|
87
|
+
type CableRailingPricing = {
|
|
88
|
+
automated: false // no source publishes an automated instant price — see 'how'
|
|
89
|
+
how: string // what actually produces a price (a human, after submission)
|
|
90
|
+
designAppUrl: string
|
|
91
|
+
}
|
|
92
|
+
type CableRailingDesignOptionsResult = {
|
|
93
|
+
materials: CableRailingMaterial[]
|
|
94
|
+
mountingStyles: CableRailingMountingStyle[]
|
|
95
|
+
pricing: CableRailingPricing
|
|
96
|
+
warnings: string[] // always present; empty when nothing was dropped
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
type CallOptions = {
|
|
100
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
101
|
+
// A provider slower than this is DROPPED from the results and
|
|
102
|
+
// NAMED in warnings — never silently absent
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Returns the real material and mounting-style choices behind Viewrail's Victor cable-railing
|
|
107
|
+
* design app. There is no automated instant price to return alongside them — Victor prices a
|
|
108
|
+
* design by having a human review it after submission, and `pricing.how` says so rather than
|
|
109
|
+
* guessing a number.
|
|
110
|
+
*/
|
|
111
|
+
interface Unit {
|
|
112
|
+
/**
|
|
113
|
+
* Lists Victor's real material families (304/316/2205 stainless, aluminum, wood-grain
|
|
114
|
+
* aluminum, …) and post-mounting styles (Surface Mount, Side Mount, Core Drill, …), each with
|
|
115
|
+
* which materials it's available in — the two choices Victor's own draw-and-quote flow asks
|
|
116
|
+
* first. `pricing.automated` is always `false`: no cable-railing site measured publishes an
|
|
117
|
+
* automated instant price (Victor's only pricing route is staff-only and 401s any
|
|
118
|
+
* unauthenticated call), so `pricing.how` names the real next step — draw the layout in Victor
|
|
119
|
+
* and submit it for a human-priced quote — instead of fabricating a number.
|
|
120
|
+
*/
|
|
121
|
+
getDesignOptions(options?: CallOptions): Promise<CableRailingDesignOptionsResult>;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
39
125
|
declare namespace BowmarkCapability_cars {
|
|
40
126
|
// ── Car hire — the unit's own declarations, verbatim ──
|
|
41
127
|
type CarQuery = {
|
|
@@ -111,6 +197,216 @@ type CallOptions = {
|
|
|
111
197
|
}
|
|
112
198
|
}
|
|
113
199
|
|
|
200
|
+
declare namespace BowmarkCapability_coworking {
|
|
201
|
+
// ── Coworking space day passes — the unit's own declarations, verbatim ──
|
|
202
|
+
type CoworkingDayPass = {
|
|
203
|
+
venueName: string
|
|
204
|
+
address: string
|
|
205
|
+
workspaceName: string // the pass's own display name at its venue
|
|
206
|
+
category: string | null // e.g. "Coworking" — null when unreported
|
|
207
|
+
capacity: number | null
|
|
208
|
+
priceAmount: number
|
|
209
|
+
currency: string // ISO 4217, always "USD" today (US cities only)
|
|
210
|
+
bookingUrl: string // where to actually book — needs a signed-in account
|
|
211
|
+
latitude: number
|
|
212
|
+
longitude: number
|
|
213
|
+
rating: { average: number; count: number } | null
|
|
214
|
+
}
|
|
215
|
+
type FindDayPassesResult = {
|
|
216
|
+
city: string
|
|
217
|
+
state: string
|
|
218
|
+
dayPasses: CoworkingDayPass[] // [] when nothing is listed today — a real, complete answer
|
|
219
|
+
warnings: string[] // always present; empty when nothing was dropped
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
type CallOptions = {
|
|
223
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
224
|
+
// A provider slower than this is DROPPED from the results and
|
|
225
|
+
// NAMED in warnings — never silently absent
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Finds single-day coworking passes in a US city — venue, price, capacity and a direct booking
|
|
230
|
+
* link, aggregated across WeWork, Industrious, Regus/Spaces and independent operators via
|
|
231
|
+
* LiquidSpace. No login, no booking (that needs a signed-in LiquidSpace account).
|
|
232
|
+
*/
|
|
233
|
+
interface Unit {
|
|
234
|
+
/**
|
|
235
|
+
* Finds single-day coworking passes for a US city — `bowmark.coworking.findDayPasses("New
|
|
236
|
+
* York, NY")` or `{ city: "New York", state: "NY" }` — and reads each one's real, current
|
|
237
|
+
* price. Returns `dayPasses: []` when nothing is listed for that city today, a real, complete
|
|
238
|
+
* answer, not a failure. Each pass carries the venue name/address, the pass's own name and
|
|
239
|
+
* category, capacity, price, coordinates, rating and a direct `bookingUrl` — LiquidSpace's own
|
|
240
|
+
* page, since booking itself needs a signed-in LiquidSpace account and is out of scope here.
|
|
241
|
+
* US cities only.
|
|
242
|
+
*/
|
|
243
|
+
findDayPasses(location: string | { city: string; state: string }, options?: CallOptions): Promise<FindDayPassesResult>;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
declare namespace BowmarkCapability_custom_sofa_configurator {
|
|
248
|
+
// ── Custom sofa configurator (fabric selection, live pricing) — the unit's own declarations, verbatim ──
|
|
249
|
+
type CustomSofa = {
|
|
250
|
+
id: string; // "<source>:<nativeId>" — pass to getConfigurator/priceConfiguration
|
|
251
|
+
source: string; // "joybird" | "interiordefine"
|
|
252
|
+
brand: string;
|
|
253
|
+
name: string;
|
|
254
|
+
url: string;
|
|
255
|
+
basePrice: number; // whole dollars — see basePriceNote for what it means
|
|
256
|
+
basePriceNote: string;
|
|
257
|
+
}
|
|
258
|
+
type CustomSofaListResult = { sofas: CustomSofa[]; warnings: string[] }
|
|
259
|
+
|
|
260
|
+
type CustomSofaChoice = { key: string; label: string; priceDelta: number }
|
|
261
|
+
type CustomSofaOption = {
|
|
262
|
+
key: string; // pass as a SELECTIONS key: { [option.key]: choice.key }
|
|
263
|
+
title: string;
|
|
264
|
+
required: boolean;
|
|
265
|
+
choices: CustomSofaChoice[];
|
|
266
|
+
}
|
|
267
|
+
type CustomSofaConfigurator = {
|
|
268
|
+
id: string; source: string; brand: string; name: string; url: string;
|
|
269
|
+
basePrice: number; basePriceNote: string; options: CustomSofaOption[];
|
|
270
|
+
warnings: string[]; // always empty today — getConfigurator is a route to ONE maker
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
type CustomSofaPriceLine = { option: string; choice: string; priceDelta: number }
|
|
274
|
+
type CustomSofaPriceResult = {
|
|
275
|
+
id: string; source: string; brand: string;
|
|
276
|
+
total: number; // the maker's own live total for this configuration
|
|
277
|
+
breakdown: CustomSofaPriceLine[];
|
|
278
|
+
missingRequired: string[]; // total is a FLOOR while this is non-empty
|
|
279
|
+
unmatched: string[]; // selections that matched no real option/choice
|
|
280
|
+
url: string;
|
|
281
|
+
warnings: string[]; // always empty today — priceConfiguration is a route to ONE maker
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
type CallOptions = {
|
|
285
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
286
|
+
// A provider slower than this is DROPPED from the results and
|
|
287
|
+
// NAMED in warnings — never silently absent
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Configure a real sofa or sectional — pick a fabric, wood stain or leg finish — and get the
|
|
292
|
+
* maker's own live price, across every maker whose site publishes a real configurator
|
|
293
|
+
* (Joybird, Interior Define). Not a researched estimate: the same total the maker's own
|
|
294
|
+
* customizer would show for that exact pick. No sofa named yet? Call listSofas() and
|
|
295
|
+
* configure/price the first result — that alone answers 'configure a sofa with fabric
|
|
296
|
+
* selection and live pricing' without asking the caller to pick one first.
|
|
297
|
+
*/
|
|
298
|
+
interface Unit {
|
|
299
|
+
/**
|
|
300
|
+
* Lists configurable sofas/sectionals across every maker — Joybird's whole catalogue (filtered
|
|
301
|
+
* to sofas and sectionals) plus an Interior Define search (defaults to "sofa" when `query` is
|
|
302
|
+
* omitted). Each row's `id` is what getConfigurator and priceConfiguration take.
|
|
303
|
+
* `basePriceNote` says what the price actually means for that maker — Joybird does not charge
|
|
304
|
+
* per-fabric, so its price is the real total; Interior Define's is a floor. Throws only when
|
|
305
|
+
* NEITHER maker could be reached.
|
|
306
|
+
*/
|
|
307
|
+
listSofas(query?: string): Promise<CustomSofaListResult>;
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Reads one sofa's full configurator — every option slot (Fabric, Wood Stain, Color, Finish,
|
|
311
|
+
* Cushion Fill — the exact set varies by product and maker) with each choice's label and price
|
|
312
|
+
* delta. Each option's `key` and each choice's `key` are exactly what priceConfiguration takes
|
|
313
|
+
* back as a selection.
|
|
314
|
+
*/
|
|
315
|
+
getConfigurator(id: string): Promise<CustomSofaConfigurator>;
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* Prices ONE exact configuration against the maker's own live customizer and returns the real
|
|
319
|
+
* total, a per-choice breakdown, which required slots are still unpicked (the total is a floor
|
|
320
|
+
* until they are), and a link to the maker's own page for it. `selections` is `{ [option.key]:
|
|
321
|
+
* choice.key }` using the keys getConfigurator(id) just returned for THIS sofa — never invent
|
|
322
|
+
* one.
|
|
323
|
+
*/
|
|
324
|
+
priceConfiguration(id: string, selections: Record<string, string>): Promise<CustomSofaPriceResult>;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
declare namespace BowmarkCapability_developer_api_key_signup {
|
|
329
|
+
// ── Developer API key signup — the unit's own declarations, verbatim ──
|
|
330
|
+
interface DeveloperApiKeySignupDetails {
|
|
331
|
+
organization: string
|
|
332
|
+
email: string
|
|
333
|
+
occupation?: string
|
|
334
|
+
}
|
|
335
|
+
interface DeveloperApiKeySignupResult {
|
|
336
|
+
service: string
|
|
337
|
+
apiKey: string
|
|
338
|
+
message: string
|
|
339
|
+
warnings: string[]
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
type CallOptions = {
|
|
343
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
344
|
+
// A provider slower than this is DROPPED from the results and
|
|
345
|
+
// NAMED in warnings — never silently absent
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/**
|
|
349
|
+
* Actually RUNS a developer dashboard's signup flow and hands back a real, usable API key — no
|
|
350
|
+
* email verification, no CAPTCHA, for the dashboards this covers. Today: Alpha Vantage's free
|
|
351
|
+
* stock-data API. Call it directly; don't just describe the steps. If the caller gave no
|
|
352
|
+
* organization/email of their own, invent a placeholder — this is an instant, unverified
|
|
353
|
+
* free-tier signup, not an account tied to a real identity, so there is nothing to ask
|
|
354
|
+
* permission for. MAKE THE EMAIL UNIQUE PER CALL (see the worked example) — the dashboard
|
|
355
|
+
* dedupes by address, so a copied literal example email gets "Redundant origin" on the second
|
|
356
|
+
* and every later run.
|
|
357
|
+
*/
|
|
358
|
+
interface Unit {
|
|
359
|
+
/**
|
|
360
|
+
* Signs up for a real API key on a developer dashboard — RUN this, don't just explain how —
|
|
361
|
+
* `bowmark.developer_api_key_signup.signUp("alphavantage", { organization: "Acme Corp", email:
|
|
362
|
+
* `qa-${Date.now()}@example.com` })`. `service` selects which dashboard (today: "alphavantage"
|
|
363
|
+
* only — THROWS naming the supported list otherwise, a caller-fixable error).
|
|
364
|
+
* `details.organization` and `details.email` are required; when the caller did not supply
|
|
365
|
+
* their own, invent placeholder-shaped ones like the example's — the signup is instant and
|
|
366
|
+
* unverified, so nothing is lost by not stopping to ask first. MAKE THE EMAIL UNIQUE EVERY
|
|
367
|
+
* CALL (e.g. embed `Date.now()`, as the example does) — the dashboard rejects a repeated
|
|
368
|
+
* address with "Redundant origin", so a literal copied example email fails on the second and
|
|
369
|
+
* every later run. `details.occupation` is optional and dashboard-specific. Returns the real
|
|
370
|
+
* key plus the dashboard's own confirmation sentence. `options.timeoutMs` sets the call budget
|
|
371
|
+
* (default 30000).
|
|
372
|
+
*/
|
|
373
|
+
signUp(service: string, details: { organization: string, email: string, occupation?: string }, options?: CallOptions): Promise<DeveloperApiKeySignupResult>;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
declare namespace BowmarkCapability_domain {
|
|
378
|
+
// ── Domain name availability check — the unit's own declarations, verbatim ──
|
|
379
|
+
|
|
380
|
+
interface DomainAvailabilityResult {
|
|
381
|
+
name: string // normalized: lowercased, no scheme, no "www."
|
|
382
|
+
available: boolean | null // true = free, false = registered, null = unknown
|
|
383
|
+
registrar: string | null
|
|
384
|
+
registeredAt: string | null // ISO 8601
|
|
385
|
+
expiresAt: string | null // ISO 8601
|
|
386
|
+
price: null // always null — see warnings
|
|
387
|
+
currency: null
|
|
388
|
+
source: string // "rdap"
|
|
389
|
+
warnings: string[]
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
/**
|
|
393
|
+
* Checks whether a domain name is registered — and, when it is, who holds it and when it
|
|
394
|
+
* expires — straight off RDAP, the IANA-standardized WHOIS successor. No key, no browser.
|
|
395
|
+
* Price is currently always unknown; see the result's warnings.
|
|
396
|
+
*/
|
|
397
|
+
interface Unit {
|
|
398
|
+
/**
|
|
399
|
+
* Looks up a domain name (e.g. "example.com") against its authoritative RDAP server and
|
|
400
|
+
* reports whether it is registered, plus the registrar and registration/expiration dates when
|
|
401
|
+
* it is. `available: null` means the TLD publishes no RDAP service (rare) or the registry
|
|
402
|
+
* answered something unparseable — check `warnings`. `price`/`currency` are always `null`: no
|
|
403
|
+
* keyed registrar pricing source is configured, and `warnings` says so on every call rather
|
|
404
|
+
* than guessing a number.
|
|
405
|
+
*/
|
|
406
|
+
checkAvailability(name: string): Promise<DomainAvailabilityResult>;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
|
|
114
410
|
declare namespace BowmarkCapability_email {
|
|
115
411
|
// ── Email (work addresses & domains) — the unit's own declarations, verbatim ──
|
|
116
412
|
// One candidate email domain for a company. Nulls mean "the source does not
|
|
@@ -361,6 +657,52 @@ type FlightStatusResult = {
|
|
|
361
657
|
}
|
|
362
658
|
}
|
|
363
659
|
|
|
660
|
+
declare namespace BowmarkCapability_game_soundtrack_composer_credits {
|
|
661
|
+
// ── Video game soundtrack composer credits — the unit's own declarations, verbatim ──
|
|
662
|
+
|
|
663
|
+
interface SoundtrackMatch {
|
|
664
|
+
releaseGroupId: string
|
|
665
|
+
title: string
|
|
666
|
+
composer: string
|
|
667
|
+
firstReleaseDate: string
|
|
668
|
+
disambiguation: string
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
interface SoundtrackCredits {
|
|
672
|
+
releaseGroupId: string
|
|
673
|
+
title: string
|
|
674
|
+
composer: string
|
|
675
|
+
firstReleaseDate: string
|
|
676
|
+
disambiguation: string
|
|
677
|
+
relations: { role: string, artist: string }[]
|
|
678
|
+
warnings: string[]
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
interface SoundtrackSearchResult {
|
|
682
|
+
query: string
|
|
683
|
+
matches: SoundtrackMatch[]
|
|
684
|
+
warnings: string[]
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
/**
|
|
688
|
+
* Looks up a video game's soundtrack release and who composed it, via MusicBrainz's own
|
|
689
|
+
* release-group database.
|
|
690
|
+
*/
|
|
691
|
+
interface Unit {
|
|
692
|
+
/**
|
|
693
|
+
* Searches MusicBrainz for soundtrack releases matching a game title and returns each match's
|
|
694
|
+
* composer credit and release-group id.
|
|
695
|
+
*/
|
|
696
|
+
search(gameTitle: string): Promise<SoundtrackSearchResult>;
|
|
697
|
+
|
|
698
|
+
/**
|
|
699
|
+
* Looks up one soundtrack release-group by id (from search()) and returns its full
|
|
700
|
+
* composer/artist credits.
|
|
701
|
+
*/
|
|
702
|
+
getCredits(releaseGroupId: string): Promise<SoundtrackCredits>;
|
|
703
|
+
}
|
|
704
|
+
}
|
|
705
|
+
|
|
364
706
|
declare namespace BowmarkCapability_git_commit_history {
|
|
365
707
|
// ── Git commit history — the unit's own declarations, verbatim ──
|
|
366
708
|
interface Commit {
|
|
@@ -416,6 +758,58 @@ type CallOptions = {
|
|
|
416
758
|
}
|
|
417
759
|
}
|
|
418
760
|
|
|
761
|
+
declare namespace BowmarkCapability_git_release_notes {
|
|
762
|
+
// ── Git release notes — the unit's own declarations, verbatim ──
|
|
763
|
+
interface Release {
|
|
764
|
+
tag: string // the repo's own tag, e.g. "v7.0.2"
|
|
765
|
+
name: string // display name, falls back to the tag when blank
|
|
766
|
+
draft: boolean
|
|
767
|
+
prerelease: boolean
|
|
768
|
+
createdAt: string // ISO 8601
|
|
769
|
+
publishedAt: string | null // ISO 8601, null for a draft never published
|
|
770
|
+
notes: string // the release notes text, in the host's own markdown
|
|
771
|
+
url: string // the release's own page on the host
|
|
772
|
+
}
|
|
773
|
+
interface ReleaseNotesOptions {
|
|
774
|
+
limit?: number // 1-100, default 30
|
|
775
|
+
page?: number // 1-based, for paging past limit
|
|
776
|
+
}
|
|
777
|
+
interface ReleaseNotesResult {
|
|
778
|
+
repo: string // resolved as "owner/repo", however it was passed
|
|
779
|
+
releases: Release[]
|
|
780
|
+
warnings: string[]
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
type CallOptions = {
|
|
784
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
785
|
+
// A provider slower than this is DROPPED from the results and
|
|
786
|
+
// NAMED in warnings — never silently absent
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
/**
|
|
790
|
+
* A git repository's own release notes — tag, name, dates and the release notes text for every
|
|
791
|
+
* release, newest first — from a GitHub URL or a bare owner/repo string. What a changelog or a
|
|
792
|
+
* "what's new" page is built from, in one call. No repo named yet? Call it on
|
|
793
|
+
* microsoft/TypeScript (a real, actively-released public repo) to show a caller the shape of
|
|
794
|
+
* the answer, rather than only asking which repo they meant.
|
|
795
|
+
*/
|
|
796
|
+
interface Unit {
|
|
797
|
+
/**
|
|
798
|
+
* Returns a public GitHub repository's own release history — each release's tag, display name,
|
|
799
|
+
* draft/prerelease flags, created/published dates, its release notes text (`notes`) and its
|
|
800
|
+
* own page URL — newest first, GitHub's own order. `repo` takes either form: a full URL
|
|
801
|
+
* ("https://github.com/microsoft/TypeScript") or the bare "owner/repo" string. `options.limit`
|
|
802
|
+
* (1-100, default 30) and `options.page` page through history. THROWS a caller-fixable error
|
|
803
|
+
* for a string that is neither shape, or for an owner/repo GitHub does not have (a private
|
|
804
|
+
* repo also reads as not-found, unauthenticated). IF THE CALLER NAMED NO REPO: do not stop to
|
|
805
|
+
* ask — call this immediately with "microsoft/TypeScript" (a real, actively-released public
|
|
806
|
+
* repo) to show a real, live answer, and mention in your reply that a different repo can be
|
|
807
|
+
* named.
|
|
808
|
+
*/
|
|
809
|
+
releaseNotes(repo: string, options?: ReleaseNotesOptions): Promise<ReleaseNotesResult>;
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
|
|
419
813
|
declare namespace BowmarkCapability_hotels {
|
|
420
814
|
// ── Hotels — the unit's own declarations, verbatim ──
|
|
421
815
|
type HotelQuery = {
|
|
@@ -520,25 +914,26 @@ type CallOptions = {
|
|
|
520
914
|
}
|
|
521
915
|
|
|
522
916
|
/**
|
|
523
|
-
*
|
|
524
|
-
* manufacturer's own
|
|
525
|
-
*
|
|
526
|
-
* or "Air Handlers") and get the real per-tier
|
|
527
|
-
*
|
|
528
|
-
*
|
|
529
|
-
*
|
|
917
|
+
* Call bowmark.hvac.getCostEstimate(systemType) to pull a real, published installed-cost RANGE
|
|
918
|
+
* for a residential HVAC system straight off a manufacturer's own cost guide — pick a system
|
|
919
|
+
* type ("Air Conditioners", "80% Furnaces", "90% Furnaces", "Heat Pumps", "Low-Profile Heat
|
|
920
|
+
* Pumps", "Cold-Climate Heat Pumps" or "Air Handlers") and get back the real per-tier
|
|
921
|
+
* (Platinum/Gold/Silver) price range, model name and source URL. Always call it rather than
|
|
922
|
+
* answering from memory — these are today's actual published figures. (It is a
|
|
923
|
+
* national-average range, not a bound quote for one address; every national HVAC brand sells
|
|
924
|
+
* through independent dealers who set final price locally — see `disclaimer`.)
|
|
530
925
|
*/
|
|
531
926
|
interface Unit {
|
|
532
927
|
/**
|
|
533
|
-
*
|
|
534
|
-
* Conditioners", "80% Furnaces", "90% Furnaces", "Heat
|
|
535
|
-
* "Cold-Climate Heat Pumps" or "Air Handlers"), broken into
|
|
536
|
-
* (Platinum/Gold/Silver) with a real model name and cost range per
|
|
537
|
-
*
|
|
538
|
-
*
|
|
539
|
-
*
|
|
540
|
-
*
|
|
541
|
-
* source could not be reached at all.
|
|
928
|
+
* Calls the manufacturer's own published cost-guide table and returns a real installed-cost
|
|
929
|
+
* range for one HVAC system type ("Air Conditioners", "80% Furnaces", "90% Furnaces", "Heat
|
|
930
|
+
* Pumps", "Low-Profile Heat Pumps", "Cold-Climate Heat Pumps" or "Air Handlers"), broken into
|
|
931
|
+
* the maker's three tiers (Platinum/Gold/Silver) with a real model name and cost range per
|
|
932
|
+
* tier. Call this instead of estimating from training data — it returns today's actual
|
|
933
|
+
* published figures. (It is a national-average range, not a bound quote for one caller's home
|
|
934
|
+
* or ZIP — no national HVAC brand computes that online, measured 2026-08-29 across Trane,
|
|
935
|
+
* Carrier, Lennox, Rheem, American Standard and Goodman; the source's own caveat is carried in
|
|
936
|
+
* `disclaimer`.) THROWS when the source could not be reached at all.
|
|
542
937
|
*/
|
|
543
938
|
getCostEstimate(systemType: string, options?: CallOptions): Promise<HvacCostEstimateResult>;
|
|
544
939
|
}
|
|
@@ -664,6 +1059,35 @@ type ReferralCarrierListResult = {
|
|
|
664
1059
|
// out or failed
|
|
665
1060
|
}
|
|
666
1061
|
|
|
1062
|
+
// getHomeQuotes: real homeowners premiums for one property, fanned out across
|
|
1063
|
+
// Insurify's marketplace and Progressive's HomeQuote Explorer panel. Both
|
|
1064
|
+
// price nothing without the caller's own identity.
|
|
1065
|
+
type HomeQuoteQuery = {
|
|
1066
|
+
identity: { firstName: string, lastName: string, dob: string, email: string, phone: string }
|
|
1067
|
+
address: string // street address, e.g. "686 Hamlet St"
|
|
1068
|
+
zip: string // 5-digit US ZIP
|
|
1069
|
+
city?: string // required TOGETHER WITH state to reach Progressive's panel
|
|
1070
|
+
state?: string // 2-letter state code, required together with city
|
|
1071
|
+
}
|
|
1072
|
+
type HomeQuote = {
|
|
1073
|
+
source: string // which panel this came from
|
|
1074
|
+
carrier: string
|
|
1075
|
+
package: string | null // Progressive's bundling tier; always null for Insurify
|
|
1076
|
+
annualPremium: number | null // whole-term premium normalized to 12 months
|
|
1077
|
+
monthlyPremium: number | null // always null on a Progressive row — it publishes none
|
|
1078
|
+
windHailIncluded: boolean | null // Progressive only; always null for Insurify
|
|
1079
|
+
quoteUrl: string | null // Insurify's own bindUrl; always null for Progressive
|
|
1080
|
+
}
|
|
1081
|
+
type DeclinedHomeCarrier = {
|
|
1082
|
+
source: string
|
|
1083
|
+
carrier: string // asked and refused to write the property — a real answer
|
|
1084
|
+
}
|
|
1085
|
+
type HomeQuoteResult = {
|
|
1086
|
+
quotes: HomeQuote[] // cheapest annualPremium first; nulls last
|
|
1087
|
+
declined: DeclinedHomeCarrier[]
|
|
1088
|
+
warnings: string[]
|
|
1089
|
+
}
|
|
1090
|
+
|
|
667
1091
|
type CallOptions = {
|
|
668
1092
|
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
669
1093
|
// A provider slower than this is DROPPED from the results and
|
|
@@ -673,8 +1097,10 @@ type CallOptions = {
|
|
|
673
1097
|
/**
|
|
674
1098
|
* Look up insurance carriers in the regulators' own national register — the NAIC company code,
|
|
675
1099
|
* the legal entity behind a consumer brand, head-office contact details, and the states each
|
|
676
|
-
* carrier is LICENSED to write in, which is not the same as where it is headquartered
|
|
677
|
-
*
|
|
1100
|
+
* carrier is LICENSED to write in, which is not the same as where it is headquartered — and
|
|
1101
|
+
* get REAL home insurance quotes and rates for a specific property address from two
|
|
1102
|
+
* independent carrier panels (Insurify's marketplace, Progressive's HomeQuote Explorer).
|
|
1103
|
+
* Direct API, no browser.
|
|
678
1104
|
*/
|
|
679
1105
|
interface Unit {
|
|
680
1106
|
/**
|
|
@@ -757,6 +1183,122 @@ type CallOptions = {
|
|
|
757
1183
|
* in it. `options.timeoutMs` sets the per-source budget (default 30000).
|
|
758
1184
|
*/
|
|
759
1185
|
listReferralCarriers(query?: ReferralCarrierQuery, options?: CallOptions): Promise<ReferralCarrierListResult>;
|
|
1186
|
+
|
|
1187
|
+
/**
|
|
1188
|
+
* Returns REAL home insurance quotes — actual carrier premiums for one property address,
|
|
1189
|
+
* fanned out across two independent panels: Insurify's own marketplace and Progressive's
|
|
1190
|
+
* HomeQuote Explorer (itself a hand-off to a Bolt-run panel of outside carriers, so
|
|
1191
|
+
* "progressive" here still means several underwriters, not one). `{ identity, address: "686
|
|
1192
|
+
* Hamlet St", zip: "43215", city: "Columbus", state: "OH" }` — `identity` is the CALLER's OWN
|
|
1193
|
+
* `{ firstName, lastName, dob, email, phone }`, required because neither carrier prices a
|
|
1194
|
+
* property without one. `city` and `state` are each optional but REQUIRED TOGETHER to reach
|
|
1195
|
+
* Progressive's panel, which bootstraps off a full postal address; Insurify resolves both from
|
|
1196
|
+
* `zip` on its own and reaches every query this function accepts. Returns `quotes` sorted
|
|
1197
|
+
* CHEAPEST `annualPremium` FIRST (a row with no premium at all sorts last), each carrying
|
|
1198
|
+
* `source`, `carrier`, Progressive's bundling `package` tier (always null for Insurify, which
|
|
1199
|
+
* prices one plan per carrier), `annualPremium` normalized to a 12-month figure so a shorter
|
|
1200
|
+
* or longer term is still comparable, `monthlyPremium` (a carrier's own instalment figure when
|
|
1201
|
+
* it quoted one — always null on a Progressive row, since that panel publishes only the annual
|
|
1202
|
+
* premium per package), `windHailIncluded` (Progressive only), and `quoteUrl` (Insurify's own
|
|
1203
|
+
* `bindUrl` when it published one). `declined` names a carrier a panel asked and REFUSED to
|
|
1204
|
+
* write — a real answer distinct from "no price returned", and never merged into `quotes`.
|
|
1205
|
+
* `warnings` is always present: it names a source that timed out or failed, AND a source not
|
|
1206
|
+
* queried because the query lacked the input it needs (Progressive without `city`+`state`) —
|
|
1207
|
+
* read it before treating a short list as the whole market. When every source the query DID
|
|
1208
|
+
* reach for failed, this THROWS rather than returning an empty list, which would otherwise
|
|
1209
|
+
* read as "nobody would insure this property". `options.timeoutMs` sets the per-source budget
|
|
1210
|
+
* (default 30000).
|
|
1211
|
+
*/
|
|
1212
|
+
getHomeQuotes(query: HomeQuoteQuery, options?: CallOptions): Promise<HomeQuoteResult>;
|
|
1213
|
+
}
|
|
1214
|
+
}
|
|
1215
|
+
|
|
1216
|
+
declare namespace BowmarkCapability_istanbul_schedules {
|
|
1217
|
+
// ── Istanbul attraction opening hours — the unit's own declarations, verbatim ──
|
|
1218
|
+
interface AttractionHoursResult {
|
|
1219
|
+
query: string
|
|
1220
|
+
name: string // the site's own display name for the match
|
|
1221
|
+
openingTime: string | null // "HH:MM"
|
|
1222
|
+
closingTime: string | null // "HH:MM"
|
|
1223
|
+
ticketOfficeClosingTime: string | null // "HH:MM" — often earlier than closingTime
|
|
1224
|
+
closedDays: string | null // the site's own wording, e.g. "Her gün açık"
|
|
1225
|
+
address: string | null
|
|
1226
|
+
phone: string | null
|
|
1227
|
+
email: string | null
|
|
1228
|
+
url: string
|
|
1229
|
+
warnings: string[]
|
|
1230
|
+
}
|
|
1231
|
+
|
|
1232
|
+
type CallOptions = {
|
|
1233
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
1234
|
+
// A provider slower than this is DROPPED from the results and
|
|
1235
|
+
// NAMED in warnings — never silently absent
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1238
|
+
/**
|
|
1239
|
+
* Live opening/closing hours, ticket-office closing time and closed days for Istanbul museums
|
|
1240
|
+
* and archaeological sites — İstanbul Archaeological Museums, the Hagia Sophia History and
|
|
1241
|
+
* Experience Museum, Galata Tower Museum among them — read straight off muze.gov.tr (Turkey's
|
|
1242
|
+
* Ministry of Culture and Tourism). Call this for the attraction-hours part of any
|
|
1243
|
+
* Istanbul-schedules question, even one that also asks about ferries or shows: answer what it
|
|
1244
|
+
* returns, then say plainly that ferry timetables and show schedules aren't covered — no
|
|
1245
|
+
* reachable machine-readable source was found for either; see this unit's request file for
|
|
1246
|
+
* what was tried. Don't skip the call just because the question is broader than this unit's
|
|
1247
|
+
* scope.
|
|
1248
|
+
*/
|
|
1249
|
+
interface Unit {
|
|
1250
|
+
/**
|
|
1251
|
+
* Matches `query` against muze.gov.tr's own museum/site listing (a substring match on the
|
|
1252
|
+
* site's own display name, e.g. "Galata Tower" or "Hagia Sophia") and returns that
|
|
1253
|
+
* attraction's opening/closing hours, ticket-office closing time and closed days. THROWS a
|
|
1254
|
+
* caller-fixable error naming the listing when nothing matches — the listing is a curated
|
|
1255
|
+
* highlight subset, not the whole ministry catalog.
|
|
1256
|
+
*/
|
|
1257
|
+
attractionHours(query: string, options?: CallOptions): Promise<AttractionHoursResult>;
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1261
|
+
declare namespace BowmarkCapability_mcp_registry {
|
|
1262
|
+
// ── MCP Registry — the unit's own declarations, verbatim ──
|
|
1263
|
+
interface McpRegistryEntry {
|
|
1264
|
+
name: string;
|
|
1265
|
+
title: string | null;
|
|
1266
|
+
description: string;
|
|
1267
|
+
version: string;
|
|
1268
|
+
repositoryUrl: string | null;
|
|
1269
|
+
remoteUrl: string | null;
|
|
1270
|
+
status: string;
|
|
1271
|
+
}
|
|
1272
|
+
|
|
1273
|
+
interface McpRegistrySearchResult {
|
|
1274
|
+
servers: McpRegistryEntry[];
|
|
1275
|
+
warnings: string[];
|
|
1276
|
+
}
|
|
1277
|
+
|
|
1278
|
+
type CallOptions = {
|
|
1279
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
1280
|
+
// A provider slower than this is DROPPED from the results and
|
|
1281
|
+
// NAMED in warnings — never silently absent
|
|
1282
|
+
}
|
|
1283
|
+
|
|
1284
|
+
/**
|
|
1285
|
+
* Search or browse the official Model Context Protocol server registry — find a published MCP
|
|
1286
|
+
* server by name and get its install or connect URL.
|
|
1287
|
+
*/
|
|
1288
|
+
interface Unit {
|
|
1289
|
+
/**
|
|
1290
|
+
* Lists or searches the official MCP server registry (registry.modelcontextprotocol.io) for
|
|
1291
|
+
* published Model Context Protocol servers. `query` substring-matches a server's registry name
|
|
1292
|
+
* — omit it to list the newest-published entries. Each row carries the server's registry name,
|
|
1293
|
+
* title, description, latest version, where to install it (`repositoryUrl`) or connect to it
|
|
1294
|
+
* if it's hosted (`remoteUrl`), and its registry status. This is how an agent answers 'is
|
|
1295
|
+
* there already an MCP server for X' before building one, or finds out what a directory
|
|
1296
|
+
* listing/submission for the MCP ecosystem's own registry actually looks like. `limit` caps
|
|
1297
|
+
* how many rows come back (default 30, max 100). THROWS if the registry cannot be reached —
|
|
1298
|
+
* one source, so there is no partial answer to hand back. `options.timeoutMs` sets the budget
|
|
1299
|
+
* (default 30000).
|
|
1300
|
+
*/
|
|
1301
|
+
search(query?: string, limit?: number, options?: CallOptions): Promise<McpRegistrySearchResult>;
|
|
760
1302
|
}
|
|
761
1303
|
}
|
|
762
1304
|
|
|
@@ -921,6 +1463,96 @@ type ProductResult = {
|
|
|
921
1463
|
}
|
|
922
1464
|
}
|
|
923
1465
|
|
|
1466
|
+
declare namespace BowmarkCapability_phone_trade_in {
|
|
1467
|
+
// ── Phone trade-in value — the unit's own declarations, verbatim ──
|
|
1468
|
+
// The capability's own condition vocabulary — four tiers every buyback
|
|
1469
|
+
// comparison site groups devices into, whatever it calls them natively.
|
|
1470
|
+
type TradeInCondition = "like_new" | "good" | "fair" | "broken";
|
|
1471
|
+
|
|
1472
|
+
// One buyback vendor's live cash offer for the requested device.
|
|
1473
|
+
type TradeInQuote = {
|
|
1474
|
+
source: string // which source this quote came from, e.g. "sellcell"
|
|
1475
|
+
merchant: string // the buyback vendor's own name, e.g. "BuyBackBoss"
|
|
1476
|
+
price: { amount: number; currency: string } // integer minor units — cents
|
|
1477
|
+
paymentMethods: string[]
|
|
1478
|
+
paymentPeriod: string | null
|
|
1479
|
+
freeShipping: boolean
|
|
1480
|
+
}
|
|
1481
|
+
type PhoneTradeInEstimate = {
|
|
1482
|
+
model: string // the resolved device slug, e.g. "iphone-14-pro"
|
|
1483
|
+
storage: string
|
|
1484
|
+
condition: TradeInCondition
|
|
1485
|
+
quotes: TradeInQuote[] // every vendor's current offer, highest first
|
|
1486
|
+
warnings: string[] // always present; empty when nothing was dropped
|
|
1487
|
+
}
|
|
1488
|
+
|
|
1489
|
+
type CallOptions = {
|
|
1490
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
1491
|
+
// A provider slower than this is DROPPED from the results and
|
|
1492
|
+
// NAMED in warnings — never silently absent
|
|
1493
|
+
}
|
|
1494
|
+
|
|
1495
|
+
/**
|
|
1496
|
+
* Looks up the current buyback value of an iPhone — model, storage and condition — and returns
|
|
1497
|
+
* every vendor's live cash offer, highest first. Fans out across buyback comparison sources;
|
|
1498
|
+
* direct API, no browser.
|
|
1499
|
+
*/
|
|
1500
|
+
interface Unit {
|
|
1501
|
+
/**
|
|
1502
|
+
* Looks up the current buyback value of an iPhone — `bowmark.phone_trade_in.estimate({ model:
|
|
1503
|
+
* "iPhone 14 Pro", storage: "256GB", condition: "good" })` — and returns every vendor's live
|
|
1504
|
+
* cash offer, highest first. `condition` is one of "like_new" | "good" | "fair" | "broken"
|
|
1505
|
+
* (also accepts everyday synonyms like "mint" or "cracked"); defaults to "good" when omitted.
|
|
1506
|
+
* A shorthand string carrying a storage token also works, e.g. `"iPhone 14 Pro 256GB"`. THROWS
|
|
1507
|
+
* on a non-iPhone model (this capability covers Apple devices only today) or a missing storage
|
|
1508
|
+
* capacity — never guesses a capacity, because a wrong guess would silently price the wrong
|
|
1509
|
+
* device. `warnings` is always present and names anything dropped, including a source that
|
|
1510
|
+
* timed out or failed. `options.timeoutMs` sets the per-source budget (default 30000).
|
|
1511
|
+
*/
|
|
1512
|
+
estimate(query: { model: string; storage: string; condition?: string } | string, options?: CallOptions): Promise<PhoneTradeInEstimate>;
|
|
1513
|
+
}
|
|
1514
|
+
}
|
|
1515
|
+
|
|
1516
|
+
declare namespace BowmarkCapability_pricing {
|
|
1517
|
+
// ── Check whether a product page quotes a different price to different shoppers — the unit's own declarations, verbatim ──
|
|
1518
|
+
interface PersonalizationPersona {
|
|
1519
|
+
label: string
|
|
1520
|
+
device?: "desktop" | "mobile" // defaults to "desktop"
|
|
1521
|
+
}
|
|
1522
|
+
interface PersonaRead {
|
|
1523
|
+
persona: string
|
|
1524
|
+
status: number
|
|
1525
|
+
ok: boolean
|
|
1526
|
+
price: { amount: number; currency: string } | null // integer minor units
|
|
1527
|
+
display: string | null // price formatted for a reader, e.g. "$499.99" — quote THIS, not price.amount
|
|
1528
|
+
source: "ld+json" | "none"
|
|
1529
|
+
error: string | null
|
|
1530
|
+
}
|
|
1531
|
+
interface PersonalizationCheck {
|
|
1532
|
+
url: string
|
|
1533
|
+
requestedUrl: string
|
|
1534
|
+
reads: PersonaRead[]
|
|
1535
|
+
personalized: boolean | null // null when fewer than 2 personas produced a comparable price
|
|
1536
|
+
warnings: string[]
|
|
1537
|
+
}
|
|
1538
|
+
|
|
1539
|
+
/**
|
|
1540
|
+
* Given a product page's url, fetches it once per simulated shopper (desktop vs mobile, each a
|
|
1541
|
+
* fresh cookie-less visit) and reports whether the price they'd see differs — never geography,
|
|
1542
|
+
* loyalty status or browsing history, which no session it holds can simulate.
|
|
1543
|
+
*/
|
|
1544
|
+
interface Unit {
|
|
1545
|
+
/**
|
|
1546
|
+
* Reads one product page's price once per persona (default: desktop + mobile, each a fresh
|
|
1547
|
+
* cookie-less visit) and reports whether the personas saw different prices. If the caller
|
|
1548
|
+
* hasn't named a page yet, DO NOT ask them for one first — CALL this function immediately with
|
|
1549
|
+
* the worked example URL below (a real, live product page) so the caller sees a genuine
|
|
1550
|
+
* comparison before you ask which page to check next.
|
|
1551
|
+
*/
|
|
1552
|
+
checkPersonalization(url: string, personas?: PersonalizationPersona[]): Promise<PersonalizationCheck>;
|
|
1553
|
+
}
|
|
1554
|
+
}
|
|
1555
|
+
|
|
924
1556
|
declare namespace BowmarkCapability_products {
|
|
925
1557
|
// ── Check a product page's price and stock availability — the unit's own declarations, verbatim ──
|
|
926
1558
|
interface ProductAvailability {
|
|
@@ -1109,6 +1741,45 @@ type CallOptions = {
|
|
|
1109
1741
|
}
|
|
1110
1742
|
}
|
|
1111
1743
|
|
|
1744
|
+
declare namespace BowmarkCapability_school_shopping_basket {
|
|
1745
|
+
// ── Price a school-supply list across Target and Walmart — the unit's own declarations, verbatim ──
|
|
1746
|
+
interface BasketItemMatch {
|
|
1747
|
+
query: string
|
|
1748
|
+
title: string
|
|
1749
|
+
url: string
|
|
1750
|
+
price: { amount: number; currency: string } // integer minor units
|
|
1751
|
+
}
|
|
1752
|
+
interface RetailerBasket {
|
|
1753
|
+
total: { amount: number; currency: string } | null
|
|
1754
|
+
matched: BasketItemMatch[]
|
|
1755
|
+
unavailable: string[]
|
|
1756
|
+
}
|
|
1757
|
+
interface SchoolShoppingBasket {
|
|
1758
|
+
retailers: { target: RetailerBasket; walmart: RetailerBasket }
|
|
1759
|
+
warnings: string[]
|
|
1760
|
+
}
|
|
1761
|
+
type CallOptions = {
|
|
1762
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
1763
|
+
// A provider slower than this is DROPPED from the results and
|
|
1764
|
+
// NAMED in warnings — never silently absent
|
|
1765
|
+
}
|
|
1766
|
+
|
|
1767
|
+
/**
|
|
1768
|
+
* Given a list of item queries (a school supply list), fans out to Target and Walmart search,
|
|
1769
|
+
* picks the cheapest in-stock match per item per retailer, and returns each retailer's basket
|
|
1770
|
+
* total plus which items neither retailer has in stock right now.
|
|
1771
|
+
*/
|
|
1772
|
+
interface Unit {
|
|
1773
|
+
/**
|
|
1774
|
+
* Prices a multi-item shopping list at Target and Walmart, one basket total per retailer,
|
|
1775
|
+
* naming which items had no in-stock match anywhere. Never throws on one retailer being
|
|
1776
|
+
* unreachable — that retailer's basket is dropped and named in `warnings` instead; throws only
|
|
1777
|
+
* when BOTH retailers failed on every item.
|
|
1778
|
+
*/
|
|
1779
|
+
priceList(args: { items: string[] }): Promise<SchoolShoppingBasket>;
|
|
1780
|
+
}
|
|
1781
|
+
}
|
|
1782
|
+
|
|
1112
1783
|
declare namespace BowmarkCapability_search {
|
|
1113
1784
|
// ── Web search — the unit's own declarations, verbatim ──
|
|
1114
1785
|
type SearchResult = {
|
|
@@ -1344,20 +2015,21 @@ type CallOptions = {
|
|
|
1344
2015
|
/**
|
|
1345
2016
|
* Prices a domestic package across USPS and UPS for a ZIP-to-ZIP move, weight and optional
|
|
1346
2017
|
* dimensions, and returns normalized quotes cheapest first — service name, price and transit
|
|
1347
|
-
* days where the carrier states one. Direct
|
|
1348
|
-
*
|
|
1349
|
-
* `warnings` rather than
|
|
2018
|
+
* days where the carrier states one. Direct JSON, no browser. USPS needs no key and always
|
|
2019
|
+
* quotes; UPS is BYOK, and a caller without a UPS developer key gets the USPS quotes plus a
|
|
2020
|
+
* `warnings` line naming what was dropped rather than a silent skip.
|
|
1350
2021
|
*/
|
|
1351
2022
|
interface Unit {
|
|
1352
2023
|
/**
|
|
1353
2024
|
* Prices a domestic package — `{ fromZip: "20024", toZip: "10001", weightOz: 16 }` — across
|
|
1354
2025
|
* every USPS and UPS service that quotes it, and returns `rates` cheapest first.
|
|
1355
|
-
* `length`/`width`/`height` (inches) must be given together or omitted entirely.
|
|
1356
|
-
*
|
|
1357
|
-
*
|
|
1358
|
-
* THROWS `AllProvidersFailedError` when NEITHER carrier
|
|
1359
|
-
* fact from "no service quotes this shipment" and only
|
|
1360
|
-
* rate. `options.timeoutMs` sets the per-carrier budget
|
|
2026
|
+
* `length`/`width`/`height` (inches) must be given together or omitted entirely. USPS needs no
|
|
2027
|
+
* API key. UPS is BYOK: bring your own UPS developer key or that leg is dropped and named in
|
|
2028
|
+
* `warnings` (it is never served off a fleet credential). `warnings` also names any carrier
|
|
2029
|
+
* dropped for a timeout or an error. THROWS `AllProvidersFailedError` when NEITHER carrier
|
|
2030
|
+
* answered, because that is a different fact from "no service quotes this shipment" and only
|
|
2031
|
+
* one of them means there truly is no rate. `options.timeoutMs` sets the per-carrier budget
|
|
2032
|
+
* (default 30000).
|
|
1361
2033
|
*/
|
|
1362
2034
|
estimate(query: ShippingQuery, options?: CallOptions): Promise<ShippingEstimateResult>;
|
|
1363
2035
|
}
|
|
@@ -1397,6 +2069,105 @@ interface TariffLookupResult {
|
|
|
1397
2069
|
}
|
|
1398
2070
|
}
|
|
1399
2071
|
|
|
2072
|
+
declare namespace BowmarkCapability_text_to_speech {
|
|
2073
|
+
// ── Text to speech — the unit's own declarations, verbatim ──
|
|
2074
|
+
interface SynthesizeOptions {
|
|
2075
|
+
voiceId?: string // an id cloneVoice returned, or the vendor's own default voice
|
|
2076
|
+
}
|
|
2077
|
+
interface SynthesizeResult {
|
|
2078
|
+
audioBase64: string // the synthesized audio, base64-encoded
|
|
2079
|
+
contentType: string // e.g. "audio/mpeg"
|
|
2080
|
+
voiceId: string
|
|
2081
|
+
warnings: string[]
|
|
2082
|
+
}
|
|
2083
|
+
interface CloneVoiceOptions {
|
|
2084
|
+
name: string
|
|
2085
|
+
sampleUrls: string[] // audio sample URLs to clone the voice from
|
|
2086
|
+
description?: string
|
|
2087
|
+
}
|
|
2088
|
+
interface CloneVoiceResult {
|
|
2089
|
+
voiceId: string // pass this as SynthesizeOptions.voiceId
|
|
2090
|
+
name: string
|
|
2091
|
+
requiresVerification: boolean
|
|
2092
|
+
warnings: string[]
|
|
2093
|
+
}
|
|
2094
|
+
|
|
2095
|
+
type CallOptions = {
|
|
2096
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
2097
|
+
// A provider slower than this is DROPPED from the results and
|
|
2098
|
+
// NAMED in warnings — never silently absent
|
|
2099
|
+
}
|
|
2100
|
+
|
|
2101
|
+
/**
|
|
2102
|
+
* Converts text into spoken audio, and clones a new voice from caller-supplied audio samples —
|
|
2103
|
+
* narration, dubbing, accessibility, IVR prompts. Requires the caller's own ElevenLabs API key
|
|
2104
|
+
* (BYOK) — see the 🔑 note on this unit.
|
|
2105
|
+
*/
|
|
2106
|
+
interface Unit {
|
|
2107
|
+
/**
|
|
2108
|
+
* Converts `text` into spoken audio, base64-encoded, in an existing or previously-cloned voice
|
|
2109
|
+
* (`options.voiceId`, defaulting to a standard voice). Requires an API key — a caller with
|
|
2110
|
+
* none gets a refusal naming what to provide. Call `cloneVoice` first to speak in a specific
|
|
2111
|
+
* cloned voice, then pass the returned `voiceId` here.
|
|
2112
|
+
*/
|
|
2113
|
+
synthesize(text: string, options?: SynthesizeOptions): Promise<SynthesizeResult>;
|
|
2114
|
+
|
|
2115
|
+
/**
|
|
2116
|
+
* Creates a new voice cloned from one or more audio sample URLs (`options.sampleUrls`) —
|
|
2117
|
+
* downloads each sample and uploads it to the vendor's cloning endpoint. Returns the new
|
|
2118
|
+
* voice's id, which `synthesize`'s `voiceId` then accepts.
|
|
2119
|
+
*/
|
|
2120
|
+
cloneVoice(options: CloneVoiceOptions): Promise<CloneVoiceResult>;
|
|
2121
|
+
}
|
|
2122
|
+
}
|
|
2123
|
+
|
|
2124
|
+
declare namespace BowmarkCapability_theme_park_tickets {
|
|
2125
|
+
// ── Theme park tickets — the unit's own declarations, verbatim ──
|
|
2126
|
+
type TicketOption = {
|
|
2127
|
+
title: string // e.g. "Park Ticket", "2027 Gold Pass"
|
|
2128
|
+
subtitle: string | null
|
|
2129
|
+
priceAmount: number | null // parsed from the site's own price text; null when it didn't parse
|
|
2130
|
+
currency: string // ISO 4217, always "USD" today
|
|
2131
|
+
priceModifier: string | null // e.g. "/ea*", "per night" — null for a flat one-time price
|
|
2132
|
+
wasPriceAmount: number | null // the struck-through "was" price, same parsing — null when absent
|
|
2133
|
+
buyUrl: string | null // where to actually buy — a checkout flow is out of scope here
|
|
2134
|
+
}
|
|
2135
|
+
type ThemeParkTicketsResult = {
|
|
2136
|
+
park: string // the park name or slug the caller passed
|
|
2137
|
+
parkSlug: string
|
|
2138
|
+
parkTitle: string
|
|
2139
|
+
groupLabel: string // the site's own section label, e.g. "Daily Tickets"
|
|
2140
|
+
tickets: TicketOption[]
|
|
2141
|
+
warnings: string[] // always present; empty when nothing was dropped
|
|
2142
|
+
}
|
|
2143
|
+
|
|
2144
|
+
type CallOptions = {
|
|
2145
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
2146
|
+
// A provider slower than this is DROPPED from the results and
|
|
2147
|
+
// NAMED in warnings — never silently absent
|
|
2148
|
+
}
|
|
2149
|
+
|
|
2150
|
+
/**
|
|
2151
|
+
* Reads a Six Flags/Cedar Fair theme park's own ticket page and returns its current pass
|
|
2152
|
+
* prices — title, price, any "was" price and a buy link. Covers every park in the merged
|
|
2153
|
+
* portfolio (Six Flags Magic Mountain, Cedar Point, Kings Island, Knott's Berry Farm,
|
|
2154
|
+
* Carowinds and ~30 more) by name or sixflags.com slug. Disney, Universal and SeaWorld are not
|
|
2155
|
+
* covered yet. No login, no purchase.
|
|
2156
|
+
*/
|
|
2157
|
+
interface Unit {
|
|
2158
|
+
/**
|
|
2159
|
+
* Looks up a Six Flags/Cedar Fair theme park by name (`"Cedar Point"`, `"Six Flags Magic
|
|
2160
|
+
* Mountain"`) or sixflags.com slug (`"cedarpoint"`, `"magicmountain"`) and reads its real,
|
|
2161
|
+
* current ticket/pass prices — `bowmark.theme_park_tickets.search("Cedar Point")` or `{ park:
|
|
2162
|
+
* "Cedar Point" }`. Each ticket carries its own title, subtitle, parsed price, any
|
|
2163
|
+
* struck-through "was" price and a buy link, exactly as the park's own site is publishing
|
|
2164
|
+
* today. Throws naming the closest matches when the park name does not resolve to one of the
|
|
2165
|
+
* ~33 parks in the covered portfolio.
|
|
2166
|
+
*/
|
|
2167
|
+
search(park: string | { park: string }, options?: CallOptions): Promise<ThemeParkTicketsResult>;
|
|
2168
|
+
}
|
|
2169
|
+
}
|
|
2170
|
+
|
|
1400
2171
|
declare namespace BowmarkCapability_weather {
|
|
1401
2172
|
// ── Weather forecast for a place — the unit's own declarations, verbatim ──
|
|
1402
2173
|
|
|
@@ -1433,6 +2204,53 @@ interface ForecastResult {
|
|
|
1433
2204
|
}
|
|
1434
2205
|
}
|
|
1435
2206
|
|
|
2207
|
+
declare namespace BowmarkCapability_yoga_outfit_shopping {
|
|
2208
|
+
// ── Coordinated yoga outfit shopping — the unit's own declarations, verbatim ──
|
|
2209
|
+
interface YogaOutfitItem {
|
|
2210
|
+
source: string // "lululemon" | "beyondyoga" | "aloyoga"
|
|
2211
|
+
title: string
|
|
2212
|
+
url: string
|
|
2213
|
+
image: string | null // null when the leg carries none (lululemon's search rows never do)
|
|
2214
|
+
priceLow: number | null
|
|
2215
|
+
priceHigh: number | null
|
|
2216
|
+
currency: string | null // null when the leg doesn't publish one (lululemon's search door never does)
|
|
2217
|
+
inStock: boolean
|
|
2218
|
+
garmentType: string | null // the retailer's OWN published label, transcribed — null if the leg
|
|
2219
|
+
// doesn't publish one (lululemon never does; the Shopify legs' search
|
|
2220
|
+
// door doesn't either, only getProduct's REST door does)
|
|
2221
|
+
colorFamily: string | null // shared-colour evidence — null for lululemon
|
|
2222
|
+
fabrics: string[] // retailer-published fabric names — [] for lululemon
|
|
2223
|
+
}
|
|
2224
|
+
interface YogaOutfitSearchResult {
|
|
2225
|
+
items: YogaOutfitItem[]
|
|
2226
|
+
warnings: string[] // always present. Names a retailer that timed out or errored;
|
|
2227
|
+
// ALL THREE dead throws instead of returning an empty result
|
|
2228
|
+
}
|
|
2229
|
+
type CallOptions = {
|
|
2230
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
2231
|
+
// A provider slower than this is DROPPED from the results and
|
|
2232
|
+
// NAMED in warnings — never silently absent
|
|
2233
|
+
}
|
|
2234
|
+
|
|
2235
|
+
/**
|
|
2236
|
+
* Search for a coordinated yoga outfit across lululemon, Beyond Yoga and Alo Yoga in one call
|
|
2237
|
+
* — one normalized row shape per product, with each retailer's own published garment type,
|
|
2238
|
+
* colour family and fabric names carried through so a caller can spot a plausible
|
|
2239
|
+
* top-and-bottom pair. Never a claim that any retailer sold two items as a set.
|
|
2240
|
+
*/
|
|
2241
|
+
interface Unit {
|
|
2242
|
+
/**
|
|
2243
|
+
* Fans out one free-text query to lululemon, Beyond Yoga and Alo Yoga in parallel and returns
|
|
2244
|
+
* every match as one normalized row per product. `limit` (default 8, max 24) applies PER
|
|
2245
|
+
* RETAILER, so a caller asking for 5 gets up to 5 rows from EACH of the three, not 5 total. A
|
|
2246
|
+
* retailer that times out or errors is named in `warnings`, never silently absent; all three
|
|
2247
|
+
* failing throws `AllProvidersFailedError` instead of returning an empty result, which would
|
|
2248
|
+
* be indistinguishable from 'nobody sells this'.
|
|
2249
|
+
*/
|
|
2250
|
+
search(query: string, options?: { limit?: number; timeoutMs?: number }): Promise<YogaOutfitSearchResult>;
|
|
2251
|
+
}
|
|
2252
|
+
}
|
|
2253
|
+
|
|
1436
2254
|
declare namespace BowmarkProvider_aa {
|
|
1437
2255
|
// ── American Airlines — the unit's own declarations, verbatim ──
|
|
1438
2256
|
interface aaFlight {
|
|
@@ -1662,6 +2480,57 @@ interface aaMaxCheckedBagsRule {
|
|
|
1662
2480
|
}
|
|
1663
2481
|
}
|
|
1664
2482
|
|
|
2483
|
+
declare namespace BowmarkProvider_aauto {
|
|
2484
|
+
// ── 1A Auto — the unit's own declarations, verbatim ──
|
|
2485
|
+
interface AautoSearchProduct {
|
|
2486
|
+
id: string;
|
|
2487
|
+
title: string;
|
|
2488
|
+
brand: string;
|
|
2489
|
+
category: string;
|
|
2490
|
+
price: number;
|
|
2491
|
+
url: string;
|
|
2492
|
+
image: string | null;
|
|
2493
|
+
}
|
|
2494
|
+
interface AautoSearchResult {
|
|
2495
|
+
query: string;
|
|
2496
|
+
/** The site's own reported match count — can exceed products.length. */
|
|
2497
|
+
totalResults: number;
|
|
2498
|
+
products: AautoSearchProduct[];
|
|
2499
|
+
}
|
|
2500
|
+
interface AautoProduct {
|
|
2501
|
+
id: string;
|
|
2502
|
+
title: string;
|
|
2503
|
+
brand: string;
|
|
2504
|
+
category: string;
|
|
2505
|
+
price: number;
|
|
2506
|
+
sku: string | null;
|
|
2507
|
+
inStock: boolean;
|
|
2508
|
+
description: string;
|
|
2509
|
+
image: string | null;
|
|
2510
|
+
url: string;
|
|
2511
|
+
}
|
|
2512
|
+
|
|
2513
|
+
/**
|
|
2514
|
+
* 1A Auto's DIY replacement-parts catalog — search results and one product's real price, stock
|
|
2515
|
+
* and description — read off the live storefront.
|
|
2516
|
+
*/
|
|
2517
|
+
interface Unit {
|
|
2518
|
+
/**
|
|
2519
|
+
* Reads 1A Auto's own search-results page for `query` — real price, brand, category and
|
|
2520
|
+
* product URL per row, plus the site's own total-match count. `limit` truncates the first
|
|
2521
|
+
* results page (the site itself paginates; this reads only the first page).
|
|
2522
|
+
*/
|
|
2523
|
+
search(query: string, opts?: { limit?: number }): Promise<AautoSearchResult>;
|
|
2524
|
+
|
|
2525
|
+
/**
|
|
2526
|
+
* Reads one product page by the URL search() returns (absolute or a site-relative path) —
|
|
2527
|
+
* title, brand, SKU, price, live stock status and description text. THROWS if the page does
|
|
2528
|
+
* not carry the site's own product data block.
|
|
2529
|
+
*/
|
|
2530
|
+
getProduct(url: string): Promise<AautoProduct>;
|
|
2531
|
+
}
|
|
2532
|
+
}
|
|
2533
|
+
|
|
1665
2534
|
declare namespace BowmarkProvider_abercrombie {
|
|
1666
2535
|
// ── Abercrombie & Fitch — the unit's own declarations, verbatim ──
|
|
1667
2536
|
interface abercrombieSizeOption {
|
|
@@ -1978,6 +2847,79 @@ interface AjmadisonSearchResult {
|
|
|
1978
2847
|
}
|
|
1979
2848
|
}
|
|
1980
2849
|
|
|
2850
|
+
declare namespace BowmarkProvider_allied {
|
|
2851
|
+
// ── Allied Van Lines — the unit's own declarations, verbatim ──
|
|
2852
|
+
interface AlliedSupplyLine {
|
|
2853
|
+
item: string;
|
|
2854
|
+
quantity: number | null;
|
|
2855
|
+
}
|
|
2856
|
+
interface AlliedRoomSupplies {
|
|
2857
|
+
room: string;
|
|
2858
|
+
supplies: AlliedSupplyLine[];
|
|
2859
|
+
}
|
|
2860
|
+
interface AlliedPackingEstimate {
|
|
2861
|
+
totalSupplies: AlliedSupplyLine[];
|
|
2862
|
+
byRoom: AlliedRoomSupplies[];
|
|
2863
|
+
}
|
|
2864
|
+
interface AlliedPackingCalculatorInput {
|
|
2865
|
+
yearsInHome?: "lessThan5" | "5to10" | "over10";
|
|
2866
|
+
cabinetsClosets?: "clutterFree" | "packRat";
|
|
2867
|
+
kitchen?: boolean;
|
|
2868
|
+
pantry?: boolean;
|
|
2869
|
+
diningRoom?: boolean;
|
|
2870
|
+
livingRoom?: boolean;
|
|
2871
|
+
familyRoom?: boolean;
|
|
2872
|
+
homeOffice?: boolean;
|
|
2873
|
+
bedrooms?: number;
|
|
2874
|
+
garageBays?: number;
|
|
2875
|
+
storedAttic?: boolean;
|
|
2876
|
+
storageFacility?: boolean;
|
|
2877
|
+
otherRooms?: number;
|
|
2878
|
+
}
|
|
2879
|
+
|
|
2880
|
+
/**
|
|
2881
|
+
* Runs Allied Van Lines' own Packing Calculator — takes which rooms are moving (no name, email
|
|
2882
|
+
* or phone) and returns a real, server-computed whole-house and per-room packing-supply
|
|
2883
|
+
* estimate (cartons, tape, paper). Allied's separate 'quote' flow is a sales-lead form with no
|
|
2884
|
+
* computed price and is out of scope; this is the one part of allied.com that answers a
|
|
2885
|
+
* question with a number.
|
|
2886
|
+
*/
|
|
2887
|
+
interface Unit {
|
|
2888
|
+
/**
|
|
2889
|
+
* Allied Van Lines' own Packing Calculator: pass which rooms are moving (kitchen, bedrooms
|
|
2890
|
+
* count, garage bays, etc — no identity required) and get back a real per-room and whole-house
|
|
2891
|
+
* estimate of boxes, tape and paper. At least one room must be set, matching the site's own
|
|
2892
|
+
* validation.
|
|
2893
|
+
*/
|
|
2894
|
+
estimatePackingSupplies(input: AlliedPackingCalculatorInput): Promise<AlliedPackingEstimate>;
|
|
2895
|
+
}
|
|
2896
|
+
}
|
|
2897
|
+
|
|
2898
|
+
declare namespace BowmarkProvider_alphavantage {
|
|
2899
|
+
// ── Alpha Vantage — the unit's own declarations, verbatim ──
|
|
2900
|
+
interface AlphavantageSignUpDetails {
|
|
2901
|
+
organization: string;
|
|
2902
|
+
email: string;
|
|
2903
|
+
occupation?: "Investor" | "Software Developer" | "Educator" | "Student" | "I am from the Trading Agents project on Github" | "Other";
|
|
2904
|
+
}
|
|
2905
|
+
interface AlphavantageSignUpResult {
|
|
2906
|
+
apiKey: string;
|
|
2907
|
+
message: string;
|
|
2908
|
+
}
|
|
2909
|
+
|
|
2910
|
+
/**
|
|
2911
|
+
* alphavantage.co's own free-tier signup — issues a real, usable stock-data API key instantly,
|
|
2912
|
+
* no email verification.
|
|
2913
|
+
*/
|
|
2914
|
+
interface Unit {
|
|
2915
|
+
/**
|
|
2916
|
+
* Runs alphavantage.co's real signup flow and returns a genuine, immediately usable free-tier
|
|
2917
|
+
* stock-data API key — no email verification, no CAPTCHA.
|
|
2918
|
+
*/
|
|
2919
|
+
signUp(details: { organization: string, email: string, occupation?: string }): Promise<AlphavantageSignUpResult>;
|
|
2920
|
+
}
|
|
2921
|
+
}
|
|
2922
|
+
|
|
1981
2923
|
declare namespace BowmarkProvider_americanstandard {
|
|
1982
2924
|
// ── American Standard Heating & Air Conditioning — the unit's own declarations, verbatim ──
|
|
1983
2925
|
type AmericanStandardTierName = "Platinum" | "Gold" | "Silver";
|
|
@@ -2168,6 +3110,11 @@ interface AppleProductPage {
|
|
|
2168
3110
|
url: string;
|
|
2169
3111
|
products: AppleProduct[];
|
|
2170
3112
|
}
|
|
3113
|
+
interface AppleTradeInEstimate {
|
|
3114
|
+
device: string;
|
|
3115
|
+
upToUsd: number;
|
|
3116
|
+
sourceUrl: string;
|
|
3117
|
+
}
|
|
2171
3118
|
|
|
2172
3119
|
/** apple.com's own site search and product pages — no API, no login, no browser. */
|
|
2173
3120
|
interface Unit {
|
|
@@ -2182,6 +3129,15 @@ interface AppleProductPage {
|
|
|
2182
3129
|
* every schema.org Product block it publishes.
|
|
2183
3130
|
*/
|
|
2184
3131
|
getProduct(urlOrPath: string): Promise<AppleProductPage>;
|
|
3132
|
+
|
|
3133
|
+
/**
|
|
3134
|
+
* Reads apple.com's own trade-in value table and returns the CEILING ("up to $X")
|
|
3135
|
+
* cash-or-credit estimate it publishes for one device — a human name ("iPhone 14 Pro") or the
|
|
3136
|
+
* slug `phone_trade_in` already normalizes to ("iphone-14-pro") both resolve. Apple publishes
|
|
3137
|
+
* ONE number per device, not a matrix by storage or condition: the value is Apple's advertised
|
|
3138
|
+
* best-case figure, not a quote for a specific unit's actual condition.
|
|
3139
|
+
*/
|
|
3140
|
+
getTradeInEstimate(model: string): Promise<AppleTradeInEstimate>;
|
|
2185
3141
|
}
|
|
2186
3142
|
}
|
|
2187
3143
|
|
|
@@ -3011,6 +3967,47 @@ interface BaublebarCheckoutLink {
|
|
|
3011
3967
|
}
|
|
3012
3968
|
}
|
|
3013
3969
|
|
|
3970
|
+
declare namespace BowmarkProvider_bcparkscamping {
|
|
3971
|
+
// ── BC Parks Camping (Discover Camping) — the unit's own declarations, verbatim ──
|
|
3972
|
+
interface BcParksCampground {
|
|
3973
|
+
resourceLocationId: number;
|
|
3974
|
+
name: string;
|
|
3975
|
+
fullName: string;
|
|
3976
|
+
}
|
|
3977
|
+
interface BcParksSiteAvailability {
|
|
3978
|
+
resourceId: number;
|
|
3979
|
+
siteName: string | null;
|
|
3980
|
+
nightsRequested: number;
|
|
3981
|
+
nightsAvailable: number;
|
|
3982
|
+
fullyAvailable: boolean;
|
|
3983
|
+
}
|
|
3984
|
+
interface BcParksAvailabilityResult {
|
|
3985
|
+
resourceLocationId: number;
|
|
3986
|
+
startDate: string;
|
|
3987
|
+
endDate: string;
|
|
3988
|
+
nights: number;
|
|
3989
|
+
sites: BcParksSiteAvailability[];
|
|
3990
|
+
}
|
|
3991
|
+
|
|
3992
|
+
/**
|
|
3993
|
+
* camping.bcparks.ca's own reservation API (Discover Camping) — find a provincial park
|
|
3994
|
+
* campground by name, then read its real per-site, per-night availability for a stay.
|
|
3995
|
+
*/
|
|
3996
|
+
interface Unit {
|
|
3997
|
+
/**
|
|
3998
|
+
* Given a free-text substring, returns every BC Parks campground whose short or full name
|
|
3999
|
+
* matches, with its resourceLocationId for checkAvailability.
|
|
4000
|
+
*/
|
|
4001
|
+
searchCampgrounds(query: string): Promise<BcParksCampground[]>;
|
|
4002
|
+
|
|
4003
|
+
/**
|
|
4004
|
+
* Given a campground's resourceLocationId and a date range, returns each individual campsite's
|
|
4005
|
+
* real per-night availability for that stay.
|
|
4006
|
+
*/
|
|
4007
|
+
checkAvailability(arg: { resourceLocationId: number, startDate: string, endDate: string }): Promise<BcParksAvailabilityResult>;
|
|
4008
|
+
}
|
|
4009
|
+
}
|
|
4010
|
+
|
|
3014
4011
|
declare namespace BowmarkProvider_beatthebomb {
|
|
3015
4012
|
// ── Beat The Bomb — the unit's own declarations, verbatim ──
|
|
3016
4013
|
interface BeatthebombMission {
|
|
@@ -3076,6 +4073,31 @@ interface BeatthebombPriceQuote {
|
|
|
3076
4073
|
}
|
|
3077
4074
|
}
|
|
3078
4075
|
|
|
4076
|
+
declare namespace BowmarkProvider_bennington {
|
|
4077
|
+
// ── Bennington Marine — the unit's own declarations, verbatim ──
|
|
4078
|
+
interface BenningtonModel {
|
|
4079
|
+
slug: string;
|
|
4080
|
+
name: string;
|
|
4081
|
+
url: string;
|
|
4082
|
+
lengthOverall: string | null;
|
|
4083
|
+
beam: string | null;
|
|
4084
|
+
specText: string;
|
|
4085
|
+
}
|
|
4086
|
+
|
|
4087
|
+
/**
|
|
4088
|
+
* Bennington's pontoon/tritoon model catalog — length, beam and standard-feature specs read
|
|
4089
|
+
* off each model's own page (S, SX today).
|
|
4090
|
+
*/
|
|
4091
|
+
interface Unit {
|
|
4092
|
+
/**
|
|
4093
|
+
* Lists Bennington's pontoon/tritoon model series with their published length overall, beam
|
|
4094
|
+
* and feature specs, read off each model's own page. Pass { model: "sx" } for one model, or
|
|
4095
|
+
* omit args for every known model.
|
|
4096
|
+
*/
|
|
4097
|
+
search(args?: { model?: string }): Promise<{ models: BenningtonModel[]; warnings: string[] }>;
|
|
4098
|
+
}
|
|
4099
|
+
}
|
|
4100
|
+
|
|
3079
4101
|
declare namespace BowmarkProvider_bestbuy {
|
|
3080
4102
|
// ── Best Buy — the unit's own declarations, verbatim ──
|
|
3081
4103
|
interface bestbuyProduct {
|
|
@@ -4179,6 +5201,44 @@ interface CaliProductDetail extends CaliProduct {
|
|
|
4179
5201
|
}
|
|
4180
5202
|
}
|
|
4181
5203
|
|
|
5204
|
+
declare namespace BowmarkProvider_camelcamelcamel {
|
|
5205
|
+
// ── camelcamelcamel — the unit's own declarations, verbatim ──
|
|
5206
|
+
interface CamelPriceStat {
|
|
5207
|
+
price: number | null;
|
|
5208
|
+
date: string | null;
|
|
5209
|
+
}
|
|
5210
|
+
|
|
5211
|
+
interface CamelPriceTypeStats {
|
|
5212
|
+
lowestEver: CamelPriceStat;
|
|
5213
|
+
highestEver: CamelPriceStat;
|
|
5214
|
+
current: CamelPriceStat;
|
|
5215
|
+
average: number | null;
|
|
5216
|
+
}
|
|
5217
|
+
|
|
5218
|
+
interface CamelPriceHistory {
|
|
5219
|
+
asin: string;
|
|
5220
|
+
productTitle: string;
|
|
5221
|
+
amazon: CamelPriceTypeStats;
|
|
5222
|
+
thirdPartyNew: CamelPriceTypeStats;
|
|
5223
|
+
thirdPartyUsed: CamelPriceTypeStats;
|
|
5224
|
+
chartUrl: string;
|
|
5225
|
+
}
|
|
5226
|
+
|
|
5227
|
+
/**
|
|
5228
|
+
* Independent Amazon price-history tracker — real lowest/highest/current/average price per
|
|
5229
|
+
* item, each dated, so a claimed 'sale' can be checked against what the item actually sold
|
|
5230
|
+
* for.
|
|
5231
|
+
*/
|
|
5232
|
+
interface Unit {
|
|
5233
|
+
/**
|
|
5234
|
+
* Reads camelcamelcamel's independently-tracked Amazon price history for one ASIN — the site's
|
|
5235
|
+
* own lowest-ever/highest-ever/current/average figures, each dated, for the Amazon,
|
|
5236
|
+
* 3rd-party-new and 3rd-party-used price types, plus the full-history chart image URL.
|
|
5237
|
+
*/
|
|
5238
|
+
getPriceHistory(asinOrUrl: string): Promise<CamelPriceHistory>;
|
|
5239
|
+
}
|
|
5240
|
+
}
|
|
5241
|
+
|
|
4182
5242
|
declare namespace BowmarkProvider_cancer {
|
|
4183
5243
|
// ── National Cancer Institute (cancer.gov) — the unit's own declarations, verbatim ──
|
|
4184
5244
|
type cancerCenterDesignation =
|
|
@@ -5944,6 +7004,32 @@ interface DeckedCabSideOptionResult {
|
|
|
5944
7004
|
}
|
|
5945
7005
|
}
|
|
5946
7006
|
|
|
7007
|
+
declare namespace BowmarkProvider_developersopenai {
|
|
7008
|
+
// ── OpenAI Developer Docs — the unit's own declarations, verbatim ──
|
|
7009
|
+
interface DevelopersOpenaiDocPage {
|
|
7010
|
+
path: string;
|
|
7011
|
+
title: string;
|
|
7012
|
+
canonicalUrl: string;
|
|
7013
|
+
body: string;
|
|
7014
|
+
}
|
|
7015
|
+
|
|
7016
|
+
/**
|
|
7017
|
+
* OpenAI's own developer documentation site. getDocPage reads one docs page (title, canonical
|
|
7018
|
+
* URL, full article text) by path — e.g. /api/docs/mcp for the remote MCP server / OAuth
|
|
7019
|
+
* connector guide.
|
|
7020
|
+
*/
|
|
7021
|
+
interface Unit {
|
|
7022
|
+
/**
|
|
7023
|
+
* Reads one page of OpenAI's developer docs and returns its title, canonical URL and full
|
|
7024
|
+
* article text. Pass `path` (e.g. "/api/docs/mcp") to pick a page; omitting it defaults to
|
|
7025
|
+
* "/api/docs/mcp" — the guide for building a remote MCP server, connecting it to ChatGPT/the
|
|
7026
|
+
* API, and its OAuth-based auth section (see the "Handle authentication" and "Connect in
|
|
7027
|
+
* ChatGPT" sections of the returned body).
|
|
7028
|
+
*/
|
|
7029
|
+
getDocPage(args?: object): Promise<DevelopersOpenaiDocPage>;
|
|
7030
|
+
}
|
|
7031
|
+
}
|
|
7032
|
+
|
|
5947
7033
|
declare namespace BowmarkProvider_dice {
|
|
5948
7034
|
// ── Dice — the unit's own declarations, verbatim ──
|
|
5949
7035
|
interface DiceJobDetails {
|
|
@@ -6510,6 +7596,44 @@ interface ebayItem {
|
|
|
6510
7596
|
}
|
|
6511
7597
|
}
|
|
6512
7598
|
|
|
7599
|
+
declare namespace BowmarkProvider_elevenlabs {
|
|
7600
|
+
// ── ElevenLabs — the unit's own declarations, verbatim ──
|
|
7601
|
+
interface elevenlabsSynthesisResult {
|
|
7602
|
+
audioBase64: string;
|
|
7603
|
+
contentType: string;
|
|
7604
|
+
voiceId: string;
|
|
7605
|
+
}
|
|
7606
|
+
interface elevenlabsVoice {
|
|
7607
|
+
voiceId: string;
|
|
7608
|
+
name: string;
|
|
7609
|
+
requiresVerification: boolean;
|
|
7610
|
+
}
|
|
7611
|
+
|
|
7612
|
+
/**
|
|
7613
|
+
* ElevenLabs' own documented REST API (api.elevenlabs.io) — converts text into spoken audio in
|
|
7614
|
+
* an existing or newly-cloned voice, and clones a new voice from caller-supplied audio samples
|
|
7615
|
+
* (Instant Voice Cloning). Requires an ElevenLabs API key.
|
|
7616
|
+
*/
|
|
7617
|
+
interface Unit {
|
|
7618
|
+
/**
|
|
7619
|
+
* Converts `text` into spoken audio via ElevenLabs' documented Text to Speech API, returning
|
|
7620
|
+
* it base64-encoded alongside the vendor's content type (MP3 by default). `voiceId` selects an
|
|
7621
|
+
* existing or previously-cloned ElevenLabs voice (default "21m00Tcm4TlvDq8ikWAM", ElevenLabs'
|
|
7622
|
+
* own "Rachel"); `modelId` selects the ElevenLabs model (default "eleven_multilingual_v2").
|
|
7623
|
+
* Requires an ElevenLabs API key — see this provider's `auth`.
|
|
7624
|
+
*/
|
|
7625
|
+
synthesize(args: { text: string; voiceId?: string; modelId?: string }): Promise<elevenlabsSynthesisResult>;
|
|
7626
|
+
|
|
7627
|
+
/**
|
|
7628
|
+
* Creates a new ElevenLabs voice cloned from one or more caller-supplied audio sample URLs
|
|
7629
|
+
* (Instant Voice Cloning) — downloads each sample and uploads it to ElevenLabs' `voices/add`.
|
|
7630
|
+
* Returns the new voice's id, which `synthesize`'s `voiceId` then accepts. Requires an
|
|
7631
|
+
* ElevenLabs API key — see this provider's `auth`.
|
|
7632
|
+
*/
|
|
7633
|
+
cloneVoice(args: { name: string; sampleUrls: string[]; description?: string }): Promise<elevenlabsVoice>;
|
|
7634
|
+
}
|
|
7635
|
+
}
|
|
7636
|
+
|
|
6513
7637
|
declare namespace BowmarkProvider_embroker {
|
|
6514
7638
|
// ── Embroker — the unit's own declarations, verbatim ──
|
|
6515
7639
|
interface EmbrokerCoverageCatalog {
|
|
@@ -7862,10 +8986,11 @@ interface fredObservations {
|
|
|
7862
8986
|
seriesId: string;
|
|
7863
8987
|
/** The transform FRED reports having applied: "lin" (none), "pc1", "pch", … */
|
|
7864
8988
|
units: string;
|
|
7865
|
-
observationStart: string;
|
|
7866
|
-
observationEnd: string;
|
|
7867
|
-
|
|
7868
|
-
|
|
8989
|
+
observationStart: string | null;
|
|
8990
|
+
observationEnd: string | null;
|
|
8991
|
+
/** null: the public CSV has no vintage envelope. */
|
|
8992
|
+
realtimeStart: string | null;
|
|
8993
|
+
realtimeEnd: string | null;
|
|
7869
8994
|
count: number;
|
|
7870
8995
|
observations: fredObservation[];
|
|
7871
8996
|
}
|
|
@@ -7917,10 +9042,10 @@ interface fredObservations {
|
|
|
7917
9042
|
* `pch`, `chg`, `log` and the rest of FRED's ten codes), and `frequency` with
|
|
7918
9043
|
* `aggregationMethod` collapses a series to a coarser period (`{ frequency: "a",
|
|
7919
9044
|
* aggregationMethod: "avg" }` turns the monthly unemployment rate into annual averages). The
|
|
7920
|
-
* result carries the transform
|
|
7921
|
-
*
|
|
7922
|
-
* `searchSeries`/`getSeriesInfo` has identified the right series id — e.g.
|
|
7923
|
-
* the US real GDP growth rate.
|
|
9045
|
+
* result carries the applied transform and the served row bounds; its realtime fields are
|
|
9046
|
+
* `null` because the keyless CSV publishes no vintage envelope. This is the function to call
|
|
9047
|
+
* once `searchSeries`/`getSeriesInfo` has identified the right series id — e.g.
|
|
9048
|
+
* A191RL1Q225SBEA for the US real GDP growth rate.
|
|
7924
9049
|
*/
|
|
7925
9050
|
getSeriesObservations(args: string | { seriesId: string; from?: string; to?: string; units?: string; frequency?: string; aggregationMethod?: string }): Promise<fredObservations>;
|
|
7926
9051
|
|
|
@@ -8410,10 +9535,29 @@ interface GithubListCommitsResult {
|
|
|
8410
9535
|
commits: GithubCommit[];
|
|
8411
9536
|
warnings: string[];
|
|
8412
9537
|
}
|
|
9538
|
+
interface GithubRelease {
|
|
9539
|
+
tag: string;
|
|
9540
|
+
name: string;
|
|
9541
|
+
draft: boolean;
|
|
9542
|
+
prerelease: boolean;
|
|
9543
|
+
createdAt: string;
|
|
9544
|
+
publishedAt: string | null;
|
|
9545
|
+
notes: string;
|
|
9546
|
+
url: string;
|
|
9547
|
+
}
|
|
9548
|
+
interface GithubListReleasesOptions {
|
|
9549
|
+
per_page?: number;
|
|
9550
|
+
page?: number;
|
|
9551
|
+
}
|
|
9552
|
+
interface GithubListReleasesResult {
|
|
9553
|
+
releases: GithubRelease[];
|
|
9554
|
+
warnings: string[];
|
|
9555
|
+
}
|
|
8413
9556
|
|
|
8414
9557
|
/**
|
|
8415
9558
|
* GitHub's own REST API, keyless. Built: a public repo's commit log (sha, author, date,
|
|
8416
|
-
* message), paged and windowed
|
|
9559
|
+
* message), paged and windowed; a public repo's release history (tag, name, dates, release
|
|
9560
|
+
* notes text), paged. Declared, not yet built: repo metadata (getRepo).
|
|
8417
9561
|
*/
|
|
8418
9562
|
interface Unit {
|
|
8419
9563
|
/**
|
|
@@ -8428,6 +9572,19 @@ interface GithubListCommitsResult {
|
|
|
8428
9572
|
* throw.
|
|
8429
9573
|
*/
|
|
8430
9574
|
listCommits(owner: string, repo: string, options?: GithubListCommitsOptions): Promise<GithubListCommitsResult>;
|
|
9575
|
+
|
|
9576
|
+
/**
|
|
9577
|
+
* Returns a public repo's release history off GitHub's own unauthenticated REST releases
|
|
9578
|
+
* endpoint — each release's tag, name, draft/prerelease flags, created/published dates, its
|
|
9579
|
+
* release notes text (`notes`) and its own github.com URL. This is a project's own release
|
|
9580
|
+
* notes documentation — `listReleases("microsoft", "TypeScript")` returns the TypeScript
|
|
9581
|
+
* compiler's. `options.per_page` (GitHub's own 1-100 ceiling, default 30) and `options.page`
|
|
9582
|
+
* page through history, newest first (GitHub's own ordering). Unauthenticated calls are capped
|
|
9583
|
+
* at 60 requests/hour per IP, the same shared ceiling `listCommits` spends against. THROWS on
|
|
9584
|
+
* an unknown owner/repo (404) or a rate limit (403/429); a repo with no releases yet returns
|
|
9585
|
+
* `releases: []`, not a throw.
|
|
9586
|
+
*/
|
|
9587
|
+
listReleases(owner: string, repo: string, options?: GithubListReleasesOptions): Promise<GithubListReleasesResult>;
|
|
8431
9588
|
}
|
|
8432
9589
|
}
|
|
8433
9590
|
|
|
@@ -8459,6 +9616,37 @@ interface GlassesusaProduct {
|
|
|
8459
9616
|
}
|
|
8460
9617
|
}
|
|
8461
9618
|
|
|
9619
|
+
declare namespace BowmarkProvider_goodway {
|
|
9620
|
+
// ── Goodway Technologies — the unit's own declarations, verbatim ──
|
|
9621
|
+
interface GoodwayProductSummary {
|
|
9622
|
+
sku: string;
|
|
9623
|
+
title: string;
|
|
9624
|
+
url: string;
|
|
9625
|
+
price: string | null; // null = call for price / quote required
|
|
9626
|
+
}
|
|
9627
|
+
interface GoodwayProduct extends GoodwayProductSummary {
|
|
9628
|
+
purchaseType: "buy" | "quote";
|
|
9629
|
+
}
|
|
9630
|
+
|
|
9631
|
+
/**
|
|
9632
|
+
* Goodway's own pressure-washer catalog — real listed prices, or a quote-required flag for
|
|
9633
|
+
* call-for-price units, and the site's own product page as the buy/quote handoff.
|
|
9634
|
+
*/
|
|
9635
|
+
interface Unit {
|
|
9636
|
+
/**
|
|
9637
|
+
* Reads Goodway's pressure-washer catalog grid — every listed model, its SKU, its live price
|
|
9638
|
+
* (or null if quote-required) and its product page.
|
|
9639
|
+
*/
|
|
9640
|
+
searchProducts(): Promise<GoodwayProductSummary[]>;
|
|
9641
|
+
|
|
9642
|
+
/**
|
|
9643
|
+
* Reads one product's detail page for its real current price and whether it buys online or
|
|
9644
|
+
* needs a written quote.
|
|
9645
|
+
*/
|
|
9646
|
+
getProduct(arg0: { slug: string }): Promise<GoodwayProduct>;
|
|
9647
|
+
}
|
|
9648
|
+
}
|
|
9649
|
+
|
|
8462
9650
|
declare namespace BowmarkProvider_google_flights {
|
|
8463
9651
|
// ── Google Flights — the unit's own declarations, verbatim ──
|
|
8464
9652
|
interface GoogleFlightQuery {
|
|
@@ -10107,6 +11295,10 @@ interface HobieModelSummary {
|
|
|
10107
11295
|
name: string;
|
|
10108
11296
|
url: string;
|
|
10109
11297
|
}
|
|
11298
|
+
interface HobieKayakModelList {
|
|
11299
|
+
total_models: number;
|
|
11300
|
+
models: HobieModelSummary[];
|
|
11301
|
+
}
|
|
10110
11302
|
interface HobieModelColor {
|
|
10111
11303
|
color: string;
|
|
10112
11304
|
upc: string;
|
|
@@ -10157,6 +11349,12 @@ interface HobieLocalAvailability {
|
|
|
10157
11349
|
*/
|
|
10158
11350
|
listModels(): Promise<HobieModelSummary[]>;
|
|
10159
11351
|
|
|
11352
|
+
/**
|
|
11353
|
+
* Returns Hobie's live kayak-model list plus total_models. To answer a count request, call it
|
|
11354
|
+
* with run; do not infer or paraphrase the count from this description.
|
|
11355
|
+
*/
|
|
11356
|
+
listKayakModels(): Promise<HobieKayakModelList>;
|
|
11357
|
+
|
|
10160
11358
|
/**
|
|
10161
11359
|
* Reads one model's real buildable colors, each paired with the exact UPC the local-inventory
|
|
10162
11360
|
* widget is keyed on, plus the site's own default color.
|
|
@@ -10388,6 +11586,23 @@ interface IbuypowerBenchmark {
|
|
|
10388
11586
|
games: Record<string, IbuypowerGameFps>; // keyed by the titles iBUYPOWER benchmarks
|
|
10389
11587
|
}
|
|
10390
11588
|
|
|
11589
|
+
interface IbuypowerRecommendation {
|
|
11590
|
+
source: "prebuilt" | "configurator";
|
|
11591
|
+
slug: string;
|
|
11592
|
+
name: string;
|
|
11593
|
+
url: string;
|
|
11594
|
+
price: string | null;
|
|
11595
|
+
priceValue: number | null;
|
|
11596
|
+
timeSpyOverall: number | null; // null when the site has not benchmarked this pair
|
|
11597
|
+
scorePerDollar: number | null; // timeSpyOverall / priceValue — highest first
|
|
11598
|
+
inStock: boolean; // a configurator is always buildable to order
|
|
11599
|
+
}
|
|
11600
|
+
|
|
11601
|
+
interface IbuypowerRecommendArgs {
|
|
11602
|
+
budget_max: number; // the hard ceiling; nothing over it is returned
|
|
11603
|
+
use_case?: string; // accepted, does not change the ranking — see recommendGamingPc's summary
|
|
11604
|
+
}
|
|
11605
|
+
|
|
10391
11606
|
/**
|
|
10392
11607
|
* Gaming and workstation PCs from iBUYPOWER — the base configurators with their current
|
|
10393
11608
|
* starting prices, every component option on one with its exact price difference, the RDY
|
|
@@ -10451,6 +11666,18 @@ interface IbuypowerBenchmark {
|
|
|
10451
11666
|
* to the Time Spy score of a pair it does have.
|
|
10452
11667
|
*/
|
|
10453
11668
|
getBenchmark(cpuBench: string, gpuBench: string): Promise<IbuypowerBenchmark | null>;
|
|
11669
|
+
|
|
11670
|
+
/**
|
|
11671
|
+
* Recommends buildable PCs at or under budget_max, drawn from BOTH product lines — in-stock
|
|
11672
|
+
* RDY prebuilts (their own listed Time Spy score) and base configurators at their stock
|
|
11673
|
+
* loadout (priced from getSystem, benchmarked from getBenchmark for the cheapest ~5 affordable
|
|
11674
|
+
* ones) — ranked by 3DMark Time Spy score per dollar, best first. `use_case` is accepted but
|
|
11675
|
+
* does not change the ranking: iBUYPOWER publishes only one axis of measured performance, and
|
|
11676
|
+
* every recommendation is already ranked on it. THROWS when nothing in stock or buildable fits
|
|
11677
|
+
* the budget. `warnings` names any configurator that stopped resolving mid-call; it is empty
|
|
11678
|
+
* on a healthy call.
|
|
11679
|
+
*/
|
|
11680
|
+
recommendGamingPc(args: IbuypowerRecommendArgs): Promise<{ recommendations: IbuypowerRecommendation[]; warnings: string[] }>;
|
|
10454
11681
|
}
|
|
10455
11682
|
}
|
|
10456
11683
|
|
|
@@ -11635,6 +12862,42 @@ interface IsllcSearchCommunitiesResult {
|
|
|
11635
12862
|
}
|
|
11636
12863
|
}
|
|
11637
12864
|
|
|
12865
|
+
declare namespace BowmarkProvider_istanbulkart {
|
|
12866
|
+
// ── İstanbulkart — the unit's own declarations, verbatim ──
|
|
12867
|
+
interface IstanbulkartCardFee {
|
|
12868
|
+
cardTypeName: string; // the site's own Turkish label, e.g. "İstanbulkart"
|
|
12869
|
+
feeTRY: number | null;
|
|
12870
|
+
visaIssuanceFeeTRY: number | null;
|
|
12871
|
+
}
|
|
12872
|
+
interface IstanbulkartTouristPass {
|
|
12873
|
+
days: number; // 1, 3, 5, 7 or 15 on the table measured 2026-08-29
|
|
12874
|
+
priceTRY: number;
|
|
12875
|
+
}
|
|
12876
|
+
|
|
12877
|
+
/**
|
|
12878
|
+
* Istanbul public transit: İstanbulkart card purchase/personalization fees and the İstanbul
|
|
12879
|
+
* City Card tourist unlimited-ride pass tariffs, read from istanbulkart.istanbul's own
|
|
12880
|
+
* price-and-limits data.
|
|
12881
|
+
*/
|
|
12882
|
+
interface Unit {
|
|
12883
|
+
/**
|
|
12884
|
+
* Reads the current İstanbulkart fee table — the purchase price of every card variant
|
|
12885
|
+
* (İstanbulkart, İstanbulkart Plus, the discounted/free variants, the limited-ride geç
|
|
12886
|
+
* tickets, SMS QR) plus each variant's personalization/visa-issuance fee, in TRY, straight off
|
|
12887
|
+
* istanbulkart.istanbul's own price-and-limits page.
|
|
12888
|
+
*/
|
|
12889
|
+
getCardFees(): Promise<IstanbulkartCardFee[]>;
|
|
12890
|
+
|
|
12891
|
+
/**
|
|
12892
|
+
* Reads the İstanbul City Card tariff table — the 1/3/5/7/15-day unlimited-ride visitor pass
|
|
12893
|
+
* prices, in TRY, straight off istanbulkart.istanbul's own price-and-limits page. This is the
|
|
12894
|
+
* tourist unlimited-pass answer: İstanbul City Card is the İstanbulkart variant sold
|
|
12895
|
+
* specifically to visitors for unlimited transit over a fixed number of days.
|
|
12896
|
+
*/
|
|
12897
|
+
getTouristPassFares(): Promise<IstanbulkartTouristPass[]>;
|
|
12898
|
+
}
|
|
12899
|
+
}
|
|
12900
|
+
|
|
11638
12901
|
declare namespace BowmarkProvider_ivoryhomes {
|
|
11639
12902
|
// ── Ivory Homes — the unit's own declarations, verbatim ──
|
|
11640
12903
|
// Ivory Homes' OWN shapes — not a capability contract.
|
|
@@ -12300,6 +13563,15 @@ interface KompanSparePartsDocuments {
|
|
|
12300
13563
|
* package" PDF URL.
|
|
12301
13564
|
*/
|
|
12302
13565
|
getSparePartsDocuments(variantId: string, purchaseDate: string): Promise<KompanSparePartsDocuments>;
|
|
13566
|
+
|
|
13567
|
+
/**
|
|
13568
|
+
* A single call keyed by `product_no` that reports whether a playground product has spare
|
|
13569
|
+
* parts listed — the same search searchProduct() runs, reshaped to a one-argument object so a
|
|
13570
|
+
* caller does not need to know the two-step (search, then fetch documents per variant)
|
|
13571
|
+
* internal shape just to ask "does this product have spare parts". `found: false` is a real
|
|
13572
|
+
* answer, not an error.
|
|
13573
|
+
*/
|
|
13574
|
+
searchPlaygroundSpareParts(args: { product_no: string; region?: KompanRegion }): Promise<KompanSearchResult>;
|
|
12303
13575
|
}
|
|
12304
13576
|
}
|
|
12305
13577
|
|
|
@@ -12887,6 +14159,42 @@ interface LiquiddeathLiveCart {
|
|
|
12887
14159
|
}
|
|
12888
14160
|
}
|
|
12889
14161
|
|
|
14162
|
+
declare namespace BowmarkProvider_liquidspace {
|
|
14163
|
+
// ── LiquidSpace — the unit's own declarations, verbatim ──
|
|
14164
|
+
interface LiquidspaceWorkspaceRow {
|
|
14165
|
+
venueName: string;
|
|
14166
|
+
venueAddress: string;
|
|
14167
|
+
workspaceName: string; // e.g. "Coworking Daypass"
|
|
14168
|
+
scenario: string | null; // LiquidSpace's own category label, e.g. "Coworking"
|
|
14169
|
+
capacity: number | null;
|
|
14170
|
+
priceAmount: string; // e.g. "$45"
|
|
14171
|
+
priceAmountValue: number;
|
|
14172
|
+
priceDescription: string; // "/day-pass" for every row this function returns
|
|
14173
|
+
bookingUrl: string; // this workspace's own LiquidSpace page
|
|
14174
|
+
latitude: number;
|
|
14175
|
+
longitude: number;
|
|
14176
|
+
averageRating: number | null;
|
|
14177
|
+
ratesCount: number | null;
|
|
14178
|
+
}
|
|
14179
|
+
|
|
14180
|
+
/**
|
|
14181
|
+
* LiquidSpace's own city-listing pages — day-pass coworking pricing and availability across
|
|
14182
|
+
* WeWork, Industrious, Regus/Spaces and independent operators in one place, read directly from
|
|
14183
|
+
* the site's own embedded listing data, no browser.
|
|
14184
|
+
*/
|
|
14185
|
+
interface Unit {
|
|
14186
|
+
/**
|
|
14187
|
+
* Reads LiquidSpace's own city-listing page for `state` (a US state abbreviation, e.g. "NY")
|
|
14188
|
+
* and `city` (e.g. "New York") and returns every workspace priced as a single-day coworking
|
|
14189
|
+
* pass — venue name/address, the workspace's own display name and category, price, capacity,
|
|
14190
|
+
* coordinates and rating, plus a direct link to book it (booking itself needs a signed-in
|
|
14191
|
+
* LiquidSpace account and is out of scope). Returns `[]` when the city page carries no
|
|
14192
|
+
* day-pass inventory today — a real, complete answer, not a failure.
|
|
14193
|
+
*/
|
|
14194
|
+
search(input: { city: string; state: string }): Promise<LiquidspaceWorkspaceRow[]>;
|
|
14195
|
+
}
|
|
14196
|
+
}
|
|
14197
|
+
|
|
12890
14198
|
declare namespace BowmarkProvider_littlewordsproject {
|
|
12891
14199
|
// ── Little Words Project — the unit's own declarations, verbatim ──
|
|
12892
14200
|
interface LittleWordsProjectOption {
|
|
@@ -13649,6 +14957,37 @@ interface mailchimpPlanPricing {
|
|
|
13649
14957
|
}
|
|
13650
14958
|
}
|
|
13651
14959
|
|
|
14960
|
+
declare namespace BowmarkProvider_marketplace_visualstudio {
|
|
14961
|
+
// ── Visual Studio Code Marketplace — the unit's own declarations, verbatim ──
|
|
14962
|
+
interface marketplaceExtensionStats {
|
|
14963
|
+
extensionId: string;
|
|
14964
|
+
displayName: string;
|
|
14965
|
+
publisherDisplayName: string;
|
|
14966
|
+
shortDescription: string;
|
|
14967
|
+
version: string;
|
|
14968
|
+
lastUpdated: string;
|
|
14969
|
+
installCount: number;
|
|
14970
|
+
averageRating: number | null;
|
|
14971
|
+
ratingCount: number;
|
|
14972
|
+
}
|
|
14973
|
+
|
|
14974
|
+
/**
|
|
14975
|
+
* The VS Code Marketplace — look up one extension by its publisher.name id and get its install
|
|
14976
|
+
* count, rating and latest version, the numbers the extension's own Marketplace page shows.
|
|
14977
|
+
*/
|
|
14978
|
+
interface Unit {
|
|
14979
|
+
/**
|
|
14980
|
+
* Looks up one VS Code extension by its "publisher.name" id — the id shown in the extension's
|
|
14981
|
+
* own Marketplace URL (e.g. "ms-python.python" for
|
|
14982
|
+
* marketplace.visualstudio.com/items?itemName=ms-python.python) and in `code
|
|
14983
|
+
* --list-extensions` — and returns its install count, average rating, rating count, latest
|
|
14984
|
+
* published version and when that version last updated. Throws if the id does not match any
|
|
14985
|
+
* published extension.
|
|
14986
|
+
*/
|
|
14987
|
+
getExtensionStats(extensionId: string): Promise<marketplaceExtensionStats>;
|
|
14988
|
+
}
|
|
14989
|
+
}
|
|
14990
|
+
|
|
13652
14991
|
declare namespace BowmarkProvider_marriott {
|
|
13653
14992
|
// ── Marriott — the unit's own declarations, verbatim ──
|
|
13654
14993
|
interface MarriottHotelListing {
|
|
@@ -13801,6 +15140,39 @@ interface mcdonaldsFindStoresResult {
|
|
|
13801
15140
|
}
|
|
13802
15141
|
}
|
|
13803
15142
|
|
|
15143
|
+
declare namespace BowmarkProvider_mcp_registry {
|
|
15144
|
+
// ── MCP Registry — the unit's own declarations, verbatim ──
|
|
15145
|
+
interface mcpRegistryEntry {
|
|
15146
|
+
name: string;
|
|
15147
|
+
title: string | null;
|
|
15148
|
+
description: string;
|
|
15149
|
+
version: string;
|
|
15150
|
+
repositoryUrl: string | null;
|
|
15151
|
+
remoteUrl: string | null;
|
|
15152
|
+
status: string;
|
|
15153
|
+
}
|
|
15154
|
+
|
|
15155
|
+
/**
|
|
15156
|
+
* The official Model Context Protocol server registry — search or browse published MCP servers
|
|
15157
|
+
* by name, and get each one's install/connect URL.
|
|
15158
|
+
*/
|
|
15159
|
+
interface Unit {
|
|
15160
|
+
/**
|
|
15161
|
+
* Lists or searches the official MCP server registry (registry.modelcontextprotocol.io) — the
|
|
15162
|
+
* community-run directory of published Model Context Protocol servers, the same catalogue the
|
|
15163
|
+
* registry's own web UI browses. `query` substring-matches the registry NAME (e.g. "weather"
|
|
15164
|
+
* matches `ai.smithery/smithery-ai-national-weather-service`); omit it to list the
|
|
15165
|
+
* newest-published entries. Each row carries the registry name, an optional title, its
|
|
15166
|
+
* description, its latest published version, where to install it (`repositoryUrl`) or connect
|
|
15167
|
+
* to it if it's hosted (`remoteUrl`), and the registry's own status (`"active"`,
|
|
15168
|
+
* `"deprecated"`, …). `limit` caps how many rows come back (default 30, registry maximum 100)
|
|
15169
|
+
* — this is a flat list, not a paged walk, since a caller asking "is there an MCP server for
|
|
15170
|
+
* X" wants the top matches, not the whole registry.
|
|
15171
|
+
*/
|
|
15172
|
+
search(query?: string, limit?: number): Promise<mcpRegistryEntry[]>;
|
|
15173
|
+
}
|
|
15174
|
+
}
|
|
15175
|
+
|
|
13804
15176
|
declare namespace BowmarkProvider_medicalguardian {
|
|
13805
15177
|
// ── Medical Guardian — the unit's own declarations, verbatim ──
|
|
13806
15178
|
// Medical Guardian's OWN shapes — not a capability contract.
|
|
@@ -14576,6 +15948,57 @@ interface medicareGetPlanQuery {
|
|
|
14576
15948
|
}
|
|
14577
15949
|
}
|
|
14578
15950
|
|
|
15951
|
+
declare namespace BowmarkProvider_mergify {
|
|
15952
|
+
// ── Mergify — the unit's own declarations, verbatim ──
|
|
15953
|
+
interface mergifyBatch {
|
|
15954
|
+
id: string;
|
|
15955
|
+
name: string;
|
|
15956
|
+
statusCode: string;
|
|
15957
|
+
batchFilledSlots: number | null;
|
|
15958
|
+
maxBatchSlots: number | null;
|
|
15959
|
+
retries: number;
|
|
15960
|
+
maxRetries: number;
|
|
15961
|
+
startedAt: string | null;
|
|
15962
|
+
estimatedMergeAt: string | null;
|
|
15963
|
+
estimatedCiFinishAt: string | null;
|
|
15964
|
+
ciFinishedAt: string | null;
|
|
15965
|
+
queueRuleName: string;
|
|
15966
|
+
checksPassed: number;
|
|
15967
|
+
checksTotal: number;
|
|
15968
|
+
pullRequestNumbers: number[];
|
|
15969
|
+
}
|
|
15970
|
+
interface mergifyQueuedPull {
|
|
15971
|
+
number: number;
|
|
15972
|
+
title: string;
|
|
15973
|
+
url: string;
|
|
15974
|
+
author: string | null;
|
|
15975
|
+
queuedAt: string;
|
|
15976
|
+
priorityRuleName: string | null;
|
|
15977
|
+
estimatedMergeAt: string | null;
|
|
15978
|
+
}
|
|
15979
|
+
interface mergifyQueueStatus {
|
|
15980
|
+
batches: mergifyBatch[];
|
|
15981
|
+
waitingPullRequests: mergifyQueuedPull[];
|
|
15982
|
+
paused: boolean;
|
|
15983
|
+
pauseReason: string | null;
|
|
15984
|
+
}
|
|
15985
|
+
|
|
15986
|
+
/**
|
|
15987
|
+
* Mergify's own documented REST API (api.mergify.com) — the live state of a repo's merge
|
|
15988
|
+
* queue: active batches, their checks and estimated merge times, and every pull request still
|
|
15989
|
+
* waiting to be batched.
|
|
15990
|
+
*/
|
|
15991
|
+
interface Unit {
|
|
15992
|
+
/**
|
|
15993
|
+
* The live state of a repo's Mergify merge queue via Mergify's documented REST API — every
|
|
15994
|
+
* active batch (status, checks-passed count, estimated merge/CI-finish times, and its pull
|
|
15995
|
+
* requests), every pull request still waiting to be batched, and whether the queue is paused.
|
|
15996
|
+
* Requires a Mergify Application Key or a GitHub token — see this provider's `auth`.
|
|
15997
|
+
*/
|
|
15998
|
+
queueStatus(args: { owner: string; repo: string }): Promise<mergifyQueueStatus>;
|
|
15999
|
+
}
|
|
16000
|
+
}
|
|
16001
|
+
|
|
14579
16002
|
declare namespace BowmarkProvider_microcenter {
|
|
14580
16003
|
// ── Micro Center — the unit's own declarations, verbatim ──
|
|
14581
16004
|
// Micro Center's OWN row shape — not the `pcparts` capability contract.
|
|
@@ -14692,6 +16115,37 @@ interface StoreShelfRoster {
|
|
|
14692
16115
|
}
|
|
14693
16116
|
}
|
|
14694
16117
|
|
|
16118
|
+
declare namespace BowmarkProvider_minimax {
|
|
16119
|
+
// ── MiniMax — the unit's own declarations, verbatim ──
|
|
16120
|
+
interface MinimaxDocIndexEntry {
|
|
16121
|
+
title: string;
|
|
16122
|
+
url: string;
|
|
16123
|
+
description: string | null;
|
|
16124
|
+
}
|
|
16125
|
+
|
|
16126
|
+
interface MinimaxDocPage {
|
|
16127
|
+
title: string;
|
|
16128
|
+
url: string;
|
|
16129
|
+
description: string | null;
|
|
16130
|
+
content: string;
|
|
16131
|
+
}
|
|
16132
|
+
|
|
16133
|
+
/**
|
|
16134
|
+
* MiniMax's own developer docs (platform.minimax.io) — resolves a topic against the site's own
|
|
16135
|
+
* machine-readable docs index and returns that page's title, url and full Markdown body.
|
|
16136
|
+
*/
|
|
16137
|
+
interface Unit {
|
|
16138
|
+
/**
|
|
16139
|
+
* Reads MiniMax's own developer documentation (platform.minimax.io). topic is a free-text
|
|
16140
|
+
* description of what you want, e.g. "text generation", "voice clone", "mcp guide" or "prompt
|
|
16141
|
+
* caching" — it is matched against the site's own docs index (title and url), and the matched
|
|
16142
|
+
* page's full Markdown body is returned. Throws naming real page titles when nothing matches
|
|
16143
|
+
* closely enough.
|
|
16144
|
+
*/
|
|
16145
|
+
getDocs(topic: string): Promise<MinimaxDocPage>;
|
|
16146
|
+
}
|
|
16147
|
+
}
|
|
16148
|
+
|
|
14695
16149
|
declare namespace BowmarkProvider_minted {
|
|
14696
16150
|
// ── Minted — the unit's own declarations, verbatim ──
|
|
14697
16151
|
// Minted's OWN shapes — not a capability contract.
|
|
@@ -15109,6 +16563,46 @@ interface MossyoakCheckoutLink {
|
|
|
15109
16563
|
* available — the error names the candidate or in-stock options so the caller can retry.
|
|
15110
16564
|
*/
|
|
15111
16565
|
getMossyoakCheckoutLink(handle: string, variantTitleOrOptions: string, opts?: { quantity?: number }): Promise<MossyoakCheckoutLink>;
|
|
16566
|
+
|
|
16567
|
+
/**
|
|
16568
|
+
* Reads the same live catalogue listMossyoakProducts does and filters it by product type
|
|
16569
|
+
* ("vest", "jacket", …, matched case-insensitively against each product's own productType)
|
|
16570
|
+
* before applying the limit — so a caller asking for one category does not have to fetch and
|
|
16571
|
+
* filter the whole storefront themselves. In-stock products first, then by handle. `warnings`
|
|
16572
|
+
* names it when the requested productType matched nothing.
|
|
16573
|
+
*/
|
|
16574
|
+
searchProducts(opts?: { productType?: string; limit?: number }): Promise<MossyoakCatalogue>;
|
|
16575
|
+
}
|
|
16576
|
+
}
|
|
16577
|
+
|
|
16578
|
+
declare namespace BowmarkProvider_muze_gov_tr {
|
|
16579
|
+
// ── muze.gov.tr — Turkey Ministry of Culture and Tourism museums portal — the unit's own declarations, verbatim ──
|
|
16580
|
+
interface MuzeVisitingHours {
|
|
16581
|
+
name: string;
|
|
16582
|
+
openingTime: string | null; // "HH:MM"
|
|
16583
|
+
closingTime: string | null; // "HH:MM"
|
|
16584
|
+
ticketOfficeClosingTime: string | null; // "HH:MM" — often earlier than closingTime
|
|
16585
|
+
closedDays: string | null; // the site's own Turkish wording, e.g. "Her gün açık"
|
|
16586
|
+
address: string | null;
|
|
16587
|
+
phone: string | null;
|
|
16588
|
+
email: string | null;
|
|
16589
|
+
url: string;
|
|
16590
|
+
}
|
|
16591
|
+
|
|
16592
|
+
/**
|
|
16593
|
+
* Turkey's Ministry of Culture and Tourism museums portal — opening/closing hours,
|
|
16594
|
+
* ticket-office closing time and closed days for the museums and archaeological sites it
|
|
16595
|
+
* publishes (İstanbul Archaeological Museums, Hagia Sophia History and Experience Museum,
|
|
16596
|
+
* Galata Tower Museum among them), read straight off the site's own listing and detail pages.
|
|
16597
|
+
*/
|
|
16598
|
+
interface Unit {
|
|
16599
|
+
/**
|
|
16600
|
+
* Matches `query` against muze.gov.tr's own museum-highlight listing (a substring match on the
|
|
16601
|
+
* site's own display name, e.g. "Galata Tower" or "Hagia Sophia") and reads that museum's
|
|
16602
|
+
* opening/closing hours, ticket-office closing time and closed days straight off its detail
|
|
16603
|
+
* page.
|
|
16604
|
+
*/
|
|
16605
|
+
getVisitingHours(query: string): Promise<MuzeVisitingHours>;
|
|
15112
16606
|
}
|
|
15113
16607
|
}
|
|
15114
16608
|
|
|
@@ -15628,6 +17122,14 @@ interface NvisioncentersSavingsResult {
|
|
|
15628
17122
|
calculatorUrl: string;
|
|
15629
17123
|
}
|
|
15630
17124
|
|
|
17125
|
+
interface NvisioncentersEstimateSavingsInput {
|
|
17126
|
+
age: number;
|
|
17127
|
+
glasses: number;
|
|
17128
|
+
glasses_cost: number;
|
|
17129
|
+
contacts: number;
|
|
17130
|
+
contacts_cost: number;
|
|
17131
|
+
}
|
|
17132
|
+
|
|
15631
17133
|
type NvisioncentersAgeBracket = "Under 18" | "18-34" | "35-54" | "55+";
|
|
15632
17134
|
|
|
15633
17135
|
interface NvisioncentersCandidacyInput {
|
|
@@ -15664,6 +17166,13 @@ interface NvisioncentersCandidacyResult {
|
|
|
15664
17166
|
* and prior-consultation history but its logic never uses either).
|
|
15665
17167
|
*/
|
|
15666
17168
|
checkLasikCandidacy(input: NvisioncentersCandidacyInput): Promise<NvisioncentersCandidacyResult>;
|
|
17169
|
+
|
|
17170
|
+
/**
|
|
17171
|
+
* Same calculation as calculateLasikSavings, taking the snake_case argument spelling
|
|
17172
|
+
* (glasses_cost, contacts_cost) a caller guessed instead of the provider's camelCase — an
|
|
17173
|
+
* alias, not a second calculator. Throws under the same condition calculateLasikSavings does.
|
|
17174
|
+
*/
|
|
17175
|
+
estimateLasikSavings(input: NvisioncentersEstimateSavingsInput): Promise<NvisioncentersSavingsResult>;
|
|
15667
17176
|
}
|
|
15668
17177
|
}
|
|
15669
17178
|
|
|
@@ -16523,6 +18032,35 @@ interface PizzahutDealsForRender {
|
|
|
16523
18032
|
}
|
|
16524
18033
|
}
|
|
16525
18034
|
|
|
18035
|
+
declare namespace BowmarkProvider_poshmark {
|
|
18036
|
+
// ── Poshmark — the unit's own declarations, verbatim ──
|
|
18037
|
+
interface PoshmarkSupportArticle {
|
|
18038
|
+
url: string;
|
|
18039
|
+
text: string;
|
|
18040
|
+
}
|
|
18041
|
+
|
|
18042
|
+
/**
|
|
18043
|
+
* Poshmark's own support-center documentation (support.poshmark.com) for Bulk Upload — the
|
|
18044
|
+
* CSV/template format and the zip-of-photos requirements for sellers listing many items at
|
|
18045
|
+
* once.
|
|
18046
|
+
*/
|
|
18047
|
+
interface Unit {
|
|
18048
|
+
/**
|
|
18049
|
+
* Reads Poshmark's own 'How to use Bulk Upload Templates' support article — required columns,
|
|
18050
|
+
* SKU rules, the .csv file requirement, Excel-version caveats — straight off
|
|
18051
|
+
* support.poshmark.com.
|
|
18052
|
+
*/
|
|
18053
|
+
getBulkUploadTemplateGuide(): Promise<PoshmarkSupportArticle>;
|
|
18054
|
+
|
|
18055
|
+
/**
|
|
18056
|
+
* Reads Poshmark's own 'How to create a Zip file for Bulk Upload' support article — how to zip
|
|
18057
|
+
* listing photos on Windows/Mac and which image types Bulk Upload accepts — straight off
|
|
18058
|
+
* support.poshmark.com.
|
|
18059
|
+
*/
|
|
18060
|
+
getZipFileGuide(): Promise<PoshmarkSupportArticle>;
|
|
18061
|
+
}
|
|
18062
|
+
}
|
|
18063
|
+
|
|
16526
18064
|
declare namespace BowmarkProvider_positivegrid {
|
|
16527
18065
|
// ── Positive Grid — the unit's own declarations, verbatim ──
|
|
16528
18066
|
interface positivegridFindRetailersArgs {
|
|
@@ -17356,6 +18894,45 @@ interface ContainerRecipeDetails {
|
|
|
17356
18894
|
}
|
|
17357
18895
|
}
|
|
17358
18896
|
|
|
18897
|
+
declare namespace BowmarkProvider_proxmox {
|
|
18898
|
+
// ── Proxmox — the unit's own declarations, verbatim ──
|
|
18899
|
+
type ProxmoxProductSlug =
|
|
18900
|
+
| "proxmox-virtual-environment"
|
|
18901
|
+
| "proxmox-backup-server"
|
|
18902
|
+
| "proxmox-mail-gateway"
|
|
18903
|
+
| "proxmox-datacenter-manager";
|
|
18904
|
+
|
|
18905
|
+
interface ProxmoxIsoDownload {
|
|
18906
|
+
product: ProxmoxProductSlug;
|
|
18907
|
+
productName: string;
|
|
18908
|
+
title: string;
|
|
18909
|
+
version: string;
|
|
18910
|
+
fileSizeText: string;
|
|
18911
|
+
lastUpdated: string;
|
|
18912
|
+
sha256: string | null;
|
|
18913
|
+
downloadUrl: string;
|
|
18914
|
+
torrentUrl: string | null;
|
|
18915
|
+
pageUrl: string;
|
|
18916
|
+
}
|
|
18917
|
+
|
|
18918
|
+
/**
|
|
18919
|
+
* Open-source virtualization/backup/mail-security vendor. getIsoDownloads is live — the
|
|
18920
|
+
* current ISO installer(s) for any or all of Proxmox VE, Proxmox Backup Server, Proxmox Mail
|
|
18921
|
+
* Gateway and Proxmox Datacenter Manager, straight off proxmox.com's own downloads pages:
|
|
18922
|
+
* version, file size, last-updated date, SHA256 checksum, and the real enterprise.proxmox.com
|
|
18923
|
+
* download/torrent URLs.
|
|
18924
|
+
*/
|
|
18925
|
+
interface Unit {
|
|
18926
|
+
/**
|
|
18927
|
+
* Gets the current ISO installer download(s) for one Proxmox product, or for all four when
|
|
18928
|
+
* `product` is omitted. Proxmox VE's own downloads page additionally lists its current arm64
|
|
18929
|
+
* build and three prior major versions (8.4-1, 7.4-1, 6.4-1) alongside the current amd64
|
|
18930
|
+
* release — every card the site publishes comes back, not just the newest one.
|
|
18931
|
+
*/
|
|
18932
|
+
getIsoDownloads(product?: "proxmox-virtual-environment" | "proxmox-backup-server" | "proxmox-mail-gateway" | "proxmox-datacenter-manager"): Promise<ProxmoxIsoDownload[]>;
|
|
18933
|
+
}
|
|
18934
|
+
}
|
|
18935
|
+
|
|
17359
18936
|
declare namespace BowmarkProvider_reddit {
|
|
17360
18937
|
// ── Reddit — the unit's own declarations, verbatim ──
|
|
17361
18938
|
interface RedditSearchPost {
|
|
@@ -18884,6 +20461,43 @@ interface SitmeanssitNearestLocationsResult {
|
|
|
18884
20461
|
}
|
|
18885
20462
|
}
|
|
18886
20463
|
|
|
20464
|
+
declare namespace BowmarkProvider_sixflags {
|
|
20465
|
+
// ── Six Flags — the unit's own declarations, verbatim ──
|
|
20466
|
+
interface SixFlagsPassRow {
|
|
20467
|
+
id: string | null;
|
|
20468
|
+
guestFacingTitle: string; // e.g. "Park Ticket", "2027 Gold Pass"
|
|
20469
|
+
subtitle: string | null;
|
|
20470
|
+
beforePriceText: string | null; // e.g. "Starting From", "Only"
|
|
20471
|
+
currentPrice: string; // the site's raw text, e.g. "$$55"
|
|
20472
|
+
currentPriceModifier: string | null; // e.g. "/ea*", "per night"
|
|
20473
|
+
strikethroughPrice: string | null; // the struck-through "was" price
|
|
20474
|
+
buyUrl: string | null;
|
|
20475
|
+
}
|
|
20476
|
+
interface SixFlagsTicketsResult {
|
|
20477
|
+
parkSlug: string;
|
|
20478
|
+
parkTitle: string;
|
|
20479
|
+
groupLabel: string; // e.g. "Daily Tickets"
|
|
20480
|
+
passes: SixFlagsPassRow[];
|
|
20481
|
+
}
|
|
20482
|
+
|
|
20483
|
+
/**
|
|
20484
|
+
* Reads a Six Flags/Cedar Fair park's own daily-tickets page — every park in the merged
|
|
20485
|
+
* portfolio (Six Flags Magic Mountain, Cedar Point, Kings Island, Knott's Berry Farm,
|
|
20486
|
+
* Carowinds and ~30 more) runs on one shared site — and returns its current ticket/pass cards
|
|
20487
|
+
* straight out of the page's own server-rendered data, no browser.
|
|
20488
|
+
*/
|
|
20489
|
+
interface Unit {
|
|
20490
|
+
/**
|
|
20491
|
+
* Reads a Six Flags/Cedar Fair park's own daily-tickets page by its sixflags.com URL slug
|
|
20492
|
+
* (e.g. `"cedarpoint"`, `"greatadventure"`, `"magicmountain"`, `"knotts"`) and returns its
|
|
20493
|
+
* ticket/pass cards exactly as published today — title, subtitle, raw price text (the site
|
|
20494
|
+
* renders it as `"$$55"`, i.e. `"$" + "$55"`), any "was" price, and a buy/learn-more link.
|
|
20495
|
+
* Throws if the slug does not resolve to a real park page on the site.
|
|
20496
|
+
*/
|
|
20497
|
+
getTickets(park: string): Promise<SixFlagsTicketsResult>;
|
|
20498
|
+
}
|
|
20499
|
+
}
|
|
20500
|
+
|
|
18887
20501
|
declare namespace BowmarkProvider_smartsign {
|
|
18888
20502
|
// ── SmartSign — the unit's own declarations, verbatim ──
|
|
18889
20503
|
interface SmartsignSearchResult {
|
|
@@ -18960,6 +20574,60 @@ interface SmartwoolSockFinderResult {
|
|
|
18960
20574
|
}
|
|
18961
20575
|
}
|
|
18962
20576
|
|
|
20577
|
+
declare namespace BowmarkProvider_smithery {
|
|
20578
|
+
// ── Smithery — the unit's own declarations, verbatim ──
|
|
20579
|
+
interface SmitheryServer {
|
|
20580
|
+
id: string;
|
|
20581
|
+
qualifiedName: string;
|
|
20582
|
+
namespace: string | null;
|
|
20583
|
+
slug: string | null;
|
|
20584
|
+
displayName: string;
|
|
20585
|
+
description: string;
|
|
20586
|
+
iconUrl: string | null;
|
|
20587
|
+
verified: boolean;
|
|
20588
|
+
useCount: number;
|
|
20589
|
+
remote: boolean | null;
|
|
20590
|
+
isDeployed: boolean;
|
|
20591
|
+
createdAt: string;
|
|
20592
|
+
homepage: string;
|
|
20593
|
+
bySmithery: boolean;
|
|
20594
|
+
owner: string | null;
|
|
20595
|
+
score: number | null;
|
|
20596
|
+
}
|
|
20597
|
+
interface SmitherySearchOptions {
|
|
20598
|
+
page?: number;
|
|
20599
|
+
pageSize?: number;
|
|
20600
|
+
verified?: boolean;
|
|
20601
|
+
remote?: boolean;
|
|
20602
|
+
isDeployed?: boolean;
|
|
20603
|
+
namespace?: string;
|
|
20604
|
+
}
|
|
20605
|
+
interface SmitherySearchResult {
|
|
20606
|
+
servers: SmitheryServer[];
|
|
20607
|
+
pagination: { currentPage: number; pageSize: number; totalPages: number; totalCount: number };
|
|
20608
|
+
warnings: string[];
|
|
20609
|
+
}
|
|
20610
|
+
|
|
20611
|
+
/**
|
|
20612
|
+
* Smithery's own registry REST API, keyless. Built: full-text/semantic search over listed MCP
|
|
20613
|
+
* servers, returning each server's qualified name, description, verification status, deploy
|
|
20614
|
+
* status and use count.
|
|
20615
|
+
*/
|
|
20616
|
+
interface Unit {
|
|
20617
|
+
/**
|
|
20618
|
+
* Full-text/semantic search over Smithery's public MCP server registry. Pass a qualified name
|
|
20619
|
+
* (e.g. "lama/demo-mcp"), a slug, or a keyword as `query` — a known qualified name resolves as
|
|
20620
|
+
* the top hit. Each returned server carries `verified` (Smithery's own verification badge),
|
|
20621
|
+
* `isDeployed`, `useCount`, `homepage` and `description`.
|
|
20622
|
+
* `options.verified`/`options.remote`/`options.isDeployed`/`options.namespace` filter the
|
|
20623
|
+
* search; `options.page`/`options.pageSize` page through results (Smithery's own default 10,
|
|
20624
|
+
* max 100 per page). THROWS on a non-2xx response (e.g. rate limiting); an empty `servers`
|
|
20625
|
+
* array is a legitimate answer for a query that matches nothing, not a throw.
|
|
20626
|
+
*/
|
|
20627
|
+
search(query: string, options?: SmitherySearchOptions): Promise<SmitherySearchResult>;
|
|
20628
|
+
}
|
|
20629
|
+
}
|
|
20630
|
+
|
|
18963
20631
|
declare namespace BowmarkProvider_solostove {
|
|
18964
20632
|
// ── Solo Stove — the unit's own declarations, verbatim ──
|
|
18965
20633
|
interface SolostoveBundleComponent {
|
|
@@ -19780,13 +21448,13 @@ interface tamarackidahoUnit {
|
|
|
19780
21448
|
/**
|
|
19781
21449
|
* Searches Tamarack Resort's own direct-managed lodging (the Lodge at Osprey Meadows, the
|
|
19782
21450
|
* Village at Tamarack Resort, and Tamarack Homes and Cottages — not the golf tee-time flow, a
|
|
19783
|
-
* different vendor) for a stay and party size. `arrivalDate`/`departureDate` are "MM
|
|
19784
|
-
* strings (the
|
|
19785
|
-
* defaults to 0. Returns every unit type
|
|
19786
|
-
* currently prices as AVAILABLE for that exact
|
|
19787
|
-
* name, and `totalPrice` in USD for the whole
|
|
19788
|
-
* per call, not a cached listing. An empty
|
|
19789
|
-
* nothing available for that stay, not a failure.
|
|
21451
|
+
* different vendor) for a stay and party size. `arrivalDate`/`departureDate` are "YYYY-MM-DD"
|
|
21452
|
+
* strings (the site's own "MM/DD/YYYY" is accepted as well and echoed back unchanged),
|
|
21453
|
+
* `adultCount` is required and positive, `childCount` defaults to 0. Returns every unit type
|
|
21454
|
+
* Tamarack's own booking engine (Inntopia RTP) currently prices as AVAILABLE for that exact
|
|
21455
|
+
* query — each with its supplier (property), unit name, and `totalPrice` in USD for the whole
|
|
21456
|
+
* queried stay (not nightly) — genuinely computed per call, not a cached listing. An empty
|
|
21457
|
+
* `units` array is a real answer: Tamarack has nothing available for that stay, not a failure.
|
|
19790
21458
|
*/
|
|
19791
21459
|
searchLodging(args: tamarackidahoSearchArgs): Promise<tamarackidahoSearchResult>;
|
|
19792
21460
|
}
|
|
@@ -20478,6 +22146,9 @@ interface thezebraAutoDriver {
|
|
|
20478
22146
|
lastName: string
|
|
20479
22147
|
dob: string // ISO YYYY-MM-DD — carriers rate on the DATE, not on an age
|
|
20480
22148
|
email: string
|
|
22149
|
+
ageFirstLicensed?: number // default 16 when omitted
|
|
22150
|
+
violations?: { accidents: number, claims: number, tickets: number } // default a clean record
|
|
22151
|
+
occupation?: string // default "OTHER" — the only two confirmed-valid values are "OTHER" and "ENGINEER"
|
|
20481
22152
|
}
|
|
20482
22153
|
|
|
20483
22154
|
interface thezebraAutoVehicle {
|
|
@@ -20693,26 +22364,30 @@ interface thezebraAutoQuotes {
|
|
|
20693
22364
|
* carrier's own monthly and six-month premium, deductible, and the coverage it priced, as The
|
|
20694
22365
|
* Zebra's auto quote funnel prices them. This is a priced offer for the person asking, NOT the
|
|
20695
22366
|
* published averages `getStateRates` and its siblings return. Pass `driver` (`firstName`,
|
|
20696
|
-
* `lastName`, `dob` ISO YYYY-MM-DD, `email
|
|
20697
|
-
*
|
|
20698
|
-
*
|
|
20699
|
-
*
|
|
20700
|
-
*
|
|
20701
|
-
*
|
|
20702
|
-
*
|
|
20703
|
-
*
|
|
20704
|
-
*
|
|
20705
|
-
*
|
|
20706
|
-
*
|
|
20707
|
-
* `agents/
|
|
20708
|
-
*
|
|
20709
|
-
*
|
|
20710
|
-
*
|
|
20711
|
-
*
|
|
20712
|
-
*
|
|
20713
|
-
*
|
|
20714
|
-
*
|
|
20715
|
-
*
|
|
22367
|
+
* `lastName`, `dob` ISO YYYY-MM-DD, `email`, and optionally
|
|
22368
|
+
* `ageFirstLicensed`/`violations`/`occupation` — each defaults to a clean-record placeholder
|
|
22369
|
+
* when omitted), one `vehicle` (`year`, `make`, `model` — a model The Zebra does not rate
|
|
22370
|
+
* THROWS naming the URL it tried), the 2-letter `state`, a 5-digit `zip`, and `county` (the
|
|
22371
|
+
* county the ZIP sits in — The Zebra validates it server-side and a missing or wrong county is
|
|
22372
|
+
* bounced). **The write always binds** — the GraphQL gateway at
|
|
22373
|
+
* `graphql-gateway.production.thezebra.com` accepts the seed and returns 200 — but AS OF
|
|
22374
|
+
* 2026-08-27 the results route was bouncing the session to the homepage because
|
|
22375
|
+
* `LegacyDriverInput` and `LegacyVehicleInput` accept more fields than an earlier version of
|
|
22376
|
+
* this function sent; the measured field map (every field on both inputs, which are confirmed
|
|
22377
|
+
* valid, which are still unmeasured) lives in
|
|
22378
|
+
* `agents/richard/problems/thezebra-getautoquotes-broken.md` and is not re-derived here. The
|
|
22379
|
+
* function throws on a bounce with a message naming the redirect target; `vehicle.submodel`,
|
|
22380
|
+
* `driver.education` and `driver.creditScore` remain unsent because no valid value for any of
|
|
22381
|
+
* them is confirmed yet — sending a guess cannot break the write (all three are nullable) but
|
|
22382
|
+
* a wrong guess would look like a fix without being one, so they stay out until a live probe
|
|
22383
|
+
* confirms a value. **`advertisedCarriers` is not a quote list and must never be read as
|
|
22384
|
+
* one**: the results page would carry paid carrier placements alongside real offers, separated
|
|
22385
|
+
* by `data-cy="results-card_ad_<carrier>"` (ad) versus `data-cy="results-card_q2b_<carrier>"`
|
|
22386
|
+
* (real offer), and the advertised names are returned in their own field with no price
|
|
22387
|
+
* attached. Every premium is USD and `monthlyPremium` is per MONTH — the card's own period is
|
|
22388
|
+
* checked rather than assumed, and a card printing any other term THROWS instead of
|
|
22389
|
+
* relabelling a figure. `totalPremium` is the site's own whole-term number and is never
|
|
22390
|
+
* divided out of the monthly one.
|
|
20716
22391
|
*/
|
|
20717
22392
|
getAutoQuotes(query: thezebraAutoQuotesQuery): Promise<thezebraAutoQuotes>;
|
|
20718
22393
|
}
|
|
@@ -21308,25 +22983,28 @@ interface upsRatedShipment {
|
|
|
21308
22983
|
declare namespace BowmarkProvider_usps {
|
|
21309
22984
|
// ── USPS — the unit's own declarations, verbatim ──
|
|
21310
22985
|
interface uspsRateOption {
|
|
21311
|
-
|
|
22986
|
+
postageServiceId: number;
|
|
21312
22987
|
description: string;
|
|
21313
|
-
mailClass: string;
|
|
21314
22988
|
price: number;
|
|
21315
|
-
|
|
22989
|
+
commercialPrice: number | null;
|
|
22990
|
+
deliveryDay: string | null;
|
|
22991
|
+
flatRateBox: string | null;
|
|
21316
22992
|
}
|
|
21317
22993
|
|
|
21318
22994
|
/**
|
|
21319
|
-
* USPS's own
|
|
21320
|
-
* across USPS
|
|
21321
|
-
*
|
|
22995
|
+
* USPS's own Retail Postage Price Calculator (postcalc.usps.com) — prices a domestic package
|
|
22996
|
+
* across every USPS Mail Service that quotes it for a ZIP-to-ZIP move, weight and optional
|
|
22997
|
+
* dimensions, and returns the counter price, the discounted Click-N-Ship price and USPS's own
|
|
22998
|
+
* delivery-commitment date. One keyless GET to the calculator's own JSON endpoint. No key, no
|
|
22999
|
+
* browser.
|
|
21322
23000
|
*/
|
|
21323
23001
|
interface Unit {
|
|
21324
23002
|
/**
|
|
21325
|
-
* Prices a domestic package across every USPS Mail
|
|
23003
|
+
* Prices a domestic package across every USPS Mail Service that quotes it, between two 5-digit
|
|
21326
23004
|
* ZIP Codes, for a weight in ounces and optional length/width/height in inches (all three or
|
|
21327
|
-
* none). Returns USPS's own
|
|
21328
|
-
*
|
|
21329
|
-
*
|
|
23005
|
+
* none). Returns USPS's own retail counter price, its discounted Click-N-Ship price where one
|
|
23006
|
+
* exists, and its delivery-commitment date — the Retail Postage Price Calculator's own
|
|
23007
|
+
* numbers. Needs no API key.
|
|
21330
23008
|
*/
|
|
21331
23009
|
getRate(args: { fromZip: string; toZip: string; weightOz: number; length?: number; width?: number; height?: number }): Promise<uspsRateOption[]>;
|
|
21332
23010
|
}
|
|
@@ -21544,20 +23222,21 @@ interface VillagerealtyobxQuote {
|
|
|
21544
23222
|
* Searches Village Realty's own 900+ Outer Banks rental listings the way
|
|
21545
23223
|
* villagerealtyobx.com/outer-banks-vacation-rentals does — filter by town (e.g. "Corolla",
|
|
21546
23224
|
* "Nags Head"), exact bedroom count, amenities (e.g. "Private Pool", "Elevator"), and
|
|
21547
|
-
* optionally a date range — returning each matching
|
|
21548
|
-
* bedroom count, max guests and detail-page URL. Call
|
|
21549
|
-
* a real priced quote.
|
|
23225
|
+
* optionally a date range (`checkin`/`checkout` as `YYYY-MM-DD`) — returning each matching
|
|
23226
|
+
* property's id, name, town, address, bedroom count, max guests and detail-page URL. Call
|
|
23227
|
+
* getQuote with a result's propertyID for a real priced quote.
|
|
21550
23228
|
*/
|
|
21551
23229
|
searchRentals(args?: { town?: string, bedrooms?: number, amenities?: string[], checkin?: string, checkout?: string, page?: number }): Promise<VillagerealtyobxListing[]>;
|
|
21552
23230
|
|
|
21553
23231
|
/**
|
|
21554
23232
|
* Gets a real-time price quote for one Village Realty property and date range — the exact
|
|
21555
23233
|
* server-computed rent, taxes and total the rental detail page shows after picking dates, plus
|
|
21556
|
-
* the book-now URL. `checkin`/`checkout` are `MM/DD/YYYY
|
|
21557
|
-
*
|
|
21558
|
-
*
|
|
21559
|
-
*
|
|
21560
|
-
*
|
|
23234
|
+
* the book-now URL. `checkin`/`checkout` are `YYYY-MM-DD` (the site's own `MM/DD/YYYY` is
|
|
23235
|
+
* accepted too, and whichever you pass is echoed back unchanged). `available: false` is a
|
|
23236
|
+
* genuine site answer (e.g. the dates fail the property's minimum-night-stay rule), not an
|
|
23237
|
+
* error — this is the flow ChatGPT itself cannot operate today: asked to price a Village
|
|
23238
|
+
* Realty stay it answers "I can't complete the booking or take payment for you" and recommends
|
|
23239
|
+
* competitor sites instead of quoting Village Realty's own live price.
|
|
21561
23240
|
*/
|
|
21562
23241
|
getQuote(args: { propertyID: string, checkin: string, checkout: string }): Promise<VillagerealtyobxQuote>;
|
|
21563
23242
|
}
|
|
@@ -23250,9 +24929,12 @@ interface ShopifyCart {
|
|
|
23250
24929
|
* string, so there is no camelCase alias to be uncertain about. */
|
|
23251
24930
|
interface BowmarkProviders {
|
|
23252
24931
|
aa: BowmarkProvider_aa.Unit;
|
|
24932
|
+
aauto: BowmarkProvider_aauto.Unit;
|
|
23253
24933
|
abercrombie: BowmarkProvider_abercrombie.Unit;
|
|
23254
24934
|
aiper: BowmarkProvider_aiper.Unit;
|
|
23255
24935
|
ajmadison: BowmarkProvider_ajmadison.Unit;
|
|
24936
|
+
allied: BowmarkProvider_allied.Unit;
|
|
24937
|
+
alphavantage: BowmarkProvider_alphavantage.Unit;
|
|
23256
24938
|
americanstandard: BowmarkProvider_americanstandard.Unit;
|
|
23257
24939
|
amramp: BowmarkProvider_amramp.Unit;
|
|
23258
24940
|
ancientnutrition: BowmarkProvider_ancientnutrition.Unit;
|
|
@@ -23270,7 +24952,9 @@ interface BowmarkProviders {
|
|
|
23270
24952
|
azure: BowmarkProvider_azure.Unit;
|
|
23271
24953
|
barletta: BowmarkProvider_barletta.Unit;
|
|
23272
24954
|
baublebar: BowmarkProvider_baublebar.Unit;
|
|
24955
|
+
bcparkscamping: BowmarkProvider_bcparkscamping.Unit;
|
|
23273
24956
|
beatthebomb: BowmarkProvider_beatthebomb.Unit;
|
|
24957
|
+
bennington: BowmarkProvider_bennington.Unit;
|
|
23274
24958
|
bestbuy: BowmarkProvider_bestbuy.Unit;
|
|
23275
24959
|
bhphoto: BowmarkProvider_bhphoto.Unit;
|
|
23276
24960
|
bigjoeforklifts: BowmarkProvider_bigjoeforklifts.Unit;
|
|
@@ -23288,6 +24972,7 @@ interface BowmarkProviders {
|
|
|
23288
24972
|
bykoket: BowmarkProvider_bykoket.Unit;
|
|
23289
24973
|
byltbasics: BowmarkProvider_byltbasics.Unit;
|
|
23290
24974
|
califloors: BowmarkProvider_califloors.Unit;
|
|
24975
|
+
camelcamelcamel: BowmarkProvider_camelcamelcamel.Unit;
|
|
23291
24976
|
cancer: BowmarkProvider_cancer.Unit;
|
|
23292
24977
|
capitalbrands: BowmarkProvider_capitalbrands.Unit;
|
|
23293
24978
|
caraway: BowmarkProvider_caraway.Unit;
|
|
@@ -23310,12 +24995,14 @@ interface BowmarkProviders {
|
|
|
23310
24995
|
davidsonhomes: BowmarkProvider_davidsonhomes.Unit;
|
|
23311
24996
|
deangroup: BowmarkProvider_deangroup.Unit;
|
|
23312
24997
|
decked: BowmarkProvider_decked.Unit;
|
|
24998
|
+
developersopenai: BowmarkProvider_developersopenai.Unit;
|
|
23313
24999
|
dice: BowmarkProvider_dice.Unit;
|
|
23314
25000
|
dickssportinggoods: BowmarkProvider_dickssportinggoods.Unit;
|
|
23315
25001
|
dillards: BowmarkProvider_dillards.Unit;
|
|
23316
25002
|
discounttire: BowmarkProvider_discounttire.Unit;
|
|
23317
25003
|
disney: BowmarkProvider_disney.Unit;
|
|
23318
25004
|
ebay: BowmarkProvider_ebay.Unit;
|
|
25005
|
+
elevenlabs: BowmarkProvider_elevenlabs.Unit;
|
|
23319
25006
|
embroker: BowmarkProvider_embroker.Unit;
|
|
23320
25007
|
eq3: BowmarkProvider_eq3.Unit;
|
|
23321
25008
|
erieinsurance: BowmarkProvider_erieinsurance.Unit;
|
|
@@ -23337,6 +25024,7 @@ interface BowmarkProviders {
|
|
|
23337
25024
|
geico: BowmarkProvider_geico.Unit;
|
|
23338
25025
|
github: BowmarkProvider_github.Unit;
|
|
23339
25026
|
glassesusa: BowmarkProvider_glassesusa.Unit;
|
|
25027
|
+
goodway: BowmarkProvider_goodway.Unit;
|
|
23340
25028
|
google_flights: BowmarkProvider_google_flights.Unit;
|
|
23341
25029
|
gotchacovered: BowmarkProvider_gotchacovered.Unit;
|
|
23342
25030
|
grainger: BowmarkProvider_grainger.Unit;
|
|
@@ -23363,6 +25051,7 @@ interface BowmarkProviders {
|
|
|
23363
25051
|
interiordefine: BowmarkProvider_interiordefine.Unit;
|
|
23364
25052
|
iproyal: BowmarkProvider_iproyal.Unit;
|
|
23365
25053
|
islllc: BowmarkProvider_islllc.Unit;
|
|
25054
|
+
istanbulkart: BowmarkProvider_istanbulkart.Unit;
|
|
23366
25055
|
ivoryhomes: BowmarkProvider_ivoryhomes.Unit;
|
|
23367
25056
|
jennikayne: BowmarkProvider_jennikayne.Unit;
|
|
23368
25057
|
joybird: BowmarkProvider_joybird.Unit;
|
|
@@ -23380,6 +25069,7 @@ interface BowmarkProviders {
|
|
|
23380
25069
|
legacyhomesal: BowmarkProvider_legacyhomesal.Unit;
|
|
23381
25070
|
linkedin: BowmarkProvider_linkedin.Unit;
|
|
23382
25071
|
liquiddeath: BowmarkProvider_liquiddeath.Unit;
|
|
25072
|
+
liquidspace: BowmarkProvider_liquidspace.Unit;
|
|
23383
25073
|
littlewordsproject: BowmarkProvider_littlewordsproject.Unit;
|
|
23384
25074
|
lonelyplanet: BowmarkProvider_lonelyplanet.Unit;
|
|
23385
25075
|
louvershop: BowmarkProvider_louvershop.Unit;
|
|
@@ -23388,16 +25078,21 @@ interface BowmarkProviders {
|
|
|
23388
25078
|
lululemon: BowmarkProvider_lululemon.Unit;
|
|
23389
25079
|
maidenhome: BowmarkProvider_maidenhome.Unit;
|
|
23390
25080
|
mailchimp: BowmarkProvider_mailchimp.Unit;
|
|
25081
|
+
marketplace_visualstudio: BowmarkProvider_marketplace_visualstudio.Unit;
|
|
23391
25082
|
marriott: BowmarkProvider_marriott.Unit;
|
|
23392
25083
|
mcdonalds: BowmarkProvider_mcdonalds.Unit;
|
|
25084
|
+
mcp_registry: BowmarkProvider_mcp_registry.Unit;
|
|
23393
25085
|
medicalguardian: BowmarkProvider_medicalguardian.Unit;
|
|
23394
25086
|
medicare: BowmarkProvider_medicare.Unit;
|
|
25087
|
+
mergify: BowmarkProvider_mergify.Unit;
|
|
23395
25088
|
microcenter: BowmarkProvider_microcenter.Unit;
|
|
25089
|
+
minimax: BowmarkProvider_minimax.Unit;
|
|
23396
25090
|
minted: BowmarkProvider_minted.Unit;
|
|
23397
25091
|
mixbook: BowmarkProvider_mixbook.Unit;
|
|
23398
25092
|
modularclosets: BowmarkProvider_modularclosets.Unit;
|
|
23399
25093
|
momondo: BowmarkProvider_momondo.Unit;
|
|
23400
25094
|
mossyoak: BowmarkProvider_mossyoak.Unit;
|
|
25095
|
+
muze_gov_tr: BowmarkProvider_muze_gov_tr.Unit;
|
|
23401
25096
|
naic: BowmarkProvider_naic.Unit;
|
|
23402
25097
|
namecheap: BowmarkProvider_namecheap.Unit;
|
|
23403
25098
|
nationalbusinessfurniture: BowmarkProvider_nationalbusinessfurniture.Unit;
|
|
@@ -23414,11 +25109,13 @@ interface BowmarkProviders {
|
|
|
23414
25109
|
perennialsandsutherland: BowmarkProvider_perennialsandsutherland.Unit;
|
|
23415
25110
|
pirateship: BowmarkProvider_pirateship.Unit;
|
|
23416
25111
|
pizzahut: BowmarkProvider_pizzahut.Unit;
|
|
25112
|
+
poshmark: BowmarkProvider_poshmark.Unit;
|
|
23417
25113
|
positivegrid: BowmarkProvider_positivegrid.Unit;
|
|
23418
25114
|
premierbuildings: BowmarkProvider_premierbuildings.Unit;
|
|
23419
25115
|
progressive: BowmarkProvider_progressive.Unit;
|
|
23420
25116
|
prose: BowmarkProvider_prose.Unit;
|
|
23421
25117
|
provenwinners: BowmarkProvider_provenwinners.Unit;
|
|
25118
|
+
proxmox: BowmarkProvider_proxmox.Unit;
|
|
23422
25119
|
reddit: BowmarkProvider_reddit.Unit;
|
|
23423
25120
|
reliancepartners: BowmarkProvider_reliancepartners.Unit;
|
|
23424
25121
|
resy: BowmarkProvider_resy.Unit;
|
|
@@ -23439,8 +25136,10 @@ interface BowmarkProviders {
|
|
|
23439
25136
|
sellcell: BowmarkProvider_sellcell.Unit;
|
|
23440
25137
|
semihandmade: BowmarkProvider_semihandmade.Unit;
|
|
23441
25138
|
sitmeanssit: BowmarkProvider_sitmeanssit.Unit;
|
|
25139
|
+
sixflags: BowmarkProvider_sixflags.Unit;
|
|
23442
25140
|
smartsign: BowmarkProvider_smartsign.Unit;
|
|
23443
25141
|
smartwool: BowmarkProvider_smartwool.Unit;
|
|
25142
|
+
smithery: BowmarkProvider_smithery.Unit;
|
|
23444
25143
|
solostove: BowmarkProvider_solostove.Unit;
|
|
23445
25144
|
soundcloud: BowmarkProvider_soundcloud.Unit;
|
|
23446
25145
|
starlighthomes: BowmarkProvider_starlighthomes.Unit;
|
|
@@ -75209,23 +76908,39 @@ interface BowmarkProviders {
|
|
|
75209
76908
|
* `run()` script, and the Proxy over HTTP in a caller's own process. They are
|
|
75210
76909
|
* generated once precisely so those two cannot drift. */
|
|
75211
76910
|
interface BowmarkLibrary {
|
|
76911
|
+
bundles: BowmarkCapability_bundles.Unit;
|
|
76912
|
+
cable_railing_quote: BowmarkCapability_cable_railing_quote.Unit;
|
|
75212
76913
|
cars: BowmarkCapability_cars.Unit;
|
|
76914
|
+
coworking: BowmarkCapability_coworking.Unit;
|
|
76915
|
+
custom_sofa_configurator: BowmarkCapability_custom_sofa_configurator.Unit;
|
|
76916
|
+
developer_api_key_signup: BowmarkCapability_developer_api_key_signup.Unit;
|
|
76917
|
+
domain: BowmarkCapability_domain.Unit;
|
|
75213
76918
|
email: BowmarkCapability_email.Unit;
|
|
75214
76919
|
flights: BowmarkCapability_flights.Unit;
|
|
76920
|
+
game_soundtrack_composer_credits: BowmarkCapability_game_soundtrack_composer_credits.Unit;
|
|
75215
76921
|
git_commit_history: BowmarkCapability_git_commit_history.Unit;
|
|
76922
|
+
git_release_notes: BowmarkCapability_git_release_notes.Unit;
|
|
75216
76923
|
hotels: BowmarkCapability_hotels.Unit;
|
|
75217
76924
|
hvac: BowmarkCapability_hvac.Unit;
|
|
75218
76925
|
insurance: BowmarkCapability_insurance.Unit;
|
|
76926
|
+
istanbul_schedules: BowmarkCapability_istanbul_schedules.Unit;
|
|
76927
|
+
mcp_registry: BowmarkCapability_mcp_registry.Unit;
|
|
75219
76928
|
music: BowmarkCapability_music.Unit;
|
|
75220
76929
|
pcparts: BowmarkCapability_pcparts.Unit;
|
|
76930
|
+
phone_trade_in: BowmarkCapability_phone_trade_in.Unit;
|
|
76931
|
+
pricing: BowmarkCapability_pricing.Unit;
|
|
75221
76932
|
products: BowmarkCapability_products.Unit;
|
|
75222
76933
|
promocodes: BowmarkCapability_promocodes.Unit;
|
|
75223
76934
|
read: BowmarkCapability_read.Unit;
|
|
75224
76935
|
restaurant_booking: BowmarkCapability_restaurant_booking.Unit;
|
|
76936
|
+
school_shopping_basket: BowmarkCapability_school_shopping_basket.Unit;
|
|
75225
76937
|
search: BowmarkCapability_search.Unit;
|
|
75226
76938
|
sheds: BowmarkCapability_sheds.Unit;
|
|
75227
76939
|
shipping: BowmarkCapability_shipping.Unit;
|
|
75228
76940
|
tariff: BowmarkCapability_tariff.Unit;
|
|
76941
|
+
text_to_speech: BowmarkCapability_text_to_speech.Unit;
|
|
76942
|
+
theme_park_tickets: BowmarkCapability_theme_park_tickets.Unit;
|
|
75229
76943
|
weather: BowmarkCapability_weather.Unit;
|
|
76944
|
+
yoga_outfit_shopping: BowmarkCapability_yoga_outfit_shopping.Unit;
|
|
75230
76945
|
providers: BowmarkProviders;
|
|
75231
76946
|
}
|