@bowmark/web 1.11.0 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -2
- package/src/generated/library.d.ts +1505 -55
- package/src/generated/validators.ts +1351 -57
|
@@ -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: 30acf97e882124423eecad144b20c278a6e81b46e839c2063822661efc063ea6
|
|
9
|
+
// 32 capabilities, 253 providers, 665 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,58 @@
|
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
|
|
39
|
+
declare namespace BowmarkCapability_cable_railing_quote {
|
|
40
|
+
// ── Cable railing design quote (materials & mounting options) — the unit's own declarations, verbatim ──
|
|
41
|
+
type CableRailingMaterial = {
|
|
42
|
+
slug: string
|
|
43
|
+
title: string
|
|
44
|
+
metal: boolean
|
|
45
|
+
defaultFinish: string | null
|
|
46
|
+
finishes: string[]
|
|
47
|
+
}
|
|
48
|
+
type CableRailingMountingStyle = {
|
|
49
|
+
slug: string
|
|
50
|
+
title: string
|
|
51
|
+
availableMaterials: string[]
|
|
52
|
+
}
|
|
53
|
+
type CableRailingPricing = {
|
|
54
|
+
automated: false // no source publishes an automated instant price — see 'how'
|
|
55
|
+
how: string // what actually produces a price (a human, after submission)
|
|
56
|
+
designAppUrl: string
|
|
57
|
+
}
|
|
58
|
+
type CableRailingDesignOptionsResult = {
|
|
59
|
+
materials: CableRailingMaterial[]
|
|
60
|
+
mountingStyles: CableRailingMountingStyle[]
|
|
61
|
+
pricing: CableRailingPricing
|
|
62
|
+
warnings: string[] // always present; empty when nothing was dropped
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
type CallOptions = {
|
|
66
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
67
|
+
// A provider slower than this is DROPPED from the results and
|
|
68
|
+
// NAMED in warnings — never silently absent
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Returns the real material and mounting-style choices behind Viewrail's Victor cable-railing
|
|
73
|
+
* design app. There is no automated instant price to return alongside them — Victor prices a
|
|
74
|
+
* design by having a human review it after submission, and `pricing.how` says so rather than
|
|
75
|
+
* guessing a number.
|
|
76
|
+
*/
|
|
77
|
+
interface Unit {
|
|
78
|
+
/**
|
|
79
|
+
* Lists Victor's real material families (304/316/2205 stainless, aluminum, wood-grain
|
|
80
|
+
* aluminum, …) and post-mounting styles (Surface Mount, Side Mount, Core Drill, …), each with
|
|
81
|
+
* which materials it's available in — the two choices Victor's own draw-and-quote flow asks
|
|
82
|
+
* first. `pricing.automated` is always `false`: no cable-railing site measured publishes an
|
|
83
|
+
* automated instant price (Victor's only pricing route is staff-only and 401s any
|
|
84
|
+
* unauthenticated call), so `pricing.how` names the real next step — draw the layout in Victor
|
|
85
|
+
* and submit it for a human-priced quote — instead of fabricating a number.
|
|
86
|
+
*/
|
|
87
|
+
getDesignOptions(options?: CallOptions): Promise<CableRailingDesignOptionsResult>;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
39
91
|
declare namespace BowmarkCapability_cars {
|
|
40
92
|
// ── Car hire — the unit's own declarations, verbatim ──
|
|
41
93
|
type CarQuery = {
|
|
@@ -111,6 +163,216 @@ type CallOptions = {
|
|
|
111
163
|
}
|
|
112
164
|
}
|
|
113
165
|
|
|
166
|
+
declare namespace BowmarkCapability_coworking {
|
|
167
|
+
// ── Coworking space day passes — the unit's own declarations, verbatim ──
|
|
168
|
+
type CoworkingDayPass = {
|
|
169
|
+
venueName: string
|
|
170
|
+
address: string
|
|
171
|
+
workspaceName: string // the pass's own display name at its venue
|
|
172
|
+
category: string | null // e.g. "Coworking" — null when unreported
|
|
173
|
+
capacity: number | null
|
|
174
|
+
priceAmount: number
|
|
175
|
+
currency: string // ISO 4217, always "USD" today (US cities only)
|
|
176
|
+
bookingUrl: string // where to actually book — needs a signed-in account
|
|
177
|
+
latitude: number
|
|
178
|
+
longitude: number
|
|
179
|
+
rating: { average: number; count: number } | null
|
|
180
|
+
}
|
|
181
|
+
type FindDayPassesResult = {
|
|
182
|
+
city: string
|
|
183
|
+
state: string
|
|
184
|
+
dayPasses: CoworkingDayPass[] // [] when nothing is listed today — a real, complete answer
|
|
185
|
+
warnings: string[] // always present; empty when nothing was dropped
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
type CallOptions = {
|
|
189
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
190
|
+
// A provider slower than this is DROPPED from the results and
|
|
191
|
+
// NAMED in warnings — never silently absent
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Finds single-day coworking passes in a US city — venue, price, capacity and a direct booking
|
|
196
|
+
* link, aggregated across WeWork, Industrious, Regus/Spaces and independent operators via
|
|
197
|
+
* LiquidSpace. No login, no booking (that needs a signed-in LiquidSpace account).
|
|
198
|
+
*/
|
|
199
|
+
interface Unit {
|
|
200
|
+
/**
|
|
201
|
+
* Finds single-day coworking passes for a US city — `bowmark.coworking.findDayPasses("New
|
|
202
|
+
* York, NY")` or `{ city: "New York", state: "NY" }` — and reads each one's real, current
|
|
203
|
+
* price. Returns `dayPasses: []` when nothing is listed for that city today, a real, complete
|
|
204
|
+
* answer, not a failure. Each pass carries the venue name/address, the pass's own name and
|
|
205
|
+
* category, capacity, price, coordinates, rating and a direct `bookingUrl` — LiquidSpace's own
|
|
206
|
+
* page, since booking itself needs a signed-in LiquidSpace account and is out of scope here.
|
|
207
|
+
* US cities only.
|
|
208
|
+
*/
|
|
209
|
+
findDayPasses(location: string | { city: string; state: string }, options?: CallOptions): Promise<FindDayPassesResult>;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
declare namespace BowmarkCapability_custom_sofa_configurator {
|
|
214
|
+
// ── Custom sofa configurator (fabric selection, live pricing) — the unit's own declarations, verbatim ──
|
|
215
|
+
type CustomSofa = {
|
|
216
|
+
id: string; // "<source>:<nativeId>" — pass to getConfigurator/priceConfiguration
|
|
217
|
+
source: string; // "joybird" | "interiordefine"
|
|
218
|
+
brand: string;
|
|
219
|
+
name: string;
|
|
220
|
+
url: string;
|
|
221
|
+
basePrice: number; // whole dollars — see basePriceNote for what it means
|
|
222
|
+
basePriceNote: string;
|
|
223
|
+
}
|
|
224
|
+
type CustomSofaListResult = { sofas: CustomSofa[]; warnings: string[] }
|
|
225
|
+
|
|
226
|
+
type CustomSofaChoice = { key: string; label: string; priceDelta: number }
|
|
227
|
+
type CustomSofaOption = {
|
|
228
|
+
key: string; // pass as a SELECTIONS key: { [option.key]: choice.key }
|
|
229
|
+
title: string;
|
|
230
|
+
required: boolean;
|
|
231
|
+
choices: CustomSofaChoice[];
|
|
232
|
+
}
|
|
233
|
+
type CustomSofaConfigurator = {
|
|
234
|
+
id: string; source: string; brand: string; name: string; url: string;
|
|
235
|
+
basePrice: number; basePriceNote: string; options: CustomSofaOption[];
|
|
236
|
+
warnings: string[]; // always empty today — getConfigurator is a route to ONE maker
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
type CustomSofaPriceLine = { option: string; choice: string; priceDelta: number }
|
|
240
|
+
type CustomSofaPriceResult = {
|
|
241
|
+
id: string; source: string; brand: string;
|
|
242
|
+
total: number; // the maker's own live total for this configuration
|
|
243
|
+
breakdown: CustomSofaPriceLine[];
|
|
244
|
+
missingRequired: string[]; // total is a FLOOR while this is non-empty
|
|
245
|
+
unmatched: string[]; // selections that matched no real option/choice
|
|
246
|
+
url: string;
|
|
247
|
+
warnings: string[]; // always empty today — priceConfiguration is a route to ONE maker
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
type CallOptions = {
|
|
251
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
252
|
+
// A provider slower than this is DROPPED from the results and
|
|
253
|
+
// NAMED in warnings — never silently absent
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Configure a real sofa or sectional — pick a fabric, wood stain or leg finish — and get the
|
|
258
|
+
* maker's own live price, across every maker whose site publishes a real configurator
|
|
259
|
+
* (Joybird, Interior Define). Not a researched estimate: the same total the maker's own
|
|
260
|
+
* customizer would show for that exact pick. No sofa named yet? Call listSofas() and
|
|
261
|
+
* configure/price the first result — that alone answers 'configure a sofa with fabric
|
|
262
|
+
* selection and live pricing' without asking the caller to pick one first.
|
|
263
|
+
*/
|
|
264
|
+
interface Unit {
|
|
265
|
+
/**
|
|
266
|
+
* Lists configurable sofas/sectionals across every maker — Joybird's whole catalogue (filtered
|
|
267
|
+
* to sofas and sectionals) plus an Interior Define search (defaults to "sofa" when `query` is
|
|
268
|
+
* omitted). Each row's `id` is what getConfigurator and priceConfiguration take.
|
|
269
|
+
* `basePriceNote` says what the price actually means for that maker — Joybird does not charge
|
|
270
|
+
* per-fabric, so its price is the real total; Interior Define's is a floor. Throws only when
|
|
271
|
+
* NEITHER maker could be reached.
|
|
272
|
+
*/
|
|
273
|
+
listSofas(query?: string): Promise<CustomSofaListResult>;
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Reads one sofa's full configurator — every option slot (Fabric, Wood Stain, Color, Finish,
|
|
277
|
+
* Cushion Fill — the exact set varies by product and maker) with each choice's label and price
|
|
278
|
+
* delta. Each option's `key` and each choice's `key` are exactly what priceConfiguration takes
|
|
279
|
+
* back as a selection.
|
|
280
|
+
*/
|
|
281
|
+
getConfigurator(id: string): Promise<CustomSofaConfigurator>;
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Prices ONE exact configuration against the maker's own live customizer and returns the real
|
|
285
|
+
* total, a per-choice breakdown, which required slots are still unpicked (the total is a floor
|
|
286
|
+
* until they are), and a link to the maker's own page for it. `selections` is `{ [option.key]:
|
|
287
|
+
* choice.key }` using the keys getConfigurator(id) just returned for THIS sofa — never invent
|
|
288
|
+
* one.
|
|
289
|
+
*/
|
|
290
|
+
priceConfiguration(id: string, selections: Record<string, string>): Promise<CustomSofaPriceResult>;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
declare namespace BowmarkCapability_developer_api_key_signup {
|
|
295
|
+
// ── Developer API key signup — the unit's own declarations, verbatim ──
|
|
296
|
+
interface DeveloperApiKeySignupDetails {
|
|
297
|
+
organization: string
|
|
298
|
+
email: string
|
|
299
|
+
occupation?: string
|
|
300
|
+
}
|
|
301
|
+
interface DeveloperApiKeySignupResult {
|
|
302
|
+
service: string
|
|
303
|
+
apiKey: string
|
|
304
|
+
message: string
|
|
305
|
+
warnings: string[]
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
type CallOptions = {
|
|
309
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
310
|
+
// A provider slower than this is DROPPED from the results and
|
|
311
|
+
// NAMED in warnings — never silently absent
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* Actually RUNS a developer dashboard's signup flow and hands back a real, usable API key — no
|
|
316
|
+
* email verification, no CAPTCHA, for the dashboards this covers. Today: Alpha Vantage's free
|
|
317
|
+
* stock-data API. Call it directly; don't just describe the steps. If the caller gave no
|
|
318
|
+
* organization/email of their own, invent a placeholder — this is an instant, unverified
|
|
319
|
+
* free-tier signup, not an account tied to a real identity, so there is nothing to ask
|
|
320
|
+
* permission for. MAKE THE EMAIL UNIQUE PER CALL (see the worked example) — the dashboard
|
|
321
|
+
* dedupes by address, so a copied literal example email gets "Redundant origin" on the second
|
|
322
|
+
* and every later run.
|
|
323
|
+
*/
|
|
324
|
+
interface Unit {
|
|
325
|
+
/**
|
|
326
|
+
* Signs up for a real API key on a developer dashboard — RUN this, don't just explain how —
|
|
327
|
+
* `bowmark.developer_api_key_signup.signUp("alphavantage", { organization: "Acme Corp", email:
|
|
328
|
+
* `qa-${Date.now()}@example.com` })`. `service` selects which dashboard (today: "alphavantage"
|
|
329
|
+
* only — THROWS naming the supported list otherwise, a caller-fixable error).
|
|
330
|
+
* `details.organization` and `details.email` are required; when the caller did not supply
|
|
331
|
+
* their own, invent placeholder-shaped ones like the example's — the signup is instant and
|
|
332
|
+
* unverified, so nothing is lost by not stopping to ask first. MAKE THE EMAIL UNIQUE EVERY
|
|
333
|
+
* CALL (e.g. embed `Date.now()`, as the example does) — the dashboard rejects a repeated
|
|
334
|
+
* address with "Redundant origin", so a literal copied example email fails on the second and
|
|
335
|
+
* every later run. `details.occupation` is optional and dashboard-specific. Returns the real
|
|
336
|
+
* key plus the dashboard's own confirmation sentence. `options.timeoutMs` sets the call budget
|
|
337
|
+
* (default 30000).
|
|
338
|
+
*/
|
|
339
|
+
signUp(service: string, details: { organization: string, email: string, occupation?: string }, options?: CallOptions): Promise<DeveloperApiKeySignupResult>;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
declare namespace BowmarkCapability_domain {
|
|
344
|
+
// ── Domain name availability check — the unit's own declarations, verbatim ──
|
|
345
|
+
|
|
346
|
+
interface DomainAvailabilityResult {
|
|
347
|
+
name: string // normalized: lowercased, no scheme, no "www."
|
|
348
|
+
available: boolean | null // true = free, false = registered, null = unknown
|
|
349
|
+
registrar: string | null
|
|
350
|
+
registeredAt: string | null // ISO 8601
|
|
351
|
+
expiresAt: string | null // ISO 8601
|
|
352
|
+
price: null // always null — see warnings
|
|
353
|
+
currency: null
|
|
354
|
+
source: string // "rdap"
|
|
355
|
+
warnings: string[]
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
/**
|
|
359
|
+
* Checks whether a domain name is registered — and, when it is, who holds it and when it
|
|
360
|
+
* expires — straight off RDAP, the IANA-standardized WHOIS successor. No key, no browser.
|
|
361
|
+
* Price is currently always unknown; see the result's warnings.
|
|
362
|
+
*/
|
|
363
|
+
interface Unit {
|
|
364
|
+
/**
|
|
365
|
+
* Looks up a domain name (e.g. "example.com") against its authoritative RDAP server and
|
|
366
|
+
* reports whether it is registered, plus the registrar and registration/expiration dates when
|
|
367
|
+
* it is. `available: null` means the TLD publishes no RDAP service (rare) or the registry
|
|
368
|
+
* answered something unparseable — check `warnings`. `price`/`currency` are always `null`: no
|
|
369
|
+
* keyed registrar pricing source is configured, and `warnings` says so on every call rather
|
|
370
|
+
* than guessing a number.
|
|
371
|
+
*/
|
|
372
|
+
checkAvailability(name: string): Promise<DomainAvailabilityResult>;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
|
|
114
376
|
declare namespace BowmarkCapability_email {
|
|
115
377
|
// ── Email (work addresses & domains) — the unit's own declarations, verbatim ──
|
|
116
378
|
// One candidate email domain for a company. Nulls mean "the source does not
|
|
@@ -361,6 +623,52 @@ type FlightStatusResult = {
|
|
|
361
623
|
}
|
|
362
624
|
}
|
|
363
625
|
|
|
626
|
+
declare namespace BowmarkCapability_game_soundtrack_composer_credits {
|
|
627
|
+
// ── Video game soundtrack composer credits — the unit's own declarations, verbatim ──
|
|
628
|
+
|
|
629
|
+
interface SoundtrackMatch {
|
|
630
|
+
releaseGroupId: string
|
|
631
|
+
title: string
|
|
632
|
+
composer: string
|
|
633
|
+
firstReleaseDate: string
|
|
634
|
+
disambiguation: string
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
interface SoundtrackCredits {
|
|
638
|
+
releaseGroupId: string
|
|
639
|
+
title: string
|
|
640
|
+
composer: string
|
|
641
|
+
firstReleaseDate: string
|
|
642
|
+
disambiguation: string
|
|
643
|
+
relations: { role: string, artist: string }[]
|
|
644
|
+
warnings: string[]
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
interface SoundtrackSearchResult {
|
|
648
|
+
query: string
|
|
649
|
+
matches: SoundtrackMatch[]
|
|
650
|
+
warnings: string[]
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
/**
|
|
654
|
+
* Looks up a video game's soundtrack release and who composed it, via MusicBrainz's own
|
|
655
|
+
* release-group database.
|
|
656
|
+
*/
|
|
657
|
+
interface Unit {
|
|
658
|
+
/**
|
|
659
|
+
* Searches MusicBrainz for soundtrack releases matching a game title and returns each match's
|
|
660
|
+
* composer credit and release-group id.
|
|
661
|
+
*/
|
|
662
|
+
search(gameTitle: string): Promise<SoundtrackSearchResult>;
|
|
663
|
+
|
|
664
|
+
/**
|
|
665
|
+
* Looks up one soundtrack release-group by id (from search()) and returns its full
|
|
666
|
+
* composer/artist credits.
|
|
667
|
+
*/
|
|
668
|
+
getCredits(releaseGroupId: string): Promise<SoundtrackCredits>;
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
|
|
364
672
|
declare namespace BowmarkCapability_git_commit_history {
|
|
365
673
|
// ── Git commit history — the unit's own declarations, verbatim ──
|
|
366
674
|
interface Commit {
|
|
@@ -416,6 +724,58 @@ type CallOptions = {
|
|
|
416
724
|
}
|
|
417
725
|
}
|
|
418
726
|
|
|
727
|
+
declare namespace BowmarkCapability_git_release_notes {
|
|
728
|
+
// ── Git release notes — the unit's own declarations, verbatim ──
|
|
729
|
+
interface Release {
|
|
730
|
+
tag: string // the repo's own tag, e.g. "v7.0.2"
|
|
731
|
+
name: string // display name, falls back to the tag when blank
|
|
732
|
+
draft: boolean
|
|
733
|
+
prerelease: boolean
|
|
734
|
+
createdAt: string // ISO 8601
|
|
735
|
+
publishedAt: string | null // ISO 8601, null for a draft never published
|
|
736
|
+
notes: string // the release notes text, in the host's own markdown
|
|
737
|
+
url: string // the release's own page on the host
|
|
738
|
+
}
|
|
739
|
+
interface ReleaseNotesOptions {
|
|
740
|
+
limit?: number // 1-100, default 30
|
|
741
|
+
page?: number // 1-based, for paging past limit
|
|
742
|
+
}
|
|
743
|
+
interface ReleaseNotesResult {
|
|
744
|
+
repo: string // resolved as "owner/repo", however it was passed
|
|
745
|
+
releases: Release[]
|
|
746
|
+
warnings: string[]
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
type CallOptions = {
|
|
750
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
751
|
+
// A provider slower than this is DROPPED from the results and
|
|
752
|
+
// NAMED in warnings — never silently absent
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
/**
|
|
756
|
+
* A git repository's own release notes — tag, name, dates and the release notes text for every
|
|
757
|
+
* release, newest first — from a GitHub URL or a bare owner/repo string. What a changelog or a
|
|
758
|
+
* "what's new" page is built from, in one call. No repo named yet? Call it on
|
|
759
|
+
* microsoft/TypeScript (a real, actively-released public repo) to show a caller the shape of
|
|
760
|
+
* the answer, rather than only asking which repo they meant.
|
|
761
|
+
*/
|
|
762
|
+
interface Unit {
|
|
763
|
+
/**
|
|
764
|
+
* Returns a public GitHub repository's own release history — each release's tag, display name,
|
|
765
|
+
* draft/prerelease flags, created/published dates, its release notes text (`notes`) and its
|
|
766
|
+
* own page URL — newest first, GitHub's own order. `repo` takes either form: a full URL
|
|
767
|
+
* ("https://github.com/microsoft/TypeScript") or the bare "owner/repo" string. `options.limit`
|
|
768
|
+
* (1-100, default 30) and `options.page` page through history. THROWS a caller-fixable error
|
|
769
|
+
* for a string that is neither shape, or for an owner/repo GitHub does not have (a private
|
|
770
|
+
* repo also reads as not-found, unauthenticated). IF THE CALLER NAMED NO REPO: do not stop to
|
|
771
|
+
* ask — call this immediately with "microsoft/TypeScript" (a real, actively-released public
|
|
772
|
+
* repo) to show a real, live answer, and mention in your reply that a different repo can be
|
|
773
|
+
* named.
|
|
774
|
+
*/
|
|
775
|
+
releaseNotes(repo: string, options?: ReleaseNotesOptions): Promise<ReleaseNotesResult>;
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
|
|
419
779
|
declare namespace BowmarkCapability_hotels {
|
|
420
780
|
// ── Hotels — the unit's own declarations, verbatim ──
|
|
421
781
|
type HotelQuery = {
|
|
@@ -520,25 +880,26 @@ type CallOptions = {
|
|
|
520
880
|
}
|
|
521
881
|
|
|
522
882
|
/**
|
|
523
|
-
*
|
|
524
|
-
* manufacturer's own
|
|
525
|
-
*
|
|
526
|
-
* or "Air Handlers") and get the real per-tier
|
|
527
|
-
*
|
|
528
|
-
*
|
|
529
|
-
*
|
|
883
|
+
* Call bowmark.hvac.getCostEstimate(systemType) to pull a real, published installed-cost RANGE
|
|
884
|
+
* for a residential HVAC system straight off a manufacturer's own cost guide — pick a system
|
|
885
|
+
* type ("Air Conditioners", "80% Furnaces", "90% Furnaces", "Heat Pumps", "Low-Profile Heat
|
|
886
|
+
* Pumps", "Cold-Climate Heat Pumps" or "Air Handlers") and get back the real per-tier
|
|
887
|
+
* (Platinum/Gold/Silver) price range, model name and source URL. Always call it rather than
|
|
888
|
+
* answering from memory — these are today's actual published figures. (It is a
|
|
889
|
+
* national-average range, not a bound quote for one address; every national HVAC brand sells
|
|
890
|
+
* through independent dealers who set final price locally — see `disclaimer`.)
|
|
530
891
|
*/
|
|
531
892
|
interface Unit {
|
|
532
893
|
/**
|
|
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.
|
|
894
|
+
* Calls the manufacturer's own published cost-guide table and returns a real installed-cost
|
|
895
|
+
* range for one HVAC system type ("Air Conditioners", "80% Furnaces", "90% Furnaces", "Heat
|
|
896
|
+
* Pumps", "Low-Profile Heat Pumps", "Cold-Climate Heat Pumps" or "Air Handlers"), broken into
|
|
897
|
+
* the maker's three tiers (Platinum/Gold/Silver) with a real model name and cost range per
|
|
898
|
+
* tier. Call this instead of estimating from training data — it returns today's actual
|
|
899
|
+
* published figures. (It is a national-average range, not a bound quote for one caller's home
|
|
900
|
+
* or ZIP — no national HVAC brand computes that online, measured 2026-08-29 across Trane,
|
|
901
|
+
* Carrier, Lennox, Rheem, American Standard and Goodman; the source's own caveat is carried in
|
|
902
|
+
* `disclaimer`.) THROWS when the source could not be reached at all.
|
|
542
903
|
*/
|
|
543
904
|
getCostEstimate(systemType: string, options?: CallOptions): Promise<HvacCostEstimateResult>;
|
|
544
905
|
}
|
|
@@ -664,6 +1025,35 @@ type ReferralCarrierListResult = {
|
|
|
664
1025
|
// out or failed
|
|
665
1026
|
}
|
|
666
1027
|
|
|
1028
|
+
// getHomeQuotes: real homeowners premiums for one property, fanned out across
|
|
1029
|
+
// Insurify's marketplace and Progressive's HomeQuote Explorer panel. Both
|
|
1030
|
+
// price nothing without the caller's own identity.
|
|
1031
|
+
type HomeQuoteQuery = {
|
|
1032
|
+
identity: { firstName: string, lastName: string, dob: string, email: string, phone: string }
|
|
1033
|
+
address: string // street address, e.g. "686 Hamlet St"
|
|
1034
|
+
zip: string // 5-digit US ZIP
|
|
1035
|
+
city?: string // required TOGETHER WITH state to reach Progressive's panel
|
|
1036
|
+
state?: string // 2-letter state code, required together with city
|
|
1037
|
+
}
|
|
1038
|
+
type HomeQuote = {
|
|
1039
|
+
source: string // which panel this came from
|
|
1040
|
+
carrier: string
|
|
1041
|
+
package: string | null // Progressive's bundling tier; always null for Insurify
|
|
1042
|
+
annualPremium: number | null // whole-term premium normalized to 12 months
|
|
1043
|
+
monthlyPremium: number | null // always null on a Progressive row — it publishes none
|
|
1044
|
+
windHailIncluded: boolean | null // Progressive only; always null for Insurify
|
|
1045
|
+
quoteUrl: string | null // Insurify's own bindUrl; always null for Progressive
|
|
1046
|
+
}
|
|
1047
|
+
type DeclinedHomeCarrier = {
|
|
1048
|
+
source: string
|
|
1049
|
+
carrier: string // asked and refused to write the property — a real answer
|
|
1050
|
+
}
|
|
1051
|
+
type HomeQuoteResult = {
|
|
1052
|
+
quotes: HomeQuote[] // cheapest annualPremium first; nulls last
|
|
1053
|
+
declined: DeclinedHomeCarrier[]
|
|
1054
|
+
warnings: string[]
|
|
1055
|
+
}
|
|
1056
|
+
|
|
667
1057
|
type CallOptions = {
|
|
668
1058
|
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
669
1059
|
// A provider slower than this is DROPPED from the results and
|
|
@@ -673,8 +1063,10 @@ type CallOptions = {
|
|
|
673
1063
|
/**
|
|
674
1064
|
* Look up insurance carriers in the regulators' own national register — the NAIC company code,
|
|
675
1065
|
* 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
|
-
*
|
|
1066
|
+
* carrier is LICENSED to write in, which is not the same as where it is headquartered — and
|
|
1067
|
+
* get REAL home insurance quotes and rates for a specific property address from two
|
|
1068
|
+
* independent carrier panels (Insurify's marketplace, Progressive's HomeQuote Explorer).
|
|
1069
|
+
* Direct API, no browser.
|
|
678
1070
|
*/
|
|
679
1071
|
interface Unit {
|
|
680
1072
|
/**
|
|
@@ -757,6 +1149,122 @@ type CallOptions = {
|
|
|
757
1149
|
* in it. `options.timeoutMs` sets the per-source budget (default 30000).
|
|
758
1150
|
*/
|
|
759
1151
|
listReferralCarriers(query?: ReferralCarrierQuery, options?: CallOptions): Promise<ReferralCarrierListResult>;
|
|
1152
|
+
|
|
1153
|
+
/**
|
|
1154
|
+
* Returns REAL home insurance quotes — actual carrier premiums for one property address,
|
|
1155
|
+
* fanned out across two independent panels: Insurify's own marketplace and Progressive's
|
|
1156
|
+
* HomeQuote Explorer (itself a hand-off to a Bolt-run panel of outside carriers, so
|
|
1157
|
+
* "progressive" here still means several underwriters, not one). `{ identity, address: "686
|
|
1158
|
+
* Hamlet St", zip: "43215", city: "Columbus", state: "OH" }` — `identity` is the CALLER's OWN
|
|
1159
|
+
* `{ firstName, lastName, dob, email, phone }`, required because neither carrier prices a
|
|
1160
|
+
* property without one. `city` and `state` are each optional but REQUIRED TOGETHER to reach
|
|
1161
|
+
* Progressive's panel, which bootstraps off a full postal address; Insurify resolves both from
|
|
1162
|
+
* `zip` on its own and reaches every query this function accepts. Returns `quotes` sorted
|
|
1163
|
+
* CHEAPEST `annualPremium` FIRST (a row with no premium at all sorts last), each carrying
|
|
1164
|
+
* `source`, `carrier`, Progressive's bundling `package` tier (always null for Insurify, which
|
|
1165
|
+
* prices one plan per carrier), `annualPremium` normalized to a 12-month figure so a shorter
|
|
1166
|
+
* or longer term is still comparable, `monthlyPremium` (a carrier's own instalment figure when
|
|
1167
|
+
* it quoted one — always null on a Progressive row, since that panel publishes only the annual
|
|
1168
|
+
* premium per package), `windHailIncluded` (Progressive only), and `quoteUrl` (Insurify's own
|
|
1169
|
+
* `bindUrl` when it published one). `declined` names a carrier a panel asked and REFUSED to
|
|
1170
|
+
* write — a real answer distinct from "no price returned", and never merged into `quotes`.
|
|
1171
|
+
* `warnings` is always present: it names a source that timed out or failed, AND a source not
|
|
1172
|
+
* queried because the query lacked the input it needs (Progressive without `city`+`state`) —
|
|
1173
|
+
* read it before treating a short list as the whole market. When every source the query DID
|
|
1174
|
+
* reach for failed, this THROWS rather than returning an empty list, which would otherwise
|
|
1175
|
+
* read as "nobody would insure this property". `options.timeoutMs` sets the per-source budget
|
|
1176
|
+
* (default 30000).
|
|
1177
|
+
*/
|
|
1178
|
+
getHomeQuotes(query: HomeQuoteQuery, options?: CallOptions): Promise<HomeQuoteResult>;
|
|
1179
|
+
}
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
declare namespace BowmarkCapability_istanbul_schedules {
|
|
1183
|
+
// ── Istanbul attraction opening hours — the unit's own declarations, verbatim ──
|
|
1184
|
+
interface AttractionHoursResult {
|
|
1185
|
+
query: string
|
|
1186
|
+
name: string // the site's own display name for the match
|
|
1187
|
+
openingTime: string | null // "HH:MM"
|
|
1188
|
+
closingTime: string | null // "HH:MM"
|
|
1189
|
+
ticketOfficeClosingTime: string | null // "HH:MM" — often earlier than closingTime
|
|
1190
|
+
closedDays: string | null // the site's own wording, e.g. "Her gün açık"
|
|
1191
|
+
address: string | null
|
|
1192
|
+
phone: string | null
|
|
1193
|
+
email: string | null
|
|
1194
|
+
url: string
|
|
1195
|
+
warnings: string[]
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1198
|
+
type CallOptions = {
|
|
1199
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
1200
|
+
// A provider slower than this is DROPPED from the results and
|
|
1201
|
+
// NAMED in warnings — never silently absent
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
/**
|
|
1205
|
+
* Live opening/closing hours, ticket-office closing time and closed days for Istanbul museums
|
|
1206
|
+
* and archaeological sites — İstanbul Archaeological Museums, the Hagia Sophia History and
|
|
1207
|
+
* Experience Museum, Galata Tower Museum among them — read straight off muze.gov.tr (Turkey's
|
|
1208
|
+
* Ministry of Culture and Tourism). Call this for the attraction-hours part of any
|
|
1209
|
+
* Istanbul-schedules question, even one that also asks about ferries or shows: answer what it
|
|
1210
|
+
* returns, then say plainly that ferry timetables and show schedules aren't covered — no
|
|
1211
|
+
* reachable machine-readable source was found for either; see this unit's request file for
|
|
1212
|
+
* what was tried. Don't skip the call just because the question is broader than this unit's
|
|
1213
|
+
* scope.
|
|
1214
|
+
*/
|
|
1215
|
+
interface Unit {
|
|
1216
|
+
/**
|
|
1217
|
+
* Matches `query` against muze.gov.tr's own museum/site listing (a substring match on the
|
|
1218
|
+
* site's own display name, e.g. "Galata Tower" or "Hagia Sophia") and returns that
|
|
1219
|
+
* attraction's opening/closing hours, ticket-office closing time and closed days. THROWS a
|
|
1220
|
+
* caller-fixable error naming the listing when nothing matches — the listing is a curated
|
|
1221
|
+
* highlight subset, not the whole ministry catalog.
|
|
1222
|
+
*/
|
|
1223
|
+
attractionHours(query: string, options?: CallOptions): Promise<AttractionHoursResult>;
|
|
1224
|
+
}
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1227
|
+
declare namespace BowmarkCapability_mcp_registry {
|
|
1228
|
+
// ── MCP Registry — the unit's own declarations, verbatim ──
|
|
1229
|
+
interface McpRegistryEntry {
|
|
1230
|
+
name: string;
|
|
1231
|
+
title: string | null;
|
|
1232
|
+
description: string;
|
|
1233
|
+
version: string;
|
|
1234
|
+
repositoryUrl: string | null;
|
|
1235
|
+
remoteUrl: string | null;
|
|
1236
|
+
status: string;
|
|
1237
|
+
}
|
|
1238
|
+
|
|
1239
|
+
interface McpRegistrySearchResult {
|
|
1240
|
+
servers: McpRegistryEntry[];
|
|
1241
|
+
warnings: string[];
|
|
1242
|
+
}
|
|
1243
|
+
|
|
1244
|
+
type CallOptions = {
|
|
1245
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
1246
|
+
// A provider slower than this is DROPPED from the results and
|
|
1247
|
+
// NAMED in warnings — never silently absent
|
|
1248
|
+
}
|
|
1249
|
+
|
|
1250
|
+
/**
|
|
1251
|
+
* Search or browse the official Model Context Protocol server registry — find a published MCP
|
|
1252
|
+
* server by name and get its install or connect URL.
|
|
1253
|
+
*/
|
|
1254
|
+
interface Unit {
|
|
1255
|
+
/**
|
|
1256
|
+
* Lists or searches the official MCP server registry (registry.modelcontextprotocol.io) for
|
|
1257
|
+
* published Model Context Protocol servers. `query` substring-matches a server's registry name
|
|
1258
|
+
* — omit it to list the newest-published entries. Each row carries the server's registry name,
|
|
1259
|
+
* title, description, latest version, where to install it (`repositoryUrl`) or connect to it
|
|
1260
|
+
* if it's hosted (`remoteUrl`), and its registry status. This is how an agent answers 'is
|
|
1261
|
+
* there already an MCP server for X' before building one, or finds out what a directory
|
|
1262
|
+
* listing/submission for the MCP ecosystem's own registry actually looks like. `limit` caps
|
|
1263
|
+
* how many rows come back (default 30, max 100). THROWS if the registry cannot be reached —
|
|
1264
|
+
* one source, so there is no partial answer to hand back. `options.timeoutMs` sets the budget
|
|
1265
|
+
* (default 30000).
|
|
1266
|
+
*/
|
|
1267
|
+
search(query?: string, limit?: number, options?: CallOptions): Promise<McpRegistrySearchResult>;
|
|
760
1268
|
}
|
|
761
1269
|
}
|
|
762
1270
|
|
|
@@ -921,6 +1429,96 @@ type ProductResult = {
|
|
|
921
1429
|
}
|
|
922
1430
|
}
|
|
923
1431
|
|
|
1432
|
+
declare namespace BowmarkCapability_phone_trade_in {
|
|
1433
|
+
// ── Phone trade-in value — the unit's own declarations, verbatim ──
|
|
1434
|
+
// The capability's own condition vocabulary — four tiers every buyback
|
|
1435
|
+
// comparison site groups devices into, whatever it calls them natively.
|
|
1436
|
+
type TradeInCondition = "like_new" | "good" | "fair" | "broken";
|
|
1437
|
+
|
|
1438
|
+
// One buyback vendor's live cash offer for the requested device.
|
|
1439
|
+
type TradeInQuote = {
|
|
1440
|
+
source: string // which source this quote came from, e.g. "sellcell"
|
|
1441
|
+
merchant: string // the buyback vendor's own name, e.g. "BuyBackBoss"
|
|
1442
|
+
price: { amount: number; currency: string } // integer minor units — cents
|
|
1443
|
+
paymentMethods: string[]
|
|
1444
|
+
paymentPeriod: string | null
|
|
1445
|
+
freeShipping: boolean
|
|
1446
|
+
}
|
|
1447
|
+
type PhoneTradeInEstimate = {
|
|
1448
|
+
model: string // the resolved device slug, e.g. "iphone-14-pro"
|
|
1449
|
+
storage: string
|
|
1450
|
+
condition: TradeInCondition
|
|
1451
|
+
quotes: TradeInQuote[] // every vendor's current offer, highest first
|
|
1452
|
+
warnings: string[] // always present; empty when nothing was dropped
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1455
|
+
type CallOptions = {
|
|
1456
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
1457
|
+
// A provider slower than this is DROPPED from the results and
|
|
1458
|
+
// NAMED in warnings — never silently absent
|
|
1459
|
+
}
|
|
1460
|
+
|
|
1461
|
+
/**
|
|
1462
|
+
* Looks up the current buyback value of an iPhone — model, storage and condition — and returns
|
|
1463
|
+
* every vendor's live cash offer, highest first. Fans out across buyback comparison sources;
|
|
1464
|
+
* direct API, no browser.
|
|
1465
|
+
*/
|
|
1466
|
+
interface Unit {
|
|
1467
|
+
/**
|
|
1468
|
+
* Looks up the current buyback value of an iPhone — `bowmark.phone_trade_in.estimate({ model:
|
|
1469
|
+
* "iPhone 14 Pro", storage: "256GB", condition: "good" })` — and returns every vendor's live
|
|
1470
|
+
* cash offer, highest first. `condition` is one of "like_new" | "good" | "fair" | "broken"
|
|
1471
|
+
* (also accepts everyday synonyms like "mint" or "cracked"); defaults to "good" when omitted.
|
|
1472
|
+
* A shorthand string carrying a storage token also works, e.g. `"iPhone 14 Pro 256GB"`. THROWS
|
|
1473
|
+
* on a non-iPhone model (this capability covers Apple devices only today) or a missing storage
|
|
1474
|
+
* capacity — never guesses a capacity, because a wrong guess would silently price the wrong
|
|
1475
|
+
* device. `warnings` is always present and names anything dropped, including a source that
|
|
1476
|
+
* timed out or failed. `options.timeoutMs` sets the per-source budget (default 30000).
|
|
1477
|
+
*/
|
|
1478
|
+
estimate(query: { model: string; storage: string; condition?: string } | string, options?: CallOptions): Promise<PhoneTradeInEstimate>;
|
|
1479
|
+
}
|
|
1480
|
+
}
|
|
1481
|
+
|
|
1482
|
+
declare namespace BowmarkCapability_pricing {
|
|
1483
|
+
// ── Check whether a product page quotes a different price to different shoppers — the unit's own declarations, verbatim ──
|
|
1484
|
+
interface PersonalizationPersona {
|
|
1485
|
+
label: string
|
|
1486
|
+
device?: "desktop" | "mobile" // defaults to "desktop"
|
|
1487
|
+
}
|
|
1488
|
+
interface PersonaRead {
|
|
1489
|
+
persona: string
|
|
1490
|
+
status: number
|
|
1491
|
+
ok: boolean
|
|
1492
|
+
price: { amount: number; currency: string } | null // integer minor units
|
|
1493
|
+
display: string | null // price formatted for a reader, e.g. "$499.99" — quote THIS, not price.amount
|
|
1494
|
+
source: "ld+json" | "none"
|
|
1495
|
+
error: string | null
|
|
1496
|
+
}
|
|
1497
|
+
interface PersonalizationCheck {
|
|
1498
|
+
url: string
|
|
1499
|
+
requestedUrl: string
|
|
1500
|
+
reads: PersonaRead[]
|
|
1501
|
+
personalized: boolean | null // null when fewer than 2 personas produced a comparable price
|
|
1502
|
+
warnings: string[]
|
|
1503
|
+
}
|
|
1504
|
+
|
|
1505
|
+
/**
|
|
1506
|
+
* Given a product page's url, fetches it once per simulated shopper (desktop vs mobile, each a
|
|
1507
|
+
* fresh cookie-less visit) and reports whether the price they'd see differs — never geography,
|
|
1508
|
+
* loyalty status or browsing history, which no session it holds can simulate.
|
|
1509
|
+
*/
|
|
1510
|
+
interface Unit {
|
|
1511
|
+
/**
|
|
1512
|
+
* Reads one product page's price once per persona (default: desktop + mobile, each a fresh
|
|
1513
|
+
* cookie-less visit) and reports whether the personas saw different prices. If the caller
|
|
1514
|
+
* hasn't named a page yet, DO NOT ask them for one first — CALL this function immediately with
|
|
1515
|
+
* the worked example URL below (a real, live product page) so the caller sees a genuine
|
|
1516
|
+
* comparison before you ask which page to check next.
|
|
1517
|
+
*/
|
|
1518
|
+
checkPersonalization(url: string, personas?: PersonalizationPersona[]): Promise<PersonalizationCheck>;
|
|
1519
|
+
}
|
|
1520
|
+
}
|
|
1521
|
+
|
|
924
1522
|
declare namespace BowmarkCapability_products {
|
|
925
1523
|
// ── Check a product page's price and stock availability — the unit's own declarations, verbatim ──
|
|
926
1524
|
interface ProductAvailability {
|
|
@@ -1344,20 +1942,21 @@ type CallOptions = {
|
|
|
1344
1942
|
/**
|
|
1345
1943
|
* Prices a domestic package across USPS and UPS for a ZIP-to-ZIP move, weight and optional
|
|
1346
1944
|
* 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
|
|
1945
|
+
* days where the carrier states one. Direct JSON, no browser. USPS needs no key and always
|
|
1946
|
+
* quotes; UPS is BYOK, and a caller without a UPS developer key gets the USPS quotes plus a
|
|
1947
|
+
* `warnings` line naming what was dropped rather than a silent skip.
|
|
1350
1948
|
*/
|
|
1351
1949
|
interface Unit {
|
|
1352
1950
|
/**
|
|
1353
1951
|
* Prices a domestic package — `{ fromZip: "20024", toZip: "10001", weightOz: 16 }` — across
|
|
1354
1952
|
* 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
|
|
1953
|
+
* `length`/`width`/`height` (inches) must be given together or omitted entirely. USPS needs no
|
|
1954
|
+
* API key. UPS is BYOK: bring your own UPS developer key or that leg is dropped and named in
|
|
1955
|
+
* `warnings` (it is never served off a fleet credential). `warnings` also names any carrier
|
|
1956
|
+
* dropped for a timeout or an error. THROWS `AllProvidersFailedError` when NEITHER carrier
|
|
1957
|
+
* answered, because that is a different fact from "no service quotes this shipment" and only
|
|
1958
|
+
* one of them means there truly is no rate. `options.timeoutMs` sets the per-carrier budget
|
|
1959
|
+
* (default 30000).
|
|
1361
1960
|
*/
|
|
1362
1961
|
estimate(query: ShippingQuery, options?: CallOptions): Promise<ShippingEstimateResult>;
|
|
1363
1962
|
}
|
|
@@ -1397,6 +1996,105 @@ interface TariffLookupResult {
|
|
|
1397
1996
|
}
|
|
1398
1997
|
}
|
|
1399
1998
|
|
|
1999
|
+
declare namespace BowmarkCapability_text_to_speech {
|
|
2000
|
+
// ── Text to speech — the unit's own declarations, verbatim ──
|
|
2001
|
+
interface SynthesizeOptions {
|
|
2002
|
+
voiceId?: string // an id cloneVoice returned, or the vendor's own default voice
|
|
2003
|
+
}
|
|
2004
|
+
interface SynthesizeResult {
|
|
2005
|
+
audioBase64: string // the synthesized audio, base64-encoded
|
|
2006
|
+
contentType: string // e.g. "audio/mpeg"
|
|
2007
|
+
voiceId: string
|
|
2008
|
+
warnings: string[]
|
|
2009
|
+
}
|
|
2010
|
+
interface CloneVoiceOptions {
|
|
2011
|
+
name: string
|
|
2012
|
+
sampleUrls: string[] // audio sample URLs to clone the voice from
|
|
2013
|
+
description?: string
|
|
2014
|
+
}
|
|
2015
|
+
interface CloneVoiceResult {
|
|
2016
|
+
voiceId: string // pass this as SynthesizeOptions.voiceId
|
|
2017
|
+
name: string
|
|
2018
|
+
requiresVerification: boolean
|
|
2019
|
+
warnings: string[]
|
|
2020
|
+
}
|
|
2021
|
+
|
|
2022
|
+
type CallOptions = {
|
|
2023
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
2024
|
+
// A provider slower than this is DROPPED from the results and
|
|
2025
|
+
// NAMED in warnings — never silently absent
|
|
2026
|
+
}
|
|
2027
|
+
|
|
2028
|
+
/**
|
|
2029
|
+
* Converts text into spoken audio, and clones a new voice from caller-supplied audio samples —
|
|
2030
|
+
* narration, dubbing, accessibility, IVR prompts. Requires the caller's own ElevenLabs API key
|
|
2031
|
+
* (BYOK) — see the 🔑 note on this unit.
|
|
2032
|
+
*/
|
|
2033
|
+
interface Unit {
|
|
2034
|
+
/**
|
|
2035
|
+
* Converts `text` into spoken audio, base64-encoded, in an existing or previously-cloned voice
|
|
2036
|
+
* (`options.voiceId`, defaulting to a standard voice). Requires an API key — a caller with
|
|
2037
|
+
* none gets a refusal naming what to provide. Call `cloneVoice` first to speak in a specific
|
|
2038
|
+
* cloned voice, then pass the returned `voiceId` here.
|
|
2039
|
+
*/
|
|
2040
|
+
synthesize(text: string, options?: SynthesizeOptions): Promise<SynthesizeResult>;
|
|
2041
|
+
|
|
2042
|
+
/**
|
|
2043
|
+
* Creates a new voice cloned from one or more audio sample URLs (`options.sampleUrls`) —
|
|
2044
|
+
* downloads each sample and uploads it to the vendor's cloning endpoint. Returns the new
|
|
2045
|
+
* voice's id, which `synthesize`'s `voiceId` then accepts.
|
|
2046
|
+
*/
|
|
2047
|
+
cloneVoice(options: CloneVoiceOptions): Promise<CloneVoiceResult>;
|
|
2048
|
+
}
|
|
2049
|
+
}
|
|
2050
|
+
|
|
2051
|
+
declare namespace BowmarkCapability_theme_park_tickets {
|
|
2052
|
+
// ── Theme park tickets — the unit's own declarations, verbatim ──
|
|
2053
|
+
type TicketOption = {
|
|
2054
|
+
title: string // e.g. "Park Ticket", "2027 Gold Pass"
|
|
2055
|
+
subtitle: string | null
|
|
2056
|
+
priceAmount: number | null // parsed from the site's own price text; null when it didn't parse
|
|
2057
|
+
currency: string // ISO 4217, always "USD" today
|
|
2058
|
+
priceModifier: string | null // e.g. "/ea*", "per night" — null for a flat one-time price
|
|
2059
|
+
wasPriceAmount: number | null // the struck-through "was" price, same parsing — null when absent
|
|
2060
|
+
buyUrl: string | null // where to actually buy — a checkout flow is out of scope here
|
|
2061
|
+
}
|
|
2062
|
+
type ThemeParkTicketsResult = {
|
|
2063
|
+
park: string // the park name or slug the caller passed
|
|
2064
|
+
parkSlug: string
|
|
2065
|
+
parkTitle: string
|
|
2066
|
+
groupLabel: string // the site's own section label, e.g. "Daily Tickets"
|
|
2067
|
+
tickets: TicketOption[]
|
|
2068
|
+
warnings: string[] // always present; empty when nothing was dropped
|
|
2069
|
+
}
|
|
2070
|
+
|
|
2071
|
+
type CallOptions = {
|
|
2072
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
2073
|
+
// A provider slower than this is DROPPED from the results and
|
|
2074
|
+
// NAMED in warnings — never silently absent
|
|
2075
|
+
}
|
|
2076
|
+
|
|
2077
|
+
/**
|
|
2078
|
+
* Reads a Six Flags/Cedar Fair theme park's own ticket page and returns its current pass
|
|
2079
|
+
* prices — title, price, any "was" price and a buy link. Covers every park in the merged
|
|
2080
|
+
* portfolio (Six Flags Magic Mountain, Cedar Point, Kings Island, Knott's Berry Farm,
|
|
2081
|
+
* Carowinds and ~30 more) by name or sixflags.com slug. Disney, Universal and SeaWorld are not
|
|
2082
|
+
* covered yet. No login, no purchase.
|
|
2083
|
+
*/
|
|
2084
|
+
interface Unit {
|
|
2085
|
+
/**
|
|
2086
|
+
* Looks up a Six Flags/Cedar Fair theme park by name (`"Cedar Point"`, `"Six Flags Magic
|
|
2087
|
+
* Mountain"`) or sixflags.com slug (`"cedarpoint"`, `"magicmountain"`) and reads its real,
|
|
2088
|
+
* current ticket/pass prices — `bowmark.theme_park_tickets.search("Cedar Point")` or `{ park:
|
|
2089
|
+
* "Cedar Point" }`. Each ticket carries its own title, subtitle, parsed price, any
|
|
2090
|
+
* struck-through "was" price and a buy link, exactly as the park's own site is publishing
|
|
2091
|
+
* today. Throws naming the closest matches when the park name does not resolve to one of the
|
|
2092
|
+
* ~33 parks in the covered portfolio.
|
|
2093
|
+
*/
|
|
2094
|
+
search(park: string | { park: string }, options?: CallOptions): Promise<ThemeParkTicketsResult>;
|
|
2095
|
+
}
|
|
2096
|
+
}
|
|
2097
|
+
|
|
1400
2098
|
declare namespace BowmarkCapability_weather {
|
|
1401
2099
|
// ── Weather forecast for a place — the unit's own declarations, verbatim ──
|
|
1402
2100
|
|
|
@@ -1433,6 +2131,53 @@ interface ForecastResult {
|
|
|
1433
2131
|
}
|
|
1434
2132
|
}
|
|
1435
2133
|
|
|
2134
|
+
declare namespace BowmarkCapability_yoga_outfit_shopping {
|
|
2135
|
+
// ── Coordinated yoga outfit shopping — the unit's own declarations, verbatim ──
|
|
2136
|
+
interface YogaOutfitItem {
|
|
2137
|
+
source: string // "lululemon" | "beyondyoga" | "aloyoga"
|
|
2138
|
+
title: string
|
|
2139
|
+
url: string
|
|
2140
|
+
image: string | null // null when the leg carries none (lululemon's search rows never do)
|
|
2141
|
+
priceLow: number | null
|
|
2142
|
+
priceHigh: number | null
|
|
2143
|
+
currency: string | null // null when the leg doesn't publish one (lululemon's search door never does)
|
|
2144
|
+
inStock: boolean
|
|
2145
|
+
garmentType: string | null // the retailer's OWN published label, transcribed — null if the leg
|
|
2146
|
+
// doesn't publish one (lululemon never does; the Shopify legs' search
|
|
2147
|
+
// door doesn't either, only getProduct's REST door does)
|
|
2148
|
+
colorFamily: string | null // shared-colour evidence — null for lululemon
|
|
2149
|
+
fabrics: string[] // retailer-published fabric names — [] for lululemon
|
|
2150
|
+
}
|
|
2151
|
+
interface YogaOutfitSearchResult {
|
|
2152
|
+
items: YogaOutfitItem[]
|
|
2153
|
+
warnings: string[] // always present. Names a retailer that timed out or errored;
|
|
2154
|
+
// ALL THREE dead throws instead of returning an empty result
|
|
2155
|
+
}
|
|
2156
|
+
type CallOptions = {
|
|
2157
|
+
timeoutMs?: number // per-provider budget in ms, default 30000, clamped to 1000-55000.
|
|
2158
|
+
// A provider slower than this is DROPPED from the results and
|
|
2159
|
+
// NAMED in warnings — never silently absent
|
|
2160
|
+
}
|
|
2161
|
+
|
|
2162
|
+
/**
|
|
2163
|
+
* Search for a coordinated yoga outfit across lululemon, Beyond Yoga and Alo Yoga in one call
|
|
2164
|
+
* — one normalized row shape per product, with each retailer's own published garment type,
|
|
2165
|
+
* colour family and fabric names carried through so a caller can spot a plausible
|
|
2166
|
+
* top-and-bottom pair. Never a claim that any retailer sold two items as a set.
|
|
2167
|
+
*/
|
|
2168
|
+
interface Unit {
|
|
2169
|
+
/**
|
|
2170
|
+
* Fans out one free-text query to lululemon, Beyond Yoga and Alo Yoga in parallel and returns
|
|
2171
|
+
* every match as one normalized row per product. `limit` (default 8, max 24) applies PER
|
|
2172
|
+
* RETAILER, so a caller asking for 5 gets up to 5 rows from EACH of the three, not 5 total. A
|
|
2173
|
+
* retailer that times out or errors is named in `warnings`, never silently absent; all three
|
|
2174
|
+
* failing throws `AllProvidersFailedError` instead of returning an empty result, which would
|
|
2175
|
+
* be indistinguishable from 'nobody sells this'.
|
|
2176
|
+
*/
|
|
2177
|
+
search(query: string, options?: { limit?: number; timeoutMs?: number }): Promise<YogaOutfitSearchResult>;
|
|
2178
|
+
}
|
|
2179
|
+
}
|
|
2180
|
+
|
|
1436
2181
|
declare namespace BowmarkProvider_aa {
|
|
1437
2182
|
// ── American Airlines — the unit's own declarations, verbatim ──
|
|
1438
2183
|
interface aaFlight {
|
|
@@ -1978,6 +2723,31 @@ interface AjmadisonSearchResult {
|
|
|
1978
2723
|
}
|
|
1979
2724
|
}
|
|
1980
2725
|
|
|
2726
|
+
declare namespace BowmarkProvider_alphavantage {
|
|
2727
|
+
// ── Alpha Vantage — the unit's own declarations, verbatim ──
|
|
2728
|
+
interface AlphavantageSignUpDetails {
|
|
2729
|
+
organization: string;
|
|
2730
|
+
email: string;
|
|
2731
|
+
occupation?: "Investor" | "Software Developer" | "Educator" | "Student" | "I am from the Trading Agents project on Github" | "Other";
|
|
2732
|
+
}
|
|
2733
|
+
interface AlphavantageSignUpResult {
|
|
2734
|
+
apiKey: string;
|
|
2735
|
+
message: string;
|
|
2736
|
+
}
|
|
2737
|
+
|
|
2738
|
+
/**
|
|
2739
|
+
* alphavantage.co's own free-tier signup — issues a real, usable stock-data API key instantly,
|
|
2740
|
+
* no email verification.
|
|
2741
|
+
*/
|
|
2742
|
+
interface Unit {
|
|
2743
|
+
/**
|
|
2744
|
+
* Runs alphavantage.co's real signup flow and returns a genuine, immediately usable free-tier
|
|
2745
|
+
* stock-data API key — no email verification, no CAPTCHA.
|
|
2746
|
+
*/
|
|
2747
|
+
signUp(details: { organization: string, email: string, occupation?: string }): Promise<AlphavantageSignUpResult>;
|
|
2748
|
+
}
|
|
2749
|
+
}
|
|
2750
|
+
|
|
1981
2751
|
declare namespace BowmarkProvider_americanstandard {
|
|
1982
2752
|
// ── American Standard Heating & Air Conditioning — the unit's own declarations, verbatim ──
|
|
1983
2753
|
type AmericanStandardTierName = "Platinum" | "Gold" | "Silver";
|
|
@@ -2168,6 +2938,11 @@ interface AppleProductPage {
|
|
|
2168
2938
|
url: string;
|
|
2169
2939
|
products: AppleProduct[];
|
|
2170
2940
|
}
|
|
2941
|
+
interface AppleTradeInEstimate {
|
|
2942
|
+
device: string;
|
|
2943
|
+
upToUsd: number;
|
|
2944
|
+
sourceUrl: string;
|
|
2945
|
+
}
|
|
2171
2946
|
|
|
2172
2947
|
/** apple.com's own site search and product pages — no API, no login, no browser. */
|
|
2173
2948
|
interface Unit {
|
|
@@ -2182,6 +2957,15 @@ interface AppleProductPage {
|
|
|
2182
2957
|
* every schema.org Product block it publishes.
|
|
2183
2958
|
*/
|
|
2184
2959
|
getProduct(urlOrPath: string): Promise<AppleProductPage>;
|
|
2960
|
+
|
|
2961
|
+
/**
|
|
2962
|
+
* Reads apple.com's own trade-in value table and returns the CEILING ("up to $X")
|
|
2963
|
+
* cash-or-credit estimate it publishes for one device — a human name ("iPhone 14 Pro") or the
|
|
2964
|
+
* slug `phone_trade_in` already normalizes to ("iphone-14-pro") both resolve. Apple publishes
|
|
2965
|
+
* ONE number per device, not a matrix by storage or condition: the value is Apple's advertised
|
|
2966
|
+
* best-case figure, not a quote for a specific unit's actual condition.
|
|
2967
|
+
*/
|
|
2968
|
+
getTradeInEstimate(model: string): Promise<AppleTradeInEstimate>;
|
|
2185
2969
|
}
|
|
2186
2970
|
}
|
|
2187
2971
|
|
|
@@ -3011,6 +3795,47 @@ interface BaublebarCheckoutLink {
|
|
|
3011
3795
|
}
|
|
3012
3796
|
}
|
|
3013
3797
|
|
|
3798
|
+
declare namespace BowmarkProvider_bcparkscamping {
|
|
3799
|
+
// ── BC Parks Camping (Discover Camping) — the unit's own declarations, verbatim ──
|
|
3800
|
+
interface BcParksCampground {
|
|
3801
|
+
resourceLocationId: number;
|
|
3802
|
+
name: string;
|
|
3803
|
+
fullName: string;
|
|
3804
|
+
}
|
|
3805
|
+
interface BcParksSiteAvailability {
|
|
3806
|
+
resourceId: number;
|
|
3807
|
+
siteName: string | null;
|
|
3808
|
+
nightsRequested: number;
|
|
3809
|
+
nightsAvailable: number;
|
|
3810
|
+
fullyAvailable: boolean;
|
|
3811
|
+
}
|
|
3812
|
+
interface BcParksAvailabilityResult {
|
|
3813
|
+
resourceLocationId: number;
|
|
3814
|
+
startDate: string;
|
|
3815
|
+
endDate: string;
|
|
3816
|
+
nights: number;
|
|
3817
|
+
sites: BcParksSiteAvailability[];
|
|
3818
|
+
}
|
|
3819
|
+
|
|
3820
|
+
/**
|
|
3821
|
+
* camping.bcparks.ca's own reservation API (Discover Camping) — find a provincial park
|
|
3822
|
+
* campground by name, then read its real per-site, per-night availability for a stay.
|
|
3823
|
+
*/
|
|
3824
|
+
interface Unit {
|
|
3825
|
+
/**
|
|
3826
|
+
* Given a free-text substring, returns every BC Parks campground whose short or full name
|
|
3827
|
+
* matches, with its resourceLocationId for checkAvailability.
|
|
3828
|
+
*/
|
|
3829
|
+
searchCampgrounds(query: string): Promise<BcParksCampground[]>;
|
|
3830
|
+
|
|
3831
|
+
/**
|
|
3832
|
+
* Given a campground's resourceLocationId and a date range, returns each individual campsite's
|
|
3833
|
+
* real per-night availability for that stay.
|
|
3834
|
+
*/
|
|
3835
|
+
checkAvailability(arg: { resourceLocationId: number, startDate: string, endDate: string }): Promise<BcParksAvailabilityResult>;
|
|
3836
|
+
}
|
|
3837
|
+
}
|
|
3838
|
+
|
|
3014
3839
|
declare namespace BowmarkProvider_beatthebomb {
|
|
3015
3840
|
// ── Beat The Bomb — the unit's own declarations, verbatim ──
|
|
3016
3841
|
interface BeatthebombMission {
|
|
@@ -3076,6 +3901,31 @@ interface BeatthebombPriceQuote {
|
|
|
3076
3901
|
}
|
|
3077
3902
|
}
|
|
3078
3903
|
|
|
3904
|
+
declare namespace BowmarkProvider_bennington {
|
|
3905
|
+
// ── Bennington Marine — the unit's own declarations, verbatim ──
|
|
3906
|
+
interface BenningtonModel {
|
|
3907
|
+
slug: string;
|
|
3908
|
+
name: string;
|
|
3909
|
+
url: string;
|
|
3910
|
+
lengthOverall: string | null;
|
|
3911
|
+
beam: string | null;
|
|
3912
|
+
specText: string;
|
|
3913
|
+
}
|
|
3914
|
+
|
|
3915
|
+
/**
|
|
3916
|
+
* Bennington's pontoon/tritoon model catalog — length, beam and standard-feature specs read
|
|
3917
|
+
* off each model's own page (S, SX today).
|
|
3918
|
+
*/
|
|
3919
|
+
interface Unit {
|
|
3920
|
+
/**
|
|
3921
|
+
* Lists Bennington's pontoon/tritoon model series with their published length overall, beam
|
|
3922
|
+
* and feature specs, read off each model's own page. Pass { model: "sx" } for one model, or
|
|
3923
|
+
* omit args for every known model.
|
|
3924
|
+
*/
|
|
3925
|
+
search(args?: { model?: string }): Promise<{ models: BenningtonModel[]; warnings: string[] }>;
|
|
3926
|
+
}
|
|
3927
|
+
}
|
|
3928
|
+
|
|
3079
3929
|
declare namespace BowmarkProvider_bestbuy {
|
|
3080
3930
|
// ── Best Buy — the unit's own declarations, verbatim ──
|
|
3081
3931
|
interface bestbuyProduct {
|
|
@@ -5944,6 +6794,32 @@ interface DeckedCabSideOptionResult {
|
|
|
5944
6794
|
}
|
|
5945
6795
|
}
|
|
5946
6796
|
|
|
6797
|
+
declare namespace BowmarkProvider_developersopenai {
|
|
6798
|
+
// ── OpenAI Developer Docs — the unit's own declarations, verbatim ──
|
|
6799
|
+
interface DevelopersOpenaiDocPage {
|
|
6800
|
+
path: string;
|
|
6801
|
+
title: string;
|
|
6802
|
+
canonicalUrl: string;
|
|
6803
|
+
body: string;
|
|
6804
|
+
}
|
|
6805
|
+
|
|
6806
|
+
/**
|
|
6807
|
+
* OpenAI's own developer documentation site. getDocPage reads one docs page (title, canonical
|
|
6808
|
+
* URL, full article text) by path — e.g. /api/docs/mcp for the remote MCP server / OAuth
|
|
6809
|
+
* connector guide.
|
|
6810
|
+
*/
|
|
6811
|
+
interface Unit {
|
|
6812
|
+
/**
|
|
6813
|
+
* Reads one page of OpenAI's developer docs and returns its title, canonical URL and full
|
|
6814
|
+
* article text. Pass `path` (e.g. "/api/docs/mcp") to pick a page; omitting it defaults to
|
|
6815
|
+
* "/api/docs/mcp" — the guide for building a remote MCP server, connecting it to ChatGPT/the
|
|
6816
|
+
* API, and its OAuth-based auth section (see the "Handle authentication" and "Connect in
|
|
6817
|
+
* ChatGPT" sections of the returned body).
|
|
6818
|
+
*/
|
|
6819
|
+
getDocPage(args?: object): Promise<DevelopersOpenaiDocPage>;
|
|
6820
|
+
}
|
|
6821
|
+
}
|
|
6822
|
+
|
|
5947
6823
|
declare namespace BowmarkProvider_dice {
|
|
5948
6824
|
// ── Dice — the unit's own declarations, verbatim ──
|
|
5949
6825
|
interface DiceJobDetails {
|
|
@@ -6510,6 +7386,44 @@ interface ebayItem {
|
|
|
6510
7386
|
}
|
|
6511
7387
|
}
|
|
6512
7388
|
|
|
7389
|
+
declare namespace BowmarkProvider_elevenlabs {
|
|
7390
|
+
// ── ElevenLabs — the unit's own declarations, verbatim ──
|
|
7391
|
+
interface elevenlabsSynthesisResult {
|
|
7392
|
+
audioBase64: string;
|
|
7393
|
+
contentType: string;
|
|
7394
|
+
voiceId: string;
|
|
7395
|
+
}
|
|
7396
|
+
interface elevenlabsVoice {
|
|
7397
|
+
voiceId: string;
|
|
7398
|
+
name: string;
|
|
7399
|
+
requiresVerification: boolean;
|
|
7400
|
+
}
|
|
7401
|
+
|
|
7402
|
+
/**
|
|
7403
|
+
* ElevenLabs' own documented REST API (api.elevenlabs.io) — converts text into spoken audio in
|
|
7404
|
+
* an existing or newly-cloned voice, and clones a new voice from caller-supplied audio samples
|
|
7405
|
+
* (Instant Voice Cloning). Requires an ElevenLabs API key.
|
|
7406
|
+
*/
|
|
7407
|
+
interface Unit {
|
|
7408
|
+
/**
|
|
7409
|
+
* Converts `text` into spoken audio via ElevenLabs' documented Text to Speech API, returning
|
|
7410
|
+
* it base64-encoded alongside the vendor's content type (MP3 by default). `voiceId` selects an
|
|
7411
|
+
* existing or previously-cloned ElevenLabs voice (default "21m00Tcm4TlvDq8ikWAM", ElevenLabs'
|
|
7412
|
+
* own "Rachel"); `modelId` selects the ElevenLabs model (default "eleven_multilingual_v2").
|
|
7413
|
+
* Requires an ElevenLabs API key — see this provider's `auth`.
|
|
7414
|
+
*/
|
|
7415
|
+
synthesize(args: { text: string; voiceId?: string; modelId?: string }): Promise<elevenlabsSynthesisResult>;
|
|
7416
|
+
|
|
7417
|
+
/**
|
|
7418
|
+
* Creates a new ElevenLabs voice cloned from one or more caller-supplied audio sample URLs
|
|
7419
|
+
* (Instant Voice Cloning) — downloads each sample and uploads it to ElevenLabs' `voices/add`.
|
|
7420
|
+
* Returns the new voice's id, which `synthesize`'s `voiceId` then accepts. Requires an
|
|
7421
|
+
* ElevenLabs API key — see this provider's `auth`.
|
|
7422
|
+
*/
|
|
7423
|
+
cloneVoice(args: { name: string; sampleUrls: string[]; description?: string }): Promise<elevenlabsVoice>;
|
|
7424
|
+
}
|
|
7425
|
+
}
|
|
7426
|
+
|
|
6513
7427
|
declare namespace BowmarkProvider_embroker {
|
|
6514
7428
|
// ── Embroker — the unit's own declarations, verbatim ──
|
|
6515
7429
|
interface EmbrokerCoverageCatalog {
|
|
@@ -8410,10 +9324,29 @@ interface GithubListCommitsResult {
|
|
|
8410
9324
|
commits: GithubCommit[];
|
|
8411
9325
|
warnings: string[];
|
|
8412
9326
|
}
|
|
9327
|
+
interface GithubRelease {
|
|
9328
|
+
tag: string;
|
|
9329
|
+
name: string;
|
|
9330
|
+
draft: boolean;
|
|
9331
|
+
prerelease: boolean;
|
|
9332
|
+
createdAt: string;
|
|
9333
|
+
publishedAt: string | null;
|
|
9334
|
+
notes: string;
|
|
9335
|
+
url: string;
|
|
9336
|
+
}
|
|
9337
|
+
interface GithubListReleasesOptions {
|
|
9338
|
+
per_page?: number;
|
|
9339
|
+
page?: number;
|
|
9340
|
+
}
|
|
9341
|
+
interface GithubListReleasesResult {
|
|
9342
|
+
releases: GithubRelease[];
|
|
9343
|
+
warnings: string[];
|
|
9344
|
+
}
|
|
8413
9345
|
|
|
8414
9346
|
/**
|
|
8415
9347
|
* GitHub's own REST API, keyless. Built: a public repo's commit log (sha, author, date,
|
|
8416
|
-
* message), paged and windowed
|
|
9348
|
+
* message), paged and windowed; a public repo's release history (tag, name, dates, release
|
|
9349
|
+
* notes text), paged. Declared, not yet built: repo metadata (getRepo).
|
|
8417
9350
|
*/
|
|
8418
9351
|
interface Unit {
|
|
8419
9352
|
/**
|
|
@@ -8428,6 +9361,19 @@ interface GithubListCommitsResult {
|
|
|
8428
9361
|
* throw.
|
|
8429
9362
|
*/
|
|
8430
9363
|
listCommits(owner: string, repo: string, options?: GithubListCommitsOptions): Promise<GithubListCommitsResult>;
|
|
9364
|
+
|
|
9365
|
+
/**
|
|
9366
|
+
* Returns a public repo's release history off GitHub's own unauthenticated REST releases
|
|
9367
|
+
* endpoint — each release's tag, name, draft/prerelease flags, created/published dates, its
|
|
9368
|
+
* release notes text (`notes`) and its own github.com URL. This is a project's own release
|
|
9369
|
+
* notes documentation — `listReleases("microsoft", "TypeScript")` returns the TypeScript
|
|
9370
|
+
* compiler's. `options.per_page` (GitHub's own 1-100 ceiling, default 30) and `options.page`
|
|
9371
|
+
* page through history, newest first (GitHub's own ordering). Unauthenticated calls are capped
|
|
9372
|
+
* at 60 requests/hour per IP, the same shared ceiling `listCommits` spends against. THROWS on
|
|
9373
|
+
* an unknown owner/repo (404) or a rate limit (403/429); a repo with no releases yet returns
|
|
9374
|
+
* `releases: []`, not a throw.
|
|
9375
|
+
*/
|
|
9376
|
+
listReleases(owner: string, repo: string, options?: GithubListReleasesOptions): Promise<GithubListReleasesResult>;
|
|
8431
9377
|
}
|
|
8432
9378
|
}
|
|
8433
9379
|
|
|
@@ -10388,6 +11334,23 @@ interface IbuypowerBenchmark {
|
|
|
10388
11334
|
games: Record<string, IbuypowerGameFps>; // keyed by the titles iBUYPOWER benchmarks
|
|
10389
11335
|
}
|
|
10390
11336
|
|
|
11337
|
+
interface IbuypowerRecommendation {
|
|
11338
|
+
source: "prebuilt" | "configurator";
|
|
11339
|
+
slug: string;
|
|
11340
|
+
name: string;
|
|
11341
|
+
url: string;
|
|
11342
|
+
price: string | null;
|
|
11343
|
+
priceValue: number | null;
|
|
11344
|
+
timeSpyOverall: number | null; // null when the site has not benchmarked this pair
|
|
11345
|
+
scorePerDollar: number | null; // timeSpyOverall / priceValue — highest first
|
|
11346
|
+
inStock: boolean; // a configurator is always buildable to order
|
|
11347
|
+
}
|
|
11348
|
+
|
|
11349
|
+
interface IbuypowerRecommendArgs {
|
|
11350
|
+
budget_max: number; // the hard ceiling; nothing over it is returned
|
|
11351
|
+
use_case?: string; // accepted, does not change the ranking — see recommendGamingPc's summary
|
|
11352
|
+
}
|
|
11353
|
+
|
|
10391
11354
|
/**
|
|
10392
11355
|
* Gaming and workstation PCs from iBUYPOWER — the base configurators with their current
|
|
10393
11356
|
* starting prices, every component option on one with its exact price difference, the RDY
|
|
@@ -10451,6 +11414,18 @@ interface IbuypowerBenchmark {
|
|
|
10451
11414
|
* to the Time Spy score of a pair it does have.
|
|
10452
11415
|
*/
|
|
10453
11416
|
getBenchmark(cpuBench: string, gpuBench: string): Promise<IbuypowerBenchmark | null>;
|
|
11417
|
+
|
|
11418
|
+
/**
|
|
11419
|
+
* Recommends buildable PCs at or under budget_max, drawn from BOTH product lines — in-stock
|
|
11420
|
+
* RDY prebuilts (their own listed Time Spy score) and base configurators at their stock
|
|
11421
|
+
* loadout (priced from getSystem, benchmarked from getBenchmark for the cheapest ~5 affordable
|
|
11422
|
+
* ones) — ranked by 3DMark Time Spy score per dollar, best first. `use_case` is accepted but
|
|
11423
|
+
* does not change the ranking: iBUYPOWER publishes only one axis of measured performance, and
|
|
11424
|
+
* every recommendation is already ranked on it. THROWS when nothing in stock or buildable fits
|
|
11425
|
+
* the budget. `warnings` names any configurator that stopped resolving mid-call; it is empty
|
|
11426
|
+
* on a healthy call.
|
|
11427
|
+
*/
|
|
11428
|
+
recommendGamingPc(args: IbuypowerRecommendArgs): Promise<{ recommendations: IbuypowerRecommendation[]; warnings: string[] }>;
|
|
10454
11429
|
}
|
|
10455
11430
|
}
|
|
10456
11431
|
|
|
@@ -11635,6 +12610,42 @@ interface IsllcSearchCommunitiesResult {
|
|
|
11635
12610
|
}
|
|
11636
12611
|
}
|
|
11637
12612
|
|
|
12613
|
+
declare namespace BowmarkProvider_istanbulkart {
|
|
12614
|
+
// ── İstanbulkart — the unit's own declarations, verbatim ──
|
|
12615
|
+
interface IstanbulkartCardFee {
|
|
12616
|
+
cardTypeName: string; // the site's own Turkish label, e.g. "İstanbulkart"
|
|
12617
|
+
feeTRY: number | null;
|
|
12618
|
+
visaIssuanceFeeTRY: number | null;
|
|
12619
|
+
}
|
|
12620
|
+
interface IstanbulkartTouristPass {
|
|
12621
|
+
days: number; // 1, 3, 5, 7 or 15 on the table measured 2026-08-29
|
|
12622
|
+
priceTRY: number;
|
|
12623
|
+
}
|
|
12624
|
+
|
|
12625
|
+
/**
|
|
12626
|
+
* Istanbul public transit: İstanbulkart card purchase/personalization fees and the İstanbul
|
|
12627
|
+
* City Card tourist unlimited-ride pass tariffs, read from istanbulkart.istanbul's own
|
|
12628
|
+
* price-and-limits data.
|
|
12629
|
+
*/
|
|
12630
|
+
interface Unit {
|
|
12631
|
+
/**
|
|
12632
|
+
* Reads the current İstanbulkart fee table — the purchase price of every card variant
|
|
12633
|
+
* (İstanbulkart, İstanbulkart Plus, the discounted/free variants, the limited-ride geç
|
|
12634
|
+
* tickets, SMS QR) plus each variant's personalization/visa-issuance fee, in TRY, straight off
|
|
12635
|
+
* istanbulkart.istanbul's own price-and-limits page.
|
|
12636
|
+
*/
|
|
12637
|
+
getCardFees(): Promise<IstanbulkartCardFee[]>;
|
|
12638
|
+
|
|
12639
|
+
/**
|
|
12640
|
+
* Reads the İstanbul City Card tariff table — the 1/3/5/7/15-day unlimited-ride visitor pass
|
|
12641
|
+
* prices, in TRY, straight off istanbulkart.istanbul's own price-and-limits page. This is the
|
|
12642
|
+
* tourist unlimited-pass answer: İstanbul City Card is the İstanbulkart variant sold
|
|
12643
|
+
* specifically to visitors for unlimited transit over a fixed number of days.
|
|
12644
|
+
*/
|
|
12645
|
+
getTouristPassFares(): Promise<IstanbulkartTouristPass[]>;
|
|
12646
|
+
}
|
|
12647
|
+
}
|
|
12648
|
+
|
|
11638
12649
|
declare namespace BowmarkProvider_ivoryhomes {
|
|
11639
12650
|
// ── Ivory Homes — the unit's own declarations, verbatim ──
|
|
11640
12651
|
// Ivory Homes' OWN shapes — not a capability contract.
|
|
@@ -12300,6 +13311,15 @@ interface KompanSparePartsDocuments {
|
|
|
12300
13311
|
* package" PDF URL.
|
|
12301
13312
|
*/
|
|
12302
13313
|
getSparePartsDocuments(variantId: string, purchaseDate: string): Promise<KompanSparePartsDocuments>;
|
|
13314
|
+
|
|
13315
|
+
/**
|
|
13316
|
+
* A single call keyed by `product_no` that reports whether a playground product has spare
|
|
13317
|
+
* parts listed — the same search searchProduct() runs, reshaped to a one-argument object so a
|
|
13318
|
+
* caller does not need to know the two-step (search, then fetch documents per variant)
|
|
13319
|
+
* internal shape just to ask "does this product have spare parts". `found: false` is a real
|
|
13320
|
+
* answer, not an error.
|
|
13321
|
+
*/
|
|
13322
|
+
searchPlaygroundSpareParts(args: { product_no: string; region?: KompanRegion }): Promise<KompanSearchResult>;
|
|
12303
13323
|
}
|
|
12304
13324
|
}
|
|
12305
13325
|
|
|
@@ -12887,6 +13907,42 @@ interface LiquiddeathLiveCart {
|
|
|
12887
13907
|
}
|
|
12888
13908
|
}
|
|
12889
13909
|
|
|
13910
|
+
declare namespace BowmarkProvider_liquidspace {
|
|
13911
|
+
// ── LiquidSpace — the unit's own declarations, verbatim ──
|
|
13912
|
+
interface LiquidspaceWorkspaceRow {
|
|
13913
|
+
venueName: string;
|
|
13914
|
+
venueAddress: string;
|
|
13915
|
+
workspaceName: string; // e.g. "Coworking Daypass"
|
|
13916
|
+
scenario: string | null; // LiquidSpace's own category label, e.g. "Coworking"
|
|
13917
|
+
capacity: number | null;
|
|
13918
|
+
priceAmount: string; // e.g. "$45"
|
|
13919
|
+
priceAmountValue: number;
|
|
13920
|
+
priceDescription: string; // "/day-pass" for every row this function returns
|
|
13921
|
+
bookingUrl: string; // this workspace's own LiquidSpace page
|
|
13922
|
+
latitude: number;
|
|
13923
|
+
longitude: number;
|
|
13924
|
+
averageRating: number | null;
|
|
13925
|
+
ratesCount: number | null;
|
|
13926
|
+
}
|
|
13927
|
+
|
|
13928
|
+
/**
|
|
13929
|
+
* LiquidSpace's own city-listing pages — day-pass coworking pricing and availability across
|
|
13930
|
+
* WeWork, Industrious, Regus/Spaces and independent operators in one place, read directly from
|
|
13931
|
+
* the site's own embedded listing data, no browser.
|
|
13932
|
+
*/
|
|
13933
|
+
interface Unit {
|
|
13934
|
+
/**
|
|
13935
|
+
* Reads LiquidSpace's own city-listing page for `state` (a US state abbreviation, e.g. "NY")
|
|
13936
|
+
* and `city` (e.g. "New York") and returns every workspace priced as a single-day coworking
|
|
13937
|
+
* pass — venue name/address, the workspace's own display name and category, price, capacity,
|
|
13938
|
+
* coordinates and rating, plus a direct link to book it (booking itself needs a signed-in
|
|
13939
|
+
* LiquidSpace account and is out of scope). Returns `[]` when the city page carries no
|
|
13940
|
+
* day-pass inventory today — a real, complete answer, not a failure.
|
|
13941
|
+
*/
|
|
13942
|
+
search(input: { city: string; state: string }): Promise<LiquidspaceWorkspaceRow[]>;
|
|
13943
|
+
}
|
|
13944
|
+
}
|
|
13945
|
+
|
|
12890
13946
|
declare namespace BowmarkProvider_littlewordsproject {
|
|
12891
13947
|
// ── Little Words Project — the unit's own declarations, verbatim ──
|
|
12892
13948
|
interface LittleWordsProjectOption {
|
|
@@ -13649,6 +14705,37 @@ interface mailchimpPlanPricing {
|
|
|
13649
14705
|
}
|
|
13650
14706
|
}
|
|
13651
14707
|
|
|
14708
|
+
declare namespace BowmarkProvider_marketplace_visualstudio {
|
|
14709
|
+
// ── Visual Studio Code Marketplace — the unit's own declarations, verbatim ──
|
|
14710
|
+
interface marketplaceExtensionStats {
|
|
14711
|
+
extensionId: string;
|
|
14712
|
+
displayName: string;
|
|
14713
|
+
publisherDisplayName: string;
|
|
14714
|
+
shortDescription: string;
|
|
14715
|
+
version: string;
|
|
14716
|
+
lastUpdated: string;
|
|
14717
|
+
installCount: number;
|
|
14718
|
+
averageRating: number | null;
|
|
14719
|
+
ratingCount: number;
|
|
14720
|
+
}
|
|
14721
|
+
|
|
14722
|
+
/**
|
|
14723
|
+
* The VS Code Marketplace — look up one extension by its publisher.name id and get its install
|
|
14724
|
+
* count, rating and latest version, the numbers the extension's own Marketplace page shows.
|
|
14725
|
+
*/
|
|
14726
|
+
interface Unit {
|
|
14727
|
+
/**
|
|
14728
|
+
* Looks up one VS Code extension by its "publisher.name" id — the id shown in the extension's
|
|
14729
|
+
* own Marketplace URL (e.g. "ms-python.python" for
|
|
14730
|
+
* marketplace.visualstudio.com/items?itemName=ms-python.python) and in `code
|
|
14731
|
+
* --list-extensions` — and returns its install count, average rating, rating count, latest
|
|
14732
|
+
* published version and when that version last updated. Throws if the id does not match any
|
|
14733
|
+
* published extension.
|
|
14734
|
+
*/
|
|
14735
|
+
getExtensionStats(extensionId: string): Promise<marketplaceExtensionStats>;
|
|
14736
|
+
}
|
|
14737
|
+
}
|
|
14738
|
+
|
|
13652
14739
|
declare namespace BowmarkProvider_marriott {
|
|
13653
14740
|
// ── Marriott — the unit's own declarations, verbatim ──
|
|
13654
14741
|
interface MarriottHotelListing {
|
|
@@ -13801,6 +14888,39 @@ interface mcdonaldsFindStoresResult {
|
|
|
13801
14888
|
}
|
|
13802
14889
|
}
|
|
13803
14890
|
|
|
14891
|
+
declare namespace BowmarkProvider_mcp_registry {
|
|
14892
|
+
// ── MCP Registry — the unit's own declarations, verbatim ──
|
|
14893
|
+
interface mcpRegistryEntry {
|
|
14894
|
+
name: string;
|
|
14895
|
+
title: string | null;
|
|
14896
|
+
description: string;
|
|
14897
|
+
version: string;
|
|
14898
|
+
repositoryUrl: string | null;
|
|
14899
|
+
remoteUrl: string | null;
|
|
14900
|
+
status: string;
|
|
14901
|
+
}
|
|
14902
|
+
|
|
14903
|
+
/**
|
|
14904
|
+
* The official Model Context Protocol server registry — search or browse published MCP servers
|
|
14905
|
+
* by name, and get each one's install/connect URL.
|
|
14906
|
+
*/
|
|
14907
|
+
interface Unit {
|
|
14908
|
+
/**
|
|
14909
|
+
* Lists or searches the official MCP server registry (registry.modelcontextprotocol.io) — the
|
|
14910
|
+
* community-run directory of published Model Context Protocol servers, the same catalogue the
|
|
14911
|
+
* registry's own web UI browses. `query` substring-matches the registry NAME (e.g. "weather"
|
|
14912
|
+
* matches `ai.smithery/smithery-ai-national-weather-service`); omit it to list the
|
|
14913
|
+
* newest-published entries. Each row carries the registry name, an optional title, its
|
|
14914
|
+
* description, its latest published version, where to install it (`repositoryUrl`) or connect
|
|
14915
|
+
* to it if it's hosted (`remoteUrl`), and the registry's own status (`"active"`,
|
|
14916
|
+
* `"deprecated"`, …). `limit` caps how many rows come back (default 30, registry maximum 100)
|
|
14917
|
+
* — this is a flat list, not a paged walk, since a caller asking "is there an MCP server for
|
|
14918
|
+
* X" wants the top matches, not the whole registry.
|
|
14919
|
+
*/
|
|
14920
|
+
search(query?: string, limit?: number): Promise<mcpRegistryEntry[]>;
|
|
14921
|
+
}
|
|
14922
|
+
}
|
|
14923
|
+
|
|
13804
14924
|
declare namespace BowmarkProvider_medicalguardian {
|
|
13805
14925
|
// ── Medical Guardian — the unit's own declarations, verbatim ──
|
|
13806
14926
|
// Medical Guardian's OWN shapes — not a capability contract.
|
|
@@ -14576,6 +15696,57 @@ interface medicareGetPlanQuery {
|
|
|
14576
15696
|
}
|
|
14577
15697
|
}
|
|
14578
15698
|
|
|
15699
|
+
declare namespace BowmarkProvider_mergify {
|
|
15700
|
+
// ── Mergify — the unit's own declarations, verbatim ──
|
|
15701
|
+
interface mergifyBatch {
|
|
15702
|
+
id: string;
|
|
15703
|
+
name: string;
|
|
15704
|
+
statusCode: string;
|
|
15705
|
+
batchFilledSlots: number | null;
|
|
15706
|
+
maxBatchSlots: number | null;
|
|
15707
|
+
retries: number;
|
|
15708
|
+
maxRetries: number;
|
|
15709
|
+
startedAt: string | null;
|
|
15710
|
+
estimatedMergeAt: string | null;
|
|
15711
|
+
estimatedCiFinishAt: string | null;
|
|
15712
|
+
ciFinishedAt: string | null;
|
|
15713
|
+
queueRuleName: string;
|
|
15714
|
+
checksPassed: number;
|
|
15715
|
+
checksTotal: number;
|
|
15716
|
+
pullRequestNumbers: number[];
|
|
15717
|
+
}
|
|
15718
|
+
interface mergifyQueuedPull {
|
|
15719
|
+
number: number;
|
|
15720
|
+
title: string;
|
|
15721
|
+
url: string;
|
|
15722
|
+
author: string | null;
|
|
15723
|
+
queuedAt: string;
|
|
15724
|
+
priorityRuleName: string | null;
|
|
15725
|
+
estimatedMergeAt: string | null;
|
|
15726
|
+
}
|
|
15727
|
+
interface mergifyQueueStatus {
|
|
15728
|
+
batches: mergifyBatch[];
|
|
15729
|
+
waitingPullRequests: mergifyQueuedPull[];
|
|
15730
|
+
paused: boolean;
|
|
15731
|
+
pauseReason: string | null;
|
|
15732
|
+
}
|
|
15733
|
+
|
|
15734
|
+
/**
|
|
15735
|
+
* Mergify's own documented REST API (api.mergify.com) — the live state of a repo's merge
|
|
15736
|
+
* queue: active batches, their checks and estimated merge times, and every pull request still
|
|
15737
|
+
* waiting to be batched.
|
|
15738
|
+
*/
|
|
15739
|
+
interface Unit {
|
|
15740
|
+
/**
|
|
15741
|
+
* The live state of a repo's Mergify merge queue via Mergify's documented REST API — every
|
|
15742
|
+
* active batch (status, checks-passed count, estimated merge/CI-finish times, and its pull
|
|
15743
|
+
* requests), every pull request still waiting to be batched, and whether the queue is paused.
|
|
15744
|
+
* Requires a Mergify Application Key or a GitHub token — see this provider's `auth`.
|
|
15745
|
+
*/
|
|
15746
|
+
queueStatus(args: { owner: string; repo: string }): Promise<mergifyQueueStatus>;
|
|
15747
|
+
}
|
|
15748
|
+
}
|
|
15749
|
+
|
|
14579
15750
|
declare namespace BowmarkProvider_microcenter {
|
|
14580
15751
|
// ── Micro Center — the unit's own declarations, verbatim ──
|
|
14581
15752
|
// Micro Center's OWN row shape — not the `pcparts` capability contract.
|
|
@@ -14692,6 +15863,37 @@ interface StoreShelfRoster {
|
|
|
14692
15863
|
}
|
|
14693
15864
|
}
|
|
14694
15865
|
|
|
15866
|
+
declare namespace BowmarkProvider_minimax {
|
|
15867
|
+
// ── MiniMax — the unit's own declarations, verbatim ──
|
|
15868
|
+
interface MinimaxDocIndexEntry {
|
|
15869
|
+
title: string;
|
|
15870
|
+
url: string;
|
|
15871
|
+
description: string | null;
|
|
15872
|
+
}
|
|
15873
|
+
|
|
15874
|
+
interface MinimaxDocPage {
|
|
15875
|
+
title: string;
|
|
15876
|
+
url: string;
|
|
15877
|
+
description: string | null;
|
|
15878
|
+
content: string;
|
|
15879
|
+
}
|
|
15880
|
+
|
|
15881
|
+
/**
|
|
15882
|
+
* MiniMax's own developer docs (platform.minimax.io) — resolves a topic against the site's own
|
|
15883
|
+
* machine-readable docs index and returns that page's title, url and full Markdown body.
|
|
15884
|
+
*/
|
|
15885
|
+
interface Unit {
|
|
15886
|
+
/**
|
|
15887
|
+
* Reads MiniMax's own developer documentation (platform.minimax.io). topic is a free-text
|
|
15888
|
+
* description of what you want, e.g. "text generation", "voice clone", "mcp guide" or "prompt
|
|
15889
|
+
* caching" — it is matched against the site's own docs index (title and url), and the matched
|
|
15890
|
+
* page's full Markdown body is returned. Throws naming real page titles when nothing matches
|
|
15891
|
+
* closely enough.
|
|
15892
|
+
*/
|
|
15893
|
+
getDocs(topic: string): Promise<MinimaxDocPage>;
|
|
15894
|
+
}
|
|
15895
|
+
}
|
|
15896
|
+
|
|
14695
15897
|
declare namespace BowmarkProvider_minted {
|
|
14696
15898
|
// ── Minted — the unit's own declarations, verbatim ──
|
|
14697
15899
|
// Minted's OWN shapes — not a capability contract.
|
|
@@ -15109,6 +16311,46 @@ interface MossyoakCheckoutLink {
|
|
|
15109
16311
|
* available — the error names the candidate or in-stock options so the caller can retry.
|
|
15110
16312
|
*/
|
|
15111
16313
|
getMossyoakCheckoutLink(handle: string, variantTitleOrOptions: string, opts?: { quantity?: number }): Promise<MossyoakCheckoutLink>;
|
|
16314
|
+
|
|
16315
|
+
/**
|
|
16316
|
+
* Reads the same live catalogue listMossyoakProducts does and filters it by product type
|
|
16317
|
+
* ("vest", "jacket", …, matched case-insensitively against each product's own productType)
|
|
16318
|
+
* before applying the limit — so a caller asking for one category does not have to fetch and
|
|
16319
|
+
* filter the whole storefront themselves. In-stock products first, then by handle. `warnings`
|
|
16320
|
+
* names it when the requested productType matched nothing.
|
|
16321
|
+
*/
|
|
16322
|
+
searchProducts(opts?: { productType?: string; limit?: number }): Promise<MossyoakCatalogue>;
|
|
16323
|
+
}
|
|
16324
|
+
}
|
|
16325
|
+
|
|
16326
|
+
declare namespace BowmarkProvider_muze_gov_tr {
|
|
16327
|
+
// ── muze.gov.tr — Turkey Ministry of Culture and Tourism museums portal — the unit's own declarations, verbatim ──
|
|
16328
|
+
interface MuzeVisitingHours {
|
|
16329
|
+
name: string;
|
|
16330
|
+
openingTime: string | null; // "HH:MM"
|
|
16331
|
+
closingTime: string | null; // "HH:MM"
|
|
16332
|
+
ticketOfficeClosingTime: string | null; // "HH:MM" — often earlier than closingTime
|
|
16333
|
+
closedDays: string | null; // the site's own Turkish wording, e.g. "Her gün açık"
|
|
16334
|
+
address: string | null;
|
|
16335
|
+
phone: string | null;
|
|
16336
|
+
email: string | null;
|
|
16337
|
+
url: string;
|
|
16338
|
+
}
|
|
16339
|
+
|
|
16340
|
+
/**
|
|
16341
|
+
* Turkey's Ministry of Culture and Tourism museums portal — opening/closing hours,
|
|
16342
|
+
* ticket-office closing time and closed days for the museums and archaeological sites it
|
|
16343
|
+
* publishes (İstanbul Archaeological Museums, Hagia Sophia History and Experience Museum,
|
|
16344
|
+
* Galata Tower Museum among them), read straight off the site's own listing and detail pages.
|
|
16345
|
+
*/
|
|
16346
|
+
interface Unit {
|
|
16347
|
+
/**
|
|
16348
|
+
* Matches `query` against muze.gov.tr's own museum-highlight listing (a substring match on the
|
|
16349
|
+
* site's own display name, e.g. "Galata Tower" or "Hagia Sophia") and reads that museum's
|
|
16350
|
+
* opening/closing hours, ticket-office closing time and closed days straight off its detail
|
|
16351
|
+
* page.
|
|
16352
|
+
*/
|
|
16353
|
+
getVisitingHours(query: string): Promise<MuzeVisitingHours>;
|
|
15112
16354
|
}
|
|
15113
16355
|
}
|
|
15114
16356
|
|
|
@@ -15628,6 +16870,14 @@ interface NvisioncentersSavingsResult {
|
|
|
15628
16870
|
calculatorUrl: string;
|
|
15629
16871
|
}
|
|
15630
16872
|
|
|
16873
|
+
interface NvisioncentersEstimateSavingsInput {
|
|
16874
|
+
age: number;
|
|
16875
|
+
glasses: number;
|
|
16876
|
+
glasses_cost: number;
|
|
16877
|
+
contacts: number;
|
|
16878
|
+
contacts_cost: number;
|
|
16879
|
+
}
|
|
16880
|
+
|
|
15631
16881
|
type NvisioncentersAgeBracket = "Under 18" | "18-34" | "35-54" | "55+";
|
|
15632
16882
|
|
|
15633
16883
|
interface NvisioncentersCandidacyInput {
|
|
@@ -15664,6 +16914,13 @@ interface NvisioncentersCandidacyResult {
|
|
|
15664
16914
|
* and prior-consultation history but its logic never uses either).
|
|
15665
16915
|
*/
|
|
15666
16916
|
checkLasikCandidacy(input: NvisioncentersCandidacyInput): Promise<NvisioncentersCandidacyResult>;
|
|
16917
|
+
|
|
16918
|
+
/**
|
|
16919
|
+
* Same calculation as calculateLasikSavings, taking the snake_case argument spelling
|
|
16920
|
+
* (glasses_cost, contacts_cost) a caller guessed instead of the provider's camelCase — an
|
|
16921
|
+
* alias, not a second calculator. Throws under the same condition calculateLasikSavings does.
|
|
16922
|
+
*/
|
|
16923
|
+
estimateLasikSavings(input: NvisioncentersEstimateSavingsInput): Promise<NvisioncentersSavingsResult>;
|
|
15667
16924
|
}
|
|
15668
16925
|
}
|
|
15669
16926
|
|
|
@@ -16523,6 +17780,35 @@ interface PizzahutDealsForRender {
|
|
|
16523
17780
|
}
|
|
16524
17781
|
}
|
|
16525
17782
|
|
|
17783
|
+
declare namespace BowmarkProvider_poshmark {
|
|
17784
|
+
// ── Poshmark — the unit's own declarations, verbatim ──
|
|
17785
|
+
interface PoshmarkSupportArticle {
|
|
17786
|
+
url: string;
|
|
17787
|
+
text: string;
|
|
17788
|
+
}
|
|
17789
|
+
|
|
17790
|
+
/**
|
|
17791
|
+
* Poshmark's own support-center documentation (support.poshmark.com) for Bulk Upload — the
|
|
17792
|
+
* CSV/template format and the zip-of-photos requirements for sellers listing many items at
|
|
17793
|
+
* once.
|
|
17794
|
+
*/
|
|
17795
|
+
interface Unit {
|
|
17796
|
+
/**
|
|
17797
|
+
* Reads Poshmark's own 'How to use Bulk Upload Templates' support article — required columns,
|
|
17798
|
+
* SKU rules, the .csv file requirement, Excel-version caveats — straight off
|
|
17799
|
+
* support.poshmark.com.
|
|
17800
|
+
*/
|
|
17801
|
+
getBulkUploadTemplateGuide(): Promise<PoshmarkSupportArticle>;
|
|
17802
|
+
|
|
17803
|
+
/**
|
|
17804
|
+
* Reads Poshmark's own 'How to create a Zip file for Bulk Upload' support article — how to zip
|
|
17805
|
+
* listing photos on Windows/Mac and which image types Bulk Upload accepts — straight off
|
|
17806
|
+
* support.poshmark.com.
|
|
17807
|
+
*/
|
|
17808
|
+
getZipFileGuide(): Promise<PoshmarkSupportArticle>;
|
|
17809
|
+
}
|
|
17810
|
+
}
|
|
17811
|
+
|
|
16526
17812
|
declare namespace BowmarkProvider_positivegrid {
|
|
16527
17813
|
// ── Positive Grid — the unit's own declarations, verbatim ──
|
|
16528
17814
|
interface positivegridFindRetailersArgs {
|
|
@@ -17356,6 +18642,45 @@ interface ContainerRecipeDetails {
|
|
|
17356
18642
|
}
|
|
17357
18643
|
}
|
|
17358
18644
|
|
|
18645
|
+
declare namespace BowmarkProvider_proxmox {
|
|
18646
|
+
// ── Proxmox — the unit's own declarations, verbatim ──
|
|
18647
|
+
type ProxmoxProductSlug =
|
|
18648
|
+
| "proxmox-virtual-environment"
|
|
18649
|
+
| "proxmox-backup-server"
|
|
18650
|
+
| "proxmox-mail-gateway"
|
|
18651
|
+
| "proxmox-datacenter-manager";
|
|
18652
|
+
|
|
18653
|
+
interface ProxmoxIsoDownload {
|
|
18654
|
+
product: ProxmoxProductSlug;
|
|
18655
|
+
productName: string;
|
|
18656
|
+
title: string;
|
|
18657
|
+
version: string;
|
|
18658
|
+
fileSizeText: string;
|
|
18659
|
+
lastUpdated: string;
|
|
18660
|
+
sha256: string | null;
|
|
18661
|
+
downloadUrl: string;
|
|
18662
|
+
torrentUrl: string | null;
|
|
18663
|
+
pageUrl: string;
|
|
18664
|
+
}
|
|
18665
|
+
|
|
18666
|
+
/**
|
|
18667
|
+
* Open-source virtualization/backup/mail-security vendor. getIsoDownloads is live — the
|
|
18668
|
+
* current ISO installer(s) for any or all of Proxmox VE, Proxmox Backup Server, Proxmox Mail
|
|
18669
|
+
* Gateway and Proxmox Datacenter Manager, straight off proxmox.com's own downloads pages:
|
|
18670
|
+
* version, file size, last-updated date, SHA256 checksum, and the real enterprise.proxmox.com
|
|
18671
|
+
* download/torrent URLs.
|
|
18672
|
+
*/
|
|
18673
|
+
interface Unit {
|
|
18674
|
+
/**
|
|
18675
|
+
* Gets the current ISO installer download(s) for one Proxmox product, or for all four when
|
|
18676
|
+
* `product` is omitted. Proxmox VE's own downloads page additionally lists its current arm64
|
|
18677
|
+
* build and three prior major versions (8.4-1, 7.4-1, 6.4-1) alongside the current amd64
|
|
18678
|
+
* release — every card the site publishes comes back, not just the newest one.
|
|
18679
|
+
*/
|
|
18680
|
+
getIsoDownloads(product?: "proxmox-virtual-environment" | "proxmox-backup-server" | "proxmox-mail-gateway" | "proxmox-datacenter-manager"): Promise<ProxmoxIsoDownload[]>;
|
|
18681
|
+
}
|
|
18682
|
+
}
|
|
18683
|
+
|
|
17359
18684
|
declare namespace BowmarkProvider_reddit {
|
|
17360
18685
|
// ── Reddit — the unit's own declarations, verbatim ──
|
|
17361
18686
|
interface RedditSearchPost {
|
|
@@ -18884,6 +20209,43 @@ interface SitmeanssitNearestLocationsResult {
|
|
|
18884
20209
|
}
|
|
18885
20210
|
}
|
|
18886
20211
|
|
|
20212
|
+
declare namespace BowmarkProvider_sixflags {
|
|
20213
|
+
// ── Six Flags — the unit's own declarations, verbatim ──
|
|
20214
|
+
interface SixFlagsPassRow {
|
|
20215
|
+
id: string | null;
|
|
20216
|
+
guestFacingTitle: string; // e.g. "Park Ticket", "2027 Gold Pass"
|
|
20217
|
+
subtitle: string | null;
|
|
20218
|
+
beforePriceText: string | null; // e.g. "Starting From", "Only"
|
|
20219
|
+
currentPrice: string; // the site's raw text, e.g. "$$55"
|
|
20220
|
+
currentPriceModifier: string | null; // e.g. "/ea*", "per night"
|
|
20221
|
+
strikethroughPrice: string | null; // the struck-through "was" price
|
|
20222
|
+
buyUrl: string | null;
|
|
20223
|
+
}
|
|
20224
|
+
interface SixFlagsTicketsResult {
|
|
20225
|
+
parkSlug: string;
|
|
20226
|
+
parkTitle: string;
|
|
20227
|
+
groupLabel: string; // e.g. "Daily Tickets"
|
|
20228
|
+
passes: SixFlagsPassRow[];
|
|
20229
|
+
}
|
|
20230
|
+
|
|
20231
|
+
/**
|
|
20232
|
+
* Reads a Six Flags/Cedar Fair park's own daily-tickets page — every park in the merged
|
|
20233
|
+
* portfolio (Six Flags Magic Mountain, Cedar Point, Kings Island, Knott's Berry Farm,
|
|
20234
|
+
* Carowinds and ~30 more) runs on one shared site — and returns its current ticket/pass cards
|
|
20235
|
+
* straight out of the page's own server-rendered data, no browser.
|
|
20236
|
+
*/
|
|
20237
|
+
interface Unit {
|
|
20238
|
+
/**
|
|
20239
|
+
* Reads a Six Flags/Cedar Fair park's own daily-tickets page by its sixflags.com URL slug
|
|
20240
|
+
* (e.g. `"cedarpoint"`, `"greatadventure"`, `"magicmountain"`, `"knotts"`) and returns its
|
|
20241
|
+
* ticket/pass cards exactly as published today — title, subtitle, raw price text (the site
|
|
20242
|
+
* renders it as `"$$55"`, i.e. `"$" + "$55"`), any "was" price, and a buy/learn-more link.
|
|
20243
|
+
* Throws if the slug does not resolve to a real park page on the site.
|
|
20244
|
+
*/
|
|
20245
|
+
getTickets(park: string): Promise<SixFlagsTicketsResult>;
|
|
20246
|
+
}
|
|
20247
|
+
}
|
|
20248
|
+
|
|
18887
20249
|
declare namespace BowmarkProvider_smartsign {
|
|
18888
20250
|
// ── SmartSign — the unit's own declarations, verbatim ──
|
|
18889
20251
|
interface SmartsignSearchResult {
|
|
@@ -18960,6 +20322,60 @@ interface SmartwoolSockFinderResult {
|
|
|
18960
20322
|
}
|
|
18961
20323
|
}
|
|
18962
20324
|
|
|
20325
|
+
declare namespace BowmarkProvider_smithery {
|
|
20326
|
+
// ── Smithery — the unit's own declarations, verbatim ──
|
|
20327
|
+
interface SmitheryServer {
|
|
20328
|
+
id: string;
|
|
20329
|
+
qualifiedName: string;
|
|
20330
|
+
namespace: string | null;
|
|
20331
|
+
slug: string | null;
|
|
20332
|
+
displayName: string;
|
|
20333
|
+
description: string;
|
|
20334
|
+
iconUrl: string | null;
|
|
20335
|
+
verified: boolean;
|
|
20336
|
+
useCount: number;
|
|
20337
|
+
remote: boolean | null;
|
|
20338
|
+
isDeployed: boolean;
|
|
20339
|
+
createdAt: string;
|
|
20340
|
+
homepage: string;
|
|
20341
|
+
bySmithery: boolean;
|
|
20342
|
+
owner: string | null;
|
|
20343
|
+
score: number | null;
|
|
20344
|
+
}
|
|
20345
|
+
interface SmitherySearchOptions {
|
|
20346
|
+
page?: number;
|
|
20347
|
+
pageSize?: number;
|
|
20348
|
+
verified?: boolean;
|
|
20349
|
+
remote?: boolean;
|
|
20350
|
+
isDeployed?: boolean;
|
|
20351
|
+
namespace?: string;
|
|
20352
|
+
}
|
|
20353
|
+
interface SmitherySearchResult {
|
|
20354
|
+
servers: SmitheryServer[];
|
|
20355
|
+
pagination: { currentPage: number; pageSize: number; totalPages: number; totalCount: number };
|
|
20356
|
+
warnings: string[];
|
|
20357
|
+
}
|
|
20358
|
+
|
|
20359
|
+
/**
|
|
20360
|
+
* Smithery's own registry REST API, keyless. Built: full-text/semantic search over listed MCP
|
|
20361
|
+
* servers, returning each server's qualified name, description, verification status, deploy
|
|
20362
|
+
* status and use count.
|
|
20363
|
+
*/
|
|
20364
|
+
interface Unit {
|
|
20365
|
+
/**
|
|
20366
|
+
* Full-text/semantic search over Smithery's public MCP server registry. Pass a qualified name
|
|
20367
|
+
* (e.g. "lama/demo-mcp"), a slug, or a keyword as `query` — a known qualified name resolves as
|
|
20368
|
+
* the top hit. Each returned server carries `verified` (Smithery's own verification badge),
|
|
20369
|
+
* `isDeployed`, `useCount`, `homepage` and `description`.
|
|
20370
|
+
* `options.verified`/`options.remote`/`options.isDeployed`/`options.namespace` filter the
|
|
20371
|
+
* search; `options.page`/`options.pageSize` page through results (Smithery's own default 10,
|
|
20372
|
+
* max 100 per page). THROWS on a non-2xx response (e.g. rate limiting); an empty `servers`
|
|
20373
|
+
* array is a legitimate answer for a query that matches nothing, not a throw.
|
|
20374
|
+
*/
|
|
20375
|
+
search(query: string, options?: SmitherySearchOptions): Promise<SmitherySearchResult>;
|
|
20376
|
+
}
|
|
20377
|
+
}
|
|
20378
|
+
|
|
18963
20379
|
declare namespace BowmarkProvider_solostove {
|
|
18964
20380
|
// ── Solo Stove — the unit's own declarations, verbatim ──
|
|
18965
20381
|
interface SolostoveBundleComponent {
|
|
@@ -19780,13 +21196,13 @@ interface tamarackidahoUnit {
|
|
|
19780
21196
|
/**
|
|
19781
21197
|
* Searches Tamarack Resort's own direct-managed lodging (the Lodge at Osprey Meadows, the
|
|
19782
21198
|
* 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.
|
|
21199
|
+
* different vendor) for a stay and party size. `arrivalDate`/`departureDate` are "YYYY-MM-DD"
|
|
21200
|
+
* strings (the site's own "MM/DD/YYYY" is accepted as well and echoed back unchanged),
|
|
21201
|
+
* `adultCount` is required and positive, `childCount` defaults to 0. Returns every unit type
|
|
21202
|
+
* Tamarack's own booking engine (Inntopia RTP) currently prices as AVAILABLE for that exact
|
|
21203
|
+
* query — each with its supplier (property), unit name, and `totalPrice` in USD for the whole
|
|
21204
|
+
* queried stay (not nightly) — genuinely computed per call, not a cached listing. An empty
|
|
21205
|
+
* `units` array is a real answer: Tamarack has nothing available for that stay, not a failure.
|
|
19790
21206
|
*/
|
|
19791
21207
|
searchLodging(args: tamarackidahoSearchArgs): Promise<tamarackidahoSearchResult>;
|
|
19792
21208
|
}
|
|
@@ -21308,25 +22724,28 @@ interface upsRatedShipment {
|
|
|
21308
22724
|
declare namespace BowmarkProvider_usps {
|
|
21309
22725
|
// ── USPS — the unit's own declarations, verbatim ──
|
|
21310
22726
|
interface uspsRateOption {
|
|
21311
|
-
|
|
22727
|
+
postageServiceId: number;
|
|
21312
22728
|
description: string;
|
|
21313
|
-
mailClass: string;
|
|
21314
22729
|
price: number;
|
|
21315
|
-
|
|
22730
|
+
commercialPrice: number | null;
|
|
22731
|
+
deliveryDay: string | null;
|
|
22732
|
+
flatRateBox: string | null;
|
|
21316
22733
|
}
|
|
21317
22734
|
|
|
21318
22735
|
/**
|
|
21319
|
-
* USPS's own
|
|
21320
|
-
* across USPS
|
|
21321
|
-
*
|
|
22736
|
+
* USPS's own Retail Postage Price Calculator (postcalc.usps.com) — prices a domestic package
|
|
22737
|
+
* across every USPS Mail Service that quotes it for a ZIP-to-ZIP move, weight and optional
|
|
22738
|
+
* dimensions, and returns the counter price, the discounted Click-N-Ship price and USPS's own
|
|
22739
|
+
* delivery-commitment date. One keyless GET to the calculator's own JSON endpoint. No key, no
|
|
22740
|
+
* browser.
|
|
21322
22741
|
*/
|
|
21323
22742
|
interface Unit {
|
|
21324
22743
|
/**
|
|
21325
|
-
* Prices a domestic package across every USPS Mail
|
|
22744
|
+
* Prices a domestic package across every USPS Mail Service that quotes it, between two 5-digit
|
|
21326
22745
|
* 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
|
-
*
|
|
22746
|
+
* none). Returns USPS's own retail counter price, its discounted Click-N-Ship price where one
|
|
22747
|
+
* exists, and its delivery-commitment date — the Retail Postage Price Calculator's own
|
|
22748
|
+
* numbers. Needs no API key.
|
|
21330
22749
|
*/
|
|
21331
22750
|
getRate(args: { fromZip: string; toZip: string; weightOz: number; length?: number; width?: number; height?: number }): Promise<uspsRateOption[]>;
|
|
21332
22751
|
}
|
|
@@ -21544,20 +22963,21 @@ interface VillagerealtyobxQuote {
|
|
|
21544
22963
|
* Searches Village Realty's own 900+ Outer Banks rental listings the way
|
|
21545
22964
|
* villagerealtyobx.com/outer-banks-vacation-rentals does — filter by town (e.g. "Corolla",
|
|
21546
22965
|
* "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.
|
|
22966
|
+
* optionally a date range (`checkin`/`checkout` as `YYYY-MM-DD`) — returning each matching
|
|
22967
|
+
* property's id, name, town, address, bedroom count, max guests and detail-page URL. Call
|
|
22968
|
+
* getQuote with a result's propertyID for a real priced quote.
|
|
21550
22969
|
*/
|
|
21551
22970
|
searchRentals(args?: { town?: string, bedrooms?: number, amenities?: string[], checkin?: string, checkout?: string, page?: number }): Promise<VillagerealtyobxListing[]>;
|
|
21552
22971
|
|
|
21553
22972
|
/**
|
|
21554
22973
|
* Gets a real-time price quote for one Village Realty property and date range — the exact
|
|
21555
22974
|
* 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
|
-
*
|
|
22975
|
+
* the book-now URL. `checkin`/`checkout` are `YYYY-MM-DD` (the site's own `MM/DD/YYYY` is
|
|
22976
|
+
* accepted too, and whichever you pass is echoed back unchanged). `available: false` is a
|
|
22977
|
+
* genuine site answer (e.g. the dates fail the property's minimum-night-stay rule), not an
|
|
22978
|
+
* error — this is the flow ChatGPT itself cannot operate today: asked to price a Village
|
|
22979
|
+
* Realty stay it answers "I can't complete the booking or take payment for you" and recommends
|
|
22980
|
+
* competitor sites instead of quoting Village Realty's own live price.
|
|
21561
22981
|
*/
|
|
21562
22982
|
getQuote(args: { propertyID: string, checkin: string, checkout: string }): Promise<VillagerealtyobxQuote>;
|
|
21563
22983
|
}
|
|
@@ -23253,6 +24673,7 @@ interface BowmarkProviders {
|
|
|
23253
24673
|
abercrombie: BowmarkProvider_abercrombie.Unit;
|
|
23254
24674
|
aiper: BowmarkProvider_aiper.Unit;
|
|
23255
24675
|
ajmadison: BowmarkProvider_ajmadison.Unit;
|
|
24676
|
+
alphavantage: BowmarkProvider_alphavantage.Unit;
|
|
23256
24677
|
americanstandard: BowmarkProvider_americanstandard.Unit;
|
|
23257
24678
|
amramp: BowmarkProvider_amramp.Unit;
|
|
23258
24679
|
ancientnutrition: BowmarkProvider_ancientnutrition.Unit;
|
|
@@ -23270,7 +24691,9 @@ interface BowmarkProviders {
|
|
|
23270
24691
|
azure: BowmarkProvider_azure.Unit;
|
|
23271
24692
|
barletta: BowmarkProvider_barletta.Unit;
|
|
23272
24693
|
baublebar: BowmarkProvider_baublebar.Unit;
|
|
24694
|
+
bcparkscamping: BowmarkProvider_bcparkscamping.Unit;
|
|
23273
24695
|
beatthebomb: BowmarkProvider_beatthebomb.Unit;
|
|
24696
|
+
bennington: BowmarkProvider_bennington.Unit;
|
|
23274
24697
|
bestbuy: BowmarkProvider_bestbuy.Unit;
|
|
23275
24698
|
bhphoto: BowmarkProvider_bhphoto.Unit;
|
|
23276
24699
|
bigjoeforklifts: BowmarkProvider_bigjoeforklifts.Unit;
|
|
@@ -23310,12 +24733,14 @@ interface BowmarkProviders {
|
|
|
23310
24733
|
davidsonhomes: BowmarkProvider_davidsonhomes.Unit;
|
|
23311
24734
|
deangroup: BowmarkProvider_deangroup.Unit;
|
|
23312
24735
|
decked: BowmarkProvider_decked.Unit;
|
|
24736
|
+
developersopenai: BowmarkProvider_developersopenai.Unit;
|
|
23313
24737
|
dice: BowmarkProvider_dice.Unit;
|
|
23314
24738
|
dickssportinggoods: BowmarkProvider_dickssportinggoods.Unit;
|
|
23315
24739
|
dillards: BowmarkProvider_dillards.Unit;
|
|
23316
24740
|
discounttire: BowmarkProvider_discounttire.Unit;
|
|
23317
24741
|
disney: BowmarkProvider_disney.Unit;
|
|
23318
24742
|
ebay: BowmarkProvider_ebay.Unit;
|
|
24743
|
+
elevenlabs: BowmarkProvider_elevenlabs.Unit;
|
|
23319
24744
|
embroker: BowmarkProvider_embroker.Unit;
|
|
23320
24745
|
eq3: BowmarkProvider_eq3.Unit;
|
|
23321
24746
|
erieinsurance: BowmarkProvider_erieinsurance.Unit;
|
|
@@ -23363,6 +24788,7 @@ interface BowmarkProviders {
|
|
|
23363
24788
|
interiordefine: BowmarkProvider_interiordefine.Unit;
|
|
23364
24789
|
iproyal: BowmarkProvider_iproyal.Unit;
|
|
23365
24790
|
islllc: BowmarkProvider_islllc.Unit;
|
|
24791
|
+
istanbulkart: BowmarkProvider_istanbulkart.Unit;
|
|
23366
24792
|
ivoryhomes: BowmarkProvider_ivoryhomes.Unit;
|
|
23367
24793
|
jennikayne: BowmarkProvider_jennikayne.Unit;
|
|
23368
24794
|
joybird: BowmarkProvider_joybird.Unit;
|
|
@@ -23380,6 +24806,7 @@ interface BowmarkProviders {
|
|
|
23380
24806
|
legacyhomesal: BowmarkProvider_legacyhomesal.Unit;
|
|
23381
24807
|
linkedin: BowmarkProvider_linkedin.Unit;
|
|
23382
24808
|
liquiddeath: BowmarkProvider_liquiddeath.Unit;
|
|
24809
|
+
liquidspace: BowmarkProvider_liquidspace.Unit;
|
|
23383
24810
|
littlewordsproject: BowmarkProvider_littlewordsproject.Unit;
|
|
23384
24811
|
lonelyplanet: BowmarkProvider_lonelyplanet.Unit;
|
|
23385
24812
|
louvershop: BowmarkProvider_louvershop.Unit;
|
|
@@ -23388,16 +24815,21 @@ interface BowmarkProviders {
|
|
|
23388
24815
|
lululemon: BowmarkProvider_lululemon.Unit;
|
|
23389
24816
|
maidenhome: BowmarkProvider_maidenhome.Unit;
|
|
23390
24817
|
mailchimp: BowmarkProvider_mailchimp.Unit;
|
|
24818
|
+
marketplace_visualstudio: BowmarkProvider_marketplace_visualstudio.Unit;
|
|
23391
24819
|
marriott: BowmarkProvider_marriott.Unit;
|
|
23392
24820
|
mcdonalds: BowmarkProvider_mcdonalds.Unit;
|
|
24821
|
+
mcp_registry: BowmarkProvider_mcp_registry.Unit;
|
|
23393
24822
|
medicalguardian: BowmarkProvider_medicalguardian.Unit;
|
|
23394
24823
|
medicare: BowmarkProvider_medicare.Unit;
|
|
24824
|
+
mergify: BowmarkProvider_mergify.Unit;
|
|
23395
24825
|
microcenter: BowmarkProvider_microcenter.Unit;
|
|
24826
|
+
minimax: BowmarkProvider_minimax.Unit;
|
|
23396
24827
|
minted: BowmarkProvider_minted.Unit;
|
|
23397
24828
|
mixbook: BowmarkProvider_mixbook.Unit;
|
|
23398
24829
|
modularclosets: BowmarkProvider_modularclosets.Unit;
|
|
23399
24830
|
momondo: BowmarkProvider_momondo.Unit;
|
|
23400
24831
|
mossyoak: BowmarkProvider_mossyoak.Unit;
|
|
24832
|
+
muze_gov_tr: BowmarkProvider_muze_gov_tr.Unit;
|
|
23401
24833
|
naic: BowmarkProvider_naic.Unit;
|
|
23402
24834
|
namecheap: BowmarkProvider_namecheap.Unit;
|
|
23403
24835
|
nationalbusinessfurniture: BowmarkProvider_nationalbusinessfurniture.Unit;
|
|
@@ -23414,11 +24846,13 @@ interface BowmarkProviders {
|
|
|
23414
24846
|
perennialsandsutherland: BowmarkProvider_perennialsandsutherland.Unit;
|
|
23415
24847
|
pirateship: BowmarkProvider_pirateship.Unit;
|
|
23416
24848
|
pizzahut: BowmarkProvider_pizzahut.Unit;
|
|
24849
|
+
poshmark: BowmarkProvider_poshmark.Unit;
|
|
23417
24850
|
positivegrid: BowmarkProvider_positivegrid.Unit;
|
|
23418
24851
|
premierbuildings: BowmarkProvider_premierbuildings.Unit;
|
|
23419
24852
|
progressive: BowmarkProvider_progressive.Unit;
|
|
23420
24853
|
prose: BowmarkProvider_prose.Unit;
|
|
23421
24854
|
provenwinners: BowmarkProvider_provenwinners.Unit;
|
|
24855
|
+
proxmox: BowmarkProvider_proxmox.Unit;
|
|
23422
24856
|
reddit: BowmarkProvider_reddit.Unit;
|
|
23423
24857
|
reliancepartners: BowmarkProvider_reliancepartners.Unit;
|
|
23424
24858
|
resy: BowmarkProvider_resy.Unit;
|
|
@@ -23439,8 +24873,10 @@ interface BowmarkProviders {
|
|
|
23439
24873
|
sellcell: BowmarkProvider_sellcell.Unit;
|
|
23440
24874
|
semihandmade: BowmarkProvider_semihandmade.Unit;
|
|
23441
24875
|
sitmeanssit: BowmarkProvider_sitmeanssit.Unit;
|
|
24876
|
+
sixflags: BowmarkProvider_sixflags.Unit;
|
|
23442
24877
|
smartsign: BowmarkProvider_smartsign.Unit;
|
|
23443
24878
|
smartwool: BowmarkProvider_smartwool.Unit;
|
|
24879
|
+
smithery: BowmarkProvider_smithery.Unit;
|
|
23444
24880
|
solostove: BowmarkProvider_solostove.Unit;
|
|
23445
24881
|
soundcloud: BowmarkProvider_soundcloud.Unit;
|
|
23446
24882
|
starlighthomes: BowmarkProvider_starlighthomes.Unit;
|
|
@@ -75209,15 +76645,26 @@ interface BowmarkProviders {
|
|
|
75209
76645
|
* `run()` script, and the Proxy over HTTP in a caller's own process. They are
|
|
75210
76646
|
* generated once precisely so those two cannot drift. */
|
|
75211
76647
|
interface BowmarkLibrary {
|
|
76648
|
+
cable_railing_quote: BowmarkCapability_cable_railing_quote.Unit;
|
|
75212
76649
|
cars: BowmarkCapability_cars.Unit;
|
|
76650
|
+
coworking: BowmarkCapability_coworking.Unit;
|
|
76651
|
+
custom_sofa_configurator: BowmarkCapability_custom_sofa_configurator.Unit;
|
|
76652
|
+
developer_api_key_signup: BowmarkCapability_developer_api_key_signup.Unit;
|
|
76653
|
+
domain: BowmarkCapability_domain.Unit;
|
|
75213
76654
|
email: BowmarkCapability_email.Unit;
|
|
75214
76655
|
flights: BowmarkCapability_flights.Unit;
|
|
76656
|
+
game_soundtrack_composer_credits: BowmarkCapability_game_soundtrack_composer_credits.Unit;
|
|
75215
76657
|
git_commit_history: BowmarkCapability_git_commit_history.Unit;
|
|
76658
|
+
git_release_notes: BowmarkCapability_git_release_notes.Unit;
|
|
75216
76659
|
hotels: BowmarkCapability_hotels.Unit;
|
|
75217
76660
|
hvac: BowmarkCapability_hvac.Unit;
|
|
75218
76661
|
insurance: BowmarkCapability_insurance.Unit;
|
|
76662
|
+
istanbul_schedules: BowmarkCapability_istanbul_schedules.Unit;
|
|
76663
|
+
mcp_registry: BowmarkCapability_mcp_registry.Unit;
|
|
75219
76664
|
music: BowmarkCapability_music.Unit;
|
|
75220
76665
|
pcparts: BowmarkCapability_pcparts.Unit;
|
|
76666
|
+
phone_trade_in: BowmarkCapability_phone_trade_in.Unit;
|
|
76667
|
+
pricing: BowmarkCapability_pricing.Unit;
|
|
75221
76668
|
products: BowmarkCapability_products.Unit;
|
|
75222
76669
|
promocodes: BowmarkCapability_promocodes.Unit;
|
|
75223
76670
|
read: BowmarkCapability_read.Unit;
|
|
@@ -75226,6 +76673,9 @@ interface BowmarkLibrary {
|
|
|
75226
76673
|
sheds: BowmarkCapability_sheds.Unit;
|
|
75227
76674
|
shipping: BowmarkCapability_shipping.Unit;
|
|
75228
76675
|
tariff: BowmarkCapability_tariff.Unit;
|
|
76676
|
+
text_to_speech: BowmarkCapability_text_to_speech.Unit;
|
|
76677
|
+
theme_park_tickets: BowmarkCapability_theme_park_tickets.Unit;
|
|
75229
76678
|
weather: BowmarkCapability_weather.Unit;
|
|
76679
|
+
yoga_outfit_shopping: BowmarkCapability_yoga_outfit_shopping.Unit;
|
|
75230
76680
|
providers: BowmarkProviders;
|
|
75231
76681
|
}
|